1.4142135623730950488016887242096980785696718753769480731766797379907324784621070388503875343276415727350138462309122970249248360558507372126441214970999358314132226659275055927557999505011527820605714701095599716059702745345968620147285174186408891986095523292304843087143214508397626036279952514079896872533965463318088296406206152583523950547457502877599617298355752203375318570113543746034084988471603868999706990048150305440277903164542478230684929369186215805784631115966687130130156185689872372352885092648612494977154218334204285686060146824720771435854874155657069677653720226485447015858801620758474922657226002085584466521458398893944370926591800311388246468157082630100594858704003186480342194897278290641045072636881313739855256117322040245091227700226941127573627280495738108967504018369868368450725799364729060762996941380475654823728997180326802474420629269124859052181004459842150591120249441341728531478105803603371077309182869314710171111683916581726889419758716582152128229518488472089694633862891562882765952635140542267653239694617511291602408715510135150455381287560052631468017127402653969470240300517495318862925631385188163478001569369176881852378684052287837629389214300655869568685964595155501644724509836896036887323114389415576651040883914292338113206052433629485317049915771756228549741438999188021762430965206564211827316726257539594717255934637238632261482742622208671155839599926521176252698917540988159348640083457085181472231814204070426509056532333398436457865796796519267292399875366617215982578860263363617827495994219403777753681426217738799194551397231274066898329989895386728822856378697749662519966583525776198939322845344735694794962952168891485492538904755828834526096524096542889394538646625744927556381964410316979833061852019379384940057156333720548068540575867999670121372239475821426306585132217408832382947287617393647467837431960001592188807347857617252211867490424977366929207311096369721608933708661156734585334833295254675851644710757848602463600834449114818587655554286455123314219926311332517970608436559704352856410087918500760361009159465670676883605571740076756905096136719401324935605240185999105062108163597726431380605467010293569971042425105781749531057255934984451126922780344913506637568747760283162829605532422426957534529028838768446429173282770888318087025339852338122749990812371892540726475367850304821591801886167108972869229201197599880703818543332536460211082299279293072871780799888099176741774108983060800326311816427988231171543638696617029999341616148786860180455055539869131151860103863753250045581860448040750241195184305674533683613674597374423988553285179308960373898915173195874134428817842125021916951875593444387396189314549999906107587049090260883517636224749757858858368037457931157339802099986622186949922595913276423619410592100328026149874566599688874067956167391859572888642473463585886864496822386006983352642799056283165613913942557649062065186021647263033362975075697870606606856498160092718709292153132368281356988937097416504474590960537472796524477094099241238710614470543986743647338477454819100872886222149589529591187892149179833981083788278153065562315810360648675873036014502273208829351341387227684176678436905294286984908384557445794095986260742499549168028530773989382960362133539875320509199893607513906444495768456993471276364507163279154701597733548638939423257277540038260274785674172580951416307159597849818009443560379390985590168272154034581581521004936662953448827107292396602321638238266612626830502572781169451035379371568823365932297823192986064679789864092085609558142614363631004615594332550474493975933999125419532300932175304476533964706627611661753518754646209676345587386164880198848497479264045065444896910040794211816925796857563784881498986416854994916357614484047021033989215342377037233353115645944389703653166721949049351882905806307401346862641672470110653463493916407146285567980177933814424045269137066609777638784866238003392324370474115331872531906019165996455381157888413808433232105337674618121780142960928324113627525408873729051294073394794330619439569367020794295158782283493219316664111301549594698378977674344435393377099571349884078908508158923660700886581054709497904657229888808924612828160131337010290802909997456478495815456146487155163905024198579061310934587833062002622073724716766854554999049940857108099257599288932366154382719550057816251330381531465779079268685008069844284791524242754410268057563215653220618857512251130639370253629271619682512591920252160587011895967322442392674237344907646467273753479645988191498079317180024238554538860383683108007791824664627541174442500187277795181643834514634612990207633430179685543856316677235183893366670422221109391449302879638128398893117313084300421255501854985065294556377660314612559091046113847682823595924772286290426427361632645854433928772638603431498048963973633297548859256811492968361267258985738332164366634870234773026101061305072986115341299488087744731112295426527516536659117301423606265258690771982170370981046443604772267392829874152593069562063847108274082184906737233058743029709242899481739244078693752844010443990485208788519141935415129006817351703069386970590047425157655248078447362144105016200845444122255956202984725940352801906798068098300396453985685930458625260637797453559927747299064888745451242496076378010863900191058092874764720751109238605950195432281602088796215162338521612875228518025292876183257037172857406763944909825464422184654308806610580201584728406712630254593798906508168571371656685941300533197036596403376674146104956376510308366134893109478026812935573318905519705201845150399690986631525124116111925940552808564989319589834562331983683494880806171562439112866312797848371978953369015277600549805516635019785557110140555297633841275044686046476631832661165182067501204766991098721910444744032689436415959427921994423553718704299559240314091712848158543866005385713583639816309452407557009325168243441682408361979273372825215462246961533217026829950979089034594858878349439616204358422497397187113958927305092197054917176961600445580899427878880369169432894595147226722926124850696173163809410821860045286102696547576304310256027152313969482135519821409716549097319992834925674097490392297126348693414574933198041718076111963902278664075922434167762466236238913110270343304576368141128321326308582239456219598086612939996201234156176318174312420089014983848560480879864608393596492366514296812577314322914568716827621996118278269531574983802624651759054103976181287604216386134502213262727756612441133610775195557749508656360673786650623185640699122801875741785494661253275997697960597760590756489106661015838417202818530432119044657752554277543798726054881736198267581686283295260789932226683602838513512281059318591028641508157056319717315183136250243590414632122392176633982689368253150530059891547029095371932662073411234947433678846902013904978428521634144292145895582878476693946464267812219049785636355263368278051860098699248937786002398769169807656621943898544370805946433362333810587458162354756001365924352426571430834655457680023708146757325254702550747637471635067851599173693793251032682760628645914618204721486370370771926926823623334720379245964691810526139153086280291440965482563873092730426544662929045896063751918711469345361973324789572707031530930901921199199993615765003503984054067425387927527922724733566770607837911384488936261367657060263600315132952095395202854897384486256134924414708607086602676349978793420875836121947116994223848482595914304528107062601508969135303017720062717054402090669514915274597719705947695474095210287872557856880022193717743558110793930883384558648277291008629554566141306721230848740227121058686323388237413884428938155444647105755651468435702946635062893873569868688376480326519528414653517395302736120137420300986739838514321900436028982698293529399414129230580384565022707216815161941011449826301364900877048398488386090653368599054583895203185648041493272142390865164999431659207965953569430723112911629286797517156688905439322035691293324570208067194440497304943981408227829602799424541083166675921424835182723817205041039274288801556223380796147512433514731021284545944899444996000752437519570116683417447490795882099517836768023236517674972301487457742725994760962198432714835298611190272873584905217975908374197486026706053746231530039375212367867752848692195857137554269684827836317861109933680143915905974842858054516130230143979057016108898627779610750673332676048654929251399781390535882276893732204941483940135560356560442140176120605131806891989962606184831853401836237821726637580455247196266174925422852804571442048578342113228008528704205488992341278554812367615377071042544698685219911228354266349997127483660762462418207364666171283947484732804744304033441072004287271275670279567582429262719454580530026664899650795697781786219421720052371653694677041951119127046248360511302890464377511486948878496151188414719100012558838366606772084112351535588112677895715585904125762616010675131535802124273318710006358249545040995794072547989003168265123731190556682915194305370848930786919742829049038603723116099283424317122250994547150192866648787107951995180054633883844315481724635480244518030845273431000621371034625733060012349737443558180965678464641533905146569193245623531405779193698988423647183525375805257713311200797104068315492665402026046806818391437827214769063242469517128636738443139833371176159418699934662623453734523567940124168092291163609563721674528391709909146648507392051516056047378710615470216996074656930979442612146925615934256494019122989514732544715181263258368897282262833295240359700727863364604594707124174729468775705958157349962848099567839255474240448991887071069675242507745201229360810574142653234724064162141033353340551104521261750359028403745459186450472762434207177092979354010214096464502836834180407586081001407216192477179809859681115404464437285689592868319777977869346415984697451339177415379048778808300220583350467465553230285873258351570859964906867287596729503872547570879169554736691708701241333922148466851743706661548819529332272737436041082542596603039869326542235052369108595126300831846755503459758395505840356701558879777364438048182138707003440236180412002114837279422740787378933162708101362649828962927256244580539713414221451109999544582142923783881026483948233951418767468967831862868178827255582573193951815531695164501494357263106045694929670986252043393852078220762219100344692696633425908530581604497802577632544893708006267787317954852985668394869467335696300140293131419025780775816945815272529343422590519791831662164448751781696775276770913043157342564054922938187395110844166830924911159785773327363884141850737936300263921806800194982396664712313171902523703199058771977410007132407519204181221413242532729491860004200841548511547411573059872196212988541663720877522483769485974767293301868390522500148690382610848248198167593107772702648826209072384775290587650403266727584825218516231074544988758827465678094971230876614426414824157903570393312256518933356281836185405746706380618398489466284245736564564213907216305295529359284877555242754559513382771500178401655305485442285011988365575680159346450558994424849627412711869883158047691814156796185321657169645222594594712469319957116419861884797789121142681164383772384836318673186075647785369993038705466322969807567584682123028077261006969174078202479498821095473343011265454421701958523758807853480037372471187611100087719035538815731922513338424947745031188119474559536533660920641929344003507856422343292324929727084724823557671740589500126876360081245211244875643428094659313361856432414855780791931151265097295891605299303077105635245451483457209224551984890588904219806543973353757599824858037546392736537641967480626968382712920014349566748522472414548636036211584723231736998061719936421136314580711988396812957056115881246205885796650562215074820897477641770837870529242028802900440024806868125422075790594243470464489575440238736936047401308603607599174387615635296776058018334930879646627071160805073761071800221552519199379620070916138322728017731332019005978048207960758032499462238538580357347801871380284039812004681237079092457272857654510489717031023705486787933643781578074007677474215280311849815576981656151626115720204540264412993161170773312538461289367637918385370500942063060910325402584768222036768249279473400061775129526307265637853097368642000776666588993284566122465073002209562877272622278080395483403810962805764928974651843631949840261299761890046781909273709647827872435775220668465400024683307460878358765589053056942574990989039220463004714572059053712091314275886537693148040000871791384569099362998784788542177815407350517062532050951447822066725260862041079962227034808180138006610071922681402919768354884243991628098036185977193588922654858728163276905428617466323081362877649900737759932441752147677604693696223321517592645055645256384054670040452158007545437968103843558514794309229635219785228329574545727156479318504188960701280594922959218359493707458039032141043660163765095548944541902633911960741100669497780246954093656281275384963236010625846536670507651770296951303968587023679128754135880644026342382356806076407451761190883337120914157628056522379012735641935345652676296244026602282454261960342283524002050329505319085320149680451356433410343132922358969728310873956943813180943166691339052648914833287988276285256304512063761490004521864271711150897628275286714663611738982858742531721659624764332384003490049629878948700105188449411866043973910749375734952893477073963866593325543858999353799414384066242210226832851166251136834473289661321052675089379483446349303527853213012782115268594298437565174510930399249586646094238684700215355018037800018701111315193787540109149588908076473345500264098056832143811600751461827884490468124814689309743000010901984320866630922513811211159948127963678390812224378191018777994034076527406038234150532717416278674888085754101214286674663103610880018188435401823686532216877504119780765258115384173656218356750130344565959365909746900776563095156366283486399797549375638405296723283563403031591654958861122299599968682701428407239146230016173544083143643804589220554110179535135588527134798493787613379107565599541452891777015758134875768018624292222977666211542249711334173960319676390935051232094761664275347438833388869997991646383675032418632486284187846996096380827512996338173937422095347586163221630520270351703749029856852559581419295499517655258212347310819766330134175081512367752315160732088182956407263476450588757613618936187012890402679226470494967872374025813008347639756446326335496752857495370151271006944644206246175364428949860492052182321338432627533519882949208649070960592165457376909595138937899766262877086832350596409805018856981997405660054415321384073497815408094354075968156133896432084041531510243243247650635582409785346811510563238980401380381484973528744429069393443733818010901017885920564069076972639093391116136846666993180683823467403892236722925516602446859746076358290372852949715836906372909503368595118238724038656680384409859135999658830062279975291368494561705199329159949232434041372725380763684029518736981797353665709599422047510596440759070780020393623247182380413779928373967358809638954739384712895062304484473247044382339025131491385944752127927146106722526835555209310140982503241041356811888934417063480181887903852437284345041399526750839074929315594899279974020601668610106057383620343696139923705020591369122478814482197004556462960618015295726774665402522403215201062680592469294184146516926942970316447489225533568194701055860753950312574877927182201980680506551347189262650998704038723936152628091171501639839183820803710766444723112559429793084157485754971284956770768913053139151928316074937226046483741211241052740458076907749903216761531996566097430089028478792209894555140349566776329368418912928228889379139256579030617042195174642667176286007376548254894908236704904178982794694813371005437573522926259395680953716797717773842816611959931987815037440223252940166513596488398918771266667644592828072477419805118340357726301941505622270926688815100874081021630455111936897033987589916343676655245969002296639061823459922443716156818871678501955219269047700888762881701243590723842188590943230252400872836341134600247463505407631743028561032883144639525995577714162497515992886034410104753346774530437278688576119622685894813897884351225166906761879132344620772426389891117519357553675508977173608077985499293374857587940796948901185382605111362359173403913986090018722454028726512923507251346336039947797211253440796964196584329248583896153707862544624052734183729616587128099621567514167788885218201782685794750886056191761433450530724225794421504401189938032821176942753515500503593840261927124840735344805764151349209066433260871886931878391137249135429063143277314147565234427698926410729192964778315226765309633771907887021210173628892801332066553846887522709821416994745346783973061884338063688567887509348371281299459471416740210647944623047509596911213284185737450768802174200091903786114928999321369828255050439412523429387891529294488067290453371558685893911940586799267968019751929463531321204605827301365246354919747717843125514719561089448171687369595009755149090580423770550765831660455263178819159288580151410990335159992764926020916753796585654071721490272772072079533046409492679296980145647407586168417518270355419152328590131991897564442720919580664737853965474943503366098455694220541232209149476985226606686931349412846052436006261919200954559599299203576635844725208888438770109848509614553662505648222331082774877124964592394034410384880456557209153720836923704220390308166921534433655552965914773759520794595970591492130243833379570937471630364094522401198254550375439726080376366587365259895269116799601027835888111571584115744794740352868900094824133918451378059992251898473594116542190094366985029180072615270895483247691079054750239576659419788818441052018288716411670528264469474464709886880658944170090145701739592379888063120134295083414410967004600697066301139883806544103595903638542889053395979476135555393092353500102274640257399654926031871210054395169315102736251469580843669483749113385315323780426247949617769295622506132578266616587528170615484688178446049185158500223578507688444677874014750442262575101736486183263373253354192130963105322132562419461409302789335825311735548312186188185808274496642586804545788804160409610003849873310755633890347244188014704960144521546446352768745300463429370465787461230411428584139315470696445598862702341355336961468894130579524344828578813842913133400444388269456277457204464892750371889600250214810243226623247446675922220957579680398758330118809412348594105539793115016614982410947734045594477362140729819067342271221329828201893551814807116129360475393545191644885191976819894324688266584699908103487433057154252114898292494064135204869933170852436546029080065024215298598119251209628332680767252801429242638106620922006716242390535394287757500791358700376806504069329046236701998064642381662780745584542797281363649612815600633612819117180777498572128490965404563806025279792900141167180888216727623269573144529953790935999635720195691053823183323228796036615493435619556357778872038051407147028627486665772728496380606820908743374755778931220716618329099796807740695830545505816946391053802547129809501916405917729214706120537973758318816904034573730892287048764298832763431061565604142353102111260771779308733171317133834055399077148746039878634100181548943060212764145175368556781241048762789184459864887507256919070705612618906511541537434331704771073512089749664585871232326061227767648801741904170532621901129299413424068594779706484545123043270036204444603070019114504154208127286585326598625965834129193187433746814254099198919080093257152259502569757636258378542068760787533642389024535242231478116950307422996882662361894379754634314869404737054660220523658535224334918934149537318546177563908506301498059307441312721443060968681215491679993360209112463420681604642356345266992247106943380713975107656704229609060830002146456760756695447822337420301223136385365488118968676221196569610683809556811074161682888729148970892917272020316644752981556491650993296424759355530943427234735255674233588854104081625618083858967592481296758178858037431437644805102257548414551956003095448415378317598122227808362610038296219136687469906013559109879017893945095070800847019710300949634856731261765379906963665342384783947510060919802366224025837916677336598186209690123704855441788330817432241527096185839732054877747141962021020919122003541939937558489657965967774879666498337384464462884923220915966252081771094551855784919342249039112644016254035341529185960627844258497990753765035114366230126874503874841819808002173511521273105542548954456430535217441264760373988143239223799552080372563153827895767560326953415371316228684223119907173662715925216680950257599135536804114031436374928570500016182589807056873639480322361404604011480623406226830964085064565184947862087308537993315082686383455929918002956502600712905221346145142591683238499736379295324166767263660845139329127005281346342654445920288246142762177537542296561177677435268363377927727053086688871203544787678456074403451818739133581638413567183639815500757116010247023062209136180213041332617816241751224462126905137587603315297832296688192798031720614092427303623900983851487008360779814038114398492015100688229636700554973943285334706986769952794008280800408871510193767467730882920960774142894924319076599523269541480873863532377880542082237256367753706673147303496863970704898031245446088106656204930116583699242859143171957326639117940460873354170410387477676568434175416519619874924892507420893760141194424029639425417630165604729567661334499190693680733551658503150396913387483435296368054125218883032166460594553739445123752178397465350332767285694918193988259952860975698800611916256873292306230585674189853838045570809358377914628586246872311025994015876757690831677174283925303011600838846048071478361609641715594546399221829104927969229251112793795664013381991163506963539326360985956462057610408705683800302694519711248638111853378910981402240524583922160456345211221741701040567973307539584647058474754960443223342630066921057776700574771792447903388417399895395625218314754341828854229277388521031765033181685116423984842459090668564084864712227534729176002772087091119916253536523207304127403457281143076790748835435004321724871067033312039256058908763836947478428601451134482256881522505295704764411457698138038591192713356349551780841473632107768061567567942798763715596403483762844405325104334623725798115249057855454554452128459612304154962148839747200361422992055663045249896473658280189451430478607908479278319769496910731263109830485633506795521367459452740637830001391251206426019247343307523851977600345083075542671038439897795080702918698409431888452283895341047458008310255934322333268376672915092233641315967653120611587458495988481505442424328431684072867512430343206581773398533408669746044667571456675222004330063396653272711639216282843359363915970535605351461391484568462400484626935209063545366851485497344595022174912956216820534347169458903066650112239953739250769149599980731164875683223107356012908889074480041139114929364660679542826773578999601714474747822597197369102206176629747963359413820508653835366913170891009758629322982345585218809771609131415612283794230140742857517219609708392468807241064334663820378880194299968923340577439945587187721671949412173978424845551124239495108231334190095498097494411685446927126810464367629794951628949214864249196131714911299164723580230000506478446110811914449115812299764633424470996174148529445175829914157131372881744978663466979834683063377226946211202454420349057367761082493287387912706838889328012987679170081110139014998227244754594248142195036453017784199339710292780971003172800480512407455154973275048680372399013584337669127305599571328206218815992141130876955806638951579665775394244413241315371071369661381734700574482745460028185122194881094099093203083696286639456596762750124811505090895014507857953164711383535236783150519442462603033024233866607777623963532367792520543071072814179089963458476941987851049288285046330076222359001391963015771950482636735933640454911225862198229883550564611200430090520331006969844471423510531407150427637329991583440686986367533351079658921179232619884213541214952878833669486524486147483513338067666140739939721171174258077014776173413160355802526005061346050994514494808115176759222658322435066901650708586969301664407829476134100953558555025559733951011097129829414168133162909129971663939786770253895589191479403266826999918493493521145641673825912822446260474686998341002689357087169821589951314472624674435142671224348360464877244577905302925494885818976837409053632700690035935815381883280740828133022036509060649110278848197191631340902967476872679485708198499821462735902524243518033251794029613213416361860160670646726579833801692963268988520060136260127308122721574835345068943834941229354390242537575276935242785398862908394926459788524969063109016368095320411338520466963037354159339352275611976274730671323084914276213000530951932312884148955410680616740648799311628819724340996737600938360319809562292751233734195300422716752657485424748294603373865038667525655809964547552269265897588852563853292193801975692542773496925611476888086411726702213493152855142211570520058969666638052038104514692230017952607407386746595628401458292793638099004324083574265721606100589276934909467829254643104382358817121534163957942829172179362408197768819899019978733140361218579680658635836814653558955738187837879210025324208016567419832526439504211082153922017378503914351674199577152156214636359058908552855660974755528542340303264688623171663272306314113253065883613291776807543214046263688827594471614338928326902599705018230149037097799114932182970034345553862403942080577861275758494151568256422080453230079309019116615354347822117943690448501258884620286980896814654617349737831554789210426289448390506854412032720652374931405325170693575800090799417928559317281056994376439412694664934570902480722236062517133594884428904861879125690145136706459235092312563008362115495698642742822983298049518500422796155220772188169501772040152352682132562384768196467946508310757531703922608556146933191076828363656585285066867708773314799646708576262754660296271676307593189843573386709657017379322828234819216178187700704734967289663187703448331207245745902134879582560494827184614765808417211499946854803681654737055739119000597890021034377469279468790761859868970990466907028633273646321478565924562227186274617896242617308191565710953780887906210137634562553455427872498576451110514792642181602336671418980139700712972986873282822161863841631129139087937144100443787731724496829823520214297586440824917781147307608372773515153045369225956908916303290224998830272931041640064920140282253288875902793130857765623765546576499418464267103698691707059191385989330859375437465778744024340421767226124563578400296687454724507237893772604841729537531149249611862975908219854645299621591789872203301708655899813711247509633047309722806506025812936326292023721769898118542181621497036652310506492195857613634072272973464467527473852366778039742256265274288738163396279152344489475007103570432305508633073870559504709704223112376212193195753906049935667463010742768459394995465955497215492094314313600228526551330882682568446783672070869302727333326543140936959799774757251648656093889015974966204772135307231257763956628276229011536678104435642683552059590327320411019415910623132249801210751416193214421041685387209163497848175621786177622288901058671479941060157763509364845410154720035611054230018763937194623790529515391264554194110993008012824631428083660358654985943824157412766150195565964774712311455219886781344842443640738545283514096471263474269603706175610653882758679386358840853677488804217287683154379103824027241641035107695806918605490613362946687412931799165577747756648524173614696709956897316255513150715263773191317175169894978324016868714883136697811581823263858229726978780242878221212956988162336800338798433521833226807674871764314087513247462340523498791848476682682956164389287940389677064787672835881096606481625315824243859159435782345293357976186094427931333034229636773288211480125160663243622928929655705241457292581907333551590230871119570269023870195544559723394365812869031143294581250142518845693967768351495544304760263639819242301130991366073869109948189167016589185352246101655243991230341546915096506133375745364431987592073348238390436181452300041628562401789896618729932433592378912792566089494158767347055514907207076116717309650735136469265388838630199300305411301542202978734832296837173622891653295318271799773418424230735005604987063161378837005471741263579607944053017421388274666841182223432316941260940148952498752673948639048907642127211697117220013760135904558191751687797176186602934972507103882743611570141066445781051001350673506912848171032491332955147210296826657293583776007765852714067357182341860915761909790748526270619609743278397440621952813718689011786708690157900155050619223605714457397060418587439963188225773545870913462797275607689128567486103705909806113218760450487421727969853121605688949342243240782283052382713440629583691719766971842758051972187195775893490824630361762171012285871913616378478571967611839247982544888914466805290578520986447819893689290787324805017143976065488335068891161948097295523959608412626285603427437758010581323457246488296608572165927415635628149641008049542568175679647680105488894332678010486404657242916975240245985799432310202769419861945456705081404486159124461095495339850361818922674700447241199222808664155383389965178403923279196380329340906520064147404766509177115909907080882041043461348366188743091235148789560038095941867919673166932191210478342089473184348857132856361440803440373867374794993907652259630023378072562010816728437740947482044301637221319539280890723654306664009282769851033832167983309404060995752305990494712319398719599051631265725722617896465674770425387132510643530974583230970841073311898120144764645779142357324887643197112582710297987526334284335579535699225650579490923086693770027906663645220373145157496561481626185885285668106402047201424332222138980823352434000262572181049237403429335208540885331814541802877781254630019365579491484427999530294411471751670818864442167070233916887834280218966732882165158030651159881691561370913180450124812618333980574510202835792555363546011881157541595471149228708473358850689427085178240117385975586303933663329301436688997421023173457966585157115595919695338704075207973733306288085268431249174317279303616983196049760905630177859597319841771476321759314925404713981812344083418690607331073068702281330054516681370799908798908963195462023439931872479956437123257674189166316415203052781940695740480894377472085451996957462535350882404561852559571080217435971267050694025464211532739140434817493582344460288491903529717034361862714965822337717810421989353351063663165117445016563816519240496156251507908611235816992916132394934719059317347770401368466280509806833753701877215170517889103548221367447445071479854325892653971791541822006746515208539698698557357884979377970446007658652551169634245157042829345520146999556486188964403135240958815914747203002141384683644196620768177233103179178870528845981932518711059913503525301798487722855793286487475101193954051503376152790104910807598042286914003933190282633495472953234206019278094937998475652709841591073852338841807814237705369901348716074321131488509454673936274879765629422438173769075630418891992860113856457308801886133163292409749710007084635194820791845407663433510275700401161940116227161039065726674056722560095594289437318647382470501304316566661304514646059371123355517179579737224117120687020635352191520265278490274075110262653430433157544368810706128378128447325010521535180107724452774583857307836482240188003226162032329072083298097693836686858000699735187473972029591946690234506436755781023849929697274553414183060934498993121577722419060268006235706742692497722261207437890584761110602576661587455868756225825500357340899237490420880992681826271485046403102990438670497613047782813172983754347584685622855153168957774694638700640377549262437037101290954327054331603337282897822554754444442270075597793743712978253655635992289769581596616805701963146682804196937626574953203675839501672507155707565000626907076167904229656059527103605667419120393584811542798887940655275589587445527240924981267747274714523089388434180073890087243377596470098193649552254507344155227520984329340191417154149833092888100636942745472812807892294024867233361013697563728408199226637618546822365193617634976478451374737566169676288557891706670822511710109432328821940163517528793887363495462611366056265392198770150441806466447167841704841030125005778440940062987714481121875342325588198757786521289254703753355233263969256048851581997712443529685525012576800575465133654716053029919282591302156103090050599448735907857303834955713509306631531805179311589618677625470877547115908813730363455720618577151241051502735643895563727276609900121463749378365699843697242034171875418009866482131836129686725167614962966645646693487785492367759862720157628416922510624565533943749174131185809226857138155821658944500202706375824312115684562967095555271529098565312333672562403364419796450637365225208236427084845028223074740849930753762921871360833515951939202191861926711937013581252124848227919522161514397190873705058300125943547914250503856428918542436153167130534758489799395103466871387622623623725385486775569001746754378279466297393867738749456400431962065816959970832070776650321208556353741575758825583129297837718215123197859910442086339629273076460885939930328734306610307789892345345331962972446873155028587475401077041195516103170875711629214466355725497380129923886377056894155761254670978243799133333779648737360121612139029415076294419703112200041440896563608531661556852295230732916130184152208112712112277341449799704226751145566895102808128005826349973418894179723636605439077775016479075495142801258176469623641170336098655604759612479255386249957142822929556796927462608847324610363220750236694712555665528693719752296941077821627762145719854675287819145192030811645429188368927388726190237757955877284911783550641817754135053059979169097939697924565400879108145513984583967661455772456893955531507394666965350265099668502714430512629310979980795203532996430024446342802402747368430767969533194918042344568101563119928948343984604686898727422421778149493886050147548843799709397349818529135253383014531518287960864599523269882833471002364018382917252783412737386406662458021487277564289722995440605975135770019869916284725549700160711820245789679681585646573142622248775436694765194636938365065667893430623923266682751112757724303349413356513691991055592413782144756881857817800771865487801842221493223906182413560177994219991753876511615785766151551010278024628057413162337266428126139001562126626192230037121523337940766072818119973978412487807862804729841729096179119504900545274788428914746834379395374097800723955055142923905245349491369602203139175310921173983849274733436320309509118225555615991469287611246630476563364050521360428470145364228385272067558789690790405386115281275577337547198322032330989761192764007598728046318221149873142920081367034910867265693969157425343450702135790000700316968863680273005957635752391601149550021178710425871971288092223059057434578858610124824766473038585611103177984514356594162396825066122207347044336596905714951639392907241889045971565043405114808248102157054372514336420482230446175082136556694682188453972730626390361218318903627539765601369139700528415697348549190350234904516025853643793854788176396559179638034862289387135330961550874185741074610968818066675350705601826447151897479846866039110027626803807308177854783850966362450472713878970254053642999642113142336198321997954091365760003933750798615180001756435804783290332834718435612667087109548663630432258663437934547800517800117561660144921765280840101014403697754597224437682789442925492081679677646471972172575451477970752118630984245100878601326514316489877999478549438735532543790247867280258483615104026944424551563236011393684224625098515320994764704485605126259939137091897058523862356375626928552310818963268806752894936685997931846041342376844403369018492274688560839119561696958764012904305116281278217052069724527795495040957616193335988598572277102102887149373490806249597738391376663392283301840678753791620210126471117740309770879302221089468839372954818939098544377085014183581829918083057745150647762604505419947747821584642813183499717921583192055911284140486161452693659558618554648444935646889077814781699581230112189652593516831331121423404536463882113503288969875248405716044910770867778021781826131363833993901635774567565133298029547982761119864321163587440140654629935618407100215775681642995714064012959069017684333276430632320852170853557358865692968778875896454821738843355409031662060513044349393757112279655275485741207647986150240765714658198443662191183825626485205643365746901350425809857667781240520192901147130997104921953114837508744572154365338405792774262919320458013137172020407124486631899947213896233765458998373627615873578158536033142270844597928050424006934598430426300836629685326178640457218731924466996386964545866800081345073365948030124232623121337863751620431111341162382111197830695519589140271878765926496016168578884762220747615320771939529602251402062408217328433783935142338380176783942522834838854342092240771056109589184573768385285756152667323588859209474749364317856507055312986679911931759986589920928919217816175752021136527861147678257518398029214082039000127607289768586008117523198022115351229408765742977463686709303015333540425058764197105086863265258023334362330493915512016776713266592748880724796461895063457142675690031076577924037401837936507841351136255895490812622944168872866145839837620864080410509153653122798204347981903510116881290149529812782934061335597207838718328340881960159299992991210960330733737121690246416364463048748819684645647570946416896884608714095991195199732549657264064838439225722584125119187699396229314532016410950889638520649157993114854022805815502411792615598873255848785131726051443024257260694758824364812595955915404653023629840789963538077076509485585161353541467925701057499631399869123719789042654791562426140100079948238324894177827722718827406528362913920182332815788581450335185223185388744215088886691012048158437054049204691110274001702784087027064857998449781587597693058054394587478054483192442019774444921017008841840242936113195373326188852341424174062136823571803739881551856959424973627344128087459224574876824184392228166692275415948550080494513822687267903628502416560659828051077414606405000548487848781941824232148466781223116905632302817222628575759463075935324772659420605429605239886928573747893079168988370078664467390505766538053297099778731169137201900276592261885341674869152033639485876467762884926940994952887159087806278069878029061394337476000483614534960328241898902820945207165247786009249485871108860657830349068236115183174587028662047035907000718182229896176161045205521220830504294828027866455473330414182949181796474078722274094471286559091077023579387041934396571176398188959594479219629247384023841717040156006995703565457504501329338678787135164303162436440197892815031937480121719223282798949026044352122021013187614667368047033326296619586154492763352487257968430144013662228087242188799103656309680288669555722665160482596191386140743410541767950570470955315652767404783244592151413586819744173561159834583208408434490775081425580385576115299201479982310609480654957839810779106996852653439537079819131132382693111178709750863180461747154466623534975956123440380686301079886276738138291077733592398478105480930369833513466660110731383250528976686877459209358381764716564126415177273196529891221736995697056210322450385837543452771878315467650550446857749319556472403741180602851923562047109258093647076638455028328067550330204586249567759404414265253694149499720828999945842683770717912151931196093401242290164858819749634741190477400888535112417091575925912271912200023595038605090423432461050946225933727262134139384367536469275995954105298400010884132644471747645201232827362175898921411939999469484413695143696197638427332562852325292195189891728452431238522542977108925087603397803704853344877955831559366732103471889732998453880119473881336557252429751934428700720014488596712955368041274823059346118997178806917385446714577001153696123161805950978178341533990013984814553540993774049924269951968618326992699463255371558692287618605060605070618407340005636752753348860367420234751563736897038867431082098669940496905026694792314736407871158581055060384625155632352632402825455648345993318558766122976698145674195444510690686641152836191637491422962584567402516782933244457139355438483629520002216229737284723807839531254769532969784122467647668977505037787079545850994657347661059592826484791621272651473337149747860687248746564684579965168238180474862086393997021143840036240312769531501345325318657440819407281362545257356887722602317602444205453783665047217356400577125083009541394903863515749564338051732578699647893272997194960262645033598878417703573303000234320654916503660832138193352887801404433187714611296129994959743894739563534489510494784897683129617344965065259684060892493476477089942072820270146148719698074132915005681971600978721303323093644911177819347440902152719440173702332500773970247069591851387676514475453759079646678933016877597214891903044162235645781971948822152654074838412178549179515242948827840201210770816558501913982872527656759806989451550024229317490320650262702183681165804484476450897317414136714592083261735404012367008285141424739892855067538334310775306655263168437904199442474178093026021000317329453940851262790887632294331938003422657646448410218964677355701781370360619375483352585990498838703303841963767954484836791400180381637472848168007676647549403949723968653902247940242154045389002702761696728887124278579479523840375177731466083373394630238767293551754451497721243855927466376736943939648570661929808637995671074401258502696563045893078788053243886667303814075497341171965604222028796337791821022880532096736815097518995208911065998669888526353083761930215746890115376686089967947040941806265655013528687408159938861203220301115940611824463993004826560945611703591077627962533041737481278790518083618546052985558962923200090073054258583868325685753395132591078049242117680415248313518874716047665886696916430810481939661393360238906194759755994977485108758667961540758572781419372162031118872491060558640461609998177117206728819948075157692716289296430078629346014467144185600089314808445009596723103853041615049868044806165839797168869417393646784107674404486877969012007032100428273744747962118353262324320473580788806327282315854970470827249718772147452155040085942604045109120883734325291529265324795960425731385635886832280701400302640806128800600088986419163390599824486821871909649398489923383014947101750804969268888243791786706157593446494426164725718662382876139908696871560730828565212805957184798795601831197738302705599231788234403845146023540722630070457872485269849089415260947595830337752239347678752741044204370656126093714137265498804706738249393123791186525951246835828044773509945807292239311309727939873923618126319430964818985368599448200111532618422290662747265405917736257054337610853812474422004912496327331869587600965689311545323592213888768288245458065167535844727019592819348055063729552313390331134076734742341539035779578290745238910940129926798717984116986234195481830570206265822484678524225243690201357975765966237051951998310598112533044194370170708540951779720710031903210254539840099570709425034951507468568259804881471790131954374932943997610980253682386969119211860152996765131786348129537319897240933067565609559247411435219606706905569205361044842447693842411073401142783167003020030157202292510486932350616887879889693016750602746460040803750567565358033380661074589900202333737402990701899020286057637512326472186424125374024349108928149660981678088535652539378500547619678255134519302429379336581191018869463638494450122943963593843983708812175636529967617760754319259549757181963524330730477545335284961747985154525680608059761652232673516453192503261856376179554319316605136671690560271379830548687378386149582306474057079000550956140941488466468925167549020880566248485045482789243760710696100681780337017185337794054569677260824770460813309352748103701270294773274892749676221632671858847723680744166201266479173969771669437798597006826873645386170044902357592863753035701795403754916731649601332586868744575670318965756758128478162731818449562027427534711493645425733276814324389394847041701216147439164342957035174550064923392731897531854422164171299694252280232930044425895777067229979438282423015652758999050889012709724917257951796034300279087595369363749423157881390992432104596336572861894100397689539625045793097217648008391806433416842345595960636051407640895462045538940145328202278431586048556523492181149818755384245927281309680573529074434238642206736990524998691546326935925892108869764363665395304331693696401772869937471319914219466699018819669792950735262617866098057884586476483082271411982204457487552008295967208395369651934730481452865444941028203353655824206922079114652126512379567325304406442379543348217725964010450405521529590523711128397461803488849033903261962295634058432172662590918724380437455539372795420118161642964069912361389114670508400459697696403741149670733801358046940853657779263093087979213646549850383868378411454158437699106127814756402920115846953068139869845322896101687932634783388768896939535265794273987795474707827354512094870210615857573511602368001280343705572556256281363190121796812229292691189180211417209277529969265604100823311934472197666118413736995207824595911690689901930770920699488144034361405074582968281258752782726399455138641362920808716881307068633383308545478696055836034327404712994170828645179042564433509448476457431123170481780364520770240877473374926310431750786013316936713012735701085976924721666573430104443390579774265692055847804098181084077333361400205163339811243195848178198613395238039749932769835902219697046599303645511096982361368457149681409307152631849378259981167194607749171593331736955186910401623812744787814446790995984509901053973220330122354397452852806408067098883868408351718184902111978975948367250968429392800476494546537946975983859111398233901221938668914920108153577655224985657030940585193956819971716913535798408442670865407506989888338481665595489766925006714758544033539618451644357487408115325880692324094715554442231033795113769567046232793922500077060251195800194298864421164216203293140770529395453925069181014750252623128759383990698359456990848167384093955059249406058484470183722467320659109290945366394074141053343040514502750499462644329951627531939749277236991857180243250799244045555336978233413544326413425602063534300103899816042902921755320543225046500291943416861404988785866881192070395289531934433348717682417009989628593525424024107011846217659417522681368308188317652004873857580296610179710895491275709470464897591296390072546671883421476051301678264034091471201256025988375132433358441316971717674156298594784580778851144642550591602727005681921113662696628125535583403316878555469027746585733590816615421952513661743120063293794206013065430175825982394689564946481165450553906244627254065254794795202197014187800429113578500414996903535046288141803055144704499175031501956600588112127833344967473201244480323448024153937681096744824582413120485907926814145974066673446850306102774783160416556876227852468750588825171361852564847224279604285954702104738132988579645354053576036973158893684191653690320230573683608670042679093624237967845317563212051492251376478156174169456104165412438375948739909315927447598323505973749567681311054718472793541665153955794820362896787734857976297545025441801559358908543898442226030486401243180396383788852767733701920629028454515970255812025043610060011125319444268790167726373227858416007199339131855994090743107954185932621994638931760012279905378934192650360136816054685643295503601957337999016863389975288937272342157545015704697697202051521352937362952429688827481412520481166507085136929208037956325142566908780256343234295874334038821361674967864041557674944676026052820412892879628482857587523410718055935703665304323491312090795941063570084350342194226276494783656407869698085545420817401207858828848210566140217302735522770668885007810411215480461614178499741653525049361357947766227847159861247647600472289601309415099091662467221849188974344671215974372233254992960497707263021391730654417298027959803490840839686891586176939958580347407098605528534254037507350962928456037058606868404951942318169717076155671045845172413619222026430537540284431191938280483365319214933209220725472825065804042521016967359626504966510734195867456887967174884182139326171165793629313370387756521589087924527623587342024254231401524493346031622783082427011737851453990421333347225086770167243572991226528039387257124032309222295379682964642162127852153796011366273030940788449589057703566527792938063646821361177692949519022001346739198097790273003482861198134845463779127723892866141978520302716583638921538903853664948761237706457032302558028619295867235032826276888977261012657477494944808265711747239747566280525518589825672298259283222313873588459157106065856948550588358744321690464548886033413348131066118488250000701606405133755231889537465046094799207300082263935640931044279574906637801196453960794266006269733429252461764386004407217669508649692683910010884208965210974673506346859622655832839125235456452729877662007622203714877325370704001555288259701022752801596943408996250679537235477539996959101123697585691772029656736106129758080507738874803378381619044645006748305613803852782136034745596011810127885279555848742099570997532337998426996954892090174196616941824986930484000101744767276546513339657430642198365336599628086516296860350015897647564510877620726829637388670207028515396419092401614282365516240296506535725876651924647115358108712955393398540699410330023306345798553106552368966113255923134596483291185676723039876588976877497018479899760512188132346326165330263812386365977796740332181966505409612370632937163937970982730985807102325720127774663500897599751048806023835276507737923092944178053333227277965774311985840122566824188021920896283199639300360384111467133696976928839344849126026434890656562258660577543050872909959142113234247415745217210997264898073688901701324718883512120882963963706121477926612300550517102984556687929863820630160989731040063376708390805125450369014938043791082485082815944360135847458409296255871518412176344101973200445537191292154888271603033171007058880968600777417400455334480007907611334720819692352736407132385274587098196726475975122369254394424775988902920962240003689592834273016808294810822831019859702823763908002086912033595889718026402084719243016935473303654146189624003170811373922308560167350562629241464628933862050330552200979538959383536318097955997708688363570126870314531980181206254516410065118121690833521506794941645173040395957204680026729505890255151418654661138406568213727380092844267258927761475821432159083838108325688200027771555348943747671302251419506010389213896395669029313148892399142685841599917428266827305403977451428318952646229366714484495738640291467612297750018104617279590650657565133276381016619047817586644566576952148650187685610264254197311264100545329300683976747073133363591844291314229894108034435360656456635829404850487331709823240172711447489727703595681906320291182104232616505955657821333235466544828843590617666057905886142488133463577650590414668928857764403291770424617153919437978562515807951484779669474821402330746784641397846628354250386235486309926434804102944456735296987604609063817809653069826903867344408835380167199393689207794046857518381512365447286840167040270758845473725619532434134485260990355710206505867908519137971586214495398498402350041123635368078381302750691815461735738247624757608321009623636855869762977870095345565871397398632446309132942042736962425350234878975343551932814785658361264832498092196522516948226659831115983502291691319168500767272203713642274079617997881037120482859600314332684314168446961258365213703499617029470673383529492193843255632077859650145932175930499231573581117162029901810116080291259736532699748993578117890926453937695106960835636964666908632133261369418802954442725957036758427803349634401574136767064815209147423378181013304209477479603031281914245492488931706073435123341575415823991861915009487681270693664076932568487035256589626194849271556671689039365798226017000651861844156593812177985717355804409156075986829157259752227205393440982101817789122843068592282949069589653369796636933509675093566416810053010218058991844283084544177516147468041428961544543952329090105800093094365259910801197140023518394513396121349641381946888980019761200714423284974551915971352136717259079743100799256777862693105827705007927328057219130264258627625438226447256398317579672160608737722707000211383634470426836275780864913835914402751480434592898122034547973385301745180364729483484180893408909754492306224183962125687078152848871559519929491655770428252192963628350056233295675340984337759820430551727471439465633616787527407428762750431745454457020402401252976164436649771893311823574438586583115314899505808029502067644353594485116812791408139966578732298849318213999238289018453372945652410348441434556407827131462559475948024849358397924242341648181701621085629510856860862854488298064661183419365886457632109904168712029069324966634820415991689866437980848440031413423221721816588472601324356712558524510581693072846569177314291305312477189440396949896369974477897648609233072266451704562537181861273035840595451636648956104373300737712722792001565679953780312472059742971314129812594167703085271810057454304123955875464065960326911946097951513448828080847313734544451122987393090658853204458961489329057930452158175223990889528793877553188106996587993204339705348998986982087673749432658364997215448552677499657696779353282746956513157735420665082981806885819351151272338270936915963092626219846068117989951037772265383401890711111988867376398054469146749241853019378628912764358199547234052453122115015587142011411374972171926059633275477219118436855933995321993692122068219052716822095132194104553921005906743148571423144596303171710005924264004820075398286689754117734731085931393315018379984922641585469514666941537005433593796461143682055312126651162727692102387308636872620555056729294175313712034779625567845049020940257675630584297124679994304462305910173994192049501943426578201385854063888319578434163691881222433892383511437432883462883595907460577093781626611997342538515516976845985028460355924847783918179869129025446416990685428988369319611820644335057368707024281107021668172609320522435330267075330569203332144651770638887253973735002715832329020543641761557879085806111808583975848034858108796594902028440332698850788850410604672230917125477633977136857230612434938985699150256722605084129723699970048392506065620409189695263786967879803920141504828737905887625657805500052429062734639623756230546791186200016356041989949795626243092720912329923575466535776989381703079170253241509891565875027238224940862156000769560611069741126894968554710425651673417186059523844231724877377084623877721935512792005988923699722841500482610432480774786559920699753975746365037944496983631750873754505132472644874827536230606079661522867469725935675153815751495225657599421353878330715213388381287838596037372995200109160533583875276449747619863581621253122815018129059839530148245254145574545262127381885733231339284639793564081420269729234901283920258090514912618390906750618845319753370206406122943044442758050647791597493365734015339263976276739633362483322935744401188083111694414879316900697748885393537311971733089583966445515230348245081242841627931494543223205893191788683058699595031220355252145614461188442169245705154832939161261219998275052503305171366608942296293255619945879443903189766309448455165753456256105795921957555359998441224232884314397725555958907552584226814519448694512285358663934964649098196986520872113445009148281457558896903663268049131667566111853210320177805664342025323463114769427879123138663541738735869573361867860645304827579405181477872073398079262030087268701511853615188168418795676731617434116506188815262474576233473830652344600733726228171628892185389951283704231099726832482404689760712610772927673866748536052121083544264424083467489072612198320813136625128579209379349447984214552980992310200945678628515943352641373642988620518419904448524221430654756041892908368828175977533710879452379170489687389963754793010585835172162411226776712816184744797544675782426325662088509939746700673107641466803593880997829686113982143375452054224394455515224552411056742885069938844911618051341338082989463119569447115919178977868408695885361336146527206843346712801595432484005956746431602133261804902254657602752851258884732021328612246580728483709911817719811773403031426485356570075858771919282402433018024448942578482779944695929559722124686067773104118884920334593870423153518023312228985835825570094218328111558982401209927111698284398706944918607585253268227202446492889602729069181724346832639982371358042621246086461059718333990048700475041870496511020493535511469207023282048589042226899632951558786733716744567250759453855233688913964583988114356965079275107257281829764258785749466611879578974777334633593885187835534331579534262954798672435808781701369543041199621598530392188256376874633299673717884953240628946913889665400486312210381412366007866704528294561530739712384090584763012937312644259673745168454523282008773190861606616271104375700363753673287387457040863711790281599999873446044400209637492980307952133439651092592285975378753804199090126922508374912552078612628829964493775148661308788030494559367121811952027914598237442990214066967678758261784857116370525876411017960190069423464105233600671725615398987065067778754696715036601334187186975008674356777142058842287072890477013587751344553726974710256893593773887124243541246828656182201589500573631487470845946145918615162037729287750443524204805449123010668298046926130094812295766751972773606190902617796658699006909766421389875762438801429139484763447968088815601346682124774340541487782563092648473503800575923233140044874294870719979705193242255656045511091823454935700077035565318459784468147965138218115307726305488752885084251997308380549931262272877356773415628399881469811212593946259466798569049551413395063484292114082029588551667216821080564298245324207780699856528831113283313105423047597826912011213851120672500872789053347204191642846823949056926061337253510590190971168537011742349556211827112742555700022702113375156849487386854047616041138270629785480152691116348168685282562314690982263659384134633444245444171704975597607839773388852552457161217007807956310666737630585344071914419759822295902836867509851881258337629363683665510998461565760457789663513733822674582296800171795937627401806167784902286116017064064847070438886436602221558180176298784121234539270109320057755406705175741482554687565138497808846429901514413955136600628113485654254210687663936392587950136235304439716895383783140839391077509927909304861533640183984476834640253857687815201939752103253627594811855788996527273436745764555848458477735005842599763092547561143209824753436091481611774006059223825527519256633348828676747120784622837671010162369029436466046792250758536810600328446711188370760014005975849373630863654333741977367755246992586530502773502666067141915566668646878865798222090189527883331670124261697490943007737299523804441494949090278353108664448923772137490068192050314176278658721555948364983867336045039915322558971903192823945475847971318704837628351041325911059427275780767619084740061138803007285160895891924096067791122362306539620512979347521229589961764351693534945300471531848636684132438940095253986326520044771178924283201037798653472199045728454158518159840872861693013221494059219286879970979419002137531003258316664068467022616028659003864356255053547960719371366172732287964570140250993050279146425178616834860501298537048289185601677357776054977918586432126576532854221674586247820858029502512745489887621701578417986064809125258689880024112785222192162068347169316756264167414289405287129458084848157356489635507657892427024622932995829882391184588896203324279269477664825498204052593775196216529901268728734439090539366787590081114846472765877896976100319210269910132162062301012710045371083150638065635340568681262174115849339398477967994948521874968227422723906588455097783877554699570618012485665729931806079393161804359009347873336456282811286843127064221111488812324277047497437527979413888105075124775700543972794338828801303865815140172361378687501563559353615878104933384615806387257121693321983303131412733546547559823902593587877522905026873077701209078485266594613816513423351252932681789229723762157033945074217211595658737759824570525977916214918557876911508147327312575422747161655592484184842005625540213971992969941053902136481835014852913121891424936718303772420865713793625397625519597636158798322844373997357370356219297593867608375288539267280921863971750963604378110390771663138879953291831958949385922443203860685237945672032888003768669511893357847151657089703741030945086774971234935183476741378130121760427899365338536330371747799023255937310374797457884886705351914855496977403274368623829530490199277539629589093182023949405653634887637203041965443859987526787138414954684265289471620317083400036608826324009168944655531719537876534741119669664145039337663273022670497547035100982409230193423882938232147972297058261305081557518190626385067224341422002236244316687167144039503432143823883557088057336724805709564329970545677799327598711558653323288921565324814720261799370076976486359291853435002067636323139456947225139330769377498300753416939815966644620500913645446488833444141314552021266080747179803414725149231989737306203672375417022536593464041888046209337465581894287471076107615179014654270581140373763583598308878773919638189029751464541547507518095416232143083811067263490569633598104404585108904360087526958418208072592527621453444569729259187580226030849945118767846551358390813469785827939550861364203028683618534357428971306494816456517216609361660827809028761383265584227133303099910750459526790038051658825192945961749929757064993025502122226550389388666936111027054329119601081699282383329051233594538756062341259761631719241646217107796923478304191894587056232420546617002154080579868302319460379844552246917524750145021126829317244453165402226261775921542670332909403493148966654007655730238445952940851114827279003853411956057854877165354975387731149283095530706324970232586873207074139142949914726976109660468788723341432309957169100477941192005743877857653029103793689140307619712004478181786973492407879103723224392454928811078543975498371864102365049117614464077374892303450348837494023509384012173014909671418997856055063700329516054601472207383944013497232842950684192960911396491806168737927113664481040610405257586205327060036283922881916674708525626673039493848468767015715461156482490717013890041494193962556246462227078200734043324672236046243714461142356716689910569421707637189094292922456021875528657514688363583494305503287634446254482099543250400988046025068669700332694633145583171527961976246208001895426334430564414481721536790138970516434914431287337628196396949016893462816990167358629371844462871864444801699854670980385420478216385743947548191023469484254860166330198087118368729800561059245542072886772323957316861085916483932358548407615833949210922370242209630511302368743532847642153127218710813030665385474424511302057281812397607654219548837224165106784670512829447287500338037067982915293373958284880238788249306754639273720996578011194574919458952068732234652449879917973192366052633276456286453991286097920296146906279602583066802496315703824003929991103013510620070289227683167238680144167141831320918630718166845362795085240149343602155340445944265896704648868928622294577432714505480588457283111394268092530801058452759639910355727390964428392869963855879450627209202566135916987108392839080523486939292282994029709677483847591101613412920657066601971529821090011247223910593065846220888149704775321413124375059070994158311933311488449259036698763968383954306900316139574134564273113928406980734999841782873685550085645104275588430911486477777812954186477139332959577065984829045952284387251043960330603029602325923025086282857327800038269846181052930107467354117408142105897332198808699106661388725052310210346916321950507024036878482549405294160978965392437866213867374882384561422627213144635561205703665806515405901640080526268931684168593759616140782112028922657160008809764265096227310886484356188161895857684492746667766330455640943232341149337675498562237283475249285210149588154434591495176730214842495387174381845900798564599968122468839668259995058693633867005719566979199644091098932924558853238401014987528993029089655811615333631749071670874317500776218214285669859298286729938260715713221302303139343518168342349825196315234693398860490189905687610636274315129009437987678887776366231339651111283074354447118981436044592782669213820877967122544113185764922771315841409406619911163556483467410191530645371608572275660923081302055830489187128110473891267106543160219527500516557140323932589135206415275411356171073060985553921331785384767727496244936707655750133576329719344918342528714658072757771118420584749302827694605919603066319791033931255662717949236115702003604658471082597240864139798937378721261392473728527863678298906919790872263276463896826110524478312962338137276137380194776891643111097101623483722459492546552411065184008646414652322467936257381807801436491053882101118129356704183199360712062768163442581576077393896003866979218827359632036300741908728774164905652879511206425995928801915064324365030609242444851923878819203469821596262857413509936020389287402126816050761512986249075663281746356538274932731870312868017769391387254113387624659550014381450170998932671488962205692380238556657324807108864802749098987135521145473436564744524080651454795588216783331642208934082550715993213000244634442817477858930427383500555314205237593879256551591015659704346050785961779897469440087411377217936933992421526648879603160317966626506206142638185691394039606064388375935858378463990441062704209733701602731308449382771102530744974243452381626587997919332477971361468255345095121891581935089936535864865157379885616365304201400871315376311759818785842494677100137846607706151279701090048172636646024123239042650278833906579008049863477266407405067247547573344368117096051815389910907262337088547565354893812835431464156212438324395941339186775437445354268995609915418939065874871334520440107206269319781879322293198089075019008013815769819166508641104389385255484700672151581525092231928543671062640730495505824326271256703634364762106669935854616067417372529671275660797509529615926096120354970769357084816301215035832988013792224455776597734421742697621885420209265661782766529872428262916534934378544272322475531311966239439724391957484654404608698820473054867274019570385267689352748142002115676830238550999426678590782385606010491526874137525778293785031424510534511431032374560145056059086797228200648222403981440260476164691363400441805373308919517231509982810369515597926732505529462119278728183910936203809933999283857980309888346558800156727116410917154610430758134772510668038058934798964182026627218885295272881736879948536581397633344537431277774357829553517547822562312639990869205929775270376103945382624858333023293065917836116119024875524186335328454045130848968387693636827389672560221196408321221693801474898703597371652888587086495348748766880006809609874782238544009509883409161540636762250494156126329519263134573203663622717828917597040030424418772834965416287159372132631975620808318647207226521754947436756635803894716635981326906931646801836233003484094210158268295153001966407338849213705893859609200842389996924917669201150067918046533762559389178422015659755312368527871271070962821136560367634648332331128413724245316100181824544158850024390673112370786899675212970675041162786200416865311322548588398440967654056300915033722755379566574974163794734922486144211356137261620405459650594808449381284113204848633711192201324064783708139261194594869273106468379217729576075311289150238706591658277045634035628787325571215939879725009603645512870234793741645714504698048089991734577889599026771746706321184944036870684107564734453015108067508419942032239103756751209588737435923721913108839791570550994360314281715562897171420014423351400761441651875811121951057769749660332928207121257415649531570867089698105436525844918647327304122603186693473481407128343277073204639505031038441250130676583505943728936447590117715518706036550342721661448638756629511546235401878714626634189846375820626477491175621127356844678074424043275567119168273446469411404778258055138031130536065567527554103333041962127110621035417589220644787939252221159714574974915567414089741732988899058336436805825620316272148526835067188378604000863892589033850283743078871371081664191050940051524132071826988755924805495135101967896696463397256047512935080213935397920129771889473544291189041480086363440225096369442363934896189800464089835766212291548935877092733510851138612661429992464243590597893144210322098288569705833635601234099214534795783230133759681041465266015210093927435593227952442553013703620415610042419598608406139270335410735434006252045633299892805430614838823536534252358071003893231605854691630761985109515287052387531861268385072392998741553809306851534551552533284184966102761914675040714631351705305288035419425560303067011913004471358675464496475415497508503815544384030856160117081505346878218400480551805444179808696573397351735646390878976087299733868703870385069176289928961332415738546163320553537003503052899958618151442677115164286428357869657428895568599889992883611411929421000790621865240492339437145108376424233854265824400866981470086570759997412336403870346002237757482120509305874636318768011968144314663880616024056632473777168572740211560895636420841168522765674964292893977414662394104754511467555736790695411864644115114949025888914750145249954729418383940109618809637159569650704554780224014378686636939548110121442467493620785935691997710075325239021402663221366377517772617172568214133836899846027950384239563984348431109223848746741356389009972324997968078363652965442721364058282946918187063308329281662632216019235403217627253506032940597704393617742542690045382334436298972505667736513346008337071149974094079613541963068818390670916760034097941624949803118708218586401443752663808453178309511804328729468381882554208375454770168299455298243415031427128586402927945841782582203160882958025363372386923569989472675781207466294130465544026115987505645866914010183205266254946208836286946514703878374197051951547125339451025034241314463031428262941350053469608147097715390093570731591291626153877912639061169689542581722796592299896766763688213577202873456201910996509903446644925661788661368542829353394547736717371698953124196639226668363226490423070579161215363474835676531612521164201095143707330520742593996022025067676218897268895383049089638398106243214119257581660823172555957207878496937505360452338798489113004693412285896535817462433856862952999260259195004861004834957506523543305161519907328141072464458372617812478675798778172194318631564793028721981651825359493114454382883773600636449400987513542161843878596687480547170246937122320365555634956670660570469697908146493943488902944725223328275937526756816988835367125924611981005059503089253010711412663511581601008152544845279227582714417820005900070728921663420746939972765684933591491176082584138788540214124263905594442631332252838209385520250330204467781500586286976852338399552796544823790414209557630452177690632964170059792606934950800980422944490177054155555028950080005113498937937028554125836442797306669129447837212667369652353414207415673580888986512657739050101445243805549870948581445299253988185297483166424330913536302804451211361180987168443149654766681709386009018635864558890618814573660419543577275712739703110378243253249503745589686030354690598045800905248052194751520652219263580967819876566528951863094400132088571842769425153092667310354294661072422642012417328124982734024471508893831097993799104191823362760421232957120966489800441958144366626135667883844511635641210502634991212373097510465036719484795801815756801864569611752860748748706853045846984366064462651375659406794170630353795190395608929318799334451539792106751859809749567339332814242220908104274547711587760765878308609022029819679367422139756235343935480852579199846024451450210139506819100753691818502346618664411019730441241908581028592706457100876253638318638827314817878485046137842627353996844733104327977555077361011654858961873856771819073134993538629615963029905531295446134362263921716597956177390604440787507813754945211973208478302763224798595456590555972379298056798288462477745031982125326002723762738858202259871195150473447408908100214612208681652785325032109973907089144542968791040634789063732355993282192137909935716303107425377644524774881006706458813312053552738805715080858039614691685116704240955588373493909588361182387348111589413513835293078054067216557532640036939135084286736053291648090977893707678999131288823496433142785435811801958492828753772545043183137753941016461798268382531938115361916613172792805181395072679726871242890187225076988464052596199163059247473463578164462584460739916830221792926319031452664823790440943089391638579328364082214116261871962923954843267499322484787543274961903554684886695745587239227025492415603145538523835263508087523897301290709651288195785945165578160533372782250384075401639348629865270314015907385889723535117042853138424078503497352314654863100678526005215952814535083409330083904132756577588672134490636402881732120192091357497333251704692219415001144713269063552369796506095619514156658921390896624970432352828991298050245126550646762131164362638879059706099788704131651884837060488873005074786018889786672309118839311397065833302349621339728204962186886162200940297090167685838620504649347813452249484783613055140754395306043324658841839488556171861541893350376978471481878707861852009396048662631159963019876765459325782053565286401082972451369529098410908715489096308511017985549881918300839464500105304448525482104109706908319100125811964904931430657358074492298979006460713249997840973064838157604587257067354293213405977888986237058552172372052056143500473157313501598234350726893415340602708378476532675793464801910488308685467770611171458649509076620849504701685425522710889373356784730209798472986028550216365546289580385076683886766770022293816221494634697935735488963342068079540103477113287395702090657532461445512500710373049125346262226777757242596072807298481380996573893077709645518059552440606976380707282773800739929665723916997901790484538398772684135340772759911540102065939534115201429207990657805550524391062456472669508160166940521470513528271635119446311241414226604370034965059326393604089572386378302467738004113798401473263610012634311263901409243754773178135531349962015973068489437745662697805643005025511842706828816995640996773071371794076298295654410357615196833086585390871098908572158514893979334011393716377392947876781367077659768715495470475543397450844593525770360187091449084343002556657590746227491817861484622443653505112916087818738017266940366518391277161614277856012970306041944802636057144062848820903049100874609890764550275173388819318879857480311682930965594050197791408366431363839136360657430412976718754288687736370018617848937995736892537595010323245546710330777418617765122150757854850156006004604038088217679161339588881534853905368358356573390241123654233976580885456737483050504020425584747888979290739954188267225664515599934978992800888484958149401181152115527508941684054976831715849911517342609772250120153393846598719058258228680581337546183045434405978344515414835468122506451978577597618036886858913232088331224798880732602522465987976871020397812344751824793667684366929965814654090887823084106118409288968160071712549517908365048854719991879976444479088555317371564463965633215036771533530063880269511300620641248805912355313294397187124976789814680123049044248294824536796577443839202390756453322067763543853879465711591288967022701643680709817241698280145657072147598669858065170022191594666549407141017339115490121352471352786312388148766142720132064222524548421187180105785237504792361380061458729999350993143642905906165159387048755156102905017525790236236480539154631958686723847892037566923129155651355379091575744539779840678827873704504373117828571058708693260059714821857029844574434463623395618523427676912525342920269065497877383322871342775826987537430368613247671333377253498843062125308614887453701587917321644809103887259668227305918358451756614873025344364318290838208660163042706369280711195499400761984041535415932932349526793760399350014811985997776804603514098812881682743211203127555326359119596819317604370002233957772278227896767767542937471756655703237166465325218413676353978637981152544169193604166664217440141349349640942839724862617069048210774657463946808337682164782055589093550852946100291851793044907705587256255377572120524897879291479336006146936784623649990755512473514853196373285871566229159881873314976325785177210948254087129953767935276586937432121237834116756743306492303680458717490378909996726513749270382954481530318183224241723089144736716902447169911245337722323139072122684696234389961354256846237270205169150415523650394954013907067919629402418703430548422048936039388770140133666482029358100390207613117976263199869407596628098517998192357168172972795817297158416519480847797554233461881233753825476519793865967656046944806883586750927561765524097327144335577689997899094547512072958624637837180873660206561399449338936801773622772537274642739151213198741058968148752877422614083367653017460407322651837766004260903336597167693360292202099770197681756480137965379521830735628737916911538739615486325857127181750951633648710399132704274165470535154858496545944443528680125665217495269796913899454531037433079246751429804456629705049788153075164147463982117405779962995514553087414799551817186674764309200795479585327263659021871299408679299762465457086842347330015326249530254764736907456509761210322718351676039871020189782773679187241159253927019128950824348351148722907761179822674334357669794073606038289124694231304835992765126630421654535217633212786632332597120583836662754678387659214066996938081519909567181314592623081221640039853298815465827207563118613016786301873368547939077258856536843319856528061877165640640846005626819437737589959596198806979288224445710779753720512351399670103414542665571714263979042746749977503517188490284200084733689560447914987590301979425422659962421944501798290665007299736698795587021362020825679895029487092063242012672117319121447994926500569557598554609723990180436327544324219025587245267365341472201985428975429545465159208862602699271402296804771226844822860989339142079704235511465029560416491740348805791442102730784348601012685703348872738704969788724282471511588138618594251966864502153635314878908810201023670060412897255999746930825924838703806414163771616677309365770204873195255476282537537605410382103036799618590529537082179071010419851110571682302421803853993714831094595966717979011978696655426422819445692458900456902223334892709684887032767000771761070524550371096015300654602984905100701031103481079918586367258432140180822748068385084131042054798377461387968365793473608309863291445475111770251738009156266159883824566487307239510561175599059161717761634579857362303461525979635184347594293467605287016991404527432926437584041684646719079200031184954786292240125737508509044476430044953252862107310360395917374505424098004527877555808186082779803858738180072531557207586439895125742954174625026978149499636329610129514565855942170953069822972518900483169484363582567231574482954000847019582449163817456772878321734944629757566106281040323490194458043663016368545664023985395880213575199932095673198750858769084160072404742376180115832820526504623816390113297207037717681896765277246489196766746120925390368052034069104235302393559702428605722504681752252854587718993414808896113738640905887112360779404531924235941028098759991840623606946615166883678046588222749184193158014919031819169880288848734803044062308965329547605850832150800124035329200049351644618245658975413222432556732180264056143618541761808396295144217178837720679560411815942080332517943698225110085149020959715706151062623013297196702890508625012629234722523269517928634792796949413410000842336469534969248712664157192437460954280475262673436589181707702917214571376881255410331735148294688198900791870226573601870738468164914369998710698460019168909659372024188504797243572837638913875275313600298245893185888769256121988251672940271416627411010905705167040440240807140649882882985695919734610437733101144769147526291069885382513703853578097465390477906725501646780336018167932988743147163098648057947836254965783376417688679087983527460233567625001817865629403176703662737302309237265015031869264107697468858684374140692621716434662553291614629553325918200918687796526137256435633065693032800057156543535809233076565795772013063193887579325708692442805146587176897430006920533072203251388620140979782370094896330559785585878493114238313860039017378617552209062356810032937440853412640038781539652055167556863904484472350354176691754806153804641474445076554838518994926417248338171650941634908813494551211465536997899514514123030136483088655984334157677830306407650999291375965937732852848900951058617801653632638360346033958091117832929313860201356560139025057986284551478390706340714849145416133152458876422831010556006227771410782662538967036056454819731775310733683758903516050091536723613251381280187161193079201225835976438373037059211705425795342335819801531851512604294898262010078592403169382803396047268025850129324956056042463864006433321674827839722136051484026868059994282735984112876088411089350780405085800613234373880083980984059005429303017718380077519028171052596650391779096019083197492602320356029168492700346547031505700489377556371112640943415616715755224149500162735696767253721992997363102773975492830266662742632525460584033687460373253212936619174796400455063838863938982948236983787509245339778243178751971179847431936368164143014727051314058620572133494425048536528260864446164422843850298557364319120633565493935605282227513765833007498595305187291795382470946042298507110141679017855558776489838261080439307310600452159165787308095907827632988056064229232120232077855561531050450270731776024483138549340474379703990426472194245081810695586486573927624178613863402401106041352026402662727135022116124838758540952400872014214462003929370583436197576481019267736340022154316600814160611606409952708962292182885930991787560903171083557497351817308836315172918737386698062090547024289635589233454592571183695513439603353613464486035196493890255279396853650534027981286803044996293254654711754305876107969995472343611613493541234088929457834056858566597253673176557256497694857133054142273797582984878705336243101326395879860008655569101460056343697818915923790484504172272211386176827208260163149345105317896230034308562997973575201294229120391135746597393937081862784548327039849487109509873607449216379654270600143612989064171600578857760733042307674963549648599293139697135128483938233910949167588127609318503436730019811259069796487490901250549746976828472000553837348241411931946144035624003740911007021800262208954655465412745127067062169714158728110866892283179740356698924610404876326200621906771333627520401636770973844571534830495891916508809275590114017100518575248121483504767085020112920564624109509701245676160173843285733272082773188172306247453368386893615738339752968578025025033317197237773991740399857825983521179543913002740409667091053284265071339805230340014103416831698768638549554703951339378965439153850025036567010030672218112617115715652431966179249286065748786228769724774200779128836498967094983038864172813042358981119278282474825746911017632630117113528812801038314324802813493684523986741331047795742368355088755495752734885269651357615831493756710070034901352776049566457901416645319959574974469904335987971996950532065535025954725119525724480804009247760329669175706463163447530864685474801740459102398530145544357791297359610903939709449797803870632953189898664247359223668789143745559594694968069281187299469127784323704933772982719772601713197095363315172659040397132878904056511964061802291427136220442007053539697287187384030654689749771293566238982663862780082681900471412422003154158250170198907990430390291849927767740231149383515996132359915896028897527030394581548554686058925716687784365599773020685427333836251795736435488710764330866849761643393595832018354245360808482085732918191056364111745463879494518834943082316284773978565207368969334325050250436900909851852888749279872947282241015695303879640216684095715413326539361378451395527352942070203087005459922745754523678873686946530890764964283904057658095229327706620352520332187582701937202329146321104395636163450956902557655681605356623516437808930696373287785381023284864626846687266325698198360245534746345397303483817702775174023146485590687136362666347792755931475900447884862052529926428599587241086470392659387016740293072075223624763013717247798201345514618159578089178901272700189166373095118427306152744669942657918888891004820762432551044813147161553425124889471171414604274991283651157749220077079472598609864961859113433296317553943351109304512895075736306266424621427808791690166672347976788105603255886001036023066865884136930226697399430491456042174685451712842941904983586549824881549289230213551329325156730699100312584637670123844499518775598994218928084451700782150373470241370410190901850072082058227262399872123807410197388023939320585419615743863954886476480466406836821662162955090624672992775498684792551449284507062165229807118061373068357835524421515870422601289795491552231355128311452666922735734568074852693886830072796091432020066141139042393865249370363161112216201292765784105377312417069744162566703894475617282362956728431447731529433667004278779017769427383111105590067980832107160918994198885070821162027885238137013430658509442719275185537325672811919014776236383593558281781177304166418054530456309784513633613809163470387909675554130107370809866501973664840305250816943191284395646243715392885266696593499359834180899748408463777424935113128211615742306853178548949360705628193469437595499671729825850161001502467657841264221268221765810910112900395628255611433189951645027024833070074755365407224760262499023610504532330971467113281597996394334718527991215948051590607304460623637463418896767032921495615344057825666281602800564492322762233867311277572709870836544166101848142293353298882649211164909100874369492168360208203466962529265862059184814125271583891869303912908127024087291592662803975635633439945431421946162354273813128752681409561487222455045893581750891140628560610281735781110743986723112233210599412011972123618067591235467940114002635456984348126709828026043262759366462123313236210893887124780811461307482838181658344471904722053312246444863743218989621364414870313744351120251040444217457840740750928115230874323846656284788766741761459597125297529715181445132249752673847133725359611551635231386203197159001722842925006932912305231587329029518455372615479891401699958467669851090940081326691061250819355809736662819965419358446577407688916309688230499679153080053534242772928140157618746775718231907365909358743689564448461517624470046686961235922362111473849243664971358334947205788427386165462785205476955166259824191066110441350387982279380557373590330159081992929793994801333358747767559226766259739322113821151996583517747144445726168731589032525087068732193733677509612273757286805492797339729054554564543608995091117313855870591755142294885228510500108373460856579002954811866296182999787606729790875200945937054894935990656975953523161899112293117458166034471110553799753159590717722372898353414042145978916556963112381547011670117223067482057906137809190891639942099682490067560964980357200758983526177600910716763709719138891281835797212487435420568516923556588624595104782466107283546185405634073552518831575863576215164887393223903065517142613899717968324292885827070095269054733061473784911165024851309454509126033053054973964434917048099061678844625676786200773007712326096753829059304729360896612513353445636132790760315976586159010158844054608625933064795264633779187942252900217184565550248807216842935467374902928722019069086554503960955292597637953437889442499420480601339392428714034728201489838762102088301065499180264817098484537978590525286861143160162525753458436533827492420519439210229062300460736586549746292237700700474505994846662675221907297074328758598469907092817466799344686523053864299213971370808392743767312183083182945123864191947505726340073506389246918271184058477639034550508796999883330044098791860721846535780146828560841962813542334891143747396943635347856423691726297899542127015533263284325723687501872945754964382026442431741152678939600707684838860154635527989366758215234394502386810931798274907582486962236061176711189087180434205829289550649277592898202855254026881887859221317712611896411587621638828459090138931830948640878661930817086796676021157569006420065139750260464611630260360597433387575493329538082238861831824687426545630553760152584635444217230378254910585346727113647790579726890372240332102583807591912279524380409336507259787759309092633859500832118233341507344409585365618439123422303206048986877600771112171460293966368839396719153865947315452872689633416485563694281163811533484722831324344813139299434551519301558983595705558592900074667994263611679214491545952196173720129583022513341701719513887084990102076039692411794933947554694671176452914214025564297037644043472599286597366626173462786540014938603923479327728817711372851702741489192170507797106565430295473685315187833574953492804238805788993540277449088478697124191384831306905733359508571818540960951306232357198265848748831796885635945258539045393883134433390294614682698736091803438697528165715734312127070332897910206841434706402579350111982430409072961860774158707964861670705848350284881674753873599568268565335647313573522294854346387296997985989891775909214993299692627985712522018609317243034600614761188215107145425184736508942790341374239278988744752855203158502318978480791464302328077640417736253936737111961595382027059631440114478760201273848485020768344277141043336221994596262561641079066011515993186681769183719298879162076480058621428954272242080188259367261454134045309355722678425711367719434831032421280160926518216688831052693941842923659023810793396866392596818467783818742800618155118827582063002724088344653542486094668161520930130815642870743449168075010800809902486603784183169687589604044612227317821328979825427220273711353527767676105439871713579365915021743735398902382785092385390121007711097173838265972336323307288864041831752766426108294970992761443773887651095053426070990311307074284452793998191426762444396658798056130474278781320374590353803382351596548127835782591728560143235471359107776182068187905527945024993317386494774293873577913955013567581595816133468582385123076141332744956688466633826961728904406371675715332688531163470930430233632137887231080069455845345269722555137739432646050352135316777013091916805023944149187436042196772081015681915921588832707566917281573254500390993914971242603398871202112956235185890010943446507306867756911411351762413682615698211955681082222599218650517329480263653302471480931755842380501778016419976072734614619098985000891902631717428714519927816978645285109886078755146714188045630667875853936140028155977962748670576235206310676527678472039469210130912818396710543644964452564405473076394761755530985867489053016084872744630146856837187895086612880499444963065340488944779695612673052448341455662473597973965702012032660403293042146314270861536320852824995203147296756523613809593602054839550275869990627854235915349875252319225117169344965510883613741974074041674634960953179885800724635090220466076078766813051369647240727410873874819642247758193077401407270033838211102486507813425966170447072540869453841699462297154560484448680910954954247314322874848127269373679112486408942201371001510543930482604867576497458382958245547671418607797465966219551562499535328991119940662979781071416604913169323023178713505017588045193375738956366613235993865403356325131835233259285001486267970044728945544182209181975012614096024072616528009720373956380409842644625458628604999552197557050308621810638601864039053115824953325870375910721862358599475558906708792200469117778854226705314840044331477758751501991239348251453209230334828991999883459437762057565208093647736227676970439885463714094900120124585991070702643070624060128745588888805336158588432997123281419995125250138829945814961598620967064406832170548226657749895500794318848504922382995528497389599900610258644150015003761906764756272037092059307214852892618129682040164620839790093040287394272405128076472613782965222355710044569702235610698302890218991688085375214141468347010694202928370656523894798704323838520803881198922643042081750104609647567309526091493614830044497414171709435678450873168328718332669494529874368075442182409794705340478249389817334742489665777024988770583214756539581325211733824355253623481547525701724772891426279333897264529334345374016123725186167520917156204958496194623113103156665219605529147820544268637748548408552166417896996557461427420720885934320170498382672950316988505686560446521027706938771673411299017608108350843707751181338694046236139031022470943584989366420538651240345646569085578414246442811045933153941056879735272040603272061722520750362864655129437155227632379744041181718554976967705292222060136075942906423304140358762396581269704937274423752861282567470986717302555698142729021486890087528983370831913610921191770725568942504557197810925853528085801246113545589684348021866101300090146897557856965838360364506502918280258225113500548439109443185575747282188131281633554689556863280125792082349069287584210363859018171677376102832091565261675821200174242265399193810086916242146763381545805275609002577183446465224698944508266218137735502489198762057070159287699602998129471541477620151614751590922087689042337079148762351014809730089751710355348753862242392621336620340186894768612354724401170300318936316843164002818864148959918792954535816693782683693500318023545716436758945180906264565134841748382031068055458306086712280823988081281083480535239007729251560913828050124397451658665165470417271111964312564133113167113930490983007495651980455240169666930033742041103357968054385376171534905290516805906869483707013148142178466348126441251012798637310471001721588806663742748488408408122631180296581019300030753511436108708655072874920802744303498780072725173629259055036268118467097643000033646369424386014070229449234082252975119918392354507963879048621048239601673545317871106040606304991474245552973514206418665602624894554015293669796977235324097954972447576570988558817918488585538737331810647035394770126588013497970054861788972387240193315382256963653637865202621138889738454273978529483610168892810983076446412564147358656132569485053796379787010069379061866965522208752104942755466135348312381744314358895666229015541766932733508828766532083390343639192764517275411077196501315670372168489617011135157220716666103434583365854759799585644744885805164491053696225666705786340156460310343506828799060076933723570562264574942663309463598574850004425104878021648910894550300079339367201761355602915329978959117836204618120070868831586535004652737998539434104889876022897051563109173161891820144363417452798298072317375939275130064657357389209039884193680890753460490189758877801779423428491435697939393188416226370763088895130093472729478801047559376664177050404746252544262332966895715482086935783333960367052905929208521049150048435514496680810192655483874062000914607801390117171878726757302838353411864571645996692973479444224986223748644441780591292985157820123750369047816682437277096963713776190869948611834986265075138774326455604116725757908813353836209122383529446770088212169282645749226432440070466913522056130227108466696149797745761166441555443490243648977622738212394170971649778207879048403625445453704106283222731696595467803255500387427373181232040707574818303656155080497889726633476798125829035695097551157597239544821903357230039799222743141285980998407719693829136109157459243521492879660937686434045978757820760225603449091860236898801471864531670670550020641066284502352845372591512396117192369430368878679309482390799850376951952025199277439983091723417842749293787775487045036620725817392555404456614940552344180241778127107707477868451282735514858354079211980329137044820386241982387588529651778465190064399130768339519171855825066735421680490435578650701639516719009261651424659915824515281284003582011289877701600117640166947852863207565088716399672718852040122425472188472839696646409723217106761876012641819945722288152435832919482480318688699851330216634145292276517230915888920644865024270569180080885494139494653551684096658748626446476275220375108173906493053435964305128688190168496149063834285086126294301637662907863367264477030217207692468297679581859697227226604685696381045209854360995504079575937479095006227729067820563871791325945220012246162563163445746134883113115873074018053438744579640866410071006582387674750197901649331273527903381682340718684787234970728738824839668998607781872363205482940721042609703707273040950715658269137246173111232877308517542604949932151109915715294988986966543244565378795149413508638199096534112386389879382721751379184011765439656011242713273061747690477704234055440963818575982534440246072462512056699930738415985238011631693311590742501563965759889420439857788390497379168856714128380101232444584023264154147507101249300772643705547054376518442444250225967799997685499828723447646343766729218842447852550726858473006142357890595796539794578156878606169721833336457325455513798901589025636583207580486925806735720169919271916431994091184266436730495739123469987521562106529771500303997293262564221760046215108095578199927241370603060403833940925730230891660379873138068675809511918050648491627704905405069739037480351458773770067887497363092350091702697791623001953741592975641280535974198168407156999626022878946628750408658268862328215215072621585086629606528386386617337070486970590500944494588673263956970129151203917387215774756238681922528082277628684817736218067543168085705084905093938938749014986979985864691868288072960794009099947722373885604550127726788994063387244500465087039580282405413215915131763043265253603783627880867755793349992136855273028740660240225360033111102392988490221454569155095330503773989806397031775675037505577635218636600690251433898172846220210890369073963669024587271755790216151667495455147950178239395538818918043026775937056219722389109430630561021745375101469206449489531448419798894282869516241342706701543772922460565010865069571550318886072137742718404012197700603576101524970318470624937068864601669535559159840183770081805610147523430390962374218766903810946204574461989551233260203128781149064386912501664787121841718604171043742081532573066216803077427352095448822691287360811745592869625406990234282821827250593952025332868611456691704546843292446655774305293452097924868101424149758996602495880573686969218677660077851846021724612667853709609362637336511858698543901741771932800599617591567363667267481140908009807034747092382720715975292841895565453525081252312967332557489500575388551247800756935364377570355710484827693015874492203894694681973424195005008305689253635289824546761470951348609947435400921274120119997066009108499733839293124713114729938352954749644981223144812904854297936460516733621218179089822357078959149526771432718892139805235498992194089738076553781590660801297150371735403888885718469646270388141303978600001003931083864903458253532473310067889901427397729220497648907216507197816974294397012767420516952846279656472465331542101296782127320554804000422852517562954403866983368855213755641775244286159255207080242631258850921039054667703408000962329968526313374717854228604883884185952565516980917753479638893311709079522549790010313754768688219170696041601581521808539010670482322579569812784444784267497331393462105178987697628702533470647871293388846093051837658271089226531247330860853537885580578735178176697072709553658789773629597569282044525433886182137233013630680117460355588833656558506588704059562028353904657906660656672130620848891907108048880904836934167130116812878267743731117651988605726773956257080309054560751197626683466915872002971190280208867329504386898693339678162609157455476719556207371213242309718244349072360024454858322302863589509896604085825194822383377422747563615633232034473086129887223919349210687062656619481756743458652285717233358824939805007990362578406807027192313187762447435981367946237496797244305583321020442033364039290948620085424001294233472227988259257407990661484021609279380829417060067068110342249969033542726321752341000422743481831066849502058852777939741842486827191846909541686062269665074398501585485469964961058631306695109346154127250077387888257164665124099736283394965787438166239972664173791967177810619444711305466381657533729835828381736875277493852816571934529528859647204166820036667910854771159556732022931337012579142614374621996896388983864111766218887547569739844066267612266004426031985585441091400980259258590338360135501049250120707364909327444145061676272086562823596163773394109938722113111575967039966113059065694176437413571657252736322311066043346288722485453244257381824454400596754629090641160923908597982991183467759258550539105840168709402858487813881761559990024785220773233978195803753781367710553898622079075466854235163961672184554894547307953754406983987400983431420439499270942924992756042328470790554921321887464625678780701591418175568619465902058024693455341124032060567542991701431372740072830430587801831772354307911366941126688326777178242802197392912347384008600148560585643610755843884349970798265116526748998821102797078573846581269092230847555246137134302465090388182300529676963613453327455220185863350987212726588359578758125404210123654935973151107402211303644077072888918589382954293589750391863511537815310229705699085919952222008718706555779768272929452713362937914831093330283487296578859503895011047830451959795757738239343695872474335732040449762556741776975050769478791666436628020229091184849020747856628803286755513099588518927229881117488238284817820259045152808405515049624651738012424948247045728569494304921526798608989069804811657847396865449941091256699944868529525298148512145149402335581130569056333205235520596327846262476202126432399810605640971436395271589467312963272681270704385716614984822126837507110936083974839755181756759212959658284573470114353611202298724235352478294865758686003192137524702122277933203356697118077407829484145852822994668316356092288247869904993525561777848216147232054633920405650000699329988863835493730302625665224839733992469228641326941597198988537537072696651309528940173989690255040352300174561114707665300166969687412040296904613531419060269260726974639629872130107741934176992832503647076018589361766000679321386915918636888417861049111360712006090322856323763370236783182832192574204194648152743905539933475110092105036762154590614318827135708655707971730172459618383092900719138299905946136805429857239022824451063923996924433952313332670648479754420776419372555799567751911055257141039673192878274056258298188498510721309344127855249178143199332959713864317121473021690036167327691265603586388228436682879147742674789396383372123364387747828488186253853623708175290032070862234439121491862101168107148882248827394649248388575289518765536381661094768865552971796200797511503819506547141187117475351672464800324402047655561945624178588592242031980601194571186518036650716503944905923479975922738927143742260012133773932680436129795966734940585313724038734389670223218786205985740941973190905429637503698475497446393466953888309436869260330483775855070516070244925073547514811711792121131026656639115550789079393401424593860468764302823435246909225651073266380956579604521955864444503718521733938819581720186814658017430052164923724107757887737477245870099205536063520049325396909014335445858160496185016629283934596479303483499152673092231277050764442808980960620040101733593824902788076983290134235515453442200620059161778223071265353131497419853607145071487177756008438040474099740097668896180290396568384888089520866311749637622268436141954842084003176465711999925422918123990508410524548376597032519416137426931884562182075780735497186500277612544393066524522257081531505323904003794491836663469949662880119511903109285028232659961800362458330194230764900960006045250744305819986894453612905655485401175606630193498472040795489501451209165044131059478747238544909422608587437449969355464760613297003549493003000633698014306010497989349907895278818582671598480757950561286754302767969277073277958720467845585234826402279832532964264386620788715508114740814175787418933676351876223619224020458225413324409814144238456076527008024506298103908710946524454946804192272969172194716902985120196069423899143483119868298798927579314661817780661581396200511886779673699382626137154463903835237710928555252987130002191269963381510950542726691996818600791651785705411706848791670853533733138045487238072500505069331274220239468113105344784427444437501558005128528159614826045507838371980276178503092306210853704154837535826517354659117549636622595896907848982626203740734997725713319230967315938085742595995378099241411520324927930526967037008673347782453930144084481598694138374539717051991494970255796697084617226651705091149430201816534160424168429997048303208936621213639637970947055149680495093657532047296074606851554539974670158837771154143500875780988887503849948157213189985469880002387926674576586544308044975273003466964829526197494409504219508021926758505415748788722287383556257834928702231429509323744853050905423565065792138099872451775538928789341373750642800516365459764844792932337048437196257853350281023434929047287858281016209516287398200272011844981118004512444827179387734200108262958827958504698132349148090836130717606619943345182056647094756016027864630842398848261941849373634270017483187440822457794064367263279726883389552069380838000998250439025979024888809818313731955035054114938904431481278812700134880699473959030095229140998802661308921718099085934466995149094159420815069707362592896327095406281190117539394769744998547639898755005462975370432080478508730973444657238868014810803596851228316084224467422649443416719583594452297464151609951699626818805829592457499936482055613726459180035853327495937191875789511743447172790320641702071394949402930817498406924882712651131453288531646015356118496626421264980188151899550189886164163309859585630457379620268091840069760172614176069896036687238360769349425043827974577849588491497237541612356808697878789780984019626407377669184942766942134437097758417477274009697546593780950037980005318679102497677097301739053199588667194902935900054101324339831500456676690588076042551306861175494144367959090972124106339245435953787589171626470649882765281206555666230955756622547379840055371045039920736684250040364742702401803688390641876468584286190976211284829165335066117616078816028194820233719866907337819168731758141660230240074929243095697549557443852192387465613253600812027767558780238693823678441194853944167478388093332888636663202062271471363087144396698773336096191933618463703778286249186944878823619998123583758833949541815159764746551425599894182830226794297029351065324482588551014342317386614568571791019092693670422496185416122906477732540366236712312600158094052819366871859547072670638894993836302829151667159415403435838195280708947480976197444404642206793144811064471631784889677827470466288308513238213158465891738391252521345090975323924252318243595454456190611981735934037691951856134984546548234106228011660293387059246478175143362380760477125172885203695839106458817570842811632006795199393233785496043704304067285360540567713570719641800432831683163830094668288760399483777596527181502894947525461709382638153913070964671834419536254463378978229986666565283381242727042309672903192352565809873327758307181294278751683390886705724551479952632404195301204884364714908607009675631321104988832242053203326380814483613720918188554419872074202885078301806430212843173640871890887699017545761254828514425659957484668339571548245202955204528255307486883065831007555795210318209163664271797250568761166860327014903357040327345045814940952099820553161050728926142853613142423103142463637671617195564218337034565915221757454080831277815956470817743778229247462035900847400739440263696157819236424001402636811599414853466574332619765362699758988051080810485756249759271993900000099616326466668384814932093766678398006102074735541745969464511415026796721314761350928778858019377246244646821599752658365194828298523036649314058934152515240129170865241883716842605214843699426118049583030318587247285453319892072128559474756221753915958452718066783626862805126817588217232563896519694687295234368269268555941921214734058306507991194231044976613056985289713819107771457081533938183371553754529929527917611126275193145013408425485189031414211922265813804929341767421274701920128224595469515608822503634923448320620694763589084924912595449190921989841329243960493818388597247662899869720915836913484062133221072694696641798685513851969865220905661057606021461851132368497786231536379540244260526563724050876924159284336051280457635713014662465513946054857900478920187256237042441562384214043098127708849530706911331446722193542161074400166143553489716793869403546489963620935564798861061907837684225214582361266728868083499486921058953714322033480799176534438189257252905914832424124866740702184171300705098846226058243680236893316263278804174696225985394652693799084101951878231140230104632054977257454066538499231148888871343679523163257893483327803509725225470331878080362757270200377413245424435829869017147642147928091034105564961992564451478760937471713532605129662589770268283934876968149016447517772223971491895109829030793284310877596409735470189241239053922691575265199898861910678995588895771120745651142048557175428404510838218738204568905583435011092716798347921626288638105457290941193755227551992900273457845467970200616011342963766663005424451631750870810005153644296121787821592644633308894869186773760454097033428335662344039078679014117077367268656734995895464052369661944959710266861027192527791212052951795946623850052194094821092310239152336124965471079326577303748122718608350083123317233681077913022739618334921670029429934733599436107115753799858474165870052859912943813011693274328913026030041702926762588605006535357531531873075930182833939570436772220755746154745628492889451403937965446325825580627254178318052706000885515638283954692400721309972385758382693533880195536361320476196986932512842957524114631966155825369070954490592037465377097458995307950860069554443892158599129364528465044551456910252264777721017660240043548532661148764578933997156398396046964332490187092937505946284740149176105205250392373252247099005065093172545273052475052609685198525348558170694804563358224556618315642483373291309923906461054169044264524097255453622668546833043127967505558223311006690807037972948200475648404708193634168990456983870471294103278226684463193894423932663441926446275417508382597265017181227527791155811687722556483511359032376992584861385350158327541755515087392283679694898715157588193922364721816143126645738271011922882605577326032309825607894208813898291991152929037555556962599148333451641952474075765678921513949059887960972422964692256796809165751857937419255162711255119834299053062964941738625530022051732146456518857493252294275321656655835161856404902328200455559413552890941807855999555505499050126690112100637601124817458314097849668170360604160149659544712307374746896694724139696505216586210498833682865550781353155142777852879629827482697908564531833035042560317793972207982973618520921784257621977679275491962110766553336271049106556233393005010126623606408678940745374104279964316277941969614060537207881479555479962802996154987822641066142532498828405631855996714797745343807528533445792556365294126436123441720080865506571119336496826008488952477846815977051642714935682033591792831771627480781544015447199205020408298766024211158225809519050131534306010110536550987157508953139535407272585916740066715333970830869555526021347545490936226332074568261363145081941585427321294970067446163611297097619960118921989409491964708654196922439974973595453061942791310860142923690383348001379912051496806859528261254693938873436490929304790624686499898849332350376672315600548894066123638890879889182455625314189288233052842599187253728256763707860320156958609377173636929763559521259381443531191609282418292904162011781039861360852036131694765786759978592894042653505073060778844549368976683910719820673117611706378748512521102150128373323354362437064874456332687014072942141261415785838196555141299406509216701446280123433287258409597542369719689529541121875665322042587485260927618349925652367812950203046702699040189122997238064620442384480062291314642384514896048728231804597741857005802417812949273032419524949740493415647292183435284881967275081125767821197372760550844416369306672071322532283293903486606122266390050456022666897566120456162339665472257536162512006713658301977717834461673005740456966576059106571001141647359932312579343109181012372799570594377615967098992768523653699374816506644277175163915979336660673371262690811842169373820696508693326856727836742237773638199799719857834641941265174211912216680709414132845105228338054067089869627826794031787231900819050983256707085085022812164135557389762840807440583689209261183750203483624573277807165977781794616359947182340336649310317924246102540410449806684495962837543076395694358746098638574569515853765657441786292486953304166182174995359633667036415952161305429921199480316580334523321159860566627355758786197714121136172814979996119538592062298251972690460982996395071874015785575193260792334893916438704488744517458426105465864510054306870874172703208389136585204232807537139661641280944283704108127245543931079632252045155402410707427060329470942739321723431794831519070358644319099620955086390984127264660238671224671801346729715955001845145740320717673357616690410437233879455094382077678081631310491080025217745782465217074465278791082907339002395363407188014712205221402153991016312246899850861956100486214931737216972453953521843745363688144979435813765062241081524033158547138543658005721253478959924179849670372921253288923111028018069826879559666619329106168761347601273571069614183625134914767728641121858599827639080163177952838095455878294917130681894280481216228369105145569196270183665923505335164833076947555420775291504094051901810355401918391785478133997907656982676118094205293647288537142304354264969468281529287782397406316882122373237445686231513983725839706899109364499889503744216681574490065667980892405255904217066419350488164095963916282431683214362936144010897558550676919049770268149688463696628361002994426372937576679574572874913919176031477532179911102093764510196679414786939038305339899349329933916647725905441735490434028729029898561010359476203488945984868177752797453767617757399596555753070404927316739996782232594878740594296697018142430035125418290216521273632109308233750646316264149238235954552920654927743188722624917637381713344651847980888015151355486338791434086200242533235922968962212370900884026104782555705895299661018560289606339732897547206274377001322207978588213126004688676451900739593732433146113776085746638910583774147382922606934113644734438180146710808892554887423534423814483137436012485440167668846213505262347659776653646905156790051155892579976329811153762875071958843179382581731669213298434688723815797712412245054879091395474497572813194719965375747279004245403114946606580179176899811422241572334933234252254491449903378898400353786453440354688344887017091796751908780668656561277033507546932554877397717825749874481526489333003703091954907733794702512619168105388074566746787861289534920682399040612210509257393817184405316151383985141373640388528086408975099725556456530253645928260312481202686425498931933230458852931882448583234392170079147979449086838596307511944773856061040154524343665299609236641460460982755030756063714591157892519786265028597396372369763292799134149715435472802896637775746485795641427067183239347432849391944552498405291346973205532866141010838563668182547356544638057426385511772620226231982145415638365169994062320041158317435492084460958615542947179661587034067807157473981441786885235611722539374762893925662695415328152669386749703176251573511167091660544907315054236597969637235338591984177240071765938894159051260221195572373482755403701587553370292276674854304917311216876742162953873148281193293410362139979141934916966267128966502540238495165107472011080398797983563154273656894320908696169159220859185418874387345352197700644216771834902070743558997964888797108815292044587701679245021039559162542237490022733773454026169294576154099856474860909627903978659458779848740335777110024323018005986880663627360700956602891594975307610975303657936336098397508908595136011565173713108830631520932490695735276094704513570170119189247888825228126525126494072642681094876262508045582462047411362629843744807459361378866621842317233897315764912962352263280364985188085532862257341517621350037573915848374868641588244050615623533075044702860066890743753057376186424521674030098996088660353648914609326461898731112664139662168369164884909356271756402731290720077064087005309741637982813131063665112190243999110300888782704854835694231631749790726744849495385826241739077175086951697625558385705187880012828640192515883670220758106277712660496117978952767032597699707864285420797886042321713870198427966481350642848355410309387607320704908154430907420301212715907813335866406494393794939244372977084549283597055352654066770858493233907052572456449072174846944272900426234384188633465549836476702323831072946256253265158387741925204372347161032794421449243040690826148194011457465219840357386971254008716347341164587607726634644253125701549903838731577342915144530661676649284743819505121948948883595449998165036661465095669396383286328345009951641928024214642355701140082868970824399947647735355898946709185939018154256888013564841976861844719314964252710035930761892606701310410097807809631254469549563997526389994305055540759588788859468311493942474039767458770564894122585587798499960489030326117208949279837540593474131703863166719509839572447689206028203728639594210130936965105575915265868735274883906187495932423744926260937809260831099359997704349459503079736044259942224232777730492098184492005458978360975817216042849256056664461736430824975834029567108149923096205400759337989047221308038939281127327354664761416623353891378082786687719606846475784884016229921508516369639403335578242816089895313034423777473487117316343039119597707581229448006964251600299194443656207700407926646570348176515626692163449919291634742358968408426448062572873072008955968101924722808676875894813474568859270207845905017163052930587289259092137848884478779878858927947295354217934120307179898064863725492181534788609769935180898677855310809174292013009102250722461475336617658087468199161684258512909635096460849760895367548710104318297769925024315194296912573609145213413306707498962938296583779774084803157348231521285372240198585736726847456882078913825861320860288974197733931752265572955060346907205460559560462440606619062255852567439273909674431752810333839561824797839583233862230166768551351104826776850370561195324666881216219044227665216031550476404550534520407417513579262496342035448963263878755316617216643536990859225031305824821730773038660647468700159108870745117661304740043151143900778678119399392405797091601273428781467858640850718370752419364547440806247531288205495195832033950914706192409249469771071630085340283690591756937012379625689440882697566395252777710924828319654433970320180369452654104451756065757640272261247100074582124864462734547789440804036133282503703572929800334251851614091813748347436383148974340646702640018825825408267495375898404705288220344993208914295561668935855634302442085905862246021130479652257931644054147107442097662816548361257454201562622299561687381870208701742544989917302750760765612209303739707482898445872034442644201351179927208188053570247455853191415374624749905000310601710333689073310199705646197505217488547957620698620872061270100783787065763748247562913377736425850013594667178689808254395399025646396376351341200656314094102371931407154450445756652521386193480566870555898514875478688911914436138087527934354589178713884939680050103598735918737072531625490451721131770995266036307440704714653220555152769125580172320982991256454226088179534018739509404554632928492166370579461533202862301707069632603019434784055648787839587455005508624070448867416206702502091861376199777288941062192261589280088672938751141149072282804011788819032459228261227185078541058074847274412679811777303288193694088906708816715056831747569678936887315363038733228189303362247929268422914630778579095104386431856117251125369684297111538823484511921703351880703466248492080739836334149210309783114158434713088125995201645299911710641805638161671131847328987115338705744202255469955059398573525120417626294633515196880653712718436207164656469906253017842885404158860430427671298982599812321192663902460165049024338940057970668227557355427200479506213944451659443204439024228722893510819776890683511658992124883703378744113352529325426860416029185627655044092695981135001896061196208637708492344219778205365208082305848235143101997968598186153750102809970927864943383374621715702670951733037382951399578711591925521624377596838695231435991029332366998237384490665316123670490124264366309798430121839561688628780629410183411751085956817607589984665610861751201054601879261815402056959800424155946813541162726338772161243253532884200020799852695616045033435992546451724275169529962263652586031964248481754931886068776376068639024568976458870319748113229933889792648214577734196392093631344514052844690621412291355839751457400419999293514975783048292274536227200602205787157445306770020888532759666791459816020228251156466036057008719274828914759368550181557511900487484314617623189824245556602974123905559810326820334869278220996970174304563736951464729499470856038401791667797569826076123099979181395368284258222692307400406829927212908776338612246190825490317288386903097360755256099147839328580678358017493252948815595421116702166850099873868707270802031514239677012005605714671208536179797468739545735778820264522793231882692170720122024868602919226738504286245479337984639865387761876327539336260212286528813358874398034997452521795679203877218968937171047538911805919494074668350354200646230852397583162901558019086591042002823304058604028744494848299557103232939321930714729372458966683435799986125741974199031442083209060522387565486215928971826596494112855669937216009494523934943896733408725207734620500572533472811045878776180586370693571816589123483646297599981005343633731067359302467390372278790978933169520545889454648938184538662271549154724923206546999182539687141102141077113409582309404645216252605221963992224795024598398668326197758296632313920241407118752963894958570863528403899002528449928561388452437585456765731791187470419333382390943760064545048112770251425490345214137266983448827749946090104526169862796344643865381404542294805496083254643556183770703269363753648970340204152444094571035888036524688754536234795855819967086567135437318241930032141085046155176022614196794817089216033390116210011466190882845823538565646487213392683365130528108486349569177180811948900834994607933039441563257540891580923419577957835574350034768758943870733562946135584634615367766963962351211058316071484243440591412016715583059328070027410200617628721317417583797418165468032177846203007922116900960345113979955054444889224429881783989298075494291525650181238600594094312000690715304642180687542236510640187987992731139079369441628098253047495729208859075552586845772540477210414172245298751252849173113870051701524998917664972652535336180962378879951187916077487201251575195475950969618411379583030085637386936448112892749984124363503850594457800457994532627921687737468301053131988537438839597480237559903859749549422775344952816178768341544917009472606927219486290609131592867093946722873738335405042142640688175336301550164169164106244290490932065909085669606373106665627502247027873263421678358078625720331478728812563514779098450991919169045444449602811356228136106192066223503560715527002586518642565236759487214302203685913558206299521929607228251223819008297480949324436119145545138614961884285874906970186245116508852638799111027130624390353114977495695740016478906079134099544601333758659518979730332167162024122229741444409094859002500094877477589465362051903721264700416625835605721889271870314575991983969723460767789354002068127182465444879376540290215964835835346204816553585235840312598742533024874341190112376369316912163704061283917207098775387947215890934014352317692483746651894972221136327119790008266614978711056314225182937824821657682983617628394361525044104794881720419815177147954223461644362108639862859767046327703318065890846181388768893686289420269843898953906660876088418362031615539288386842749687256365603133706440811710869289191356996102392961357706322434470295741816347667844220508630952242615187804219207340904965402619915950399392998194874857244659788475596325502703445577653751504803142274216987056468448509623350890009923092016694324181233461072163582481546258851677625393336865263964955293667492717313489886005372604702086112889884901650784466102700020279276102949175282770299993984731670990276056967904008221719895828557539256969110988766489745710712247674056840090296602086581256127892267663308410657843309681055970094172123180054870603936879393650736750266094981781698586083666502808216156042005038697951519557127337949105263415547195546408555117097958537031451681465278185977377555265572626057015048250216980577985620607362969793132872264077018890928004761753231243744340389729152023762619727299551363337922557402386814273381073797856547600407968725117820087038159492054025488927604081466274878584860976249263294198280891941703188153614915652707510916432915584219720670259647888463887228553938487566425457934303285849464561363307016317363903430046790864054107952442361152607835736870189488486696124265251593806512312140440349053779517948010247063024443612845922136650133753143661160747494641206794793200976992819132257247268598268847586559115355380428895656087686632930641149969131382518754606649413265753681085176179333267639440213567725225504782664738866680904091566166320327585750937485976817173820325857145202699417308205834574813966333220878679168795110509373326877267578230594168186130532057747625051180208787168419217071486258707198754885186870450713709523929638680178518672902170787037967215021285147245320788487035773714661862993664640794734674249809671275171102433535365722610464363173389517898938848531404648578130370046992147044001133975885327927179652221302481031183654207253096339597925887979436877367761604338941721850457171388399209834710992897654687758348978354099581930189878745623332154006866211621527619389269489442162217925150536864541989806267579177258895700135590708315417495697291964189138728311740916958891504100708129767704505871539597021568358848559480325835611371745309901920996472867385904993908349609940755948834668086564347197492618813900973884712522054120055253464210728061702565036327707007348726310363073965003755930260422735970563986768177966028093344972036181939679649711306887465177681882803302611293022257853901197635988745279695412868444804638116076680054358023788613552279195164794602925153196127547303117663685719389567547232556396400218702746585326000927597433517741399689451073896505651726924388413195019128153395373025914313181964631765961822580956180363785270768637149991522015601653320897443953639787250998284616442551868910767354201921256198855162715499676554486825684126828776557268167062622289518885110345619867588318553414008442944934711393284301519929499524682352977461698253952428086773764704550617139783531737435041868403600973755751356760894976701817792535130556068699058463316491467592724455944729176278327359531298673911426363427688823749264726635999072198696430081879302182998483620863172832160094080024772961195918849196107844072312947354753644144517059210609252641794016464717720458745873743361219901274561439608521546146544073589122134554426001036152195726416029528438144428399108667565399320620401214534136951399371883853956203854749245392853493460964516619006990631031176909676150205040101147656220396000542718040393148618690854723969444787154313877059832931419441059699178788843789600909153992347276367247707668609665986191289646569134274815553091176694848431856019837631520709012149583201980732675004362645408524136912954573940447167854080928556130245664120046142902611750813967910878394766405427089813696031801404763106263238757871376493241904022851119130375025765436104645360145836313073576758085215233630356530705181193231437612749029099323952672489233695701591115776229860612239908596975358485666450685523376759673567914647916038340429483860082233885382957840677204668827091564839322214008695344567214738677119786882172235250231482387701452031804538008666841361357366901562088915069458467444975242118685403645797087070264946808693690082265942245072856455943662087424420342859232560208259153547125385228597320640745447771238493038524898938256204226437635499584198084785538841664361517133209812925780488314057810121740949744957816361522677221551013195209698674604583685925154303361306947642749462864092943155095521074475722705405721754895704343132904675115818292838887893009375476521636990012396347386259398601954038907845389403630095644323319230735677720418650636409279399330027421483345372428559738377638312894770632727289602334054514643061376688221194567611000851703675067489194542267688221459346115081712067372927838425098272980158179731420416476985249536719921499515552979474516539998884382220389391406964961582959182886697403930816483036465346491057241628456065210762694469534200134374306365281153790113134550847621911141947411227404566713889510698758354313095651639366974510984650617155556842780564700728174743613534126802127943683068510930979929558850062142024322712179041083394141554466906677629526249849295069192229057454781745463214075720987080947122911494937707610084992283554285071983294509012742820928634426233346896503087870214348730921000177185649114731074051943536746929715730331375002952587667959983404856801205316588943715904621410721017976781423448712004948478920290480341689261300653274179340754030304860929480934498992234840729474565931426149589161810251363436493532099048419914018649930298511969917326670444515197374885568915236698164421471888246597341113606227047901161835959611908269341350464992357330515736218701635305831158265487495958216196150590002400526085551398935091114289584672225186098974840848448535446551794050175574658851456660639377558344110265804246005906298178583022253076185406182417403514702064897524691597947820216484310528612174850150738647627465851397242077287039040343101400787410536896167542113713244838546609283619185585766699546000101766174741417273225024483653069686262972646748967388528480359795715112183700647667278327987220502792580264268432669378736289265177566327762166503402183638170091131751870325510640492960218352735792729847076350529640299149723227485395126248713459087973373685832381322533256742742345497773553387507937822697766519582828930061339025093413297514058829352266090984294439370509908658885717240674336096211028491267128015328987241407214949789588024376110795260720063329087531224306866815772216752048023933689773183006428120321497847183104371960107078623957072773357777337109233433936101815009831885406111290173773599690551694573357405503941942146706659679480738314978577297711821916553898741366749628722281553216487150235426504342593381360513065687098199910470663878525240156584737375079613667305295435450359332821369816093137840131611671992526146902530584780611226069731689371633497609566723902237622201098527003727797571423586570100081027593958704266487878815697983589006458624971501252165572362249164346088335914743027164014235458721840345865110907968182431533515836567675215570115865841360015847106403143721226217061316873365900337870300562624587647653855475975420923618963082629512318310647995775966311682424604730702574334575448064900446936350626071804237039887508764552189132235656036317678983976960926792796942271876219901277648433293142128338734536889897712988385627461229378007605360012183767414519688413998129762871290074278342489419740922688069329940927714191964772463879911835314191193229966125959480701514997697889499801081958063938727835646898925205908853682426410003271014089921006399440556875653281600115753135282596678922969557802735599066562419870258059496133288277925038816905627440899460231645685803974769605688466569501167274494225340354317974412471160681014852878878510984877454830352263734273207963602122008995947962934710469948140208421254984905320050118907925722933199971663213520585927385624607339715307500711460165559260512967225239141126840951882343878812554489591720907166967018491381566199640776368729275726215301994769605757376706620723858871287058492466484824250540922644273424380728792254892253625718334287800883448269669709728584019352958723646509053135062393483116058530318430181809146890012680822433366330273394468053782464683611075379293627547767906854975916089466341967734515904142478059469406550652471926839220434467535773581765884635192321743612460324243274228857499184802963086687594576792885720935545818164050620861223715829746005234120749785390263536981399089162021982770311767799967274473899235643455272923367689224833269489965057161590879869458450583172804438299673015891198057886950666270435230082122407558932779904166339878267009108012952428459012932544176412046517184461152862066183731939810885318849236400842956408140652436476205206871161000539125652755783537714466977275359233616243972652933351932253264130816179757021558625427888633029824010648344080974032730950345071856393642966385863651060707244659699322946148716469534452440445298899728655309862011645338996837962780169886755505742926057561373905398535324578535909855385259327759360600545542832773675389348908491323190278064796437517952618650954260781626424896440288283298266615363970179037871448787012418189738150365633521082221035168243155283588411983019524869897225884266700799188557934505453987785109793609707150683834732182684280535369309751828888446429634577188080816873813657798041835322309403134859707627272130615330535011129616358081126432695935583509740047068098741084083494226333345355172727727918624509189691776774287674474148853869210641980679021385864558520990729680814736409284476412725373899646705277440667053729129600398451262560816037417665962372148673142118354523772875327469730062209537862155790834655403426849396078555652931360588772000814013691028532112591903188562849594639484998683256402919926859103874702507209007089779630397727382700054241100629296516056102015970237782695926219167648701011343294348784385148088428811559321719833310106533512000053481863171662625638057405010577223833172016596959691537074166064988019258979671537087301800090051388950842963700427077566599956175863233787976665200628134066057230542653160701671380061749834421238167373214197280693871890019261895520109246733850614615124094191009328904110609416007339013160797703762755055834191157025338988317039726999419950550963514781596848052602889356920219649599215129270899203657739585192949811399488896021379194245396599576104462974526406377469822174203079930222341993186971585411232555644731287084402954918674681830692850290445215501960564000263415821434532606545301469437866080846829899518730796014161578992440422541787253162145176462162252131426665827802954687063775130223800194627198074688888588549492147745042360386070675607454493512948491245989427116635304291739026398951631866663722377541201288931910302535843861862640837034598012115663252093121394304445270711713190142433234880520126604184328898644567750676971369470949433571770544692772851478903589751862660470103329326092918546527901736817888318191353767575646267851953877274050852186448072400352664890555735213969164214913536956225363892932673161797253661687705655322740408623848828804380071171584562455923227545374383576531293122348567181298700487121559177300615015640049540423751697532043085357284402702783996006356241412521866110548148228315480579706279980760508162232966386280245697747586880096942164459965378341419040633256047893225467116587547992844258073031647649362039085876536534979302939849690545519957430636010228909812998027342490680690177900594149669283329867132409763627604620559706227978934704812416672831568956298839241685961869553876674972727598703998974758951798093575971608411534273785026766760979826715669054069214640919722845956909083672566999267501762978312586593528635018390791744200868143129352424954910253004044243546025076456832206614333986728635477997840989886029897851155048316622657176418778509685696916723949366157498418690157124555411409389777894464952822368173924075016681824261318327349124124327818258110448319879328216421521361387091583383162422176160956440696858409292390340366304470967293015586758324648282210577242216385350225451216634935034385786225029500101727872768489399007943291831764302067565405897081682960396946258765780218997438023664049555733984591933461189571361653123618653530034072898700963913081183800825599980404834491032131886201190888096530163167275584514579627931987165925552275359077408867158249791105226957628337077870164049178359354550973962163922617685271793256916363201483517150908652598983360754492311083496459508724468745112821164214422027185297672620310781830000072925056443737155118448496854114485530246425579121842192528382639073253872033589572822659549542650105637360818952193059096208954797466018919128746648897761869971218410793603731108584788565320527111790938443922520497288664268519467452973782516376620917448026113947851417290028297037135540359594898365253767548455516558939601791173565830604764760536331454662315623466163050862683181619245219671113138980012440893721498471496779550760659737652667754027780059915655475462786530131769916759778194302914816706028549991416301042923884363704912748879399518013358036196051059252203121817645603907067481880113023732673221701330454324607219439711287898483763016800312866076775034746425725148717795857376062724888129128818064462531028147267272012101725857433233172890107255585816995127861874321167971936899972724183909906635386409742400042382132026107451099668442988128525896535536218571302785235114637343100012059315047755784363091582596574345116994898586083178815301099015262781980263917312448192655560661011958526349445278826750721710330855382354585563478088302372309695094359421934964859514092286717855349448843943152603375628003182196285605452466874544613039020463594415406917168204701416739571662426726620589328282219138939133098906074095637300316550209235536314609035723935977507015231565501675407300814530185198538825239513604822193856399932607646523959262194360370142467406000187947697153436810379372948080055252107985188915541693315683205789131746926996086187678787402369700172462068729403251451274964031665553244473277281809723741263441774203038862919243996314912164946589506486548677462820431975379031364519888208712848337166270340464005534352616135079466663836622524143916780615094573834103553000088054305011917567327830200113841310713104083742876354999458386948744529481075134419802159937828769780067716314209970458544468639545810855570280002041537478765917264494199887304281681643329416840516703509354999733844313409436562745738575424105057197481774880796771416884316029999851560810682819516461062266060813892915479186149837037625218254709462458100928864067425075848142047878513065596461010439727846313998546825978266986736583751360556755245523774252396970501968579461719791928955114932222848113329745152133426879838416649097214289082584547886590322445177671822344336510479700582188836986018910751733939133475778564553778562106407732562548896885407263950222510040193024591880622313055384589544792340129731707850648400125140500113535462705809936879732315365297197520518362705220641006917696464791112632927279186480699292456282152754990635813582929846894225726788110456753123845359218745189871185126689025321554795829613924529512959408875690325733264896009277039578644715541381198997700530221753781267062352179002408085075007908738151714460981526354281321828340972636235618263864729145924588085902345080148591215090706002733692338596908868919947554193218327475001867756082555079087923621055220440936777114378517822751221240000917252322218596499580045961119023524901421499164256671774957287264205693158899012637808039638569705077132913920341262027281458537666864093051453749588626910565641623017687302006772694767368910189981032578251986591237451862198584951531042979862674365811037415751063043490237041770859571475570690043144967616257713678554766301553394371325413323624989696388592256401738159452009165602024452421664464595355294658101171868977189530218376379881304951269137040779136911653871346992550041376448657214292775747861802300768190723635209818030136582610925904226701138295927714840415807127550146016432468253091850435841754188876838077727911477927244656066807050237475773483804043382393464724675496039422529290403089428798634283527893485446442823726446334933388404109019765109030404270947438940515739224211466999061186596814823850123078984744040840013043757186585321533914333352271719374820240269239401810621941371827745931835973075683299845786743704980306171140523417961489981606792054819784542048949334606440751812407804970379789347078810579026016286456141930688339604773852416584548630481805489975828087094293855471822888368796305948480001391052837067578080715394663476133686756021798481130529712336311053409634850129367693070743428848468189322554652017020425186579585678541743196221530163998704585069573265786991737263121696878168834986678799242493505552890062542247317295890399733642696372212558191760249577621704383514638205218659293546256057070107994447091172026580177748675155665920448906372196369987038439551750408138022113322016861731870696919140182704904348084589476770891755055536790561557074421162930758796049091512811855396333830468929955231070660257561900855268817249968402617542416585323441241615383763843947727503904461182156243985344063112490424871357387466766045682783300349846788394640025475730755625416557020208738343945977005278845451928209937930821469499111917043731495814378370474085787835297914995965296132911464659568473372929875908781761200395424126411836826981534515400639105451512404793652586758783569158586938338783963326579249445193676006035903799653438577592637725606217591581846522945335651216226633949579614740193687736143881256156103677703971048028267303891075696865263338665181831849363858356521114738783377074957637576746650231325703000660353580918775027868293209784452901883200077791788284029730520827921927337206878058347048107636511800202710606748585543983689290980496900611460069976089998659805947336989736026994351363233909462782669642846923095656323274650129750672952295874147702237200636059148963965492552393485962492094865517733224209773926169033352251633955740577618363346364049100135232280965466228537067824917645479418064635763900626918703337223272357418417608778173699668100681505095825878230594586813137285457020513736554549309027528479337062650841570736008795557053018194992850282204554910836700478013949504624217977182484660442197593730297236859187939732108567657640102140167952393278157294408269078209693405938458669942231746589786097726345414850876879130749987793983386902741730466403052452466528320247764059842496662204235477941816643775370351286449149258184832989787772034848961700573158297104949733660931124637149098260893587293418415324243372769831079779614598181328038886917463943548564321225117309023314735185909719637311173536116117028637099422554530853590128523364897792413157325156968872604341193018028313967259638320080198965623785761188241841667676958878762729033170866987419165420751920966152924885119684810874152301494503980942221092608124008855863620487409799912150329518483725575658658732761401481836465894453601319512686076456218301494131632435143689524748755461519028463061408009316033157380904519381026379404047677066206516119058869938378606771044792914572274368156673357351910994948567154235510353570435061230268526772160235857658337156883426184471346615281431111709166701715729623138894181448247575210960307961064476034175225360830964665031449860895021833271172733228407542388008915831848336067834722325665877416334702983503174747680047350931928202691826862233361573411215606316085983840383139768353389446391467557427042933292577626834205123287575219082034668666471832409653952761420828256951766147484062875793420776819705185978170533826917213564553116305622056743892774621116357389062929746875385702330343953970577720721398595529755196602863298969090025240805022470967607867265376615273698598260627023970035006843406640044377699004511950478464452271071040223260545238295596676839041924719381251288874489577183714220989667851087555551669075446638501876404645557393852705738003191040259631231385447441732888577283606085769877727877552433103127663244404233568594836421430718061626746711894325824359064505262462632217272498064847067806163690142089233972789865353160457958524310402085993152396767805739580793729940449299700677439785232335004558902059066289196682858675627992636208897742269806627169942365900159252521444914343695531293234984012282586004723787126115649279975584335650132083176014398252351604275197496729169636224256735784941954604300086858280133246334213753261680474926047917641135449188750275424455920131028740277621859489330365444180241584904225870151847114984452346158446141280679765600492843524470236681435585377235884640213176684759588366629842979059494394237440592926156780484926542319746957865658457430688922720434290786488407961382773072633905946285629860546233220453384461750649289204791688400401110184234348680884223565911784385491080238776947291702735421915694266985632546537363715303964346118774981575573917678496762643486940404963046170314124410402202400370288923070572289775064627752174638475909592856252213006576040724676768699629907771843346863194592762306452309659558723855691888759409528201383169297897235262566210226032117536433091029189596609598374288763233587350728904653947059733208088138562043299930926767082461794543186090145149140798407330674738249735031752639560442660178678248580884834465429856307239449562874195724985366507741499915942457915514392362560383609008861074730216355334876106972012545823818904046477221399861393937344816077139899768638085111776145558246680353875840064689044107608525857079005814218325143866632688158829946059322714283464467730082789803851364244282812548473142556864974161546923102305707475701914646082018584693046441998972134556444013807562069491770725014729843368492150298123592537686133453267241797354539803364834406994983677926757215667353366509180481654980774990752808729021187694098050356675284579076255822230500477052407992173034608607409353338877207965692156153517620106832728000526073985899164037582552171025273424187186002115670106664738582166344723173193795645185677898567066074972097388823546724278717371078091650660970918404064812748603742968051162364947323177694757010872618204927847178663384078889828328541862004846189849669980133978416376211874777181479139748766797500915407014488320944872219086612035169802003796833862000223367143420448370672983593003879895559998812410010349262685427318114221906161342909824498205954454856147844854325807847173349204018544203688744549592255886201969082555048743205032474919376874504172443614111627988003978961150815574739921018764417619532723243479257081076480282990540873812944773091401255043640213517099631810620590018428989246213500568685260253247595201046942287700780399609968056410177869217406303801350770580488937441017122051738209986758273105643929745367626451047456546251097088428702396607517799097975262051134453004029720549282296339828790953490275264286620665532496336784051525352091550142643676249274648425540967914619628582619543085945739094528259290403621278087127234244472771302545519988703708158194807833670076806245902206838182193037353433107019337955640679117963634405328509932868934677818035362699965810593344487353306183247194973355883438621216539521759196542280382527604926570026920000528779311828275327222383509659137762739194902410542309311987604717357690093637988929949222831557446229985769341972862827933426012712858850529568323782748352105291119385863912137528720090581389940893905424885620280067869791631199550989927043970205246177348672584296359375140108720260436746040191541234160140132920799702347040632588034314741186186568044909016311525685400220599788914491874638101519353409960049428296852299740333380143329428370030653718799066840608905106846297236925296810636791415483439243087214934177102940227335360378381397473277429339922424478965080495813436572727715075594410793205598629119711446473947181162888691018554845362649500713444177373682836464256014965061401992407750926231002233669985469820541702152160119216915919803224120965725387493390094535160325755661060958246910630543892423361695813902572389195777805644167308185500613800824273496918204101397713250227461230160873832873537637290207864693231252248004330111522536448300543338454118812526462399001417826133932814181834803559444150874993011389734210387669608634136066875877541479054357773814678529829370949122433253223439774602714425766757500969894261933995961775772244520555949764037178686684898901912161566741864392843712797038960321574240461066961450299199331260730033560968815852665982972908493399499438287077441483000091190414310358942471011945243114898801846201593380298091087213180823536914314744090531220114814329858091688723642753055319169538269568470516463605224568023318262699115625828961408546559563405936957906644993833407306577787082645019326543515888524747765572835571114367528966503557657679312001753453083874968658591286225353267128403581873421271418528138711840021178135967213884327980842877135173495015825834001483679597431906604937178004070944004636269115773173170886465702297611652026155191926890891671774542521460615895861834024703463665243304748610748174691678228300665258670077670345594660282277840628997124134790467795957622274032854732876697522954113878188557348555988239816614667960479536241331031229978502430580222619266196200206361593546123559951968149601276049308749665093555428535836125302547643623574174844111063806450312010001894720055713873974574237427366764774863033906288461169685821378948257397448148497593447855956127032735262426659565243420407687755814900075122571235315983274990035122330351098933361441073671691918401750581049670271369759756663211214197198381056324546274460295692634831434704525623885922112622855851417354217757461019635588291243652874308229262913676383771334467419279484428442865572665006420101916928808109482847253042078454404816802096787533401026874650366675832489064427015369765238423878081837549274627422358023607542719687997090966905044008289320134032433851608184470765362056642416953541412841996606352157077779664956894773770208182198571187693611775766710869821314935397824497785059926434261329987411995494369682256149745573005383063292957294419888119177736195121605071577939857166117443219880487169602092457114069910644156600724192114814636911309641694848284493542416240233214691866327614803784854693028145698864885682388037552382288277900628522306664690496400372315795505093687601702812267739231995542183212993032629451955322369359699646792676321483148204031021091992158708071923554982545611910696356460841312315111595819865648721058272876777181152749292680460522806999527334768970582092658972923450037173708434973214729284101891975247212201723620472531686979425552592484292111022203306720118672599363195518284457448836301261245560412389149763069440737388518019645993567705792388731441301667921052573419751335218147956732203170913355818737563963097260260895903343925321617880954588757252541105076520119158939757541994172433064947412799964672716550003961574304550384674781370206634644179873695002831471298210115373220984093398160415263289269463777137707662788919984662863401723926088696647196488250399105026696053211841529089501476173191174065596048151830488568698131045220109288185261408891885423840959397895147110566155529451429219923138145086535230714755578706991610026192399448724944802977737682090877814427117741207496601192372239909338313619858315412221784792685567360499510339589096898784571500485202164455111763929324307098791367912404279255639343129864987794358874074126542721300027387298276630528793026042387984869189360906484300231711966958133398773053937882877994050062775714374224648458579603647686787873340523805309826864362665479450755902752565785106179238654441935474212582628680288355282458717257961064983817727616218601913740740655309541282495524947060591724140961956576374155479558713756022306335514949094665412160561271251773052657965111624350189355132814326155201348320058221134128131150555048347455494244445842670136216002841394292614149943525627788755139332181458464540403905527284770044004350197606169102888971406024700763612563339683485083174649580683731145637159645224412961919153832115450308984205130366083877720875215042156039748667232307791989887515906042423324981658043294474536455799233883273315637406794051876468210626034150831337951820176956127879941851929466475342365265215654815106936222133281312080246812605887626983602366615679828598085883808551479406596330084551081580768498203676773474170616633877314831470904621299422401296881614547017722782002041176834778910632838190606123322526651355958037835571503870835891196261260090781963869931484748313199689852312573912733770417207314111030105278168399823501983385999154809721623673582284848892314018089469221904601046872705913564207158857532909067565479863435465924117925728300256964533665246875456254249120676030899277727460748919684430478657233219085498721228538169747218225020620591280343100932332625776107474140649020003395606892805840022590648614360601619390536208657432530487156833760340829011545034841068634755776040766417820413543438884757166948625982965626456469691738966946543403816782645658704070256781473433358756045757797131109448152710681417165768733001925780199170971846685956734821266886097979635221905638097499525897138226884879103387730419988206597109688927523038762589843988772166565119854439634038603215265110429896333557020229397249297507349855162692276202610504300413598846348785103117563765751916205096246322617888005150255782253650508000395646412217571284616615639187668195373821457370444777183861174324111759134737263954150525049289077126335415304350149081366836036571722116344656318068460480419557592036834950128562340287464393884339552607633630545875119697426474493593768253278590308146013597701076596256639918833616184586775469089543760551424600581144595332550064107531206735658004972973257824303788447813315408312567166376212995215504523044574384392975926651170668604265773535787515304874740168364275851275724452560095314179207114281968574068224739320534891705858465983787262068829801623840332486445985805213819188647758915433625566828951321468058258544439046996477472265636059878431727121669950129784662274986033849378322309122621456253349893654091776314486444785467927329839437334211227323209783164267422656076231248442514319056275283405356554997722460607316591827846698678815140030926681574095600874378009218665932662734808137083536089937812822139711211705361568618659182639391576208149993864214382430276541625169841651563781642111593842869773331226086609057901477192466330055531867004002679806795932356658028309288344627542558555169787188787649030865842023516193294765165603563930140020485928184168877978018593233763799582468738796134151448663463878831310432122426895319848019880592384294686382631762355049980456798643079729644512193528661455983361134467938720749814578919901244026097460904156052807362184982837410558364467507611723786859322998892306848652780532761640088125162458488806834444917131285162004354925506670807708404488664544007436383880240241484473482595383858590225908247516385535704477825271397003240022738923228842625613399443552544102620522946712715384588852816103359736834058306164891959902207095258867683792917610615512663072798076067377376309152694736352505079971087284932263395318230068713466143763735877210764149232028179480379924262134337948203343191146388486149819166012130302663371911966814616871096270492583371047263774273909987356081598794248202446321215537507992712455359413158238682204541367345047861461738541219771593085239757664444959247281790899167531940056226721157732674366869977229352480862918933214919953300691158458662285974505632995560086763533138252885418579051317314584772796909179646684037400899711493317594231623954574754454348774751157355965501784862309852195632882515932263029841529125650228524007929364638019825388597466853407935496390527672108960240722690216598695770109707753145210471094066418875528856976217294416158589036717664925067933674039951284172407200686414023664798768112524117517702840859347030171706734381018518554721961715375213741833511112634443088789589844547406377831835863522451536234014347144907937330219518736399734604026816975850890723119174504043278586871975258809453759273101288493428595964568720864018720728457743839076390123886723218719075840952484629178762468470810868167616847808418841328658390670000000432945495240611738793555114591145741370885093527165492311706894790903853646846032949561753537723232937859796659132170259500832027537273249588393997471195361862148367283162266358871292976170228437562373815075620641993177656735059414889063564087428181514187358546925223957003761365428755396282258299637593990461696724389898940838072478978621870015497348309707962945918917926080571282286890284456968701311416598913886312778159377472351868296309105880601095529017555668067572254968349720895906895488996544568149174932503061404950782618789553912635624858651335157098999445786836042749019596880158838568613482654367950336325246646421095892151962633782044580434647588450202341684391178717116779371776792404795126102941822464086218294683878442580970747601966277876517254179451090732774938634894437289710979113943811306811881173556590443816589791527007008054871459137678941641546903043277405058454158421749442934075533374811014872703312602716369190209141743411461845845420015303487511456649431700763229280984064524066673626674079739333100928989613450410463068137011961733765993373504269822968101985200701925401049261796068738408947276539039567943535390650930870379733523955873939478745665682558533901431205777273996256823568875481693075300167533175010745167060168250755800646254402942496182120891313545809736982943599438337827485164372222067718135839252785193927253283820347576693707169858083740638875068078591233893350652259274386302356445046182819529810310416354714005225626640105866638277047373805444535092886648148882206596611839095657356325236036596180333898874345515335574831467502346983422008413155212054949509091899736559835572466515345399610104467386751987154525618751767088876975220528278527212528206044854601712220372530364425681416566452809288005501437636058310725996494414004196819731198087820532341821260002081132107920680424999649427574816677625277925916739136809780373951666322328683013019048266698800928986221877599875731596558416132648705403406355189761616829474221703554632244519289478615312287068128630178342220110345198450105786468324876608861296908829727521860671827576375113293277865755864812594093087201600429547257620833983871462808147724818940282055219606596651426478740953688991614256016064689999061299221509855361576556353549937604315350285713997642534723763247577108184301384887237403129970733049853643001407253097795810768198702229387836714590092500496857545587109003016181647863551766976359630590401123694332136661075372639115800901845488767288845712592510998266110392207833827562693640586072177144753489341612628485099775908299116393557637397376585291407646161842184099642122693794309577671896116287328234998238522560050784020939006288697197822044169134190700283267840829031640549225521770436149486733433617268090420860271413848938382105048809460074660394736576456013774608790009440185122201416751596576254159534009885181160333452192271988292605865203811464921515672099549757465741218408722659829047098169976947704629906044498505977374391537959117276178792825810275128470873579201465300640399816531431939163781527720805293705610419504083156384044169098254980116908869332673989735789466401818684156915698235756329768244822240112879218842446185766991552946405662901669049975556694143935298843442567854264165180765887678784112770544657700268065294084609324641863080870911928772652631410218497968393593927058894772895099206766362210979056629800491433628346394005156942905734771251801572115582099969101770717192303601100704331158878388323662969665402226484048547764828345756706689055719050505110521854154351546938839355819773781389139681132613727243460059316314588903112542936229056155927925017476196199101951677898169002079237622532100885584770687183850127693277295280401658533972380897104974594738109340410911975581359615815593896880198053993754634618727762312121792331876925380783430298368963884589872004984590810332447478688633819505368772724192675348683835594341085498005439033635568582063849642642346535506066681573157717056472869435246977919318056054494570741209119496781956696190172365945838464729940190560133879186836727444934342597431261977804784415993217565784810110731435011057857608315828559706867852358417050127830702228203804592920817664961066409274997298898052681111839164788607559878234263052096151044132081507521424043245091096716504212401711041062533262157449243613330923534315846169830245868574986064524304733737315145183657493400060728264176165617058323849776432865213702932873548624904772042692090041485147895220568562854112859065337345346962963857339683232811444107849604819892555007213387592368051886893752630489101798677636373689149476988584263875682411277616798729652612426413388586392409028403172882449665502280016280696128797375460249133121613068141270362944946668481777594566278404981924135949730967751486448643089298872059236476046328745853488232254586703049480978792023241657379011913364149110729549880905390839630214830118023700474242092077700826718547976024752290754599325714791951137492489009168768444620028699915239271341711705576968789156178236795683102158196462021706052680628412470901769692224292506032398732186839707937151504694160343667318634422075070025663205789147556887475550647139980098113926131484837332645851523022984234644480088297349421519944505725364966565631064824636311675530751189745020141301432198618395322403349592396997476422755035485130199423611765765158726997689578215790591902204834918776524408330634926643684944122913512337012680029942799492415819885445987208171502192505727545363748396685986897385757124655693299051925054300829069391004142198865086033981323006459662181377307608088293024281471654678566990295049884339388170045829402093868390775369157463774466529990104017552671672977743581131763464265543730046381489075633610480921468884306373675171589052629735747715609596272623021585855571173746423209887525326860306611805479420909141213600141956223788372385285337287238297286348820767812188446016386053432757012826715413833980537620736803952717001243753965531155702016276696977816803196417215620522103629462922212830161047010974074470576629101426871351550849671500322209438110988961101849078527526773920106360590722378801668686741674258520952620403771904735412898675379522166589438154783818738748608201379047271371499719889392224823546481930995354515125538903484599457093350984627700206121808790174744416306758839134003859874126596387483728627012527721119144037301268565985257170195946722604715404273108673805067936337982566208433314289427758306925625137600621424746816581448347105105465038718962388713852419870064633806631075478940313164240641548045354099245239613526224796898826363817577149709815931958250786103539210602777523052165106773398432753142664506740104842826752343373149545800945152560329839562930225476523367808273592329074618418434768910301613448333429017552262430635113196987920508491269719472710182433644285878755352932842697298252824843594827878218335060521779513856021080489584020801288295387837979420578224008496856220485192372171175435536170251326243549272223629527358007097729282994751665886892483579990040598945846127846756896095995155709059311161378541601912515521100510052749771300478792920182603770334579381251643754828237257207327829570210420574109836751092208879274397480175218809884084092562532458343259738689087598421130008994557185865987243939910125087051614673424448737060797383434948490516838068406094807183830676444988760160885932913174404856200164455201073553213570474330566866861029465329787436167764705018840947423414827612951251974208249813663184441369964464231082617929799853989980379606675219808801126267717392681644659936587791326610467118231559997706688583293517354035037188852500589477286386535729794903805529246811289568545657564597257897498194614699032366948357392195815700307407463441417253759236875362495602744072796697992877197905683680656757580025174464525089934853227446720363088215445178453595880418666551864068305261870210875112181261913616833684662450986450136790642770608422741272474036809091432350053530590038456964415474395881678956826994451824208065730435012230799546235111589233146659387638174659154371402106788637344105038956557980407708924086715803146411494393943762353725999314941522507992173039123296788676341812711066410331303079664783008420858506377747639215684724669796942648162886087874800868961377596990075462811812957735803037062426130781192364483799739547033622849355673447822273965844455211378275204513733178328506421996336756471792465116613114357375124949976932521504832334404522378498186863420871843872025140007411415718563973511447344588039816996890234577899191749042083243776036735649738611840629786319646302557184704807635184445237040808979366152001422979424982569302404960227203401514926801970896299484357843561248018429621407619066928826455841237101411113129792714721862767335427867587736541423439134090385354941690370337657926660158111605475123276874862173511054263896650138454723310971076446419659513472456895902810549427851705959087212279497253327955245380214622139825329590032702313099002495687290101106205682917541480673812846625471281954415111080769116458878127049872143295216696211834131396458241085730581921121274754480599186040981985755059786226370099749558847663256818022389789816593438594178535448939426948947667231422499207634363656520725692836596922243669742142095823553874760472491538994767368619009609120270933753622003906992969310347711297939697648963171839153237443526521510726324414379298214584287839670930328520188228932713067346118950442854047701872781377707848486344967282982335807048240853142286661205594775160624379504462867070297040553538391287332164785587847463925647359802288282397464939595033183768339275117673858037677320616526341356323679952158325404658229802705856122735849159643576005061052160031634551410546879453714743273422657183991899276953089065561706658793681856689121157333102312053081907154656484753893868885732152485352466972102283162367892056214329818232838790275093908439531602809117182535774538485124166376986584674748795140562800774683116899796766239797470214789442813983202312011313895263095272439619767219155664162877785054377982591007041352074299479819419604132708224659421199472799405024751206523842299889278102271591485483756924404232594466809493502050216367375120504637360082122499871472054482429122693910301379167331495617644962328498289933741378717659074231405217483290114604352865168766979010314697807384960527293691858932284074867500855426450820366298144213183954218021207603858321000095341718423705290220269270341065438489277527533257963242573824640753254284152817480387334594731974901696220187689542150015402722060291020410725327090261975765670458497501172148041251961640760186744779349370454607322585908909604167241270417165808730587723017940999276439396291162648594913476859163067436880990151945388527349148451067466899338663997887835184449376986852278515172969834407113855326616145109143334611453503918080692346662449691470969691953079531621988444248078486405891147971524568916135345778275758160205838274849116532328194835445347416403156844971365262783635380767377628850870045873789119481040254663595383996043334257991323784132119421592376479072982707253559488128827065235714047709304702324633611542675756600346883218755543006686708441296005056044271032610958809450779835713148761901508066190520453614167208741830046487710975624088536718165110524043653033324133488246492384685703338174486332715566171894486648362078870911202300046756216218890757430209952192380119782905698722132246365308873775157339995666031768727984831966265737689523038532411973607070652153248371472992644395599241613091372550089961038384168904829047941263105387904414331888560076700528288123837812871222916167175212200520703525511061342533548900316811829270828684586402921186231179891970851012537665232685815226901928133320613873902629888224587557662389615851428833308782175987303725102538512399685110084365317182618413723632299690967270429683531102794323851869928140076013823405943190615753631546125594901406435363821508867927659690433279255772047864721494205730632308427805533119740769141953523712241998306956456257721958970823835145794015363835548724227224918041809557057440853557032177846039511880154816592335884269678072690871669233387933041468988874073915942649264919103926778056732858030722553948986285623147882533830092037125741592877139255173564713320450338407889033653675611846208154923055020535144202425477384750223060140224411378050244309738959673338969323773048674320566548033686210359660550318541126528787691422562214512734749783003436322734794937636028132797334217362330562333045739030054906772789717630389371532252507532514233159255122076184159592456967648143737388223626844997500471016275824645455109878875114951361857369616714969075047348370241013892593150550206711128313727977254840546627020826180877352014112835415524586117263453189169003664631019488077358683046477622763986850938812046034250068684046716887177860255804405531979334303785821628691208175326862140948470221466032299635816638520862816554564510221042295520331324996112205730208575299900475739902247085929323183009436457357470397320023062509135723477003235608520995342192227930008688495306267743204670363231564837965808467698026101479904744413416644628381749551378896463498033669069703091091184697297242227895791523615127434530952552339471505803361424243483234181668736784511629254763215730457338209165808871077672689688261139075450539945568378518830886998744244098700328985928491153497087753060491133149978260370172292864823187733830889579015029851719570963574100349052469287317457584358136792476018826482382725408270154053589413747244660233167341611091743337855766612802284946539943048204986660934264698294676939907910403835816743469082476414551090307025424130726247766843764511560068897690308326729490187882965588276980521008865542597612440051905975144956128645078518761239402580873629822924893569851980437100142351564230616300206252736962035318339776209575465726361925334387863836316749406233493237096773421234593371465723351300801408382479519576115630149193323319559188830529152622495591946082728040327590614442171594529262462608191998690352885660745115749504842756262860680817265694191409854694632358184430645499116393766884244427139215835230597395852582097124816088217179985194175912494004236478995615143030551558276748608878956930719153413489017881155462419811974262395840658198600663625727306864309275519724456292194153853131153834867261792735798869558798357626356043056977595609433122005679440014704754803422250187570591116859437557110868480477955284554425033466257038840389402775597591915022354280168454013341080295942810291611216146899722316191228879522216215905378845660648013497571395082149773805468683084409450438456068007461483096266235167296369059524180267427991188721540930316888790620677124785898729631618791962901805604757507371753279758805219887548419673259794245120190527066287047949006796953008882344182376605109677483033805484721124861977858012349649494443796738745014777694601176515266660095518514680772772688597474892300094327529337193596631621446860915316286894423136852704457131659803813092633975290887854673238769145273622360811624936464693519279383235388393779682635741285295665822864745116222475472711800781972405682616279411990526676927407057965621576415564281136071045403302462172844347311744560088996231450766734188395545709396722195283436649305833049292150306610929835533387664642729126458428175276889625955062025420485752396262700393218349957684261149119777751420767889414298310064001183825513910936669377677587135270397232017514215530281256128570413715236396168758314712857870701716733567559795657082104449330149114953234322435399267511643791649784518668631030063601400168572495321664750174109744781836827545902995713710838603390039117289010018531683904328658483683388065679199579458542526234994089188578394272171070833399503288003863685875761537003626380340297453093567097424311238970936750275958857741740390358153572438706140685180571801098081315272506335202626794896869383022736091734871141682219425432634995756685379996398715608662185513237469095613512863253459406679032859589641653223154244840350690571028835030529724936413335521951792910071566603382170393848707424430551692187348217132065496867342031601142632497280297933565303264355823847607923485376710334072145486659161201030979300227827155466886592920295206597733522963633945248597244503874095160285854324396525644461000963282045743026506607940392033968825398830774523929655999560940882243704467373478290817555217582229836690953147847997248548613160714004885756698285209986747136499090504343764621231107741922718663991615153618287028503866340849864769522154767995482115813252864637732782552787281567787793626477366945127028578961842917183291408334693822205770461332412348072268889505597106198409845612494046237344794854741135617778241930401572462838623617438496010707817808909363253445065846038568374436418482822145227690581869444772302897770731246285473054292413261625645719923580792511196915029513217134034454754840706714419631106028426755664150046178840569418114577032166740664713943705012383700554597380403089857806304827275302495547447965362690886553517763630106524269570846974314089152935812964101544873718603566195520651932078997859918332326715617300012015621137582832502706687144418771371060774034297702685906388916892020769159290052853633480524922840983536226313341725439259431202134575948549756061828504439950056501609597513477075871385447542989393575058180505028689242553370911805570056222773630479308962916105339921260954268121744908196857202494254798508904104130364115242947492057446502902044968427058559248937464533456590978523422442318212632341195092137374665194292941963122316026525464447418295620189296688073800693086948251841420305014341411292072248981829547622975968266324804562717797189118476356523776226382003602288150260887025134031783973987248531795931985456673225656689772783399485237450037863734428806849098303980209875758128629636859126549422623332032714043553579932914599297555262009644397950981828608747778349051134137171298685862567868709464890531354505264133912771779818992731987469785804731087256875730077777508955847736073121335022060514846400615702013547695127218879325940831528435999486579617851479418159222648545300942587837192976768674591007965047384769252406112182983747953328911136647992634141140873846838416954581119004131166059896511395187844195077202167940515472937493133368364809158848165715927651223598685448765679797616783794587395157299902562768359002252537248562273643341172889663059868791790431001150469585606435430339959969173158918093999386184979860857511883893183378213071300558803615163325959330684115195421192673731114842306739172104369629375492442757246622719300043339922558130918308312769291790042656519881851417964828897445933585316752876272432968794349159609332950788691293448528673413567217400285319860415560901788908742117788809738237918675695392880713745638259694067426857314154530241682352590601172554090867755447992781559755653438486588116977164258478161044831868447695702117415812853603665343454999820217625492012240730147989887216544654083968308691893534270685464707762791515730293846674629114939788928845965855544667457801143099973088912808692470307829903805098688999457175850444912303645072419255836348035914777619114062195304720813584514318363624456297412638909892418997053416991497943737766856277534576906663107212144264681534975188921994951968561926024574425673779180708866152244938613678250200165448145297515236775765225263188848199079792354862956530809169429946843292710911084456813445610672549861128507224084859306072591804146909551582151306891200075621289537698323030607064573527300829395329112222894445671528901084040337781879385753832943809724387629763571273212595055751571940150975377375274406400532368597479275179942619299917947344436238492501921145816814992968616792153245161352256037969854178943480227456221819320708129456314502962229663224128102049705434634886060304416240173974165755648684964905498308001801663380495100939840373891380303244298379268560053724814712205533051885790878390072755312158443349047073368082943815645116687532572416946773497361864212989400447465053289333651931241010912422610723700778548244919245494994386997302455988635819031698535566290251960593055573400219721870708506511774271723391758475327775709495083933359355273196498399145021907182948818509177139867181607418618781711652394446030973181994299052106511967902398630362873225601393268970241664514726594683069914703534843134491713498285091407911488324546057140575721240033622432265100300917920395572457690233611615660299520650651414908698465606421440261195883828363907316920610905690983496136918566602380803328471810370212444015338938857207752941136565540208102392430182497920812183290898650204167254252095585532283566845895804354426948758249952437797043943055994067941105359505219785197706013132409485515368808123017180410538823395196468323211112057805771329196538584742054892959851133969644270578393919589432055165814827932930272186227891769261873160748931553673020575373851466596296035917465519126989239816912956853424338710593709867613093855506620747469317586655479647069533572979479916776037966434932703786288113675539389725502510368204796909481716494729866579505796345958364609604709919944281804584735952790083402132210565658799526623220358774915903914081391781893484817749458930138248405112259102501205656914577124576115794499294401438612545856904723436010389407778438001918787317457654195713567957294809011391582395552166715470252199225665611140917423150611367855795430966352877778102494807981716453740819738403952202645708279612446683146114224170777664599011433866271600007231677601913301329407727999780250002063410863136517630550558432415501259457543603784171536966445827561627664496805142450246005519200686140812125729846046505312661947486827631047587848342865545751671474712599358020288735665126490938439348532633106947273218284736199321173724443480124577135772674620129359086208433586488274157044896272751613219755232040809935646878175910203122029942024477536444295043801503651621788119898463426256141306457144007005024125833280845689763629556720955464610188208325272709777618316313982792762491018199054686832855957672030804635632284171354519794316120638499840597583636724590549621326339510654132986231423738660705849306296382775604205200239786309521070939267511710176598222602551604356579865219635817551838218682418600091990284134605988849123813895212319829508276225311241211960403265301979247307825803980314068114386419523444171265646705648326064224974020343273344295152402099853141407463951819993738603510125512045942290669504562837030747614763112809581232613895421222934761588064011256211934165718622351637293810485239081213588330904372253555718174538356464644806259965313205090006029460366504348649369923449364109163984106508041614844389143031815599739414161971510227406087173087220460964712064334314717386281401136870201032341717192143474829978087603608193343724806248913098745213422376094644715229022596215591636979471501296514626459031091408656115433675850221124684974387846927739764403173493383550211605874075125972721291924703934362092630600084057565530856900024726319343510578607513223352057633706046144698492556943091491449813079651579723982059084445057920494701168074746461697595638630816695366983846829810692320825745488374323920710186720612233815280611661206428841996728863244285988797634212196832852743520248403836898368159658018512967160812759165152737482413073394111430079557045726683254828528928662851418900265501785357897200274239223925559371194771911357602093171963299844202724223061571083559319711269042059339097058447972052276001672214387830701691398339833128756032947879693470599771924755159586151028914634443788530767746174680098811225907754464556608736670705629556401041001161392636636993008877970472950477313037359301894932737296090068901355516698037262873720802271783006845180097636062508105915906419800011428465523643738966054186195341119585714677503522452818295742823723673064458977880463586895048177593637454143545193939992186816465876857441620263374498009224901355777326019113577008625991691185511629451671062592098241298235886593906831769044328615264780999089405399259245629922881892736805076240379120146777070461688336903459484330752805083385750486083762107817679886076408051368511400687618714895528388950755656214919988519280158637557095463405588230044556504895779773811997561759976750206327574252048453748380718861079170106942202182774015590043861422672997985938841215458928562875184825671450281006287951228306459393150808531739999257564114185076745434702080840886921456205826673750495027130415227897498120418634058333868024063334939882089664780825587898746574651799335534143058600854492757885226094833756586356235952656249793972451113372750920891684018248827019211326683039493122914341316163888030519920557148850793457804526542020018453653065959955380312484562460065592635796592608923611714706631298420740177080849384611570246566906018186026323627961656994876035193682887761061223995478853273234867308847810622373173897355068627830714537668533522479285346355583604807655050920939994109981962254019702245234731434820096469863730744263284192257192776823283449807419588415398284212490536667465266883531499973452312994758284127008053596491846522232412184978807712556329227085059225509822498780110847109901993271323022580131407533760137288906782420942117561007780100354924714180787343548373328357909330098994395225248948606134220265267806298539808997184739302849536764971676572416821778889051068577159266583867666324191955460768152974073620370963459798689785343112598496487520449575870401068718251239913163015140617336245663272038997739407060419382544509170831235741254432682214719753505172172139835642847401035403661980111704839601478768727193926299656328451274279122669606180390458927737822095297361976673200244477767535134540544371188266728960966983486976119457319779579528698553600345929125681219571423025785925804255269070236735687755148865165391359245958602911537321921841116321250562430601498765111781260880147446734992371824405598605707404045112019097804343766314943336489448488359988031241270605386115192541984064773352473756587280988743433365356628723003691795394573164472787329829093108978244676517499059712641144851518393676924732098559000827179425146985594520254659702820965201332830465140817146390601078976816657115099296704336466548276456532700935329240038163338472139289479318765565453246363548620635103834706861953163098648350654967813081279840919820715259329504875607959781339419522202978868849390418137278540950772772686483132516403118290061199331275044175024594317508169265966507239944245220631744452554400213617979233739957391789236327737878285144912224000610421293125396475074478354753809315166064870054665757286854854904745486269703145908214195562775259372242575191137281412021974004440565832202244789660266551639225501691140620475284217851820830623383898727268068384058683449570230278792037419301716457103810912449795191634225814794026531537747810016921721927714614502244632654303300649074541224035818308518348514405351403519397107906798224649356409130254469862839553332422759482098430941864708829567006921401780602629073811304403156270581234631690101092213424862949493040243589728065656605356313123768511342143843415138908831491915227275248033275785802374878340982090319869895103639097472418044235339580897531307030201024327204510295280632661837717980199159417792527992941319168395636688729388254237542687986999408876339827866405535866092984631312280329019972820426295157498162912131490151765932696850993449861146483492269493476548921587110612683121909312401159841625433146280467816580680998692081950515980210989825282270417391256932093140827355655643587341268034956977007023051618720114987616134327280878822149097381157576746195675646378205500502343044033399413963513041601666784944620537400774054184809776662216979139104450383786864829942033725937667438325643691450633569990749425475464961624049999764053312412165202880307924521550868730703452867685056388802143859506208853456448003885455192925568740934952936620831973757967545640561853115962440399303678595285393625964666949829130522170679048723938585586028644042646937819229166414141272436431102349641501003239120510815797761523647765773468919865431376709295178127186101022682771253424487483366442577412060432661917746979133088658112265007677058422808241124805029874198605747357195916315033399839020583306306287490688793350687687928009808115528795438120716854358990607104024675943012681733647624076096265484795517975120709322379967144738903886828497074855368920610838285626506674542255300252891126136960777114062985416024315723815727164777559720043874184795346271908635264379011638876880851228534151411254630234517115757795686336438519513321562066932484654429141625662911406600289230051739463538564642764340070662933987665018725436323577366556825813645568492923739912654788457099862097356887054967948591753708683794438595444744394416168968415756878152273939659866605582529589691288436645364603304245239422543699163088300441448364940778763868006418404422453573340111446952082377752159328643984142511222202456296036407049673479154972512549420524900743113395733622796123692808638408530461259656533990878558679978375963953953205862992183774645955902676225377872622914461776020358568864841501997592222545242139817340284067821179689621102034474370827579190634837500513579913268053817483139126623373750920864880629921318832539395645993556752667032240695856516815011758471756750108710722862715360230196955998187766757693393218114106209795833626271442233533785453889447480820114125172205478695617620193682679776121557595167357031348336598148194778058593031862177780544288264060828460090043375821004187695381008550967144488895558940121805433104693003478585678120664522284547550424461312526157955695575673429644374454509368951738671085416625040318796378612840415071202956186209140510162421680090395159161010959917723774159172296726462954740037622245899346884118915518984320096625892851617161998413317046896439434502212650307413365103040944719024186569825859031515633863317099368375959213872371320189465631547122402822190033112789505647598282208146214271515086775012256133296352376400006716247671130216344394203205156532734602269390419842330639428600263799729216943833262743660290027515089083742445570184067385925486977451771838784722241260669947635625706259949251481217573014051905859221838111040836259641528078500989042954228067679029653078079895406588930580839204562441302463890346784965717783843637024905936473245988516691980380486533806259831554452718809220133177606302420859165885910539571118582482520443339109150701514450559178163565816119708795101872718562437906098358169977209867612600753342963614773579298894790725412579158082356994539209246860417573774347206325525697471974751472552438664397969108062376939953364990580931572692058244619319573983154828082022140313843748557810006697776143200955044042297204642533875120875836155637716437578016587867503766862171997277782509654797442731091236378219600820733362057803897287876299080933013066579494460878476665556020494676856493018247738524196318004325281467011973402657562255296602507316010859013787624298509024983526493974533115204922040484496936681700391817370818699278067320210467522958322799709229130783014659225165547600328625512191692143158388195583645240862605105776407084747194177718187097378429714715763418938254487516957471257358225531250861181906077227294327900640685540959802672428956258321418502088788637885494128289102083275339048446351737333246536920848238234977686085180219089549336300110382575983651183088018787170513493642485414113946917750720232722694700359163756376787343222910601423245899769574110272082501355467067881871448681095038664849237811338114160977442528646132540782080364649533883419626604208451773870226879910449959089758250625224543443919539677703243468432464337732781369945985069198298545040328511255862299726889184199797830729965077699793827452890389579656496282302527321561316324095752130560607986678492191457474745542549420545728198593068371750123380477889368303102829984667930648804962967105485473827024897495421129656136755352200141448128571963128452955533694948332129753682973523332280150017685530004394647720363706278485621541920529883022494096715781674754430590711131058866271807892545605241577881688848877187452714722322258021748563152920445443109297262695549340561504336550642097993572704772698482029660003493307717293173265317777949227791530149525129001378538387544103327242881734376413003093593684899024905607103899968683049655436936361466843776711136349554120964971325612865215207598446512677981756882129705775387451242263577077104553028521032244139809554354670621821779314526732087523206054819806625552313535100766996490858802557918333889513474070969415853007250267514057450677123577968184460987917526945463713152083452471650135431593343019493133520910513094214684701461131557402290250927740376366484168525714095110279585026746820679038073911267443014139811150962705485965412511081508552678840946505947357991143496229708831870529127525019048625270244352765868464990774583116609792333107994046431344059833899040002830342198104495780828664203113780922266047926194044355486949753534372749741533582154501263805293467817884027886936820952901758649869872893890221010378805515254357441008585444293316959874387349089968642388358787224496705498011172123549104152209071805531444976490467956800977367065788258198026425223956083686615598808237400995766768678884212206407059297160114726682628189295286197056481883398958534223021995127902376679252644066395916548507070064755800490914082355164439357308210634912516448977972543197331101778101824831782116774927741074227430968677645456066481935629475932635629739043331468192703187655007439182990322683324052390286189533070287926694751867551569370525329382097800122626763760331196628247476217353345662009000399533352252815816379728701224209039727339210614157326644094918073177464266534780379471439210256355584237157907872287489665595685473839422322660774943314558400591185756420703549441213909302426700473457950017465154245718044680485938046569434669096896599906674925161303157596175679578099793488280343868375267939735095581728558074936377566301146501595469211227243663961549644196824139457604595657566921541582002424162859722801827278126071047385079269870073967703376985474137954592456548579995531750954358595772451291513186627284565755391835442994039978491305293513694098963218229790774173995642123379719232647523679249134972584583740248668777780231058228590736239246214604252444716229047347400473569604791465114623359305503750041546834661605118291013945460850335929438028505479703342184492817817859851633248380769719104045662120998023195730715656032358818151187953359461038806723751210163093745497523638343948056480747285266737969864181839392918213584279359711035922043492661052796320626397052820107055362228885615788784339912369688815936443782964522871645647676710723505322520831321144418676489861527132718144147325188547183530029445416905097618525860869876063593110013786116006330099789276354262160744808828212712613797715530969901531592186679410298393171089697372283402434162824001085456798245413199510137473027831657613360096094404204014147635593370771621729764857677302112929149491007874315470677213566182593721522998362795576779356319913366268594608094520915743697618589028765896409269318631431002048505837896680479122188948048303976524600647974373399670612938878543198259388553509327979445297962906032757826757578216456276598995487242445373205234533788201791918944050269212012955716243357569384084465801424244960691905386474351571879659861449204189391951511791261909108055981061483555993528669009528619458855864700265488085477476298479616020206184149341230633647404110665790178571678215392619945290527641068306859626934759260525342717931707212691919467483116573197156707024925375433896022854178202820417009073531647665263474826851441686914548473915321336902835795456128746862931861027907298757573252990705452781451897455860757085960056721014694112864661176730901422242422772279470583217666580620108084616802752870543892721254500214246065547114406412412124654074463772680264588558963571408611265657219437752064013851731015841255427645324366284776114927415765633602816456700282300492681248477500391161834998671208639796898607627310725971850404242860529330261105303313760071472323570534946757885983654314960777163731091460970920149066572929091498322325081326947100938362742120226539895535144448360226162854736477243818248102763028448213924556182712573256499849023194788463971001486783559402415220313533428653153481423764813886869247206194757377320615578516509610243526618447369799940440682356433010113700692316170309362997931560533361927011076123698498064544109433575273225015171484823557810800868482073754010994528600560799541431860828214876884359410801428130685676465949671699525851213708657044318350787747284450784354269992721357393978310303943324827312738893091378029359457303947003340774642643374437784026912969384501573900137653596154741978925982658759827926233842636177622103925990092985553595066296971790382124486176234471479176105688520262117601050600088381463173130875958195412990930052421474705629045886711324434699236817187598098029382888956618063396463897916965382794406427521650885242044177043762686660629330320461353870304380120358153881347378733497748222216787906025186072592567073348421772133092432587604155709687773275841895463769012963134332284473826375062298098404249600157087001392406657221192603610003342518135165622508752092778995254520210342064942697994483180199745250271455701000423357510895630892428966754668977003011583255476623280962855298155173627856555285137821374933249600043490452002484096398719951644353048555889216065572032959979402647579471528196315469982609767150975852463073883009255919065990618493963967121474279309787043087053484328992088184090986363980775161187725145833026864113931868983607554237805954811106944626559845340400573814505355662946923363663843426449065714467177158615662709651034261886415283730219455589662029391738620156626817979809420102916396278759658933102628792385550583875813669301969487534747150104215707790880668792174897592922122438267623002406556514737179308916292689831734149287305245877415772155273598052682307009965921444250050147016094024056874389303658321794261048528907170188079987713607805158010040405017752286721350466257264225639731340562195182677081753311653659945691761461505682996659877541573656271200344529331324671625666553259025325098063551265205980547619697759898171802171106455401392949968153118907585036170827261410798393561582994690645377660826856542154827427821184902212706062920413634097169912562029637472624055937194514619721773275691689823356653721383619250841507136522341889102369838702088117783834904793025628545558598951247322338852579141581585176186778315906114112215928780510077125062906425257746654525374178041125969982956518666182069166511667448054236549929289766055408299153191636753744884791663425723308897605994032644115184850224356981264976428935752322688446625446253419672802702743777637243271977539900465467928760857711808013970307407271190418993654172986618035807074150879272428624219159842677289093298993792201385824460802138858918468711914236380211429036202394780103644148019963119736987832713915919931774419870381721401679155221589181623215154280678586955706517488473651675556759135965418254405480731851324317211776922896875465413503543267573352558113061015291913827118601513085223719002884141649145306731392959238090967064520232356066793587604011675755062657024889116967375831762720179004604002676766927496278621108998902463580203760714919435576636536822709946028154126262879328529800288559749721794999346452971230881052580397660471322470096447193654906843987350485087816301674168962669160726477011672776551560400668347741381607878180123892126725194523637245378083184688314338480308251671981406189680890524833205666874619014832683677588187642278052456856579825134981895692345973403594569401132271506381342976941040570729902623822971901278968452055858071579447810590716939476396264189644359263506729821528791549112750476989551878625808016396035739787347033718355535548818150332587009552289138886387508994821107298691295023441319225784610547355358370151425405237384778635290332416834781961787595917999446009873498441954951158799930579878992903421577952896516260631742498725530958479132293262504664081334848891179035032424483945467160491698446320463883822743275380426923034651540705216879811119427581308554330082587684711634809137564866412504872280721898537008630499312876689656682265412880531388800434477408246784768102107267062839933250155044626686071734008421166702046201529154254278411310691744575169512390098578235282274420754499292819650004767892010781533101041834094440966632980717740110857974649098995481315159606403480076055066420984937708465051694088393412891983399885651999118005614729314266293063843863158893862591858848287384971208691414261061143664179854823380323562875484799946191347001989893405913891838493692447230234210046047376702332952959359446530787206037165444238556509190590945095017451531292942242149934796440032560191688143058947407526565053128469871744703334757811783396928108350588539701951172308336620344907642257491172661128529478933141844415554985700290931459975911187296313182247970335266682887824680904168288213369038916899632210467438729539740195313578071689878112695575558657587617169205868390457677602930131102446022259372033564304629223590449458859046499582673604667133500661543934669764348126666709351210911608333793933726799160318534800563199298023527418703212225305158573303396278164155888388894940077054278363529287047932933246477106445403736823559095913641872208579260840797309553704461075676881640873789492880533877763661736602133549316169092570617682630757128200108271532845593567781694955315775642386521345637026956855822045326332889120440962728593476081780979666298420883646929153989017034083554488470793592920127474314705416997057172941287998748276240678067986053868029198671660581472242218383436005139281646183163777074002859128366761136387288876668624510219596398052949907526465383587004104155700553249172606066981838690609151717688332025209367219649323031369090306135294572865839736803315698725277875823977229701167027697798588324676848337304710308117839597932042860871679305456470857044761882703297122614019264048613646095430746814788366994977374152586060341346856086426836451894548806585099541195454614193842715203157921617371415216283586705338884137039063287846683679989733658076598059373623241066723488845984722111991595002836170240450133587282708620331029467243772135100726030300793931172448545088685826104819377899219937892037960792456877929314766905590858178973274259265121561072615470988929983177479801465034439187906812494962739681873531116657313732068220464047678707894840494454489956484665160976060454735447005221682392004828431199239062654860265044867152208276908294858949379157598937906854918798722873848094801168303824328316268337650470011156743560423905239609337159594607337407887090978619105863099970988625801211322685292755042921321880861192952747633680665847779147545640478873215588800396666447800324461521211794672545547634217045598643376565672916520322698526049950690939458080643194724660999528147323605930923850550283193696807928936590957935862756437701115841017926097773266192868105915725949584136310628033076002696605710802014023326971631523605710143212706591626002970851461577403173460938642486128413201574909559965411073998413444734565069778589972475668508043400760143891592571837675018584028752532395280732155815151881280907948271403883302497843698432273263218522947502267693453402530666295664681539985113208060778593855737400465264979685992835953476727781086346716178147367750448711409727453145381962211887563762238999744153319398172565390490699807241497993320035717290507989440763376561157806282220043949378359269155754502692513213219429769044763601543343215098291913139143560159925202000904313455645385366753018384561104590315774374795080753760985519144340296914398147041751626973458084430027021669514456182970111951318772082779432152048976137088478159525735204093965537683548217429764571602591315513692669753367919747535771349770579240162241994654185126371882351560583031471407641572701697274834010778398807981810621249808603592464355868737162124351184525213924903782151102863719473143340897521673854241960490946550437949283676460430447327490906722846485880162913769711065527149160324061368409579680825716719647309125880569870247245584879843399173378060311277685122263153792522609622522056154326406444007865834953248491213943632525222745165446040487191652377606800957311104825056289217535315391817351002059641956742990348075618490234853141177979534123211237631988310250516386314162286314744108930552547423721286845090689804705730879406577564796534989346581167159518431286218184666816859930746386125799818884030437489327243233628656981337819308822087746105448831206632620190975816388169712782831826548442156817272244099004633207236090588216381754886487720401653871245470740445265058552680022444843439489721982943784438815625864616959484688497318108036585641174378085118399949409064860957000738370555188930877036945506236506379037499631824986373836689667941475778951038326471590885599646737834669803527826867290195732706744548118535902390818000048294283568359341698737033193733453711521561248327399465139680700004783900751062889993566018270113985161596982528964655406475089969898480252875023018309488665555600951498852027873305677874774322890782283437883857506908005583599970123434085849381596915152608489508108999525188710667724173169234449562380287600015051842911251092889741652319622142030592696660982031805715009598539926140745758765621746521574111868844794830963959229185629326765392501456061629878166326214106597404348409744600756375251797650477483309184845905493205358281061140336751750627080600521851659744508218660594276425435320785994882285536617210059459805162635504511537781109921238375651345924721966850476941024367672119380809453652455597628140121311837984709286136401312040516384366096481940207549515494073072854729229387737894306768530564821168712504428930124967466862161705343876990323486808868940792279219742668791406951602782617223599731438821484901408071585794191391969735729007904055454428498299013629703100501701862013507829441431399160311928383706900065483409901459483738278176218203392334584767138165440169530640339746016794493795072436219410405790880366029590530495297744333750193912971339412337932785503255634850420444666268415083566522451632809156180681310074669040720583172360476060228187288522413913127250488909920880840605921148175731192861175207346380973376739181536118126210614534370812604290424732841237584600761060447394924978801789887947371276773186651161262325102830554003590611126322196458053003448544088153067154660590816660767077261507873576340559599385684884318207586414627586888301553365176043769624468716018783109389717925559908077435545230248197133424368559911056887946949239732398167994836118920355091043125960356036469469932561222612082637422910545276834606686365193237605888270987265164494550728371067621336166772140417942611395220379652417162473120593225991950113911535845518877175719382694300701509480143303103664261928135603290121465821962171272264366174293994893678094806922221819713655472101366334424295133797071037941063342103271463169484284088692455955324758113375160939375156088396917584527303259494589656469494880216947178151013716782023422473281144677022654389369966736980832853832623227733255415956366421470627963106784251279562819190985530120611587113432645766815238245780656405035008880365998736967406780185443326426216162820250308773264830931334130190665231669252831965493430327661806514004045488810242928609389322174671387270196458655901941753991621164946965818765366330316039189475064403343829841662203048840317377394052257202938389273565433468631625163007724941320129834853991766460576056682790449653546315236614730419300599862017523430805859644431014842976268128442894609216047062946926659546597197803295097705456963252408117167250627160308417398789316372703183833273203958647813040488258019965699107385204701626081533057050379473728941188428603751257351672215424744527307658778248738149532957895863016846392649948029931809301508647439039597738694101807116514246786566392133031984860143497024483877858929377027570478571924108907531885246051424848173952956939829902212357160846355380856377573582547208379006440437659951825147922262081771020763230658269270868743713618189634759618235227259459302545590575055584876752960422540447238379797953029476104962940664899632758231612228940203046368226649321005633221086358879876472003872010074224935234941410035856202617451349185427657944906749865507099669924433160629610461886591168403989140320896127413961601370678335217142255986935921057005567181624621757161715986543927419682635866129844288915304063926846644609284134269828368522242985941316566816243272394012900795674018120124518714350001792840711181834125755099824040140091423278917959539335373665962757784112211164254608795083900433623989613182135054349385573501855794315629975595349634789528259616261539588994907003300844012081545395816885007542268375673078000013186113571914723146390084845329708852145850570731823931205573300589129839766238970475590432120592631334894985103462134120335751146735481705850280310966420252508712907655924750499953226620106629916144978396279128849471750994893154192116815094771918741127647820673102948422212862137649387365874402596874370070080773208368583929617208477758093769718051426830409157871009526204083579907636912032233822558947523299305100007255810548811084638668962198237212750552590786453052618848767775668529029647332587237020651796111437400386249330251460280678281673275872325018086231769722196396515510054177028430520710754244633204559783957158335995776462207484915109166490088450784620676998485523762880178658398262985967104739676333354005587760466293822831479408640163613239583256934856708573453216317374082555355420644120625085409758696478656852234124565152108421803248583157926849976642987098557077690613415503939868364726778059476585976839329523271827315724135473678605273364330963686993914149321371178687118399236694764536457558965456751176465225878734816604251892127710705464702578423753906655909765861718670849335646036264492194577900576361954495929317791911721237704228952656527144182878051962175507984378035230392136569236609338833797100396974324954765258838359227093947131963173191894102117299673490629214968426503551972853360725520286563210049589244100233453597174421681320072462062742928898621807869899736836063008175137260213418030987407964297009770988317861290098848426448754701533917488338156997208675484665567497402580591609931912029828523799806539658803896291531314886224458260294559745486250776157008659187252501078647939948777793740729282922518308108709945392804273075594554779364102167599783990403412974625897229362954969999744435849764079530719603302240143627744645085106555109999875211216665390228003289111354112794715221370828050460567167019824521451325228073925322537721240158353292986309670687341068490531499763920047815086683384887874090578709411654593601412873855613609842979950622728713573248906051064289044573002750989441869834121967129878079822653531791424057289985077177158245590265971848905723477682456882472647556207175621496076855361647809894605556010517515466322602050577097001924600425466204435667865145708411025933740873363219318562778135568267084750419501386098627681072027766671325422042906203935592047140753573407113308736246176810724279344273144786988307480882590991814179449361075760130874780381929047569687212650740636359268556698681818030862670103176482878301322924632727314517580495757050067862894814623006541121681644643252192201980754183525678115943467572198779698269529582637725386098274262350155940717477681413954498975637128089043607646564499633138293064943053506238395863034429108036623779036256689248533582783420703305021535934691896751818150150337182612577456441822953023028850240506392938284218950329530421857794210302168753356637136773030860624191245473990079684330946327044920316487462841314871988492237251918340322794854769196551722148770817820518496285368815691074313666408872387038885202671673147692013709800785429230280269477160793285625143750986580021030782084543628673552727697382760971303809401703710409864368361578350804610683200961234202849805494106680839886270790588639397372634547879680922079619546484116660601523452749438133992545360000394875857186181340868627952955892911246378330984841725387525047171346605404460265187745230990471438365498619141855757864333462011159873757017284578293898074842046339406274124394857030091956432314240791526259144057532762712581678337753348290113893264998667544072347020074411365348570201340166888751854964605234716649190426291342693947105943700620845231429495847381394505830107541482607211719035993418428455731984389454626991257948551070146327124594684191803918103307769204652705880431159182644377678458250483138230888510952541535070745348688824528794696004094058076362620342869199934441484470600012369496782903822580441650367088587724378893713967895981531969176882595708097061601662467123729779600548292987808469608682355332577866299584817516783705459114267278728653908353309835292673747825676368130473743125555543204052944348481752063327368461841823621705522536665077055381961622868917246822359494323530516884897979654352281381283825130127840876277494368715710625243094205256981251981239530614344400345267389954733155084506557153979493873782576931760960580366401579640356795038395767408582598465055293399034254356573315677276301907920735535072002308399302957338949418151335515657020924651296233604220838455494037858254021537299864036070851956212629047102353132605939721094435139566504441085647966734375139186581446664859566064200222304500537549749582488684869378892230513502349387688775253327481757791669242261138168473589569089513216810770280652033137283939688782600733585314597730443451389797044402487662277166464126316364945038440461465575726244588849141364810487333372443832170934222483749414105620951238790041528607034083342472258820373068542618056779088136240640186210760833180637861250440488106820178274158922660851809817031359024808367725801179658993107955735929276723442435378668728636399713059977662663038147501609134144807095007602736422263052282635083749086792070266190616333703331466608627427714736179628807608912548585050286130456909792718364618356342137694786881838741708330730003432130056069121397692824559703455319422631921459396539413470351370099524345651285083076829206289334256397565953746796328198655379670558398629660734910881286072093628431922512209703381652919535730096929537286037032799187067069669043778582861501186914897620636091029775073815034276702195472287348658049963060023646793585095886310757415529936898788098644516208805736300666288407540400748817146206701992188831643103683673924999535205202814214309224988531778090369572557146909952382798860933631450457792404552540136682040006695849893446219426260115494489324283165153418485479462190650976672016424095542407010489602267532861395413261524864414090557468435266745599887817899076602267743621702059645913244980183436318259171263658644717385791999155144697145076392660303545114901788438308178699509451718202883404756609735749387077897308463812732681939748822144167996761996938740760249028639787943162990546136267421269520605512026880927250375531804566730083671016378610608639175291121261339609323465566102328113632444359035568440689055279908814148246788844947022870543239341494118007830668014853657380311310860131036197715740339587814707602895775920301082566005463312401253101371778969707657600215304176313916963719566407225015253395763045738114082398750730810606379439824331369081891398643122517351697746441553505842244741507045331744873255072070436766484800266474875553267254896885917618722435578318178828298578792890049658012205616639321388029890149269273188008750734168595013131596635166647717579273169849658325936060714676898091692808043857139840870622331743861957193628000109967838155922060500432792825455948428085628234311585452288034530832281799700491208471772957918808287708804436690000717284249683093284853804161177453665635672972718129949555600716472729503958285485223408776826749019852123565694962536146800949184952438669434249917239265983153302964126825734170821449830971452883754603467024794891257086715220439877537051995877212653108371327598522494770512457872655250390311660394741312794913893817139133858375461118718461282426510156593944076989316629018741095248579726860938459568095358113917074793861010511221326417277315650981203191881751335175975919296253908229053708897739868592487182252769875143141404614055880615404792759249107989216541542914040602677907553038400785610340983522658512838200247059396370405637560114289405753938864982022351312853589587412472489136312815081577665076523264287115139479734543141535151827784795806237065693532614461633560690210844000562573487701617564862318156585078324018052167869410976976355337812666130571731743277800099859285443437770206961803295746722038955889582084836280073783354918024897478561715226059262396667005171455460164018461736903128658610854065993553411642187488043406985023574327083487942375569062871425734860058266887961598277404687330419492871963140534222345792120464397497414311549818321839300564489598247440144067474477152115682569578546810272736538819621906816045800293161448982099069880541363677440892544577403894699646304365335053381625237522159603972232782744480788121085737893344077901738538442167111281255460677934193454358864589983688451404899069850086785080717968288943872467900709546408741699063573810090274081342604316764077607586381746448263278554975784232806245419965150936356148114073769623026528529430717670430253902395247956665734505488988221405424140961977171784099225849778377275016612267138427073857033870075408650746461534189365184705585550152318754157494856120493798583434378459553655496294567588900796928062129027699078155699252565663939543360622670385472237198007182063154023574919078203249540785780862614799582732139473771584330757591900819052198192963929523195103782118225842102580817818492925818862861153092464795954329661112218666565914213138695791713639104184417252456722800490768951776932231920950566383522603991574612315423714379699511508966466511627115721594935490543048164558073121933141240333883170550069192910164248453310423752353137076142129340885560146730320108483477183039799862672765296082026727229547459781648228000293415823568016793090290728863162425751418797898245590023082782353044398073984241091357797753576202640488191153892965667153596686611932498380518023913755520219093978285727595351176839397689521071816603230854215746307575741804611198213308347961523527267241233572017816785592745464025117557473537649502938000323045455791815527535419478763544196356950879662593721712748278550202340560337043960855500345852266366253662618609506184982476251991331329772534240116338506616440223097527795713061510079415665905146193075581926190021781504727702039049776211434625043783403694322620087497382155726871005719433213139576292221447781044112129367880734683585164783857429296792000215242942972601814780484380719640477496609906450781422536184597466310196727362088186973414384327990670599680574496231963000325531249050404199435696323722454285918755346884390810797948666236112001975898165677780674123303128306775508918548950767582580112989797906321705603755899795330800969682184640547217010300007732461791783125839048101764408743570791664345256983309984998386466676127393466834442006547672525394669334983111678097394975729682087465947896779634382108713516018393395451067845956513188200669533207910277126443743350324037815761258514784654864843835048817952435502509675372471978292024750903869791502743934743835656634449081720528457353940636428490432008445370216763889144393171227844919645555801890604876708832721616476494605242911180761745275231285841861521357263161776965669233086978637979985464131700396105045850452688976063193979501529241512056201651947937688365961114210857142015283698391636694535903614673116616853059755457453849126011357086455533408297850688220415175774955918899944396049593876168588742256052678136865440051951973379144391309561057128405357624617833475178709402537198071171912233209466223301262853316220543596148582319912343115594568030891761387943553175496614239376669920959382514933546847476597490594240921868564403009116602112437736698330120676110698260908937620989957941998017990682665583432475701791411891214259398011596177694485696452218321258066991487248999336518873467390447271475170123678274051999731562434554584763284902241316944960638912465802432282405289676916418316475943672708270443319071939742812465558529936008798174395277137851493998963404625719356070189951440113586747334256118224975031677903749980156921428084467522520100511325824086451424204998432791608149497647802464084728012389535514608763529522877938572890857856985347294811030985165020537099493209080674043820599802027038455047175106913653834854200107993767960645367394810980538772075721228682583184388742623293598007971053295185514536884351990489672081955209948785487255910360285364308946102027009511507192537188328064200011957546502432849858640793235462955080980281059720243608038334441025250824053734750857925488257828130719723099164119826869338473146687339028608637052754404176168119787458473226735478573019494104788484386269304039773202150807000430460316774685718546768797026773827893333638727718751741174362913625820416134115936281337865226155386282806038222322440998237464385988328330364690930448809211606880181569072230021764846357876783193492974347752876567923556840443700818692843661647327870168498654888327085924377642559587141485768479430386555923406880657236922356042369663821299617039919194833491798900441348331324331939323674197717186505219617516901214701572663171259608228911178569871554627146311770677386462250989506460953056889130488030384683197884094513375630973332393591115520854710173692516339074767149014177846377918413747449798211203234026043802081949693211377729124931820728068223263530901418509738280022483408516461298452981397689688165001745890210353185844071098767238752840075785715419554453955204805409427071702212783770000304755747014989518962649568438412356391116750330509300321539362893553029628140000487130375900252260545488769771515632124187948105843827419800043685716797904488157840822171208029351587828498555486720695303148539135590760678869828323025976491933692832597849038324158772153378304814141851598480940144807213351015547465606380879525895087118562464994688253100588943389629815808701009264980710654775639973185554595047090510163682977344436600109260370148790117772793270959106274408460479508630612341361000455907882854261633817505948669180774790586834965595474865898841782119540317335414166790579895494937719901615800151662585501389150178218904275209287100056754786442316286693003466297035917251889504108499073530776272425065731745147616402470454826549633455122502335201426257785901426637197365898693106174413859074484947453376511916516124299459485780533132818015521100069669378954875168856649060053790568299921746752763217752970406501478975980651432691325214069444373100732551862319019182333317958590772749249916648882722658856226942290231006332383940437895912125053924966220699023749502471821220802810476388720162295539578894670948989196233363746654018894802791541664329829009188011449334373034987613591851956503649851597698223720224945437803387984129963831541440105495237742875063832065157641860321053743881394237277001932968433981123476350145596922292617511468015023884731643383864316730730711205490978367123953294457337986072801812909076419973718301975520145761947341871789747033557454010510291802799932764564574277759843361538895294991870414237814768852083146276879500386703980640535300193679919813660188628963921590418560203133154757510384091882949982912249361246364968228784399350722818005459274218285384851701550141981353259011850653886447754945854237565154955136304417158794653219086863573186028213573498090066483816390697329008155232314182664935438395769040091160530973580796633014019887025507805379403410782332241326514023040917174633247203277243134699066643412546196210153467853501321046908053754740766572089305525390480576450176834245082433464246953385033343522449217243982859659117517445614227514401185153969672951276870308813362384262776658895702245008553017589937996200267624702310458244203666126393773456442181467642997514302622571582719032596261715813016533470013395444479730070176355159512246296001733471366477972808588506894974001674689344935550839719072448422476014623273575351022278493865227207251222353714653965572004724865435276789108452937585308200837441534296653908434086492076345650817690527800722283425730554633794073604961502027668993523541382171598650013054483769049962934440500888502258034164448894867250079060294474467690229417036177223994809766721477877235433178173360428224391629389741431524746537786957605716437781374414659121389578977949089820940621485865135894118519560491398218610167819976575028706349956127506595627908622148395216115483811686453595352228637462987058030848220518507123516446136061626832599845706348778077110611956871523223619585798074542705355414130843911683978835262638173306959364044000121574467078063348434428026682433568992895944276769461702385016867564957518839844376799696140028320016552651454801951058306451941904286775783183838857839697935870754891623726815960139990648652051220980298099521980838425755988887952622682417264668090234680934109355677167177297277938599536991693346252436232353985450485225815651837134992901483126461674173577969658426766663241469809938190593167684173002134690570601416366343576995320213157821163515666119929045791932581183688730945418569971087702339828983038992484534125431294254817371541578979522361263390085380111109927128621798060459873984521111719053466423437621822040648336883534462923460252851906909425525854890992513727533985398878449743710874740439534186306880688245762391820080495238903310251330563930471120466503741385479355567231288366729667992294961184751620505513776495053017484122512322244024906102724973567761689916208876728714100534491477098341537281461845364526143408711838427146706846996112760115016339207093936188765230955268585990737858525364913384909799436300227448160962794480278531460243890593486103310031607776553331202141369245696227655222362764811007546111489209952321397713367876824310741318810403175719870138809929663938728660492522770830563442466559519236964903517383855001267773357513994809222661083623717051026568687671298869895022525447288327280978244883587368424791750077975970424931275922851578137105547979386668975240731327640107547319272589036371609797331978621941694412420638330279372573566717632772254705582480818115300956117986330430046178170731747388388689930310696565046652827639649304161602004140512293022635436024551366053357380762345763903631878025600284526950089030295521279806574959328452776205734214756296824790985815281857385423616514512285570710446733145461319737210714084669460039495354836932579754651086093151311838572657930323512996606443005715805740868944528855816795333530538702190882338758655665903013711538116156157661081182363279242838660689235388488524921577506627055318007365836509821800768023646158818685549978553060486125044585702533967032871718088243340344085755608146812978614700974929237787956219120202340907442979139991127947513092094044001019556066084654625979995840775650988608386203609507662100829444150826504862473165782523290776876681103120043609218666733144706402544401922626312530828656230396608832606796475445337386734222074232416566424772899839758436661566703744012675728517041486983159271132976906061480142142870402795104639594945746671542581491275091046048859725520655306819220226054627748630626565978535138763906983620932593596342861606550789366818836448799845250558167525108592335228217236652678266427420031403228653768567349974198667040272084822497814063293662415046530510650065454138689008984245883650805876707743957496825928792032363405506254883736558791163281236506999608368959470952346885473850357949858027175879922666666358261917537143129972741362555188467606526693577264606151537852741351582951316696212564657613836686022272914528390085294751378380722940669633892747084502051870202768106316500005493296267844288166877163912925368326885478658553146844846941995190505298537196141784781003501801913485711127734111729854427503268331302334403753339509923874086247723291307393072915873054373623869858325224801382365884679144394495146759074315020900378519836766642418877075358173876346929834599879538079885406256191061068522904815282057576103414761657181751534188926688090059335811551304445448476445137602752402782340914568945450918804062796830377279599812267150402373199236756784507293911976575314453906859747735204277061819592711648460892695703615426005023636753128323001909118762129988571793936467340992825480748406419974411088184813759817604698369945746130126703675949096569522002361519412704257889307439699138333660925505091862962051320078527790882369581984768586672668838567265843167850533709407627473046775305654429908967950919232990187227342839796448535341021918318394101032075794187827301350134621995919006348143799122097033224944771856824614754387262164279181658486999566438243377106054644318996415678376331047745952607492664132631308257624861013336433592316682575857277952645704419720232384937793221538694713924254117672212441579386310730561064800875780209023367481784050435910655897489598735917813137206754028609980458298027000397769534376315340893615478609855047569379664845315177281660881215670212720346192632837826447710332755805738698607314397317604758983290964731651334286335632282763543417845388652738185018085695371129880851719916260473816040100179378734941835838054965051941462384424156258724423266456834992320508821450885219963772047135573238633996233457400822907936719017489914574669908768688123729812717671079098015341712726814345682666688036397492647344781787326991920368156521359598434723049945053452755140492252206774679028469703777191301073659038742860548485310537071220992130311109666280721399319326313231451809569617006293533052864880506334709657686887218258895999103708953658890444460250062683256913603716041555703933711151358594836631186503191366092495744736892609465896546650206674371981881763805778831202574266710596040368651949360968516818768196730609520208375508373338699478609578644563993111870594596778642234235611717489462971274690529258531868683776306501764703184527855643244426118422363814289548214736727436024321465348720887045860313754360831921031284105795171905920613935520439955857482010347144930443266315165336636826515856119575596664743261521955887971962312600294605356617736090088940784469621886654011543379161063845041159054590122210306567959394997057553751321469869577569779513026548998830941121790139947890319524875102996004655515576050829240397519953661215603706208180364332124948598780392896507414313516442589802672647648266325933978131252995301324363563757865803061566376106252920932934444601933230364087689937764584637732235801840868435828290884567912737592152838610386184178236427739047410167906710692502295308216014012263089868503596862495842445351870911195844881673511091834496774251912158894967293481768262707018563588247532673511374869330142261041855852002921411207233234230319697367432679010385415714145334190331342550650015195143050495526266703484297442038329873173959478054387532583948118095350692669990563722897075769760914176804777422814806693122580236353583307404865835084800009847839511281860633683843458014138970687847759248424746420092249454803423647675132425012318021977554534676228944353612005715152553551669802931899126314160555771027328462174476892928728976784326807308471244949322552910471825298090173783739450315282328122377865331234404690965346864714905675485293460713449887432220967213948119132902336622203991355620362095448515316402461136837604326264937897103519533173482543347422237418465185175712391979234023087523665485778822055639686861860618088210116073348809595335481943594190224449078318629949921155603698712834877978739390592131861592246131143352913248533323950658785719731429843733073020853729696528872407470333409924747663601453403077225935924053190293458460927259097986851407046163036157661633226043117863318216470649978194271438264616533013682571419374442624706612458819005368220977777766360397439390972176393301969215057794300207357227104328717226497525674188855432043259603695798713687567625872364431066073039810335102415788124261031709459568829558352097712554723780054850602155952991096285277571496247394001102190005760618957569082035111612750791659006912463352622933132902003064649952961573549329024372402139578558550200180990876064139097123429096295205555511682178738739462799987202101088133233274247883454351493725079448359561097594464382153496145840653704870533902423919118393473136076821495107922910664462853348546372901325907909719571101328447266700623144109534562880914968125452154777798807646355043277650859937646365839595086899158799369258291573616202708149067575760880254436355057577797613867407904637624871525692719255600898253412895425956208194280213924649265979767647243367474887015356456120735851963473153541666883312189815330290316679345845382379207360613849368846343406225719563706153741530796342951518513666883264113035770643290066400889017364280860232837044172040881990359787066431716080666597566535863317780713645375488402725832460230045428374837047176204324699215014834708700095510302984304237725984388980260598438055769737763286586731996819088746776428413211799979183474077812480204844468193504770965373083184702056621297035005764245507532884230264213899643504133588592861663103582800519339383723986552580272385974815544109303463473655023723119089789534537661794914567985518949127224433425030727027378509290705508443743319796373333186540155763259206181485920309073826654590553665744550018284363738414985130689702409220457212046980178767375491534637651830286614803842152432650685940565989288065276707581473712770643651148867917800122743214989737723276693746612810228400609952790761552974969302593145743110293467321296005437369384865368842435002065608064896338585090070215366439105894721490986554082720755346302305774021344519666678158828345434751241730529226756363403071043801532208087664706935940298450961361631778058385949229793933327384658689617473380292634599472391717791386665412753531826570321050807067116531431271089227919507634029114601800372963385830397171488009948751826991749252920492720848713391720709400203516663104840209892799581594226466058110083923918384962313779863416615310022521997465399078938544845268053542147788735203710380905949032616670387262674312077987368952363209398901149523041066464545486119529579789349836928211769065220213766871092031968326286451257531840897285518524679187318566194094728174226384001834609765606711917220419243827631629221589010753860101666194594125209819081263268168033347878025852888483153300507557627544574331841056932866114541624155516341343263712842954110382257381016427616167616814955568642930305222546966691292720452292622086798927792474922669493658381515488588010816703691274918644145242862286759523503721022867730295158577322073523744262622291287958294577996346111198487748979509572647498541291776512601211372425548957257658274936635838707569166561802767277118140484827754795381746975085129831581474493901906505996721756396964188400334339875891688965080395999096050617669573812309777444883848220619558438601059267369830387169345399414321944435829325816648014595894554104674642097443692974611914555745703925089652502063860063933260960502271917480936775783596078489233919322112118433160563715678857066228443575055809888269582046063096336944578578918952111062607510022596709677669317533180923070111798638733454754845342568019947629010625306190069798142752728762928225944031512511415719893751530233039169555201337768042031535962444342373760956092466835100902963936143298767556501208091070213740611294615215208282693539507343746096887595589882725392650095684491795840397882980770553942640946552162558306816076271136487751954998211272358071441112622547846611403284192022404080265610610125123644100633595638633109787054313054747069741416256788079529404265797716173529171028576205367960474474938381324127868768571268680745304320510703941626127835212661880751589788315569699379294473609016687932103410858742489134007414353304342265577076991507526154747092975402890220020386697877006309478538220282193612128511719692329357346710113610422005768107450032958935392821862767713450076770164407463788372339883740806955060501549754512210901386165611693435039570002930848784590572561761270244143651775222845694370977595584233532423296460566116456738744130633863773357400472799517760305994358436165200773759353404574768907542907078687763863306378071995687533351868258258041194028282031474461122821436404453146647027364337034127406680356790753961451925862176993704490495061261533427908115808202865303756141115409643811662307124030564137998618372157068313221533406334975469359063879187556117538371398595860323977221968781243235886485977083717522141494616698574377950513800742464939248881582513989783167808192426588344442486359315979888954277807876499992569793160270067737239849812542316149589446971174305751938907790228734746047282883555755105379071308814106697065187726872536142661050616612619305332382796814620844062057937163521938168191505354775009829323134806862328590704000960555103672959127656670357587237568289389607163227512239642313111593435624683032646934882110443282398738432272155345080468894346622162270202408958784537699766882845602701553078611248894927100612402875032974371160391380395495661803575380433966389451286981272152234520473901039998767414134424624915312518710097722679967657873528858268412306300845789531036409356918968770105873120221412943447251024852819442680540654528750102881442898738238045406579064874726670608150140803024447451514046930707746246268333960709952662383552559762969010802986503345907126027681198534926848219165285035658561601481763505003280695040269951892614842279627186446825207654249637272985781241823901135667814027952286936795248076610620344502921239216343182303500813703383581015132462303685592178735105100922037155712246675178938965480906058751733398855988710932260282525355731030689452072825419945438250180050564692294575423055256999870928753901023048823017054393609393049983462625036544997133370940781337228154743837801085414786163181560374846888505175481360437740917665999047980601308743801028778068238645140302013002756335975321898071991944540115708150746082720012073902569174038710715190526772593247247590727258288764442775242618401014933832844813036926578536865885703957480794470139706211589894091101273638764949573496125178436694808400274105744921999843306580944618910066847744447961648245447813284745844192838210277000042592517961019755639473822731700370828665685717749010783001652082699025785434642733476090618237182727995270572593467255222855870871976734170085923532147119772988924994618570102812325437196194142949198878714423026409897809136784336363838927030104122417413920656011656855883178797057204836649869779021430580671302287302403210851660579972124507086504215489623490762730706553767402559595510022215791878132481051405274532477320945400021011987421242919289659195693331288621507571913113871418044457410711894832617483747769212642818024570967723671490961281535348636726515130080969451626071510391273300262055721700968354768368633591892378605828854839145689717490689675133927447793652564009950067412010837715542931334401469048624346655678309741104188425545976292776246492447499830726999392627966971160216637020611988738367590412353349066195221720221224354599557438222372483160983953225860806216333902373681158958047753943963416951712046429082540691652063965016269743986715400955385678061661709692805547793683287852043897319319924129038965975828315046590090812356095742302827334495569814444244493862935727177617470902483898584803506500364622067864528237413270480827272736888611786039327852082767935256177638031619309385152935009853127380949680789937528685680794302673615857597263887296688620677951742464815059492174609373868456867001226071070667457824133681169234718844231196871764885620485000572848817503010919811955033291339620211190963789479731557029482878087063970773532401199771658546696433150458937215569431027086087844694800250876312113943263380718273500185270622943465952085898656511717034217839156985408629219689094869743539950327113100970967440708460293949487096293274482005688178602782288576141228719168915065848702798832144589426344252221901405421160763793512817060839774819094593609084590140599713768214986472067772775582951792624963327373540260314012467706184191811639080090911517683348296794657875383475387113871580665376853507305203251966431706885214228849805668215792798298949879669825760803682116595609466781380036402225101941319653146261753866536466483836460487622682347205427335418565025999136912005923754266096115127303841734011895159960003480588359341940758359539515993691274984411653205630691042712278892510025952796224829024129567588596328288638879309650981218860540720712558525609029726312159247955359290229875960129867466855775404432211299535146499480203646361104737614465655961496166891101111170918824693624618395539423292672828206777480484387896944299587715101955871842806325769977641614594345738981519350442765626143298242336593118212647931256409550934997660138843709318701667609158865888518954942327310660624459521833120877048694899555277191928726816791677171593279970274033998150652255156568215157743867829554354163710061571541846408729688265793992950482334947735010788036021800135597464937859222268944214787650708162290451288057934485599648532944793444073883726553372219434250766649724842270289716058152630507746158362630484076361675449301180665477510653931923610024378330339474431431905477186849978941776692845087185188641054944035212835760651193843493166390927520437593578116909829257324231335854581717678184705162949344812506605547296068519448095518782595201652534895635622878925438477666406350918196613579312367286161340414457660994013174413681388381703214191831770586246508981325745635741156244405381352844570260131021650218429769322405854104589120993849580600275398059948569871279696495171270642686741974045521620436784238095996630720469104855364814046162982606130266318413341973497686521475247967575752378198325020504927621445188030596718780063006399362618428939188725003477355501485691141067868432153022345129433320617272652633098167238529817565216517664466881995169186240309765412640931500627120652765201555629804337351534568599155128097381596484182703797573058610499372258425209342316593756495789956309576269430538982262637700156158214065326754940003180131798173437418678475981855336436499577748086844836340378660495686512311576744269764317790022168115422638218240579093458519114487652931393405342335775332507439783957979802066993692146893687574808638417900068318073351948114288456008987830283629938999457738610046820191413205878248450602410060194288510124618988895728037623864859697014140640602875058660753434319531179031026305682007081488749156576168507578743453403443461876003176040951124075893295761158812832739191426644379729990044630605773376371812318923828801160309009805445063111307481749886415434845689101881958169016781630751044744766608832790235342731815077925911559496649285095012157804937705611654575849668561815490827495910737268898329208400628080953553984647567791581802270292585087891250408874272048249286815328685536159304207397732215289519886181835005425816000229690285114662266604853827757808527693557002631008101822563609538835953850411766822871707761061066629830281227733239829135073933549409385487179144816729083003498138735230718157818227960493707056061704154073189513174435137712953241892944718403801845300206907501588384372781264768796632011006594806022332069751396474279537987583197687271337828537514283055225311455566153085075440038323751108414421704790235219390203043991697293751428524084226764330383565110495254382106944410093494380189038160839633620830159829908908073778470749086916013285939369195187088732839380975368710991896575096155584072230386519684057026077082518184262787613577932115099508120315941251205265340640516457322185472860569453808728642027934164172941567317053391789024469644128367356988373087646076879567002354091579752296958558507673418152397772740100105753704253193647947641466580164737625300825794167290550819631840651068853154928782521872724485944707144628628519816728603957071686941756756438685240627600942373480185070440304383344447576097569720188015628724185543971085801202074372603445423476208953436593905834169553855691220953709059012086750345509462137004116690621378643946304221938373735355819365517630840424851939046432297565256717317764741761967186977239277489364083897935044453355869480497388323791231124970500663751582283708098379531568617790110396680440241080290274724556020911604473065817986539221828274690774432060805558887848985428401870979681851071508460051569819393984557452822543659125306709685848267108032259742547680235513001203856833975865324746657060600419129569070954976131018524068992788157867094418302626703100208406551392353019451041503365097157936630303210113113376782842776313549185460876849622910716962380986944599178274050654321449235578884802481779433256905639695764854308518561452045896438646053963193551939184017523213455502722477482403016679756840049224734549951105035176628371116181695954554062388944610650549136329570764975533616196678013357628692817627443953660285562158230153112099643905655386030812597902858846286465950425973432147791281866683133690870110245900748147366054046547710081618112969501411038347014746777833408383080193814942399482822558848960508285511895309558404918877769255712745734838752096594860038701491387254599053712154502834191539683645162555943536805837472292618542687591863292079782242726425000632913888358990191709969846407253456568545810764689107815291167793885081137855696657743660106181607692447026588091511752197920028114744865093965142040888685945478138214177085942421655396591988170408152511138106446512623566285427707526387834240403433448222521461704631693498421263623194345032311993261732311195672465249414197988008189092470030008917546473292532982932194831112751637423418840925693173154715854379879003423114397453374926755609590311145793638838288460303300716450143195928222612218089180782562529041066103735230418999955618832098953825428851312698935716803592199133892800772369988857895354402785793523422614143517155473838375785483961836212788167473935250797126136355516877378031685172090974565169313386449639703936607798396451116297763078741115905629264789787331960416484367172805047275640399756210131244170767618917028164698200434946451207789802080428508479869172339141453491985042796646003475454775250628346157391228512619671307100769452232545044947955334550537938772595379939934953871342603846351164384834625984982603529179660866760869258464821052883384906978429720126834334691949177206384631487675982681873622898076171214088806868904690604988090132408283957981780013073986993513454887742617162525269786043219160403146468810831282252675210253160075967248913074060975280993444537560519651272310275671020061667363915337443686195226821065608817849821379222060377981606850433370030303649707664607266293011894007651486666016397368029437706423683145528616120033238143552773028505188616232242889828707543050057091247317413278732010112754441840688472235053796881290398757666069575539140088171683888616352325754066461422640978412463796645581554822358040372434458506721184863834473086706140454934177609983499668776938613790427780452105234197329978758201100505766589675052819932646835309584324171992612259560560343083321000048376761149732215370777143966158812504108275875704597246615081353499258797404471381165332140458217368234675501110109244238335934555872377074860466306528902407178631925440065808042453929471822771883524970117533318555960126725404684526187026981129738726725829016799646408963908306212613443997783702838563421813865057035034044555419507166404061876067209073998371020561386339496593698729756026978145295590428753030366136800743605013546629747310807319049374607912499689999411548089935692711010277437426004025413349531903597007535697753688173039321877405137616279346633198600432130795437523622157858568167962622140828481833404825623045467540746072964085684747269880982148492127525162810088532467026706984018196837780898437361914811964386401015886829355822623806864931493601324067389477105382104290600543143996402709996532725896589553007384479689538920777814847166495638715930383781225439117726806314270498617422390557078211252221526555998226214821826241572400257933604712023725763875988032748200534266711165150370565245630720957052817934362076923890084309588875620351970901350116228760188566867758347220753438807986802970644543953960104655229537710065338099542062805891719119526868441354422627339491859199450934766337960036547780056527576726436703809853194355013531792514153207382273413840766169814011628732096829454248730834883426694461333750600577508467581804386504699081614810566256257288577493073745873129934109688832820097274390590146919700228582357363964843053817629169291954174348772812670734809704958248102789303722208860389306414221037149139374006044261379937670221137464603243646094203855391219460428464549311067986930062485868671034190731450059706348065967374029869736085376709472632623156560098528201136962549092860058135708238716939149223490019050958517161625673010585424724046237130874268011980594350546883513615450395477718112560388074910929659599196738793616169394783647925269308028482079243785745473194369056744145140054017513418942111802327606073831200088821429745908274533661824907932632226045418903246980894095763862447936349826087846026371329194716635341078099151597866128585930743181439044775012687793368504706464686225695663912516380580083530198667545249215545131209609243930197083481668625274870377424977014203435858507420893728847060082974489411964542762056436266242983295393361085010764743962439910623479091102526495505258166649483057161893221131826217766038491925348309803860179256313609239879292240928760724659028428715388559631561977257880747152475579424907766998189142764634554283732060960644019059720952292140581233149340575105870366789478312150836440502187286638278692813107599981319697721078481070100952795215188586434776454422669928403528327150986629574846369730599956822863440495064353223575804611459876812235521605380130349894894843984754980133673086808558070859063762979361539734521425184322210510632965816025908452220865501043064712815086808316137948239500325161011652750504533301318954923478401637363978571842681735838288184784694823405926850314983080195045027806485541543699398172283663405312842064559854236416337195275502216758454652842071436506249678381807732802697392259607536754488199108357725666329334019303551187725326199389357440176505439862926980957487591014754925262845211468446373387348364121755914836914967266122362036905279404891907105911679757416183157848647453345800037599162504186665577416293865067760643899746236612165330638785252413576152671006971392224358923804589610628988061403096838763862774609962370883522794115115086256244284023947385626185858561878047690620118207712852776392743571729266569136340858294064889807441414857110514768969584311334295890081269940830257318528692049959882331603009458644081825253929898618871473520687330745078796891276049303878530109877217604144162905419168828508541407318115989722686719318833523913459673023331860825126163001300270671363062720187136267560551089547309355571956665658747697493827228679538510281214413419932862822952555883096088076411751984783430875706010834199682559503833524628857683335214797812555473181668670744678242980805112210472778208116356490062202675451965155634689189596207833385240678433837789126136241784367684217140035445827042254650628904833822321480097756866427870335818693073066998001038726539116361678338569612876836113622650003521557431006924833647973108682220641990695811773026565882665186587083645302479592137642939296861216026171600973539450259536739385888048255708773833333344155558946268526316597621981237049396669362423704635246426590077082299795259612077589827584559015371385217962227921339645430041821777332106736835207891389220699002274990343184321036175184889602157711644877222830175382512110571113463813137746149250919957319982891414428906921960309407133978286752723965398349290070034338423801949455857090978109464933823380965823420056000354228093017844044839887064769894689837693480823609778495446416811274495287513178297930201368035647574255805317351647670172891526432638753834398896248464212617266929739880745522817894675931741798173993448704351872515528932071623822375178564104490232850102554163192562588972119286816890209349190913690059400419210194598092019583813352247906851428211904825132169456207081494891903651936916620222030644622040298073019888307500093780743595809458189832624696789159690515885460437712974371982459283038035396696941721609907012003406017414000424400715217294642316796353787897536218518107477280014182550442700850069558333097502909610900594336181133765338966052333717983298437815618367290078252510509996810465598501527792937387852715820298839882303960144097417421247671365058347787343948963364050770981195958362531209501966515049920282412763847344991474072020178313238611301040067528706028501323426475039516879077667601926524453987151817473862936480571586958225354518912333276433535893565376418513437487659633239637227784556348801260898087167082966262331577976279898835498226934639488399725753074986240379769689597750789729963157850377363905476587976657087951625556056698033970595044419470528060956839838391450780826785540194868738780158225430291760755973322396902300138816270968501514885930166547385106611634591759621459195252245537263136878313814617132424537049902078364664184880241523794936450055741785335383122386456474553168462588961469004095829533176888323628211944602544453486346191962040410848147588360341919147377514295227102456531610102901757237089289294090194811070754056417986020722820893038189878392550000769849233823700446705138287445154668614328516377861872072120289628522487502998413519195621203155600705406148230127334180683234989150273439845730148365222604228256860714851516680742137662674277431964146848157250365604171914226604164811384678959808541251429993074206208901087684488495445529927983654838580551149514546844982650169015367796933245730098634178789440082746500505587335079354508051019536724619546393618925157229957836518963163110048074822189313285996193969716975531247755201343040297831049646479205774988603342287010268838890597659584122809698889075230174013907853236574801408783640144579788852895332924809268630798583298659747947693021362092067705495388176410603238864783209270631553750434034546739176006636558089636133475691529236838820052450091010025645383149972487710444480592150703198491921665039122784971271624887140727537213676381205579099167143831396870341569065714766613865087667688989637024404700151549555001383983911746003560040954834693066024932450129094294913551412858038382903092427149171199636436780112266345428482846144505717070805731981450410020194489559421198842161567541649392309125827383198521874595404063834060756500346739852129739122522255113300930596174736326175972880708623966269921398365797457303779029307639335372481853690727106012120033851190955241945383033446914882966138106627692026559160515042235816414045373562911039783624112950290650818233961046271549809539979288663817463140156834149244076965569051907302242886084945187132527536273193280201757919527871435072395590258944687910862654643899261283508702089522647269673393830122987992964335680540192519234866605579778480934967465607414242195132085224596758430864774360130618507695797996393251645425065513842872336442616229194947972908070070234029458390398059358452586996572100843397432291075562861364280488432297939471782403643466692630235658160421260292323500941018392210804109882155091198806771687010169368544960201869165110655234993622008882221897569191964092408901689530677800277205611438629718845870277918639779038419152191121520178405912152636197320851821102319855327659093330894877527283591885299053299795893914388363283373286929171873656476007224021442781118887741424041504680813200860807452625653022991764049036172071578185970050253754243228106193944910437260582466425554801364903068068453282063846520525149830571468092600469506643018730184020175299959482453712450438719624557484277136808207315397858387740374375989017774415052508553800731486295927872664383822755302125068371375986007490479753092273651103892157420109243392760332042592871942624956792651248988100962790412554306461077389745723648556276869797956788216666534132099715497940088990216928794349610661632535447227274840795123657447228813252622293215986301509931022268523882747136181152125942570636686651799219050167415232328115047806254217948027368319073860052940783081069343833736933170903899790350107149295422633867746558294168421734101000869115756597966310920215467507171864568410152206341943391809834914894381408679808600939528894811058396652246794511441346471256131816471118830453623403865213970832465028766471842452380226795343518600532111761081800436002776559073310944286838045300254726949343607046390316633676869320568365807853355901587021706127152074619984245720089630842962745791075752505375344086868205300950277621914826387188426414115481153046367271444714843852536766169074517533782053313798515263528524342814737005125522582291928578062051128895355011431491181991364915830125035833507671706813375913719635655265436257557880718731726664539630536306075674971768424021312201625996296601404089006069292257640507449291716661403817773815104115719517238318451260786986257106642696714781849620566484037741536460745570057819409761652602179995888630758083690557831375763180786116443206099427411729846336709461509299231074328247127842992318210689966449190201456339969029685823029166323787932769007152416522545722906388786633580218882729250524869653473800017783712727301338656688020428446356405057298917201286017949548271823209815224403647495615149271055904689701772516636021166278546631717279664089447010682906348376375250608819619419784400582261255762176289270255666768909515583514173341130440445442947701746650167750631277882178962522387696847119140318153377546423357315108035665291524325226734189117284376056435983518008859647853182927737693523636339135977872885781547500897818004970295134515196162071672981763384164764218791884836022402292540394387671200086253340953559106355081658199985287993082953825468024148566475992494097403663364661212657639792132554391795452146709985740531122351138519482889399294516494935647628383652945654746672339795514279146117785860736002423372828925419204068249689956996272541141153594588522474390359436886759948748901041044036328022722811675210205275654774570671427782638796692433810384160718958498630078753107949048863665572443823644671770699991751528309215631707053988968853509028490416941221339572078147532585978615682928372752658980027130899453350212386661097492308526729022244003916011424047404606249658777552554580616419268745441992592874302125853464598710518137462676469381648815755588991775679854623693197386704995839202180959568750057801796530453167534327278785313922320158239424845187261472867065585209919014832582136057160174504901423210197696313600002744890116606328595539998289257284185515710679199394527129570003803063095128975253191082536256955180915181977704788147641822234633228121202754290077307278745570602125735837367484393083962411303455656214590077178490296933649697723249452917415372272887271646458468659372640833544149809741632661723401421459028093304279604554761185888625108944115803079063907319753851596305389995869418071202106835013305676247554250213788919319247140274665090609915337327333875972735227520294950513046440462166397560878761068219612629237129656932186896246311211552031477120299605067112678170156780407342919545679157747917472674374722177837104897278600757603854831615553654334149996702954742841866607795279577083601215825893141897868286579188274034521199129834413644937520696134237952471823786712180176461335697453597250365888750756028581703219196093421559745967408505573058707295469264342519452973669741593005110714868786119407890192799397760839682382107277023168304381359612386588073895490476486449400052254674457457545144172807457911281188047555824086343145371605862958596872887208108512622058191242267126080274264355543658098900997597602249090533221066289349478925892128693966763437048270512743606505110923288546693096940139781977297187230349364141391068234616572291839092113439059461122254525933005539651869751071653570853374686188045247343166394024514150672342544247726250680967986634097830339030423464209234824922345030305943020846761045106363520597720256540874688166396681980006251275287472168793591933315927969524198256173987009577509608159692062695441052722715196993222081415773761550747406451906379831485661146408923090199397917174809712174534709654056356043312633391089380962798419734286169742921878456272449752045977441592337029154534576768043314718517030222692563357995461687382998964307681634225959132759724149324185248285635595230317821683774255979460425753922412291512904515546280642762578070065662846390594001991603452253592528421194468332768707821077114667846256191852490519559743989502558853086122977712331049162624434298898704927233826738594913382214415934072315775701210931299494661345536729365665735951663268503260809154233058545266091125991835050379783441254436582425251311638990593360157908285268314494172220189700006109723735145150354538117461177746681278408514687438450588481728349796402154939800676804251325064680641651109201223068443332340637457748373366931816153431747516579112554750162542346599504750678982401836203707661105554617857380980022299957716434569767846514807149211660837744444796773846294507702983587624927875278514582821582346582508772506598770099608584120922330265940231926247078194505242411497399205259606345720037726964604644181325735732019480639147774395184258514817866701638652458331121537894851977832733090403491957615948534812377766478557045359620718065488551579409060476297683173536431095546253143599234951305523850381473769734393595698966430470202561613445404603514867282907594112759490485488811579949347948625738858717475449672401099902719354182167076334622593608736176661100190647945739794733155401032029075340221138411518425379902260230441643985729702563786482547422194736576056477875537201552570515919720759326165566996225188655243578681627843767994875337722423006877976632530523916382018799906579830325873399291399437698960723834954050477949465777379252279495905058999160136197433079908793564826154745891883375909876952107820197650751718734381695716840613542119346816378702625726445838118485587488241701976956909826930037404515762308921950425915751159449141103617495990692331996001562380658987414205871722166020489925901524291979711502787900333068760102944892414823149157184968398913588272722992908495169709743885765155685751232143847381359758474577009143813369305807577429534042922175751968352329803092677736902051631979725234809035431868836643389850536806617126690210225762351384725544397715187372642521290999490933037216056141990065373900013749716538747497648484999563770686520970719085256201738964947752069933021172712013926195927661223041422877299492248368069078002318259766733850911257012845045174549621736388701328945634271269658152046321314731191017913568958105599458385528085450980483663719281381048190821578917175161197160041998530033759354361362253406958972532518054575080505957415958674837243997199896842233661488275854141827355752443091088654779107049240655327808905876893694992633376169067039329702953169140681308979344731420363288189433200711574081527534821049913269539997545595193989103667153405749480974902349989155681571867647866560525310699147343018835469137707487257779729362591121890139664510502702551630141702938035360273533498360602512854283969753785522482632611466995254296937099514808696373414360920147279066338661938852276077810472439328121756212790772536297786750507823533011951547981831127152621707182507285400452542091108704571899253343887744326672766948384917911102532196637736503614390307241776195559728156091978302228069630126972917147208195762971600157607626805222765693873794789818500247056104089154964743064463179291384189427498488121191235867192540641958335545340637155148873456902035738744869571693470189636304694003695032793070548657942118832084708863374715650669064543833587403362125858012371735070389336642287000769008277558701359226738276059959785557515245016544911194136329464408531089061802689598984142638425756825010715296473648288792613651493949616643536377481774322051881418977724359767185736937871899702138198388631244263533685127570698711647026544283374897367752025886322145930636402538434806268189008969049347256537805072511896592654528221226869645903021315238237296717518237444915794243781999407451630762671736337394111360655639657452982177904549511164895291800438859252851395903825690251206445307165008172652709204726177275766506943007238961358236135066098813075035235472461037000225047282359245657171798986737249898778767725248250130654535434785709592987538303967763102969846506790461351002049548660086232100461589795224607224401566160273882633445414889469699578720510526743479323278193510648565220246611584806631661201133699385458778365605920812586566430576418406466427959499545777414922502283846466289967107271030814808251937618008881975889696384449132705863643483129243652802947491057407912322244463045646970584043842814802733429724316909633144128775390936380829648660187482861034504003305477205792708373729005939875453576040513177566682688473957310078507334123262528468151300009175315012983163401265779803762070345030460892055837426178926358837988824196140899674128791240324888371054599148691601771282127980105053368370132640327523290047587401197417521119645956610654147502437433807424265858723409870918158605116415293232689277803535502470817812204616724670146043795241595647394180150296331348815684881957908055112080526165743733038052895312715941466945542420876075955360455958606166216230221020100483554358189686750330843327755853326324032594259094855067362085681011331089455939134124048701825069182128735305287216281836687723376564217739660875996201159611164724460145129948853025772486198831787606029660941950896003568301139150284369476007624218563853895666325643335185848566800297586570029997553081086346957659261615843022495171427192079021183123025549248530802150707514262303047229930503388069046222067387634469367314949115290037815164790225955007161565033381234059261201746992490311201337726317957302364874002056692213912879141814492962009327713737401194859293295595577035406327067105671055388437767773319354223512210446588530379795749513606515516914292333810764363990820937127981593350169334371223100179667125831822722213266405283266191858994939053307557051814524049078513685914436892839112822269243569796940604171415458515999605949366556364966000810521037397596882328433583958606949222915692284870208915424478105425811949279959254436975785548233047190362419515355393825048928877223889443594605619943079723140763465876259844638228786945998065348316156199044466680803246491996441694408819260208994376544980958693589438888061759306636731691245550832688930426719918825436308974033603552688701296974925461143871570086965217490006516077946047553434883793641419756886529259323136300374200530570135706740806577129158398438181553749812209913516884925463303005805036352962874014917326075620569078384291051212201519299025268624488411522019566364224128414969866589082429254269481542717526873268296559827578455519178308167673138901631164299393178336656116477772874580386517637844287522527974398283182131562205097365694577553120437100903712541466381988610466722664956805824954217519094443013583881245023861927628230264808571815001106357752274077962533419957305042643492101516251349347193885358066010320758078127139516382024200713605363987013497583505345830940622064378032350444735813313147799535474472134472281965693281122104954119286769357411339631673659537384447666412710718698343678799444808421074704069878839366325291966459200005143668346496199490796671645023296665824910010116879770752335958954598362484740770290872089106914695644001109231274286111819148720925928468876708716058072226691632394590178721694608523206832502586651998957854255815056788836240471990548814467622692767734808770957745553986220781285268032644062861080280605846766215035000155691104332705654300496153264908407517618279949513389998724910823381582305902537145342756324208594583346695995855591584513691203514605702019595742615053106608768045311675628858465545826163958713803288244102561049077625180540885700626087705889386030335321058464632156084772701522512390559491382442440115033813081127662342289809594850787481653626253751042164332135701668464894465620664039771546526313571443170118988266296083876181489497965016924348491709426331334756270098020859962910110279748715332542415217083867853411312581160000710184257663407089202472350530894656550062507070396723492803785116540047257255114838210682322878985574859193763768063736676323391437098692552582615693677367422132675291950447458700891290160100902200787998646675679618756224241993050536402665462751298490287199531348467272599252304047164370772202944022224858822125165568129374205624954104991770794263159382090514043418653976132174574065468662211997350187729923470879657024742108666972050522600253050194282546523040217028178768438532361785319506500922212419715348986495719862354772431819090627999519048289343393100049052335051558297058015289510419906401571328242935479202998969080258508526150612610931425330891483045475723811888431500194984416292896862139450143603436498526174714329119982550891380302560514037735460776305662968961599850449485692508312316321342120066474028631472175641120547645952760611446237301187768107574774756750817584390559603656238948018072186713097766661531077884702219189971936354265396639740597826834176099460668169147561774340014533715629782864827797095443992969906363515252879634065315679983851347300178458572901168407733903672748351319628387500396273683558607544383338428822881089340543413602058226472904501131641063435252460820533935966195805309289065406618160636794628018798886908363031393896223893674054956726031007635881837861836301085931186908079569476810149948672442235293795592343286088712315548022378563300699818218858630576799138269790664095306790490091908096019388357928700496824756029891151491097500775200726485112091040260758068393441012987267489779448369612604854627092244881897340098887261104675678559481370470721653229508570847052513666033327533610434903113455026957765380898665479471336831320110580824216139783111342624792608864439053524237339325595691586662376696709825466962339508081276145113851508930244631132250947522235992787344164526411274026974173407860083293505358435831374408248646711433881760660681648109769778454501232948519792628210313101055025332552295819687824359254126619982095168117438629017944294651101655599128506246863981221620356549991975589289431262651218404162784802308182519861377930722329398281310340133947124613475711643573673998377744361842182892756470836626493502953064011730808395061722284472779310451289440217091172437029723195118785991780346763662985853854345064062521326462131832834919499864980726432378461562662993553737174510456832371175157856118212419236346399889330095210438991725258687498597005459287823650428587220357554390878665830986013661054325784452103291982025269483919965844950453739203591811577320508412426549014558985846584043138196318725883378940205021919380790426344275429440074389955242171129050737187846208862297613298012295858993829037499632039387154923940677020109604808192936818484530855250428136959683618967432186278860237898733105092136730575450432396900107395741543126869119459897322241977354901317542436757092278925750389662735431530721557080171668208818323217752715050553241677902599710129791428473494959704223544636408367376031925154146253615879057901207175686296930192502854304758697665003447009671440708467642992168313526298385469802847468394019493712767406199394392015263910620260431324561535528204151224995117923018408999423635914833940524792052591243621803585078022164543220221928840245220850135693239360204984777319030454603129936943603232371570737122855576789126565647032465918759929265290856389096832614371626779902133790317677134227811522601809318732544413118956038632638124478189322107970397808225177114012431650615697543119194038657695763767316170761514218110307924163160281818012415572326995897641306644745496984286776762499628884898899458542307121942645457678724516868413624136779007318012596664414234612487544455783641065666151614256613218413378254428918786820698215368785823236174392933281289593958584774039138487218394433433515834117116834249191807596263308654344690362047739728690343805485849640815947039980619474569111748618447600911557373371119475277903932300072483931037636510402697550699353492031336086693382203419116494667976698026193146112564322056683016662602992608722324059478364007970761132445467410176078199079328255132783063808005904028642723527625776004639327423561811135094175089413993832598112694767756754358328980683597965653903462830461678088507549952121727629516981772334227364422239092677532400783163214905156078119176423981598563905596971042621020220348784779970564686791384420419592391501357060919004119932868546816494521375357629857001700741083644980336294746524881901651479613172052911164971062951901088462515260556428893418743022525248671937441483080728641632286549541534626980793968848772011069959674050034998271833636963269769509276396227067492666921779996805581254007584294125205813365577137175811407211582181487999195805199117352840471136921785952703305640761116774340779439820407728033567288343129765775492395212567688343240530958535836186390537823665010433703192173984022174731263783357546435695731064095147296798448792016774704072681146748351151392255174891211570364718019247193769419396656576443590759555648151215679056765824917992678253585224744778864406300829679147886565470923114687557688792555601060700788347339523432903033176662842161314861591468277950370481715859655704657407387386312641812853877030502377895286088475541923159908526300130953191655340290592988734647692839490676407659725908330524136966549562074309226689526317230818063566483199453970463405964168997447951572876675886629735385085361230967741639731875052229243772146095323020470302095778530062105218417406135761556681414301899650485233744264225890584769532668542184365478126204592019423770166278367571877376337813129619744076407035840904187039011089205021049078464182546630031885405204753794553603593640030820088722703653707708527393402760259385119531265884930734062960905394314556616651768679303848322939287327301691082456603462920963416281001639885986449996654732755298769809216657616389070096878268306247463951495744581771861790410319431156644300474453639907926697696917088735444566075109133657120649605991395030172921982698367104477562745699625387191837712796829565439866897371924021541666724994257836037835416308935688213720132728406075267211705121340137534674198224443866758979691228466319693329406092357024033831247290644120533071219956410308554698290074653259903930978193412637880394961756231664251999821884141207833761649425644459297039642321026340610693413301711865811904559534652936139851553982302030826622895917807683453234633195843990549249752505979666512685783447891031971185927646539593727592933276582442573110281115168141179995494384455506398877662444576127829627943376585936050362149872029573452820288490825788500756183225864630818843591171472649812718037313913858972298540484001808504649690893972145088219341452980167440518762657292904458078248222722219041952745550254112542188310092898685857146081965279117416276993380061023696678119932121593767692434237488695909932946958294835737584771749352957692627931290539904111397678714051690904101444976183298849362159270611979663469650722059913919338100548188515312037402984045276633936964117696596189556420179142408140687826331634746519043530297407421915703909907263053622457425075121784846363182420728945600995823343440709047534480505928774744713308343297388574365691948715731637845093972021305792610883406417126400183548099347834960414259469455484599880076788026603426219906254945175343249619418758909047637705842685956077983232161372520391300885480926371233259635238426080062256844781902575027567757933593833924027742116916685001980301891081185414430718621465530302530874395354598530349008875353576446577107889373567403330613487754682035260517724849305508481304389978020398978880332522626959286104576945778130759785915222259654090218413420425478657480907355060675081890958161096307419362389537565041789585133011130940743885760889230768132389734449083657340390725086663908612335401295824274459320839327724834466544378431410929633707044037893755259667901713669668107687478016546728892416176197048280123555946188536297944217362440238143298724979488380996573415026226857045753937618640793558817304189536056277669339421551198496304824331600638370961579010717232737881176751846742967604690260183087399984590943990897991506819771082181764482905012342204139023443229373371569716930693800924144759611699145445183793902093575224725791968819919903473479392573683217551096646645696142527743465878085464103156988160339626543918599759131058221880352506890915915798555339548306784396278857135072692433011331911593080177585009977637901348754631194849690058999458259221919894493618160300612362919552693645886903382663739625986732482623527581309467245795126415412412333224109485209631491860603839354913143564757632340901893196839427089353742576765205402409121635649144627424899370814921036632612671055220278153190518120838578869906882868407676489401257918464457335393942417816671722968123314509317551664070997893966375799162224207214249604160798561861075546645192032231153174112441462325623048205681535897413896597321145893400997992530885880960006646234601132133940160175035982512267163355395923033608342753477231486044442438576263675150079279550213540230485361368647550005570347499233841181348175222302683487456072111770358072231509995929764353219569323709661885842175593692971524628630010754082179814356289296381212314040925114029980940402323490888855880564652027661459881978597766720690268372754246299598391235207906845553590650245288496489679466923736215623744201207894274831439336504915512617695583402317993005097138414209255603380304526534147588999440762603213038627047720612443619370777535000448723622343751397980383114151507549772043819552737108044216678765545502989379840959464544556050978917321156337514714764746841757639948573325933569601783467151221844480019046767555301279039238968746424737300691852394143147360282410591109266449610979208450327278154891164906013133850879613664306837903050955681593774462162296689227532396333779844893818472628300472314627286511025782264273782844838976097302514180719588049998035991739380712085611331271550278558473260184921765260786685092148730642904189004924846021181587501262449869393785908870029830889961310278167908341016249465705921517492446726194694760392839047928909251029538311061935428244834100675625824862851146843118999272381915878069021709654789240182171504039382553675010424244890068537762906962467570285690579361570521242533770146437439960599242938994412570196324119720706067572358522529245988904681355176228361383975251535692452256654222427938203274376179131549015506447412705344091962400099046834073646056869242740612435588055201253814881296282056370142993530543726081574628624530891239325295642963072313859333759556103774854510477647038349206442125375003890163807672707750925950732728879830720381706143582065158865531457885365532486508845696617160944113591633589449710048657345982618108400122210911550277517790987716803999267975760526781096405175303431378626872683037393006004129497702986201367467772202117432062368089040212955273107682056986669490000532591808534180937809057408679075297040784858937168738020559039904437266948407465513277990993607002272336648823952762574956993379013733260275285775298539883377462130112566854643836972619469763089870348100211259000564253706049103533483969736063181859272227608175480152370312117832221949361931761462752448826138710632928673754687346993297813469399886040485438872243404170657812141249588244795048383024971760248590491747800371587613917621179670219572783841842292334545899594387250309344787576957851919956658483945216629794850864949140465667951180072310380350014875371155604890875426744329862109219797475717987032187482617407986452913028957450456687692557691329968857316295951540791316458477845453548523488630512253400372102142367295133784985086903930875770202492310358157533569157173565991981246952657736011879064040410160183908155066268457597263198130969412139350454770177115377086668195487613199559430096634289645507695441169124574533345763646473046195654690055997476046306239418126580426810279026409854359176746549566231024703806506612795529836218137819047800721428636880355322453427566867003076246326001320881814932479631902196202759529717181516210146749516116626518267875254622397163987030418685370808346894278871553394627472265269889727110420561227910792589361050848755842649550068584149726602535681515900503377024513441602998925360302025070857167319977848998064659093567037826150903772871827721947705987743363690383058594498290240367365982345056444318917544786852328031554409687225838835221861594548376776102759226683804747601937063737158519247511945118441558390827244426571257300010805628577141456464119093498524354779736365746496741040795906832889784160814453506619753768856440740381545993869640105709211053262947386716629306661693275387712273018755196360852214596070454906146238066785918305177392883838759436655194835635990606288079111870096893801382302793393841247652757288565129975851941835544080524877020940851041725699998265759881218864513610777658519255610110515884452152637152090663359054571335050765270195801932947457129394495657969892745255133176900306736899919824797563896841471400017861903490639168347091811252573196013662586308974548716428722565516168724379892124491917554313145172685685815099366793687171590489746742162179371385070100039684863497092261036525785587639293532018670546035850533721423948689127590036583662234113309595869911594687963500368182519556885278062799589315103236049820093404102336335938877386723912294854841690715111594928954193425111938249237541398007886900982943379409965710874601307757917996477181136567813462457528648544638531775865137550706828261208681841990855830666003809756049762217677464909690089609078269271819499369083790254340279186471599013941499641251384097248205657047761921094828365278009603870246121333069133522734831987983582192886885803999437934721202064993092203063249569856920492475906249845603288022280585269343621419582926497840270514770684230950741484245820591490963522360008744914889887728615037365347643448091611748829429540580659681736932271657821786137003523335758991636795690651609048206475830925086898157361266580022846585157277142474861080491657600837626782293659061490895236324969894579987000069330722339610369348409309539358013157148743918665079017836980029273959671550813987794806714937863729381449879399644948525456526691476587757745953201246502517614315775619657132924797634634731045291460613493443021483609619373250628038021908172022170605165529874106676584742841070793445937546474532458385733276038466379968218653556769567760797865061985166005513695926479440624395930022588792074762878329335907389722971940952283796882849115644673989670395628820789258207678945443570041584032011578942995002606701042736739149922168869590213636205710518554061426461434694848981076521540941126545107253284658296999353435880435840454487184110857390807404809720847321736476370283041420550814053925045677400409048841087545611412365143742421981393345618870851539590995144697373163008568723411570224855386127201234368000406907447372288193475096381561873576288387837231042390969985505970343518044800513378721935824456951920907330608557079060009791695506004348268047076606553067730245494534305228419728837715085100007735892136920290090771389563736103131133279125450381751069451868776079049939058862891268756295043846071730474348153781357102552176058714118996550811525731712909165413272688707563662091674374053256674986043691215202382026089777603806360339482598735942617161761757959064502240571567550846293516467031970522339949144238015543736996385268915877953335645260536211253132138319369856073237698123534000441725720969938663981403752284272173682610191527597081021435109162141882516600712594505582249227857289652399415087849338658190144177633241063448238207016327424229477934323667958787841897132934127107784850381928514275881891671185208223091445500824361506292138573223603836321625269247325702540955864665974221862616126562907925832160777346382505690619685834862840308356530595996200378830049670031628005875269347287202940145033531812743502546803830959416357099863359195138516452349110609510998808901508685377915447095034537526879561757063891238118115369649524256429477533794667270498166702848708120302720864763438777652740998393822140857872100045216704068151566801651612846926758126581824756929509534593621074316660882186606880421597423549792321617694963620701695803900735130362578539574156318749283329087217840357528987738759114384914743828980566489974618936177268111683924749921515647628280760089503477275175042238698020485884708129074126009143555524305332073898864597640782249737481349939432248362978673369134489783426883490064286925837735464145571869557381300798336462402407602735191538685137702804843366996989602875086776115113193418442346876657603401210665816131129251459688652806868684326984102103246181324966300238155372683907753335305807287609418067784369872619921032907573214755741913887170683461164668654189326828006600034323847282952631885675875845126540137089465024415712294013423530267147063950624243752039525308884195318749417618112066465057856871402955114532704254802809274365364700845063438723933625825438910110154591390087518866550769312139348800505529675492941016442133157185694184887537274232566908964684837264131811685215304614255486740362399176409777745677905867196919380885685241064040725209736996421045869210467721801502350791071362221416329169605555116619593886840048735108101941555790806512464246365237939289401061446249339271458849198501863189988075052737660043213402274598935018009630860553124757036440774127967032193110542718394471536497387233779629571772933094745087219383828892198869198773007369371556798320488461555810886994879002085381847203119853270418006599282085607662115919685301855427009963350392486312533971641535309715671937332310292685010453228799553532539653608984632118203044295223732221787470983279343501311924044762406445542691505443047630792904420131124387523277746203577545597409045790392865591268691144264051790655073404236412150679787526033317582490793727704776443342472225297419758348972746795145571694780985056764048307488639296325856417435809483048085440151320869829239986861294849535597183160496763708199284192819020675414706805751724160887672905824570773784642114330764374229757247099640330031415651101909330236520978898547254336667026406373573821048084763526998823544333061198500634703912159750850456811517885850557147398191074750444983540082079626707716825640952578885312929484030979806867896430813371553812214358403054400711281151424613802964653755025262534391763802244581988775639846664254097199328645918544998099583432360833389394423879960044747693834730619427684037273172071237829296941654553176506321771538484476072699777312427994351585686110874555594735236310494038420843643629752100361858940805316843022233734252785136952334259892451794813636038658886132108574858025855526047223563035222333078612872615326343047229909612709688673931194418807374706581022164292000003872334157976540704131749777597566143241558713489370386645673758144906588536084874435269318759240051811290230907997225747098605939418806475338737975745435642676928642212227198744044245766498909503716619132225160797625410913691373598380712694791366894249122145085247823300471869500714688768637598282645729851039574741130937847635601866805251512227793660947274165415093397089221467626771923644364221679223320258758014616326878900631191320312686235360040440564037663689944023338694419935785343832978598034067372607327960732445014540707389609250447937488313415302661896088290049205472258855558083270541114915545602770937438585391321547625731802540361997254602201070885041975304236081317473027843587847585833220484013399138896901325929926559218347622562642854432808212385582997765397588469144305150785910650923439997681542994643396370630965162722464613224022276902582833018678062460633686839806357045427315455113268402327336075242355342352374434360852777519697850560635814928138740686670626739637576812661195706698652427009966808446170414007983255756635679475765388270727547913725799915611730699207563973662752746869280839418018047285095798506033569265044520106214838314083767167563734658976933593517667421901065483598120660328557831798376161342332909822923974746292197541230143824463143483555073973507633360361931016107482061861138176934327877341280222641013094301599762198574442750829942156062065527951326426281735690162949676139468450496934696513300637818934121530333081552100318202858298663336529640480650424108449406908373864028386829668087239624430951710393654890368817307312817156259823955461026473343059110580960953174399723662346415635400365006454714593994888939303401714965848669293422591052149988236082310098677627510093285361160822641456933938345628332015635465290290937265939455907678466243326088509821401033498169486307218298891057765951718895820581601445454345454427572276456388728147208580227044414392146656570353517685996846985282069041263487685196928919957601021213085661482075657816609639969976203080818684585494222736359039666115913772841342260090941121993038844676648190686525490569184013652353351721163084354214807949962694057662082371931400597696250691427899910957536669195288897553270374378796453774055427827857223075515108208476920769612962085657210328607594004266848298550096184155234819835215960343493138830566516769622102164203865510874012380869894065392463024034795580046918225897661891941702853451180615888301565797087752220348727283265878146517250788729540977128662718954743512383628110358394487179192775087995339988210491311626554742309776341967210291459623497811834760187499200651736809796497435074373952071592386397284553997489338736143846864910055849728982448330798619194431923110415276514174320296777655987302331532598503941525967278268903497673408371565134788315221909152899254524691932459070840677131436998739339011616280333056883864660207420291562718031475694698593686710975189090963046560809457375767494504408520321633303743367517808190852388994805450906080230141537713304412134678839733273610526145383304344706043843837222323117030411486543697639448160529223561237309863039288844556058157078331624768234662530553544604748501291755294612086635891935671042009196390745744273579324620466459224250210141305839656490124800618102584943526956872915743098263978167303411899458587984493142714031333362943969641781042237937158328019378109850312706102831728183509647380605617372331725422937940853193701109619070338527726094222794332315242525029214915251034461904945093206371983641107135193103971227581073563758188394395411322919430390988340607241342691099128974193220654699875489998642128282180130880329022287192977987537568336492324108605264487820688213704148482410089757493050407007432712132572904358455469096047710193112845928702768858227751209765381098919662129378771938243522242994888926662454603654262724532113423841722524192808957742079686721449831837644597339047353738957064841888035334316474401777941555442075500148455798707701238339670773336808777687764850805709409906024484645678483377120638407060601905282158603957332064763236125402818916700944752764445048376138460039473688333565320561871989060603505845786448926033862125072021083285674333428438350016175880107069812348882816027012889256338777378431472032083784016713011127340109401905644966784579062600871708954978180686679697938555598881975064399435475474503449558379697707394589838610009088942038904635939485729195928745120024865081591506114430097466356767701642679589944452561843297193885783199303735333158444623629411396872465197776423845783345321593936836879942247422653337556204142282319883730443648661901424649123582759277593445771129232498007492659049019300327091116020505843435972005053261007051373730398792858243146224274845827985368398152041506197798552766837462565962819063854697255378767429915813333528724567573893017160012492394544872700710484996690927346113714293329984100524571851088564788149405871681670958908222602343931602438825760980738572278299555774668885414991682324810699226700711573764049951158869961602343238338164041784974615988789565295537209023404574894453763151171176542035628580976691380926962857081227225894455697124554723470192641299498841392093744544457938844612041511862806447695168077645256701288782140537982163062489448059393304445468860614069932770403953017864774185608774375564169387091860786645988905328806721340763543955030413177146894409877035514138332531275519398544523902948492401755480586508586406574234841239427794625356889170243937640530698916789815399371990396900745517178026046604837466481268808166694426294044047769265109491232537722998767231251509448001543063778331875324039566401502717894394109784395725450691605531558910312293304889735345815975220802281381551561987366530169981519864333623241988287520465300258180282389194806191452325435991576698894953950054696693158674679021049010200277060104982991779926233128912562288708394126054791118941706069236067011614728169702556422504389477864509090770110563106774833906559471002066581492212841411910392651438152704742227402402676445522569223903082382536007978291852862313926685086589019127210773525955765850953786968311326392270135073836252210418744390681488818562779076276196113896329656195580460151911935166205379587903041117096935264585577963337169967923438695267223447438300285022811506212639262791656840935724448344537102004409502158993021499336412758725149193779940738671400134149208736048542362575634452656061897444468722321856218443342068207059766802974821842127540980812806988416923561498873243993557950612422053613708354327007198324077039684489592464779100857823582562586797572024361128795061466737830522720852717521088963595631442447460853633068918146529639241913793582435749822672758387421827844569298010469395694658385491005414662181532825225417482877541468147322492074362656591627294795740949024068919623787016126695253757073589929186542757548420391645950966968408877745475741663181711148175275753361966152204501334373388849831094969129888392422135361310533666791486537099478031701056330289293828673797020457239266276458695004614458307615912633305581309959933667628078445654212399320284683724944437060696718670802356021169680976658938553137516728508526803242364052518870421773225621203838186479804183198434718988762720451113741499483915416141134252072869343150789235239200125275334755252202217770341411810422797207759220419283522819513159202437114367018578807200540429589709115556490068286913451449278006376923742438677381373258614849281397600722336597903733177336620058705081887326216499874042283502946374389892534256243707827909107453046591744257531327719631354819497561671067096674288347106803384326737337597704672984676012279825811067676153893051003154837503538195915934563679031030608940156517868857010864248844751636284473252376753762303948786560198333446719967441270754853399364696942126815573923999831875925445866273424832855477350235855322567196091040641144143055340666445925174793972531440943843218274237822451745342442484638176521683177214429002950970997251905238875621224836998020368205325719310794877687192154839813717336253101282474737168020085215886048593388974801450201385393980661976297210731236377573306092970729765262322594863516579935041829578735809859612147069333162737488379223805173377867320997522951677247992404476691334219770986915884751951235479408525535316189227111238743419435725143654463637844768495263764261267567127012024744565599347409633558424592974990924068169113367375930488498526764295010299972713619952019038670735729490340474685563622257872949219469949263960013847850073029121347987051172127983887223605766099579859434488521942801675857091385537122984733709560782640032398929343595770897289060384967398238726282364948676170848114773009911056351081984846222512316316160466679682054917063084061777760871701295448967742462573895206911794057584861249243040347392099223518233898542419695047963465525437681451025098908812411073513688862910005172812972454140304490781519993003743676498665691163335085333757315553695074937448046235322852338763981134412550968286807156223947776203593276257924690392555059052057660037693438955302462854290662815331353991311424597457620587436257564737227418953472855644069795816720479065060576690385462012833983482857895025159691428488696599916077854731923152358528071554212991311662061862852433692639395408369303624167357661077533857689376541578728910642976288102301542119453961589005586007453285201582557038313839019070600739211090009149767867653895285421300531391594832275277420212202376378574632230455346282810091928951286272061049186787277160366547518780176445646933650542061545955300103985428923822619275023121518336989046745133071154787865326606969318513932960976278738393369288819426259717350956713513222983790280051236414698106291651703317103835078335178513096282175437632052426067732617026306041284834484685817850156372807397409976774488459473222054074662692721143974421536928547646587707367490570530156272158120005509794754228309499909684423763222188744457559124748684156969154725677930976729171139406716922513986487773253428269678569190269606998737327025342641539493348644563777669546176055585994897660847334610906428492796584464526630016581830455655256234923503871867821292588065552299277914208014310787436743861258026238020226179693979566610115565665435325840221927734896422240677326280342064630501618971109865731311765029498174637982302751116183760879347845483729498209749455676453024929851906412847328016265757065000896974710765860821752427150582763563644761534410991747116424642680489763403372467399045838886120222345592126441820487246223369145297129326777352523172011974811190024097986841212286437340156924362930760781377201334138190858544673230445755729939530702014351340925936030087124664485964248866411422549043315029026255509471471058339367654874996440101205949707605871252982396677187291381063787054733181189352013971399673085782857679343083407945910632892550723589240918515721117746445268635087828235220747043008081905584655195719939889403025920708980308282620450543114117327512732975456625695551558295715764729311943529161877289797385327336894646948988040781096041803343547740051896763229743026278103848221924116577183749609200192497028069642376031357936049438649736809240164602111077002131152599340312107985584618264904324974879632943590517068402969866387512277054830308637531501023787148277919692860524655887367522151350842568552840749299467664478642112205421179838851552195725907492013329387825445665057482108072257797619460301618808325560483818994678926240355499787401160407552080693119326234324269792054621676300319863886229001611765887664396940350460638689665492174439439254071242713016860112195095310156716101379381618493434167253044068972590136197359900150174086128190493012496321216714190099531230658425611673252749046225068226468691391781828196386599986978381674485673807091430551531397616370154268037690261491792954183794948413266505747286924782057034171251112072676282921716930023182969830139307569103731165303509621692250904506116391498780480703230315099738549602574112852447173203096422215132231558546524186936945375058109487593093874399089801656565816339309397274506387392146288320580413361822135280682557152787072466059485466625984585429284541396856613236547823391615867487602486591318454939660644841120531121345379241440008581196472261751410023730738245046832474359103150589431603422227954047768541740554861954449445789582320145160309657699948842656437871800859472815152240527542183560633663125439057949392299376055536860737664824524278133521320735276433946926108037407342736233631440788539074284314355414245739085661961990490089793788198104213582274909741700219856210455545653907087442229796357623902023292933497726649618207937335710588232491815734206567318626420585652427852584515203274661250684707725071802991069029275023347877002250408709270827251138935994838646178555844459439089596344215836483498906309006045773675059216454139199970287482596484112611637716453566924755369536373662681821864801574074515091271780069153453484234348991580864470684527271193642094227997630205127770414163628186226815810736965819120944562695725431762319684379566818306573922266945072094160655533968005321741986279160234933434231364095469132039361339389519355337588749152916091586938823613693309331326910717497304925081108256567173173158503993920007418184416068416740990207464325335006774879571166014299693775829297759688646349745045288476649089451818638125321394600200172454386830958604957514673468288043765941218099941193360313466988925850153582654841435534402437883595545498847169226580792901045087639563413763467840528236193132287193267970296260749317044984534332041833493894910501551655479858343414559179192427810191167962973737218647104651702469506134783079420117895824040297717962786830125387770496461377181264411109356306943217017670408392857044570350687615956845611093888824600054318794476233494641512835389458567379009099934319496150402071064967691639428919703514045653307266634017810246795785033535406557336745253690465743199582105206693457068092969827722825794522284753200135853091081428477936047809419180299115945854733729882380188917386422715553733767819061384618959939412816547938449072985465152178169862471625163177335124710517860437977536895730823485616022644746225198780883264852524303451174705364605977813598992400365716133943581722433957926120982381512038916843915488980753383100707311655612118749743610463526647765367910357794234563699639897700303052254559572178017100985003529125648677940016956922383847556910759674086318996661176404950782449655349322797582445111697070033410698292777919689626300557269266282663384538960824970095977811259451703178740815446781974224793689968560235012049117212266119036879797783337900701373477462393706401052752480690093993371984986260560763687816447194987256190572367766763686558905308322622929885602273385326874111964014890330347163086192313017894354596654025367978812527454751378482663370340339422739591259217725309662977819803494118269432414895825704290281163461366472114710562162476168736575734183353678516451548470482324759867908969682866764723442806550079982019508022650449008510108504694442349734731702230169703452689606162041233941237781549365419709727545531175654476248768417254000511970691222008517721945621198916191214397712755815618317477414214461848988953824439079115389113702837692761353854841644485768229126589199069197156501413508580489818012626704622491102709117182538006412645339492811304872282597538810042803938618007943906051940377768466673611611052264659289236571476580906086625322074215889486832913483808603806990805033792620593898940504743082247133240275574710402635980502558150935690099681617382210111319498453168686242626002308772642606892377715194562432165912804928666237730978151986498169656203187749776397240145904426001732055819097221754061106704962147545289562062853629939669244378314917273076841594278696825193315878072333308465133517509656578801389934458954784877759171821417072184767635317937734222654760392865654694367020479524673291769121957233988974765115183894532667064051687538957688710918938847196408321941096041980241989629643895984769568008661998813508787593399477128987070728880565560029580773333442635423905847514617728195753848108490685947823724973307079856184558817038477574301793208664338479985369979675623403380820240924715992647488406451164604619619449313049527504778931135500497929842455481272486831743178583839269739883452881133526230898069870956924783995485379640409060968941407522240544919210870647637504925308789365188784622585433347310325691427200711373033954557351508799460530769423824577039759001107365382825428369294071410837038993961026188093944241838721580631675501374741293398467056693912212180985562622144650789611235969385109589485843364530052169349559449761197266890172081488063962640347562958967947838606932707534101858946640726788867559528384115014902490310032578262503804801816385520798628505062474739644960886475083531230408244515082682737560633541745363685756672924088089028160384039432419098514598965924427879428908928930798025222289541158180532335796633715795629952705915658192582742247347850722472808624372311232223770883580423279972656976183457184757209611361886164306419354900820807895403572259781652710366434954248351782214833804010992807068576528833780659714214424378119147645383740091669230979153657260260529196109818280541445313555282090168146196248905362511730409812452105047982722307664824351427623446305676269261566110095883839067071947156097044074008868686283955378175296546252903527994580513883002816067528053628203631828452397192722443634328821481386499097477481565198499334089351703092389535381980300157126226812485447513813395187248223160653081274330267423628776318801860381231919122284981852357313076970894692284625729552081047743326757587830508875250557073461843319701895276479376775521721546444887444030730386245857158884535971136801625106372685889328279085268707010978551582553186410039748013481759616760780631948553122604937623201408553685198945522753677832752997597810177280283037296768793252715580720875832594728953593916746633630002690823619530426429156764498420076405942704729119244732372712897796027509737821704957490363236536964200165707224590115897251187280332153696358666660108781857955249849138733797925392019737814332548758108098524702862398038079246426072411333646723615895734381069420146396821189764035183233716014228222797504781104864284070463633444847684271414874867356192137837902958710087846737469146413084580559573293873154137505799293732400049823979593814347548603096983964867421460937345631574702254907761268902185182248114292564499584154366008143458644491692884834581903403517111000403753439763762151745783593103080253284618178369189410976237467559464336503255090506299175661324132078138738420518794610787898415674043073716564134450803967647598512713993852350363524905802539057274342137362571528303747619393699817538574438430369601932996663412366329148559254236902838884742903900616786631461093463955972944872060100197454513053881356653722981839322286350764076696692628584037464937838049571870560820699662402439453379511973153930097737621458742940828453333273798156421467569397672370397631566278940042436471602764580290904848935329371790733495050810625504778060399143860431482851024223961821966014012685971856636149992819053312303910109927788867982925233899927017127767185839447747340578224788062276284477105491866604517370270131247700408405159692402714467809186131608302006889643093670284229877137886119727792546880550128867617044475929414457533421508670431779124446820757165758152189012050043503839958190829090038574988746883170384350127123043392347966306947906336978313177096196336786212350885831542711882552093888092780823310338609539579635549068391175369809345602872473386204166106401822865715280652911199538610913413652621679799209231205077763399109601468347760553934009450477311049162323112025726849431662175326548899485596268661923354538025910862240206121644870022633368813116970299876273307993672481570060920146018555475943597334785657439670267371610965179302493120020247714210510999658096096688163655609309854532316323040347373835539186405496563431302504340383578998882426850837719340793030174144073112462905524377524328445403210808625244894381839556806241387607854152442400157784381435547059246075280229379992341374185518543435062688838233875406570467539784995643170257883211844260151525374421807470264683429357945472463128982520137252467635336628200966455187444065043418630310303780612872006598879997899114826128678595596780199421098981587184015942078198053651352351955638656970317139583294358862406046283974778843794147024587531551928162398255997617216234604365239103572666248308967148930372064759300882614771494951611108656137130552903006173720289238990433403289781393672615742175621597770587980657051899316490333597891934905238404365836359216631150324026038114594725128828475107127966360413035124125184018658639678927467412439486769640265759977212949330683503316025361340508598946559733174858727559820058354683669095392041719006006538748351202148867280766873523569315520505293771257061650801212914380462626514778435288777797407511884703541455892930943149629910245254803832315366863633112631804298838848157242543830987303188856015813037892328618937734434294679595777085433616642414370654119079739894222213799816737654771523309575425121953688360364419231183254704824483628970103786137026643713859042009975213707220906840489107863636993987158558684557058917019378499855720222285050283648377192899947114110421918551067670074415751456448405970486990539892153821827947493562375254310663056115148681032570824172502216827521536422882742935611016128768790232679035919070127566061196940451572583456550686766010617683474561509985602718565713244215656933452613429568186193954223595284021831931905820641332266936319571021554262053175875611200162879249723081795639348313745842190692619496336984375620858632555512396815873883093449039497519971544366183714079899599962032543725796347945503632284753924098504574830798464746460247537545221227797773024595523876752501401611760263634470799229906187981329665900070806620633529520565744661894462071038383613125348527264512378601621406330612665811903068886287515631150317944714160362711698029311774622480681834644488254345666820509977533065100842820723041743519110579014093955759075027905665361971676857648441841232504211150496381731393199092147597318556300222960673380582861942502552790166075204375060268288984442742168192319890986494788819541554859060080175114088368795895776145200819870566310306828716920174430514659421668242961121371970438617901922621910580684347920325219600385919441355109161991070359895864858533505445365182402586570420238121209388917875431370034252571699903195571687361297360580054117574474952527910514574181009574690478099873882119363251748152221103005302528486396605004574957766952304207731789575946355134181836779238849353816427948720186134917322722999671095788478887858130749045823599199427818404708510082726463771059032608179108226695182930324131245416178690209220072291372620628841662742712645439615662353290379319671077417276435605479281148908516958208438255372198319566883329259351693593520075229612080307966512325051203304572428807117308093691185429423827562526978345896597428980686521549054837735311321975154047234308767804125174279003855876475775325907367398310766600796013695651596004844302066983549207656883038038856894844031356227360891203489019987351181207121407786863252995894469133551341298781530542560369837439941474043210112851841110167995735270008657321297841437669438239596041090315643550461209480833153252288881310793848221043942202219343152909475114881411026081304377447995900710233301476357761222401050622826428113999484219105175347330532843381971725523136783627896521578691870894617056277503577848925173815596096367694942814287291743648159304646621011861308846620721817660588380953247772670509399881595717138756002702565399509605095486687759395088832128338894379286512482428139564311567620318859174362400049625920417460339818580099677983832833358888943058872393087494661606796116195645754989197254123417632475035570203644891159941337140380516658764583983480046039393780783335584670869759826752605457641746394644450517644008315585537430492758762746901937491310617852146259562303572532413230551024289344043601675385881646973971021711185386240765120246010368076409589889153569442253003353499573760077635592328284903889114875043265635358706501661959152621606163959010530913993672198869697594878179668514131002377195451165036102647234045640729932623358515854029839866753805190225165005251839833643017646446953657512885895040946329574535708207030997660140410509071819259563977612569777785256690396490290010036222280366497575676322095543099838628046108706864919202848076835644435538605037852442471640558648764432681783295785249657033399120721732444281909229966898769285302117553371955203268145161267277669396851515021093763895782568147491982677021338473946748157572903592033672310313182178515670648748447934960966198752765106949763965181941237269205913037966228792066288912498355378137464226277652728398909295369477080910402071237031283007367292411533916431423740063369839811171745343842314692233800205263316679550773155918102723711214387346934591191686364490429448379022571931752320675517400611741139427831336524685283522667846637422104946526679406586638010854993318475112707569228044302019908261598552801931005059451332291180645806287689564918909610085146860087172236166864417450789836732217494032961749573969428064861042468425697493536703680807816808811509322038829875886861399848333255790214284654386822160782400941425030444116783334154176005759168819166777539668389640830277549365051680241994148665392750752811909715220640963983856485185444166613433672739015074057419488264307586493776910119907207670118337871408212564734078261161237212383909302751767115806613496764289907852711036791500076450408609976600489707755637858815386791725839078438588398692318886378825091869610641209713390623417771929811105574337084311212863529554120927232121918796126818941528332626959709403942771557733002550160418402595247623154229204039765511503202306485827333942553355583525385931038267087709812806852090146382429899615651532233083097622794230877687786037141804070176242334252541424742366906220954341374758542548356639573990729013393269852676817815650921203214456925993405504829130527231435751508021267397829587680805788439785377583075435016936360412016342151208293353994031416463898319299221665534505435910644848319617778095148159690929429770516308237968342700590154873644127597045570814669043231562162022421883437316729436198139360375063593075703290650015237628487937908255853397134691941166672420784079941132751300980358494655490661094258850752599558961314564766822100980877706473051699254337771777815096886172732102777242643906156737653010793556242046313478400609284018845201379669198937918153812854357304924937063847981884638527247479529719545067761118952238315071673098982390926288244688711973622273603694798407988196195495661782399015709536290409394022008232629096249552084933411627840597022249131992621573702536694777752893978160327190435993223734810088020579267462994393545096522639717890875573722795447174107207338206405107265513634578097929411994774522282313981029986303975204962686762855361375521825026820928795760237121047098412149184354865576318224327588311178210980664761071322078063840405098818947635007017683276044116572210945788179528797794429438139618785958024099531705629632005873820946574300568002526168326584460119429942233567565456570912524953469276446715715088086353185789046343786688539228048986949371307264112056103622661914800734879455539231457853419838465831918058914120469942101972386117992703404908448328678962250060204802680861769292596657675607809508128143383038999824749787412836948375347095048736329807673434946201826045753735815956163273849381534213640322483462725327224933339244002648959231394537538140460466520443171961326850881249639723368148617023125442487055185714772903032817288324266380757547618313697564213019836155650889712604468362651023297526534142811748034539982975391742713729183354527556935041120644883796960912411233220691826807747781148069949464336244476741356816462729407805305092563750939777764117555257539038120697160228067711113607179693290602801696281959600845827583219973763130260340220275765232183774064906165512092979106936289481910910089558857467670697373348928912593167262005258002650578098890025419504858605071154947168442435482037753458530515880763051950106732075273043910218473726651878207538125545383417933234496797876597163819328114124346387747745019011546249780579093578142562005489463730263453754182370511327917653105806508346456801948704697003731864436509562370881664756403998302234431850668599731084350691589120329274097862967451204771679549885795729650712973704057316650226672863185447653722690389556395427992678013511098941404625776845397842285915617909063622630654769921838994290323230792119248248322383021391453867230083664055523514563077794359381645064468806300993489713705613803622306654143217012113287780204611978217813577066616241779520640156528473325508524988678241665440377081526115265811389239583206548032390950853717793903131062712064291728358149171492076985649570179127069033886387887468901230564125353335445484522342612280868592529925683040639177102284033803097375677231366421467471584745618791875517024761161430041552518171482869379797783101641420024967878124183397691715731507797070303833420104932615114738921753524086327480518422750636833215636885565681996132424593047542046081107094693576827466384393507677042329012110181673153133682114611844682263156738405979084922652570100286454960931168035978021514845442333031155174339947319412783834421644524662263125622518263859644108364973829499549953758559303973345562563211176913739857105489674276585191107786743690818357956889456112673619569006215571653840688896919181246154435094914508977275298514662754839414917719306180613489588128391377632015785764379067793344790747004021313844446892947079826721663342559235778285382749579997481879719003850276555300410195106095786430784405273950574975976998616924728962274043295008685268888665875991300831680629275871180107308277823965530896478255541497753031063067212921844883296634347704523675006038455495078368615886591688856884007772473827924357604313846417297781956794070727002363535107361664691804106945508784722327151214757072279011466260535631561149095017091101233704946787630525252026796122231391971283136502570033740454695213062385544082540269693793443253676417346839305014012902434949979545963623628053464915368924329565253787927136906074556018047969014036827317716039678695453167577113248505856109823435710035194545595672599791357744383804163253220979087684328007564813221215513801586965729734464953827901333538335482777904298757650765326268024933493472604568401294822467820272238174308945444873532971180658368793615866340718911903568342364166914311881932259250523008344016745692988543955184533130003293401345350829506703102745571519490493407232759373429618710344520308347369386979842316847973863649060252280380960888809604712959425375063711244227794904092553492984655215358486325732099045736741097778202491170772725244270574567793947273249468265891566712460517033087963266675846461762881065123317317118529786891524113008049412915193096136026967571729732209610312264456578576863850151262291898706582242943466984642919456909578214935852058199037209773196917214987024956153971743897585485688457773997899649660085661780015523074556108541054171819573356415808733054711657189020083618634735238270735105961879274329609211714912879148446002638763857715124224039066958468635942626957116446239703229361147568804313391515237681047870515695734407091403161866792118828250644772069694155984319876147177453252157538500976015714053784845202782334951252376386781097088776276298241433449694918517464336239973315850982674448405503193447029365536300424614820928311272801605440664431691155748597371347030753581263645097099996908388465942210733770311964042912369105071202757767782154264514361378710853256005903045595534241873750151787369688741726834939217062366729795975275166120962265880592930879575961385900677147127306456152695386558912635756916276036860261682675118081181157831632186281648631850707457142136405360962195037165811405220851276871050438028844736525569204673292220175304372975405339674988587978900451432289755839266497319657692776637764810430026585511533306341144726388914991274532376575855602283459422111938630464211372522360911190583942929206318224455998230036177284888328545604570889882962593447974563691551464830311008551576183963243318873160706211080621514770458991699752540228842261107656015972047245174714692321158092860586840853814062986976729986342522166538247641308605116409122050431210106638013861421503487995510038845890780268697836057557765630459233579612317404715332147918993057490210424754679820323012371943066449220878508041518790789846284161888639930782120951932757778459712044254736023150968771335435276476266690858482237625778808252497945176039819604316455755344730382956201375339485296262627746108040381565171799535783073279861961431292889114403289936079426879712083021642850336015562135066283381434362564291035206589240392753676166509195964416776845781927220782414751784278143519800214911468944373943374319432621383668895185167267437168030074707082489228752949879156621941493643190738597562276570444753368188540899623288373418870869523544737157270148670219629104108431981255598237605292059201057828445620327074159289754219756581855514118979359600158377866131130715999813600719619856006430394766150471030555174739709861862830824612336899370720109223501655901633879311179166217971530954758906781700589766024829258771481161567970159460418211276271081436954635496208748733993059666169709808972743542683210323155436996849855498885622965390580804805743747301709300716093176040485343366888393145261735937577137530406970418241378949510101633936850624385359143431264097810622487282697805893745775952519860915409168592419911860133307016901177680947581916408352004552933155410510416424926839680875444320315292660564274817018408147738461729418384377048700498222787219283064834437982824596009696337623989225289442398500335089274679569822402506398423603606255437417373202509000310507226299709294056054364293202849942969853867055347319060300834795554729526326648596146967786315550387588378294030052830989960984296646224083194977884192286458435265219929982411848570387090767889141214771894000961806694924217906596153440230546760237539766490274939010416549761125820817975109717975078748203902274070784427778378787225952242328782525448149687057697919430214474446363938095640200799323522341862940643242244365916722619478804257195174349791755009281488336011122490050435675307559326391620508621935459136062495627328633990217348804599723238053017129160402761422232019566261505581686137487700762177747502758501812994795646297545783346037925718429825641213059389716121543565134653998530166238781349507531312621301205234104429360987632722917735128422116305301957879462576791026902037236695724418154394979520528222002267875284157663551389890849515083461975559358817448593973841089355695032536407380613428232443137928390235072871248650160918263498084584681636500784332589969915782737437237163275120724341442511690767330327224161765343210599983691826357439361744607882897293171112012767049099693264702056849046650089866060027353101676827024777016412611559199307723441572694263942312964232746139153228834942519944790509433212206565133125549244383477721741342254014774623325852253578194883939890398186392173960583282429685700957915788967303742868688839270763272905784751705759248670853966685433577966438315963430074152182727064071458909826855675346008165457188587094977289954407295205397654099395105480844093637075955276633405073760074166247365973143532658768080823335490580913948952425597483086409089689852030236500370199010596932208009902574176936815212690979227291524253451801704541225360540722988890158910903390776895278344559017236257220219304362786720100694799739026650551469193679047959583591301486342521374391350953947947114169148412732841375638788916688905643034585549664583685074664564072455653542989041915449346632933817532833036706359258516720250599532134085337942925198115138911454017489850422259075401419244253563855509256003735678914306658966276130414776644628356560586317337249790450388017235869579335240495109702756372148769500517801510118912585627058604797852742818497741803181653277622281851812279026662959427283153501897081180485763256303348988064816286442789322253419969847259903325050969439374971528473593550039745130245855618253727784599816844740580490762145901208938934697634806100396073501723732358459866313256586192760716484981753109679106716726300989418399746691114104341887491961027401887687866678664290587995506507706027072920301614227961321016708172320565776075856415380934648749419451667336237096228531023180308898271805538596564685772370905205197539377849405941560842611660642255210597164563361178421462934700913548222286284564068035784278655038345394089402390207646035275002789815768668651833040277296854117917528157253043566045601607764340367409556738304196503069570030266255252692382965473601755446046225773321015214068344424379360538105817754912564177756291777237412630502278013824564876215526880928569727822484794587000607178149464127262439558241054820901705770664693994059688343722426345067040483131225192767434334740907674022801093455478688384849431721805006303263980950171759086064655604437961261097926871652927247241519637632670572977100771365461153783425888370969930156599137140338696668124156060630510871008451650278488272794551638928882741960439614008484726007076630464120059488408990144428702306177672639908135952626051694319902051971965052226917786946865922269102326259126155396978164338944815131031516720761051235232850321590818680040847265028555809986293676763270210045569568984013243029285459698173915136955003060357054019394647322053116049837752766602059846375778515584631492605634934377843235861442382789182719593159922426235537286536653287613411773481135571862979625307478059138835711940735194042053774838766204887529846686546903069050004132913132644760195195434827767824642280547957648711033502598325867412029475076322249934417029794825015116722598109420060125527030381711532830707379767310059925405451421521042076139462764709330274097787573767639228080943716732597399808525283575635862441116679690522793766380005944870157762605215743451621857172103462298908555390553816212432913985341764668629264198650012663321844506966716915828126711191613267292121155385377635360137271396358733834725416148501824752618939045643295813237270375095017809734179965004606204601202367275687522958548453673944178514163008094983431395125804532384417125584725410424471518366658579679986467586484981255059524878154919815630211806060437140361799194545481418218685732377701326289061763672529032493958571722272299690065037361098721562191826592243664704737763511739826680219862810508852174841208229736424024766246165261432747887452949280834554509309688399319857645636619781555535920192744858108369429197179487077452984676101203479408633491157688934243472397518465035733584885366391146558328651038283976827227389277602204880875996269593367226480797103455373301609839869888414435886575860301085476193811748697551836104995041228808733604004035350950040914590905202119230354031668275729601483104464486343204034258505244842702880888622366558041645710476970729143924338647521502350640062231860283810384648296929876157944242430010002908780843526158607596488192743121977763853705782577852578159855818780208060095617454735716495979905080216330638192809313737822244242434798546234482661795042089819493664548233155517336534293552593637187118867106666162995245423130310730585079614632584762872100034846719822405637278754550369567651503281424303993631657794412113276121350182132227122941880904392578806697293730543700403156815401680148218682830140380500863597476780395886785112380066538585008669055124491472033579507897491723182160881159303150053502124322354950462430177017418359871800013405520456442823623567717672650878431887933970926563908169903825976051125214896668164634936252689409295580083563529520113107350403203930458904222874205585149437336804480482214229700860038367492610486500315368281905058508585038614957304789741216252222637917217486638770603133256640397482819580493835629893467501949472575827060849285584000177780769869611467042307302254511191206928853659987892738520543494441299322012876020969452105305985071830804134244844737827681132754376047862036467302740044751596162537802468315506537556489191201839808991149900226938055034555268187144114951813646554958023181565273226896153596019552551663147208850776721102765331739387480516644003826840926160077442997301230292036978300683295411330591149250189160416738097480347938240924935976563840859169387335229811172598526605751632528295532866795724011507296724885369990651702402530667198635874077355536032012822927512210975399202375461245973232485267258377146789571133996946658506857728183538111322967532854235331865071628207792539716591479458368754371688745025808950361748483012184075880948147411583404398437022580824944933798743910221598900375288731834090137084440915962740846143913340511171441711184166060773650227175272456982232579752548934676759954380440400450636967544240732082009143766403034911329126736883037828113783665951161134583038296727710683783263987077843029325545843836148049256622297132083534614977031325616234238089194688047926355442588988645289800636056757198581800947285647274148290258729541933084500114813710576202810524540507484864330398256035500832114758369512162802156720995972266953970468008617437959832373919207245647574580029965244854309758574885771880986235666965829093005445524637640518581255076715537608355412135515628374595901411336844706686919659408757869784875769829762199024447492994184849965688711873718273706387028823664828902763615628187985170919643641189200593330290022928498523963586528381576214817148963052974412965302623532744951127340947511336432881459008692006739387255857057052296077139963535123950584943292175235477535190734550114874590186661158606451113393888394149545050379254903634717101361560946346909851581757315578414302027981277347306337284550758402516881964694943477327750801733317508411052566484202036671799435230299660560608181913335352615684443190844521964391072792595048095277321486755932012038482674133699477788392695052684503618013384633879230269630159588113340591641994880045400086569682572377514974098980786922266918672389153258721842276001529770321475470400907730438208578223589240723141681652833998841000782453238051913781046091899238875807476552727877467094497331852071819761251583090922120521662333092477990651496511834733937030388139464899706821592499802159542944573033509272454317561814806950498270614854803944663815478729386008323770665086056284411449355147549405878725043248206266535169856377476100494626918389238935612508936755628325841691986569428870172878226119892666980975928850243513624737650344966401629459978187867634761870628253336697595370448407684620297867277465274707950259294249548768051983677572624250976515729880212278730982838185096325701396697584696079010905696032023160449170256439010419148368516736128359291381408362164139653300491379542504080076630974025545646457820006453471639715035183760876338974838951890091559946337265210255518987964847206277809928460415993194556191748454825579012386311930818550030876791597754274827312219840225331579196805285180579651419263384071877679104532044992484849192392526855058650855457436207360044455419141887800168906787827256581142878325849884297878100488796602536400211197534458687293530940716221107156678992890066119793074960397213443170817910532025634810575451764047676723026585850035143836077526820981661202241007056731756001660055425582122803467182206151138784286179942665099172269093844043207194853754937787917117954053914127020798556778449768721110433881766488835481472674139381666668297137535015983809188696061474971007439577620030626806159916534213973293222775409478984358810270875605233743784617747577504367743117960478759347192269297739080636567545685326358835238355316527568259408716846048089855752987473798992168269161176586678934874797687246561458735381603252134367419086353658738601572169896626481005897884523371061628234236981044528395085469403919317048870861439686345207831360467998456852382107683786139007228278427026881844384440294451209724331767466767075483251986737338968658244950095508297446004855725458019820727761323232288114483181234428269933766626444066915589257111502681051678448069744651342925956216244859399631805948825326968993908148638956242211862916240458126433292552944488857867168541406089230471954236324857176999335096898821724678625727070058489930834609990480204966371195732030414263398271068691025766585526282397132688193397599515463188882423741339153527223142266213323916181429762474193138994311542984012642229226936052898139326135516865392201445086041979347764023674997831541797319783529569248029859785498656325480640108684921914734721408666740246270708693011391404309741753083674262232313663546524651742063485936670597114898127601272676506863074894669928922332206443379540567209232203514590507677273360446055630149286985462940726362101045445385143622279662044408250202266399343618969981295213068191032754906638684790779948441313923478403531998592215202936224270728995915993939702752973140319843328400423715930543184286167670234764821193862426028970063436204001159239784612969067022559707207104824609875850956777427463595748094760427908477162618337457931127009218318573518462850312043855212269219519316614472301851386560021778203179127821457898855300961708246167027026277486605815724566602814411941604660120472864240421150472714516668117516673176589882429293384722573971624350528992232973925754747002410848330295924277052947645589746904493581955680643970957226320838156632450984313502661533960795140357048030471745939982152349387555948303079496044437936857843434968770730839189613901859776870897544842437201893449168441112051287249986990936476764466504538690266548881979967511777771740588034695696000169158677234216101343499009969642706757749217858925496447061658744519699965723859469805645933591896827973194775562863159041838129012252165084766932758054441274981453080924826397828529785520070564849682996511597357186109129392886500410340397218483891414352419603360493100150749964003469690255596024057006825293679748877928268250701656315442797841671397770341597680495630622950660616666299849114441157673850460527364729096246345802428927284953029871071046182506839850126359857173889240698379159683632793115975999018708895803976512290626112213422454889027243581449012987560874551631198958576762343492381031881532080773590956464395502809742004765410646915492911385261688973095171775757238468392004576095656359020934969598608836634027762414383682183759477797082242598730098618054168804646194593311102620113244381245946614992032169005560695397959028388239541863918344190162495042467090446369870161853728643588718554778250154711930784019139849929646045035568787623354193766683380994923786403362620048690429147314468316693293644633661066287607497910599353124167963661258547170124075826154605654642346384486734473659892209050173509970089388634695624192586475350836619319577892468827593656697324968524366950114006218207230059080202836981364495392111190541629521266372990677036901292574616534612233793530730033460917275292574503225144394313814176516561640210424541422351403481926445935579683736244986788578990059991456187661124231070610417285419456853761758397271130282970187255782875817852134728089319704995536454210749724181574133884875329470447810977563215074054088185206929296998148240464019037284223695687701069604224330578693909354915627635102076748839902612677375957045174479706466281237983193348237870122066006839984926757399146523797069285591378051917428636078324104772679696176323601197710163394947674933065423480355286275700299635927711232595995910315628703253723064813264957601141022778582450705771498249812083353112035555428564079334980099437163485156360437170577019705809626988707445525932335294560496041286411186356355341311884940243680203738100253686561448589782538173565935900975806799634926935743871225283290659179233810618253856711227678823513155483427389310160788687000154699300156789805217706845971704956901757797645783330847774782804529107820269448191016195442792575360551556000558980385431007237115870323712270033736906113306497597005187687559486481735717287044754041151271801322289037020076144325848589460471711561827948492230195416736646065092962715805080819140179195825273367476803605126286449006458968066014973157301909088860698111971022321961563526813054314243436991829970429284591654815443529779585215231096339722485074356317761380607653233861479726489417561827107082068674324375386689196217060625167384803546621364417274497986272281121908084075623499986789499100025310750833330988483074219583313615859496550643444877147715916968464435080491702599830161667398393049319573667499824783165992438220966839877668262453433260655505247061995427673431792014204308579156453842021488418597434283215088160158176048814183191119771726668394721891598251551948965653247910076796688782236620075666853913324540880739573600963924935440879540375890741679340898800616983160332472632821878658548755072702793529303453687404115935506464085434737539002921984742913556540505622440719079885905652287044701594010361022389664233414355369507858052805539656358159318272970436213272246583952637783013099892162726848834304286506620415807727560324137712915013979962866506317003502506396403116738315412325316487494093969868747485266500569889820848390206244364534120076394793067992878168001486560017420229954578888226095649608850161736598906640094009965285837974418245639307589281645872973559268286369707302769793387528466722436742594973824808282670125831253991691921512252662600989965409921277140387041695298926033633243408426790895152197084877081580424456929637670819725012695575697190680939168583953844805764084599689165283391286288274714993648838051914317340442429676730818114420301419415752890552565883055940978594455724837115168079581178837442336735677659014148520075791240917190070856446959648444916880043357351662125164116233546004625619476811472561632875112956743567920027914901652486382859615057567799099660159602015473407485363958893453729123857501851023984860239916350305046882631141767908069797723729457982300175889961172620261861723163330984295336295310699475223364341141146919123348899422827594500543414510358757908053094745796693191418601073045476875791538712350488097631288189373347293806079326174950565388382264772590535834615341254522072689832368415774488216640472583151667485368781426872387151198068122589134392143485608220175211125557569622523296836094638118700701343563755532666124962770830226679136848167212640806100034588319045646889756077405480073172841160744471498500446575673413693741128674740985409910642750892037600386563250162532937766884915897109029604618660336179501795980929217045716923460506363687279168909337172330822407364013626295695194558311158085619234724596964180409794724684479543500816155116961134159155069044291501403709160697650356790644051314383904952892825224685012069622258621811352489268906261764118746730774476336094128035268299694416924680990884943547536906788868334557546308120197496546767730435058006333317800155379625777278005421347850524201543313715136155511041276989500760590342550132689406225744923551430356637961136161533110297424093095236819532966305405813317342139483928136114365478536617376433474878900859199460018493876621777430795207097810069962037913949099972419987754295264310834418031952399280881099392145512078293384902881051414353729552186703146915988107768070986486308038146569641765215674206799140337737502575214206642973207894169654134385566026748114299472921729255475651518027232053711287149722648140033322215759717816539469922198404174783500005371487764572863802138965189693677378557632810889773769747940916775385813925864108251558736037979405557699106872126802191131228355511411650980246107934038881357389764125961338215276174885150830690870139947845878371767776335261950667688132792735380372276897089851401106540334678818073392115289266217274796798752382290532990504926728208256024476050818221596433201622646404402146875500366598511024186916309598167961038856217112485621154166610372329720980862511714481422650971528743879696945245825620974240713234213529269806731348615128250314675142801292331993554993601097802798535618047945394239922182958411674112867890380336355579598135801892719559019925877543417465329226222008842808042179306520573600781766625112087162124626143986767669413210609572745248512775767690850377768133528649762303239096333602614345131920253769412282671151094632014603657879942761540190257129048400125127253384517561910474008927587216498292262603473531745112331446294053989748992690971695255085644311991295208591449449660523580059904799498975462940900774523239536286048542394712460514823884383337541979350890522142264344443658542915121077416356211636420893093836805619976839384911372623305740584049359192544363905971769570526009042639516793214586487576601506965916320447690580799786976019790881061086106801330812456492042865483327294584196027455310069414198579265810128227806525595939312392202320556457088880951834313687370069828526299124389153697133070596835567994167736574681227403917203649169921565208443100438940958117721913208364766325103763559968791853431183141037790219758779115141675788957096066716433725334892709890734406182897559951619607521967292104905249770306669980694074938934568866977275024867884170835226276505459114351012057830449237208349162892193302114753422466036735242685071666130884853039633011502358623402591768254286118329051643088206808175189372062316054652787559768391496568450951642104531447105985465615922076513331663063801205080391701368126846883776835651207805640876129029591769382715864363109107667068875163078342555385918530685587639473978571339039083512669990752168676013513682375699756130927341663571381387641997625997394598788417545361569416606926226303836481082413072189339387332301232643824193065269152543927719611936204443396123261144372103860432684203056864787778658347428858177467010458901969498842096465835530444877907571606562637137233719070658490550239903718468089423437881249000211234149695691374830926570753546937478894762338053648571853863970114443960739045985423329867786622963429746246169384706011594742860747614480918860342876539609913431104657375633656854261991562137701483247349999564223295381826384932301383123710499646347198253169655183694878589429421436020602156249029299949072187442343859987132716609743667503170288614729634996371953291691100088971353326375468579568869350225341145821051884977168892448590758957553558224236682437819842067553734302938827016671366718005089225281027516702768274084158804026051938429405403235141556195797209315802022793829704291864721384022587621426254600043730073898339641765532272602435575506534096320262193062609581231022132300637294351357753899416407821179142157608101798909857492772754107107622628421976442460065558194392502824638498255558391434511612954495974056990960000239976229622310085668423238088011744300550914132973647605057296090393899475762134894925581606160361933852160557536752364537852251264063263954645057111665661958910281366762021999682792327279533256034133380005974622631093450761891788955116233355924448281682999869825467742788526895855388729693830330729975703463589350175794483833283964744216635956958103456593485279723084256361737388676015391498769923051664149506050852244511062927906271250189774232133011801605034214628934874805463592239206426355670841651132177570024771745445021667792285465403929233792421534290033970247104112730765622141120735586399371163873218482079671309406067075883280770378574711346684839664791360530059137144169445780206485072182917615867268032664250449760327056677063447923272546998123382347073986548190824262215176580564087126294146022944157343956263828114711184103052815139776863830925949536986838792823414979676795978328175762722569280926762729249382515052543023565641758024237783018462414037316971600776953917704141572694424509180270279197132531197709528509644211743562111344921855974150032173318353936450531168240895255587235567769996006616343536712044309317889936143032231397631995458189928684518867601450287861640496398963223855972809992096386436148344549679763000001571219016678958532873131714919840092419208372795146560001206773851091034592704419694212680681195271392464288810497541825594021297910937591101692390069853775777767163863821080587976882080135042397487708543068726055320741783682366614383153002846629168735503396010823170433260356560191042264510014838571424642075476134679907200272224470135442571862494405722039145666804170441307367856434040823544338248908532053415835495729363648846856074162910291024752811252425885908480892477174279600788489616038392188874479269061939407312580173081717410242049456365203668146195951612511227851856945786551174739011405803057798962782163205495167981968798388249901431886103830891963877654920002632063832111334596193616997999130124415872697171199960826656432541793002141813945563393428435223289809296149706117498821858294018580212776972757986097746985149080429234314460689528594718186717952464622737800306740792901093192340956819658744225724238751872561728304183056957760016929963440755160347284570002754323604635866252025623287544211550636984137598573479429611646107602736638127966068810154695477049361611748018937258544250468359775911900615645465970759844208506495886156746930271829910897905773480803714438535404301286706918006561278739887080285560932432778704526963180630749004539508062425104747501959374680511113695935810476155047639798261863444283373558289993992111376465901179695374774273278019255259193534990721025547252986196317690077796077523106975843992659953268590022575336114822368985993335437197743430568638664914001070459083333443427405957444998340552198395713577827633270675724605205663133633446692924800001933623085032081553184949148033447389635479072834980413551405646680327960702117858034437288502989844846632330433258895554029200096315817631458034605722235955987140588509700475939759794103461258404885254787999391484113796872899159120436277118581525608569404397101114578849331313623408053537672714730560164745535460167066879779997809966251034371928386327443336374892677656037020263475832139529536566628505760345623761323609596659453821082320862926649394626674860711177767854124224685632171096643202580065271002637085524318713472325966685148202637413640271685816441332694061722131778405419185011087952784470428608920403808370618655661058854743055927461303827029439065037145643329779839782646882121344896779825574597463124704637966782828140002708453888240106292126606906016373138249891678383465739024421594110150473887201143623280464909599237215711011920065364729154366878849017377610811577379797921407093339155405197487209290433840677969386770493684262696314752386848130702024948053424876146748587527928746491442468418361720462273201203383435399759594362354790703024285765856030548301084703689165861557111128474429371895995887664418201842559962542245846181974078526999279592665298960450692702426177057532416582773708791837070629059768047106470924113043027781281154949181914017664585554879675842754306975889359928770970260428335344325201846389094766529127487715944431994273094987349437485014535708717124372747495559041689911752139130991867353121087386251720138204965135051179652796073960418300754723626538287490269796268341713271904633168083668346664642961677874043098476842656169985124434104480284354374694557330621879502560165673198371051071467604226994899540198944333394065848893162831352975788593703298494478851671629192030547492126436522611761548960178627141814421826359358988050167453894711683221662533262623280603791848004226940663104169201459740745237877590605899268580089412231371875969951789754623280622294996200245213782661680893801910855730601438473080346105114712358946920895306464468834900076224542939918903942233717244840291124001028730827969325190481132703220439618881622125677170149165695268055763388397525755108971000542235918145633430569087565099650742988381807047753772164953535139341969477042030876579576041601078058075114245388938818320372509485181011154262854588377635205953778601357673252449582965219019552733166019364499601806841589982660053239123393150640301449559463856086186188302456426378434214073226066612395848757347272723835865591159990653901545993201580458761533738833123033117483476982287629220215706921715376725852991640186842979597710133144811572580729277661592374370645522509810730823313260481876905188838166864742034354474137733295030762783969746444270150610743146525860546566437560319314153098075965649400895759290102378749674797038597130461729936470991188233759402832729722454733366519276344952170630538006593535443441466430527057162558018359913921470032867965306479089281783564669368726811460261978039149652467632312682404458169457095102815722707715742381799956200552280885301394456442381955952858600207190095051851986676416195936505151493282810318902581246705306678311974639818925010201512648866269572853261935936757181096674731351715899126601200445792815577939259058994805010690112377863397391842315529894837314831823209631198494452380818917489768902926768575769892845332637869786148322643385778315837075832656105149816030039921035905106052107849226300239506307565786624200122759195668888704839498590376323960300024641750340586173254788614172806747393780041009730241452500000148825629927355800684748332232795360248976673252409938827154146722418810278148020854863057998145526686572609192453672044471245098119552818500926654283794468936558249407681985799223048273396142046758466049591685206357704208810460801575078849663879356883050184821644331273061535182550748886087143000440404714284224922541108072157395792940714399870395600201172527054813422167811367730366764141864452569030104172096832381831233729627681004869570397034259861616202657103377802873836183481806692793778033471751992514272024794730875959449057974545320325325221499157507119955301118837152534358480658330148305161825628804280005671223880482202823309012762650027985316754026902507200478788211817228591997445608594630595480721374553108052329093213975409134976175300272799889636679805769198933077655706663097602994240185039256118937781429319696411907555869809164892175571275000435355069587811972656494022541019186340585165293265919233981264622625804752848616412422192425849852753625020186444098399168153232580123902743317000415730283484384648947269116477809339652996381761489679359473105946693516860843007259014806177646801421215871159957745354909140893437463949242734123845258616905924372763076534379701758285233853398427642485862249880399775507746538752399383868857490318987676835231693749354311294082701701611866436155892057081312646894790343012331576816512058343372198019422234306823601473540430591388595181212744178488792729020220283294293350879619627215994059914269844126265388833956571520635123995458882384537407027043032177312399272629110707056220893040564438873657580964866555942165924681266222924281099834124587077992444665011259181668028996002594806309446488084571529066508213977820615275564452137243812624757961144572042365407641637176024369169711918292275109904990836337879627478215389893779057107989832541016326292671443176238744201360342764059372672281000061942571877280660705654956265658365440248155425231933535983107592509138664653368830445865294424024418124146127880095812832438590255432218850966937244910252155443822925479411210843266442472985503715162802936246994676887215426576762301491562544718175943028079560404824638961147391244019955028178262885292653466611567067686999431715643895676215227712625079874741617236411445165848215394025455820367534734776156944529184697193981497860130498146230048198418496928136302930038966703624513006224545451009084944771752597426554680058104644029339287691819590592966826883677561392253606142407315274420115826256138203688350264311022262565203419324538645057997731467396724254964575359531620138558941427851611801850006766492328899538897164228387135253114214688335144794091649838456083092880139006513032109311508234865767505176917365659011821690113812642586912930811749430211197823223064458154309151549379824180929269490122581580267149084996716319035069169578594784336209367278906248423644050317323529437609051021283589693362409130877899201707811222289344234504872383149350150145241963451550917235233432794494256883067510551301816477293166389529031799021764882203312907934208274615122736271908588776145675981512319761529134436740264786767160629549682232823463431968327043890101840946701339289419907835054282214377270355333340924728127716712333794474865690633959804520772911909103555615802469113808479966573174966620567156048597742742319714969998450684315387206425658760318116908413381770663947598833782961185927584526072478210235356235475714524603332606160524513842277215727277649739839565334237463692123652753730882621377713210817409984015753145369254463853118792679604884794910351105820578300810750060545457494805470161324451249716530421804175321212264684535643993148376823887578093875852032680875321352569028914461469832635853474286031247361416276438908898594087402677957237128806902355340479031604084724935231164462572041887865272247474825409530279205808745812263106877871448758653475854347805082250973350936606740762671113727582169730475566743025215011713668634544607770964716561889303656113983704020502512199324496715621876389966057733967532138243131870596932612950704323854747281190046052194370552945910332532191953419846642478580692616797127123422562124056901661969629976642242304022718621204654354797659719813618848527556257733733142434356939150304438266442797408477702066795989650668638291047310060650479858947266278103383707749391188874046241834395905167243416689187380318338561109645675483194911965305476058206952059753737787279969559980811312996954906570451523990646374849033235131317200668631379182506869107164913074441774695742232522649497881753193483386414153861685989064558126251193565245729535066737728364640216545274666394431845974233714431053683250722485063784378248101864620571576321825062136848532255166521371682168326602105489455049877588875941722561170017441669408421391201401762567114059986923406959832336150971827559883387813533012392578576411589511861941280891392310312214352132894465906684410416628909088159498348288616261421337924750676117938901886732957649610301468950094582323493258851853302641282013265210673693596308340060416288783742310071936565137009928431269986007406686521442962959769529562442458120539653907649066025082399862496813398905737187577653222492068464291220817173847536470531189234830864306761762750586486395325392366479006722091516851366061530471528626200245151686655869409262887500512326555854875809928841720322652692408963764695366353988260335023187374552324550534481296632650008199717512038938102593408751235348251135833876385955762332144182185194655402936153657735870806490412481832657068762097341858710971890983903253838964414619002079909153679447297868068739799096685581136976527105306852761780704453384329760291115302535494110656734565796696566342227958125168149449917671641681405859986057429612106871506513492954023533414698888745854916751826905488119989780106813690487546445618781451165656439209614465930093888460450067242692308884765552856281691449351330973263561243741032178597219758323771457577320284543806180465577977228333452100321176702322921764336598655403582057797290582342455811767051687288295245487923641844895287652251288504780876256704580800128124403768740169492133580729273944815097991475771956187958927625304861636685279130818910643891702877598156534125367023420036948765213302726819535661864121520484910102077157520438747845000115226779180806462411203454994099791680698751251371071979706939135926988334647715203196211692853844269822229399696390779570564419150910649642534648005979309285437859868138335627019476673806566168863522569031398683773703876461221498299040683891564907937394647569594346885273104505297128881877344261712253681873853989835057212317291990228892822941309220510722399312847704960445227318014859480490431399326539011567785052474478562056467025417060620740105574003957135307627781411654226289793523479801139061485422660072956337749502599024322050239059436358114171860538820929219616739906182969752193716941761092892880399727314669825355257064199980789194083040373476323419041368296793673266812180324168026867637370399939927249214143167315086206113939067940571586911370830436327828189549001964237794729818838950640329586934822656416997174543972044340916306835536971589544906509692585004966627880481327076220932496975622262995556843822313587809736559255053274116100175259139002138620408192359045336810200918062087430471168715938968964627344160859576201067869232157862565475805924057230642461348461056666720591839910801662847646604493692561632292842598989132062181489781672174292437558768468572977848090098583873426541504823610536662642270986496742069581943737483127158873147438730029306145307178932491515693316720256510605614861383261586322208463133843237816557321357786149649150772658412090818987835346156227878918687448577397914857196534719837576592856961627163163259282312421375627444611593449021938999165789549545050431636039711244789565647209446395645706416438188982254378466730192673595001544067535869756357414373856577991330753707973509501505605363767257454011336523551035992234783634968042139594643226992641392842472180322116178401867078540706756933355671587418020859055989426516029689577351911575345303897096519339188004955832095327977857104845849942454971632696321314377913167531064040774354357458578708047292118965960639840098653359497734563534543168426169220611531549747361007728378723763999118212607389100230294847591595042042587883179336459293892843750348578140150511807807784272712193888556273728501254507808747672511219820227034055479453949350266832476029835864155407528825463674244448879065303852761745578388836806069336106397492588759329003721751962383671436315412420772014479006093450515473264124317040294412634127335418264414286326063935502267555273315542927746306215725643982184898623806332849882994852927789416589724022896383358007876043385586294377964186153641556834667085544148137551405968000805519442912604919511819795655850287960618999041308002410801409425095255007771837078490267428051692561908651657041608096312314296885435302000022098033207827728903835987029224379076393962540937808240912792244650910571142224351210395705217140640877114541848034701253935978159469697729685142325084592060819383586826945714127778856075207421803245158566972162540962553430479112609542356721974261948474304092343592112056887046321275113353965168138290930809544424743185344199620794904741471615695710369069887735746659546332344994176770372819847827539748980084119557543320554382670142771729622531932905949705354774519656657596403912087156610851755764123070285796624366588924119417592272481632648223603280870640323525619455274403882898437276779573090243841714810467786032963881215273447581499535407281505296990789026283159186682628815645597660552743451915670753649441949915728338050874794356361248898380768928646344173802976597654774302996113562759950415214053690995595686707379947370046635978018203920830426133017930626173032563866858951807474547800552444990010520714644572695835563943715687401713440326850247964608901160768993769009877902127923763118854939101151271099217731791043727934787350209719033381443506292811200063574309681996861800402916808148548729329350819815252487865984966786016219960471688643286705925686776536285347349827094455529338847889785894236144131838283736124872609849746033589748075887062998822824674580758241871530762683602008868319501106047525418138896754218700664760965203014221422998660086618104585804631939053322175953905294819157996262365429419922223719131075868499788561749180070387745540935090856976068190272235184933384898947432770039787443190363948126723155319053611742817328859666882869102058018959551181593307745703036213715516034656256538735456669992797109197113285965509237847859361765495135124460933965976216833780767206140320404973034668142334085212044716416703988845353654854676386738017791483806011046712297070009573137425632058615673110094464538233618562299187450495979055742129001133908073125893852911320756090604259144457024322601660331386104602702741275006013762446413788284999858852932861987370836998139427937451776036562201233993748530215883683121826543659646003762578130481308479707733109283293342781595338535892091613539067953812095726363465711541488237297182588178863506712742252568189618236000655724224441636651354204723185521468281249471073857417673790272513696681022578033100692514810201830935501337530379488449609894286768473294006617274146683872541287338646439360183393237017558345219057758369758543015503206654714432023704656802566591834494673881680141921331521305081529001356737390727489305639888982209819520767783612186864706978961495020299627555551761993942506426603737531895486276144582949525906513998191554088984654880813526035613098904092139317668093703810075934875290063521107176832598207727335467206753530672770716542354120230187627452394606860928951388781794069612101655514882032297828415498720836694619437991333151660344160735894537764169415000381671147492427356157723352856979100847208853977709370251325837933893323942552626140653089742299700878129571532771588700216813744883749364634902880911821278119434993697557237554662744503618916798623067537532989155913744170123261450313758288808184067607809027685573811138429407677458899932832108459815149507214908584734701015587283868464320810436273650429983146546459396128593044374052820108500778082724383362789329618466260035342120922509150381405694376171631086284081486095972600826769583299565975703830111850806724899870426493288522234975782217614253180110555924640028500800831472256119194082339755515720314734449396520575719599562102853534110934785495538515572016745410644290159552739575580777968850891474726139432426677391304213545738527627679349614425626744739562394167038672141611446271004860880441301278111969958954199777482545140481869880815754022559304416321093263057913785636604916419621822219335661904249909988019014026514773832836162355521661938981622335915298331940331278197117310618122864552169304495815967203061744146325594755534681201178099870565526660763664057792767542890732159793744511084714254820280355357755333084772294467440878313822263534030872185861667393749806910746809711095615906304001695409930790065784167369299132574465092187785120800809873212773152277379434380470239774011025529888119003271439010760833514557142550582599544174131001200046664272236366504883421342903681012726609649366372529201920809270886043187779779987392207839803207556582168743920952235697896362402579549186988315443255286438154907626242131970196488909209364637756408661012130246993795975639994392350514274583643842849403012520234609743199747183454073230780242620322843139729279001797521274307639109540232191450155758074477229367748824786379241573961127492224518318793293999730978827785083714240159604325720266859506549179636860605887994170806652277502001489953277310441496193088084071449874021022410049380307889967413617524052936900175544607854015838187555914219063238526380792185479622651806033157775484346133297580360484651743948873984767552890735404167610493430886319459199359029237355714308991044595110019215160594671905920154063474253922890007282317192387080959383859553208257290115033269206350171654400468043310010438008591069043193773163054052685899245118949889460825997703653699374688899299287020723533152559941187895334275310690233073148945068332515239461277425580512493850075588686866283769854819426494713708407379410066314038845762579485884353982751757559297707372557110065341693870130254973003089872427818818270562910485773846201093131714980267752734942328398698797510420434489397521753938533186055172732797188256760905505139603375557190541307334249721556392722618656933911787860393499675544863057052331575020778072481587493275567794317635301980921998615866170721892887918587714500885260665248930383295406665921033065900402413579109128647861353490273018718902490482271431143281463226586052309354419817320526231135532182886724211591076414046147869672333742488023892729516864106141521969943538456353520367941398464774830193047146745930469515704863475826789765444706293297483263304307264483901878947414406271058121280479600260429778502522374654625144427343156887049473264709546654437026734290866120532802487138986882808798349439102173699009231024438149587479818768509101113944794171759601496037678406281015898541765019369278195837504307596414237022838578244936867866421040078193485912750347193598314469643480102669187450877376072754156376441193379666163882328827862041739512677356840769065103103729320626192342093582043501071090302150259665714164925295890786175351734955783637901725309257862732391627513267386851794764367654155530787780448158131109679158857800821208629448273239760103324675205832212280510480176891803273981073371827345943229284803674560090952595444024503261272919193290138764374457968225403385339841839197850473684400117869801602488072881577905278266437424299277077784539242245700449957136176247219707542241472262299086221806355252557799512729650400720987974996785381858742051734739097177279119932171296750278216902437495538129222474345758530650267840149230297848852757970510524393282032352780963344896936056961697544358837608620203346465940586455299664726895712057221739739536055406101279363256838952352160018011998050530822656395605375960435766360411398625038360451034629627841606289194646227553535433938823197848073163598330631908740530160225053213317672241598113069032304225754772537711495439807184064726777525224532322593441643798090662247504435798436764287652833002953018920294697113194283276953564116055353643705094450980842612339049179399223813242964588881654783854528501269197476033394822095531181513680122144002522993536643955577323311922123387173472439489129801871697560265761528104003817868561340745575531691709914941870737340540099850007216027812661979454033501157261677893321476321289040475582853474872792397723395673041135635788026150855897641600046897233047073234838779388313785783068103577591314151519653612402428694215367249796117074104427945286723567738937426134247518672936554811124725028790795179163908980208414651039002230974636534628718488669292376038030253843027248355315714447856877864323274105235785799985511523579368800229953132430655179187463420182111984885512012045039647525031768630648086349727051136046655171847726976862772105859739027406667325754499824173078623522502846042579890643385219758752616441579874090106158610694334627687491759485707039944854798782248474548212982605718156507551370978985601098316558903170418208368078991174847646248513713578485853257399702479353229967839946071114621879603274045055201541742647253245102707171149581993053611063604562468639921329623737897393826990826947619423732314917421348243084053391695971390495153250476397383644541301473149274105226902813451964446796244523929418008845148009431632201842605992935321620232798999671472662058572775531888239405238392219047913625090271265518070986344771211814915367294227636835172992462697935080715824897905055776579330785168482762323363771552624388343613149549609808999489209101116683455704951204159394640638835451437155278945559519068486776756697700464700740858006588753376024222375096084959533958202422941715040865928517228997121319706680796195613789142219649356295564040439313353648544480852938883039985707305412377208113408785631362512159266937418266337465242622361401909586674275872075823921327621390336547670290934799582519311659794957201169711311724697155313201601189545424643125090787493934765415484649803381327187807249077074760671376935748474299684843927587815954216762287090367856791216265280038110574969435327154230368634764825668012409927305683379262217374444997485473460577252646458797800746801582048009436700945089376577188336264145813265550885391831417408529312466040392800890638178811792241433055344594227124657251252998254914363036586025084672188529806939613544585892435167374326843484052962218570806138496681419128073715680875400315051631046705638473593682547943979887800098074189574149456973824408957448660213613659779979804678410430707695395131801829630641296307035947202327422506636484858134045826962501943145409840785325161935378452350774755482080517804481332452085509552571508335533066088441073912351137387552247486863282144014289982327017239227937354005168970211198781923281526798146762718496978971054023263530395937649472273767856576735274291009816346721674324210776050294402258376382315072103643233983243648084809674516729866088598677917041867561219720144812943933543614988849902637109441143803957041012112462867847510122009671326397903902991002471597130126589475914767589377516372980798599170076236248516260003356887137007256064391639246916422851148868792066272080109395659059790684281673236340286080679330324138589918616923816922786103919276910394140958043581559438890396070308907001641760546267133914168500932380294249804848996629675569312529009595908647314733978493763021757730521704045329877491332351701905172573956968289781332242789216380562918772769769807512148775814776549128750334994461557452690392948550850827787591174273330020792205520156283937804022107378593549075776028819595782539198390383312564464097974852475462872209736633878712494533223976042136591299532445398343568936656357019134813642540022966298203467554228912933763117442789519058710819399179462060619753285332180366357459655887009456977427209285348443995446263683040290964887678287882495679325664763535953591299834391700182191428902833443057356091330891534488378688709342769749353133248996021489514731862555103554699450338226799714762763153779505602143117937954610388288411288546015941232026990751936333862273838387530732320409375176159600894402690283697278920345383398165805773795971151888092315229687575219626639801411176696616826217331157090869142189915619996783935256236995348154655105420248368301051376187410973429115344846064285530159152722245149249423652963613686610040634316700588831449477156503690011030996263953805483115333928226984843690575927413638912475199161580278785078688376095591630087622987141508512425611024600695352261602910048306570343974762611853507320622193118490872277930986393306032282395345222058327398917122378663138924609802127554629945861747292997367591175422249797279157781729861448939871023458198210229637644852259729860046838236388929235048419613015418352043605207525710304191208374459135556214301100090875057704778199218801173189204209075410698275887280592700300294351516200822952072016560544085812062209245857608698345041170236450815264247731181273447034191508814863370995876137809885563585582849251392981727661095196068604769815947253430076845077993959795266940140077158177994280816013728233040885374898806633518193317434644340649966887926039899054030314052185681278171248312367032558077157872126377512255155047858808150876668264681122721296170019627876884837204430832803417994698295653637715385271655386699269496043788613096161024183479854974778306399126263816662325358304896552094824466784165875753364446229917122688031529628275227889115122684659605130358530754546070869505776680460583395967969030784588695603870528463022119500561091718390764403277267896948461461739030775277422996819245539548974147149959055521517536446909871062267833216742614427170958378652421585528103397088682536844410425272078381127040569906732565083591810548190660170919493036644454870445930172622208309724608400303658824955824306051820180053212374743335488643321634017523569290464401867927076716201280233837288772249135144580998138054960722768086534522249076585273612634390598311176124858292187714662149716995579498005100113276841003278674379037582327361092651130647891134536992537847056705807369595241185034352266832833438936508204972153790417951501144472344681256820743043666261465044676308210799079168619174746319754709765169012266741358045624734455793139975178160036225209168314260652733518368922636745367150895704311599730641017768880220464750819530885452718848074066267975666472230859076296125080707155269455681235599416391471423667363983766749700029646748043475955628858315331037185218681956290157165804962316739436587246492040377545211734853722960684057386259940431028958372388153855678444995036644839702552739337749171772590347697572286429500128379509739923293854298479529866967090640291130155636088166962959340834062285927474340449172589405499013426852404209632040796677168198870606036376819706374323123079204344448685917404318759403460002271800938140229775166270822258749390587026794762467933050592321679701106952455620324521542881528912999373538398537634694887401494200273543155352783052233456853845879124403302291042503754761374782476507415093827773779413662266923010168346047533845375798279823232902423714898612624515710649201567433299641786158496440342908804281265688586369704209627597387758173812121682166733996625510168976081292167872037276987731479914807889050376973057151027812552016125614532916226213380200607647716303302842984404222675054147056309978598701844761213546457559491569631240351341140866288104485654520108519144819565548040025618807078115404018970599802039095450765664340433762952552378185402255611733967300533288860327768209226337153192307470868224913639866585914814912096086376614869257715845091524306185732023514320716879614231590461317866185602817203947567188505121896129169345922555900100096844890288451605924701070917742072628611547414672490904784777968085791959017839948967714632248266694372478281667093139663678002826115378418137865812213285539914673708634780014328588569076826335720262695812238313289079315737560448684499880665848999261893263189850319866366857105270853695965795983883772886073631954384303715994798059149286359426704767811136081584913356081384752086971024237575349134904910436385804635600670395821869373521202732107631117033397129780216671955963308211655613724366813950807721073928171755724844440077088997916120601317795647954707118842794307794798674018710617398247695566791923388979366139084557227070883869313078113524059840780212792052723159217859442990008585013368743415574675212041072676586382113141397359200949426662326246741159321907203330067578824890771866037211130945247602453932326873779786353759805452410420871378796001567939923721769730379579879344361432223551961774394982084896614600421989966009821284184965188386269497118353558303964865565175701905648820894914591792560941241754634285616567084171484368319935337280963945289338641791467434790670766385984781284456399406064665106871368642426680483648414703887221119326739171346137433549169202104504032443809087534678331339593567673779823277955323196075701327610306417833695179249970945686333278701540764728338027817918322270400200944701461017846266516772797787755673903156784589830045000262999950300037844377099879943381535449557439148526768042368397886930749313360607302841336746693728997660748639405177748406922069701200579368997907041444387660311489275311930135859419611334107157198691937220344839973937806502812283824245052578720136619124217979502080425036586117273603719538949954564134564455263130582033583975763046432460415254581720946982802356324364017149486216597664952385606511314018096639479126279101769458083032229223541247634060889059184149084212500580463318685782777818854469736217648510535320127862201423668271548880203999246778864772497497971166097419865168618268283332689287068017617954376888590751773946927167975150713779548169906523855297010803903384717953125851819282039213032678148067964986851945577502439231408476279312705743097083495249388428300765717791679428085257178318831522037507422949008462750888982394097980560912750502843993240809369604352785946365577480737889131546380924957767650142737855344170774719156994489947057362296183716187769183965865476294481048395709334297724659639457639165424807676653366740527506767076765988220299812248069605332898725998493463980927939289222787981730334209468893596860521458216294063818874945228915938434298503200460525424728178137264258804480418937730359355085489881399735260242208399818461539671183698076705547050350898833385432138895875366433878304963959911783354855071382750862309367661347549499046614108496031611368399181445185587857202826346453407934250158951239194496459667805106072194415252785314903007566896555137590640467657905962145386282624384935131546372567117488916974623710204047888665833156596704350157245283560241362552332067689004396507587487857834172868642504010957610883341962698457623805138120237088904595643554121038077221901153137510016443900369967895476335217928711913569088905031598428923080399383659293383133347455864703038250819685042678593637513128863230781100992020659117999401845328718524630417875467372290853954591124382197082132295410859243053559323886536064379084021753432060932183855999237923319507250398914494188389369983834586698236673136018052240772880503995478739321837627241048854485186794747774808736990064478288811345013911921303693780436819976842369495722356402001191479923826641970837795274868403223460481349863713665222453979301512777272234596754689884970472598454182937932254134777119349712328604051693912025225312852648879515996984964260361514823610689926061930841102740549292565024920180582896827959014448192084813994938862156722225969494856166479133185379098191910580696349642049680234917808217406931427144061120645339135442436252323426552703061974886165105468326826306315597123396569604888828134604532869878785953942129944637832680140991405654876357485474186979598128238469086142145683857230829565128620713886823425507338646838702875562407462934676214790377692664013334675361786805229287137706813742776511927914753818413743189363256189842595016866342490164540823501833059947737841387522635540520885364358551985534927098866697937089124379694153898392881679268437325260131092136683756829952350576307937583764541751843209737649344768348992883443827107222274748820221541102935442279218552460443240534783032995607994814529571145355872565578731290627559716047584904777874294786223223249291057462267556875429568656008464820732842124948983188701019041872765243720886411948851940946928851803018485153468792752942918819054292208575401619572053328961371872811504410191134640960203311186818771183195357761079792371877167900087672751712380208097913570427741497360922683114356057662131957104800075674194969557439479549695379009399999084043422502514034853757809838742716807065461494517669747009002009830591546529979206527502791959298574783031904087725438752492393528280834991930887981342069363899859464652618956789332418199528337088224559043530115469246870191768137879156126852694885765646971356731585604387037069044331095778692217550753196297147979479667472436088307027450736551019630994699513598724358848676385869974929449665937473255088678662572299253501211296017568690677323895601150662152116886939148801669043700881283257184072345072850511093099215973287723384199978941215031680702704275197213061205966696921420717934771176111812082871582123871679479814608632472779479199807433422608129586316529632483556810549158867967485731885952786050442704465938970739096805284029850629830866239801404501783301658787650415255488492375457820370216862714899648865693322442210344077012215889247870415136650030963859423052861899181151940494323524376526815242761415450826746370284022162430121232252238290707784875966010684886605732729816544574715811585847537025116063213927180081851617034024955558897749986729550417749724110487085973072552796450720525333171581941150740310960312053664813231075890356681353907133405551049412635056512750743875916409536760903119147550953672155854923114309233069354328309001180363322794802532660168079922114186004227654850978145429352791513413098253568575424757486876612684245990398889491073630262568066952527754194382078968630504641847721592909363127577082123382009335769961054001444215702293228390203245451211508314190948268378869009857197533106597784557119698385402589640912975820232380967431406554107177976214820660060372328775092344809710411503007243603783831575687376335817546534999360758616559346863385775413222127983976812257556263750310838195993955399284859583735806722404447163518015382419136826416561001117741455475323843796717832567916384762296400842988919302162767127616966258260587297733822296396785558399546391163017932517243268497600635569247857625034943250288298601607824214493840278057589679283053414581399363411790534893796178447833467057022068112809562057191150886416167252606463529923699628111450445210529100744170689393057338749813837270609780558875246562060217030170233112818329122304747412801966508316842116239962088859919085941998658825262107603469936527255781891647102744458439494561159692282276966082715723961599090062066062336772882896245166154451251629793826798178975442414123538284074509459888328273774233459292457628289618849986496469845491528255594978427192480842987545365726143239198345111683630621396572539320202283622389877109972169971215950741211166957823676766201959774987157782465153410484535729394201861521823577206760283040958789475806667495098952687680409064461472092196515431462513775654934743341544648787553648847792346993944370321721956183544848100395159347584598199681263435474827562400553788435820866781515515185287090555350193476229271516703254334633315343727646506836439409623560287277800479359959817041187155135822056836268224350506603924653584451981695852847441402827323400576519329214432813667031127185641912322041487809351099839257076310900395190105064417786448001012728400175082103146742824595718576232447308806037146774440844916904464795766778827794512442934063309142467386289968890361842033265896190782651299149876294414967478179189614154080228606043046539952139802625604351909281215285262219535594467077255029127145091262242225811656270721930431531042142297463953953833253988806897893023429783147853708309912304286687532079662790366063108048113088580500060374421687029684551491570566411325851632723288678650448711262235062924142444359896100687828768475490502162390613911016534311392611708902366792999100657988185318232694187034912142573019152134721084207945169224616494975961381229071302489391665960181943317018334347763518132462782018863765219255263152870099983082628818147956598143014211684229992524074255372356155005102519074843197534535996577919162435706133028075340050519519629572668987695154183379212918056166283370993782557094335312217534646093465534933932909944313149516655208604965455048396696657084766820737410978140704641121354216022562984775698171882441805702120584099636688865340011581330441545765561359147436155933314257544939463414472142911469433998561180503191452379615377054951007770122557269165251123345583133971266343990434716987944452588228420288490641904408950063020091874765262657785035839459875859481449858436892479118913097760651810360395025767517721821673636077170616053613463093796052683077101901181007090099937839591249498909817732227470542932727717629420598627683710911237010713038314414782716805428557685992069746529003238092842479892052800412943575519067168135284303740746999432664156207169477008469256124482760266773303249678118984648390700326158079837302142846117142093495008762308887166831350497809596544627856109067824871109035277135030772382486903024407680183650972131304757068996304964849048382783843182664189222402831421907167335459638413777695086359135552173050700385866630248067338745438413959002755699079210696946971465396481632317814769256151511623125477993141668401165230630059614227025431908288388902835903692357388254368850391151680965410425855487651650553111301060973368535315218019731623497633223368315981063974431922856181647872375172579968536068939707223630765020802867199317407717366794907591531961542174042346620542687740196239863309121278038701005321460795645408803128421440972122529111655684075622078267223957109054053345710248973509806078810791856308983291501279194068137328744175782426778829584400142664560921540042534827676135529673977653019107397128740391755896900800052460338008981996405333720005103226230720087892858747687291586102134285590277972022602964185072078870883697472857167470334038322105788833455922797202759124740529794402895652003333919448727756212033165644798564452485273787848909299884031856047913071780148998101617263975132255835421555376895401255674207107798972079911702072553981642337176566915902047207515136296059198173316347758462546918890702877731740527482432806306023792877560785274591690472328011583213150370488063739736213794622632267443786409171840139888747787302610226109824928695753781848686024096918340610267874623283837234252332119169379085945502139876683331842205227922759811290537285766397021868418420787521785934663006016117968351974059251226804137904137436348512347676832297275170967032580116249413474930998552808755123274511520113031452323595772951855963442794885924396755041069316393975365304948500149898740984202908687281048712192491620907268440842353435458518179383447566772087129339339875697969302744068625030415051943196070532963710350435152588154299147507542962218113474839725236415740936277201882392234769633812514493990550723764086256090814876213093496841160426100843151840815712828265408728200770445580569185530643287867186893892890889264323348866719411938418304431493377597457800305623264385802653655108295051179968324229449571639455322373723459421087574187258275367165754558737904889678829729901401591369353953193970107937511413828623701975926081821749286595541080824140982752819203809785436860428386879225105735070666879704603761195484657936324995502568767472021085564147198366373257311453668486597668116011865633402794803546475391707848824818119256873351413710804754644526705771337341471247482601901938700583019629345031244058588864417735078999532220453202137876799176631433504265986037205049757590212086590830826958790790387721273733353530679138309182966293454419755757889351024265538213429024960098233817595689795598845803904693228258258411245164026293779294287724266645859072129057159068356538131930159433358457071873784247313219303708172956412690942498324684649020015920141494509124322629289405268923825382082609015250928192837012823346192142531729747685089663405677404581908266662550414190110800982076828673534430274512179025981489576307657286808351608407135624363308317669890513777901959237841476603099844282300901905040992558501163820861643689960724891795871337246597229366441177512612790690901723151471770823791786339824416270044927820737173464651361206184965572692143740022348012171152935847676024135244972749262826187588537734298212350886220942282032156996388917510381814829294554804085960347179681660493986539863980459331973733244205358155224419375713159574622820508405034073775974811616216949069330862982117053261632069226315617899005694118324066126855826927937633402116220133700068436927139506296554274593893670409562053703085408605019164323908244172315477126203399260972436800598159280406490046321491088424300669949109656503208879248011530901725935554188336518262144242824009835812783985294308547169296321999105244182863706619906955110165011203072877190873894269269153283946458187369954423238752741661571728606249787569519500126283682766648765092246832121182173536929472636053766626137835673528876979748410337710731354704347194648890880833384757798749484643048783848303286907918416841924787586417884528133705126782014125749189949110356958585048904036995666708148029172995397608172169516886087583293682374425135735976560792674578153740701355774651803179515957899156172633842755001776894250213506710293790678222080191380585245730682207674836966407295744032089727786847495358153365129553820817957575640459253143564418484378805652578133539401474378157210906975693026679746366130497128843898538681794667454919212933541005923890442632022074045933955843134291930902863881870096993179566682907306727966968905504690857038400557020111440443678384306179332068142920767243361072369014529257783591630301513313452995393559839513597746019399431956979106319733829008604224583876967993709940661847967315779432598617398321918108511328615816782728256385823723939554317216490253757552780771458245045683209806590149208225539528349204556017396132624302090147438001179546934463077793298804171923223641447647970586059602778620623855695479832126897453578250760057269843989987558083030302821782495107896951994521047798553893063854492790500752056585400460421893450839308854779499545094870119441450001233989270524132313242615981852642454430594508285904768172585002091937543081310882542817933229035260573913136018869260531505846494707885033786770024786665935458116488780523865951597828444843660232666223235666614281020066335156345587678553818039982622483479167245670492713703379395346200206644709635607029262340228079758853125277269152877296521846622094075082233263503570409124887590872157568926491073543438559240737829042381101558662944915353646008347512697297094755084967516807482716998728089959114203976836370462790329636587577483010485403090974332311706810881324922932250684764209236887614164516339522642799250520184634996547363328363802928480601994361280547815876805408365040585729321437128381057206430628242175118045258942089829916009270465039337251220552317938611499509876316465070055398056013375708133098088605977216742743396150549429042113486057336690886514779836410253642969796326234886269439011132101479971827162988234532884820197579023439363491622844404313521344220266368762848606747014661754889322332600870842053044021821971861411194911768538137019208528812163399769044947118001434055604466759012674176028505785507779231958589839557025725113688553618734418861376428156901109429097755106491893298459950225433401953497629495928075849902046410430361804805528465989667258123540979502306902177369119305526695730533045210280575399157125246273454922751098527543608096454426683390947903924651799097258051335289280380191706056004644202934644839637157617959976403899938151506891165676058410210410947221373509236575455640642617532341896847005202701987213645330763387651371434143928185305810786402433070209634115945421556797929652735616433336374897342820451837993095568989076073246213071415575122579120835534429951784657897371983199427057622949578975301614862512133797834280931811201698020661973167982676927675445764357970472962151314940242291804629461065215815045689395955859580520500893242828431547517564727338622533910273632823568092274663904832240237064997082020159960175854331419938345816780737212398821642595928527084135494237279588928947792280878375871541969917514062580315891054432459183988504100118425938963585626673748718564301084215252289961036716616073178058185367425530168853619219385738612998854574724150786131448932578524146196610406362185130294624061767242538509940576134549323190420023436988994074839722711840832056422734413062173973033423359286849398136388968730087581979633876596699223676777702537905916981935844606372813195890181607154052796763711251478982569295144996371501642407702808960248141219247977155245324519657877926633051824580407349345722685649455619128862517180463966464433347914919711441991545005858528677243036309148666737214228467821227306028870428687661402645497646902816170452433819033370464582947221089638305941179308642442872565960973902999443797666090397086103531061194423943633143145184060747063454695272630800300218226888185191902503852095418859785459938056357692139629586629239611834559432455753013802270838748893064224204709252451619226965954125381421191625412207210612730400427441907130792953668195666708527349682018663149018336692051344199648522858397453092334258603924093445533985320085465173631054300060209028702406065499415329451467520467396780192689986923985154643353556188443980258567821368441825505208782939966808647081534989822437028192353815778285559757483407176804170661050421991660599978409477024758857990747302437955814223728376798766387533636181472743347906381163590371153934888511092458803125169532072945082252575019024083719401585739851104690757516727033496211025646638611562937485064404768343826553812609115027549993749980145126612143789152815285449020671124485227723783928796847126076686157260697869378870414354247181740530353521368250856388248476343396837659921413943110093740499300866233598406368446493710465279733369761456447351596031440099434672059237578912534211630072797060106004147776018710201394368376269632387593156065443212744483902463278631372178783747239133637270101333641904312930584004063716780316650486038546697648311374160718065901693237896781766223163536880695343106707730400606005368984468596528387972969634129608971112623681982942755970828038238893510777258016735948080026187792254656782060299683805569018773062426316224035144285558300024513285804005725134593555095163420882740022922112243721625345430479788874648039662142755788035674783843185884280264511124766209417351293512889477685875129944870409070639807229312543919086972500196942685697477077076187790196510644515784640203628090632539591172221883388439437553233992340682674337063606568105708864550176338702905356051770989389301297439978382876790419359416142959800184040812433392243344259480401431010263265374954108357675078434217269103719327803958051396955592278164606862362519750595474337556362196588838289208863596429999037241714143785129415138608475730630157949507828404034947361326799997101929644213486119810036430715266558987767733756750587723790692647844789295629662086396572559749227973863209930300651386380792027468097436207354416427687571107678759566779581823385239018040938030070362296834029059231185681571092306734979012321544515828356945190807311572819838036952289091896168964002204421171618737513445350053979780830857482748020942964460248096980318798240815314068498815762646261026012766922821076571902020909984460545782198875529775779280543762636420745822610596873217970008612386187349311585232717375959803679364412162208525315509586591162211091538695403536388500721590658700483443385075375643484951372710231325063588511234725878533437501036915220926192799443014634464559536840890935894275503969846716935728000762053703272232037610240628897689638769493856454408645854177910221511612913446290299429561997674532295206433319724944890834830372425756870748155778563982302698100069320221135925170481012619459062281210982713524071993852029313707042690757947825927558347793496762423331098337683346065860943950891049981294008927416813332928273736248432625379088072767934019692376366117184416336523164364836552055380538567580432070753423383459276799341963786986861592957796637181057498958865912684609726552998802875947392641940456382185968240049205445139160941833832182799008109747414860566886835555359635685967127854680339451365400023732505299753529206048256356662266492194785843786678685947736258093204681140291554757383568086462595069535719510557537436239098341193243409661004253935935117930272477977810414932285522403691981536721210847170793405158329187459743884430418400412474786093868892486865893683184650459144698754687929736115283977169662027858749563443896303095631520383274236829049957052877859497324422935866717889272506402281342121963692876110163297532855268173320113987643750801034129933932353570245037467306293848790665552209053395209014490278693414090221029046525956607478579977505797402759153543289887853284322873505974310832603234440046689838582283539319999274009120292143043532161127309457122485065464888412077605695838760514701609889141251676418824090983714864969082675813665526092758897613756553052015790983217267120108807593018165003209977373633663869817054185991256734241593373069586893615172500461494118450471283428634334829489539006599824918110688954331859168559631073452258587990830724033765040198088403275254074380502157668275886522265035090165806833579119724863224257157123230641538341906168905498408502687249321067849985324226631940718811442586592402724772797462370582382764324010860667380635482380070348488923932224269690910481049909621975072319303745370916150712230654413768899239736165142355703151238886877675003040368564044476925175577225054987096490342901161226916356204102077090740251505805705850750940180319059290756582588995802475641860313418199369552675411042240571785335328429004855325255811068171310291472821948946415285460130044724331284808216747052698980519003338207691376834811102352033005533491150281368507793070421730964801304296622728650540686553246343695996457057223860136370672689672409740942127157552038880983370056024798648736448750525035733230045069425737046052296765597403140987310278363186203909135168613087023033364521479000079442976755907121065213965425459396408722909348166631373285149474275016949304953164870290446420487890319760141715135255468626467599357576700400554398180511486741929298959977312467786376284340063947630501075383724610406431505287644986616609708627919177170369492307107209551340040668044449230669590805656764534448733664583128834826409835618270104114357800205039506734560494819245072277340778690527997615326041305410359949103926342214219694600324998121983484297113205177456728015143877718493393512351749012298962384107177749000656952103345074441683245178059905957638704908449757969984360277632481262268390926686002633108492236206503470579934293368312385428636335902395129288561663754090803110854683013938661623782992964192935927173015234014429890336668258735117790743816046565698709833695963762971656347855170902934102342905871730920041468185578542271975032401400632870142641068043109343223365231504481206349532863740439177289941853693104272836785705113059417612011932050577553906287861371792940771656690309427636990715504400870750721795881378001140767459118572644379366307315220274160303272751810433407935539878904243936592949404930712290775989290257787938980835703210488065991609346744158444452577623353920879014085548240628465906068361377363270680606591801537740568126155567744063954542611221389011093649900041626742317930206092178107439071097111693457167589185327687215019982096080457278904766391269266611493829855441157824171308597818526799340889906130719637642668811337256605428229819517340833940080398300640888799722395541376906540067631043695072830565837443726774295211578265304128489827898433181888031064135808612284280223744287575497948380216601574824594979683551048150658076504135531585330206972456587680488227495031424844640376893647617638009484497636349005914763478104116444533289745932483570020554633950603765212618739316470526497849716513965009421075623097768599545601627141656246821409396031405742376949744691569055881507197067884901256285791816880258972897999742988331832109703279208061360960523032734843191860091502500326348328674743993326286305842194050796188210669346996650428054085946303544743431221035210585045300422284201777145572437238194443094430236818394675937765432245326672579593643575597605155537458245006802672369134875693390162080365820278157335174321773096338888893229952728847428693341994776082048111720910039592592696827757208207463023457417324182371911159197390310140158431263945186948197680775028378598670155976029944190462937341839716282340180477590517573706545285918581483053270804576887201441239787485369909021829359483437582006226674735231978356641416139232723084955424570640656725441549977884257492112506496157634730488880484363462217174261374676638040872262108172092659076221757857028087783553003925293906537820829863629156285996447876181117988868656861588622340450402314690553366927226356044195433562910573674013123561987330955179175438322041836910396913107866967288076266181131506543199987228613497455656177341110134219146494470005401989548429413208818930131583501373072767048433195967395173949411728355440033051933678339682604699693842156817582604916803523904680422221450642159233579766988241612545733044700790054790534920716758179211938611059925994251246428030160779606722945074824036269327018625624307727708244676476657107144378589401963862881554343715121159620689928809744956090691185693555364406150410099154441150588843034172301110233894096142666201728597824364437328997211530528083649815147462889327687524279649716558940723678995920363625966554573139707789399947777853885320186029392128738045960503236169588079274279390161606037224191681717488300350399567767211444857430617307957747483281920862720919104335031793064773108735074132992066559755275058057767421204644645335621099673105155363668452124339561538329607672095691612025521812291516776707953646815519932752466517667590060010775225928903035248421562507687912581863075473684191989526262276901296164026498574226049901930116552015522205049711556140198216695173461866907419782027550443403346244781660189957341743712810982938074782096937058104484628830866653496583358468428661065317936219670503086136859933325072698568185513660472826426088930259322162427719988724548032239940723004164098293458337981802119623861375035880425279535829591569981300392381643250177141140828621250873646230239396839659468925433072234493724792689107900996713486147582524321631934037990256708839171431202732607251933334178396228475934704442098631704462985438359364532075453585835383934388162391794262775768610825869620558289139198787274620925931039181623966401123671314023989645346323558897081893246041426704394262812250396201135967883422770903524386943164126744324678113145713922789419526873821277450885253827387326395245435019210124178681965912502997590905140533661171748050526172961728476043254119027889192329742754450700609313803543881665788428464084311036872145312876000365937915986749629648262761855935293278816136731207469149958857791333059115451064038746388405352036390996580286569128999135286266686084402431218974848369277163273950030053540862583854761899803504517189219380628268207195768555265678150602723145978047123831868543957517114815413852005270764964981770574179522027791482026660091723297357444909911283809121630921578548318208998987218254166143573860816231060624324002284272557614095928640322500918575233540252094844708681445996150770382593009935562199105244733687530150623116125607217584206127373205331510953199644608297700965373245304851126271403254735452984577259523395829545700193742141678022863575469326109013584365408599387401556555976282960219080693433619830136678018840716628004328384584335620387008847551217759218622645091710829545635057331146730296006185714209650139563301552390459905181439674912953818727524941681611776067709486401660015660406968559068292580037240798285983432232171442427582991579918036744574274729471557009182790650094447987650171101659402727238680078841891482524313243316126951537864352762806895456056290541056874623782637924897840877403739604650086238380517399876311609535277981714501749923244135636951315321600197444558137412397059490794916763807467127526368024609849390340982838957076171140934814623932619974758791318853971404788407744097078744343737868950446136047948546285199324302306990517513389138774881351925296957367183277031042963147922223534045805795881102335635892629214339641849218540062737462483823405771897690499240888210036884207337707175682870845887535815733133452205567819815643113183902490143688793652330122676576158073876898975773879842899556760051032281420571800585110575015607944180194521115735566230081141766235971205729486714156591036040674698674087945937496934199461430656743529318582649577613379482175216081187376337923499184593813578088393653069344203029663157018023462229017264046784585943376926146197686702252745403971525468733415460904605696228649794354849153595430505486850693679547997710589782210478604557694901899312323161772088251244983126499804523672326725257363042484078679921249438015733718634550773598990007589656898605125421279666841691732436742796977525983638233022552931107553317346132276931609814967408441249176346821786109590253260768376982425467032371835951357497968042660021776565044221001606806062459867959077136649374471872242692389212390566703988778441009575759131454640764611706372538299847615100538682146437684240535410385914347355964077189324256861882073109452169417137375233305795278316878339347710076337105013109000692481286478408114101303661115338753767059544495631909626890357095064202941184076171219560384551991684840415065858026924262166288674343647833620304552570073080972415914299792907158632706414607379081566374357140387298604445878619901628319098691031074290667454177668177300396433596934519103055297847414579559783410655516463167998684087849864134805527135804572359115617964351527588201328320565671816222255960272751949287332096198066314342036761455816720846639485441279888676195050145243742336428689534088466914646940119587082825565342100941780999310175355670359958839645221649571385177101216280723879314150401816268801326770606864889138890203261834094723881037012873227158534009488561187092386891693276126747732039737262037010132884500965657502571598801068490566781533451727041959117205004003083429437776857284633542627191696502856554680068610063392542607085178725431782098267011963422059690780651723015519751777092947725907550151459157930777466143269851515108715998240526652774205034278750324078270354369393275779295624724345029895631154064593994278632833070303723752208939366948639166651145150761934548696997379176086131165496177880758435560536526663504049850855777288049692973763397130663978796597733687796521902146691937987228777435586729088151957875879562724665109618207841150432796729607898814910626912885599604880564629815515822606937798602997756669025797378919789064545051338843659947206724234951379075130401245096848309020127291802478097560097080126991027554915970470940352605978207554176910219722365733504940861608728660233745517961561525565975472403520293374222886102017487395765686556422307907797530014733177088854154257918072634757278755647193572134910532869934815640690440127499964123537040540193259429822593622742428342336059532898765510587890860102665668808786472057277901158778437609863253589663045805702939256274628087302640576369772028662330769065222693982472611839928983919236345073404283234056648506672398260412163611994455453730581646015870446061721174580958188679944539635045194880994459825466941558414964436949781782133840290334062550442829225558358155472078900040801983027857934294884683071546768379383957106336310140643888129425177922351895952164951458229543782512803195214469978504553469040184311116672104903969893255458034372664073859933849559871642399723200798768184949055530648529516743808381067007833252320304536630222369059115674460706050966473815345240289861707116271469686078489373134544064734708574324034679769898337412019564639947292471548541462882634903041050450734477428768152785101015269427159652900230911766810981515112607908079877475922220358783508975907601347751207415182129172050506646875560145143613734387024895199903957559970280471087463725603346935649309639291210708210923966648703178624655639793764755429167467648905539302211160386029846933452414100626625704802279824407714204095233319259943606495702821689878222150087458806867809000313048977154498461815055461313214767718420014575335102152523370026669913368095068648814708350484621578315395846920929749223984828331117234022392156539941761124472112204970095596572765252828204738258472568016107192522575864055129160712958192579493938882479078249044341287832581478031198409337796450608998480631389867494798952697350218819419831257713332910492577756920195962381711913229997741845153979436212211365734503846644805615283610328361698784671926163368132520475941276450238738415050147654159515741653466932602467794793660570323858742299937010137452115772475124612077825526650869550137907936823853472619780038139002499622217887377856287264296510830056860425765591764187110911832543800101038786675046969357096107761245845595577463801376908251665284095105209106405417951907452728587888869966088937151088131043656879192105432843276719698840358632538079111930642336839291935699772671171135739910790207923627426767385201223448701704339395054553308122609644243498552371897031358579690895852945489697309928987364557036094609175802655657061855753354812018784612953982279189936887352240484526902163572904037356151477116117836812106611920057171234285195658068846300688561416230222782908158407473507988662376095053372564843957245942868553179812427385619727063447745790916886492351985590858451135064811753875738496564844362148914526897333719306263903365147173689432798256098641371728421626758766231655554638821209673543609224006128981820707988212588505301650450690179492114333665241344353950044176850246151795393254452216922685215089424846222980298330537713883226871924859357118661918616427328734341561182871917231024164502113232143715261850766722397307299819747840513952443004729125128714540958494620921101999188008002301357267155012500058695894980176919246521975297787421827791187540533677228088160926833213306982309802674123392016330019904053127254989441382773017507113384939976407178222779979894431965008951830676841214542318107166771565625913578203220088874757996397902714956793866480808576888086724562429665289697796156520542197666457545875433953255107882452183628195336657314201587377634517458688719710760061990825612372754928904882382900587491533878839736881876332048115688745664647073289681354830317699195324001758217695138128404183086038240782551082392517608817425686187439473575756337491896210971617290520741957473082175624007512859341474102474835976171571877441816761467475912021668592679879086787276550853414716111697480074486107975441494941810033208194939137027736182981974371397133264854837799738816757722594765324984488520176919866671481904699899063444786040654005642307925379265694224486578347698540324185981877212365760407119428446091620861028076094213849138215118291932070152749724373502185055765985141977988914478795380911315713426912282537971732056774399390666450888199464542663345363730268919662918948278666518701410898097500745030847629310104462571250682857284235365008741419639916538684062964223356865566936792221342825524475278756087315889703206014636782338428606827736354871180003766792622529196098912101367227986749228696306191152842076457934010525326773220307350549097515014170639078298751036733471476615431569915468782335565966069310010987614680288323335340501409980875729835839701127970488163841650754673062353155016392552903571795668539216187505987717153927587109198581458021016385933852271600512909481196841253376796634271148161662428740705164498297516111736932203493013684869656952962775974159459547413452513013464624519563390977890379546725695659548942854325970315080899704781724521893950220941868085828108574686267772380534604954673217571373249880781809030711245051263991207315679230260626809214927449841417441454319617800246975410233791125440716171709808411470177528392944923702847245627424859169718486402215915836202471789253283324260929745236329724101245944287914553645252658397773398205978784467934142058548622121708544397056214549986401442501717283756978033881651635955275055403840625613069282477727735217156042382772758164361779093728749384096932668078047009395081659408330182952733493755773443203440654085381226075083171346731511019139755345253398761232347232945921352983143274617319277695504371912204522239589678989658634282402307370244421282093049815792852053962530853259619100366343532412192372789100243377297099611962967428340955206427277816160390908559714471052191792669839637169546032629433338184204394703517095698127765896434101107134576840862191573246554045123977994758133479210238189752040590311062291131915082222156680288785878980240228103475861256705167726597686992209842107444974299748255886720535484970863083753255236046706948261829778770798563591816576807668969842912863875931222054238312189459449904901877767878135959329640572918635683870489951979781231057554466086819467952950633749536712729762866529027165505770828727194887757777155125328746731331669252662791536376496454091823175743684481386861417981478085537164290009170093750274028002939426765446773723055352162528144552165143449518913540051302753221464613446333231064223482047899112329995411562236821561710038346981931530619374477994839773617671543565496495460771905395705598503325788094771497281111552248963348110048903558570465280115211967336809727418601617467629236982329573753068432201410884697668412949897753544218385382029462714184465024150937248565201011658004440765407048941321616329879775667926756795449081704656993029362058291771862683149221325909729023127381935973411832739033267848060188090406717145316977452486118210599867662185839967551145470958612212194398670839425388854800730719655991994976579355071136915936090422505492748054406240693542247076135150886812897436761381056624572932059626753139242894363256181037622998588932935107899990005575165931779597122551165274350701871610115517944783010046467888408612195609580802861043654288049967866311276388032715091057438050100002854876990779735095272347207377023779456130654264991477434714955337749053646725415698133000831544251238438421375800434795290037214920741245757758929761303806446271366700153843203866800058353178973712030066636701673715212852017765472461685571420456517519723211783243353409688975903857507928858541591812292562480514569040793340127954160074391837531589389988260212242341583439361771900101478449915383959633679765487584371880745161024725431906266089200057930642252078971023580621946359954640725314915859682148264881922127453438903577502363289563021170794332770689358118972701601656708283658515970390698037694618351784251513418845546185803609510488277070313904954668065866680538258998273823060326104773329492961197759463053973736624010040273497469110742604717187923022345707527920098908448094965814276108050645206705388044483040193982506354342885322877124139850629479858853070380108835429619095479980005102954560418819632633876617740198908067186301379806637392666447751346008997980065591698517057554732630324537847694276974331728940571814144133915830002901279626487520355983778990249569500723746216158138077667265662450104277361940597541591691633929460608931537216297626375086959040162614151579616335418702538851470170831878886019687201657593390493413111056990989271140994661746345863077762815943342042926455847360107295881786419101625452769553913505068335548671454646413424975511249411327495544412524531435627368727868282826669782133773794072882611575530875335412577216966468245532508883455686836324886855399116699207559703678918082685824025046364860532736125868916771361056054736449698812411763414714403165250981932170268359302683607576354055754854776894734330566684730368650987025232533830142830811337199464432459414582002041033647135727782702451562015019452871507794056264861505473119590214966582573484948908490152029143208236535399202469990278185701002223403667136638456835211213345970318859335787804484007541222194200404583945309937392038345784627862740544816664951977111142035350041810205551607012948405908114571344838757096804966866203246459547947173878211440277545174142732345087354546060153605325144614982797900207887394432022889064054386178799841415943028430648141917778630247254041730111061128040139402676123202268289120182394543504120476536842940930236074634377595954306207167785199417272079866850916266937729042383606488236133536298417073183142452667634769165565940576493843877767245912342773506521966509351443884953820409403776963737203655096643161208664065486563107743647348855083152967191515887570154903300450353377296030981096702088290348633600900649016688902254560112362658012005411787842962287003985718669586251299188893298912822261905799945736253970764910578359085822946984692353874168237429020614421773922893882383844750910393083814264358001206529127122733772797402596792941971478470986863881017555046001491094816801047579626888126288303684648869232607987731076141865965712624020673369798536497170292984015152092526420316539124695424858300047675389525645545811946747824704947118569992031348166167462701733306748356502133704317387322979266500019192698347273656895975019533001645690557832296648883843254575830229249346637181826666781246559514112090595471542961042105914827769494854110326788030298249366563459459723104590598962191576369692368832492357076170559010147981661662924321296405083291692092476227599810093660407086775540647338197286998212686946931858514657355105358144599883853795254184194551313296775473857394516024915985627743925674022747709239866077317008172392000086395705435954636019993118374280135002159153906197084174091077424806375589616668810893183977771094577069948857120001455165454199466001267605110036683850459532902242954514279238826709725962434722590128816093142754927153935545420931091685770092801949888763262868248487923236622875990715276939929336853771911677126330907719038023037230776556782302207785653717134308779516291204251592892657914624632654009015818186450313277495815898896712842564970882435564661182746536847078507080166942248039707259619433946906283804511994079500282592908481066990473730768989988918471709577441774044411650415697113960816460013808023308996176809810883845653755840410126002043280527670624489934626523106860966993076719196734924880495376008060660573026480752562380737941829078712316783721043743119673488706382503794176712389060600795885911362868988659575806242103157718465235356133963002345875484090823926532835903411539635236051649875616898206854308955777781910941974985897913141386270013276902646940009743463828583401836195308531796707734536816140610278436163018841016128933553816957281791697084540703669198861022471436033117813022082607385874003587427057190622229285478902228959340499210426475197290706972918267128583409984056967394858685915112189322711345598842033286080396264187502459398797198884332098874493543908826637279291925634337764091215263430580261932898303499979902807542529142549486002788210295794805135759164477481144214739799365063552370108140341653412617824183038128306046917250143056960444668425479104395550078626581532698824530668369125893062407616165669162197463505496654206527927986146297734010972884068734339445299460168956224086811635341656430810416102527618492293270960903044468576464314142201903287284888438920164702016192684709203096576559679608765701263613078012105449039907023178397228647271067992944524721262986344344878731263152600701213394635143254823604560052162760718849422116129638647845259183614719515148115668420736409419410833404482615212107368310473170541644629313353637944168400949415039584309992822641871430715232178647196542541362703407338989485203300070973457977393596242860603684558368907249313678171188847359451414626940819854278311666791979290704806176858874921231817566115503580805267057385558363541542855838660731960003715918278813081520623890678039069319208386777166775436712249731275996534603022569201641184840194098457145293479512769327435283134216026646184911045714536922766520906379332303132923483329276019460017316971049271270418209447886631271726656483558611371705999696195442690388180223674520319693409925524533460173155371586033293934509119661370961349523144114618988622308175212305973302175164779801436736697799044642912515694660087077591045729318571067125409239600776669395224187677992561034412390214589505056182830584970207060784201548063732128517327275297248150016621168372965523880100124571484107164458279983459441009848284153286267275894335494615001968761153678927620299740819124267763762276283873872987992997749074512578652615593196345800054110463548505359925052231422311598606577828812612870982708701861843649931406923136571040347922874923424108681396073046333404245129445487165261831499719764077439242215082488749215442816129683302957989104032669536710500637504767498471062622465279349809507105356850170130243882665535915423620158241334143506502475495324114382858572976607150881357039738941670544545356019989660636663197869100581063685256392764218505881993013143581652501999393260547572053197815551356187342006694850251851942923585547367478851082113960426012077006973921222587550949769764408367930206870820259067880524066756713988033827731325221901616208775070587810375134252882507930945622928071582989711561982667449223757706809268049571195802936375802537172670792193734512287458303821489510162022817450244867518854873841992376127390850306742378428263808157596578919242640987172740459739409260274404477842615398178405300414683626316018445256044249092385278378463472855465023666395052812197632551822151843362142474879083126065362558358032253173359558142223117283224063256931220786482166316413297563279707137600295762184373781837183413079829530475726321837946914967892281294376871626930790305984658989457240622285181058697380182472954571090898218717697505147854675460525946928697617243530438558831908880200778917806064863551486564829892467120928249628576575157829189420626565579304651268717503719057674795424154792279762415979801173277091345382113233929971116537296543163314009012292535473414147257701223152013117071225046219977453163567887684646595773616807345577723693021451948714918203372989509750128122955143047138678085731075887574776065404604971817464410219034196545699123131012145060346894000515267012073903623766591746247227774440253955307123696307069730052795840009964227834652675492973796333772303181502777298925384114625270970539611147841190339938874853751215451685313466163296530824562908451870974097147281649447148418144648574880531363999329013533555142336038752695654564572798150970844326552904152623934313095206470855953312880861374770771757918568384010304733043371894078090823028714647680237050118302680774032106666017127707533191953652026403023890026307772682208911964020991014767521449761110297187540202904917449412985917214790142352772112254659858146006972054371222311687730056871799408300815853633518603099628003116498645903193947954398234031473395129422703618579166378741052780689721427757641252640842292450375806322791909737852215827750805030036790941956817173668397150018423816949165925476888368773109914252309254399174754815542218320678889073214783588707919398783087888205586775932466987606022837343445922393065160052856742784224388653502754955433515348750339968597177510427141489931549538061628607758550276873296348449156432698527497920442605752964175163347384404867138582890089001528106354074419017417065413435703842043626423042894868429936568576653247908540637517383660868442428264517548379528451547487937504755025265112554159076635625839642544504172350375327451576500129918134733612022284801726026625061127530033393190818560878105417687273892813171066110020492605064067295716441162905464475748887242805389200952851945187090764617108809395624562254962173463963038231713180459501364710880252830061188327609139826509123174015234043879971940961171356301497402536178202318753200949748526709432589345027434232537218445882357811778007647156804627673480058176909773753666716339282056756549469350824259075660315018690756026727136654639654757346028221834163787821569324590987784041508543018449735022592135326093295926527575432337672466258764152134209325008803263756682601117009878109299619660531097481121058279972352384869602781148429133216686944763935330589657723369946743248782025480051793155979008235860396536492816394086512666029249507983324212177383245946277883930131578655680934889051977062930022291462819307757495214746781411355588453743150868609476808781048343203451798632949726053894070056222849292112412940938310136796462355131194605232107235928956480524138767669371886123358974816496148848757722454653544007004569550296950547511757691898445163932043489821332218899551177775807320166641690237010860847996860875866012247958433882392180705261655354802358267578649698663270075941088456761254781801713375728941056916853003678287137808616784389101231017435808635468222959568884886392903488282481864797208167188163706671350842679670742990560850402892397606772524423238484263820658304353681179283977350612079710930750411881457529043542195798688198854861269929454128423028529819676146851606160442835588943430131376171914615734718918057542126905110156026772024061195791011327974492159380888213227890643112421063927766733059055477152030795153179667324391920710330963180994689361195683733267752586054671046361243155289508654046181124214651207256434158961234858894969844398904102832479451963568034614599308632071569773109724302271201515363855891842533884709598977182708452748566681677423694814813725032119947428442221879705149804962163412648322267174283772553973467639204153345466109304326489828480985366277016074747768018244492519870389078615290171086983107374822676600918269526864017160295115117464701195443715202034436816274103404851862500366514764302811809147789650557458188873527396470286509936679286386317758115377050399731665236833792051782736387923977430632080515688712521215920311717166745910373849018599596832527223124426297209060850976984749033807768439881288313816968283100932188020570777003399333058076008853172512465969205947408685618227151391945335220013850468455938784415222359638055436667811391636658259083184553816293619405639555769476200375941739682166011247766048190201678586636272292263752090443902694606080833647525696988369227806472590878719537110478839797454208596425820112893237481291932796967927743161555042038802092600527538692775845395595381352682021665788901142485082713820927867218584600093856372489334812830560364895459386161533723676182631065986243201844062848364402986073554695924298995533698513892488969601772049533147275551642924649512035716131240580478134992465942874456010462127948324299497423797940940593824775974389951762726618451291210581280428403402602794928120115080219197438237281751534369507637638896648077628913546053708764297190941502542827060902587298113323785122430063295418706982362091502940277069207391694540903348261553731563371552328551998772809651199206905927968678161676297386391260247252446474387200522365967160568851666786256420157887900687420267566443275135031730449615697436945118830687959922265973827959575839771971539062190400327119381452681075275287297547401018323965184513999598425418147193449242902678616262762097910993709771018146912248108658571876660750349948349646389040394805353722452943422106735417168992263228566933201783179858531410061153232561559815000008631317863017684692953767917401999871798663519109458189131023619319911026941417584873371750113306633465421223426737704936508160762810028531474820051317905373800065663769226156515311000305198495478187763666020220579728739453381527073720277323140832212702785888554809586889000165400686218922147817551136657467846947553231905805516835331380997590760224103754363478962281775841727329436498875681564956776440367713550950563087476135202880461777268966054640726630098555686833357663052814809820358928337001641325579377945800119489676034670530155942606226260891033881889944238216773480328691102402588785665521302857608607164805854603042334786852945969390233404753020435504717258313707014128862007967990667382531301161394130033202954519059219402540201065659241090728083926997995392634675260181786696775294787803259557457454464682693764092462271550858882103781322460868487663472640554012349333228937265234881776987919413274361592866752005492843118355582522032909924143188341355674609037814915513065176051426505289903197171502906105031207116192430102789338952376861392537115414650943069877853026953528321906456532484562781138830293140101467419069244961107569963111276175366227154754433656362155513679759904052338466735030285221157350848447226401051256284673050283748130832211926942287003137231487218500702711664724161173520885623016405698988491316426614416225363833270615661851186854547938368385458463069282499638957962690942457127037883874127839981763697747661747152488082859525308244920696728910980168424926282037764336746983792123421522207258427553039479331503662169864455540530877799950137808270113272720583767462300396955298281845639206454019100388365328575070297088254039722766220848318445083342498785814151061190064868459103328222382910264023774984723910397469130939377273166018027956468007564284620930285039237869529149064660403789532748890698882364033441236204383979226595173825633515888082751759807831423366144093279751151060012960828487817469420482834229394261128039392486155592820447044219988460206055577482267290092965376077695341909620676836479366124328403476772204719550780374082899907954755141169193207040795823931197088069349520180427558762857998831272848933564893804733053194577279144007905601405417188563049153606188494601645419617053095623367507571069230400792371077411107263353166762114253618730450396041953931386202381370191907625022653456694522158925736129913223993848206081518629902965595209233480547353308690367289512640192863130678374144542430968677445107321731691119480745212376188699838871078071341357337039246574803544636087422232271979192013363951753022512015141083358729020559160210151758114329902270593954396351339358135094928658394587589877843069623126858140686108306795360548081714521495466974614491027441801482698474097473028802736703417128327533116134115319049629572964799148805220264382180844032781887229496270023835606949865622081746270487575288756832833455583569046559477678017731455313637918897228226748594085469721592445962442139352944119872848466246204208700986587675996518560092775393171544660083654447541414917088831750416256512485139353441476150224984467730525925586413953729585183046713522512026988589196903311149585097101563526154792565790114832743300550674358970818674913029015609486772395497273100443665012705143953550071253915468137647687791574990682326860723802466304841140769559908484935745930896907247387256209599157295612850077736192836343736240614523521140325885151620965635868857847123168754466646666959546332508041378823430691346976142527591441135294165237389929749336017209260644269265872855488805488623272036552811098240058456542020480085334884116001869842529292629577922004596137358568581811489358020337244742809728847774641504309568716579431395962407519041334676908166544280415987403460071312008472197038094015855045098172965081218275768762059429580771974982614464727865217413256159119226125015329897812078044357592433748186992120493818527790966946585417768671311405162790841746755568403284800934008868375613057907694681064452035473187235820902802508899513044995481201604425640357689045634500059121800875920147756025215212236115400183961793727215636519736865809466710613611572285848584081339331681392837091356536136639556065520893951883212802917477194059469417953206628083505105849080295382316888687619119819029466109825391403040708125747318969548560940446833552203565389819389759723702709249221425868886512953286422538494445026120429159161763574732094329676633854764896987701546322485664771173923206385409638467241698450497167162014148902313368306964208056244216918638241157332436689936178776671291349218463174866411563601485576868028392421097638755670716506485040657694137102276688647254930078085638558618308128024449429552669737497344912659119637806071886953740506237948473931211633571404622147461573487724240685181274226424189425478671946189319054824164721369786322024151980571191597737825914541629823208535413525790946402663627241789429332335032001757390700010484547103793856881345616246203469870476693361509001128263080007489707872170832118236071432518523197719654942419412922765849518626785993931468401225561894131724683611347352953961774378124806879005815247158439614011590185702444311218589640393439396620831849971144917787357960811579705646455091776406443627304592120613240864397506708837921367046955607512516880092966319579698103529367632395296543522943829181808576521183086980578608709635086012054711780161422675232095853737310114148466268986147550603371497522610061158620819931307366583730670858683772700170698767778458118973006834492306412623697300665666233505614660442547697535810488896420280534886902960808892388509965811964751222248273590338825517094051449136238174557439447035155639969424791166039973119041851635338430565352171084088432191604769746492620301351689702752051677499944287129335959870811904749227428646687486521821239785801578047638685613353518891179059484101330124743630100863432528328310581728590205804629370553358095941533608862826533543693831175714075759830965743938978654325421230400525387175077271535433707804659649344673882868475933046420823828675717408575782194169440021332782984069264603846347071684794139665097030711223544670023648876250953245875656027026918184015630717378599319016522139510375520872946665466935633631631566630201268969177508496735876620211296641959577449737800775290272604134384650270536320092598955151663819133591041823800175856047533412314035891158319532738051260466621592095523228803665649979426455835426779821896053887075778185877084336955755431764363741294228274742625460381517250082677934662961237176506587669331352703961659347910442397795402040646561742416140602355832462557288115121788216585734373731639925714723495015071752078656701211124778774056656975505560339375965065790874455437279044343556894447427172282868634920500475162292666822097533969052196780790408634544611824861809907252825736186548360502978222229215484571262735717364232022494729764462270852154525525788494083266141250045897831999527889056664605956929097198009353034240016943218280974546622443895007255951633244235657009356016395713025219010843554362764678443212709492231976516225937001111208141948924012361122281901444558130721585740578174214970913256624827354015692137165421613812609465058968185081296258987580742838023527380752506541512464531701271870974217350649479602279336605236964660514556708805439768067404713371156864706537501041286655914067097205599718437436962598627610902565455382413962500712342421136946986344629710501972283609811763902671289291811498518602037103163165062017384950405550777003049404002477277531844865159152315189014341726437797016305468330988169202497775719531879727885416520568397677166418306453051194535282350168190932434741932456640645803244816946763330482776639303803302952336798847245906606882485742548876205563837511828436415231863102567829684801116429424438029440716053407211407628772608908940773398869012892695574347512052764796911882356887091240838369921436014705561803499437945953631783582581662499567082450004751395569698620709627639036216474190945039021114860338531098332778287642073185545662469635640617375246851646269725210476728746893457553578910329346761799956641241574686783699490834133137241873593706878801672645717169236847743241823592676332939253408399343049926346908924218684361464953199262500551697110321986564348462445629831473849798496658326852939982027057932494059533747751410332979340442963386962031789929121228196379340454384498034807871331483049875943981639369788742179428226620138497557901065354772364597981303919993851464843918725598950518835777512719686790088188080349693547024269465781096201412728408084413321707876224360338627127455430133144870993627374553020633664380980079513741720835518265606024328157940783370186489680151797837198678061322974266533317826032285299857380362970492486542692516844823402547412170939499386863350773960869402060291366939263602458054135503264712623536410827707587239684310418094252445286662277590883092076032903199148720539505853143154083850321229965266606170350243008350577175851389543415285651908216446520783751273308345246216142985077533623896485695288755722820515770458464778758354579507350542822896094757075085669614691752485134571497912078690776694505147535030563035982474886674088681986812506665440914839726793934994223055279617314345357311951969441689080199942457882411255469103842779561630426238274344050818560444803990243089109730506820635478576144366741512905816211463235906839607891572391362588907625850040045952013099874133566958353071965708681086025128783410857009854164007945711409409292118906585902994080765929971079448237376841713401042602166001066016127047935705170518008393941580026010392974500667527463460797625174391743077850758017090533195180959348735966003179686838230019832484664504163655169461801643275165524824454474458548867589182600113948147058324858141080935128465139278593195459088571089401032699838895346070680120003223223527834541806595104270318440344648515424480770521477770198842035570266433749262569711842280118505210950048592176479629678117901260154013449914851831129553462493799103628087591727793108926910046008244781408259718731211618697254536251730686832686899154452027881526561591792348079244981147460848962974787692502339748694535251947634629854129090669810617600018458649596425552063872477390463068660342650127164851978581042261002195422212859655629382995806457607170615018881191797971395924317991143359351604767959880807281038683488330260334867828032589254363919325480280037320169045980337227291653267920925946807738868584104307744948777929875833539214127001581369612730789725378912854658045699941319015993426072439630022074948200948092714725966992525873401027592167583833536984828259144374720714602911938772761615805126330738613471433462125418763769240998392984085391624757555284716509823277436894805091326032618891772828699556461785393560900069563018900686237667443094958751037734332903532617682003306490827093834624937094746190285382929694581498690450760603726525228469360783180862869707412297384311404707884456477702654224550204990444344175811911866661685738254066506355629401508057482749237090925400221933997165530433800628360764676459157286216074674356351620013073159138861061386602793505128195959902842567531759680217680869751875512773337824255587219173503805515748494931318259296916671006381105721783123528704718481945407693132549509249914458645163581198602436375373607760926887678507309498859240233430362816441265416542663073398845025822196488709875769272336929687745218881281076068722145519102411560524698395315242888345837334646767659200864380373061086658254933884298890430248942234630986657901629439574805404309322086030205836917573821800652372520107020896955936159153998786999997242251263969590640451495714300348289315375068879452075141350858394046079056073240317707048619590588581343464335562142516961612192908696933007627472561605577999234388932821929414590896290257570397416369164904015373597157382585779530471895532658463838490758158232556122748800599455420286188904963858514086109672467080423430390466171930552510062013459708761421447370863890141905852468672442441551549512054863881638769971750940674185807077019501875380076584567587473642070581419972753223857360533124994812380709939325446135196945607259073494496422835504440824900804551821041198802377113154841407815334618336412690867228502099111101807112795781727153129164164282615377716093063313244662670268643076675129319979087700727861403102094883471651593348963870554173740676879109747443732536844934380013569140763268554949157156150977381427728289329922517280570703809583351473167532510952531858403148316507988716052721941744803778807917042939858557863228826473732139434893513554404600586070775261886033131545006837369551203255267685722414582797267147522538702492827307797907013332611667020676002127811159465421390009719844100667076221577877098649476053527203964736624022213086320618971829440956335442056652936864870600569911234975516839090303857034500930338474574815541441387983627626130188689758343382737118841438977291512277476106794721195864427694960555747633413054830654600346756507346429004527478493241736740166075241274490240265625274400247432135408972563570044299279770053913014579681764333920035638312830263806378779161187599394162578878862805133542126749586265358935620959593256513361881069228217317565472407885835514633105410650046066630218108871188453249014424392405265625915030559071463653830111453585355750572742611023922947102596663869032271283713988257812657486263615837542829447712286872011195984161256002837815382441901220520940937595899057420434503380152148132276526054250784909664501058613100690740333039542772630188136748753392786588314226249419854912303615039789639409898781168638730116337246248086752500385854842841389665136015046175730816750319264648789045947736904121618085377638005905459017875425773939256457521115250930736922429534179667735381011406365373381924034534843522142308030516699706286236613437255459088909419726114203772326378508396527731614052927995210133229502752480397178667292661403279521083262318618615345673982398839453406433230893468806737506887102316938625381173406715332184897199429241644748204228929892416544706229317349564830031283518130971833677240577077288481309842069348534171719963673716527002868122008738751906082511697286363929950605258161411542534628616869755600701323615613407107111512608528405122283352929987375176474130432578416791540877029609789091647827949589889627026422842677360671500956483336322805134718808975883322589682369080785910889605272562671735749541246112194571263853207292812403279047611745510722628214160948018607575012498463747660782626721321545977926092852690135656776077258241190242437843327564537510959011409716816237531001526438883256232539045445155521959234594511403274869437716893727187170118787284774917553449637125505670252178457622594121783358873263335009105540999526374344440206888583560143825175328433308678495740921180909060230654128701163186352674066903196165644883614569090588132211741573715491706752010651912873509783018616784948170195175075595901742254717533690604314234151188497371130994439620448970131249413963052372843144951988354773758016875053343595888206682582941201597408387042743299743528918109605958364378204883642085446322649307041812134036729647872138119371340495439884856361096958201844945833593752356109347986601742272225442598493142241263859460630074985059296710884102695206227555579279739665191152904972495403649613540926807849332214926818519958015054459375348120912316769525132495959694072727436009705685197513234325131609592712718573076895856152079903342587606799082468290682313641032574921622273302850970130134924750653555612481616818703556416375135049991064270675946522960587119171459072053223509737993093194458263368890731195401780247833521959238961382174217903373573622426287203340153153477455625851198646941759717418110848200108848626210274150891382573770561894485188205079810976842718512468303141359963897678723579675386021401980606141272205676130042896619659763109784193592179866408331571246801178377337244960772012363018026673144865379429649891590733167107008846672093687060362590037668504778139670390422056470760424570213454366455115498570926244974416804854804184404580094526528575938764868178147949968269910134695966087500952787855698634851065120134201897635791188976988900784297334961759494823552599655230206537358476125698023448009344383094355860669294956790321481102603711725157722417261104632428263883435728000160092027747960798129726468670413629320415876505903952329401283934573914827743386439283001781021845370658767040041223143503784338474569225745439436154989584311472150793288311917175287353461494842516685808302126271370966823024325417594712773653453953688536679125151737896165944021102133838299078454193586133666956729641731924377988671324506343601300742951762572164728964818728370824834221436357799647307808862398273083175622466015625966907800846051865590745562874802873840887721965978583940935501895116360925827788354947897706685594827840678059035176067895226455364170630078349531339743479718312960350837810276194194075712271231165865478760872770678693946611273397157212599569501715217445731261160476354580628175543610503088003188622647630852619408961115437312420162716734916544222316205859959479752848651141162797837794293422203388370257671017373226714747381980587401219914237649806431686593272058155449919623536400056853448616974545284284803786726582450003358194744907006766933398075419740225296768036689926379201428613650596892517954494915408713463748113197763685858783922973573564478783958770911540362653183992892468446754424805595036462331698905872334268369210028255685939200239952445228982401679292120176780508788070028124996910954790835194922438429982698719690296818845244466517212191290714716676193543084701997636932356385024195765957814490645998205799318213368616858568059491576496338605052044521983604450608933173189737772224670818684373054315922671926414665453433988459547852820299248921928384784137396733190150699442473271113324826881041789926904008091421774458440266681161379838742208351789669344513810490131979918244053414572655199381686717410832895397332087306518988369267457237686857937611044739059300069789577503822647027424606313978490557111980908392390366952116362564101153346242001225393016099338992069349239049477397316879620725111417576818258388702960835626786636160024027186804229238395064521822622793597804834976279884912800030985820867984874323533797545580975545015052712318115828407917459739251648610266336358857794962557594151986949955646144142378005222423739833768581047863198400540622503780623163098461178667794042059525307560667531128136777294033965829369604507753761415637950493250196015470228071767007031037503533131478581500963603077013478852787251290459448312734824685942714029303174938200108521714819633751112719741464911105696272873614913246205142492982524951750235968233779715934914912242563490725821251443067157182155962964374621719977125093568274890088929740479628384146876844327769549709046104306949353841893895280053853041793189771774334181899129386554803594047759567302183578365070941847250602402633529604063693827461903176923268075262012762763417411818210666481787108273614973791821593025420552443478495519659426602138727855128805751662415272427163863423676472204283311018051259838496770307924794348026528140038523554380875052255502227177283375878967787900539759991166107991605857481295238545037545808421010609227498998664139701805574179810876718571680820487540812713493531136420065012815279756982594479368020320964922598052141472498496267329521295703246036211825834471258340885752043572429060180767034798410824794342006247266436866340763257115415860093965600302207038420670926568025243437770468334902893111964905696728917855524697460938099365643632382877369702228163872259438709035891685023538849001686195898304712055767495247487897834040328110607696712157239812842798599388333046289052031075932275418015248036351592615122922684777500643570311971580895883427255066823874789073116208302137360677284940353956827781090572019539529091495301567811692034287873072405113870807770730076072814941995158421157054974323558261739045900600312354763447226782082938789496723827321895985778766863156571407349135846791333089152412763221058301094491427176365222262772137795025279967470604657891460472068049183593302059998349966930968219698458474906566333410431495125624597608003776589165375080693346876117428846468279605488724310632755043547975664565817406412549045551717998403432685959798362350049803157265921389529984897732508659364348073702569939399518038888962196559068556627618835610521417842972643758700374184358194911354849939312017228317285342630939853636846961810107170956032390275898228504340712580880914595197328626005536512382051621147856073061225326751046058849305039524093197136626703309703310262055640736892911893420116451418263481332924879698133103881740479088022803789456006194412188826813798914768619066029679790625528368878719106376412048185946283128782135146718391137970572769923665865714256615072960888959968701722709466323735264568290382440056951963990303914925569776282465585570503046497175373980029636969786768719558327728101820260467303109272478408234242431112625331478877131867670755203323999308544925850930701541580289103643272521720311633713281079729442314667632668394353221289942992109193690709269926851438915567245947296760856093716900428682169770605666610955389955239978491752239166988842382855769445495121135766685790742849831750234970966706776781245861230617779726340145810262740482954228973848613393296881190801066615250752037869360145394177720312181659462581706962575196340721945446398672637105568634835271356973719057796843895077524294801883178164978330473160177138122408822289846399472660969666530756922149973726447705292701472237437448633513389949283675261118597779563143394507610096553718096032579550722724918487680416810653297748274401741606036290035943765568728106873774446100944229508331210898264728626411904039835744268864818126633800091759712279256916955996195429682301006281025234976087664426554749391405077760927944479193027486746529739898595942999182574325183140445703875516005978858829096443852346752974953845525139562401461830181112128231875026789578985490127335530973970711546006446570381440935536273854453686186523696987026392764595173929048202837474130922195528072930185240921393985547626346517376077973790240518398937329854820918974521260378930384871619396710069555954778467915201266896708858881649574242857506694290072122010659374479619787900463943261318424627985658379190578861743179495740532888720077508026003700767808317519219948342253652466423964463123326332012103221849519323619313418749552527938709540669217236677435684716624003172365738660225762533127134541990221424572939433955333101453152815628728434230324586050475649600950059956956272192630599362228703768476260305565621280107512850088358646712016843058152493242648327679878148935875626353563774862053994934052722791201293654659000237873844169381550842319397018774894220757083789350007900059574469308694920813238361990516384991312172875407540570387431082055769888036409563972803791422154687128206784960469118314289711464466555559006606491313916585905566974617333643679393161106304353516947524663224053353732146590015708352331090267334891547091584686908657811996066053600878367488772472288731199507890525183781620159508379110762622451113198920994773409021169300964393764386520799109507226852306234944874406138980523680590345435643545781831361373762331150257307404542706304508962653160292190026394111912915487784425353628660268603998482382316769472402670795195365945134219270327067805876136154753768156679197033230825906541395121715443881540827087653235911409312751377463830786908231707108543431864712573382029306910526270299871075241605071497683900200404320081630456006242392856683794780040333800428578991081528902336295194078301396277178266065004552552928621906225310041671299183523597974010119468775951766225072521739116509380626378081915395142646509313566584623800260287946989050706040327071979056486776460173439543433330987179405146663668824366147354854627669191794692375666470409258665651911332766671396495154827143017691010778741494842715973581633530965947102694551030315938737919508228041017139062904855651149246093948135327385763599416917876955616041049946689910895202430674785734793664211313733706991525449014374771262937880122765685611127014914251150409108003811035207701570718534247249604331124181799768624626306253658330152319450458845585489112572308318921501696224468692498841454607024087989205415014916801240842717272550811694524491208768953096227795541846836344442018174376194938239126623587818613141477314076845910613845091434936493546410472191645748809939192646454683542139591199771278066987680531057604692877912460799483512240230015441293745219109743702467418935830029354975773870275082695594466119366067837746981464099836638162399918326469704259679644506872460713518051454274934457910964062857941581357957774361511745976408792923258618262368670789108397443568811262231618527057686472226674618455174806349055336895491847902976936572220778137488749571461331527056011685496392994288258471914297329842983079218136098467753826426899963296756086813057651819564966909653977412250524767062728189730050646523214242736578965164950268658342238577793565169069360545489719909885943103384021509785916371421667564648656010011278955193950689265334085385719571514628576041829884234355340255032706615113288668572603289512501342954320541175695288514461795901238835603059049868421787983086852570677807174260999973897546395344494524637612057211772384731280006883198256733325021908149420796724802264726191341997804080510174233509274484571049067000260067587616889812511836497628238049318476827864598803294586514144429488850696162402910515777104569718498369542695310555125338403990049201201235730328361166591166453091460733065056855106233579265633483750004971805741621480609938041767955271031739215255164637480610084317772312713673317912296373766700021882358871627550335547310602878939111506807608146529313679795716198451061833410101822973039031487602646053104308763375606586658770690740027874330693666211231404201315406754413715622818990360555507687576041852832717068066209372135081053853897588981971901768799207050240971409841502472055171370594943767678880088353489290115287884374252189954091509465004945306234974737238005704811168562020962774399346950045510602853858574948747690946893368618350742123848915216774830369735405910761069239518085292872635738407221182480907776668096807692430067695667908188062649877391611691899770032075057574882261321275240249467481687952532775601329604568242566385698773133593134428591728624852928815403722617061855005409217921241552337924419393374238991555436844754803243775177574972867686525359054776812197558297012797657791007082437620207052082417710470440160311076099268382900527772562303809955822272291235657697279240236706497229906458160381938222360213528897875418454302500460807632782397221738893425873396106615677533153155565505360900343618800609963474232186372690998072494097286847411628342938357513668900156032657323681924914103348942433517427819021761865769211165779707047074052090617709418326131428103229964233198760048764365690892477875632363331582420668517994331035612459312189770701156487084693021346555974506239344389852476146740996301684603265709078061077669595373074587614014815584465875976966843830225037766945546393848063642138198268386211869368680970017865273685147834513817339764718356351607234621103551285086257859072568786985416587811903051061224700440667874819838563041334885146015407771933869486104913115886047722868356911384904697588292288520257492019900184698399722631743730363107933194782973469792504602836100014049117331670458005824400486580196920879985731819308087950976198239392713876744186689748206309961657042953512435432222303892642399535246972809727481226821126000559278926556606660475738236398925531792231923668477888367339703098233446320833948151512611895728421892310584040661215210969488077105339394284611829650702014310437294192539951422554657630538155470010519412155619834019667201337605838264292752476528477061435332314972972763940570277568282532317260335037011667757723349729627054274912620336008772432388570724193429725099962111560076037295335470402298128528634184282479885553512019959078225226476676548025265749420437452597337938412494056565565082101901642198373784878447157499094763226274161878057404400796786890605405475050139723746137713761924776416940057466135926613480203139459187273109930940124589006072645872576222147984036421972311573471493115735999346618285380770319944117392438258568217879232111615839268716930296559152387275565239189330630060714245675505838117807335221263153278873175609564325649706506191523285776899438078224844384815560767342979636627955233273373107248421331802280046118276949430584499488436942311744715095009846039184563944479310584455132012986756072063042557854781459816752528732094049614836137636448189537432617178295380258080798497887146477109497797977220081761575389575068888146130387854585501814302516595349340565181454165000301907751514397583973757010061899060464417344246329050130193456389142656653871645581547520275045672874243476948023902949007426757402494497492237955435616150883053115708950531694483658663734842854209758716447672503551503492847742854150050517975603141678522799683734947745634225794320550219564525879218743022867702104207823210500790070697836874240666133471005573175585190142750142553101217332984183801336847397558489013872021201068354295315226077055742710345910022650448911902067877682875998888603594170036435610468962836507584959407194673310453826978322196986483158536731436244683031032944793437046668944077262609960296738399556953738362634064617425752225770152309176058608263062949351438041734929425429206464844224735625635299900206621120679738396618263578247023029674264164723058364573800953576429729902480265736944441872973702419818034194954295246736401179470348135091492084284614062320420305317232938686926902266318660793921475310978797250404110926479353879884502961654521191328515308689247929048984815185476857616241844940683624436761223788192066781103617381206270296551929103948707106432161204183342481255970454980502396887705200843828577041450511481452360458219694396330360205045502234387105724358884942588059457949534641814938156003449734332932097361359010538386402572275652990414256873429166021081875414736954322483627180987274633659662889586049349215446647508431360485103679611026100823823256681720426551108971495591918682001406308625535495113956663589728566735081343438628952190101688308273011668884810149047145840753010031456465095258668788784004090262736843782712488057108406074669410858404831811691793293912392763974628166645801579746846319172577945206662206480462588414277361791568094148260572300343827854595199688720383040709450483475521639809632638688204349089134450317992205533532965271238526563431027307881626878318492790364690061315035504207479236355819523722819528340638020827068888175328536193571020408859889948870525229284034709589565079019367478712791731377847129465863106357334056951213765408176795466431160686233057281336777247204798299971903675824890920899446566780635343802261152919283179609451019506688407329178690179988356220498472705225172811049243319503200551477225312128974667674879760881309691267053005236765928950725206157492569502176138175658586226431177400737278218526839716550908245665234653649227333555448808901803747582489514750874565551409960882188394016703904625309997246986564623673661258198147108702780369758107260053759830061333678596766254600466275323118319248541759444888698568797983082742589766549142042580958692300821265371047551777641077979336949336512242510071042770396946989740821951496195611433081754337984349965543351796695663084837559252207132967189758149642639348081855334211207255140863199290972689032898841868218376035372931003684589959252335207189049175873696477312244735211729121266251653090962166220553610857734980750664064783134292371944454508175806269398685699017245103133884045816606529923198922541691643054993061506570038222161829549163233598499069974922860894643207194962108094757942180878768127526667457824063883105464895897211631895656273495537143449273476192578018209511409738173708069342416015392652967521744313702871432830630258022264755593249965865906366002802207866109894411627200272650557367357637510163291397485109400370234977833606249858360690979968111871887991777864681921785327590404742288470552301856805255630001746232706166196361726844587637246371644070413184599889441867658706369628923946411145515409926291119905492673706946928812596167139178494364719233085044139248204374798004501066925052784470184963871508356054999734055804343049548225184514620239513228769514585912031168043814522233597881146364111219083186507346283652541167296805735904790109752815332971743601248101282450037600269235138649739858681099676653124402700779825975663830000937397335703316708728586331115215454816237369840081726833993351848699526662561715257395295798601699118117678841211967489500911752673389975756223857707487247857165672368270874762732278941143607861889804138950575424307405524139400363453742017995039421106835968885744004883619200395543323808996273820961373514012309946121163807053674410904204420958911429161957544341530637863099065664725041773132141032900979715218171176061949078954394894180798671476694540234998718531927794349253374037811220437830025115063154924962687169307361876287838386393480216389482525612329475043629656333316198226270031169836523994652632148105128471034590853392599243736621508029511659910910242252769762959481658149776332514098747521603581523014940798995984469339207069033833040491588657577749556942089026179543204902600558627158014920342845407910243244734421648685399700685801518279738299945439667584635346819054713718403247410489158053351616502054136533430571263417665519205903790627128182727706671565228785298702869220374954953128432653587677312732039217254013334038261098700336935118795002905432044857352266076240952971165138815580048126055647412459506492021323346692184206972217738513924840639464786714133997183892773696779127165783088763027402773494181282060470539730332862875937200551410487509977783564606313570023600038226753722794818878128765804407009542425586135649327389952532948018071862578877807991606841792384262624367218066555585866252150808165093509618848401027388704256598229716645713507984131880053903785274986632237358689341031307707244491763658699270098306957318531893650153981068400626587204617840710682588351747035829970773557224340495617775327339942856472211198684921558580998589625453252452252451989648929025805081628147142887698099251133635679375923193362281361096305024652311158458339827402829652398702059957707587599420025268835897795074429781890912237662606962824294684946331286635459760288884176720713045007596492546897164343122272298740967001083772442681127933959329546637058160056946464878457992362771095950647062158330073276676155035167750650222072650145839817511017255870050986670115081695137460555158418868615130782740322116188428062342976273890282555917084662802665175356545099642955745634481672018072124056833291583444804760188517298648869141706134224950585860956590945424441058022918900222051191341474604558317530509336464511464405838161353012164584700809530819723862730198409421501769661220567834392851473316741532726686850760335614552218730591797488051407152010405024645164171752694989572886231436147593550569012319237219689021947130284988614985861526535933940476723511613239947738713198859101715727009267408063435270022930757070025736045920010745046624736712354083025719056615334955776535242623019132093494525638945644955492386966403625173421341409399921421529220555937237950583282932615458508337367272577402512625010019969265034207280930054517729831506349080142575056579701278839933286758978604885610219447421181931663449460658100469200343109778212603422112742892791340299635238399139498374799877209452743376691388581054278213762062156491927013367007045255382385653773763300275111890677889840622248834927271208015821744211355283923816152173355427778053159299315550453609803583035345076839809372555422029291462449650414608692373625751967167444025087816005187297060774729082466249709388056060208501280238450473101492350014319044350207591917061143663768659729923710251701772849643935544530500609339809752720923946468106780227928945651006831734221645951949818281544837687910517264730596719405160325340778803002167090083524435170274335569243766570289075654713692649811171980312789090984841687285050618413429920747786955271514541769491858519445495007644081623598149381842384432471495313629666456903158935063298581583171568905736738004503723604157574879561278624475851961826140932284621088807621457727930362667924782926208004384174373957421277174716308896226073899342175322866072567618429476197019095424626120892101582360146175732251010840639916335430477882050024250935527688669270207866772997145939713062696213452607839719287244779435823486650049687093480124149225323266554238662682212276429124935200011914623116976078257435163455320883224361963135682666899494864058006465775019694859397056815500106248493776268520976484868676122035711004899579668964034076392519232836887634003161062561933704652979736846155276641207015204434358137510363896962120965606602785112087684073240992214538577888632997008809448279914365180439439647068055900408419707557792111092952569625907361775897886518154068446924733503491108580031148401495238142959936316311770267081275666241751892730447570350195370940441409374509482669132812896558667479055501110457681114071087667993153079609161999367051251232260229658980302807799363501930464308461815630681566324364092873163206561865445951537179339235617416301450858413322169404490827478680061388465369750720087708635125929865719934577957953276398252112815351531789791482209317344243944769144044058331168190150160993299065025878192416980642814634579552587296392775446659406403192331415218600609973005104757495071845896851949939371896216228136468019156927312559506714516330743244633954063414126065884166337121090571970939652607548876797760944488908010533165026232293284585536992226396928495516236486911114975789716534831220706616664547226566503941036652360974017258745257517613625004292474776326858096951103849841377602076836825498924303244514858521042784621531903319385639257160672371764676725861233377068125291396361287337168434684189362717578849754271421014361825946020147042284038918793936246242901611411700662430879476745708388022625025031453894048619924630583750492292406595461012886306888718830595382340716328392416036207527557369539477530334540014210808531193376443190148528847708930975048953405641031518636666561166896777919379918258998945537770722941149929295577902557335527437013553520466150931987880735821110590739932360286112476806613633957924014554885030835354560656522247063291653311693229274978592751836331376942721680387693928869392413719199064598817324945032490256581872584899103150529281119820727754917705401785229827286886765429402605014956784282629356690386979726975456487718080916706606711473537700427787313089580563375423578458346235200817239193551895257609436389033499705966349158483856324902156361652984985104076240520527038657081139018286250904401065924324379922867596302589617749126202865470761608195476595304399888939473792648742890025241012785070698415020022560295590088640388826237420290275091008076732026716108742136940399966939967694843734826138889227994177533890601663420299085966846464285666432378132856571598962128107547163360845373692731768811415270318883750357893025134025589464727641732789713874928394288999208697143875177165268027896056102540427302906164841461663979252859688789934799655715790947735156710394984738082541141070081540041893590244083196700071125566926171028247825897297876703921685143608160737507613207004485594899620566567717174521521542039168265087339541317077950078485689541212084813606410803212194701365235386739118903367241821237077537892281551686173771817129633588686648868711511210915919928444712646196381147160292233041079327962303939737612626138807337848832180931121662512811445854214241575293111175071931852608496801505176660322428273718686961279089315354651532460524587404537625857613178590796555139882692040078803539819114830215956432205285254088850477150655928209412734219062375905147084297814248994482574064331557498196315832707249743811814573594780429981982867401843466802619049451631373728562173867809334763067073937573041329616147365588389131062438895763030949647723221841190636792016448649109176838734141087777000917515910842631651895582998762208982267507756001435896419412198806145649068353577213211077424830076772050561719543737838692368312147781912091842047835058354971833595828072298502941947057652215069274935560640168566414903649890094981961975705074692764859903878376384549762827646930861416720832232397254478094924264549016095010756139536918378491921842436769446103459526015124039847846083370545364637465648829230719399307132721645324039399184568870116291243646049699217189830809986291526648126713971194780572072225594734827361408916920194529502579993412599898103454917300883279586258117005056329772953291926395522423098255733803804997986064830844157666924119269544765752520713326662552994888743497114140450512928666046999615110091320255536836880162225060105038555025986391770704904692564744980397220470912873828193668768394226647813498285099707654860762302190344322295842113910140200560172395209419011060454097505343214342026218314853697630090750932025359135599572099232304648059288191676021931253710849031070305972831169200891434116651813891915857713849764435633563505783779135372143334064960229095139953246677871503037287438114226016730322743050235135448811434813511919884691420847233475414286783617364575484606064225350135462115995100066138697036760896004409514494015536114208071977825301145029284480502699121859618140856142312299636173391113033994046686414314570377678320807891711689666838491172893930730128549432401458096339247817511543058743793087401929760682167997144949544263745001876476525309814351060325509167885918139855009995894927290592597072537083960846545035533032795104613398082065922099069217165496826086833950252175662930707886745014181738225784646142616108020670429792805869797194369734782826432071315338065910748988489889952529771782901993754663223557942059330644712014617983147098463998094635518907093670722464261589643649501607033044870042632692611873345131274610694326615579120768542662925258873328749493407264382570882626693041066409556049017213595230596939450976748061261356599666661732780446385043578747878551424976855213088912544739092049281033248420262154077001788180790304446136987288692429247398707823588465180566430865278211038588344536958602988354449417687258666490116096329231660276907188710734449851426426082027338293635465852929030299216162544910225246765147252908451754021584724938014754921299835298986961475801051105483419910572886331395448842275731482107155200005687549079139631676594245542210465243439060597746922337971847170553997115181241833634383033607900445029192349132224263873718663800767127564778280111326545438004963435513298086434743457483163332590961805662363551188113632702238958612713197238627025169670029152372092750359382595876168078073800775440237001148192997679634015583658177675686016782770611335442200951156919324944798292578745847090670948918255184864675824713338492884530956791807840397145068260284543690719708126875307449702367554215416511363175038678218797251372503676626024294548665799795299965130324039522303861874383292229465982078506525083850345275166868066934764411590335756089818166818600619455853728523208556785538358447157821905892165193051812579106036397542870722524778778912988767133222956078404867974059009690314661529313142838332628235816895099357938763276889187520762278264119229715602958210286911474861194230723589921859429057620574781541328461687402411796797980540514691908744390864536825211295040399556419381930125965613078603699940992844729269322340118078844957893946738133306258963934055772921628498844376226660864935044700615523848857201140909782761402566771481554114444547808187470226628322349182349146442216230547005637626690056082550522066218127785155638621543268618492560439309770217347460612485195355581074442918376826947923861844518690301922172039282885740557783242366538193575748657147112611364747428424849838719511558448784442783336333000107711879550751993612078149282017871428088959836135123746464934020074562397450079794419405270429760767913429814562635015840270223813110651776417884216378441335140191505499160612019692664751806475723554759968830117254622386766149662048748260592773869790565359399705912750369323334204121954625727506061139508093393404760428156795263986599361454661669995012322917859870190818974924135018913914368459659454160848210123459309086028618931733361083631648587802752251728368396440348311859417620606636892368533669540131805845184225097463962176583313305347100624398599918179834404750949579341030670100528738594843353755664692465181071470782182872544621333781589319031428731800230111807758826688360194503113254055284447632104473680500684112866763953911704263276765552111801314882511451801065977446614857741667503716046107830904834344638366165893467444173973157003322924437476898302714277981408150840341696534342813565290605156100387247467524197249147288519518761776039906319181549359691425738293023805991742601501980460728074258880090578064214706785683657856563382397292461420102961461526176145193647550312414097477354292380593945381015393990220570508955447700989193267451368683814070858038461698277993441723181558020177643598110095562890492277270752651578242228354931638619606846435239720067814862888451687802295296764351495738292133569873122423302103314197779216290020244180209215625169606475049347631131440438569908053505854521405084255763455184727503578040594965741250151757145858730454466981193724349461885730284973560069117828356417316236050761637917212580824963127595381894120348975752336897484971976363504376205481354306828611914152594614553345255701570354417352773107370838711123164978528419714750184681091747424737587882275833872335452700905452274613307109114096151510542003987185187318478804891269232076191302098099730787156047922259583986673920623401847796900993860221864659403453778226014400658304906438939653897122150794464083452183832137791070410147757966347823887449037933022828239923754522360418803409475959093837102726613720001951104541096160382708164084444795171220820441215880318319423829577431358675346516863347301226743904158278160967576551711991659162637592733679877859241125446012599224866667981218041891277937513632438579919677577496578090987397489034486985038708211520729440935354610558144219114726373352102982454024648292029970410962339632659215965533759246091840057194367988584346704098138608759486030021416119184478530242200208141156626160332256453713722744276169720536339762382387067893167893913173334253378140078457967950041071190025803913968212948450245020160891534429508272658108336250231813981171813025664835036835267038137152908685654465152276476125392398016228479810287302299174296323921140358341049175680168311427481038122342266029554349162474767659771156786866570764254883064997937595794681238145070549599648932865700149942073412457193718534086173647566676219939903451327479764095470307400632353016027319021509603531901885230129815528021750308481721393530770873512181661873968918062447447260406084199570222327130899120074788363573172162698410173682397152683262890376159584573060234058485494682619019143447167618285097744394409214091218194950470985383606776643698917598179701128338510925419212634261371777985003011506962813570628763958793965642402890614197186856889141132194455731818074016563983794061594381452430193352117334879069616359576053282189408007675267248254521172818213651900751439633669392294224459369532903748583823506396041415937365805149325045538674282050802873058138722656365780816157951018193451546882105540325635901383756655255736569632808364545197344063828803859380367748890702174048915596320796138962049584718060588704526537837336950162990044107596143699190662195306126835354800798088930450517072801360282788399932401321527021775199658263447214982785811187081793407781655300412610771925163633647573490428415651139307153617683597579369043249508639199854225904440326005898952687759110440583316520121187232425699919659582920849008017632093436374454609489851583894011439420125289183999575805043785090569162765631658537281566211783253895109447293438525467526602923689517795045246446278774616788488519756458410013564132079685421622379236538288457756654477167833923939689380149773625918145462547688955108379232578743602867543698247774210022440475149056387077077350706233945778671547603565569480428512347110730874890451405089053734278811282967299382262951119775983891715155666916759634753028320434743478907993572788754127763041774752843491869508622613198703140773291196016437155071580277758483189347601902332984686240989756710238252446451105201946329469401767572376110268354118272017137211129095988743893508562023271753052676156903378568219676091889701616295769842701076894495238597619000208524611066059283269226587727096344870418842342965071712464620698502224744364475917136591549425396830772342130669565596877328825097632414427921526514949926588492394271224497192552770676033706420970688139275561663310746822184632226977121490344695573691954883132076996927330172882563525631730154471153519565444663536635018399475970023767297890882617356478383611344767791526330564378488084762748661914968656574741011290713010683488020245209979138229312157458007629271946023043840098142832355641238387202894273597413440055045552891291344349682514817543673638136132341629379589929361327284156863288551811684133721906449944684393051036803079993891575189751257200400930624322252900854590038203185679243443180420966221356045113567676002151063057744934101042395428140559201985688571178632248466548754495205695490237428760608292635109202946679498824977659225937523148712999305496801268710372687574174633715298338833496404229525874763279045123919843468568121962953005194018083114743631689001486211683338804683589937918672669313130237734439713389910318145043368517828010656704709323265949733589133491199818627376634783970073341224934770444767765180534775390091140077694554870998669416112698945431351739473520535575304706189234816302441375823589734651600529193077840702805768782393900839344849076137331215062129868471937764189549028035896562575394033239494783878947603723528142271502544355888582979484764740618423213310284837502203134060908163950950539968351154932433337246180217156596750921764498041071175454426770205214430235638905283502713990882519005663633336410244364541772045652794056616470372581806725557884066968252019919030476285024172135225946072730648495021991837601326064290693974528715722339037693727875468406600217233244745649689821120907632261993183049170130157755983312230958375309503224518075346334721838395709078314020414435087553239689203646224239483430669024389283001520335522916152405710534682035036202037996579830605582541832224037829870037960385468044579405776427864734030620801281185092653200265361061315309489685553823755080434073089187166328334744313560602087658345841241537617482000802126777585298263421676399112182129027850271227022523803903381795796892394819155637405004464920492892367906201300812694323487737253523659608806519295883629109899558467244235286250708616848837131846257857744148118402417991532732951773796370121455554827783961235214443137940902828351274517844058139093550785706658722515427398145181915577855923498352581291161971203493738789533915245690879515366952968679709234000092310817377417388525519533027507950314030075561414083917204398153580440710403150018709820369540582828739871736840994557294932642059607579809415726970288254953663296695995254507132487628487813937683862478962400479651202004256360778822197404224198392074908706833781138384794735864531218962165733287649949291221142953172538780398660126307558582464031574125678937055391718461802402948633992301137606486206419271387187310438216159653275789028447245614611278802047937156361353195029078307458453798953162772176857815822868289851195308957362084750220523635482002779121415414960922877194048277910620003773083629910465156036989896856149957409462443700760982030389990203100607138453315915237435729810514795743917889667378533997725151126533093156870688256768641770844345253972167069692864049219049950565340572632347156997410849709190493150751339481521948251931782677860734655735841221773324949487871879347714034091732874707190382043658737034951010868439536792524939718212824730303155885057261506400204733305240380249176338642617520246942019826392556880430419922251939181626258049449249937529917444905072117976086740088384130599778998952162402880661550116388417178012605446887926704842348283006305526041377417195222185904382071652021029095399048762134056245417305310197485249716369951743247045676044406140020681200412631783868351073742147871085840872192215838658808548052469751259518514619802478644935282569862002174959345858858326721143866913844874224885388532307375860917812871978054295585272936818943877884653951899460484599278687627154315978987590612527218198711791987086124462660023439656139115157483500512409980353729210897235051171677316535467460013362847844815659797467951458871125647775580467693058332777629496573206092689899526356523481784189641390166798821996912828761660109684687429242540697789780195205720811929195914038384265731543991887331569181797046473776413047498503775154648151847095373905965826232014575489201328709806851869960686094986935483650969952617715979620914368653243629212574355234756318725941610968280291319063615980514915044084887592173777794621735101005950990754669426256150623832422364203108145977320835116399519730793407080605658694741856930807448866031016749992590232291668279310952163383248929470609620322226379739654491445705899795695567323029778711201851969725529617510175635360015321700545477223730174210783707395453872068853819555097628315112757143139549543143955819161870790518261619477950789298451046897619616796162310115958241185243500397958086849719573375471631342949274280502724768575698295246987120885553549059066975331439793656261330735784231616183960604667537650555664262933403130578103923158558990190705905242894817545406470897879860071371925570326979735571652175381855617286597179454836326287255303011793731407382950264559533573455188868348684226355772887878046246000342565699947054996954628303279231528524930581074164050513512737154320116465211996962910660255776167144874023719881345539154746495250425198719576910353766320337700195288171399416706534847912138843337242568275994791334146575552411801595876558570764072244349716490966015778871359440029158032054988446189457708668116598548562094346436213775004031274510475292099933438741552913329696052079718097783494437036235417855344807634093490547628731022103485852506660769733349909446590985110246903445330587680737148760384614767112602997380184795590800929050760810787044075645224546465508052342019204453365156477775807506401371083453424032352604690707916742119445458749622099314345637447820689453464673166634419471877875985568541813385941763404241623857036898032442398770042340307080434319921195863379307161372660280821583731923627747112450998884415107362814771670822898020595835777338384853426585326707619835073273085634460152541699030139434066854533430688042316306847759617969056003703783116747754312770067295679689844653254901475618410941192277780778481673734066389806738595192392308216466584092179673401584882850694438647226653609101324079292543512097333689809646832877105859655931368707977745481869471289562080939357893150298101946930150254954933563086747549421972188615254920501713828160275513887319766370881738045296719788760954026232956712384815624943455406774705343539508573750916354824236720894981237895461903382410712867169959080532767740149434830648832483603144200028599027235756598979981820599359913971620152819529399378733445680309093003923395719821168059742314766742136760450289829533462642803751200934896773648656630098621265019263864649500682721205530513258333012440491367675785838085624654728359547577718275988086135568301745753318056017308454480416356151966238873145036723928469017191434459822486277681784673048755682512077724449888796638627783888866025232823510702500278657877905244991663409417112860792993518034981259907946449123663172203502423894902459526783207868904367176865810960735666858596685176029563851556537472352581515861174184278218150556409179592479805770620296336192473915937592125186845460536868909220744743374997307406055070045507388040547562311250189369080727119835984811533583884437258612294517151676901464959854710825656734154444465597261678250384267736871279506242483209305221148388761378541244029432406143843764587009001940706646998368253117803166576785155146872830883690603935581754524879903899827957417405727219916190433921025022964867375639913962288865960601816396445395400824409048262634019726096610296187185246821073831135531363898412123846748760868808361274277314998660385587883971379599614944291431668867339803097519744906159603074630224633246576020763505149174653697477084593311877513785783273462415976071743182415944014256679270658691351027988686856909980025594563188272218987602292478724886928001144962527258988371960306783504914237861471400746327060327412191953218045575555111251377204002246990597792515966951474361409765867058871920777976634686287054961556199798693780629489206128883730161301600890866998649932941463894285006725135275004726389507894915212569659946912530302192669276179478598448363263934791316537195163817195904569676938546700776078665418734285496065653102876451211467239245121545140107504694852454609672442098446767106869738633289208696372425125684214443796647359391663446955600125361980404004096058573527082975342761818801258290220873662151481040031577518431719530517125999072014980128991175879273057018379783714159125140357799539843517963908242612998625380484416655274494810098333214891039072091025341708229832487162813659183673692087741663668103618753684456470033982321981111185684282605010666597485045222281179313284805402576778914501617505881805810694885607005648209690370043793547804048042153937190812848618080755833422984586273879873132690330281511247517345928640390009520196439787038803894765678019670245792461460170200398521481117680120141968258659437701989592270669983506276957246818209665641271308007866982948897845121223481350313581850065358286972225202218486909133373790695655354273114413089296241439046901450892954797312841519966209791635669705350195377923829588478810126154681282515165329071590041642203965973386522013551927698653192827262175964652698522859531529799653881748397486238984174336645361503916142884656739290458101478395414218389891084741830266001845892361578521026273923335824873173476542791063628830370010074116812294617538983639631606244452870275042267454054606067483471412955858758473102723470765467406448727857769725122042414124113537184026463181570336744633352041298713449514122324222055981854058823444231807334624016334790478341781903472302517071429720120869639351784565330599876349678784198817630050322854847856834952089678360809337997394346978144969934329965047850730639840405640606541955408529952176279498862300121229215425874871748466010595838015215791009175267597045606699170034889562833028943523868141026437964936317596285699432750136861067200165798484638017024534793775075235792601660006180887276743519766623617840948673392428372087093989511056478353179622077005503103987703321819740910981515443601281011172012007343912427687735739914713018527609840617469606897148443145795573300360654376338549407921678860535259512807125453054755415303562920887295960622954972161983893927434772585906728656081373663099858786966879872654456650566988992819242888526990664844688340392944515296179239173125565309756146947329320419575443162310405236084962734292686229923706260635006977723745649509301795917026896333152362870121416811750917502877780575215695454420829881379457454162557916156463267619211454573794434089555862509967197397081951119680112823341765606605643960856725336915053543246737773093251202864027105138200415876303458035224434005480735809950657079783312649479443918833680511390211014879737043125341432701711756242103501642149051921845499277243463964686773333184617194516016354390610141373328192688735199511030474986639140674699153784011486303469441229974815786751767951935165472012812761027475176687165103605242232624046644215186505465084823661279858924452599342500511207811607223450036667385535098260440170015426327846701910550239843050893193939682006869641512146769958189207363337570051715913889913915819097861784783651244958267152658959684750277757686244956305777382006974681709523325635149215542793305408053200167267229737883652701354651308705512786021489662645049843541495662749682965484550799687730134873767765887200091142744374693628835401306604913440621149623645654539784721087762029194392012507314058019197767635779697974378405268485454018811280072692206375040649634085483815203870959274266352518408410471303861961701117672536135858064877654316805515695447023349700653709078694076382935718826617125194634947499379265855524965052173808895956404669173209009048307180219554839853073026923037241034863871185916553644671519674632515867363479661627475761286368109903662262227981705752545468100814993673535813040830430677924427661279809493752246385574142471134148351490266694565625959172584545721628873876687422108468950997355269807961374898318768721483347299806878553729012175444778082401885961878670837883129531351611672386079804708108477703207422729933623729075836391492710191982415355769798394944235026992597759386211803472545471163980729904102209658887793624240875540045365752262314460622973504600418112541191097244288835958377102679429633047330300991334088846280219549374826101446819820208682110255644923474986913658982515946913885829083576011643734507802866836932664081456059745664644578859270399229748500257900512460991451169549410664601489615642370433071113051249036704297983393028767820336206679110710987948136336867081466777842571890659128423951803060411448834789892724131064788055550661978738184971438884912502865017055629390467859030450451351610336835126960406046073643176684586383375291449350254682887581451735420632234008432913068984975954800205341382006345324947134025310033687726040898760271773375718297837026299295500631065589601549508688892906215973321725473166861125899762553841012256123847661919133860129871706719638903309385984118917298725868187476497185703670172322139698254127915337453888599425864920948000484940766869952519828508616944170544406838673179871486469150592310635811109529772963709459411000076015850222888793326874665090554231644392234547375958951605824999925387777679561393003273233192930688370348878687867564055773205919350452132576828505839263982266172515795619312954864160357589511505524173564128936585067309192635584355915477249944761698514646614755858425197894565196286759243146516619090604061248934543904233067815661374986088447386795932835219229337282702586838103241501274561867844709948776480786916556586605854549966365769596192293377799121976690155838206350006373034890533363385178758261326484747269731906240594692788218525960101448612888237457833486505762819384806796300552831081166762573591613912811344387660541809195187458368388490733477068554410270296756959565301130003287923218466513860194105908873592213289731407135772568952110218256623537870878718350043540607080026543243282136376840527982344371426065280127556453490170164867138245119916219240704079177348959415381362930254243183499630715858562378093197432084906508733553533093388372228649692957566701903497527364627069413225892504635353112899388027345554992733898255610734263295273426477863930273617583773568471340334292964547542510314277487152915932680688068730884823498686453341856730923979735654548261072293623256605324818337955710785284337005146762515904688123864021253321583960529972002911228087272262186778390910903397162892199200263192133080338954673929610026946168671128933965354310129624492407932750547050621439695277479597413535565452282709686155431130281394913165448764158929765166834755012053080221883035795670662057438635698324657166431084515766099951274880974621593290677206318369591588320273876162810105210547771384538746963636896931312366840569473969895884008607178775989971998351604777005536852869873227962699537373050396638131033139751751170284157990428032899774851251082027809062858761799975426663679578839135366557439882675679649131948429726673188052029740263653123460339054689136838546176312827533932209420566685876575888635540099240772810791587918967281938483878661586723790496295399036617579867126703738921944596807149790614754586196341059285222236150506065525978957539953295878446012201097248186102724483914743934318355621395733990547135084336657339099059407398480299961855049775355028187938511971157495658756700212757643871408457312321963699979296209358519209531358651063541932008911427936705225561478034655855485939231013035875865027964848508481884297447318300992730426515958868246308620363050737165351293433115134286289837589584925321361973601163543113509999135094751673346135442204368263299452454310323454757685536819874823119533910032893748143978476726263776204393461448750573247615870117577883555384263352767622413116573875902770172410921101430178454354099872746201324276933604474976540597381003644713724537765159773719475451768807157665339649847793672650725284868861391807897490148074217004306454159483672560832879289439081030389563572177941852495716346327636920897982316966555104190085078294566393902426317280412142303544195142078607842712482063375811038050935355850479252499232417015158852364996956727221802367309350183987834245823658538815442599401284027690385322548991192592826672718787231408060506756081132408960152663950807792879342267062472719309437684648407574472116686994209453648187410485056599795987829830774699824714018555718247059148958530048222120895235589145973814964070479939856189528044301792989271815594532585813601146654099663060094535647114794821241613710538024474063173011523656473598140532247158793980959182234042019217395017558791150867841727871908280560760442624831917955229053829261605838031803666950562782533511094014743852724016511512911548623985029270704971982209370577451828081204693494789894573668456064007875258860818608462114134344515438033263112264211702515808208662101176143333713618146450172660697088909900321437531729631770118681823164555944294870393176634793389469516281964588008921057792976526653218798565969573697946752446279010798831664521722407257839424178230088778113113584350212546127679322396102052701743622169915609482210981847147537637735887541704883185706824065159559260434507987912913061862722718703823793121610554996275596473275361170450897484991796050349133253193377811711653097867912451480275898060963813414235851855833544155998936383003963246830537326973868756324061087689562352066893488841553781122412301334768080681627942657038462028959757861582769705205753975670980410923128670094956242379483881176889727052833260052031410701865793766972999155680706611576840846658750355557295240881059166762045463245940837739818913111937389349616452258949703461276057426136007410319945189225480783223260259611940196456977989881358416026399133143851485951065358103379540560893990676035450672859955259782130425067102811169492584422326481035570599333880509885843038324546493822853877185501633830027637971794647296972572915891348860253612037138999177013996502644745354711704646775562048181154426293614245033173527945506215058768559700259333766229006792304452712383074300095332872640718117878129259121144954090163570432630846205215631175717236959963935181136642666301348566122622123067150717600110959778813087054182077927289183511573673759149840786610151443934698852673891014220364769472447073735063489802833177466429469112386173018245755393889976693421633496020160001595232232203180076047331825105800418936319364263741233418315646735387552741857916767501466187631228726232881351867756525138853906018707536470945563840362264231885197896418117131867238456712203565152348812244361593428740304134867735321811819902715044929174874929478999565979053641006361255936387799558834652786022712898629409984747973771810405725532836581006546932720926454705632821154823448194571949274059103657298955274789168307997233246851244982110777822911574489821576314219863411916909225917205524274583930951138397879455096892119149788591483062602592927816240353535287891262743476927085579131469934957728333693282794246019761712442173457041180703606935383311082169365712461939012988069516169577373750958075347753649956253168713715988097010116908840606241889051251268375144991992235540271548589084929287984109019902680724531354118236183284112277646749721578109018233467652228530446447830752192532637401788915162782395452387174324534013314357984596018306876127611240500058858471902886912243847062249769408858908944125621923845559610015637408181599143103138905169066615750463875487132713521969428109687094641197709857727460392278718772703074005599498995698079155010116003327238942767828012247886204242469067297444997688939531719882876634178310197725368059359509027511153133070029303775940268440940425278694985780051029458388290972889103225828655097877735835528963078061056500324186090193431288734811541858150785477547767191373334052546673262082889241224522008182379425708473233805427402387267805589497452778417695884171848717728694354567496218627402389790527737356825580675199884207810921672437004403040211686781293209407493566897056674109543237560127577227632604306341477697127204698220993845792820758356270031652071851807098721761793828041719094063460382717169627058752088677166063185447995163135878922820842929462559696133915980075775230865344306520986474462627739440318332191660179666963669793106215622674310772371651238807721719045791615251200535621533158886739692271517460275064663324914722755692248335026428947278619221549125961757601034943516169147281435836658569689241022672244233420349044284072342032381114487780302367080031681736759216953926514536204738446498335141189850155944836838672912963412657298461535363931912144092092770339678591471254562096284329384659713585395385809786837960810524729740762783953533109171559869015037801011194947370888999435853549250418108259715114608504101680638534235591139571442373100862189429616198855196576630452384606250447550748793969444597710188405632614116065335976734111765074581056892785933248802057325220744226005968579874299366553402763652773016161299872674934143857346336636171297464865479681818374762046844162967658306815177476889640798268825715139290617474838225404130016967686778045087638922218764919013870349088921117377674975493937660285826399772337532726800724803068452327353121859761026192127553208916283864371496467604251883980698919899532866445763824290943394689457239556327263784464666623212320393024283164847323102855798491374335691855811033260238767755429454846918781543101814167047120361818263202266139788880601303616653008514610716592412533144477689657604423865202528774563757448819905519979974447271329529612419841656698929774958909538335639583059560466052696275420988627053958124112894729549555305571649325754200857027185742984392635229648657325811465596484831934612398897129141440117870119933105324167576388149731439697575953953114229646257069235308059294855739709357403398033528586612856942130434603283565477702658723038583549395789098172487734840466103529449384929183582004459462931784675683649152920843057948528030562791257689904735678774210075768460058350537126211575944700746080031205967180052161515533661367255777213891479410239109125435494829762541244806833187964358112029585573549243153012413992030864819162147778442070654601740328304927502424936930176976422178298145178111822098828780187763471809830928236518107087924087303569368161527181987087225835899442981741902667692773456944133974450364479970468617052325193520902430607340859603882658542373683724845288235146826301419954938503838088482591867245797940300275619147246999870834806062228417553401738927266595264693208526306235191486422328066488007676800275611274188967042358881650905670860459761656451665755117052545552553064057957998444222116961691046727216014314573389986141955356397294905932188448063007465662783411179919182728119951016504687886382032914805987215541597398836799409905913228044221814943960391749089505521860580832342993510864811537611377188904218267487737666317520973119074606923133237269693439422224122249849320388512201038288858855259813449703919389075455922353130263455457065637573767612427589727255580740796651617536096470529797336913823558125476496226417716322085599851865280426342843632505731755803494446675175402543041484899823777296327393000109395144069054093445421670350670820744415445804478869833040757528941125755184482948197299864961303868281142592381414244518837682742734996580761374846970970355998606883744326746030694293404676411575155819354444891562288348070012205775784343523863016716645446976834457016479712820777158592551724593393002465286755524251496479135629224149385449069260894738698315222988990444884272244156968822143779013489454404926965519698382503417438782917564796387936683129880901503660153485658255598542975179818456783658977393634018273568359884647571307039087117300532356369385543135715302332295807030136213247587436608411376517175131521081925318981213240288629934555010160886373605051785420091382938013612632734964167007565025728110920966311309761150170649509070795336303181809431815467771207067205440800945572449680211739751689955890456989727816876143433671304720126460573509030905106938498009376398766294023603641032250517278892779360294640706088642568861030175202473866820610401533296102748407949339860586430314236333037125722161767817543970239355899311882848961989366893065309535510474803151665144611347418718198301380749895894489825754962595431694323711592675233307848517882786895825989015928282300068466828037865170128934944112268352071273858695710593210947247525869397332211414355341603823642699069473270837587234635256108421101590649697029449613106168658956742659232763771262833757193658961320883305784247851056176853755685002064097495757477209922495740452307103591666283710382503862253553925605050021326959362579132992474363381715247186172292758592755037792486486120468134459093811186551889902913883372764900681875582985162496641035845690412117833297297294628502383262162838823018693641217390867585543256192451079660284384262618292935444504417612312929010472153078860422533908681134062829623707120459085826546000879935190856766116390336562285369981211817431828101876698685318895957625715364971985556938110988770786047668788741779925554353238423391538682446811633470483365369444130962215615581836395027984542510666500593422851585631828458419392589208980052514102346399634097500185064174011453534027996955864304829120303626912084659754641964921543057553203355328689695355162137324292219702281588940203160126533055506853500591147667405957253720165425326333632170128805443110475032455618003995661232641018630369859457880035413246541698233802206237149826193198725576215236542627484225813064235205215275383618440867038594231554523583044154287867114833872621768334446465591937807638685415386413388371665910285887783510350547672707467946806169771032250932624396247785535777752986668336238227120553663998107591971429935135912853553934724901878297726274330995524298283220638626080171686128412951052747869225709262425429231842774727862264438384668576376431745234437525712845074336756535559087549110101922615532257019085712649490813155998035513435060754586509982313960303198469089128650556731684772150100785189302627592539655756997630197702660821564964775938762973915771075277111702571877334152538907486340071971765275752066209270468660338995873870301961401291363502586578820787128214258868011157424565204025299806143834124121338462796005996155643896138717106718540013415002409908909512408965749769488530228763036539179474374369436026351840466405676578000394651747679034581563208596443060148217570760886019873072944181787167375496307173366206913234174066725824790570054449350389157871089134069032178431350265553154186488821244873023970766775799797782023999950793512220262294300174660315389659596999873427652055860578142428862287006827927765937063933521311003886003001582693748180458049934297782238044786253933332058220056175307536007991795767588842115229949890583363576953486653953910135639503229963364980945755744721523142953756243221035969994041767157077600614627209121554444076589400174370541804053750694709213340194138793684840735534774817180933952555319822902606870527188424404497564198637635720116635513313871753284726482151307916144099628584450642974807667319243845787430935195898823311805351672381577369436450732290248091069618736981907602603004343078562376840795795826120743859154756447841258637097721659545484215899786720045303349460579869312204514531405790417363024565170452634357185567525898900103800781705835951198034012969266394707413406734945832741368899326201177409110223489759916327983787323902303351300280479965998988277781993020251732068326044282349907812020113462278575839831746861750401463204263924511615637318788998867937395664356907701493528159186648205129412473794200348333817896149165758017413712555292637200719183397971893855308947986105085536535729879532448413222802091455529160380826409754972075117604067214090915537646508825065908806866688916217880541655425236675787486173661983641905379316050818294278891934987220282022185720250246508112804467273664022030915720998486227604181702604803249070203320435118032420952816438607927974673356667010131504551236301982751900002729651151781461794182142239372584556776435496067001326730759557757229158213798471712454942165221002172972054766859293566549598717131930641334958060899166675887398721762867672297511985806635659047681319243224412754203601407920365768369869019762508853799518827778511687007529918279495106323523798152917488404607559708211743942000556469540270575570355723911036512778935708826772446400637675647238754141130634824616276832320783640365501874688432703940573376207529679615256690081832981427483739938512841435092848728358610579630108905668081426885292927094685278921008309576937175926689786088811293868423107913060353145403594226052037634929845916285550375551878051025867777443378171080387648198115779922076001587148296166875803031358019924134130950563896970133284692318145643543277201079857252565360765194475812985034728580624785195565429390956452162854807170320194236686580333098864986859239460715029167629619839717947618608862540247357528319948195186060974651525849080606901256760823055768477440935391831736361160742522724657210212308728732164800049780785769396482321698428604041501899713050952322271831534441895623248251563074286089182149131085143643284894277961923986366304081461143361287992269053031866648511794090771748393171368224710159117567384687541267133395445641789406951194247289423857038961946290641794219716008038659775941711000534189547260978636727084036426143566455310237255208477338283997841820192792088563714913901631719977343931753209798368379542419318047622420907980649551083400320788635848867688684131457148210352572603311349942671930848235811791051207620948619460567695466829279694584324277988720349305893133075691965669102072369146482535668681319355114092065632263035159573545068911433913559939729940375840177850912450597224599017301374626284896899654505326161240061292265479368868321569221462090059026350644467837308509533411877486876494521443297666130865228286684472736832381786954781271673041051988484085527852264545831716966787305259730944943880907135299177161117910670461236395792425318130193004198921191936703804210541728245145484595300307882178145772432508029026417006687495462865932754186762473919389797050139656918984554325946775330160954957726817657636101994886885108707777274635578769836668139920891222832294829246489871977229779596717098028869462718261671097036976731281289369577576774431628605973987608744051095558354742750855555725828708324409475774917515102222350902642897233445446269034567939825292777312760655462789460405120534207100348823670270048218016345566177782836434530450255569552021511286655044655277646912792372782130168501183240439900683886527955237945313139207501352588322920216319428352004197489172371181052090313007420820386506093266692018591349332368307828532409038417791785004598029079137494211394064435507660215755673863558132868488640074422285283914222873087634158606386826177373301054105757221904032137590065220845253647950870493175069892443489244261084982517468741859849978884554249154574888366205297158993623530561889888156898191052725839381605425878520067860103727932228672165123551210991806288343744729959567421644606476663348330922526511741946090772082433176812223143355574351013476827873731204780451932793514462870539039152116956660120891811203671237065246863770230601971433881494211272531909204391302936924472018759978281145525628588092327563263926928241013698203279925024946721284124569244629006165929809623352170823762006595294979509614245219230499247459730949174403225832501777299309856459328329932407714856677386760810298174584950892091929015217320423161892173356905416546283823268879505907835412377534430608155118038889951730513490382407966067434066774724656351441185678243017980422118058514519204141995759097580650198548252774665091651386260082133579410460960073596442200228704556760299860441059989996236015234897278993519282747828241589001267527744923832614876283633658749495423930163846446731983957080918349947380604628841290201930165581437031395429548619427372119788637278661181163917596722109300064561088578562031789157554896827516911884606135506225315472528501958163992904600336534308648569604630221558253807983386172770951013879772905650721051581635295509062533781507990039712944873457858424757513611537443098406464098602863086316697970826014244570398106939912548371306268959890014240851897024834844393850108236857977476745421224404887490216296611586165787934761263016983987801899822859778014428223418031964356863645775349037244269442616537539031008734202625879220846960955952864669769890155834449694394440619071017458430774202389530161410687712151109006987937312953125735670802027895320283016633998200175890711299948376435579704177168547020977242939134651244919448962447279003832126900051136292929690193834084986800861096586729996444769608514553831688335929971356994353067043448787220871441611389564385446151865258643358657968285025244697419395969975172688393354728928795315508388304252355988812026373660721565171821577871293914225511062402190536042498565716910731672232087773015385224692297239980747772742043448282507195438847134740505537683848158968455860137163614961570342053809322172281063658894076842829374697745984852267632029197521664998467477467549923117015109159408772683040418649686852153551935633426763809657066757870056068285753341830540056684666845638648915209124822649265465501664269875883621364170855405293154965488956757257368005308861821551060824855977137827840829436228374929357140823857063596545709644450021323367684939622086012530149879717927384698580420551262094762399096219907400742855647504110816770966788047125195770106646051178098142476179292793228513885511499309682907454124582377846526382974946801989397173606244347966738710925049764662797655542779168239134389364324701048466358521584246661982990324864539080671741764825683541273681173701031612483581704029541199943357224401180700915676726307062406810892323224681007035807225491209628793981066788837577611555029576819037015100827518149325030859365912559721395004483280816442609610764313971514501617475326767203138920227709348706313750585967096088184896578329118675494915312593944771135441937374877739980532823412895808832320124012995113575449383688798651623908715737282884108012478372363139382148899946463243870813841311541047936717434708568535945203011167774058588317444900770723620222797778633311418094136848098519852108315310069191523910305204172017312151917128286249618936553562495352425153841649484809046039866177503718423905751559412579451107305006031230758633492282664562118163778717090894814172777408373647278566668712107311794574435284171456896173549277997829321537585403603687258941087165315522428688758489145802240651207221343815755313614466579951238900425001465309198020149041565555336073322526281539843054166870991472185017514177171484349881608177901436659606878415039968680257154713412841204202088189180297823998899178205159107652004701636931884620617488515536469736741134951544496829582626818005596155477297989839983990395601713279219892443089399709503966996624462457196449076667650965642482882178176873052351962424363378855136915187947268773994900003703407400784907069117912566902123199238391807931412673922683270808160074352571649698894718094308056252003381520050341507345007274349057526747194909789042924528134978667217434864142055296741163075814273070475528282705872185240772227198209303151579175054390241724561941711026166429163467846266580892201831849510663980978009091372692884580860634064388119559972160082586423332576646586690773869660156189036960678125644579816575927207510895401577620334381777754640591964228362576578235184202528102405514351061438911049213605775725803838254089816278594015854054713069749982649257263641024514148223875892922937481140869171135730872500281973635690513364714904066930557869526975924854265474217705905527387732942999743677253481321671063329369805379498619365895710697288171263322415819212445903680044672937537394857218671655951429367479860835336071592882848814270757530112480241519138162921101056788492021675400172436400078817050467477279189092264774782415422955162368360933299899112537721198188198833832844558633600474986969352509524002395202954442784017220036097515088321910447152738061001414800956632688370129555533686758767641368732218222986725754229131225618261140954038464913601579043894002182086416125366222358769906359495177924853456445189131604375306732495012612858544489016777132577468293135943610837685766846270211181246364604279515684252905322833183284065744589957195220139963590865288511195199598075657434513408140789440263786489512554078478886401139386895841231288531168316634564942296542960328767040537955269890948076323415416880047683810656137971274316280727823610189506552559741696587164008268491556491035251681341251624595967967354766119446745263736364744941448421549609207229376963590996501694751027105151177309230170792254006321814619867914587344009984983724893465391881987323670427924627192687859574358747346662633120208468720308210510367283140260011168829390802427414958230193340349352187763720730462223599637845374944976288823558503746855955940974777146583283505429971997313396756522642907664108449408645772345193432104923947043160131417467035568581954717764628568222022187398170816194559201115758568657509213615621710269831978730073755410481512546808087509950357856302669156017803379463692405241221163884220783555356360877774603041653315879122178655443270123180893453622909422179865762682240575498598177274516427182767555549569830044423379472514804171369589123100924205713005834435786792167392058079576580156339133087575334603815339306143253910707784209335509741302744511048196343581785042714637311902035500140834892179260559789524940054018519278863782351620022400387808626587107322600687191271506422264003337019371734937991178292901653807912460072296833976303975994640298590084897857530792802394310925051570572979044484301669480515260329178618489703294372646301580503982608531349404952869608220386383453643653401309985925374384435123415806102724267539748713088412553217492332155010899988099823288514583996373141989174390160949304324649767072437382608818321402899070427900556826132828673796841183001236189632213160714228197636139672497077865623573504590214502502046361924536891172695677644232728404626358505826047779401925342812429899234487366611805200467575502609425142307600865328170656207582255425942744134624794535935298124972453162810717357276520179076864739951999345675053001449960031581512690624424544552163739725407545054503378520702462238421302208612193627581584917872489814200218504628397891310399597576014760663897898961457308007435451993656259831457208072346627414768765474373451153441590469405155075237203471077276615319146536347314300816406700201880943462689080833119502265360625539139007954681768662876169049718176536575396874450131937637406247399908969249379617923193091271391622874302360304025140695540827705242802728730828153521795200975500159254165753968166563502931841792149521497274362395717405724325469463338592861917305482082726209274195021296743243563659455206115725732803840151072640645051466805586169825694556444952468244843314806539139152619374068456876487760284070373792018813801019953281642966978524342153960916255015483194470584505570140693667560173593293446166713665007639203396964299278280578126977180660933945618968126269674743883995568357667045661960413307716284809306238803360242918181720987862318643906482353012451956800926598137142839560114335922741810964738036525047469203539652070939138074930858451929646183611051088503297612048628160871552406991462661807941073110464024296250992405494933764839530290371304926294037173010822940895938275314568717528525454965631146613218430081489251096038320795025846812774093781832057506559833846346345852955215133889828017253928941508962332163190199792193682001694501858431458944386022731158771183115388063881258441668752003741185691869348212656621138049103454617807639924290686982535269821716919614892106720521003233260113437654317559472336927348949961640993456142315510686558153539187611290730698146413418417593554985442557708875147925846107722601649588287517426401752944604726764333670617548330430329871413603873833870696131443628969937724081130484639746178089435918600846259351494718498908296349163363480484981818660066531810840413171659118982118277133623229175692759904335735368500310251986732278497506071464867666430384238433558061728674859672575856065931753877342682802726704698585174122341752103975099522596064690541171102939580735838412070164726709156343983318206877044068955647731532546284863790337004638664962397580619772446919339487915460853607687014013369475440483076182764574641683720999672540103916522898812177721808870219156111112766724636873628490179573947152137495840811848346278157763634379533548023387595947121887236846562453905578271654070090071491748476006035086235404946048474226430439097857313156983729357355990811531476577105624016474362782685399184720800342802435682531256227447551986593875956349648847565458776071606505851871699664594730670738944149610126591838369039798901000153853947427578982162928615280293921745942398348747327972590862724215726194444202063441713037486260002990856891535379328401362785384164462814016565356468159271978539489671701327947090274949264895247143633208395088253543070303849500821171774304140115632914583237624870089147922362841690023743081083978757777369467585147714582020452465804037675322210058460331205789582407970225619647220013574660231050605990173405373850353682865543600370466703781127905785164789884734103341128724604906485967466551612286129064214144988625424730276283516572946392139632194904068858145044570553472060531310043895318449916988288890136160038714635973930903824483740531437929769966014028008056650680792658470193005058857289350184124174742947910650114631897897733303331834159186578790634437271707552025131500743812968864032189322047398779028469498827448541763580868083549704869686374057370080303229285170040869841525278726472897918719466831809279134110258147304398631167915941372841816512321280584663782873763174252270339160725550309850339410997256955335705682928353953404033201299772933302329502595084012765887567534828625101480866088942143934991980716406691940472454136824172335470807440028301628453172563903459364089189837486475459655773913611202710363891662177300495385276675393561214976048932434481942892391613275396082913227772453770926070847908781001894477191612232578842939283753809251794861865811898171630997340986561427864852746338478419099812825513404059627896423778859195837483109285986789297158813567065404546138375578763333440440643415499837748664962050038029790921474366386532635516473695624208272460975446694178524796021394630970108255168921379368593904488172306878879238964366535940423948353614812660304748187216939456043432687500010162233693201094188798905713660043234986983923002138361768010497992674915577826647898085062808943746584618160303715308108488798853018861402683119229695652622581519063929114874410083191003848357044710084937357132000126569794414544160469542072517869721770690297113588712131983432005898973089090825604301801066750563090222326183659333761328281915874572341158200680688597529440745466478066003217078303828500399851202328416734797447863817545016807019736482672273432359898131972110304293321574477695742705017360418509559460498322294811430739011205480719007864521323788592519468870761296072015603074816023169082844622546917306141576464669157431013877530526545932336805027593921415444968896417113771254940563078166452621025915144001219153122686856269903572357702252366090189881722421471530248767344303748568184234334739439485224331457477242314990398179879999778492730613449769608122457464281068301663070145244794718682050944869666375525111594304677288400125870334562284546116974791333468631401319353015212555569520149963410279991821117699012881957133781305516401423051361928940661766661284348012471126666983383535547252644442826096530372877620565850129999394224950497239390108112936527522004836350885003943984336779970740954888196234465296377604403354584605488021866966121716283773461619819954626817514986782194970770350405283135386126824251324318444496997578127409778304532165848019789178601143121476353687390164519497183296126510372529561767493239745076543720473683243809534576748978113610836349073963860441327806258087255447204660265173374337940067216612501981978461473203603423605808592029526257372910136276182089074651954466368005607623006192263650642904875173762019887372487660568280868529258748358196716420275465520038892660023280303907254876155879600138332871870173979532227712356562672088295743815946596104890440539043378611438831003186387142292439784468318462899365882997183332902295878526339021727204482011129974849376669005858115485037246815801620224749241792668910426901038248786615501239595418767617181210828198407734522925994254586116848196359941569538612784649663103018277778491796855283454710482224028956836851954116367866880673136525065561762014238489996846245599356656739796313067625944378856147429033774751677231575831084660736300597401468644516751982504016510570573729981026756346785968515680032554296790887887000345930081833111140211998569331989126978745359648589203493804603862570739992770644394461568845617648191504599691504004067436664301232980459902038895127941434191489549364310800702184876326947289977110189426104529716822930325658546968029532846390040832536767778517874991501139965558863998596206909583242723424686691226272422040668900313846741495756282590380677604347124098346606658117223854655666528068175633932554499244019509697595179803495526248908353007748330133278685126317788472738812852310504245521951300902126908334360505783882706186537088253147922203033638440376971961470845053296505308168390603123236645701663692245627680589189759712743331727032351280026191261176463025688727305915822067391917881309529972319383690907054615768822774149739090803132497602002232935277715449395796238840294039742664938256368806204264613481643136559774059634234586768347922267931510546870560177174492813338465764337830713921973206590805535279153665802702894390155219839298483969246291747729051223866398563960955021582255080581849131885966833859690299482153189918517318907189799498729155005308538611661151957808566690889204133927831407888587611178178068738926992968277480022165858380776622110585582480320830013122423650847482368615535118244383319507722197283925790367138091658971497970915239242899923299066517733779877997234626002948612605986283994823143915836524223574280993478246227755977808502042963437965843644016280120838505458123040473851021749233056444137412229952982334786577626900692952865737766619116401857506546302279067159924754947822941933108044689617271042110264555233035424687860008442330062756897701608075089781691271966570062436696787247166432039174192792578705161145431766630465110244184383685210106113272419709013168131357729790400212776157455127199099622470899622775199816460669536586840590303251302209795437964416689461540760884169601116775547392173379081560892438361994295186195311919698278146882470100635024522812212009487091631592513375499596081509083715373898848453832465085988370547887212171017464528288694867578685919451143766759021534842982687260336656570665229201120676104489843321821547057628109285033812216345040223249967219652405319431280167035492353572944836013433189803581707370169502664601775521014123605912908441512627386375794356917380024630704088752793995004811246209847558175567962224158851767554003301783987842845728815023142343808790192219421000408272723531293790851769810501676928658452881286036752897338930813322614899852743029242454157065959573050412828784945131981547438491526080171070357536519987701183663509357468685855955732648643973947167835084758998441808792310621302496936681852996153187416464348766498754182104185458752393901996699176053787369252893912233529139667434706088828668419684517822001085208613800645799106837250262632594039758635978010589160987372443028440928102805146886476752297473223771077236045132689933562199131951003301817421025305218276839701911647827756524917256664761313774030241266286794975715096857115744016662010593940991547216047960735724559488407797707391685938002500202388433805914860871562054443408565053872448214331334374958776580207914097152141307492383255235742551878706659988116029959179320315085407929814013586218804652163190382092789582353554593651296103893266824989119409651094033995609075286738139112614841767989061821990505390215367506437149990483085088212771606830433335837147454772777979155679527024644474182032627470192150940536209536696987779760014199389567677961915330174446871874824115602805095897510943248396475946278264732248849064537653467875074875330441595866156199463113380209958056818699286316605534778369319986332203326291765317048285162334340504852063378007767066669028135225298482775967432268000625670371407816489668758484830584974742743814087368358850331199961445259605525830364539924832196239963888228588453513128063735920083894028952233858966993066867975594257165713991488816028936041122818663419727569317002879775501743355694156770119412644087668126976195133504959346232822600695571563420359559885793715625756597916637525342829581443792388455683927195110987575904748425980216404437695885026049526771635909580232254308624013143367786205235653879521909040176683505748001151823399837010840394123727098265255062465382179449904037476609060257677847546180154621806602265218841342418623272809052140035450194027012408440086778690986586614753162709572711535461057735522462533165863192563874059275301931136063926817170689439710135853863025943656556020340592859284395638776227797660329885794879912380952442548927277871018621183588544059065634220776600406889740331457374103281205869600445049401733404235977957735801883824905900001245872592626080347588631795728104532702861585113996200209890854638283918715271324827753778347313354825287241626273499246883353890552258982555840182487614862991233820063478554110434620156612978471568892009276011397990408385293343839862864581986949433200817725389523877567145606509420275253059078512673433134797902642294523313653336974528692643227207585501273460650157369155454505694502179736228274067742281052952343851007522479039823104368318337141330889564144012378564685348549349506953125661046744187895038184430663784304598962414040536831079553635980276632137849358408200436206815072071373010200087457163005871164319394542195989937257170117792534537968358622806547378410445911246868940722249045688717102490307111364807616828498451830086205486840895441888042130304298177122547210268010159568271696390227399131107047292844569838132680830260110232587186631827749124382259939394150750134427405617924227521177887050082045105171483413129581759598881629060120511609329381303165133840130336471218462030419016559999268585962229133696564270402112748139916096219894470184746975301623794734262506191099376259549274325606174898866736305243152225238672098029899729996668576865735272178577086522708362009373567007732663385077397371211832903029358027941792144014246433125021001265422200780478334524975883111114522249711030498548977735829172589633611067929025668998214588786431285765185068926298654642155007924213483283852952889034287450255798142838485225375424388419339140552184634954477203568684545248277859853389648770983120642588385646615947881939113561307306566410028635254813367847603238170503339460519914635236802947611426820489113371062214112534345168186133073556513062542389209593718022598970241903023934052393428541977070242858471669389251163344086664190747805171741054335475693147710057036856526778137042880748496552499040839433949566533784409129883696261060285546713817289034911808074713033544046943488195938494756779704102182110094859292143178714245614466525475875828476374154547469298259742814606875993969961587582364958189551869983266068970123560989630321447837721189515875420532778570689048855885411760779993078565282778953629709086092179830843399995789832565566556556704588572690729866217775190982884126353241306367182849622281568707557728943637196169855080579124642453374377224570058724260721033275441750795912787332821468094346342770861647219562998967818857718075110636512643304131679782797672204706404516453952766995541036020850515475507944059400958826033742313384938020880106358601145864642711541267186658477570703216480240696807465384353743698134226623573366126635847222916173077835630773757472183895344035087304568038232080569965351436662774970754199013965986513390789815729216251769885080279123944181524459954227657468780937159934364940430084593442269746949090199637344204886522193698651917486912532394312187489612796173321933544027809873147188402145151487160380630368340510836981569912057575796887227282444982673879782276487671034019279513599575484633151511553008099786425532171706272520843347754027707278997224559183979880022946993978975552921260968041233994979749551693412068981841587476056756662205882312391633924780434984504249244308455474556140996637566301815989436318731012382914566682256843791757244608589130182972905644522374891249002957301331985696821572273290542344502864206480290598006884537451353513188557662454152000933725004992892433851520269782289374036260416860882630840373996653223975775818281040404453301954219397263355733069994886145869808209814775290138687027361711297807391356876173303871675242631213811032239543060088540763498886907719372298991722353259907776632059346522136831330454813455517289675998919778442841007126593563055378813147284603645236329100060621586274640675540490683983685276055321595518224161560339140492169681986939937159981380918624669831774274717897227256309810811143931235526352836621033882677867311499336384518954625966382699584402186268675011861990784374669397195074948724104827154466913134594450396434316801640908235270621179256405696703978251008392041192663107158029370182644203489103016041362415517692748216854834676640870091174854567574506228886071812861950500627614149747315247789608052134130527778944678204745914578656226519287747742956817655707904465011773961089810431589344735913573747828844695873269559438846760168647041891424260814560019702639376165947986279125341159916252711579311628286084284109164300504363795387977110473074842688840993496589010974884667768389065612525481705182403235942777040132451245836656632764214861064738810067955660932573305726922713879360197740463058227702888037637396460074709299304049469149557567426399931101195571778018547324400325240138377029990473893976773931658441825947245236391039679925695503310017049426524797816199110073550166161693531405317976842275328510487499178347872159047742215316584117006576459966573587893325014817978407418880357358814253209621530450474161910644372878437731424218470743573712000955508693746655235688921388648997493038183462542340003272040002184837670066988733809591190437330704087281903103595064279159492277331964721718944632499537978066724270683654132965988157018730031969780565331669704559133510102135238979139829736219657365768555981175948779677329794408563331626559454221102111786229973114083747682258307437908079507107615615109033143509868999290590930998015408977554466559129193074283677746097010305675162363709777561186932690360036767489066915977522243936591745268918736280338458132968950099332438465376199484083717383094012863647933204829026422573567788673356059318320694597135231659259811624390100517842610771123390609625455248631413337103659572100206374819106874204922708160472565512042025850429097836317570454753224800187698877586582965892826558615896454805438203098444956987929436495803761599576780705182002169101374658298581197684459666124191661813554497852306986366842652996903432851697472141526059435521559065628983153184432876414542699927384995400582899106577474741973442411726352822200372165046394723957917125052764085532343881180459312833589603521245633541501198284919022656148184132904306253015669319331949467427636383735601906336686616267704687557292534530613199272463549291378826888014563436843925180086627401610749973374793597040038583385189859714320571546515241076938777988342009007809302331727091506882120183429710734020960457865229595072706540125039834089401338781024340069469119313976564426632618983536691882413579693191451276408980476523351186923353972593969930992572998668381547851360783844176095532003185768842035913567840984764495260174579251448673121062833887072832958936472419751070270557844463806684065445443221168348553921349484154567199401121106800775351159027241277369987524704434156684345437334151678394673460865202089295357820307194678282263126696308259540969876509739940014233171782199361444572854668771198552628507946239286587118266581597068431770333981982876505110868104051787690507752102727555806725537113251801245001611500386026655769511292153177497548192830133750124003276100134564622196346641323787905695779623586516807721801285999129383924717138121188209734619879001317397464313355831223095551568179440158831047939592328130974604267360587285091258343665240396911112118737836776526665115550114288084697174389774831989387204800729044260854114481174192142658592658338847683371049857428626717756548224095790351944103582118987507288996081938145204727330489022554045487388018331350838194709661333460780477358223844363806016016712205358721047596484451701800092205332494083842353461489502817528086543588728854741618376612300819093278093034369424802180645075877702841899596203734213431793343309017836071662599176102380652068407929476765535072682046550486594498083402954663413103250931261289899565540209946114939692218799131738452998673682437330416238774310221676886703044054082613229959091034280663070119737981519360908002686021776252451151646544471679739761518377913366853731745669782171146590625172356933294886981468394524640913603914100416384977628716133969953947450516978700046352334821366572473746650915203926711561836246622404572194126923427038850452747061381571101815233203146968102039303716779487750184003378803502755936311635400095670979365078475574473693912675711885797549931186693488028789964064640903187237262039223345514964767889255284792617776582995859298982665111323742959387889859074824886558949336698656240116100484013743732268650295942022765680946179234064656310358093832612433652043518414889804812080720157329478820152945525980186411098956503760382036545734468282385712257892248934038729217166961368367004033535854249485165467237417605332653389946779988659358487318415304513055079751224606177845448287247115994281225317941992024291469574977493357403348979295648871428954299845686738299112297394137150136287818450035147666375485055037534973486744210928388083205771383670267162007497986695433895197408714428100888420169414936340682037010049366011813180489792457102392348370294628827215404939056879402609874473918857469821285266676544965320253268436633829928807559475786804027208225395772512901776569578407238284624050924268313897968434201524327047713969787121804386728116436390665365617217044959920063993557244477635029026645221319233642508182121146181786606408504117320641081087823990584896970190101525559125541480959428995358121313343393953243413137705160510349531885314139563936209488381971667052158259645472602966767249275721082625893227766400676036509599355231500618463867254548791414944407096220975634314295756904775900669661223385992085732383476321933082288433629921615360188071311288881695137984548857764080086425018061849573224654524537415364833025064404504983640415659093459254673177932546806822232125706166843742375622402735542812366995822947088911142320768319255755556272752359593955233547331067632779214842064936341958998118580775094897491783384792621085335294633632260921838642971684101044685239235345737902199749638739921212210803431294884564298354604760202897617318076802854087186567074010036629961227593162765897950058445156558449617796273462256892133796204422293857062041975382828318440293929975348116480378726888591680374990384479083786727838959499377345526464440878164834442519294713486693836768060272483482305900176859076690548385989819750319252841578998400829549152757314554612588117207646134282803271319858832484135675646175613383564934256135134541286083973231627783950304120116255300557607570145548018968457182738104479278269128795322930723105449280773144447660105550586659764333247047037451180989535493949694453111365259350774435221621965831873907020217903464427715718788831115586646992522153679805147492852225712724316311126354013424544789922396103797133885872992308452134399917789471937148197651294134856385585100939273222175290445106392956224273420633569138920021479366526862542376780464595918165582677975696823430889074603537499504779335920210549372366321626860344610473206937760148103162230741770805902577357506984095134204951608166806455518800513766609551904031729411915453495576608307944881148212794196779922917842522535306403235055847597874487288959902239472845440842727028986056906005795298249366830668373985850636410995544694149486435041343193095559019809997393408588115343619803767548262463050562231442799024294184795502798573536047297855938852371795235708038744896239294431332200467882264322591631304030957830705270144365290833429407676772126284873061735556386209606474613254589404868475461932674438076422286415296150434120962505403005955647214757954216381066625713446510516345136197890724199342046936489474653333676118206346054414270995634128892608455131596127949648245729501940745206469364265995059706560414064802484066912786101258181717064271232279427799827907427403347224853870625146493541641556808290279717222574864978249121713929850902753543108527851983722808489085721646892155924895107867920601414380841682411336763315276679063075567445062641336978030083186552347646180028191429931563523345853789012145817364695434998060620415839543738862967580671764120599253328266062609132257274454513977345663881597353267814730412437847333287943655304829997734145609238976912981671591438521825711731510038505006895997362289928981035641536906691404872027890087674653898500701790224820844491915766061653243414555145159065537411188782945185315757124097570907233885613614467858815877726830845590424101045366888951777857038868690934320171136457225141012912096376413790813996487479807162623005137503136288987070056092784655589361106709837741756364859020894439963234759211702382278780561813735625589350923975103404759776437130138006542629168108388052608499508637710254275787846614328730311303020109241519284544487150230626211095692102294911801017102315614762530961825794499532326435311038325706062143726325244144794832005828684561308870902821834860323202435523986237590998166400428295996032279073960985386651595146524048425075237874764072855672893021943602176924832242643468955495853212379366206719189117829277478416096667338760311108799131353359851880201874476416761934532005250326831731199873482323018425738543097945018475740049451285402326951770705246471779573910955561025367056492992647711161736840923395528621284569193811636074115281602312942592661222246503208364591401786120030720382262484725841773457715418552857378071456981463942666428986532046025741875460116929718126557172271253068083511793549860361891774696228600627766814935570680095588135522584616484148089838398043325558596888233367044749221704266062826066331559608165038294978952308830449061227016819383434046583748931507457507235865502346654548606083695663445105241307319747379723831211087703323413477908683123440910396101348096812867114638752939914540011397965718313702076671955548495281577918060839922458175437585128548026558418068465759842023143558167527477628063579972361564133495811440796663217101971879110785746429492971428226147746500694160508928303029576312720637695285701296756252901520750641230076837716644079202867541067084511998140083762216616607045042998946968587508146982837328372393751733157349003452980100503198392620684449732428493376237328411601390504274802583377444201970082945754182447934325710167716958533438746337147101202151141135199680793782183360285212127246062248133196068254550090184597874928128545455809270008602271122092900100979740026367673228339208756311900035558513820399606876296313499263973244562738723111249634427474487294867322363008515562084044597259241883320236963743732369656906435659484985378426707326569366539550740660596387094242483135201280001901725514229856590667129551322052732876925956564093906092990728800644859459939154289363750326501710012626708787051966169118836989024496812092808201191892256335157287616917274764482210308384540387628155609580823922670039567535281733809814880871880267549296255848966800859562004221806087551928715157660045753815847732022287079712258142403898961602465742837519359493772557918853547680903869235169007435045716819197965723955318139971686268479402912914655672520799222602204010021790344400757756991932552533396322877777531714668452701300323269589855351387383334425290825393473678604504126692157853568485337174688451673290286246961623377075127366079635084006526438425979036036202577679903702643394229840654085049874864833935474877870000005469988759344454734557477747785612626776977595248451333971096721860524039926537331892174202400756771966131157573258019466048994569557184192845786635774309446219243141494385838502604011580951790743998630450074120884339677678527480456856802057405954804062012381041725960582495478434627037390795038697772814852130110665290630717677165746695668250652879862287413970580096715646061503385552105823031141873302744124480793057179841339338874343658378791238168569278903163392983354008440384310489505409797840700172869996085694335663742424569153416468570622857455083638654337685089946264989105928598075181750652653636275050332933208544510602208230985217936883888495849500759824331489370585843738452286824553077774354230524419373986112150706745872364095836234732919753209517319473695985480394131155921100807261734491522756207746568701733722098401629956089371991162314228061234995524750253647880355445185613521438015888796112487521272613704458152919777556732876684226430171900851407640963768439096994129833646844927125108530751959936555484184874373826978213683961586466464810277548455209603974337117603333286069313286226843335190560431182944941854115593121117084103471572846071245707060165733867237931921457583110831889874473597993073203162195921356627904264975810833548500141778430634430557143859856087314028118545748330504893196973208425370378620892390898944369343016560752122109814241102634031503642361669588084037201620403733048787084334791863294309677600267130399348923732267064456687923401269528769288200631022916562960387684528833921347566983086282350787225670196120962374965634447664706132815548871727804075874315167951771173245377513849149256890612021829202319609030575849398789303591181276130339330321049577481293727472000862324197603059223221677278333639642605033979828594086409519497520300713314574980055567297909701568961156354563026065506636653435809226497915026499592124806219625057703074775484970897544529930943519303679140641753648256706334167906020412251173287662999705833810624746048956112854242702579333306289884772187793854459299199229497644612586603115457599779301932800242432168730225479219094678359405697619408977660356913332623283479125252587175350473862412037217514987581247456490523898132220233804673846779095598498430402116058784018611270844718535214071512787202483928567988829732001158710564486057594126536102360559454387269042467552855298309870099642686685358511152607521450611765947950322512532009609736023689091780401741428102724843434412264483032727760499474531017431461599890623420042130568721010175755104530243265660112515112708274096588054421066673600696913223990518840374062263828927375260548056938820937546820358931098385428999595854271673603812391445291311189229596049719872652199532711709979866719468589357137482752170347041229220425997329326087591559394698501341366143815662717040685574451202616196766756975677556073802713756393800334244882808314719534569016023051428430744890509358432054990989095915231047766636648272444602553297513007721561071052798679245442029982331459831185716146415077847124143515433397230653696793844241316245130798850479164700945560373857257449151985117704952534500781172116731594162114151122393371977186955345659801238857805168980373457927485729236838974622220184713642290099653175852383817105780612233243967176097063806849440971744115046989701153425712145297303989496600915038447785463322914648144686209363124743998438200726871485105257870088626986135856836817706927315479022663214741614455332031532276307148546972345428309306475283959785202059214261137021114162635440410424046868917441691195453545899028171073492232347891859459015966510974713463327591140952330343891855067837349743802434864219460352647871718635706260996907443650058503372898776935295081943017095042515594757990653892266251724811572129286990577247230320911499436860046447153360085200521635186319094540788533285888952608162699110192236747740084907895229431782758733408045054006784486958053896350591603819514773813499294169408100896349223401866005322464994230537569737242655704917766517212534837885527669426327815230545792474661916627070380497272935580605173571087472988844999661092849545192323346231639562421957316157180880980298816718734122777719856245284193582687591661601184822625827723167243442618655644999404536229369635606709903018991270773084500554538904140115757274380663316767837121333078904140884094237984228235717816813514687122775648638168291860471980126889936169539507225954823762752749854003992219877025019403967565405074434239731906718051959901204630734142458565548102873125995713966868178165695089907711416851921204260404032920083356689062404522031954587567208275191852616306296028713301089600222405505975528927500896319745884095531983178875430291032180239538892492750911551582044095999508741115316204949772950188785457657567701195378736437462538971593888160040690387627976108836156811450391680185314603189197634069503004461304622237189087754380018464352273983979483007862774064030813832889896098733961791881685859819175510159348599633549842315158945827364620254312145743962876834218130756936423874199879093910827013960953426124863168813027410413555099300823511240352302392760466783386150574288278577943597784196159294066094204363572659957242058631888758406499385775870763486090125559563734964193982735158141050037533909351277183122384146953769784656248979179271216632080758283674741897573369234818778966672722094340213318977244838886445389321675476178133128557657904314388694266791037092598547008819917906924493652996955447551313154758543247226463873812029923943738860259306642074238650741742280115413945041551387124695088426298011410394113497220718507555835230565167496537830969615352436887220338011722125577260428581016065290095996208537299387903740696179319446006066172310523541158673642440839804714470223331640205155440778203978717055519852816958088790793812226902408439031765834598427886868968884944515058765858524686573058635880140925013435834022985012583212303376699775527573473367448590097084375002604889568086730893561836170305897385253802134010041134194714180988376060527110105651784978910859839650996816437820002502188698319252907634011496229248987576816308213506298306211870231363380667535782899557149354290769947763924975156009602192189577119665406285037883599348261337207790992096542120940756339090320068957707747409458352472439217779463074552908349843636002503299664505929246477955156739180716800150627742447970436475682381687059331417769467430620139759535910800480957662883738321870838002250000408136231811136673817418548813267510126129530932608284008890357650831427635834507733237743797343111701537121003733266732445122199793336088300632781646446757047247175594207373329217118973281953254305401947848704019919875469306191613820033616565109808363614803454788438973016886016199786070096183732636902312921292643288388371327406333177530846086168989240235215835298860651553133093663028484395062917695328446701424158039092496156854600344887288673464527711737378999736085695669555009742930962346404103566688553292228331485593522933341133694039371718657088627817037504339997280146651803333885899849831272590236515332711369521119958424997327888965008425245493055588546494216766270358127479729975716188749721667901296667808613774549661331999793336928453435884766189940386007218132361845275281502569752685799978079929865782112354981851692983196830710118531260066368307596733384870814918678689401181561259423508443896787443041436922951453229104415152549915250642783617781398766049626009080318073043482308804557686038452666912862670855219036729289374752577422854711432352652142348330163785916431151899330373434816840821536531269728490895327941672846258135345888086856579956503928162752793162992858590909099012131016043000696574736332938435784153711493901754861258652089636457364758022560296200526667930554730678505411503038424214063993096068830071262467897542644626149195859877208964011736448364752241286526522195653084027191050219108339887846231876507009399377269716730464311600367738456962172847773696085537043629056014144230715474452960531083337404809507051597887887711264684969479615369879948898167229658573363908207972130110150969887668792773394349410471598646566180838839802667159297416230335110248882005138685974857505539748409254418658685607564025841791825163089481327720123909383078840837097075621427614165664166256011491683594440498970936761117318963351903037502752474733611129456766469708034676698297917430779686135416571371089716416880978301898342074041246816307999660354313563050799042407030106823254825047117762622749520373480332763126681025985284996671344951086645694081157056505769721773646942577707991752057798400735678987950338492046498687766322829302175559042465556614504831554434065542337495589226315485618585609418772111541549643662171365963484989706160085495756317829043574515183628299277048741462633100152716626035057567227275446339951571471156100032762820553774672128513771980813570307986573734971473576532734072485716640742094202213079148037736080927253541504133804681187569364991998119410026894127300343098440750688372997994096823092828612977625073519739457124659284531758824909870712155922500994479437936271611987310175718176753876665162298558460212693132885045722737959498179894423250135164492455446841212626046255182490319810671608593286291567620865727252094469194770647120240789083259751915759678751863606292710040836153452230328712949850461015456338271057522563933503097363649542812246082156274130065856940596254512259845644968779510675200821836824475631274862631040942225907192524932118331050701369520151401163024949534992696593660347020405686337633776740535227394934346526621307361372440217509862846760418575691405273772959088754598314277460169572274712841315914171790155176719164747959657746807688258483952788100810991550390128811163652029237043805325659559668423913348589127458865417087130037975737369280134622470863309468256297657696576906073007572293866977651508208239337967797841807853747138054500411868742669322248925454054870699692168123726272438930836127361664727871244413766818289058905213826725636251891243815242794347519355531870050359011134322180437939404420347585844866047465232536204245897505365731224759536096686224406129586448422289992936884398613521078080876794551724983700751572302231197942674753344157588048532301528034625070717518175404903247315940637784588813963164410598870698212060087294891524802696781071604970685341353299649937968666605276246794599453168879871941056474294285873827001128884167317752236607071289618825852646087645962256291075143486979205074518393916439240916032536147863518710319013849662589422966296243176792612396762337227138791747675190225793428935354896199017578194278179335931617445953606656383328479183929276599550664956419246414410939073025193845769266543073562518501848753318661101709433186275586982354130759977237874514618763798619915239213194693027376457961311319025389707900611143267879431184114654331731229413999141714440692112557692351553864108607369315997200059332897210896725948709188207844989762684900016369975037085951665262647179064358804916319635747613967469800846833393518496194229716812568354350963260118487894802320324929980907244256512327547751318045377354837471483934678449606706639597420505594014051169785051433543512975718645056378506056705948282573527032043729211692823936778938800384893111798803612692679757943258204370483097834330767245671263948496811983672227502834686253091694792560137393558581905011862637938941020858012311507411008563819499711132162697006277413164174643265046541119742383839946155199785815135091450898904916021881529835329391072476635964888570931839951150152464261899852875064220063880289819057237478049250053967674794088948552510222039678107105652547197176293799644881929290813945278681104465774824355194392707504083870966048133148923315167776424239793975257253333819395277170171649364294678205998288595510764683066364502673079733009221244722782082896710310334362091704477936479068458547960025057894409326480472898875116394977990294217548401078805559392070956294433169090005376326638451738659735539086813998489990688603400738333268608326367301889724134823065237538461772025353774079308010610761105860758441564698924093247330175323418325756634998923990525170167671398518768036917919996325611029217193967394740497647491949708699896664336121623543566491311588050025836928884932780346485652143783412329788541515691244730697541979270801821906062246877948964825956846238191776636727043584385143831204755000990738498192321045176128161080825346606587072288868630579455463399796266126933711056372070478783015323433137216886895853073941318209254968574720825263743249514980850426248710112076812592265532298334314338704406418599809686168882562846015692196955407037667442408072124154491105352336271543210069110751888302060900383018323408761739103404655724924506795696772020130152712551548435320319761034711216824631341531856571945572596562810959769167816624927602017451730162101718990805187909380744866155869768548658726340491763168556468951862245247044484524944624425477392543078633062353685541492431770701486153027471751219622092337997860208048746964072106591229189099478643846595943790400597553138859648572757227205664169384270473354984426422262646387823528902013404906297615990225490277781236807718908066732840151863591006792511841852415292908627640735706912751975663156643052849470176372181145986047163317616840595090225495149398348262136323326127701406007469598792938263820629690787080816198649630593701458764794593711959551519171598259837229532287339232066594573475824682563283812165424161601158293292074761500071353580183377324065220772207410140014158536376435281239235322606929941783536168347424299455011190043176120629909511526622059111163417002145534105753448234910435045788758304735920640088482617915123189702950492667572157795153776207479073178713050284167709483437175932506585178385409609370429369273190095809291925239727063852207093762838322568315396083545045235091178044274893925699640559198906839122940440829793397041577438792438102215392339540583550411362176865601288299224357609529812122092637298517565708139921220936946906947150523280774592298642288028266916637320383930917354602390031760181054967523025888820313535145538901637551381616697822505648077006219599428694169527868298874787531402121399984738831197863935778745917724868603126716282680836000276695524329912284402074463735314633853118096022956431527964695939311533104611262529118804884364527166249016929313138436405555280552202159386298250676797384467469971604621173017884650369213820100724823218523043968864072666243434631755499366807253268764657074312960546496574201478885872464234306849180499086878912627432268309834495641930226894641879150828608492985935465320134242791748747149258274784759251839176052615061659766176741020708002221062310735714553065540164456893347643475192817917984706313839149820386854142043657463743859263882791173306390417782189041685572327219536040436595847250344675659380775634961273078051791195319448925976507128794316311941385059929943239178235272587656901074515386241937598423274818219863974315598107660944793943855098571501834275086321598111070888946144810631588219439486221058139749766406334645423878564061388327860462770334526070574259967339212741363648488776186438203956831677247109098115507209884870092804790828862807240145629435713406991467809537984123038953258771447224354824472802121156490226452922692733335055080193645139091235346417682294865812711634148844648713894043838379631155984896408787247929419678960170488282046821676618349982480725938518535627485437100453613753580754759373609844048299825137461498574343204969481539083188652625553013727808553226529682543306103291169157122618809213492987910354512839929731739361687242090137410537944219613792562733725128519880025600656390652668632789404569022836485180615425947249612536895488434695580350377582906839779225346658955052961264027864814426404291414376637711249861338391637503555194796924967641838607628885406042344491779472669851516308534710232888983374460127795782412584491834593928347169265307622825604891699935904426874610143010900260568710375619958091631916687073513312655551709516518099938395244378881797069600830785030680388462621265992578077126077588088003439783461330997259005960318347627815053393335008865242800415285298544430803953337450132071739893495167635276632689512196159730310831957476102749874276257874812488567710957900592750249125921078341287530279005513745247607463393538609590922244331024449820529832353217211837971909166289061093905004026233485856816505273438218546798564259468980299242578914849898031702957320265031428238936771651311428225406800342889510426527237363436327043974713859929557191427410041772166514787864806235786095198757165264350673599768531817026536271897216064812956543255780841609191199586106598379839906828921815633766300414496379518772181497754460656741512259061168841693645807319848617450164353491704003767367703282339817242787641863756003199001521726127959422377791151153872534748019892958076662795090705642519676967452131089086547914473182218421069455481777570442946865351605123203642820288539716842931782850510041759907372745740296984221711084119710170795111922643843072817024975273651155030905669860202871615617910147902158628559745993928794208178934508872981175579247329676942683585199304164996729022318615637788929649449115734862814477723127202692621186149838937817470626354694173222422816015319757146885533485406721211391333621919638585559445669434487492837730460747918788271139283493151635521021154616782929011988481625595829761615193054472850510333374151147662706878119810924586600307766117237265754996908922780108687324358788964095236664475180760795087874878456630271175092829135106672040865553916873806527994779872704403685680310190579525132472810774268278737087538852652742896724891252959605683983088711526501068467551331864007459154855298189914172568472931033297155171244619221937580068291749655694980416611800606616464183021434819849515433410228578600407557372222238268351687241541872612279353391594949844745132531193938886763837299514048230140846017143241234098266699602821942668774602035004440856123473844899148670537831106303374206323753840181604414950668570068602918124555728616694557231042861274115796768553677812820691896725651764175339883558926200047249897831017586848064161068770319053857416689621099578993119813635548462355616448959107906215750655224094061165808378122492852393444197072202397264214858448508938338169487532001102786055974904168835980821272209948898437879036421232640091237221369375013243249397480461757175731855614933696964757151450104101822114628193043231994877912406352433297838870214697558857035875533723043579421541476259481567781342894500795694092175275053910049791960226514967893653504178581648874766362889231645062157921244770538774859296836593400152643478845657191993324559344747610766923801393691187871716970381638032555734548073847310096280476653805764196281861646903149895890734516862554120703955650768180338003214253221309691462771351775020632499932798692285967842629892223273127399231512974400728690824045658370106295594598274543768728374587326205496052258545386919704724279552587010566654992761697912303802892425273634308378553387991228231787191445009537391142448942066246505204621332640292300772913090613314960019648548585268885040905245458238589668607420776816339540959709061513335189217283037426642612107953539208449765707588007000095596434977729583434296039999871266002124097868896277429934161333976076403628042380740795090911304861283108580230989940197766032520746293226652854423152310019772226581464219527121136849861051608049650790319832306790086301406419563194373136871401703250785327825122298468480476805350515330998641446625688042100729187467442563040546221798728087879880207052481262870753252185865713368444173839714169097599502956152112739516214002809051675453599113540600983565669403060724635737457613486804942537541670810663760134210758669077825519577011850491490032552386637367282042181212935257942452259304563670629610158896763695599769235175277540740639227552568933579899916376600628768132428070200197286316393839244333217631852747067883530766205606055392721860888792698019415538044327113032983994800933219991935009539701205400399221178090680151631953897296930294266511051546471845408357660135323206922894752600757953871400188580115006871345631406727726358182041086620344865059283569072215718916968178387535089980681884077454181584832874974945261774253232726567168802243584886673830900090954141764274617441401881599833260656922812248536053406121367821895038208833436964566820512114569821742618691084916111435009659495669250245317287045960227981926588355857776578508629064108719323151674050884832933715755136229930339434272225484301560498868557913269016068721438154484089772972086025026287017472769742836856490287058979729667012402784458986797106640955903579435262134587318417146385529580042626309914691082534478206093226215162273564513309373060626591799752814265675041617628438777710600035986044761482410214670065190370909738389241809789477984617571880179877902848405954326029301908031329763363945563322585587703513679234347827992634601822624383701029675489134358093606233809027551144983894780024270101651833329579610918437345244868076313021882867888433412710740497265140056178549162245793797418390987911081301238505664894216292801755277943558878080003866016318520930817830822740781385721164704821320660069217504892417527763226411848374134191295979162444986378974398940164707382030954896305767087829908094012461898623941930802589710367874091957320903299929093142327399575356974860497791462328685725598107021068695816179923900827261584828492839573621592973338475260154408003737439887637911206631275526020921817203978914229378793154891606422672215120291100698620819350083636863345655760717365997252197384893542615136077959707065149047319827038386927797343587333804325873386282753225043034668414896184489321219852949532112741285206909521313180869245705792810273026158717325151915194717333223507391938945039697866527549058555761292646899910990498434261645482293980621369257843058257121349469881009567470912361498542175780247246278538807465764208842728497428085419466201124346030589559361562636338719239495603505577593311021157802589881054233948104209761736203322153307460489869065690499682639912011225824195275128269301395120553870167777198270807911851979161977076097031149425459247585112710243419875079261564009690508213822674563549899717853421930384461189444069291214944256137936172759759900326006769147950634254716541597925007367628707968543152652597903476252070731686348439185938366636060406372416634905548901704187435915713071844279142536795931956563313724548071722153084057757804464223382873448422085862633049666472793057332730659243630131581099000422326477290422370486743909228529218262136320001001840637174797608036093871980499491507473068621082555628422277780367581907354802742247169247235923759231465448195855276023759803846663695709292509417938718672861911143531276496979233730028775701855441886825358506995176447927768076836814287141723735830228305585571163939919200688647080771840626784839758850460492198954780164426226546737109936302731450116690468437937572638980851310034957249440503024551687685847971266820038105376655284793477836665813572062164333468537978008529043020405768089887270168070684968601451186109018358553132730100500476823995529364297491246502949875505931108681457883241349093768096656245279182694672372784640043725988041219888162355412879900436330951028796343314073340047530001797012546014836504930084949012009698651652400288196322969266305841587840854790244282640323372815448852483352838187434662040810896103416041154012656775527290485832775097995309928791749901204492676907327096943786520361937334528969208310216965980613924995630158389394923727247010230340430898774003634833908282847901608184813796962882471271751660940716499169208802063738339059135480255285390053569573885985433797474353562872780760853120066584417375415216860445998861175864329899650341844303018703349382031361911078934667914463271527381546497077364262817926532681746783061408194314703987386565984315558765304107218895654296648066830853279354032877806577643750564723748284963016518596334573139733242390351626197581795562374869471563347956259403422283377567812573978943357019553535165144127193566180087786976117768837525713499225917142865858065105900538326701547125302840545979150977966903989418574325290108698626698251070518876150269970134113597306375196745853253331648435525689265019556258796314548901392924986328870472908881825715848253055741618582350709844095211456672406411481669866514683352054497921779032764067167286850445421637291765788946029902307136811290756626465219990928149207992080731230180370740553323235863550272165019659151921780272977338681621146084676438535577068620550678200675817482142232489302642056710755748867762071550350223919810699019305431956099866910109822723363475936293623584080064780816537602190022502735454963913006970015002378216390608624434973361171048458372939711554157577086112587825318342571922540009138236022461174689543242607605675283015779826935296220419187241425046443241659798658767261333443498582102485081331929969516252995158165485270964284137012899456914441496204400801666048964056758789908073280017604114929605871810166541045452490359863887482074055355316464979663076550392262731345677154648460052655437483305996589801199723369278819190233312987193502383345712557531252540960267878085189071932686300833275340611367418019952070094046265889783893502175792028600763366109455421273478064641742638168163083334433104251477344562255525614463936020047863927209686550047878502578689847131511644853110596778686942589887468080494249617365746155955043994494638127647429479166769217549958892296949342213278730558709091795988209815191440638203795591860862538757726110170076542392124428319231457105523288696011763143927369997732438620742064307332753979454517357903014289875553199135021422991982856227519828506511116128738221861653122528879395223305148805414945646322218789454398893939038130770008795982579214310802374564601746811579235874820523473447468610252585226569572566577806221300060214458177042899176948418439624696711560047622359339476088063292144803553822871008453338077632412020852274361965715417193529525735719105177406318209640557913846086882433911146408607791290183798055984867668483554613332713386353213696471019423746033729982346618979923294347193141692994343074355923149645410232057585073476880979384285593113848419744680632848829075970428196305730357592224951276029687839673382571532329215137496187738640445550811548595757310290108184490993018326440549643426712346876230073576466620711149010518364521178753943830983243267693051797605187943676059893019578524245279745279568141896011989064332178305883508796772323729589202637331977345094174968721426752340758238638776802946105647166464991515254876661050311232275099506015729264229414785513683887261511314334406389846223725449142124048622183601203034615046146158787920835182211743068110171233326284677712357112582946087381927816458478194147955481015549798528342745926810009562002121448064391410229044479547805803664567078121164079691852319456512509823964942762607148125756718120833161602099011358352073707313528977934181031995360306839269056102209758538599925254834149497778592712960411046848601500363406416240206348429842585408021947113215683183896697369862782621801392837643163048198551345056909603125833735972671116056593575656031681375520355047073034225206388899960133029551998559483852646621955218669348527651434906877982301109193403919091376165914490651209160778975769924444919011897925958242345383565380898543441470932975424301470023912588264973626597391171236358616882326225658844699701768584701472034782214939295632448316804446422372186674339668102814854626433197669803911310728635423242754868341451508645330767690069130662648575539689184252531936102543359388467862479086674684400848537161093975280377829027094097760673978126551039032603322410412536860603686449501782730377835274973192049959917338164465086080484916111436856930214213380271282650960699314907641065051828633150135541585768718728131166522054958671625993307431823052007093522037318928975969120328138997000327531408383020499700794043461745771341028771830864939025670480566091833011820395852793798284904220677767676531345390715837073520876972849557764871683949940404310108517885008703402729570183083968537750519146503338843566072591240106618403594014046088136952349035377743629174460787742543770024544526636624745864605215219326398476506199488192692578668507522372670378209214088684013293628940118970904731733590858398244633492906655168232068477450851227916530119164041266009020427025033517457965398249947992819754885789202080571821982769707168447845444036806712949549061097159858550186808320601351114286440635030181034956650385428062919501241290834462644940504569365166609556256477592684857374758060600045835476011741644759039886003974617716145905140920696988905962384379868694894789010544332885920382610390048957554694065194391064136354225579156178945337060499054337224745324493487810243773925575045310017605609484890306826170471946523799401222225080732209132478441525028498809805937206565504098573173406830131589718069963560358721339439115956062962073040168750518028259047816120688764667603373828041532946077234648746351221637321302709895034899909304100515016296589995500470144136327390957261939748099814261056401324497926937614148865753989371942681621343609978174297165216480357233044015960662180926451918307231207864945255978093277890329665036973498741760326451690437114693231447787666268627645076535866819990254146120334621054577053255258736107170449994246508444811897094359428728168581832097170629841154012788029784063743671713762078738331939954130687023236322196360859157862813666868582967976989313636458631659596833484545666317164298377085115000377238609590323319033956228203319221246745252447109390308073336228314073093603902940799274199316079266390158547202742629950730641663334117512952718895042181144088935467546037212125300288337722982815446228945442810166849599895536252636679173906802736254740965403857656296724738752603833463902167565953550511535872552514517314380534776975025070331128081737632119325474334076036381065206863217481975386171583705854534667856734113514823777677753458769667513289471002917380866072169294685531145827051359838688162644380600181419262635420471903104558938953430701977913013380207429371121155464013046062053658655533182826646578076561722584746195635741765831068625594801286775290182436173971209744450927330923915752077585758163623767147438082137791747466050014700553310287838847593012386340591863760340469656867209701512919026035514856297693378850993408045314332624166203414013820428152794938645075484887646327294128667171717807175243224855628077764318683830596675419179996868079612473587864189860683038641952296314380248900073339704798582062532889281113154902621011771030766042208793487164322810163762940686142770708401236669672270301200442265165842628303833786123581474560686749041945657757220434593534980703165221058415521232077811425478821878184933729394396789647334893378705292369188199880477223442149867426212892590262128094242674704084932479621723999675952311825375465182170059399039694565854663783234479518525649488411976168759887147061488036959418095148129858408255143792526552856284266228737298825856268116393610221772782309294496191054935576245809356136886197636638284930911282945191624570248264516442792185648736001686848379525725682896657133667318550513732908418553667017771523949574240605083837825193664682193110985520263923894735355481048784071767856510629864905218781319385521045459263398631787343026246791607380495105701388783237092633781164309368725714886993606622896170870217910089075094433158909846982263535583482614953277119374514201759525373471222532914991616663313750255618247895311585688552639299604647550504090581574408695919188263160026233203934671997837055906176525992067150711798165431976525476136142353974112972903946791092627881874839024882613657952503348893634824804359541630346892260401400066451223624731005813745168090699780731713002073675923225803189298606134537925890696407975649874874596863468784774334568899602160615840212500644114454288718785269643849441031653457828902343441925863346504782020080745081568451565991522482692900533292923953496734110158429734578064721022192170880852163801855589329810425948761599076268531814223224241976793721259517136461050516449306728705146417591244542908913400133651449368475423167659707447178333865054522545897054335109699775163895999794743176651432708568304191302498695212808539663493189820649790888430492650068564860346959175766088427759679871076571726668797457472136062785081190450641754276783132237143357131340672459995636188462984220564877341462284602521472643335540948728044749719014128648121378370381731224587873095599885548934623230681663692250503312981881892877502000644962540213297455708835421119801865166571013095350107296003060944385988219821250578189703314091081707575413346194572567201345659000494633233510425550867452355894144728550532212547662551608579046708561006656099135283091614234027994069863000017853382840416919318216441720124063527263799030013107846632009951468762482106786639482750018502533977757717135518484739274394136932006389800617354855375283925119663428020615391110611047850089912461355419588821321551647141197911288091767466936391563956642577836005220429840115725168180045749531870320251535713668913299468716898619399879384053600907730983005996642817705758855098579695928575309457450144260481848362742876061230098425165229836968644565425520453557156663739299168424487304100772406394383998131524101619025017703334520861029743340883017727947529812737485624241851439694041939370434956122646678736560809978650367287085407339872420489636671467424180274042250813946757005551443754705732586140736270081341784887956798847061916256345299106399099301967352549850314582781790737902477584579034936425621462955323986217045867586053401356856708424925099456721343890893474338161422368401956302389415092932393981119784797479229334800551007935807637407384064431674564671205721848390691118459393431994334062207340779576923547061798389570630990435417761938595655652294163419610840371532065235902634471936512287915039483128392342767524425381744032160477970114387459763809753640498418678317275734788161132389255772938903891942543974334698534099894408245813623260578534552357517007833828432294294789166904049093022912852548491045182556561712259097095635639780629949418520144746522434181295595359500827692606159129638156254602487346905435987189266417721064407330613056501959627748650771759957272646154812356402917657152003422459607019274420762235160196430953739717984166435845756142801556112704494837349949264826557458603648522245698978932760710458821066668460470617230422234424268397253097798236367161558014977857905845069692077484218936035924634801334824676237491153598681974521486102787652536041121844938203719098599317758804350858767732430728582539453001437209547616826282223029743031236179554639584373404605888260656229786096198695359473482633869577316400021140990321652533756138490979478066856702584241803277547652305151856671962569166679138568921322757012141435995653586212351168023205317426093522280194418408248553987067067405760496691482640248464551309870773217462146007328659983400665816325247673878932400060515066012663320440652211950784147841714305049856970966496409184470948005279137260269233828701198656516847865427700062453136143954414422113983801170597979851901314845437624646811231765273689531620131259920410938521481998814890978995643369947781372601481267795650499933508915978064010191236373344129659753132648828603502585443444474174989499701086552420124155686372268410018852261183695489374576057202935955493841498029168149044978844566500379953672046475046287189384191235597835943670119360524510058143073555659292253545475698098688198824462758527331070043988198755346999097772376053338498944834242368748630937573868508286223036719213046235665477977030531421977942646282564224888727150664385939529924335702069804653958102250668903157414660699143760195033419465731701300708628647287849291492546362490941602172219733051256507655405552532461902132177519261382098031008578432253876307087000542204003583659249922707424858598000794977649782160177496682880189579719217882731864062233979888239201621194017680717650514774782688091282676127419173575198566718589492270123837280650322890487952869019215190726904684186008648206780893026286856803966399021610857151446958746630694538653852668141975215651623121574007124557122497151212784851979907854395977841582506554964942914708945178695354957369638169277298394787184737198986571754085712976701696591775010946759123844315239961410623787564002037112128177368209043601791426966442658524858571646450393930642903156729619578817148263714571645102404330058668558051882099352699389379380307645577729218112546290393149775557159888074000149073456263841804176696161645593241146556214460223087883405348228148903333296490807194378538851576242813590288990283682748383440345443266131251093750731880218151995883256480077550388930259823188017983892399216238968912226344663992849972722580159819264954647629190627301715210791572814054994135464005273162446133249021640620587639950788290884980289077797690813684015133000202958148940500395387078495292294212048706508505115681751886469372758404091776303646902097647570906736461001851838209860860524352716074114872617124485973252379375540523322847382574160630664692681192335459073159949615230406803366230765636018027247624383291143368558475934095292445495374540012140474796704901245585992870794052362635717641569370765701735698756451017987640788656208855462527369954806303542569572517455405019012272701085028258303654577491963850961267541769915824040844161929435097391050185923493450874013403764399368739365652805803837253031482753866145251411307286527609298148697832346319390849607008568914620720433855926003811702679155546475632450962536491886389480694859986211006989909576107311577710030924999551134755548663647589268995292663275309195393293469316544505275298547815881412869134927586826049461224344676203690978185033724214510904059674397811514029685332698714754595994733495275146163279448112084724168813920587604222699236007002788373363198235996465748760764106568455012709596122961468743095636781382936302499937515358069003029055507756543074628683117770818212641052885651965827934235892290447820190306604706813904683719637504124207839239175783187414333519098005949898250529581801491838090863317376154698391600230404328695363463936267593955817012933343078758177461109552371547499791556336612389455047970227486291075379523891095752749741525925167613404083235526694496929849757969696460470224316528133532428622748014628798011403696757860927319207143317978459251435117324680830283904313685038141224519229499694290550950052212212084528520827574519115068674560079803672525023173645680129671636299371656185403462513341772768602888800941900542870085198287924752442565344391388217621734721878194679289118269733436330306417865037548635858534155258863315852968226595672490859372169235075057735654436673797098046665423843601854419720474053211925876526230789738904540456258312882023460710321119986614514953661907817618059099079796205310453800861437290416069050659378158226743888914822717146241556305510982578473427397329338649629577769836074228829755026240396661321972937043383529589318660853890349625889302402093368330212627566255395882631523492916906364045636328173340626807931561528170261198214534374704915259479601554010445937958236080897537430019012218951912525141568944456837340401878322412247265002424685632893202844961436395894833495046457697802344340999820360219967231980882206702351791307806000395107286153541395080465016012436507793314471509591364973121200414036430830655338569612816076922562418196705348499386302316012084371488073844430028700769810898214821351237660589316512501307423420475353268348527514730090282837658388856885391578298958837227176947339491785132480720520661084574214709852702881526838224338091831797944616119135648119207760532390161008355989798592357630269081249997947460478704271958525295795387493800519443052861072854870028640702156998460050413042888652017285938528371896577405730670123793675721415587323819741651735397787661184202586869153689396348602634625322418100195009042985226349854916966418510998583116123984986042420172975929869056249264818129936917731754862253658551239388955677686311771477709934463497639591102825618888482800461477901573065826954869501135623354397878529494650189683132665795017929391079070393161888104519406245545262403028387304604836783334799102894789075359688174378074856423245998489563953429579799382544124608150655729225124941691212746054749611565820700645757506362207266379857847490086200312061885919904875810904853494194250476185826370656349949931194070540550302775205758757903749338453015070866349856440422578623223561925600939525837404919770569409830018397654080050084550223533680737717572445953300728628386219050647411784995993094476412108735056573897900186127390131055223871863144415390635039693880588692658110968799791655972346660854735958445892959466443823447011509024644598377309758624819178301453403545292408387257474202719225138997658964976309573977113172363409513287260110219410569040476883192805455610847367485521450143905064216920646040861783251711369275016786067275677739419940353910688455838434347011267543795690427828636625701834859286684638841293074618509391956934200892014381057621453042525670165835626878979021145507559931827570215257341281276346717910022991337032683937875246692081894878663043328974469405907224224474807829488136011601120098801970660145419826925876524647187375032890335130560808991085377472971390993310691174435011770702230787771476484742865090866141993639249611796605251989257927746311579647821951623720770051595187869694380966921790964014080788359884435582661183056093835501477187451602224091845646250683730848596747335414763879671862614024489893543923110719469578059926573810874500734375400162959947170341120971648844169452130020558812200012140884508509317113424636682133795176132185132229150777006616463208935288945947253383339478200385172811828029052882909344140988682533433485515436723269135450742814420178249933794831741748092196658162946570414464789367527066773380297316385973098386216717059673866749926805885923186318994595400046604201040507885026735271986737895812404840493991514141224724600781487900917854589157336373675174072334618487943180070023235971874349650645236732140719510207918349412382591078826015981624963446735984317035245363140821192982323983054796991037412438788433695791734892743660348731227993654565925979488044432051542467511391290458221905298438497172956110839822850890992400271260329765022451543518557158444688885272140472407862029956875487468241146979869117031377304409152219893199641264068421384082592530408821041735855111398112235084586539619595387846160360586702524837097251321593464179940201625341956236450936507649571166523163999242131030124847391237636550152293540639445055504763041776850999426460760338186864163388965466455302156839306232717808636104065808974618396598691316247025932625871635640490108937237595578075483171928497180261119804639411842180689969126811794300445056319381041421157541470964842968952328762145057258451489910420649694653277910266421477100924463779458875662027977811884839185139349582803780818211522830530659097088458648804672007254174162314200506512787585941722494557751562177614940010278394716417686434605616007816037578941164525364880854607372183665073414069106936423446354137561514804361758575670587606104380212888081122575976505453082421272111664317031538613957579524722536982783999785273044080645562203370896759402981324672920993526030605826769946042608810206069796099401682605545653693401361960057276968379419536031653317518218727171727103063774358645451235531341024968370726497428768742732175747446322386112448686118714781789592516862625845189096755674924753598534085760624407534227786371244436828059005968043193185213497578390196601993323442480949903878450810075641894869573180982346791267204068035959698264226344063680716848710373915053397973868947502423327036034864260430464396024465541905125802108178687337320096840483744822074669211538360923877652631337533874451248119307722940680305157108097223453117844905169073170238863513155208504737675269304118622822090174402725368178234397535825927269520443746473326395199434797160252674768155900638026620083393524381511763502477597737309844101987728237249818845821897715934814200985910859791655061198855084449145011284955548829519282710380747539009529749412986431965666508788855550539533335651848275101333968972778976780061392469534473897707791149540257273407498772067634471598713251678140507942498264366081402730150666774503924254631076833190846925096733331594695747603387038344400812064593076601405858774679439451851611213578710000309263328483985497610065571969012434689022097005669182909027219847090309160070291018062297275769009639179359881511408154779739508151481765785564321803800113478559084016549283618131705626721874872669745068868139510643743697801737247624030613051660659457750263645672864352759075526795097375215749363190739092985627175991319976798873349538225856541330108783044596146897331324597465760088093811373889510456801967340133408115421317495732048321216497654566022854183027108410822782232625180468417861192242937109560743559137186344501373669644193719410295178890756125796242729719415044891227478153922886481930591849155573711784999413602497195797295312231348890044086959241552825495055914368025431719206373165276243960353390376943091651267376103382799441777769616783899385378865438380008355884992806871779200718440763291175663152422254703269855821710255780641366609134689675504730031565503047495649119680710337865117870697409184733936602772756554680481769626758506496889691708735153493786111610528634353756758749467652753710657848360877345906470985628052075723177949480520242780141118407282043428213467380690429601065132742543152847532380980050120906255438813860772075618318575305164928072638070221097135385726383328012987353093427650500319193903518256399653002494047894915597045974063894590885754283951407354954463453329014840343423705742564297241139418937287835423451902285128791409335441307362976479123359616617862153594829504113863255582100172656790425776296148657364841040770475926134545014166516541153924646415725476270434049343706679117669183482922828494275037720915420927539257447454285530221608231369493449549051263408958951654319807165472607212708071319144818369193305156382006060442980956228954266721287159326188706868103946244691205296668557826317989206384629311808625896726320223796798811064971980948311077477567919627916987661771226338312361734129593887518287460377071895334587462719950910040024576896905565186968016402036135007562669962567742166489796492872142665962438042091306671303836495226517242775021975721039724373380845252079238100558704723380063648283254308332634696875606268747900001664615251561623375085381016768889909526746603651644109774433695815791851529281129666851828511787089663339753123071652911357434476701920760560387357100098927119755980651623231845680822694203906660547899777711269842687199786264586605571288495871185996938493905757365682900783732853847796832214845109248150109063568044554682566382850659717567991503448935237850473575559596244099620411341074622086312443464421519489290128258210942091728330065950885959488796213563233809538851671166949415778896210112080489336478153619409861901252942021235516295296438887444226432582723153597119819980989534438107962383119165022890246692963844089222267345425177470964691886612190693025012134573388508305670909065217669635553849610626393322277007560868635035679407590612027577822565525232607799561283155306668364582194066103613153488681015471545384752510745109732341151963351920681827866593378413448502964088154591272993196113091339902038456132483546714050981407904508163493242205344876897238305873448276588251986610309371093511336045087186254302091747181685678520533367656591849326410538017353375935629827675576245632053862193016383553465798793043335903137070861426576516024482844412929036482993067495757132254490606762854697936466488986069159388404187409669845028359846739257841306768202453005876339574299207210587322503138176028673982598421200455161192992078922044876398215197762111867177180360228425716122911809760929996275765246290261133913810932918568078082868883475292172195876203042483832979970369383395955405172301423300619090076043198521462328766001211983978394565311867410093478255950524688945682339574961745822022669678612933525906351541754633294659572299287548175201995748735636230296578621214021210965123780124405801111202130922689826563152363031251172451444584781941509339093644516758735149222709723380567945358364442844937025933107620914650374583658331118997275441515115956638606224572616018150972628014514132505857761759968923299761608459989864699407887998671790626652264618646775611964224212602525715838936432166738767358523508629233458358411452579193594774435355020388311279899287837526596792972529702973282914754935448801733680549204205404174152173613003674247925641392444606520508419004800311344567829777398024270368813138294800530168651089709819550298227591160063487612160485791134812744929048001898359101547380148115835291883748340861453509298066784326472080672184161612202326033048545949762048571065873162226704583739403164860704762958556145798694780228401918512934617251677642638967983913147980129701088875614962853392290663277996413748354979767423020136254600360725226452732884030657793758552625013661672235809802367672688684324381968557874856540375636747360630351537721572266608274542506212942235206224627455447212014646825390465900624378386203159976593592718741863046885495695437606571214616185115138773096261024196372385847086328290447531043665351864366691608384831908229573170060394299943157699782805328138395990470257919853818710463909174430361070724966931620600040736673070047783789520346280010098079108663799426166021317617750979313240367413198739699766469454149221001085869151483317903723585357588668959069277656028103490830723436821250223807574049575714298405404165036309944104893439283681908369195872818635803488203778928103630517009416925354181881906742737432923450502447638087128723996307481527190224224030718067673785697963061388480234723092461273425279098266786654436529281242121795440584428227166352624957826843374182384563829909616240055746116352972246107523675874167159781452343682999274143742226024093431241951314391271912694091466844422252615259617040906314773879028222156423763112755345264069780269871980476124884928163359674270424458809773932499180802969081443437947468222205426710579209701036770182390162283296764089188042033526834843441313122533089757819930867263037124130144358508224915131736720939672328062628134102811721134283708079728770311367357561134676928325897764813073792793986023515561352807695459317655664514227653044828120000526393788918535023589104351038337500912682981316991639302386456843927826101973072801293184152499836961749154590528900431285980978621102821806283365271514159597621983948074191057991914381000264382908075710994161800408035200770429821881805289097635380063129903013338454755365632645746353744873274181157999400260610613237140308720000117945613540186619689848987244846297110949549533535488217085588617443686809232815015956488190199838495001526886329316872720613423208855576090093728812161008107272527729005826704310788254292389706905541713389707027738397352370968745020620189838382353687316966416432532909946106204392189217846220121027898614154623287977966463069483576905399905236958607319997363811058083393553266383152782586361861651256226011264840833400724841255033387867394842367978513230810810535084458267604886805866727990692544639422270638780634838573502317058526828187048190634521843019386098878644543141534523352873620554664617406730151855734219750468397807287574621738883454720195979212567890958615153433778898545416897990260390387893950807427757090701982326866751168502971475214073787502742078350967528276531388084501837824499169384390748277637029823325324951489178470260150569243810165973004180044786789446993716017411114414229839340501370398629385001198867690634525558585729823110214745896121135719988325844787417227820195533857853337625552165310116029096254784935194858591049987556090394306965600309131655073060356619312182859514224595541406261563493347406949692765663995297354942871703485253269390198573056238353465137190067729020484112131030705142687076823793265417544606645801208835858929766670075996302761515830714230197327048123745609667220705011044971120205574127163555303072019454679673017435298519581606362168672854508853905912263558008130791451999047873347114243464836979229945098261914562076754812259056434805971743893452662763917829980158025337029381829535945376108806882895076982133901366918234132404794490751617727121047523752283302411652344454280479221977895386755345717642875443653143973573303187043356781752033031443117426671041273839649505414269960230422846000840607399173126586304411124323980317193881643610554644583807555274640984794525409361673991081677283380935630826052887419673149480059064660929215743650542132227175295143424093637895792525670904030214961520285205512136099228872175593443589506657980375240193965941018710128853824459972990716892954327886095391131432289976586663545842306896764160751572297461493510958621193609761133821907660837887136343450187239444715738035644778323148480877010487839552306792617061403184110943085594242184353727203963324311406995621147261601064048535538780791135369476015357426410833674663758880247170393657544484420297963513518509904996063222018156012374836722611679072821001651437882943121800461834478335475329045360954220025937902164626910173997094380399232365602132508807848099772061169933936951475593640143139879389558423753962786225940596848448343638672754317324471956085392469339215476548423292352681447605646124840072282259984431245134630809003713182965889816368421646714371371196701225523797905175304673919597933301582944701938848722627602865828121275832716737519155244998344548641174503686994615833248382482173527456145996223875513596512659192824132824055537355666291081803311811668612376188976382919219607166202338659866966303381232336653956673458956218269340801043884590584852637518733555850827964200835337788725574783228368513684848040775334331273021735102467063371727471064870897499700086854987090421831072054441097596017435650434542990424353487171733865727195420023505261038340276689889456153867195477459490109814311565745443430495828092087060558208525615665589252703951122028075064316226079416296121400791318102016166097141477105727078769786359004666239497711190071314461693893000920146641318508298283564038184972689379266065655598348338056716795316953684519105359733079955353648021851095573860093087292581586867479917408561737798178893649713611907108982259367035379823031447732091228909778150606488234220964674098873834586848399314999011835388945846149805879360351346226284950937968268016416856339667839581551634660918121310573328911639035527470007428037729968406231596401688464559421935461581448320667714635405026203973856660769163225726114141884615571726397321316922932229668433424989974451552041367640253759745391801085500702138379062151754359484509433484060910851962135706348678680893431548236483220996892069313018373039420321358464869470958107413002085441882015921168829354345391888858042181148977453523697392685117531448487761526276844635898270864110075023091266839953092387328144664503092891567399284216679692784139687226634057653863014691557700118090874863383084557082723681428844010187907956450621977188218162425871930772797121470208406292648258688047267536374876676408435711828608856388944749498581086564788399891866148104388200499482735078291599273593256861534784242339553476907954476553379192443832444335505205587802878120029836869850158229411480915654678195640904348397355285605786466894249022651202759844381148967968180069592747085744644812766342843063341371808240016388517653547930819877077918536623828454888867431937856726083596254534334999477318535856082569032150595385147760573906805238760912315163559898050921686595747572514287478114495059387866096877005437141963463063342079744960963732961485339068124287400193265231731383663360118356929518397960609658699770538280309649130305932868611977697966518312847851350230713317316950740510157995243864601617933746263100041427402050544876822781424236748478155866651690992545145520006742022040855390348642488275287219862928546633281587585756077339476502470944038950902241231607972412540082717572875322222914523250005081273001429329981619482367764471136886299805236409220690530406073207694299272961839194051652004323787071048768758754714993799267919978821907934568467495667493741820768125635368825052761568361731182513336890491184115396245765679876528168518521080724285313235951981025914760870063259880307352211332919978827429062147527118254071966981515426172279389787073182262306517653581447972412547444608397408785002441146895688730764047596013550711435056599602212792525678539974748029796318716859120687025785067954626482158527617767304150103318609789637413547462208033076958505376386192224310912311873449127974867907067418532172926837409328308522631611682976083735417870816850633826342296651134688845106359899857544948079525001003333558600684594076770146396804144641070133605733859485861982631204279925409650675522796352018501281923854507152346639293264135588552345213493460131620670930627290769652977701089574620830326663314827391091550968792247944885798258282057321825657819152813249567531677098426542718247761151018668209590112305176746514217819080844476308160208361908809119834495288437632808311435025836955988202656570241982841082208892722408419743474013997583590318634566716089829117108315269505554347413316285862945405029123330370664818550072033386697336379810769742538944410761687323946487922688955866319431692677987558485587382868732695424794563971747034512532220018456844732252326015388711988024614190623339974968906170743311389600163434411072801875301144401688327774249759583794039477788351566467512708571626018770056594134977094155428888300935513038281873668387754631274822233003130523267664668427195070331479856221208009704469726550237797696136504737539499394830774569265421018456762670674213042167721669638442247156368934616762710910015291632642834135538176639496546956195504592022242923228278781135823156729254736102073288420508545705577672445904448817572646486496010317038491840938192202683546284779744968652980453604792286701620527475615294355211008095008451985784644075171933013741407730942584749986848929954368451551529192760522502840257099743785120624911922804592626070332497929537966572621524071598827844655346331582666626192677910810203320093286622735783781559013652191880806013852791762407815827551865362711914658274802330877598263860461614522140016832295743387742408335595494529508986854097245417591070272932648882342833584693483504351982068983999138251101546133344732533926936225316378369448846109298998466852125783657932758939096285939402124476121649888055049586981118033871290642567191170082927132031695702765096628145465602724306259609967349944183288644613903042961792534801609582731781094013454418307404232723830527832740874588405868260761233597045481252865936739072276323535586389477027185089575567621047449681588076273628141907023418279801904275387322997905820325427909524145263973432456828466520132218980148840107007698073184724714474949924600923515178126679872928365909417200548017490828000840994193565060443335553954489807317214005908803209935245982123215301078317563528919402986322889400239083273121830557518770945783444812745423718285811859840440410572212099920554649043855101910830694247751429933635728223776790659840980465157631137716809808534481893294634051286256258109151866313678040655357889779944175442904617076559091961723352812806438623186279536593995754274385153076533040136073669293645524343393991485713482001350334457098262321116069773455602747608830387230305065814376328308736827315941753937200071300563642153913531662915037135439678162762774913199767753083612438917970325393254679383137769891416171583529439193517901150816946272733056150475612699907746580620250230413585523106802230742484269152128165855955374193872715948355993220490447746665575819457904887251448087318077069239447474319310413604590506453063017481114154565069453248360102662962124547761420857400560965274643768994984071605243251365027877891113553819422980055429593217828390532087550897673212370874502831259148690835044850093206128864902513234917999203105902792251168372768999084224497830169355591227493082812565434448234987688537353075617030219643328757100733805949551789286619013237739313306090357107449818348713325054530996041323177199846726691908129809373517628513331780688798975722555266327953330256354382017708327288338505300367672159855025510606680247226095380442016895788118686101562078822021019479640477680810808711172509225636048795104871753389493816171111281103087739784968427906150494313577869720103935768009761442102953274158774348644945960760428348780475269937192946736389428184230145819047321742013542599392452307146544479407837432370144922680945815255892834344139420530832844352953630455631524802287354801317282242324760831220241477096175701490368677105271831367133080963859510920632048509572605835905174839781251211379204482431600167810711734685363080457463593184309699698388196231042406158729675953574394928648330877912070172872575058025787249527063615277274471374391289792321849530456286321102698632760230295782128937953950498975856296255662899740580614322876368596217994654690978227688296695207820571039590687274621904342094942970991111341189526692967943759962258709718814641726980310288004759879084459230919445928664065832612217821688777470716692265484349701314698808700566204877659277461244108716946136794990024908138865289073828741483188064374347579162862997222020069184944705602594992989380731976147781895515669415919959664249754374979538383487313513916452872425102535185063991991573075505893131622875132336178038069717668330918257566857082027894859163943515425133150280220305902991056059301863720511844588337882990272565353126861605145715321058950141452728037887122059494461990977130504840159543440159649407499052972600607178115518098635893693757545741905165262661815836667731930906188527826291362690840685043697818118289061679534109995276115693181169393595225135761083027614232635279645550759710485365661722018268002594390493445033314057304353045143779608414934493026978184992124014252494332300399598979416406715338861197619681722528564650325622832742180052718846231837630351859369604941869078159771215719394163195777096801856455493544520136678026628113953934104080698998669876353241580969525703787311936124986750326757359836258984318988959883905628692118593336254409937416172401954277655813167088043704320114522899317547747531446823722273131591473092574710433383864114097079826290838527885228563908719392049030113994659573127460515907989578332107453167427099485411407187333974522118875342686005992986508504878794691090779434720077784430283066110423887448846100826538280298402160683317092593579856802588016139930951068122797072755584999812967113165426304136471072504527535805753066071120130582548217257007651929243744400593256781106173556636215856102999234911659879516786088053162812875555203208650161816990237289572812977421264736618081167223292554737507025667986765700748478727015286578552847016984826859595550484090446073001966648497006526588566008707679363446922000266955536810408781018677036100786131540398749986825878813583150829481319593876049866291302151303141647717475427757967435763424183780069415715533806374316557128823714059287152078039464309252975298825239242625833216646495035164128008015881668852368122215238625867591608878935076590089551615927415712099115671995679696022070664403751954933351231614842804643536756179311324930634961484107073313554368153642466042222033848758900275184254683081141860834096856625495591462228810235282768977537225446871284696620205298269642528232825345360253401757892761692429742488252145751426032773396050285179984333409687346914469761899356405887561198475109109988525346730550596270116319141467230525151396188551640550912251827089874351344599427644754095365483197626212866076107798306023828066566641846115061216812555035522512701954522563036423277326580015162475992556522382546881259405363611573395586751347109495268837032114941192927984009862662559422613517276101668037600652467752018168584011722206267422696624162009037340981808351433708815219355071512749426339558691372926858971814854331443138020049036832999281031543801503748177261771497522310864584833149594634893777457300357510097530056578519251476325940927323126152639753723968758892185595079508269133504646086350464559490105979587526905991066074667381249499306969527716248599192742600800884497897697839664654163778476423136923277269680533796523457659629499427639681103170275784244839838773490305546758288210487350331797818928107459280297461914869367841131976222136403672022155683558262105804393150620009396508098033432017107654030590514054734483208336433194077793553777404176469964474972020550145036184808065279820063890554987803473676657650711533738938040696735752854219442877398476604572905918429977002502898655274319444934554573105212658298222489031453170106520788934472624579243922883291776710044061955446702387918111925073816381246397386492436466013019416149863645175498021596962372670291072028308286275212488589407968007751362970762673307598346224579242913292221651663467320706161723306331412417882797717601268483860969371354889024776486817709883530711785212665020276833483573049020221502572643059392324371258991530437786297061009838906863897163763472867597841854909289237825275285463136089418776044751949965788530709279506576807876792527819299085342860823183766475925958163911157531020476151725053012776040380143917266949050161005628570784053842677849122735551603547107573668075218981552741526644123459330365867098704168688024634411096313201902819927068074244142796994875808906181682429371289969099221903938981827726274991955281812302338253597699633007137024366961832562319716723911788559200336693899012942279966989617379190554031673279026535062412956067175527159587745858527002304635694171412136996999379048038178645689765633859027537748113342722867808033134878138993848520661511701976189265809704792991927904490750740082257432351849018918250555436226353773187247046405106562858457198973018048989280022316053128688369888476640923945344037239944556861975065488963746581290965386986535098553069642060792728654825441365821504802418533659366460891509485294302792507985766995823230684992077949603040198861884235981822287645410823120738906798964992220872013472333712685689271335315508729743561819612694389382398307579703292416521002509155430888978031021934632323481908394082008702497817355505869529220063851153679755611770796732354380674125144184944889328498359258596524499342822202486701122393248667845212949375257468394747133603075104277608234194812108993645339503848027927545876216819433456216960595398111012562561927511869354582794447258629677221528101223091260723153833847519580262721608275787842953230787052737663599121587528043164856830081334513489630987880833508535608530827399647041364408204136027171940537419478930041727770633617610415812241965269122183164082941827782381863462196787148768190468720361462340334635525946249014917438061277355812417562727562567852701012817391225267837431318694370859839164319711442687321669547681434359947828090946435638906701352905176938026528396540934017873038199520091189036940448909073740610281733090727045165512729595658458613958923505520254956174311416790565911445400406182170491945169329048738281614891929070015853066777959253189314549905326856617530967854334609911364926929179919518780613290480707442983000767406749875030212352232952639878433157069288041357811814140359497993195379941746956181323138283553512737633892794242369918709556782996706462116028343387062735361161377285109395704695053166991449200302620307011157334602216118111409621102326127945079752952506724048964205994999818531119223520670987648904744483203584793797770898817055805515856590035757109130108383039520484895367538979395910914568521244267463466068325598830188550072884494577342975374829014673060729686219599500150779804318741286874197266723246803822926646787312051339804498716040748349306611669534406377025864857251904297816167421388462904772264551017906219901010647239911662451789963068413767476142907736139105998905164791314029901298740018511556673290090595981684864230242813885518204509249413494256451617644380248319816447824417536959040892625408967132931376724179711844978818866412085005385012966580735859114455602349723941104011456155242760814180370069252822081683276411051436401535749729948937422316072979328466885968907795294790496227741849314074682455309100248075461197112074978405621232584567360680545986809266526757294228814064509934683589281985509730099910356263104619407303560610097865893594862914833338908523490352260161162673114461448858248543699354752553546859709700120059810561674950302371946030798849057134796665261835243103296053486605542764445046878694985319344530621797685919891905272509139750873049472253288263928613381312430816336100449891403571516001087599959962032762399737560066893262166320412715644147185539921637451325717875699200453317937342153925549573014221891444451488176590034880849468144676451877069600972118126011319360798837610875061995832980675053438664385603422791492104780856708712126861104994755123641968621590053551892089604549118018370873512133021139279479494981571606892544392839350662319542583022259939046461084191269772839116253297008999936049835442055892507636851612052268737928360104538637051693968334647022681621080477043175889166509096907978462151211534058501675274330489578317283195509112549139599674348043074937242320935634159516285242965001436313754935532632006427338194540360350164712920951006203002910359169238771153416402571309033237480118296481530488609115253951995822742011152881786371824615459101415350732237989081025852079131232618337836639730867253489558808265663959046984945866453279436513530413296233538264625981033723618529193487420870874055316742612126337318829376872216368034923563520054503815608943844047969180336520233514029767557468614333330502083878381115412689251511661169302742960004261136710575930075303398632119503080339239357940874168705324501536705729233743466177299911934851931531955739995376912636971633673311797647711879701069815948528189172690696891852290605028823419661258449115966235043053643601403444358699351052088422156557911172541309374041610698894316863165155788868474257114352930784573782683819136692374718737650361140199312747889556131427203622506799696667273763731952246451656715554034069412849594237845120976737590174368585467155603857080690067979160995748908559800862916521617866794052198752526879742308770547496304230282930352584276127652983737252062525021985357005840248824728815714393333196937868950137675349514727482483571705911033051641065493414482962562590530536504401903800402021196849436426185495718975382002901572985364741419222681665908193742689302771184240177491348446910164892503872372004834650012019709014512909489591113377755583254859717787355507367604154227820885320650056773329734212647366591449084261444992089396257660866750348094358906903489456244972985236236316711798113182181189834911091443243547099715757487618333868083927582421882583179728733764265847384199594290634608650256419207290189229393768844542251601149517129857695145091919636358890054021626816225633513873217915400557062003445490474669434943571833948557086158279042607302456731261204807743703522838234599595601698227400702221585367923961094608755972262703515716182166452162248859586412049044584190568648016543560112432061266522459161238417808079978248435522461794058534783446421569310942369634658465099370073490263569899163711999389403666721270248663051738779437139024264230675404649691081528295097880107600201238344341445013567619759356345901239115933752768286528785892443292513050949899435064882960966658352471770631415297602166688289677562461782653766971313719990062070211321316863447932328505352679495600659468491130931809852733082698303276048808881796616192172959089339113501112071157457687013575617067849122869584070240188924198398469479478601862945180045807987306706297940170571893004393865982224951204419084700746960247815530505341939852891992612019009104156341410998947042439692028661610299733216092450783477969307478269780705444627475882713147692396714419374960529364275469800774180052184580002796546503000240606316883051850766400807180474322037039004058264465937753808171475538026007964944623821056635232157330073671425259848176823673502108908629040361491383642745033285748341564064320668919449674827894036334741041112974044886987721765510314807624870635067815466504456416612238665872967793912880850092723053096371018865321621056971804696966053423537994453606336869506914770886213147410582725953436588513964591927691068819678678592668980544642257052038248701262203485048705066301106195662288121946986483694719553755339636021121200306697816706770964723578114612518917013239821079972843795136436865611713737584430076143712286767800035700860205762013768896304941469969474083979117358615658151638542163627906801022586618713603919701731143385931292749671436144679780199513914822063182602211868907601089695652912998687574621404998407140475405677905688688647817245283266618259818225201473162640328919285112823898120554221597993719048621437563728845520994683343733784176694780514000079764225117202018573169058973921501238133588118362277534810273710364932084920594178387318394578122086847282277565998008217351759671199399592664407439438611325411622372676849770169815079483157455109653310728700625522344138768522983682654195870634308175745439164027571249759425939958823909567069844730999305955174361591154009315919492249564717918932253982959632649193221865772986767730415780179520931413846965300343207270542000595666846770913738070933435023102216076558454308487295131047228710996338635096994830849560532987145656564092318238133218788085008471470473598521265605828508944509247647617091106123837563268901581689980806155480139586024510750001223815736846656715291144287491174250629413212630365604954490455709277861588161566830209905625847691136802765226060649040913467529997033185560476582751312292402191696518785907719073829300623598679826674482038270534062960102609718108685089761367962408002450553817723429170135188042638926171461289072010259076042116609292228701996607518850720219248721893716229193319271712353180924995922901192295096419611537900591880045009041450255709467171752580936545856936224585663546619152200593937618686218214660238980041840528348147511605529053791581334223054374333883189960419679081119392198891347151801832111774780474469809257695390740387535896059099107942993527566541237662932003362401288618657217641114861471092870356109986792261971393492057987026666118523753009195923615354652460704686749202124764675237599517156181521854437639984560635288908366139229863070503685297125851698633144238598062127569234498852917259630077250865418849929838683792451173779522606687743092259125029143791856528769124110571365532855279265332835073160973587945948125634819935146918700888521431863365740787440956271390348180717794129540814832277470271245601371324980149016916116296736376342107934821777793474382590479958319715880262013993788120006159107630650200838268004404336626304246583889484798104708608816631844890189808711549500533466465482843491840904475667929813611150475264242392968631813616980132588819439993210842579916173069942903039971526043166947985867705352435878168264429653404690945159453888459920975625516038815916931656646819431895223565378600342588654838782224253016164831212348563162604574574479919412589925231499410340028203755723585118338568177510195307826980484544114037013241187589987806418323792737413827292800043184217070171368634064611032745747396799931435363513593977135947146210907219121055890308224470508796819271439941332275668572966831118885448347586778323234753755474175340081050352363571540048000276055382174103074558902998729472170771951165967762671649103505670737998233980937584860808525785380588716180013763260840151420016659197591559855161156432249636971610232015439245778410930840142487666704772241120532075597790544955882575957815705876544333341729663693118388086691641836589628003823065173172027256657887306730547714590104963012916483881832716351422899830412480643860570873277797636794984448056106688129005501327886047499465992178967865322463786920743009274664119565132865527410689264535287970432290608980899346185812290542975063008754354851756221851856390051984501949666770786659460018771676589622478442796855792924178545808906250563633485687063304684057132525154058300820506364150151722566366387352243636275974681799746274291711960186216187422746333695101851479720293519591311026246612966336658336043115679807500204107398356941643638789014664311899162907027183524788322994474808288082142012209328738457458021827257092445656873815989656934819715065611105852340717662005463133871634358175578548515171269355790187529814444877818386510196147537951313173854855241856141555036483433467554627735431341641637527101352057735283621006290527007178570501601175909342079423978043578816110011339035328354232798768480986769792142956398542570374870885134903653510265162623898267346904862537709102717188687480399038216113064153409720024204447862482487969346281689064257424301427927471119667514370936550654375464695592853671784361516330821674589086848973834011929218270034979374968265662635996939236290420059701346477824818216741757146622452106143692790223054364748522778253118977548255577700282959990655236086556328792175074705216024764257288446600245590158652930419881049851680449866103034712788372757241790020774595938303601112745003549644632375402979312639141596209281563349075715562463765525563752233563459002783615588938679804011876211077465058628373071615023932619245933041217902216959227426875524359429261780244424898126940443276913755813664686624281946944181357322024090773078187959524816908038323709483343046164569627705508644267061164306103156214215165708154243512071965173547455618755482137247149869554903457085895053511432394021582462373179918552318749680683707121469217975229527765496855904282487680820504383454436761380315223777505023893408898888176380547193918917368390549117035241713907428198953496019307209748054434747336414898546993266910483005198534414859328350139417445761472321193035673516795279651808809212447277537320225205325479639953602596799646422998460643275461300472320428319136575898090629884651088063978772136281586946906446637709059991166556720577545205312655215945252856093050834200984975785933726471757737222554577493056737322675994547423092454280531965388848263111006601970480143683358607977270427143244101918596247937428199108107646741156645852669096974672371970082211478899498225050495065962096324623162602588340771283899196083119801398252927316814808346717602224727913127914975549582470411000628072515848247625179837368358886765101313189469685489077951472474164532459020729886518696550927776924292199661353104048087739439563756387177300689058980462020283427661504434311928581884257353550708037922867781520000347001739755791472630932078727070832281626781492610376277650037037939641990477124122525343068517075691123610546586921448457862637590609807988652926828464980090413512656417860018872927015038174283187137586592654274730054724720857382664639920533749403996355445028721624010184184325452614504979432962002087201782575427769000056668128331687727441937700516295116386048758318237549131641403981246864700943821876443121389237939296349015970042250369644899205755834348198896493977398056279976728299816707061439856639145113345239761167205780188989534450690953850517607639437966600185732608911712837055912519200832211049553238652831066348481108278056662596061959186542470162512017013181749677241815842906240116076747509223165940884273500977129685035860543207495195758116118555389127067860363928285636957219434773389466127632991488961139409524522733965166444399561764463800359924230737648590182772338070147910565712633827270702618103745988957619840029870168680163746592595880895765706208118080157882452354705123194934030108978607786035580162564749636689522666442970347509737572936552159572050183800113006424836952749789804886699463126483707126201758352889834706456329879625278124238149723402699238622455537994852275661641820942972849381526615531003824764589410106310667915593880787315542251480993563470400838525633387137340057896651182826484175222043033506885676734567034955537832912845721408743418446629661934532393401021866025172258202443696982868925944822925695805014738420322345527491624205369915318642518351323931232499261711020906792087770812973318787032543589458192991579228059096293136158045475250826346599879582928214039606717154918415797327766696040067614321613729799628796942955864709623896998461528839451193998666805294785625200479266480255311043344821822253753554131431987898424440809372626409718663225963964514091086382683649122833338732042389245855659612314671573236645761664078569258157301770641632627734084913656080125741384318295152503156881916143121016380476682162371403175562710058297676559739934984565116427125479068844684230626170547284444763299637106512941354276501422637674697422126766319345148201174517293668195123484548101848280703897997661643326259670715576412034853575450673922520780786084588530993043907568223099413637222188106574747344077183657470787294973062888484686858855098927826986686731931150493823775320580981943158354269830403750688991370501669889268405355192456474082926792465855802189263999436331691565919909684854443539972009927698107047373664218690257121269608457860292458927142634405548617343956352245226657966744084913628165235835075836931646828954041678369725524738575238764987591524330562429079161616979237472602777568209675818337606821487688898873559006598178088586527324699112682465789404978434236058899107928776804942597133685820319686198685047500405134730067932234329268379549846423335052472634600826900682561505805874164976366455609016970383544648985789713781763429747669438363932422042572383796523589378332659937329444253385444311368521051458321850853442274975073755215854798864965270467509785696343799859285669576062379082553740659939187334889006837077461554897266169303917419580385254202363162799490813634006527742486261389445506735903883620494354274153197511263405755922081128922451794358780609409089122408772146002645165757348863518404936364145628514120765870211986164147222255411192321744747988991749123962829692299040386285417018084674756563754972883526419391683522650919117163879656969755294016175708741289818804165449744244326507976862191652532067812326776948374296642744228771985706253177890091638126251492685988356833978058688528996075726123240590821010327684685282891638928869622912196158302195221405909522052289723776268781395974053809512198959527275023004951020591213775174973655407304075918874005399847807615851342188071927586023836014711098435611369618313732686375727442071895095496356407369059922602494090201514634956140642902214656561208946805217082558297518580961810337092578586008078387240534856379978243205094766093375763517810817717219203883917684775386569293099536828283877169962566936724965836371643978420741605497099606643322217428299850996550566674945946019138686726544431733979183833594902664810591023403435997903104422189042263646860675108082269025466751984474589590685666369941568467338458475850956368707796359312307659404374982218942447502815180939598198746557318690324097948915874469138199803886815819186712304483775685808294912209528247415139476071566273098982365410801446919541823312281970466955596115585555583158068261025452643097732306275839220032377860264538472802598780241198322862035809168753881154448274895472700159573345864009591764576898444177005799123317881265216251965974942027912802071502198068826648210630301901682411919582490155134119691791823951450524667457930173463247036283584809990854643293434708610295462075784993274796806556038152665842415524140201003280593124235380097868194597048723087836886309617020651519710643599949209993665076698458740987820498064009274674583431410422316082185344062345981590870817785048888618807693534761918960214338837863174046297492274116279823919491769873623616205479763569446243760083169956641189572553240402559336325525684014023122314641776166223261074658227719403050475318290052567828611980046778636179694400977401713533504506350879322620087430822169964665867691295281662918523716125324226352527692470841795197809776681533273342852292321658102026485681798446547694013700247743684638349538381367472141674280431364688152437071067045007048764992777193608840262457483254432963055334917746755123575084358573650502760376374993394774118023482965515737324143211152775517599571945692480028121425765222409490512395370589827541928616206449769008005167281055204348552269550275953541401080325760779475521738299916394418838716094379945456936815211876889445377895821060642769060412999359170591337426401884312751883293481066332939226790939499947758880724447902979253590546317401038149397079763484126615738356670934525792427457896076247214222832350919705400004462507764849278513898835718835098201305534259037919353631522354888586632476676428807777930888797723043436403610068751642774122022613966832807789319278283180801730773506074815248424918672426616492049229182259713824022459552324814911576860777074546951929679378789115574684501197426291666679337849464115603827434555890070055022256051590275816164876532958319571813576943572039929980822147377830620184608926172107447282862219859098571693893360982902242824243968962117442874527833313262376886643582068565266253860676996670809752449142942726545975506609267703156496396440114683251688606998784998410765252727812852158979590895659781558399737551505117178519055843111580072980498674333934540991169028706843467741833774298176302122081622769219744810758297363321854361392455932652347179070581047468735482455297776985689207956294522045382866274192045745535975378339953045482259204351819726714926484760220484397369483369223026390200315947117057405739637380512700441990451123150637458810266134857876200902286540992824128377236767233587775864494869852072486051205986066681372363597790058054266407840464751704853414818275913624943526353490294608819765906001658713759617540519796900885572069372361348139424720811740904386265683640389657451270587491244995424086329427955168660651286636889570569502220401057030796855422370247032343864425953187284742972214717252399699923595580824067868172440365832231967271030072370018847512832685338460583427851027264740562482364063347667757082830068336295517935813817405505469328324261603421653933374784223629619312482017383644425496521313316188261300663745974991373785763287414079784479345887958946498945527419728749102956363247304795669308578964807907631368804345887578116171733473231499580443388225316886242930729934855137932734973718510025779679832167829101049315421662936139214099388525320325108327629732608404138570629413113301333209721223667560721383267696875933712143628493247254061399143739001790965561695052452366439992289157564829869235815373723256517362932697234236700843616179673878541233833660562547331853181529470025922764281748071868612483282936445120486288621476818475140068747632695345914461369426427003268312236192614479106380589640772243020615082642593745303371724176437735031242914801975239095719744748944715330799740130349506827920981083586398634299734639304689609244725738517399368720682149804265531243650717309186122252320562716004026557002787277438174192435155205519671172809285051412070345909500698421395679969363264515972383351624109218153159708642847364817952599105095547188042776921947045917617675037164381908669723395194354140886807622930254239458832279656767743630406787929441276066812125352220231185486206504439539450833175103658367032803394835881218453132651779502565182899807604331144860120506527501540045683704621915406679880424209957604993192548547890849653505348540038430317566882610555549595184878573417655392948204113753751597281622266633434816940236848023124933566086092419883991821661758925301057140166068131269430603496736283029156823755781927794432895691980245949745194643123273619495747664883413246254399720150759828434723393195794482068089060589113398531227108018656772781594119854048977546054891976387285609663804954008611147084442647892365883163783566392487897695072026627030579402305140222409719203289061898221928097857263451648563000766202421282043485563090852178887477117783462160461605514307637870592264690086715875974449437834848271611487428699148321647846746304361522565393829797467078118373078230311824234083865215765347520354241375279124239825175624825448300466535940083123454052896778741051361501236402590045655313310247751868615909953062022150366769185682203834701129318581560872733295266035265501123249926593256900325152931753166959614662238114574247456207283034325534870275769877110872911354959347219583833563282658354811844963977592237887888044369846851536747513650489625629311270227995428849899696375904623678882643167426310063017945254606332681225792017818304966353345160316773670174468426526716737165258229639347748433205952363026627220687702437203077632734951998156829182790502473704817352186873667824857650606668950715894495623227418565601968057543651454521634996021744129171054220929178018615245622450723505714414671304030393589522073463519978648849013641460994707131941738727855807641019167308535615166197245465452756848874489773850727601442870811493832497188533540158612548564286094345601016500901599340478876270963039811024225203967665739926543992037696711094917330844645580743403434978257554277100373477393534002252784380319732401629908160435132115777354542834812321491096307125465942691005587832958708889469024636326630583367259869122724313037458052337766924421760246147354410972366959808021132453631832229437556273116821874436271671568659024017959329283203307853408143765674914085886036973672844579434581358986501596790588272538795372313696500733563846475607013952349700381108328105109285256996988522919911584619456535079604802326666306886086339872208359918899312378789499452526397184382184626303880670810322114893189364608979962335791865826204890423726261323456705428653867823819492681228961045233873987881048931502769169787482927879754828802622279777417352025387198748171212215589659487971126263246628190034028832065547568113173760802498917887244251388229086376054970123486360204851096235278893601831708339435562284479008586586575243045302366527745831445139746334117427998586754191829328607139747541829030931828816007768134106557371165322917705598105601445582910803925853795418431511810045848990282610189618735389026251648943347434542541105190980882584437975016061458189837750779272396402077146335945892643696214620948209257428159045602692056934987744649556680295756506363450266711230366405371363792146825390543069300048424148998294855053797974188920921874739716093646056337794441752124271773226867782951487545573011025392015509164821845483015136874439987456101032369326173482583612112962457351727796774462477060826032694470833564098087130649891106197187716903131216403967000143144656997655687194003813590774819834584880695482639434821567823596330506948897407239252382767606429887608677819957219847372279786041504250884714178943662569140806583482690719440742749984151089122811191305192124851977960470051205567318877660655922581814317849950103406982422699338303630725899280933634132908150773576755442754272921787845676631045368182013262758243072394273088578446667118531485703726387614504434861046930457582263158097117040798411756554410132429910821096372498419714996800266112222411627654784652915212561575249190641718122785326384166606378963454813913732507433334932955208792550600816630104729111173217413434470781720850769160649853641681946909329411556258063674831149005034552169570403376792810481491867804949522855368224315273841907653307472556479841946538691998760762298656753537550112691129418735974109824030510196277379107858485288302867865773965726021805277007363174670327341914389088725769303417274351675871220562305040774970005985401383012282415830945048270458113705762083436166356803525303591679096364635737449892093079594664706434378705119711135476651047196248719976522180212032436360552826775086567225502496127629156726493403603008861377930383929846716416489579488318065478362585224371184607435896594532850844025007063152319439322570570843838480860847638666083129044921942701551557202047438765522812521067258028872378353516790737504820421646968848385273970332448486614200670309698669312732739408701914957907335607884443759316810927104473376190517167994194272434899999185800797717019214714516728325421693706238292023784831018312180368392385300272093929380046367845219553744437335918195293510339234188363467182012275749517605902586857937581469684328052733987145139420083146474738663417013319616310226035264260276997130153799810893166441152384485344748952291622690657249069698253574060080989374554254577790154983468653583701360571082540844756238918313800795420469206625270898219317009169090727485969825754617575499149518372366424535263757716124661815975240716700394012764052654196207653579568198464121712717213496780050695724242270423461355737612051130500028600623319658976344020079418092505566013594610679654763882671693840917637986748068881672301651224035326870341296838588030431636797141697764690884964925186326619268591180822955482147562935296574161245031929512494487074275148167336023032000044550571665918474560664157354343100659668155381470814288426255251445265942387566188509938359824723546002667897548291349034492964879853003825625245656122403458073519193241049256885530198519936587460251292075604715527804249973643853625123837505139962066723982725049942735651643310921578194708211735465984446363850183844217385318968173250707498941286446645627833018858866846722891553357371786834665540805979509123550839391770627765675290414664813991111455908505374671018603253138842315776138822207396155352440285045880729536438207464133491945339107175026541072414391771558556437702870090096055190569551238343860086542896430499524187245422137029233789335850124750754636322055183980391580018756549748460340546829537543210527463467025064988757478463846259812624029303666021729082334668220216863300462928431012001548886389956510305458151264885171704042026354946457685237540198744587664604439267067363026742683835238281547866960018703286109803203714309296852602123388841893241314390178865148972948510053826103399072492225697267155022131197150157960576058822428532750813495343802529556524012489621643938806157633764802703644020310318993813503292271315782228052884490075472056133192888828803014279339989326803600338663534172241390925557258851397467393791628216102164450629590369524745302822355476931054914819701890239309520713248153648723430439342435631099433019840100502550758530041244026424404238852222961599880856377431052505561793050579151058220098855971504054512479560760526065239625626403320783976706326971766751939183220087628503005281370336304047346934863287370120644040024706115757563633464623420853885742508683124515921662253906650358139974030963612615594551042278559045530973039515490936081514712383830792369123398753158274112833101190030245140999704653465099243833164545553507470392604605420891679058896372202895689938469660378116652604910479215974103839335746861356601484496800854923767707389405633706485266640835053035097500300002323480752684936297327429055905074046548621141241993097114343923825086638683773884446649889153390677422103442500858291195555674136959664247133857088717736420668105656460683440456891341897683042820378672595329790210932878884230294478605150348615654650970837114357976522543012008451452657191301406323947751158789949277034996344818127462233913944985799843820216513074765123255158161058565389111275241653391801717517014033651096508761597763642668327681138520946677832207600159909731640949142678571043429114283672657133251116203355968957712254794958001582517198643244507786834358999521566560895963241705461238602956978680793633944069287203768863949294300934671942371129994267158280626971602203159565019935504561434619803624048990192979168386176126998484838628252198346256275274390774169131152435081838154849991349988491189086713357234148215135187097534333293341178641254771834288436111923611186015725347773037717904201450524425002653045337467472742472413075436868273521695777823663622857222125742614064697169070236318552652533139488446944411322135921025759174425764441626100891858195909328968312412502281656872304749705585482699942850453426058864364677432077403855756160219264817841893486849667558465884268310564430523302220591823221520645554416923560702650216283124234643899289780486009690826990532798188438351629311895262109657615269172614833185180796485478783773295410284546353446241049682560473655111032118952617075789340758395423445021898624055801355238753923696299742956800224591566858667351165779371866531368845987571726520584750123673163137140392082735198641112227504017796871892584157224785370265694349759446093219906449091937611575613021521119194850223474149063139079303528696811367805551681874612281664028779613436398250352820548242362969512825648715148087622709547164662220901800284793518327192914695221132475168034553536555168033055354152053422685098502390790362559614601253411866200231756891114041586880622801000654576727186513073055339668717340252745573823771842991735322910040183643044031055399358073009961291987387901736769610390068758224736620529732950512662216455151605078683988039685511874356729013543397350812600929168889393609943527192634699775613734243139599395682025428440371930245912456588704109951862494812787883200006405196751286525871448323534299171591734898129443329766199023020158296631068484051156346096104296096639578877063027381894640902926687777487307741870188360379423396012371771371110896202076944701660376481203688851183730525079318712736074298348906591002461659874424067739853851230458056493671460877418306957653593760600701405635399651129773279281430471924085252840830551490527623909023876073058090834143628410054733690329113711859109617200621405153620322833927224115631615663121491405709907816731408865621123091337935931525613541120166038540685376942099292820072796490868719077093336107591941443578054336487449483040157330648214427933120430414025454933498139510840931015811871781331903053515912151518716601708285899904428774991247991837697099568199407018487375441797547894567749958631123012186566915860334476882196620755196200828995598916466508795736880049726123830793082338002998823921128540920965326246885738673716673772504031175336365712819825305659909805063112026871905139268703588449945220215499405573423578010660856207718047955407563648261674546200402726356254734043094096008924695912129158873000346884594347480671298445648009014955859333490983717144505405669412461616134442516436500412273853871133428431524111109047671573634588403945115531812199992879094517215954731134899438273703013800156494851963444988681806564309720227728193657599018911956702868256522429818079385632268736586753156491825707075051501412915978208833453802443642700165114775914828052863380883972740229134141961698814371289150621056544125119821190834421195089268806453263536189488793807169659829278147058734141812555891155500478421545938163260901140931901076984947509647869105138219525334921229184344085931942565744687826050402030400309222340165473482035879396111985973955680596225898508740555742324282534671356774083194153317703958811230072119843345421760260097604200378728800459713805966901679545857639661127550385352845316514067654013038407617096256485505985891619146761757324572469201041041065851200474287684161759657547715265094976752455612555545051235821806940363064065747440273395823645427597954352377271250597127683848445960594182808947458150121997261837528851267232385185863249963473438103510800083188520649733049817470776775412385334130995935884288415875930140990432911128228440253179418495873722622836748428631280189104315500932610066113129197204334950999623804188091585368226945176000122291267758946648087598375009614588965407571016705493735522319404512385707715996100064652086243427133070170680596371842342524029821212312904945859666684608019769972775272392438883052007707845984092170120817759072476198408867146778599969312163140944033144691597871039102584860272811071721579266317530421148494341336019309934307256841825441958907531859441945868781290695399968355739841358405575533897147626545690390998797678149653224958079865257885404811778708505875308526706434726155986137991784617755855199953889066485938693122754314684637214344502743848547045371071570429844589389795774925212105529129799660169170873035387033053739471580450509889224885896156574770327203221252601245834379306106529366230400119243031657721463708645357304933947540573918691422318192791590273256611555477509790490583103778938577212125282106409182837252073670930918128093520367031010893678711428951658930386122807508694551260224477765241015129543149753495247855456799175726592637194197468497232224840655414619962436246319300902968832839402512952271976431896328258326791008565624698976302482368533815362639415880757778523255185218506182984431709490110012154054518684462670305157443294459626276527810832333067900253549913176647627358575911164437335402155247207908084596542578524618119647095762048910010760689779616066067808878273846459522294658238567967914679528365322208872772765002364746239466777432360025874812745828607798783671599693309632751208644649310411989092592839356915170156428218300714471140630875384642145490779739928374575418472826829221215846258752919261432811574092883864434437428063860599275328495734009681328839506608447814898971506719787598639535216163749766961168422687005373529620665043779416170019545143572648489174993965286055550645012638057910849665021790963244871059335985888892094994413999111842605240478408240015041720825944396496304050422432334423412231898366259071657411322119024917339873698979087191906692587929184368375037768708134990084596374623095803562595310651551231093349921946547070691747261511176249697840416431496347149156813881662405609098234901645504865834821322106776934780797466687398105150897237571460947381775184673851619229096048670992721505135742014713465416808025570378438242131536081317049732945431018124163067091523053094743153024091305078799773686670972046702989465347814381925716664021546080674579733385844781305655662386139896418584866505567678593805952642555221689269692525176956472300076002396451618096632359260925838951779384039905267651750467768558668930723376762288726582289415350117696979596156241813580090718922442177232872003875171060365146482983303305372249564574479816229230358996291677314090475184006580417040308198343943816548910682882063274621198248333338985669895292902835067457738694555924493084471082960111588504394025806950398954693995075967060331038807206468560963210090329813694337119066353168279711311263815573984743633410544245921492844816607897224222569223936776987105775043118705183040841330039336437281082996533734411843544054805618815315190791177900594720713732256556890176317136905300394498671178677657606161354194820269956487696791902535274151051805318047904833229952470738710583669162523514973795883812907822441718184814192014021115123662575729733015244239581286386993986566596722570847471629822596727067005302783891661513453538680049477491872956611414023828964951927673145521410419075872805809654542738818448510164672164841286081811884855542812565319604168846641177600469619279846953850848910100959577608489581100877809318334200114711075366451782495401231276452531676859891101361387098255505779044828323184614801238679941464979419983198656430124212242009759258432996544368400132921753439548318530211210047161890806925649216483152394616466501537578187636285721141963760634590380804485144448268896301485547363567177636112665520430458032861508783195079881006470656106905920925696551084700855434217568242624467739983958643953096218576016685023513457339696192916600677121304593927898088510746478370676439446009432290240467283764687747067208984224155797931820852699024220508528714136579411897819785504587389757252874600365227032362527644841776506081179839508952757538706673058464281051722442379835925436488986759190110848908531258565256849093459137873410967007559078717216941505715952074434206547730785720149490965505911230715608365355174411382300982288148106012175954828424074282604636970643405576271180674187884886305881954050094623354931598350794951233441213572825926780315452329051660143981142902824654494029523710575220410408719852639985642562637879054893209384738109277312745761673514839306932765056656216510271885039240621199732384491744898198451671836974498021578014537918841419203669268865841251760108777421861457740409016994907180539710867021896549013771064734514113106185153490595314547451367557354141683472166332112542241507184695989545013350691631304662536485450402893329655830311197227044692712768445187936986647962370897083791325104578842326704877073426002470128939973636738197291834119862214376692896693353279645140506039664013467406763717868287393048276432252090231302919414755942393487176956896303242017126782671993250398151667836940800966020396142600876263161771576560678605542088477315621474647508369308685473326069773361088070161145554162831138340683635597954777594929953511691429683515415906531174851453049638023821127319513900885682425770076130904374910970801102693328707280843897428148571623498332863755675513226515384940228560697895043137447601216535598183368946742757422540139789594921292535499754244350393113660773385319495920506535804086623698886835741773118120204487114491206080091414041788555004062600514238980998588060625998593878167626604123664222145716678870393861741585904246386451079530432107075752610454004327624195871577617842744430767390248190189460719058147553505810236668628209881050861453317981521036092562555849947227097303806193235909114715979964546453672331695861621557701291316057096724507588063294889700033601732003149633967031283239940699152200059759581699408488928790287870957148779104899687207013326691020490833378624454127436386003821688457435357348569542376006133559198136987649211296354545802945038845082300601904759169844999749285356787888774055789934978442999037941842816192291664881251892815947864416565586115774593040323582606542663128269069150646614399822782040111367023605190530930620673903027388120691661208677753644625729204191297007926545074607753128883188325309617839619976095544128713730709131929297474923988857945269066393153737183766058626386851040743922546146929987675748887570048359865472133548351942068203056630757241848187405753097137190801667442371350489590528689763169365100418441841929310641217624349642807246220795077792707775940850184783641036810814303717300047893228768691588740232752954812243787785994434661532103076203193244832730028661543436125006078980064933067707551723849745218389985563254644198317277638544589402036258928886700741919812629633704564459022096778867130780728851177956255457236175317918344958866223470113919646489934196257032419095545535429631166351171922664204771691513008825332423423185330638239307999728026830156448174462806677078649241502501406976087151060958026576018636858767595225548486795930916027719056171831102100078722860230717868791671907153620932990534336850969225074549573359857226911277559013741008525376269032264904762459823903709196087975491852306887396856358873495848827637613568436402782134965320221620253900156466223865132120426626370651407902029875583269543604100466557213392831449323695411323766206922383077364896405814413329795519439965060432690833736648864366002864911095590720327738217854893016167919135899344261282022544397548225777539028780812390065881804375509744776027130929007956101760871082136862656685640334033271152619979995460671735858910215594898711891888924143102785122441590804005135088116050053100242120192777976866867663927803620821921365378905531498926604922873241925739059632046527108073528121647193134510770658201261462023871186147015002970740207146696289440809668154630119720058921390934865749865579420051455738231945060464183498439163441493368749740838434704098434929055163356365173643739763721825334215539774136727654626382608507455580467103076548575617245620751135488719795621157128164594677972405198473402944351218101861013460103771345179196670298539150512262354271241001366659627482565857238177581726177435766961985599318320681732839544831205545925380257061533048083416583394803910214389979264690473919294374301016779488224785099582481810328094072185262294280994856309650414603144450487814733274789207249662717102041050985926397189440193288255513012341798874437616813651218235312557312339589492030054020126719851574127561201530177429127207742739435965040939541993645401412340996021394202244840851848483321984259084253909879852102959002940772441410166546548734692735597546154341076423816392065403660153009385025111155626489319997534489065476148158125225125605625886990827064474097271117372916307606223851737082148659800554922417755437038941183006542088767922517738897018732255934931962045405433017577472139657594054172904813040271241611386805480850028817869410920377203379813160679107434331915770046566787945928001716592357071526413980926534648279061662369076535697062151115043038267854399835020231311367390698206703166068447353073948048087965245153533484884352783030233914751516292794080379983346314666606140654904594593886078265474572932360871022583835836244876400963703453020958641673047970510701884288202908196783745946530415124187771377019357134259435585387366015956844885066815524210453098215486732732789692401309334246023357995907731208939936362696523049116540323035307932945940864919964386855628554111227930333107987017136961785686357679197295505489779400331138138617295212007199283677671612152012623032805942805581757170472134139981826784048102936333173442949569290325608811745705769233818816845583457547605448550338669922566660302413236162685074951275396535601036177878903245506791357374807094315971141950708922539420848610779897880214369338173940133702901409943350342425677628449735643300402912358587122032530991703381390928293103393538601830156819777607640223037608800979903609249979059140293155436029472797168567477778308820780172716942800766581423156748192285330918852939746666658959310851845302819689261620173954458676532104676267414386071802478312355733768033017154053154804284034047879603214845492502954675674812273494408034755889424311433730437061424614024112120995161790531576878731406257166110350896957258720122629621683957084095176567350523480854456168728475408957733105231858856540529100558854046202512691178400663228879374938386754446911884085719933725384884399659233482026629003669894848995408013344749062364815771907478619425273030742149590864310664652561932394219659142423666350166349986935941268663692222224827725469354252010387549076660458056656897349950352176220465912906198026582683340879524389498285174949034001604693403583368158598776387302199580482154256615906562179358709040805799605868446261471427058417190467978522512872348803659952040136468522311454511205362033785585608648993524643643229371276056743912798314340552056104001055014300541533757489707373780058526980187771523332672017006064142380990427174834776488374537869165787675184569495029039608654531316515567908756307795999737028184455226482416600072979441770406434599022260691812524310428293450141198954416302540016128147305736588358769541929229595815935191172299796239197590416594807001069476333244683870445963029144955868865901797887657836953473639202042909973352794419339021905809093823072881757173051044979523845751654715290287859098949235082657004759468558577683119668308208489826266791267389571313463253340529035295488675633491080498931253099546845700812109152164694148614901539950772433781005741899006066933258350473810468093694144533014239473775182131798068930515519628932615305097469581274172084024097194589995277496683823725634441482190580449971435508295324882257161225830156720827615406682871300503271418439135350047797225155373592447287325741537530349917641588099643039159773153631700146666263882938532966811592603070743783494931725729381807150623573275372182626993638271866761017174728594954695719845438378042883998731513474057817584777889298284859134533950152322698049341443424229707915019552366308550328927441666467452652317447590828312483577143954428904532431987332850987071100756793105040662004523488769620983602725715304892236434118494277320558432615828460215727004191183454600008218158927595560313867474320763757021191989063352261090593819353869627872134058946430993109316722925942093032015451201207635635057394244009309966711752279492480116181988714567156951356640542087767976206246926414995030817302204782632645164677876902798939357751807306620325663813100246392657038561776205232789568029767476685134444751764472452583129709100154195216226040379556424855353764021966331913033768139944267100331757430669996593832392101679961081366332851590702432247547582908576483937651783609911233439594683379600989713682280659452977464454344916431737490899861343656825724887515132149612382021666349967246543362852294833250078830637955213552008598514202463098711936117760950118172338005459624071636658868775798018760432819204020502538526435184920291579689226630045685817661879613930235455990846742169065660651940056752229851959087038956653913059940991223875868492515351093220095867655115396149269453494535531114874187030670730737628232387402581070679118703896549940483831789029974202474674985039918199544606085748783358665247064623208484548989714550203211614659551898443574288779195317099896186451432729001860331206528788633392565033738888358090858245056439466717126311273652227651794148341431683944945826448250562280695013721678705788025318850050589608742956731274253828934141135141098363279885415051496790024857242386726736918058755615320397955672635431702530253566306637397762087419686706199317536715988122211214420882370381070767771375956282905938062165832168690076681541334530361173846833939551779377539946279601602292963312741139503528382816358913277725561093159819764425527987872558964576619709632378230533759454200820770556290904423772528375735081104040056311832194854757861095056313507147196145871051697618529586393575770924541150199343094888484589573879586316249741785278593149275065171741859749511251911713290255344624004965947812113348354003061893047922430015246938352141367278458266513849129033205031357201256181400673754004396882899439694542042456550896555230524867478530941819467440938190146280420074981220322183741005297862394021234827490958027699427779805237492113595524682188963910586447766346582065405519641259771066818954786286963098095141727384635092862021001792923470894491824574568846622850013826861774685766300597276710809819178413466898307819657268133250223501281526644637465367163315097704977903901822917557745073795576006464722139120920429303506522735961180822367305845990048468230458124921692957959791204025686575985372789511937867097557630400947046133353731373281076441153226952372310537574313398942800681094128348693851117006426317179262491664815198874375304047530512293034123137715337800449968811325025434238297692571017128053106293291354776056145565555772952963108335871135742185219625463057900974503017913953385372028383832396502719824022022884685171939123593896573534344438196798688191897213800280843243659039798982997552552656151002207915613066145621544621712140571590041612904438622207083413102706042075003529375869076960600532957789936767372835297888969757373904163005810514742965680954465848708713707448036295749416226085248675748710079006465984760662214650867855537481832123673241724737332984812145276181417059642595559755947696069959211536876920249472089302056587706135344412448096631753489802569354414671106866553104038857389426991581587567633138194168695268375280398679841465245046647913728789046887026212586713260160127363828580923956845236045378816772821277339390359398455116240587860159727624853204816690533247955017661564398296958442285154072003535584801702725360006273507972562630344246953077804140012329308810607561069801246271586751089223975778746080074596063396727335318329118983744315701664930314966267274926175195315160387552458689189748859873436286940952029476404371520862272076350506611944748882642018124603004877166958462339883734130617610160974878668282961138233029729515633892474509207360352132241652094478776141712244064242361546423707208787346624263238291525034318139611011640149504263829812912083488807080898160219911242102083886913441318977669108314228197116843172560029147442335823692708228226441230143076369957577321323149456341257717628391775306728219315023160600472427232495923109165879629004042071368467893678744027995128777860096099553589405852963624069249775105866433317119466476759638552563890943048830563537376716578857872376017771989073566254571257054044195671563789772606987996106478825378409303860362878750442154237100961631662476536285416108089051687240655080319023004041780394339632294478524922990073359457166388036626307332191843047872276556374767829101404228930769658922062714378003491561931389434970664224087193804649874424878175789870896791652343317003235628777376975706758135541692528005966660700815499179033682455036523926503690661600004986430557101489075862233709869771895352604209693805434690860945572718222974201056209631212417998433253350080773335081340648685064098501060892082205312991847033564337148517720316980516328993232563778793701866982776152769700189951708357432247113589095736559676296809395970792556532255367128056912943939710104057585778405302147451695743656825236320427654521423489767299743982141147065413668457518406114593883468727776916338368364828240034819634333502303350046385346467526391622863105308737828765942281496885544264047469196867736230995635346116572085424716682164848741548106463624328493595293671451925056735938030474246491235109060718032012356841145802495111551262196379701247539056255132556069173865682381435018941142407329934343965756983382046406331037604619219591893449081342746353965239126349900379072770134602061600022669578910549648524589985673668794992427520299821069918586796858165445669284858571728584172109200878562346976593793839257070201992647539089288901373345219956462150575326089043846379470673139149549782883293777800278576800295280766355761114227588057075015484340897867264522297823407917124141938176376292868763080809944465439939360369987482434626360594639685575686610337241933111441532021085369611322014756447306956442374670724536707391218310819511667862204081085179478020073509370776344733603387594617572630152694297931636302255271423148318674817097358513629470928612074788386196934879666475838996247720010299513214602715854602444896642122101800904632771140798330880679637204994129204586274300375204667245809480032505254733601602697521230248708108428171234958001887283233002236597348199466333151408428544130554434756724048620219546746071304971853183940581503015385795009029557344010535925696786274225651902435862432074342640231303747302913193487648680219135750436641789006441962851665656899233969294655206618605565845313366827293081192203679011994219867227166438690600985862034605435084156335138798660338115486903250365543037193804707383770220733230765373343773873356071527674857806445737711389082097525291149930162467204701789860207371167831290200044227456594766902017046969029500364987713448055465696869395668298466171507861005592900542686643343204806863885124220675615695633769387324768692583655840753230208909274264608296049774016146530032642966339538180134962267897617063146133237625710559307841486679579074422353520639688867937028420174426959438993171348591863892348172891718378647336306730961420906240501478672201875275544363616876468477223289955163246148375550362657162296928966899419803072111472606042899396713844360747315916122197862786574976093570006292302062583040956452003508273748226525114998759644480637103807014763988945616061465792350588366292205543479800932405650821044536668528041491173634601390768614554448015585671291054418545528712548816633470323576142354242551589488414132463366926015050045315473100817938420558068464966794526369229971497574147314660860381134587775316145025815724692065260439977565386381208251150119156996007401783340239615365791870306225346216236776665135691805166188061852097943819395513445118716798388904916784564425245520987087327068570217008010126908683359886452191846344645390498479553308482430589383526144768284256515807283556692643952533876531582628940279094242816449705249541804344430490068341034496715255696855507277263963719474892068051296707389159229251906250237923903309294050220198024518773827857577281411770873984791612423520642139268955500308183494449173370446466483615754081411839832086645874855841698668921400657264225242633718815311473504625277314754781724190800528833457422585535354917204875549761618816396776827534439299716222489592387563243584679686559067084858472110828111435702207899316474538375788049729062784708277397012933441759707211281271380262311101340074980685079779954527076250766768713620249259483246374010833088046106465829075952602879092382995126609609234430235371553309753691439628958987112821922588343134646083183961844274120513483745977987450502403246952456182487115861295369102883322660585506582236847266606831961433412222876562013032481524677997904736378221255511419201493159140119624129005949868713528807571016493295039649014910578536805607315385089888991258086250425214484123590673034146862361037338757708275212429454024033884819551491786220918988187883923814805536706147116727449895915775608090646203515539187703063816834058867532342855251472855827417014510414648678933323119538057813134146292989652624339249951482488388593947211198073566334324692800622873266244571165758684626659973651965916863034344630094909192350727647191817174248442398217393717554981340650276640994312358395871435741889367232432793536675506637984963729963407370936814096554668352708630376475632677541996337559240566476566871161482274319838332632507929911853567235118452469189299241220397238482327263605033104957842151499995312837290323832673228849045582918453772100950047499808971236795643635644505395861012137515650479786429442907109414554375452833242370666007318123128283950501027324422173821796544660488134197310165309257728086232112594444665127964273060625756573052884432698616226909325544992601830227042810266650598915702548740923532102487237327890197505655851889911624061807841174020339581400814609756976193140684462083689548037050578729659649191587871267384470065723786284849420231434353137267519263974074707725852870108830976907433427878829586905865591811597963362661069354863617445279567940253573376014551832086649803327464738124969886881198344147067440247998802701160974043071879701231477105491478166218577107259941633541942922261787183504244235248970488604115042142803069993963804838603675101116021218330377935641295137135735903258461379381060890245540957818605639876190153911667054452313597299576583117085266715167716397916287149800110908971416862159526393520415574000265381398184167858948324243709045129049421601358864370560272628974833970145659227288685308253575524984667181365247936604478959729959120717721578001801281461891970291441208863660495621249143128934258538092074129315490414638590480062793150388045386058780268318423593676663224990091080222693826762173018739690777565748073277261051342631230981100465725174693817255831116921208850824638553497026665378956163225679114549558909030172915302025793795171093657443515422800402268093215763959906703411900989267243479546117702703242316154708433940773544498252965897856954857423993229785467053443927474104541336068961857719379989988901747347917270234540082727371276217732403952141438269845960136528978185003100331470756261210808812894919372334196392038623030844359259003991277165790190380549759705094612427155361164545052996540698502041446591981253881862879714909853502149135842843118369550336473529420056787884896987985071646260525382054829731484516412301020132722588272021537457918556711162036517743911689797628853212454439877890528345874422123579274043732512601781502053039994939946666370477315471860612717098673036047044170127261223148121307198164238757687584504162192888238867404361199366388654956979459889735051549405322224217932626503162461307507736600436988720066955459644811967606290822504338443298426986372616108849150888088588509491411690824083920330532908292398653975696128627160482372190718955984823619728711958592920774925427716297668175663712197817462176472430278202671309822848729710185715888167866441382607011577139526182556778558619825516246546570064679941562509615324107055704348803133654166343650041964004134265062508572198088539724165046397901420210763658317164621446290645114590485322504749277513529768710252255802118064846582593764019823094270380049966098820343485662091196392078139850672907310845077432026600097472629025370711171798207427149261179225743826866699155144539523972247634905602678584998472907965729070571140378383127854312513671374084851499337495650363118482188429922632299835999605662327903795413470460437236985084740547649623585344559856772996384314206492312493455847626920201565308902507724690688305411156231937468182785208535157236397467910236021075907702991903188932543786286125837290523394070243669604208790087678604205689890110859736300587024970506829607779442949104614135516969020390240827117100716248668237515431510131705413491198414340834761877636137913793615527722957441928704303996042268861899787460231077219717087851121279441306123057253857971766898607158168098742585425969911649339223403310604804588073733933954809392918411327756135501686207373776427247274589982411260075336154536144605140583894260733337565224450066772360712856636223808248771997324916054463113233025323881342786713072988549540614461613375930777960833976521737072427141829448723064154151341957108308183038318870918555515241467392700923619546593034587310617324603077245382786501051225434532995059370994530292190918046046268388845992868820968165078952545464950719978663372560907680552351095400468250560850948846986705133904256396784653388242591111170616777138336896687541449842880235854273391316685543529425185488572689338707235659637204663885865993264051592229461484171484109679720752883062854205137113784560362778347533579167961730042943035383086450198220877062642225807935392633461244326924074350914140304338565644050988728721287288403097025999363740176640352644234524392713486524927119826491893029759790975329366568284393558207006486066209725977926669503237653324116304800737841111144452455339015712695780517202928783702357177196796465080045004132782370015919250107469992015332665040692431649419398982826767959706347143004422309608982632612173340183278004633781585119956558588764428184350435951084388524685313781811108180486951972274038302451080121850342799993774077727280865721841422787296771531330741239057242640642161363228162050382193853943363787604787458076214222584812334666452635352973896988279459843555314339934024525495575194748082158317081766252784833804069738823630758642896145303040415528854016186911441547658712893000558002304130956206541768032533324729345917000653300455668469690982465259775938501820485312323360715464364092991036544117380563730926372566020771119610680213821967281620180891166299417668432796474231211963264422522017915447768149764603573060947005195720960958698119801245809817717181159531714048405539359251053725735229480624268469970758886962096659936956977359181008606451993513696012324388647424166800259767751944088684136799395738327629658662303396724024854099257389780716572146554689631634489297194590941004767999829230773029995823268455668276169904188864241947666437205355799534656956077114107279285501044186277488779158632676818878087514618388934985879371875150286766750128489423187941030022577566030863558783334224944832197225700201380804675407216417419169738055789875545422600954986910767510975652319584528549512545331379715934239218162807392832398726881069108361160588423794030554315815847424663043827765680695354273870974401237276339997585657026193680195313365582446641407250129126124824695159357176318029509069787372901058225147285182748872051998234883207466760106498498803649947973770952737802919248419025893985960104301790984198511648502709307065162838786248293782141175812916057837090459645027976306803955865158121535637729511927668696009789677912173027539508825403318384445907418437587201397711138965019524407839778050299150489412868624879372646856577321639369300638029428289279151456897951815299154710578008783740522496260747632278544519638393540662814095762888380209244185363773827843956930869314937729154826390287470873056997232884757315585722375707191709456420381577566930535443912875082219938010524502985917530998926154594251797285860548829180195604957689426840661731618615504587189580059872360802356235521335203430600689034889159015266976281545776193661908967858606593842454365133602026886389162768606445493940734015411333962458207824064085818844320257814103358947309926667282419283288842425364450357097268944922750404509417268870899182723504312730520788276232411878447241182601333232288421229405962297362187453476703410017065600666043788759178221869153571046489615822580449401054309008872004604184588051159928910734989470362097715208320277002628180480517418419990613878104880648872430853692127443733802242065889850656980679455639256732622441119524073018436558218186256264658065663796238009033845412060058001399808632357525444119337804003992674563942102720869588152306688024267428813295082032224777172177852759826928706943861220740191547865243029598103841211549004895505982974859749124757621940904264399032764023591608836084715204511008517876039466642907883059144247538187777136611237022815195019535809044347790381411473276148049760417852192502624108918079471331187469866769175207320205388526090297527813486247787085534448656403467290229444472816674651876313398809142471526342484140000488049439118301112995015639216891390675947178395292364208623617806459085909544466009380271459433817040697404442452838648012863629193652810222431504475900468208817765517111242985822107313261019653017707872891690931952338927147613045235293628069049611659261993486881805523424633187998291727833947159953512695217922380786953036489405890313149558633596990411500660949498310215968183667963910678073626110874524854547834609770123473251814273636610498629086924561976345489390880033147694682115427033828273904950789487874767376255345831047545596351585102929267416345704987022346669152530432753737696533218072209325127225198880004317718239621993725376555033992576206346327237261339082659126868338243452898522515377241988803786775317105977968106657265880789874157418414712279538767060558011775846184172069301403986338505157874018079268474554664290122904407392178965553015594950186295216910484359722737043471213678771809073374030392067708935305120403257527000459896120274065921494820496775169083040860707879055299451698442436197922876917515934501147932499288390973138396382880263017921579534208201088199105223205096038333545054014154276371388385226101145726267004386790663434736008400633810977044514424099382961409265978372716831829502560992023572900109033191612048014958451798862479046760728939394048287104820665807169379792356685259227862260511032216859152465789733600637335182773686645059739078047772573000659984341524332045485162843777754020284570232396468579187983763384866546155760956692484840214405416273309812341755074353044344164299793452875343936205493801402907235024582977011362652358338910066166899846009607126390358935292720015827215743120651915979773748146653140158520527088640124612262246251527050752520922264219715388037965703948697624810925865962396536737302878629948384289904767279718774339113368341916711775676896276026071648439116077390902617788823037949599070881064762767535397592252525478364759670857921349916974599182100060787747424936976839296615803451105831551270740870214533136192819542610033540479482061758461491449031234370054261375112478437857846560784054553519921185811125554281495523559416014047453665968699110784316203953312860530983065036748507376000110734862170270696950247617092976076136484769840666851334137045710227107744827395652726435961791706841034298564958850898934116872563840435254239157160866324825933746708836750765070208734145499445399093321271300890642014936095221299932855592397041067254185026236835323145927321502084083345935710101453013089100088189471480812926937199981598431881846803762833155764422716655172157190799534681789207454275520149650121392088985158298334515780940525076296698972944567899106982726348054365310012250052401244614157551302927413786279663462470467200545050893224350612963230306220518475238856984708927449532235961503292091852660654514225148922981433818827421087221657266956755382403064675826404447076181397595816124866383433035739457733909340210971628921514648878234074729562911907310511183157615352185647800366717491885616269323856253138879622383488636499109965418773823984078031324045634606287315849521088531350762228750283816787613180668037068157902333667910737762541453115957112775606951920943294382645966087386908847329198312483014600117955318202548459686387906229212442018802291178366727460722887307344542778115571313880387188799913191795723041190503830941597720436142319557612632910089569114879706653682338062829821281855987389162883455730009062463326830801514652989062356586272280367266796327839293887319711538389377690645486030578472642180284927695034935090266848797711532014020763484138173432339597833752484246743654214773678135654959022265680055018561618535553675694834490513725227609411013517329507434107459693950799883000803743528949811276097042430568556082107848520928042914594917188190600620472660763400257291805412861650371010234941795217078075824351211544377132971301538792283777835196201702123781937186522089561606473469927978308363306182071230689276598910645420604331327127885498738752911802439779450423200807785415056429324804855096701105273832501284110977087559301367059007392716137979729493175492289862540664074366001662307046103223023536917608924237224384016230197369593134589863519036674900082805480747785340184297173087323760195143122624839360304421973512443640970536673464665666117137026742683172277286424527159047235873931787656973223053017093357182896201613429084925661521806704346503043675308218912723447457399443769376692722008688390765609327050616009750538087760456743469521080780162261645540611406149655305843710795893211129475010978881095051820178593329963548881367871730902144039792060217441872844673592383452633131113906679567473120176952790493059841959920991177965255051051194902784878908563812255274899667495631111997626907274248478173088052289182859823474681021989033891759867693003145374608089828128532641027868553715241656748610767737831103471386233134867473331245525651213646602657119837646178300876655761375461531437624386169310986427682509706195713777434549037187958820651919451461284387278729047885960408998906569359874860088359234962918222865842762123762894671839077999359015649869204375610504118064442933078461806593023414990994255265448017384331877581869691743690824004773842376520311906770612041380654350021991552846223263746968134864274525330050151754441820474701879598548253302632855248742016997783968509123861701138409018631791447740593970359472562734578001691239412504525452202318111832334845281060299276228865826325925084630963637712771218443608406649347328567745936081464289799608085994452667289673439269411884259121336748327351514282798733433741999566135885825447179873494623714597032325601329265871597302537879518145120034192320792099357767016481776166194315837304189113068862660084956223962830364011859208039012952302005079550373678281466137467599972543874339034814129143304875831827953070685108229553346885603151964871415633662051807302736820213825873991739268910972571917238826128506089061751110458289343930729021036957526388146737099681744170766510235978700449218349693944487699204758828886421395540302170444117236594070747346881460574921351572021926791595835436373417810110089870276312058077417553875145972326446735485020908012320432815238329826538254259694450172572051342243236919994086010555741556662160239949854631873757187767605589673612236110815516111195897269636475769230606328345133793782396905564593576948839226012469503481491979962405698063240526421224997618346864612894519177112888778597424989104516223396389343893101053370991531351778836400075588808672624998057820735243001493605410969774043227861211403881149796871476185343277375319755508409095375423528561982800945167399782102364730346236012261150015413851935181485712855101809568220443585355123256961428682162663279778083963407420464378429093020446810170703146038602341655545847069460697822128802168675021117889311328502144563530416603785837802906787768162863519006302516196143755945696370052007340591063439103958150488780806737813632943377715808520909663240810776807876772325328599783801889291156160283335039168176007142027790930640081037307608727878870329609732736992016893647484064225848619709699251690375538603445610455863106066289572471042350570053191787068475885126355787121599738027315610510571025254826080003466945572756338802458826440739111145401824452274568961670888448357255398595757907709069237467784369245538883005139989126224564333484057281474316020417595620597509060641158597864752201620433718804095329078653989033900094479298089625426102158271133939469836272763946882951106889683043105360959985146007110039699251101727311512113832701595930925553911396926226684889684586077183867224612806429846599499131992277790300780557956805255831318808337943666489561938428217367157836561278403116508856090638422434273857340831960561003039564349723147706660328376257908870866800562878589986948531899089064390557906027292442874166220878811134324117507757698623698694809438280473538367478576072554717760818930312280456370188456948833016225690994577190981072321371622357677196095490007603379409317647453417545774768667579544394280666771591211660599827949865361678359482788970773349838223420316726980011060586606821509561881907209510388915617030344962780511630433244752671048522847069333170399994841473686126770712282134712195296535479055402081133448467692910784909588995047144498686449324443691784165445531390759313700634600065111694993553942027315218487180961736235428201288124877130381805786995924604366154102191361279231661572522261315032318452932032652029985889040051342031155604924251212196492477997283188532532865276205310085951940961671532970765627168296648065369250553043095762684962420421369066620728688365993459795467766821236276975722298268858251683997335753187665447972538701606335514433729648443987333020281453698055618357991184354452392060178295184186415704672533198012560815448841893814029291658786534991370106405079644348420133718991034668286856736394145899136748611981883553476610123016911621381959826259688262089224235714620889839375284148128130301404628884641235263571044262892648958683858798358892674002246954575331254923639745757797695015926123909599917784008491014551210272499752196875448626794621915821761487900970468193609226071031618969250204788983950155232195366177682496065448424612131844328895099262925692310601719816302517866846403937439308614009221555827090182535864423818702265297054147744639478094764705379667626248463598803110192584723395453670305717959425302460715416632894952399236440482910853683226430921718092271107330615516940686953516926028642984111214746758016986992063851386020602351446661019550639467083092095553266537942634592552485054982848937737753446318418369282336297901493715370360583791544124022875817551560234030820749066226021026532260199170840335756439732216212906229874861347430881978582919467948986453602645517692515768484480499558686525757809783527032118045981195330021348636447616323154194798337780232622788711662326983565081184064018063366118055049009559225083541921724644146775236750637155328940537149781261834603234381943438857798770605378474121477072833264234862223288172717264797503212504182758853139541965836000518492224367534045445165784966206537538184768159918067434650179160058409078997743311260833492791455264043149855751136637204313267929220013397086230273017078861742590671321205806837362592099126805348556671270147232586179670417923056818119402948015297490403242486118747069672686020716626927527562434155531479235718423267476645788543469782588267265802005970821251182452112214249169755094098825464928153227826898221841889304828486698906722041212254579873483504674123403719581402574335274799582450761577855334791133160079655910878923922832100001314583960035749311312101565369511531882483186445117233965302116174601907786831088708013571847368867067708574776727694598342719244173584579274619034695371278891924429081513658537142811730159437859568736726537743335958702699922062849699813460184395463552993513272028599202358642989657702630111705691506177731878180988280137972240385087894963645219372235279477349651304771171380844357710827015483286911519326602664418892923321412736061835216262561251916469260855231954161522300720705533735441347903770229247733045869734419858320275560938982780552072580467316890666481510171699150423776860750390454077607664838451603348801604668317879582051097995608725551612865987321522681253819657542541279326169958780148812918069080874886255982356059494098469166868981108108444119843718408700001812469809200471177439274405616033843950881835959658740170664126207167672087583026182348638630426942352342702351040424501423041251403976501049982865782620980886773267229071465209265661690219167765722842460304584842767021991648442558078606043496365651061611950698850209470723969107010677258579939671898255838158118692119936182456565667586871062247543369363772966359854595050685197293418309486766550081228338945788419597844456593209705024335836921264422160235373089586093076548571070992300093431204662884913174143731628604568295289788829856331667873814442469186244785510524497953557195650462046443534713501998363167173395865951710619975755667086546524204343386453616989138195999050507961350465570207276130944294186667230482838811731292603831121674378557877045643257442888492108025224228161603304083418266278130747106059951857579582046551922591962124897614716209286677043061789080892959495920337197542975624178546401274979775018171802360434920825658855768227245300450919409726812594249613437989962607518841597872747354752462924318167740214692611665730548964936296028422783056237021315909217316688556629983810200365462550731376754430002014691681551421494158400057968997724027986881115100032716436042047723049275997419364961436809257846758882440919135533254867186607342593522282883484138605493673665077719397225322944238718288176240607148274299861585108493520134477242916220777236638203794131977226353053589239116299980385419071245897442964382849427767372377697463304374597462430638086823995850939771703815254640563186682585962521207785121040976692021840748832966543991295978307560741723127764813594235336387307387750750468404267726122029285571570125545565039082701858571184717093230355974794186562617978799161985358000964707178449532957550680442502983540503455852914406414661253839469941510749529421477565607764909394028170426194118620017638317371067855421709658533827108816661280182422561379902840262042169914165246335574628426625220371009013181937732993017108792563767336552996737338395872823770310299415435349347852026194004232830188168907693976661613514161955821268731557082985898118326571222998927035631811314690622159529041642513044295696680567934356266796212273870005074632839457516982615473757916432239834499813431510538002552216190808003231031412523358469953012372064128101183298724309562248253148307497005993319951940320534229429440213415004359506366157224120479528823836374734774693741356051546956189382359907597800061217017012139680227738914426146077478512377758969921730970789567736974639904515130020299283621115416870506282753454027161185906662633228447614780591794210264317526185721084702277014000828184755011475795668789267411090782755751526047478564726260082135508810103714902614973170473765707628188925237368519420403636496306930546523550062054395816432236612490592948946314061455545224704729975764688257159390988601575979240373668794730530219206765819311089961971064051960551893186554029194045862995577829091453119827481689651501182053076927704010345432290970970087414368590489575812075640394128218160371266278888243693317732335971730726622272483741358098799910215553373274037047531489686865400430322432557316380280018237108755609037533617138220877700580585463213772964762793303282849264504903062801498276927325948286453030855105736642134962086255095474523648617229099931314449570685236410739978504675342384678010644003366388293021334039019095929525099211953987540668615659994104631996428331123244650807024212049479572121422570677799403794790198168765591965628550311613626877188910357583392402523435045720916690343368301404917466707757145741811533781016322883168657674634884407537273340144903508729797607268833064939369109413949972505146633251181649274327447889302298416996262692565190271209360895219839141481638024519355628081066460994270889519376871593057413078577550803489226539821555821614097192184890697934995250296167343012959433848833833644469099046860450015548163457983556995725828319396095469285899479965104095093803985317817876028599009950270258583229089570804071566945460184937455434363606288361773168500775443055432918503787837516173062094064436120251944602638460824306539567840738963437566639916455814556307803183574769741140177286499269195392344829586395513795036813410254178176352300269610550779108802339545287089812373287068564093189764435127498650858118692307593158503308469048622117918726590936148709125638484225341087726962519470551275789850452947521554310251432376317451579093805157019125473588003346839473745449181840285340137217800776862599908737905214570441338021976874426577646223240237766723769858750598482209286693375405204323440592606162581380973535290278726166664258630022136420875386458215326769283991857220083329283637511623003412955688714339241142305525825649671606361322517316340725983875499923972772596447226573595916633399407008294884332378858010136369717134369772809340109689965811688500404153463914791107313266588424163553984821646331597075530948124676429882694989702195015249196673127092161403572958431471452741650004636316598551161587104467184047068918090049670237614457087269928100869952652789487069896390909696572225824520233811514116412863946949573807635512714556293752383493811472575272323739677495420160640148239388833345733666043688334869502615607861140991211117132749365990691774663968459879433762487879212090461214241124058467240091092937225020761556576354448498902781192518130739532971967998247227840864596312675532462425645771645577934909507159446637688202373573694027410193812410925631747019252881457996303460376685426419506076682836990036948141355848686704179649151327264540140614173817619517118525494797810022012817437835814788641734422792986081658268633143146878604244099166876817349795457764436126018148913458601777126906894745899405505826423655664580356458267557029358126957113541451492795555504233454079418738364232638871896749775445136550660124780250620002694686510360390779520068350932494526456587562688452994686184581527597541740643196391046656052105972011862680009441318327639609622566095909846090639835126327776890824633306455495962231768687117033866188947701455358405792499041802118109768138853311438425212508002352886256490280429752734767619267982765862269649547745161226214815379656416481026625502074822348461255542684029580969701146037661246138329284583717266469005891886448447614816925448792643909552683627265467106475253023660787526927603897043873412270262988756728044929562066152098959622958945634453124545509876916108028753158825879722979855834558632837617921487850625751919182596794336889302879909930057181755096498350945670711796449939752503365848490155275875933443362486423865255613877224934169843720827444696894828685582010803364174420274791730682064712410436692418677416832197947451556581900436875458583168492438101534248056565467753151522215503399266852638122109133591269123886222556592982891188889559161879196184851049881414725489936429215390152576670944769795831510316577233466919032333261306735109706793485860239597515074497568628455004806037730500067749612770015724751743075250992230488967607499963251391957629461922663706201643452493275807719678885805527729708124648098991741883956727454669982688683253804762045136303358753848717299121980533531195095053621032231738105565201056361260390363544531155703433695290514679609408295794274645409493452181366140905155336093746071316624803571798739659978022085656181903148666284877735656176277522870246588124688888533572739471093791954304833454138209484750630911443462115499343659222181979220144561738298914065493272542967567159815530123127039946086746631406401287051959466887547154991402471864285498978226644647958002890971612789266958512756483085705755765970058599042451191926413270779908268236142691567885126513808128255074834006766940482407285545034027439536516827339075616290854353089952661300801921882475078299033001797893202670482623114887144422377688827416691560662892842433577866243862034111915639093925503395416515352094980754033138194948428697863692382780638022585688067765352100622799348847400359649326911041267328459500337602488122077022772884086496429436687661098660406220409794067865328291726514264137166988237966396669592493152608254080695306570054236730983745893600056107269761678565629727027692229574476306571657457792753070532352842347647095215165300828298448413578468089906611586513730647388460155638375957056632851577550370784359909748592909813324500144080545220349530865417130877259880734689736880654166300131371994917117908542692503017734325033672073605147109615259133836568000388671803272663289056625371258692834262023275229550981572969547705797767187391559591281744529860114295739457970800088483573475889575092628174515513337829293841451370800913445109843148986709800021760531123860367847455962997953494242855236476539826083973725417016865117310836013700690240507199397885157587630083604569277209441191006446175159550604398507333132962363797988516900809249368238337166540747599637438684503783804080217564767563813135030029785695144165494955402720000670807890781503595110485797931305264573268881456146375419158226603190117866590462215718360193314396700652785128764933920898308417408584644434377814944746526252380159770941858225541893944845480349611729832901837919871997468782816864006666321567516952371732676628139172135930475968578228690868979379038286713040041820399253674064832399192481484571056434068845483572394765374157085355427109570147101034820849465071932994933118658277641981823825342021207145307443846907338185935852456932546990992097151374748746299607265122721141650014501161952243825521658188087027168083863996524502991531623457030308822680483248205944285407128477214161662732206425049023189306884179310277059014103690104314480816085514809123871485965303879988097130459251598727389269294075707109151636668466796875023208640541165126206001921791848941526940574046682948251713132790356261894208322449102636964311106901205792903009653128860505010013222839389149285300806365008490348752321682662006197398779331670967650911032142779053072594102371884832847739379739675840174067843001724496697832822824335348845447778531465145067762935538743700843171080989995392736957296973376438358818757311111123225372804951433940526078324364920832327444295870040722947362803748929824936066097966702666581200302368825731748844791563104728134298924081893575987680675348139349875842435670340346454015989225912660388802159112985778908525940465888097184892144560084751114189333299682825445739024852430149250055073929083674708339000430642634036831938348495886064832143693605242857291143725737076862101301015187810772679227758051791911964112748450176768671126319014920601359140893298302941522120338758231343384765364643017426317454347116903215007547232811214259821465967324442427571542960436637366859160529250875838536678438493633522427921985679158057398946449824766518247649536686905241790743430061662232013561310474403901331067559888062988183612949753224442513893407854702680225770452995242411237285080500259045094600676891344813106627930791249233417639116447384426930105034757918050092675114440166114514159524982865374427121325811233779948629752714698798580716199469002990954065170101631463599559271019014525369292542665718890422294187127954798458491538564378371562880929303328281683777195543829275410670399589836820925541301937017306842022925519773682841764050553617957577382711816758447793638770124430869946301444104002336031932625621687384429563044781550586787908182725315981715980951017478614448121968751568832362134006274611269240195211728934883270529564764164665631800118323274666010380205833632098644917034260976261899623628063689284203872599711569123943479449737645729736113961721329084334789580824856724796438647514811539453994938986847231907782229803059828510513995398847371521978200446221088583309540520602502052287984635446920563850818226306194823938787495007560133208806783094303233364812938367618960636849712466876301327206121099765154168031172694172255391771942293060774570567916980026595138725765198344675049314795146515088688609735162813810974737188702042871820618373493248338665785189343296396006423370568242741740091393812460959814845066659962894368543638586358822006848154089758703819165464776907834425843765425090322214273671818253164829660571958165888913392546026614204955761840655945094268630387462593780260767044298561671860594119224495469164155097286028859725512884330768625564038831956942637224030418227139574741134166846417574637908600626494919867687550712154736405806858718480359430049956604208706067448976123874892471569097481098228377462383822757169760542783834754613546655767216549292918772877660791923084818730095505913526546662998443637103734018935671106446803610697969697867149507070441590760197412351925529279358486604856089574861494283524533724502893104281100070398632567133185267802618960566782598627663090831010507151249620683308144637072312976926925883545145035007932338281185436937372622815631111899700617469988033273528559793780879512580127778610072484812723605731962670019109971341009434092140766032203811324780413260894801944034885884408362700984905736444049972232081653526648233243852316208490212597737767946913746745167056429409676093770606334508979770101325454336043505503493385312125181894029817350565184849108181205273450295940478222374747269765641401540766340549681547586652173461354575736407331991694291612258915162135945961925621841336041803542614988226301658131394768955972056576654190972754021129455196033347572791345753431625167424347041568013848180821261985816526731631614718132362892392972474123898965037941786844602209380744300004628001899719808130188737937981171087670996486339555120330754130656817138843792139073041007666015172127971855685401967282633589710572214434926668151937564657597890939467894685035216177032450319596436905122231666498416659285285638761102239016985421641280674475841625977944178358242606241741233168404499588836851077976915834646546161571095893883830932915846677425482129115159777499041260625092378455296239317647747962325502157760766227159574662736682093351979498423281250634625804723591955168027951304329673532675754624693485050373543659422290063312606313933935146991193801673912321148654512567167118489055911944918779687979302376105017735378917975397054938715337876559578216535998673083416052082693425809825716642781392119281877143359869737069054797612276680768091086819681500795883892674733294866292859538591959872041693540750485427074519684308626846390202740819471538737762368732099403973379116651232134459425423254639539093946301756337000727312412341977952378119648331503469285781237548328588952230089523785769916926969395702002460071030846840540786523268102071833211435842102674952179730152448119699808375116351351948483804752682291380520265600039157808440902029571404934495883664884219203748980865649954206108232916947411287904038235427177269882330694258169931560889365290035470057064339139315905695775578714766426296552628439276692014160409763796683016799224192656271028598149102369528404375225278138413334073241471616040660672940744159868793564088933339044248710553645460393377957064934633595778669004294053154750285782577029166652205543962387036502887084883222429584206312497323448043686446980140572131210124723401985197242784817097714459701276587444318537212412250840909913393374495535852528164719790651593717762931696671156804001930290232135909749123553934560253831906442829396270496491347748402685071922638057209132622135482780119793760697264716244038587585234890728751804382018817508249147732951753898983007781892892674352757489761616604903747873546297143128701014399228706501440759609699032917243929728812079883874222681457937228049446491021891612951272544735983305525810195358422076217966520414181843681660244518333691283635946728081825950600516603868033622724325159621215343796124671569565640498354301193198629002403458418518384392257989368724652764091014903116231646696751942148025211055937498347200694623127384343472253860713828671424422402256584618022177261305484493396004047783655005640181708755577841359278201812220670003806609103567360408174861976084928301194933631941637421817881291547538583769275717764118364725934309026307546518085182409059854047454822911987922572128140457249050285691948246665097790415996698847137143012716673179206568517920655557364212320422303478492915169599438105973430714834283037921571755006702643184434700364213751487898334446379393152028715680014892615756665973505879766596700874854251679582632582439346609872036300476421700287013810785438852199178394632058822155374425325487374708922809957410724239634080154889031049056721367774502280951489139599825985287649226708817481259044338044507406387874472403020122942509279917410996269640655656359424258284614530604025515819062079326015106431748242224084806939203115491947634845816903302351956458041549948641226303409353407160171506337260555340895162428103808994690695961849309852995012274374496423277511873856293199024145843353413687136106150330339850350392793287351181769811481587804941137085036811430443693739906138514748789753365585610490822998256893107042692380423543650430711459654287702603150597871471429171692029445298526968880920525788165257234072179663124925710554714486720848068563545697175965982030649380338897576464228628626308741661929787557396848123901985644052610113566040901781242667244191977131532922463612316602940317844056018301633149363554424322772477365268836965937555036939278042638456089255665101345122055234908550755240664357568751738490029860121079635993116845769809753710792978794616248609816314544001899106095272580122491594408608606493791813224709859392681429941547937590651379973126087963292782284643858268298295439457797286787475858157269556756077944971005840831467222306457327526027537049501267510052345286259392701977265865266749991501014685484642777289003938267809757930552072483313983541003674408357410128586451056457206319336287393190944582495915552931742257528868489767397513904914424402462034091981169197287463231502371649972309572347477623259117006809870592852023626524502322800478071051581325560016512400430510910973828343321680305011966298090039658459142238226029330337358986612596019301135522692401881331653228601477338286194890020879585874775155358625017576140167051281666568181224266561198111246745985292595711065120649272560074825833802411220362285873580281797990730786186766807892811186190399023620895605279335269809344790294139689213578169304485523704318302862322634598192539770909442778299402809767173807896282160369311903844231127873746364902542407935314253221963469895234339288166315554749886344548377198375594478695595601771877590908800556324369066949090226829392842060882860935860003186032981246124296753586842776621184689964090761888939129177713138877153089762783343556393593875110160411344098722901326114417294977897968965815506260488231617724047760755181143246594584232843485809760069176206840318317896463077673144708929084677462409428969338337339022107205892468826720175760832341683207818628467028967121893628350277438089994107803440113601603915813865122055978771894960374815672916367289835115121234658724158459162638400929924498193253707957766253805604193425997139037392583268521048979924755752477035084303047934151957753254292152227237232679829441438506112834466492430758486029780878465228728012191293489385377227915968557954002939569352305926321159234380417692869994250247833106270759451981211354495589859631656472782243449466776218269465489389750127419692532300455515606492761203669867071776298420905993824280251331262547797167100638752631589461765772563102929026692758064729425512727492657664719254831491532071700067919379416769516494389084647173338901166371554120504160845457192648348887856084248399516657732274792135921197002288902200765976823615692635708760720214175800591888842157826806576849706049186167925870291284767513404069540497413033162042693886516681307150307755777295085914727958885685949890839999005203119991341599907605167279630474432654575838379953798553757719330198932069744973298239837555211235774666358791638951252617003655024486973692118973004697552615388362631738107985576015492713455117278974821043641920607385764932303429162000714146168196947357999888441650330121102645563222663768821273862535268241946464848466252195228319979257462507409782136379293403168451480761764001231843019697637757058243709246609876278334737946302259236284034819240956149010811541628574674816787465142395639052909875778418655581093674488484690166303878828287779997479010325408327986909970383246047592275440968543956915475263437786622022229608861470627782846911595790612458091167453894416903679533387025064713192738784853283883600522184181249266455209894261380528652189927365284689866395423008317139705077157368691407628066714897285788795499623126939761553470409126042928611519740472721396282568514220090449010930294091671908932590602061595031658943340956071280507642964093666679764580230396640452753605294036208064469849854622087926347292480895187599069473987890329927710470382724716485172242246088725496448752959776525867519140458179211275449050321804532131907907934310391015828049108908386498596822337062607529793535489786634554461415132678320449848902657783460607970616842641360419714956767293947964391731442930521335255779906455347404702898412781945372807491357044159766266167417220044002136774434381136412232747058852005545187112264393379404616479412296771139321468587163377919165144204102536867957708244231600407191924422664883510360734667385772579585800659960167611352046980144014086086890758239417680909973824935304669351348316091975076466824552886529168242938706721748920536631160261369760389436088536225532281240542616539150057287727432204143978189298282825009707197708111758464463313289798366793812144790001510510210855347659897657604589124106687157089588320572724643983531871489602897814326558896750950407921342113708326709206601154520279469733848898075909279529576005809477616813014205955827445296298597945056397705232540658188976749993914521067799589118138883635599389540774053280131028662545842106660985404873841066447100729938935862214634659838276162524280423977011841919377951568228456772296884876241242006007825033700548617282952063721058984184790209255101720269990424349935321065354816785230782501047213120648922376089007877808260354591057164073437846205583143224754191068547563155371437635332008021769522668290358552001242183428532573652205275773205983318820298481110587863308101339927737011070807066701910555760930312788590559319751947362825586095778134792355078871639974468080770299026784482814344302687300422796566791707576928379562077547081379111211761904730234613470848929090479611885562506957726206079721730412678537405889874606542323317270342310405066109305132694547146576137195755023028395874692998743213832526555796732035174100943713423499519842020802932688119206390178751063691003437723792372996108649565368536555365489723890973076431863072453316727831731091919821709574372265073448414275719286183942140005081616012632544774033539050485893193597429844835331706443624214576849624941314367233535163191656643946699252873856881464075314678813603712452350880317968864901283131987210011622587637631233579238229155964028392155202029187347224958276126067468736911456337325118412620584344965986524391331292965545933454281985011727138857702095798721309509314362018271291555368352757717182614263707156010449245866129322322599209821397632679114559866231493546667485716233103996675307167268022739685162962913012499873712391398748403950122467672396616753850946035834022693516227297818106764867921016675659355473506578333896014225006145469807330934781420457579589580694718428738256078552921005711349757079430114496392000355649415656609404536039645766292513140051064488223604318486022437096279600494457323823510233259025109984684353993638965520426609765253522315635674766395362187001680168904056437966476545569679920242518794369389892701300460631182095884486205671093399633169226221986551857822311869440892694736082403473221416381856907024559601206560850221988199005343100487112335762680449382466961272794503562065123668498762048757178579926908668430425041487467583641795614049465032159563839150790289551953084457385589208379625287213159095277595935317017394922512528413072894575610341138085172692731241373398534165858192470013937501629150382651874598719689996286828401870010832536612273928252915096259840851559674646515997048175584865706474707860520343916277416487938567517389648557818220442849377180061760850525978991277075399537407764240303729121571826163024932942446984349490402776858690700687257758284678920957606721657773361810697065074379320911993402225841333034367599360859927553004968012886120263010641843616009634331173054228879959331830498425030846516465599792836864656919047898896765298219320486754468296671615962016874375798527152125818518461211285779921681533609978058207535545070588119274518661796543886481649224779636286856480524242204320582626352891747471300908249482062636746988241137260270085841177212709041152082600959411994278496556521344561840334342480735982876585864481390549551195453265599740508695987379528548631275773944924443551839491399936136929692685286851508384040638327193999178394718448734007646742873798393172181652717653223134210384201928499013991280476518999395764021776703534923445232321594435600142024262232789426071440786386482306734659404603312783005133941686969862642425524597350573065997701997412208844195682445311227413572049446915217615318819431071558232072367646577185758508769052309124484510538543438295619838111978169129220185889730749068009255056073726120434747683943460910923024183866168056091277201691696709557582736268001570553795921164355578269426259032244378372466219863980958563982600975517176176420400949720960180972509084786051998936292984814831058677308552926267850508231848190272093838450192426524599149403991030294927792032662507230855679590881651956458685417503041341115641322977752479635866869028660786131164406492660612090490501285185082753586842528335000915873632653389302327303671667672247637762271847566905503289163020791937882717759396899590479136918898647873899535893953746220840529407068591654765536490500622119314232743868990565906889568690467635218935985446295147402198372727282014587152010228289117602521782146376406150038237093229829927812940632916968279735414840263313429860504674540511358843741236253181141725183822774455085263119460834725932090109198479396916980203821568702691630255266438382793131812211333525622015850775646110455655773591932092130688245217956289162140638756061120548514223576598522118008769883911641510705675877718751924040650063964904059124290005531036820751862716389795568102582760948588267811126251479230337206335225454020479927295671637240894365418064477632743450774499868308745840410622656732103834547841079939613953708559476790310882625624450280137134466092190161299228323920771334476520601052237997198526956754837817116642624247523119511158609985794203093595632506596686134619206695935942624475350450690912041844563503992709605946875681767305832080781454726009756772777978321551171466629765614099904989830323717963259920062489655210969589314080808239245693257262614455888469271127747177912542717360379318853374126322754806321897423944190197557505154422220343525380012975067082230242169338888023419388893955549669498541445211723636063087494851348193592883389384584295557706143200293963986536262754821660925437386068273652558731343882153941468668177414567055737746517889481582118917019418185611363462010038671768649695214818625390604008632187299090476056628269058837938015807515044038790073167208039963216275149665461040147920040404784200382359761635308637930187666367598573205514846347475607089988114910368751549897681584415831726965963029404718801881704654064265482321187809896005193222096473050684739682723735409888192155108627443264572778055050642055163893703492951805759204700056184722238314364068695738495397485321925483199682992502977490824424866922236708798156926533642908485485693426805968807086283290832280506171208084751226632052461500728682842899491474528775485708776003137549835046337117630199580724342529947617386074672820201710430176816168177372816515429848884606499627138785677833098737055775869202297410522515242177925365671859886584323481769803656167630667182319623833093802402783254128298456667564495145375510167218824262357452790036170580518456412510160829077956514146511697515124634395196002740486241111798237102145866385469790034907589693753422513240128395553910639295047198947275194383158499500887065404812623375699363407138336295967537653483396498694569801737770331943373122824489199703873950473040134440182474968753585060066136921200036279401953471922642388681726858910203942896800160627386338123439711141445823448187999084210750211919730836782946805153541881959216593986906911782322508014742760955362597665778963420478813857165590129609615058671467234067079102749273998349937385527568800176807783497956012837011685663259208382832234058305089380972631881377039424675049151703694640738302950480046057592697645979330776076549064755331678428122504811425071830809073650890209599672671155793624461303190544168800838030471813216949550381890724080063083791912719564366006866653142412673027446100933310870136203164003627415079953611244246912949286479730169624728179999734009063705515967356891982501461129854220945851285119928986000359474008986122108191310324642748524555462799116278073202075648361383171119725638157911829123105520510642067500205318393624648980341586479502773489226633806016698330896479809601026201620998967031723002554306660880701225473821466909751578023207673190042869332541989427117214290111116266112918849710346779613358156483275789952124907348024340649941942371924440806583103340508013480110830365447897057521666846404625444118228067153887675715535118140991985958104031117661382712471005850363835881959776330449224439659101737622155780696350281704822268233708117863351877440747722878780286865977312149907502758718219550060499198220718066410033489432639082720172951871597517680973507696511940235736148832578705196354500531102473550440791778440628690771319877812103124773047989321360482281096806060717411817829957875892717846485744860231884632250485431236810869140569868783560507870408067723596079574578831752404559978046907762556549054428973355994763859065962311790645743043739027537900915378537373170227840569083788120853097383387550562757509204831819587693391144019832382940903821297269445867965025855674672337862976238687983847544337676551611059750723845248272490244441774965662990413957359364358537549804551003352740679183505694810391337015218745742606841507132300095200348502263845112121135869524085560223915495363511622300857890536245690042077221786754228273644472206014055288665884856295760334401038155998612472819615500229816476003349701676576116825395088355257926342034861271118389290715661903964668487290755641208160188049046991267200589941938097565229651105366057465504583978154424908986577007197609779158780961587899785185220696455503256699852564154674555021483159398261760948605894811732729937400445235642133544598343688771822283610425848767985822307275466128302086709242371580530678596840034205899677191540116217498722640420564609209375757628072374636047337613332174900365893927707059709923598923537437450115697174611886273754500480074092640875616182959580780376813691396554265283588252714500465382217670409047993290469249794550002818468983547370089219993417896956652250033369974997993623477270993492099136578232371127330700378056959375644463105156327695719726132732452404548783646080726110708096914948461368202905095373550889875548575801676845229224039515056761796004471003005343629371249458524383851872686565146482391490288444588600453544077468070539480315332360212831923147864274320297022275290425501061594621064571292775580109874953493131762637901245948043967342155048901170596263336480987193774485199376879653229689596920495012772733594846114562914297573378114870694459312987793913092675949122525218012194785346087097362428365468959473693055913371487695737261988834978768941681913840234298112506080711051754245371039658682466932657690066947224006011727486543817094410153559697928057024405049721884087210571489125493087358828752836375794740913791967121706075844639397143973210974361908557148320152240213063153228195023641432850815261525827105754024285734318223567334560844866864360240279934158988178550208734439205407441812802910900272412667310224433132964430431232224758120106567330080418404412890737730422513735540351541823604713150133114919247105383514884095765911443924510536392452102533775571478070311532253256248254340825597142211304510392309692244031001953483585441757117882538489476555835625853635248554374068456329861165367961312274095225331098524093540031930408956754480437445738980732595356065720667224609735003181935399504732477911929387695770294415045261528862791980032306152866567069575862611860578608960264008896981803421624712926490268637213949452038793638100290428103610643599193917084607295295662138193562520328667691915269830918789933022233122717946207848991738661869356518079733228003286063384251142819687008650889067750993714844740092196804182680846850725967829666727514210676982888047653303173001281816288261836926014276850939805864957170258867888153305038252364594933002754391849728597317816385177181705728254311432402718991932577861393705348116162067891378250707948094833898213041271055914948123145545252986172966440201361893068588155922573860289962589923894269381511391424091808872638631598047005993169840261989397263967689779036596785458795274714147416396998496640789701871764001230582459037925570375109317066895441394243511487683602714141003840609675558690733075079557935210006109477825877149356715054071057428746760638012604850318489738878914906249088237094526737632554596105720344742743804290649836625084633409982142828069418737479514859604127778995422631506461504878657806698661068367175005890531056335062820018226509596897567910419837633138867927006195981993691441313445150127794716754629557008954878269932813923819916132687420357181104966920367674601894696472848328406673160268220897870537444259794579337549977929426186336737921542472029893486170790201809817299079945379570917521421887054236713032917237085094850997203659413661312385777421174945904101375133174048754204163314252955595831321849300500953845549848373776737282947432885277995736110426882674890448553505888392889254055399646831165300931088673407061467487700134304538733346028833545628490879354479045925029235044144318496621550694416958545292257919735082992948451682928908476331516832168021744815598059850870316856254270236096067398906103112876558787607230730230455196968432227229106623950763197118413924963651468216877095682771489190885380802144638697066540143976064626580203859095477026672852485275768440832568206813507562325911447315356082471135168013372469723154502202644198333900205194501485653256628112973628478440506675837063584008498497354138826702234367455251953921867263581398669587211992841992992445341421205845260561484823761377691186102335854824745881864255696913323151498808482746782468661422031776279909672435796041834297217032290605568657106005037455752376991420663302465790393623610824147802618522538009012177852379594751647227245023517475396274420732183075216330562231971923787324542781615591900272939087363072204928758847978862049029101426510116073617040142888488986537745870852025733672696027197207297301356022152569443298640758906950673852612841083556535521106113518744647111644268887493916490207175420648334131923527897755099301734000781320138654514219325386017601495544507770992620203063582308646978325537205205595314088938913233651024609143829889551249781908729681894323698382181257192817574174679260979925352461459163589588570564877272499532449055934362125654555077892478102442867225171988244067080798441279054038099925992672706317492739884128211342899139986635981995885032002641830205764569725381518906292774342584675244092605365605814815316332648696131942318245720919539956644954606472749335018382901879950858987352879980827901992577718109810568139517250782263127960800023332658246405878213027969780180629664045189225340730684128159161261928044721517088547595757445292336506500243682213163897653758061983696051713850974185977162094136834060673767209746990351635899262880393716026990348903336374302688408225901784281988989959442821172556141144934247898495396161443424125597966865994654786132339703534197673854560182586898194983313552678667166352766254646934969365258311468565392852456930132040516119230353408185912183406806895580759387596018774076094733172876361253831038103037133142095495488225235122334490986345074519272852136888496089024505119290948682933409943546199568522856736640532959848722793147737838903183230683220413255998725167075082506059619426570291213434005997466175700688203836677754032939925601259112106243327154974949392424456362027228290377688057800377756385494559313305045819416642072601370597781678356984162802243412514897057699909195770373277525586941200235662279036546458675941355020559718301566937215272882718790050913950310296564859115667362902978661714088056831914832030715449297439167177699544622708190270597960895858859691857095875289378325160693679483365346285629371668509125319380716134168527675611643497364558299487144335374729790170593835438111531802709641828014389224054256837325263601196644577387689372473554319831872632173307300466357318339344253555712623522618559148844544355547780871646451246430634835323251669225279474933513914371392196530105320752484407933974986526216440980970806314987582275548989258489470478071761887652798718007947852911987719269529480020880759380377289318476706932991638563067620947083095029429908445848056575089272432555583568517052088794149609513568582758956015597532566901568578358890967938808701050003124460034849854392741246550681364366624625487772045010330581710996618745759935439529514882301179026326824056957497832719285138639428214539754044560091235670649579621033307676762679639129021062462847490200736850440807454353295541517564734431465235007205011811904347514323246426051113453799514274870837820007552731141998607821273137776612456541375310669227810324442260217669696983160523531860483867919392201477598099469032678820253221562480835749937592594295750130717580571398495664363910922845713327730467275575813375720383552572573822425585374887380720292394806221839975114442473349493161699753673088053116480700539171036846446901561600737402738728073725675072196082495348234110490477639154751360799127071821203720726575535466895610529794359362107911885458660960024700062212657010283190960891241932327364935142637800972016160208100195378555787919672668427829904801478754694497890613798584979474246121169457346513754800609466459490720737270824300813584142744259303146169868427080755813440209100579707530109606124219652214063265709140811210013042274300299466807357837029215274184976047824663543414804070525792337468323783313237587753194798022505009332004229382333854113009802852248035214488353715261733847953507475857478002490895085272961042940171473548979944090831312524654034181415426926170414886446002562918914923030275823373301191284525025193144934191945928932473826212723106136334430569080134087325391939001541439589371612334805792468049370151641069862972898990690557636571480938834819540637274381534189374455080677392097823724891957396692068956780555889740064072959217689113177117106607316747006015704495521516962681680132255905239129398351505187498816603782395091905123594495672495338864217501871529546642471168919726368881369488950207557696768029576772456766114698635065144277839800362698677290157017812187438526566618711101402705506725131764009128462960717498788715272196311119231012726069068066275674796296031231849661051494676742490005336833767889936069198884417580767597470796238808054685902423744239774334310438722494780235504905965270201927447091878395838440731709449709817860309258775250327142196743967024713838629086631409395772069824251586682147572097274775683028401699998807301738428933564868270045341930282544697436115952077160730976771137783317598018044183098040143092980784073634194927185293682737227304929374171852007238066123948185676908306053117714577712400089321380210608620277664669269009827939950301108440646067019403804842261156187551639445647657312892571404820008040322911273791410641993007910923224015455204427122167869696911584473210663184825722114659227628747626088574330502528077856513684320752283632245036822553636151212253414551533212802650504796564914624648494714905558193361055744579951794649638195395952333768768536052025208382598473916608504542629519371947774175567069768808801763176014559967604322226201024494205057187276722362381420253850083154411106583333785745523415154754207345973858301934785993006788634663954612733356297021979582580491405924053695193972705777158470535798979154802603193565159602629155680293217511837164564386870368972113866046498096130145637439504490562382245208086178475762406716297989083342966727499936970751130670939483277243268512588981960565512951108711160915136302364073149348078476203543100731015411807432244693016138868870537113363975717174934729105627516361539657397683098371283762922299516798130436418197892792991606353345909398802495936221951028780839197165099975685201450881496189283450599509443478413203797027019072895676898300301690936773050235983300151412282764025316848898441447867617981718903815985732490040772466952763048551262231948351369161006013596402101411994305256520128642446509221645751058505938154978944557281154534483144150097523861717504947188354665086385113287931570891058513644429909288834533124476734200035433886299447039287092411221835990162563411440112054539140945534668140025041732871630926233345575488471469803564551464818479942941212740799660413213442902283136003383137537731331507320372534862944204731607056979295650641788748881688765286359035973875576180728132393376863617266555288819509973593754610622005391517423847764499573356958329319204001820937849348997943206024127868385022444946438843048638073452528019273337745377877649732202354132480168353691451219859607250708007123984350700173680506586046594130363028525673620321409996280061373881575611721608745313930463784205962968929566635534663064753966220791270076747580600194685603980683109398057950898408509790388538110606319198311322337692765347126907561702445546986688778253181216060967296404650382679758548404925876038418212732474506306418477567916839008354726516037403370439580524205913348891278506004412932227491926750364708353965297789649131042055176988409551330815081402215515319734816516989704542484748568972210754421494631320664325200645044288987959904215092246160123314665150121141226588670553159517176902442931884558480838813884244948795786804236425854049964618807137484531025851986160021242097978853619065545527220967882306862389990434299613200106287767914491162187891782463587896527005958220525211749567102855141619078876845872361737231718273748815104509847056270603780016359442169613425860516310922514707056628267260836195403479382700564505994323475890764945732206851666159140542300373841897443655343894951869716316171807204541675435810011459431753425689651949866430645627125412283874967234693356319470539289919028635858815636304987985381840766015914278276931933502835618281132731324504798551776888727972414805555657290580491829313008848842596509503702980967461765492899004171976730328181923665264158617058808343088393224900698617030736635163873651927260850863654888688111021733684309527991824874988549001321496126391399609079778948567181926698858669722405228967824900124848744553865988233021708004882829534661529472099474854667284976384344866074989634905744355977958504517251161605180982966289104450547700593459363070426806457493012679876490007525377261859636356507338130815001269495975375057688894826056035609543951768609736675265901568059206488932064239038651260407893518715909983794420312171108509816309099537004758289248012807724952208970037287371032695091883865429351344189319087730885996727241542489035014083108752219462901330347004351103418673121852473250240351332547996139202997005516455547049196633103146333090772390795448205428756928581573058869063912672731323684721013892553247298489408360707523879948782445811294379150465822023475925850032875126418191024634263915946794438762828316548610214092829518191761166432975628780660653283225934906951293044734496863084133761938283869957782596532617741381228898416556468868199227346804906591798718798055156788263713486732369179474218034939242745448663133122381242267155206294068995350529831151870264896173619249614004146687575429449503314361374813340401487411543336274189733987418137144091372118584922384692719734419795953679381153912346986416078123627260232017296135830261934914216867979359441680771587060302904788710788729142941322794862989946595814534916898781239222996670224879172699122863015956760451151201725951725598996795956001294022092620992897129584638202288820250933771799776229410906022007102320848298730213865215270117201608246909168561235946178194450889219318730500674002537299952579445681958952956756414771853418418529220435160071618770797295906375291723806044678848037932549093278704525630587747927570395044477140127794136733418191410153264138297612088457075015351585339365752474850999687304772407692929269330485876073181355388584986246472484564948069768488506760384700871326236089020407034686651132772919172792306717827708987161624018845173646880727337848458478988653905560908199810073198325588432622622566381188582180434810222587320381305022637693987238987929391234266462212260364951637135441148021705404992073681954164876147910216305906484943408698650615188184054032367581283507943377576643586385677183351319253871598874126509492562630194358633577449922441972709769966527430896880759241410862449097228649267449034577478107779694452800666705163324846382324448035961895960123117294800574454803992172658283834057182644646922547975957725910207946065966202879464826557009605684764176976767875984424111919750160720764349247399118947821794234708038832274475788504845984147467677986766184856671560650938412836710383542534098304070688719709015189178824236904541563176511774522612656614969646126158884446045836558227757820404352670286126657283911973701373396773928624440311409415338130014652105831184739617415210157824690761766717432688560156064985235407321681200624974109692585606230766654140647381368436128670895357785764220904740794691606343710368312766523062128509299661532565110197091585335288759740969447477698227438817703024031296617334677588102981843129394723890015290527729094891329028813818252143994928036720671544520564852334219887557578202430691993693691736118680844237821751983419384391720774708074310301349550381693042654294315697628333521816628143094333453793414792844314532628486826174840859177256722087679162915362384823295185818908236019933151499172317948655076811759379578689968071126411369581941829159528262963489134285640414528731821845944736481454764684229882056868505400055194024451480269063153619618393121039222641217411100029230511042789600511659949112689782467142391287203792339312354133880770820148829060598770408263309167296252432166804869481470959441857956615759015800874086683202145808126797813568595355184465568286520149064830623466241722699853622482839124669231827768443105776300661312261796679989884305306175922738331094898156329479887341143817531161611721734539153482235187800732027288085250821584769692536257871213508136187681784748542829720346934847138545696074272343355977297976552639616220607763105370532722984060510972736033678195256635889262909275540208436605254485716979374945060378307348925602496784961939035483609505196793623882384421860980286201940652116724191148973626415637666893788643405108094832142851990091101475167958297268645644472126957437769442776815246765444152506617992045808703343116603767472908801941457538524604110213440944389565609421567674811860768741861639109392861480431595958817222654363731967835501289791420526179758453404243452970475520850193306851672045930571385367308079602361874332203353998951714879031538899726532034756943882068685954038927296863186078115770889740758956298806472961475569871718950662878754835177630005471722052555588422973941591530189045184280715009445566336676350164150565004198687802254827447937264999600528728908078508708851603290611826720736052105957644695968929417226898666183077923526641109168442571326014558346224372068550052561414998593848476850979677969436599983393955885868871378549234436557009147689295026742744840342716856609714629703037320982047257209776741125302405381226124920137557387130671608385807769387019355032941089631242637747500464376005817231959450540185129651634301348555303891406902722141406416288021866616135805457997220824039533830125545155607454282366414887065002069516144552890387875268207452047895034353094113395188416920559891431222240332003661362508738146504412073261875895889695984006992243251145617477600815657836184407647553319107268324242438683827410325376443643832028168906058224299762342636814601295870274978269943959849720228578714655075693981157893903061080308220741097825926866643653555712840853860350822483119770073907621059544941404658936293358450305968964200105817413450459192586921326525506927449721738756343035314225945688582763502167763959902896809132812136481380003287246114520875246896964783887209148437071655096383244154870612565484980392236722138121170888034169871327767353164834981087021645365132107488978432513076965447841247190563932019109523906782095956293182376012127539173400357213019696041545837553933165466988742044017436720824736459429000794317842940128734020262567174992236069489997590748191458952132652854349506083755323928331587368398048599136257159434597606247086369249370581663530603115525673459539610819579768494907751850489800237451655232467906681829032829045994228722362627273484319081426473433697991568674662837653508859648353439556058172878532711502591850325115270185922481845169931668240248137199327682258568391155031819267092616443842235595598950695592147305458065652780809646849692527144435785972484289034840974054201490369987144866996648889796510620312966230972756694612092755580530482454401042033485197113130664894182916063661319850509053710749218583651148164249258651392820685081996194862394513415567563122102518119953542854944127075216990309875500462446982495461427884027250452496579869939778677789086063365503484652899486514823226270664312084607191854217963849047282200189318824240013804964595354647698790613884607699281661734896605697942852185072095972657149051097452208316548169778953546447223568144829422093421615890773562264013324998736199205833079764297914132478402933515120330912667256322189986373523363754385318087581964450899504101970269795248091613182993549259907897622728403833360475996150438644768076912936649974711139630520854386770802032724506217899063524891559993959874456472182613906121489173196418561574091026024869406218381600188148132895006488331893302264106544554891606455627669115735919870991322503508336063423501393119248824898390517422845545353486008977368379772422478602503774441001876172487146750309424335180653438198192007039219490711602731906532329455686739629602907990329480406470128107733381961356416241161836657403320639688186893770965294213345217137280941808032404374167127359092569274498331507070035093008895894240483968728985801409601451454689337647395869376457360092072822229975205122272761226174121003828673146416964972898920353376270048374980064816047881339679638101208825014511743721264258316906840342709980890461524188349473902853229860333087659460845167407278751147828357343802379325923857043329863366031613315406044591522151318596197340460106629121358343641227455303231884866487891020096039525416955677418000114461966970523727990683386664903999628051098990433825705599278902996135151950513693011332798680541486104981787854211361894922186057079929833843722513631305055025294972061648034061634093830817029643674983137133188597730716600439494240733547232742926404212189430742451059375616479239596808515948347132878073306302147639691611601152149720929429360782377246283648923410454272755977430455521968354919858314933253404985071218015444191064932772944380334951921061881057357171835422032545717183347630903995177802875781931240038169194015885135063492262092646817009868622583695146936825948647463999897844383138934968273963303892998775263931121783213467520477540551188512683220350820113539927508718420286290540061308763367457401910578558257803112227828991840723751624417696367873128309330739060291932079200989568710231234553890718169017263768678701299966676774368618747002925171701588153858983779948171863915176633369209029322288560774560528830052552521569824864665471284174704290226382818133315285534365342280497282638505244459343005354330891970300635687729612804417336179245177459204841392669851331906916677549340221337175101865379511032204241624988919019252989654358506125404067805919965646615010172410972748532374347492351590084327923657740576310725658963656609166055578175720704603168044869455215955918304217939268565492516517739023680710952181753877050629276545774727151511846522041527702012331505713648389060416063314945787739757395438629293103710410141844189596797032352108960872867437930307184938583348583378228617436156688471528909180394480576471365798172437290248893563871801712869385168805273109876169330569649798859485238812636635228096276250119822896546661223451021740313884928595082235945003826617180238796079365663484247314722294315188231657864799360230031313859612070825694973751822261824947100260907529740694307487699021004053782277316871364033580229267513716228217176455892888071860753133608711201498717818825674954438752069458304944936059286254872236695181943646342534237329602461681470708932202035201953866518445438090525799536598148282252855028486247307989194199580881287309369048631454826135358387317577532581485750254718863460986405936435895717842785315327220404106526424849436595675476031491769907505741827465694890373453866586961520268412930466597042335307373901381567476826613070731292005019740289649144476827927664818317258866200061286833502493790575409956526608130537759802351625082916146701453959393533280863420484797281191905492681876519905511263150112974721820487522901888914800344508684334718659125122021917298306624257864754117354262981267537701443089641220839304537251650230967464733937229898623711951780437679172113989146822380794881699913261137519013567000680224097448960286508231858690614493747979686671795776561001119230269813542714908481669297895622235141006940807138311383102451111640548007890908425349083787004768459160982430481033520475451618163959777286284183000679200175069343851527465617973942932313109576894950584122176048655505281997251735665438798465711135503146584814336798564662019049677133056532750986870655977602676097410866600425391850029858141541483272418229623521705956483608460285474551126388153575803119971827413703785803889576059321721646913262510126688426087501345322389344023937756722117108251732262030224457836728778709848078570628347018422667420804164944731243116832908560237160514446531391557981089671317776682111256717928869939264404738010532903789956537764841773534946598053211085440178849821144796060585447290001344480819937611309451895296763747021984398301303115509336490269246722303862240382309908535622077860795520002759664005267727338525247335953992579785531213990372501069803256418542144096107723124936873165803640614639389673109048012709246704762927466860847988738491315705583196301981137844809343191282938382553720739960780493239970729011824376440178143475091643543486992789283420509758618862232087248983195452182204700806561887272388383081379182514453813114548503480425249945742055401098940108014496377101689231111551660747209229743951420293925987706832239741623002152630017419641740870820385499144014663256606196800834347927101208948961389569927787827110092278989361242750349009953311544347390537075373076355673402559689541429156040925967617977813753507007054338830045554672942567439256097148707146519107343125539555115043885113312752067949006477666419742559062342752568085262991885333366303738235786697695022486720199851947332231556548336495862104504244199900858936522237832001195572681385187677592395796946613522872645195889294195155891346040991728840687958841280071821050756516244021778302755519536806304724048117554327241417578301547805722853379096747899528193883972317840971985345708568171810116459733308750509290307353305012244214344461615809954630655668676889764292509471061904232561827362677996603349386368608871595518127859794643719882539925568203753898818227861097681054096998292387546220778779088170181182884262353288613954223943950792395433554850363634881830072374963212493154920066245344679331726438990636670657925958149265182262004998917184181232749653736577296189135595671995304423077928958622732624255486595816925607115691470145731613484391986487968095632033745748201822761954041331941418187009644983251067226145034979450268889880780740709166650524582656525289181305967013171945374998570989187138053535440308754374466614215632641987570380002405453640924856260410084673301415738796790418834516489696386130947326935470542433462629839697855665643933199291082026635673208024005566853694894376556687950539883580053389947269560224991607199238037116942940010672328447626629029949678800286530397565866026774848724950863421825218402896880384693216649156162804651830949080732444555251127143601459988257597448998985998562687861950654916824628852411556607434396291185504984509859671842910284640824380536328792907700995389361089207756237467381755992623381559803677853713207605338259936509412258401659043591744567291017493331822938952485122539981160290617240726981557001636292769752001303810607575438380637604848727721572830178867548350336367600614461807691519288340532130163605292200728309943318713167038512844442314604100081278260924124561995704528123642604219842853479102094466160683694616225034635349325611787945571035098231453332277170409907157615835443960051585475616898748005938438349547645894891174100086122773545496865989045439030849803735777434908736553354233602735369014687159246499979668613439848922588498638478412287371646960825037601453680384234054370919592271118668344936442522449601960355238012695934480164551946263093205010095908220377468295108359205114912569979302420128588386029366943964260858017882770510458020896622868124869342332161471322299258705849310777449418981142342754759904382184630887311569770413149251896107566659679975550367307100122900638880324408715467469681182318213560146230892379675149446892682342573911010045048209651933746421974105805756772137907097003182238302014997761138733582376035591371366316001800392709862257180505907529991024402744811820493213036252127914658020245715221019981356128529212413454231760073026692048741408478764348627923968891449287516034946096403962638223535892958314534847406425421580111676394938563430541426433189477550974276087289278137599921160214913466419554283480330881057265311419873786256283519731244710320835643561065297367106428908218114680847533678456584602379640295408569263109482058606699759832525224846740887892424090452737035907584812408289243343947553715566346922973264652747891697926749271259308784505423563002987720549946488575630824184821733828101618698484216706581406072631705756349321575357286931375232018429436534295663283668965224146196816266703534474753452385145642514355320623502177850606124918119158186212142135996712651493874498134876225596951851917200341261502046761876410393592886699545127650665019656801959880266023381178009672968197980722735224780363700231723584424506047160151439932116079574919435290813157735647715931517689349334443823884624953763535146509593322843722490422341850712592377257966342359456220591720332049454859775724083381597160073096904110464532193346666063346669580789401488135635682838444970234920728293721980774168038707762204751455316990182632179267599019594107730904251314926486320941183791921605184515125043770289573970082731364186283163346499616933373448685582057592488217228517851099910233127162151698943123112689979198846954151422216011657453979104148901890636535593063673577918912095353804673876297404486121388029320007443616448504638158784080290481738728913306410753540882675855988660587531190353100703113657468331661824425660884505565969318914734739874171852107134551926812772485745836517341039248968141237646445765275522978789656965029774454194397902073287456022404100282557291304274735278014859825991431818421700483067003836604078831064465996231237298081637779800558997740164702652428471514459195153250373686615877063670904846828095065956097084212531222629796792676606796843707625607884406183076906101529305600315232450914414101726896494086538749458714483857745568354833578494571968742706131914967081469848219537970945719595636334793273959416225312027340729460317184863021099783808898441365660492031323193253618251182220385797053746402239303609618884016587494316167029198311782883444956074257405214917773494648595646391326932391100048828059661667391779717009490259512292331650293431683198099363863330536031120642655159402144899378491966473903673087031089874769392556836285977745014053752956771724147757480870374098043986870872026214686943269713839217289115942307981268595381375743009928154436492447901117546842768782543971103485784558596709075391677658124809087770795074733393155094283647198692402311246869041371240000420566188550176822317646989436136008771797620771977321799599078871865243532828824203040242860267900964768511357497194446868069548860699622765885110846816050620276665978057661696448937772996807182476624691921956241472861520839653386723166287673776332110763417379390283132210550939658506142398606442418809251180492010607010577617934253719468880904914465055044626704711560784923370873756715813359617475784832450103981401887681403569431835962401839165963226127567635281329215910387325316885657526951103184353611908784196524115657878890122199101006102483942290361679741331292572733889693579526454748564770638809882756589965258036395279275252372865460622294668167942898684774152882511341374048547282715136450459652466067627176487501723094577683755246145884218469006202114952057851873265995728854873987258895557159789114157790856059829094214162199239153978264186382813381381851562867602444700467389754338315788121756099258575335519746476091598361352908270370859395721829761679922251328166524268552523450619757091289520885222294038363149325857539889341659546034092130856554890725016524776922948062624257838951581995359525284482356835041273684611724742108566688237140801085669376393145399901045828961681472228129652877924278171180758686043188953741619690977475794192093770221672378408027850022089626840092587656884680514963812508249111129333645836155347967143855636493902849535289150538312590104951664057528646006346434217349809249947819330040477761502156382324442774706632221109314235477635610733345602354504641789987615562611245485117534686259269863136145186338456787206716698010518235768956023678012284374385693187008953478588555287008262120477571754367584935960750508937920836198925932662252353407793537055415808286883341047193735768843554388695492198538106798893591010238219621910016164823652722547946575517346167402912743875461095819173753850527272199712249295869792354727775063574962073961262567186711423756273112099060817445205314141221070583798533859553369696453253599811317038202884553396603196396177457329400692156124147772586843251925504629084558809261006712601191671377164075378187878295537817026216844161005859251494561844416932750504513297384088339725584253444533490238360474034321269213953710461704821307227415687603534374287954693378869587307058326010610418386377927789672450700891742107730821945068610807349173464930645307488443505321787645495792204018738710117043840728758810327066207466489153477721503275352244782369257874414884862207470795216859122498005198640826514425297187291991438633130728964544818893982180556028229825071331137332474971174828079480175588651455389373894721568402124716115288390502295239609958860608433038360872506335262741406233382817043129932184083898141510798542356905565782750905897080256007864523172854881669085506801029663090226557968172140979683178223854195473855855443381103068227307261431627236517319919919865644329941344011910145770399365787744532219764410485133922186032215989319749551511509871891663658464849786428622113236016710546787031002293675623202442024011020062203490414707012248257820569340904927081909221671016859033086248545250307542702693914782820972012234531181039395311293675445174249317242319180166679606044450726417544884838078544701334412460352569908040180018344390843837347035140051456114482799809977744732269660967511697069451692496422929555296608511247947907285357737091417466222498301429786572433207342646064408187027869629245928324614184529648720851757409139232031603030232735714623630833181997984545534726618690963497403842016760105625987133190279194110863213018004270699188035506471211495938649841875965302270307727467754840787543969463869332725631090209509734524711495621860285983403503464315489137394848115205349918287870651080730742537271250423647794733898516646153356489518818998768303302953487854677376639640339839646469196822759807786011333212958375337320555998923816705553155142434563074796472016150432487310432116929746032613429844274353991824611352195545056530899841539286300628171337847951607070371361267167976113438621731112916647966158051650886115671415535135285746363026170225701363205410110797906040136830067979394266157581136835572433395249402122397837115478631323874907476637276544105584485946444996952202005176629681674436687861689358986692854477478788472353601024219028059456087242999690437846612287553020040400696092323855074164489044896034647409253291876939394964018331124027287732051280616634453842173804929760980035283401253287281506289619506827517626369541047785930085969873456355487734360057148363621875083034172093793083576511205803902080860358592115328978896940726574802673430744611080417982354356907692060963046260853620877559444132690354877695487537820901018901521674253215030420624486245026611889618931251289395438437944685819163683068976849696044043144053718658678943990389384956018346582199768933119985552514602030281480341580757216232871286009309778665169456612237312449010683127952044231999938293140848160981455614721283102851687511807577027380915162482772926083569838312262549985994616580167544681037633006977104459989859156134678907926041252882377142005855243070226703663792983548109274362727034152341546958645304501582484905588919600157408076628517765645512630654763836517787555905587608770253817125027065321301644300553889166963945869407871595902497838435425224487784828121319870038791868195091486554888826153284362578290067639560933622057621466352075964704204722208392169125097868627816546074162412810547755561704332734946365929912085114732951852771682331387279863539907304385587209380652279237160161781573386837104207092148631928018451056094091054587018479083094798788352646075165527904640702365628266684649349609911044037013159098097490912395396975452057151953083869982707223452087152726662431936195855381066288828051950956183502296598783064887857259615001398776891570664373703295558139300832972607965619805497440038323864546264316731893269501318463197825917141660923811973073573458785382841217603904492521457136522893329858823284235616729576020451523309732519687220530808143625936896277599039828946728684109688400123794520072980481063268507381347581741907778592283027449245157175846776022085800534389661176703442963735016254092668663743072857310014283259092470348809938759432753979973492994820280640739847630073619159616346081658018605997084058268967794955333936818699789929835599598683869470870556841628589966659884058563734498428965751326103287337294077820501886859460067533981666538963845586238028762304450387029722865476367162917143493497378258299859029038908914986129474655324341609396053969009546444776183991365349381901846649926550900773221513651475898489150857157052693025252109350156992808936597642406394127659971035418664282343847287971257549555661097310698554016812416223380368178347862290044560532048960138899072928350493888348554783922371065927999753921014802244083678991260687698769605091162277842278315730934011975043125587957720006044487582691454981861892612529273499011349713329766736662471135271440403945143879092288114894067102885096792803423833941404801977539505737142578492374199129336067896118431708446506399866420928953529735781446406573283836668400645886846217157741904318041743593884231436896403860596752450770985095482915806746888547220562042331012190211504132968475841881365375577006802020771829554198748233022235579926649396688976069053877435406933661854128716032358440956935580946524600598966142664594128191869514023624480053607479177391447498712608609159921975945619761498853842681164958346032100658457346477432979318717489148444996959941773803475660682811061518483792119638975001030619109034856622417786665907569583547014840726698121114404317564989433111182740348987628372545749912131742576189429980406512152595172251867499180550838584113426334651746289675898155443981548433366242522530371629269320850510059297104756913847548608511180348877869816176533469449835486397014620559497684063882381240349914370900549165839612857805446966985675447368639056862631213660713494579103700515351764280572606663417073353681383416835820064091755073471356103354230966347895410097657496846518533095026139462853096177846295091202663822039539265361061864621540623735302643695751251064510938903797139225260362936345729067148481866856145249086742652170529774708416584640553388792220607068913218325435499175057419127605243533880449254917646607691792967190423595525800219264173767487003365512714451905741655663407129061242849719089283699197564972285953297550349714014544449397113385655832485224672783820044802698681451862098070960028358644402984659465686167738825379346068717746307920871012562723494803661720463767444447534229845030649571668040707899572318507879820442682938706877486514018432016224571344142318953511588790364124244588550976169482526573224714225543030240570053945934918522834938784564347172790246238869086052142958565436616757581038878538028864596833061860106598668984948607794003314380244409003979908608801477320524833063589540705381469563487861300296877972592280911915730993905565989037796544374724362934278713913542788616976239892020612854460707600964178757531001110727043027820236152225531790514640170395868762513693576948549799384695050321263574866070455028525284215571368878998573622883341480709574202438762603892146930213408121065368123872983136804014838174660073763484190368626384666540808880387026323013731995912093430583356926238555158127267689427452696211356362755145456559358947104973172224970594484048327145091920711961512921772685820461297284258534334332825190597228005451667527500015791411643573234086568929567966205247658449136823860030987533196228997739131551901226843020233025561419122481053264803207338742628897332858360769248930070061891919355931001022299369135468258194897089573310299127885689822740984486521338941382138229788119817776465791311396083721430868996306564946858536316650848965883391726594746995917028950371960053772262381792124571662608675072305870051373908600806700141940038741926755406887410908229504624088880750293385798388700953405971479742596886768520695379647892113584379161874413697533602511347593005180000335014954247181266205474757988740344272259384596625641786350113669001015260910660791502114548471872494623108092059948547847818489004117206915757977176646398032600163213836333866559783248953804616720031309475575855702854655059879215168884698207433747266046239286111135514959616641783922107135014260646703583167615260592172183258978338802140747013882131019358947175634650294384803126934542648386498489302280437684100541717126987019617998677037492955332176155752439328226886446826388685535745527128681430929028559034500754782664193059395754898597184706636235930434625244969171312408071587142651548279947148696599327063864701126441599789502910264116341853187281310400848921647642138373485342789581802200204024874985376387262937865677690510741004639418822832077852901157441132611669960706039595496370820685986150281617092238465053909444972655841014771348213986835056518986649768799647368147481126328647528695257188971720100874908038906576182916212106291908316793289867903926491945073767204512496728287380843375847412291445264689767462537978149992739486409580193926865134228438635970887802969341331168402923614244157402954543204438763847067436241250215093292384420619746478070513947557485399131097732847017133862227193119855056873891610963672198826964044443628478772916043519930741370262722941245893151339195249945323434649755219041644448381928172214228979366970603740932505473546808067470333609622664423224402201548916761241594849111436938637303599439906547227020432302591163739085144299826294938598380031425738202182446868575397856125584323327124877850938726677047388222449279234055330524097584296881647254531909150231499166744003692081457292970049700250402565264053395247845241534795642108829799123342976119963832366750519709931671075997203537625236925025193827717795329508719821858332695941522862456504952964927834977685149199501283227169134386645055156929541969925456045044975829630793852428376622211832309823329379114974296185045363954065300782505114849278981462071663929432118357561284136119307332072917529558203923281509872322985109014807137299651898572397448292533900552030429073034537164505382322882926956452948207483861740218519187988543521996462818462338879728201150519875850699170406891253994856679654076713734300929501312407064963542343495873399736907321628416249060364727886450123085795096719993793545572324999967272831405829798282971663586745749342211648189599705231736308426945650788333400344073530169841632883886509166331675801386287294645114399523931815826071127554120164858099550263281466930793633456971381049910386751395775753731735127990448217384284669140913289786436550015452430611938840631603123255510682174467298136205936895631495940346650827404780883958543475606552769843788996977563301628039581899432654861997023199504494977265628737801704649852475214626046700192086047645287921888411943944642043698777917534683238952334411236680917557057492523074506456231232522154180668593433734998759691943214665755659710806350351890727177127572216833279917709362173370355580752731573380193358155174479659491904643118716189903210294388300355410390123629018034915967121995888436299308841303159775031739587319798154513785042717348443467979301473959946800572317446827063856242369879967539398833604250078995208603264790746576688063100072339062013708530714846774515441447775312057483623535698950045900185687543458471890492907326475135592976995455266867715517212712303825131413155432480462900630110707942495757663683827127331885968222915792868787869470588285270046787955362932325668849811661507984630677862615131321122183044028246110693453482787675116224387214881296677870776989890576517050782769046662150087366091052272879980373249048689065765481881742223491719074850307041792229241642271498765339307404822275115767793487756407052076171676641319439567193560696994590362198900655301314178116245942448414979786014291736539949858422804377968044830290615343351363930973397779356365576511862599835931772280961287147153178916465350444999496315791125159758674419759184373356020134878663421661384929811303362437821820434108441523193654819749874050752082883684686906736197160001887241726462871755753595827970917494903536470474878821839093261425618362549259866320592747160254699405859526992424611660457901924900634295312960842928106246700702751657008977848066950337621120715959009057008469462321646215893211191508332922136247761602237656745475853127030013412067565710804847054855169108520324515431348998925588303756619223943089390175695836208588474208166187215640120793689069521658887553844535462201140119273549908602746369150197765318849626951644293669360172603427247540272813361026130324918093147073001633291934041913247796362108675757584639192642532796150464275721566306794590189882361981870800915603853042319909588484745786251285443910782125199629938886074456802876926062815995502285220437364935176216522081276927825141379471133047752121569168218276297310238476226495340109466665572676352732140204298444256927001091729450278633661806838047293396079412423811952971573952261579264629405333310397402992795835147943485836011473393558647636006015729652033884326628640616405043297683922576630415084830151731165458636801885918918920882103987267480936637902304432839723498832466538396026501550819523933574226655398942382364124529463156397545987676318667365833534528190608035605621423716403596593709935228073354865008216214519268552738244972518460544699281325820419449238757281707402737267506480945683716857012935896742601717983953371143427242435899087403689703234871012145756080262449965305408180214426866085437321220321340343135360244762621450833089407007284581455512272017784757246011878293093874186144990377708623151228840270731077583094225380242542259776869290034378318730289584468598110350762264714648357066659156374366751681340942823629299300623412204414502064424655532933212459013236416404296763553073989801114937541687862568314979376493862430879048592842983931481967104378200110035599681321939783123535737864794440458936501099108859606914146067074911463221961577352594535242809979751795791330506050721812691067736118882828188542646249431430394101174531493605254645053445378089306607085925127175122941037833554489070793303972762165526760057911177397969120069806274858880754143411432792920743494122031986872503323334583594086938384279667861702214692581564516625216632792299173769682047175580712927136843739035505988402905550561986658774411263410669633976449457041695946973874425161560475806594804862684463763895469652021425905359983137210659199897502626351006816708362740465591454045946971935138540058458887509886495445425604335227609872339101989401156538465679657377460156777211838042056111671702721233523952871987477622965513143146374164355570182137695984776363199063275196391135322191701742217416920307969693944451707038603163622647929419345293440802958289564752972695573033449455118059083530537755996098952893848462814990903797808270632400843901719292229275679954759820875262447015885268471434889512263030773193050290875692296107935564096580851856426713744157104611896331000047218041831405243399793760888611718895433470715840243161875709482911951070195920095960331800678218616908355168673069284014075605648553811092227103296655812882087856460848060176317468312120880544754788183476225213788294458760639947424825122756800623937936834232963652154172785640434793793375289766123851571455347095403730155311537356234360071243585495937390720186621811364768365206954495681677757178758772971703005656320946719312368647152355228468948987883000904738430419866755459436243683550340149878662448148707499730059129054380557681767685875665534170422731497903682381331581974729327211743005439199144971330213975606649611136925125402963077476761430757094000220640242969638567233024444246184380987196191324130310276978429321912414323879103777244854228494149384070395151517443282593813111610345101038993341520994154535542152023053086302790409407457279344011173760306599517139677606283288218488913495028143598689060692530042187791362025502880759640051762613908444766291413577541559270396378340082989808322139632728814610185198200311620563766612389091409151025907596174539092484357659966866714950684318786048778361586751722869139206036353007511132780551166568763166409784820857767845658718040055128524885855710694909086189073684534353328183325129600730223363632375074731356994615796227139539574120354812732666904489129317377001630641020006787200081033827632628247422189043700098518742834724395241107012895460827323461125683769495130947712570998211902205675496281346613664839557494543018135771715596862396144571307932593543954356370500843910690103736100554354558535028985757623846534334574310473852406327338171592474733291232838109042681508315276107861716293736307042565434812107669713270704534818755844924767222594952318022398553770498594120310426214371804350091560093797118297404449236565310323153189924737112497393193673545129844220944306503687770485279044267763927301803207523160392336560698865627376647572801958827516092060832944517234250021002421498734923161711862770769161569592855510860185840819397611773534171247535865271982046158822305202907007729198672594624791829354756270505983893883914314986069254105507761633191359742768724343700050855299733732888806502842536603488131226625149314444830894885296392167782788369376909054640152157920461878204313178403966630284719365503677857548528233558618847399540078259536787936511220746389425699673888156294505067078393872200253359676586052299630228555106265084899537891651672935255175480368496587856219868979264381570860924959005886346663562763226350759274805797229799890433243219925736146104011464504048785892983884140359403075007436628991783137953183954370534751223417454220818619134790199514164858509474543904235214770473020275127390123003302153662239182900584270582740606154099361253912813330249986686205463598326769215297374409733852396661224042521562533723549805440952249838752643250442492774783147123404330358826469672126823373016067009309427925693181662686840414916756850180631799264684768308557421552026374984874366852966460279257275511674303654711733999224046465624637338579774408496274123595958531420309180804465890171210016774716493785389040256486326851026536670454107946253478335782420434551148407966006837484097851793048667768258039328331869957215801776549245573087128482913192859382520817451995500238497028541598757630787736805377170275160482379821173343971036277099360494166410464618549952306962521567154658598313375107796173285048738937209390819353513271579563134326679948835731405964911983630400702517971706172194392428954817859371649945741988795813394493316592790425462349506970546473710619830427552967101477107082109700349376121631236920704554555517041832955799667440333664525896884549750136907025492209999542937043139248085869508970122266237666935946709949221175917411105217719818573539507732234952224525469204117157311958247342612067849698811956381969778624989296681826807146582020130664780519631824072559718184504022722433019365695834736185932277829960728584913671493612944897460810270821581022462576945082709104431458400731201425274058357589835870732290623328462617653989925999887305846787479095083024810280589632343782006848270032212634479865172132722908876170771700163941786585235411550331464776965703901128207378762440643653846922703373592081959895664370649462638323997579875130864793314448903768641623408792805390296742852193608630233453885397668233261169744681080689275900454599160247912497809160120022371129729939595343906669887785448636071177750323715213175380193944326207873958400513964844119861008278725635178749302066706194898005576149571225583141655330836190291801923098622439257746252364915062867277334830386269267243057313954044953886285409394796557490707193509241556046709506448290225710896029818298268847945309054524589562790086602414960068609321191006193487714137219120768833834186744184319898129592636595766448795770510960158230414466330283237203229648981427458404947111679256765912391854433020247729477094608194467283186964953244477983617344168656744500125335980652579424202470082390065678734058813894290823554328765452230857869969076067182402261045827308492997589551243480304822755128339380379894927795469774368438101782398531595258213806762204025354986852803644404688646519856845912556448212382402365699996497553465466735376970492876772509188015822826211041574723728522152475203531206323197102982372189535848035588541145627157738297635151214866627323519913168193756641288259648959609671024051377571847226579956937438332901884003003652254515943515977616265236567100896720328077276096109361209048381544254905291782484944933036540574185180295349802700074719606016791213116271236268325332109484737303927734701764511468857994753665536347676123250559515539899642846278896701459605178924760001821822423155641533149856102900019683975139515657709390829171678161806821531750397057754878125929638295165540113719277650116873477502991742378364715677397558786797197316994996328456118349582153564623496097272957456249408665501941812848420836900802622126699551236044250102875367488012271909243562017501198118107660707952080921394581879790736197094037612103037989791835963290873437504043030633056924237400479746945637233899694937176585824161527054833814106480503224259056776036381131036605910766922637744444165188710985725722772631472425740547630367727427046861236859227217902275927769120748296941662407358823359839115435287520937651003400960648222130817566376781426080573010075451062871813106898890937829776575403190207325352310025296242461762425588992275757342516095813863665277955127448834362973357364923822591300699065107120672810114681963623520650264204397958961478604021962173589562302345808305485917127686739731442589047888295430165983148041257553825659140699338672046635481329213601816251783070910329204087708434587299440877164998524433015324554799042023085497628444570048084253504880447948101250893248686468900780190801385788200807012021227553620997245847071347477175788785153525242804298125656334853498343452211353335598243026786251059458053367497986797791764191635535605099745334444155942363356542955069018261295684501923137641824367199704946853288128802873277300922930430241997678521193026208734478482545216695301263570431688695326109511495065139999475732605745994381658597637862627946549441911523064554412780420212555584852319822703069402532061563927130533457872267220769412312645170934854315774658794738686758770509784349662074001632281295122390509461683913714018409951968833539080151440194906691222995693135649963152425120247882387300721096967753699313976688861216153757235641927806628125510064516641988122337033178278646807743629006686717114797777308202368141996056966151220417216276420688811022432136470678484998019163358189922684131434301966270405603558974810311119651448529153573977861967659596179204467978374603524487875213386575762138335450442551602939235093645632301733908541224460908060533648381008866665089289257710346989480904352882890476239972041467157861612867434377475075780777276958506887142380341495686002180875182253672699157123431604942692844326343843652780372705777748631588247051986338518235869815459871654407091203398063919470090225697455807966883255499288449955470597471743127959469004652620967019546411114516317186311324241551563256734494685525277556694385891817247621503131627523794140003215462592760983297840189639836300640008987416892193585245285022799127259788529192966116479625572091440990667953209064359196910297141849584311396396106611190473240848316962048901074342130832717777767126698896582874700280035485084281958232441445233003703383425538372103321492811881763051760453133565007281496504884456338672452963853502287200029061558191245798950679556872824471086764082902217371930869425221856354102202137437272463151597250831054233278700418130958876897828528340854806233848411470520411561635790557682296245237299950873137505944138259103721284896385960549009928884513797051445351427696659651464155617784370009609708671678971298598287359618249736948433486084242330367318211047446052563207684332010522618073727618538849302711345442126493269014885888726963804851334186284046142167040328255597608416727809827445689534644601883205041549311211458041573126600573494986071855389209721538907404016804078688565148570135033587043915405919357479759885009618386503144186363448386631808924250784019278071636642121832918464342027290124904880254437214424193027495661236030591204888185209314313096555782491249601975877364628731313085959471912831707698492942797113766022302849516417899709674890179719131622837969156621737760402843991720600112855507375044407397962573490766567348571800056742667791414337426684707708209070492797705361315460643910878571166849502233115741457973527174673787422064049591313745908016709834874604441687468997726930918974226507588583935020257977659857662259549057458738021220248935252298080253679612492971776448165343746670545950559609783765695499896452092340494194978903324968341239684465553300058568770042771039592552212855691449168837245621505354222162441397729915648800780786955746426928249626098096744831770816592208321508275721223339218220730630808906999659644887099862030563162641514344945219605231168740882475490662108192921299191814891762578964090430002651485473232702055292404327718019633514381984996682789039405629078587562461519287431236915399358179014261320471079388917043162212493331513520800980085481243983581666948141064643624416123420805112500194485833334285946207588468459006887297859180134198489304289758783765801351333609389141444346752926801652922278787774619932736801251992862758103391640357636686649950093276263325740859683431661810923363954459122479798867009348731551361989733212745906135691519281174130126052963469910211565076514495502011168421036313969455768944282485250373907540754920600705974118535732090951117774765141429420442275396738573879406142127880802429483667896123985060987502223417573939006843964153019058243132520972826195380482199975910057282062692999920548264172341144868961130501402253984545316313459332893244034282855403664651930292915666508717636480523825347851824228172461703954209071710566010192178912004000022772808424281261409192801676409796999781471842126429666580047078329044268895742394096986724905251903949129787046469674207611691744477196852645336582515729984123545370848890883795122769802468281524362059410221099715240981815434917646519666480563715638045369146534437054842138859928254477285918836190632888697971836758383283697989881742143768736179836303962400591673797090324877352576902606287559275860644389126280233179069069138270439662728367872801610326449395663051734901461177944475188743475076748529489726601454110529100676616578456313098851712203310267657533116069659727893672026441949516392974902528377115567660194000433982476207924931710538053472124522780369479984432402993441920767092700459670340856029146514481164012360999114786736737009524814042144109543426933798942104457672396378219505447332855285917869812021462322116108835736758341890972068532805690514355148201525708226820926036537597364517294115750501064651096282107868952984339939190652429475780561948207610195250363048854013730600064682240385770819231395537181950485612128555265623750441700536728504149988378145376042374655411800867603834442248586760497211043599125354687661272844641216530483000215081902406241651164355987027100114684135737413675817078410123330072918306811379637218660293841942648753184758725998579781731831792819267770119419898583566171762963164625934287383552481616987823687457749291282730801013109981579539185901835507234416931080416952579699739665916432364546751948279075384879391364191677254776975716582185353983646077377300537746014872273128061410769820946545232606778157545802097248312303243631467873269197638291433131978633522077710145300915446195307538248362467769552079557471880240122021090175102500339921392433825091904275795031745226416207035001924652528122237045770768654878286278760325072361191904921408408000946144463889850644596204175976049941876449788461713925428875968537576195361002225061268797338139220458822041623546758921548969001326060352951208076339185614125389579387253027191349238313158385703647873010132395362684313964516564709646144500529720845194320439256151530366714747752215956125852990159434270814509570821069007681125432757172198685609786598302451871361702423399520972885649272594237669497179421500544317558766023434997764862172107335843131573211639471887088517401717372729638552279997468704838666889586563616444690547202274389288867636090179544231480752562653472784545846244426008393940256739861393989074493895279774782365681638900694957542299176585515287857394569506542309356655368567762790760168404043946031118910744150965421682884007057148086764249760506542843055543997084922814888586472620231454957270656790775159294259661298683905388813096079246835639448295093422235486085924188493682142896971058429476833786344676180659570071930733109300357300426726809046976216414561022911231171250642720530873715274698395451581575727364738703434910422297110377988861170487221151555324014983973907617823468768959433305825640626892126459782622790373428947812505100030315038390338219658936077871789054659293606950861736801237151402364529590281545937772366173204376455738772041847647332930070240150396006898258699091433050023898372623200942992747892114874123394993826876052009996074777476931241178564375468413593003874960799196148829336866234433986178229325295014508362539094940736016945964293777098744667223386552906493017186152102475628936895959065384058790975921404048078286807149823778777543938934875829555718238114985891369554616149842445473843261940111768384400797330584292718445090372920131397729573811022740346966555872138186779401536960728087343763325876478459645617135122734773850603915939218002124102598741860175380318237923304590632664927901972873919411203839061085360339056254545779941863034518148118972731871278607986194199822220272534417640929177904994880536946904802061748154151235724005512586243037772975130097129753817132795488810898900550564885956149732614470467847613419993953952378274624393961527741402303057698030360358019287404966081776625341741784632198313538206804482134573435242110929399021679639545902364658831503814634204240512362100301352124586476238585407499745833817337208693217309015732437058474208743104068514323098721718223941406815559383956228010685905093290977066871446485527971858610334721117006622414047051377040215450192493942504876195389509795782872782175917907117998344913777697953932524906055606105840516856921381763681664393846009943833929623758954510476238741876836129148019260186092806730653246407941502667479289564940190537144735388604462177297744083537357698433883345571408568873874950308633023530715018550269020224188751558107976028910748522665454885868144473387319529841588238484768964838971831862638338814886550544396991440971220698398695671762715983347646888832274162256669098179891387735169674179148383083382688226194963989571785110012550182777400409567820784372487008614603082077213272836813187357616045172913281488727823591920126674940922387667798411953536290032893319427978763869517868509978126964063942531764353821989795182703256650497013335767366693026975885835797807324350126863032218678435021237956969505854280441269802418136074929890434786406405348795776925423055809845734503317749084785230352313683155080846053741152726087072692171888401224159124143340269043302289314709379006500744619818065964378564262548777260500729067679857062054925618063572652497221506312378908938422187656419564130731807654721922861094590300766653744933670100001957878272492837542731048287015270112929271619784105026822396286107364128170191763065745528874995528779505022494309166778630644855415297615391501237917322427467826234030299498520519201569822365464241580515479653778458798137984801925284514115497545198765624039827794279541066521143667334665965405551356636745324735193931580578715498852895840622099292216746579179922498098827927163250558422647117071201726841051469798686549528037402507233619012793251825826980660697172533306024804410635406592714419259545581028258358989524773139649877970889434441096472268149673423406677540269305399254778290136759573961745057505790303267923371512844950081205989768059450044074427276382218276045167002008852506986637536018751404985159887536929023282483654988388594069097665390168599377021789557586649293075257077918055759757982446445591512840388061513606151341321992801927243754986831902547515831331039084483938295277876814271031186298766967836779425728398109821281449583206370451379843087607896014919506632203681767836731592064676647003658194779554524936038332356510830633686928579564149994560045849649788232610200773188011536961955357218742560242932287765049665515357838659430607934596698293487664346300536914363289274140966384306433964379687246849513277093146095630763316565707291730369185221947518261153332268508483431050715691161956237716057336989497506891991430162273501318666187236985842646837523483254311886606597288869036713452736713972505347601220110477768170753201302324341924030568056119531842550451349934089311416360880099610399758942973424152032173141161653968717623431581028917086399351545687002567955879375054787385983275438048203814503038652658675417470577036189508387844638950623956880299662427820431776715601138630090308138767043070590781194405948668502321638549263629604794700607029147144373810498615598957260210154340016898180391263383863556916875432807007431399102129933971836691198402798495399497927422685034989754766060759816514523496298157147325685908467880680467569189511630392491227693065452453843584091062940758336763354143957872735127457640696835966868017302922908035923233831021016388918865884769309244896041274160840532027912818043446823748770147393821542337337330915357470763887332666738774983034037728292942150725563406076454102118294404243389246816004166263770374839377143900061625663461036836264245670152293253560140742036104038690911044082060884923096044018095888715725387984546296195969856235887553308747787782693290426641824692612274851783430407801823202447371999628104119068162266606317503952574233894448855904667205289136020471538614514636381459664447598919672098545711930185072172823583632851862805522720129013332597421183510861106374498259612364364351949347396765850373366244224692633775519358748599145758743632003629550730898826386458993707695927193234951809230145757694005094593630115120594307948493763201558012290484956075799899842908566217618293969627865246294630599624012967362739166553846204880373564815581346087002056269988668607706404667153754153767935093392224212152891758705585800130496361142409456931493604148958897738497359441698676711828654969621744069201499982229188576183208531187241693657690133684212353756661168214651909017955695881060775888459860392814155180306048912323480588010559426409031137229393269893911950019257440238476238656746654237298037411917912920796615137407755696818600060369682555549144599216605205279054326096339822685299085998990522455966770248916640611001064012635435204131529202916663269291465645417906000228978135344333561949185736930104588600852164622000500076131004811617922757898713493872880073902122405056222671321378714343400345870353255617947124710595083753279857877450822347040739558594585477029997109005594682671696462885427920699447031827366851234997951940081325510456888591653390844310410220490210402024486619732808507435160073497022032091292151066714584257674816131365934667828069431170245198603131458792353951043529182139389436120765306574713624130928742119115123814328351949211598353542163329861338109779377562695997137049531528299834611051931178855715934506868649959819738568752706900167880828113770408120213161306948783121774107693334136820054264001315987857402360936296636154785768714928060068334511945913474703033857452290279954196952052886577225614200537180678489846383535222235798124585379808525767272954159906418083599804825992130659622466153830429789582094671316800705093100424158222793310440830584856936861842513847887868686462765858277273874303072125799188503874205332408972756967316186507703622117185565190161561726276408215371618286651928659611881096814013964456665705249198158129623159136382081046661818360144116817082618956921220263159736148894600955988114851477475725152011415856987432021633074813590092848920789954066110359624210797621057837189358036630187767407843890133105241148317340743268210535004857512532213663884269880367187076812175083726810355700265849037995349647304227380135005346253003651929502930732330136966737349016329872567278241871585368870456623754357129719902921142017972963579045124521620983888120112107302437747512119164071921428245382912155751038077084695673179037418628300058454077410087074736459249969834641390013511669367215881652692864492616712025109940475486194270935256069093775263683034719878922944319465074076418297311377065587964179975942056917102331060593854436137423258627891639348030681890596954057305699343229170081377440733129235077087661741220516040759224400319528821980188931896338925520892977721266296290130143289963573688356446479852300696353522804064508761667811568712029372225260323991935325107369848330729845072533251878068274403464535109071864996933871491204960806075874914757990251844754758018640227446996801227061920422958116624229918748092500390518770187620399102644116658476988725668420187675070063340329073183387941888631231606353899035668575112715279841944185315749582908293240550549685582760403362809220495094744811939034002135551752823912826757854097726785923321337871029898289263854516985420843612310693806826751530392041892142006941288833452186577151000199363714562581004696008481766326898472259944431371830184221443746322422791663165261528532577058436351854640076371193716132791700099847644293330864157678907005676255752009383877657376918168913331099278085102549100862212612111195571224927346907401577289763765915193236038877432281396764797639809612164623707390214713147915777242740421065402954733079325118875848590005992877468915815369745763459065404730368627574656132098939951652097925535510951442119265151591106868200340803718673672393847585188056210767305366675964682898920803444876134582824237462343744757609385366150835297249604446575963011001504937330355620176905692603891816268400793683953291888480662891130055559781665071301228018889452290667911009251100265255194370931682948118560009206092173002678857826856130294929801663897045130297903922905554368445454394939721483286549752447959649252044040731398886569194467506635264335984056279848956732176737608997407396279318116948798017885745236435805413409922867142887172453256525028064776861182192238122809202592584731759372667407336423813392593926078887486029446050507442928416113188034245883889200435920086418177249915618802892439070445169580135779943847363563845306623169524387425293810357275725764300484112412693311184948431623224604649158711655258253105084158868412086120373683024024954169861367249297547909976296246777958262248926818474803714409703854208799219358075898164687641674432814618758801017892965597967935461660012694439428394440747680254387590991361285568256654687855906237783383120639827956285390590190333694961179465929462616590359739748934500116203259183331636205172772175218131540725397199428600832702450922225866560161791014973212695607345979693791174223568408181221980724975998296539975207813392648396598206398456955225708113520748116236310342515925367435941139181371539850800877029407987858382780629605432367604699813247022278409555037928370067087217508479533087289403054180000388250239843852151505452297963487389215722684880956351931523348007195641101811783831996539508279428683710926253831957562596806603842720418799886944472603366589535520254397190168943633489255933463564660008139361584954692095737295068267985776145913713465474624097526037818237502711303763209782974977395347438160148099224681766156140235041555677466977521935759588226970211807091458054400413897709030575944366023705686286606035321194368200606699107432770053283784335472561066665490869215615871737298276248747884629258407178704735045011645069005115815711205186582780209512885397371232993843472485867564008903181814178802065112053356549742810790030319729545515576722946070488466196905341998099847609547272605389788563063265864774787324165676870144891293882357364771092446299584548456192887515734571102086486589445278634437777114608236802596993578895897372875220423520686737793456592170360543938816362450259788690033108200067486323742539759897006923876418906814019872946552080380561373833970953304075545268678385266825433912448142457373259534954974614191927875869724137920937181878878929760447657337939279684526989043437646902363801220134460883001166697251180886213001588744864819501600714414148535643840335927623802221259987850237457713991517629075476692005056344306504257423047710825691822971111236092116188192150047825036410721835607133751136710204278955944523749026584763220439658101580665530618267477032881629309224485629548616929677376706410343509987496288801102736797251157037703979376655111789748309702691153745894267774442958445907499585425078460414648791095987637338859434769362332955386916209763201350407361351235671562552842662804050587097106844690017421046056648483313009974311139883867692254599973911147059836164750998813719325460388168949813555374454214131672427122202907773558299838640960351393089583566463963170590616365201770426527472319400728233713794492967415858993024636895660051802561182560620536982856951107741314682525852868519567944293536032799560756126836191874344052971668325030957844998606150251260711658250977784367549264506966398371274264374370712248737161278707591200700456248713683573323314038867914932873685871238812763070993589499826378678005854776094942552718627368885566147299628708985169818454971368791271279513680334906791195014308410908579325802529186032898628027669971300364598901066241963099671180501221409945340926707351445898093385595685973820655738468153297046102754072467755125538097181712809383034048772352706904725139681930576375477377061770216515668266217652810291321397061648565329659827995656226636524907939644669005200376545479249204394996879305355700156252008282873809196969477786025795895598983507952869663426457312896143353359283050200998638601582129197500900581707139702196299775213221454349215927783597379519793337744996353476552849751719702338259032085746692311195463110326705909860242211743940733182581577398824476797584391106384435786208468770705781212570733925051820246689687324182192958362861652531277476538255299896681289976124093518052272550487438553056165246737960599943623468049817713569200428854169846782078392249691837515243102231938562519777343503145175540335329272702311943990792884830601106641911198656425649429836254973374228780353591623935920726461098933339328619545731750299867461298409612057890826930704832925434141973155714042830681415214755173020728472435122374239991729826909116453982096186552788607272280293487347089977544518564642758615207664482471681499649157283463349077575760157821539793136481161562266673697811493624381124026536146026468229664553765239009875738575942654506391341970272118759245710973092037890219047000941062344992948623823005344319649272207817689614194110440229553198867032138974139632288025143566781527331076615142042377784460479326880760383623901288907872451528659344362105222302314008994673335206917452740979953191752314181641512486269872733281055553430504576315170531064559859720144429775548426622860747816801234661393046592167865827905189687867130462499564490617368609476158271804030723143434578350671045179473153149876406485549718840706861396896524585103519650200757574276547800408432159992746800945858819125294423862822919995532267101978495998147442391922151044053455064300023422137578782868907742819953286336828220606681325769575549676292515832747054015232914734970087125463840144294117543490304260380524729821221250793344685935226434675940473923288618855360714991270450360205025151052375017060036958962667517005014755291059709150586335432046311997219761351362913045166492660131225824193552020219404135600889286144193354751523778134207066592131699851695737658199466381373498326442569198396828243688542603371553209469123213639405012888157483568850171359132281609365045666159233664973951810389265513844579340435604673116330260048551776307993622851606375659997447527644852164634173773292172264547885737771835604029773236557409523625179809120834340497966205378481624351774796445528389900413867228166236830878794762448139170867388264342620888880726175491809557147611843108379553240977411039891901019161084657044234019719987569944972097152727848329045235637192400552435548924958938045060023591640531506986097245230774200264671715226619031508757019990656826122374750755839221113570697556807273481876151419510134392710399766413150945897209752225073179294357531972550164115491031674927265751282484857116482619032124397230972917751476566276361056009408826685309791020384255287587760592878329248364323553053757404422665950289335694820360832656129647656312283337709129851684642099811643984490901219821304533609786852716544535648440197064438424517876195159182179612531870109680485426137899323787846288378435263239073638035722735839261853093155267771840339511316542609515635980491355006274711746033712311184758075365704938251820343884668811804722008369108619659026173847160716947938081082404649793712171490803738808606655271940194463996894365292418851295096904162572759558685730031871122109022594078621831222364635765691892586531274621699486515217003143266661726445117286730943500448323455653925227555392240290458245605302524450970564075115655520335508762692444781126953108818542222525506787046079369960788592135296667009180661232746813825636863233015643992700966639973860759886141193086163806846160428326549264369101470704199190298909465199276338931410198955712902102304987726700038747993657060300488298206805930967385274884741249381618837165393919209589720298733827264982795709993467310480758647621775312585999624251932188396036986226565066978244398506981415240084306797741821608836382776313794970648009910610284806569885261408100126622698927396717442545426933283271780300387090584494411101858684579537953211077780093376133982393505231423322678615027938521846849488313633055728317169597465725120049449161289626622559316107904514875890869013166498427346922316868205840214660606438340831848033285125319121720665690283104752150827521872875899859290175842813105926323908962884035863646716468162766694216433571854523168354482481816924469184566092093835854555358803445663756201668023866880377502450677268041633410578972318236221623078424262487415662044386744351925825867291779816429853824258590393724747388658076478834842174976303880924081875239811212680165421092265508646406319810265951040466664498828252272962073174106312483837578221147670999141807286207616833914762970384866170533657278917371821115234965122404867712079389727843945829138236413125263650863543858958960860701957199379407771285164777315613697054881080611039074380248518135424248346867335064393854148471728626602596461292584842028642684106698460667369123260344427765033688706639398434305328059988350947355273206866548093344640881148402646902039446994046967788847969948968162252606175993655779483751439449913002488916244337549254048753518533047276404302963680932701636714690008666137747338617896228573924221858493120661020951107192259458459006270570583545428527429394077928948368788705373428296899927017258215807643329984187871176349627405045032389809215233398862637036117509003482325634716760502295522582907750128130281692917908039035481194904119623645414552110842522811173320916588214030367585376991334466373313021779077243422188113728484978199802513095247259913790101923065730421322092718329400922219248851929732651711116595570008092991011082530514181670388037394305391667264940833647441049692135235846729955165558671240986021414860096983287269782496611508430070542674851718987403663018492334671518342902774725066816020775254372882978663576711291170964574394596522695017273048764078250253442397506872720363343311747432354673480052835820641406678783341307438762270596948810483736660230841576205745552719047608684397809741444435238919432554695855484247911825928075248506254378446665882594461233362664281292494581137047799609870797825189089353466321298819617661878683004238176070449508057835589316070504372295216327093663631818807476549147861065639686459134245195001663300781608754313945030086543961908264649616077559098724108121896614140867538066417856184469948288973139635997428521526523657068582859864726892013405622460303896034691961741066799701762461493108951164082689869640534939262098031288035878230485167117164414428319484877107060643313089894826591618498257592519319159090021786767376098089683278011263566285826947182805521160181694051853823607237138364236668994910831496145641468891161463312346383691643785822500369619739022889659695192651107979992022933069760156977256057890093360809074836488587391943907946789828084896820595597328670744142464709179987845204652072704707777169858611169275141051497264342743333332620965768903751904707285212276173902714077062173356322451757683683826963873825603346634574750515488737840313562095024210361051158938813432507538321839841080256174024704976662351650694436554891803962059035735229935981665381179843883831835758149126868516510841571808784270591320356462731201701342776834309234153085171087295059460334678351146414135225339464125383701783108252434533372823894179270112373905933065078718211706821967863991326721584338740557342820929096571195134232835413710472262458334321918403056411745230284954727675976267944071113379043059399529629707688770080394786914972032086667968744010591741977405359746401134954391796810889207061066907073300557493754577591720911467425634052435975905198244147416530178263834335919917169711858570173706871568447892927570520096784080442241598254566036172543886688118672587218614758706607447929545666852648078730528524335462285053526766494900730009308696565811585274169961312465712951758348074973744002370233283440111509126407807825986602980412822085315741457343609054612827926813062229945615342533763384061425354404383865216688068406558790090495036607196525071898533854101267182471134809867779393425285864299061090717009617794708272113336673909967392831435058617120392026595558872429230571432952775075031182320803798572413314016735304865946515578437676716140260638466729463457916582119039771344789842715362827871104928167467018936151088533354959478784739577375014675073385389774815741369856256676704092588872120702339804512141197040767102841419071539162700769929154139033706557185811382581580804765877513500177230953341856540995559046108162973319957758399635065554975940965952514926064438945834344676335145045741009442384261697515827105518667960555744020982216602635985321467508685688014104037702019797912103886999368178114726773288626999205133078979248489350072116960681691936064290353117922305178736698714217608218767155637323587786877352798323223594682007954138403045576174881845405676239163882398422175962985114066554999510560499595639102438029353874016383455704057695566701358410380861950471065738444578330256453518450825242447404380785313849690794792660198422683526899607082200153347537515607523280705511497431105890780211440069318000349937094512206586038642388865648577806844235459965778586131149373166113290057128744641223827940879359943659096794345095792655026734560500995483703519968302034076962960890166203033294605781734521962054309778415075971981401246606221723445435408259230425572178695511829962250166322460692769666243570294898425742375900256475266778713849386085423117422302215863558446149999086249875943733814481800432261913133817555592945390083309913634810149162797199830259730814148490008600221086748076034601051823158156776618225879893162821901036928122639962003686833030583443363142827104566148833448751605985673274151957965885639365825277284339770568215852504093995941298376728135962487653698402662837031667365958112014191606098479019058684876971623002080186189355375001599841317771305866811235408341765353494145366509953360724735824756022200627800639370265982870603780156309118168796505779164410664658634806708243501122537658670245346732250619580155621819936160796305522715649496955632180720171330110063478032805788268303808358276145084112775949289767339652772762432386894680826557008163670921597026348247959208497570753573752745068986829975829718250735297706287575875333862145282105021190864691020103406499472703411026320496671168182032607044045246376884234205049291594581540006844797538917139064366067643312992815064967380453847615413046638636029514707624386031740162615460127235106453909777091886240155855870267734919403695790951138495991435992739228041543186294301242498578771702468611394199291998246121453999931903143387775845492652352835153497790727889525063406668811166638862160853589305330877204021756649323488119233149556135264921372384635841884474376849088433946503431468230786958900497240104841948629171620361173287976404319980384112665925933188996032631972707548362116780123891039035406890165351020389843919789511023774652307917429420865168773306057297410775491424139287520913668622171789663684822058348443524082924732664634558815239461074212989839533279809704638303883609918110608089509716460394928308046669450500650403944995203731369376828386188898929619528210438961379506519427730417292598850724362785967222012920211173458210483676696313177096228743221451658118810793762070809402547330611520154267603239259518136145027501232188962988417831851356036419868226041615115790122416889961519088822600529154454149176500857314562777631123998788240272600714411776230307487292585489345827704021902197507647450338097880923806342031458659830252614793168572310609292141770066770999203012519902216123517138484974744116744853069968644181283647203696595619561743005761834232444179878864552744110639042308406528863311555023777762536311584945348894173610626298048963744218963445301947950287325907226856547340547500756782124995243804648538782789642968653279845872450579724026814245579853483792974248251709702131855747264731905589540574276010650270236341614890368092994571740608924394066668978603881539254563305749989285258048772332836408198619051358881013719054488073336119773233604153932251276550775978637818261892042567235217798464598207695796171249486924419779409429644361773562846894565224832489231298873772652957073016830687998802000230075480076922177104502867242437299037794304505141062195837971661658631938305492119374306845880709025651660846892500154865565958714415707318792614609921518073679300630342811906399574040538838869242165942272491046151176609645281147648864211714127233625524896280757024617306546887476875609635122037932858781123256876768254097696676497303767372410730208350437835326929801988557038726110109706541564974863206442103714942336832657668354806758972764705202861777758528520645384130139895209748663449562221799474763732848234214385723367571841054302692177568002966312159948495586217728688822980478428559126583328806773575893003144470176986456387095993445946729227496620271771803418067449421082584009400711428996373225087926121034837429552504767202081207006148779304925793404853331264500575746167493347016874146836132829068398561245653096655826355099900795971630489709669192908282464041754545164610645697072151066472186484930488405950971391830224649096307280307383572494120627144498882104465375247129747132765768154680969691075765160697175009861259226255011946547168583196713164984531806487718840414598999107563962048319711823553019436991878889388501339166367696185075786455139500041699564748933602449470955120701982505153082675904107259850391317022659750108881592054386005150599398100848563738255722399267205371114843718357962573505602748221098027461822079296146545402400686635960179322381384661433607587573928133472306682704774519093162762926132142028684931547344642000171995658816320711043229114805868962691512875172406515601463309680171603023509794046873270819506800655123618334716912752206163815017081678406907365241971314645670913368510470241353663953345453179604652462217138824763213307776100324951228001943879767304005599694069890247003136058786561367635153079478311170879089323975846093320990996295713331885850345275351697938117053938860584003504683633528534629624243639483936953575905658999036155344283366349233473216388322273661362645802848700994633905380660149025085637613322391810404988934617981485829835721149586455793825942143034823622015645524284226230216996679090245748279799628417063474967347917644119139994689341594376166121899682014048102011212088600617365927854427951901509290050136531842189667787136105657154869871922207401136506715337671565108460000048835556860227812752319661173570756449790635605214191756848047544564938636966073752570124235910881165993450504202970106816480513252822223489479890182946569442886147021949982791293921642187506593747597257948102221637147592324437324271347219050076532706974343703877638478703757990248098767015933951117469673743210215852738854286019102112783012175626851327391868027637216076572051771133249692450477460338757273518453642125408478343188064162637701408208251345264244143669079945684404204430323321070790255213966106190198730782715868011954587094491330533206751967631066464805914270133725421910051351244270414062145071899240503488504533140437777643306333657267809402602620776767443441811958025807009658875574694422997625465497117933102499090889260881936755058120715316002208563791762893991860777425542973021326841227676599196210661736453527250858389175860236083331830792136186686974572318307313165101720099085071099966770617546506324023351751966640219375905014245931699357178905232979256862522528283433630879191701047301744255729678476199324545275627703631492144675353022539452916734018514247570418398573427720368431035348240180215621536640283362072527726860453166969048581535068669619452693199298925665282450406481614947239271742213427833065432464477431089407697183687257806170496279585057571318790272067584667478651914608842467384726144541796368195822646685789144685383785717203523240523092575164975899617757823904650870458824689753604873682006280794266887461188164764228131720953727174532499180050460434192072657033508657637748586859714780433125973700268962953296810192119042116573244842912916239146051118809493466536775055352181567236000174172431920783503990573274215876107266358345028468382869538846519762091470890771131308525205028413196010217666886437639631651401907991845379864896835150416358059776949909292605048958925816931622052482118761125211758217024767777102527754297843121626533080295088173069296734987480823103638647417375072482018724942890648736478481282400329042988847506267107127540647680240569384962791696000990969206142804358549990846947303356284823701684688115887194973425780602681784114339921037946269337982040445198089201112778626066923605564041786498803422086627757143132016616016457809153994323172590550819066029215896204293366763905048315134193126299466308013560580191944128111029444074570131391540653637442323061761417539515595575250541679308945950333084142497072943606084730035406825686969893038735832307891618937871540025479228191113640874284529718552930438221891484803631333959676766308104889427981939775412310960636385619270418263605973189994216762770176306838641577467490061744523244011272372370096814442795016240375296123431979470198621237335000637610983525543960186755823807817579377778894824396048672195218908988060361397222667038450375132053504382341861187181622514235214941155543103061981756140482908799023495719222010120845510711346540626646029674918682050025065026191592278829030146284850836732352562782558654092593939796405504819519921476860592173609399718264563829747872364544904972855777329197166680970124201802735712334171696364116062258274280657716307479121442651956327980799103693492571291485032121680674930104363544428841398167836487891762673603603015171114649575004833595238049128453948333193579501502324550736573945441885173101849024010870147017296315744406597240466636891667049289768105358570726692201588232140015294835305709471027583611189213844073199039661244220011911638441670847091742883567282478210687559392818043813143559621390144041825656595497527621678270207147170955014166693006270483314466405292042777444799612148927343973032338581042089817348342402048687847122281376306245957117388876609000304585351164161853049371189352215072719089902522322141653101633953173123099915273438450448596427247067822999378735440677353525790142640980174904493883350091959143257256262551420569211987632019188999394463274472051879140363046686181351786495768483569871330638154360172690686597214501938146530328205566368495674898407449875896017091976606356302906587796383738540463425295147000580804950658232127112570219189538769518627068258808915947196078521260953597544748184511811382144380711891151626413862047809801764179307746156044271691176058250559162113330905258213089921505059043381290270440985234094646913211888958290372797682874954020743762062826367510955404176034976516009205599889573230413848922527434761086765654699967104544319670455576096678124483413072494245782306610279215773109835799535780395652998925748332586929476224316133324352745759045668162661435121437321207414342269772872079825910083615035585802966714449652372870809815711427231125476696291455748532762888612489989655036996486261855697652231006249064382439696657197648709198338652618382240362917670006346578383471434982751676644508214487932865903461293571147317996703070360920155266423802333283998665586959946386024884003195724882363852839583975853005036261716969619565028946535062640361262120539873076705921689756104663209255298128338131509742378609512827179063164713946444645938680730788142616614348911226526861659573389560251260768241459054483543596377733289509439336388013828838916397207984302469232519662087730603791831404854276118315815404474498950924147566237048462808558938432568844004665786729102928273807854204435284271002582203250893962233960154583915248261095651173322963872565118775530781528200980772703417448553734330087084457775702024381495624737255355874527677405846994499261189027828105220047180894470068846559996281525685775446391766692338050275587276180525986784429873136331529271146175806095586195862500836792237950056016987748995800220498269261251239154167032260419950029338002047140180360333449263415953009255811893874108215063321160305290451917735169522477373621283370358275375326294965372732145335345548058988326664371736825531254229237094598390200450628641449889073290545322362267981705957101175714091756288664462596468215947707875931950765193001641522861875878265285928790509394534288780322007321255467983248846031671573393508569049729029393928638292591061950578949119360466107593685856626410713089894083853727732664968952269812928324216673951537962561983887254388839966585718892736620538701610135464189154299295705417631005106806739632854594679887467527778046669477153245226884451184372752034519319356399143402605614847829970905952480211921590808773901417849614964289312028229250272703869941576667808997615762742940473016241658481289278735636384286164743198432971313744200031525853512312194309539537264265278823564851487134126000898963507440561152370234030616283037175769748621760876778770025057674894991629202649344661741752084919276080787798078702560337152140371270372728307981312204317948110831898444705417768676498318056473260614524075646903198207361140582876457054554194006025774326964446224839020190341026035618994006195532135278276539704695197637038998584518758635963406594205165301448940404423733853013666153121527665150681990048412417549636204666926118007580815076886163785164919438511509260452331209977395454677190529753680295609102019935465984304300351194343351140948984441606987322794281953702428765080632195728708265879042507963195810422408020016549695012661669424681975722974103257275147835992438982443814947140815192473940748828908067738279034136568533357300708991372944160694749572798104474629177873699982664961890202066948548202753029084472355796576119061706985515634565675521208020076912286977996933894861313862533292060779577273988592364356011893098242535572544203242623382041510931485159545299359173785490852678980769803929278280184879608999756118892353908485092775333248271571466219700140347533057954779021442890670641679613817386536664198512803300962963454795802079598089101185030206159880843430139914035882110118044067492365927670120513227082201917449871672621274673989218932583597640044843585513518504987455558734285831606369468817475757486445478473821314835019946850496845226432607877384024892689871763662455460936230046110583382876999769069997114248337208159139073265943330693661130725874258933887936347216901050538384319303401535407332590541910519392021313278869977880468683822709718620252966353349760083271393648749848907269626619860011778425230075317287556302595390222592383772952909241995316175272324352077301627964448668673831233110679280561919059748881642127547360947387637615498776094599330186654139722228059913104870791555598107661672251676599596907720839804775375797526760860710278902391231970724702242872091710630250577625922656386918157689354250376276464938139765389280170292111146557692316016880679807414867982675658766100478632056172585775098438910925585398056473912960192879431689783305114298104019604988564752104911690574679135764280791128321128546406864015976340236322067100990005845352957493663780725778177527795720816674034529783913029268485218164301811886701125947760610566324053451370550484753431218173792397941255588911032069256267919189490437031204310168732439398550866602795437118853672204261490607152745518924914588558395214684752678945893235207445175666063500567510947217370822913898889647871784771689820050627313175513204035021317379218939758778234395925368317841603515058668516020965305064621570984557576974631359085401600365038956064808467803351218423294365693925674435231734936486072120067202178520898318351440293469584013583658350270940882465854321532349920536645102379291678111741224394639919009805069704579997052407351086509401361862326518773191598856103240879471223147766307211523455352696904981878717144333741391724462196421318358393781530905965179319213464912321835561857554960699209940843287516363060764364281390410673756213678802421216432414626846737499030045529683449751253698120920251554131827134713235681577359227961113862025766035791390776132606993817319250665733325394756467361427550502438302970160292186967454083033364549377121409411624188328525543461409279390301358613219821023600203790624357207465876521155467284754872378649069359141969128203353313311954076154893943746504865863485613869103318726655615721475418220679934656792492093838119279300117573436436858164541542646853440434134826573826355774345328473350740723946157683914483183517925420964849950100922450445154332325641795485409244474310948643017998845832225322796072331558677101103597785038067671854168197959767823845877775399519134780744343032708807689183033001622800378018063219197627797876510691110688916814975736699883015372894639939879481184828765196791179373864156897340832071811712390543743999828670497944689365579085020879516482346387898221609310204415451889734262738707494094688499733506311395882880254582533513581676202293105969469543509083001469503524561157099647081240620080224297332388713143520981222970907684329039286519436962559012564353528311399623318157913301244446565208914591884085394237841814607476398189902762740542758550054571428596117588378497887559332722470244340364299103482301851748166020630600451676113683472006786792833591577586923376895892055851844847107708501594972381959380486869129957660253901234188902132331919340737603657736360231777920616707636780371676934833646987952103527274291225892596697693830889254360047049351846783856605604700909851250461976987672705338352897998300045242967938013296957529453316138284723379162581383737469783796302912313472578399792260462085485378355716200099582346652569239793783492866897429006135426906860993079636354944991572103618072639764968405946773626452195105130520358974284341978544754011793609459173037513709622719737364327639879220199772922471246501400587464654573650037692618009772861858522038435500070709921222949597879456512927065875210896257005045006355714562076714358250512438370623765407530768851639290841726269476824410668037277213228612752862986445363859463668003565886841781179520219330432891778743324166261190288024925023284702884890245114043940024390212900363419663757405259141976188020691745650171231450603562500683383986438348127345760498136427040252477414962964406360159560575138107533336401039391043220280445086748508635406824780264535886683126022395819375849764142334674516138547853141311914013620675043756853176477978572134885856329159656595303744729496176248605230183207034201450570843103246207586503634119345760499413593218961862372178725237491147623736670799324681843329429840004570471163932072408969351460953963868593956608695020877091263926086755844725473915272942438800473236371315552540740623776956047642561387382030494675712824658182406077137497394392046885930813757145810356223057978971891263298190939211512887161410436953368299986236084221823642797679344665411415374482463679995024341223152584999508750888985216655688474663449396763178902308022781490641180397499145165278346619451833147552456314217328884028785425293358128629269827427929578542691065434592037920607891813956911088376809890778243953949668999654097252603405198309385674651603119488283354585240412992027865443221003476672748829027191986577795720134049293209404430750248789715649430286899077316104068006706098753634939194345227160669937359665618043797783902530809084996169991037562023649207865604485420776045945581141740190072367770230939467579354488133235262982444683866049873292946054849852690703824657871116591233224877770708602450899676697901653124317054956606727882037133973525753614407906378393132270698109418140340799728399511679980987072272224813209378317550117378871584378211558001071218347101909453964777028833782827785792715721428552886127548415449582738246265712470909614775105153726216225088617721086823835718514314914792618214721785627580456605149409126017540510534317122247500250512648125348670090968653837990446878327641102336100432644743454794227258975248191313751382130090254329641637742982959976253333045017526645356478095367146390991726846544737940693115534643201130907972587178560490586036463318589681934064593595657962660305371573493170871902085302350694329271244924846347987548188387167504419448247686077499350119718833124068409545608375533613279868638551384909350485488566859732710364085307853170167291534801212723878439930856425828392355208612040638078863137666476667489011272686681247690810133087426882026074404807020129854583928478075805459595656522875301201807200466072077028151696958904021196962185219626664388678752582037744540654692118952804049058040747539582839948906077709558111309190339502751548023570147786848493920575038631019315133676501941500428543570076645976365225731342983147960059339752960529235117891441987960434674513075048173564401425885521181513363656986109392855223880937532843690669146322327249176090952135634672685003017029720596316760245921565216102378913959883294043688633262460626880600417922282820893641647136047136550598846734416725226682953849108435102096908452895212656996143227292936312015068124875643991108981347012780851611142086346546602053052929496795852781266490200115970612321876525551615731372088877189396282449181644469516265680517932340505436748317579911094236146661053368080088297147863078315610979024076304822318765733685041551004964797365098649736453072996163343953549489964427266298265560690628242334679479118525529434365362473689289616777039568704420344591560015055298489375458806023146330526806892781649398868079343180186567164283179442503372213245294886425368361333972366032171513090788074188802291239561415347197002306575372152437055265431180004529672554925701483487867733003404455652048375403787359711791608619287110172399624483114193440308726249605233131846825267098285566646932615006484842948274117301496381519899298477169623780283165690895115227622430663751180870240302960027039838332784641172549449610110764671579735732295788264348753646031608342971984465585697273610134361420818227638183098833103337954843112393253095600629516453819392770395202825508238289635675123493478047885332311426617474427939975664003544812773229376652205031371325286695027445481829851591158516500933514209820779329146011023794210838995266004619448805466339447131892428839774966002638702168695043956165522810596449234634242853217888386758120483056726155677670068136599827122719683467824331041355158402969925455409919170601867922658965328880786592191702449101021842712297883999542981708958955540836483740867330527830933987405942397127069876670104769076985655665878555207323042335720310768686401286544800631752353002312103849115046535579594648005237189471062790763147294325102000346810335661980215764203977051403408455007127620093951359197518258727835622984279751424058201349583674562985007112323181015049974276733489454974691992912967979489053518912584399037820461758859049007479661498966287442922254848166920189554565905663080414320239095909841262608694734482873126451316833146055276139452220967988678462463860075255332831312226413752635525647344648883757099150913123589164020548789078073793367628567806125864234431857317682982385131430574305938535083826042067893487948228919941211344574282345290602967881729658992866679003573950934972714334452447913413372970687687371911184694201736359016686593105769410445427615299163619346116115467052400087169750670404490976118784399382678546838629255564975487777738571311485334821026242652753451901995258360856719606595718177579369926148856184539779708479939109177562658770323252147875948898883554818940058128207218430358259405171483911673459966813300829657806131104487188931181466175323704089172074858902582101359477090541765364411319625449737824400886814294190360415960953400117920654598455836924777364021760366071236873406013153580581994763826981430433583415069254620325155889072917582111468264778947380297338894215911882930937348031982714520941311899673005688995788281747151606482606668031099113819896532298287728731992544029819171314367979245845774010170779660382314998649663201239842593203153948259136742927260254442061222800572901689707823942786583213655430740470985505461043496817754172946548859148095773151312833305609043352212083482384954811472148334146379770277201926142702416944896282731499216223221099805941213627924403709931182695149014001502125567064633694360381582821007161213062027918649099293273622040830831118643014427593023255476004242473321307067973032564269333074263312774460811506564265103089988917209882189682696451430030023681424424075296003216806187262008075636770847041204912774758007743784078753012360942269739348677930828118479949153716439719788775985896016953877893449940762556681798596481827218914448002971226029079180345568762034903393541399391045528106334628385629149975723830675627362550950407623671671214810712824019804554454678654408248615045399632832834409540095543259895220779414172819376650378594059270096084845969115878432099789537159480534730583598226558408445170479654184673186396442096296637654181254507418033222739148180332009594181371000089489096326204498766349791043338466193462453091696757833099681801705044533763669583679801653898884876899402298373424091742680021532185518694764133712770396299330274149263616270456717183644656793428012962070606858052084640045921464678329418784466215514776069751201938224276163988675941520057309432282716894380971048947714461330980816540346575212055799657781636566763334682821743815583518891590260317651933937149015149298508220599796457427973261606094542124418599992173460567744600338270693163704673459481751971784017241015214476346372966543451381454388629825268289051131869119355982784827309875500043116171928667620094923060218490261663147453815276869787754678734954803299219867019241701988128428236947694684427730701479964175217248840529914375959201295106677395333998530682903897952792895456910189482858027708890188774046349009366610513897774945424919440122056769502432604505980213159895156294271607043653460331035336746634917268292247465950097930402986711563670344008444936731707688305912066550461939371915558062938639407884457056429286649866441300432907321650997838646947472571247137341169629567660669944601143797558742722444496583860219080486380765777778581211826127217047349337648382544331091082902810929763619778599925092937087969724086151773359157576253390224924125481242952875647462450599850814284345986185641931676233014267098238946826679685260025961037418093162143484886303154572448977481031231387904751235282526610204147778348612281256970548481111433172084150843612285568168024527768986731540937356747036718821100324906034749568997738223693780154943680733095472658248692468992644431410705642859621789736310708560301394622037883181732851826434915423814756516828048804002476838213048490751443023225992421590661618065549776713890532538123887824919150179666150018074431543820296727782885555904460829006456686457460016411431293377550590833784845900530410101345805837087706230513055107677574055540220082238891396617387438523472297363916298088061235023291072278918402737252205395794787030071895470904060197343360145647145489883317025061480560915771486014914757670334981886920115776868392579755790434401540210569205417374926909390854324654976936741131845409456865114948742344052299059140625724511951845396443890989014363101758679882783319468888186241370787991834511288144001726376783547097496313214567343651997996260825473104876694382652732308352201642299987109110755664350156135606585295632097428454246003883054972372531891626238330784364343186479892344264320078706290911374349399021195159326355252822201431760445014788678731547309126588974133987553001385760566107026014551699537478517835617267099623491432622488413113407625070061586816266121109164640223154057599759122063022710308445893972193195568424244483455007814907772930562806128251429807369790036245253363036009601674090049832188282317510439320312807621725058041069061720413735524029672475278754884575142449523378710287470659116598780071926467442439602027779772883116472321717320225962137273694334345012993353875429111895315756009742978743462652067295934633367339350046271741957535613382197298075975120214037659136266406849173564138592889248005941782071832724245685227124388034384816648111258833255736135164379600656103699358935510626665175225701912670316085822726243626562997237621276437586711569025095993240773897380315800648089005088739679102002575298203312123345751500863043390765701463184501391238682832596400681762636127611807141299166821406499348879439819615915259528648499106204063001161706995891255866676952696718949806509485500085472729773101740950333551745024720968731691352180024561570222612376679426934695830875549747816050073019353758687848882733316337692814180901491975858104318203143264618947945343565084041399960519408951896407998620928320339183788320593873725806578423147462436250911241755838923344518435539696795245439714455868646233892468012610361292942351832002289768784755641205124761026208614373782837789228555327123190368774344163590182645117482072092944778409973426750526984041199888766359534574270273521467211480602655373157834394909511138584530405795616279356319113201803560805929081479772985253322764309892115064646378190386287532103112379467495619929143622846643441658122828140472261830769736459491715909108149862021307069323762414364247088524224556787029933097271932959762619444642689322602450099287921864791307437673267270797805868822129759105866782345710162431582614132732370733309999889837195006540029222599267944699072852805661783419896625628107015255072974420090073778878236353369530121552180060694940328316122559892077031078175991116961719860560425333120570533309265361275739865585963003848675492226660488079981653830613425762810672757318590499175999077286866888081307109522614006522967398391291779372376930310223535491416126957024453850000852438337319680954728215275498577031258195487359610621073194820667398423839366593718394219653503990104660461436200463113778067846145132276122173866668439099721911591527820846916437222560930536579735236502933220405372764105378424759934720225075027711475409637293888867556602341873442607421016870109861000866132271900340572598800682205308297116953739325433361682622620041584956758778768739632046672776770231058545777088428897537938528413443007553725399882198843877623302293589438754350985192880099432638885918819534424191169454171547617594045879347380519941341254614124021728998809485663573851683163257627263900555523902498028462873184652901154730806398023115222727546916507592487244366827488147544605405354707200859583576673203038594844789114307045886056056919080236781545442798735985175231803525897309294261242533988037520940170825859064082558633535741574578227555002961234208841815380245303034782253230112353180095883616030675227222978204267169249959935713363358720925595822867017418074266565433468561544177138462549862041803011241978144692351686924704716210167239269798344962495073855506990509327133920362184253223709619876740109879191498168337479715349565461944783313400480818375096662547365588213081922582765914531702697348592552561030988659316576964140351169743849677935425521246447367528445400878129131581211211965384228856944939781600265855898982251097688975038377639901250233954824527150647473071388795643133389562471187240305919943953773679246190619348472403593330117762524143945834026906078406536371832936577373024418951372761724113592659631721439292970857234175729402916048041686507706536322794149656418738242668815741539074739886112020054508895919328661436080935048324035957804343845578340820388327817216531868054875607242323278787208385081122377857348393746272580410370277729618192380636804873229164666575922400043521127429333164442581010956104633834612397024163053073600719556161476822186731602452495029855281919624964543136045495129962912013878251252750663610747054510815617449880050764930484308768815723309622115912367555656997962864580415518189331193845932005439251340906940757632241339993486169242699656301671358319086699578519827912530090917056209758360526510517653935382309434346091230907105320443054533489200082905354767119566935602404215373354424109198582514779697400529382107450753883021395410119202374343549688056973152436378827383904393378840733567881908749528728233323681382044616925790779285983119321513300040175010522054203039480461502881328683440988089687005572121929390653980868554235989396016197710447242955371833265176555238196666333393307030377389456334538384346786493843602004947279330654887049068190436067693645514338986121943910339268677944784384378038807169247854144087285554966829774665830096518412217285211573631011862544702720762637492965837920146274894990632388582335014008191793193778458420382569603470694476656953259959741595268320673745656799753220075785924351226494195436482655553046276580220301511013051038489652667153308375966376791075458595408767427190531584812993450209709081673545875319676470132705516606578146621619579854884615047473802650425721900053612791468828118253768065965897569718353818471860649531235658937694659997371228129391739253571924196442586704882854324165273113720681673670357058373049702635303502152818236976726795346169064075059163462676030480511210165828310776984946309593837942824482756869184302763525627262153363731489032220924518291825847841563745741687846389832143693663254374130080405561468709775742536672304745468236877550668501935959097754553768990138303111205823845596591812056158668503609520485181822157679471189765886937199223721165810075973734417223961677377270979479154733420432290324442538963458207676676719656092241366508685004428019710864437987412665941807958351840968059670396187491503466558432058797683809423074834538666452608788053870497967474259256221884082192601362395120543529652129914625855292498003562414985353372117057170375039036785818618490718144258529777072876918320028443360872792239867664937326117632928090875527376501153175609003145992979336461822742381161915295004735361971952539741720498963932374798584326241441033788793283006742734123016432706014507964753623313854905090458736786640450746278581962581894766674570582958432948650294199303754060230123319443940818336583120460185788057991748429827794817600633480484992408783438365013752519132776570860009691396884457921103450237272959539444780062784243770281579409155676560191513147993000962565220476038768669958283958629878445930470140236959394087576265283903593848858139434461617858066716120460014108835084146684573206182962130136357447106980240920235401492105246794465609445395896787720829491809043009045297817142563383035730225048731077049337841536850646983123403818764926681234921404191452666286394691940446757121370502191898354373200536517574426942163444283622585349735052280065051336420244963135577172803354230100398861898382847085281510895230486698609668656714827130582354494877758849015256933114897275279318944901424774641013234609779404006758601239999683149665594371774309611227776025043232896225919868459902033679158235388759810879581444448820087924242304219029969633652579587598003487864727124236517501866198055133428510363621347737941070173919552075354030668712514665936845230942305452327195417517660015796234267405758607729164859326361802773905063639831594926447132692572434521098628835595303114313847157808416859313443436622207444472110245301373755740412854166915281324540563211587949607607361894699574227650102730432265872841258741062163461543821799657210218514425933869451072593964429544466781360227224238414767362132381561695706479070692670492119000180792364713365229408149116944014651262907414973524351873987850819855997671715036871824608074836528582984753897534747208845310859613586490540648119641860795010173229973078003824296688054155077454532851259313728939636920293407326755005252923050283528355045697779047297170511352981912228318104834933389204755321991142013145320315484903756922978739170320883093555003516527849543756452058176390004304862949390230797140303920050395343966727066106421161978031681721673899630943967289662245866013164948164391131738054364211601352360819390289721529913181174894433342832379641607515495839843971753126096928656026345144790377946771746315151175682967830451662213353159318153047997930902797159384270572887989279127699746137102427932683473924986323548026574746810189189486069072750948503241368463034183071421730809614889244397028547239596935293772619166685140384218158618489894191717041370682702624473214160638285794814750678889352716555267189805832925171086089026277706632613714812002332208908867255265398362652361564616017952010721446051463850539636666058424304770159702700529638223859329438586033648576903306780302355222878992088767979704107361164266601207022535642474839234309318149172085894123638239482205401306543100211939272780927293239090662017775023986008981824886320065291698638810483079003363213502126657245671212443408019269296442661064754237970700627187844631268265280135636652989859334583070911465125244445129645980898325834598808103552774176693028471035515200120505149480676023391412567708918632662852689477208034561854162998750976835867487831753127106731523338980628718354314570128556922652622454672853050025717770493026824067896213424404469437343905893003320477897457651445153933114206706834778509777706975369712852380523673853043722137253320442709713914808808286129132179455994265853108280883236019777065465682474112482745410833392855051995219140114899367306342212128989997626407200208255296219852667343932953524310767672494842538881626070106553057628065894660202543598159425713430369527164450071434863875697120002577694943811133009847803211010112946740804446799066599384662734573375824805363439881404572540381295925820852424453048015954040848190736793068639711107737431751491496384156695201989388042902511684453825613747993905103373776794494494726422798658365829677309803095424590795607486211216235246136227389650016917858296794789126816255649932061134798626459125290831043060051827882743336153617482563772389150192518049605445353320956301981745865864960686190570801939283634968284096999476734117653686392835058972143465207349763505260540047475681063941924779830266479911137381591552749424233277973351649374760030277150998014828890284476233297533314314257986895628668868032113331423235799269223922188867956243403066594768486265390757790692274669598842041061094135971607588159695984945635953573718816476638209111555128487730968918695182644610488358885226226100301043160147743156350812357265545719204018286017536117949256412612660718987427448111744532573254817639192883820204228127318713388353367498523236793781929288682700344463827679107652281317917108206280407085659924341218997271710170032619242886005655581464351305479763795249973992014581013372539244970475350369076926006705070789509390651972958168902551045092345326258993048873471166932888283719100564813606083403440981430404025845669305564364032164401943560413467385257587148655520362001081854478857396548947436797521773340722044577916917397065530917014720501744971658641444995665261098410439525042129468258090829863824014279799516701081624280759171910962574708680147231192110290031735069725403080129141896602088649494903970487760101389562227140199822170383386212847158602456840519634270398250757953383376410160790256789841939507306187648062529057642910809578933458776914859654348726595657667005264607729517897277555497708728907500504248353256387146220209994164397105721994560111135277993083527720576892274665037992133728763470376377968894729680598095745114390957237594944436705124380854861769345612812029380708089867720453671697763611444683583796599786924503969580100742829194443594992952400438637751274789681866860842365933432003998703429627944820318454545079863962619432625995623778090979608103121163452900523678917826897455086806877464049615182823225919738140750814392028096544424730242217657386623037813210669128915504316144988444774037391673804979003456261237046378422362316079655507077661875288275030991842022336503253227140300959794223421173381758166278429917941110619213762094403864725136051819587012426255066645204227387518035031753445656816930429838840272709880304257986176064270476969299029087042034428521968329329917766911861301175400962698214557445392491200074898737059534300701591262262619283169647868711944334681177453296587568777386908375416376526808680256501952009517450303094156902794081986107690031801655125152774786419917019372999776022801746413159033745404822693315839114961980270228259837442741028378020124519804924878164700358208018287524177156594682890570965388845038450029560719617263515512606751666612207896168952213462659880140065637447888383383664754692256504259371271335918006087225358460863137419793213448508088066465201092000102067284519046912794314155338579478800309959217974857822961657479926106363449011546147742162703854325978769820758271944221596621318623501209026537932562380614656816627054800114059357297227017676741410145324323059138257556253739729699535232112029468952047413774413831190954295924525037351583765817995316798170468947985626817393182519914782601026727735878860919069000499240628313939212283533918234407629439188384332315248406916047343301084355166318175365069611054181565372846087871562430178870275112050612911247716253134286272055737386877870715274985091724461069922343333681862396422760600857864297909168890283912543859252151045995363287728232099168750957171020188975738660335010361998675299393288758722406884362280168537998463422929555424779532714327766611509065294466682848554487189263984106988285519449639097128520737389949963042832485983452882702700577266026245164627730561269316974704009809384155303917203969140759433338459973782923816468155965181268326364991190311161105092289992276907244921246119909241007360183932926665571158223524766685572020569424409727133965292242046429220279667839759660329645249650087554810986062803000894423764711680405630914843226027891115616750595340232113917524593163653202865565788574154401225931464802354533215838186619343272374879053917130570832999533570232611072518687395125033227963955687873596766438808282523202556166469207328790407268399078445497676077099837152154892743488566842212805246691659428745886644307969436901661432441863644848520405444571033178713575853822065272071230319972520572383715693241299010143970375374363976239009143103751382942223182221453452717244718183839540665913733695895945490922944150833111391641115363073828034737963062187452892704182831490167963447427772184570188984055414420195521982132492526180821224300942157848641032462874839685047807788015487259572028447082420328607979329515725950132269161956074492367767891306180564982135493140868282876070306664742763085661483475880850468035951617696962521491413652060318970221368392658911269073111732624589507208681682309007277680402991592738011531075688589893577447244700068567354929064677389979724060030425907893649822992030792899935849094239340577725720917416710243108663722198297672238087371186707607182128007889211491602815603253124940555153659160474996080742356016473417815013206197544569195577376269993643939393543527573911515038327594895717433688475355774747109068105501505318269153845359450668931243929926424160812659828955827119726285629056922748490815672945243369676693445243715718512585148772520077919164006264937721940022056000130030659100675461313372957691609046381452804907693911073555251055167356006276441334608086143893774626897346412974517969490982802790447423777397970060008191134742728823392827045455225160099019251410925560857348847833497397643768933421515440760172543557436755420075239949280322112076750287872980304660339271584927980896665776332196145753134971651251356038878625518641585030528077292398338942556349265624101289799231840734893644791590714245417969614041210283417450514654259529800905735716289966839739729374623292703407134932639361737606368874621146147703322243387307806697265398325970090741833743717138803161312809376672375666826258999459780900895446787263872734037954228484815010206986770966769668039561527214358658722066413052362681532211976324279326083255643214380483359918081141607805648953672954159470511798324107692500875038466535956476416404921481924138009876947943995588896839349956688781008859566844980464836416042396982372176172977997646171276691273169765126415383581144023768254482070551189900872764225631075793948250785771836970174066313727765177355788154557923448642271513361259184158937112308523636873900883814169786573112525679318689499904751510178139206542640443597576654728293587431065907806360962012038841615015275395365865437968808171111519616648267214647754886303353095175581023689850716930069223019374053545690903106183969918569138248359953855554959073641071938327353376040340918242080625721359086529906799856049092868834539850754736770880788425062416745808453349038605133438162000476400376183293421114487510336755769616366872627544009743080491034745388043049857908012384385116432477433345274079080360092312242602229509484261842709420761001785761034160127572178718327331683420077783538581677057467672418521673773769514187272275276541201887001575331936698407749211027392715343391341866051988591723638118091980530761284754099544511656790671180229415847524496008377724381912176881931842419387657604704563675001782527683839056155634823274297777335099544352130573606823372556934004830044508461250949932943450491839242624760395360495372847939479247856675554702070080292609184310500103527495486577555211517441565608150516892882387766585662856106191849456228383022790452263080802443700011894595372114620990738287400497728649828827614409795036617614549925691483466858365934041728616053690662989816493928521537428559712963889362332583933009636543414179142758064122733856276441488390906898088262752182544218955651922578833382148459675133787928510905158939228271581670333810299493803153239515067251941742683865144140576140188357958217499113545790171488500354927197692953976973631573546060892533084866950396358355697588715235737995621894370521141177545313637035399820046688637611942932572461838621603023753380892945433864039269900601481662071531984287437419950198358595861069258544928127967426141379595579015556579699841108749818510544685114080020952847097403255362229578733188167181985343616212206715859791082012815024302573630542713645480484047677747680523204425674527945923568742506232433349988711978921529807182254159471411814054831641021018025850478755482474902891800561240286927094638401609705368029047477901097415234870107497487157000510451330374888719306055176040693644669877633884685334179994728966138322938000688723580118527522918479029593511588671080232909549696282815390408153689094298181499240274773234696878229251924099381733881979999454178919652186386982011488174643627951798631501750679312158502592350509233589768370386969447970700738229012235760671088713766817100169500729605626493086858164998248908447374183630040216121132688449257698315488101449121854386885295032727597295712871602897278642141496231201575111121381832454949225099603489315704175494057816646513473683992052842857345817787712045580431420154517161187297581903301827086427288862731829489188584291850675898890717196834169367938621397706654407526873777434417614680277866480968453476548699725211843754887968124478762560934848078170168974333617709693025556656916443784226152142719763309938727671239088122794785845643354023806489833634664579821132027488086374523665861514910350083056451700380989856486788748365092616345661661548231363438575137302553113791847786049191090766637758940836460511921817509993397203244232129749059433924217258575306727488241279551832735349421155611672056707316130639429531303467085757519015916966666799678388439045692572132962575668208621122772560964686138766291435328936732258211611175075414821532521097681130388073216535120286274021808289279349839545269732306990856143270496372291749340178559095460388283897492440599140230548981465735472493877078758496665956925574290839147855845985325306186520880040735463498018382937399588237034975971827627159247054948057096293587751497697718756102894601442449041982190858550014598126290164303185186606267528764778091120789986197456044376668422649556644981880577427659694935767874394736352437947494193125887812321097765945411613433243898457184926457592322595552996612402876669125033059213072654165659743565851724779662591527836818574127144719256552001710717333249627178730102089174469274435297112449301209455517027325716048205598270587984362438199877116074940492077738342251655753394050047187706191643252859527064271034279204172809242647268276505981157857617366859076708896213760646180603024741575286047201255207104407472934665766042539711007436089067340144946921065692930691470851763315137791973674551505119056439685098777700844055035014107849693695650238308084737821568324448337135134457120560122834354745224481727343105271697950971539427703886098307957558325846531205222497310408596311554122370565619740431075107247997677813993177129573136346789464338682383894878441449728333393214141091170023374237157970210107188862922711102526140513840750875039608326338378006923579266950522102341577919885748409262556221901230237440939145999671958755593903612219407579888873046896399492248425487981773387533303654241756625317734794764898798291337578507411266917775917518145771816572012987733520275619965819652952704495589130928926778409577853750607161585830389070908372855748378241303642826595032728057641099933141000198321978601954359124180465901936433022079146757078065657070705305239042788420584066123283497913975097253462333658538412922022542567077489512152990962819438102991236868708792771152468977616424939835248862092656503863787357546352246772805762299915610010960918732954645696744134096920978190540892023622672771557384858758630729443953397741232637212331970233795105849799968435355837894250920210384812772035272006394814260128845438696439504521382424003539978721891829408010468610796943887748982253134578348562278182765430514046735207405177647182538983600908982548057033141663934558741128617744659223692767164604767488610716096572618370326357141527981736917974199076865198052045330504533835253594222990889645466539936412056323146244281676905067617441291723670623391513719372530100530376566623102522311695596196455894029888594627069590105284152439222539465258198632275428825153869546071350602390898664777874869084022658046231346229702880661289993681727517434262066072316290321491747694574034719402339401891954379749524714166692415606418812366994253826484696329652307644977856374156555253811258558282816583254891044738150245062958032253034882542910521383255748258297802936426271033977952752527425219469858688864344411448179278656916580658597077235810579416030899095515478744631778872093152594762904804231700290561653368183827586721558100577201711553244227612587690982770761165841810487026087906488149316020289356021814768130833046047646282731858680855582306495281638725161964906609863371186423762177883406440987809722773926847933022519067880387906900550367664925194949622851373025024185301958086184423888192478287994060992003212962492366691767843382754654214555568600383665306242013846478497797983208967340348748248061365619436688555487116788447883290059222036511128933286756968856376808002012777631363979225270547857950318606045325817396720630738911864990618639894228008173055518155422312594880506631392671066864711956063132314309993311231799223907880576923830699935725044695273528142364422276503353744678938269458396032335695704108474558602627064261063869633947495270392969874318316680634460735500101360195688281807032851363974775506315012839275187608442684098914838911095835825476281762897078918466415668640017006072182212657452663170948063492003609117775779661803407176922524770609021973677993224633061320300259539057852890432505844075846816186541083364078001207409560413794561939055459713445936868967338608018138837372775783448106302550684750893606767019183330558585279333814680249361387634075918682710768191987725347286075748762157100177657885278175666385531770548126212124755826645086662482641155817386072780363929210081413886749073601165090904614178285494041099504397546339750875395056524884453660471532962356526269906339495006608070632031903079168658454965149975555247773049525856236149292879363785781953433966205127687905891291935100552757457249095621293382784423022107899250584797129911566879966814661950601700978698021168643233292867030740013976298278097519276705147335765844712919548566293818572230508492722308979565419646598562718698505888847510715837786692100486873867228629756223689468633861222332646081385245294564893320895388901354208196128731654012109386023881091933488247172075299647301627507653285846603540540913763145815056153992122254523936709038263168718754129134835096627046122370512203894715171857226707406961776056040923693120370189803401977904162427599325082503223237413157500182246901925810022672275080415172887522490596324982502759047405574911339844770425122608373558301173125279195497252279410329951350004446937726136559807928391976430786685154321579236077268528723507290407292600241594769610868488015536265558037088909794257029568134239967562913559614330545363818564583073431833479282362168172873212816645312772284418341684033891490134125462797890597700933733887626947606717926342798094180201953939766184790823280087020177216633756689624996015388435053259510705027615132287179291915781664264555747884742860178746366509253299570216094619536757097996154972497266250495813856023687174939123261377715617827974451437015059235166596508039341350180774049593830636346967063036031042835569050755558006105077786567834964265259998259971123803733142471557559054288565734382299271549041289124595698474393339784372384086761170646032679239918010593347971055346054448440684115309451465605450314857074228691013668217898454088354585684729453374543141225809202155559953326630406132645800500924473945467135806262528552986460282477134167274648927316452422488153759131653969710972089709283076067173353906412687788860452947989131703664571699354195123535634363613259229271682074608053767545195991782012140276202661808258148969675416681232699776624855074432274305569753849281046552505541758924984811566028046901539663315274972597067037195598112851326062438439611938858671393205079284801004356758232859585926231913658429896528903607394151359844894085856233902281483753539950010240114764074885140694689048495009694624010524664767327615642446651627347074703951274390859864584706906638555556660482496382004527254963131318899271644682067916146623441901689852651450706990441511389495295117100043007063963035691197468979039275161117677235340548560996849450457584649565004786611144563653291163596063880142825355815681758618511578791367434413406733354283669003124854142610647401718186665721176291153860315098143426137071546629772529161130058939148836497406903170163788542805518599636858415132821858567532099857766723219691846224568828995132362978744358460473844691567835752632868833434081982434253280162099264909000158986326600920023413426696583238647889375259161021928753910172460096401765688631037031300723187124741385334555578210877083869771576068570810760616291076439092189165185745285949138277725176782128572142504945242153239602128809095806714845654417674630420222353303742610262376817651966743589733747840817272201777145350700133359778456216134851519201572068846303542807392221688181133483538168982506459557530279334930431045190881894198005252169581741134298961410156441127936742897467479517159881791727176167226060922790523189469353371551690150519908337820260222687878137062742456308065618207158630271486147259617568846547398183267708682927148390221597346262613840626260844304073834724974713723599890395777388586577353266753434244436690611983348875470912655860072447666835605864733024368504615401554892320532760422353666654667455350092919547139214367099099102370278620227211658158988179050119579257303794248556839994081940441597742822851649318922524631821811629248015517992262732462890170780222348886171006209731546150045459796989790558349441427626436099187919623585911822952761349579412400467398923526719622929546640674823289134552436255417671452569320856611889620650110509412379935468467989809696901668280843952453662970482527316247357300292460831706621462574838141147161674729435974961076660975202018119144863816083134305684173067246849486324442135876460903277766297812680837019813318338214272993019564221273377159415201221898391747014628467729736168148410423928200700899418570178159797195875532086188229529127378823962645411684564741968222154701732553510298598732006664369461625136696721113741072592338712893995178172713245943444703583917189541066179619691649499177187436953917973166750771270542890038413247381741973701554027448358949000269431058600178523772618189670642500800007252093286662470125601513621449452862520084438626967542560513028228035867466102608251487539995602619643723676926926642201450212508370788866016092695092325144983975931665306355579447136398117559854674081708571409876525211218857397855015883350781163328376618648798698904957060393337874163536516658510015580131806926419426326118283483011278008103184982066012542314524742025996660131661795450526875002530853633982158875986557870753261270958026171926609149065861317863024775078922863120641083159433120039684436459132462829708991005808289211259625824929942511263690521564587001440137181774563031977547079885631644179765857385939659229179598299896105315307711748008604571898697280595176747761197732158004500158516568193957882404369435936279772648321434001574288234509238544026613959637712491005928229355442461243401866902368725435637396549368199656119539881754174720581805865177643073443576359932198690758019062516708925917339048610766401252568120611989507102651012401299917916032012141873219838985668406934392893972317299367901596650534677079310398200669778568308449976495227668674072999298376373854386171443697302601936324543178903666794881941011830755213529654681084356720706971276363771534182830358936781419519120325751476399023043683970293139050667239719483692048899712303921417761658370344600340854005706381232160889750773511632370279746645173144219504786745367740926078092364589068885296320923427296545966233338425984486811607308112001539405091089335564726038992238210684410368586336285172371476218737416471750119397923309204578279070373609216924680265209983978265388315038395618945705695217943632750473843264199748573267063670294298973382703496823693184249835184126331698338362051657095818282012234568864955951827553977798703116669121637482160534648666337487766492063667622446492865288376000420025829627700061099442267060518360936175461921390538821482967505815584527922095449400399984013799858952707668174437167511084610835831519924097854242042483971919749821176514759975129529302381095724863273463490701460139515712513880023353086361363201595679231917354991087046335348589191037932625405980655664475701114666203262718565966472016432144943995004606976061893047425025827620339923752827477844025184919099929156758559699212891993143356175649224566723295623768949647119885264926939778040948137229184918707033750841638792904445850638978733560146255828228083990535142756716922522385461388046691297116806459465140122240587437855703921371898426921127775324632973566287084654423072389413317114262191400892796649512423789127947420269828221741178269843895902403077182042682267658429804876212065562379314769463336687590153622097392871917040036236336587114093757551374060929659825167934707411233595358687607725376331450732053269924919991559418648005774784245654024051559911320046604042450078120789478932681968094412122808263651725629700997645014426397465668887437344561360725630864823437280912215367661836875729677447784750695086748441334154242143120172174945176375894020145030435550108969677999306186422279410101449451288683020265126233579592852308798846643988558589190971250507870110946452356658041056085371830276453619982845605576023237249770907042949249015133791889160775188727793821514771998633049851633112250995522021382780460614834719571436589833313791963321108522933174146963536642906977394731403292286692740244247814035265287126457356175066209853327834445386452411216967761869194265842325380355103496670085825442409904028524216895712955432585732508607017762514176382118784368033861993669339773785887190173505715101965491112246195196736979045113143838183667885818590473439705139405359808160948991152837244220054288374061477130906644396486005703226410254587537547870170210059702942641243850495523211324415287925998205183188012502601558897110994733301048171238618047011275360553596019977047235769000744540132959432847854804016377788354935396881818350289552732450961581553489488842661722540514377321791710375068421117549573655665763613571740371980817240294958519187294159474475693634894246483422192057262540512230756985887126418476857789611076159526213614440088689148639682445082242130694928163747977494739363404543094971715848314595166890019604769551588672860685367440537234263697104761847564268364160422782861202051036578601493092920602446582984620504461688500264576256524324964489345645828818718014797484283852831875471321157253823209628118362090798126639431617330976665596711432577358624014511377059268548732883405303478137986544151034025695306674576224966360556766203314533006019174532010245978936141009998535920037299542503002407058272876513677775509903583024502065688736635144668154502156361675954648300801958268129988256046050232336774998141838229437131875808976511260352957811338978836952543412388728405184746456296903483253197063562645145738100700719988130539821482578960505251386453577577705722260365638284433357206312822132409706497352726085708005706732060827094894607345339996549260159199599420443862639446212481926856276165252752232657937691313983509302857683826494990053269162622564954820653309888370449708469300670364123722335615624644681829630894675164694004590209115767520773468775559424066074737564324239351470501684985509854159376161805493713189047816785816486918289366393070130298377270414904790306264125923486838168747249703024760033225825323454110780258074864425079801508029179425894824003335116394897301425840905742876359824494045701461599914212367028271167156564450888420576534675447420568079303305209831672151415548479304959144628937205992520970375271581718303130051722219801806509842358120698054993059070032685607084708658129901031301488941592816402909591411673263574465185872169838421703038172549326017747006569947581133248319153908595600050816820765245447893138641491633684727224528047165769255889940975428052711106952249271743708678809858244055060900033855348944629798784910885850453630618765754157269129417727632613794179357281131264845122523510732076439093971092048603137468286368084582964345854798027956507538250551933887352324975154096206531310875105212306422615986598016701949982109931428782015569968505852731282699535249377490312265675535857721293439799567470909014642821024587068309859509532970517661817932934530417911243446214883335533223003038938851949806675671236597380188410156517685964585290237042394300863534216067818198827861966463280066378980536127374050360387810707052929603074063673190211573179456834743924836120786882565551375119960349844834866384984881503183522307055579951348878982976899159408552038943646287934291477318895687656388147690241121940452523306887582336074731067064030708814474169892688332109681732972997536709608988853118873787862986256404734582048810433249187867310909594472174236918530976839971134374658439690473767431746070809436769914537187074282375434061754956069180819390145313401259102055105089643259694012237075803917631652263886968107159807773449955497135411682989863078050569258966423675811777569333754572784631016115772836116259934345516217143123665278292850967145521971145756094918460864349570488863375057522930224504373374825321960215355017675389630007929250617326503294968303677778804599913147898577904517451130723178360077427769775093577780396533217997842945194957736463633257329073725929135626975370563610818716496830178732617813222527059181567585859438410773198076966587963223245783515636291753277140235711755272053698422752562925796538726866327730823121994345234880624240870760128418876956392910294181233540589136395245726263688542819302759750983179870190690087450431896020392094020215793941507359192506842610366271703764160919299158424249393687388401786722477161101642355346866310943019859014790050823536232729310314512110031780355368344747282772605668843209465311037392948032715711395920881851510865944220998460699512030816211801365088320771116871051458773699164848552621489839047925851600891842718168967409457042242032737852896951293711874997015112497151086305869146259957178137507692872388976548378822826936362410420733655951762427654046990943877613351246696915112814080517996390094661690327471226095113315219153984851762534387113988574756227014069484599454245165531026613498249835462302063228987480606383023391136527159824370259782463197646252150861700169511402703953059813750851067594167952757674652790840120779214974277609314389638550531608616645345890304712439132472667203675968484616036204254254180017746618178186649208794528220026448027817724672128953448851496926933693065295417931168293087579460559197460003671360808609007844677961882769304756295640903722765058696083865214496347670848014819321461391940589432928420978944056973844505818468374584394344966218980126574052306588268511017188883265633514594159110618005103740501326556462727059157097741996342614442066574335302640850067351562002522984176733043972820650061175883890853798991817828551245728006927214096576533291135336683619561000118028422614280313436575163016145684704796564002841719991613565315077655104699412285268145231160614765786649278287614829419833705155139732371502995059238134452843707260510195251475656596493709717447978623254433282733695991674530567583081753418827550229218298041397976054421025097381716175789720885141155418646487468930366452026427375662955477443037183613601187365765360096661557065991037892041287980347993806326688322020980264391783841292591068158822554637643369808590836616209692347730837599906943902067622330134894094740755368315791934581958272710278371661356842495752275842810879696216062401196475066737023369087612627287863951893431030807678100969237686778645748407476868804946255804410101853928910702057942411705871920705328889047332337816630761917950201289669393190304767435981948011933426065482201663246886932427265004004429575975291340618797565201672450821587164589010006440527437893967709717432990948656423140552383693982991659132863432473083102850081608197069481870550503813440781792559970917119775586029139480166538909382179442884052893548983655601209451514602021700610252864447427685438294562386609798064005890362298113460944041805478026396002568926354454852813980322768352495342678253023742432766114518390252734838803243746364464385469256790365009121267427483891147729574005999526288493463286990865911764479992632958687102676267311812361899807949796622684159472688021356513046035821698146846764192179681386111284908020846341460191816226607207840284853665568019824968836101239879426604956200003570721521649283662487285864468978806083752241233535370573131898010082205407575224593243733049199451904174846594175786983707916533003125923329827511833538771597316219655099072950362559861122855102964209692423401126208413089363664711622225843638104997932249777733762667209525333591153195939132665568410205265654061202836015706601856147557639304876064972507200678445878138191384962302186423414360703057565645524839416854237383799642203117914555265927594544012668641567710058876272714536811191397311061116733417063849025453384360813888682753030457216268591156934665630488469775604812973727180811664196353939447630809306011858866522027490429069557133147523941945661778317420823394510511610940632055138770390567042196091157445798779011562338961283451537778728794481899859034032897853394102314776646928266208336516249575867451835910606983270188656562782980916349818450644055552914068712669022579563529498767377915041639980842957184839139886802330094996822577031308619885191407505297111659998086063805151449695253420910170666538902716760765751971032281104068390381029035189484514757324707086407236631012650426709239232540165031559749210487441315193391247765913273579109136104500587179341581580030713338097184967269676033072854029136562320369899993021456806413435914958970898056601875136761150206304520909921712252843900668632768790831746208711065652889999853762594532478612496325346670983679781155710259714592578173679775596320528453006639794034248896273326702675315618952809265710830915891009288697773340579892237571232051731383805161188571747402140990862953849498134149613905830064848283662516416988788868616224738750435412967159246807929663857086214555853564212627715401069704693653418751561385207349125446385789669797289597962469051103747155903601589207291971027081403129658478864894400686638677155494463865327605248924308349728594987182763353672394211706074729957935660728222980865217096157297308921995054948369256589290844746315675303241686417421910553406632560487711089317550463025771947326526656119473522469297317362216046669804197113387328669859644679465088980142328372779008377513467931998173235071210980782204768502588416730770317029075055188727405618875508001498671287672102590428241958307718093403513958647792823820002474524772322899140941532177712852263479758336850180344195029095541124432055182272573887041605669101528407710931291644244042857049143514156125721528219748775409553884205908743227701841792245597979548579470902237753613723954744450788796050708703975922313061045832655391182610512283733361938730229335824134682552838358374328984042722745807761055930965560167327286897567782860963843121226932959924274829021818125633012103947241128748023162595612467940869140196218676250118285787813694315036330299168429783051958368168215843735973852698840115435919755570992910451703983541123418869613190848437949524458500081336027989930775785421265694130829332016194651507022215316398408378947336540083178771018000842361095786954717115802570386051909730782398243904033082752831473687261838707474750130320618931007604197446510421717711336076527396490501563817367524898759818624309903599836963507318049841053808386696424129509246396329797756747939452228280338470298644801787609394892921865331791876950975912578120176656021059774516055624347341975845938512828637757126195526790374703249418305474638606455304617426293599652085805470728331483628526363233189123928176896336162713017013007330978230591999580652748932399694017392717412190491781723145618912751495981639240405581427790795241806113623797401366161643857492344883575718377519497052918249849776145664351564310190741897144054300996327450388888543986169665239782351481948656001721012177712611475788784179480723603087107608555310601987926902291232131317775346531732632949677240543556797548658435152018137553691392416448264337437628947077371830351983958528157500411132874739425744576736428436421993670921788128544550317665952694999605259070502419404235049614303982055510540114349681657039593818656735976233046963484280830520368835369618980701530627317976934141589969077004133473705310417009058739361156797444215815523185597785031790043393583330685490862434493878941144276648863937631778756463991840139440268046771521036857340751892559452342295945902645474906012025787641457337669784933475745667334279392980361617611911475865232956224681547934618534718151002026827707104546119544737285874205957548695065321805309370279804929523887847109335965379808002107125342963804974173751659587600057561246635720164013028130946811406658809488393213910007368008874346148669736187045753438391932520108462806904169535182261912659962678442739811599910459542485530396737820002772648326672533967875911038686913827920276629390464514399842099552129831026158069550641481549605031106499000043298364071958989071729570042460722177194343184377246699716053327464017213621842622639870295110749053517590843976043015350657615327565076128472984516310763630055954806085713611508500748393533277752146524960652735183566900007693185887350644113430355913919008333154112933277592746428110482358442060787689633566916688491770008802445038185098369660028373406867395612484410634546321702899043329751604400525105857359937645835883123297058925165031280008130073522538475639930474707553789781621649302448947804207167167385893196257404190459326772250983571176359018741198754674771934978487258481243105290797457050371268758617699718001899524145763476050513379496499006799189734292764899264262438523171683379126670186456424225413513074100963140096892242631154603436788223431019290591194829016659311477571115719709485842239426737871026796837136847633936108581052607740982496293548400497858958497638427733309994962911182810844559592357494061556807607135840170849527946042815336337248008475216497249783853189130714623460851892085438023761112125583148217593853985793569384341644776786492745512266337223902008212080691154065476955254736949464689169989761463749901778707685202219607235717683886277425197257525754154598069204229968547017031451700576483878086598543897903766534075137043420981496326496838708983079866413490013375302241040425232837256772209524233586031199463426570482533650248916142635082198845748861982354171446522449381920712865172044878842321900580721759319295838596343505405878524009084975779316371296581354375357494658601143421948968286627773967203066276470453362618657272199490144809844819188390259484951631959899931462321610882427400993606988078112328306279561561670388049074843299873764344830559086912550818601648596929585766172692588344008728874736594460769038347531416980204738024918420356770151694114921281313675869878724059606497748163662803071160382394299325831153041189781596298560507564488240699398976584652079351441152924443107751390985150362536885381833155777940018666103841985941935881345130875552694352348384583332821279863503231034140874562624614948748063060379062225944281578358584380609549063059832796347916722845185693932325099591413244383842817871014869757182580839699577467367202889571819656471478571529110235026443119000326821350130332510381046307654157353056253097277177002314711719971370867667105384198317415413702371819344336635824331637870601872798827833206931262704077367421320042211361510322828403308495494947289131260034105561983650567416178334499045985593472800656595458272932813895093923641092277831448126223858853165785634614860491042200753380756999838439155362425853206576920234395659002250436246455404422928475263357182690248659934894837182827008938078337246921758437202569100819993078053112092153352926438194584346385594608033680157269790552778498192408100802228005116695437180365670883049977716101763700381601347198970469741956959754987839363161052015412367022454754973152334939703961659632613626542279297299441095383090803834592672565727153575165742243269357510605667240312317306833426104942977813007770235560150399784978642590868387887410359027744156335075407268462258731852812994185730170868320561789412196138919083011552149829368041826304232249940509371090821202889010555638533140960516279436533754364174360208626624301853484804847649235566079535073870804124077292865891275560909961962686498582266041622165108544566684547022704179721197673792196708236875724253911784831218638044521922041368798248452539606452899715556578254841317814318517307418687113255071743435488224847153739234088440722692947090529938729992215913461630697846741603696852483666077976405416233331802016994198976932426107268133886333732833483666118059197222779830032644881989992008579231147657899566525060349491144271804763589643520925270331094543972117260729240284247419176861136371446259910936558366517980452689775618797539520110998259904510675095691472055927090759537654015848400380602496863559755168243532000221768605541409194714259331359799596200631294098018133468817792902747600440999319414420067995393409744064614402033049478494873363658777186790822248155105761664355515447569036516476673210431230540539692885806666884494420904153641559183725618910148272177559256310745212703416686791770134156357992050695592313212196588945888557897078757540394113222202460887843865340126363134664466533528602240965994714935488817300933149752789314627492576526914262032394164571426868702293653577023473346262112761539424535654074141828309145140231468894241570158453764024547755208911694851028626080784763647244806517310892238586214954924902770531647790454013379799356886105060187997146258413674417110788204252469129212216831784163225432588236788369076241577752600781857965036964791204214614317302186318116819306081152182854851097703252661392359456696901131355832921069524316035358111469224774298739587023402476415765988781078934785243689529732762990004238118760126881846152123738673198102554703301150915648642986721516284519097641822205384655168936942375051897465079535162167948959699634889249144220756591618774387143818857471529167857300533082218399524128803259758285108192880955661625961385755312015004455407468114445376501357778495695408852574179030011891855535802050962315638521593833980671749722832967934384940101303934671545835340863229328893179348475806031186202274555752259978784782904827243382742203968438730509748128375418407124496764356399261262349347877258494141496574889242542629954889056769459814723364548596536603903554556975925129911374755929397492099118330210606170209839921168614611146578780170211808921608569240060161448989191575486665450752324860187818784292750897316584106947295340447325312193986602353528520127382294842847475347906337505801748874374986789892393512548597513803560488715443744244407688211941835547079518324453485738607505736659637523070226904023707682329671714178393240071186642078806246399365298083997443465964327161065880576311552969408904362210127921192865394508543302775363566164740360281031081631836109932974484901011301047623963427993137500309452654941642548290461557473868122424632873343356342740857774734270650186545336150375731102140676819998151078193602865441267290877593224727277428499395716316387531555390368737077423045037310420259499855807275963857188327737590453635623026931660536171079680323809496221639258159850327657588290751874847062226774518620471920327399104018357195589099846909241134903985875826131552723471412078220994964575261876976826643513499390775913809151951448803007971534185606582985320544897255246965612381863898505414138024114814398811536099586115793726669737115234115336480390775139643049004341502492042567073921449643330770184840358143871249943788138180667183295438197074155809068496790242480223503138822445179054236309853503433519588519927445740614352612416831951001466414987924994660993357609567985913759034801679151176510247758688468912460705445352580299106368621063722300482310594104517596544311029214035972470742950800786971159602998855277229731926567362777262885206911775333663587332123720633132395220375490716306396982247649345656332163353430041332950214679967647440625041314839591259107124358469079595365393057792187689849465103426148665930162928956191082367435389865506295676823236091517523111096417004664465575668507770525492791295164359316928629882006109826116891414599777087473520246414022421276020036428325311863271208988176787192768944152338938647263403782258550451856438874980756202449712427883773360684927297124655211308215022662621762752532830215187230139166578273926248496511167823249687891633157073245042638211294729596057322776646558096554852727113273265391648702885799459548666549641801350565821225273052350807550208314685567566664508082000355605931983395836006206642441800968553052416321344350488163912035902142608674967710835757310394846092917436312400812588353391967170574900058276065458186539406429897370311843862787428805477274811897721936920987062281885807522735792162363575838554636460790847076858025458731170539901230173903369477622864538756290892026673539845488003394949080619817743375756903055950179407834116423533847105378834896332824671323606414408781041384899899232540693698429516133028099313037301176069858394269854194263731799974226057705575065843541786408085791052808960145257938525943988735082224907908832511933385566471121342990182016898866487932695439181148529637527316833741349433939073757377741031337857993557111644513996078632552171725208547824611713641087756194760868178365363675330261107375368054953977397751095735224481930765697164465611923697004281202006620365626130839409554025435303375418414730860200316856770823463165323681615109365147625109413509807824404864738979123428522343795409213430111908967851854509497847101597657018416906656108121682421281984245083869667275175539008467068991004164435805885673216287595994863914379248150451619948108143919027734193608307877337499797706234523664776120569820506227997589951211961043624454059748972367164510754667255561314106886136455973063090244874663740747226798965839585696737042165305374289065842319579994107241245091669309472841708565434986699921535414364100973830369621451400357482909587777444233857334712177204711871550937968551667287310566592988031952751023750713261017923921670974881562690506495032904155812804745071238605448398082310537936440130861400683525514000899988693585066563753347518918120757909980105089286300017166988294066607035927939684510240350494483642105388477970807674144989356908216146644079252697738615276549683271825069066251832713505601017164742831429234216919070067820403942847392209521317489536830351614635038798820494966594409580917554827341540490401429072673600958805753030566095676964550343955378708179020408416965708402237585897229584328282572580581383620140002913540440989750497353146843419224244581984353585061359618026765769375478567442286115325693289897837060170324040501771256329407987572642287643564724693578012095210099816174770029724387370070996886547838095141092308583239184581427837504913556197959497469003697628214587168999802740328867881973253777737969452752507029215315767993843652575872373605777945127904184144902122897411606704514623231028999105414296232154232653819435457660099858820740081187889061805799506259491779811865010478437457041495845611267191870290430097826416114469689127855743605123571535826514673193572489610130691368744534766139360287578993325576761003619501175600846400672366852000818690952829341645383969725087159820541117575214439834855333729937524027651819633970673361062201672127942421002916099224869336644972269877653080877770780266688356059806999635185501882548422390793671566370159522035737109229619942815339609801692749961301560043629768488462085489276780921121442185043669033787695541521273728201865727150119096373904932731269821442368217129888023416330752146077501888810349933427967385563016480510608770985336017160161118028629102885064437473153752318274477641749670955453419451567060002829706048053463223607522545663594391590254409256289982720452366934292313767870332795168382754123203690259106815755875308359886615001731235330878727240425548189492345980265064548408209880257860258151682474181820733024490056635730013783365178900147230764497500534011816244776761846662415639324174547187605806957092879705435344173522433285968314579539563062408283748357606188416414726315376584304968131391991401677852115205934662034852500324302408324580767820903634292162861368299069260868222446358544661930112991806396143007795334685640399690136868558146372035500549776808978785720774001021358958614533798117101237493387671347967946919399746959324087382571426073549864107845960358851792629840695560557104965837888822777009640118374436969716699225035112792659829601212893138484401172184680008953238976305063802031184229140658222010489897809297310371917118519332251522015665073909226640707931014297121243145531178595508494709242761637952605992576801413322395639562867917517156291164602921789454240928188561860141322895341098148872054642498381696341456720175714039627406444594737161950622653889759635123932303802114369833701767335298398891246638855959644128587386300294543228934341207198008058201750680413614297363673792571604864500030520638202794283116377916637595763735076794375197596442116648086551199636799113177342560783089296112105655634523952234638739930319886432706822829889310992390231411462608003821517491199573429998414720441045678237912530925329996910869120765456398543625627002481824532246571416805474673471119870354974251904501182591254512545553685346340015106021982526352489107842338164714578722493974119095764689074842865327441028973351487554376897717511425832494741649872446789517004595388121915905124273851168908940686036220338748687761342562492627356948782643905805126821893087509976665876206212873398981598223590971776762303828300806861614531423163808003244134783663375646991677633831812038278173401238100895852510840271129526174194820251160244891633672412028975146075931175757815147288482635593298241169797175766541402288982807750376969739043943037157032307736493847053933919470123122828797346146353775383094772211728354667884857548231853866275344129110289033507459680044468874026823235406943774233137744585530602045132443164578646606214078764275385606863395864168530566893437089069917170501927870878201778145798692676348046036348340407723593646526295228890209084307092508302815519786577748476290837779572881221090148527864011956048355398647880202482785651175410806839903823649380821802015205160385094903687217366554294974555774745460249682999983020358368186663823327132234882295562607745545884993651501546672853815497741411358787530998069115671546196850633338920334385433097237940391163856251863616855077903169678478837161367405174758140687500409859322767523700735475196692338743193064652078074963763477529605284444331553329947904304691330736267627200838100141905674379749800777617609486237001306536615800828506897375813297650547024835313340176538277503306362497148614805150548638608688532057648845144006325883766228580270221386987455781182940916109728959870474279989006235025711195578469535218543332069096772550580799871115145890227121955934287502048624078017097648277419870334667410829204559667360781566728486159646193346211858099664706345491306806810289404775888293350457434796752740256174201028927247315074196776741467842205919335672293892920527358098442421532786399628991436778089845706477112012766020669233831757714524835617473378803532027408719676487430321627419427083929022804695750368678987904290596479911720848912944315005667973795612387622163472798477065797580974226295641195895053232016000721814220501878876884414604165345910966789910456863010146140544273871630962964919806348613196338625519846671527179147163798445435511664385482937716021225351280483819732280319466073274451482820217369070907452454284121088809110253569284024367653772458670124295374258264045007035240166146745681096978045650664543017685937954638610981406646164089568650778172024158390391805733051552747576233346307259448179875205545804889282241672594811096958644797792773865285456231296003981264728833825968406690022983888152609114471203182265792891310768934971533854268800373519867254787536658447464735134885664120979715737641230620468304159653200668052376608731438759648792277893297381051695099509619859231350302166979378207136362311997818834693371392061829889982373244769935131961826285143366652308698163044276624557390246132341129357355643410510652328241143017751342752887811621220795704148162698795305929577649060808015600377204325639373042718495411135775236983696742888725661308940581019058725600812509515288042115230177276528534977021188074070053331990997348191886361670477805470833448782259405929310740266354583372922391109274814263500170985747878099425869875756623549374323744465567396527648388208210455054985298385341327539540474426125533052196470841129352434082948673587215267570077924846599779092642859153868994732685163917513316393679830196791497442984458690208641051084888907096350766570759103766673553945096893183909905208956591301115761219776550197835878914691900458623187527630370880599347797495908589383559454413832379487131936736370067383747315936020245548793223079430823103366674752751669822193405526296807614325336811315872157244567950102007427983441509992773223288453189716228483024487304293223254873169223919417274893267406273690543418371572274423435989980916371956449129710032792562803960947157351460435188752836120265524123881763932261884622301866769393922249664808085618732727709909021461771077125170033267025315375454611054889259782102971635146211186756839669612708942618897191986666538963611444565727931383871572861224418225727090021589768406073067140091561280971733639229789395852513176807702810396525434905217823696398288631662312527702995649440494543591527949430797770359248863940253398318460419904705982169332239329395755407575847980226715766749549430147987370690491500275758299230448551127067019349045137513921311582173364408906705381696701936993613436814704386680544285704066483073690951808235821687425970177808305420457828034879597387086065453613301579394552719747248209549943753679427722215244800883374440828703848151232654123979439298111033457322755987041930338468971027385822407297116790829807180329529767873936855542686288869914541132711881773342924408342998184536809780388405242379834013649325791680568865482609310122698202368988539774627447045480243320305733756317797501859500678905392053400299344836179546014956063788800534122792745536720229367955055022340312430413445839946061806930210020189720306636534416703322585205697946278629843872874407558758998402476940149495548852338166814861503228532007097786658852838837035903009201170676375172146829358969006269458644125573598157949350691991815471079903685414294812630391668017296862474785089906356383553925880361125031199153260553781055666367683855724461721693305348781487637763923662246505776031424672451270420494455244464633289379587386855874944775153851113455740186359442718802565996776102223241588259134526742487117988364264284542195950327061796829928020857738139055298406894565608957366808415365751975247167155222933262132926313139902810699553065891952795732002274096379916277438639194446094482646279901850425161094389398293091230720867436126525872743103052116176130552209492379551106685634422014650674702968634588557267712550549605227396279976463091889545838984853832783574430095614820470814716727892981918412811301017905148683654974735295524745060418537467835964435230521272327848699376620024374365785050678937782429635147479062538213404907350297132884764308462817541847928836931764160986908302873476599962970962867970490779046336943737983903375300684628918501995785224731784047874048578866924601666304802637673686394771725143247356878131213244212965210211044810001041072893153689760215482362845250407502361807141224522039876809984019887856994771023304714297020408811825160619919518253342236741245810569039200837240501226289267877847291983859411435606477744841701628951196044793976186880026602199949838811776488791976728297988011555867721352544142881592881075900886662007610497760258958679766386542993449244127440609506694191053285783427073089124191274116661652567122209170058544156235384649212188657515199489727703744864458721796268948461135591400691847581501511392747389941708647706380256877816292190254395805027988588592057384566800517739983817667803202932278565937500731326599621444713933218521357814677209362087891434776579000069113342493622948786952272207421355534186313998362274062497579925852539849540030920909421677082961792640376499088472394670524962255230337449488379952541776824375912507735616616867919912788854359236182730884205689689090935383683021073193138675991981558339698031118897697817909747341757898389075614485767836476057826982081459478570857554285811998421057138899709840447035071048810818100433502947282412838676260289698974893585377045700360385871632364319801543474623116064732869529911176661722558256323879934657200795908589045446670524625380087948600389476753597083750778106085486319563522574596638661464018964287201742504228315741108190563816992858037902335357433759403327947473332433602029263801240243319310539908190357820005445818950476925409539722486438248045202953530516155743995417309241414345116442426741929520297357314559062040209567735789607289023077857331856300620471439249103647465077168413852407113386928572253762252841906839199289013238115787457692385727069617937862718574212423370262165591477469590078879248460230493563522403722909393217320192597086752474411329047847170653083941589663462034892632418884122958799989862787624426159615226992805370213282222630713684055456576459961682187589500337811849420573416786583848191954742227549636249738910380237458966418121870386094639190621513883419631439535929888784221611150534456234098699669232617661892095371795477634508296939964140839068569133713564307944882926229282988152375159971685707069661970992513218167351010945039363402542000366540861617272473445084462127806251178632209721942879862632165972924205817021283648306230567012961322988508485830066667687900997605353864465487274717935764054163238156318918102413475950263804970590003756496783809807605261476205319775049705080917287088757504357703620020989718318622052352784813315245269300058078617294022015868910502905362783762076074570971360224525607485891939399911483925523326187392969105683112511572083333056761160463525427006684302956509839082730097812724134588220453569294367045710913849864382269536269926382032134242813793758221310066444311167677664206743004776775795555114239195118343160281447543952509674745561239548690831662442112405245882217433743687908608250200362540450142081867441671857537887675520683970823864712527790055601272384437048321849871403956745705093857926415224295737760631941879341981119833410473400595268123466765297976901732094944931027318989978401335493384820573362279178995083299398421910299544574202351691284314273033962814055529820527196582522494915139550656158553433968630412731851809758506962365323529512090289752881085017750256371653835356580654433590922929952501084556961676369033426832488550063625260262502925294577102418079674700982112009308936674128311429436810127931055159470151571743405091399660734340501250204041125938246014427672121210409867453598903316618553343269798752577126329667319805810077040292983243748195915696404254101701282623575910512813381727016759568798413418788503250888996412121766365664616932664594045357745994760523190786781118423796152053418867567464285407581293771783835757066426830047205903167755792087082664467596479659497412838515732764192368057564565727742709008995184089230933956947898106159664497616617870398425861750012074313562905685291479417586977007769704718529619380882630357569817265920674990467455960458457538179034518371641563821544934502505983098522956479864471253348396267108703155606403663735592134349808263221246070225655821164317906667228752295225749329657069748855408879623116435545854922395110985699936712630825658503640976294441502069712129899223518110336623883085504015793292008567046608457445091714320331062806437175680896619155070473967978198621362052133140338140873157330973755756844788245967902854667172699435748599267852201040821564596210111232550497091384565147629751908913407919135802138350810153243718546446843484951816107194456333545131658734709490412077464819205579904973208230514677255320425691958978888649237514710936682280077163009242345284631994359872085140381804895783605724820027260779541951581343359668094771872520427378456308643117223054473831482113390156778726586763249956524484685963448322775592626432011608806304009389227505624941035378554316396650840485298098103530286235361708503979963924143581200952382783723173994267774806500338081032344193657863334848933375864764568770510188549187181926355816540090500370490241996313963658386412157099986193857873598803221050232145418348074926699673542443881118029168391573802387515318152282049226848880270695626207661978685555013798721804286615536811864408344316297005956400013043208670314028942559167840677119887672170321325126861758934543917687242121236913651399690672613846279226477360382520034900604050516248181597856492473314675140744388347464266661241372113248437160654948349507223492804541983797974014669301083508480232070151296204524309799749320891954366795717436783611612351998502188446177594576766452415429947295317847189659333208012423740018312471825094538908636751607422451734258633533510191887791329250225879151512846422267161048324033612200457164061674558259919517117562396957489155119917011212490484814373493277278763631835129751800954116902148865964497746674766612858826227827032530148825876291998325670816199629223222136305537210371217859495184487310702270679709042040329789223094558549188801493361991181423728458452736981910400085901829853902618842831966258142131304103316444060976834044227564437779722546680772304909080164339420464321142338172844966230190241428387370127494656639240128655995056868204104231587741634186147609732373004051070890226117586211107084806836481443430516156464727930045928986332709259063495669386889569078102588674502683909800641562866322210455717360242861019896727017056807750088447854445461236039764657334257464370668206219742847555560344479084651894091143710797337314645711394107088855987989307216369109962440930768610526956679047813661475387375998565811620825758401210962658029626133733824794921798291167506768269111949560007747217965249864862889007887592469948907736604603676235909634944828630395742707392067371924666303617577981929638332125832110441951284978931079373945297214357010578199522005226636578960235468732435680135228001366780197739130694642615264388571812998092014663968556590515218701969790727562327130794703671668611973009579299490090314995008675150924478503868338793479660732151684943329217577009511653535074632805674183406491024724541131618251874260124849457273534746624399485947312595949668205550134946833026521695963750136161826737174416676466630979411373772934943635263620211396409946079288598255583148725323542823022527030748635399002617870294584063452467347406009494706038618289810693386030791153553433942471950605446540037684244132937338816876612148891496208167324676824452060368380250954575255236836918544100388449166924563381162315854970666537052400102769227186344839090053565670193496736598581012550756470775049868757680195790866011077650220883047976386944883290950759772440081637540372978930795935417948993295888673751322906906688462166799708366169205235249015656108877541990724671243504367705250717365739860640935371967706615655275206316568124311962318506285585299098009041993476921776666390341032495216251004167006225906115387169835852272873976272500585910667294953326009056981910893734743337129238917388152407861745052233951898711600684817875266557705783583795307167946529795064217131720864118833350725832208583959399923929646758247308831738991439347811024191901333217714935067327789452552047000609613500413077247461427385659243989410055728397663868490248018466502901701632958773355829701939897321000184241118461607899102436668381005039989579423834525598246235382265840491656619776267256935451604128545563401499426679352777553374307455958969946612467920969354771673951606126240213932176183236659016158126299541934792692363206224186946645785169271213282553160389889891884691855946381806652332510652895741612139569052106656422412400336845646626056490781406811942083074273963641660781033913048089599355762180178392025062801468046650745125760174208289138958666304683137795855064588478925945463525219262965794408335520289252769314896338747922561445659064201143115045523150610443025765854700505484599949479208018086905883877170114733363981576371323475564374014636524815741144468162381859094097484174964306286130242735570458014610270118610913034564071261294667559353908186058690502298962181779232117395956881318770641888327705462697155719700854636142669359228697321634830145184358189908663272137344034389735972439398615220923536227123834722376178829387209977321479659889946471031472333143171417642877852047682778925630085229765861401214598448988819138640938351740878418817609132097473165997073474688447699055593215802978025530317358760425494773969444007812694572124660230846992279673751545653320138680798005537242779242213974775457034833091093439503229099154565400829408393685806552729559915261947956903679229754891923067296320356764088389428626689867159192435461210881999281475620036527958964308403873120031492066789441885446508391037304908117940675015202411183046974242278649288435945019605991704811442818933154381118088105732604238054351724713897247661696992424896946086274426036106589442003069762602551223633826392334168197268259985392258545242032722868150990242632830344177050960907446526501806540478519605694854589933511415461902096305166996237891456052072943260142370459327275022394292102235987761698015716933633001190402719786029150318244389128292047781848343456703874145954036037275442806185858440476251235388275744232863434212783271555571710410594251381961366227944632872704199302655015498368785737835191185446734221361907606540578427254270890155157102320876900756073973463552606960026742721647493933422567038786747299654202621520861561968572696793186259680356995151448453904664562647171563754401821555262186743014353974633625846604191986167588505713817308561154587065476350350747913103010562980660972132787363827701815523800061737398091177609653663119526670856169831207891665962284070053170734350334470081057295159159161280690788182400486231483442808251514054859314354114677646162411571453248854392404608837641298928009177497563340616687019675556575433937153581721329531273418259482175782848481645409405344333887405293443974809141062689503726520361239419512496931638780699753782238880645165077174867092529671407829692790297571123139052040138376020643539781302226848277655939103866295305328518571651013283355663867762521816677754928784295699267762705580275398840242279764243858819216217540709759805479772487816596552496412350485690423312100279206177816312743195835522433128833181451158886829780560353106631050017446238228817190357457038256057808919520410439302408340630608528062014983412188427623871113652286986927369597872930639970261341757355611658091710804148321631400138019953746024950035432209820834524977107101043978605310043362758746545114142598466249952234715805070775559629358321371949231739187170625293696567038670256257720677765542373956528510386791877022940393499902329413769994451499542698793848216472632829252607105520152441096482726255341994830439324393558451061398766312756800435330385923918272138504061857982278834484858963803689057130466733469422493913108883856711680032756992633201315769762705413556696256888635932728748456513916401591263387388415894703414163708878763644015604063015393965526384969010356682138577520938322751802554576120758384636482896517308314474167561770418764922444242894048519097199484023415878805393152495860624104197475021415161243350553543375398978514975992649647194472164441947305962128991299918721370868819508090083219431137449759595326860343445642422411354860279244202642885926028057511718943784378634965306171564261072472260821543258692820073630509083103886729602273392627592251096726022560486608604723141115083463639782432364623378067895791188872098224600742557614746164422033310942931332252574590550599153181358658736404505079020098497692230029179398598996728531950418281765183339681843347728386143266395565169869928342384443587399548616010634533373609746526703166538680496929626183716520637345982586250436337598026475113552977109489605334759944896857050108972663322561969456649026498819086738431065273908197503730632040724280116245538057405814293132726402931248978488729369434053160965762649798514981113453913895180402154045801461365725915746758046945882584651038689069718709309143301896806965237612203865428789520024813114204381623759153992668083092286553895900411169626971932434008715297226870670579848097677258229095727797377765501484473610015924123664548670905396317361400688323324332585344510373470700968246907383738905047610602876177288729308829810393792229526494853689621655804679124452959336857030672277474285491150912835849112854857595485423506825692427684258671039232780138600953941559584901475210496354581090214905798039046779677669665822869267173668324368487192556192413361607626265260468447892355145265468040068200291147592992811809124060254436061914202827168740836559690043020728103661201268953759043056462621571530272377584024447463615220246157234971254235066058885041755903268874707539563338010268732078937130812020285477409917778945900043196167970073379874938417647402971305608475762700377987758942750951550234914317340735064365730926443159919028371988860313749264263364281977176246068119979996877866771826370594514718469295473940934257095734351200047624755788863397101213296106745199934090261456743626426131402388783057910905891097310681487988555289376150648713106297115658780766737749661083856962548432022456132684191548924936435208804679677741881636344149062735158060230313435240158694633005232745904974955110495016281794800875648009677070893157187525469770036197432590214457737448929422029713283521350714230556878075595371568933763481553485215949426120906579076520158081147657173066921304978897895009415535885758988625910703257299228354966815633759445609635171954727248635988436757659627212025020578915566353076085383183535518184892287985014549861527631506448013028719863876162190248190611218583803610052566802781341565553089154097322332177407892218906361074467132539785073913068164260330673042810818964678481912430669476397978065356438636935274953801251195714206531875724714777732828483109764022320566654324672715268247689241090492243101635508231894164348671291459244243239053074240421714704371269469215853972069951685553946635555787943966823896704389868784729071443797450946484518057607091197148731713309682734286931988886868493679255218748555569113217499296641329188610168617558006163682254399261469985988354499532892858985258569331239554444456531870750282363999731041064143221130386807870526258704877176700238112453387367854931598808035628764568513840398682502438803883432518888523141026605822338533362388709989497821004828214822071110499222390420965097797369052725257839631992249285457307596766139855546871511519783919382885888427730803723411622776916448062843584525846918695731445120745977697087662064116851992450578103667398874259349056132395075081507901006802545994293286970833315220436059781182803378153954206193617391007798595217022278397637355458259412699887963544455183370997340974266765511167246306416964394650125335850680942444414128967901926840195553093544232114277799121999371538718019244210892236065992201242386432725277821283242194147568278211192767965790200466573166665295928099984908377138000558357841402156402328134511528154359350936515700244709913126927480065568807784166802953771106505057901167476446746400075190788793455349849176022141169567011651870355971895853101229810817909276419779934867830385798901932546572803518509712712130156677574907339512074160136558292676943845175541757444768071401175613574824066623925987820507304418338703012736896410105676845299027740614598818284027997271520568635288210790464224327049337095098882694132915597029733373746659031683090131446963631823108788462518970805451007683043031200428117735253593414673388959249687183708543784982394070089508598694412621733285776914124434661058029466963026485043902300308177650207375027285955719611095476238086993588140998647354718953284985607810886003195875402385018764796948180300092018821941816698920554066373787863552473744067328274075160321578878841986181977510964073787008897297809148904552975831890102164989652728285727696398969804824907221452323345358167705066715096640474535370391104839018348606617183134035647073445015212732087624977928849283856613786910675337521591898245243115630504978064268797664181671102890666411013803832539031186909681365648033264976721162286514414037881822313164870450016018737681263104566490601041519340622957275340519935219152089750738185093537413193050702605501450163607350840258992321031195932653354075863526108100626600479999770738258496503895622885481046580044701536640740319120313893074982655935843945974004613750946542163606183769433316178689301791875827650481044847291233859546438915369479884029379030966747793025835330740808871118523146617128368429532238216579506731709329853669660306942656132312404762120337556715561531713334707711510960605522712187695406697486667976969674207383749963693504728456403828922381508328411771493362095812221309298610100305863580565840214312375308708602647055332538996183516694635641043827763374899013723481079257265890470979464501366517898706168206629076433589688451585142952294286593627004430004988867133454795492825553916545912217725662320645970014826144764165181124955172840952660636828665673168744837975823146598070773189998068225907688498817925588326760014969768362589690262525423996355379661467977991471214485008397763338728610923750173023814577426170098703463935212004660004025412758404751387907673528176738332519969875867814704610862126674489201068249049204311356045810581699603498249043148930434631761180438720539689263486712216303178174752299611689206752278113931215673016461913365290842713240042656136276233207686060239816673288692287666797984809179378643543047958453902085481576600473722547594058000096882324308011787645013086746146357792930229064818563898420384570190510082774954252827896972073194668331426418691263830281593130172453377994977334596510729806649911027352997359031492599399317878078774714659072152702350403084575607474462126132973789242856101360693696652146215533685653714560437179421520848005561095534281992976481953604213296470680396397757658079989179618050642819083929225325198677497212531463013952467222863082521897084893612451629295946440003719365011409414370069740718431887826812781567523996404406673686827956391767711481083308863739097862001061218128793242214002968388894076298286399533136760159093652184531334613376827605436120040369254684845351045545505434303119208650826418045286544897784927492857645232412978756654036795440777688699074059747501882729649279806717727212177458164862326219503305359859868831795416039005618583471084568518521056481319059245820750419721734954421695100440203064590126283546395607816216517275665539686051995691575684656991776700458812931384704803753462527500263851424510742290132552820499462165228634735200306720728570064955898959990907107711052033220436394804314877011503998744683180675004792364853044092671117644597319720289474906521444364812826944242896266215346176147333348457111190698157560003738173863482871420072225184512840993887753146449412337082626764644395729234785424847532948599276860816831807663790738967564632433847670433541924667816466258539683030178624440974525231325986252041204699816119415381366309717564157201189680146173811880652142307258849376480511661509360310027199046726095607358246313522792585415511654420968101768041565694581683191143865405806344852337038997124023163350720090957829585481260754397103927663091323948281586989329093355250187795510844381331977315702194604531485586903876103246697613367520221964796859487113803057537343582477513620999379293524033990318511760691252827655352592113077604710135355172015245545744821265950297001727371119613868984026651448023117274643708207320621470967205531633811295325909982438530491170010968833623879636452712774942243472216490732912341213322455035842456519343765282533293556628503624561694913164130863689432605811438255876411544028777641246149957211047476250706528944647822954805169769244943677253474612761813606464884185439153349315767241797892680048165085421400817314894852734019045476173979794417987091090052305459992954707299529675404320449513408733653767148396518024829337631899740668424763137994698673922929058308418182058981944942932117795382053185885535149244478616578266135528784707542093442532329948593780377359467426810080402378519176025399853831952227814595156482269862232247193978433470107115923688894418400882503192647092556462613249195549067630871002916519146167156374858117008643637937575716208848968288008884802286078053066060372655584276511052664916021450431333927432627276710551395984579811474990296336827414309135989156016514435535862881938587557516726014672124047332695886919280324130326822425228067987731829520131545933888282544073458213432669938769392892108176678088744536596657165780778861427305881105313479114703008232896654696228614112383321855224924795805762130867667729968426113165073483756774290603672428992147188934114582729608607014143667879246018387985028310664718724115467616918526411332096202863097894889885533777099856472963106696569327366766670050388744194421895568395007472181718180663863960125944986665724754673054017067529600306269425390378473624958377329869849580130715493917679360908061947564777699969762926536703256591176313989378375556425386874641230002120186101682089918390311295477754497465492542897425118055217143805893107318306217241554477254462000233242511025424582417733653923160163369244946537158508638277730300091849420672175493040933705599453144202059468749528593532227032208545135779108271320864546838681904875799610734314930629785157040643690048270270366957671235830155194101080148296580832045057258019814187460463086687752879269481966072632596858363645456111189522115392350291577237865138696169019124558222649310366491173592362633956193889055556012467582877587832349865822920337381044020857462315441920087443779698936217697738952143170917316590871174607131917927085935904036571695277363566758670260057150838737685997722242987699469916821104854387065667716147584352508916538135604308897340779759463029263299477790692895919093177263750620024490255938515184839503141784025254949933481495290241132388564624493632565167447829730410599688438827583490873481919064673823789490446472180777743334452471421822984831723244954859140105904730994957839065806757599272452062820141060401116676757439094421594959488181877309858877884395844577818382343625643182789710491956228667936323436614208923896114542545059030684776871420436255237272777344826512656257969487472733249128724156112589031077925024122403594351229882364200831558047758798774085027652641184886023071997754468534136478136979706167742009324605352420774100608695320282873619158999539223201206965306388410716790480067436508727245728785403098668035977407546133082181298175055364194967855229099461347064837774247591924448450433827154473356077221920885779168443847881705209180900227173266043703683546897538873397015060097890174259865962802074844261454394684965937919867224286082064282383175870834255522222677370018336496553938344296331823552685238990487217191081107540123112543626292948672284598415962164665229840350739548078086988707561375811315467448524336617298669783131619662899097056401639960996489821218963968168234703260394183638104579497708277483664129924633855139922412471898992954116682869560613811013291133988288062579350860643577386635147019995279105221373292232384455167155834116229659137800678768811101987137595627444496765211675508653937694743504444232690959274579508647806625465808974346813066307196822328168613322194313151356303516354442291076508082642319124286479651739161359668295131790432506434310907325492509119347510409865563789989268840274423734310605423681706516763485345462903639984718957847488518188646699089928979932981411268808870382302009215993896230409507969828245348583440257934139240749113449225368005269955764611009725459683758857614603478523272194349186275034781645503753978401741365821509567760563981939208350556561183845560585608539255174385524545183615317314621168375157572362373794446146749403243668408672947210674153435302907806692020896567473719288565774296438197307781778934270199748714682383399537899127614749626461086914268608838033936601361445590418323712982711054961612311392903206959650605201774528693103901931463817429440767284272555775769671958629545887784580278193106912044630850140815989334723616654966804235672108523938488855028686392937341671231813866130740585923830454546534860922215087807318111469215163167591119480641599804877093113672521245281370839766841093116945661145342949710085610692123341841655214487449978594281324591113617869567530886129555251643450624013008110511196038243557323731250561126785780426203983390572494422505648439435745256394213680523843187329274465242522787907321885935747802633842852802218665045375095472583718002671788696869913419714287255186411293883105383364874856657180937699724972803458124594782555569930705751388755747752069002574120251128005028207673932279499455773316150873336908615344077189685430870556517583432238947822105004658618546670758473939379962887147676466403570737061965256995627007819728322503719967137162405195232753669863529188457270525626798013131649774320299329127362968696229224491027008521737871528662026386346070094468344592217659453177501206201399511557929395370521942516518669215284037890510497178891545822741327235394753434517591875285493032123040703204031259245727899340793808055802178570955447877105028276983142825297191518567748721092763504581919273013743925731090884700201954738140211071525177064303776713322392713482064641959265455399441051351349598813791466158984353300626099225436031174572331589857619452120193249200711483294854491085206578039070745010546771795038037758174690440612501715331374240873606789883443782330044286057085340229479809795740296709373409220007736840355422411585065991843272318038672312326825555205449621350328013208371194929093792438162786991801268073118945255218262828832397718225484753078602820831730863333046907960579525095463079445726494225236862220124674317197023848415976846975116679648073236235382167617953648731167666919991399762756682669726050262670266542047316546316894348419736225077369187176190444669094975950080085090738370942926512331327034954355556151499995329774148516081788176374622645663427701378847851033542037598571143980625257802663968203045702534612394305914263663082715938406681439154845288084500849834804600529695168419532626344499666669308377768027640657739666676948847224944482236510176640107014349464956708439986857473713640707050822052970020568751927466721487331973996692363268814801151369806644219024751948649528710434207233201737460614156839197314477223890013958423008541378999568542772434696910944898795304528662704812593103497003181681645007691809088921762225193333657918803621828612078841266773246535904468179294860664910804373550677835808570801624829975909431703133995931942161087550969510673949174075336832446743235813280210962594775043970318821174350578316864829066146496603585845796143581857163797388567422553198252622814404550105819479367723134732457631171587871489303320404965048436608254236981508665954012952388139153630722797633474574801238990934096949864289877454551516426717636137516875050025389633805283300139166744314120968213666430344119521921071258054185772114069064186758873776636543297113239397241172100123135944490034248090231017935850586066790925331359591370404823186961891020182449942980990944340584205690338513266029857444781686509068230298649317473527183113397486438315179406555173580996428738689310124207102875446158664268921715231122601750831425215028384179630368031661502225656013938566715837920023157797020602792416025035435818257889618030178874175350560757051268305727111372340732704730686382130936238369572853601943487507494917614345733003786865343791314755428272720320476638277135725418367714101729636917677727870179081940904663341299330020720613838804969918023625930997763805324392761802338959463000386767529728231673532463925460285230304774301353398181537787498640276094146790152352295225059035016430745970178669109904446069634242273385618514715287123280520584687105943804754200971302386621157673644066987758354030616928078292200769495668505038866665833063502229981529331540048738163506451544842915504925820020790606371565091107790316741009390708727069063975633112370646951586419056549198397110513919224710466560866623897511882397701168357921354612466335911735509735090001766671535242787568203803337094166874789020252020724797517877304373708246910660949095508295051807317405560093128791556999240649952176490910359213419864409426534600402436328520625210919895971051865724746829401306868136904615810241109770414590941110382210072574316276339934387412532424995304540420356532292735963168737751225504834216632183333302470290777033385607107843379337652296616668493414628607112081452542924303278872304798340819059910859549373970597510289752151010417301489184265212469897118500753826637668689702212502736351306636093644423403985935654452764085826982218037163446632590554088842557066700461308924581018587519403687072171458035735801428751777376843054766215052944244582270693844042859842076594541223945403880424233010438109834724579445535967756834264015421379348746379891767212082341454691692266672545776017942571608541354511261749350594685605476362294131502759895990504391210582274348026082733051751476029155717470877050388223987517622706733385764348966152163189573009895233201163217350282011675112992737507132672600528763018802097593464127721596729173496648623783161743366980412066471921449822689405493086112185651202214435515678909257268236483808871017528106679553254884243127728810234091044848774392529953912135816142909802557239434396675595607589940491573368538139284858211946167908746187894689179887280731683516333785190542334451882486692673615340242088139088880103348404616886368935966227882776852613383636674230894986308464339308877717943234634062981180337689975136466953274467639570917457372131628961244768227467343732398045454368422480176381635674613926174996588933019262731381374875075613789070160168193983818330625196895174512899419075270467273296922932859539983630559882646400153933610465182438484186443405069902426701810791810710960424584037613787688558165691360652846441772988060777310300879405157503361138122226024878270571113554610841551811336586676658453317032854686727197072722721512796379122858837762099273481349706739464689272412818831345652040579231648856921601372089286137344734261010599031007253669699352373591511183497475947986992044399875200664267240086216381525173290079243596699897449972330306325523200621569513093162154272965225306174472216300713055286375740202118447202490793718409438547400666447167758213792188559355340315717552437166669349792122924803211287154739788346523437440365409573453498614140781530222451080209260797421145924628411597404801686206328673759023810979383816835185464897258765026986697188929539883250816579776968824666117925246964917379382044674602755597927503172446662627060137534783921907658843075867278204946327740904438780338929799626419756296229561048938988136979551184804160139761783669887086149964277283413837863204895735280504551300701439002376903230872933048163366649558593965282736769410997058947435305220753812238132508757192623512018274633332270710935185959995845472895235633366384870479013707388029471390982538692077122048025144847543044502821848337528788547988636200140600506023755373337618140744115724624453810396986893287243814245420961393206651878756398922424981311659942975913509199253404848272755417768147522141169740623068064815801071049570326674549773879114813568116753881652635053436493469320656900414621285026989453702564576592576415449955504252007682922854026848488210377580626582720516047750990829836137472670204571852187043308286265912046217736380482442852577642054299202632950750434156385987652921435376018450230642040794171388837872022396887617400376668406261006457259026057822812919416931779055220984343916652229118083916709321902062313046185854983593234980198452095335317580601112905622829227558268159829285358469746538311963071198316576301521169133372001377912949589179223013472252252474737569005748566660612577060216887685116581783798520598593167733874547792477079273448152805899525943969139169976384145762901869867879410517571877599726717281698225262735511286575672169878091982131877028960748492077215573714856473085464978627833283339638323780405766977338336032681005415142700125320714673243910480347294535439208277122178872605329346365187581019764191889154129495667957474045110497734749432485068289479667499265592732587647430420157268111929784607289179559402210270464050249761493464871145104996276145535526677882791426497765424823352873168257059633328073488959918929954523439540454653743018649131143766883383394456075325963974101756615084294158896038159395828324118105699718759059681617599133779938977242744170720043406633383772812299957175538312786307300228098834895616828089316956835455513245774837331239722755670662826804525070651903452159876876338686885475102438567938092676086399923917581608203572582862548502622494992361948519743610092139739789674416245930533740114797514856434543738324130683791703593945891188993426363653757546604330410084962526525196932540533719796944323993412428336237436852418610128260657606557193316659207641321286174781968097166996813899163934189181148814118446746841222395362957018235611317653727433989007051234795491382221181362337647695155565318663940923070195838208691488259549710400535774444629871599916186200915664033540807493307886388602543478579903117550950989471214623298329263333592359199458878713506786976763866248435783786506793822768909180063816965673718823699186869390684337408094523667471516981505619582226178999132086389010035731708222839363434208582992323404675682322404769821855602408349659722394563816552058902794462762516745704464559711180678426463982630843957046921697667016702154183971452406811107896096443107014422961833829049315813802387922774960244186641553828192168102915651312908042993996961924320997196274196076627169103012718723018335844347807435855233753103452443345328611211377247900922304411415064137035443429279382898864827557577428952983749464453496569789074236504193084525724284297530869540392109528290871989678199418058807231512888004778933700441079967103609490931630729705965145169129651304127623358031791814309956652276178726497036722962914361705062818940331242468610554544773401473875159987157322631038911572957627921802877325801775905244349064787241801383760029919417390113980816341796209870765437132596912266366819433062249331609518862839569941229859218595655571529455050563175272221478186463340892204573100129730427109883540301185694303464005133961901505216457755073484840990656425414075845184774764573073462623817514389525046172629822236171685496059621107592832696334433352658563335448791113890559586704738751870464856913471014475543088185070399722977037613592323594568204223435199349796512579015471795672906023995990667179428465502281067574328514646520060475078751259209518563602691851047691713759950489325634254273670888387456323258549285430632191632611011667293200580600450414392918970241068245027949592441096611998531987545382206575184977180217505057851727344984553653063163827026207567187946305496508595495690976433984216460687875458648443294247344295822813127923852511803344112558923101259625041690012222239918088657998055866897319420811638052985684874058668524379731089218467880376651882951397350767276429488229733370563597201800263993988617418991347215147156379715826391667980527240846465180774500344833151730168954545333587249748669553355757223884163187005591384585478685147436640799472585873372305405929567251148775151803392261897406532871655923304897886988322467386622591477279331402158021414842124339114724504739145853443562140626776227100159799475388540116443270869919148296322226946061039565133946553104432247760253821420693675261905205860291835830485985893823094138334062593833789262786918277086291275622346181770347989975853473365759794952445983093734520793941849015629460639020511096293137625556488117000672901052133294361963435575652058748654621970227702578002349047679610215436130422203418293026255514625945072745617567138254609264107691164173316969260563847407037988758702504320932490608971753242644808514178539931502671018847600581446936270180387801840889122494424338526884149157121462272128614089217983294558890413485297021309093035068273460257778597324985448428012606945791273107225884034941767099098900603428871708472266382600706597578135815921434557589462166281280525670573447667419408751048623058849215337593730018313144919620214750676751363278989314726211480962586037633948944155141744709673478972781774342431462646859382658707177283581968192269762111286338001225437441537853980022376344937299500379852472333341376426488248696174050409887441662010386087088088312377633538941183717115649480598411133812876087638075038570051581429567542342748648906687970292389416672185937468541571521878848625163332816222248946965189781144713933879479733385791786279798813572796361571877901823404250821515443804241786299249286006155270485997587604447230667690819672470230803243559326729408631834636555045954374126872975418147626373698037209894289604333711920907649573270449301297552663255591806050581149941615081396749207672807317456919402520932320549221763070181259324214779344251544414606080308818244513746625604745959468180266492183771909675611544577516783941259815706809327189321212915312715282022303391823475806108181527458158892499031022571076986970127404900256839581003827176030383005101589683252385744237509013911122859975826193948986082161267827077803165487121361163865379074699106388243578499993725798094492177759868388171827487475128657914981562144641316822378973957798994424877115631392183036125122864292879217343154603283082873453376536935381273548282778944953216045851723572868436122776083483624277882200134491597351553180083325493175659020071979430112131118492333278202654978682429274484336641817897812249547245247755222325104027862792404459043636953779716310899131880947330879069564994843185782811641939624807699868196594025848417994555481052696390629261943825422058471013164736706604061386360246350196460634970638789100238068283689301201956892488501040347915801993586958345751295204201582228827205474576973546886994434419847194272229364837336593917028949995737506420277304224775648213167488881913580598811189069298277777248237917937619470902078275303270570520985083499959589483285018758581502087218129971874226208795889244467567768743945407944678892262569824618983258709647053901777502233094158583513031210152715670577529453759078653057364656616027427898866141632659935592793628054621339639663329919068656217679737076798489863919651497989304836809348435288021489920338904832397804299385444470630963090491672742158685601501411377593302871827123901747428815698573184126603733885043836393650481565961712491916871028552623724234744222268748988830741217650544648466792714520712187389504084629697754907799659133275434181740049704939585189189401977456229074913105488223812375249042785857656355010648631225546788727906719452177692368682929226995242454952291402881592801969170499466275104291275558947304132411651537022618818472936726021184904201904349221391678754955686104274744030459149464546801808030465086694821330807051921509316600633675044161381097440753692119500573442768488318639453562911453134642528565188395482622302334638710097513934593578693622251608195052297810151308073203766652512000879531369874397901767562917401748369456838652088591220856332741274705011696248475373372231496748965637823660510203944765410301647095332267984986802789880386455993054896677736556886137089584643256665030210747952344853771765938770498457091773347516501675590013537751976806180571006569612400084901009385805005483001833311060060185682704123487963089707314490447939733846236615092180730549664127940464702688341757329705615035421509711297787661137628526345891112430002913667436382394280007474095780374296995349909702063567883938867843335136547261190154557442521035559120105343760865755516615891221034362476163452284914792782626638469818753013238468438384819898225912943196540130309103584956556886042339929376419727753778129757657675110422067469250826111631348342175239471485083689488569079813732858770354384154566806582243641642314639385420361939222129549008319033886704663690954916398029276092923773318171162645862228801632493622594596845813160900455752491644127351538119202881811051778783407040092717305000915331566982178326362307410274780898351826896342116943531182366857113501820728813552528398665812848871771633908035872326008868597228422581112521579584861191961634143487966215279633842959819315830407846930437187705989598100502068069666658005893371308384066896578841358638906377088671403403997388516927969025585844724887452416246492782534577943365986524544875153599725586890231449061046875055284371553897135988791528292582825505012083541912058788051039549620243587741828480904283401262331791354882425078607550986826602215569053861672173970701655295182618514978515599168741348077180353964769625312637913393144669155177524287939837658399680490633068017685465283369081194178464934362438299981794204165122515528164866227896924131696728317577190659810661492018909481496676619350246347947132565714683609979836687716711764576836384667932050760456842301364560746771128229145441045783622954841900571646033836528495436266439731311215799090048187373551462724000204052837674805504601750526223833912292220527820882647617843334128246709043428155579919993678705924244653984141524833718503098236504570395187183254750588914692197278774749347613743147633407443272367235788968307218717815606999236699260788023472658258411185853678549463470408953792007740616324528585483201242779620657125574061900154056866635935511519148590738541833673894368777121357668035639555495431967764326184478545833654859196447510808586824170244253525220358497647116816247683995362447679390822342829295308130090668938063527442000436388338706984902171244588396787081954595670313905019613330242474286754556888359798902576989200658943420023727586725880321169262517014493146866468054900078963222703177330610131301718702986494993025917739114785704970870509280094084409830141715941816148995972755100488996236124218466792174040255793575784183041185480982985139821869828564766442902848099029282992258624298968520525986440523172278660819169427743747057577188076108017817014441292347268127616906137534615630459476495976584858244035879967837330863809224677316488866013758223011266771435881826932205286283660068466041760866981208538896644842363412783043001976643857472405558678541424452666355647823381474880200547119074009693407662372319650071368801988685663224818335461753942781052863404548768415014817786112200499020447459155240083854697238438652684623605016503474589585642048707673810334499842139162725509200816642831846010534702581829800534209024749851188175006267088441237952319504206142072959178012044110821004313932331605012266160473672097305575393597839593139121770916625314872780374320003229728835012845263204644752645824967695383409333179681196657791727882996539103498180139437841955822971311482652363760633982860634296239827977649644668696862983726701746087796573339753781387663204462773759151161180280667485217525692485860371871107722523257364951015722124706100184126112614311302037150876491546256095025574478872730024180769577589430109761958853924107139505110867182688592179914634703618596574141697516034705023840001320349720169075014345448184078500195961655555202175037661420835360030855422651628313900089755352930457979279905154554170558682045113563714670441194276182298373079142861429586476793482903239572243778183137838309097452446328489103257868545584036460350538443973535653910342466890176928081275424571264790379404822241697282705462998916665701399697823250809893061930530487484650571439455152213092305026148007997880337724980552595740172644905129511889177854575105280926821344697207123554057885078956871909378185335500775104306588827467960784993189447439503999944081834580150483034503996715532713775871463877807208162494150010306512748338364783456878423691030433017556587223077119420762504410852438717768733689315484896060498166762669032375549662427531934881748140783245731607955287267683712611808158462394204454298053349773691519546905049816894879293963996875232490806551634521696254213203764991733072416158204317240977978027013008700414187607918402849014599117714266520928545357063624316076505884737698598710787171579433813070758043271729692701998681658891807039100027760308435815180459133501565881195942443071875079012697652941723436324041680733604172510588053985716706038297960603311853582024724476371005183240630844923767445628716749667649060564512499185526727256493577914993601721335789192835414619678868947549794111832038604193488760428799842688266413662338773747948405362154498989373809394467295553208596428823956093192673324151264038942675672901213578152105635650245063480866720033153215099218665026455146552057914043433141893174414583842003472011452762747556638646363719915489155616413632048725570985379645313317805499465738441741349915423068995995301223415667016055178806045488309658980351776258904081730335473495796571980443157680412935610230230938086989458644948455299845054860812008771972016498213738316593486175047489426498468749248301555755608882338246863182293848982695874312899927345595579102777782399973947407907170624011469614272246039405224467274380090478806800920425738145681544613860853989358022908414498960415417980131060176604978345364153163319722449682533680741671539899744948053792478947672584732398720794841507697512957791894624982289414433547663185349999358667358165475879193343990553746840304213416776737191387877631991967322964962497954649656836376255520148221035567649815803685686852803543993320673339404264665158456995388191279658570131516372303597151509232909927211288833907390063026858674303638166475013427903242469273442402848887999790040065537984933770874659301050807104894142303686390304682685016368810018357893379932967769777151624443283150534256716790883599241420750446633932622724767042035978433281557826765102624323918843377919349488592447301341052250751798403877907781279177131601737848516493151637103857254177169456553167793327615495664365756853322526102325751713091922291203786821107010681568934982199935188605147278972330895615275525911284752924852545046221544421865740375113259110093833867283406940029922498926382109193711948661817151276081651765577672726141860219883492213122775903239749939624456478058662077444393511016965388184145302365555915108637483250392650014551559165060784333385319281735958155845836621450195370170882548977503471954686872908041778162162025616293099836328403840194538186821566342410142793499054862663594499440250945200918302552039721408474069179659568130165902173259020956745960371894007365334945018308261531846736419803763932533028627104582160605086160587170234204354930540565113644109298028876014831106800448603708914426905040297834084766918108525421711562551888943475699838437276944994142970851955902636559238592803026231026908497591971640232884773138390435597953030195584721843237552582062741661982898438302106297178291592156984331611105301885841177998750749021455972597144709022562556020501578383614558817837926845383534671073453061139240582045115672720961373911910694558510871201442348874368457225909303888082822103383198816449037644062565076012454809987509782984409846381031041182772268157213673247695694659041206448208233744695599416281098621135087157356347440022880796026607745733364015250933691969813046383508737604184364815320377505373065431584442857743297221558308881655732520914477138534167181344389998972779349596084550869695324321313437808885995142668040741651059307965325237184645999929929423983223719753679983255286185235732648787100932679579241499649518068785257918231476187239306295215986869373782372909214197680302484233793124921209129417138921014678439723687393070816601391528651495786619299291644391189032116261148090896600268533039458562508731533598502630748483469061054470142490230548292996618508942890152594788133844602600280096172899257149747770758949175672899211491082699741177748502284585948096090462494598391577780811707180034713029063011620283082051403848641415696284953687912357450537939508278881890728625449074662217077838051200188095393863525102349089147627181337232252591066053764211405235319261342014063506063001874328451459347305534597042199475469757019291305413408933688594248300274806270466404435751611674152764951552370221448769886268465958052666600888464554968180110710099093642488899669820097575834605738537880344700342040896040994792457431669381815386960626371550378628450570541884509646963289620570562923488262513379254510364448530808725387309440073503479817064606523475037898241104659747174811552398903123634887457263482462747609575174381985281929198908897432926564075943331658628412467240102356556904811175697537370861624358396787518770098478405836919765030509297091541818240640113129001042793205439044117392455561736219251208309984566416248057647073860599542052576977410473301954148336153342400734815088628925793641504234022534084937044341646620570261358854133126167121573510199872242426927837992371635390750497743268548743382489302620672736336077937760753677004629273825593100660250420690253583319726147286317422065384724655206306180721512592821547592578288547068000822111901531208659512256514708302495380106527480028662871274622139964583245771310120782275987635208222893826902883194940777725430201901491640101987829139901632479071918024364346251770106961535221202887895463377520022327883156796711899385329335365939499035229382962603790877179069499061191254223326810405497972485259594910952562301478348982010450719567351161375256425035622931644625499404995337639356069570008189976156611046399969685041592538571348259881368953941339830512484272983332565800010305131535096807909965257378254767089651119393642878968372757768459350781234177462923670461593170399028858133789875454606434065938818639866522785672418543063041620972946869200396101541955080359837743558887369413668972574680947244176018969628157069142309591576700975947655849866705289246422088897800000515438957533633277777800486387310585423960835484669802524135641833412902139426640704481142138380958096216775994569104059086698128651874865042633805387682156032183373074044304863580241699451345482451772386520323193520036622910157380607445450250729114170451650820530025283507603056718021767356102892358997584486687160215437757965142900991514416585355529325838163828636576008983843747679728040927525008220224969076119550173325626732843837388582466403981559435212811689059981470880794441918307765855918040849431314255708928852924909873543153607370394835621928552833790089279654466391121936556964716327508125963698296754568510248628403087433553979662482190417420252735442842317727648737078163283691635010826642020797285334087348922670831425854991411016684031927928614044544286348225822450943658047772226594992376532915153847495542043673633157627057356787255414548310755387716849114343112725020042947469020487585705966878933973078736671140829135802846270179524559066191705586473217039414616553441480261619835022483642479341471725304128915340450647441656508272533123251075936882561970515985622062709402387927369327353084147493633864650281827648737003585613552359309132213431658124140439803085958005352469670782652155537070220129269272724374902535432378861941961654952048720623132701425812989492654717096145570282995582988674195717367410576109220225539778055977344276868478390696474108720282775299287642157382895212948004361505855330961164959061936820264071719608606746205566932987716985230206183359294197028051458131462153493650315614721018450062637946060023991218490824974175550687742707578042958080709439004072873247447515981880233729412223314846503586151215222081789113078995687744410716633658650244860839038101329892707447922949022804896835400545409117038585735284266846069988887410323120470146169157773759423794158816811243910957287967991940312648498298621675242513908301326400764597102166836173629697239101616011993549774955786979240529672903393154239168414150116080672668780092667680521428370669349372843757923625675110433046982487058265337643185443585915765275471430885790231600785980295023061970903310702492410891332465164599455770892132573099842010503730153875146113601100919627646033749613794469221868078550089481127245633989781747635991117514790536426045258665345223598130879957458592449201320412503962456328987807381373006713333001575578608583577808560828618974689670844324065451325300384470838145432635280927425384738654675577687709219194437855396256790131588858541976078489997089903635205037898910860363699559019233763540466723841462175646650209736684633523923467919416266724079836897931227572294993362891563769977886501864020269609570514729931996336825911512663644704460066621266305128987845373204969951514137672797524345640551113604444560570801439118570470555173808286584473634414126986887495832347953060300803259386069461851920010642919365821845441545693668105632048357157376463453903642629326676175338725252390385646775180513862261917732472624043064597760349870600235829923085577051090093741765743472349250339407697219390863942963538879538900774892383687166075437942468997550504370854674817201596480839520436756430205010743705568313239042598912998499919478248819044196748394135712423378396109985354320902147779494075715972965297639431720143946651512692491710717132695262522959121885714101246179801201017003373026585433266262069180942674427651087418440010920608772729378921476193903503651300442475701210776153245753375379326746606373378090506954064179821664751305114044041172224497467581365660502052712808542381560016090080839784267111331985664774649442028698344341341202055403021670207067899056043814705270896848325288420368572909925823491314666403874837515280900031527378130409655876389125304804143943222070140948207628149048926959387586915534071928747099344255710900740763511846545224504419515115987476939659188800110992980154450704171029946522238724305568351350118497780757047484898703568568719498204005221747233494739934977274698241093415185952674711043141809613158168468104147309290638846502758460988106933586692975700522370613817415601341290295934950096889523887219013839325069729419996602869246226293184205114176941822066254296752590946298998783328980449830065822133537927140637936417131303866948231125401181363568591446728257555800452577064048842595786077781317362719134299013000540173446174721514924558081774834226191539718163371865379335446215316379703670602825672566270135330091550635944777201147921670668179917901704773436473703372753207006970120527923630896592770542838523910665136892938992657670839425490735833560273362103188573228572464433003432692611111099395287141342431891411383083921183103705468918442084574617775072589786028922935749517367116130844543570385729566186163808068306229746817171870218007459461772952698476329463443203929731670446453701838832764321888947405613608522012704284408373846889485419759821540930577915433538981087706101070856010228667643576010007267497000733971131265592126331425883783537770207649888609646461457039869295589796195725997055607876328685383435560922911097511115438400599847577351548072539019060674930159193207469321205147819057758508108714237975158845356088594733473011309162280042796635906170090700849507770734797861569646515817373420029841968492671389789155515198459536699148868956759808185163503421147220840030120619969600627584795184169940211280042278935681020933230531599631285929389855871216914299873564201472615764424918340120383715799919951185789412699475198323778010542460576485099075679624112638580133619001723654305602005628472010230925669356755876814529218598230336899995283290725978652460714532617775223362345964447614992816466297822747942313718750383874207400710071566893879982147443027808430801051940177922767666532690658257845017769364656309597810007579828567139952189006369077607716258059428370526276431012616584811391213668049991415537488565844096160476380582393897504532808438157471911986881721396125877507498183244718452673889354651623891401260207035648239586012903229860382457746906264601132615902587229120684243235099273918484604114973957129641100784126999109832985531406805134537216614725758181052295588093097586040447064074615528850976863477520377836512769761079897393283159385895071143078093806554564587709547004039301354687037808038632123408568208725819798522883391080822493899839396509221619260333025557350805606272878278804891067395376110309521183799496437827568688758333370714672286159960591050358021863591887284389548617814613077118091081249084996316227883284657559425305204641213968922608837432927354103717526182802910153261789496024810003701934187080228682050970900794298847144241821877737688618430998109515906471628276397108557392323662995433695179566722216177761459012202050210356475234476540919139081695415152484224859926658640251022074278960732108757635935022559367639601462219724294496858756807150704955915121630606271121121474890879797626228457599656719275413217650272432829868736231757119993879273229861257005983287331569789716627059093197324387946579854177505339460947219987317800767160082063278469559524109602488632708075268347230454887950672558611370148415428633324212744396857553501509154711350774234762117810732216841649227826592009406175892590552380515849054180355654574662642278329698663486608567173051311015790370037046091870528178445535709484318481800005882036874603118409482456314576309759805221400788220875037596529461108170447698714671287804652855008021050463568163507796132415772742876793255463546043648321853026749379901467036313908901189507467572100149714305981219935126731873152366245965629107979704148067442104901017888878872612706176784357454212336452983174102549968446738297700841886876310478783031809321080861829983972848900657770657516539515374115679042860978406457578746596468108242047777411426808583771618805574935173578545565300467222455036947511489405716004443530238135727006618884255613302750225910751859456930094234188198449491835553225249546097760260578498394487136912875784869833936983941780167078919592473351272807545941150949871141814266398277888368296945752211685758159120989222701121833525651729363676210519321450049481404459126153274594510066979530314227085468873918458177072900903781926979662477065859081649167080462125138887000629313458708028807789246347285109710408692370614580031595909355415672733264713357019730509936818633030734169194777440454092484120757694585406889720342421806562731788971017823300228813830303533471521057057683458094619335411776499981781716465521277701771167499360636004246291955187655708886260555654593335782253360078924789365202067938180839663741499429001864492470534608937926491058890621746475688524776102391306309943092314886053913890498269548377161375438621937940396092771916375592006127704379525351834393427007260373761833835685386426461260056116988589343600405888727614781621111073896619885226240113378942762194491244505209155652170321196049065436739204133751950700262658215565145818691069250113324987671625338063630364596109570913113982597709903807732984151265340600161521348482878925262894353535905349382112462820633273788703948663222650179313647836514900676511212143205862919542201456435543004070454743458701232342238147737763608785490991191483573977231031122816902773863163487355163992921765935751160185572166381407801309626138805039044226555222764159684839952984200186652282630605759462327346838443434029627366717894924332164393177252877734150813383858531821858172567451062298512563584343721253806708467146516923679657904030365222088007385996814387236038544705270787049646603576332785913736826300159111381786924358242281014943879370818127281996151195631074202257342893681820303272209683643809178608697093644748663018509007407880834475644120341077866717072997183604644806938520928383721966257988225057764177607787838037498340162086002608907157506890803152452087806211868884034130230037309622137332072992886670166144057563591092887630626356693503619030089756566568488601972391422644809847042306311219158381386506167962968682277125624272853068494099464599540494931674087697108905941249166169086866280269829322611604404781493708304548859035308754535388806044908608837936608389110411766826467112278871374837592456321576918800710252741687551648051107978822651569464833468988747470710770676818125461507250535869298244421286830244290843539589170280942877581701781301182550001875809858915117128118036813335109369446730920775909861543820011627927514995462410270368305114708583336980936376492775605234722767093184772475302533764601628129929389005505239025262648002549845462701216263535295756432152022227782428724611882694365894558126955554007475408557341271258584024335345162172890099843311944098398820827114371444392097597978597876768689408332594170973393357479641943792996381599981635733028050241858626525080038676301150277909405787641504804212553869378721062264185877718214554784132685365168296480661424520060839841773069977823507866851728314251119243220453523056803608146465365313615396756296747599663536985788808062229703657692763415336368935688721943701037739529709643628173779655837103996958639230494087959183695553396590794225280312613041799856840538334040886383041762040846489576085255240579473386516330065828755074283395374032788243680354207072776508999273716510200236326681559148973456912213316971020408503385796000249098954383640877597805764221990878589996537940899505559554373442800092611030700668469262964626098633744209054437185295882018472671751252486387677074501710517923808460700134247666472392199755384519810163970514854196758828562934415814762876270100853776049973295392791105394863439859458130476218345050534164662582448747521560475388358234291248923084807666517966930164201046775515103510641070429080419186072091597683653798101856792503725086581149495394663355983258555156870665244633834366821902191653306738240206305129907466547964887312201301368176402903345438667850970070023693677910255151424816884187051472785705874248771223866147742417748072066823728471241276480063189185021121600067970430116228312016952792268132600686572879316121929481923243256154939447840948939393855274938439427261315171191994437010761805658945820837121663763641483699881797423021559623922381318256700651122322603905560375046359735359134283681954429375633183373711305564647194673726848912753432431572373603894215884795697012904087670191871103509469878457630851248794486886951061774155563601596910932855286742201234191643547647826530349955630233164827340736500818276015070516836613916782623738339378331297223424912733561932663567801502594340355905040177284058201836929645898431465835637617036956444187599248210839333503645041618033408495830108695612022332724439172017098395133422560171931033987918713103893293114034231659858347344531210929568858781616785605636669396046432717989154514201199273151281276268040905767548878988341224056982962123965159371858201072100444256877705409572501672221877741992396997424245480525080070036517722949864990154458276278422054542366812569090009309229046841046284000550853678208394124380547498312355665031639726672921036720219357944558043767020098277902019050356773444030770452822878794269023208724630840295660088310246289765092662161316968866807014513692444540727533260020886660255775237135401582109044709560721177606772157225173869955264482816539249629179332646245455693070175210578688311886397615437591818434901607501555181942912149393146509343695900454341182159370358167489321842092355357961641709707102665774591634743503059385212917579519094878968893656996463662611555142217647011760914276362354135601444698730871088525594015577029333071680650717682658906151539022805016871947060298999669428913965161700482085809867024191633487464851563666056018805052740509377109956397308304678283629751882168866267755773510549400088528272652464215866000574077228406656948258133557256097436925911905834102329521757872798072992389617682739804895490605885285961269094989426035303029265815807888121038269583303274746054717480532863102641497309598243991315793690731144514725123342494673381447896660698447961057537590843105532039305772920201896065242708565907002267440221022984155633651466736922136316199552731847951797439302729175369760225975232298966797199203825416331154972318813239094868247219390390732792320892206490210920861062153215296442758559562706800314745361945306466733761851668843514005457959551639036090831853402417246026478278551065350467218156869450208590013632039455421048897701690322175525352720343901202540589537325980546823519072246791202554826500016894987360485272097596705094293929943826754987904419220204281841965449812941722201241640840710811408023920273871027765453441589620405094529810390631434714839429899309256699445158088376447027724970428153754140373384087623356003172179873566588120067702480052434258410057272781678991872901105783489516327745434562460817351213504544755917723225116641787039492100422570742847923196334552285807444447587228360785052713784130014229403658784361131481168076110515010236776580564576282700178706487222631314059723152851094267304878461845723065193045179355391779369735962343387092544900896164284214914625537603288494872494376981653046935946608327492504212710918860839980171515474840322707275011591253097613989554669639016636355516053736297029981534819261284222661018277468386135799067790885005901935885546844866250036600464027855391294905636618374094850956909314936610981518165318674515987634936111990877525309338270899144357316140220303394259561654471714332345723986540596662881959572069120449191663403069810698937770004396532748862042055784355061879537025387709825565477570094495764051030795279155716393149339992680220881354902511076977739926440581802714584578396166160333712849528647255912131316557185647376301074673879556040089237947464711276090469647073902877006324913881751873941690342538338203421367421769121390430477675562488666006010297662031967039705230502198782473405752782275745393253106459987729485872533921090192566064143294293544495521264347019539436387073301403250253039727747254649946141998082398625459594752858217905885983671587905633080732849912574518782316712483935076284038264327094143767793136173600145071936802629465297139400546310134648014991152646965212275422893544305027690258576645785264234741468245755899737487004378064127073136114814795043676961184840791842653102893076585739516506972046174435048381225891640983303268905726656556349284862245569640497882318102127286851589752111420088100821937046252730416347465516080241824099200592878222444964631842035349465211538933872665670779649019743990334004716254142898470032128053011201343400363273192662717166052942430738347594572760778909479711018935570975653987826926666343769638676177677942714344350953625264104094485738784292556594276332767419189054337255349114265978451083855428587462536427528813820498550907779135925676189590580754962751343872830632889427594437785501897001342370369901091765501706882081042243343335185637859512921847044248779017294687781338858476585341849456423084397523225458454187058505940923415499232605082389234879151828313437540590350354503797624681709256571723280771799886210977954953013288193725232292716959901861853759060850783049897918282128964177582833430173174418775136699792133725228430924201156275955276291856353826804573617148980502067270974018912654148275607504598910306162202001235157727435564224043024840199861145306386948857967197335018755083668499751423574254086609825384955990185462207574933520323817048262670340380467067137462139170832671261276751556242297562318947841478944679267545970980880872996835621910300339823743984551470858634862537958293314287548036392953339141492590741065408948518850674417072559827066722122697482852073068381726696865881700856756475813391689540857446136834412738400727020590733569241515514554071203848490388030363549776817471850354560854131973192078323525864648384131870258857126907097828571293500807041740818094157949525550883384543463899204073853873485889110502488280081694145138328652258382922313147585385839327958225680041996956208418691229111425031177195566784693411590109507864179929257235109151811555983605338877700903131327190959913723647158175803572055522871156109415856387806326532060588838719982625791732222366289517102403710177287568692753471734283089162113604326102520914881178287036014531190746094338076684979712402374718363711681940795842222462808333798202640954897411392157273817167413697958479203768932307013352464746571319530386318245630291018087399956749620090949318636916202701695373966243657153663039440190242360129498179008973238246767391812102888094149804923315680285921418687836002352705242911224862963444262945521602729740722147448764558710648809422462101130141119032519539606049826134837638523408621907509148001523199497085315169472703869850192862752202979144443562449087994519224357820387517206218775443811741287385128671899199262865905912462751982438042428995702324248681133170118618872077691619621955159427188766855668834815143979606010888198382235698041695263992520758168244737524404581153347600768030802756133218442017201593380104645744953907886461189995505920864466731253821146343905461976157645955876605476075035859650740021487748153384286783689462299232225931122398726307288844829566666076138326344146372878608924485456720630222764521374180704582884128686740987412656168592431619957260234757927504580614421906076075432555619958140601362375186441411432228104033853156827729429987103786948430800076863102995210654050329526531249095128391609949620086374968958172398109010486577612168318169688215192323831411113616924777605389887348342624357659120451952572191120625921159285752135207319165910588588778702258766382750185300831559188703736232814952102809198522849566134192328594941977006055399922156849688381673918127529893848899590344000008815162857255646732619474733502742867538177665984625777156123900448817758279981854012162122484999916269958322214446854406421346391214867703640451649023203005145326116612507816439502978666059266052623743169787600120621748878942640035583752061776892361101976884991842977113026763879417915393877707011653330017582409766589736754912959819370122901042744270534124569793251887736997100956514778092655285610067861430789208414511061055741148860860467348408642148626858296745879682216283022254844375019135279502020261014414935961237566737063706982604783117296402841450063360570071650110386848748731991367420036877045933085019226743951273560371956715199122457669582489070866860562270782674074825432888399094576314501006375377910659835764066356750801818613964067576512360340364887830171135550840345512896070115208641249830365106888607273309314428935849103050248768455400100858347393825341292601297483318994112765753115594516402767257864318824060186085621454609607750835558793385373725709505863329412866233224014564909908193406736699790803078019901554506698722911843213763463350662317122028532468447387036641182788893620034865857539034034318286339498584207828880406492142767761533089543301658849472868705073247204755506295448837148493525943810678778862522703294352536041998447670836964473717290972863047959279367748686897569484145725448904887019366897119110625851748732955779322552303000567396001207323549092529778603729422361656643825002558999588527711818037267240583578763306988258198193542826104660284544687360064024423503383443108352236490262446208751349033214233945122655633495910121993112625203650480534448161324410555575265479174631045505592850525078749598711237144523623799758290083744521066845568647868478501794997697476475085504434595812295163238496750613431510240521860513365316185075425859593391280496341675571321274662669468809564172847753813694919013757585127725444041563007405021502831143062500713902012989603126983713469888115458706850156424584024358765687772102722396712380880488209901423301719933662564447960085552953293171982366631338120488505266897858706184546369028737309100429060105743398314982578007461668980547094218479023026091664154018233863271834034215004211749885295358058422956822603065122167406226434809473954741142072183183117344784576644803123201649256171409003376264770864289923565225888376322210037855011261601663493276556311190021072112360953566554706824165903067565483400628842529499830587818759353765483132439588852272762507493540223541233897577888328424440529893275222419986542344003026688327815567564813562637454153404115647424600517094292182227314413814963940411766575773772501087862077488429685849560634587280628743178849799338561731442579560062543825159855145302293516417606069948593526370812878692904627854591930618108539359102132801009165110391121081280015731960882484436566551964852276007302238865063748282430753837508773849692652776339842116455830777453139634238130533319819295828914733866126953944973167256672415346034609997084841062683937359821253088955218035486423119949691728971519292897944446702380071649348131244245998790339372313473245866872106965580584799328043329263060399366555564003745294944212304480955733228854582799410762046111991522428284550034571045453931310176822527487410527927168133974295011666181276630010298885632842404656580854318190501549855353515157053148208055662124328533575276912912496633296584966909227251968600027519778958218873620235515840311938888264558565234702845266775562366377509544799067819200114938593491701595226812334490388875282367042966308358676867850001321495735951364693653675551140359904077728619131249362227256043145277216799191588727613125964259604970092904653551901439751556775513156162083507202678397285454636925456324159028587258727157185108799918120766656353834737415977071486367760299227295940472925755456798354969069361428410576498203733864445252439173943101244911281798130529262172682309706096460169286944534310048933286741677290868306791974454154361472947962021406551823243126264115376487807706005745274332070965265362302611964182726513757927249956136741287911823217851746234065555809568414412227712227155735807337128502855564589136234539402255292600734625099148538806587490158647439287910124338932737125251184270263733219103583072318614993226488576052682565814187138456285280221886200769626764789253070837936075853340522110929783783966062929311920461398106476649556481660535526871335168269874664895987389147900643462892218268088316260738842919518624990522986539880212839000701108825560207717059218479559824612866290434493035383474687965344622268055296166135641699715173959469749738694722236081154796197068040901285779447159038394822530946728227324277490622792811928606189262846314029923565799638248330355654429978958652099047865149568614668140471450073359480313136584854956563063808651779395132013582517227957718932413036244620958516427884199516809200103063263692994942224538648653987276912370130529956305805394468052469550989121432431981848628283404281028671336060748023068098037415249015439200009307070368967567552385929381979134834943749562163623326488004190378369059154718874058773395355242112033329046255380356562432856345370632043049293239666377557197329728393326558576649374259236547560798919769822542716990618305306512343716059145131168075716355503575277115291607849237623322369228637862133776070837467401105125233806099509242311664591996575823491334114734544855558399166709882095454361082632427980435550684461934123878007522870321011641150185762333021474005731592540291076019158326550551904749189970468212381765559501668891230302750078805650758004903134684217590960644322490383685128750709068052632894537827470913610381373067170407752632316936029174827072288264777251595699918571025915690421736364605203176844557428401269329427438514951526013701181942965461885123736195992790926466212396129609980243692304299457692905253987819225356468920474861714138955133308765612583752013134192370189292055217972457541635634291096848823743851449653107136276352370951741147090503751158591375064370201905844514375251043753716968333182410567217681694154030797435361036044573270707961160014300529279421233506434455683766800043046620261894021085108535027037120179283232989317204629178918328845927913829350662703111032812033653571991788965022701400602846358673426334840381381504946360779365674716562640761080419578198408100061434913092207445924822372623207689057877648977021701188719226241349247254517635307863413008352637484515505652562562986093115983371411390863549849249977471181780633579886698506537456612805093018537448438015646035327815716120012254482540583247643727632510636180080547320492896411581762348511659729589450875144905209956305028939126790839577175412314670181200762636036860402759001405828675117693623497600722548857088204182993217664050583264588708626737995994090994722936487113638698728961760472323352752887668636899112572587878096653288878015129623625052759599723312050988578733027843761747411285075573146073443731634290802609866557749411782029370285339323982492595149860392900845868178405900150282984014843645258163642812468161007760851948463772969861278024340994774628843330321983435886583939802085951054263872643907369326992837148268470388915562957269036197537422915971805719592749931555765641785573750507961311893463377101618777430609982185424321382467296835820745904440071386119650217072422024731768021627617556950443394063990695699830203544284876959837292982157260638627964627911342992512970490464905816637685849567716772571545431644919188678792570773338908499338200286217081154519597204161988959192196316906038215809102128689023024810393468610677318138952996589078864297559899849127923013387047221611970169028162967661372629462913294548309800421379012311848628064529549492815571934434495491873391917138748409084894258484872985494253226644524477612399147066681278756678678437105952631577456525202272751016465625224792279552395942137166748588727665945095563249000897074250620268270127717654177781241759501779040758806294408965196637467744865774564961386928332989288112018430787424543226573555326578212195945999474581602815027606271894003214739178344607382775911920221096898079675962306122903758276360602116337217234124367646222307232583601921667564332935997033070205589184087411466485165903444232496365632681302035538199690485241073883444450562036137705426384738721254606236982868192796680072228925271706323496348620130854580049012035395278984246020833230646791576631965879332934215678438052021557298539110702381274287345969256417766629184742622831588226155998230744685966669533806939150423878135421952622219465135534820571927239730728354715476822679565930049611133734353640944618328495942217264396572976115446864091218276390306636640576804262737767263910366757789371666779111830963267373454921703847410984218192993287040229413427770802407158270452979533433170770042451304724284892575994182927956958996322790796482614374388467072063193650728801242094402676530177952981468650574449932018925316966140820103334734745723317291777002349910604044009622088146057505251165681391021534549300680037440090336787761492804591910314573412797512525718417547367220122896659295362404533970827146293748724939992580145062586109941920808629684469461032574092320532298264130246088001472913456075069573077397628029415538482727397472964319157572607494881934849341968731362314804316267837383570237793175477068642198563451054346885303696903621755807899608407529775566563531102407749798539569302828407950915609443014201257954227604321230171666355139293515886282841038589019913443364982989829437644281809269695079029936841622876402292015995562690622045665136137677408620115340014243989796416126218168490407686597629666366827360846193607701150575237479867893700100951620372534261904685653818818832713647708142930070095617374867022297722502866466360173859687668078063858313879949024006099497390538565106389358991079433708438864078336554478588159861838494743089978888232965975245026633513629592043675975339286008496217418046630321241530885331210859498384447624496041474254981272954498223246540990938517674604851816163460930822938389434585964284357071441975946642049383874619995339480675691331450799750865878543499890506511640372067860003127433090034719006807284194997945418915077884780245130309988888471646778491812044911912723757973083562103949334096241670185161058176074047738958925855943199172196847622563804326139972980451711623191773411930097938100058886999347330411262915176854994660710232334752039120700013142597472417828330431494883892923014584907222531698535891973986992640369498457389803979314218517899251703173272411588669638201788693546781414818836599861337008752877217603383225113928090362925133078542818447595272051097932989673795293438955408296804584548802689797287168121761204599602048329913838113128654064621399722540198488037485860526892199068775409291486075116671647802889582099290462189710909398121811515529927499266366336523977245604703075413117596370171142490894766707416162042297752874793115529336672624576482126896374490981468591267091948211700570237039209626837303665485272171608977894283707716884760942261607075465228097205196995457227314035355010704472327167008502641488104801908245822358463261379685759345140494049016813307199814734523994305328360917118764267568289204875086804177217718987336699586754771002099092191832463798628477782614108937974835177886790108059092856629513947057701168182129015471693379336603673388505867823725895386051703129184231090411290902459369540319157129665117503615626452869597386892491637269730813789482025639743009980412286705694043922063760696148276515474313009828973042128161508736591295912092146434883005968858787390312367097821301500550822605904219622914371928776641664995412290315508165575848734415344448837899069916365489745101919121738760319531612989581771223431433458312594804560560351407939229099476094225199148935868158068397979192634542706233516763401400489164246645104628024663705107642282755023700334656768554465198752128340411081688761463846902483433601593510170658839762644947249557869608209150590680517070348165756072018229801047047260797079839990101958509177404842044531849935958812921112460735235696373645084654604894820403920629052434928185453222691274488128284591584655026128812762107826636769094721571026706332550459542331290088635221220538926850461432940355695438540768819886439460330573027765295484510707803011070836872129421379345780249366200729119038762513261297261121176390865347022365026405931410790839149763476829763347043803163612950567699070312046220315877797699015727444517921555580677017081934457297411071300126996845309989993623905596685030902885714892485427259656555993740368363407780286873854738032580518880226961969373052806866493906761486814337881687267139051901263092893215602592775401887283112357164764489275821069323600669116406463279559015919853384629543608709384915440437879533681058583833978414123661425758067454887906313180059669907533549041009915156781298528921547219732280938312052280621183777099324604480708911950364035355126395530179691025257881454034214996948280534944808343873894994469506281264563623005081863651805597030656658187785927135055173632376716685521596135935442738824638327961943021925455795230502444650523236152397115585275164654283984843248590885415303223485323631569089258509582489929240575116721976854587470935203728584452680531362631593646703440076918564431514677728739144676857785609113763336354948021581496342388743428858604825367851607121371097931170470313560011636683580195699881859266340782908242967100096502623437674507339538473073612982664220922736136395973678252013607278788124389308783162542895293379747874885978527743862702244388090347596472984912007143200723559471348824383313460429129147029004280588128988127690758630762196393978678043809839812853690694461186016438241089544226588039451071003393822085166660716700831145755417957290452530439473533591816985373978387850593608643416413857235954232789804376367319009146806529005121965237077570482003261265368519435593314480452081330586102324849059221912380119749248810734776703093237056467127045395007108848278420765986819393208238020144243139289407958610063652712157612352806266646634835103438747777205105555877815117291488255405547507321241708706565356552244899077052081398677382972251751991123346653533731827669914454444571006402765795520957872717815871731804502604496834252718450535905050865450339455414478846348330325550646538282007923398271441540932822450425358301903891997880127118927365040053708211081861626317361558204718546782725339779751647247389808026582284319208490717629149639574095341398357698787001528505821805195885473090284112182072612616429747705983487136973439343007121474628876226217685099459480209701714070474583443402874922572147781637641531783532038940248833102071119459963340977795836741039821880861005884323228983818919786664910686980078786238443008360848206226957079355195823672432096121450523914276316426108593820091529945930716435981150974447139961074672796300625494600643569076135504808039555225234678393229923403689677329493778130648779098222432095837220987706253396269461258578721821918302748462330116189283684919278780247030450684013347013169292365459726127360962912590350919931718336212552159744489592901253903872931114278350544049534888548135049618263348061451024140988263246702574623365795848826116621085278861468485561423596759445984431464344602314394848634202231712755428975387844323532708143239856704285298279576723031974778014844289584693522390743198388719465631019039342957356631692424493797715174393927556885733238690471440553808691827158880859161605191998606257434110119898949052566714389290550569214637114512695922110849845995346583674347843070590731167257166535951188839263425472431834788482703573943829476616094928952956302374957756359045403767761989187408676616288756687386810963251321807181993545441204468963168896418637879648174082062019925583187330231499103519253008699968930998152889096560316869618571694388722082697464608572853113559817415175278103109233034676294018454638702646191374658007929968050749576495813205834041248520317724184477481680237569706892955713449960221481815821708893191966404283640891315527636158369115529690281461383179076646587838510927644254754775751985868844554165081392894135786083403981691102233957660888874026657314621823440106870488692149294112886531344870089635273669489686219512766055927214228660643063850833222743285479995472820772469978247766154145243441184107674547450792010024870957428472462720907310202680019576642830029289491250715112102496242165340094329194392323111833846594783900814401609326296243071427504524950782753710577174709513688811002655211558080969141902512384988665171028044384939435892312021000180282991389008188504560446432400708483411122044533571029855094022544113075750387085511692193671542134034510515848563830108676876890275385098821349532322994399709227728420492312193580717331805450865793295868983031168535827786403933462992648762148790502132135855026535395124338288131421391797204873354437262372293120764106403611252479828709359795572358436459677619944611013302710175938990879492096251704684514572462372749722392063608545812681593249663852591384633542679444048469940448167368508599735064757408691671313174009443154317339637873708388925569291793924580160243859363010109434701964753840660313059647626946961039096958293271932689762915767893526914435397195044465180056877318329408179262073608584788133410643661458437451246798976616250696907375869859179960855371566843284081290474134707015994409811924741968633624458802869692300874045635094045997683500617637334823486229099990934560438976791734271875295088297270094681320952245429291069233047568099874519370696699639921465490960519010180358152592562951178881655760040857972291141243744163737388644930255253904000385382260762646693114550077521424939336203697613224609004623494735654069016429804419665733310601531893508984165637174815298280676450921847992057288235317149458959766027493067429803405693518199300188986712907517393286495624118617640265957286466513527917844931796627834975251763493990416136307423709822914232024447634179620236011546973549896577858127774470253254255308570282193761202121230795197561924807421722164324237393221391566222823684536778533973946953043253952281659150210421118398082957297892283864244227408346229135355585252104570113769224097784773107991198883634438621952233096258307738020993505395968338388818497157247526201948148492448052638754418204102151184752919260473533051513490348725653530042855890330759013518502010182252997500512600123351456879701578847794947362097457190192436805655685215347068344315909649318442500339180979615729081685959139201478360314141966912498658767940982777777703070045617185730022115294884459424552432238286255923120999719849354623870408331458026310204417153351745517145465981199580868353060896898952774091744064409721477113150831382869266451606433116393264385514082436603231095637769892697840134959354570976561766121031538317015873558818459059491641433683477285513258057583565660095217499410399022970658594899778737974701228944232298617939711400973102005150030391314063049873741647075835255664277232050945693510208391520659617161921936001193909759862769045997801425539021675207661680486367305717689232443702687876043085994821036565185512146702158512721086437090705032282735261233247195909208619943276173460632412877524849009425375857821420229802872767586055101615505030476260898026692996319653431877550809913475657973772453973358494548648104553573094803613086369840600242501916283246194917716834907986272553063166341062724689359232922411782243790076275719532871738397488710565405773075645322392280922594866215084428655476891638517270605423917430166501278348403740146553058369362302830540806956022199815099779697429971565947691944681534207432432244939654931713487976488884778678438200013496260972200504688869189233838268844914138351675727691745461231623068779241452778926148462517973970783148634137246928909439701682961808407821199271345371034116664098885548979745924809780835103866791945241429848215478948523325122754634751136542891094659640355024639274498619566515185752940884371245371857290652401977143547154983680466423756038313381363315253961657075032965101336985442206853874257171416188962599891509039892879113960899232809497227350074997196141938910779089217538706691827387683868536568004388124224260234842180322377919098962868321854856466869149165437989425907078048343429786247210714137597935753652895908359085817588542341143546898915171263577833884971000941213850687299741580990430193219623397429231406023927257575286907212735843606081741238432079451901992698911995322368010717983832517862481835454965375080339046541742703585957757725208166135988913249716595907843767801836506161731954897947984034172558236238594873503750591650372440200243835083346065358839635813779752089962760108908804103171634525485852364016060261789283731159729324578662577953620482058731346967495822177622205952474449917547122110895111583531428187162935693384637511598314261968939854791540895814712470655005057430180992828369112925131016700465976204359327239145769373077596173481356237941702762666268607358941329681402445544617946292299678965543515372809750900612751682996823231065110630022712905928947475079047794506614108092055527799080613613010559386479665603617635217980693371962343873285987657467105797786261639221794918953777435750622355994588385094397945293724710756512533537251510653258834709268307848064613881981570588291352353508579564645093542840235816292646762692371802434363377038739254150753670269546747599013839740194228367893107401427395094352831078473643426314317219650614448342043871079119595600739769190242715668419161964653027713190469653969018229316282056966469536815450594481647304081428110645594264559351534697816893214134239818632329081742520752600983469675160689349723355388788914780325092540494083637633919931492037699880872408661207099266314608609722312899269174169171490075673933547118059608334017278743909891174377901599262084919103192372333878227647702948545039119130603759302449640626148971970431860557354664734775159854002593187809928155034616556387740108086363556509089003305160262593753667433708849611630723315425111378102824639557963049238476002063112811319459339727338594147811889652144172666122977551980860776696879306532465091486736113060983263287931526836961817587492749258308027380219474568548177741802621687618887165217953886819441484163202394784461473058012967031399492516776054605019829369865984647306881155146880397544756302151985842890878380035364606160753671551318940059733662004768519769118439143647948551989321065019808997924626451281170874014430906394828798153673353045179647433383852897115091800481363498520599209822605891959096866659240097191837138039121940986111070818118588567053562953820542827744031876285010917426928907152546323329667573124753353140334509075760762301150650438271292592269262353590968705133529088251944263806406189846928939117277536847416251079994110622877345428419193745199893099639213045028573944766175757803219461404000907327013247258750349160505655973416182422270341044197932610373424676503283815829015412496143324958480737723939124787078860852516569907763988114949366759862616640386923786457435152204404582749861732619367544803088309567394268533449578193082043275468562406195294820561953751459427886356361490266004097148418876518358314945117828952200941984298436475883602368017411593108878810438601407058564000026159045531753738328190139416039397918742212734703415947699297229924555442958586317027213352212247963345163433639303658323904797759327884361981085607358791053859810969206464925148742393128956152711402311481033146239284560697681244830631905136129798987966355492932185502479357740974918373008632058710633202306947497886787445026586881232554913392083796430136572941294950337362279698063714456013490486873385530362450575062968704791407965091494091744813535704375529385959467794325782450002667525084426534806319885784958831190183617573601207309726561805034931355883752034042350590928646715246391062074382197049776718418702601481627959210570281550589640971938534806230283414868376880574320885729376918242412977761170626523085843766288680996901667537106643136331180874404469822791823908353042859596370594903128921237262100205683707578219484021742336899179709095462520814486667589028006233927665978870156119262916993120927798856475795502082509854366546463951314396081894794417057852836255527117211684108257318462144426837539378848098449472266231170609983156671438906953034657676733924584526793185678576312976557939559440222399070713502633902599506833170847347712421619939130468385951961837507355007740489758370538602527770742510722250438677910983306149895934336870415322519539479066271142726362333726678684572651439443028728757160918626080834022985230353575491523061567125217335018381019982131607525517510124783782074528593679319308172349591830763974435741130462297172270364181624332632117654112592784347877267782785491001156709529283435316208447651388131246690172672312972230275539398881337760570506370277466729343478487120509848872901443058408887655987348339591943421481355005791001846313344467137204097920557218824430385552981647920793592751706304865993607282383400720622715263596466090558779507959482032835120677391396973218161115525057875593473908672697113107960467339614983396406867597381780635416358355758546547494374205118488183657487454920596345837805538624107445966206077823398791824598418017138980534326437892999387389363127949066573626666327286278359920453092037102533316321591819068147018981738594277680808791097901113261860235846671958200794304744436779150541939784295093398144576633140836909468634081164898051279355206786575337041148641929751811825434117188767164900235200913490675774173242085514136282993798684985130451243699632853872767777530665285637342991616900705218619471042291836371010670367137853103446085604672283511098288290087022958858316513281144937051619676074515260135850467451987280968992264456060625721575458698238909770519797235997203154658334068235573623929918418440684662383330749486606359631717267436350658296149634784381456919547100299845364874227261811364319234871604631530286521734965086672763223250672744500572488740916158522236258781787684332423641717725566524190059163709661520572141029669859610505868801035415999715006758398126483170244965968970225301120113128650218649253236097443207303472966666575782055597769150725979555741146848074319513234691333359177996817133949492636890961941987321308473902713526759886805346741607236278436055570068716533332246314784338189691636502747937715741423739094064388208688613128578339744441012432442599891792579539467224834727197711582416292478570699352570008805833165226645254389204988012555539074604294097811409823334969168600704009893140274711558983268986309198900322103818997796878469933312670173257987517516772763866040033183461776971636799874328198163655770804768240489402961890830180259113109037276945464517133760527983318001771440054467578972726873005503347049419047784557548214896174358034754867248223747442504329756683789032613752282345663451161975962154849483120844752436896056650130320704370775660121401124182886783635915534093657409276878486954134814260701432738673072310546816547829178407848504148629252437833414921450444881978032991795074360134571108790308514800942024708304393377271878723723624296205301723136459074212245309078169150053814677660817638702550220593255069183597111986113508637356626184277781159668245575595606839172212601432467961844116854155245484716624940961549435540175661979537227672774287484603614346123495144138513918291921714093093896326086945500387176624939231277609803787514168243695380216900937169379509466883047083996807894487381387843272834945472297290373857477483587677094706786967403393274527646845449196949484311486798622174683121794962985567005058838564886273765792637370759351500120851000690998661594348510868038070831590329054529428417646769261838553748593679523141575321459423892033934786254640890593101468094113600215322288818279640366989292508432287097938685882102123372303539747983314734812743384023919305714179560839593229977802046801036019943351746320961235468666010088028873844858864871469878838843926327403806051737545769506955900364870690605703655643724223286649615289501957722107109324148371809457508435353308199838113842240971114346766776115499253112045046642774483291256324319005733368008428357058131337710518528962742849576283202815347646262350114325889319350094089422570988193565517725295978397343674942917336870599537495373094885237654819724100280514696590602619849193488097745642591937419456484612794538647195637823650507466661108120136890914280272346783093472013811657611478869749955748873252147982001832901866979469431690938137255081190021427750475494121423244763677919311594975981588754316887909752647468136699105942531107687041440335453908900410105337207801261286470730994954070198168283180350685123597282965034206593831547855573149609749709461054003399445830428351631735355107901123406597846972864170085160728828654849449274606578351855236776410117562946884945065135019356147298968214599248791524130759662844391497492273142701099841969292775271025360312191041682859810083133460587277764157635563587256762577883283439065449852828946828704368457139650907890423427169668880846128243956717717532114019384897498450835186373247505750029452535871509544100578342896740808308301448957441418179686824883962781009903332109190265971433220565909495053546551738166824279589224863733912973356910021146088247561121203336570383401282181480344559809196598994288439733427531030691028196828618615795488126807837581413003437974091424606769098406609911359486568501719589515268012925042501463366750932153967687317776035010658244862798964086984071566617597647124879911462913379771727203441609433894521165268691807537523619456604086179864031653595248235645677765900456471123141563875276965015245988347659073505992575985890423989426120101892021650165250621058642073507308315813915401280586092699738480439526973291364423837387582529752694931423630364817439300906987697474261000761221723841568424796788222350717735236929962525238389078999939371569279598531529641883985057515542061842314332290805780447927307000503306713777206557418367307022855216699502269381127863029143879921157647614618951537501190267757321474668928407017786097212512597067079327165803426702045836637255467757826704912751110504528768252690207549364526808804169512023224331843171558130562876153348039882903832613456894507987851314934358851405340933361584492504985033353448967937213122234435161032083872454669056462710581246008862630725118657131726133542947605382281769503805019969336461807600308540821018788129303371685950916442754533757804264491358467917727459558067848828711052300795145079203212200348295311039564593751114550724795199232391555698871940627179088561957528855680635631702390446017775352233617671776560656937561936193625957006849224843828914428799778428010251597179524828179342050229943697339888312786894380883694989720399631806896130045784999474716058935338285983690758875431581274794611734717603722286489471301704393985136109701248218352138666187821323766164406632541867297548362655250981940527735820307469054184347681212646407002405914653832564359992898018183780155691115063992561489952201852498353163903906074388326420427942719058506150034694319671606393627127161369893660688471815325042660965164670589765842943834041334489981703509585245070376250868978530336015177297452300877119980938202182002832248196876523179627503150111208935888075560863606686522725620251552046035498188641665639665399834975502500443517378078108911971007001854506079112140800435029909765337370643707723379578964579544491898686610930729233733779956371028153840313239929169288754888583645855133628103130375974465997632461443882717791223764087996184348001682463682889243688590497791600340158793703962881241370090033475183831782234931972553767959181463256693037323117552118652202616801645865331479190320055615233120376584717622683069549459935099121858352992717018662466195542650555791692208992209374160633459662828650277061333837852659405264411830101652559781252889062460575250825224715375493965389238843297234988872188168358447061003774797565237579900197363932060532686440217432937209320588840765651246479469182222312837349991621715284041684638436566253190722159164631590859856326456538219805353601019034722959077710817963920016920444432337635678116679844132303003566696418034008505275830397152153094980651994807763437185823467035713752190126239597202353666925060799714128666232858131103001826696986982364056201979652378291902170705965370311747539032681300786845008674364549886702317310811264627550219881281730952362182115460607012873066501954555150366566592293173926430194942848113830924770555947397123814212744607606962332172705941507138868919209599018903706341755049947675931275337376098118569971789132372148526584990253567180631931533738402083189440107358728231396447490868722744425214843517967278567885734782070054750062157787243746950676902332419680788697462228506011432618027874274474258213826943940866024364113471013511570979410237673563525672346241586608470505296195793250152085456912319232852540122029897279491167347413527379452144514843285103670961349642566871978786170938900790214460254661278542169952541713554785958251267326901247462776898750349813242602141873314111691875857176445527786922089468144858209938626410651870202932905331863676087401755878042682528269690114897591568453632370641657499860018496204462823603684213504968057749448036134877130958372196733148981268834170206953802191919851000865989117091573818418386151817129983877720094677561752585207409627958271933521894050406448811294561619533932782128817200542687594895331457835574920048576253750683097854334895374975325768954054719326270917720364088944671279079740958300912842043577048840544083566217245899449631293592404360359133554963973636331637286100225567589042169516055266305107949422569185482022457225720797951722773264195507225796927216859052186284738283592265311486688627915331568351218137070883693020725977831132531886494737035510550466774803090523935406486587105660488912266007994803991495803081174408981993983403853834215098021154616930358556686255892480494544395239593729313911116277356735319479956371954374431442002474012459576864816870877179754141228033942753624076059793849047357085357947220635960180232829252104486962822188162402618925670849250527459299252204382188258950213443281728836121927095660560594844040670333886103385868787530310420420405688138899384795781312876809832636711055677415654202366644097668081546520442645161317135424922414930883973274980264395662125333794005529898362196046158283593069648321811500081909673527689905699483197194176984221322937382339372115483425291908655509741160651932809795630560534783889506825281143609976466828233938748414719396088990803834907626025943074479767370710517024882081445485321224564446816734165322623426190559831499200060926315269206783095490234289888388215261310681974013719578738797344702950290435440869040686759917437626622239460464434986556736491415411574406640286416996447332617995396604521428791797390770542862152505481891290332677695300910384532452053246541940041364732548114606615818818679906817054140301954920071322397722095502767311471742673111053448113874957001636772208715090570438330043101581646002485433306500699856932983283239545920530261021097829508890394630986456966312591918742533887465972526864930761834098109400243087570296239263992088138391994591408783448567341217653560073011116666813025435888295942239672443615767648027407637506571429001934127193683411771080741993088387318857597258053526082179367332067053590490159378048764743486483871866011520615119194522661825132022782298831883061649534101221490897016724937456036766661168113663567361127599954754364565788647147706352159438033855011182774278119336950093494151878679711542654945804380595004643020985512605532715980917605411040131770073779067331787465443332060333176332764416530169993881577687942799766584820976363218684061437003185160367438936839518151838068706012923805041039709370133532754070481644102108032323341202972945372839037039131202651453327717196311432034879501802947813915416711225468260206638482732358889146923773802851820263589469174298060688264177064873620488273049477222760874561941064923569129449705598877313054873871639289072818588926243231650285840988643015001219471277649413631033673014898785721790528356853074517166837625269874312803340728712014232288865127007583165800582679659999522814185621676061408633594184840628381538820770277222238305926782523977289629060729047649450754859225051192617573077700582989852999591847301123007801193726589495494313764866707840622959848152816208563864856797131046113814881231661841617959762372060180380714613142910550074421705567262912155491931405758073027413169989436236059522450742303971162171649450338278718239172138328066131602441656413572369758591553167367827113686369266739388746571768484428707655437440258623070441228894248433821344202523168831681990717999810480741490360118470933209073798926851414373909625051588503361803480573696253612238203075840062559689531512830879262220993315780214902418283222789054105150308264776236772161981670625977383077281278641527091127410413828934417461922153431488343560075029601835069930453777007181660014917165617619303205713101807587551122168448969478417789792907226967824722599546839781664207788629336066299267548337635263482357056616622330690499310477646004077479579036954532707777986248582721682667522835724420285429251769689912483925744628921597193218243800473240715091072255991350732354892422179149498427265135743713892013222321944363883697878425811844865318101353599867437208988770399223428886055368315987827456633426000605278528496789725263929749520059962524567998669098357463611080672221762281180769192062526486901364153288834497564425341279677683057735464438441710608841084414103791247202606545122791457658784856701274668352590479525378143245216865831091336613910255582862772398461095215092397430072685163572445577383110927785106401738595919757156697569368238003930434956433698261860411999798257442247972132062992382586938932051163113835902722397818562930809456398124180723661157535717657717509152586286424499239889084515919609262332680415402028499140335293799488661299058483798997453219828077485396499837090011897578363292215699100651352251647777926845735932768276105277108126193050654155462042427885261434611959002475321958924128709484396243667730407828290429509798033669801996618624910227152490147648347409091393055785517933710508841999135055764916881831216266849894961904840050394331801229881687782020014449299990140348228010076509176610500365518851746438588052300291840801122944317852822762414083603635733651361707884792114156212435551369111268749020921929499461227404782898393238508775282925345147151656537633555647639926229774475656192850253783259473421825173074605884954253273350348760356235741971648928719399124178751017601460593025825691142682935103992896201174946510345526693709460826007219536296792473041733511490178264052349206916934886560772727173214581179565904029277060231923735395482578659288646288434852852682534887375060972695893493458704410106288631690361894544306842769872651516728122038181233600187404639913142171075413554322938410729699632180878717751973093866632760618543081890255960686793096359204406932854535966547253917119331543880938640918883813640016022415178160585915908582035393878033829620082140958681567031711313986287514850219369118706182712754101733235557657830569071167524181420858474822398185179860540418904612188752628759694245078684351595854205114154021550329723640536968513824749582722005794132520551888434790517086724502772590850776026880495926134707427538597830037577421533324661636931468125070937617965270058777009929526068766628171640912071609293330881538763943075288977935480062094545807222510791567660344351584524756043702083966372548371793627328106828608289170942341445409228110949557461987890875498973735807735751605744419689397260291351866422178944807932738918291624528500737910321802724571378427729799909068130605322841460099007769822614792851478449968157679050929049025180375460806330126241079826803679002153665652522373582493968262008507765318632148135570601464908775585501432283489702855837669977796479392906027570656900192639926295234182404654146551188640791206446421332379708660317244950844427868259784535447314530751645827197853283425815841934298053102982488382799928589043910029878117066538833278677981365475027041355999933302462619081104939186244884319968676578357201005897126351010091351023762099888364265031639069957627573224248538854900242021458832530065346804437793336018328707492161329938884008611861955464334283160806969439671249133098192692387493779033472309798000536185848528302514763866949152074555757438953136344030364760795898627908548215832472762211665192283897526224551859162972323808874569383679495666614180856537810507319230167495583014877004113211370413247159546464548016026686108360358186754076327895047508406525104676383468585961381813153142948273842544987210604486512029088725257518114993134825643405235944547591277030880112074798340599843719363155087117798449142533939362425443546498228521314656793951444810432667519692783202769023168905651830020219216115627303053180442696478522901199952734017609222825764313838955077877370287070449867889626375523773717467082141218822564573602341151313196856694245975511131038036396882070270200592153260067519523485788770890660202993225997960819774561495762469205990612532641299379643054411386025475870461539709279143632462317326136694378654936495807425162190225887129963967213203516055171194141417171106421312694627742718911656405471279194910593883413761543040138131703461217443542263914577747627072265950752105674467111361523931817132774033477507849604074740586043307411134541459802640930820968877115510569522677279808944719406785855899327367325314070577765735301782332781734708415096375249250742940256006494777253423341156245584135532797772577021731946841201524786661614228655469613683461470063165444271566736974827919104209882275241403434100141628341491240238884068835436340132808520140265566331741538190366874010390059163223945903451388680208920752926600948387163779344655734668724397661347382857522092515637172008207166695557895259605035187378182930353940773449175167016242152709421176723247385506174575025031149805602238109994895235644719812918935790757104657688731145312522119149658949005295459051567570145207949234291339420065134995143804510723474773006011969930677790677682410727181127909896838452675077942234327207115336134223949987799168357509556968769875083289642272185265459202757343346229188668693938556794545838665318691435077974588308518160556663617899543919397653088298607264006643299966030803801722863890328619934351570855275999542576456755668125627838519924720958626701725752906423078766452345726444284518192679325993697746970169595183863347765313474694717719811527046002284285782083680394619067628709239124905289355815653495698474235437727083899500067629333408636180919678168715058832547272625671457731464980045304861714171718921058119116670938964076623010038770315335340912289423737980592731061664500797698306991427822510777643516737199084084262065973017309864654345375931609956856036605082817146355981756738453072524089516972274778695131575441734445472231952384246941765722568988931103741198664489157762273697918724205586520760798995585844301144929901420553871053873765325608033296818454616866108281153583181679614304565831807172944066941158637638484611000438217867311835906684684503638545310225423627094604293440655375560142986937850938251419954250093062755848365826452673187955458188516506300240402277182482747117469916392793541064861603346599171707268638654851571394219748711916357072843224598328820843029585576234791759652491077509856889414702769200654833349669584888597709088030768117692000539140847071329510172814612187091951518065110405037815641412908539216981086765068508121346861797951925878916032126673702693686799072977281717652804885975603078503181675441180048587346117137728708121233361415629031555871144740387589966958056653196605283683522524341760527733293448970924283352808620617571581842201480630736873755675657074570658267308996196748386448730910525171439088389512013313334954002840893279091764207499306144562633737996089086148746897744623338024727100021387600130016419879141503114834546085762748651935996918967596768225737910162215578861323125523373353914384316443234312505699579981068857299605833398103507905397891487614115302314027488009071360634872197827072857239706246380349762820684388816133847768661702578175352556528927515481510496833441853948265907541833005192252384516611550946805077160851658494458549888565286782597173547819572439989821750440009606566410692416877215011179898283811099201082576187883976384133236217473160385006466108189109765360147538965823524330570083936135400462140752068307599894186350346692035508762486276154311150368430667642908280074440988394532411186140277272130722016617040548123348140458733435040503740064004882650787112791443605886719566576176608430634671853980058310774936375412683737907381699476437651809177981485180157006642169228631130132856533729134304264161160306035702731954053893889233984443568070706979519191328076164714789031733404130270278145014074786299403774930064750337744016668851871570545373452670969830429217052959743467535024484000458606484321251067182726114991255507741028377066533863771712021128192363358233363403876630996813821037495121262939365053814827665611036592860170977465471116753773512203563007505429472082554699729397979575001983180678455749127031693750613907824125453314346981557285147350720925140402302844893125259284342773874202006602360416247000340305131846957597237094582875759383268955110782425590523712422614027813712005738334729945237136283122876668672282294943715773208438522866523199284912324852821420990768237411031053043174893782721327678786576724507458080130356336506873670735907194248758396733157905234047482399807770741145551313186080257755669293479046672955421298940072512437665355353699182763645960452110921703011377719237325705649508019783852013130745704131561280114092739151213741092002153673145722018643941327099882185621756595659345447298506292427984223394743205838065142255145878422778457516531452377600928320787457901593950341777854034524798621560871703904246687644929911898728041920726033073686580088906979567405733286321187486025369136222771117039037671496617562142278710476367501977294877869715517055320502156564923212299157588192624145247172814249204182576238257553922137312588088773652228264200729028555887666187289565336372879637900349016627899945584557250723205108426998644370704885795623223128219764527054856931536462205074408600822016492969472723786966318972885375352954966645294412383996365867015096546871882802464599629125189436453959887345749021743654082013392060970430575886348439465996936137511366992208600850781919002187843577615593015539559288229071427430368696208451771680869247506425399023600397660271076359065627489760857112302339266339865239845771928082119075106094518904276307939246182883079975518317747857133431282328261121545024673727120116372141791689107890311336996670638768452530075975624675276488364519066621627623073885009784883366858560675740861106560051941405998591594681105712717963604455051741440254596245878789797635421788371521087066297661852842814049333130562068554228930763459201360872260074152723463502943891611651667981284014728007118173481291655603945110573726604350392484695196511866327011772839987125980373486852038781445736090398913779851896721855794147014757893607678124420555553375747478670441917146133420442520575311010792895222079896006253711302311568272434273128920073849454161333864927315981701689876696086464284483849610790432291721333278914040614432943539806898704501133883044662537865995955636739217977184999108311070277106719062472418977189313957035409746731494661211253954817835237715707398882971691041663441510220804702298243519531958540311402838556776311414159627115838925947461157697940708123544005246105291253844775249547182159813467828251043156494703371945062315279111746452877465116744889321069997943568211014912925862139701020874532365464140714252654516853123847337948386778553718384849693862319585426730206788576910574567494397894657821691502507442765039862006136581520090579035918281614801745699847078398439648493713049225055256025387773380185622903699771337029435491810348667079311064443459811367215679124314900717327135422737463179321730097175537363507528747784736936195280851442444253116649157826391722486327746070694183531755650601594404671665078730971285111451683142553965887179903136578119346930401776883414517523853360012578440763536712349508017110268051046278185936423570143913120948814358040904981384600349971366653399159752520303998516195898058307001925607278403696937298735565290243643193405851489019183652257129226012422951076240312834644032862637136344700072631923515210207475200984587509349804012374947972946621229489938420441930169048412043906462813640989838187277975410993874855579862843014592070594313294456125451990732573242375800947667581012661228540485072269732025731849141493880004856742892473890626325073211277989620791465046777750506580305374086197549337019222971519604099751063819799931726280873535653820927206413160907702715449368361140508274395934973419808895468088573928782757554956013552872117560637808816424828347261949425017326289906116871487823043823766949294260636272716390736765362563816076235907594850884460192941888662248881808734688737869992039703128859699601725876918100370081625239076054529472124643419862529568910800838327417051014952323907163271474736617837653968818146519335227787501959788877457726496295293856182170650639461527394863792893708877139534743214175987856559792274038537487766105467796716711762400715797732729133408425007089986509592296730192306185401816787699984994262067531510363981550676853028486624324351390490946180056004293086230335041587939470927573293786692671233737207845028049190576718568686402823218307339051362784509491659895595317605350931267429565513638815882258533191117256177401530182104784279899208923425683892882351533383893964630181469739560110644588639475399751195783667662199515814815894735289720735567665387348690353773195380843547717397109448679818485609719876195078468124519639062302271703105288746643047398315549428225012035966378059560542810734522073705787510540716406764465068169171190333299401086797265674720260326824779363979921425669187230565814530813583983090563202731285199344549171261119334864024665901069660172924813399275001950115490611539809768371189153093031315616967332719458694508034092543880570866549966891353344973382605111401631584713791881637589683465624648752892986753286723696172359358157081279393438337532036876813988508193077036334427929268525194068815388795880499248042054392122583544609385483496276130392421556029897536443098143103276922629492479816154983944164710751255118155357017973072767889800164822154278288772898723418137787135670184102540552415722348348494847880288830314855205956755661447269922290749188386209669485604724396774000451202601211959196107019650370598158653871543584151948529654160645905149551387789331064617451287647055474726440110695123456698628025593586290756148143933018274583390697086056981787096230552803172883498760159808317042060914308114506282218808540089595854898014080029405387195850798605110453330617305777172310872325936923516465832528300744249844774831210875085912111795404549184935045517281776675247069759465717968126935834268307475046498450770590885954441520928530214716106128004083573598112345994924704307161769990376197761827055995038374687028416218464115626236231178011359395576318985557482059684254584184514435014665040267319091003796091799493546128119370255308002125550813452791603009989178098460949083868764203003959395517082329937918732556270733278348907265086069301632329828273066692259605959934031145387637164681321700665234424625497682097642643400787827057836019588316430685146151528553527762720332409021776998600466619745945152082944633780885284688327204279572206794940276111715288759458752337322373844883965318932270905225033234604216740829439840171355307734945778595471971729764439238861647590755481093248662309735416880718877304107403768542327437635764008332081618153104745201193809518038369881598955314775457255894611421459310539052714829156849015519588183489303602226650165600674367215222270147856226020563335601344970489817069224092066973242610942218496699674789792555593079966843044886286906416406023450738323147723268348853109317387412124694063123904662282432865787993285670782585471078829216777744909163951156164873742299728836530194793697859537133859424519558070772925013125625792464354079095166639686944978931848128630867482370472925397713489277649254877983663877708370253624672794610645456894993905490233538190657403228293157659805857012999625830577338160738219629238220352984051306699638093906243538964834553193267386027007468501047228037610432039829159337575058521421007578800583758678237584452795066623649007379006014990551100890156979867273965228852789421048058803134926108274564289136907110996526790582004300079175487108788574226230127983873312569764202481134865626018764868951335768882863576678827188319328312262759161485061829649506056062116342424232917052433180104937929304482849038200135307975481558827259546676675455668471040767484802936828826936172712191158046561232587701383256946287976713077255632848339636988378750477806401931075066557017821643269398726139077175180236224691256717128636178827406334323181372267639160504813240952801276881645938151151113523548404518501274722785203893831406921708658048231412913546527452866732403954239654691812872904510480031375828752943854011548678000690623648333663307758517168627345551670740436326800939037553176292916197397733498362001137277786523049975892779367006176490596888707795417234076409512684551730580280748228134359494921973995399585907273931088942683922945606626972106223703615510275332021495254674262795352513190668699438050708019880144772296841430732240506610483962055605577853918054815760089918885646005964294954729079959828939534034050064030272669564706710621957674174328146351391822916648170010863323823955624411436034131807681679774867764228009328839322321432115644882104298305021704185804171057523249737560954291258666135898616407034219186546295264779753216193815515405833770386577305095155522046313821452089523103838508160213688018313497378904221452011534694640916958675466259625757647935042002400504873477680830869592795365114816288464091624949253256664540024857346454687184391752591403730442896021070022280862607533058328067639713546716026655093757698712964272241992934042150582864602073250980981037044590419438738488347682014638411613508132051693584068195080473999462769173098743307544632066311809502395961161799354369923334353717450274451008059776116445434294052364266210131824185743094144544399890813512424953206691729777619033094966611684437471347684438653891329961903451763693258233741297371918375888347007780410369029024298005868060356649287638342591585493904634147078764740709111214755226245762087386585297110071998571462500006399702825449811618503246399018438333342683848589484237001648030287722515562439184108985066376496576432288732348457184906519345734010352453725725333302992267302775040309868115492482272287368499716309802640762003055047026248891778337644856089675704784477764234149298973313423010481435634517021769629094352571645707468254742786447454889392447051494670202963461045195616301674599849443270066732757814615187164484470441946518790609267338254077005631812439175276114858225728781952699052583461408806555284247640517705387154217290550975599510916706354861645503111627474343407923357933131523566228309577177130976619992171502535432771053231697815338490612155534757010869668760054905633370641371484590354727284395849760921428306044875342343714669080955830344876416368427941924545980129639479502451951515474371293571263657500495616952690507400644100148840961699077300085900459915426781897161551710141348869467361125800039084001524480987444782222716217249426609426563548158894008928975969492912875610108660625478344314940418427699645000079105148052166495169462387192311561098051406204428740971501630156221596061100958592066589322915795335771914526932805181246025629246802608881254575220870830953336226945569548802245811875820249463196093305610041010187409067749731164041689542928110388359049615601056305561755164727833061384502125762286294852543944963741242035822810292667088816804064951126667173040741842197577675653432214404496812679390760919119971803665310344632765776403499509407112074055809041663658812094032497232286138638025341060447673936345913087175743742717402267738058872730425478195717424556376926503170245499028761617231489639639508098162839934095331366884883817971460966513420715205052473245862511030093763854607005405907039357927604978998841408722478900222480598737705319436325284352287355497985922871220653157341455881096466802980462474627474041096559529241696703577528338817306052676906769910778679629854297521074095080527609518682322825233592431190803811846326647151777967162146921506127144951117310904213564816264433147810721777244234133257833108917257866247988150078763086506849466432213683413023910366534586550393920238695272849332797705212213740164485005838353759259899045266432107760873689386665609679703377469084175837527065376313669359840838600966191725342493812219506261855919556380840372198977801973647449174364068693219564849434053186403328103223936609861146545297418805163279756062355710748710581439246302547642667473020530876764848188749724800442628185687517565376042042967866760008819047549401279240309711744080683272351344432611980822694713359773516943071288032763388388828642191407072509067380433989929330682489445621970555311299400394542356570498702246848981161226170612295439957822726515886687495006066166330549599734095652273307114283003226297716677429143145800382783554903712079910855283016541521792110485481282621009302292799609342320118408546982068959543340230704992706455338934853629365281448439902849415728369480823954641900442620354957593318382897184796732844394327514713349470083239048566339902917610141400581262144478739769226458584731350690293292329602622579092564836141441926587423999268447230737925453775527221224232022042465389556588800030607845682718863745190229002983063468795736787045075693775743359544356298697601812018595570087968949298871835186651963553593350674934754658950351552653451399833743864986463418971557298766012295490099238044807358381211666388118939704103919519196555184254473150069569867448100183885368131229658396301391854079062429431185071589032064900265787766228619027396956366115312611466887540759943183810271852990049674290641219327570350290251371182010947239501264484761982078939458461295947672979083764905146036810795782623243585001652195367749890060789954810825284216546816485790053003821221690498992165112019457190856859649373933586104247798146253002317469286789545728929564738913318513842453400230269008903967769226685485697878725573649977823442623412533455912312321037621404296102819313229815948591823920297727967823308014273539319052903580779250951229404883794798487926946475513581225456464370345844280605035063029415472442968420595541247299773817071102622921357787994738027561100056245737118710401209232312532608596031430086409875142440244494476234777390537511972993806497869962029235840367908884402849160380871525508599421483392775632190402249348539550231450351507386840357213358731390947210855450340508813297307597318908503456382760111520127079806898274834545400896648725930275243996154938210227734049130358631626256209344665584668118599364830275245998448566204575428541223592515472640465551564663796761686054781851948321476978408008349875073722614096368507555540852000193708619997713700113566854722212979540518739358114140365478890560309234308724142434942564643074209938119820583948969973560379372380609828445078199311826464859349832529245792380677291354948526386845650825007231858267035605934150770575789100845844483053484522854543872387184813841610712829676546397392550263852633321875501633393275048839453953515816217422384916717086436920833708248403011311461143313338345079155914777224613849386782616219048500962067755222163986366821478929132880032845459439749985546819073432959703632273667663634349342951857880859895954856193288317276251978520935965463448855149401127403901523552615989043966415145425434657111857488282016425640756599438606192530614026645380986285051606615579882142572525938657410528265055143661068817867738388380578685027586563473533805216460419177705067543366217089727513772515380047121269281260430368222530208676492776505647414089787092926205093113227982479515968950175616212224131008803754229236537828481653441852468648077298459857552526009396992773516610154029536287278152817445607944812762746224615848674454533413305287846975974165517237861441360185318553087838370379823888486092319031036075798095262554206344439837162663320422864303517550045468296501858983925058349195378880004309134002877666380403046459346247684082805230900837386303883226552384072230064176124754864859313102243133819220044549961759959628475636811907161511881710735546037991108698792093019265976061654692705249318101069192405773256787327456680428301989204463692666400379082854969077066932782867329115026153163990003893216108103229367414311981883463396460686144361020571797405631705845493952244287128561914076934950373902367732969664430663660678231505695269776614492929629235204543582254638935851609103886514641594208989472545098578992287902512299175381997762082180751228285689305585864080872798159873001235789483381133617508684137996528754593626293719010634586676696567542440755345697578608424654324440430109890663954154264012530840224655139646823910582319858986750821516210040563982174311152661882330560743547824698078385413535821792323350238777097824745395147268538757990124747406952791614166859710320455285577062490649724586762419832567340667398406545062257455169849495198669726702927187144544889225856614101789129499941405481191358876165451891777980267115838212586241103680461871144617908143910333652477339882490330637114484349672259868396656171872950766419460921970096047749807490639774849690340746682968837946110739849523390227908725780383857314548695218722577308997503311328806433800709455395329856266014210147837830843944072224212941321932389557346751136055660139811364806899440039638564267517987230039701889828360631944191123371572443502178806571373880995549495232870055278664176009158199692599428709786420137096227075506498733665986457106245366938842054874733135628669760587671588965626426107651807271988990302884154631012023963875940149155835841051765843357570955569773233177316208406727371610229875656346717176039597155891118614332477645890022399316222583360673963718221650382739721477417040300485529677270789447798106194842047840754253436237501245167634871719255740567078046482882998743544227677145370362800870626848531307693524725168930777437128789871997872276148514632973521154917286608973595467394686189688211373713883616745668753873993410876070486824837277161686624969039303492855313974994699367329100067055307004440039503617878256205395614280354151296982464913140232330414640637492447515001190030095355300470824725277586116135469733692981832653618418151750386359815182406693008066874859631932046492083502888548348091441946447608585041916691693227150120459156646016208503220587398843700439044748297102182252959407282121645990684783479762935376727595722907364091140177859221104126034302146275516547593500681620409295890274456123296200736762760065904615137425649906133474476307278668910135876922574367772917460605097958343255226382159914448382595595375766837392735213004918348116023225255665432652968676739661750097389489590910532316444907151404844011228617840466287633632620227014627699932786883775090023031855944802908215807076448279829273312977280374311394503497664093091537801465147985148377597655465715960350552098890327089937332586991614381432962508881495280503981682670347370007650635691371664969889651736831434524104816264588976521154445412648025167148826426487482404181015912629763996782053304132998631726732167115462712697507736233306228855035323493881284067906207491601920473370419668365806335414279343408379930204459556074969065037511429103919443083506966542939435859464952615797392852649309427138232218140160549227107541890420952122284432507687470503062150101589683015903791059859259044330198552843067182633498117913593352089504812556824450660083565849706761323423427215760533209731035020365876947497844286910502598860603521641948809425430364391116990058251788490281536755755543280575309717997897787863564861115723069248326996284336371478289065327529345244853547385517940055709348906343429593527174958075256152190425856440696427219238922789103318527315182099359996200232509444250246949239050715279060064394520991194503138885358802515379814535809521106982140711887147062968483209495065706053935585810427881148868508967099108190248406283438086513327941496867290853781617128941238560184133720450844160653989867391707316541141116531924390151346396563231901143207313665570072067563812253917412261201329011585449422437041548440785820726394900763148238964029522105059592053266728106198131587682847611124391247753188174072639936656958914132972593763564513540090794883819013208571584480359307464082171223264507156363720211082152474601524581998455596001806997904112323386277301312611370023726466543421311312301159845490141981733705403706350653702415291329777468732020404019560716696568891636512033720891148868366817004037955687534466058147415408492079024589987415021344571248277100612275157460746491583992923773501968840961019254512567160014627497467163382485907457386927360946618099558593645245209333555453838624269508216103123654359630835660990985443365241136010816760102577890117125043366564680468674933365705869543332382853149023328659481543327774189402374890899877293820538477619087324553850966297397778256838433450708778386793018172413932030793214838849192739203923871196404878580373074938308664499298359348465592856310228151903231450490861364250859909517364412343423623071097412961548114369306590625375231766899112405973776142277589330645112473375007149893237087477026084021215800981953796661062976820548548157034308223365400651200574096003187452570953846204427272671182135327153369511984712196333034230910181433728193071212974051493978346685770993864542088666043899875046358015171452646094545598415817484995402689787802498929701937818910223491457946700917842883351200548632387622847949398238540877541460488855465341211295138398835663248919037272542053462173999126132827000838679238297236276998716484289954490671263784606452952006763411565755937351976771385301282052568669447161814244013626853331187284061560101089702928597134499734907593917823091497606674272836753250300080893515979007004419126444914109967308193146038108747541343608545246909851119365046057382790937839645114011934369984173541200185413249224385604389381108776064288346493923370530903740809986821993648385990071676998848497243665816221360394871961203404375303056590480847980256643802493924304800384406978946049181038146632067576106527331448030001245480895907724095821350588321309259435224655305856038211369199328999949389047558333998864698857456455096524395543875349630945581289254672542395065729198403006117310618471955378273223037924595947908069388389302228286439554765566838503009036337637818210851483521489323128404272963809818928256265272739593218751474523265291566065900296233949352147256298952669892665715095707858741332227536461679173168943391466633273905556251013339222326017070867695290735125196647994171562785161355914011755552478608638951235277005864684190643480440789813277630761333481003046518642840349195719865213944530424809629897056651381296741506087963993639865714882052996577028094409006699646801220030367745264661798510783857525496819241031474025975613124085255100609980535840901517114535720378788960209122035423492740584344703103599121718761665602411545211392770413332639035909993497349323880355074387689631369096437940812575671778187764589480097050206788956739549923928801306298748523923145624603834808850415817393357776136360963544875414971644958141530794863811686584334785687946809742856964746214652196071394568841892020606121059755036607820873590334333981490903301211196734673090559590939665169346329999909600842478706584971541660659117605789239685437518026482753939976616559516602442780992000805198055466971531318559327009035526032686235816411355467256568283865459905150730440781674594876689804783366843874168113426693717144788796856619223202744619334023559906052366628709274771129533516722281006516963357386755359362656089785514296287038605724678355550474027048320401807139163895456336153737839562076615124883319945320140774455579196938140909475793567930982023891754384548351172674986469558764205522828602076881905764851738953449045062742209168307801940487307022075674894525911989028959473748902727903521590189015709546981898293982380320901265156891504473766727734570199086301224730883067570639914974081986198256508117165155303008685444381137108528761569667625482903669705819309025130622898420469338613769345151308989151025251218947065902099470664473130001060046444823683041773552832000870109605427586692477243816306848019157753181922231569748544719623648026310055315127613507126028529872082269950532632920660516114856671957160893031818084025362698416569124158084492486866736714048933202166385906982775324615599193851030160335923938006960558752604395860034438193277700735175148339080278240463764843447947616313367077744981681191645481092097741355096292872812962226075106755091902662835671764961807228493088465666192438455001424473171703310417400892007031698255181859231857047202317514171411353442417038996165388627000163191855012505078031966053508608205797879203365598932995756406578129381650570187598497639687575027055910449740352108211979241127665847835547101696613586315347556181330830072697605789000746362246229646841191745185162544273361925402399733951722528905451046151530784830750837553486855395174242724062382080996554564550141789535042229134018065651280384753975481616330782639008698059774850595239364248362209986424153999979430600711354111365076027090575349364312055902384628704938718888922035587824333846082728528961643585141500349473535671037328811659838520073632284558746567591447108826574302646224045447673451308877021789957720692437621844648269161155867275649131669399371794551110477822174754805206333435152444779901390082512610471813274382063872234575117239144389348523024735822289017993644470923918328796683406571185882516896316764073637041703054230287925870438531071424415812442581483395044858123681427979831435034382716542556468890240032939103910312294324126853917287219879501221513392363394839823339248557476425987329127596228750512871945056258503651790762787233077867252921834907564869456610398282746818633975040564346077907429714331423504624939266109465937609730416104949354163483011052970038163340918701734354210617556542416505753144209650527333730758039945524817056840787411163408337499274067042719597761054811163373655098905229023124670785716581074163036099628321827465535457326979715012986798036007747060521777854333781814511475983545267912423493589823602178858384084883523051342045040434545725133085005162191535010332404192123933890824936194167973503823030178020243931717592097426128089110138578291106330607018224874859256914315314841409328773298194129097945810754270216146763184444277343099160530012652743878651926136190098001405928222725938981603947037897994358994615687112109117320328133408057406662322726729653116220500630624678825814623172439600672886902704666400906654352685088656900586738424941668771387282021220079602394929235309296312877188984576796345163513416128866839081829586534909258099064659127915293444205698080862067942760177960644725751335042697265427493832385819755677427764433356414828902132948578732320311025852645921136269572038258166786774455471200632229362249108899703371586731190852365936157016699012749667106893796088190847442459545220631983547028634064485338591700314849430698558213211268453336258626507647724825761581201679290983323522763372262872114857984062189508982991356939788759660694760235304480203512010695766771987054458725142636770113317712551813510950538319103324290119180848590389783582902777249408446796143157183704584468139657079980686126339943593109867967436689237607859955955505757241079142676628595348061980145366578501518092284938585354201761871834741463768002749364265281090551221557687023056884417912906693786671592365936990160115790568888193192457124957032049624120461091383773815536844769940983002598835960261057085405930716093948433625906941937237391994411809220566718269028311765134468529640560500358964375194295752207167412188983664407343467707707688324116805469413487349538379587987170205587715500769436565074415395941409261594754885867231491908047936826308446216350951732075774912460552790554018446972421188932432384966468324938428186031915840305735390871298053957186328295977629387203401278239615175026476631959991148664600408534798194113698765782468364208789177110528354794022642089837259543917408282202738707011658828979314193379809923149512244069880877577303052700244760415741011940210424920007368102318605451929831802050208748066992459828265821903121898025570673705109809362281590319523469261467332471842581883100401250250119880877286958651423145668525180123878777326228434876329253188843513409915265743376016925328134356049360424021238976166165408755669320355914948565448524759590564784823687042276219563357424913030811582891647883053500435702763205869217591641280691393624007153250815032507933499184950922987780726434145658365627626254062320804967406461086047697122100913714170822508001514690605210757446766391841616749747072580082468755583683341661780511375107878669389810812215986582135944254068280974594662107941912970294711390919098778518167679079464811574855550369774543284736800915173964321046654135421603073217163603806881711470306255738056163683132007106971417668841749228827347379032390930570391495589463225731786034131300016909746947559287260431408820326756508690318177005924934841846667245034450674927758603537808612079185259593697438495262843011874118568472475506972602496069257415619193359850531749743044462202811458052083383888108684643074846573188269816165718203760748006361003291248619521276860130827300109156047242838425295829820280933811493582691148206822039992270813922577060275358645272219657460194534180059903231425946489238960615673768377750876902429229837444882835264780829045648641427374315435201997157164101099955082302783522986521577101930392290199376333685258517223129924539009311034441342769843465516903991477955938481429340843874016372208965830802639319210904250686565955838968063877121238189159552131776959684064202540023605317327882541760804797544286690370516530148616709790899352118450223643277840937068318881446511311647335398342920177774576525701027662698186894287490370732039089699075702038052331869097367649465807213328773076126342903769977289752323543717510412532604054768488606173619807382863705397534303704074862185765699458558592379876947934100097267317133801625488596154270605880164282574477192685864008691386101761611762592985518702574681513266104962898890738913534481241191985455720406620660645272202220018554429425463785009900760572390992138763654803739839658182392208729520503419816701247232053775172185157402315022953369500953041979081927250193667332350113383948015537596675966419461148915184059627061619503825399220686239938083249360256319777484008567241674963152650387609441962970256084431783189775289542281962161136768639319348697118561265043629150745950902970511386142412404978490755070108400602107643455204842586351163182191684660636562309179729722381181791896453707380547945906202183141862800240135988142124149575262022433296739098203659249428747980594417526618508002859031619851244121544914197262091267804449346071045280529218972964749771914362089802789526926478838386782964881090689914407794177473886881636608530377224227859257243116044718362012509334355246701307690352718197856395681695100831706160269823809047083521484499867144310018205914301738360103943434782159563623464224494326902602329259274088712276969928038556967316349420108892810756475303685073591073944493956600364043938652793317657296167388943616222100353141744810715802389229773341257068050093432044492060648781985316724693026620463260104497558642612746122088249266341412728374388654321142866699491486873121140889827394451359167746583491773977291014334048465038900870873868341981482443743692002062868175533978980540961517187059983203789330372327210104572335754493868460469060675310638391447392431241148558181376992076201729171678356959026113683252285715018110927815245566758442888544700050999178873856073494279596739915374115793505064401894395757188859005070169926575381533690402715308058652053273030813458044541661142953329497295776233753129774377055742236316970701630785118891124954362654521000825639503149852870147046667207756655619664716418918117061009971969446690653992131109795196698339999512975853570974656995841718922346163607998039211881647790954058974533330057414465404752747393445196479068349190338305046758481054983398193575666113094465484342621532538836664258928452632626006256697547884545584035509787920758184326485667915582574796954457096969029915268280284916720140986397096286651675318457946748390790103448976794447093928072526692197530120995206900509249255869911406535501392634201902600182746141140991727244915617083888800918429406401696870005954665459898673036331478702244746287301361029767774387919711178647864645709844442837155979839765669827266521894990605017983279311366864678272476795876789965112470763245413112599403971581281923216800212193076231668729615141448166923106216860637610870787639253991652496772626676603711578062888896468012993308925469495595742681590823202930255926808714655646110167628369820830161807380365059636784361045217849204924082225506414600063154847946860685295375710270778229866200322633047916756232881749926792313530636025779901836856091374510866089283973301377663066809004091273344447136195824679580582400690508145270548259426328472031752380403743802984168500367862134244378169836135083630111383367758309523542705512009868848629973828440133029695620908845094677528777715546798291612887013505481233153178429816790730975334573081516444734837632289179539253805721007611786103552820155909115002922671999706330147499754708833536732731690398971226049357814490917963344011729232084436026734368009112628461669207090965220709515238866081887073371053595252077124029284527756127616466710387891031859362176724181504617545340082159086992899808330576402209397839734162141876191949635076053746746609612339507629853625963293123418500052689908076865261750987607023686198867228293983823034316665967830367898887798811783275222650550581261927940812900208489373626612852238010369470921718803940013194230239218185412269796736764964248596506008283187019509845719101789893650190886461147667648095561812911141414001846788918284386541277580268453321191063009206846447113275841030062546929686451779990723663372239087467146818543490460583040787699169072516624469107566675259501004012534985114069721250278494423498626178660840265194787093108759829208162412299781346073892332082611235271665459131198743182453211143698422889961848945723752353252202825972569949619467647725248702059340163782120466562651115080991213750392233150278861349953156840229164446266255825938995613425677014808022588298232222290138767392079981516678529787097471441304087174564996741046876744655470447939339747984547022289761853174212426041548043354701994060810351984864998044804843153789944054205274497291681678597107254813179792105477966438081895035102393460809548262934323075986658075081304640344941723457055269419509979930135509793683049136449210877271640287058931780448299607242235217147308676745767346069268607283780391808958130690986797521718796987258152009549186040618119159868837958602207376570729022871400802989003776572811270049953174470301687264636397045623042811031714081375814623916178599537939224783708571202250060799560406111777345448311642049987972401485701362892914673470382878156621174624520513411258872701301962585459048947774332422616966197137582348898355405005937064078134448203331549049222969783462213282577712363687902107358990427927120025512698172184597690065399352401511925328295257169591873900394666957493441009861209783781928938969452701262411158200721353792556790329106587682747230362612039794534961627940602238668340596267305463239570294593444947536682483530205901060007406320408888665123411132132672892529126913493751305157747470597699562146660283932552402997849679823158210022013102422050435849598173354918391801436676189168352164062064300392186125426394726957668571206996067539733840504431193534570615342321118866699368365056284594579210218241535389240206872119358764034454685819217244976027725325206504017855356155578941928741828493284990635859540149532148979750330011264641335681327421661089712252370563942972478412085077421725071167952747676631018179775398094171199008368748231416146238189084821071613072421061568315831780093628961499155058979605281481049002584969505626327687133518083746085555508786564521560449414316013846710411983065375209037267995349538411288465467549724728267140362810914681430094695679684715974364695920867047976254556231398652037104831439990095090265180838110705609937253979585789109189315441733280130434715730608347146578708576029348180954654488468115180809553333621922842610559023451766538121000978721210984345527432888067968258186933222623486593095836804522742137005793771520386287720960119652406859160681451924187583290067218770193227479428193786721641546452626428990197847327171024049098768038223606486738788365227512483549046152900871906682069963815276504600696839518353068591760087073472525216036752790054372008957654125989540687469814711305764742566426777440533149227536937585606324606277641761976457100997480530088206222404959735069102109881137467743527456893434302762783357414465789308528518425384674102489869955938663231295845475598128819936732349361548665366711705915368564860092419743030024306399358527299388589520392298683278814886860750708801226566946896350732664787703217958641593768304879889838121930073378893690203289977816901852330432198491294307996600752379123138062207782269145906018108173411888894979405144182696850310268215204665425513019962676219247599499702360164789241693954001937972136647875406203325150027572114231505857562286456575826227921398375794987307705898023023355742923545337220886599576354786176398447048448880290287092272688601531859829790300241681697980219623076349606920114831893615725068659730534754661410308766774784803457816663121601531188944240642222570984458517230957503435474133516280874629999264038146406222205997505312910736643679417263697296448805337839883290677827927438832619237366255692583012269837522107266284075520375994983218144704959696800909979706185289421820507358426704050443294884794293670437984861953592691774576165875425485031794378110496631166833743046695645975608568456651871407066749876069118680564193649384328362860311996323453853007210262038833603009362029570156158630207753554765596855103737768492858063282136395883791870117762263566379040504791956639294408983594960718075844500257725082377747101213039553881877729186020047166138882323391094258521322589750571116145041409854132627241826231825463457780844412232805592345928228660537582842803634489484602430131299745210917796276049249116459782834005556213937555161716541212712983862201330062864227441466742509009026374815051357862489668567879254631057369429112266348494995487725406039973452996557527434964728328233054787784787466770668902060384998899492885941688317184474531746895020455569763092639277599239680385164084951734585153857376797570558812314474747093881926641327964161716246629551900999293963107566498294389698952328140032675879257054209517738912252287705858917854037632803047351347890002347897589981576179297858245666244782141030395400146116040739366765088639679147513313381285286484061822558650447455878904640649597111214855171312836203186426074404269398694286979652102061673374525610708625671218412695134605753777644691416753690091864343787839165721500219756860030299558302057060048114258524249358185712547637210983004176712469661519445712539087183935765008310032191926668241053570384918982118689992802888166633765929602945232425538144266659146335099688507441058664276591814982777488183817920413120301820005098773312673739553865699895391931419684146850632306565807491256178093258135889628766239432461180459202552839015886516629534932753450226421399446074259334474159283361359113066249247229150436258648676382435977037443521680037027298790636076671463168997664553688516734750391246100364897683308134103432469527800115614242865207180490962298250466886766501946160802389689254246142832343532979145054565215523417503488946465291704608606697493573487198957095452654780908970609751193202627614001221868127525003752403246008455654254598076350394061080593926350740090361089569645624499938128209883352171215450869014083924226470188873883300992506771574123013629575875039201924802281760406097914528334114466714380163138994116625403999184396075274502265597165770418293624881524679799558915693350990320006697917165948928860498813360194567474868930502850181836709191257392173551807814399408373954499673229355670738337681598060629873660121302789217479964932462753746881021115969095778090293212338804501464805034843493809457005079416120748167422924731433929597233092986371937659727129548609363696341094741365422739523923084941064572337037334441714941967148559409142295205340304445751296137694421289238184385676886551246757392324247386188814482914863205264396054486094776021930352071019584669839946673222046622732053755959307466412572503670666928845329162356991797534125816600928596162032616055283494130016436959109199611309358119308430741826265370475027493436631327497267318727065897353442328108585541027833543794006516539605623323118648817251128542900267489039996468471054920500049111461209673812463358207908939072403936209226326240584261157042448437702716003576619177237095983862610781930737195894141239026572844474215291019964932156603505401851801301395576478742412498596908229208300766582285298774811684688350732337864828788435245931101207102421984280378275037293894113317466334327755407021642971414656174410664616053154467284441578664342334403178776387888683114893312450498465339769248046827979025549055301265100080882021279196401043407809424402476003486031227152101427915361244245943612687790784529690021447544898250672613416828467365066646766885524644439052827744448621765743873412455861719176329645421436758918274519550361127796755372099113668039960381286487653236392052833797966146275218015294214899640335839403103219374577138287227321956827246297131467576099966360694083720617836770286887092000831034995451873180173395117488535937693468747258044358713445067595769790764761218959203367137179691886664547599578022124927114817026185403524502854641506700505298306790692223966236065308752304953479409194520169641864568426667448947597887166242260859880353567903788544564600200823689336655645667711369450428318482513296699955131427104203089767082792262062045857852754039186800945415605008805287369301159122295424819946409114131842340431089822675952894126921001014438227750763253612492509449861969121342953284874851407740580813969926083917032103311993108177795137990231993182911250444387528647854642029798822419726360559250997753874533543587844796506795354140008025888466635020011296591524038127000169291940626225709661053079349674742165687932991487495754550695531210318223747242231274037700584659158529221977792836802875650653345168859433463301518877841984335679744426853315517384348411407564021669634787101918455784879106517026458534463754568698760572058999291442935305511788983075653233974923425443521010847835342378094103476247020306839827593795778847664111666660637578158112212192776813397704639807020713462038620945644637184391607153884196112790753160292890368009736121970959995719510025811406976257089756112933953460353112994350043594225276841407168569107959386052442401072711945762933141677066079780359733348516816755605943514717841189499644418647727440522566833313673883618466931204628903965642807500695278076003465046008625605761318303611991524415991082223579852172149885383796365398639658866759438719356165518054512873965766517373595514483055063946423952284294432493135876856469665875752089445735615178622963804784300724377613835259059069855739241111281836733974079627459707723999547053270711511174193711113273947835597177857755009240237162718167315128839135770760598445784285096256583810449890324265739271918528006919727442635127602223797159067252091494990209555577402938709169637177799328984972666662429784995998527258495583508719605340599457992675318006699804866400171108615322639279817146675590246464546744350401432040509037824517329292964572882439419410457705032820200701278131427765848861462794181876221067438187698814455461723494954905891500745386928222238520257977563344041507766493032726472001338020555437661043073715192950070713606431634896787937788157506682624960769703075477098579644705941928742855919882792860357079840413688082858594981419673710036916546436474528738177929016244872071763713793582210745560853668353607381956698099079258337798919122321740175566143509529912817122207767954955091019575322469786167406557341963824920366534770827171508341960124329829539864063568683599151457240606460957827158556839960972928524412961819318519931038522108582281859003849101793208419674337889148279395001334477339676513032909543736045619961189176401803399891587655509900671056048247234556098693789676103027226259077250380134077391261621984448920936090616455451511022044670812556670468381870413622125453883518770417490941082957214957043798401516713906236125086580091697292776984567374715955844970443586326245925954058143975597797757360170185598779408072961942727528822218893580978741245474664625003478261743918743688723306538014719537679327997997038477304653395806228971271659494100643598049686932426945681546766384146525031646929015629788343710487491583262125088889684866773669742102487735751839123495659263275890113455479442461170475386663994677724321763309130147333053754183656811688697918003501296151088234129199821683430993189273338268516913240795046184251610803026905184645182118650456322717821963855537362254873118426519112125008072583264649079965960906063287651674090276781594823730500271661996191956194291375780857584024648007912989223308686353742910891812127535123864399337318987170694997101198087534653719709993478392948600364149905872402310040666139534078936219046540395476183426293776818602921334525997585444662369772507264015966962426212332649735197136656177227542455239234695041325296382560304289828712159622185541794913568939977588246720138259138374340117852452210692545673138911948662648794179029200284303864517035760867677551383345855744603306931048246596218414605762195786234724961346433891293263565327893609547045248488659939726813475874323123651799167068672167403455882861306729423636507747015438129938660939832421059389611193200779448128158189120017257312525234843123079025723111525931002635449953978986923491256167283846489076291192416035934104532408815034532024868913393395906957230199068121834875240658135768416674237041721640872903849667256969250481457903466818448494055731569702519999049144173591267348614017866971565824255782281929755634635898314402947666753816727430397095456623788704812267773618284232369302381615176721874439914509124196593475905097434378847116865684123981036462735458070602478392817139947745497539635641664413810130494840504166861268823910005968089912041491171314409163716372809886670075885498974682073602473308627118849174864292880616250189067168152810754443226678702245672551118179153894434236313512672560535532229366996225792183153803808755910522229848922457184126391811762092360661470473400338873140544544415417854573389598894706818234457279405317537170157932796193469147666250749816921071700816294313459096347061408539090015382007326844675087056436332975790693396354030365835613672935069715717870376583100089079736698294530532974046541822757449023112821610208362998400227785028224849461522963133599276955195192806396803794339521241006670779680083913316941022053766811022466884102567761626704827567026295699490419783409160648989249886100250737745769027999537262795556272351053935203822775067889667885128283375626915879029160146317490395248440237039467054211704192333325091005352516195141752630233889338776412204143295660930137094165429319085545373548994532010897990238343298261001731229245026533827554267587408178809531867740227350685761821473243255023153398777268586770394816119444983554150797893944260495035431514222020485773986734137484727935440039714638525619863932386210299349000817357926042375387320175274554968349036250298476899546302771725399835568239246767240039309134835902247534441479811802924615187922097505070465176789638066014033174789153437812165781368949080859310719363826606063411093180939378633933642639875130655926138762782479226842290857062674259086079473062089011383856606939595970039742752939178949638575270747855759895746832338071496274753715908189640496562766233035760418540196665688353146931114753018235969050169615819927674356958607014535915700330395545971219525761299101778932480720071284113354588443641828724044821009174973968300239547605324500404219153055709042212659317582307540311109493378574350708470362063087998980730035806470759038983707356007784540222835310706003905921795143258099630710562532269989832456592758646105237947263659884360145417885040957417211418812817074430948768748500365230726262798602384119446516244786891375960156047744916501319589772089366568947277664308682627985656879632974574921922565087001408476892509693149721166369192547410069158144860977937554344729121973344713800170677846588366607003214311816890007266608086216131837283315261646394079651643373903408606328792400444865193776281792577304949337088616085712037728239987457521971141433011394457707253105625777337327488942469950292501259569612946795873302146377787460877021687057558996045945062558714300064991316342621469878517768723430744800239236704440025533904710841117940826272891084386277558625641103402464178117340294055799351069047666312070624382107980072268991703515321263813285126486902992939786434305366148944659417493820351543737356537821741269397014868111858384319959317623617738532108730659848540322006112084130115720878546326453255806517668867377790231040709689975794240084127987090291589013044162441608544395980945505143196823139564019491282355744233115494196676668772844746745122896408417214820619372535005167202501829865228651436205334811374326127705233256776855235236977294266685012277395872753735411252307279418280008046909281767494131057701882668236071772236055363029014830884284753546634540368861243043083526099767149732215908497349504354418573375578009230318504902308143127250564266311976651106905065892423510653857567566528308303384113380265014426903943931045317542774574445904188158437833423930984611584764999067887048891332599967818057110187797071531769373744766174826508799279859061856859484650872509036159231624652102622088139978840958225470408747778423446138394345501007514960862124095154030457368157809987851813356788645787476672502361074571271040708840425961716063875040017979667998539016244164274100796180928812954459406457660055028624723373742156708771318719157894002480105648418474439917042142828918549760651578324225501798547703931422005042029455769404706910743771469713839620981287785473811845118155529848339679596354905392329128174432143253323152267644581785932299384577676049752235560156727968898007694786920284592817351891712560715098172524103253246867076597004683099879921348342338377222130081914502061295708511370109200841027421557024835544846440155625623736735333189513553641592288703125922111261763453980513519877381242600138680301128155571351584529502110774290852484174414517432096932490565206624928192998884339423865336334143722551052378921493717764256907451642849762631438163928243646971437059633223555927165370300875421796184008698954038166233136661806933181988442120551007543579177365603132910243880356548401086704726819125413621542347978886339231840900442028693533436071859721664483582520620829625496253028806176751034337472186309957240724248347856027051860320616447291085910076244129686168488818838700456246242912213493763494123921393887481129989295516723000590690580601944476907897739884846138268665572459409112102185463369155962064134260579597003236470308976627124331823266633558009781970698790474440847244100882942657785154852148156707401165858195279795459676728326699683045367475383441980447845350452102863729203555278475510678747756012339829013853062336572354417095056752249087042514100999636740378154896869082662251838708745435283115651041743407060238383907579762653594020518080437851737260874601705891952749390323049423647950649145710237753802616577823587986987274266970126170008185599158800658461416455517267835151142791443835344660527677161475100953694168472568351939463205583991391581284844864071907065173418610802024273819794213471819407514898181295728491522229128598108355096339673669288271087387535664221835132552746881080342645624965525635830943020126425533280096272659454283694311989195821378548238033261382587594917244446183721724750367361372507777326932717958344510906686556359793199175290794598616271548092609849360554841668459074681397054357884735754630450231719709216620605150297219354878094112412233138993787042417665200612792504102809273148006817550357806268382318346934914801104916628422392967629156171921215785406468051454402888962591404971372764194987781828706985782636743443000346526734935783446225280217213826359873671064612930951669478622533775691511768080043260996386420445298101359422740881342425861717673883329430033237361413174724278524959618086767759808045912481320322076512967309830029473532207760606616248299805507004123018844396103799201671407812558161055445130444162182510748286502506129629685102862980159932503194056679943496835718018702103106636318380537203191082599093000950222477415796453888710370549519747266906443736784411079236163809065012142558286636720693521383874448537836219938290099090155981660336073101942442858950004002341201361406013587637738094115782530591642721305707508090805974388147230111516113492091555074167534427752507184441444342504152612149446866058550963093999437324481974720022332354076973096413466911889390388017640319175316681517643135178522682109393082304340571916383132031301915557491298773279338951552949403509551229073114816089720756148068996494864760353619380305222442783963172117619405067313370258999042162661155602889053123397243991811254373577178182318246610727035232898989519634470929843132813476356260682202390721613315991062038221411374567201445709935637865780349823823332498748173002681947554600646155433958263795611286215103948852633936822424907161578693882689053303798786886905410556436880179229940423027892949912549832321860769714746643254358293755963494862080240020482025674583548709740202630056641282121640706842165533129274318852770447977029974471697484561949617184690464661772943260171978437868894636702992469008576704897420981429084917181247832555369664697739951262212944906151486407675501599321080458862275739237100112112919032962412279798004939343467455446773538185102624969070415248120166881722138034998723040517159428741098518150567461188758674757146644689935969928878318236586706665094546009613868105950182076491579916828912547520032639346847992316312316373379548399551861223076351237994712888714335193930929798871967151808678045250963547975138464887850155540256114624990476948243999006169317699176948459003916401390595307457610295783599194860013734535787148231428869331787555628573179372806965240384893435452694190580518894100604276866571784293669456643578138159816493883656221027346357056131140056649401689673393199983060561076539328699722749689375744755965637862316738100741346618410114437477548814115106447229908016809018694487952336321724823721759453741341637136652508085390600375330335665868579540654203496696164628158002743507953060358552519418192224162312649335610834705891642018005226074956777631102693225995105688135554273728984463983597172059862774703116525386998374227655507511960590445607101118746834934582276292882254294887053068116769387171701082883609500394742034621364343032725999008409062901404480917248206800154954006019751095689432396946186521487891687598057654281064543216600276864544749580786662193168113206380576367596401477194598594067697130866399235457950396223911445589765687585859776100028832636631808970169750834743479731285002559863380257017367585451971672531737378181386681640366313087542524213205490701715746395198116399105781494327565853107372990332092808226445269677862083443053034444293815341238819177062559443572462656696041756217530183018134756133175799843995293114611344348435183325808521921248810320133562782606464260207741424916100491774423557148432779844484578026498263554321201607721365757596820989832184203088413052627907315403268153778542701092908014141106707719924711741297065301915044791578532749943347548647714652066428838642342050559379415293751846535645005235741560966021558220236051474664936196746294102988568634021007051700522338124208115013212562131697905723024290845661840712097170398234004778993423798380889404387139799926644907472885464345170341231259025992318918151908076694782758861747540612953880646363872065900427286508058321467410199840339298975372675556503636031765782926827597804157426613634259709151556983815427002608955869080598402254466086116751249305830642469909178401126585439963304425457020479330974399233290620335648473401178269093963948804881506473655944787889995564273237576887705634106269938266563393694050323401301108982144025171130212576927500950148092160195520498927299878061565091882502983605239604556880376081688899577711316769019946024583485426928975620885611124512527018186498981970250672036849756861880243971865518885648842484772201036826619483772388293152150796654620797075105670791018453598888542936438080316518298003588636017522620479553881149601190846196987647036265982541314925921018725867223866665557937422420836257740379873936193357261715589621569832667595116998918154014970411440520151586712680215886549087152028440875143274149181022606091435088952843253622396916115702934599308921592341533934560377961913662578081425238252650232670279855303551810284876415378501336866547244251899355639823826863908755421572140663102201978811474461192001224437473944859839524076648954153000681300580247496971639785003727904286239907709273547561482887104739710588376001382084343575006834758583128336804949531941797509928317134052214007723814262336297398717318882622143864020267658397715920028101244658845028737067086797027450491395938465325658751262319327087743942564377695843421751968968878881902110890314040195532682164902375955278428550287862483493765471185006377686915820966120583622587239372475823137068014077545482150731107820514080646942863421581633517742993164236499780193506285508054050374464420836360734794214155473089002141295800319838752432058113178911196858718421593343202855866431785879219250779127305998183298996821456065223745569735972590359883140127181259132396821171899600917944801066586313498786942789962056808995948734276678279691487981521714594447722696379306271186277999596744012785752043997036606273135599669802108495220152320824065998774292494950437273901836080478919888387373212845368725429359998836693534673545488688842702283250941988720317694306565969127789035520859373122282297450874328262525785420259762384161174524174042598149112914928168554458442898973063818641039267784950995353454517600688692812915763998189185771381096816955626963341180900622544481220212209246495769407077661001499379607631980845085666611917669498248664320217021826079725201642466862938685766066577751076650307817620882209616680004503627743995630800416196339153774140949114973118365589330941645199430922141557586975483161442840542584804684933250558298843802069240956447042018389813016540168289164341511356128296764236263253198879551088465640373188001973979347612096894695493015750456995683943133636947994717899101463875102868713191130780599839494981114763503976107654054295348463732210337588398340388217187658085685256577210377380161963344201434310511976956760950455668122809605158171758093679333626100023429700130416079128022017599857721485165581512357907489116936382160852641164112523998955210469591666253861210733170463803285191255433119789066440111238355046245427675503474094928586090249243535469659778654516157487539863607724052190447719629075462079093260902404077833405143630186434396221000629049691410161242621122117321717559991847389900990380947918544184640015776814685812503058134527447498985680611287604871935849332637188083514179639690404630585200922281096855509023360281842659467545331380913573253113569550142433946956549964418279094733626724625835091897849836399120981011001426675549281480054093788541783786694735562208967548783471037858515320360599195241015406488671109712155606857745238285298525840173072031565262912580579790651246697419446199461923514872380554187986470950933333432676967484212981923820295145998339520740562188662059570479524286964161966616675528438472710293819906421472807441453873975272930676960901279632255531869607952658738767953209899754556951168667209471571449697578731276797865356042696990838749973666191023177068896019530966647635056314572469880396724364804525088345180082044728322792507964218284300959263578218887231020087644625125114691697075759507574412639044722734131686309506426305006278167136644774149194480976037488385906043726578342948310166617512943777365913025281386710083489459792346011959190259640090503526502772872363415157933721983324105586849499743004133508795065483387786746361582553628854370145586455969818047740816854544610010995536146831097786442074106754278274533102850357333279850760160641013995132451251850248829836103350883516358111527496958177582999728897013665977947460088176294105865580980415940824363923464884828477317299743767723482909711625205356628419013949823896006353014101303786578845780353603763928570742651813284462978276360624209551413579887487020100998337572529803715660238536121437842603315102656979587016400454493900146392862432347281047740705900362008020680263572214193105993141750383747609623847755530987166105401356190020970326055298966649705761616957205421414396915180368485809722030614203815706544117362561995297673357209392154005814727178457128005075834268379714546175875719393912214282187509446962430561136667080473139852174907269557288761816549067230948468756992223649652609206248437167522742750852487940749849605724077417934384337983326408052057667023457581714558779531589069909056077204257354484831887549123842057485576020314455270631768556369948532694353809361818714381466423503184252731703589929538329841124500615871085655566642856207115254320719621729882269076803742659330828415206294853800935423367942222420339234960376972312307278758248003801598400761177454475120024358818146738660811435350920334520022298266783321822355524482147869258148330091485175484077521071351738746335040426950990339552542027714549474884088769771863813991625778686735573416354748384678557698821008540038977539312751378359371785620453691493866542241664828322445029220325562464464916418811772644553571168603477933737351542605750172282485800552271932833783841949162370959542248793080457122503464025253826799710198272771982312588913685737406816173467609250293159688596184026809094451864837986636483836540802257842850567397342922210314809170340774269028322671829788401210653673139835606770546065409902560961800607601931634375786114715239071176496081732996767061883001933541978962433801127179756277470619186262347947800548860411123523672240982223325655467661890161661548185076886111073322702586575446563996569240613495002485219417232874475162556030408087050534754278932550869109872314475342714333250103956452706161577716869675813295628495249444817534440634060697356716370210719524452286760441373850671279432187098963246644938181427982629385667193919926862758727726727247743897785355401392343158376489583870473722124805496906581971325986048763745114725881777394573805020189384824724571580870675350505203600582769867134775833351986864434240228996365850851451314235282719826490187276249481335582483252192013226323584241582624729707903309003229801364032986761595097429280190512037204969225019899741313205445004616028200710593074052076989017749840778903910363045861665137182695102486647376485814324260957202352784193757509751177408127246976476180283764074265634907410490784524048822814384321666682510622898307998764036607783818519769882818873811967955309051745981392161534943927638936559862563759446984324077685162819934394608587059684607162511074371606543420017740194311245078236129956009284971591336871170992644626763566985914668950742364385689804051099197403677951797203629192982519050639083685498541100520598377797183639413361020346557363749654576819111311334487115978158564917990421695749114956125366374357443559046966644349548248083237290234154636627164283504699074375043825395058497658637726806486635563154402232556856465443760101064892632531678943855142411833864004101177644169019511832221862857010940663411212915025341568211770898556861359627496374786813306307208965488797303210665744273216151189941260466148278248834017400132537980667389217081148016792444765829409631521251355185793055027513095925122266815910379295034711756643613645623806084379397269540279026771833472457910098643476540300454222096904853710229741543361865631076869985225978340878860498113369053833117337026713750334791047599209819014034641486997590197726534804703269966412470121569616972570202877664293984568612585302904070837254567525460982443344671254582095770161208144347816414398974044093736425096435593994479378039368476220052533795659684542893139093892717317864054785061258474698957740540594849974481382343230692210173825600157595527696188118780230431840645590068750828263047651479169988840288571208174325869130210725279984856275398732952134662229213397629924340629144574295637225279101004261382050307265121309233493433470878355021506665975558994456091036840133072828680781250771240734729381365519195648391356501854746801292908432016495044090027649610862654203489913450090253868535431627814515799523448442026334967996795371962091857799968892537621325565931256607744056323418910627096962222293705037945464263372401394030309369205525804821747247283611776751823567778860184164500316043818986213553707380240956264768523613467623688278781405112943240333680017827733537933278649088899355624435571501895398985114048624194652824108237305921879427818223430979669320174029917922810083584912678173520761582405393937878623546242341129556948851072299190450353335813308208781901108188383694734373154898762636631414619603755679466731189614799164978839637936753354011809414010573789956715597733819742581550791243841883276611041012851666931967851864738557023880488426595671447768024805422138906551337809524821659620610455336744934703098442461168429795052162718300631611386017264181167033280735118193319426868246744225387481676201613872394130242692983993748766851535382552097180428545789329940184079553877248016113185132565743762313283068940317808812953565006895444896545334548268997569768456551826063342794252562520350464099924136349899413068788151963419209334351070352880109360959012138398563157542813978151054745166153819569374418393081043055958759822740191556621766736208456900755730980338425725202744749504677972155245243522962111310999683435668497351572719805902348543211650436067761248514631153206538234254914213348324438130349121757037534638149255252759429804726900837415102390216302624923942143431478219537055256642828513068654325694536734558467356764885850020957448331923784811226902024464048306830458451955614589449572374303722946066808389867120629320118602616475473380108195057128448538795513637884976382560888101270601741400666214341372028534354287820748990842461558651935989025921754674709263693698486752420249533548175207838536003240611818165881603747606168561445955957890023366120943905408837659187957041220322185123644486291587159149086881883650124410111918953971059214036699134403362137683325135567301754332262023439490001328363607776898524670662073885391253703153480442682963700863142610652432432634319373102079175826654395118355986258325595008233806176727871688925230613235884211560803198398995335359746419860955343498214287060602319305953246700084015595251896617277988815094570509968273979149391527492380615736919240826410762975408307892100199348982173390297332380280033270736401012100376838646385326296139790034547823927279251687293040170631596694732524824910271688897752857319949791544445906977620947624139035631103984230920614438234620158780775820099334353486456072999426376699551915967755658190274765179369477011783174606927192817151858641738385889150356748842335729783982610972780545243514720203399673134090201950040639018296454823319664128784509049101287632780533233925364520527360378713347344030402071621972610305947400752700664849797988417784502301389481886105417390050597341719527273672696132696032489923927643582505292396621384761914730690661936104080885469691698287161472878441781177324126925270071987397738708588810209067478488336165603580076809223811616757245881046340113260296873437683727276535798092476247420972915961217451509789536803668367204753935516393375186511542588622999383611466064158778895527489864345413172190795614246466522098512715760587286169904095056167888041230142892351222434848123729780556631964075884765494520335489833138106146010453046857965450696660263330097969727054754768092376812043763726521734849448252900253679214537153555685840297619991660538428685604303201301649523537209523035257866215578215894794572602333106276648799174213713158089238317327307531102469497186814476716380864137590659684554185598982443124376129922805323896027618361666166128940368957000400307734441301091171877087214187933959400672138061368524883255757764757549464767619643530095628854189067344600370553323977953945478767462758460905393565390449231750190290168972658840687982817435089166731009767141326801468942889055209725116214647791075416531148837577005481451865209777084968701540200276596214986134643247066447996927561532329482569717573227743858276396310038721176368211897187846396102828737731549874119157329156025451754128771495263023640715011419721324096808092313379295923564919928408210110357646698847336014936073864448623656981398064518953090544733718476537764483648660430884402170072035887621282392886901818635578294284275064723230921844092921045239987679270205456472979914726894788593435066245068894178635475476895041698469121051919631137326138525418212124261959570173723719624827396635857862556294277700285906802506670923012167087786698941032399282723584416604080659645456979364754373739293052816173855431836811770758047591059763797729699551928575582154861824009606057813359385199602795264247620520508990118416913987859521732177186269937919714859517676686793442286570423737580696137501145536458608656265930728640148845673049299559459906332517114422513568075100392416987383773613932793718796371172162764950645422207631368491573739412349316648371917026436371788727859285750821825746968404595624509059026495732409407553696618429229687748911042188346321636434361840746457680517954400610075493850517154471613702349274930934307905944396985151187159425078530030854368432498090492733011835450420352994007152284407430674022398283491850548097432716490273430168875575547651102005553889271045552124159133357614072587965523415590750639310299451040654165726359253249023731256991048536850857130570385579953410944121567655632612631810642420980538434981824740928552835380567977346338200785574115458930633423452473344032377008208945472026357531617214139343961168971239160909842368439651498134232867386140064300904114232964309521979761402083827046488213037247077731480497763916720159985103160549556552117322772171528290942954481123772345859672520839015281256341628118067075505954582032261672787622862505297656795622960728643896240083668525338848638942843030250486505014507820767947682831292202650462408911749807747042997680257718505439944775594509615748193954318954994580660803904975012884363742002092200026110966649182581097645617101908116424836160044279586831235306092247977800584562224067336278693737814965249760388385366498904524963428438001016295256318132414737984089268749639898055770783123235199052976211015123470182099463307591521455712722076873792382460660027024858706771439772320514129579059724977222123181740514773700989755132414413553563769400883106222979493849610653233259747246564806994231161435789339338150334180441821362205973845402975438885511351148858985845608919221966779409255687416653309250664710880305283099795099375403715572820614352394562681468177383819535715044296329247889673329124229837369892630188408333163632071284458047657869850578178677640249310443332627920968513753944145805956354721687300690979285424416343304482653345619642706786030943483823054483676280131328290864153940076938305230866156122938347042712923604474654712701007970342861112695684155172134614039450543725919455221185819220197088564990238447607101800057708044776429631287348833871280717304734472804490432401294320781380901259627757164686645596026300497774119656334983039998875171323361085943272522791386517923634123182198598334668283753895633602579219059728295756966465962898212551298033752719449597997070957979546479577951783733972014107159367984952545542893096638102431329571471595269117157658879674645562732283282950980733779796839649396036683137077646917743826745803530258447726567455238013664452681604011989151098705337730160309173416828545813311367180088282772313832545754585566365402118271822750819115958429279865477373916680602352382809697963723049073417554899675222321438214429293536206080754889309988656748434721283395594566292354434963007362139613649078807010587271977356758281824472794716157882682555477845241452197769477339787895312942173607446712229808335410338478884450585441390580703102930893123396656837700776196649771122320539086081754472845158337608558556005940021871443830311183997226962767960130791851445713279316216341005931883991781772221384612673495258067750894148780038331797482530872278479091260864641103466054955544766357513075617588257144289301733163228443751178542065318790326382314877176235232321258564842695962088801961968374469129279961041204994888111714661431768285057925390106120215068783753284767197752135940478360296143580878838545234449279801174478997495569990950130381831054102233703246164152829264725137005847928010818603937627584633595123686787503596663259499885579427724417122154459294738407842669079147923011298205290470345545707435997108304664615174306329483918853778124663014441292848404095741087296760717743738550233043952222005555086132286610011569830694622825669614073000566494869471148576753787280536689978367068089191868612074313160300488010047486861036529389576629146815813907541942714615413248318677988208165366622536697778632107096744202169630822281573736580190259698443899303611447636279976104700209610181067086497602058230303004222074932084563931201932195187703141102841569861028577758132426177774228491591307919754479764283489844600674128871513020975697154966158576514917433335176101818578366572402260182549439727887324295616252507246703033429742584887043830949300334953048019326045909054921514548275111282248197272509162103427189686123854557903487494453587633496864072716011419420606927017652424850338112817888957382919450909315338020068634838612860799264658998135519631222763215655168910658773384411723915121074141165355831214315099309715089342317590403953284523086860416827672643238025404777250633248198146689964200628577860046860544113731143940778017701643778246827846851143003555573141513047921540310547705943990811539865712278262471090212635854045231700970580922438244312746679416971638427267146565750746107144236279944413361217442455476514827536773011928569881835104646472052097589638425822000939036892016404450301937205142410980464586502626200503066637199606450600886530718334903880958219837188581939523749105015144995580812100985281786008689393699239726359094131024390365925283650520682122315345531322532040786368351150805599610547613359982117982143680088614381563322725268578194180558091277228334553209586068896766230349802806861719063626700245618081571479155709719094844656259494865793124644175202947321169965523459640577668905432040286090072113346299037767582032844003120066424110593540318667134335075497429999444648340313715247020504311657856564176469236628274235410223516834027947038774897372251186487830598306687599560878466629506268545519287784481638194437825662451809473571513238647816652197512369779124854012668364240159299753203519246998460976990949328206734339627457054067556835970652255133188637609022992584649534892163138880025812279899107575530694846423131680363806321744198980742494829371750652910759518774190126081581008158775841429787060440093514091388945606718150617570127802552110871534956236874122000676627120190450159383457132485311789106740643361154809817568290576458650408102778005965206198351003495613028936515879413876647156766556036086035927822959726833818026302952296777037976941369047500364284720200327738428396208676486666575262546958950035759161750217370454142620107016835683484869608995085425994731895381491265478541395141987540795973097887599042489112651569099499913763558535138220182133120698876801945896032108134828185931569930070443179183204564721112468687343070830611360236740705976416727596269203403388304407635248446642459884153132323751651397887597824230625356316352363020511497451352886995150705389683284653751102812725460043607313208697081759521902330167526836974579986461764378768646156379740833503975769672679654149881403799494589503017990479375090234661963567424824488636414195516650869017792160794215882921052669364904274981559655652452067814573745547536384362159885054834668277064146392111537938015653809752385678442438886875333798059948835899028435228086812926006261648271036949378698739640034475411878132757406112159446674363420761480912393791336339949623065885522178785196025394051772944710645973287651269259759666667317021083752300711917573576817540080574258196764025790577558201784642456365412953198157355369460397346365531643629821891469286367211315118279639436078164539290630654470824352189262635187371046375478637980683683430457646457539843047283328374299847929456285397748071114883766217218138413687792401494138779054053653573280048687856577295421617253750952170561932439623248365683735471298427784455355197187202058678371397584506807058424769646548705375529236455934222209602478338977012095408329578200380927549691095424246407334631133728398034489218926072163181511176722360914125032608854839207926913323760316800674840329817752186260237484494308362954437971971554667449811267106510620858233056136523074662171860071029934878362929839035718458108847001552998742223345012878112728035872765715062276170871208715471603818682682216373013594895297188407594165300574223796834740069724109245759921050895565931962890770656451199782730717124713602764606447408153595114710066633978575814340332378035456179055634855213851571216414186844592090720693020830556045957306992310227457857439480651796267803732224273918611342333985218751026488409418298881637339522368436059834832912434898608778465633118386393280953650908929268521294324146011501369138980593905480969237235269316142968175028542843524348733507032876524002057433931109730159337023280635043546091574058317062608372427965680898971771613499140051868019152674479385656787555882915228134524692809456911058183315951345997229305075295122333499562070635624695238720701133775518728359570584761682593290035798015713125504572734129726504201294096428930086227608824542842115982709603539858897036096035368580411439647023502464461658013303739530592657298730335300372429809551954370003304705798175596350415572145870265387066272963220160476121368521710752158120326527454394651324563395898046609986065889952664024142197820912992111245548201941085180842721955642273685653134608262591670620041179482460553033442083818567758773848301688689213808310146350199361828715782846720474281234472741731898455174444722804372845321486011107291445788280766251815532820288851721457435576521561556114166369201192974849556401667421231835389652613925479220332422753487818182100029907116469855099533865413242151723450957554972984194059422845160538073050058954038457679011311080289753602150722087640076969717089510664218586241230411867331003126543454199468077307915495665660444580707010567403003202259808257097911326504945307571150153534124359321960130217435265541635312238901456129888953352336757709939244542390012346801643561320190641118070476284602071811316607410537064995477332959557494045066617180801042480560588146553868042539088752548925288532584688582725572128273583784973591900739389196355430948513778272704601658813195821123982616747754927627287944482772553370318992255509353421087020029507611720671231264787040486190245449919433598670829880907723203464177760363657163832589076396627233737139172198590733305270721481745870630266238147222410282219693004122928712048305936503102468509467301726161828644422690180361922001586775959015244950456574235140254647611444678727477483320917244611072375647648154737774509875762721312457676408817930650426094655921407134471519890429232894317263792876472968078954227745389377900058121357757859518357532230018448519011651748535482331935058104332305632942132321887909204418496301344811004722315671170716681742258283678934806053989060061043947791139482766645660100663697475636206314341245328046609432161172525816894773584360527136083383560864827939005853900973675837715015461645362182197035443620022772418945448523749956697704523224574221355709420974326262029924215733794702373783626043885521348003444525159925147428025245306468278481812211410452089864268030102045191171017915419419940789950492858140131688599288025393890452186846239111604680547056364793269934335233248223462818228373112438976550461269112979193878308339177068249464236114153972863133036591812511754498283007884448371263868941317725204863938017435085337434965482079178072549514531158170958323434456511569226161759689703177910621651289189662464075404283007302714502315223570400622109354484691172567218588926694926120648198273391846693934541214102078132966441350410178705304838665613400809993723853028211595608677263299932703929700835878654498160948046958176882760868129771071917947353923914366137473920016763476419860654969358538885315443911389942385452074949496095569208047938875141951295865132400628971793904991340119169871955932464177868080955729068525326298818678046672070915342056865041168075483091455289350488244855467281584640481893031569697838132392844876654119786289451838075909273695531622580742660254633781325478242280961612620099471453920791087863275692391328487127351053796700929356255759446440514567734088579733770476081091035994894839873128772527001430095933852370989267755865849723843821088112654581541944207093524768650415162163142329430203215934855826355263789320963439388856680294303945535442371455159683814099821143957097401680688996521896076274415041084096595264107869749114678308210681049253634913046872615981377215685269218877641947804398233450407266349233921148768810437378784975853386495507680131806761019349558531762388562805612268396661510728640618002058607903445880147908627345020364675636881442298300424742650417947190267479847350822009516484939104457198283914980623141996466357885943529772711091416487791204117060189182730916783973833709808714763004076388908082910645828563245274002339409513401223898028250239592675366282384289058725143301727239909347284229485875786276435811591163387806850811806409466490236298480613053111757931950303163973894737046617743843702275212762747861291306563388365609462184853819644083195895435211272046405204870544680816255600587038168379607134822983090275936571628224712507482598527448206738162365216580258926826191092385095713003026493904723497107178346686955460366983572877908147877490166163344649851362313478428762213281147891706086033394838781230504543900338268275795026122503821866583594511388970436125594725276046201548514815676029037343952938399733712453179564172066053122153271926925613244809275447175809150574499063794451079757161048483437301759048204553636290830680416886434684747982705009577927296898641592858451978276284509781096896812771828288216971180077697777680214321867966119587866813486175912723052651089966325483748013880712477508293738251798717772867945523172606338378199410685876859822406420701963418034058879574634885368147501931216414284917036027172691164732186551668980365393458744089608084998379406949587327550501422821833885473501628965594263048947767297219938251627251635637746082069659183483386057530284863327460869533765452798939694207309178184463247097508516878321187572713288357791526633507136182353667276665772900110355646959064424719673734592548787386119359880402775594343032740784079460943163817632324242464417078654358731632753869238252356195400777909954774948008849509645399764714261426252595193799929394366059210705861008351381960231889923552406186464230096541263960569085359309011701288484675786265993447931877960018857147159067314795377358112990057107067510012393137867995487007595050767810609605042481157119034569562104374552667830166451863494814199779351966085017411199731097202519581067141781454687137847785369111763436854799564645676259294937275169476307278318208313757863744943760903442292845893795105304849717107842757890001672348521970959090169854453634802189099475294123760354186757821868084827547422046914020849664740367243416238435777688303757025115848811234777989922793367041208120144909946321250529402898942351195861303633159787542353046709608657705061771185900245652127824418321314232264701383323840271415596646056384573560800155157142641705089577457782076301387194542445619139812154201653315948913218445895378645532720579988565343010160089666397625101817571886993528941960002590485193248956563619084893742548473539036087632149615229208163071733757538549219718467123646983867830227245232899610587396459585948448646556380720002370673487081743125173458487224150386907417999976137484572586950775018600363164672987600461827310735757272961705150532553488676649777160964622223214943773797207903474178837196654301491086871361069278129015761136224602175046577493510143146889865739088080736159539134027655599576362312694687662274831489169825007256857470180060402205614620648715165965140826589581144513394742225101722651594692600047096864213047238132105375818871034629226611784198297806500586969725155705801056114219243736098682459758853156875463405274438774856685841850140407650095097431906387983732398887284454321764124601263103343525631739620092923197445682256732590324989217876722712011014563860244623006625188775502231356918917248388092236229228152120609212491853254301817469068820025582433118571256154317698116558042840443269190791414363263840701889346812585416038122886204906430839697919655175858297149975325045098140395435753085271903983669776391482404232589652459774388838134086644944660416305094162563215060583321399522206727771096912198930900861619734134552584863642900397127749079611295822046303006009133692076296726301549000257606488263388939092843041177040518121813871564471718072373963456256756856314222821329470641948389528697332762422887177234014045809793616145526738662463909748632786353987273005423290186279101076223948660580954229238592404190754019811486453490227362737080335327619926417997994368468113113573799453550149998627646641160034254904600792305223115858242974741922162387712067843112451081507824376706630495269871050269371345837309574352980162538425342809831777153044118870673485155803789855753873021679768410451222808283946755287954766174017111173298524432124279764320262918922211516082710684223434401364800669472246218745893414814102830681541265984530299445749247086294638686850034135149461970438676164997207563953690859940669744200550092067669533668693636316251538036596351311296921622976676969211537648185522643133675283380100834296674791905059839232077146588390587361639443173521108070314099221133036822008606257130869952982250572197123619990321728031716735241926929594492948793736727255933723765070509276590411748662425246180719892260133214417413762409435943510279362813364540030657390886488835474986655160064506927396758660394512309738011389653296350042550556615602684431027118908505008635822386068630436307716684785337269240833061328552555413627910055716730042564622012742722303133078087570603951054257851509223189623950301317650292141406208066003142631988545538723692086816053394734448160219395119138504412110515084214597495073223005439045842529823714776200601882503421935056711079217559680689837916340033862090993721688465800231247807781249462108328451138122755859124112750073748286806527677875384876107622571538653000601279940302511440776258743345112427470629788425394734648603630917455873907413162102572405911722706550205970089232110075144156655895875943361593916414687042017578814108729505960298072532428377361092206502296183502673061269621357591243126755917903809578433523342277007874497692532389414851539536200149134416669621030544301428268480358211758048437192165453728877960235083191271857215303314456739764808296344091213054725184110952163608863661484315577778534225378963721990834579093107351782122342039990097925950711613907254566137020561167872606945748634128632408337846711152203702242477562179906286787812583098907376621431594677090972940452974791298115523119951219666840670355237818949662548956155623189341545147329434098887882565472434865961651881128973618849019574034601753526403834639977309565868190584707338067267595918734040264368487970212160342312657227512651677943870555768723912504344254111473448064229722599735921716734043827228466474191252288974660457197895777383437675723128108049771519569057896379554927751725191245991942399337591883123312744615191083448269838642301906456395960734975088497866324301755673044489668273095239853626803159691462587790617418902940463958806250222256174293571551288160399814640029269903577917485265923512213193779312081672930114893956000330596444293560743759062373886288845325182041561667443540117947805125903177713805650026736235176870285763229716681991388051669533972385048130014375453802179387526770309965791670316468004213465446795874594178272824106351494661328056732474389038975918041078948614417992337398632818538716924306057794054157207917186227383865190163775858291140404610140740835051286881135812761517579870585609451091190607860315213986571265591805753135996719071130558922539508587404231144816753490192996931835853573848520042987941538700390869699093580948927778797087773620012708139081548888806888012771510865701798053062529488857437874993317433422736199652500957863205493276284647422369114335737947861629583599414094673367365838672118050686066945244878841626315262669443603687760237412305698092613274926285661721343703262980118901814665811915356705584054674803158977531055805916531644516104850553156855324750331040733242941540717478485954499492925489079815103220741460888172657825453562599901439499799527879889939545623783164967939283768240956142552008197031138608702441916492929480843440375595838188061457474530319788882867233827412998043273821349618212234181739661927410710257365927984483972207971663670729591059264083788079699987952975112911828169663338604816663132964158357045125962760917869657026661765585638331679667091683261177589568607155485948859750079488686945950651706204795206228431212703132119592913511709451607545448206824986298068684647612186784764936002358335979463431961754243781902839225383263737475055115041940391712908714493652236989899104168244448139828942688333501253388607561284000813764855357850450643527660446052366092550269821602702320108878583128168526399152105634462936283826674782264074208457371186672422605848555333121305820725124290289686071245242297832452225156321103015805388672019389418119122212643506818904348683370285637128459553627072781403151115386818149111297119068678418111445677638142964715337527088788598499134548226582420281394879076387071365221689918751584341852359934949828370332320270426917503787930719242909817376682447244085663409804382131084070213636667658515013405305246123070845980580100883294779108682505572667556760991028908709985544850262787746756924787711142161304249071702889789942135460633466589506506777587770389670973612358924357722765775336187851560764571107585026387150828271838394061417478937940541239927231421975390906436061170962145762912748737669713761358774394107371739680664458697778343565483430676022977911942683313869485153110180662609245221471329217452214837084655069538431579722969599088091641063055257310759723780113627981098042418803692162071956109272164679386236413633138696430884088620460719659698555050875904377098782742027007052698658030724679842583000653532993771202130149353536181142921486186722737914670060063357552105425259316370846961392477903563534431024447131792418525014699857062448198599118212512912379815922172893404494323848873731124097584022831382294076587613596832216700003307485838671205082109719832173615450468389819550330459761964948143451609456186977043199663771735277818056922922118496615518526037096327422435023710616270960222583783469034866365763035200269209358980966380017278004235770165613824471042374644387016478740251667518132057273811149743182403259104888909018865222844604000475417273524488442854339160467292224120269944565500812731715545288513290914068379619666336645735093315159357113812244174022706866584674633952013280010928578639541233245550854906420218932654210983282144822702114465174125585344925451286830399144700134413147957556380158314235842885349788757869369954502239333734435449603244613259630623856334799585622171395204497780794747134832691060593538661590682643051884781111378448465265400891520970159777172957199024463117919210928042594317519551044936965161400494727472666430826366866105520468385398727809403118391481395484157224199263614647838548768754375423211103149674672729816707332654471112951150015954318770845496287826100807109787084250517758714037738551043506258456193636927199756244469416246769202595639922144257576820609317952181930145488794321848284001198390202714113296821160278418392424662164469853045526418711276961154308921998384751072540635881174701899547533592127670169100152705416427391564190710625221443392293941261796785351165163853639699598511393458535559730919923812798160834117700516098768360655763095992036876337326632672245274777547180259098747570548614203096048005513693343224113377220420397124189056080072011698917026705819317899140952191972795142869131349781501237577723556280482110411102241982033536697850717002420092954296687689525833230243552499659989850473681208773833201202446767947359227347602940288815814981717571503760741270799655109068245886442292442082791007489868489140336170305714215451424727865931152406610184367207511690234770066319622389843004030755382602064307195709459191631611008102676712909052506498294204905074480588110849141000358689575739423712814740535146944984426899479845727963851958727969094959671923215354915527852696826011055526352058530613395432374471636481455265367919810734807314656744740459869345440999646641112871095430535465501759373009475559428986195236826684625404996284259188339378836724924550830032185292869728929968520283867488219468665407972568740367010142636874971587273509673666342467508168585954806083671985034284068801734766702634716442550833711540832184632093780212651811708454058119183246556866336115747054751043450891964030735192025625556520890894017294918503063284549176301378520000123677814985071009208577763802997516852555204937644721887941080280545793235886167617737427322510442172970750886444003182094588076839098363008204523797839439599588455573123454348632780790822853551510141677299275146705811060461997518268161625063868722815640873394423423886795244871002184694011056967681232475011861352530919747903610675426372662205078756649227603270337116643172414632553419444321732098687935106876832629624743502067789993105874352962050929805644503616215326189726539205064805178845544709547388461473190245723629629798957971074348446457515270285296786673167242652289831900880074270667070238825518687227112620479080979470981820327636876676172523075371103254378263816510726744610144463647419357509663318801838827721561680661487747094685151891118122452253914821370409087613149781433431994973429971821638097720556588644625721122371207846209791487443453589573828215068690428663766740367609977007799306177732539371013652223824218959440474491089282061659988764683686995299182575871116272283236327265848064316395751926739613811344353961746701904040534842972523706856342129674989158413390143852090324891230518870820089178475995657136717363625347938030155286193500132784137525028887917909003137181993935358123315987139213008618151025632962982633234236158799469746885280965258051518589179943987457582587255057439332040649068710629591681990978926185459170597035262895688853393195724009049458519118852319346559591574292542899207860465546482376759547489098738440408933573632112805509918239547901972933279470408162436393958642773136205989096173112621059440539821473751964848751254293343271661977748888801946305084599990572075247718448757953440832602511992660822813753995605019762851358109043794267610950485660155875206549677532198565499095550624108615332249971695016359147259803494048718414396695306306138057985355064500128632000628591142253797443505702983070924371939765017495921109318906630833636034348138237343868858894855556644766143271354193151975602476426656430252474946869980274631774407520563368376637364259948965571896271512207669930705689682262587244868389768617503355030811060434763048152096919848439303630903361787772270605487699728293004583203707556372421162065114007985966142820959872503834661538993347100708562376638529385226402974377487414017990237511613142836963053347294719759919201546362778638291051157629343192547198707265764210401764326698606948804509313189457734169751293434005450822721606548139300835819830981947945420317939262844346673867236476322962041497432306805747497746868788282642595667986428287319783547323084188710308528321554766013288828091708939478759221891262669950102713394689589689834070193904672558089147720622612627930576092531436664515157879307091372651138195260792199530227434263924776618354986537081947795831432829807888031880440214199749725809048116818561011028492320351012350365107788450609473141112543036893512379881120526279374126771456564565923853864932098254135443822091841468747553819025444595829662399702079019412445315217842189314526484555405658823925445551965896172997609282228753120262320485252580127329204338815079395397966275287698314177527483347718172607961605781650911441084868277174488168115914168984666373780136432872502558156307464103194507547507960409707534390115784542179774652500995927401337408270113993583240025501257282618494468427013230130653250536459981843366235782817875275145807094972409247367572859457071449807443518909468321928396912848447695855049527298367198545569159352633280038882100652539961943915106780920475374777748293903306421677086438943023904184578251943575400118974042509644601841046006481392612944120936009333154567037883106692474686644041842746995468825950184244352479807726178600207211069462134229778404313428664671945819228270359113715307203908422802041315111732245668889702008314206591871653123453146201356039550571938251640664599779465418480697474679389795417944080333975334082830726410105238982273727270311339673126401797411190263807894523341323186976518938329352480935625389915502934637527664648386641995242864876122217908926172373509299170295263523431663857380396797892580617097269249857056368026062346178428783081893925382457844133310436823549210309336642354089225697626851684497822330523596684776975428701095936982380918753222771972551872720842619536814337720743319767640903910263023738160531145542462258480744330326348913413262161336401364175251417437553979868376960774693851358883297627190178734854786087342421290593398679220198044377737889116633865378526241791583152281105092932306813848448634298394604099260587429709635089557974735343650764796870408325336287479611834278134595173027409087481459811342901573441547212637858969703562638235717090236808903336880965901261804894732679782448056697434919755974344153429779445614328650665110393219896768447534059436503020146081912294793950427897794112463304043963504261006323428625771595566391296778940696521079452605809559559032960039150623320080055463489638349355144463632834630296301689638066530828709194361420590334395565406314906896683509587044152137633387144525177993178599365364616673490555947210770061101597324227555144022169356622204800319936347056052369689262490734683846027591891918812206336351010695741418212807711726008114718662072934092905281337396931563582688106058350345255932322062782546302338811662445737360776212750789189504028366350177704842296134722190714205140441433801467168314849467355512755592634735501578610988677686881818956975110691304347595474813273866679836378547231513092397765731842508868159119034902167390381796767868518866093196075973385468094861296801178774443196996869888169985270196761399488708070944935951811417472642370497321696911746219277967184463635720683785024483612114897655697410563299032279954637702764476787764953649981379747739895432149825197586559501105634014872690121039573213603418071200988671609737400991548880231841034082939414439563295867716585003711759977228996837172895506564708198655258515262766782438468869076430766056737723584192455972485645303628064297494851481294527607413479187266604916738022543323615940708079104362089495061875493806411742061074130485497657918886046318593079586893639688963759187941106525496429821724277513884529879886562975965483436486220469132892922236008456269457684268580874392109622659709865652820075782734737168427122120666044884522408299982744518989065230774213502554189726545784523805889341237058230222350611637187609086373764790860656178578817786984641201626753589276716314285388458936453350532029258177940689948352993157519112949244782500213139416200059166796382176118144223952934449175200607790013122036009721867609762700896866681042131392907495423310203706072594348413594756704949642575363737105572861384234899656038240507205102623357757377092674339046687876279782228200346364268288957231774239010584758365965895578515270759760792614669799207419194200124160827848387907412570094841513432039363934671987182136655729820570350186470501244979922446756557798464118975120793137799458838206991262669040798098261904440075996780819637259778043330578474434180891133471803773437011789002239927887293231244997409606933870106893760317326671331918921441147305234562292244891292396513656107324064333099738131287878651603174327387017261092917281264408100262535577399613842042741718834585559974968484502322242918445629333362071088212275141848598355524852991035616338960407235150979420730392460988222243442444901453000998741651124089432766954995632507689745230491074325288869285156607134197926209198958117337393160266451068081721404077116147320547402294888236655651832769946087680511339732724533127686582664723013466638164859274693753666214389999560466857517525390329211052437442880247377115585335341345892893297508571124853516252070104589947207165959919830154721271433306722512377626826635540331071389862074196449581394799795276769166753141411044092035541311766693152370107567405969650108454932686334181569685645111586620077023914161335289950626237795583904578060928938256020086809667853455157283120171866682160262951887060022696666072579602609213210766667256357148136887743706902145610183947080280238927985331055837097596162150297417303599589017450783327583000721909776057879008114416316304479850468002782908546565277789629773706036788770378344416344708520826385186482349063479933601609205584490997948767228327398201822294021981687327426588839980047855260004991891152824492553574661431941774532022169003979001198848447038368291849466227553852872809078975231283354282692661158751318787805145241573820360660425216505975407537042962859512227787884874375488179504536960073171077998156047654578767722800289521397417436373685140704479342519614232164816608789939838171640262751006941401397483445040587526253423718899153404579566880833314684352802111251676359728271259126875396065992474938145672070274306518552953145449437972310316880842106398868317577145209205548238248843280377403594705607439532441546410803550537916968872452919366052741518427839720839959972956643981230397113863926467737448781636765400320328896279967712027616552792417808472029759438098389241127253141560871226070231528210854861767698102601975621814845442947025447690687439695694048631123669537383156953118514377682413785523569113922731677466473771775876069488423126422517164636035198713301434273790991347911965419828966407166296521235741363406338653848270905207492379707630252381760612273235412052750947852279067582295414479565291370101970590618383258371660820706387215631935363896375317645594024756977220701336795129272394977687937549806164324692487848829174936131741098710342818868113481146391423230124501485852782345152471677346557453286774076393847005582307394196142048753327812332768692858002985850186598144565264549486660559442228219294090776153578359325057161460936601108621318788960835843268707088783715532763845211163169864810845467009551068341557075345114056847294986566849410263881147444787784382712346465844777926212853920380381093338287682497849125494978212677194667367718143273573682428719652326233578978720280915968247481177909461656266351224685417994721509907480497935956010595987905943026052703671453706842951948938781685297310515746202645359484414300162007303281401152745682845416196090620515596386293454938675924493081136958422405682198593310108371259443787669373146503340017234981560772311531653573063082737622390108054621997199583665436335034076430544309673626604879717529820855821911631812222748901583868898106455344560587759122833533421911794678492635111175290189952580607205298161420615068826619260855890778303439703010184859677753012155974907498143727066385460085801393680891166930327901022732798211669539560612087072376611516248762767778487636219968087667950533674963134042065216589192379069977110293780682484252550154071906359635534367352614315029688034609874477978661479191673239294256899725309234892279335646498422176762389974382471679025017774752235831381537189728254341492920413150297606288236336425122925279048348756285582155239521417162365227171790126326451685615151084098428790698808507580520419995735645265544787195978624569455923256831474317413630251244666463987921831608514673038235689217300747056250133638296129786216003819906037388869104447477288921959970992015523570780626445587286083782759439128094593221412220122573116209391123835516728433854436906329816567305609057892742146817528037675610435175694555709152803602009468201802869810628609446871064540186244375785969653080248371874303584308138629172991061585250380295029066681309669511554193189714542565677475796539642608512556336987368052683453859430928821702862607973617699759619619337609587054962955091509145160715165767094281216230472342833418005815407654384180397353538402425539886956662403854802668113736512886468541013993884215742696556851028077436089322955404183643250344543867566000765328168151002567264829817206172050152765687260626295741799049992243174305631426773423223428021327455925624714628643821274467608510748356139357823351426666129273686938633525824236370490506669915065170269125383787283541355974024129291595920052093629191954841716001366189165834390032051466342876772229281448079319147179274322359828714944954632242180717273377700232466066076420816219717494685047695240105311553096976771350595379492448859521246427427819161354362149845685697777353685148673719004949651556212620530386389681089207462720613090760145386090027292018177454089778368310494708844096064605918631403549884078239269822502370325322735876325699914139795814867968513406681529496233652863582211317667839338830592794419984677126281358192311956549078726579032787985678998606137132882028816590956879516438659555708906932319858902187876541544143310061628933627380485289165374448626127330066024722966435836817663402318969730054298999865391496129273619897021532831897186779817529333547113842289719430661376008539375039952350245566451054536804714138435261347113635248242063668884013345215668152095129577911218624834443669855488566168403094144292265384345565767894345197464008801210565582409978726570479063276849635585412219574120235898431939616561661919161138028651976647819871890957415866647933167421712194872354981468508504885138030267541092468566556383918420308219431268106688557964067608099055027117141833347504669431466648430279258120825808480967476145020033719396813190949921405171079568799801385401451637100272309535487648889326764877220205115982555067906502717974260282084951541818460038121783022755751423523788881926024836645145360209251039021169228761553519405537659087536729532365270187040416127432003717674175223691492848921480930708759593389141144514211503853512734475772065898851586460389018753675487139915787167767241732086091108968457495845388570613488228840099773827250575671249439803031789311465402788662880550598096017851862058202578016469579034348252635882011976711748344679922990778523717362134193105243387906893030417557493970185820203244589527315132212520217563724225183677604371402859285801657274414767600854437095830243170374369495608818690137399439409665334405015444878008151463501814396220043936969261556068757662745103809318352949933013750791574447255484748947768522254409422426581984081705747715014501576521658678082614555833114200017300445467640846297403338629105342705869673119102907742945060911098705538240658850642604118434697923109456888904031606076532103451870980621184414839545781763474805553230660054042863035156813460987835313857908380456358474590837197849357110902694573525559696395426631995001019531335738841032828319312753854031503171737712082984946253351905406759406411183763465461630068050336110296101946968830331927953723493235043235757123481371010789030003480361409666193580877502703364482400288582491514828214069810602223455634377216597291421263563815433687893436435571712099675620701503445510392968074801150394289720665548072723552387448654085958948130660874628232342632862169283460390169805315989221681355790129024798264297788572322881146987644299954471734983436744422894643705651197454427680545522764516030290604302397388854940420606067578707136360240896426707817308600223480648437653905349280337428652043020566077548684417686099635713243415766147718682461262972724592824795813991944763870505227004720973237276302197080977879217470410020408353444395563316556651106434469451724070211275288846368128310152304892146110858775169139292862189881621416130932364667234517789384068593484181900179584517049382444227766351956685798549007095809199042143055722376529576050943432694511038820617509288295728770094949333934175022700664529973545136374798998604459032814316434106449981781185769545442500332260383611205850387497759478035168288789680374078064411342705301709441449849000294628599191281138551524373135163605545131510910154877218221483006837140040052639707905954612578687114204731470522015306814304013750620333466533798542364756908485828150689287071204786947767854560499858776280370795131240976570153025516077283889880999202964228806469759529491458929501728659090495005658405189218001661980167913588810690810532107985060236056696835936883117036177709529205956529060287616642370889493115431036115213331690002727144598070512101684654629861543908021567594102479986721244150262858569358580843844795733490954516918760592749749016829717440620724801665055174162305639586520828853601638856161892661557451628166385878135740696532336043873626389595317722045889278047832533499806241041483749833115461962774683067128158358645799401483148685490511032231440975799169552304651666994635939567131587194518097734438110406750673338917261837712061538138410473822301060492495510449901983341880567819544807774324340137793851160070423687403003018797931430186088575157986819715301981236913911112445253976927674001254837593040675308011474590361762057471172102043072226226497580076369713358261128831663259194610541596192697603333449253563220466012548034239514942672077472553682154929483532648017329005647705674642841401450031450938831169259968609912187304051540639464302573922383465398743433429805006779165736689301728019361853234627695073629025294066433324972513058549115081046501139876868294141369046112760858570116767575893964473294435107506463976975181378927407990325611617572786846326140702197220212765441827240870264370386029500282124092784389448427407560945833988987211720956755746962674042450991508301543419289473994878727073132350297174340703627555764442606182822749945868078684788601422457227527928654388893598358702329662874169580188030393718818200516876190022148701686206096348145630372039850004050702737761350723625182000024194885762943188246731363092164573672662895106029083118241751260555590984984110320399089229073420458900496314975706908812820524098267149139868640042309105666533487245169269608221316305866760619189244745220128151053473078205122908837559780622676163775363217610501110142819898381960559559823258680913410406338662582861388141434640402259949270137580493506160463281086473631837693858508723666987035038329964007478395368719528539554682006505888345080039439132668428641778295464702448758939373685030971277045441152215423272153474239764122663272204533871527528970090181789478492704908383117982008449841977783640658333693354247339554041668131739811376973835670865189334035631802374423403638794616977673739721404363015978436418179327490318640516634542793651670343851214469751150725572207648143531567785857907063861138077621983387279827807964993093035472350497086400449891263067138451792074907576465828418574793576954692679732092379227790274911319951697683235597593944573627659185963226837350309238492360858227146140224211506802512377025514861671455315422441964717575714976058809378919502410957342488665574970837173435367973982419748077287433297577231202413368493530339943570048300098283023025051973096522097041944405771823140852522122090105671120091833018191656613592451856074245664324979952721967431237415767538927980382135263162191071035850702686262820672434678637452854493479920271706594694170093097930154256993062641609428697519013685096101571134774404580924449508536692144445105651991599071598727036338254138637713523787647037768923679527874111878393687973383582026576406009372976796825613560491530682892685097785870952150533751572199174415632139786053848726489195326179779228849381767067375832322041913519870335927862698536960431992297956259682136694197839647074775487051866907749542730043290263283909513361970456084899106198401211092960864148053501804942282143190257828530960767115685542351163167706646833046147234007025481594271114380424911556571333737653269504548425253165400735408786999109200876389094914587049532590962969943676232907240280977598218435869701370342977089932833883369814875691520163230324671270249175727803452034527870667571277175791540785563722158380575243432210229308360957403327258394921557992425582129227068135742800545328355419053503966597699799169858983536932641372780485543736215780124903786943268965873583896251088693704342442426670637606862746490812579102654059836911996504547148849545972414801690695405984325890388117691843977989639194132144635480316111039126718720264509795725357885323515274821666373665344034652103521490292049947565302008345110771795725656411131239750684461160207472892433400404177819089767799576288816063799250977913664033339664929485902040021699131355992737160470387993488928855146991356549809942495900035143513071136871737948526821041975731929029531663954228921104721619749395262893606826317631730573086799700517536080344001765028579674691830660856138049154408529348175112854730113550658298257955552212876294213095470938762917576177293246139538932606126501425030771541880820215560468988426012374030636539979822263694488677678616860275102949756970958987724071149265252988300415215890876971845288376917657938474748469780232025650859811284995770486291638763955627666644845670245576139529763198872862721475355475313052800753495231998242616075561482199458092565775328016966225261977143632629613725416409851835978757696753480722108354258498239435352037173755485590401999255488613103467925204492842554759362992833983110294805569394717502766706486798374937939420077608754699935718744153784469979502217460480321158335436148709275273964547954977620578945709571959797978128424961279144776703274475504402088413508180193996503293095810390859829165736608302596505318550549606224000280564383626885498237576022913409608030207706477609207998491975394031769255445209825056469481336617648101866068135551455653120196546824686886197284171218638700241171435420367021173362919744633897256817271774666032667025724492381055883329734230530589113956651290916584050316688133348131627453931992352224745889699453954055005379298829891883457347799826960475065075143170719683970902715545273381282189476709909430755402648453702990420128727468177368374769547713073881261784257706661613667450564646475823251091027727676350083979984001300602236808291807535330738061989976308901226549087362196891072592584165357410666999539645398638942333093898301087767889358069578247431701219605830040597172175950426508118152491436100672812511889755749600967470662120109954014951636245587795538116966880796343978777863963653679225140930447970729255489081010224011995358385994815291702010583732568602522702820430211609550059076032935085331500879236454314332834962006533276000298141077200477261014180173753297415867783393851460959255137649893591034569398788007221314680925864731706653240396031557262351840016185777988671450501477506518547888247026225178666680840667365094869341216865815625801896960019950905270924008707909004909435311932716126169311401254528431836641135750020690536906036252169081109007882886727173200792261802431923745227275656475797273891659158611416608789510489593185092635758858765946187368846437752502107036501888126764041162969392047455992966976585710253636932160960282829281013996863581396991126485990553312608557519946152178751061975644909660170755966498667125719990720560935267439058451305126947868406231730274636320764766482248504814187600898737207058971092213167515719368470865383610350176741406200003367975236010063182899570880381499948274969240618371652580556956894443681065892284875833521607145876664546378695589247999940559400880523313319672249720962978969377407129375427517632763984515039179973554648560034267406938413192304488776774735396289145630562137804405830922537548163544729227429636057714678261375005948212745036845442879076350166978734238327033835991901133812967706852488121873414857136537702174417466317971030596750465898451402908005303568211182380760544326746758296647155970960511339969060393524325193493518862049885139629877513857309417015271635072309657067240700291704722001873898285705987304774722407576722575961221590951188160016127958798666400255623430593569700717216513567786812691313817097351439258930108703706677260838702372476542096053981338497045175750748623920062818811793699092641816272974117947136661770185959829047313754741708680326006194136791880799853896350260903841559413912180981079509473553529214719916507358494816317589632208876787817291052992165661120943549999767806477499753081616018009044942896962310130485516200031714867025454167734613950553305783584566683732201696507246817776248716246806914985853825470486655618876570108909168750374094595726887095296596566071183319366800398339448050026411500471896285424366719893166487062034012909005647088454345905547453525043947434281497405557522466655199492193230666213858789294709913745470071387826639988829886575259284759486433575048669007204312860768171959956107873130842523042049730650242757477929142448355039838846791924814775165227918422781780568835364678783201470942286402591798454651473791656143903191451224335209542307962830677972323851193700204124140907490254652880906110375464351190035653896725647827900032145509568342933288292954093622867269298105478815928910599913517374602243937268612703633209000750208484782389060512559511000707391153622350427343860187310995914949054227710811132920809275588946650412489144462379913359451526899586350761653349681006246522617707667039842273008095510057072146732883315855679780340037870085795317090029323974922729788792707497599023227445478704032846056390057816578082173159044194148976327332214945366234096758398681290535513804886797275072631109062048018786951145318209895437687739670288165455844617450468126620270504972509564883848168756214821359762036708353039804006065449546022436500234311114970232489529081314402652750714128905641963539541505194469976788046200006064345033032970733277002259130299036236278396362133114850697516994214395748976920830428824752295697660538740740309762493780673196150359115433629673997471618567673012989607835090820601658005257370670387606400063487721596579871917240738285825670893232736499133198510268510955605986274833213972552303883222015362968926660178798091694039243726132327155162637755623562939169259443167227158878641758353216725798924855507856156354474928982057578437442254560667142484698072726757555700174154558831858654840381191783347097267011443962046403144432988116473131515002336691730315318108440367202510148603612372801243638228506328867158691407059061789139112603248142255365802518324736273121566071467842580322995826972549070035771157618190762802608068766885164449179552425090651600797746885671210594918955285573421810267192587373191530983948801427172596464549367902035268583728356043798942442330794077549564410309119137393198733382021491167806326136224802567276393088999198675004633078101439371260346230573419998775433915508908600202506691107762984098185697299127918029479736059208651590452041065224933181592782722166784244319812900141807002488178964050373007516763503905674197989033856018178402470684129241462282776691244093269663860293218077128686955366178401603821716063043023667133774189153222063664647225834326432843277967245788570147067311871287258649326497111268691893437331183074453751850275414590407927546298943650998755426630212161562769488860413213914961726297806863123526775706376591502825915487666238667509353329617212539365935551395510029636097004051784825309755968195096675003862738464643718069193128098780403859323345307774157628267408440721285708826670871619162155632233834611405861841574531332992093428464325543848890165032635193190594660324659591973475402939254109575979866520888716278865344846156388769159426772523758479526550908423714215801955934074867267892573980575435171415552373293355069154914809278728336131057644776789807366118512526777409940361851064717661913177910377474174164716985251137105675677899099303596385673635405686776941164544120350344569029595426862598681258501396314806046063601972101946506650356471759998137503557262462893350086779581793508064840222886360627128975599353451524787154458356645235552098188538630011993887631711180847378007357246463264749660291717754069542378372135079651207688327641912525579393860849052827790979307614291801673702371295212161371156106334179578941483228064090448528589798559718410878013583753802042422102545631842042577550503532231766931507762743808924596947579641638380947242778742833566453439732423179753466970805025613959242700215157796117798687612814725979059670585599324522223106519826654085273073967688056987770374068433816268405695264159291263198410175754718603278968942514807346830233066174582845861700537277669535457513286799683418838916783921319594767623478584026660296813182702647818451307006805321128453402888378543635620765817810895215558114388063677720611960838329879572438803085408324652240814059629205704950211465535600547025004383780798731605060358309600364950974578935517675644582456063853217541178318908605426941001778245096233865427166706271730101051098543580069945374260420992550264104834879595110884749386029383845758357865100413444381939292561891523313616398138185168104406477016794577923241516880640082868618054694322491581083195543676522096335873070505629122521615490934628641747494414446126811259801267369878741504380274133124251180512859159362943073404331059137219669136445577919068816803087592941835120708265780009647332287293575551029430314195573230842562316493677368829062857498450986235885654653112683450870639810691957688238870077647572085712786011304687884032074631238927050716881565110818820003371521899367064642415669569767191681125530754260376716933199656559214862590807048645796375514631197665218145335318470347650356337617906501505068738879598388316275650483461729643323027766005657122225401674352258810916358213977965994158003271019777886613516107580327458629356734079847875569648028765320119247924614148349347190689913451275515431156386908712831508318462864833470968103968313988958770534099774726891108793804441618005738119663803598532707842088708682169147489053381593016319216656132407338650834644623430605701731401157410205637688724980819549818007339463186089197379129287038828422171627223623007648035071201959794354459723782396965307007004831215842983443382938132793430870140409757745823403949395212140752174311717950298988045498700045805680085651282916339837637473663690233281378557865009051750864476799166376215339438035156738217137756967127136755590473190936283599770228601503487192528536220455190853108486139472856521553185208545633260153810368441450760252170859283104920366069239545559154731142118675592075880045858527514010525455889973155444977639484059564473784338434486186017417942908881275710317945047758408460772746159573052562061540110607554910865054621477112925352515343419244221219626842836633737443523712590792204044080093074816252256954980192683258494776818047331571888859354751655204131719935230956957171719452769949149867097706519462409409368574438863633114277341342138564412442674697161968126121221163922281920565193464573169415953769255291063802514021641821468980140549367588331606765627469052385840605885463415808680917765275978668447175205567608259290983971682755736133210897095748928270350733016816567490228000266496922163875043584158856855591063436894957617599855999366577031290761834729299905999009159434914140392720707863816809697679129143586885878160507907676664869959449366591553586291368500815661976387631621244505158002346128304036668865524967786655766819815520861639772719941250190969163003145906854657312898831653227131234346413031467344961830144226571869212535756324863208266220766399887590060599414152595974147953499779873543073070572793813934816618918332522787448246055053099875370010413176038833106533984328872516354894333485519342171873420193448727456809535069250001631515119278503255783815096175660791019838621094454812914007028645440653893494311231264955216028494304594969355259409739245876070799150164743618509348817253080503684015285932277989871369183868889092381570650317592686597136435807454102966702602998153376602795992856452870072994820398012564429620030761149028786599601305852347149579302692378067290943975105184210990820863783578121439977389057421217997026415354627208812471820073430215746198520075441218862019714693212317206008738054775314250980576002450603498485070387211126575818526176067041522967191145492996675072982084897141844255348087244812004290526784785036743937692424645941149765139949935911211217303937191539690378690494017014769186808078407845300934482604780407410448119075018332673317165001376243881830006571100982894865283526578895591174853453853724992055850187276714935800997472045512753191808709502602760920591698642155354298304772186425392294106670047752004278040397309145040786488130393598314206270205764120121856181601662364467768183133181700342538548534192189021451070113748076512298280911554841607851064556374801645325182145474682006325698802894147906757908013264569836444997865984401071707322962636316968249902719262007122007674150961990701184038951298957172827654140596303633733726562396182822048372374739373295249335047503460749867411802573757210976929168904691801585780790054211709992439410680548950225657702058539331085456614704733906378692427840355467688145808067062753711145364168522388711133181447840227266008028108304207783582407449570905304109273503223032519026061819623017940371682218074185484258196815442123952183313377372944033275556002570270421888665557164568331076913299631768380789427559079081224013838042651136861621040928719295705896878043950035618804316034005842966813305816257610860322700565815498150116858997457838573436255973564218703748622413174092314155628189905351540684616226320151269158466246494827946079781414966831151464264658565906518770352216026475466589582545620637845927509607650897063537584647948940598780245608653697659447806892711592926219393783426979773563534943846644065876182748459707570427213388129720721389054427945027847711918639487669914063005944129104810339407424351053889035169126952187867660800134309625909185191767409989559433452951466193150821366289986678481764895721628280514973936375810438444041383049291480839211934715225303428144347249237833192648853562136596770992920065461218098211988473727971043560455965182052636197863284393671864006160604622908256331744864509738780478352906760431550878884232794409614622060583301883579169833021519938924593051021066682840604327242576377466202028480470891700304221203816237231753844377811701822755895290084538743252873702792338448869964132856486166011832381625456853226140828804311315838244027811908120041752274297395756298423078696517228255675609624494862910865950201078062692308831997746457016055891543848662544993502981117032485297976163524475978115948722733407795429338115221860650547357066265593892219830043634882715448432717023959783221429748506118230394664195628031033125059751574865213680031687583484175173345145347085734794826762582816343780675202913237885615524561599158532762545886348603915713914831180520101273505593766216770519549930455336658309666168355343590337138754562280908172076358852182801914489332449612163033311821047107940432454524832845139997947669016372441026162740683887313323556749822889604461023894111389886712322332523918071754767003152282417833888414036682340377297585802954187854063501440353733731057492877529465387898660822830185846189064347908982117306170039330884486935942110219585372140903414028743069953642878248750834046913597141125363531900256530550824885703248746060326519985170060085087155734278377034019729291067599286300218606964321107127601271039838188154337991716138155998101111181942092045089533873657174170643814616812981975487492214242156075504134774738702917900199186393266959982376559502078566145547806102746199123279788808105802573416133399965239638646182677530633385618066476868120399178647155953512172136927810673657439188140080815604467720859901438395044488927988089010112501841355943279426573406697347045547029914421271443903733110756173750065800581004040293780830214841303250420639837627553711574095801466460450253586200332273196623646713598114684110748934935019153366174232811095527719282009567427913518031272119090896970801488358084688732486953678571944629785415001228926043784697400876873349420335665450273511599425044264946287252987549153916112632556481806340798375821032967260223766369421495887925462418646182474230160953437711826326780178398270376314658734541188171969867467145972402412547186004633997013806209051978643751156170804894615678446031073519732372365169025094538915277038359788626292612604544425609608591290947364382752286549033683756884768338786570052640697804834548224125964844932693955734739612680721704365333432495964813231368434729019081652705843176478357484188272546137560877579017257276843710332782623284093819356723487935720445843693410055085250273764145292440508961570383546167973251374090449628143526958577925421155952128560995448644555719165870439721329958061900650019009152725034259657926568200603672035223994185748884533144563135737343568069109570254874557650188410956105011457428189109445460435701243755325310147258661201104420169704743049984850690551480288011231912321126535711740886911397864741550173015372485981080238297734431759451449510827364894363680758322803343924411807946076608080550070519026978466614990777153961073177756032027627063071793524541277844017838294922445275194346799687976157847223763607115991287575009126272877575377846506413326394158899311222368002578306209992817986288066743484670453273987825522113171467530576579604805737737510633753846461596613022462288137542725290075547947458962820639075267277416051875259156498752331214114230194950327696674810680908131665765855898545825896369139900003955400165326570609240929869317627460538005756183031149778741738506605365253760218362262236750358190689597690179606488830114216379195605502933200874727701397190582279681682421086125066451629199538917362950423537443774298677931110183264648535076097184179659197868834423136921889597696530116032066059848003567841516195596935743928663633287911568039869253044416969063261005740395771812089517053659842281421373152699418688366636822823761906138883248806148114683612381336274886589703476537018017604608606432833427309233847821100086758330669593259320508340904400328369146872943773267011154300262780001430181298224138897944471519644034990778921984281407625611006141441766958133417700131456304202963911425519153730331693636783307255653028913363726933481276905544921390198042186382531508419009949221607204678402478181005688291735612670833690719686174247724713365560467368542836849123616352213707942785258216287914862963445375644707517955173553226429000665030372405715764152163025167967726928458375146350391608636940320281935155362163005263931760014083177669912887180537356708702733562583886792913078513935486923545492277536974226121450812528641398962489640166695168241416310068884853110141480018944334064200778891002335975672900759208725066573088849321753978353345946785913083092634642160508463478300587899733832365679759347638670140880834078053706677114673216845401374172579111568087961262848971854509493622158583767579836311090479217719418911286528866242528707708567047483856648052294107034263999134291816547617487346826478491374245004018246933836498666659124801381414098339285834276767622459831230955468187596543228958648807767046471344386485998123888973180392185463530726609122592288636628259306205163148336590627648462698544585840748216794019210947669516124463317432077785449604718506726816069924392465959821213020819487128179062783185247033828386402712678531536683680001620650394881725611301377002607531850025683741015590387955378483735688150563324700890643539245193319131210862113035977791511396452909019393418579515128837268666780240789225048557563230824444829088009556774871865916849861653134669363896285252409879908455774936389759525074809060374129834261073268127401143371187155881395898178061212152536720249070767939817478190400674461095074976417240765126178527021402386390657730822721440094534008027986642924271439414054797398226855107276621836362932413820736017690387724390707288262776062716356356503670652798536331370042123368986505337035454370485138754708600558620666361701254148723819784211836116532062419694672124468298796767286426909082027279526686426804605218143341640767812977105651926996907485603894840800278904488919694127221877609758331917000686032490297269964455449690324497375526150776397505613734477273173685377529398194763295075524380930659049536931170405692120155492596137688391916145408309188296970768843857543056665167990573232123321170902024036154990815774467054604475838097897283451778772818358525978848546538664837767103438397728783179725433758132013737648412757264918524501210625713540648304863554388775497233977181335477653930179789334972486665417548239772650187313882300058224247799621812583055374112155035083275725920425472579334018165105827246648970906237627628847878424870829053611976949762343439326812287787314914906859006332532224285834560573772340505967646467454040376534722942729211154785133976381338523808235021026722734768134170761339908694370379561918913628964100756452397708596046621685456293912010532986498268137703266661272570576792373389851223186778496932864427569970826851583319615447114641282688731948340349553320720073214027939144273922387473198222530742510559390578553497585404690772794656522951529673594976468212923816526981642591501081747117976934751830476162477558170213363445537634111147548625736461738717159927765637061451737791652608687273912212091349408684823448414496007358905678040575361433491558101470692707657333445250187811241836137054627848770296615786839978255044460671312430908550233993014333341959352599112494831802378218534027495905385393600064160456241044018167498078573680091188858295675865495509715731993403205458807052090272315136600705249799394355022791449400898364948285981698209708615505742890633980053001491930801659391148147117763682821215055005802548253094860374345065110567566185076497524916765838543084061682632631039403140341381092793378602684830382340230621020172502173665031015977453604333501078511362358786744373356152458508393339561167588295155823255603807073856587185711082098555449458479853572546104825900803297943525555842673771357748473913543292288905382313131232441407177802874238763842519200126423792531928886817116093380007275025522548965964163277921126837756552935964632849210868591509274751961222853271140155702471216564005101737984530419024481087284795164047885337362212009597759147752539812330110912189950263362182219051470757149465825219177824177341049693178380375555393699526579226850145539711949292270316948300861691355236088675842483535408258401840008231377730779615413745639435605982364494434654242972735295487918051613209957312256025393235149875734185991259778785689454812361130338129754507402926432188985640717106356205189922481413800620121727008653806123846025166310436552823756621269735060410529072556212552711716809713590982139724280987403539345082758182646387821411439420206351926489283575634809221529623171716940261485081445225068914609641896051142059307952592081497534778944409631237925262346320505051034147794637345034964894967351408106454878052030815713947652947194029687856453950464883823078409253573061637194954654327504441810333169144942384813406635257870697907650061082757262154394250293504243190172247288185332054245657188923536550996493926816829645295019092050112576914483652800509233398896018835488782379391215632127244115368350999775444542537298854668850192980497607876113845594244923352385517403090666736420919724292986044581916970228572946464176389906452384272690695431725859297682087622968027816797835426454005699026791848790433798816977571192492651327038826090877888468587818848680363175881656216301048866581447850281948642455452624770228822097202175706372368603533784602411959317472472532910819920764554500060487633838858424894391223548181401205736434660238197628400922040508166082908943585328421620940194809084789785186406896895376421589881439533598646552439545816739669663022304585455515965112982311146567697872298399053554497905340893480460011784325859015492619553914183508387496345749277799541998882367055668866932142629935727784987317820932400441044380303938437130594945922633140088453127889039041423225688154402650827832674606699903280695949862304735013157087589586577181332576407216165331003876595061431233407714585401001218640245860892645244661097457433708781191901257214553298965803609248786068794529608677478326422211555252997188418393208086673634210275729025466261712058001498903201414149838254744134739275721322936295743207106757057417312370926790537525916639542221097694514974074805359708412748966141429924460128084361738185519199742222937142249597640872265298595695756158777639260692848976053811966611373366297549354001029036310923553867851096049642649509112831450721451615528686961469898212128773304485267514786204198764988137048488992737013330783707950092755795063595099904227060619137126615222603519801407477354212327207268791076753520753084827938600293381028355105867411377038276390802689275929956211953782740925500758674849286043795001957035232912263276402202741803981995291944272771942389898257997173101491827141090235903158703642109536847120611243561162061458209710120675448202495374632577243732092122957504507720361514985006919276160670400752684521800253848581739770858384744029480384416881513715038056398255092325491651166607047936730614762044128374489996193629633898628322075174507100510916227407811423218559345433597904405686349370160519356801722111187334919975286602177940689090239102166126003745010578085816992781984684760821978016763049351764021131470138254757969243379410933617803223663318072233472336753464576962409133870862077690975812212677584030919507360564974729323717262760660314934143531957111948810155825659156765993807754851148060574113718106365640655932116302979150308006530345339896593529382859875017762982331603552337862099720530429748531376867467029112297087817398855064759796029386087202263801801353715902651590416807150065937204334828495121125618600440726375594018580946200230006512034797526086738392654881467282982645394059552756234485229617443290518592429825166505152439068422581072757486588826323897443303876180102552872179615599903803033439737971918032049886249424473762264514232485767015721537541487430256922030266444113554803429045405977903902188332007306356194463857469193880521735573662323567492477533355128649531721587100899996066762266065439881263847248167142098141196823940241507744440855568339286823618740088097991895516732466794042396818198424079557721964832493233948438574233200152702910260934627031052187670664675889271359931894350034090004686856386092291314483139802321714541574367196899820038958893196617015807348494532791382915437826036690477590416027588214449575578795488227273893968191447320924706170479439225856727223721126235047807294350442281202815565033309954562600095349047309154972495273416391789477355396770930941350538219169420435278042762190227007724769354894378583015724337523489903400533385771709761669499770943279357895142456496927432014125257934437732760419717768254336862567807499427988596344529023986404960294083344964007230328576275323176722429165422805859027915411733821724186931571600467571473848154217834338320594367921068980145076112474826236731704719674966873226317775299694326965957663226914873805275855849207852370871774996072244804162845360956820161537551371354511716682122893349986120240551160328773323676062338563665421243076946339821313020415722097112654171044654736327329386534473277088268283856220539097524896163889127955191861855436091135675397027746234764769858128285266332798409884447684748409046429371035000428754482416779970850021831135572261865687985419157750578119948122563724815290476824262150242937164718547192479968952298307257018576697497979726114844817026339298203453996977236027525822710681646582348677334212319172508466690492517004199134105737762562416164237543314736888350776216199338491613913017553251704101785455611058687196000929080740792826879452010303423796310447846902850919455129870550403288797353274979628001871916266484145833147340872031116681059198968095020557346370598548470794306573746361032436416043452457751737648580961180576328490241392110513249637844802203954139828100397943403841281756150286933510522895490475924849483551506810692787562887714257626733301518729784713375233459729780768312658038811541468573919602742209721488468423598237930990750702060031444450765378545287458490063617753919921876954113673010876982759977771550751529733051356311788506621469543452133970817574333084041667825466528141636348452580562349154310972260945482038936759189986463924793382751558757960339755201326262654766972338247517748457467824282459681454810939907373430124755431332367478693354212880615732025489325124756059564554027190561112078522860303585488228276894534026007489939970248838673171245075108621755696749252212731376220501418619519925265661969927623464866945529081263310424909915003937354986302217558737431186898994178598069119776026578565087205191187699649930801068358214073807889487883979103884887216873816406295648052940673616013592765284674485828300062289611799005626674750278010630113672793144705645218751495947103082950997934148953799970852660995080249211372651717770345931729353575162058670703626760928288378159349080576293100296765612470307529354406649273988108950216633280982741009749262439001617118705540197425268335041361344025976509525319753211666718142695636142338647507897271727562200469045748195205376276888522419446493059336395465955688522049143931660651285883877076465847493730077559380333481210688338547848756991522112046212314342837472001633834497975658803785635029814179188220558888727285835581187103055286111437412362607744669779876446544229948675330171690672605960955434354909103798451046707397491013318393033563214914608788989262267937149025900253376227366521108250738772367506508212624522621010871396798990976922401976902826140468007034098142549397169950432785073080052348994884354540725970074199676327645588331753813112695895494902567818018763313896764159786436559471592538562201870468658525491084954282936767004662224596110756330241703851899772496509504128764549440897906936894863505467067376507786930500992298007783542582233109734454049984611924690576671734855327440438271961937054882359754257771767659852304299924506824670196234919756110615116875821115389784693554849127840760726778942103289621857500211398640137229029576489604107784835324309229666126753844491086111681770742022606587248388534450732351403312234298976528798407028315343688481056220967850916423463761258683033031718766180189678518077557841146782852344946043944826494191598768577044045197902632056127980728671765051565394726791655516686292900274255283396156404515257230433701389683624879175583166507718253284095722622376536909418349776856633995946946829376366883346583380066055999208406214800834958452856479830084045947401496363320105365025530300226009083474701942567324211232322131583929329414783237576554263693646355050694516606519642929826969091463688639807531042664673955222198956744828967782340779325050272074313471594188626144654337055167116773322572779110611824011881750132669009178609085644401136479843320993029240216927847826232322919771327950038531017582017512638729202276616203704891074681999516769225772979756470260617197938233777289529836141886846999008976140666067608237368315617980796829142933656667195568987040183292723423823075797751152199050782149038478218968395193074204480054347368062028493786759206463935293624463156899856981261223317054449118617540849896356971674616670396627550501889999211263410031368452344878346238284708611804688735251243160954431420781594913457914127811855560543995188647056531498833913586991800013209116299124662114601495307800087152408934746174926656941852488372806935956579880181337719917485719627733512643322026304632973691177931653289137852021510290995572666897986941813680313885510381831431367755223854108081856146494085147612181787079288839229333802364656253133366197346224907407513369410311795848130096144776215746441758609285834937124456069996069375028354058294479686775534409610488337744263867347614754719780840721170990460099849512000909199821274352559362375083562488544609258174780397064928067650513278900429683888591998769683092327952728650271610414074901447332681636438989580771570238109290935880420377696701423982401180619076589799935540354372420031151321547273804829322836396072271688772471600693333559883409233074157448612832838560402765030433691162389564387083135981854405927079349274392087124248806937015502196043819749532135676661426654407356413951757752872987353546916619031570509262845599749001551153535086150883399877396453029139327583729652290307550721798644809349895031753353039003766341338966619811260996653261908498177779332041438457877076108713107895929577768909737102370289209556702633279532470036805095981699787542335836757404684841606899394034239651166201833567316887560519668394727188598157617461687576962588296434728786314986432771833238972558286791609751205279216608870047730209609907078591219008848592637768794915712651654517989576142613519926733378791967567528299518785296588913313509423962574922392497905406724458793709495338939323347158400540255542517049441757903241120585609311984808479811906886655850015977192470882019826816418313235613685934874183052845497574827348887370989851365019566285892378066797654777001571241681166318471172134999399306746474985260528481803796273993739434643212290788778577528915702473222859524612058412466542816634836256965413778672977630031185117342973417281419455520708803949374155604945255334688070155887224527105958802525146486050321672494887437932297114673447684713145920827572099628278158218224543659797615582883732046863230093842171677491347393275050382895192718302694193300016765189787019006878316478275372670049773660301233757742579990340845826894566276233504685231266836876421443153722061069332895510395635437208360074499958940458253073486875831096742265037046738801289359879974987492237952979420183383610816043800367588715259631255602612332525961697177861224391637503656112493414806911179936081294200565044741632440050928942240977679225146596757243949515050813591560637769890692400312159413234290916133225712969680469260296451705662904616127782301123063648404587804348052717107279777694957596704966129082142296291482634465439164565154018265395405578867477602190461718062613773554861680253995426165978433690114124944699395711010855716057698877741488538860174418972258964978817931052909093249478385124455397386030671527485875295348641651145134959132192509471281193880364786175363799457151105367649940202538067862200283101332729263947127339400979685496600997030487078881790878261549993333918168258069432401754020870982806582449888053972696224870305726269877088675631244520398998813537684410139318023303765748351487817667953954711553039534308777309952119280457206222159281573047624004182989679247306043755385985663869420404018540926777418009634905235999794084154091875979730091373934442538354441005774935248148552925866523389020310212187089073280649214656723697723628345432976292574439237787126872106745264550646582032940374054715227209548179665266315832068580294726622771415543886102721048124866496440296216377436466958080388889520760224675485495266462214969883485516046661052949835558870787486358723284592040912798306622811908221643554206294495220849689970275930432562890609356139022508726485067069857537493088252618169542539828744425971247047632538614041717463184495855875098358086663306003430492454260480896532049369904850059430932150434929958874108605868419825680333698722830426531464795764006498417355794771821835651606134770179838545133052728587303846859068993624917139398085651681507975947867293276930142698576020676807008195465519019966857388649567136209804572872361727882732893503370899949698607506081222891359949511382204516344413902850447325672269116844330855795841358251564272258461410380511882751210873832056471179977484712886614982519084167546333641836762698708659293330595922899339361615490125892559360847858034955654323798350207575756821312960033297412170562614198186238922653089967291621601274678684127978594992032114892254110093576124800197020404682506465850569786740012065125394082830447969114860816652625051169521298287105231152732158698247625952939473426480113578128814560787533785502603862322826594998582837042914640643072965912006802457384793415393313659981737239262248095661954785536754434228625690300923877966954969658220960403424805033615999401841497092864930176554948483009623623360160840719450033395517425114375177160397420642108874132357360913182040932720623573721403330762354922081198553944949860247984731378056694738580644479139167688738670397701095958543267578263730675858549653771173750131966643731658070966948644633547363444016099043843441926044052625971317472024111798923189791225031731737166191967598016087086796725195547700897264706783626940258641548273594175830417233166846563130497146526938404894488005752897949720588907201182567463601321614282462699920966540916091729621413129248956099571069504674814723995484989645756624904828024897005020263480102286722433692076653788304721702060368899169234018429728201028605246059465400210928469396427057132832551147894026920096444729347050561051809872385316170160668011300293817871898862154939853384119277653614779458248986101512621625444631519344200150499752290964322170664942185392934115296888791078834466142479750760455102857067851365017743664097487338192745213942452217006297755237865281012597834591299941987636341439477511995131430200953157317934708431265244730862093865360575652265431131413631022158451791396817800188508021097119348007559201611913033126521854789207627446154505894221830711488800509599173577759246601943908720524021751541401270076673047992061219351381539748742185158882293205233103288158918494764383220875392230368088115427856584828701686838951237223636308552044545467925108556305795602152953862388648976410189497184106699678038082843845630021222569478275047988870017388909613898939507238801468050509212444526736778906477928098009117462774705649420206232405751321098192699834378553668198938684051271761656534718669212479667845316888454706802931319109121967225041410306806758313433894865748190295211198795953792725647571912960950948206669267379250007577722764361834223690580236556857620689564789399959957641282833489541014774397773846633555630576956637328628710570909315501261599015138099239347286563297511114302741088319977625126909999675632083791313376148024420202460223805289514210718282828770917699151813287262630287357852447763598708469264922767209624283224390242985661312857972555872381804165138271434989847713182735099436425662502674171394873124070497563377814713202753820846540373634168207430452335986539306204377323423680834787474891301767676544185741369463658597879543780022267107125571276413904205717328136991413588230604594945635976826662224329122614173208702102206028430100267245310541863757384569436301333235601416355191920261676216202200325916349655342854002335746648824006597803051979450529744756178483509988690998642418862098235134831622979597442354578551792252302104600346669011946756284989286099779186136803920048307977123592545510247706974813044387269563720386120998723640610621290678561958455807317184944417387322341216297115077283537080953034108264540820081658520491438126628445507980085887023306249479361488861999037037894069536689372899192427364051102841329991193062781366975957145431355231699127649043444757666889134601543031712209524906229847119898490846669398597026604689766826315771505950043420388931828496083978506095313261749308187690167361855506320729622375454775844616782781662166783348534453096721739932998756274596032335527649572366931048167318563923930582240524197368564483576345078412944116123073105403670440710526002091178605932495865575976171414761710261327174533522142461954575060205860342610930364170577908593363255669732332376552132469651064489057230477999487143026189123047371072120358478819280117892122448465144976354444992355242358013876966441690712896823115979241081365954544117616599883683909101000411051382186382966910855530529073170901921555347911923559847772852927861811420807378128444922336081801476470559316232503981900491297523478985243695492564835932838503008118257812538810062780429853949224308545215688381226165086048858761362644226385143203481802060973003636157546456184775812920336276314382438987385248838996695555621587908852371835409663670980841532978624572356719760456962238512978092605049170066162497204715551311446378614845455076048178754957721949819207547095046497534541835221185537915529694316872691066623086869374430575616391172539194632972661324471792790820262794198055504113416786263449790824247566330134504744927981975939485171025054053429139604523735029633878273633549357021048664008401022346438360980253558144374621208856729358906223993450038092985566361103564577604913558393137891942932797731721851972096714092173949284964235459927056878197907050663906806466653756167283433505858094341696761315442231690897475594377360376158062457538446000243787237029877589962749943754815084967295056199684894698661708277094177131574811490873166240537942778151550474807500078926064171982329209099567690094798391648171781245210299162567114853999660529454117689337662391578805417981464192609753385971439648089253008733991636939165241558695257789510596208047728138459851601836934716587079332529109716632730664995369875696687162285037851132756663010289911595989803161153965286773044734252487152323348356132967032521230876992296558165498897016450171658331324271711128518126818271729883774801336930228118039986065270202026148960613909544200635046029122618373063546882211294373881024397421745139558017217020140005224874188655623750832621774743637637847226058538196868668057917690494701515473536335613546635548599502574755017567220125470976441983840375984329498503329727337398165318039710854213670912577269360145215121277177887114217361301244911795304856248699612548336235205308428899490356312501687546054872549943801164492037728602740462167596166361136087826637547938622943050874355721786404866017253890260673084803532719481639793155396310976892574008407147107956004493922355857637219282832130426526666608819883058144788966955920163602339510920917216920747123933468494158521407118116269770668735237283551581938954436302239822105392298014389363157879146002986754188325610751742531747935638992941465198598292140389187473249758585706634704136461071554669240030876257017285148960617662540954828797399717127704897107305970960857889085625156032531723271917763488504177860799423205092543938941971403896645327222502604557445388853577192150060438619585712617983036048530756301880749934450623525281567594939945874764697548761016910353428185638054267033726547280502055445508774836180693460624039814779751011759173573718599739227640097108343552938474464699641441572612735313085757944308557603571093352889722326864476160470731012789970286032374315312460121613576209412415747751327040502676538927818748985486797711125954089650369529857515055076182614541116911025560574191452046643241152220714556061022787651110630598010576315332707587421503406125299514097527772063310367187637715598988582902861527295145178925258471090570010379400137131537461645046810219488569877904472189119631659113267809712972998833868296858896175123254195438074312906650429662663596726791145617461003800292088127582241169055452452072481002717335257967610266952299134470733018814150455807634587602818189695520913568182409613269870569309268688603801789710598665283004996244495823210250658948189154519773513453628348968573634818405414083008307370146118050937481292325091937959663761006327913746213602162313877611361318744411707725554332118892935126141621554253861303655715812545288858413204816491861783719420958842385874974603087019506815995246609486610888185066668812529427213501286100640383904446724110960369932328741726969791070079104987112835311027164941916320181113869634329251871229082931138165148609583269950659083970435457883921129775052587810839149816303602168724305072926267877978551645602473004008168123635910508835001935824690963879287948836154533727542553716772231604307301183495341271231776339426732513903364168050459859886982743499618382981389543367837874367236626741107036066069287905268513873340527377030018449932811236886299177256899009678207186699595954948783368232583196801245092541439107827213782357645734166001815772375826997499324206556113087894450693603057931096051184591232676173737120644697884393986033277834450409407534571557032275820364994471975393358024340198174974826033963537797494330828466031425144514864984753712223546348989958590020887727576046923734140486157540198714032642411300077037948361219157804887696925077308872188367461984283054960928950439873134271021501790702402189561541311993644601857368052757743738962638513911318129161912607699645174025162866570361300834746994283696589246838065107597462114874673105549038872745593089816268983120442987672459167155853935031961369359194912954398867048605715796209895566015389571962671023712394464972636784629968644748508603000302121902220286551847799941724748413992055812850309198474382543519147435962923325277461337420788118902894185460217285877028813294362581193554094559350272729868026762281572945740391450163522320525221824196169568576119369784155337328239904391892696267764616985868818591700073795022475287692532181803252739665691170628165219114958934396699842181615828354172073872770335468872691305654730333206927378740589659854876092984234838416412732835196386431795212674788799696232834188378736085941222934268460002303388131361326330834738184094491664345186651188029764603718833060404182641571137735699793911155946721400656982789670090720211536701321634721978837409316008718740375442875607318630049353519465848757756712955974016208460870295056856994197035625931692200112622542945174178880572076815860617009711840667528102489098073257987150215551326456831826907499787773427748447795076658372531313349442312638043160664018987109939511773225999423946735480758056866547777960729265065359950651600372572987383891985204709823755502173341462888608357956456840550749697370235576668250379207997411736333410959516824559248511067644519233302520163000209356755464064723419115227458253671029388762107491097598456309458746223518410701446707522248120513361134116572519517890814516150518494831648791881594125527745875414432321552184934097605199831294611385393216119755930958632164819011607120288611223646769012500595041003712609983481159504813102771114654471090291970551580331925882696095881714644843895643747825117623569719941569744896708052144348124533443623922571932343468453935684305818409351716975550046568321737727325557768997705302572001377434576335154720490138887844753656294537477956258254130839238686716877134861246896138802746853318827563904624737322721825558474257169533944597878433819817638039573445826508733939922981688492595874950914223141162936912265791584480357502660581931862845684986888895692899946943766268881643549978510193751697852653116657749573532253652951489651793839621656281287234648260448832437037960968176147784701428062654585744251600436195329603560968000757624139859782895091733178562514900657442911009011174207612401749413976681421708026457698028516148165089135042307099241523861689241408197720668725844444033299261425376396330324176182032174471926613995600492055745648814938604346957351047336993163351155930108560206023780206985866524473335162711592696642560662276907135268661573508845826565270569883507717041787013848637569696927478862523127712308890139592032534086347836679311606816756927220121782170693589360905997238652721987346455921388448717073269261726488940760756567692762174091715447119233394875831419798044153450638662901541766996711640258322107588966294989679213895983251674729670285757619122727871144452887572574987301922195221622148753564830607045071323391427844632195561905412138499316360373351312144500498703140815714071507080367171037483721316469193239176994254933622419938031720819633752148289408754498805344664220034001777125168893987888938536674046339753082824465110903597746936805861801614575803078914496923245913740784992027620735156355865154305069297432969464418690233312522677297275641266728914924199767710760316917748515216086210730673114591895556571248282244578597231725166655510189946440896542730863010623679969741364424809338483520866664032064827437790955118211979733374388032264589903780339635116127008781427528286119749036622331222849817541359336954517066524492628592128113984498356186104409174033537902405348521087484780548212752721371186156862433711336463613072524794768651504535128977939355953768325600630533815239265758314664631005485713433871517050205536000400683369092777959318551063698319159608113534674128972088835488064781060469560438551120964991887505779898475612947834567016939211824484089479953869572660424496229905601019576335815717022731380856001217236465826064928989033395902903851180524279600265388277062063373846822925929506239395980669144934935217853689890591338196791078625128529486916600586053893817760846491421061066556563442788040910773290560976545990000807433941269545087106495460631912082074659275680160843328540965920237688454406300468864823619262233970534383424031673134121826255080337628498428400484097261353187998515986205169034682703763926233298377329641749201754428161448734293363872468097101390432098299793709450356325714886372354860196536756479284137106684139935699888603635357379515701033191133310155825519060546530710436206573204386815082231256913750042598919104478381343180325528982350445817717125602989563729759899649237421082783170143213827984995530301375237297636537809513911687480232984885844760383498837314179620974178825341922948854548680670894922709406853073226267034596665969064874691617684815641833286812719156246823545962899699469616056485913672279660293897337401225605011855143866688197767338809173022264181589307430024610851715104351722489851469762219834558863038218859697088292310274913839702353901965214204250542698870607183064559938768831788460288447719509179974158150019575658385300798873403710770833807595155754564029590206668998593136018090701072991835886855429156496295678779516916240215387727544554566329455685766828983658065587182778034386135280699685541167204304611346116123412961213777079515308522651110567414704338944728483629155319438916718913619586733157956967825599240334040837806496067997896659211433173654966118644668423534524366020180877662543065753358910054759944514735738159180692724052490999984123461358668282618891721658044557518513824805985878899863853567252259554833305179615297423286306536173280995027896459950088150223131834748597519491251116178600131014498986009340548319810637218447915223168089276125200085634930939811127151833550239072914377109308054559360185925471802003932760359585008269070398332274833977550871521977978067137608679222143602146790908130728104738044829092158882370785706601313572380193774994438547112906396624383042253410585295642657078121856417181670598819726827561236949918853078148955490141628974011535866059044005808690031586592617216421551005951070598323311792142430686163527399219633007477127204217831007595408478941184472959380676742551455802445115695835536419915425121762651607766113967650657761537369490259384580205471725824690245454652137444738943780300566197281110228243070283078416268028041127427837712938549583654544893390077056312156636273961537511975932393789554364539534024980005790264352560884000397194469979337692379254558702650260423150372414149133453555020993826813325530783059506648216100014926734421938512845370774395777141568366960011161592114182456257057629881051855076803644642133612930835924821106184678926417989154302331770440151265445359356827527919622508810112068667828898620411203886377763776871727895124918023003507552399243765976354294262998838450699884235888233334204739889653235343698326095271902267192866550815490401677216180533592655557213595216695685065814220399782544268446421979808809287742283285077830339704683850967574979949608631939014606345810207956095178648394844673029601606381798373218651105625887203616317003337855673193511220588037490798116259712981058922649441388701005997482582542974551300595254235112345679331205626324074574540353902161616178196925178808066404487114327662550932653929247735668157259518948791269262568340467370500669516374400624201339929847778820961750312615200112128203551288749220570252138573079573495017606351443837365388263236356547085787855491935927501087516958880397480925939694502063378775201723311906920351867183110362014574821441889402214385751219415917874053453760024514032622906083388710396287586900577493713297145828396577667953136980238316609572244760064435024889382689892750269376431888024108408044964128295045029538219639644642975695965340705288359723465847294866819802219050501669872689226461369203223230927641977500816185072842782005217624655344773064277763046293502878139473014080408583579250467758594200547143070619322125196329549026000251943993933786895535789008137715575690117844789189401300409947570123455549328740240877926781834670312288161537581681570246069628410340922292867820340873657695824684092873624894113144309381714497541960901731008145770263383133062550937131835807591881580452474624416818567015869932721404189306057689945457538349438012795507883142554074346261536184223346310161339704749269215658617349966139974134726901742872442064931128840605210070143151536946522005940590109422638670506653616474598535047015075905149798735054992976061147304129838898968870710211704528003869649489862124506440090591211939629651741871095015475476500052210775475253749062745476568882337913984630762924772123773122229856317555103245607972770662203610626100462303533089858227908075582840864622010151065042992443920948658977001601749789385149925320224619124323327447133392716513664937250043928180945550414941504379547357933558235083113575532546170260128753317107914190755218874871696173402366003321635689355369955260011552322322144823272170699160004203506177399048197888389938523509928016609612395882497767866811933125239936155512296494215258917769294227935147662991143034986177906739055065150092959479842507081070075459755315192173294454996559326073165688874264867432017879387598099226924174295470462099560648113685972610252218966019004590384154228232688484697633818853433784211747042747867074867670409335812707336499563885167797631859471978622495323483418369833845408558158566832384341897326037812617613700924518296624220323420143544616839062103535601720805283976044491943322473443096979614910247535221607628423283231395053582659935998817980966429961076559156012724839660970987024252805959112545478940469203122577228769254175793009885514131196590581078040887822883504849794470319697025124111345159623845476968167279441681202334100993552071114114676583099986425316661481913756131608146307500434636940889511904628151712981127547675601269880373733527734804726780742684475261164449646807134059278778390983233317352339950319701816322982694066605037032314342282543521713597204116457902437301362782449860150148033855507764239761148264598317216301605201898768531476872833872784376187513296103872121980317176838272284922736897294798506497829197134659986935336788700532667066336585345748956205272944977141560673312703737031071160252325726351384754416093266549758088759350770852629055799255742760752968214661425678174093883776010447709066778686638006934440840673789900700459580116521764464484571567607442736874665268003553976625747535662577994013202342068915383447976274438151514375342473018986623896508488531688572732648467604302417649273309752963859137497792714833041334398668403893838593724944559492079046573955083999607809506901320282759391333419145516451105903553661901811377165044838316494718046702029015829502025616455523427971628166393292656007173236440024420190455571271891458547969488401701315421470234497247775891850374898039334174911691817334187664612122595531752624858768917497394025285139358776411692193373217804983161274176638722598123277312416656207510779688975940594716550736099104625650639481109869348285705823933738498625478406109864001420431865756737401791663160254812135499031184673814501551827819513130982441667678422064160233810734173078450467761233885774432342071798926624576543967265075818527273568980086290578316151845563026361671193002285196172735582731282448771753985024432636491726587645173104501000801342586468212791767384439770389724694273828819623646553739647748318013833310160648986720695449717366033857047162303262724883515300033034156228845647796073263553907761110969336669702318350910585865773523029297043655861978158668144348273371728192253539180105354065440112751431715775679063341999414512213176791037867629238969370472867611433926124762708849130449474228053356718789788803933408311419990453521598429413317196380279811534812490337296182342508965457225447853757710645718399640958411168692514261928714736822367927900754926350135693634721124809471944420975303209140887612968361771695638764106982220387416675221456494561719350620351639366955870084285045685731125018120598716115548460341035785561580180389597522898973774650661862696181061654065101882217493667492747226021440508546642186489323925564664370512894957834553475020318987803053024510727470231943430944237107445772351011050665447871992854054432817102507994584971376905934035200893299358429126165381155585873813190626702306328406639341624406946669975284573185638654430250262724290257314809560831363432130299956987571334749538431567028654771287720029597834095173071802756398073498428278030035868415861167099209895051763836336449171106891057837395726119264812254145791241537624300430185355194689510121807874705798886245809151325786939337268933230897082393192979474020019864294288346005186962253938247439292650732663734241369371088343375658866619029472718131601309787655899012933920362487345285256318843819396260598254030506190748224896797681313909237882293549029256940685968378085793215150609401016233777084057035869340667711811764631692927784836051836875672050002930492110444584342770253510180445640109456799548965717303210810505206255102303793171020838473225441270430000925273322013537391017244800723912078190572319728349398382828191571919593419591257395994637194595695502204678845648485536578011268938751815154634381650884862264123713651226211799531232360279763725518194202102943803388742239593690276662925289862184706442880356819952517375973714437865298538881309848278501445601887061715879383292815430553286119060344919742724268341170384877419489291289630095746353246214341278772816481180111967251459243263150277522316424134075645424247383830552112272271080864630565262719034842908196039151546929069408279764162352772985210863296560460418549454108931187567788166767753413077034633510933011751394765681764765441755820645970440787081354394705773953281718190533054790319579666001067321592784916380518434130789442168160435124624357354763049002533607221453128681686237865430308232920133121132153438617102985247377476571228190562810935352805558653003576433973366622893305086086411501900629394697769650419682747132079088353973598930184459295775681095367631491442392674788671053913834091383362124835836172834661141367235356444084753641183263883479817765796772657608204935211010615521052810127394922862016104920788828888065408955082165240476582194927277582339958560619006090147834734836253825262841908170124700036085558819534402561965273909172772090656507308558972318691344405407691436499883408864046708429527698506501355381562537469665973068587637302633031254829752014875802130814164222504881786490120503542161646889501069175582171302830533055296943424529411122494712280008723346950355951783762365525565230860370390460588250037646431319462250768469165358645794419102789369885675211122458791372456887276405926502364292042348793174227527814955481749844310799853124191988034109067847566423883706150098409629651076582582331501801859772191279418214102811245742086235978132434032733498374195271317948226198636780436735153466350576638635335526742438135807365090160431403844383610986115463692578088722638275582390827724024521852427458155689343538547630411497707051999961785516083523731671718153720464335891632993045537490513770088093672080871260084527453861416687569782320307770440255391377792143284519786896669484745878888764449754641693332694023409980929353566657866193832401042248034498862685258394406197722055841317190203919305198991361804259176821728383743074877084317706363211102477918142594871892616922016650379394516185080231411578618874120346386163110418141813756135001685858016517103607759826455107198114869356783341494762160728534965106866233699414383551664975192367821755140069499139685733289240289876488874219229018709459852615215925723633133808861941169018549796110293374074901819712171982433821123037315719604758847672130840431709240168694041839305035920348940022028536288736437539972610033401948684266810754768608960287609843052716216301054500115328238285181286386637280321246812888528173622871640710695034817467570169573459232164861974843346354973309439902121084872903555348521229082261564620677365510618884089365613838856143644676145734417910695784989916692692794545060468058557563739090353673876043076470889387457810684093510314675929243449100931946209022992135638500241604072673720774805457695521901339207452947383040775741454433364379679326312882451717756853888576544999537639635943895319536976872432406989975786509346771932976954318573641524207526710964220157569300124554003402129459036848850432880589857609990598636861069893357780035113402160222138559861139111532811124289104112879585572864531280896985541806876866611788819074411518331874380067734013192399368317557593744725640029023527095190068998381825100816469897945464763049540044231477782471430714279136259432955068090723167404526962360593999324257551631299782763837756843903845922936732719286632586637838389484098672845866277162736888845391314911931007625047472434889887454349962480270493936754321008110717425324763888520786844152980061730135915443699588705025064396248308713800002065332598367683339654974202042645866818864288624873177572725757473810998582260877172962101081704827758609708068970177114205362985373702858626212261412515848888448337654100910666063464162209314450648656107654978916476783154389225461888771980865952736829924721064511052941553301876288245607605489663034464155736680950030292417376331370982277428197782043901909342956306963203112145874755811264490274836807238298593702875936968733119326243530356734568389466226818899007433287980132219399293639969331747965643138417065173706943916572063975195403549262896880349511291652057947588889933026447426601294914006978373452412175938491116058181641705759772056327102321458454294796643779069842799904094776522624360219284219787435734242402700853639599972002587460709951575604279852225727462073593728274452935988073269818901703806990762646863824573873389666534220756997614000929052016608348118277560956922650647072031285730916499852898428210486179981484224124629215759709551744834155522244003277950923773098207121542313464357200881953578866448826988358532723613211435436429549788398844808661684146335237386971501720237543329565280214091969804866833317397788996897571687102602406710115460914764100395365099933963102601936620939831950618584990544274488184775104578673512380097360933281454616491115260564974105897151377351005328901340461067731430592972006162684177539461770509352705165117400901484155969564069493959307079061416530181606709164975028898428884453003006378848198510956476183327157987864384874948063774308876604344818504290574414991104081437876473549009415940711389718362974996768648591883790062930104171801736555550153878101774353953490532545933046637705664290401023466669527365837439756343859598692494786106877802945470477268120058571752510118799147417000712884793580940975861428868650378696445082316753088646247306357181630256217526546473407835798741955957967037005804790615747899804547562706818422981235551853503753722082888642767844031806226103127740398418912734016788351459944338698949977987091445266516413908562498547654884962096355321420705080916697456493245077478352624351049213163332817833107273271249462209638993434248887395962052861029837790055329748590198460383552467826218575808851070633818329107723161560427931813594066480405962212416680679730719503039691156016573165278781612917075608778438969774955749458807989322631832007748366071819695504796512975446119534317557488325398325235206340639083215533932788806181878660879896400876223272788421576065895290037235570576845367517789458150756810462824841348269845649607447360860890240827396571949314261241368519233702976636491983780830553358501507409518795214382660023806400267778304339702704311482007703175811669932463398347191098268880358653131042220136216427352245245558007049259566954749074244652591240882220078606137816095373506786280237946201869830453629999124196317351639677601210431942532533202604470050217123065236076322400784233807165111892378616058388953736483079720813512963432469005577464353715147779959038622464463839289745015242505025692698330923157800158203422354836986358588990261160810746484369640378126361629410060953944237116098767933059884649218630419205385876878584956137617416914506242449801940626899492021855049320973935515482546385637264277869347060427388862477756160567543943083104369187496332536044110259725245558855540595863220229225496869387888508487079053875162808611797058386883403705728735656535074797626694365087739106266533246175620367459804889306934810474254165853882590514988359673263662968828321572219642099342794265900133474831274977988046200363179355657859920368437671855916847061389992367117702104752527854715949994874940480259745817357405713862286583632913164361787833434723085029870070762766772519868792815141646794247293132624888188045073976924037969133888282487038132938425575141655944095051645249451024837865688198753058152610528618106019547256507972572484815285317095239476318438038242240858886126575978972739387239448267394238121612667176336544705988006088079376604521418247979542704976740199104483881129727482471408493032563984688209590574884462621266165610324461762180446858073228891217397383858915953358871192254463061959151141963282650160359906618937688736910133340647108520755976706673270872269546550321216559186879610765208667854627309047760009496276903244418224067631167084181960522233449047385634154561478791486658797213692971579941319512006222394803645634745957611230365099345204866674936713988045061351491789226491190150145573501158035318771179635652872745887226013385106417775823809687625899757931307500290329608534079182441806095953975035420623437130000724628182867317436426656454386636439548005043407357624909061220600130237651470111906043417389281787165330017905222668923353100633328258750254030025312566798704311017230886611441267490711830008043006356880045157336139866981008750466201607186292286676982378112658037379559469890825708957660142659237827850845838213407574534202203434094612891993219453775254825023847785886751348061385031766372042213518837828830919227141504208908792247926582848775118874032972474550181047745308050063026465716921029040834162039972723435817201071119608081620774867976056714606417207283590758582446545445369708490644769355067221791856585521061653044882238408025637544877994871412835188611976787987086837670187307675940316966490042209594884020774929288457296886483021345427171167573321381762479899415776637092965395893303800423675376378247616885916071100402339307357585922068873603963417465035734466971739174155218498978216057393410677719171550496691017126964824815582741192802538130789696342254501134840270433511527623504403785396004849985887374812768229253311482691676873446224035726829893713520620764226691090162245966527265119405030310236262273599408071662122248582802009675077827373842674108482405801709412306388287830984835257956055019045537288112500621056041201411113936483895344850822385913311886962113830240422952329862268104988414876881475709278430066326239997760860191010035337625670555708468957898303019976969426735667941977241347437767142589224253463737102893363112476054949405107661957892619559823733074134626879063524753254226369132736004923899261925674506594921949338033611473995991194440490615129100784975760395315698579566921181886685284453605044531660891787384138364798176527150922417181493825477488831196501303056752310104405100750565157537044577256977205589824136788591376081730563531528358866756841634102849300034646729508308754176103251857480555828115854714802783762458066597508605923220626973428686290194517253835807968994275318290815107621434842376397735758636788891601092332777988978690592536311441115380943628422438631159916360670015269878052357376396944231041201913718498812203960964040023447283040044454704758765383915691394527896951235484071206275553926039255739892600529906317045728522842757814090556654484627696159127276754631742825125175822807256821488990188657948159274600472889803034051592004782520858612703051276398502639895479803905520447056441143775477266094561204267908135104530696256278154075031078862164222736739874000241635430686610240154446709710601613253696975091905432679664896020296877826538333935546747901771573262225612887373404992526810795482858853460299407784966538277107867871124861749747123379084920406219709798682059984848041363453367746180163195253200336410294260835568141673269925967405040781291837656039841443313053438007423641977507319410486802386189946501781141897730895269896949311907562532274408634729618250011783720237367264882385345035938804693227895850512123860165718385549590422510421219117948304817542714120144817838029935189089569419265086894909283456681857587499517930093356787731275270445800847566681319596144315308171068643176648213940653247606979790166475729930945545324663995008866752492869218125243806513151898747093147197932976813929754314580887442086962850684854235075978726279339769952180984398503171868048965034825619085338540349448137231554404044373123280328900630385057216052515023233141942957960100381645670351905757857530782029972323839738824900830648984486392622257706482048511236333327234657601461474166429498335474899458583143293889880866931327037924254845351943875760832193630585572277807093844771677412210380646363868431637947271294983828669110993038054444468597462678247190599732031627540868868236900893536710285591521914132148414496063590893159233440399626821026078447235552362676867542077286376045299376693217959774539212897798812397964497634881152340887984253800208935547722085654404602300870137601732239231776520108735502589004225493129652543718366226599490760558734963365262324086069197064031499307848131189988192755885717996089533427130173969029323209338781614888991854654424609734159811677988347229740833174685851232279804525942881037127976709717429875669139453072934271348830622859994381506897113351714501865137726915160870389483932955293222518800173315324880975230649861892893119416386816460457554984828040384478666762185004815907447935007448538193938234177903995935057269110091552460160771280965655655039631194024303513282013690857401302263035377857457495688433518249342965561098532091584900032291755893675283129827783439660021144757747446951274514128231858282769812741350363631989727719541107737512574057828946708232177810836079749429473261452544177416661762556219128584371616383730854434603561462658189430311454161135732838211255160997653292984765474626915579216611078594662349240962682715608719960652238621870261433811790287352909912176878020023877434179915150519631641594975895507594804958342281655170187980300037974954131259507375398173837313557865577741335466928394510513740301995398793197558377023035282195043069631407737759507404625804058404621367144637914282969103852309805182491979879833959958355873465856822221017902518182521042374067287294083159143338816763975306215853534948064378284567477321839186543682565267692458630443583121065657970736962734279144593940463485491260997576281127342050559275616816995399814987444412318592438280510594544374078656994517595617894468072570668978172309044140132605763807152730935880733101760917877026258679354991791770763559151329199693618184381404135946737879493603189553803487601327468733485118718298376492593566336120950462920539922133031001298981313125119917895921642357111903249018766853988857670723815824235213995926113945832100993510626585980030918764226363162142440635920219529035347797665063159472354743266807916451235943951224927552884004106897000116603765254513597106757325810421022952583672921307760571797419486934419616857655363910548672635226469904204871615288988765055291610858159520435407704745381353667398477325404433738160457334454508294333235105083499615883037247067759438438881968244492312470881445542636112767519263404414171437109461246088481069696067515942332205363320642830024933956782379987607820889301088804304644231349405648455401335005222027987435872357030210777635840345530126862312468345541943092122116268193769809720074537801764718207734544970444311589103085360309640727283995496712950341575360603431317979493980992727766621938611617926450011608049850116834951001391194616479398868690520879785236510363194500723594039209951378418095199921336082592579002282386180602845360233859256331159798300892281029633908457232374312732882177914408505276200392934096513073607903066923887047459823024506850128830886051236285548895102712951758803031220548705268618386478585157763123404386932834809926496128192641772348347206317019227194147357223259873285358551826398979805257139074317756099841484264832109452876797895494847339016597102020031124242783346401858441929081456736973524864183212046287405398296435214243573479721622921587772846050510437900197479240428198671693826004982164142502609022360556667700887844747431275832263860513464517193950304565187753225933884067212180130942098809235583128786094002083281221510332054553800806823044871667005638427773432992516775122755104488045503482873807806731027964267485564927506563874042931962732834860453699339266175772514264431443637740964498819417871960205491828608406581694914503560699126915971632083290572042997684982809698039130292418546201427823282233624777987442937026575796229464983827006674266781061241986545058621421111672893106806846648782768345164271863415096059462958856576849367059961552613257114047329827223623131020419523440396562355438423895764055739920968947385580166526794178974254847107243439773980672780452638635899548012963271691611644491002823285269776073205204894432392818366122059760629294545296240562380292763734175000927798561856070249764391142016349976287914715614167710976156733657031557180614421585696738275527258728127129137748567655284771345938134476120268629381960995685651531408897591511006048791590327355874551158351685664725739414521523701216458812324896147136663059743855700261991853094182165653964384966959208066918981645559025171197164090934539375651692916508968983754960843716286482214677510620688179933820100403117713516737953728176484224013586139854431489103897227828710394432849085058914909956559847796085167148159898966337882400917860769083292173039554952921238161424954358661265803963242651663048006394797289954348900269261087287685640986698521187336074236290210682272463907482479054668630673818271664754537207428273871044389089804536820477771901769152127761579484375675366860194449335092276025015756076656770190396242211242440983287316900027594321517737482927901347044710663074741939890059974530631708351687062607746407691428073047906796228346488196236374499202982045367496661387498946890126346855198748268730337124186998278415442691838187567416927989875491592304986059777836774572391769967679027744998162299217283267597928897474866618955510728121601920444626148301577723675529460110797681757054745518160512417248187816700866525364191843407411185339930412545182816671867555241394594585317809984084368042588137007667962501300805217808195279134035028670584181133027625583359723168189382792361300254228501177448526016205016219754485017264473166493675644900647933168899878543865503932659872584775883530107071843111915467228511310468596258824082841804930894498440587706424259983674780687150766561587831058559175887480842557826528897846340276757132205289272558441579214903443654810267128416530494278533686457508396770440562364342633123686830582643760372930215853480930359730748502398561682613664386624595012168027113240628668094029142220896690239556364305946690981428285933011756816777138640218122340684369531117169424893913027789673516738473748733963087143682074580208345920755138437827964954528915377933190075458062884792042969866495806159922205685520493140685560043313378295090874833390980040715627086411896687249478533939057203294628629686442633716529205186146316655914755297411432170108585309991258882608970987536094903265079362358285971570002388456022981701604161747665089265861394284019653173053974175076409544931350588387829147156780853368565954299666202910081722447047778669671575289500760410996920684036973566637720659044585982014745665882340877120327509490815882939188863887200566134044079429448726456658909375357261455455109989524845419545297032214488446421761235821679693991420338329590785930761483287506571553383240381913408578240710140488000019700271577140907345025729533765308272812091137822678401508987291330791980567308079695627634865187872447186324720512957161735051168686163742878316302839941147186818861043350418096129043049895448486244844174474446719245668358730426723607839379764555482700654804991000023824068911031161491290743847364705623311606202060784560665953061256337513504315370550084988087292513408782249551831269637148353926416958393228299323685787945820455792403583997556148205196525140428805044306468711276408141703355895720568504500825830122768838719907593181420941735790234702227306966367579421229144952876637794883858003498551195536778254531576126544993171014920475010782026275206602111355768227619302450189149685024789508362973876359796205244877458250120176885794894669720957137599362468091302020870316176017164481631392558336462799172244198669781733359869826956172452078810048156397518686507763398807322352895883014746921858975160307326938647296691579395890169306453138676699878876626758207184744602659079646136362299749655169613070974799884570704901813098283505665273880605738103500998574213450920755653758022764147864935615452716307747340942580170340494516642794555494905637432297670734060079214750029917955893468914044356453639381687561584917943424993680133822081821916643247265663061778787741897802764314384536671644629746250332142677851428316399661367205538361250291738663224539854496904638273711083203047714224228233085826521226830095634291593625474810936969407919134255765380336665240302064825228337734996924924499690555887883808168541079229716102563185430175580749594017658569264178820595970338018148930088330597865402770928274254493423704072063989130909870626836808267247130662681502839676839679271823075076019565018112896778057819915568043304688554907209301732233428187826380205234409945556807766306566454454858197383043810206631398559042671447932394247855275819642033703894342852121514313146641648021299631174547872173887766650977865658549741630096655526665133429477066954962329948373500846742173029736832600545675974119291386726440709740868796211420019056068641675691632645658799622383839293713866385403767753696648206930373509633732867017359463929411175068715128824460491621323003362911015860828498386080822906312776241590104059310225167835856238423998248182809784930342972324150836725648509491751719839167246204497063094286941448087028319856960499312541173231965379454297725363248309874428644331911230891307705777055975313093089434945458809664148976609215393210641140740471742464209876279095414999176125591716257245310566369668004241445151968921341073118406736982575422202218179564378600608174260688406403909396505415259818703154411012556944207576453018909357767498100862838793213516864898232609352634603647432849664252917831300810020599127825253764519201707938402580994915475129372554386932748449444197659012532683612605130834507348214448168880422903050927639893203490513326544766878706820129314323371457674559041397562539757215849112249419836328049848731325527350763075294736593518970045951405589204092448609603196678230769251046940623409318329113439472937834476016979659164590180345334089351502466454969389982543409740745159836763691486029937966042489421040704849945150605212630797496718042375415775149966343189947985914718264875045267420679551542977577105072193814283049153752164536909263707850988811833201899759208648395269235667582102201761024162449572112037853891274050791479213954056928965664689731191410071245086814812822615908932888603122031209607976640608908774510530586146712271454005127933508601307177651720580105901071255432030553637823731203303212160221751041308659935761474261123493369901293307717998184645998870738616279214404107933195991544917692213310249670720207250245879843404158173987266053920395206531129022137545003852944277582457523356238901269477557348855293351323171211404884998424811837564774341729571066680290365293269899017781459054487482040681138910577489966162159035206967136926974913571120079367288445054173828250571045515382182546748634634704791869865456861117192060418604108453110912584969700993938141089899032523270142429245559237982836813174909322879898865592301856266842308644988721090383955410337471248538988336479182100549252494052474393179690843782491696347212052137268732308914415873229076747048600437317418091818393776219870675339777582161076420656520100208248502998902813020483206406843901679396118671660722368635587629082216712080429741927539747545829831443539989583837973192383740036166075089711804749787233961714044628474120906586835397517153410529913394234085036168158801001481712687356675575930010914088609331468961818950094653648733752820909380434452352205134999794268027231956900222692288314820600560427581579409506087873604649156892054697996767573056121272509270030224568026223811583811573187329988442070126196353856072041162427529479078152432346661672729112514925227084716541261453708380850800190758728603678023847629186896264960254701456266729795718991120522196995893319969825854453288060947915234224411784603647540146041336794665002821485984098536062331907462421578556213950672946231210460017595026989734502735874221952251994032371592431023589639153671365653062138105627482589764268005064285484913536207773863062945816498880890729712420600408556091896244025130360581107779726555426584694010739047504440346523713595520844555229384098690564227217426537895702960438298877506498550924488840258753900642583136864903968886805467711166923973597941912189616092569035796711256938788367279322310552078167221012098686666013331839111860068594080216931218367022724821970746548206870236229616369838657320895105099830627957594407720093183406683682701266914285428835269868482179952833712845685147605934367856874595159850478338115471306723934570286697847757517069564776089125527031646961505372933534557816643168717630627139738461055294377422614207691147502092635150454735836265286105038908773540526703023506471241155715589588671673765575187724713836653344396238559168317645787437483296305741688223914193890063684964303602840774331270643072112447792042501994104466475229608464785703630304875243614323202371582886140739613795374263324840800738305230235130426149121047792787585186192944212603823753603098659978070710874212919494683597168574814883054362288503875355980917073143357508997673323749042335369471736750698131308104837849938153602461226965974151780181467700606889156371589985095658834349136562696743517524351862969262189613360677930837305599546334163469583910993133661137874076149697579245824414355804573261703656964600480299843305054096385183184714163788752479405155497722690405862980919768443443113397610394897893165106914214880645533118117566258329655885078160633398578715535640078579041179639699991996141673728978482976836847977876106202418866713692738965525560932426184831323494907070432360912872392870820781814826917302538067808528932386878179791329609130709046119801982486595725662985395372501328845976037947056754226549109800362173664542249166404390501259920230056290778181521312539482691044286279042214006111085929646925455927136185990593721116400606615810044344771954679994257649495536312333713165983983998642489632126017418024743354660542992299526058815746893001005463399776812291352079513673876597717705307897512258531208400686961031532193943049216252162557266195833844587614200326296992904718840911010990303639415721454631339303523992223498921891681221346127941619082736448166824764779516333779831820406859415388920272621289752447996846838680682789445255289359016537327851112796909665246268222459193387753105848260348634108582323264628337068701329482681641294738963419651455594676663193173713603885187874763970627087822126246058821160939910552287785535594504462350422691868981583796700965876707174029506317444001861487345458174271247454004313222699578783990725742825447623609125819828040282540114454030229202524117987516038461063004566645705175005307264401242062835442629853175683937117636470123276954809164489654427560409526421282468748965695964066395114498231339591611712256747311651035420777543045606447210348070850898820955280530113012358090104153318046355315439916618273950445066671089057691002165722670240073247349471931274093186497836380286600669046029775950716657505106296222498371560991948822680280524003050976974252038390670806889965843999530484172715435165374846141182258049760009391022452030937249131540889441512240782486508171569315937934942863714294063614556419456613106536735049860071882286318606304125981409165746615046217911086790717666228174917728626993807020640683690766928958866788299432364251619325756127708328842103972570245418211063183382475487805030730232604337054155523848053956231311122999132558182331657428283201489327956998257599130015567078864623916918494882799419684899105869589095455402127687327345785011259795572354402697121651268967189914621475800040493993654829086596736075725286156309737666060356714412648276682175337576105543768459214011428432791135775132801962457632084313549630381681926303271934730135819336091377737973982685706816168853772187052198742640214212254253587967950345498795682150549505763474896584477627588906581370880395720161467182913444223881256030794406858476786392425678143031138075551091204136754425536376184642820499981383487074278331751581828933874818981742508139518469650529404880433258243972288176664317372361986059175250972530076405821878002372943568215395132633193551064007285852108464463756287846782591624837116906046213759544817385720874884649980585441629344414970458678952657744380414977632735483285541356180740583904463651306906541098186411515134831099931880270047054894636076700498205548143380651082905947835117258803491561046775931890986257861982352398045084441450269944211999397680958790079521640185813324652223829869216808879530550485294662456579503000176596986767898359585523144428831525061028920405783742271440101067448919360416481099703554538215117623595892215081658404088104759354326986219678428754150856983606657094441913860869334774915926217171780003364978978701400791549545853657755382034496279616705886706899650399679318350937453562635155465290246548948661921903513080391104354824006063302810720962126955516904835347781119853220630859184366797790821637839000314989603658388597971289924486149860599732909443530389911589723225304397279114237267361039023992154295376034118201111770326853730844531809381211272040394342122333571649030171707230845742727346705699385267158599165588065637376275461858675831900546294821504592388546151172556287124029482015849824651205147357877878780820371210762069340362786702921088378960591384737382923069157115112634298868832916856907717381684882299304300432918840918310054407620100312249102585801424283068343513832063957816706862131773168098964009186649848695768501527556520532310230471680025624748187281985622581165897498785261452527388172581969124984604914212082527025526956813385207038949370874054423329354672287988109097551055561999147999369037397843768286822234465736716104143432408283505665755874170216477678943616579824168193824921877525016801155862307153950168510431831609358934684251976188348008243725249044475769267831299072109981003789331976020059330607548659554838045708425800665088701767616512020919084473730851577025915276010841862539181222961935517415656654941044080398464174993749499086686194911052896253559980561355419398401899007001217787519764057111737853252935114642218859927306044870673577429355346103378874957064972640861674416626601158881130418032875248493937696252284042767101823019804808958848755164614853814155340043421922300275602704600155151747352857896439778069792303503894511750735408292234914404382565239475601631417052091941232367126535757224945165793069551855064102524572458752624520266155262116683698109961995748915652492766211298573870482915559947463676183161678294644521244370064169873588569997388648999028486363768894514431640993254006352486718896366081335638366033976150079549161669288026754559910921599978626472424296304718270966687169398578278683284297644600531410584693009268214624358523129926606654749553256295973083471051688673385506586585006606588443586341857921739122785184785513601627967232697680338794591858193035070138799330924541513490314355315852399386071636078265259796165529860373845656175875187724684458819383584964950352614381638971335122180153516999682284158462953620280939870946388371006585325053787432663524028830080447945053105817517650355483645438394176045009635454131812197233721464232175129055222566849667354077677877923521966580598023936167394118293616391683445884391034776721272051338308045976963596378079437840439056807820568395018377381165447107150070901073662857906795638534320486170637997804945385286267374787741310558520464116724520145501074055290407002458151364572450989631650231533675852635179738669270456065962215244790641599575577459807173120798200874350378250224384459752992983330150560256921020830600835573024105899512235911931880419723013938826929665500085239410182391294771058795569806437916416962536998337913869763250010211151438932374164260284475365433917258644500547061243576923660795305009112492003868248108765902488925303432281141586625793594638665106044185534194269883852109929747923266275476141035639054412644261842551384288484596020273635473904168111147501912391298204097482976483231539828852508077204013508590979333877432761102719694304946380411382508326131728818201073379475056825195532248520869800752171477018680855621835643541758661566286659963856306818960676818078720955600997447294249747408371050815051356712987958048709294850308309583310540625157910351678884753968030242852159249629526111184565114621368525588404096557507050453556979971617847100138198406735406219058839057448931228704780746331307194977800735168407036119880671114461700612891297702384925542440052332702344653676139274428889854690230659531167161862278188611536541202396626169090028560156915211322621023874758325142136296932963430337437484604234812797812264198097984765037144141578726120746854224433465668686334075525803191987421149593934689898273603827728887277225827204820288239147426889063587033918872483584937697791018508532497619255107284809844362016571470705280168488172830754450654989243284074688831105711106840246417671381844838168555422919665039554962961940899805446946773248007889866746841030798013545095752366551066714820270773972152908043162732662048423377436472377037452176416386662902519642236148833011679962650751213720179343509151732957903837363364475768789418331000994659444797464744084449885436030384429116678520324142264300746956519973825708322224265106584843533024099352674256614505818653540010793964520735506334750992882619253945301814570161514342114757515112204059547921069770544379717863523395621409952587029719376441566419749586442215534146660099247176193607434631500721223355930940248639224939322497267401113542579489983175796248631822274708543505245098798672411834833098077514145866323634520828687024139336311083776799953687753082770583800030846660960332933730389198361118697244241158387950345248658329076575371614578916830919764798966000098834580459058841276081124810048590573732288937157025752823284181190901722850807448036713795731956205615276801139551233968083757020940786403327657240492130324782803278956394124092972971275246000415684420407571271241459164900366715514354746282644646304023093094267115881988034589331264529727860801702737614544742340161756588461127889351575728256893701343401346622749021984393530512680209733352626061656538090341659665212648366424815875643026061713699310797455643975170475849006047940984699357506817801853610985935589394664666156607310940033489613229659879029091866809352575320641216317208213411815429326392087799457210492375801177304242286866343331037460845643642430851366453653195482836614537953423646511938302260253369676216378753085408975955024925768676943970301025405036101961139966782718425933521524499592049059834196249656218288878797958498803771052706478969181139612773194146537279949040241353594836079271358640670862120768895552757898917154551789786582779698462740661606888391937734343212020234042176180328078363975998984640699836003645709119893413774318714333535249693201653804054998052649636790302710673928781872098172111232297503653225015722870261612759378984091570422757706243886887718965368699202064861696740947098944454575385937130387948112011152621772607100091818680463682654070823383294364577994664851381904805998865058293437675510583435802068440221252529470932587982142761576599707057132837787700817384020140425542889864549290974314571591682060116552011883447148128078201915316721313906110290595888804408083691109008004147482551213580781845638560120435515997095276232651559088491137101550617420810149905716676707647164236193469287486702545146700749456270500464410837229252091410317020408069868433583647293086875387575520845396524704968433868375530137718019435332819176698123296520572756691786272710655732514971988462390889626983341627577723965775322404156284000267109553888549645560200920714705526808392819033307332929354297795511791536802418178015535066398160013621358379422068938203455234193298193216687593174656449683057604431500321153647650454161857239343532877180361567067586603739135008766506264508718340265378692065894115984188612582564908718489704322962314947268772266362357134844208164356753151189104371965382991203103460354409468310293780095077816186865991498882791920006073025557379479923304601900434685272053074724753849630109886588635811467017746336156901317189221616372720262554087756193429604052821213986519539793969894594121063385186790048660385933935350587574984768746002897447750408704058993213392982030992424746295325422044751140015796931891808774423301512780060568077135234112791366139093458740577544796868386527790694324222006265547416992336530165765546280122436184770726906072119557086113325416365888192761067236783397525923197979104585452611621094780934206034706221719044432173166948431982209415609180311324961559330510295102974804426601904833596878828306254765335381381610880921950770369841069122623442523796938316117435317652054053769900254539469889013890701554044079022997310232199395467848576873988521971547386970087266658023720701600195212484935915952169310957736210036564690056511936940958002881528685867672826858529292758395962780617744939117490997230246473118210434989053882316718891737235640297765349660637906419492743933833597402531716717208054717999395605616335409506789044866160131426156199428958469031057981166426066478335323349939800398215941523529656783646629128310411408812884613913896024246861582716610958656208491072165164815951835933187307469856708547175592322063043309473224375068777266794104182641600527819748647321203957916740643272380872232588461790165605240500147013530742765835251953172661932014792761433504359090388003630226119708552754157790495013014451774187784559013722185801998964599983710051632990768951327654467076333042665295826028382205122544196170365570982913070727129405621704825980610939495496735159034542303955793583804541351706210055785713892828355051054561341070279633380772928569597677206421263820416004361299883725939135220620581654692643375080308535695108490389899961443285524746570442768058187186250451874692014900539208276837093740883928260209979356362539384563284773942324501322137877126148113469561992456459435453908786892742868274459425142040916513607621638133523859531288983800350834440532848234104270908089625529925874184022862263381010861920514691252539558780798466973514452955524997917974087374323992224504576491201629674282321985472871031321974596121249562935157066888275127332925977469613284933050445629293540629399223681924595424633038412372460883854223986342660951346987822080847804705898941166523976818415368740259191631893340753924006049799959864817458403583293764278720908092488547233186460848973866586145370423327740188374945646117028643531245995460958786856131547668910391049194255566676078406873170504997847019487263264879407735832407325366295128024862753065999168909990947275611867521202712661119419912267758281750254179277079139729900393248983141120491783062739336254673021735803231801599975748767525403354999325652256103541273466945056692230170236346740878957398066423471895501055879279563062539976172911943704044770943573167677411252390168036287089473188471179553191166785744582423320579774192162096123564246123248371097035400943436564888554424742660235559094050032484520999232911903904856335454349808081756111115748833323443913846422866080874056955175497225387299183392284991757116577516678824452676738183597310400556661000862447127419765318050524426312930210986012176710607537317491089773166558638060255426099526895472407443442399684949401798749125264908166217552495303050345702805203535741527511550898232368804460371330751150463148301244580001108379120232436453497197499994767121588230439546722566134635029295315162053082926743662391015619716405560284202223083343820939498962277474322180349268462720966088218643284794255739827362673215884376834575648923014961425175734771708845803303427767922161997964214828119650809482932538273674738643900151099557369538645548256944465184622700362176788770277233411985650870837137901643279142530628296504105214460665825365145257522730372496106249856215526461886144537926328820891995857616143712186253931567025521776770682332954417148565416873374392530735267340534855756777621505979517212525263032207414580834895015409533611758472662088488986861618761556622483456315106612074293871005176701859468029146789586160624508314000173271457270685452591528329087553231186918453554765581824238177070330022060861434927144195956835086754273183592628408014248165631101364452007646991331868266107243495616389841974431617821322035183321454586966652464238646890677452742827572154154991353292599338966949254151924016797440968684331174786921857433607414094445864387098938279700401676229329427647579769350524286434325421129446763544493423650382911043194740258671851015884064409262959593041835613835418032963763606344158976310657509790074780348221265737862568904221320263233357028117179347043050811833297663270977884630288611394139575381036655827257445389461339825438634886965776373029453709351141235612639476580036133087262655078649984054097359374059224366574124843058603598606231619279652176497844596475659739939092713136946757439568543324397181194452542090361012476044986127644413442234508323531251175020639946082866830124883199867736602490008355800153082726762332871398791574087952239457248300926438776481591184407100986759515140201989449804519467339181194619653446396124567241061830199195934914012937424757325595359255626372660295700805987753080158650680726714654793019704120621189891858777070588486516609221079331633247911629844831519884791431221528927264808015047831553572861592457291713369754455456009522405010068941646069832335448281757707213042152584670662987752185023203041846593427410678466758141165131740881854743126222422801326793804956849403524670169087450802127713461270621890315753359747478963892475836446632926976712938050242793280778133710952538070862572398604510456799512261503236883475459877162124377382983008732813078656641900290853451314749860448114904396173020139871638015520903893277022913832529250643647167111994401524995049107655131391703600398844997238236118231238511961077454661715916920512302227677507701210967854090251979041871103226360296555824082404604519852835868463852931038657977424961434433384452635514349775848092694360631613718145008391243555787976823960236563616769952160224193969996886125848870805257853908487124712012442219009870330333663501647527574686453192666249668599775704762190580360723821497473482072198240765616676619844554118705722808130018138870416970172829669193053295192792321904096911082039951595577556367904951867479177339040510475892978730271035585758755145517242573368429431178964179121150147687594038157284771861500869405016143144182975474164142676675042128485421469954202743326484925714493292684728191722079281197192879334961854536700806706481553053725515501324373581303745038145423742585950042182639458561565015879555972876003271592498918452359903724193907116959001304002193529786224999683522065323485865728173992110675668036092764734449845718129493736178834104852281903476828138363189354008563147999460358483201738304187342190002938115791292898713743391584896143044062024992427751255207605812493386627166922620126799034547106453071440659957221639984168548298381805171676491067025233638248292156906353449118723198563843238888117833435787424432723268759497881053610939954666138772668739892242133265993471375804174774237623524445814267399916437559991776185539461948704361417080960331286504666447965809849707132631121320238513914073574147894780010983920066584264763493155448644620817183992424059461271871302390139834324309987963122670022884047463807470898008170664732121884994873220491939480048432063199171926298717383603336892352823420857977922578455279263672238572865800855109729011683442711417877275151521014323051442950223151197815363603595570051399776932406983668429459599204111203703790243093923881590920323152335587290191755637569369838509168759009580293233103255178421908025025307106907684857921677364803098433431830190543182007958355372657892665668508676472441293356697807648856476077502570155215267451381676153093663999527612247575872409712268993624940636384820294404123615248772551756197395976580657443160348907500740965981275146446559331034386420238348795233782719534080300520834339664749498207430439802432148404570714242254938498192249599979285868393698045522773038278157543868222947778649042203876864119950420520599665289185746278174788966370735399624275966561910433072155158168928979047188000830981947031725716815799522888596985731454188826641399970295106762096746761334811932926388348095437371473116442023725378347941196840785088780279884722844822169848578898572620321789921698184254507292647036093854169692841508963882857659562000735104516394467645299839165990364510397086533319262398927694077810511938822907572627671706433981985277596111803317136520075657341594852902586304835219746491218389077095089213957567943088289402196350464768875432107332749718093907981239840643190284862773529379510574957950459327858384587369725625935418738972477968925631585565445682377376907126386182911249995260017744727637682595214681768032281914391750621547993794397875081816687924242488269409003621312191938228399739682780092905280780344219680480978621823793093778533161541965558675100993343559583838827523233437965942037576846784270953816788076011245251514531763636019869838850948737204938186963416943527193679132923146800234513130621816228262054479079385556592087680959629891687728594477333707198892595062318071709300998572206425713340520426959844801241479445209128616674759010269477476454571778923169783983265696408134512513850079369959069656426506166295267262169799054327080120846267292108420354497814873085654854934767706526566406084448604164034082111346855344531866912790054717550248737747850332405435518940203808139389997252668899612482247869382131513970813433186315270959360852850448311636774072382075474789655221373385819616822068442842309704839188465408758271367925230663385889828298051114212538750458969659185015514503386798775525040100841648215339002799329965787050430978238837243752310620211636531938166403173859300743710781198749210278530857543964729782169383218873689105032827432910646739687258979785299019473412389580948161705101748579241619881851491294287295785396463855976296035892431642549194941342056191681913795794049348667473252436008758148446571654889146112662671314575859523802844857736895511362459738962556946273717006477630204167182111739487840467946491222875434952640754639442589658602415937382853778543337107579560647867102936126112227758190952603277931818831985446601252146690830723590571535020153358103690646128377838314775272607981791199100851303677643191895400798353847256146265364283619038133011433964282835182167440343490180794011983551253231812863490913169018767531311848666163215174640471782476139838343593386216851251199249702197498301152691082349873480952237051061373752096650480652283654859555612749730266149356720719226334972160438925094001139486861570971124067369819385129279539507464450266177868377316666781535367113504442292970674291058350420504289939726314577107593579888875186427816640829601720800279456474976941969622482786135735056291577838463786360992600304666879037863439383800894890016377639652159190815168392762826011400790905831386067770433262560665715913159766782914057344841459890064945384466287352712594672309836962449816421531435273487142000313867545843856650989379845082390406479068436506024404268304388414017483923483747440469495527918253812150942490671862307066659966797278956680595832264803725614843986437897411777221018577490842206370622871301717439237427776726458393875614230543292096601586531497020847382721025595900214572572397439078562926629260084692502691396037240632072769748668278300173891287439309667954746043903254625338022235340156929392459781274353742334057348029584465280905521683955949462636225184796624301604930662173955362920199234884897657012263916261459287105725056569944749145903727522960365412391805642268773094765654220951123476200420489356645501641642703573464115762770818729227935335054069865580830980861456074947328368118874805322346409096261687193745218798372025909910683000343385691918816539464914917516703227106391250710483531800125185595774727661680518687785266177692338569369427744659625686502648947071717344022412637556948403710281458101254417925320601647479350612876575205604234539027388961694817178588793250294188138625423385818262730072446576707944617882813895216570898274090504964800633245214165450166515574523081093058906704209317837984531748805737923177349423874900256786213883286492338852057952793206750533443967089056762771027702980129245218348198841911548869634440022250804992066760048366823015934091512118249110456538611769566447618488926585165786853122810082676839746283359495852532531449682418208391288152568234248239010894727451817140978528691370600730755724959465439148640688965573935294290516099454697179440396481843985424953772319010919713134567733726265617295103527344432126091222530237400976952626787138149803276852251535404088417737248420369426154485223832978920003908282377331299329827870000807324309078526926808716658797215999970371999351731571563917953389090601311292620899746698104714297485651754764624317418605810789551050547285120004006306481583118529821294402510773849346113089230054696930934766240214074979570923785917438056837659982869400681863336972164788678870807352868580536616453237090184683460958793553826319759526306650881029084199209593344287830189873649524515448351765877778617322052479758610849560866549217814272599404492408068342441798999435222569294861216211049203559800433298487045406333777656903183889527688682217199595084610223922812636045241641118169684489828471605143963098564764157235667517398527801946846718564770504333791687412596905342795100207356139973766414878678876880492327317931482149156609362042520941841635093758516702727262300555639297739192535144018289105918095220769281165925826867843775388284111514915108072902883068201110151337743249606076768114557986749317327600611148179148053337936328898302340336090016203084805979246944113848558155893481909762860421544750311256798921214891971880263145978940976844623494061598010066522247822211744630798126269488286742992436267191643180057977656546711123705837743746893352482896777280939945408931678567036553552621476834362977239552585073182985893737054420633443049339064710683110193871196466562948260659226822770360401546737427458979529397602124650668009398704547859932297971952846773392272057989766794621360232039470098504057997824713677880898970806977975514764324028440348981480049208120004547804432955523738088664992163107772016245252101200318961524119060578343446209681478400304580214479235551331163871925395615548528425532185444681138133446268305808613371303571218870954619706005059456191728703440721360710009912465026211022707697061029923232258754076755657536289135912618606344303354309772789292641835300344226820518733117142434663708073457347927309988775072899796001926938154954746482289258568080234513425494669523175571754199195437967140495026368674694676452788777095283118614179917788377294547297111931158204404918660795133234952944623321467719698809321172803818215448742898253016631337760861219848310996837878701467606921847955979333468352406954309991988507747362023437671070635044621833527981346213030159796795665082244706979552128401226638012793375678915366424850231904003264406356362262687668562424691031063948884187674344334806800623006887717775489794789506950603484425830582418049016458539668994200024676063909078963650912797179390891717606112949353430485461879381262369145180723910645775276907520631690358005041720980670931497908378983223179365729432790901821269732893745259419900849860291046867217987984330717951430187995982993371644426553648126035950581230290319767847035111576268185963578054963819580665549926369257581331199846364990287977287014172016762741307838989978621188502549075206330158276934123739288389492470053583270602511867610451815379816682621106660264388865868730662307290461517399223582815130518915722857047221617351241265944489814064112841225376503356015934519816034461997726161642500686632194510999061042112841090741918820917528421203019303291218506549369824111284348552648917633951635024410704354325086929936899374258370600644125973982779238574099636579916726414413923800198449504905820990303970383274283107488834905971082287536330218819240408189978525865414810951063270432781585754353654248131888849521183802637283016233708983715978094392673069587050488259352900557214474561499667972894510637471595764061385346778149512642349448215640143701739094142396814821128620035346492799450991742647033851881409761792241535186887648146759550243973708527479221878979583811720453120574379590883975559151226903375611290416904217972455192988145417757323414876302975149303133822088410398227329172660526623564897986480283464604498233663276334797497213515591476661632106901106892655121414871444070049536161792628692528937234899816802915030631529453906210801369137697783663624476156052115682105543053851624460009078937372389185396330343993180554158318546571656251185208649815226082257174983102758951159240205632753500877644653597584537569107844548730206132196479450903437900202611100059897728283961728481106324267430401779965361460271858119538772021853495201619582491301008944484125270861460725850445161773585230625834430651917920589291668211620078604899802325773012360817523307950269417083135602689813677044572819110592326153371222993916622188076360561647244359163408885563465180439165315762406344603572886429464516468245677496178821511184331750509488619758177702185974148228862835185938814927121138901602951659901307534024781416121288877602919112067074369450141899957783093527859658585341334230096308366383688747265716213891930759557582309487509025510003198076020121005946078436849819647915802458410494064642305812400534815302517029511506982771614072381640199242383866939962588350495123796529201016225997375706614977587374478329236853878223836707868709448049281064372130666199906053004297287607750235815655159154268328108222086351736426058975168616247843573914944287235593980334937838970399679580018100943176740897105425164043780339882408392209732290420192916190335389414216172134149837897193038529821838176298063481007003645158349758396214452284446876001865174772997515287947644262668953831117118525089066874846275677865758900039488487535062866709379392103888382646946196799993740618217599919932601120815918528726624288758537878599766114105549550478391664172795853790220157895065005997465126751416660798074655561467623366500017211765481929836288996699697104061224741300398123848011574681358298790636660352262240316803146080319420487907771568900744667363134082609212064129206263445758217382878870984947009492666294963171431435656579335857118216225264143358896398861077704835152971579364843313589372035753398943643012584097532645518200620048265525712923610391790102241986245663444743674976830758801498332569490089334896509645640910523867149500751735473807926556825523914037621997516617545076055588618560457082198888577271732536670937476276468043359771418935743865347401402739121776746965310283752595871315779950701451366875025570710185389490142503407240576138956740427954793408923873555156365059051194485794951614936997655204267664791306559130125921336804956592218567238585453149260617763476905327628009221388682900730394583023037984570980510700243082101657503562942185040233134519067602126265322568407852537715712914322630158120213313932988505668045420414204531188497720780705905215634800204197516385340095997761311549392156292633716802535273977841474754024199488793703513703396483847796589644524660739744708543179584520922858838054463342764386451827899373596904123916537494299382732839742624042731043986626472698598720735983084776559242339246271379883411821167796471546516421176073836472416054520375584801582814447371889741004539798576952341986886631386256960870990860258605547109390403745005934113926920677760635816902962588958671494752692291075619658342506456875231822487637303381834493400409862278007732523265863623849719626655367004949357274161607858247707092259606568719223179791017269683165016391431904226744603528626284800847080195621797441995674459680983114099387017906619125338341594587038466461715594219519118128400267167148126505015618469492079705534676920234623656805479694181946869815404668168127897635663062169670637602556374297223480415445699060290130049431361062999194082465781091202614988000059448673640215262648738349545401229669778978752061058777352410458982028663871923190690101765226302838824049444189722620160494633263005540279996370062534426151553404990195981343625799834824837455333748553630441416369864341271714325344322149763413625884414611603406536474535089062523598048242336456765788117303503904548114650602896109855492995628254562237978542685903710661679785135446952930619468508127477648654222611579040492895119353086886813241484388318524369190530995031164602375777664797817182906747606209550207966340859084782436965689944995880487592978294619258046444160502668483966506121675465604925537205589617865735414140179831435979358325409383290689957616674551647554900460234022636423427240830711246472346799232446959994680161795628212012368618047890971611488303408241639846958849547368501347833737857552449194325078645578276541555836394242142650235019871690642854338432665913732870561065770848204268737829150277712461525270668001929634393924732649599508430706245090995309895314329469002553550538973366528552768449408927995534084771743668628105006967184130117774648474288737538593652387498037865700949145735551040733295520344116285298748660756971427975598273309796667835687999889827997018823287288131207787578825453276723120914100884789272889610782961765847229723968388505367623832029968742086218207343834347179667833776070365802728559734208603136608309652707457433076573008085642787463512676892084339641604307026564217162151065032273860083359370973840228970605523998687433200859977838507031564415272845160185427989779182214154892468879360669323276460385804398660772084526825111376094471317886970696788035625990305201008376863289155459337418035651999210168196081205538886630055852585382373496999552838700790407635588210036110323464923756204599892562247105700500948608103268059361572824630987835108071423680154422709635794690783253704393120360889417734544141170936230894273381174777637566142746034056248610589107945256676122475207655942331988498368942651786546712502401699506031236481936998324731363371915890674030357130551901252000262598916981701677590908423246261067027777143788847466100625131048371653371490603798326148406568454624446361265746085646417382588289534030766085080699431415549784663136271160416896496604572046365295924808945978233015208467598649912047220083038251232131399704205751674962897815792466091911073768026459286765902407415859543378888921163526401579691146505678938378953592427598603066833358082147343166910551336095668698291349729808934513450054177052908867482134571879404012083572185393285958554098931867620282236351269268033589714334645506479037049732157899151649334574300416761316465508649297647428540596399505547953368924195740544468672183843214238892770212134006982185768939525559715773286824300373804451965384030562295834766810246603199793435080137739012553558058799219315608647718422694499230389946450689400442864900697813252666264265758591330191830223500039242737126009014868916777872923105175214060705870343524209547009991491867560732670925305299032611483281256276700953868087406444949381507634073153314815886745315589383792354838932772526584976915455393762348701865570511750060097728613886172876125362785326730817249085636106731233848046460012796473821075430661974018822752815290399513991690094228633849164072991296712295180635568934055592755737529590103383603311950768075540373718791410152024130616680377452847225276302395896912235540266630367139016959173974392336938402014351944849821993120479973017380067116583403261291321741871340773341130568860197701222769447901337563237339234746901759782033573116930402059525717144035915325387170597587824539357342918183629896327932613678271209327637098779040500072664695088368032391240686933479031547979750839316175976724849205143363907808026586088055231073346315606585455547682548624267785944264783003579192965762357491986715116329789020122338512725337607107410633889004722116326732525416692754976116097650958892036240049084696565247032011993869778243567326918211433389826400904451488227068779506742965342343567144683961242679115530324469882771799868271214362251181609789693951428168778169378233499364888976114971461121636332223980494537038000258531457451602759960498395419811570693066205362530566739596261687228264114300235706749748902737175148225486980526716221757437920797498365258261829535701163342374371047697231022913543156943746048833698133459377241674780472209701967535777599865790659051319697030293387789959615931387758449672133423456041208348699821441068770484221300412805902520896631034552687167418747641775601048717670045900025978604683938392594574192487750962743114545564426200674274068496969749345898704036707002874366897352496070891719354874756424422209296155476916573667965109073716185991448034968159781854317582574507826343596136263658856229548049130577120867267379388552731327625685861550174967350470965938378706755122354629908869687805014291599426420118566100007229461671728746609601738866685033447587214283341354593876554754683716594508861240142269315866022082199307417141001097051898284633432444137354162956096080503678899937600951661409874130417305703549389968566365400849804765727799523822640876263862299782981244831024233818326912570568943212151768330249918742336632979237421461233798298460641932904377799567779926375222023202583766143836131823972831998762883026571673744257405325545299266433143648081902847370521971782728946046808373021302472696618501841891284568798651117954860844608358156065688199431210006181193611221591556794361532644265985379662858468544140332887795044387344748844417031221728286514363775244367532045197659150781348114445500689803458436330640329019116554062819582946714229447100252038813870885032720296953199747137744293048280906909275384254641229063830074464138788763528912008617966212310988403784074554455180361150985008489260792717648990563645599406123440168291840614469558671604025450678199357747662240307083969496917285635042485475881936475192559595298906662823195438330306329769136356545975209843212909323400284484499992199608955280320957015668893969707952154424054122977972864294541185233074185256472048930572633740895672035331673348746041244358393976937608358276031959153528079609376150022754491622502541539932117503500385222504605460409033733236449439583006222218912933285799595699442605514029681670201105529670933414837791776014196854554283998061694590963036227361366995001129660967639014002483472961052578463225686334499795653549890415068775465189438612269673497340257920948763365613863180789655210051871378039821880639693020521115309673622356427828901438332999798390568764896077016234781291619896870120004134205975894780227036658960744014281079637583642846526329017787016341905111458912178879096401879571948422038428549619649093514496007681659954094322100462772667400651312623164390960183340500181211695051981818611800571472827029040018795856342316148113868416946190627431164170172160634599926155632534851545490889030314758218972186359891304157720637856868267342631185996469680194363311872489963302956297572709619881276750204481484868532288819150379948624774386335853693244427360524910100086473017275806615652477655762169190097230133886955787524858476784794269358445484788797342162607687007270588035015050819924002590169718197473168424744583032374688024962258778441736431743666499566094965942634904160785578889911803726775964513489092429950975631326011410128550423213740333500199239557420043420494786183715504973501057467832491126155996195908350658863657243119084234907848911884173530355456012264413940384710162411518916610569202614470482943312269958315030020209242813897263196155103239114562701719594017979174325507498150202951399772850725409850982123208053865987496819197339577214460796968385808967754436397055206697061599917258187582926559713380409451224133694543062892916508722045025973330860366045299477421424414191895794785145354330446628077603838905660932041120413870573927492522465344811400085339328318829792042623974916506342945391133539572180985218411100183147427177833949108441741551927404676656641700382179476785491119619993700938731459605775706100278791033456357325786630356840592700540503573363854139308344896276375872481413342483721068300751668375424577247938242302935121085114106176575528903385203066774172312455368884926525275582444478451291324701376266445248483753874103623367102971594293742536722461843802413882419553141997705943557128848095151763234123089225978909457585124820886646653260127859187725363771614101711349860586620839404665741307173189901581739208453603639733256946286907396932963633356728453656062728197621706430562386624483764314788832040832512170897187489964623375537014110124426340502638679035564626715508840948705201025120171958125196832231640065987697880200642509427577844798169395660871373782943580349062024979785355634397541222753371642351317059660784480751981471189693079655849279132033530367227496760138044149065255186262665199528212756448783342693548050019896362524112971760771242144013941419199305357311634080155076106175440373978415621473104269210628160035878837005596071946378149451280230386865422768604545028532324112592656898940672018467372390866056753813384401584594768116395438766615711701206207250355079203439869275123983386338390540953996668804970741535977799848814956831559313656567961349628013391635687100996210051554296465244163952622028590268444979775183362877456423737832591180151399611432486814634126995856595793826561743902281462977600773345954978415345268946804379916787196576610539295803802383087731328884118304199288491408213766950519013305614907940060693498554954711057534887054947823413525509973531883260192411478204067068250368767850037925927765361152276916155241660493657205161579551593504543909484041777065986326925221252429433487844662602461104855785988504647397807884582170848704099837634738576977461737669727090376561300463997967883945464686785046382944443002986571273373485384374408410283206436226224866031711469347507858052942511818745055893744917604773651895255512994580488610671284534049886741363552124549536896759142916746100939374716202826581731708545529225183269742909176483054731482050368179903551376795695179113235958130357586598823804127415167816713569297470304053521244488246607515121652936858807994692500995818583022412513640201513129021711776263834391379882107446966002183363917143185987105633818667960500267375829007260797944126699598045811915677890648933749785956656143126033582200814535591568056118131560268234465773455789294301639263065748162247554307513949967340684531713958337339787336435860761922338907049004517419962360052675766735400800898434915043640714456715334165798224760986924265116390603394475589835141669861801888623879333144408998095480659481264937144954219562949808721092013556731516398159995558496089856259929812695942327653076315058528940219873201211121948241005579559318201243526703396883119925366045332644238902159314883708925029867077219436252528129007521908604270152154952326951491339905290083892326068200010864466605953775897831741570557264347219966631443179675710647012701151679492875375711253242332863657982455294405884382522314057909332226715641764893265205406293885221383364093065248769634581148220491460531191980623698513666460736645530881314808035188244797527711345390764327149617433770339255972899601670235706920530071941085197904318252925746745189987954840076030107662429043501068529419728812541240920964573586364946900237200017019483602129512529726051596913543056157614984887936060106259168316113343843425993024139667898501945598066767992564957288225308864788831220936028922442963753636975382844848003597053937808098192065806964312330614037933018242961927212289865413441143350234720758698755502347545962073394658977412112773474650277930740575648355911617912669247980873540644529400915416560169002330872572240553466566076513692992669497336194413306507674060911055119019869366003231006826020821666383010558433835674838512567247668514124387588447137364137022167180878938478440857961338975822765849519301008063464237413034181075450623560776021362237350184670912486965097325178375600771626464054456245241741540879852177819574098596442159903496849768828853967799218767537205538690932624997358959158752814313362281726202725973032357100021559051166439226543427972320327866139141119329212886868456855271016892969107440125854929900672984498990790658976571113382806308443115923711754515572103877796238380975919404650455282759455253040104553566678107288912213093261435836507993053730397810501307650944743345757496102302443103853199372494792031750642579527918198111237248401310936872156355622020184789717463840780853899076255090739664344591860237147716318597125482375383333042349932248009255809058427939244712143881664983969756837560324140269515046728246074455663610328260770870367171227573205984815131161811306190135138671874749323538785636593435327569285184059313464951178581461415878845137058485294851124248079752995130179548461242340638121717450991419555337065791434044611779494347346727744326145803580242126998278169279225484738413897247862268490969740886786673209406904499631172524799233225066540592601369517274412374162532963019977496785440945909725329114599475123057843594211306875476646164073953792621420373665432923319215480148515837312887537978347670090080861559979815977059143594623456292188094297713464433143838665051674360022921014353597070131764699504567591719446619839650067510899207980947501805570563748769635369190331491352203836261910500825101984620648780083699406162745336248674201306530838624752461460467564379468690554521690798251879824623451005456609224092356700760173071377532103467142076994718050489637448597209938207172247968799522249687079981668884934717368489629024409185173285166824814250968715669652711527145256796846301206597286344000001356736193355377430492385090527955816536154322313176512370156079814189175256659635672453157789102478035156920542371912994897149094272085131566080491664471581009142926185274998693441661444949460577807862118305971980901369919752180837213752951202519201419154228138368809973948060740512320270964098814981795450045855653949945968739664621377237922418961975584539452756350498559559465599526604392203768194070313089341389833214512059161784831618782064923849441724887467378553809024189685101023126128894667010252051388560343430363904344919785292599564852002649112008856857712659907911659879290301116466646620606773364460186649941921884765416424443953433148137764016227779029306184042838001776628453356850994329990743091173306776586642157557736653849601536094460868869263955213494433665771854728810673899414932930024237965432742765731061198068749057936444115301300330497971352338028749461877203788432902800399604650372172957467165269945052917028242399712262275141738762667294696010927623031643628344419093808399383251108987216492733417130676010588602471492550011593175498658351653616299942351970777750632574607411245976528323151344409983508101766226589266206000763759714288645826790811759135001836822853999475961982437776173961064609250638469424648686126835936720097259118106767129948150638274687575078976428745669341473717267224219304064361397501759465476461215405754389732352699106554133984585494035414895989615394869178897957453985554944618277636899663026415476375068207229152495764922218343798379162137397202930877951613044081476820471143358699122922368223358864277261512090829176654131038276601709364995169476658259268784372380017512837019116759052781035341119662271615975166345537294919762724732684444062935929775849174503620552728405577940091867569679532289322926468190596127314982076410089551689209256485703744288724373391941808381097676797985148914415107777439664651102767445635400231920461014610595988759590633369908007333726791396262016017885568680232546491732260157961506094429321429276882784007198727008830239291930182732388919262064502196463580432882019766168130198306160606860095467972691305080263475833768498921323705810115499848346843409547213913443363468710593211724947508522701012076035926564103722099701999648512541397755110388684643368131446913986902444630602922191141953909641599970022729049719479513752834852314796660550916763002304440386916329209242167610598894330594343838154702418763985173977656821187830404832672834924565756027616931075527538576297928263621441859755789333574229462479817018199828425973948606382444587854717354882793455022293470043124964105447160883088616299707577078804428302322901994316010286421288398503317183651403649097322824987525016683693773378780792706459864543360682672237427202326115181912958476440525187836286893268066112034125774068343594612159368960394189143097435774206982166669016692761678757699011573708122341745021608271851344459602017631351977838535162412639040409938872436943862093786225480685132042427921681014107915352467532787460571891139777973179419098217830969617135176463507651698179969221445477085762020423798918331395366945513555939734153108933008528888362914802223585177240180168823995972828594570690091324240489504606882328719472689921042928344178354869894861966889477074671675265418374843617182057276484098497245385522863649091654311362662729067365074599475786977914102353954380242350662668759852499755282219441496708894861761608936751037860626751986113009705463013877417160767712360842807035169626510263185501604831127984718954496432513857292289213702477791236464671333222977115479677834213495516322996130395272163901030715577355247768459072202625873849755904324258578177853300163863510253623237097785948926594326972255049866114805487829246385813072094788705154642773673544152819451627257043300027552003999385993831263305930013836535566314387112860615666404205765891918439022368658027147463069857855484297272650409417827274022637637646655114123924166080450910081461324101645670415240095052809703924427677085882593614169648177617851127984212695161810857817866584604392778373440251620929847708737773363998127313956161590053897059643701945855204505777975946307104162949893058101042440625020031100184096241385411813397839763418862575853757786366519815489445834143180121497983885736450121091979676567505413537711547961936667914200155004842219375672590721844688303983593194081742132344400964646290449255985378329053916903636299639017143412663436055758032509127805964469932018028853621448402132160221280067532318617101015730492204327699970786484261716923294457286168099565921033360021284477157572955768705185933536169471509448451586947148334710010811413855469286628184100157131988089706723978829625041349769571026924158146913541753079469817369965165858225575441932281905650132744907405043357872903696179836975340308977320971057847227368468223489637456350558858903489882959601782754127142357977220992681680529012567005571430201489826403550271485696207451023075655889117651402363327576684859567513217009219008161432777997543765764702181292803656445888589323912009383648013294050095727850501210578800518543544327850418194697661842544262801894476810737007365876971286446489748442621702003249446563781890978517886844971345295151898643702352636920307822239749975183351934613573557492495382274627649944035449221021701321688097129696078381093358387964739150544016787976992449815798233429810560994273036375186598622842874016604996051063712753828476424570656749049586250042042797773323986323006094722348429032508508009414146306959810139391378930348830331360589562860986538882357301362550941156520512432822023795605786959553484429951922999085780213977198302150315654227506039673012963533346370503685683301194379622890951767629192642592570815678877188294463094667492810202839815818103403179326411206677089165097199901347978263379330276128153060337977948941128702516107489071584724961694038091050868130088448603488351618525593658709436498077394049984097074188640733210112979160368235627903139084563639437835339755852455852380471568684544437477465183000441753715499064456267770357141992692060568935105674311579438801961661746528748799855446372694910062268917634635663916133837772956651692738222313887909334653897075973818696695430477232187952548969561869578174432325008051221219664067243179277065692650372918070253466941307389802653874199942401898671093191071464451363672804953375348619405709155873309758930635594232261157093171207551293811790888766413502771332573103502105890090693131636913912325918379678265440229949180714308923727693541078765680304329795597563897220559120197784879205748353404004735530668824091480324243198328788380560234719688443760309223455357015072756545499502578294979702677871675340886925857498270748081411796023779833482144685105385862594605142857783428469169666686660418403599738703192687145196613992444930436599674599590009019711871204022220919083760982992992302509458053728447487031335237251644657945862669569649540485191430803481996336865611047587546739029498936250604793575250586227044333650419110836158604055527159696432869015176049458229617071020194134865102379436784589131776806984105070455542133603179416030080414350699587886029998700393030972624621776622922490137463475631976600013079627817594623514720154978633578494156271727479233069036468766828674920719005952835552160304791511924721849068198034406579175377991455217473483510620242561699729726561262139653305394020099998702566989627416155669899404555189445860092292431714814942349395275549384573867606946098189462059241907646183882818305137161169336526302580210721787498660837084041722812241974998596807111862470298515502958749112485027730159312303059881303748644412537399379871730117916657043491509987246266627510745784312302242615840654974146625144592449240466336038738812824293082019975772676887404928651440567181938194178002171637285140044134385695730196815842167724687305299404302022912556229142239702227689079886774215926370612076427846050455780975975499455050838012462688927688972358080024329305815426384130014034104779773581912339683869406325640841470179690141314979050100940262202276119144706706733084773302056831423647326088769316344220931342222059232317328675294168736105084336607949855068847380017324862420524112233228203908249374202810099302958665507142102427819816002201126380808239075190205817376937355466516155111962071906319580984074202740984079912493579733607269063180391398847381934045106938618167538513950557121648524235191172490206952173835891611787725203027801295865230660946306983450360736393742557154310908455322480716560359777564094575853639923079892404348844466403181532009395022663446275349113248690327789578354070028789898059944360966316809451527075516363250348594471444022278315979876742135026333061179185982408881258458771396509898586816161927101496707577170804977662177421648055431830560131635346331303843574979361550128696811685884303852235358846792777453869676923845655210591599945287520986247784697244413372195012753954217808031876124357523701539139658122285400340263578125877951687582697099283644548267593969695936040440627384119084578946895727179494958002122787315793985512610781024134662767611849124120192820039059488380014655935751729465864645103665622408364547902392656203463022613412178900625971221569927435039373393111732117760303162978438414718095171849949743473587303788726192713627249315972292738774473993820767690983113659988915252344938482318405435910837922111747642703490105541017053726495051992390662572587869444956500230616161955081356753377317588341575351892726075470031577108589902088317095171361914997479321349491551080279393033398923192989690536689162423519503269105347197770219504250267811039081034243070828354866978138610138571994845256889579313636779614193466323680240474327104045572458898154213731312099740741885521852590999994397592998368594424281047277724400137450260748648023912340560454227255562825670754405662585643435765968801094816937595087899453725958697146281019339537555963691858808539264886061604199344399741219608387289599356284582115660503261798824691432504667211723383310952513862487101228922635076862218990794984964670519757881940223154973822717077326302283595210592339935120339670664806019183723971703046149406373307057555972979776136752915022586248016709782099584260599417096501076960125138322703648979967950769388919401718604801998223750230215551459762994116785487272587906909450103607329458472174200872402047575631894056638934831910056889885675267210453837510525892136024340029505175863679991443446707838526265994444207533031961908953505530779960476791909735964145459471733102786183617265253450386170782378683538220876696924965871398622392730205253673761931287592189428435411400043218296618083449994335439301651875917275040824408423768726552774530908015902424076793836124702247259834036321535842535783232764731941843182180577007786853221037117698340362793968298205521594730505156081908839522204879584297041127333881578449510462745713060054624070422321606232176829522272065287511415469956175781355267139442236410949707258777642190383371750573771213652809533190855997276203069983954350079207335681753698936500878685706163489063585523177666539390240796545321683813643069767957336664848945911304548014767036614823143323215375107393129863651360568572569214854294460781148666851436323582746498413444073858321085752409106665238335040007191710439421350226578768901117816961664106614097253723105494157333377057981349275739314264725387273611129232062115901110253671115829430705415979550450105643485285039842730129622846390514725201132453273986028464854191185409652985082871347142074261594564960050838939683803504056889051177183200277945035646598221802738703032622821019480098646620085878924034490640244554128961372307299801131145566192706528821702161329591571896133082467656626594133712109703431231407042355573307295348393977298482297385211928394126174067905538030693105376389305551968679595290734831521205858870879978020810225672519447663944045011790801508717658865141894856485693434043573357184609500958954686795802895593688416862968413232600968334166722246649293924094741442186388299831051856847259118877333582858643193382610466989152434356732223974463249874621416912866543370931000388759930038467141591793321963884805546567794186540766371379499353020765067410600612718117679061022061799993742378887068808561162392897098380973304795768537172082415978728435636381993548034755160644110427698147306216825563819557183573517088890111384471459616122336277527039732506559799906072336823038468945738682542198109790485061399890477163634340507560472862727129633196137303799626917812496365258926838610520259345107509091435416894866098870105687367473510981251045739185186184131187145261516031010940435758105107232810772574514960555151863520642001857282378213102250450779239854274751369747415338655382104051758425905417940665003584311580688846326267056316099121466786794191465211603975027829253214992123629818809411077159331579823707982788864528710120073671455655374579150004542203089841535207972514980136333001513232614685475363356236638867463640653879179640149908494355185772191740403076657305503457500627242656761522442172399894492409544284774086716323738636006136938583416736648733330687813249241021619123299844492303502990052059826082618205637810297389161881994206844206331603552556568696203102277165952413272892704377973945152915545675299844527258564781377499479454201099470790425986347714342335270275993827574497982966120980256511043926503840300819931902306535146922957300690602210653205529990335938726274354361352887108318258889541013091089829367816618071268654401591496511383848728491241097843653195825389486071543372978623151915433110567004683857769390903795109737560672994099812389180393770220979746597944562452966652249833165263807121819020705109046167361927346565642492707452310825300996424265983229880777348698153908019822007075692108923477318407234177252220093438784820383769311026119758223631098650305005354655815255869859801952244424519259835384172678099361425107349744698695465053820168193343413327176178879062834700577792473628376635304528469311146204733400491596478830147887695012921603889384932235253485594161266343595352613465281843066429232893412231620514731337644930804447606897049962046411994214529396676482315300414280237436751667031483538282095067697402269768574374061130518498482106424050323683160549482163440141887071521468881884065782527932396696315188276092424838727739550621623321433950913261597418367045253292793328115264116245536437816774786851034340997844533541022817371467301122088567400971321256719212037188863771020562698938058180653685190883362335379576032981153078423746723729713207794646291447207808875397636593742016691447985247371636129098245962824524285794488616859665340114608955658597977630278922952228374457163422219279716813247342683181118018123254393320028931484748660435990992045938497635069057703785445272729767451534589748060785994285910809641506037755826652702038235929625923774758094485960384446267614106304438357005585003982790130942271423409463648917158674896969360985551762573819727644395560898259884387205458623079379600401646915080660832092703375247349786941870654084619153390417355251610680519123290455340518688211960421299277344587071357662530086464324464374698431967926748662067455868034808668035368327482993767066353445069027971189347005428946782048078549544935425690764831751211463991573827906707732195153248148807778294059508707750128835630770764621138981541050634831711905799587202500437057974901097059393005985087147683796442164249014992602772430140681120750700411447350171640022752407340108059190351114904451535561090361589674960159287860614523865001691806639057580911781052234556233558900565701733005618257496268158094441902733571481912024764900772671770875498451651286168274224046860352198760458559121283120928540621679594137956907785928176061125053319907174002810695867340699242981685479560179527566778092780510304840239123903760782829352634430488929888385486726304249507170120563719774848738317388803118475371418855023442643673657725498924540017383344503117757981503249667910421724537352872906716886207234397987670389549097107576935807487847386587791374963416303768408756661847722880161469533782766149910386650803048319347013762596702676996173809164821112606151389236125614645927462299481781783495261416386853548204442819055246368668968074078959764521313624285459089679426928705129295730410071991778001796940897018413272801766816781166799104670167167427000465933687761196284871529831883068968565492643894902448439759406502213476863218749806747125005014814040708342182736708583453410995467157772383670227307370775716896377054338611174154826770779440310852404708177553049395503799049562487517136489267615643647150542943216487045605167710684179357354555329722506720044008794611923435498595624364753866462751183733134034676709180844226994828979062122248608466955279688031743084191106366751290083308877106318440387379699646907085546000735132206641418429095036646179112008833330257141222226942700442132004035652936442294924323644435444935488787071714156409581019579927303176657917401578535002776439452457044850461103811866675025200334122476196525962923273273611637651316076184772860256609039513880045696830749373728502156866220505751136166513498749635071421329392842736359052688582606875734650234213398549368774631320572418960475233364876280081061797562763692530677447245194372044776418607369443875229199756428243540950688270054225395161183342292118195934589906960366393363925093484934434329363596206931044277654121301585917557184129163010718138581709988403218076379690764562184666383658786886330899499728430157341931840449405686507933975026557942287555428345555330775886120030192826492627640420117535928040938903701552050359929997379761954439348157002582234706108809099161699008630969726351163761279718211280782818556368364177567210316802273862140844400426854582675388342165359032417288888465149673176033297011970619452090976834900987168842274042469418008657231466791760200669731235064773042785015176129429402700567439226598264386418539636151425112949086957152007834636213323013202035175373069590475791028466124958417876262806739007794907342505238842762554088936318864726354153905449712291667793628642146057375793894764574635602183562909552514094907357219768052515312361654931249718948792334145745315880725184562236167694656231711908382245252603791683952066526352249492073656981358764643745187587167604938213077600156342274979801724201963517210932435727870366442697171162502260133428928177025865669073578836305672225392798822662245549517385154604166707435513837209152688291879402439526243513038506544117753014753549132699927281077995611008986827053265487894093640304312525585274629887567956326510862203825520704610737960678390205326293088533535521532645465880964840519658952673339035973317217837067811464875816778001106432558880876857223372098000985522610167050552790949051866349998073741885368081715641254648896391502985272164909691597187379264852792045612838258528130762531493829093474999952350551843637453064492430664684527189675099123584122631697727672565516446847377866285990951121589199569889823927367083556789704316762746442194990141871132268397990637593411761450762158210821676082769696316760404292909106470490826576253455329950061478517114604310729443672508961332219811692260768534185580419143010326850048917385548795532318622362763802363426212031268104596616010185549522714612917836521497641722715317247539814839797889196665325601339829986914834583338250251893735506354483958708219043746450921115669098979546873351424004092096923910790750261826541761037846932297776154287277158830314085744567738242903776617204946613025807119951226332291940403769655345416432937835714346523326514344109881023470467216886368623867691664630589080047561393083028924188766947858338237736533810118353577504789904270010948652459870170086451373919854598215832850428874136735299373253480717373930698203601049723843891094558556916014987737520343747756969164321383542946136429798675119546969721879776036939683316009407636523894034113202801625219058899751041702108149270370991355974252434477057685581059704445981364141789104143982946206693440231937139205110020962717063931216694175226465435976419941303535515075143925717743165588548499039554650077119983869945846394816638939851669495505354393725528155552635217852911534301983440946956072013313893878509585243967907342448984577444952866058460765684190319410056354868579775723153319919308182321640052091782693503197398953772868178550491266562495553421285128662664358493756782596932407017589762110509267066736982271767144842333870343256287088881560230451804060380328255665069622116604129128952594992333818526166497937152862658568811955395557024501691384819371750237231691061793765367064299294479122083009185780221092833525091534740540535481146483918809432426779119271393770885845899277866718353529504723322807118883776316750075530420737062739185473770765209901426197539370126757636051195920942409832576435868137232392142292265326195204145398243579239130025428783648976771244810583842923405369254074696161223545308510966793628880654825029594584341125748910425451470223851195624652984551284708202642259985360135695564005631066406124462558146024974473423757486163753882234241916197950277469377139521394721912439972212342647027493595361535037585236202006909150975778128592868113698317660656848361426359478964945271963824970745979755514022616227395046161138330527393926074156045517272393866516863828210912547930458606464169341793699444704123574482668344937954002926659359419586906214806564007437422155904861981780449839164417474247352838169281396677956569264126221693195658293595776111212429405977681792099748072905659643764906065810862011657237134394439344893496070450626016159706693387195126145093309730851254978884571072635438541183423136174195718803666956796552696428768308146341460908104939929744091737031642177457619041112325179142697751144398501764472686286477950839791211033455286753132589540712954354933357245426424378636979951217699463924762709746017087987052383375212610057352992170278687569262385718645896443821075890655050637303514100749872839900489982098859279280683895582974588359650964848225195530066352383123131742994797196011220818108474020980832395425149075186166291218083397977423717212293014623352217675063502675913485520452612950257122724237448839758763079488050824237884670155980221511848824529076656467074873625980903251845162346367761030603195221531366592211816380612735131214998939817153414490566473532428642695571408726448757208772169376021834083888479174437721580285279195253427241621093347141260226881576998842003157455877597514107298486944839792580136183655482060983014935528243205908667264080855984992664700422935732462545231200003171399984427018860430352379211164078023412353050786073517079014173529899662738596260771224633119082858998347524039975548267598093574972299056592933841907720428246078586246270058148055350240781628453404013863681807034058688818836894667551587012530924163766327136171375831160692490513909313031278796213364925799986898320396509429197680412609311902298995335422025519786900093005209274989554457322760179246516947179651701221339476512979459550341528647860831838583200335135038025731359035151654199917072058096582485170545986210134336333006903639043002689357057039367806454616759140974270153394446356787378840464239251512952542121078833563691412023421687808484417205265547666057319804838805504713587452802803138998923274795146293356654006059429682099937174973173281986171036155103906456984050389522928903927458157711082628505912477290688731953468679592331366062679198553025778947449067373923951327764781207425567859792551518557490679174223173195127296410171662957849165258022219176896405387679726854050228464731896732485277708840916787920466550421053860758474978999332890281209613727598444580007802251933402514120012948816684670167353687532611139828553874007857594196957273540827173933176563223715652699802205901151464933348110315765873224758172465656950227504075578499769934551751220790935197943018306799310663471739692304631590401945689972619506803914036682962113106111218985705889750796197580401215892611949714211525037727849174276772382517930480180953972333228821346779694757850769758229825098197546988801125524521026266278903826014425153167875377620810953404934985433794145423976614484396532066984115631774827109981377634773752904993582516567017832208016567602729238868209287497487247122973495103143416435590454986810568933191422295363749609314073099423394526299178011515567662819649648435805589640448896334777243056326857593034577682480413840093361863941740932673602685232851897321190090013809657451324343694785248178422844736287187356800629738926631614611607013406618164073685943719064721019547368870129276875770369604415717944124420155207740934971403477762946706105031734558184932931720218166578310264902340214958723497803315121756760454259183411010811332150215787712710092948355001250486991336545113439627023222236617614980285225602347855670877731420110987759844603719853493905712066884892618277773984121452830045167402242446306749751506846551038811640273788005751930628543357955382657501437140652044042160311795787950914629828982506242289910536810986588743769112791827197907695333362491120731569480897041366612460865439519082354515758121350214198647293069640757288739996135739613898163635371918978254981982258663564076189931173963408386652044908412746337424094022175545224489611482216070594426539021835187602331527880620899465196030233466533209447816852698256036541949972380254983511472786986711476294706728640218559078707950259888108499010965960156462517479966166682910543833739618438979020849235286910303776647921890128240306670119790971710170976295852554743601575389075286486740567221144688329091283965752089505887237172981153081474363094356156703751228646982556794288947766830829513824078413815250140835907417967183728794206212114884181945592563642197442248633537950110867703057833933937778616696256087185454102469028338500509541063228268082028374143777321309345951570687570503709930370875079337927400053174383855635134884512211008401152066202075202098135642660220173597522188991960897326182210223224871360884001956152210069925869046135803706070998975795617187280912510065151548874653901064966422306785352233449991470969713996349882385559293300843534179966727018804099522784157549133260674705559518095689516392422092980757635942603958318291929675848634609989244029531479651651098737993683312688102316363004291911769051707345584291134295960196898251628487791745410568048589667953537825583857535969854070919421621575428229434017670030158996153326773567683544639504743883333605753815551173875956399777161289536943416929859458990803794857130960394231455187181817020796747281848116492447715452955984304112095241022473885075958868374754988842408275834768949132163908622825616815970521850382775587361980269620262771113262887251457874421811109841026270088235532333390980222458593926064316498248189432216439627409043792151479434690653761434080396613253301041168918444333154322962242488373281280851012207858820835732400160207214217139884432407032189306634351945652909357744725258352861885100502341398962020424627254568958309412747673010979334324032659073573567647970173000320325647831368399914553112620573149321781552247042337755513789715436452348888345458653823462277993626182439461249193556305921430758182627792765637959207902327201771912089029664690747502086605245320222550408692730096122323624664914897449568012611506745598419325451988882115395037775446226478124823333978906119076634326660770034657125962767299956724248089819539916737985285750356310946582257013998411627737354665332795019021443987628193015254521784229247903694519692533605547119233310344894129704216581821419158517225912884500090290654662024464315974956512752338796788989938545618455660479905882450610715988583915155700530635835318012099237736712625681595465281412892424424799116778875323718792310429017859873076864991979564166411651631057862832952801749439300548352562836939623624958526434762611930254447266602061423539573783547684436565759944727324903756864529987081477641045868075811442146746649812407227382281169527345890388239825703044790662622300252752566483559629547437323861336121960143508840506810133448381416474645073027232429911379712835298326564956147675727585486309846237554024944695321903775338144041955026619332874705211516946646598183058823159326495652753015834543818679316182174124297048674688878231847947151096925656157481321192769624523094218234065329510142974524625927685046482729141146294183092608202424073074177005435256055187573558201272530717181763018285868161538463973147617355521619994235985665508918760734749810978351788113220562902824555080961819723745296886396204366650794232093914644515886618351229516185386334936673043384126616352550929882329909727900092658637684225108898412904301048761910461117042843598531803107000112763001052919632875559445687944950896568801857640726999967340030786265295444356105863508266744775004745998604807539080838571656806642525472788388360509761176320756420432215096698028296170223530668977526791339003252995533066232029608283412861135095892651887127148593982315921988642442824623898629670730976988717186906689208511098632097177132427814262283092065349522895447215099258256015647067651408524079745017336496854426733688343058984931469971965590697236599565435624896116670461320664528866590608486160305087350091587758772839133478961654058689396013115793132977283057359776166963005345160315061503581066823924285924412767680149863711202421642573817031476799823276840798936142706733650949836619864575987411736595195226918139751879598284583906217497312746827397575084753684040054807767661246696650026880174593915161638488017458761371803020404823165651458320417312935890730482829568412747156186875191659764529895902983052227930971021147587966667068230871188831164079000040794281828406571992830064846956347642874978557310442162197481535444052685627720265576226091263358140538187213898969403528286988590827969969272942361134818310375735686493493275315707064162177718660383060592175477421751409390243286570840399536734148628194391890847332185061454338392604366216877565800179769497392976200206944722408576530716175990047718573854164732996188390136151726936792441931072288507733841047843059630148334280057380027571567595898864314539742644290296202246021003731672476414384683911348966584139557887573197367182380388541956809306795685072734225257461207665317265323899108334729024656593112993189059831071110574032919623128088149403330654028558492220147783246386948345614205362236155655773147312290281907587199741893328502295258714746158014048255156301639218628108483368847483712523824563995317949815565835330433131308066093570200919978905136374941435778455329911984991782722608917035746309959725678876155770568930395655861331168414891585236645752767206887470672985486912767417882234382779006929902712565955635973972982528582482635106950743244034484059264878549737119426672240033970989701497157888821868769311039771542042422538762194935550924991584258557624395003625242604055179747593448191076460832803576649177456929799914899646576560749763429718933462804556066100199822430451701799910368824229411492794313164378604894524255678745250008249048502642871002456286337047595465715896335874714440812064780371998360914374709021465697297174432746349308809840452524343875010584912181131400727643794995210484687442025938613058158104194930900735016951056052925605187267133249040414593327350371206198728758645112510435578157163736849888279234076565479454418408314865450824543325409146486305083208842502865885886767114675847294857851578424553121529254179330892608383472076048784153608952685132453849746821412752874595897889124630143444719050982185079942419648872840201628376147823935941397400247690158716639373077119416222116477013949482623486923544252018548240318216444513057846414070330336121160854622008071809234379762545831423140828611993464387188356826926224862693750111703465258883704377459493546041642338566175823363550971388723665468946227639059108972783315602503241289957181536232916953783764045178356404078927633458714000324594809117668865893286175253005742246331309592818896129032588144909210315745878281293179442800153286901676767986922408558647138559102270259359484021344135626003291831186342378531800310754279296679649879646919967679081940671489419284922644573711056950351787687845770340624649516667376172288080827268831294483280214529078630141139947909512957275296640980400343649235361987480694325294305266642245417118697613949786336433338943404517428348779955954739438323502563365172738214449510733076878238308953614575680278611895850688448962933796181838957224267135600280994930591717596625797121587728340598191522748796247733616585999782041153358571233584939264177253450573694117559980741390739262107948164783404721741095359791915659763835737457696626366171730214292990332936393756529256872856841538334110291186813305402965346306216633693414093524696054587929768879873703187371318976068469656143784862662114688850268253862895167186974517532725219117742028437902267215750576764579005786848489664447059233086484949542154453643174865923454826958912230639329158246395774766272219041446190745322228264475177404301168178439882003357811249682623950547596786000932201127049842668388678911472418974492842308994001803188254709154776109482480758252965152337946009807700734064928827285758166775264611924477695386566848026158602711808342377141108299051307947859418407936990284719545868674120997823714242574047376721094012404231296230675146968023449295374580663812993187106020269458655410096990689216403002981489321341757187041666055854645484706471790897882243479986578663285053143480837215777491251239576069183870860452774532386055997729307858402117893823248594769315404924119751685347523717642518844832236657858303923617867325015446477719183784318155395002168057649524072657447962541623258845075286368290757039255977462538709088867450425612605529251349536737508122334634871767878422654942416648172267141769546881660268635877486883046550049096601882599688005765855730066339932426161866268938288358082172649485876749705987521408340482169307981912122898812835525090337196341983178595535114639909014797236355909135350573024963857006445831973099450244504637296096119209863929720078793144441554667583476969063217664640126084357466439975953532652519293595659547778539440836992821221800528653765831811194780466350090811837070560597328517412720959445182426746391163707494819542245201322759100602758704522571562568886980348419800122211624266040793076546794247775373122098801420913040543460345964168507809707952648725758737263759261859632730979131745221710554123466925690882637292062441792368011712163621419247019026864355315760678326925736940034164974299275719954513098570437014072842648571335164102830399457635665398808824182304049689430793910540599974261580697616822198846367888858506730594517713302414906815923479440449983703593899431127221702416512789204067055302560095854626872225078626252272742778419267743133341586528675876249572548478997803252129351610783555395801684159932790828461796385274096244374997210183804466663327644966062012455489240104126442918123312862019620818136518434531946061510663772983079124303733848541169808365418251423768332273072902448462956054229726697123489219121415369717320162476453070867817748126701992087289383730355453131660985672423611233008184760353654581999838730812150943402335745472573647832362386509272403720458345178985705012748148377343868591287030967391093547299168329342339678916346883304127134331108053935137201530541097224350623671012207503621834334341017428105526780238432259306424566494969049465911083988667631593251008629610537547103805634128902453585203957568759631664921591575853990255455331203865972047196394374082816871307125914769084696885778015471524386246861058376040658254595079313611123291336527591988223819208468841222150434703407500280249775407634934149544060298041070937094962885382388405461302295247960025769070343102065958052911023043024254450554800398811778444216248549622000867028212045212262166331388259191093440882678710045251533756365106286721496768873166386851664232747606235909298366510519904302133152742596694548950598924957849473220230185708872321905390094640581417657999066105972982663576981652078998075137259403703626512654398123464812282890832933431541422234222381933631648190861004908922230275933974422657264620978308463642750686790047325838230860213495557218578620843161259013046383252522357012008492351266008508598353968607219545040759527874994576496271074068583099942235417627228247375466627995413315179480748631732123061779812712873567910548822304258286051412748477805416450792386384136144652699533234741513712855551374819795417703886185768869069237867370515795351743591668252394562727993322989962410895845269506435506207274655793759566663026522664220097979358217186354059411625180921261265233678818187808641876287126432420032564088134055849245641602786079615914460908309283882167832613583260896048051931672807032761953887800855661936413626935925869557276227936704154855655405769329865542106256702899202918362394724664754205538966978393376283539178487760564893337294166738741811127333492740412459932588588623352494103785581211284949485025958589355957139401006841139390605755115148952042328784503192288533761434596394367205121964271111957682858401061325729755333854751682370968586614580235937023410934179961542374085506033929201594379749706619665639020468222661739170401774997217873636032956617841288375403346448960332096360962076195816992161533896354747467607934947514616481087693758940122683674121890227948837835614189737153304684466591668377342891422094217257330953187007725931070769581475532151890142306344075192602629806999766007442017907857961051840856756561431597247413817282060665679299052530421181783739752765503183549139707474278309411774426706334731326385789085629824231242199742345545537605707587033038689967982202038823146433332146766777909960216399683742498786360444045819869082250718033506208560139322148319262298409718329785578195986047655781477248046215551550184758637342816534839117649051071184260384157935059693419131405975367561482583710705419712410133061681745779290066234166598749602226908063322021711622297091480504104642640764121097038330877073398020759581156994675752874044466438942075592593299229079274548830851606849949567172989071103720332125220582054376908531891971059466777438609135793938520361505556160696656108972601977324953129505086917066044882076755755608325305771245607656699010537358088854730298042176669020692076145578212102375799675593823252745158403955201867974511330561219097437364269587080440024874222622799501832688362644535513952912531300244214523359744492906635644624736519555764127384248781327392351351330130373955812981152123477335772263217817931763058703845297738376403969290893351068948258500661512816276785558619301601173092115152276875312942105941162505569790300498382835040810554797379975286759948773832229467550191336216762118189126655055732095198974788464249452683158703203408842038719796740892304723574520573449730125847125544130593128225883081938882678373325668496670764191252793898305295879155507145872243393173428771616449607903098976708203084666421517617451322462992983722972604353418716600243457821922340780084289020344904556210229322523815619678258949081024424589506789602565294157257439700413209076118516229002479129752812488779071591846389253762554045778049477619939986963924534616254436377432073894765210330785332252687446828491834137874710964951872483964255166812529353544299970813831751665594336803731807953834334346419110110029412470441842731465554497301460160580977396246702014016522909256600968151859904249140652575795058177971681591382500926916290494192593534314755625603386202793062794972820590442104387731489158019341784350939392786594315100196847429935824179985936910493658207596899858524504768340826917645059354584254499991896174427792242002294623691480419878081971135054733855599414070610736436913511269538483272010343100094362116172435837823632226442252666848772540417182486639019461022172462278424446486608293625169875556967861980573196099460909996069551853352474298353178629228135832475210398054232930207026577608762383754743957833613415621096396763655786071619054572485149285649710570450578757685571618680192778409709738661214806142152595810060236390935631589192426982679780742119922441072539622213556421813471281687390358422724362029890064152533666074340525955889141093831358192155882757788354898856023560526715603118287163888646630971899919933429378247158766846483069720218060673695717416318304743399779962161452865755683708114940114004887153758327855934030220826934275055372872985140928241078978575715797937181845479998820459030212826919756480542415126550034872053757638761132378317797443452227165756898248817886717820179853938930112096074487670369820109519247226496997036175769042230674258500074787990853478132021377301805384725179677659082016345010318836040781653771895246037630110369270121290765030468193600644157725243713252868319486481024301507044121901233027002784842796416063451049094587407585891859744900077136873554441791655238148903190756616881112311682339276567963309161090857942881769431746851269111738981405153149819452888414556387472214048053197270801414957339376592779532133593724898523657014538762171088322173566495513209023767951876954535678743493350550031626870254099025443124829397960268737008328098199979793180509922871137976104434245964450633519136737722380911701286454114379556349533789481655245216209136409099556132343680902719111775080292254502240311762107380260917752793647792477835620641759680844118527983319653736698308968576834757224553560377773289704552175949875043764946306062736767861319663232945709282313280157311594499604073420327726407207737775264540749050433103972022381063876876508421866072703726963566592515349153333301860564993720472118083124361274359255312560292324880984361545814203461778973868679793295548068759301470937403480186605591494132825915708390108772868620649920570919716395341218905722768335410354485885122302766891208790163048478712975286817575229450727407105872540116059493326742441068593077061125197496769626335312440346849747371972773459441034162668641759434977535824980644091019529784680130613344958762473446929377571778261632364130531943848921776519737422764278826603208616247459375747021400090329540888439356280181234951774188989170614763707573543419884665582289364857540092530085210871731789866126055094399886150668233693915305024191857468169904995847574875423935207317680888336495270332586560424514829583989379722407027126863792424986807242557026247727738172990448572429021574448138768247813119997736324543994822278449065359249381550044929635861428155879993797053087071420615726255185824044292031206761866577988041413921467821166805175707310394898093455432198367969200286776787082320525043422000211731392321103675059229616605152993356637212200769514945602638854718529787421777549592183445391653208535781725574444366818701991100222002548869958758991432035503710333683508388601004463274950880380286981738549914542466163803973881494004550169645197273612401805193427797067181829415052665815048737695564067033561453487026726668348323929626830445776140594135079074350380807383656637543330788566311998981209404110465608565898408229561514311035036074047886256026558066136392502772407269795248123544314516560046285544190134566741376991803631297315544903536861922455104363104986985938406643922521592285344054970058854029482927495364674523522814441854209420227041440453966707977712415413647409076290956874990666020392798556047443061791592788673036742988390205424429448290394370095545513115294298744600471014138016638481467585570321415467484327954594740164269351978701662120427166501797064437615833526812410768502694741445356503302014005198268798336620952462790928181005130107687732102710799125977182420026114674383123682140742694284762433636193392305656411628702397949243685815645619776795730682916315572387483661977082010594345575705351907532604942169550564516705656296745639976861583191011502744509727123267569232632407387110128423350260654360436010751015115379406228049855076350700811761933551323263085997956168952058759960231338333360505988046177057193622136002164227618519169797133916667252455612059486437436040727053040293459968343153142861247164092444099643883798484967895199965303913938258915119652621788907127098867876385814584199402924197868498055825792179746576699374650145589444922630909568336743184431491376227190807507244534563844386063495251565765663088761554516224684137837789550190728713648066805916598657736968046857313241933000296384238512780535986372193125084390895353653581017967624443687056273278449163737490011177963508420117218969850765406998014609210290667753209700895047578288607094195597909317176892240793587213436814285567830117279534462239979865061480313327684809058589857591641935907237294097186930188436739999484169736969066116559763695073863290588707292605570431091826500528885805855592416477810365514036974882528896225060749623757179377275689101860013171265192618976691061934957499751656162743522830067933184938225986328874073358721699046299410675031241632283484659805087059771484913282967548304198120374491400639820377292240196548534895869821771363172451131446389938724182468498053899646899947831186319708477374513754390416384048524737853298415522797566239867079645076320122831483065086223149543631704324720128979381225374861321875278188574779523071481767672043874079210687150601344019372870512175668328005212845050940259610832910732753701102698849638044602468468530582144743598412751050156546688023887049384253037974890304071459013294481989521300848661977417363434742566132713035986831576510467511119251147630320812672053517599932836581892197901661988767096632704248965785106986057208790261934695722213798188922938645026075817151973061758772549921492177568545583407671702677943842734437765209309460669063293648132143238845169835725674438926052204043574007129427882773931154437570192890683727900390999390827694437777145733436749783193430577844269061736213932902042232321898284372644840010611911620688768814865889462926905613263315960667427083251908488109901877795612415705330642247694404567976692540285234816695919671629320349759089405552445565776429745181791045676448081294606856346845843831712583151167327933066080679549109071426436318397862974028377522507154065949772671122982942205212090790642402606712800453745185025825038184488567452652585318910829727026175857866575267069100322236620847836258073468055445562376896502177048326848444629524138755448285409963939278336268868517891846770253581459984221796594975376831233793186887343267589163189475894769358424118612081161851653078256256361003510662720670600827386645999436280033733822830225768267228000954463586591760273860677493177596588099603308731489340156790638013671049800515190584678996698491249957701203664333048574917984229225608783934959464784110974375564075652548947424471486684647289131358083687840735675664203898043090192095156718296311020265321838366506060642642448292558476999542707436992747159505806241899951931459009934782773616994589868041973583433155437697840046764256304217521101718926017368669779120902859997513896903758861976831265237215657188032993370292059402812559388301307070030445125382447956070472503396576791627828499761046391961546056448226758363962534461522821946079549356060666340714392036662286878660456919525509257062576219573173480526520984663071105786271014002310459127665328908020647312131709424796140903102124701238044115756466201121698520614099702313064193360622706454848186103065058937300769822087705002701512949400034521172401369484307176211918953074728683298049419483072718679238277523731259278320661086200291119954664951349087780827023315152526246942628985063418686342874480050108583226086197872684188642675507279728881166351643907706916041818547622603172116560300575658403992777021444327547077322971761910259733233581918984178957887310392710134608588631386000631274533358182377359471551443676662716204120073318014572128203025135731956486581160413578453278757411136734634107477165143895373669151786980670837480202293497188439991736830657739723759668602777658452854300249138296733575333277162071557776771754479675372228343132065974105676022604059398493076171018629707712278547621840099971656285662310301928710138892284135262985499329261469315591355471415546113826217453447786213896239252251868139020868007186195013556603587180593136104603449271774976932078627352599067740533791025535904735387741836059682696342390370107942565153333871562083564880824982717612457966367519512954991688585003759987927913324521238842422916222297141988827887310267955592383179980859005055571483150914206495221749072379546990606670709517645252995600520581129222375109203744954691758440156486426924168534503581074354665669954386905543001843736870209984515056427261904195004683378548407340313967191252137563789792669291070598350013690487129061176984079404840527833195013749531288441672456254530762510744298017770886130906436007112393539677523696046415089960116202536498745391658120111016808342564677593665708337351415695648289581188331727427240524720528368769473197213190198458666636059477136704525329310173380222945128867386180463435934652299846295215377524927085443994474455388251023641383327994495248090492146033962133906056811127550967978246513457178097356215308706373756259375296452900030506613595459240296260977900539304994833129393450876304360967876899372467736235636738585969229000568172135975401636004266886286880456244444617189840115214058114534058184260225915881264262505492584980006599515425807796520537779338767314355097910831690299369964030887360844146297532535543691889570239539435846055803376886303733553958599356627459448556465302565033855374054207452078885091734300537589219679788307981789564578402719761327471611893057047938625564332639668376614952963615055141164439728642082370902476574187556427890745052065404912528614612694408926976355359647067068429104120867680755389306287687644790559290689830229627573072490126948629218653455538366609951466288494368086761886234046458956679225638050071420300982226431748297039719270757463875223099742800168476403797583218051395152852212811130827088478672817794064285112555357281229545105705573619446342759554000513408052843773911422050037127725331974724671964248221931896227896238171006581664863112401286827442242374010498657756075913547987364862347196960417163106239191073285637181362782007595757354297439316260098493656568497702680890343385749283185419043051902812380626197752900959553021864371497841360470273257727442475195124333560992629872771101176908084057649640329225209638679687587883954780584539030579561307821777802393324172785400741191890783678018319981846458727613774596688298511207592667044980129199712226309296376819424830667045672389994991125715343179565960494067544825396032562998999886494804230326853832975868433270533085512150155063830080791543629169695322101902159722446081468141010973653341314860452854428871274612134969306145965894057581836877604464320495534862561189040388503649352642476807342275231961133640635228770577484527673779893307469367941716235944343572269868184351719363893960747333880143179146042338513427136576798015835743794803744644763600670534806960529767043240588182521515430310043729403298120492743194258414327402723112555952826325152656404563154592292298366259769933823825476055289554682499018991355883778464223240155036928056055009434244574953268754825703803808913566185193145163603414197376154545566169307485346793524525789870509910792776511131053202851548231696547783278498800813200882451620518558493425909197474763777488361162268064605552527387481732642035979710664350592674243558177301657866624716515355140354341635829411465840099601169292905615421329960442238299214092851706693416878311920209219607033077306615007242761701586878943207811690860285654213332847041313003152085837106997970225858603122780614556464999491796098291877556432181895796142216245267607356702003298570260024970889209391429678098474527596695696177146719898319091116922519534392584638668246960034702454527789766308847411939550490002614457630589685619321687695041592852576397390588955706410517390814049175321356002305186813216186410519441634728836826040873284064199550913876624868304160333385669679295127688649219962395684130684214336660219108122307130203673969714124602226236081403142586046828554159565831701640375801179086584280994072332096260082573165149370628123950258288721074781348985909777570005064654729436173943938219466954038151140072663978236996314228494996535581254066203370508710968883280809053177023935797233556243692918610398420068311693567917661179967752361691855320316469596963902150900093686416506935113134177140260608699757159983530739557887087427005517861697341432271811776997541350983340441568797431534559967172522755955130908543911275048105885203017700174688362242392222644538184333603791676280432089028085540935468997375380146171141212651291727800122696559421305055006934062408622242831857929584553938466640202505247759371597430560083418838227554665986830206282788254233273600058098186509606654817486653655713158533475200105652454465346790708522190780846416812044301562977383146799135973893493669849807410044298928232392956970516728760291510886145961996372761545663699501239408271052792553178557851254525489129049859007739957230696286704593719429220930374153121618896933524842858364964065982007777757091240018191843235164368632406161973501210515792011816840122460605063900098880417899581105589012509826098211773631595513711870026045922038332547277116667326703661520737062581451946563555563898336560564295713540499911900555519731555254963552095299398737610137157350058530261766702775446038511915876441280925652282458655445699258877791987055348889557721078688159864076533227266727391080768335633681848871935767571437494678801384234094961034886864372186682643485989107484015967221389628179140778977584549206998745939639238135267888165290526658772377815181559870967324220880903169798243395847270851684494671655771293826475900189748583558031284225167614581457724404553422762531321344766074755103685125194832317096602487502480589418283144360423045275189322739358082253119817106471602699633662450573637559592507176563076838154245835683642914485272905804004559329454581468566033259162292877198047945707079893473695237554223199668302549945515793791709113701877340700804566232834919540253828522154827619951075296078132204153607801663911245067339525486521069801213166993477908408230795682350697605566612437432377187002559653086168611095779548492610057709900640306397346518839735454868976069301542751912627278247122861425581148348516849486097473503929071815845332529156114222704769864413989431162395857652896121294209418635618673783648997159121410552155294206426998019150089413637804148373511511243779055866476253105415481351474131251245117854526500608320995587483147290078116132319918042928870340070700155199758897564435602590509812213823955286109684797181452364539903638160361579896997823539971008992684200200766019038786513608262484978844496427140538208787109013089165155617916704619038163122791417568497197636371541254689983322206646307695412760010460413213750125956036992271329705112028497524927246808116293630283374390410220041719263554999331620580071300030727291825941796080735589806670212157838916632959393637219201136700439245949184397397355536991461918504289165498758724848040285394671867611791689419923096882970354011454554684627229635421637769155662146469853555597726518608066440029567798094341959641143948444792759649531927372062276007151774041368036057261260226791044905833629242895599792025240586867075009646697277040839847872717184644267572353772222595503539937264230535391075979996130666911282947918738484141845026456226578468301757215444873711404853656809950335179935116731408282196356611958984834272782944357242815560647010055585276070752523139996123374883860590934778463468900309952035301031988818502070269755751432150290587823119146585141172091792712813877510759325243616354354634788631816763265400154597197770732893038361651156585677372721666702044119728572133107050711622506985633471692629613873524035732866280478076263216083484401996539723817930324205333318601407129469339159678683953382310745525411920313282333475093617506452330379191292297293516124460967782690585513927774595908859449923597471287521765285572507352688619410194613030554700092065390698114616365928928125904873762641035777263226891642914796542172798301566984154720468775927032925519490349761876118031484085967910797028660350687890851913503418585454188057032371209406948679970339474142187392170417400367632370312297184369996689160935376172701152272252376475219382931637193123434652258068303260694893669477362939088195634760327715069818562305556886409028664249677159985498210869690809793298681338802063862117421030496842027783296213189628427192767177308580575934612919084514430477771547693956905707287993553206217338692675407824717104259442016242027570178042360017397042011519586041489546692406629222936841920604201752453589018988539165519154373643201158023986867211612330413334520146165841301159362347728165447469866779343409872308611674969147885436549961762155401882961449578505082464892108490834204278451184601751631021296470371800703026691882527590285890739028666778347951062543924895547903247161105000251448365391879898268027871064504408655794117653489905238170202475359465041519067067557583613708432020326265761854711233426842348551751578537928848297125257914754799418145528850068500726802847151878972423983832650484221954088975625564657766613990051327241271117907307698810103349998382915961061522550286426148623758452679450106441648308736906977027920523212374319196599227915948363319764227580543683091334587040414146318019901439375952801563843684992519977043414197151770716004137761936585778089044278449985303484607870521902023813994719141991546003280888470794461251271577673390642076496375619348220636397722315609903407181330604816515048902155762754188333483524908194701113654266154417613812452850115716477259273309664863023751461346942805596018356754611640276115971065545093187419477185600193187506254880282867741586546032704604139083547938453336540605058708816924028469104219964942502910016991431454711587819212475411849373129022437231330120581324429126621928840783867410879274451877491107442876370566684306249797230213521916838690161994977233214071789202952959470903188579772725111367049324301073783928534361280778165591508993083754842856081093312964403153003694459650260123561523342119947534289119300979825849545624933825750470406516955170864820090486679574750038540884852199001651051077376457460025698682028941104671249984366670977689434865276860664612394070517848995422348381983773575395300663957845374455824395084071202531345868561118957650467481441690973954092035452307167155489941136871666964121097472662790113314084833214239224681064625352105891200873023134800676372709462050202410280224326565146339005550632548922881512519492996338930943005380392561787573371699922161699537774994777370234569847919548651365169217368967599143309032314738828430716518861438868797189900201743124319474980372922773334753718370492740187953516746313340198901774611330930108253455288726609762059030956314701974978414233150386501167967020329444873490378469509675093003540889334114973826573446604561219723656134622953003434856838108298896905900898635334365125316726546725560247897862024350835191683623420641905739187767710478422825049518852677359252875473389324947883221164736728843747665784039951503517107710812768208237650445285872957123774979154765303394250009983764054879776274292513867707459703917507397937076809204072759401139680910449878860709744365754807642851250118698136412286305376331065297690767159337682624081000322336559827781447949993088936467292224677479865173814124889111027390212472178869218289691817922634164243440726752868438182404318759583721806199700436138567531586001370786484738989613102611410852100048723582720013813949567677446107709229804201978624808898185121743177923615679494979147892112292255853176824216849851156291460821136394051286005250133582601888871985095048715219583193926603573327050179230785218418279346062231001039593997494700143356546725386543580915739715985500822445278078106547133499581625982844050637336170659008028384094911167696427245751785719629927257446007187677683739022214861310701893888735531851088222510657842570487736573330971321218118531414532796678676732570886974186867207972226934498540762264529431432279112024368255663654985156019780300356454097319048170143086961480250875186628556097237755479706992934178403594320712881074897138411796246753971671786467569445350819135604828858953579048159572209399402940840129018852969858297702737553620833929990636050341196241960910904677767676224620287495737774041695075967158888477704621631237190433140592366341034732903235429612047105927989421572252897588324392872232636145187853661071079001422438214226239242641405403729323036266541851042456066951511469392576069580035319338128728111535048431310861386128173597467511006577813501104833325540978689151630284187487769565121574895048591107538839488291884957636271791938074007063636316349770136801804292187511046265839151791635412229845428248275318937448952940308399766029180739565201310208895144432574421441414358270460989515984801033095495661247111925813900047049480175260181893132695846796300547902189897738634250840750100348840599287190062939494002040233036568106977552092469476532062487773590534414053863503088780699463787183238013279705226624294863408269316413970521402827290316764483848743115861370555708421224823038998527642857290300977838590825301066135342731176627163699026061107003575715538874849242377786041205919205006041173161455177181701368258856475100574626026290914166828182573168688666699301648900639387530263831050820887455264708548841554142481274901828330074208486107166817810200872370391256213204572823451764127538054876887239011421189752738163407374374996680809547616054806236713528752324859001425157719650968478313925769546749507309926813305744165479212647165403451083707444613131857386540202717621529127062771352779310886379342020922701039059653961659731310059226248241687278168927524802895671704101083179996315006018349264810093998404714538762468742941237198639590728439783211514862219743119313404871017983619541044595341231965895974620374319990711427750548378271553290039732081616887300354072431968132380603351018398109296237291606433776030425146266713350141248242369939308176469468495989245845242071147710224393800725079514978149092915581618133902626432463676561156742258397730435709047504032795818445984724538481880475099740120071556400425233960683758363680085089049099750785087277221849822043567088550728634677318342241126430227672157767786508408812622589717843468922464296875321274055243503616255909776089568789673203099324777983046161675913038262977265960623804950119208899432827893852185904929886209176514568433513228072725946114461718063329473433970034322121761914844941923010531457879262016669600822934060347049378958329041948664803391272164829068849575671320452170093144091169698925269237784753747576185853896296418252533084088229797661014825757114349818571775900332430186055757015802681392097751457260693904172281347998439796804070478002106383479655973851688943862832050688224777016334555376302167005871934385746113079431845517921197132762154243087340036506014690282709392071580747531845581351882849047687200216991163308860649886215519578110791711390327820688140532311685844745661147064436799118084066382259906552173567719775750284492761181352376667236164529459209088053007845628233741481213108438098479623902936734325584946078481724293849807564653193482467631315320576473988419048977283555159859192454363368009764500418684894598565967155256515320753383739192675228477705082765927249422234544160432403873200121425964374021989597190119382054769669641599223404891374403435858328411207131250982941601872622772440743204891807550050941556535956956876163165311254584178159006355205021189458460918449358596224537427200728948702575726467389879984017778468580962932507543420203909654849329553514130758100872491601629857270948882336988829277192748312855071628314282078660374123854715640560649440761531014135651470106076467460736513535856933134043806897124457931606526439154995892473450196362009612393940505852825609424240116537203636945310492862907542918844584800219200144559106692570754434533164884576279108272060012112576309153310951186444255467773707583480184198383279898730983923812073575365977345558682049259655574656366319317646251312222141728476051014551948925904385421428147488404884957531884336767011214712463534588220420753546337707672169426217533512700154130551406504957179903478411124298232248630842499842779980585091118192790196125412237819360519099644752539389031809043186174847863907681843315069876189564415210409022250326394093286675027278060331673812775580910025153675668453640956263875411712905342620812682022484072663872759629994818607096306951248194560612113925519150194186058430785342664742301181674895773424700157810889465832917540481146722778168464806452519717050925494386602603180788675103272552248963928252340858264133800765404379100901177194537911668514823039290840100186216466588256163738324210582020278454276980423687713793440524529250280390000128998556627109124630838443977726467868001683174232777556903112643710024458841424123929022573021351201361396125594135468135940350553264282242046232193847035145212723186540600614896361049289265846986798950191425055728045122414161781050471765925427693849968996613807348190618685313976862762584202153155687162987000369643956570250825431556890087543729364024193547518665985091408793610213013502706877274812762495918829974460130471070568771579802020671531324626763348646606555729854159758628109191747598800455528047136732066641189199724656097161305003363135868629309465063214815793142267068429841311801588151478772499630837877543388933399722625458461247374810652736512015716483506860809698331508980297979372148267709229596381201622297027396536380247741636030907306132913224704429024396549170055910866175109051391424995683320772963133253642797478151737823522649083789779202205574160789945743294177822240305316858784244951242874936138041422093054071281167005819814805271927517940484102903413373781535778936344128187323741822573512384814148407140099021949079620904323234913146911555692026562986471475579162497318909092169888757090655828486657955586263477128570908906346999768610501620074045893063207083564493710960880736735144107633051335281515967441296757999094228251642336789888805555235085932321112985857250093989716393623918048186477189304327964451931615246252959244074340280037555522075768729177520241819792928202717094051277247590566953129729865630152707432293431493227022109152587380728506421755512744980998701891049258897475407462667799064603183214243164031850912222547877553752494792662494835581689861160867634926665697848097573465806805696196786662436848616186078507184171548438587005536764136494399007407381838245171138534987299356282897482108389151932652228913559787125495074374817831592179259064552800824012184469227676818830127374979566217261849840756703620309056888670689834970359684397055496999558227342772873654501598282933696390296703017999332579058271067150229191379561262498934252420613190725955234007629630679957601420152321370908203445042634874416600532565032579479981156603911197316659345296251992558428953180321546373146785236807404135614111110845389738269436583783316538464165379012361528769278046385765192170181030288220706913685432551368948149900366021210208060603780718377186729261477309928492823412851194682925062444289850857476629958946957213089036894173424931796811844010052657097374899839739106808915773205488168969932951998617651768027995879438638827696332141710995100031794223609115397477245815626663078918833670137300576046634194305733405151311725371600013918227326475811412553385935970921444616536123214173279837521029558506320554937484046401476651878658859292054736437762300500176580707336418247803611994149106822740618578839439131128974910888342631248300444886317262151089220686721061605105613934968132360797956434967772760727868063919637283761855664760198539064339181943586592436232870593634114684303622303615922038110429923023435742973878280704798968558366687074080183660180262987779025368485697456353391651327338814103385821157130907735624740067106113600863392863371912074424109026608039409520012559512333928221663790140488577189941829698284455144908396634791149306275489137598841746598664014889843594792896437591340749400531644404573380903853244500868349205006379208486831469561688721513844437387191903887781453271006007705612379892894221353782214768909546517787399427207309527350015715992878081474516977853674915833521576578594858415242935067379946748825078685381964687242458782976110658730725469234649880499060891388291412786075780961874924002255051635607510575285074175053756243118000392087782517438875392212640667343395928975504630893434162980029527133076549669448914659434239085601939231795549558034685014655246066903786197086891890727285353128405334169685686331055177953219055523310744311409552054886189911205349894070435321450363548844205516892836669226626239232214374813993564258974255639045701970610825532463842885668712514184906785090428192407179127524815109220020027267958587465346863622998995663203862223047101764766445539333842624294040417728505365613494846084810810812189508982894645440018303513592014999013444549844796711168030689391503658190411835070229265638011234352743426937716781588408256641762690248570583657590826846650172193858696441867172239861183085871597843315072997135971289728265299209754977906889967357457218965036601396057017998552507005580561053350920832274595075269875333075895707118308966538875537607978117681079133711040633255919775827313175760971828782909211029445136860731485416879640998428160873361022771891054698871453433136920901405620678663275400616390383020249299454556946531454220470537606093213211733352273955729021909589734955906563294928066241446564703824900795825324732455164196460301298632176742025525109917845464132294355112512428244521549929360383690091941670692214160126298076707570563060489031563054650990850153582370789744444275355040307959298112626068443453166781030670857129065246344596511099641753341683074534182562019752723466721518910887769192618037015131095497060132725819183663563776735199855090033972490020798482651148201525562393657008079555181134323337586480696311872532715392689741846780043094041762888765193377720069843408377044392991539189037663045356487706420688109836358654028886419233976945766787575827767424784484901635126136987800690235644207915065126563765320451478539678838711368692737228259075564798956576113846090002877311485302996452370692080981026982327905471093474030437105994396084787276880767463510740438494090958908006254519448535543104222476412426176257157651782556521777315865959985615944403592968988704471807027139950866277989933291466347370366036512753869605302995407242774746580566071154935293275201027321198787309230315916942026712191054028275812258209577353037961870713059258590594733398742832746662891516482322691863560730180492501293468388868534051219520274073518037045728903254940105206208209641405241081460399766131149357651107061681611601005660539097461118632933462394681568510923726793490701182950179388789593738131660838621891918895958619699979640523281316870267584249646751524587258878134152453378413721844109656117183946878185498394513604774651754498450199057525874581223763696451844711000734241193821082050991170438845535784242556003587317144835773180276690942083648373392039075766502549118429086264901901835290611322480651436563449002266309369585901898347383859769570568574098194842637141019331113217809473772154678639762359536023361574801706690346033922833703647622873910651364539455136150104859742364161776709913984326251844677762968704396781175537325992505957270998270062400569146837325166817053913976655647373711624484147040867636247357700565917064044732927876061112173924871934692308896550202523593325831169953337876822905915183294525890377593725129792444681923304122231581073018932522139866813015188791938235246753126666768387459131979873109272112393621739497375650310109305671216606732160472475288795831675243055039380760312972027594769815594635366702362696151059427399142548804959913928436104542213970517207037312782523647416417052991722490513553270489824758963210300174405827913228343756264758643017930476506585483967380409328119182164238665128583810382590228667392557677042138163016767238727773996909486446648077563346105113471383135919792626168147561666559176495867399177796469622213897439166628848372989900266136487725401574288707710165814821207883693058466452688635977564293341904264681330720736432369813362672110463170195436329189979575816796557604419818944242278450057453560798156327881722867544519755469782148949522787141630348445088229668118094300836486869721770058689917095857294771157301525613385902533889783526441434980504629247998233218957151857673099443699173004537170339091005438423237699257996542987684830856630024456073175405120828145885566439762586026231446472019963926353876425825150011818917787815709206893110458199838769079482598389571547092757641497528617154806215930731028980108640127904274110176129342355402394312138596778241955216879562803391554314964090548740410520974229702178631929867080038239082778009292041557786440223700085832594987029322715757763545724720653144170666508225626208737553671359761430345266012695782173043212791759702758906975642641089349254508515500924871064545789755667054746299897957099024092544970457574531206554080662750585340286386510672999207972528682813296141067164200789724232128603057234503223311398479223120135871680742923434861335648643827547355016467945001732972339813634716969039888342255805167550941192834584737842748451879608017358745133546000143874135734672592335909020277236393526710342243194690393087868127868168462178104666379184247156030818505661038110278172857174808499238047475346839627571440692470714909741747653147640089244660032080902367575059268459243619532769516842204097093461115859767570702560858560639786839852185876938331128246818383191861457356771990399964886694560344656975839010299489241801395148630230033471560402111738488783010853518531849059922109373351997181035650813115392846571056540173224418214876704895794985130422159617183530193053091439094643697610994017281302161517790811337157549836368956384169431831463702177694853996202663235537405574915626797700629452265224382773896110996398281842033849112101887683481980538401025285584731171787696202337751714614844281170203082843838831210953398408622386313105262333516987674756623245693815732007778220996372990174037776987185326627490058743862726840103531824798508276344372242829615998572771277435342988613298109299939921984002558572593772613510765984918931024506327762432980069757477926078144991709674422682146291102655473398975510787539170079996525541511611745792154861601971814963775980023772639048412863226733297781807810281724684669480034759953964165303967555401404935143363758250297234183366574450661243990661696514647108278950383992972340545229016812816502559254048163314641758593957918672850908984494157870465502891960132772603290306904768622266789995999090032769370312342360874801263427703080273927237854730732609847572933067105799479665687897697401479666619033867234553092840389732176957792989152261283130943080755296819879033287933115341677932633075871840328648901348025606105558457842696055033733943395527022970580759970438529786340450954969527552256600884604326644384313746147433483089872630511719150599324798597689383193167852745168353876644271661281051643955904114969533918989462810306586276122644797874628303967139026006107361741142911015055709337856682488527463685498585023114154536042266599426631878949117003292439940165705960189405043733675638657269915586175454915905820220435381485053320174180707957639713527316948892888691252523871696348221143484087034285469751165311868983173906550006680272945640785647242093845860530942596906860655220611260070993887491431516618202732300583988059843949426759635055126425713540177288213446830669298755187199568683147194307256309353901800042279804117849225238210143328172340493327557011121544176315851769442401913499794215740997482502521313826937605027219677577248009085705700617857857535933378190414571457291738640846240212163746054223548413816587249469157532387992618297829358675795871928396631642304605903060801094896600973171576161519547954938626258497625638403895246393897148061546698943278151686315221986286020755942320927524049838699890194956840216153793904834861746453733327253846074372788609539366442030474406167711425327558616699628749339376314748982987552424293890175100854291762396827633962920764261240017449329922986163065076266176605141221455916918193303980812112049006862811806130929021979447631561770399001942561561274406218761040351151540013048065304134892367767041075359231843393842452771316570275303687850592428210740888842623125362429913502911478799505820995669636295103287645062475232760090777807407714926157734429389209438913904612045162465292204193796922514291745726960145490983814839188393681398879075639418177478585063345629898725966415386129958527006128371848458216282613209818979363489984585453034748323129852392112723462366654909894479512608078002043309920350031542819631308060509518361840782480256145695228182524097326814393373701657051125328628200307058935029260346550235086322621066483817185025761216721738355505658657877274041446189385563306820002674778146082971590244978135988927061809884745006796596474996235578649063470273404772913459924449053618672182921806767994902209442589295182808596130823243271629926512982484044160475347320325703367218819345007372845442572513131913357996083005745432709344045163358521668591048415724875828817859053350342751989465029590552075031794194054846844158498871977214066698506884310549920144006851616168061938747475422310800581468874143684362414077321106944396844972497733930659488923701686700146137450196221101815837917831019842037962800687712394381664196275094413052277093093631454419743432073205773778806031618420726231098638296210456129712907810305681741270527997525121731470086938009918370680244965284214623909727209611616989633410891959116288666601591623213252402112629178207067527248012822356861611288773894490841496699953508506265330802861092217654769041318667527109295778672391444981737237317035545244092904058893519465470991924933307711558519905280272067335326931798155918765809561260722187567886970728609006085159592429174107146210379977937727631253245556921388618912547855583069108328651775079171655626995339145011666011656822998259598451523563731617752146458361383395712770892446006480662830946422288570287408008215477385347308428348255238181818679887132438566000551804099800604779362512289299194492121366736253467563002044880814527310380219612411858919941229459923758784999681906888910700272202195990330208584887601470147561376627009416751952831842494719282019924253938769459411671428297806271740770295889027607345427956602018323172164145039265811407999443089223305623281743134736435653969195256655857690469385912776061112109615598857107019283423502110334881420461139118282265983209610536811442071335998348019003617176978392062003730580612995619012691172372435692062346857039958898513786021516789060898090794502065541913361617717088488012163877107313291656132565347009470165001796794468557434738029832127292771625208475286310853766187289671158396373412454978943475194541777511293375121810336006657089825363013520519511605953329967737995127895898006410967556326929959307518472648552677958649034738291831378375948519068608427967655819569524476523077512452670366452392863115881886248596888160060552518729218963854436239673692862719337975829716420636813783411164166249774861015853642908218093887092450337217455736998920278330938778628070176316994514211004250872807990378834951802989978902976071423629271721319924415971467328689709027615932475991186841516464031011447473493776354475190813400913945537634160705473925408744915884215515507958409584167868597418898708319668448601871999974227732433487484392617956828633203176044870786062382530679373950731911429956796478112474576839628288079383015028831195137713120124009949189481943068294316187229520713177696961419835012533916105020575934052673461681527494748770070996793966463380163194499791523071512975560363150952578868867795804435304020763798733946893203934999489787678539335411771337729941509466734776407005310661441213454699134792371664207205403984352955649490650013195692034940832953613660245006061612902587068646124514876043834652093621162530470348148549781003407757573647044544022389942489599225435014587154191518758483700819112795710379919009834751929813717417495864396931411091620675576902967518410028710516427502294343434002649875393658986050883418358577309610242590125621355709862865640523285410957177180490319586221816875984302532518683270589272276867890141368694631810962999705067675466775681961434570037784539452771030718146271561079708734888475737638634428293733716861324807007846530311759190274332047773624225903539235757174418283967556742357287094518143806259960931518678872103361763896061088564747020638200130979035356054516337845753779663322756764209063825331983352589710818806378701781443759648832985325060291310754332083346261208121066794478599834983145625566370319131655035081709592563026407286326384468604833456642226691659050864427316525253430454505997299910605880541241531533560723861950147467863618652413641162614585151303679877252087063956200910131706610545327478492592322280366945636242104982324494048805276750627253933588979381586473732750823412826958582591046353321048549476737593667314876261902988540951642121326047937682269289947390821666719770650024635277568735082538802615089304120925849581518972926233250712706506737529931161273771968798230119473302461751002177537595098546379449596074780180382736700560397841028663109805430131390890587497611360147767527862359554165508953384692532313421045071359605361007058472794137857478811077266922045740416241622396037578039313042742489376755616995960753551455755433357557087280592217647823257160433638901962317471207958566065610510101832250125863774453225088490453867190049911958949640723464410254491560488400273868119783749750457435153364978993188486319436671674547767263482730487021380949355130205862461637295745426136649789786337367544224144193307083811643813248937906293923865944805919051702327674201480857657589369833018720360835321697286322822471135913859832669293885150130445513299331278970020393390420488583630974777819089877816025622026263202347340658820375912098667991314325585349750442565152505232461414675120130290095791365033106569303581318131216692374557192865485372065861204292113257660071090057125972311398863790056891672795894876155737669710968532631339635812686055479165409086957990164652322540917489301617685020919805605798432146043944221505303181829954622350989303710248067911209758440732425973976907585748787205433633947691724575448936431749228268344944883371353910348819746360577209073356473944138695738406260231794071522700010935422107302828839567837613688752598206962668075049387495057284777381209560040308035843408361586311369733488172069195647835411489015008964288503590388677315759596986461129128634930575440596517603261614938100089137459127672697988383967345889897013454046384047314234052412561261253883615595078994533646663379747235996969329905307679061056527497491874212879066626116448108596960610633076383918041865790703983633578289649896003741264689683209020152804922815898437060689208727282573843045088372832867313378567725136194956245283929663499545071282081484122533979046905056906154870741416225929842237923085413412589836787622360568459211163762777743588479055966155207803826287015292276806394441728441092125118898987248363526424119094297676542622859176282831325596832378286995762351937134193285260644115814152764076156554366899328866034788389597524947910769276999375510868306410048085749491319406979538852956554551717206928051233062729091584613721052929074427228660525591923323403129874161352350782428555200789289188787828868822055492800444011996551300551795061141037376830460464427048668910378244186826325763041475675316539539755758136749280705558359505304786216133432366267757377647777386309326620462088241490424999939803131989491023723817105867344199918278706985085010120502150428970348205933772918103500227900099792030023229904691085409157285845510191813583024268129113964128811095723687480162349955561426381994763902536130937528249505938825835499092449793123342475065215430336841440911893960779675080419023425885278704275851264435717594189618396204861539004529520943881555290122751954679721154193940146456815217330911751449335557204520297612494334666907739906738696063186557198283862511445261891285646041725652909582099434003543828947372965725095985787872110874712257696661127376443271993769740178148091974842982280979068320038678967649307261510416571624015077102698164891432720125043645794208968150399346778294106652861817274527639430277024483907973985219052524725571693614424795551034980711090381863872007629176465810486724352775625033559348200849329934133816544766804179477513067846276156394813638753282124393604734897327154584008529095569435703774345582342349677109405374962617878218181966701257839860444505638407285629704760389163643417557063007299378377958503409079301821473991743269295107115865878115905463890716202585543669734985575568103832519113913515228338606011956118361611207918406888893186677772386221043668441108432229363515667785541346745635812025721701277858554333088537729577744423290306474427520977963781499106638078252785600841214660890437379313634790657232508686120867348792312619231095808409988808131924923354703775792860945294319166263012896390289627157303119135065985013987683423031536134719651008987310811067921581482464713651863118836287274272771097706119061520061486469351627121801712023336716587228925961791420389207342117114363438205100780869699653564882459036272795221079585335488469050845795523800676431179720310454828257149815833078590844912224665537225341556053181576083205660560439913035227147118497257227352215282440305458261961831622694904210612555795317755974061937147010538134745307096766582155547396422575025995153373465896142351786258171599332280329746224300175776787767944446016950324359954679478788015027514547720356921772084533371504420510063070000565297248186569702877332648076118654675410577368792124292941561995177289326722952573760072856965926003789461525752005752328199659090060568742366204176696957656743525519435110419727178198538605138125007082555003684335532350051705544875072474635126054120809951174120328756551226072810015770527096525176432183745893724999130893321547649589874919084096601257226795395298446204899160793603122035548780536542703724161575756584957869475297659568923064044982262180445199146707108160454517069684715062120680390888980714610378084606174351317912714336938525315362894217618997796355688670924228469708844397994865164008012429727046681610923963812748380459674668347581741694543882036670430871534656733333463257412743344575658351658805903581758262453874489647513946658549998526891216510600773901679498178090529143685407570119479441983111827540865528723802172058736086748906722845936594363182978178506763400460902840716181316053275282116340699888235728849124933393327863642868845199757342360836634761919001432339274615878784192199940704171746033608818897282696706207600406051759469706253537818608869075617180868929156504595838815261066531154735583955539838786266033712606061992874587492585601493990694432775137203345124341151097369921862473884566226672374898316988595869608469907510622080682641899970816381301445663790187598828079419860406717280130307277076795376595812945788876585296070108435539794838959839874753814015410795871688157353165160569997551315329259936126247706645189382567242487981504850055959955434662744661537527440688015011225730957037863275470889418791974849478830047458580507710767377179890288933526030729029982948163854699780973516804164302851858955962166412611589292188818002272398656206388438591882704226678109129774503634664780639734213171679095971762252518204035682870871343882416801356748908314025842406041812714809138918823285728092340388234503116858878490016738380900779413028302174179405588758877647000227331523439280089933596301959556589527848360457144242298932029265579051486151924838714969990424375135293867544734398480825069567245841788003019783980500995416414704198980490391460824372571201794203286334758361971134235648706428762132077883260159126713876309417216039412167829844370657501068326809162323156451891664549911982835031525222596866510920914041508852327521479680504781467322722478322800524168171076951242415160860585709096462940671317240455357264452130298881224827129927555618886445783684434141802179813086488636800214054496254474263817356633370435998712755521102688585837850519992394311875143717574388552631843582839772294289915203601553263684234107788277272696465821204638786703703482758108883604287745747429929857315835360779733404988967653533583341869038327924688844288854283770440038649006305941309856671504252814495388534425393103500473058049921695386337064355807112361175141401222482466715609754474854379198545128074477602051025327210406355776672488091238382577334788523662294480433680024830897348230913645988549255472877936702624659682039140144532521325427277888292971747929839961164183366767875799383156299471769605843183457369791762867246160357206752185421310270583417027506456815215607826063273638766441482262724344840378239132140084300637225073896644600062468364553966212259644022410079678249402859788759271794046009349020314875234349274022134208715864914579404745913599574313270639633663193164413206430704682471742299400434896581982640039153283789299814560852628156746221479433526716448263608180488699565201791020690114530533410553438055004644524974440034260775050708122469111840796526250864406774329097864838875977460256706173278848115250403445900143403273408165137552016681121235342038586479531877356666698942737201031682111300001372534605436716131081598565454244215794479425128506181111969721436044516093556845631501081974811805511256355154798114243367462330202063464390029222858543079814831125486665596935642516480572585331340013264991717077558873250706234891016973906568679082033462437535972516617353692874630874939168420386645806261389536752155494174851631068410899666795029356688207174025240375879562833158830002463207555382681564856668779020032290045308749619270404300217296314386715129331428150597333339894193886133703999941899744526049972875011566218936882580261495602986688321535965218638910520601321256033609552522454259253199416352090714842255253321914258409384231520882650134676911043197050976231226474902453747480409622663061642351801630665448603344903128095584064392495345955861606318792333595424659634293344023338646918691368475598454763933664699516051394058195110180043664051115513869520468852828450876857746512196494143636306128997308908067504032774349043784236857537385462096312126879948589083630554190195707561724984417341354612202166399143666229012506621924297422157698184159071707723479349355945560174772265394471554402549343983062948781552198632915509147237657301934357202879059023137469600166862665377189732369924529547876452206565108224356077013054543900797645180268934034052683691486468493544787766501953394280794004242464866456914765336528865244901727968344545071323123298318004424299455940662725672363988282549867128792503677159273502373637209905755523239087758660043421293761957473747069438663212393467315617479754120278896629443500527996167813861520331384583450767017675618821209257001935140734643283104592676836543965376578466713702414616972877218174703467992084512497168030472276601555813762755280129227568007606569976925985777889831251862725105395475609363072520594859912917265326061758089055897548517277199749986599367642285716394112664900593692454105567039911519064866248178883462895214688225626273662312736588485516474884344489052161983890725982760527007632989561131107433115920090481849222040252171993424714004679549251011165225237681472932121555683343348439500957186196089785926377577258317738752869766465288333463311975255242652306187584712161482395375631692549831606952067851489912477032600558558487717934755133485903549701695257258384888954131060164600848929615022281540586774042713894421338368871175742654907908771207661399642974321816298239582628761960165216247766475102131351923555756095985990700458743868219156564582773180734818003946384102312721957200104958014928415002871163661890711375095730048844486108157000425943954135497344669636451205476312042757593020752615306665755810748020084275339561798124965034429852138348893321044470814555933372367780560926292952613461565240852737732274644826637814971781825849562855206974017198922760261233706776146718583887839038220903548044354473340389676488792605882197943495253313644520883014675266852911107451002203705112667619972770884548651832116917722056461815238829373909542181658185317229487706062919023851132347407112334177200453151513932895341351332932553857042097753798080442169549881506341467577230893087381616839197050706663230426657462527051515083780137572465003386483427554204005113353087003391299887512006580606676359196748860470492479833601234219409436973244592666892819788564734093203394551782308835760061721655244437565207344355329233596720413572316944542194973773351233821838775246471885536335781628454970380393463816383637287250488849886440522750714966323740513859014750738248262859331916296555778097967828976168984998589864989576629348161808699894796092078238824746781525388731516828942012236331832799965650690318846558463025967481105406313705520503962640309580105098001207044016282570256305074733635980448560909043663358267298253849281641975662095480533732381005564245872517694683720488086297573667980190028065106628297003601200257342065080974997654830587084680761646391823094105303623330044784764511210723459727265707119294302182852786352473115843988114985976756974173135830844041811091963062665487133298994330809829652767599929935050567096730249190527243347619817936292363653308808311851202395552119967628076863485978674308541736383869650807519161744668607258813216231400034264005384740849851849139289626875625126363016501863883357503052035528049048103631360705104748557877109582647959355443277112583034532667041238558259646094259257350879652082983184159617987748216384919873327531392652474552122752372837845830253881445689984008740434546297113074445898959697923607887493946693733999045680387630536596641497768111327784084936029103225679626650694542422970962377013681307662838352795001320966657673331288601166237011761044490083404588942829194669566168359101547389570602823295554798707360129871827944950432978427774879769890154531041288144659213324501661116653318315550495828146476717210124759022586886624952633067294812331582410232499989431510413179415031977997220780547469763701772071320520320723761802531592611391349655653852014495268658261539896013836253761995931709854526396129132943280228170610530897120095585058716967504915426731835179358569103563202414251251623099681393466118427689222403710571053654428321388047198505706231132766242136995854408832137585991416906251456175388990769988391319040246105606836737873567238657007074804314200834618514874827010084125625515971176092833190519338420294048864388985765713536622659566346644108421472077876975825581085603958964918061308738511647872972440340472403050269379929246919310050422681685172897246662059308157615760606185593395330965041520271330417154485682265839895526127852952940033760056719337958971341670275784787360830786946037001456930398032923237704072639855856386500012081579878897512029434351237861479642130276526016233796870733632391270413945785356694683817366336120690874160562612661093012371536279182431370558998393776405377444111966184283412466973315793306661441764032170086913933243792799464628458340776477721150045517123499783772734140197635819848478493819164320159627417361278346987795719541848239274308198600136736550386046272404625397709868025462866156828163813788958664580185787957920719507272721722534813336561002818819077066402261348858181808270537236158802261145613056046341061880638122756842438899367316090339748855909090363958617256405780036524780048554137234819449647981958461325277547890120275945338995676162236651638790851496722169482584519851133002811130540280030258678326393432981559706589189744246608696447828226741713512862000553417055180409261749539457782681345205658464893215514720600729261599420460921406833282733267371645634707337053622811711780355802524964265887590898079188135369922834669491480236027138473849332308624482302210681450565459362514418952460881961348182506156805037820471984604787319279599329371080956969831519211045398099376979209359484185003776765204628509495285151462693041992256879069203359834062815761964282982786826409293507726501856894386195281676414097396133686245473682245306873155761424548685978543217075726270812150361074144729314611091049291969540190879533976820952544663534349097226312355804354701879393637915546975623787068407648990306650814834410257357028314406282317538051233192424476274514885474344738729701217340467227779561747008202708461273588598198123961915454956492200389720308316998255164869811436253872378357286962653038323526964668742425597587203550930179739639229246769232704159988756285295570261743145719544633923776023675320440395320355444965519616016289918840262638714537390350764031803718379914184807059233173995550455976865431195151630092170665139339039356707743726403133589955761243257412217486362974121050119863516808885154766771285388313758617704340830233853281824893660968091104991736917915338144289495702753799485332664694888771620741590983982785406808101986460195711363019270370491970625625704278414254444101714934679047850899481364170615628348720041961458975938060814286251344890072280327349972045026704906015977064183070653888668573011119400733980442848147284413296643512389179094169597592128253047813567730568680286281803624884543078436484549389438459551638945536000411976673856902684507475924087934470806694552846317374940883459173516781515058519144853935446985583803137597595174225462710344792193548244434380848645869779921756252465553178137892092417125173274366804680375571557140910122398801332706617991823114529452817234902755290908801638234502071621099577823233790296604485006379098844778410164925618979138271910426559492298252112816265817312530655916339337634650098499672093043852100686724444330369799596850547013678487695948840089865976049532232316896224128399640423296980599908362196546378474897317064855199576390886952102866048479737721514593761081063784151595472916803731891510012786307573962155784687732151315414834465560380143518320271983532152806360421674267391984831538349530274708196852298158793180641704800059411795244467582023633155356484400849407479485690965543655413605287470120117962003297873964375457034592454474008093938332159454494742142509913415772430147720089465549349945925098052859424603392581782301313597494791782962966914719025300656633971033959012940817737816357648450936069184322959905776016698542377713123635806957269326805965763009842380550674270495495914817855324914090949001972551163336166882091554113408664277023614168213722780173392739989597958321903290151281119311314303783854175566876043352621284118410906947536687345408540526621868885185122763508283670245019143677534288015485572051411620304106759916611773141074919495924508525118432898511792765152321448106452050467934510669747185769971726877451989925470063733280471217727916963664954757052840953065938599969308444931576423584070083184399068000363528064278621162097162640536906030562024936656071414656689095227663357468476804472975115822266440947960900901310429495533053027059523944734842733900401063506829244262140485140269804799270904562796546924617230282253710213473740181948943980614566984841557146978462690906521600259046574843645960697935073420066002703161810418129975414455823688096885391953620096404277485974602957967901392814802076866293299458561380034902769766064378391118814607468664224410446038664486100681541336975445414859682777352337374801035116452838264742772063094796027047611283798611777747184347927687827369077205927885446102159156681839827046645760973183348130997257936360551801466940180105751720074472024389731640798980526552829430802526574127436854188858299422049692281655603086116345116599905977750471822248438586549841282095230346212563111647970438586392242609480808919091940378437609914140845703553598716898393704241762725301695239140201934020486653913373728311553957019774880252247942775035173716067765201681117130921130108117706240507764559142532688121211095458221132465705800589856159519704448228776779616705888701917878652497280861281517768559697935396133422308021631449733521478308335359205565573919968538868154097153331621057757817441461969788307771752436996839522152505273276197660418277128987250189897118973572131772886725801926101901029519754275121255791065485476429629747094359291789345707951164878876848511942525293565512626618188448903220978714500981389187096410019955085460838302721841072528223872043445504757624240229410739103078589542606379267497548394700735263659746109807284369740391625826570992588297802198661696705944538397626602776552965207344070500082740503701431591156361717169584662167405597076946782007319947845756222193529325821112615746005878399720496283499268937683864455921229304114919921262491874263032824355734794943311128841567815597752499448797979662881119305404796024079813771358792189579309421774103684300181172907714056020400556789277455821927660822971616949213203781728817161550408656416132343615102140844284503153289609466628331996672584440025583305109189710132617915448566930264125110820537291423532568279865360868868909065223159500879998680958280376607542217909246637896618287479661954368264942855246990181253433678396619269970029709882989948030891140184820554875429209637156914435190172246603313557017548122117150803108147590872228360889572179356400760332566594787339020220704514978962951550582495722347564241369807911620620828991716807478271623667676125526912033225618943416985972158455771442469382928487680669826244208584080637155869701864044124423942558279606403987990062764383933543171605824079300926178997725244117364119434733365869257734834408790648640420846962500063405937479028064806363484622548854737082394396499474122882873904332792875870997290318684381822260503645767639929700648383596562926085633579129929849190044092545638846146422219919814041217493614804968337031786907050176007406813872769579976827508511809965177710362080569688252406551449856561389884310340154143532548196673296928141151541962100180096272123945334603552158918877775036612100096223167745148451086712799353243199889782369660823050709676025234249333567431907767732840985978212730841118933277038625346935653831054403743747840773840593302283546795800529784825177885543940897648458097619916793716915304339221047159031084234135234430565008744946675839663234272231062913019797847089560866557866104669321857071465950491931583447320467085907621309564671165690348840849997945652680535237835052464381406573046727363639017763170895217635522682334711841646667939842818299948887353728342249841217754882983837319702941451216986781553926826370711379804401586972948358233514590628939781656361296180500524856274873577283474428605038762078330464848203288624314179126263826339169253678982704827897376870766657803854686112737824171153913830238934893178771479024890929649995597954930104807025297221577923571068663948783747288413351438923889151929182666072705160161478606151877923873955423742393703471785513825457529992769431464622865257226281817349079026814301178121640741469770716912061901273584504798925226503955371508735845033891960542325344668568664209283869654017729327899410344628606393181651386218117021732772281752712912681346056591644425471260059216107664440418653911567517225248650025629680308929113336856695340477946981950850507665288295883899713300307736781206312841358968767069826973445303898466959476860667584422439646664861951784112010703556494509006940581352232194114744567214383865554081280686544789603010073490759949532358495559691592656490500928281892097200531596390038216525676982360060518487039074492372683730517486946069033085121833345422120690925115780738358966544517002105211680100611958090830923673395631812210958369811636225819067108979865824998430078387482936506632409751952663727114589134852276890257054137502604728441088676759328268608940894425658422879543289527875941473813811521731878545838409408672215647650301660177940631426234288583827655458149312962556046847651143812821324545359676188412649706042690509852474566285652682126675305824321137100970221837056369547060041086679987854654660264206819589625286378890224774423289710361005832049843288774856559886222874375424871891402106184878875425839565264086605208579700568907459676604400840333944301836970139040571902139886229856460792072827715045787397957045480984047890163042193858047030636800130499877953976208014941228522912740695902540143046095276617912694099698673019066106317005498545581089491557672587775290970779600587031890456960820581144725929415721822264789274157026932097430859586519733389841247354743888238981672483133733209852306107449772306798076022388179276714968611753949944031491401035858712806927858878842405972210904606740054706451806144312046431534282639365505407490287256514322273820449166961630743873369896691593502689803833603740388775723345121643351385822729247016337805838783937522659200439863451387242027064535078360750532952646138775492583419838942693189425707044159960446711447058340002995737199946070982962670439164124159718543026572893134681083678173909420424336910196867295156280057775635400527050149223476725239860445086201894154000278187472988349278895627002264042041007541944114905265393488499934512527435753758438791903212083318702064492616080796869709037572897620193826874776746555569663185762558802043045842898413413577560947529963713021309042715502839484672300615003473708228117792833192306015251910461898611490753282829021602722833908342585165232796974883116601331074862090179322431542464911338084360646624412820081114513750939025824206545052630731242370012089379860775262572456570721787628500785333078208464876832533828220004976941673103730954116410246602175434087768548182369081172945168684159255794642686749999748486475279769738412837536266496799839687276329516822044732101879716089777208447684228825939017447530316383554453342338282221252229903784905243761663478309569983443393179966275520993629946883174551256681802449545014206551055474529167168049992399705551973491516130320502397875786311181617073290346535715624816289537584652175433724387644565695689093154589145575770635263319131651132965412648661208944979130130991895304656470651162993350963296562246371158589055198092890088395592615054641146041515659365042878923208654737324023911836216906409062310864064910792838242058936865782134870310835296113860709816717851048360043987721445666726429886770827880691019806361035822384193801103047201752648514615771495637667635428824285235878945364250980713063359064476638125250268244026070117282184362638409718982214577476104823379747911265955804947508836696136196423287406237996135217419095537600163848093220337163764058692489587057458657885927387497717521270896642032075479444155292562225576482600528010266665333826696488595594300309259941579536987368196212144941483290645873398156207482479937283631389434116262824806508238074578186773775174190251039836448657438653970404719347905116786901963703129721213660136659111468101994614031782669946682554014575319683186645971046371838183741254996018021546601851317280222612576967023566681043784401478294475611370448438606998929300019506376521495743512822690446043287178787850114540749960593648895003598149753889374941943161548941490499742078967652479993751482759610649108987044271815554073894207645115091991663062615373578889440549977321166624073124689016784940135385942919960774609958470522972508610227745684789602465408185451643289132900826171158798961835797344260965761405181424295795963174618039911090290014695761810815129958545936766668447611604865971306527256818513537155880504428607763344008012614234218163846010270633134015603494402524707587400900967855491172418123456089680632997091492109427594002874458244826128427965093134900370569439966752372734863799738511657618703933812799065652234919912496122129862310678264492961528655398862513418845002537217500677532389864492837992142606815368293000977954986841785918247974696720409133589509247856048585334194071259499945912414624073592606030199013779456158443874371131970261341026104365803906877501329266297169567272999701960830698704068639959278876184085537254787099186574759052146431342240580091382068531748032419972611464170826069817513003987967053014520299137454381790327984347529297858915407214508088743422713144429555194052807959772170947743298797586839719499833946229218494999568975045398701708608675413031213056203740525598283302919208568685775759159483272681050913623814415287399726401638509628160170881712816561925677012140604747087204608435836488478897812200671974078053479979516229539542438366174014648647344351477955040587750955516472323169909927162419435525562590716880682631060901884339157519537900652463750324711674514849496457777752246978900844651243364135524929517973102215245364366205500290726752743717134566376587564907588154623788732306082540329042998713124742890912473771027982373876671199113605716043173433794258160755714877712269544741018547031352291753978428057637204668909956999542751221872666115159312564954340056081327462050638549684864052614108039685069441757457247642331613570133106197170893981704337920531509556523508070251983124845309682711724987323255598632349902270058440720386277362986136326248277509775201117404525957090927092518767936095725067024148507818565874284459197784372343462419565768450054728415568550277588600999817735147339330044682854422127848150522848473326103612642786824941628378087264507616319270916826335103621731743892132586393552294022273916527524877519931124128368840289415183891931295684282772208346551161291855318221066334136088462973995996777071820005240863047896949607601113953411106614261275758091820092904934108855739413981126680841259302388431601041781899802510901467771385134436424267678679544549807635947737731377950534949876037960439623379275793021237852443916626721124567468072245895902149998213560297485412367263370381252630155269431433336466219575876053768574188393840949993835188614580439918180515273032310283904512350965962884037206375929891289783826761129660378055569391063434099754533912960513023867872286390243250316680475481687995981884475375009468672996551633649177970710376378187549702860415114314532490026066318355132284200333750844289027171855152458966843324452924129258365660321609777055649639297841128192432022448880476441283616779515873926939268101458092585366253895970795901035952560835581427598258371113006207100783925052327209486138470919324590175708012343139159971659405693326996181570809521908675637709553544154433986134299491261172481675357400662092409625165516703375369492831246773670966753927821255823959145827172159826647346694338804578226055335969408972825600286253828653049306607744991708574786850417105490274000399479695463533706351726065147534477060057879521551497068671285916464862442457154648016555455342022282515394531005399841665765056692931676553356753626174716066974996726739931601256038581905634437725256868291477718996243534643393619772564561237420612958538552718907130521163606375908298687008790007422701604518314224881084267016278186612578214384571333476364875670674436907146600212504993389322873874426606482962855307744766277857887853915641868939723904435888670830920667414878375436438867727840842586444939804278567457164990464155897572164613238775226473862356371176088571086933462743824889550611912861650675114112752324137273908282083351018924562321673541059075173964657045932249020316185945802310162080734661144587894043523375915598027248127029707377539564721225574645246269329188003475409426743836414268398425836609313057136830293492293577960661239545902994608517461496917674818102642482970209448597997307311812389565453007286795391417866727812123993183292716077853690588843501681239674682462371501078362318843752252170784229974660097569480880907524664979761101588687684174574622833494064236946856910242265554979163672038458122640117938191310214490237551454120175869281615751702136528601940895678150427488782177929117971506000695356451270168788321076919899021867168866244714717823689914905874853145437647689986722973514796206663194451217720380450783988694465990812051535467459110064640783855848054686129654859415868506439882361141600271866923929862845516960493697401442581927316680501142504578123360956010667699866078128304873711133783732153600107820134176294243333511746911755218970687573309319883928854823636200881664961206667849204112878355002088469427479553993544374241817860424455517839928351759683861816935166273832436869174587442948770340421969359650082829219801614027105079558082263227002271845066127852738345120202926058798835178739783134709083023247478429115407417312298647199573052893158003574614300165770653029337358665082259124613164067544430821257101443206091763694889514163983541647921354773761670623726097815965425611112549994814591310290207661382318747653085498080159219919492248500925130989911375595366528850260319179509004451701220970938733110627234443085974324362431302387900374374994499437873798095697524798219317939871626908570868499665851150215674480859346375148578041951765594043341597510548974487424437970486115125278804929479441632737380164543861341616963893894244196070405545233715066836807857084259072504719559056656523586145653602057240232919537665923306973516520762205332049943480110622323250774069343058158283884860109041041918997091857570225844311998287527586469440965437271328513450436323045893595030772448430884002050506668578891473380267708035756441851192149559946067451343023004124226165062446367734097297067102548647847943641398511926078596223975765947372471794151267642117075225472121882124155703743899203276065826722333904272290553062872379950798922410194713783854253592134308332154330247625527050648842980877352081200967134698943165066889439487746835195208172857359102520002513284855257285633593447539772707284620391528238476691944445381163904814335465105288373456389450399711052638974789400993525125778504995955571628538436272953873923874162856942512722749901831355369063253723201866107776529798878599494943672940406554546523844930705873820093342906329893251794839449408411317441600029045986139673466198132389045963734238656471078625276192999749434536355542429212314219507348619489120836477917576533898584231191115577741280613903696843627011114507459457434674621337927033576743093355412640636466207239874786138603328746169473904631078175052384977879821453429167849447102223768029209563103442705904173084870733341828013829719524302133139163354333715009580706949143191914116758401639851673181676227799483611863917045524543159276592451601015248557320712819735139953632000522061389018344184749151846463231765513644584921225694385528292614333352390118630186920761554323532767242631993433007827520341841148163560614496680331896115573902221044019321157486850289189359349860484481989825384236229065219129264697184485266050021104528701707131495100247351250341319315651719988915712977238212415313359176849046819282021106562769199263355984537426214698573635397431851968335431033931354433605221370846899129379236319360575790310239950200348655124861452623475571727561198362776885786069871818795645395016199211504696771087625550359782925441891003078710908158823176366670172698976148228935317840678197045720569659656072997448473856733380541734113609208351604539206805520173882703211824884925804948580111608852847470153574692506452061954402747226603554371494274549451452277662620677752621251970723109236652422274448818195993014353358582744933499502926937979953622973675135871203192409974872603203455590981357428381472570951436409914539324321804101246653316336417754672429993307387949185097231919240286016853896386869725060952896913560784004069888995687588937006164491050566230449604863139960077848494577084994638918663730400797637573386372409038699907550507038302249335389639974223359394275831740772706123999754489668585114822303138260127440047630382238104594442003409651743130598274175198421811038287720146821434403556119026865377960905732929849296782349476433935052762752658600223261182429825261787593426989886866197129729506155871452486146109335324975919600659766766675620134367282016663090715504262753858501900807478603855545123858915649708287265510427114784853444115908147825780638451944293280111509483358450148042601857434172651274158243048539266495393247675105661807223733173710448695256100641940746306756586159610068982051077534428251504775294958505416830579496449005381405929986923323045402193252930410766814654910579960632262230736072911770511963144796906114207229174197975002121142053688306519379489833778475455207460885532773915636800705977551132335380711778214077241682563523326131524561301219066106065275893905840471539985400854974785923073585086259077961261865638309497112989956796602589795531163709570297708530361973419201880153349708534256634604442767909596795310726762138081200457077579356834429888117573794414284800087100880854629328154916320753586302404220212022047044294856100473920083343997381969480282429965100952386959507855635500296933889793103882707080720753182173357941951060310826082111337083111531199108094797073780755241881197081710018453853761398139238174705201042446943104975494209156446782277292904063228073865067983354429392004419238571844640602420148284021206132791419761113548979933621481761506256705200135493348675631891526462232298441294338061531655403802995308651320792832352979913615259946938587530423026254962248695616335755673473722513805686465569734324682429832081063009557268769043398628382091926257072989419089451778697209690205218955280718208364589510370192707393614154272667812478284113393526159474783997053038671010025716108028334811186044281569288295477227323179552213068029352713133682235824751876962024909408216590675943749386047158313880441863119511736803985935996008106103972988643968197695614349572523613302402523921064432574116329493172629071351502033273590859857040059453741438835336104978508552816066270207272529526333911114021682043565158204382908372795586722283513749323899658641513427355511065564268503882524652900535138058675033736165798566618005509160737533169353812175167461748994134060402024792514528477019145558338020657634774904596776409479676420128730251284641460601341859361728064414009843769590767976035191556096552551253589795771743573107541808698938906393543901320986597026629825642769798818727683100380524627669094053253485881989587911263907869140412272537964931269788799785063806025709887627997389390079381679551064887148946289783851034049747602088327376475532620534168769836815517957061529934349296999896822350257345330038142647291059350609087819505593995438939334845908122731693600641809509018949686424462157043341140346118906555017960988371175390328062438584464544358522768267512072919406202847176431886002874250432372493641519327724039172683624359325769331892614347939566236438810399073316546580160679743988970925355377238637288917633321103762705526448320893675588621669553848632855978780668789969257759131652083694579299706925363076933314596335553234060942864654703059008268451982021173213247986219688444580829003618491538958103128914742316406917168661841862325957753484428126454825098400808567561800183799715657037068891237689614245387773757197501368498738333289359358614519303093663223971934108628123402366596275596607718945799004740911112004880354944711000884373976282251928762040323862920928527108950993046446959933643676491747270114675917089710983843231458135281685923072759072167091604365498922175971480788054427462616762381179320646749188821379612472254158029257568825038840706503605873424001097921862039869019134271557853683660884375352242186457089951548391833702670583737759779361296820361417542271144910821014605647089297015822641488366219498681208828639004814966362688300974224796778537338892695226680445480420245391421498524098719205019168978124586598041187659968732633713103321329941782281522506493848313540235071363821954942378881316038139626020549722044385267044234113138965098131580409966447134515496429621260408064631069479811271856806371490127425163905449735225814488303061382843991153247121758646383975677960611190954959347099858015432732277023952134774843389640145520722978133919095388795350089653859585819269089270254557457120457591605471503775809705523429094463904473594651367495905829138946152487603598909203644936531530820587348262585171959213420033407074249307694874863440092264820463429655468743095858573917551255855966404914386558180095433153573028839020196809281298266494899075215592571211639418420662701170635686875586005835882812031654168137052109480746744270874733394976380187433335869986649825076013446068620490175469985800880245420738110105127785523746279753315697554876541920154079893433664044948043328209222240036006152993353718058740839449549787743106127415802818960624580324613730652863508372114392934653901922720675397871845102360865648382274188214801512655695332057178102187949608982998872805262730066402981185696019937369616746917225495874370022968761170844273673681645907727606937911303579809604957676832130248331323698825556919625419207639355214309640047930906085427679334329894360873909179929882370508028357855650738721046880072024505118891621069488343554956156755979365202588930397815486163597378788617715927355607283628315849831187469193382826504367277421356021696448023359449055965760895228838304418850335567324442417764911611706229341113832194991794071966523432166382483479576022847113286321152490098481430089340755445716404690444680901280238031211483285553348859254292563104111352917331523493956200127193623633918477680310413198282628763989841067747581768088273388867015235451295868704080703822738037380063808215993496231134601252678189295305593545570550982350469589672617198290534647026989416362914715086104469297820220245118066130559575750719708423907972216523366205246860715178272556205732606861771325418434913961753425445715735412112271954684705279313552114728530779227864682862913444096547474156493372353566813218711248735493911849677038111070115833421136498498020446316416167327003349663417873376154743999770806335925046948090927708437608780494744241267677767001119045297930323110258338967314547208917397650942795500141639210463174360392395344426765843335511081844827478828163190362989737283246238883660977589025744875963205937288399462671786048431839342696876240391005897261091853677406563416858237556149637049691334042264047723646605124599299980300838671721808218887136537454147659439930184630865854836611319976211756381136912301025319044409423751637231546445377299094766203646943822445367463275006926469355924267067707386741679672352629479295161637511079995708778838358864661413536480641959023180318366823837165711385740933021046201060399189896158045976896525570767556964482259874444438955721257891817971835279987454917020965142793994196570139879252608550067226405745258673118403155874234050650119438407659514941957026862346039827515104194677557593585739743674256954454155247702557338155812731692276263766066564807255260257929430571809981372732505606978121208444099197526671419198358892938059983793037459628968120356184887204031433054169581388186387895602379993974421691315102396534125749334068982785862038711373613765629033077659314786234824051940790953309837409578674662126884677492603851347258262476674093980557887667889289278522503810555463143144601212280483037158142336489057822004644207449502358842446885001254993157377016789287150638892789654585669574104589793639979433798411602148224775258578412925206299250116210532458693400363672765377429807844526461801555860384009465044391481365538106037552326901750842868208040943921292762186750272038203107774735780547540290944217472183457281957032493672979086332727506265070312363285172688452908929551853897142860141286114676802627930298151726679436543283824658517259409935771028793003032131199933988163897200916680586679108008419728590191636271653027196392776287014219539353687497561226655603626947186759421666950071465272775137121384495178356659322720783391403154125422280154562286458014824987248700965203478076181899840677641067154636975068466425286307502999862880010213129819980647239902496889293674938067256792132535578587592505766583060412505463894611762861322348228957020131945729335471736816303078727022799456663388685663740096604949599789254028047714553032824462247465587378643652523569139712936299674490800348038592124394995820848692173440399649887616238884932669996381060191922092757147219063251982479335068408403556884836687675013793950137406008489609190862526452752427789000618005908459985357371086062723274061123010804471971474758654978517193789246556760932769382714922789818668201967950918853544108452501971914469783659771767630611766092767353240016563541959986674579118144998598356589889966162195946323868868798811040402226157865669280669987951057099303582489715178571427385345945727204228602698029630521098113691133087984952176705474196518208436964147182304406254532637554751128617282572924037669349272174635098610336641448722420232628252675259305522656077109842217773605682583680209355536119171253672342689112619567510486702314864452356126761190898534579686838739159880460415129085475796221760092266515453881830329158503267115641438294796277915070403757120850749529215833910165494829225286005101006654818692593841899910345146984368216014679645885333253218379732008148645299432986242425295555403867765572932173555559113388622011493534466597442690862905265274719915531527403081096520089951657920731048571832035111163409972779314076303551166574004777111684714774133102257719991072318285482296141210658158778387595845677240526476256268565391435432581552714292914197334962299619220220638176232528289740653765113528245218517660950141319386280541392397615945168475909124864276215093287967013147472609553352227551221773084666494752510733211373263708675043097526752714209949055351102981140586274422051657732800305917666145252866386834922735003942386497111430796811259295638556230232099281570150826015592462581736860827107523467476783142992095863205559113042800322412542705407309524272630974172753584196121867821056235141088120259305757771312729253127333696142107178294436113813653761013982285442660029318355444067977418781083153097243005627453013291825584365235828915307628360510601219225467898667433057243175748809284104012147292510675296548003971065871841235686590981812332034099465314289402261978410142281109891955602172690883131721792419972387575623964212067166106010484297493469144976820348726032787303754081980681076848945586914922519516973076164132176419253609244274581848914921670464234180232876248750428877753286107856094445439645110344698250928104247269787008141008076481321639225341859435333457563492752341320662779369201591170627744077564193202121847166549900348728012152825700801366317511457021349757657139953263639760623230846208298221927696283666672332675911851378442454191669252796276248147786824026110857873298799738395210806914874857491318859089563786143161646093812725874172901036736085886166217234775122044954562643343515748783533863753755043373814062413519667265567493384583810088014482990264358186501728549067295253472440123570286729612848856071561767223124952575331237725548570069092802921676143595220564388427532655093244304025807259519258723989763182297975758136823496562265057482747178106018381526121471849775734568363322221193656319283033009614644824693439280963902864191874807839395995316317182807049416997936187045960480934762034963208661667844514130388629189366085431156156564431651133722135320804824966524812641556273404709396496144615971881739514175068627102243861950143326460172932181398803109998099899563803934417413068499814659138252497988262979510832340865519792407157152890346013464889411522213390660778267621605777455290735391037143549537422564035517280504146942696869983109491967291583556319891743503357160124730813607973223981724728722010645197575330573455116922183110050329273524729783187719719307466472747541368013826440388678633270860865085134942817521020926456953654071577597693871778896669551198953243018777331700869249415974628572559527659722506344033547338843643483197870377271712626561483138591442683268442483792857366427281051165559906883853107783169036510927952390102967923095468852933323634858761789419631185829384525628482869772645755469102874714625680180453724201920928286013575667045540414324314563472695019948130835937334912486328401866429433553078415659921129529128883795840332116505079744470489641875414148121280793530298377097519771506452257658311264957887191815283444654807150911369793512880351665644146098268320412053982362636459771388030459298433767123773228512863791314964566884038366614209392647183487493601878690083214463569887012754889986840685456980959770366672786728735115395886330489541351734882383219880070350513429386960628267697738092368289688667847159412712555685937095598204496924139919781795903877405476389205195086845615992547287588975584841859617786927485581965005952732459557452113787022718384974219652768714035140043991558513867894791804994984473056133748702940981991521090665646904128299833635764065587945193550080228273591202619619731269585353998143746612160208689795266271502282822454249720318218263517060842488566871798358254887320995304066681868435153212457420851867167007605239464243304939721522815087182693433446323262044850708100136412973489365424848928343709030447166923071678492107094617257886130838527926146757832907312801559079313473091383804372794115127047317060017449155877003714185667311391403066381564389151897723345380038329777582025279160477794919633316350140409162064860871542272027369793461090272180366680098106862062467384266216390332159917913650377337373414179506917264271039684656894526214397970037830883223226680448091637317211127359997915930107897447746542305391172286265929264810458855875678761682045400531584757849604807239592814436569508944962493662495231933409174632103480758240113296158515540742121476117740937382927302397724715207339373067196364835973455142766918248996152030677905240022021766293859090018689204445405184802337059467263864364717570410996985248363080207543283741446422462104159693007296979469396120470746998627599655833853129889931461475201959263863990327061629753601599220866020973263490269608589762359576590604613684368230966948356246601748706233606915916390170951838342774728593639957179352488073166478551474599826437134691798582282783648666501806378450569818601607794751200688398523722128750320522476070927403998044571365534988528830009394496495307674322374553232463455452339204389326560483338749739989432130647129499676139731806661886328694569312819345796771757117737537079712563972522223677295760578093850772770899614796495063194829293415330027705280377992182203464887288953355346264605377696488796349285266523643050636584573015149673009494362629242746286661181256270587531867453624204410451399708191598111613753263377992300773087581763816889751826967746988753454511730867298364319925932380817463003966951163707374677906853114503814565789288882686542596015973721699393920053399592839978147938189784802855852486267013199616095720905444095520392681616781540635858826319549338028011353702437316738135280154638862908859442701511261656793552136598596070727622243550231030127141031198022426972873295122983379867918416100417650536475128633716352899228867153964706287331173323391799957763679898279112951422915800864813115066369972096237306675573113189952291974636649706203757038706962014582253623036564519464438913882561005963620665963580212992063747213020590299787504147197020402237964588107161088519976997377769118090073055164252736771772711006038508822114896537401310182508941237842574295788116974641444740698091409649446020587662342567645725146567402045016887177594030986255413994730363336392250631743909035762588960845502460933153918138604708208714770663069749808984017780528902286651170129874458789245310568689248090886578616248440353556843582718102508224033769637450162970841131249582944500946008290980948000979563748128131117949769028097657893080906379042425004314921138578484786412860617268405255184230078133143631829220282480466695918810831312472847448770411758424465293310782385068321729813258386853350724409111957896397821066607509003133731124769124817304750744857072169081750266849232677434273207581134829659450190234326003643375770769463721920369376202837172853670226345979773455717227171312295344443927992850777995902540770421398191037297664787777134971560666444306552491178952358665307197394764927058915326130641610362199081245838423117251651473486407532813045325798156047139710302664859578647805065356173028756441137029467514842812466253369417160445827967509708368897396231829973260151840732143255539468075955565353618681834454387971460921597948242336319812213330010197778197980147522094190393457146775580143280373146122809877910966403925392532276207364494998490554783132121801638910480266804424268267897389034257673982216178444449575053246496986637545679372071306844297635014692661535054980022504004754706618024734678607163263670455703382906409689797865600454288898875954750288675420566794917873139498513991772481348864970416748973502296392492705265682808754861523105316364421372579494765704297398008618505147186309151492757710972026887251535841956599017350157958107720469526776317668563545047361877590769943573197965359450731384083857799393155939225453789952181699920898445287330633085113913676335638801546329790958516556043334789248566255911358535441289250276397762122662797636382108448920639775203758711929231971974469282234233902652598622040011991747818129445364284761705094687784571855004612089248109707953193726314279397581309615816049483475602792132125865790253035521017359384375046888786928508862769156939609691492418834907644644745997981011828584455400188899620537603818363226741726886406743473866349902530375735638658626324787021269506301880429495139705640491290817511711689348463191114239627375313333567368006501393972790800004019305271357357017598644479707170976435015303277320043698030475051623561408358758265813168258285395667018433808416021476000199224708312500066309407560007309558016976576733035794920885780557051131644417652090550218537501734320565870733545305592108988729231044207656525514593617801526488602494136620929650881782974949767617581661977402871587992127633609267337435415247650085904333849694588442731922760915700767633280081351653619373767087276375739963659316923615872075962238795369337589974948694409721166509187472342444334188535092801398096957096535904772024724646456859659902580185756472139511808721142171111296899528110561604987397303562085783715505795015768081459643976793442172694637392857574975456715601693051318995226570513579515529479048626778886597343810383767483386744482904504107603427954500141447883870065913756340450323561793191073092074091013794247242518905535609990686327682914615115570523807094391304936444092826435722205556149877946610134847154773661369190936668274605487415893146768371163167186028149779129013066633902239465978610913940946096946546729170690291223232214046505827587966074180548782803269923234261481756106594482731794455301546481420870915043927700065009593688779464637450985755031661482673581276331636141792208201737487323278292111627546337728670059835049779898018149522784212141019816002070107122190151995107131161213182568858080216987351050866259651864260810070242686172477460167106598536158533804769157145341028720442284023178493297865743717240581308053589969494109237172700900080408969067066507754838207822423454955933957664538377361213603633297196976426126177044540849611325277023764972218845382667376702381409468421284565161355580457640207366703894105355337290203602134164273563616247048410948275319743248175247203631105201552933670033016558390070124040373246348723084708624597882210511816317569773391079425761922228075291600672286663108905427527652148529419804172744087694282428649295039886855722917537822010062828037622312189955552794713273738630292591512511266334966258417934448632508345239146674978418330864672210162938059669021491643135390887227944054906241730231548250157667535572019329304782263687804573681803576354478212586463435352774783031000551289480947390855329976820657922870638795994860252724087487679861461214762210366051943175885265309506487162960614402759093760370200694506574758287125154975492944814099987565730388771294098875570388070553934388043351293882843814299455471386606038742528016204072842696397110996998116532510210019756267427327710487748534425982445296499651980211873844929733820869933004393253254431099508448252820837528578092490440617333452820644820277960348313026261592577513471642109130372891474253864380541426390698621049563818474197763421852570282628997514858912634295460146005557797729097558496698611531760327566914707654536171052226028242355786572480026503349489754149870034214521082142150409527259509606273206578745819549746532845056169538482437111687310757792318436973153755173319944387398195043906055558309456206182667802865515072197243452213979551896802835535922024833961723798395803856343937188039605203741674410288826328517850986849446668323206556924039266098129941215750814552633295365032786852720210786213402435923582732782126379064766801354091961602964247738476289836080365971825300685063817671509803225573639395782271386779818051547086316203570913442586065129881546286358854083180897024118135848100337861365579809078422096328985354918120863130595875334880255540374203248279464488608030445554262231032956750975744732302920423502227155659018535158033552969872565248431583339842886630934027113372662537343473634862844319194494597208926248494282070839182853535878748916950345821349706973962326005926000846006936046503281131315680578689200182856368242004774792707586210084423817107629921361054744680726834771809060370807100074960043138728951667895147880248143656075788499254686411358864468128632023935006449640549818795060317236524346712853234320256403121427252285916925422745166010206866260143249828351985527260312593784612728446934003463483889210952055857579968686737994525626986647957654367148393838759674216134939077376254333104191864333068946513325100978749690817462270090468359674966210738813753327796813013221464150397549894788479237731505195124063067728410482899705130127677691328941527386501690427817089448904513056300371774969456245996298044338787796744400038601192000724133779411447729163333074137740222347704399413457779575300996638105101747571500436006399716910535844106924382681719970514642585927382720534821030054338125642468453916237229913767784509193198942735168191834235910361667632732786146224291400933422469388955077789824851329659379996469569184602525290387511344617718662046441664926931584632879510426820046127676388273883543335015136385793183226393267816283153321998182333528574171199486299185671070223715528644072526570742711000106897012047824251130497518798840840156825364582155890405080372170385718418868704472700302517664184943556592172692185103402139122665233719521714077393955712840049797411014918703941508699797344790107548929757180263708491552101889903211267712538340074643988625306649465887768029814130387851251613842070765834289152514607146019933844614210930390183978124014850443763614001679529285298902239741182036128098732827643499951903189900675869951923020151371374756421090896597991887201990688549494899318515197201480548318660167713127176996013955870737669906331857193835409645163260083860084891534828288296488763202040045198716482169154874456857833584980692553642291603479886292001467905927185254302643281903718629216846986146839729103007382461160179005301285318195360766938817735153127033264253967019110158011275359809613552353139870793626041007752333295515569843945188722603017784235671317721265966952436177970586860001167354136305202056850597990436772101923932902884929874900031528958685183561691375850750538319875854976126084457379870915691049250709618824828541158689893830485610630526467179147330624837256302142952849579390521553255544217677892507721486309258864273439518401377082094699210810577341536992870985915744995360193817467575962137656312790786698410112908240141342255601148163590133192290572433561533238888085507447977173026996185891488063334721437714279802123051711634970145015682384678747108608750805492247443697696141506785578324885059115670247134814740454218724200900824448236205877770460837195012489412509964960259984118261813936627800062656753507331760965007376281118841209206752231836074487360107377248081106005198246351151954264529195160184060728408026361198178953830752249449269605065710320180783476859855897624509456588605312440945016415014517677259268169644974319482716746923265798908627176596695371179157538065125968099001352658911544227952285866143474258907637525668392169297953451512536667923132178875410773787781790194159292973233915287793387767522746814722393770210992159898282533639894778800220721634218081103860896149499217939555084666602814311087800888316005187944218225360862904545466715543920544823312257067296219358922459329442639052794011172113804849711028109862166209804322971680524317005550589566712789554896304107160046239529056294328318038960704077491446277817291652391164453174890580820656119017799583176189281255492734211048640097790920394930216215920231121590042810772431123503793564619608901241536510586413096385222214925340134823975234917370409101122481643184215421537225475536602314834373705916819545194108351186433094866767039992327647425774662460537883381449789950905180697979017097597802600700652313284455265325950928621290931114216122408524295252531195547568711700199236605609595929787053391238703851099672736694132846104252056285541721666720671495441461880070920809649303784486436063973735789866887285682033003988555175875278883223645180738152552007196107897477990530422010370329888891934351351711579634557336447122198776324652296915309854293800447297850604266600549230079534466141870978056766947522487198402937262861862788264840515086258359065604615370624960324156867869022893128061150590968035359468706169320741592301453987118649168433502092260151464771693901257031052803051511588087216075072299661684410764643689292796783148168906293391303642438615587991234453833307380845241753532242177084413828829952611834491092891188304545862789280352170513416018575504143659829099538923781720031600328014442870051425317222893205010899037727524612583611478514274588275053162917598533511601605805009333204335460969296431111706132081871765980985407789911199549620778926905216016779499980267479615992639887498548415789780382961661387249714905272725622696268968634015338740704002108608502419185946420656457343853159643413336251477545026379671986893572050433890207960829309818652256693975599055962927660673845181749337871668101692836086060132783265639307074959548833354635384073793853263199047322098632176737169851255829432062594426915932776395632605875859510793518932617316586005101598901074209359988000125168646672411108494979925556379049852091861712989219922208183988664663279940269879374464998550696378864507195213557074293859863634533320846505262852410256309398828171454376571500070677060476272369628845984539830869312390141585902542865021919501379005205698053983318769964154393392974061798856576775017641807384152483645470248095057764642781191891558881059967952339755564038725902456700218893580072813668436793335565707603727158170602410180898233354079068415853129011654794642783240584112864030428368508720659096918435747566566521534706856508417165758188562826462569911188485688386472845320335465241015004397237148267662183842804514253111062204500143792563240684435640371786214283269372346135224535913414250446921142014061707191177318128987896451320234763324066095520283627464443185905168822620216033117262179727282207925864479699456610154857965221621420137334173756269909148153613078454333455018573930317354286270967001374967426520781382650088189828876793366926264392654064343221125488852024582938218305485277786788876047140124737049622579753163934429644763410324556954674497185946535490898443354729707001711110103376833764468729284467444553119017679460545737169853602152322996860385706927637772916725606834553154548197820791068593503172904041641154719152514170171544912623686149613773156308927682542939095703621292780154964043924408184992414992534367703272718269022547426150128835260141608268818575429295564919370244246528568711130889680574243602271334404981628670180645840359615813588502599763192400398393524595255294665364916359725647480483236217311691859190939883085048055203741072056899293448495404896213679783777003852107433276212325074793846702770270421927604908597878686153808865292394475343089419072107781278359036104330655226355505456452980204078872704112864083939210112513125133205773311879360752785469195856878859290710477813065441435239489703664533587672530271847048358460068752174745458464540231091032405063204534091488255652063954158171420938566647661648811129711949742410077168103864451897856297392181099317905703187577627672833581453761170322956063210540888459504865337770955688280256524309974794214234081469443087497897980827436709868833466973973403296953178106329121591356216941580643409988805158682499269473473075921496922846712819676336675725941547326736682800425410469841127642447818133003900012683918932275101436819221152808093181054209130109678285240782918820662010373891451879923239279462800133174523091808471404681395898589597618160962631352267557468963082860464033205877442481350882188340238569815177636987764206514718642501337591057371582758725145237236206512252943618166186873608948944725389303820197326446285617871812368506256753116475299116086990654793202222562506510363260937972166636667482124600674775708814197110199582895930177987907787429474106485027904052670621375473955230065793577405892585735561237745548904896014125291658676415838703886059832812678446825718343638875585542904078567950584518856370630409000235849961080556290939251319294312338914114937814742397388384370788678180192172346921515230134126394296908553555561132307919221204208579412459987512534951949367839999323472005056881820086440173208974371184547942588670429717225029825754636514065688392088986255687970124224078722163472011379566913389296205735118128153416175468897296417284288086698738066809905461995997302535550658186704018545592621160444275974722976439850478115285155396779176771998981048702191994544856108346934233802614788133042321145398027024824749015374317021876824174680429806725812657572665398777900084949260654534408641480398675605795913157719705321172059854747699378657283216026690857544305841688333436162427486281178217140440074703136752026625177186775714041185725856758870447789530047911652833439425115194548761998826967728915955800513975427375487300090249143642774590799391314197245700706728898081311553266332563699058109176645653518923605577205640225220492794912772482534480772178208586850144593012800196687959305957209450706451051829900663474895850289780749835412749842599972284083782412188187888126257535395780854687897630030388156679673575145526648071927319801428187969026984141697589069297188921607960496325896388436309100135027811648445331738210363602368749253695320328699943719393612985792454374388723691098650122932562577314441738933604230953917264489685287507582239328746793542059554935107134829778686083761662007043694623792031556198304755645600733858073717503079457220614146819744463576573034434191052994691972681067344514298648421964789436447188713922258428913695003378076113867657248602685194501980356936536435272943482816886043696766695045325845406908186430004566181450801960532949624829394054969155029462743650399281053049436079417631648008889104725350945233890349908633761684604963458629378103943987545081492723798705951307015347808213990824476340955980023168109755046567356250161855161055334434663631770793231584710836721186376150169853985029331872240998372100628939489111549776684566033867860863589245271697411766210848545739820389507357287695506789044876463501985669589384107340581969695760522405596782462001738644224100427670831831966201414975126513821308927512686414724021514619243854635615622297715667919743384790468130169664653479226610835068740260714064927415641033349717904491669717063421394647882208610947417281700334365855640404745355295891022996275041871527948940979111414904659980492488147231809457822483590726062650139239280614046176180696929387309013815751492714051234149038618144716282904962835160834436926070689744661643834570955678445109197335861088904420986447568479630392388441827532550012972143790385093174297530549715847826697378552206802122547470521605973046352053306552659257371592465317640603871046660079741183911961867555231512154857647808460149636954298743287564988819943332729511335777457118302587562996718048900455349041575743710770891097799759000168507199614862390572781518296298325018119855223685235816263159874219710391186973402560188805492842773322555342958033151708465009771366820770892385066840602124438292142004528298687114666544708036310593672101574328334440786995325819433116693623457774810028950811572288656509047784208159637794586868010574752232388661575972386386681959266378088385593462584466199100191476865583493241249526270879093986671723349530096115895849504251355002784972136758026126207003561266506572191501879110063635845561812496608111010455950201283971417580908164820303055646357595148477145331445184765467992211080689099629918265274559388866908506474462089539349137397664083390610822200977215831660542758493129105659029800667284366954814392262230916874480978486439952414077578946744709414841631820968821060190015033493476323774709127580687364206237449462025756321527327227376564149999490755392436429282626902767863206684063145264583004848851315299511658705375448269043727750179281419421303393303144687488169843074314892583911898281900932879830334919975466641857714303000353675383739750820854447392451015181441259197924783616308613400195057111190997161215807009681758132421683129526131697627497135894392410451689871035964358145164216893640971777774652098441984646684730050736138405382593212729103219627349219715340287523024185131222408560043946868262320227203093229931327004189207626224786783720598546758356999908454652198846981337117534977653093436929166484069476722766554342347511313441309389135271558457438836118745761564198384520752212866093019615959892495461928150951425109227481287100540693494496816603002798330316759344593351363530612791932986920322800437467390827108055105268823403708457224140480606757930224476678367793153642246869395053666588897818185630786352417464086291892589815923290384597845235299205418138286530988419430866206033688126934420313393730068436578120182116336578732813803969430335516865352886262693308826912389862022993044220838855437729604873916934570787218900828769632803664002018484046764400656206940046117938646011869601241842054607181848919445979275490922970483098975885493993922536167176796243949687030627861220003145712799516617585281078299541631279693562344291770877500291560656835863488051442935961789052642306825868195571573942203219219131185998869223395728794012862756644970461169030515705925350894517713809796929011985434550090408837589614983244042429055022480227317877162800872578666362118664839476388482284729533571343650069374805333867755402936181355402988422257208042460875817429465208910818558340634628715005655617064882577742755789275656861992219261164374147299238833206560071948999082020543628367774265693449780749840652665013715851583836180087686917758792450059427788189580203880161327693067357906641619237680292799288038495073816429761460761867757113325608047238380313016004590802590563451153463540216805009534511596113047898560143709600759490827960241334880452113611309267100610614956066203927365165396604330871147220624217007959491278748121086535317616928226378008320463211483060026381341547835080597260164172651901246728149958469255757989027851939620858617806011789300195648822426897950303174062840969233075216283829178939755640064425691343577450260751927658800375121432316656956942686652848327975825875850785356448990434224138974055832631636050632808369391421790259773741621479950340767882216418183825081128972386710717365030264307334504345632124235620690028705997461575499383924777604592330695900886511887653520041439642759317436179552350888540019245297239133205721305368729779748276863729568034012815417704342879474737513541860656307972109059594189351874475935756333891142769623013355989369875325496591640473925588575490213511323011764997163331505769544694475706502647885449812189468436516790292723932361619148811654606951855120234559488435201244069651612866288105593084618842892612873757461341656162666522432401523530551796017458448393198755837044611540669411805806437805885757634103659367399712580979928981010096595459716341597608493252905697120285157461344741763182427197097837331362421450163606885848248581179509398468803131671670728729295959596012396232260520599399663656823718800817240801858434460832876571044844745410865732699294934143504363755468744451198149082903928610635714966157042553731495966199743918668805648824349899184730555730849351297665825192880874872905422935099774539349625071031758128662759257605799560342036249174494992567385895304384014720348886401460672594698076927023624367791532524519825304574514246895598795721809632641525315860306448410275329167905744607267661839746958075900744330850781522876789639104148186252463990561934963737785366788650753537638374392437958690843974085735867971266278027063397615578765121357607722513434298483095374652487416145683675343692612078620976716830787323262438324936390586350005634475982866758817218731144508329687577271625932994312539919230874716530720095777898572807070303495605805117958241817964645409082669647895513408470997732837351519224515420736353080239373112565515350934823641202516462036589750498289795085798148935858477410124691763754830814277048624013199381166048173620361097134262948331247316604562967129630766422296292308491167497970222515429375415291541755053558613558875667808618196724324976779113904998264759912042158703098792113565107456272417116513941568748548615805448329787181009046527668504730877946668341206631649722609532658484231599309219812831140967803772459734445077561040508754277407436860052525836094161385512308173467348227988127268311057137247580318025706300005847588161188041516614403889714983712068322566336539019393624826572617613257009828417049935762561049196847887798813374040865857371115794139583042903984418279156175941745522517977255514836223631563983562382662573800440616389447226259295603503804144940035045664326650870497196123154453746782061793620539090271005683782627217292564124387342535794149757950875281732535303290665543703211511122584069118796641197655341244493127316791293967707594559646386261364665042043617499215443211421632870574919492765106802543478498864279870014126927158248946519891121551827595797302090385243963287276763422540186274286143418665164482309011576194075351319516052694040084040132245393676019765317729785618583767266507554371176397991130374032061733092522098867729084532356628040812573937463330089585030961043549384261142594506174866588917958500660753145140802876568092043052660523069736460396530327719339122536504633616869706759008558200640203012794108117843375058525381220036715804284689466233142609052267560608272734937622915101952040827816350702644573143536391092395054777373176864693675180314306253319606912393137873279580522511620427878902349136876083730162537381279692375982891491581714694746781839151543983810949765414560012196628438072977454352819459087771724199938310076195170753652889136465744499473888291360670965266313308432395750047283504169460741697272326946410496139423046523831129291489285163440460729819624115959662077737807153391095186544578997823983418995163334510908105604614913088701573116809017968731645449444000523497673049195352578328492082623115337722772565440281745053242469717966847388247691550892430966344794899585381077820430698649750252214972294801654338970650583754176653441369304857448410352303704702070176112401929718841890997572764598430842130378303991344386132182019124920418597944965039496660288798988805616279083381391798680827908010065373178690646826730824129912544192117470895782666125802288420028099869749075741479783162991781503269398218413365672616121353856963418266390096185640222981324676443018551241918759678848992587567048115979551032051389593182650291341912937373679953501873342382362566870262021112029827234425632053970612092547567189626385609107560098378353464944955363109351822249987477308413035001268312905865793017182631707830581055234630027526042094237833285171976080265716143188071475403486509073629940474700434526880399355080816234742805207034500595979859141012077304434697212355548793983443094746120376683518129354377640432519921914403883856261904912792766899547952810887325932695186810466536845757990380862122938255600190746286866460141594744495352874845168628223498181417929872086314797815343248519653430778025171175446337307899600325412301915584567134973801326363682172127436251696525617133695941519566312407247322268195789873852987450786984502069060912613102511354345788627001830388502298323451836932881114439052634066983117530005605711686531045312938797205049507250961695991709359562235501950139294239336290870701584149137976732255243153253763719205214865313957736014803229850531577189834225768101454648895737827332868532368126684467162415943890060916672074527352867348238216400434736296301498299342650168699455768093307231647188752836550877664202467583793494459266565986290200839314902919867210354423039980685093653897126974998971527369164054852928881036764414315574292830801229719854346021252146149048342663996262440356005873395250230342092080972728225407636723762260843027676307300475075498831415583930255402509153760046921319794960116195349341574525841600255202070780927951579717118604608300360493156102237108639188004823572190276903806100476108859283799343616117422894689622801052024315895593749950538303914753964194258980698048850275687805638943128154912890663016853298666758765814204248341439120247808568645453100754858530993917186171313125323367180757519591496078147713518941176034826734301275918769663937450777498687312047946831440016008090974736393571391606706790582868350383032869513691842445181808440505163258608023977141587984590157391354239249987277508682390440466906842476786020904092553652229146582953967252231348609116554748226622619979019913501082286959396584641171210115424837715920558720350940717228714407144121321565916013217678535101243895262976304782318056061745025407659142181139718703068169197235731309345245021932752724655802915243214108314715019950722247038264972398883388189009993372777158501826042057282316017265134569391167528692101235150020754740340255436181460872156014423733164490065513830980594893748821636284603277080890355797040812494568393066195635056403668112617598928777000223112145683174808627278375180319247162272694534864968520602390006223316029668366149407958177821002005695771698350733686565628910088703503615689460203876460622756004214438269228531329461513536529852347309104705950783234524512401468388551199742251422246463458417795454006554691864550724676415047393498592124458826046526391017038000016004569963738686795499561641848055843704607635867667118009917833358698779216987136428449408238426185560327465464053069081623090319744277674721794366868136077912053582629507754861967219983416278285490002154391686987472422306012078640035744923275589439142159305609065749857633393994736409946039797747842067812854075860514025300147306682097592494248064642148876235783524682334948039298086183494257558715788645906516949984542571713532354677112349188310297180440931060113062132218922900120981825009940347204922684179908455954620496223078506070671927974293191137148457785210139054080907616193248642821801907096137947758276227475388710025931387296969025922994021039599174034706391311373662805759643671021101975907087708621533532196490991844449485082971229431637698900939434700939676175918351542650331581513430501347647824392887421080379506031339818479452376413458759628551505054416676285821783648801819328904022422679622704059886773771100296400752382824552856398861490232341264645524267505839418876191691208377155264477462950971427216957760283673123327515153343417736169623866741552180472263369883699089580166839689330319442274536639789200504282162581473030523050452675292022461665603138567326987348482186094757389268363538497314746354443863954706333291758603718160123421650353438442641458672485997146097770721167569227097375110769669796527616180587478988712168486111866362601195155933671853480596621457690400534422970757288533082733409613346900901022801962081922945963357412178584288296925407714822027541348437225420025527445936824119065761691165385363323603747268596905099817091021581419974113423568485642709523582944128243959577715285124624410251546926632295978315180934580835068385224879745818748030378627445880142015300415382385566391587287689081685098477167646894465948439573704065462371855469782911782553438407192145117832929806549984971315867890893921389176951186113386076404492606471729506955434008862062724030403399451065278499887654475063988723704022340723203729545678726955016787804878494520602080492776660037566931656390430675902173105530315218877996502947458112080477075804464478149213956010225181574557961440820777835481273761810939968603417713306257245730383798595373225833574455903254518355979831901757694433445934586581243141380664527743087554738480528367047005965234218020387655090029516639721086797482968585203993454206172434847008610486273660408193987078346696612449545156539576448966315181799313839746738571024481385772302165145035529445696313600611835944754037534443066068898391597236948519550373847668938749514010759977223043115363881940577530584108796327694536094929804310930231612783984745695192067854167604732600921368651155992005964814618445536309026978482072519127683633315966967702612150909222306409651991008731583064165701822529124448146177694673080877593648873404945242766763841237911378716381690637093482546672603614788384398094409140325902769289653933508914417082441489367739244723025543012492389552242328876447454548842146472911383362023421542385029975097090203623003888585843450746921619595140226860153048445573626607260709419930814752100301833916947480806311947477884770364185333527003806354196631514348187652315298653383974348611382574623091397470708867034975157212495896976019347302329919936378273914171226803058533696958416539127458676001268939492237106547392314976128103794631969121108807842493615488623460529807168417834052174806743939610573233346554999764431871201435167190589331333746621325412454847540838357112955514298420980806160553650419730083846605033290075557006308871723346261929485744418215558790514312012816726545993382717014704972466472901151968361424241030812654635981440405347771311553644438042545484266843946610592948715891035611567767824981853245438465081889416035547276956426642063960783482164972602179133417145345950649266162591618299830157562609831208333321337123040648564261177161992048547896678377997524941979003116037275198257641837899281328341656594325273854546058958256653863409052015833058729748392172456110788046506197532467516163297677457653126616838153601678339341230714628388040957929774153150459465044498351533085674053816116166685352701484205017613042141911569596343971919951694407551947891992121476730341308995232340906089552255703324599973345067107088431376165957869486752137009872078810645671869338353839590189606558049219126092423454317697039443030093945760909431894875811139935539479189454837845498285328648008599882110663970702572985649879193837557467029147403999035821174704063345222448284188713129704093830692236197925991166880695196941467272881091561480866129213689137631953694312320202113940443629235461846362365274973785029787214851670433771347316002585997177080426354130966215904825497597475179983394354881257245446622321965984914655336351204233662590566737110423808244701056411353910439512320460040971577441879806972886180998379251181682778478342432162097119697054212056779814080011307704834774515405822643447051218599758820457690648056481936578128580287546090882793421531067989128580629269079996521600127041690281525435764196672513041590704898088544444865430743201000172048417413402713912517829750436538930351521422232378265782932044340749633295041467658166021652773350819344886808981709585252286206751964155776962293065776933861006267178667817970225609311865049285893684414720124152165346909065470917241182568217751821435834115472601683978319732466538882162672351958315365612233969515299444536820161199428576911143867777185638574313019713764901286560962277617024270698844943736226253854831120170633530212153350659828049322136334864667998478180072812347880693011537051898698360262137834537180384292343341593053385876785529125115732509371733064880700867136451214763313133509108849162238677808544288682401844456264839168828763168446644530981278834895917053527246752300769121598678388149773080508450412535176889840248317754676734321886504420104049096580734203827100563615303144152335614132664038465655721797595805316747145311732785071225320082478917581955117566328543661534350437495666641429108053601874535839734866487103132531867610730010669320709197888502533059022012782043412581871106258303954511301151363563612414361649866848492547644883887578776737816832927510120190125506291339402551599092555510795300694854489574562306755454011959629197767575216179648916586005401184785657089913763108048219692922524856095471895120787361346671395247130192857100285610012421960773161290881338818746017257303142896698579974853098385364798617777321898589518848169062263994336326416651722220761368149923083207033433288311260689319376585230289431821261533539258991943655221499887113812666349131850840044595253015592962791894535714974473226622379758454943260542141904730842621789239149278086048872972976588593142437518964429294044781125939651045876149439253108579510039324159984047743542502800050769520065047752402258824292553517931458440385154457415656569517613353561983538735013406661222586321826315799453135932654098075795348797975491645067850245808965552784477956502865912782770334299269084844601157597697481284610632339679982966890794350861515949499547294844789476161609049128924035345676944935567849585591828124262186520203177938534459355490392566566235938173793258753230158045257538954722414599451570386655410731531013328873736604965300512940535270954156123698748120925842652953506398651385916702414568320161776602803935922980532430889855585092433246840826900926204687422191979119705594097147053834879440746439010431885306839972881043020065663733371482223212598017987836000440746214329529126467502256212907217399003161127182424937979505671601264549626126097573229567047042314195633174195794826516188326430454786964816106672363207799716359948076887143647586855357359711945860425700951568222282820689039889193883003611554151471775456571868882603804158697820947952961088676747639534371778295334018897943959530754200009539387673276379284958101604709121468200595520822463751522426642204199227048909316612136710407816515580303393063394171025093720863067628156719437528031173445797512647510563265108362817048182125049927388601529864203911432355012274054374963021727111580201929503986173734232686748285455118521606814247366876485325469407313039137060331323576827552885091843362988993049661826569825338085977741047213160037960042254903359976966690999509932882266635628934010518488209789943175508379039062884588366981083563486201061448003505178404077128634692755873153198351410460024565425466634519905378697799430582923077944399643153641928999673002598202134181229103113903744638201789439037723643948713026696425899281845928181070740396063947179599581722250674966098513202750255010307479874902249526147366600502414326796605756676835732311919518072637709005932393640140857744597071110846572912847844196315972425418925943398744624808662566783987937579833459819205578594748016330394607128902765621971345658737357357580885956406627958350113543363545476640978009904923845372516544013185436161533462241837360108480655383802506019549207626291358293635294235535396129118795866353878544315922452215482764996355874761689821544465371296397520530842452466148130652848939685107729038234607416832170509424496113485870547916190127295896952093800596196746116771856355822883301174716935066589579091431710010832765860634559621062486288635430920605458173232297619370591872157947377793823708857652578030493301532299858529407102177607894661258086921362464748934646484575381679821759433831459453329361263454942650083117636797293650394148098778971828450020209731287797391560314327173722737613350699035915232608089386890885303473400709635664279677598570899609215510585873457206535276055334586681654042289426097694947483086844801817161999804133091055698981858381829290689666374947275400075002216984153683502926171957478562783126561868067941559820540255296733133430247445903373329087440218332021939261089981329231282043484102815047757007782831513271210130512188766806148412943921877463392095470837077048226960716010463735357292264537129811097886143532032349570243964106859447534095942318413832138365620578483778536321610478425103431452676108060596070114074725061609135631504188190313767888525625404681921561870998587183043898288177280521983667685271495867431225719309284754175241333535211092934465517055272654784354973396113612142630498352455564671664651087119939117949093065814724197778339112662219278904043100732703002107132604867745560954300481254027125879791104524610950409741002774305563244516110622018911055402081271649825479154810935609477151963812582209651037491967900725675761729870776272054025218966833588007677770276928587910268833888214550090622126896499276955382154899848384429548163819235707964901059714232045116674453653438694784504242863304628078091387861233341604585919031391405651852019514819469935366330366184893213546799833524608481223087382485251697266618090650339920408597483004025253472005210244601782662322751731678718823313945092146667570835642388155104722413341399175711221957857233656729869690311171922351619185231643447341050692926713447762108177259379335799268801852054173442828973118319902482777353794581478623569296229971776341520944290189498027388283765501758488856963518882288629023495426118548619273340361627815712897941794272781559043927679066995101884104597003899155981655503133540212420418662137516394754273024648087429328763050189877643832349347245205363273216777776878984522061781720990191234739436903158640850765573908088172392920735941840095005293880656786406998182662265566370435314814921295231578648108227980599578912799614413630606349651786586161046172529129600305426584801570941362450894805910017486231492620118632033165925975028485593865369553936648349013773998648871874381884620703795004223534345287402524284320730724996622716347287144466315114397972330608547563222267105387615520282009990836712473313499421815726765902279217731522817000871880604879212942884686366908355620781466436945222646853048222669687473461573336664987064099678036760091181198817942022601655903705319230886774846008769886908275993418655364198195225880883453026536635662855961291271885760786954135825250077926661589783805450739448834920236914224328523180503349056264556598298183760606237496625217600586982384610138046010277042940584488661376155438995582338246190468248783131033078737312330293216711392159677504405377798470521403036450698282359889149581533515682071037985562654563476232259325529913532388984974584765182143725397025401874626135073981048197122899450810132305727808178381017491987825611860024554567890635089125775153428617267063234632151700223691165650802649110601022596131918143201940322770642011866017197929059726460158663767826666177231218891328659006440364462688118632012447955114004668141522429866424682656730317827947140316342836532109546656394398288417612933033796783151361880297170054434853616049261678358797262368377396267705082128982724842598237292314885718447645972753070483464756724174873206262494682087493926909826739462903585052688389427734951905086106789429247484372793988872601150395218135756676745552495547086037081628030495600524471958000079735049696984651356443310604387940587956754091716950127062848058584133451439233226730947843908374893741148760586148731192205777297636098394256525803500347704043462800871281303036778515708467021484727945130973871161066211742403606364969370202083025160711744975854812184786893607963003288731419451639768253370720895820803569117762935124867442142507150987753848259878315377627141013676469736588447844716720910133980590292817480780259579331430873659453850889361780869980598467384079398690714656492427397815725569943350206192004961789220942992271355614210208364656232103420549242912190299447429453168826827175010092857847352991291361758351778671590215537875350204577140569086367022251837551250798548468436408420865371529058336458663255364676197341125413224868645946821783287147843329433342905517822697811054145214515358486938908168709704018379964747349064231621233638433721910528168862191611499999085508246831608978138006318751125073894268435115626912835065593805507469302657332293704108114090276853401893264278044811254716886775158818360736567377152042987246700332607144152944611641758216771337539157356084546618242074823244314185669735440425115273003808156417700340980545714387597059382096628936635768416049060356383565197821429309440958656364532703017595185418976583473184587260442459939161573658393489175267154240500623152418208712499967577486208241827355720755501144009097581188496883726533318608565629302434635919232263789301833211956946234177253091197628227648378809893166006496096402300571908508705821661542855663908947274720449737035881542539096760266865712855452150498556392523367844135240541112865141790357070570793680452364657569271264516830985239746669247046742466738171218551557455796930481685057234073703455790005336531781336954950015013997146753852477773796694860245356894987970448794237920504720430097007759572983624362319178346535924705955610715720118882642829810904588044730548557146462540387470688113602758376248226745046164570950907029925783502674656817949809732417464684920490989228202685444875577073806033173162948153037699472756143968354640077413728625412311963273538418990917210812955675948577415754177158927788036145674095239352486413566016929944555229445186059844471956105799007203550434405433422639503876340535877493331457592991126193913964304275340045056404557985386195817307799618389215693325479241417019050926257584360161562478929931783868309577368984574498606266791242538648450430557739045061587107762578657184123263738796101230746849104299430666799253877636187686021652577583350446260644533662703038862493461909445869944950595190923337110316720464264199984582378720296449685273786826370990498716911172122122688807362458907979380383103094414566800734647382957914316687940570058052424724341002700552673762559745981843518686887763920710158545969755260288896144898412735531529956768298002436228371183953868569586124155672925837668307715425840178342363033553431937819387448922802479149710257795490615016003463783084808775825454616876405729396483981915860478752727401773301001594650660536995493802458049275889803543259795774454130128502823512579297861883994925257347934597527220213841746991354429803905100197498755022299815724014479991175756299962587577381250902394744706521075838380628988750840074532945241906279574680010942753474188824216399678165489418219037207626138137432953183996245149391208481335785985901531712382999675435049725172260639704826192987065804060845206920098995982305287139860254298632503381956670618312735695476775251985637576275770148703355282642260043097166876761064239816570654984577582706605855813346619578167717860787047181644842567542771175695640393717404949466904164798381888282208791789267922393744321053646826705969323912317979407167846513117984552957707703583693689853339672488319974361873157270390409674231186578226296472651392888659144380381399559295688114999073054058071853606669907162717681480464057165085212149821104672320648673722344544601469161759144785929800822433175177083661765372544555315233875602551417874355540009924666779036212460871914604473463552232161691393131791494379258916264429999076732967116074406317058891213026455282474963788200387689599746422211590309831508200982439773555280176342620827960275282025677445228716961815318289363172871489566255929869903303139373204107266469100933049402999118802321041486833283304687854535815216375687456988945367284841938910252266999486632715360347530084711803040524691113952774413684536871153938712195098037359559813607347713949258731034261310148880319442163429674570178460550210521235553884371226020762337741428357593062449438683014988602706855559392526839027073986037624879923201219845698767308285668172815780658733277681642642836526310245567612436153481979958889126983975865851984846308933042833726868415814971545575130106291902248753098667846035877167085303346120175934787948414545066995969317676405121630684518800336026122836639317917676146462025100365532446287571216482515839102545624979694129521028129889599223118603625324713074097667135243009246557596506085023524399158283022374283604382686725845062607455570816155452725301241019834619075141078762184413187280176003041378237242438348453145594128015121170788640644264872875114690188396774778700812897638485913220718399778926165708710880865715057850985662616909600070088874206434231553445543020900605313334508888077505442539001146476718477020446187233994609706044880951013034010759226484283648113298045768969994455108492349893993329425369448040213092279090845412999878874273403944105522714828505052661838059034039036749991312902706348583139957758101383821444076129612107232987281846789388720358754950335667998036523960684509232070019146879717019622592544292141138727643158720385568933080800872963251084311923816098249599979781723429473035112327979458104383496460488228932053048955732362790829247235433360501972729438899324689197190603396996875142142202385623333311948003465337775996278140680354886824338567775217045713533250943591110448420552911101724544074920960854400158475670146830255599644141761577140060778252068280661305075628421974012582155769603977153055738706208034538526456159443448745404741964425598996004946563446529310388734997556903473985877438566928374361664503395079579434179568862689914211825953616935288485180038272858752157138925292106136373060950939463226031260586858134649410218921291519347867165218549386409941314407074466175830869450263251167292928905934631008230872621114032179437395496832505117425755097627543612610856332056168750884460916970244578239453802973496591124326952655941675958569671020882634214521601600755540974194249199523958570877046491307231000693210146507933858898052203411459494933537462396269395618771234531771323189704689651656932745737143905800785954764935404993886290322317772892431035328700273138060788818067294995652010470921586815663284772071498860409664581862144174366821025596677362080408729486911245172776210012646240005272390533467550099613438398036784731190269733826287549102385890085148297104258055222192972754700808974607278868834470724364981068098777836628230028496695756344044283769533185359613066389644533156730647748100796301675932841292958698108255777448237460560173471539139962186572694975364499350767948443442552698062003595651671738267579981690171959931530671606061626440361478064624866088875318106043162805868418703120176715911648888860865086843325236092872410019637541527437334062184615658657508964190028409265658497642114686707261193958620210617395506134530062973517453928735273318101763388503260026503334703409376807399436258951778161979689491661555106839038945862785918166065835278088517670617708368033636430630338629908599957812451531992512652738676062325071850328370983809398407671052478740984368361364670399207074555943195640708850023336080747683314312715119482676359842723956239170578132253356447496776638954963613658876148872725459349624322961191403407515355785400605864007389427227663093369675570051917479997649236361441536061912960734454843567855325648326325947542492508424604074850137491133734491996206524540983290550337619974098534548271637534441184822828386953983556384494878334974268067177925406649748388266044521689772622986364859175454940584402726226900470652487618370685906709404344240099701992772481526998512990854036582171471355290499624472259573502864895505767871466887564313399856639903263967629675991243168249580423714919624765883757488548589896587687286847335068828914384548209272077884712196381525206743596764096776922643671352214931879133215096960265923408347345996412317677752885064994433665473271723235220378019042772051174005336337193723920640411759166952833560942533609240678097546874460667862815248132491156413023191718575252046267467680984355697448319605223366760598757195118293324547872399826191526350514755399843034958839537514140622201973176683343285741014355712749787739965078884919065913558205274460694450250766850263352719288499817096075845060417534292194317057104947141115864519994935569368005665018038002619134852769645934805449831175391548415659061315879719263689362691314613553893156308180721151854708916159575059487065434367083252238288048472170486653800983803341746357821458415031186842467185687570113825697109280003537970507264699819587878356728210050431034102786302856071689156560349032870225407965794700291305208719053195862435177782674045548517956433037889655444083928462917873136939505383425971282013527961223560357963722456754312631632799114203307392421525031503844690104859031672352942602354675075760130256310780450493921446264602111563253875257992623270032150317569365235199550016803511448967216716641977180608684748839928562474706592843909456181477677570097579133011447494557772126698318138156257385666048155057151933152302148576534518552645516540590183563529459066090649759304518657514928267182533199582754859733699584903797685315545335807892139477360079976921801592350641173799345679895400232191702370155639051150003775898567043963274521562626939248640396437496519502711839076146653621285146776974640761919815071443396802090100841852672057214341734721955957583869832933468483194991898828199440496928495962555786468620401964149463923354386703684850502175299120801634808900324128167517080988091672227468486848615560353624512491088751520209983579105035818310680710307260946278552180470306885797428577827566285631014097526215592104527003028895486074769615852339418397792425127985161573324639103026648175101721024850207130489337295378456010212213732337504629265926089684192459689986886082149684845935318897511836335807716763388800042291208511597351104998233605425251651104643259898703450761679821037900651767656671545506046608805614393012077460572155701212550623304532456666780833437584915751061149181853190606702244878969311454750984804333399175645620477006542319881911772415496061008199202722230793065791668424560402358803192975381423303785279802423064709512358227993025999170102204303850986409831624323356843959303755657758627287286332661425451243153678691804308535897530582586260096204021270912732503376815118123305793459182764520656056099434804865031566147852656263231449881324503309356394695304275206587089287009323634326123450535590092127361848504557638878934443013306746385896924439794408101881954623148133754908151676945121872329960978615043322209812259577623699999699993574353549107100922254680292524971644161551106532650797736186481287235659057963382338611859368546682112508723928295106909797579529290090959264011089055737964078842657171989400143702860347899841299373198168345885971670554224622239279607477771169928891055032342073932505730455756889719707808777580560473320549181930265946584907764548141772371686033518796640408637673705611538894038492081968056006319945072381500022885105364294857969758200943960041544342902135876967012285664858713065047396910156428451033564487492419191431514636688229573029759053698792209833867118560571403573008106045513829707722913629942835908066946520125245048142155282511583021056195806053491629758235704038719378750339987581246672145576939250741361111037618938900639448877605870615989277049181415235913975159352206372130369336467393561565230368169634545841411676065583956303419341823158304343369333123005700164846935111598126788651523654223676480892116073168499054526593526163761528328933776351723581414059405747024247861155004851430375846595535141089344361040962825222032961190218882187740734561677700309596248157066500768556349283312334490729674160414659894991155981260905447787581053476102086017199127510810213972221526835629356763771615859438861650867588507956632258910747949325197337033171796638532221856205319131538719178636288248960585490835273350738037659337959769929752822996117187283842991629772478504879482588382186536605532433042650914349211901036128247841811408826847947909191178192509622355115726964770512075300878705189746778041986488298858004877259142704417679899636401421597752061476481918481877465154377851961624832119988007882834420547122844810025675388411721770707106818606116962485492959130679043926512754191407542804731026780577885811535549594945324541473218129437377166059835454771193429822903917440590322672794394194452773236078793633488393226422219805118837949488228095663976937549958076982243716373417386577888691184354988925167571840281883778775397708242186635397262760786750432967924442182924776773455083091544852986783069572051857879297322909263434691712828330342511592297457003181936120984516414133060766148449186552665362077317391430679882365293163169131916573242432549628635401462463707956627972790353570714563591458750457095114397389593923654276644938236696704637453648786470140481641821740074196574099789927515639500867578038521518919036596598914356691299587322435131303467730591476376890020122483119899398862435126813999657771673821437083331711249560222766579912335446203982197118100401362594309414271841562666028767468995055712328306812321554350350589739712269235517051882636614243162107918717200284189810048435061094110767204725133212306746668517447781831425234693723374278193662681688273135891760681889076302243441240533131253780454078042268488876268504726450140447432820368949763714113146086588438706586264969194059024529328015459781701216564273172875468722970627148555347695353677930585132367537832441117542716615340127705916050393778306039662683369749182589266687428256701348139504738064268309832313078766240819022078747837534298947350055497193265562665591936552318223551467560407243151653110540863192818127365761689200046663939602459734195052724289152130163363970579354182531509763509499107769359258108350429824661588101556163163724699631128688841680839273559270022520899980323376485322662082675287910134391203234502091041223406791190513154142274914886591561854493139354282125260552889069791410177471805422654216684025057227703156481483321876947362126678079312548868898295572064048615678374835255748401016956546304069847401552139432477990433495981439836767893633313784979569603040914942472514907337151029602683726427454863995775109792565884572355481702764605720346742268784542812451840313493601883321089858082735081009277219783050146908808943674007768167913183610811651682094312896270821650148437763605206924554265817779459612972921000460915583166439988632272140370786046934480854165009485721559040625259058379035189913317328424678447365919461980594434675333867763617305189030548165046709167387574324141095362912441346989766927575954342133536743460687398811821080032313481313061713614879777767676076853260443611419164275637199434830877133079988500882965203751230164268413446481320659782941731436790547698578148513474473317756369026430404895151731861748127179537684017161840071730470925473020477880334397621616974635495673720923993059747038937927678292141986429604353832683344100743758913636864289144891644756625512443942530086532490840825392495033512463672782319426070396730184891778252015025893047904060112605576224870632221709371489173840473149091104664403989818124233402329539703761029263030007888307736574062964552675770470716697881311297355339746735047932216140232926648648501006331604301586177012237304213735784005695078965364250890443695314582994535311150784213281959622031018967373616121698467663067402403938574177878858553741719633033765838837974594536928459682391427964817652356916691419225956235579587861657001428449388312595238073138261168394079188179827391043941463051543710728665665445092173525910496510551760465975093844088705579517145244989720842010429024016491388886693093455928303320441841976677528935894697958297892925012966901922151654066406521904427223343204237153861244919933583428330779059174000558795613108340692337437836279586154584639391737109890740055045411220841176477032433302158799236635494395723918875810340480548620244107455842294736262011910755977719874375730447822547942857505645239362156087984693537571508928033369625161120626901498641978688305448634187890998349317715601588038297939023062659515132355840445254644905459954469528710378632196088329863662382661559989791152703022733013878013064786668470557525770496931666101416451584140520996807516825435989864856094683666882766017658430490537828326497315334190638968037939926451627327795622832699852535287541260222878332163788738491852535453065502004988738057599683327290111466707868023923274720433656733976373319494912992550953719654372501368947620921945197492646735690166708387217783834233363495278300759032313063318925609091344069831481015538480345091593038497549750202278680401253291106665701941863664526725309605409368977277434029220610820655624091780770249887540383715899822336209479729469169496093446546505285033849321680519296402154063314817615092587056452121160789031302136878050103523730634199123061618016087828818518274985516001853205472580357775852466162713544788852774634794514333412519275991398624504084152014747392055628028372525380144496025545265330485298310551044782842556250864585650002696872984607937272659057021476829119933386387710620710491592643942728659098413438014967699642764637909520101882023197671791465231357613910403162441537202213760502746811114181325183211986776411256363194935958060420007776949691484051881755961803149625573342701282136121001683084873148424786356408273359060588373751077511404445645576436613847925498189667146831570497633541734116841136704052481836730978167587684399254114920065314570285559078464244846457199458564779903184888373382494330775259241269918809507060238507951501662646569329043925288074789831264073760944442839578444568174631047420447932882464092949060003543170959852455501727266176133628481498171010350520694924314328125270615047687372768290931584445455616596652500639355432447676042787966773854449124169132630260582092319314291170473752878227485042479363957044506794815104740605503664697971607178105328866263282381326391671475948053374804850476971354558070664186923887226099668292080957897171716915366096481698510653235085259024244489482117818916843527479103529633246364293823222863409929369424589592865051708135988429944364485703912556198326806026591744606086024172764059677452984095296493372104868624936478264103528350846428720920620252460307538749739121291071065838345458462676807035606942853810991086915338820829484428234556978764015646280753125855048400091559470877588536958365322612789873545073194151286045248589667448645181999197194764426725338912817621737658920868599767381936670496743770348695783310557120887393834943254460031991511199340399281802084579444465899394285403332783620174867084953044425427754050779923980462854447866861005023485539499813235399993398806558403306662488262231901421141762467426205833305683621995952175583998519814941915655762416159882910779624345860698973989463967374072567040505065257415531079535413966830802376465518769243910568418419680197700701794799335997213018393808535896179522302789486805381619915516298028535227398953800426005269455746012461352677226898089114678040465114674907173526117961009599509991321374172794386766647555969584359879474769311833922928006749649079914342367479888660733695131631112994024161773361849270885647634745553504789671800704692590508553252676765621269525744491045431560131179426991072743604258415952924684645735117919533932129390347749264003311103192660319711270579675746076193382536608258150190412532836242042113130169461748380202911600428542668311272905824428731769874534928442317034023188657438524582493046405093845050644114350775421969601572067011066766994298944661935230228045383076045914363891668528790732864714604014835704825527451362495267910212710224456205578922616281440972750124076715282724017239984938131172409786116440578033688963552456175352575616496002143181404692432118855649345883462512036804621136278202680933527946008639675766114921149815184350601660853477527909339204823132638642457982828682780527908826728875627423847647473549918596339626188606173344562597926868111770151375359587611978808141101759564784440168697486811843028208292612251842521351685527369563666425550438830057592488759464708510988222720666100941524064567659971695681407628908854017205380358856680469065981435785218845552853158291287508069472207161915954621912859479488404369829592127652932950057780218454924966635956478591759796103964295067395689767005248852918370634735317347432164976866270077868829824054080322674324048471475392416378057262612651050312228635381547852981174920155662828960905703092131082059373464318661562936364457192737330134500455475550089795451458645802546784240114345849097819157508855012579741378754308255379911297819209091586182463186681611622399056125763213682379272893100473261265474338196366232027950842046178953064062870658040515186560299312409453307638167933818264381884079681883960099578075478684898958951797060168122618197151037054638623863536108845912652336965478491989894606488873125400523253891372803674047828477859420445435925322995483805463332058788184769794844204401640180064066214463011887693200823185016410408898934777304412720163308971037589705756981806598959826446144622827524020584957749540562385554131238683086541334732510110395092272617019559322912215586374015382613784434857729124901680921185958493972660010711487938500338938529099805614329508846927242134480427249085698915003395416998807010119703267359622908335692233133487658056293926709201168266736658463790072060344237853988605928262738449928071969301212257732334678840263448143685839013100980865890178400028159352326096333162935427155892676069832782581622039342986368425253314180939861293052260163505576368773623758924318313080029134873270108283167076271923448549598879885702360716395910349867063747049059703247653970867987462541039515057545903267298193080895087906834010547360815420180012366435666709761522828872094510587068146179156065862026023784721865252961386892970410917539948211526699689318518217828327118555327693512867873488727945629676504822872832092710606852149413530228088354692891492219648548452071387727017448203286791035806780754751704251152950639125667304377660747764470186515651930354806426509516351347567941292048785977568601138169792760772999347275958639526469530890866130502437361315720237330920255620322578798957270402820625543678570322620832088923369449891995931552911539813348971932064520988227531440046974071315852101828267432404863659301393482328771291559628917911678751614217593296150209011499805820503307518093817106226480629906800400940088103516869622710823802412691574986169203173879669647397943360765413905457686064492169435320894828442280083895396368470855225327082002464213296060640869004813098533694143602687350463162993040944603421540127472219646045894730111151035056835470826649204390419321600881359702755648835400755482072260060803397986381809180330028055490098021513498707604495080589693601146647096505136042559015252248212211381463774043011829493144189174409812785222152183837517641360355185811888394406046973734262305113201443478842539757701099966828096911111938826528412960000501046307560234979586218350376084332458086119532671235343438468686321538671251120883145727407402690580615203029549540731229018730574314479725713047101038976315094892971934706940128997680385762170728896171567886364533267782802558365392936875896408210386057590018607247198941747626984528863155592387295237380607168624619145311303406767030812930242184770300091766474580674749180802290540171334533977088550318153787376562375799156605617101626805104257578470572285644533362772299682998418027155095384043980421357090235414066374050439273373968788007958931397452991101888004452525465393728806260920042450987239106214381493840288837159214945587619138733487310762479345832018162558911617164243740253672744128906595928205064915991257697498766596286263337996939813613827430921368183587099692111769317713429213609985097248424829991251151678372656043449018156097749425085729139024499976971056166535285834887918711012109999518733578833575553210063194866523032792364420712113431452782158329791262442769749180867984857722604394044013736038684525465832717930161158353911232209522008518875257665193426033407955020570481096567894804446894608950374485792271951636492019236019833596328335770039590964709562497842355452674764411650570402576931032591083250156828887421242169732943905130193827478781627812519048356807461449896958461430388559104636392919692129114552978135942051420785308406207871742350258453264565340507555907534512391287315030959028728473155351172974760067898804922765172346077168229219779084225360588514844826628615031891242243560441096812659085393336643801164575160960994507199237507315693898789691261348634882923312341600092425021155063483479707528886734576716847319907175212174908185057863956944562849014593706343680621605748922133195343156913934694292007323313906182862841893906980938039788556904328836196655663931334763989023350449177804732703367634008713245118968182593710338143046704579499024784710157958664687922507222910203729086054745045835310179524789846205765888911488542297171623389414289871368577818711371538344015099289692437955273863233773630139461732921140969239878467061479598470591650841107956788682043474199790690285014935573815304798648858836726923380433451355845230224875606609972062717303201508984029839807787400005704945020519380124027188593453453302272356177116563898065179379528308144739206454028443509993129084299679908494299309017917034403640650172687007704960743380400244737548024417568098821997267715988716336163424699527335783865742497350852236914413980214170656574242126134112377624929828525923724987952994261297686041822173893004135921120955613700997903776449861051264846747318467028467281930417168943787997123999126756529766969770310683862781570684487253435371970252517703467567122189437835711260767456606875921129842307221125931793863939999221539355132335284234609354849140883618049762842841982245800618676542731254760576302913150584781307386149892466780208629875984551066962671836650399651294472050207904814541975248194036329575414571979022185311781991172852179508493334107463989268149062860439436019543253228752675052150526052799706195343328585506820512998550609498689712757555913538155113257124705681896513792468831557807871650489679017969660612970753613957767196862343588869540766345039715866200336648995255068523062280628955758029413281232302446996130887300655340605508628049426292287868787466265594545977932807070116210727744280753207441510055971032425204274279014936675231150597743385420001115216449416376435126336843881174474864093655561408309120980115921786690145486404049401257311985357454342235820440866188304642372988118636981015738188374333871964888748228824116476209391519766132317501585307641866044714332507422656202267609622868916916645941262879577728850763905067075994299743488878658166930204814890144400030909878353218765530456010791393072079569842799688637027185985046860248652635611804794481928023771876429881837241027110829781228214715958267627834202210193864939461444141032822482032527906527207824113013653774158950197092787803988176291774760702324867025338913851341932600392987184242365410843098704452973844141758795909548724341933331559428383359070281203425844450472061759133116832158290643585658546937108163036532779260557926244584638162503404811037843486613111267992889226913369618600055890453280754333531961682121358685175139425706776869652875372674856987193504776085555648528887673502956768480952487900081178713241848281057565288017841500472637185806622424758833846435783988428586539758479180093425867040163766867956133932753352142529930167635075233910243933150064378523323668321045667477320772281736245256456706580264870659451126852682869680104081371237407334485973375089530631352436942098547764824901008721106755414609345459004232362627554683397308850488954838926428436304769740906225763745807992631172615454549773638745412745781650079819546843540683023381866013411120580857745916615325916164750706074242169759630482635915517771441426524459684596535542634314649357725870118594571715369102105339821180156244066204072823844610287804855481426938878080365185777136620570047139271414368814332184322967341058125203634849432188880070643347164531195787165898036831766343393696016962709609505075233311800499090559780531123764424140055809377487757142524364930786286786804239361963458807951747275731226347219711802749081631668692563709683777143560912342475892387750874802569865836736963743191943285726187710726973439001288080934709793028317698052926155268299436567770112503169498571870660477675198053362774983217888889625111539674013759692489093367580406453206898396655751750004666281124193483408874114221330236482461919564546354093318243648068411337808549818580913895575052154555699306104561004140410239570604117885182832056720950040079545737987590560761708734285432388832904063326216885696892946017597250890004529519517416767586204592784902884698759416747588431246247271530813906957740961930838662068662808910838344025062291949881817855681582992325555946893898581210114700263524848448893024720640639985559931278120610372319002936652025618671793793294041391891905042251827339852586527737453170449849764962593629418062140411900913042471048589050020057506233042305803078518310903008252734827371568146833399122212123975102673033591347311741027330468781792012834180717675669341518468619204438326348637360611853428780184359802545116195460874094349971349921713131767061828600103734716225179128726643924935386751290731117902727591001779266820036125098996938494260229071531744378769458906484837328683789351725009915583669492931773125061685135243740458112174336540197050190307924010229133993331745786682273433922165073923045349677915857126256555400877532962477894521772479196035372555500570845982142953955243062606265081733954292827268942867984254504400661520113205281160294591664274013358019321804934032069273569264737327020530573369672265533748296456593718433609150734627884480657109499404160060288320437322993918333795840668598389302424315809040941786975693508739566071551090268862186730048654669712803329158272457002401338052920408162353036082213201016184379816659017973488707468030089613527091204489160640506484253343998097041377389237603277379851850262174545931458494271196596740099704465709318553652580877366834305335530676310791164872433693733152328627314851237015863750942832659327772602099128417346953130601536420280647525158476116477902619876969686911277780625958131616942271970760437371095002508074173125514627385440603314930543750452600659947609666483347795928690011911731073667532955597461178335379531089077405738331097160386359030155777831810429626566666567311888978595537738252780853951902686688284201355246466555570884077847862989173447098110246314093119318177250933992929516978557992648886661963326369174393957583371127002118403867436586915789290724035876021554861030359455212235516214486112172192949940801625821876524612256320162827812304921100494517577544344547464632495347759226399192856460634726271165862943101484955963304124919182137965415775417924034414454223818671370691720277778677832595840821162062554723109038814908566756626274473885763617274960786557725618520133867658308751037640520193734845833686614504301364080174493629644344811850059008972826305926716124294277994769236547754236322791048313911040989540413131138843553532070341403397992712546507484889001347455813867818022304424626662629424562379464257323730162470604412035058281998138068513468061871198061504497712068784466527741987323910910394034114828685558462240061189706979470907918770596538478880888928888243766526343061580054329755696817898734196666889231632530383560718138256582150846235188131502348296138387643943598222998649599085480732732033601837639490344571761644020189921848548725488976835597406756758345665331501651243502843202874620528711778073985604879583929294652804164921412789437649209811353581975038702358280354676403388605773070546636776729279348803329159542943767808233363923451743999021159304385279141138497315526898101618731179577271255851404182237481410808088661625259322468257860422534511683089604025287753237849413554393030759624863937971503656445979320706179164504523214860058713601812152795498266936981853659928111550048625069930986674948508144700496428020925774426991983244166317405201020927255830043429992755303691133287107031312716150482481078583364480101067213841355150368003908534794492349497395722398934804436641578214244555619884780380021248586004546848157175612599348654427030605785411512598976648889711431707813794551103462492480637601058368006845610250273679397552512254761015126130070160414144907099178464879546649735861545859003594981950885254472376843862238151057455871895328304538156744706498423814307648366512398942037919920458520401333166481035633135930992518150149643273923906786720341355711903980992681772351391662767508948388094374364323977413388834633153724249194881099329826918545305802840617041556529243762846779390788103778150591353199914101183008920828982360066809773410556065301550466840342399114595026858345780589131700011113555225737050027563638369441957245901889187451640751936620368838125980986178992548152476147792718896321328648009254688235526248548609298527437880161646861446753544366932403422251642629109475514040293178592503273875152574191358019827380599361360215263827925348902072532371043805158886840846834835427217825366521895642772738842040549821873884318246696613057364241304334366424680455373156490448904485974018687547909254588524515490766358451276747223094777958503907976877791464540520578917846517170959749168765915244286156879065658148877126246160532246920934980971802442526155360102090028296619881635498554672466613937367024413733731607410221910062205194517559725815378956739538343638099052390728026954927836824846396134136332428375076061883249628888417090103706792091522160239729440541134112959433717492162069920330026496979566885867689061540377440880958187398643917317523814818635213388467705509673740003696101558287188021988170594596294937195236183189849897921632922236190413588808380513338928397064696740934730653625671773418451478878710682068910208538011343610821628637572699493002326607506538844406701997268497289650440824867351583077370893328244521387709180120972551971589593583481875912644506130415163456762518097859492046742974533168479475524930114269493409443059015099149050562958553577133277842633951918096787508341924803677586044269450856710132964366523331689980219726419214167333587187187337180865566241122409263341484572431459316954025579499360169316081263817270179171313081534354085228265806916740802864960120124566665028974418777373143228412882130754285549204946069627137113805778142210459080874908466107554558142341922667583286664825720379662360706420322366224489414088620840284492680102720859197247752420883403975218353568453024728026952073526560218420574047757116269672311206610371978296984230551487475487388238082969540495972238073170622111828344145043403803116297587034165348082182051155467767909948934999679189340450278795539151993537549978077695415972009822059915641836160670090158322034749626899472695182361415373664382260917438988588913170371546181792845692033390882391514424241766170164455421331890666266177983189991285586317790519918563735403976538675914906523161452637860715048805632984469750981033497112106013013767196797756433760448342890926554155799568109297037600366080235884367073382921331451281191946242400890161740278099756080153647924209137675243341449633415729853812242643811037121490087477121299056193149514263032288940550792385502131443774084419317778686144974141388700266766862384894351731485848899132980002037554398264280957794618219149928593877984680619389688053787023516850001474517056489702535091988805314378258237918511187351188216564951571750371175210265111524885001911619627661964925249936571696162455162433166810954359335032729648387700063028088656483230770197371040440990715237214871507123342386921179449424848703178897669370177839022432899149325981210304936903510825133576486173099420504429345189212094825269079321933587942254589122526800136133553118241989299430352006509062849235384161224130663794285888392652018274431858956484388564624494006708887692265806752000215958402822797467518943616581969686189464912083420770007277137917865973030834108893171055960225589904391721264066232145146193208429541533310949591022980494157925243035898397120904415615421743451886194986627351470622778770984825997788332917347368083461027499912397656001099971553526698669556313173241626484320392490378347516070447299218679532010919572990628838789322667443917631934500958729229365460958144035768431102170845838328505415467851088730167037929693213811033814514543931906823380283326863671902280596857186321583576346383564346930213037208682499844002238559186931587213158939602614172818586175660887936484536553381107588699866574567755745616790018008555056026823774902604180775053769241271109228371641610514428105131304278065460771822526670141462255989274400839323670995340438397476326262751316830795485137810286089218342860577926198269336389345640668709858750082318841416591758085059215862782329222611563259741923965780025082425370333547039380691136778677106571340613212384550892733602991840734767539892691872952778862287493097813948258423190872726950797188101999768155135305980227854745147587815265283666505929510662701571818408730015546086206899565639564920597327958327378150938297094444353492562818566351539647586064289422576496548035049997732763782249102985917046773136776498870232708587940441003102012977900249668400718474288957391729185984261821712814457639702485556369773807560364075020096401175136200969080476524121165885682784558065087023113533701431510290952882933866586863585972760359298152910422181527255580710350207990196340546609192664849425007823788083187293086498604271834638239571864716252398104885180383120874421634446689618197707324093685142829781166131847980929521464250331230478825049796193231024132790620525369143705853682382772130353997396149394321554994955204521138491461935224085044364401363709675629172093863477210878708895432586755712715320486868338114308470236232064569980702720199623447628060235709869813284101062146407966931830754465508198226401896738404682004349887838763895813853696474288081423366257490003307562799408025692090237617368116221246596232379678380842318828012985321980690610236990015836422520527928604895378000427727241949574058902162949059150669244018765817747794507267820406972262803724943441400992289276619371487992328444329397118592201956115210097289936024721469521788011324837566821009755857541336276452331164689006342823435300447988541268804809170119528687836164960049506753367699844076324896222236630742495336388918231301882078563053270009625915934983696933005760688647689570123215750944017338112782749266997341563741930394148865046222796195425849649785637943890739193984808318201581157550440034362552843796689877719328702323248717383711674807051239567973069320293731992304614756776889588004461532952008270534335616578369248851905573527920711210909445413699324176245974322550535998738818932822727986311932460129255005068654000887828287610551192277184066286381968277553049644255214125197584798093755026676958712320491146599092250423909475109729616062060035561968056071831282601341048532190910150707079383123311272850879656828319965920746331037583656372204066963677460799048737787824234182050596949501231766880362611165191851771273692155668571303550858055240989465380911585155536930424561072967284957351790344066450496464085543529674416833703413375641111769078623110321966774047038016274896794530431965262293272229949291562829072459917610337681629378663582522144654351639470568737713536730885888796446286299514959052829017665165264853325790342541900340614272062114465876467612689362827433024207734987719304548056480772427365093056533399702969476773832642371298477520121966743895410111343066897780435425596778772624894958786905388469962290013441421505464596430508721412959329062810572283291290718043279025916001197926932645194363984317101210959159081970976535170971907494182463123319360832111169458111909831561716965479401028899896255138261915796272788961887741827035786034735737027408815116083134667573497959685307101705171913699642166075118526453424816878687385670446853551788376584065652297812107576280321600148096358885358648253690061880163207865698359723228354889730662078476784722396225353239490083981709237937912186930189904043350140287804587686402241342205454371007514838785911358197639837549633153606561310938599667817439487457171137599180775194765074698196034421856338373832875531518234471896124070697295186468746476442884298230871441657485665854698772109638796531964027902760983378600287318278862269822167532211735576187950539201643752776967010996251298397208085270544852650752189108635931399057542629019315919119630401132172208326067816638559934188761203340128033610102925619953739573674577868024899824582147319448007312845993109946689351155373082159770441752523533537543359881496472666103877212316327632201262168660466348033585657835443315413506839104213967156822998689691293431476705763544197607821896194245665376029845702753672330296058748082582495243860843351947555696363601473678751890941664003131231916314841183455113667702673090787704478770798662720506780590162518151059405784901103885081942382964515898435265265077230216088189611991305864634077384677352134798813516784529249588645302469364636986562530349352495322987501588322955633427108777632107241941546801906348537748793178901334608395831356912799079175838931863380401629957984957617290900451601753597942399026215545044190834672529647445541586254519804300104476443243583276166635336912220646173987186969650120446848133177047708828696224687998469611407388439682322633255951356886821452490412805957322885464290384414825904393388002264775889385380842590442053537994851217081715360234273399737743857204510486892583091078126508986170754320099110579253424203641711931147622039850559854254250782148664896938819944135288876481765027126148217497270365170189753847028336030660702589457705684544505099070802715525726662634184454905677085763012783293324915975487839129548754629585971721254423966703324794245278591792422251045607324972442802588447539134478743402966710485976789438683501057923170083595868849213172465019086631284538536023469777082477100047981712785943480990129761134300095785751819174529687453958643844870943448322003181233660754678821244541838919735076874652408185782019334988546229241253993600240518618083007824375843755013786054982295076614849703248983669932594802263058343262421784655954849467873181485639725559072796573835055451858625614162017863651278327797066107186393748442046436393568278283677014061579204609573495807176704488018937644006148679978098804023209298278171228284163892026461736003987921663108027301035794638954209188100370692398143736212141486489670599227488566324480962839288626755740937506406702862042305785865068097346094254200982700504890206723390676025447094036925365199615514391351000063463422569497815565627769642028943222454002607976667935857375356818148263094645712288640447367844313254791546323642846889372222996835992646721727268150329793847842527723845189621023533655441557459455578574748347100451377973074877820897183523958681513198652437506216474288890368933523252664600097864623120248820248895138593779166806321023813275770737722848203715849893889708640208627159850575154887670423392895526621157494261121363094937280271898790232935502065774884341983591842133981823017141751194708492464500481513586766037651106317623622715723279800322915736188014608981410355795292151806830550332859176701746365921608184291575543550971138888457289925269041230027883794302072763251190225176816989127122014660328900826442349207296978114230704513496406400237912110654805830691240290523650801821837618788970447907715241181156327426259282547842176475021677081175260259278974932953349411484693171236521648211153972137298504961140111171838517850991075404379947119074133726606266062868130186540122685706753902476663329836770374155514065943153405450747238463580513024187083122579034195027617164634028509715244857163031293062935591312986770029281852906947534030770597194232274121702536704096951887608004509561257754282968305430088203629793481801362501426723216364773865347601621302504951295152046778307594786804822043279033224445872056069013332070833468708404959941455589098567388874898147594709721108266247591823906048983523397885815415205133805176297179882564814876900433025329318018880915119949352682196641205819415932118887163590361061163834516256649188164511907812333065403971927132220558238318465367957360078562697754447077953477032724683467219128431841499623803784034204586352867268409011362173474428158107253245632282538593501035237309255890254859952949184654097274152004237558172929373442522082527960317476584808541470663088148031196091572297031636762718791450313481934585411210344552304072448750412302852056925445707559150757519878085348395902105380274314511996714219282180677959105248593314306677394228718054743092018789162999514510414618606647152667523620242246626495219428841288737090675835345464580128598271113686184530345695180661072866539639424426585705423518039216200695589102681265412713312583377521826763130863427734706101842341933127132134194516182588561370167662870364894522684457349372244093036989543960233279384587804926691890473317715229945443716051703689375092336841591232924576799959262905167404157389277859168341000941355975241243488906547693981713510953803556152908587795597141943517814714526926329319231717563180698610421434726013089844555652183285262311293062114002642615384441514901822917111614281408905567787878777585719148822955354485099069329349033721144337427532650492626852745832513136468430018484637416985248512127133742147692009070902491522627944517621655406651663343695189220277035701859214104648947148321865401371174959899563180634820239993570063211250735334847338917265052771541077395086799332059845365986442660093811779566410696329639103077773028638884262900143628086983865950967844474724708852698663335549742373313190372287988398412878040087319646005178876676769085210587810406722005206002705714656206559858422604601921161209488359103623399772326152158706134940710470340599868585872006276215560475086050659711813646703572710517147472710255049553947496030346152562499847405072395070937097311176949555879730122892402674776048223419147311071149048814415676707389668552126569670275607292970911624674006674930364051869100131389584736189497675419403444788753267531816429457577270946762904810657032623015298488610048168652241103966169449438752681512500744543344692962955200235354418781320351345196450861961086831666902674786909324319585074619990799856025147597596518432633356776641793722514302666537472696674795525838573654107758546895978577698529007974696011551522122637871250278242377054739714807377103180149303687448049317554207904747192894782743108202622565389144501630004974472199449724711640528818998594112505863284763412555178131230841950482281670214091870863619697797196422037685009334012699979985441363574254299128996445450251565742927240799701884497871010828405201986960104814155021347855328877047160529869885173816799720101864875359792917799132359441779836143697072269167638398088897870809007462760649062861695821502822215823086310694008398137966085432188283446558637322313731261323008852351244617436739919525220767877464769421318565382913368883123036366591085549259698535638716880410643237618095667085605476048896385761850032253019235978479301023679945010555257477073901405702948722156283966743626038762452551229685109915996857065248755889957869807879357247415445655453567648443245520532496256039981037235241661635121615600766280147297011155028887538515360240554253868952861775296922828995474696104301225187841432394903801531275378151153098665769660905782586692345229756045164214552405348183572750878117905777771670130895724360896437334872721912236628298602759850235974940552098444441069521975826614978425028912503978514142531895903992598679296226080270594620095172577908715999037156588329402401583411179295395198676961952152505904599979128291980456954003173399672584207094461117966002489405609298589718514228603353357877609677607700613527271877551907631501365690492079872378827325960760830032239851324000265705345364775913055568752415766534501801602905201821505621155687041397882590582582336535078445518513657051172230331439362098719499101675945511552430074565033829595330639736755018886918365719872056492835588877833598839785302457507564676265902516845349419047052339152853188686858729735567910653458905773533548936304992680468745901915582911876073644123615892508798398881405381422596338457615651087728885143790384842933402398770612331748865845437200555135421581735816948814803614847068235705053631591111384109997077749891846416713742825967379615992299566458555132224786375434225140371489931230223790186785547910559400638848290465715611970397788569542724971694877741388283460392802181281361555268075836158845815122036289965487141183502473523117646702581748044178964224816701956875813616138671014578548248313325051868636384153493089056706362086399396511387672257003624462667997781124511262252334158187291482690459620575451897614163136551392496765377105422741500008705342529763137447749188990173994560043360849765674706624207534414355874384425790700550337302675309123583753576115299703249488783780958919225230235720063181390805129922452925810922466842706896065809526991083915684000976317903968342909462333645597579470551503237995928420261757758589901712773402029566777518550914571988649286553782620859834481847882464868110911295707060302140035670488118586239814293062302788321307883408222622613113886366550460438349270932002959517254590739178348455622859181757630259543818803654870509896535482234251089097839947533588566455478924527669649742444548898689189612375378840603284137290421538470935121166198530463596404752967992966311357214480515776835673611346315100528561715560811754624040770777049144095122003923133150574324042082813687486398982756612706489949808362192642551388521065968481964460389059295489316563490279588088522551013770802775038906517012558503445602458957791792056885463863545321654946479616756543521888614107939664343032766192318376862003248255308591418733099723962365185070648552774468072343619558512429634807538682990073141770309901037535497221788225202532936084626294841586429467591270445745009723270645297794492700920658772637257431600058084114697281527275673731426563808137034477189516510241872262049888730685627957342359038487617157354198840923327262263315238296493083296840366894858995232270138922450689125148613843370226395840158693042589115806672811007623808010915374319765796224868849903139896945486197888040778141516203644751227197797563216470064436087717052237868190759667643065571542071559398113260953600637678230601375727038754485882113309100767101143570478859360997275723297053300327226205362488875408483792430147400214616545279396964337450637552514968519904107251293190314802527409856648368452263487893908186734914097709984739916286693976844520799190057229039817044156171403118727191902919600053853320811044827842297504756984401502163215473375703909453191016589634723151706540147233067291081655848314532275220462360783366188128330322939530830187007879022105067964943193872116881656178163255788459252936326943792443757634081282972714127241202262928190016928133554926070616415670077250419847998023804279660042163262432571133952455916203615718829801037953503697854586709659506809399102005753104337650881692407307997220991596718845860675850483099075212949645956175286395360321961561027101450017234464645300513433889553038652992183408461977834227873196218127134665121792143916200328636611573584951517102884312628068762585943286341907283857845891573035665129502044801808986282652760939693938902847053528751957595601331001183394787060698727314231388669917918313974394042544952899031280470619768269044252482690973476273202247031438183698939134824008267995632934994738712256343155733456144435418103138871352855972831184691748266144977536111893174717597051921522401496170469187882722874213755566762610107422876120669807934369981106898700427324526375685316691562903527198010197440306033962972050371276473091911802439853927883046967006844302417890590565471527083012727105025711699047515678410994500635633448290984742911675320997245470034976558391946633656353880978149025421422517693967195958079818918482106579446828278615985775220042892164772703276840430437054022228570440692169398147355233671170762634824259388769987541331779170217703836117989856263065294753483578949286851034583755662679828301545967849064586575808478611983229293547594058271491306482205697197880613357850331117811836699029833778458414105070463546122742601370477351222341500014490784487916392050993572003538715048959725498945039368924633468314529670916566688981752755938524818179463079625115423012090117627145196255586291423457112100676880067224172001899792346811301578236883946595402605625848270267711504199547632033095980778429826910253968298388821915251815103308031711447300078254159293684917979268800197773924233263139631158998422114468611401254164580340230318066736958620237937249977288540236318925105023286178484586762589237833697401215182722735564521749651131142017368138295998091287939137756642697400570833186377809402346616070314154747116821727154165700072628289793786325384661397671502057490700228990780820605764703682738659258279917596106462199659799200889856438969649177307025214026631502416248502793391247737650017832462200576099505292172818578012516549078234710621099210751022899739876712113108376711022959626748477023302401336029995583610730790073814577860493719166462983795778383784420162335592665381731208899774611226273279617341379536766496045178475826813466320568759096849953298340873339357896479278110435211614167830820062438838793041852689068142046163429342662883935160050637098401765055245213850322117778568729055539723982684293191666428583029792471599455385789707899789522898462425018910980653215628687102925235710084687023555149054247364041324413089265878589724114466258033147750439700499433046539902160620290684388510686648508313917511621331694985960709278746352530530381697165683962517558466289637817285864168266870696933100653477112985883298529523026597956837475111660317575578351589296419656700173882408589802109642076592884157870859604480135491671616413854068047482344159557552694069861346958374870367544158249345347538636466117111955908266124450605429611490715822631426404152837499531039020473326468608474190305663465151591651327362348184020467838415168726661638676912578021735219000243191557054891177623152219317779220998024907775552201004330793730456920255165529987519674079611444471444713833593007856272909277569805522711412722565294296031805908192027499100063208546425067088205301457199864859553370545971235870867917280961165657406855080861246096697801664621536940481666328999721318137686215074217467768082467617495931774902403126293461669017556753129678357073324217156014442517753637593780292777976856461252936720027923747787006841953983794438633731774898068799965872471756036601821282334130780113947919289423702175181930934047335043915567686108947559959536833452783572377810842072979154904625631661518751848072023846393857037347296762475830406192317883302728931239066840785503895752237593403190459428922109117222328461527648880092533589364215593969565452005650263812241113507890541697872677538133506635902800088003529394129037895380732443135109235200047044123272927176100813354636571895953435009262672049921505735734594489949079954982504596766699418496358101666122676135715559949035149926802167739753216785511611965588871653862629966686348618104059710894647718290346450120573203157922101121689310493850082634299007366221005908494981202639997301581400327876572780381824586803307462600859901366155018173517046087029620219214670776682947383806033792291116200006465580095612649218738358233336427501905307398688383211396165488368057665018933438919299167878038861566897859581758509634822214061742457833648573165740663988815123176347349081107573955193968385452783329241116159637147621407226588958017227395429934444709340947601455715485327585334552238257219630186510765481054447635345848776884071085648995183182419559588632221620127960678822866975711925489347692076892035918159501411979970817105256670100890757872293847019111376363440707378412868591742444575864378884157096231578151739002811799627429370732392962780526238676838735217519770803425352726497860699437715053706433930172063360907235998116089456587449882403272537686283727932562195666549930177562051681822113572995016073949480409518507045904855242423141761825542834343702776801634845859937063273432805274655534914398315989920177375357994576992839062176224253840119935947794933385853285669773498913567429294614750804932485472259542941584332104006385143577143502509585794522653124754773074348072500521472372743811344925749410853766819719222668877578204758406117679234401232047035805780219300528421426761752740031581637911775561323263662447957959593772779055884180545958425262496936020614619903007970079982338277941759334720532307638763506997903894111122752404458300431591256556659161251763451279930100858577506789426990659120117745303278208212890610712048533021710842971873384843082103977559858215022623781447214536553811879707234692641232972077056107138707619591477848439391077679494406524963074388945653604037224118142919673931025136391110739622855520375742067224909925014047267401364870589565082617408171223293817284679078861536030586885145576868138852423775478845205448782715178679292032625455697592089936105139373445293815870445783865710267299932072974975578115920716453999156902276525012842948165432233172089905184390071833295503136497965131476766318049865987532922612706773971594891149822845401008846388596763351081151457248889799432948668505879128559723365040031252577135557131420504515007669339495311706852536297051629038452390457723593387961864025040085006074214639644956287340816072754098017180819024164332873881530394219935431653219186661565524916143656385661509145092718581009130129957531343632154398407124968637362596211849099767642729463626878350305248661491196270459058340116780094934861061408474835365572206028336875408181356959945288515753599152793768571449372753111684146896695948345819678835710057072707091613944831514426637953742503389318647549574432945729573790898854719946068909993639335205921272979048243870216595941330948488010511232237200872826755723130359523100299379816847779683945188879872218837178723588725076812139139946916784531102514739204690089638611432810060644472590436731753388393417536295485212728610379782588857384761649703467925407929932368920825070124433547372355762677895692329539084652968431068295864694414446711127461249865130381922153585653188007540815848527593601720650378281890908861687049334060279610697964667509939104112855611491304825954468310404982507236853790216885940087624396328650843773423578034389644449626560692425243679568810087747755161944602503987492709457692706172715981932520321715508365745954066665017198165605214115417357538183433755023181020431801669094112611912059806879950510490228505293738581674377760951332326606806072256666101792538336277039090153268977443173050043709442522806120553392107481349596905721787162393299701811411699092083282094856847482049431986450703110278476612433026551482681216283025728345709228308049096131864328748902850152424736643679207254918686647755102277804723134609951445367185086816291131691587303867740578807285744466462124736225227832752001664399058271714855016307500695252718294903892861496994919876348461896601023404657978275659740258215307729912074632441170474065212354224428947779259230708523240155897032177067744234977006574700305429922600924749347050148822816909019164692535505167393603464884808089437369620503257107910817455867274208793603229434360972732767266201615794175134924019570370869942692645811913096498971653257508320651011701892239945530176408472617569362432211429715750272988905797120803159661584723293445740642324266720539533233004032287558893529654606836983212477866598363980166227982325308757358874807932867949047845618874827804761580406336987155385670532862288249649441882990328443650504495237438470144374449731946519488146097701770442278613816189397908718966845211629078628951846721345840818469656254354002521869038255383849014614126165825964047421739219563769377518248012978478306166172047462719448194469608628596915089011751034036006440221640466277989816451723230579036956258871996312341187528074289535287597460655255436201333221634516796038373672002994200713802072797656408856139666300447895732962048583730201570064751785074203969010429616526289312180988354024981306365500485529162313202425407902921737939303547829962020562897181731698943102556654370913826603103593184246244358777905375258539004817822840432925125716447751723387492534931521443395219476554836582662788963695928814586989910277180833038900481609325410074691673672119529078782114951998839528625962343213273669040625198458007387507411867060714927631380614716632166382619280191700363268724350126243020185188997155893544344700436163000472513988235639298353439334596462974873267721904237158722700714654736248587453251840186667669799901564386422073692383414879855280118596999355198608352611178579293440431713352799935499400826795261474260535566948733173147453820458708718266272506645740437990585549424006686738246501296751228927119301922203464125256077041782531238380982082805162032274361189457698479851011796800696617030055059411348796810813636921785453520394574197256438795703298611833507020870359040770791199662818767180205156433496866646650451652570093103066443639317121687339301416176033217580103929000712583938885681477473606213792413673225611036797881440815752720803615796608426252144540367787053811266800492791958059760593087641569735542719917244530224139057561224719634433293638229960676353309989276007104225934644060530275833138770461636059375242145635925952405379585039999382142897126395316677544406717654998770112905239672461791388189564888823313287497241142812068339974062943409442714260822103825731450175564995565362398741142926262291051308409771078860330250971257063306541503617706090204480815834433721772990133051315588921878393053213455744033462396672460666610332562258152833105892902689816703558270030646111710299726194881926973289862422558857422426391590830827713440051741092978371008188742307967171154048380097621189277198633071907998061983113811697591325072175220860860461488859613470406754218751224053358336399655636210163712265606636332241577622625276636318866150684644323316042084680602435580112895493393831600732825665750671500211577913652448272931850262514893823287935692766592897218346262902887127969636324062600147381128447333701785851486039955743952682809492830734685995919297609451249487183249803160777767434278436216609326216621596645320198838785361782648576298038059586150707542468048634331377728745814371396864086360881231111334472988467198347384954619112257747193815265789748086090818440891930199646364413982300980398467151418260565734950338152913237728468421926715775107064006054104310361982371358352116347829255195282417438481645533729608900736997186170331809832852812154035773611698359332463521243633289078864926914781427045854273799009217716000153565749288946983071973774853567360895639853542534856330450430415025388689325119221199107418641237640834398023555001149520336482989259380674522019846621227775486179082694615447950270394930788113588531380683347427986818784023090943594365042910301233435891819181319146392593385911603722473945924039342403216916601581710538862479510535381850652306554809834721578966245560180741804737201673408168058894703829044335907381595094757511459059654718824309605383599425003296413438002782714395154989475539267328266087980245351143379731058402701477161127128518613963721439326189322827169663476503443475445481123203114541116895493674822739659413604747167022740806294067492123458801934061237193254567966878755765431759847601280126813436166141419826652316017260820197669372993239728999061773845658966985332185653489255916248701700138966062248150388429733709812022349896721175888101875742426362965095990512060262128960334614224676715616165179821794163692201368412969322040862445744586405143253793654880132320860142528577829548076152914153695551074051264856592448575239264719264854013514225051548260706480292812346012873148200925751386367731413752245610170369097635036110869744316227253447395830376759484065623728315467388142635491059877490103366800039328368761356914810219377833991475474792460690532532852249042216329459580685752550008557214284275344236233295558125394434757858208301637291560147037643614480360417074421692057496476642605435490191897152168261270349591739483443536555940043852290281036524244409803602197318349309407529349039984682902013823738053200690380251201803892036388413428586740909192305121616939126170703682266840228397459178000361237663966576600347964091334228323664906035114876134071671302556820501240926403471877576451549872712022106203456030619253391379564151549819206139978029646414129832268491353062018693015066708467615625810250045037389203740193745760813542271789691757868246273336404229695289419040669085130130494547021331395769311813631040769559743236100459808644898530074406108212870089168585301192470452222366177131597920913574712889303931904266801365250769087295420105345542025951459548453652115319443836709692195626108906941636557628462064374285318581753379842696625782014094374887337500579843924324540875138713501228264380091605374064796562528412504942985315707331028261675453787854460782729098911117347349718318575352042460992851525564261733020720718144671349305413140576106706366727456066902377873753178484281139157786760382512716912533487758065471384196092943324214863358803845163654452045935811420212283036661130704958387712027144766765199096838049515877559379642005945595667046985919661321521608750677437357843611604989980961546448297127629371639358234279053339075126882497672590988906792159617252252237725283325714128572981476903057677107280707737258902679962023041858473289387045129073390563123462290236315978118261657072345174897969166618977175769689270691544137675300610721495670725498256845452045340515644624236035569065253751585989665067709209285038722415304409024974221823263098204155857563306137121115265686290133178324560125384362333064015427805772724501943883206965339156328035156604221746131554397829298940500337939105437154155533219915095195140650609529715491023763915363514267624041150727086502693305940622299361645792626244788928174278131336340260082094306747397765395973166637956588376673893661610623380095681602818009808970957130931977496944217893018454749453269500533977892609232517884217261444708729494376034390937021364577001215430208506230227694296018405200293925454817595470589023269715878117139305625206298721590332952601356709645275165917307923261495260494149950642980478489101940303458083696966154500991768749995045880858430070414302309824271203022827606303264128454552903852560267822642120843873493053409264501299650748460357483251906739862604871766180567937798737345201139002331784459090755754182688914064992744722994302867671606644143464928913392120434939154830337537503146087994205142192628819158473167228144203728142870301813322271044369138468230802865654041286584805542687221139485260209912111861444256896346759692649337979203686723924239071535752321554257847214650361506756522913098530120072874277201512043792765190950011180543864267349090511310322576996313653501034761968287267259440537565008348788379308986938913582790148408865955376016562990853434464982337447158221915252058945232943899494662126804483795729314151481091258450479069493957742808155048558755468132686600928163405891341580656019310064096152156699859748693374584495384620542725671486868028744520151004264534750423522188566112149161424153654683052254067293642414980192016146192080936567669506113929598237823168586332572476857772380287085234866248628229611816356954498678622107954324350635463225098160295130958785768964009412504482168404178399882161708177877857197813360383321924516710863078292743893123211613978053020000079386105586628555719880755727847352190704357518241710351458272073310013882649396929756634452181022380348221115279990936060034023427119631356850723517245549759373535977125268412043812230457058773682706888869630459366832209171155649719742441503753063101426656235298195438376255124599805074740435984210156085574184138004578266731905369054184226964508276111459448201821264738546510999371931922901832901241118544750017182247490394700114033689487611362365451917511384470243965699986066825819651214746544767647107698477477941797778058885990349121549614635937666559664117382600212574435844532478151253567077468664500416793611658058729251833024269274760404768314562526647222913412525274455607500040990169685652933238586720744625128536527217422577202592664718568475512677999251833178576997099340268978860992548634861941365741224119482452180869475298816338003646263075030494500139598011692552460672888838204815620915039718087490970410142270845214870476412656252543153064972317590010022445403195161120346399241070190014610704356666406526719190256743046031443626424996956831563510441115195499642523666356278923400573994475585785890846991253380820695049040560076582573320274260773492046221585325845947370612723415342820431763362626747166655790307316127356580886209106827331146098153813119115895086022736949533523091770255297245297236404895186079770891315032775198727767713935720710718798715702835703094527910105585770816200422549467408716738502733191746171750096017840755862501449160151777247821675797518843830089676509359812792688831181914227895018424896346556644955545819415668905477679444403154288203821003441105087536825580664460861180022122386441917296878088279638313593323541844287280571619225466201185784987456349887966821876838204884207424304744521795010405964476524355611252730167654411110534956544164777088685588243106215666599358648963819485381485823712918529092211356475308440333882432779658475653374653473728982494128927641106765435126561611438313532856335658770387155357704495357426993194531766797042856514679219386702845775093845483728593065810382135153379542458671051149634111100797202771488798625517007024501120052031089335788024686557001632227218184766506335631417189326044642424771195325271239446881905556219924402542246823930748605670700278260673084822122231580936527584648476532014496557886245117853843353344430993413282583737876234205688264428283958450859319586060560617921969385481249594939591225761728900905685746974396260582144889884219995978134637408823672840259895960275883613559202460104342445984591071371936379101960900960972298738815787772775412381914610618606450217828347941261030110881754239879339234836499210700148724007009152201972600170591758058871606305363232415356345506586567649380268564695802782986372436086955830217734303206548612464717561825109963493270955761153846527404831360981411018939689113312759993888291026056535530569262066031267425513599989291191596794654859973723478303280161622749296273427846837082509307630818168156696310041900324490621658774617745271627441770950205926373155470453203721032624608395722754944584530316133092015719275014846293851834754806096258888769920843265806286877511998333626507330648403061148744392084923228764236218630889550089979127787274832513650046736974992752861077063743788940670994607456557635986387512824067350757086392733528152370882879162462962962820970421295675888204102156992259226188562788600331431709327367087721955898517139762217690637236014551992986282101232765276279599728988567167358894790793330981778404795286517033600744426364603611585580295198056195541696658735790398392466790599110199901713864650014878749949693922131542119057061656648389676887387819269736851355740103692380843477113020718706797981001906773960640317128346910046907811256001855234408351142290793568836376475280112103553281075040524721242228217101881819875222740704901996512708893612509441812529683971919876667723081897502399209375895343878739931206855492371559339306520071573224640653586406582525000941367000774592543190233515356066829910069947770453282036053954616000374181710346888359834003206982728136805806902312850594975509903075554354872763402731338701667730953084532822916708867634837523441972937374530146916382159143532773031380104527106075488595332790470370925545474771042436098339349675497464198631217652228904631843221088146176527515261905144448581548891468670321429838401816746438671501941813865485830908200435405004125775969303859887635777749896651440923798082196512659929524952749265393617769886949869345087025680880690401038439264138526835140361650396947732947749905859223734321068286657563430749536045198264244718933131347087808044019875586256685537613829255315721303879585547625847964644393560672805539368329863054660623182485223170449539680161759207729654292558511460439269824404959199628028063033336540348082238735921094282187560741229708740084576322215462257101678606902618599616717756446084490595795772446981669158539684409540064305094140438060320929279213333787314523523103700201190349120454068090059404766306065095223246156723197303067548718550094934442999133919967369465123471464175037486262192108979146099928077881007152538022000657624606967746558540625432940832136915980306265471266082824282932818928837017933833580856654642410104393090073757038780489936775363667229674579444044480190391536022848433684154296417109771447472096896941165751232160299170081335365925259303029654365087238675738443065550422713922620342814522035340507373212241494758220278995082921070040261804541216078814293262225406167486596769377023017764197880968581140911140740215500043860208897052769579961258655530681512150005235789871804195663990192676212981146467325950626509998363134616237550845033378476258759543814449332095260237958155640926544217559390330017475593877082620673547713407182264570401647665810792461443442056176276630877462071370305360498433962444173557464995465221056291356401120855651935382825272807635269194573109989851735988656384494617384668822503714018872769053031985524932573276788646008270500098479053786941619621286368987918263873466199960343180295419737325152267139149414706929795951176953323373289140024171647823197894437457418395643951831205167069709156345362179448243774281025817569954890173400560329002485899110383986180641222473469302702702399057416774491678690328466721491939843308156729333703041329515104504143276188331357485336187411189931786070488241845941955323304347095810647016286530430941912772622535553570541685946085409217050024805401854383141855031305228019019615534271073119393820516875313780506765669480048375063606559182593814448361545563779527361541724842650605292676955455957059940756108335663912846494084102385534707949671728167951301053630345803736312360239195057747194458956632301821525237365431547695010572983663774970114064455372222925486449890924243003569110105802361513315486461892112739904432826841006444961172036542886440883263363163505940836523260884367828156838181141833619165319442794471683188715519436813332190180478728175610330971704634601961826044813340005802242646850704273083374008655743230848906501495785364689683529635947474673150320361425994170873991793233482857425754959216698471918154639760223359379186239625137238472205454820473000169851907817121814820687767702555568992209142615423238420839886284402821579481850296861638068375286575468493181945860370923099304048662225749872157015846264846339493166345899364925893808678281964287821786590828062614498670314400595291990696703758761148983870985028995600851406349607998255139664069221183819447574778755818631256893550967601122326565623908323579244570536344142405785146369641518002274484925585054192865172363406607982524376918990264964206670145080530175686514554511413303840484753157604863006332834841229971961206558527568411748316546584595914575642457064278529592397643592549058398972957204812660447494937618727619498622335456958354071447770168202418191799524765015793230883276150056595798734621965164300047304529522246728163826588660089517032936176991325844159743756586220473372637532608645145753335608681677963932497299864207989487383501982180252724221275706102860066536355648179263709807596943852262895831496292906228837301753386301959995695492483561461645828490901246369683039719450921460440706746530009258854413366915888016094146228398901911529865798555399070196858137743034395497280722394613946554669489929135390039209055206924370663000115393433953255636748175682849437125922866295007926309956696972408778592346706655805620150090125725737590130527513896745758072433785029860245321182868686355202040519816365950724715636541109360024309318411978992527299615760908963591910585436680750488737378741716978861911512629129115557624006101214046390890462627573214348534576866724659979890891578285495182637962439429324017666060751800615605433772850593928344489975175321997457651744845326782295557890304790589647972743087275976692097443704408206918915300535549056213099671621167166383650735591407512979885746630770716251700192350188131994365768642416687189031464454114200737910717660476529860618318911701822782117800893421506036981272027352644237588903337264359858565760494443619775370268832318782838337065462905345349995514290952830386951483197971088741674044993999913063710518507916199802399282424288585626258398482718627845812567180869037046576772337162908418088822186362176528686080633200201290249381515861336769530344534141727774541431760219680821983817195841531733862806334718612611283966748882756340135020651351182397863136218276257074617895565835034262319789575379639564864831133003174692292087437461750810395331218322841869350613062548390511322941036779430646949459652972177381822457161093465117768803086080936074918378069960284559686119377438705028934442501660599575872338642614053087207931996804846802724780339673294055284802835849616761915995780589446826095416900194697447108262838425084865203385552096171849021783769195680263436055904762227135476994802318952512763033728863097542807857895175086596618209754118050954485018858417144421499736866513486782195010436539553968486690332325437643810680237997947753281038369839658728634839900728099217041816951042172309593517423059556577247598219070739257386268397262066635649481134451967370085441841215385542405065431829190291667767427168713494209215805521738089999545394989246716209273575415019175222565058375314488172783358000083808727319643517928152650599115345948763947573296332771188694614472404452947081886635442696841630491556201996421356172513686212735458062018651889465462570821412997391912920648660211864065516388432032644809605837385406583306559078151660783826256056152071145032607279202496280774407730557779436316811953386551863952891515516611003501959086519488162462199462011210258613580774888661704366629601809652158174822871536595192563923921313099129685082008167305881269741689233171338754317606125629597146805496721195174507833070101064431153889367118184626787168446262784833313257633206494563191640603239539270620009694801456603474327000107998712668012017475755618598190229577674676650811662462060972903548421320635774830488062843222505058557495819778361417202150332371140537567144971913511292946750313596604882515649854846683006733205472417103453340231039310582315350356617473224488395438424595199789131166551841713999929881017138392703057728439301550490100099537422780918272208303553302802382902567868371058626061362815670546416148968878038516814444991928016179412905486248228693001854497749394698670005114865167447816432756634147780784583183993775323388964926930785050820071223499288233099468441718112922335493674709732736627239015634642731336394277963245719789682187552476121938372265991213748409209450931879291371673352508637446095881788121025445215884232786528230125769149390124696976579997793889556931364908341571022884474413199094233280280053694721231223472870069308726528003108912235372002655326798444201797783435527036456255439128082138909992879832701681906681060296894419965940774026930822847455771058348613147438693061456955561044582767816832835609140676320326234430620096586476134577153216738657071426287051138090930044492964876155582634971751572076006960909256475939438188950451057098635439336686575365169976527034887819873985871212124154226374465143114073437353596173879778239022511843529974335365257420990703620387129947441334091074159768065137559252176340431665648872891247741315625557651419896928084378850941697188732465090232775857196922715918265667995001101194092604384549127606521051984074547327264888652007541935689454959395862406701967316081537609064780205209200830949866872009652773076520115594343331506391861739889093389899374069854211780413551118689347988479088389091513240868351632592715469806116478327257156519621887786001854654108990810997590057736108287285614674666687825322221298667006497243133913729384527700929224007107186031802730426137701695881796334965038381683655352477475002697634222709232687189714861784054782147743498130632080032842748538352814468323248082817329589859097649846931536295319857762953975572281461907398330891789248301223966091943057761263863722683836358087571214158170077591115020917619261523989819093226568212054028908804671102799765161362956876672471169200060867038083012192856091143757961817678937215230845197550846240058164349255340576461162408465151694355018098210611649348924048622842514083061613880561579627849429771435920499350548346356104054735406093006222406995816383543935378369056744274082649614560282780099030540951156744445425496789015856756178089619294420730688324521791364779052309421804188769693464768549733284391135706765901328310066958137790069081515853026281822287755652474928465497265908497222643013442029916465228359498900359087369262690222166726759360243914331236032755290585287032072487164261943016337818246764871225108269795000118990232114871640870642459823755269001414873884321716685647881443538385178886590004910959670154067217440551210542705913951444667559167974128231069507211610486810198655606412302588682153098997440883696933076067863907409585112151982205160033043059231390353908530389685963624739314583533290994895831035184339143833689343560437270789619924406000050949144317336347721440989183021651489746376373135223839409772293689769229865947066192429380237245322172019299883179957875778431042943469000697811073051627379402327115865758801108170547408682846293152166418895195454992385230062031728019432650649386258794731329715734016917070954849904618894094146140398222818141661615070092264325871792797011047343203832554737530428514751905116722039383685334260497647715511729954768355635187828804906082207591106070663207296454377232336536405851391553377421109306574210645427773948553631682757488655163089411027727020341980818303004695995372466285735922056576224630362181319630381460150777603444552978863717033683685115707239486627202084396658571973117207927937804473514151916402639195223991403423283425648870205265434599858402369509780887955348376093765397083381959141479440941302736934425026538755269230413975341802960255953720130386921618299351826063651432656672825639032890293813578865448851209825581440011119894204682962388357293572087921894106562516696583699201534742280652199102865900328360963672021586339798834058579862008552291216517831303732706262285492196554551427109435725898500935715491982235209560003977027184421192105332202791916067339849701072384669131004230838802250322473504938495625090535707896842700716729874043194672947822043611445392976619289420301298985938978818165577345762586924477142210117080748190632266454782182297165234175027995132275182990277865175000317377209522858005980923110307661808823754501522424690259852702071000637314625529712761645936503163269784943537858986871337572982610392061057372912175821844102195701577424944195257981283617374800975673142947411442095350763792031466495856188306545826618103853597922768291092788707880378712203533331138229623386978108791851225988778062055132645569805441735832023016173917581712786934462103039724958612633995913462436575081576405481720476743986228909001611206154171828605565124058482060727806931850631177915589574565946329245940248448320515223933319683790548812346702203775040951358790818715822235688190096200538404523543400391883410446006425983807884067066472744937381154602855149787047032307881416070302495951273111154703486895611334155172942368100094500165998472475723066687942180243692581818110419495179843772161535284278167152833034758744064301075360424144000849179831060216433865711954937597944445407656637710547547125808104052482693956170145597224142902339962814405755526901152549215268672812314188683891896977188809268663826951763991618406342297683907298522562294758431803944223550473407098025156712143245335815987333670551229060957192474332007583316143989373790742669215998196965843400388310442821473765169332753977855330680173229264562241645347854705310292977255556589592899519605735616344578407030086951439635701974194753080704097220298218924842415391926609842213853832272291368720206648580671339202938745533216789510750538620600491380350548345087269714793639042021512817022956062127950079414475675818502413379032820449693240947397849693445934335656459968528708615240783543285631079841128409643240188557397646149963764563478726128369164627813130888236256897568595606155826350102136934388611942782122470497960074400926368403526021486526514253451535724235394034278806442684724047152316762792374228838052831513094006074893767201532008745395674424990684891453347373686221950338050732720296340622053294232682642449163631702505790542826326405484158236798911736845670162917116617111619427298621560743777467286508858608993896235195410804057696877456328964087183205574709582735390031730942419025708652897532690599403227568415210284432638198776955156516890932185326594920045753731949049731853349017389311877199460679290799850664734958639988285955679672614108353569865806165605228580526097309515960923284069775353712490943868900463672226007374155246447104447838878328394901695651537055072136377194595764736478844203879112750172268048435241290435672951849307727075157610660719880859976962831268515161623566422799450065486334512926812224142186228945871207316106077828313122942420032753198041142684583668298178274714138952015703166467407769152896842322664942550217733235780457080434410396133219744174884719855291074802593082440580130457655640645302407129843246118338561577432222377345578887646075001155788821080774977472233156081613106861797777229843098662939400175940336307571949387723134496376687968815996585865628884187242892018565261627562359870968032782231463406809188841341211410541754653598508110312008047467010300036585986211745008336003232221528930408346939668268532870972898618000577965855985681720711252502007780660680985769404141119525499302693266586569759208685863165008829518548777104822535489953908358372491260043467928997846766594764795870060721493645137236094306831470986011709189103064564258916006041342859282462786071062501489502271717085805956577040782871490765479813552074312794971662326756492218371121084155550218593975863588344243228213298708792112637986314489119979804215301266555282209736069531053630517940733179911217716084859640798383306072019473006038860526013207211452280537483764810661156333508697443975207704173431877669225815539391101278258134875398381774939187919912890786393723871031214738684196877264583071110391907530922661792737290274259692211796103062457453025287899361541917346695490173840584630826329673556222818967230948389304410459000991983141999293207813393242239205491003354760242094824342205619874781175346065278760212269899592846933639219147634821328247124632112291910061427874682119466676374917495225823751655214801830397947467285856364310738541594402252394729797845694961534861409853422890528700590200323326062237089752218498233203575494057240028999902277436242382318460775202436019506675082564458523875193970556226719677912630143380791064415107663643625885658389722609646955387327597338046818114731819368077128846100767824190023557097542761241711082845245196273857127362927714162744765395193005037479457174110426045381811682866852200316055126822911702907341886534935118178983090637620293373185372392902069974495249566819993901860508987281646151571722579978762309242861528706030450604877627329426735573536361866496238235845652145860645934449677028078411045741574658009606722515448591018031417230878183371691419973442833247010806346785616842262182205848758038767539965614408893614310308106128451771693273706702143092954969767960483765089816274383864811243395218099436201214727087132559575915905074709285767460888610154738894154836588650972694226672165506032669612985482550636232709687673983502075181938286944371347198334975745945350580114789006376619369398125483940574379562008370339019827393146105948030861279504984218572649206893049771107436860007460467499969826704911011853651096923390051846066224316603516809604265356930845290919505087807848144969258678339189044520015356135769367801169838601248536342191095518000092229973871297397389392317241771988903202763110560085223282836439306946339153073731312217048183465265256751165061804710078889706925119026038727634409697542743515654278526421530412281708442300611294667395813434677578776165499490347107014967873900560695940173260835903835918462462244774411516455074960661129261401783911604747899066098238013454882549017181838509077977451919609885554891619693908311634181709506894847265746076103419199306447783459099935772478826177054638367686914228399629127015504526346858686861869937706022516896521385892534145493521582841203269618822985567278348890827022207529260477068801720331766513488812899322146040043136496171419945269661353548188088041219517915674516807195277012748125278035331229860350270042293815055406165703226649922051687932732933531917855938182371466655391065262901144541804643708736931078455076350558121980628271031722179333848615162429633525111113820892271573629859057961962464423726210940865573628592698253023136802925329520517405681105354670723693343010400356344410029954483639460091213166371412831241875492862201759500428675426516426041321967977317769446163625160401710481858690258535963525234090386751281113565864240766580365765109647334714043360141134138737353230349313216963124248044766259795549401637311303110606571093414219588753733827670978744306283849618131013954475540858975694814156481582102278584509774938336730201420656848010026454612144986391926916855692958315249637999949442086854179662564894030261450340841625843396626194892209243817356265462198827487474673276623475834846470289577343301318803003266533619210954275227630243244751450951788812760737150718373639106116335314806779070074966634620696726817720235820428950244077541541156905663158079790105070450709118396833697813906926906943190502734254282404760067661515413602603418743942526006157323231633791193852414961082365841047702162112555458009578776701068425820563294413508405739441790929361293211762386864734964343293719036838748176381842392013179837318840601482214613906212984253178683326668737762987207508001749426611087601544614585548459590911709464407180542315354794351437286706047659889110522621197174711782604679554444689827565970009400972898766863286332930151160549904649890086098543894500201821500792816909216081985610794667697454630459626421282295083222920115540293836414866189865486101094584785433427624936236720399518963704797293055031160467125914442484579069415730718384155848029601523647881205865325872243103861144470520579779500894477953480988708064416006147932566520650238583059748619302843432062970361809817850364421079006079187108633947350225456121579031305654900628252369772778212849221497743390422912432226457527203246107040362321183227714987885029520367038263434771619661678329969754901562788832599572818300319796955199724324044772871306924511270678506325235915005246824293395867205606507596275925085160903941257541975873514091896631075103374581282091528436563405418074542450412034542704755816988297477339610639334759506858054569882673885712052826929591062196900685470196413359882551851535621968397055858717029174042028190375424363565581889181085385272164370441801976418403412577154550494480981707587850524793746088498825689767615900422059996734871103538694297364599812086354529929868461774275524944678119552772538706746323543757190122967997560015959089712511311078464772135477785342452059032044728264089314566916929737412426781801989704759456533058670092302824590496243268823000629902945587514378500807173528429622233711499985183577063568012087011723316900615044257957245669717962830808986594854188831148901990887994732894320766925096685068797599730273939708113272496653791053071036422362313583847527529451899135701295926422885763642227910039955749276347207759256715394960034562061684971800884861897222430406039750731901869518264804373108560306233893087402213796383949862127972658823253258510221910097994001319972702476506281917223245242077636075065458924759399712319114319231151617203133827231420566675558317700392319954982000585551676728862269036517474510128484038721641814171904447060206263835288846940903011001785589811463302522173942100541105709801825919765445914235387514954873545946480959737759460205430107020987214610252700215868661834931291141537251727831011038069532046795970158083230168157745896500570217508802460966049595399280722436583127612244520369418518540450606840092188577644189370818228395884753244198242220059559330139824019076321196981672006361802902015585859619697570221782291942850198273234109042839796473943025282637335766866090376780451664104588195008032826363428625258397850725530305981093972038043193627219185521164082652072046814973976656533670040359794382861241030244393950923570218455321110082285411795357078860583050079958061294771524303433076539613467701488867752592912780262068675480956056851322984198433210893682008783279889152323339751717738994804926513702781743058711529866021726461054446887938486324816816858822307367382027468828737176021316825507938451044422917053536003570771007566270279605170335030260519939464793191944299646533694959228044302301054593004277889409571579378551607764368336568350062956874909580537204792970742799269692893976325949452039144995539956003457528449550151322169727827842466416262839654991609916330070642861433790374732443781508096217886186741281390434301629419344695577773970726015559632872981281196310553746282084575029924321965749274526535533783300400254296098484750999032026089782120273895797052788266867034427339512432997930016548035384472014401094175664330852788799175405576362763974647552951889469874297277359043638741415142009788773887284654872024912652721161008453072518994343328360490744314826150341885614766539305724088940396807465854378516392248892972740208255205822193015667181392403260496513167189722738683200685951680121638419640545632456799277981548914845547906733248275505332158948006362586066776297892693470659107079508209385559582859364741364813447494826093463994231896582818356035220604930762914364522105392119970175628644246999550318858835408841524580087091960834071346046846746298342828792088601022760866519054286334828731697239046940467986466745488080780504363992478298149938142043573859693809751312355800373206197420184688208941530972678691679487672053302480737136256275798994078714586659931835042145348930317915936384723963890962325130833178490761321911996950089240283810159376129201257639276959906539082108376303704180010930431007341955994697015232625478488123751486362270097061196675656692906520550367110420158044897526560457016714962082500830455083938154508410505444906030850824811147019674413376141190572875068889659867746334994807645111510245133263211754426745839454229021839401153914207497645743431365908377119712305174943258322442080291971248578876579850830859931619084483081837790250645883213903019419948254889706087599449405941251854263334983937797069973238901680269440784325731757651398251652325227821372967043420782750097143664924297791108766490641269855941638734549394840572023725791854078426644493439505316951312044428104052290263511593755097103955680528422412694969899942736680803335109786399243096836464055895524939128073291973670716487571149712609283577762523268295684529208898096734997715790664313452150683020271751940807505099599033282698003909890789021730991846316553022781955727844130033077065998641439489389954672788362749630926648510450605932557250295035199156777712142785723762605240914220949870786578097919557886373867128787667981864092444553534325719157739879898137591223227346369379207622389035414634391236232684553745103076357523645297440008507828312915929894841145723250120062195528510737688526509789427987238215558678416162882092846272506824756159879791458870923513818347707370511551568368732683354592595382388597329348006303197125443764210829145675435703365021736924582807075195424352834938004935380877262255382747088663077391243387721272283507103014539150243417757738311926233458951434432734946587620301518448608984665986665900192548238269552109859874312931241808631148976379402298404209072924920041169023824838131775499705690443468087995035370748700933023851820701056278248936381843099135784961078160213707208836312502815020404546008280057841737005515462429763495984683748183076824966222271827743572734289924517857043074044609242610705543459481366119315843222687069672450191486491787994621913362678887187065090855566553367887900431595352696167017734705133184848599209790592127437196212735467289228219077643755695127926943202314934644850179428431737480210555103250667495172855898447760098069988974920112393546899936202898663564662752470763117700324682100720684286279424994476765110413048511201318281670930611635553381927782544088718891455718733339809200221828234698061100116414964485446575123794830211021021747498607217210080479978130117576301804189693738999571048403355639286731605028232715873298680027889792720516424593211238608255089316085250717314805376059781703060791728008645980158268251823431867816528870738064897035660364525132381457205450728118291320324880487888014694353721653141006070595469150847988553878375342547803915141444938944708859869892735180727372831025462652690064654722568597645051202064682698810197383777825903329369664728639018268660793025938711621617142608840886221382974267716077446637847409651560041692851737957719195260101203394460439901274245407687753259533943150342205763239881117992357503723518632545064110831657051009021396689297577202108211827897633577095162621214596245637351670713675772649370427907665840594519636946437237759474432995631858207313592756030621423629698486633668490184563045687004064667063176514918731320171960530464376295161351480249895471546754922492493934230656936618689199514067477144104792702488188607782603303536401113097280195641067573944760290155122116301120763284561969204703656341074414555700590020844561367609066618581662209348361504793025955047737103777756274889336763606236902681465182381073996944554836781078602402031737283168053777051502353274093174209364912070652058579036344881359191595721950156371557431378367451866885381311033244602780067787529163104740398863297981882713265523044165675115410939845515528238156155303416307724691759803546508417260959164923758368583803611514856478424376295993920696402786976026732821380816993367246683721414368443395708230781063072935918424316283042949082092560995519792657311520246517768563229124212625693158725969137518416119310889183571710463627043985543938221111196975603092008544741644272304361092015873954990427209679619296000602012808117433158265958981367941441171452654950835602742076449363047161590297083365697364777364715401212886324451215870302675344474716083139500945324809068290054803408374634109400768476978363354024883607787997663388578619732130819857588112601158341715016789750960392102013670409558740749489266349991035172185329349019357473524924853277206054909784112922045525869948726113476111549083278305611160251688644348942443487862067137740755817898129937199822146317780884458239024853248047473237419493539729595227282190171743220687773935822842837541586448747094765233021275544072761010800292183220702531396794144143046811421517711620829195579084115320670861730850464804019148074772940091663031460583632350592144409443299734018796743091211473314141901908214865557151141188046775217436844543639678304882064506956875764180626296235825860991496054327670816703419489038558417736725092862131373270994601792354480540449987386801527124054158302018453966160484838757741594020852868496210396004355663711549678673272218309253261653535331867321250408396582102359721474052990491331757918152904244535919103770062397043287230167439364050968609696102211480107053548568060735153604091966171633970648781192714969459418871434726516320804548002143016960483021502497670912775830752255415187421133168386660522454391822123852176662674568509053475868147984854336910790505419403989865128679267925022317240192179076504866132276035453357312299054205821397656156434723224481967130391261596603939149071725205720097339986594190137158882345061483191243038393400107731467801475777964289553188184652480455261643726880691309451743782491654696975206965203043213921083752794814675949853247955675163614337020512425237320604928133166899058070233252616248006340530262394862731475324690640519909071236513084782028014670234649756151249956726763487471237080486785838837517990509326924429749680475170619578472193439433231690444177504002277772939703169440456477837964849607051439430583789652547466484441284809165388866688301866848844144608040004365978788817120851470480407448595964655682913298738207007697510382407855931715868003018760620908132487453283668528483399067763479509148584406660426497274561471226287597965896869648367066467049427627344294308392410419580364011073381848594640712462358145493740652957592620083237990082132881563637583876665256945064144121602647367588029405687658936490614699482584544764054376674554523703299034094825528785903746704783319889351695417641499517159735509936993805176537272759233756858754591904845068893407627389938558293737026966592808334760028473438494824209743860641707130436563208448901516253045021308265837674086627962224627374786549041318298530760103608466209106545846814879155526738788916122678690461722258215950233187359867407505797772898718103513584882894220158272360473641882699321236794001403042200384773232606441105792229943828132595016097107232655800911914072203273950796808615525939576330856786017359291257705795378701921565899935908023535931248039636654681631643232183940923859892306360998731462611988572454552694955511749788776384282846746111053937982567270456165743893015011809500487595837615382087913386280074755097539564659363197945930128097667522399960042960806305967636179098822138756552103856469769124903891387823203468159949614113457169916157869612487265541287172750466287774902161003290844806444672842278438815332528647926016769049363275263586016944581651381616963217860802014354301028195685300062970642854668599105441003895814107685321018812307268245392905472044848470701062586554539717961646023212895644447772189197015051059396929508612570641236574395293516077469780165931909125152986423980850052525897158295168731925935426357871437876029426656102464852327208009248484274895624820323717059196040923138338669297076457817477065164127865348591794798735437859823925260463928309402626973660344228999309415791465167667217675370477356143105425062685614847736219083122997424247061764620125092243870746889594194840860282287924680539325731853855213087847356817841105250224639892574542211495857343256354390685437943537382722600133366673849254302161298963796456902416174698685540234820842346152062719391609360629503336621452711669944943358934646627784469251667616410728303200493414859876763585342364742976932366043417420298392443179432598335081868392728556901365297799916092384687256993959005695512663716621108011706224588161643965290669495604995731654567426309916784502724507367114559023670793165106999733802967943060667367236430023322867735219718428434690545572393991415100428366154949007783577192632672260997474329524314468717802892636101994374368678519069016229394005607690868196423050121917869788781694725040242002420178328367463909542522055147739266761334720630095394973478181007811063957881458596933146181989291099102477061280769979901500131355001707505518857972808021418775882903894496633978634785020129870191872076255836438342631591484373642780680925694693567121644796619384305180460037763547817104305222510042479060136877223871530738995767021896450199416925016536428551808981543321956437399729841411954810334234550456073636185866824210203475849464333120139852440368386163114185903028939527266944966468248697523627166859594748469200859188191180377750202985251954476741107097946124041624588631876629953005857872070708580123046930109887466400667422091948643464009467332651069102375992271820864388783312949992798269789924969639102645446645075670269684017506387762753943305317241287367965212002262999281181415425937588594541725333476537486787628413938063230804205160988673986379078345662696644936871867840408019316705644136792341131925900630687696761757070090218819898101366205100695294569210864087781418908255146240506165882299937008159992717793853595141146452986792733552620958327921749266030087050247870546037155388656728360861121068985268095908716940275579096261018240407801834522298674695494434575379215439806787902833022249044454620343411953298932277524524464574573279059716030584743273578938855799081767056132450245961440506167622351997022058652320565413933930558006913870930688962460049948358350109567872734012407083365121077222508489287052397981839343108578599865415087437672815658881230393072055526058016803808800981410420285522320440966356887550895306093411378877682107663857144230220159451843281051460324089634970999410035323786770493625184513936735649883399267235841967682638611281125225956595544444943550415572515724588381694552316446326325444248949792140615638423071725263566767739804884416066019724116407339654338419050571628240081694279726223347938787560073298899213253417925232357441757770083824842670752620155318037140266045182274213196257523350484393749740099195164765146334634169491542403598733463226665684282176908122637716300919037263281711906884890178679325924069094587267484611744608496517408995546613601013198230729633168471309129704138227883569050069789164038945333355045007017564688075333434869605298096996671179591873239466419738783664740168228792035919770506100599943256862208047776596623029327978600652601448806435985980977778626616532402755899487401934990639960533288753392653517243369138441250852087011175188338817435722599395087700704226324952136761936617948787690242093270742372806756370581849337713839465011548104621678858209646075824379452825385862073050991806851509391895423463452195699407477349885333549899460860569914226669306711163750368623410228468913064956451236741766576703880251731880069133126712610464066096722296702155668289806966217896879071066502896470717767593273716736922930453276719012171000600289292352291818290756119773270361517374513959458897959762151975363082763834767133355847123735156110266379476656258360808139593760141600135300366429723126445438727771356115110447171936161770018904003478665007966963068211097675579399694650414899794090723273644719357622060741422850807049605401239648888034428352020822959378551314043204965083229557411060091439792735910178535257986908920024141791552978272358336097970629530439768109107632740285034449432223757047996797942562308134734469081498462901016478671313525502544283666667680166646655312056246301290475616879431023725105884185512427171841933433626232998195470917021836223974503109913617115096819080947334089513518160472408145310291635531734194025055559374063428629279782536155965990897540354478785231822227180598136347859542470594630581173901571178286872201110907227344606172064130527157582920332529073940162171749192078922333593234942291064205908354556068846988398704696900351698620086342748182289621508482633044454136563103125804115348116145112110623858897677250414416511017661923427395783539640232512667954905872968554651747741004632686993113719558408815896022546293090326299721819364685288478825275396625267711548210394134801456318975868279389212480760638781672831781498824462105432617120250406821188401591902147159306278803132914065802762389477152012563735086819492109467410791248740158612375823530177757863816821081538466145245715282415316759003179690992446150033929191683134539678354627185210803349039103999891195458459362183129967803113828726648031701157499816920774006043536250653858556984796265072775668266614853828409960041831533489436450130736866513505510023758905981077903452689805761800710742229091956757560694065672234255872749409577124125335976810461166222833955898675578489512040558146812446318372171245215140366373813054071579463837407936280916938713924663255975542490629392349843150733887627712866278985634500352355578277816889400278550435016947273917446854741944249762137560115005354609967162978700832249786944932798185195928033366713817488848976646873789695615335265130390767052860769151318717789703659178783862543527480588413308301768649357195332870942272883272581846853198239646168601559589976205786949527850326416789472647044919793520788774307123544124665292313386169591382631533802765863262114750321661491026709513139687351706105137746994949460065545407678813214559156855157005510075460354856663255065721462069080111989649793984321260846636114559535713043344083146192991394492390552616904307516069697076532197734549247164133307880732447841311925270385775548672186038663300139385427056164200242404152778597826091099761788410907863220452622399650844346941923309774077268374929343473493310563784461034143709458058441301904614309690362097321831994546931709223870170374441923133188242827167740957935260326836212701828173697900035770634423929743287363256828230056988904822176552712772018128606459638190890930697648605411981682715346032808286688972599411357256229176604771574837529792885481242072616918678884621739178595054228061806024738918156367232060274556541681961933900683001394802764095269647937400095369696121234920215811913243815590203025910284178419043325237117902918243263259549734543512694101375252725348439633220582401522970227563336243154266974360842804721293673861411044520611166704524048333417562827169259387551292874949071743119800296334143069196390508881536545300401154250370623964681650022829745260097897484681241634908133888055741393382967627816131641790144845692718671223402945933514509904845218064059494738703021480320408739888873204196977244416238460885896119213676679726657769719415511987848855388866510881357203367258677070446880948794654068294344306050467370297415741380094196062202736136361401104700694152637502264123348193970433686572694196702959236599464814775240539133004440930533478131164881824834337712006409221489328765119007849707901307717464577504731818943234343521443181835996443548598070166927670047112685229321739107115312437067282303933450203414403495445312838166822327061463265983739835048015075885696882362844502383005141313622720683837044155580632344998405744342224653413032010197303400391516505483578985435967233234869388214793450571204107995473689291943277635741698687135687892636084685715633703261299655342636977899016294951953432680386182302573695099686788078878932165545602567989114497334337707911589961666799674159873298138893667586522771797355334166012591459686208346547942901541403987825502903564295197978794602604335368512778860625630362004612849921145510829641639049916264420990652847257608440844249586473253857498088822633150694891505652249038242496691920978890314928020880530366596184269865985497889631316079045928776503389855013714411377056954088213608542335042757006012688856187185491809049061309541157579738531689297699076543897597350447873642797510994994339124226231872776891241754675142446637118239647842107539892677309167411863904969011212581810553580284762590963675226908223931371590129364933140525082945326258386226189672177293576257307634998027801762338667453419471799307875868580413278861957342091870593530951755819509340274628055880959871958752225157750495988322143582836434179719413073810885807513767654900187874928215108609320618218697753249728021717719504508347525471352467164314130741212111502425867360452150859236740019113696034433016364834985337036269240251901798633967333208602024963589129285631240360333802481092274493772729773773337709551771014519003742108509898304013327623434534423306573791081683095289241214665430858872968916789665642499413645186399452258162417059423585534042707664047559572167094671408593566982820695286302552474892831743036455526545333861032773803320687769108483297812804582941055877136413428455662027558996544072821550899422215052824292409565490512613547832475617564452954714373996119767794624481252942310878574812604504621935145386707376454104002659996773523053063848099824044103904607711845394857180991760182814029834430777524563085854773774822032570069845330643996038775447947363817017544519019646102389128894235066921904147823631136317088897295257388422216300678093962040411601915870781537988513645345002718630973514890736260345514084599111887931659782681435364860460853515686210264889856395918741158033052690031808135237203650795246225122849468193021082434407777792591744545974291091034946819729393478687817126690776685667628466885249741074286815933445637564281205067395198647029634161812752588106904682772610788011403366834568259240465430101787181540858593598359747559379790733477419504998657908189629433012579065184743649874408132874089813359266710751133792770621179617105049028258602774325684567270794898580884395887130408240135596643570961966701961570763682255419508850197793611945806605120217792771788822158566915691578257413014632791311713574028985468398894093917833268850854831546909720282530056275098306788284721404767025272655531361448170668741203194261501342210005157642236775470313549275636759895450454046251522789820053473417077146903168314988989729500314150301577093559709494667983152533729784878398952555702371398930817708492943006131655958061878202409232808245820197109953120744973921587138808873563639446882313365509249047284401256096495484473026059115493143304382691811956422576043542014359684691995903302056643129113065367188890902689414579200739576295381621023490321276147500032077414857836669528358566333677473156273363320953558312596094986392631360013033822741549523291525139747144612649271342112546765893617405773043519072671846314078322283533374509864148159229691313457997936746856595481774039550210077161212646712734785929075788433597332625437938360669163014677913306251348209519997067465493399165793264362473533010880823093133860245677416107338939813426679572148623591030663682208681791076268306113751479065436899696986544245348160980259564807116807532073390281475372660110173644882181911908904252985363822015802409776850799412971463169608157862463357528760951801089088449582118112110614771567370396515378031230517703659210270376059061503565959546313727294338533818096860798850370731215967524828661024487071051976600731432837675419573355439171268857390162163201152504409524490332699122658427699432446579906119490771814921609208395734125435329087934295374028218174343514747525622498863560249989330210764685615247631866260348286851256961376396765312541952957278325241877362072587669457293166233961031123723385106144947333351537413174378634870335813158735505279361814041417808487096720703648578461628794031069722101392485453000056131106826295521167657877627514486700389316526453452317773065902685082188318590474399007216279857424262528476978505106303515814550623292729471706552208612468395086544260378249812843507497367897914174798543483531998870640326155224667806144011462919204380979023057643384816687195383128166326632619976845660373394010555904038272132915902818365993201048187129255505922374092912805795081286489389360445889689827182046340370580878774150793629503696355861574639552076306614168612480491394009301945643228658394501158873111489499451545137645322099697811221712180020406538115679630994250703439915327270473121723247960756773820328101682221407304597867901609240924404052581672145664012625943362627360477142022918667846603506937220655587308820172197548976632760440822640850221749929706559137633629943828669894074366211019552628879114035490838876823448707895781615381229049422758346696074971490445157299810819232226629395606204323329248311406087556408135096000284541279285861336975787836468552056674179974768706276725418492451415557733669838690759517807465581469778243074802869904292177067328063872571115591446701628147396715494787740965374753559613116258224204047052143347425626101854518471663709611354212655590820595376670833756392566912617126464047633852321669393370744193564288074294575648898387548106562163689996188594420683945051969749513651492382926872955377648240462660370931940881053544647665993454127286012627067951949640350266646423864572623459605287951223413564265907446887996178641420910783687784793451822283323453251984089007335873841407750477564173256760994709143054635442880854560831236492435442922369779114745143753648932247618771380659495936723677097938601583281509672487894269293444825565424936173252189461578197727953114808050442160712549147276609778785654869958682974217591316247932565878611170329849377655628452801914331213105722189906592583836773884315789573399071838275384768488656693104824633362730109427401059383314453535915224381680149588874517080643887231424896746799743143415958086424702016644700676001870599959859811538632628176045573990821570338392717542970616904501454860608827519397647147859421413207962651643197718297281849096140431151501168267996560170801427328691482171745909101067133410828361919274530977242645461220784543941637285480747446235577203143979564835900953339084004371141800295766213481701185888713024416663935993068002103894817103885455286852653930310175642962277667537897776732611977817072675986441559671943514329005248973556164877250674892946090999432590810746511784449534106111883291119455934483473543813370675772844213861111987252292580647144047025732715101998053693376203861633453951039844075082864555431621473035824265452785063281989875118709204759522306245526597965241908016134381839491601081381187103357026616326810620194270376731113842975817373423873320063024750381848171153358403334714240755670290071496717177023397113531054761483014581011189597507105031726093288809616813433317294888866893440892757932578037057283005143203194447314421749183567226547130634170167279721064233679312802482652563305599079288276187322677660256209438506555155709116783461016600799784089766124809813716709572725322144108204596280256694732713267045048205161750444930210648425639377423882955522203514214321545144956353863634377245985239277929510902893305918606457268397936064984387270259396457044677322605621855405028145730672989472577662209563205890374560165501919042804661125870681826605890789892578596493490654750992270742799137544228144871260474044823698091915098595360051813530161462771990682481041658032671141529871026138337597800902219039110792178827528266412552478712316368883966798774544431997472993207609293958263133255323969474353491439962416728899842796360813400534139866778335793512400725270973802133475133213697529202136485352864595119439255723272460907982214798388314718452238795015534246377800934599923132500405235786157911160489818991549415080167153045748663879690334136375005813586064879429300597904360272126424127267885592297226098873224013724430379237881266706796412929033633408298484110079405089669768574158365788793448847539334856673843268133469317655770812171427819877872125280324343990510922225681934989718378971055797277928420484947823592128809518951120010043656507577601835753800744251164629870902193323647647313609516560116039933144506520740550652150275614469827799677069898565744214081948481205410727276291663616078093722982549357817045836702102841116060038025459536307552665530896532183975061124022746076488060431847269679402014107947199400629971253831528875551884901127846783481787802142922430714300350667650509396089145151753214940840019228719685102376979869209883295696461213164967810311145977044076765368435889114875800016402003247642764977952468171394897092465678671477770420258189261092226827641417997646151251752704924299002969309838125387042931278426665727395276726040516914345587120727344808414501438508745422384097609647707406270144929631466288942269244741756028744968665147592524897354237750256886965761356929126136053514489381732430987115540531948149118770132261070524227077161312512667523588620231683724520367832564361559649394396345018721856736827556802290386519886312763284449162699128127223774088481598310851725394723855225728571357970193718838032099524393011810503983535793309105590516481301948159832791819412444237697814186635995541692773495158542709357793846154559198021794827150148740848804447380142935474570428990337206070684367730344045164604240047587644914128584258445526933702284741284101506794235482129821318129146444835700783292960791268403206701034908363061271374351662159889033690340213126851702419901944956298092706091785293223611900105183792107054238369680121957962026982111477054863072419283127722633636486213873769451099913411973334732652841799934486352618820138734811722935413340503103272116400109409785756311763787639413757286695596092829756856966222387258591543324699330822480207902202469711497819734149086289182011189694412058888277115506639781789266450305458035626733647694140347713670657337439712434716730521236051720347976313826142403141834266423808034474700740388428155223925277560484135886026820083271866638480341229278015127974058694711752421905589485859567787275458709082042903614750772240403289833550834716172541805815454243623083887145233227465535635534566996619119520475413250438666512254835902831282822900917637786625509351352497225671198034315062449768042189507299763893959407591205361980106394617466580862228423077187917939754180877060031811952687629738587037613385274297890953771542660501563260839958023087292645045368864315162350055611110377683820124635303547351903999274997189459893164228832619711188612710747794714753420487405433411372442727997008550346475303370755120417615108564614186941790455003028110698357728657821220241655114110829407624875444263587069271147278200636796762557563799442077574575184806050756579262689946076046605605120827886551203901717436179767495509794065188586508753386157971426783088316992335941637114103201871051654316599797623136680051417917743951027587263447529740268809339755969502085776795527201788135172649855958649789160714340132156916430648636298231186828077678820498676333792554775523904484829632416567850764330026211698935771968499797047737440221648866051191130580369455304969069053481059604563266127168364361916715674451100602655088847453402554212963761972991804336636742879251793989381993841952661514071292869165259824020012555400495846499508497419335707864834507585117008817235266128707798606168495343587645006479599036081411894084438253800162068869715728627089879564698666936326742270938906573335725037472290476633869931168542159573920088120291554865598554616397820756512662497185196092280328962512691167736966574300931390950324993853094316494227177030700233456661426505065726372522342353948739455345543014200769645026849259832824284707879918906585994845691715324103450789012020799918696124957979299730168861826362841216761957244024980508958100183074685645780450837247318942855355189970649729415128283352646664840578673880018538047174337502408679433574528731478907690504703186127242503133198077069449610235384861768496611687791291533018807601152902050628344244026089796036945225891590707462153261548817074180190682076359593157987874194470411194806160674898880136269384134818070437684567370296921422774438778629601310809784483382063452710033142552668459625365760831237045955168955691282687946977847662412614853239334964691485161720370840772828773207885776706987816194172596192750553343404528677280446974087745300326427057077107710692760418796829428829261103176665740283824746852511612897287806329865617091914902753166230952445703631181258638067181175966774583088288537383674060131176954783862262979049056616098077458596224154507211062689105084310570843126926641723499750088808056798125492547422411312862620780156818140797991535807062795701707627039317599772855344253805114116066475366367891188777925030113716595629322471775469394509367862839851739744910896814809260197584378294036953975868381366873350991315754169522691322505235485983750028439672914269155249954903152691294171116417129461091198678230493412186494344079426485343240534508317243504058406717443521687481954825146519343213803011694623127118833874706796660958952131328846705748368442367885502347360463909438207226872701344401614933799184505622041125139175446968225994191924568670807755415347346860637400639476066852759399219494312693302469530348334830245670704733286018044056130973863271292730142208268066671359531155726665956985034460307184222278194011213881979691438788685181511957832560053680994609544235081523262432794932876450475705034510837057593039047847303848489267733576078539814494206869320875013854565433821758837655510372883731125260125820568893260965137875845235779533166604662064728449717584345845566373557099020124363633472436124728292631127823958515710815807603924420138639760597465124649483341109921172256984927691372977176897314836404959153359190818898161564285948623367056276247400455741153044273575112809935407009251052828723608564264566245679171328494610910902677310864879025316452269630866022646645034554319489214735261743055650411756137900525472395429802322908083631144560009672969308000944658305692595218325712141244327801570934692326907800695345860582025252330757499587092290090653764299638465430884057136994687315537688489886296919718132543628398662322698303852747573000942378581528816360394041964166537116321810292045664236820706620139605861222079345445472136503312936979375206174563419752082024923314686306945102803776017076100742367403717570678120630983626289057456192486098859841252595632556071665704371649238058909591836760197552904786658932194692142582569592547107935185863763820354994327233085737177500080245412506364309187064627204386906402650963537306228097342883315604964134691236035011973093985261537679956438325893309644524070587950854160937567799514940527082869585653633032307755428436541801388847762296851824209600174873546006569592726635354925452455160113839548077422833059243195076971736821889300801810992007210986115270050060416764525251129082815438898962291523696758842526552278305797819602307716586211724694853138654257610402466723409171437177011608227459343329802761299862100895335179538420313503557628106186249961552437898358337259702021687755605959310425143476029615245909385999040456824495082805593141651796526381507654330522857406386867678643857879326625284291489590668666597926871761772016578050322191074967816662284438293346789295612440827279068249895305001585845635129023812714482598324050574355646261050855373089108854783956616975291701433192479919590089588425505238419664502421022815834602115138677406984467915192056668188038431492994740874455725274982536381685974185227241615353055647975784600673840095716895444789108066187930388590923158780997034810111736789634949289177494076012653268475153705748404967208890973347843496941850242036815554161040469011213605814432798865661085382475456820951383502014861355915508880049778264182694566265995311142378469271612974941260490100476083947737496615928048279066491651649957593513150545177077525455857841865367160023319161941595193923441936181268355722655460981544901525967090123914297057513222034398208508699764192418955736009769813267531768720577239175311338133648220389136144892707336173327582076986346927746052838559406292983237208615499697779796152484660907304390489781271017329600068619959485908793845521613611340964315510624262256532937345230596724560652833811594555582729845662230435933159262475233360330099656233088837488252845768700099299265852981896079908191107955505286054592464865301802901988309207519883628151710680638378332194152615534518205335820203696432949622273587055246919291147417895936143859391596498058597918275163286717985166654396473705096130936936855768600064966822622335146658778326676249726206451649934151541512960526796223056758549870770798016603291238345651460940721848916821045049833719578478221414005940354908155175350178592707039343415626971121252185575242765253957652514928736689126464016671822706725955891021124301467304852983915987574524251137260638407833936678184814342037650298839508311190609731631558782657968144806316570636372766554357246368782137566307903660738658755444315891401653996853518766083779435946582646471959388338265707506341230982793606192453317122039419869464791730150416887328740100858234186216496740507467689869364176732074450913616951751090610577017578296451036294098556428413513205894436055657273653905717679267281948070623841266548131278568841201470667294202430779585200009164945185071308586915817253071424444102778943565657501806168436683365554099350029252049099784191718728290165578028114144476927728976795003784732417195043088634106190615638697375670679285664479568015149476382645691840211431448066106779985691613517728315064138287764350409346216960567843686260557965089470530096970264057368679188500207995175059199336432886564602236665872388316428795662203292812567278722389988235269832032005323549716696608820625911203285210373522806405807031278487200975089044261352252851414282107255542123926127058215182798930324070010764098370266267157831712691700768146859790534367409502088185637718504682377700964067879430610797516293040186834423316208132146006667090814281638833691083872894687760658814686763496583486049099434066203210069311397286522160745087624333942941791541689794783472752774897884445182932964237727778965320733392189459705748965899112763014896978445717506778644909398798662045507777479812158053804876236632584328706560394527625891022413904105931482991064854488663564473698600057594905337453896582135414953876443917281937212706411842832539840388273422224070911618123093869539499510206395960736017470320168582969263512915704438646701475821038160460498289475449649617130766114840375816616969388824359585052611187936525124718847032640500044411220697782568673291790937116962591996738419858012150766489274646539776605854117978247573754843519152324266237151720603276928798160141418249664448973030982403187381354534960736958611633692326313111572144816123258068544619151306947298434572889493926195537272736687261821289061534401423231236561400964320222101228061973769784349657189387163583672150335179075889557509236262613094988661297533693375042694027758540712196604736201787024768308892519115331619294004524289822283406601978017913383959413887017068219804511141429051742096817746260635301864812364478670977345724429815929824764464170282304961205811346153647897299992538161124556810590498813146660342718060970156289078733811455747839873084024911721470237482266086695279978120411803629303119308766810666096525512312186801898519423101105656663731136752106368647443820206612311663246471776793643398638705449772454050090908409477057503549946609634546331355590642237384976181936903186214516811028377568625119416420312752922437062828717979004692690182936147554133331447341907539612890270283175849342899359052797636259512683159320673780606161183995648747288501125376040558864902998561343639667415617454099115134890407788975186584767958581257976149260647415106954899351151888238416713485296628561612967532181004162818490602429066523379633980000495097465529416803398565096483699617571800035754131260445416825064034155484239366678032606708852819628195749188292333710491604351417280214603283184819941176668608488545038967651772406842470842225889435374063358611356171899204905024806199172722863898412235579911623037226243094455745096210446266547480453880503272899642424901064297743771434853044585113335761240325536645458905969657822422654312060153620514947856362532545816236496530110759523241943999120924206466009214814629815471411172316346244442245472531463050574875525051559169790773113339176422035286392812604863961141288570357192198952359332231807484952522804599109078799987903151214927389659197016676105722399835785105535536249580968600463506556825615085521029452638187945265094852788853415663023025769098669834752306117636928730866681891013929143735170024027322961797970843399765370576459973650168165762594569923065369104725120515190730362792444790895937252034456049757033874677392061727579443184070230349382749705089598388824022111768080587474692222791646457166867964166615627428181744082812029090799413968079203735329501638863771271455563525359600414862943032995321958385544894689434131911034663606593457176599522887384531733788946053582120434615638636185572067298170682511377685731387585062599570661199573955561764535656813860269936517933492993970520838834805548943714572406072173409685450603289871543546257538102346537608736584466682925293176610033582552156794053083748850995456353638994761694643868890046262907949682543368499730983052168903170924415863005089302947104135756926436227195107027394074188552367669039892171009810599633357992837254376443985699910868962716628443327229580405004490127573016809417752120814992644593482775720068945126306231944249232386875149638242572652217040064939928139818315786993127718576389873972757841920643317927419279892648297879980471080592430446298186664787650845061232079788959382796679153860050627160453859761065080179752861231203722771528481170790288737798453439049336657084475332716977376662894190340322106689272986261785486094880478609253359394463087394167699834384748833443565228056928711325156396771630031525761070984145427902149888147120782770960105413648246845583773467465323634309640853170872141058883714738992416726325226278798063732074559966561585804509819329867680139420480809560185359091176929327165623044589047166610458024008032652121454177801558010596083036560518830527113829787864064068903381011048878795676393956176431865491854311332730201573164250784571096405839413600331533097688502999422784143865884436370326989904703698669176827197276601556914690667746441792029822855090257856450628381700464944172411939789525697587458705523553379148398089531752934801726870517407808361572660017425673566254207608737925952832852708499013134635896858067913389798813581908497394164830656447195061329762263043740621514837639194120997243008658599684232182559726846241499560491714342452943649979585765844455467292623074708811352322584202704234278080242897672886236043775525468322034036128347018485994697612995867467754223966032605978297458363602350004837913396538799502759168941437632702092660342960956072645690663319482830979719113129491462259402698016927834944128578193575759444233490177094130922473273177377916392893734002522796846124258440058293724501304885823816994203407812466240978895267022783252985484473766877198214567516991882287709899792253007456848464237108114113985764112676021992491029996183284587084880057733911296809642022239050214831698980022074389365176058341985115628537715017337912259360417310055363870908303490077877877584305950256075152061893841641589576677085330720330459455367435539705379639200001107490900609996220998065744544543354634290210862855224986741932875111301628942104021000988648298341316167692601364847554634351529539268161480409727232233360101374083367319324213524199024488656786410453400826248780425573294958154212398290213876727042929151818637530029743451254221850437934322179422886652469875420590635742699865784827298350114627119469411021166033194708858870799578895849514184313878814094994252613886659076509287184205531938627662927278039178627675491806910554330850089311315359111504007102101034746259812440983010565013220667173820004121132470678038708286851370164516823878163700134017011794197561707599195630192987129133517230737317305545263108477912902667219723395998727372498792048501299860223680259093865517733292026824915762889180961707055329238922391944013311824441303755800495708109768248237893979848494887457463576444936211243004545331506178080243219711049397019878210750522388746012773003925734597479250688076356069612876098641936155866887204618331378177894785273494641312229132013264976339056299295898330185091703269332303427348519562390511331619870179974521207503084245143568330587191187863556267087240482621798532562492528152889241676010750996119292887854059637896057780328052543071097620801084527754427593180035774616077497811385761568147996634579525351892649124561328983799907273409676955685950477364895169912492933140875358198646455626860313673547128134992325379680859834487826726776249346114555567919763513527144087975754872078793136280910251844531026298614352700135390031836137727751400267634190548568213591957642832135785726964352099950642749932893813292668887888734838496415881847870089509138908536615857012068418154235673181798637487727688527537889315599991671771775132435123434563522859443561937009491956910690452304224131148073200471905601202817530506212599730451447479560186899651858338147924216521980151683262569838417949080308676442861882358258170589085968398563608396676803468279586199491479857753401912827717670762498109364506762282720563732653745877356868893570971527931992689680423523146593075365251990207301336671856799511738739941754429918425141821341699990141494498638900855996992081971068163751894275587255440779960189343096983157319664876072100963931037076722471473575938380192635631368626586983338983037352466993447042784443657691588705761633085261719655015680920398971626166313018842815751013737484747857789629629489155077440619579914149119766640017085156132115018149066552861328781499545332672488613854389136109757499891347026154877451178911434558508182497364228447081123788852158573725593106351603491589769807613976546510387194866177685804103997516936584744249881511624008477991439378527159790000871705584664664017786595911154985633151688515727505731849991633078267985071568626062404661342234269677406666798732041890275876739470847576984649198397859052353760635033791290977421582971501388301329377652946352812913533794950886337819548737883547514524120571516449155723819398602670647859252682281360584357313594100333979716685961981462697873312927401244227521043729999121664501085499274788018184591138836536796557331417786789200209598148436065539156639081831692200550031651493424147498623581212457081267522462852406556157416980330580975794478171366880388997115291599551693392919264614477239683514445080481588823131559045290217194327060834691173013697756168920764076848029260242814717831376765330451347030520163267856342637632027020643746002210881396040819616687804615680875441702682574377782919568418291206800692339013514088592247533391833346377473380480250340802650615078939306718217360682831894268293559779259359780003022413700977249915322588799020603884387110911451186789935863851717987087598761907288669205439746310312594070576410369804300232093593200907472203456018470943905163146433412379518339209706778658721419897491760384727103472183717123836620906850542347990909487856042075330178995318237566415360207427422366945948248359991955448212414298151730195163721936296128987671153120518087112019389634515146748678605388535983618783841440263027230123186930212298838489934033625797694251217956393273632047522688609837560355864605968750289294149531176140756908784310017856339438300273639211157873525968114574351469754103223029154348918053793067520153461901375269125908409452715715995080101616030941820342421499778995113742374807235174886726732797224068692590645044601138908227018592674184501730333655868074385769325335607419898762655449901331695939667818286200958661293354427122741404670066066690805207133133161692464830086572911305766121242454824011741545827151526610156620655188770273586760543407880301938309040645301367603047816800677185873861915780766558896664766091578576246730298166827318159871217031653509066857756166769725715461348002753494119161265099078644606570137460232134828969110579316405850760930963644040962699480397909793657545841198112675306915745813448027201966358464158977860522213426340994571786140242044820042491074480959345725238781947476057667539086096376056352731609772854046171629270420079276151213381176234969169862845580532633817168452960069370167634697242326233707981653128781753648368288261122117689972318782726127491906323482522136934485288917528442823672995377614138797798698609997616633119041118267408311895951307616091748248684124967273275387303164417296617309008868714272242484766943515256470792075293541011660049388383040469900958511362395651332440311602202317179300877159700818839953958453096413342792177969391912401359881992954323902092018181900918056660454845293642491552625172045370298380738922799738992867308497276756626178804387660581219475281693782501301600633483752288800356403913778996388398414045637074221367667105531655972882886564688687153251366544848550304946989867620096121756684430945848952046080162904157001840503922046877907959958521970912736420677532974991374877785043086293669799609851302915902304374498011773284999316074042348825147919503258616854635908158636461556378404458423183668563101230115567430601926680297177395827646397805822500106450513046628929486403474430741671398790949291820428590179204202523991469662987173348480814635426479195337387086944852264163961841646939240415498419062487818593113524863405372360960094450902631015567895487827078728591606130105243596288056154563179831147406567468904061426167009724380648306471467439925883033439449561030944319624643095934700311516820026251512231529517601655755178218752306418634991185869696428169744706728777791944914581646361880691704586053773036774734010461800437932218495954079779791693122699022523158503135679711812973147922699540060322278262980794422647897971824263132858967908436292680365677399073219942359422778727892923771913617185558389768840933633015804440592207540391697328886929405440807560700161125048044694721555646956920250411249924514186699482053661782583089107964078193428838296534788115608576539558045320081486852127816628468589292968554376379508824764634177226947844939840866053512534747227069370070402496210979057737810642664056467047140064023133777808954492862801425068056507602639210336562271656867818219800727455091129073780508250978507485982229596492309170028042833511842168584324762716697168373011546023970101233576498826171565725983326111398764467518515607607430341955223405305632470350634742369032428539402218458080076673235281962894770109971643525800318803408438322034065658502307176603633425147960394204448633895640580965914157365743869736173036384705000083456862921929162794363422317342466364314452341643158378539869029923449875330230847503945616590940769366538548659880378648594932247333127919058868694135950445371750807652134615429065504758929466266295413233973705810659735525700916876502993635857150422670864324653370684706191206933029812001941865042729445523634496516205377257933265718129736676314625973486796165243498725118624313054565542769806177283132753107800469390289673645605970273025486150464433813555766870343105991001285369216672895817977373931811209490494661400793274166031310124327435299740910975066477713080198507057474183017762694707022415095241766323617456567799898098042789277514913214281994459022662512919196220070390823706511506742787192904978787580959797836746606607774860089008716147911196139445085784577663188643179645641953921054198438839656062736893396654918147927792823616011919168928914143696061152381425066330694121169064309550281712560036564879641499206587975530690354374172950258899110770001732022091969548519606607760010668682614743609426376701421279994234928464045516846144902100547883645047626208827907883904886364779334080528791059483483451796750091131937972496201978752670542358064433165366262956299312114915710155426057904675897588209156342727457714146498688465091702686932491693114238927479289508839236326181162937560697670318540270338245099131792404591961964985545906750314861683634473175107273781709985319323694790354711703914206730218242504871953109067632437329718929367409092409410110912547347377670072271339838159054324967019523420330987566843068654148779490805995168648113203343906905172775893142768212000613812665789936486865798408765173238972506348885056668926491423528126403547588359810028513759886773947047868386543592952017508449241990693166605795764377176054752586397810142251680420330053276109095815218201823005405385653573439742335192394048114067286684579157574519020303293908308352646038007437854257105999678882526678534876934801737682449155090586112088746179861605568929872862910412253194372478844179394387644739867854660269939949178618678348416559389679561676975475830559303687611011066190864287048105897213336586125240161259178848629455723055828074056287696499761516863686787549641867973076654180418259392439498894368534221728188287455498657608161724329339131088862607824805281497053748521933635261646397274087074778051325562807520333093596168377597669408904158619705092771049896806877076982513571633686526217158532452341254636721280914539746111649440928251838532372081586003056718324002838043483651292879635299094008438042516183288575983571456318035765728446390400061304178285942078770240416427148716633092771678456373149289008699708216525036633471856580504875084282209814412180356832447047156261933127375000188644427531482642584463655856888993554443033438522088739811840965418517983272398451137916547897973756764637751429450408353935546752227708172665067601068045418200350394221292383816878729037647763265840260665250698699157250240307753517084773137862649855377881039715689459390774300925538607554618704337391965328558865065128519264638893901707138383262803776087430808855329382323238724594230727529507875490539919019349514403803316812473730419152259320925395414921737204265860065800227476583163543815649109409320370890626617703102032265256501267932873855561820919377640461348955894482803407681220802680740357752722619510436059584190343703346283025884308903618113050117790372030358128670491623932812141668236602174956648598921704299859537718396036064225060829195861856368715163647009725463036841885675261151089421722634563584012462386824797936633929258009420968147591204833048791167357717272372387006302755029115111215531108917421329180821329137395941440985178392702486183320876415585112707460504509482707722285775524790006084784059953480412189480212820812237244905387855422047834276534038397943338355198172341779209093275834647762930992345019243282911857556607227041953533516440635105458935855057564293477392508294044030641601752128943695692505736901769866336200883720510656302077871677753172708433713815918285745400969400656621437455212973453090999278747362228044774627259019273017683194083390278764711625699984034795511164768479571783744788168546544841300069681063338537409549761842832955031274376845919580488639448895874338378930719724417607739127514019982174340488580953198565833983274558506764091553486045365831579610320157202498855520945629921095110499805869757405256680270137421291851879514103393564560065878303836291436551813821527748880294501358023008151606340701883779109764567000902919797538037366833990796243846303144891718744441083705772739256256040452982070105423886792624616054443638366304245690445059898057926845500953454603466054045784918444489997770744598017612867791466068341754599518294689136412157868292213459688294345883803146931800921078306639865833790521818742495958011958004782752991592276520775847257205352405384748115799912633392808026062128387162491247461565735676133575063648669200405996988606559949739892040282270105664287839298368535648191826451049616479931342721837858107180234481609790410765350084183463496807719649163950260326075134183727207587508430841014033810657294105682254791339127430948831461665003337000374375923616667158195163841801177317797086452959610717860126754856289003598054032736878487173794851873203783410999051569839863309344251422279820216264820977049760147986349590058842045052774770344884216814374369755675294528849182079713502486908513629290339759351292207656085193418073133535223090884346777479780144288412252637286944400505931769195133789504840420418904978203127628965027081940788985112327796462922379432605585737922960806392572564608708668596614253435764953708518838426681186763640010462858911258919907708741694437015737388016770850647449470598141746535906765480656356726018533276440841171304468083432319864907876546037836598641912902798901095007710277151236207308496240596553419121023865260052763271996506130070698911510427690043777350685064375379699809159727651302035797550505798313476618063758121834373446035569771029750588578812443733277397058621482916482147830929220564305006705109358663312366128275426615043929708928377660048127087554267604777070447408799601715387149038613201124886325485820229982586820875895875872004459794641165357525685170394069690086300122739856933000879881646777649822741082318842436225030299630896823583311829889966553830554784530693778872981586459429548379158508561786923892857267462169337494628940403759070952702853420915769254046820353995344455695472034402078683079912388881559015133962285741300022029904721775067686070425790583364588685611351194469039272140560004162564143218617003828993974770102547843119533033286583277393942850665432305530532845964594098686558986670360660027658104425589442479111842256422683685960605901992799810266088363387662922327847678887150206043375739437487761219697146081833094752220863046960551412173307143958472282975376311015929796200951827040143430870261787533074073040422838446683213890328755918625034200624810199847028284939604525622418915777142484343038070435762338330074332210558467916112836260964202722964187714439140253037785548807199223162236230097577634629002229390867003100770900720982621462068957727988700762467892521801275934542400728335848206384326911006489122688483087541250167732101354017804957151305891926799757150339704735382101284964580245893017081854719223464788739082294889270182847031177128800794652256425471366880637650598748209075811780165096457323653969338673640010144414691735504677695892760014611222582269444514757344275445301189070882785171447146894993553510397365524623115283286812486908343852241525696946883613435291421883790749345784705166688142236050416380000561492712737724126293848480931396799188977338489301186732094686802857133536023353588906492803760686980248226836615209069771809901516608382998709242863696751625210696888033101677629876785301234440963401708520791707859278472649018475301847617937073405458304018264435871129337036717761833248453308631736616632034327219801992426970645645433195837896306516006597520059453751100500670368112179155015583874918547430935618593958347078844523267526767515118090411846644352445805162335668899507715135993576918844206122941686359583699673207258254162560309692339006632455117837795614595598907092409231069481897962856568976833995643057589040152142373324441089830823520984658547096413874563944004602926493352719536489042737873815034419944362180677167046167678520672202985887098613142764945839900614830144146906462708163278491055253517903714638602071661532601436884298333130638785740033087967713445223781848649943238748264626837911810535344909555144045134142441682687427417527001173580866690392603212427339085658750245648837765966889830870816029820514511815941504243071513714344279867057718740419616958697555521351043888803426681832268956550897889467354236584377306457878047819814393769146827304622572563362497510262749807104014886544099071875739813248165141521389251473381123179021350843867158376562296435046116611474202538888140407013933849402134269763594628706724961085045249271656764988451484570655523327425051975439803341776611023383000004328731345358876834407402868837829164374595060129128625020121503560251253221735943685712839169346950672643345634358157359270362638949803441409197834234448747060150601326082004064253475696115967944814531156115605266040281078914157516550188978399636024361265269985792708183865686137871618441719192688165004291640846741810054078595339956792543043205328467513623854198713965796122322201438643232189143104414256061037439572432570630229352238420650946439604977595837502374110111688698364866174366687017452314795164321523790762408372307086765078021188302254172153309079501319167735657383588369189336689995654936632384393398959739572176169332400049775292755745734655315850117206204686110929787247971411613249517785763527927238685632888894511037264113451530011163284139461694110769800595342785967190324389009431467620750542678826629439703567491302156476890700525680551760230388643002356217825847089125492987075182610977559833831247202362621047821808324769470156823562581655433994158226497324884638198413958652103498031114293455663656820687197452635473727495654033774177881157443622875942911884933624586395578461819592687365134897998144623933151513978930360890082272095918941856480623903388958629239436088021088827602869956239464623063838320585117590841426360189033738261821221828990350071190986868756047142778416692016489334594581055573619087449282533064659428409448960812953597513491064382342611439197397206333976312048602079160823398166648047678427197803415363369826370997852367894843207156063871833900327794092424969925372165552356854890647124723442258219292074171088987892613429890379019612553110387116979276624897313465568875171661994355377777047886926642294619969412737437677499967754655873661814657668787787377455381005421731677594689517798042436763560812930175361994896141440457632363205287262858321459845139917281065013457114870609863765775350616991245215647704414598535645790783646071508169766116015292200401286362159657585430027074910521555016685837277237576449877628038450226868983688907863873007649715067210736967882457892639576407160549311859269689813656577783253559366579815349036374478916499780566683984863040904790645761353350686814100677780059877916068003495540817682633857418474729769419851185001463019499979505243164044738369482633953079206381796973450793736104156602595718736098210974067198158847644625423254023682576338733532745011434196627195273989064164724900707867838976440862644940090775061919229075867883081163651086261551633267469914626247055464200835569374175496537889804590523230317261718450422909181007610072540534486739208988783859896116644767484540546349365552724987124112678647592043299086229650819203834837191976676040783915018310796752301995365226001590667560277890964130857078680101534419302693959776048314287587641433792216938561677732541596879314479389737382452358932964608904868488624300698266342433832639983285010324857614546221631934685648279942805268696413291591642815258943217365577510602693616562453498781080455552910910267514334570853469301280916557928397938756184737393005468539315202187499109946111398830012649688885521180753201361452409504226399981056937098103965695501579983745770989768009282783635561790077184895776939432968913301173108749056479963264489625507721305485987313799149139168762547317778786017468242445793678191771097901731865105385994152772740258437780401779478914908489041344647573961678254730209828146854968383736008904880455728493698082332246823039325093455858556326885396529813185192854156305118230142219719802894746329130193080812634463351168540977315907451048079634212981770354044106550972258886065418934321125548199622565198523270230969498218825003501485350334403111523798285325669315836129199218898262763500692637684159623975307181956010490758057931995231705057842367132005300913207566217855502890299735671783834139251931366504753357073178760426635068610583377033686716975677939657916785040680258006594038617314886889709824262324209478435874279715927801478712228430077632384317566411350422906733958784681036831904972743603432766604047748248698951689318156155938758821437050697983277839404705424974748072477307122331081191540263884098526249190321275058902046699744866061531787087887843206292686402078128136743329294506309001310428018355214361673564191792433752411194163747940307179375580725539879709543306250945848294668624081086655433845339920998857832466018966633357653849162302363399712291486316051105989917355025763519925274537954498312368403332043342127625824859879897556769267815453698266848295401103546237869043445207200682445420993007515483315604514593943074312860478333824857252603539764257767419007977275832779017373903514767876479103960791404160802528075339373746869749313370703468010538021554790076580726280294589631531834394338106561040113230854097835849430630598834777841107552924262294498151513865891807623507515782084354984955301425452242364428636055236787068350448196268891390515833545335838647032417592703550855174720657762250645762992884574618124878219588613726334207038691202526145851097232499648013750867784979015363285442972880894056366252238492279871939332816673900305685195794299794892546788170486355989369326163886289917130215053360609015797760849217208759124809991812675831713939983324477037144645556814421078950239775801710422591148281435147470994587729133380862785724550977556886654347009057368865681965954242519641490264717352881644100410222598402273392480171138804967862917381688188081132786861140267272665784823988343182526658483174265446949065175411073848152336698122602156819397739893024003737698089870628232801465288427082694008576692094352686302428378792629605995110050638478521434400023083821124637406393133213920442277665448908409602001711114159420710995986053931929326074687084263839351236540616827511744835626233902837879190841969106525898792910470030801956494834478539374080293519949090193129290218313394463497383424371814091322570522120631277514685459049467908181272930663686997097655240176490352236263015338260310733987278296797036414962465109450454572140812115851125710997930201261703279481812423714718820070622019736220954269353465636217715796646224479389103380007898088883661775401280960790850737834562936113513353247888513332670203797314507374637258541386668626283969581293988634523499955000500599728494425715296527416347373125078664737714000072396605596319446564947649620129746382210409846298446232097393098657698471844333755983225420707694302767607608123881199546527651521784457741561364729631846114347034150227449236610022487090418262290300542687923321987858889932792390239620981333791974262850906730934665936937844556180009040342699089335284723073836043936760288674663360244951666432473344512581696388145372438898175428578113544035462275068265875135684642819391411840149813332368653252096830574362706096550599784025641095571821448892019525665414072711012380988827968691578870069669614994442876354122863551040826359560057736472809554523161337825314491563831130639566350978769913664256186928634783537754344326193021042901419311922747325532183928374404049887363729211165085391594662873594876949906379993299711728022362119664963346839378769455351388762821216467830535999484620726304161972356380394151679201476051727167620894941167028942868628885162389306485394823533211845279750093654554094106753447777489140726903671567783861376224519370999731809343022543185412486641265289645109944203290453728680660315935797991492480353726106180405510769938024511268492609593320313201847195276671881247951216712169498633722610824174134114593118080358065171780084885741577568292277071235763140063798883521383067156202616859471178609771875841166016143562679713574477495759664802877355210510116632947526283950731557212258288358365197256366590545380785680536844484894955210815069973682440830132083289089527841603871025097350836027716618369833970857756219116217006351162045281124910710208863472868647167924015612618679773582219926373440657122603966230523703705832239963881104314401386710304621627568738444059042372607056166217491619224739743881645696273535752264273918019107921479621707744003569026803207451338761749257923838357720649406708841341137429582017418199797929720538516177158242518982306781383240547759553057674300534783091387008148454920195786231301318510385226344080262682270895318422806688607686166361988796041023155466332979245820252094027232781492862711800592196656388327422705470865366612536105088799053617935441558663751400149426099166002757673635694588239107360832342220977320466363684288381882448969719836041154101587540929199200887332013665748505674956138563323801164191130985390595120488123507165401463327995092194016389158699135476562633016823368906650401211846617539992282723825337732384507038923729846984614262814056919493988066955713927077344431618629510909177219262623529403069455353295824092533931311735795503023474015821441793445483855679384513645994842479903391230599125940037290842555512263222492631726176627777503793247314854658339760115566369879277447164680425881705900190363851238022448470349957951037591106356291478055321045489508072433098544071041973027901328749190369190228018210453046606816322325249923361571004033506798553555726991707452381501304314482959244219318844240098576230499836528819691608532629368140148234343891908171691383845368197508513643955620047011693860037860856252330324083820493050654658795882325272020869155293506609951665575360806505623409372234373256001418498786249758515637458682887503433748240962877865292750022875231698959496501616012486890794691797646096687759839064951637588455307883666523743048249705106694105907042628203877532892713588008828388937247435849819275896974204234272838579881016503111267332494629795159877246650122963822085586475024860777712747918893782526578060129649924384267797506288283304233970298265427082138425989500743513654346876885877409985712950153659858079533091821658389212955166037302446254087715626245475978803736149893566647316148148506714590486298821079828977278760129256843468013413396495213643496490825675125637947354021074428737180703664700208091394356204019308855716692087752158657925223843217865504049757780426006274983947702122082658476086936240044519691214305586411453970533723412533110619868751101083304664700306635378413076513461572791367087282900470800139765897129369366682810588717472184109507563516614510829926869616344835945227019003378601890719433454201976913820097259763093391624106905084908187059388774829415188585332588852877877593352736698663064432009445355682240862120033077644279040008919501212554694544305681685008549086576187396816329807321137682497312724597219872886764375516066991711778433658188512208018669760143896280676723903033131429120277685847014241691135757412054719010863240084198296086724872161786049084971844304981527204760461986030413697376496830731270774689558516112192206191058423995529227090261791886803635261852123087297981759556333505729363067587205312272272171901621674140863789852188312295338036767614865996333721715176221336938415252387325509769861773602188684059088010906609664366689628235058997919968403054633814083728016855750945096669993742031623230313087815869296385891620455940872853642017680415199614739743009092855952341148278014190037944863705932487624626228261123213329783675939542901027489559501913178189547420071356004421550962135072843151563358764370579666109066439412120780977909608535563215079012795624319542202366997646224125244107429866192621499197784633012030925601286884989631744839267866173257107642602772487902886641230804835696256355901117201691074436595686726498896361265947660702427899293477925688944362965638457040197775454216635879583650521611546981965120479620494233442845763475540114835996032323501710309695450826666360378183051295469540736018472461058958181138021539524574906825889202986997530731433531696853925509859166939121911234373207016949341305836227164079987852371675493258187885991932928420497539767852548855844661387297937831043576504207255403941097279457046404523059273143224303099940046142786674892573866078851533951436608507630072022841017439059403151002330604639424784126316818658704937322463037248391895655167522358620423554688283211729795785262356269625381614955716207015141948384838353162976769489938064276587409785289615921937306540120407193987301684756979776062542262152375555918661890375193601337940114698011226837005023091717882617833441874712113931439669494441343232691172999802826288269461400423892782118583426308608545660401932966341980911114108899188824743224366229259417780778065404503388069344176682983982922138939961056849051902639632914732819787654169122933649543580438352064228975780900957585435002063142392838236173564541790199218391249859875952850993415430829341840872128822929779575394692061508556291704322010185690760486144137373943573046351161142167045773257134124737645699798623689373643923488465147159677365499133686121932919777174129501776009217724447627693140308157457264756121439203882302622829186168359135592112650291874326003183434597442891579741782533947310283800949613350153743537979398716966605918675554758942003668663714242622060439038464671001283583462406633126094107201394650871382917257518938188791791287485412338700212159813366205494869989045245594384105713641157814904203870941898840581406378323155868176067218007470879813066125739221533722477647229242666728743480609124275998893464366551791810954400525846133140654304689242993966344389220628231797738915050639960072388364052796217232767588535910146586888901352362074393776960047036399112943277880265291173092491598074832653921371694117867176204291177777634614705099153945784441232658449308568866654542273984369652134970557120300260434547502932510554811568201896779058037172182540137339896337777952975313367479323026246048259785151173688129204073895714987423398894934182222877926996070870614553128053204798005660416248373097376564557115096745592203114306347811867070867215056266615896375487691729991671473856064414442273033470288138393758619527875722175670920548428697195278551559042560976137451641293421870161492406785382290244265370410566965817315992915442867621364314403551082450195511915819370691158432022357858377015867199436443569614441852113651956998089144498171447701214502335026608565112919601339152561679497928939921398205274130708083220573575251431612734259210495524552625935271224328909369849863412993165872435732342372694100683243075184820430235925716810260173968884372024439252485301224280095998850203681242910382205376469081345042490662651313637046699089073605215541753138098723983649999467481008704357997901551096122572425704018569411890074557969548192436212394012315108272969887763435595548694681277181285777806426532024564565200678772483850384846652849761766430195941872531317635198338935611830773150832379044786084983792763796495649243384660716403044042718871356931251500459624052530754713076273326125213390114878455269366788586312534576733858064218919489493619713922366186680236844916951298146817843359721719344266767052298649975072626369412744112810505197705114189904940649628398933609599223338481790128911082673908916036510577259880201704242779020862875782570493405188589790182143836265269500403186286330595311381657680543186514869309194869414506081666700469962849896345365707752983084531831878447872990896134372670687796548561145969262785043910287662916019179312547644729451428701205593984406899987050297994033762447053921090103258979019389954578442442708143389824718126434279385456746355621260926105577693557604414664440562550887446482131998097434452773936436568061097159009911997448443487806793412205257791995115727782800580141303146440982774852229818655009429265203303290096602050339575664123210559649263782185572609906199063327461391523968007083382832823512817076550153807139606763462814497576151098618637247852591385021934017273820987375404046533705816642506325768026894847085744455991191047634155244082971949337625916332881324025649478769514973905434088709439679407742304178919974687355972062801968337468669029573362112836136179740666892513643047037644314144280153779088078634880342125679784626770605094105985603690501370139617557013154407067507461116857196854614338903718823751079603886602628589205145021871579350774353510226181455566287020282997118010126243551918423548041492812864208660818229146764882191843360308257618214590075714266145227587884728398475755294646841672786003247090821860290714537593843393009261193143597328947682291593053034323543714385250557025439708356352799565998859930694410815460497855130120119244043949689239052958787693062820228560730728851562483959356379301489182037332268310865375087446096375856648381226220287376785595063129233862388410864277476643738814828996810547514150330354750324267605600621135838551176696709965602023954430435205217073499256647254707998663519703978819442804636602194500815409668241246686248037679548183750539404536884819162599665076305395513505681983742726772617712651267539581390244622627466243035679203405217743529602565465046806604764415221087887942530570350513523601088206344557809271520797378920289628336452455450830846811808067119355822209608125275037738406980688673633667315397122935901604216398039571456784748088860163320740067304011067318063221302450866035380220832805316385369450432394779430521135311847102856980242143234600513080401219245113542570539773143201845550079098646846794442126508128052034104864167357958611046655909179780460140835140555039951530222979917564103059577331883571252971980947319601404442553579117877833046063896023842461393831843734667945123155101210185542808096879499333408595553591379497443410237817666797840752291831679803051296192542194291014907235658355648976205021453533094840872216262963857431696703371079716828601180221838206206199562045973117239188491605849982761472520850624575186038012079792263798641021313432008117417572135366000145326257139525215623120478928429067084132327692552980687286597823830067313880551263991400708031117645274673230817084893302007919509672544348152319332312925747448575226102905115994252116106265576282925578918356003960811078206902093879127937024708857852151254398197900794763520623321353337546864838990257174768199527530934129351671452173490509723767861753339120787159029296414154801317447645152141943222876776227214378735865204499965226239946744973491279230490604045902468974841844271002826760810782597984269021663463340922583598167703415585402317856562803131879104042571189999891410698866473746416727377081137566535589239787710446971532895905127141278575472253541775676316075450564307447099891078780786521012719728954331100749505939951409195110382255152167414451631314069719963749122111472319938775021602497594914145479214773607429662764832973234145345595863590268949769647154778878385410556150940305519130358334490633333211728833065858049382416821972832520461340680080195399859747281652356006666029121660978647449438410061349762732491037050010199575621362730354271118639550886885971112318018583695691859175312463633507837530279033213017458222585360146396472907769580193247071591845582507309332459257814489101013203844071285944661376694587756147077129801094545326782330767480538168761348446652692537254001551756684572905674686677971863281935400070817562625944042879657043154679384581489314117369516749973039260878986323478992673210870113074836020654708643466482904815604212494912391243335570395995007856244638914893487818811599540485979215679822091624943707520861096787530162908730699283818433178853690593798570400360872544254541971631928566844950237965123847867355516378551798190858684099998985300898096103756973848864882986557701831664208822361014389560878301625936557508828755427392969738686490062763005709100070446080854083698498926015405616428070685126585844493523782695480441450594396514654192057469683683760430798683282328072736987313134681567085842270728496299881486928720166686960473091277638670621013321189114974149213643814462362735203755682764259383116862907854298994543404682077078106825410016319551046254406029522737959141350235770862603146956635518234045538138360819426826049735141307308798440227840937051262326755674924574862005138664192645310092065259236642389651942736708825955745568150328463279909930698535007026045516768288751923541275578381497168539165873565562437599496833244690533100822082203683116488538602532683935219331613043961519635606809927963578523458877914211969556798568344275400634595714556012974234476038696354835603127154390288106289234704182484453870906116962432937706931027432785400341520779452038305783021152645825598528257274168260830805074319180895369443322062111661240396254590009375980440716312778996935961318978275497874427614902670594834249272680833049582895984450265795469548055150408994499236001025260593614179833285945827910132985419211815535324209512275909066463019882373584349686348323900184365482404813250560756936075611383697388550726557727456277257401844437705759927454185920457843379482014561747101359257801586469093528474377857959873708448122812653391939853443083467468555472070194297905101385253649124034454794389078561621020686019019926409894932335751751992779316334705094258047277345207357785299213500046537422383079510532144850351187075484051540648978889006021298215479452744479332510299370112157457693252735352230461909637402533904591107006399104850757538016060932643577573869760336388648577742614270198125001028366963008297840209737844425584526880121042036867364470941780479044804665224163130321077637625801622347020986735710630872189856529049845450063111566038190010070747192620245623534858942634340942831616700022500189513027621006908354361544318980033858744541485265148870350571990406426870635020658655913371587866362152032296576132371909133267217203144115159181519702666806166914225383647435587845776854809831145551425237130861704803153057463501129248596960338850470970628272151603753140001708011228490702433280488146202231842368027775131481375797821656096962319863354326648305569003613765787897714528520913463301075711139979758643654501502247336898357702612872146500456736394658486173727132854295711933898084459779833480005382379639254628803273363128118722702470732545993321526198978944945643064717519100100607848158796022536768811224759722854946306240780289648218557667580730610732326913129796643064238004333090233712683517968992705785415313779230213002279255053102620114724469800260713846310322002010667201752625046229566259100682724086383166231916581643969110868697880751418104835274988556622597298660904663654935510616758985630214276721745012837494340680994562424014390050594722867178254998652969843545318217609059179297438562933432634773549684143479919539719944874564093067886028305660835935619175056125954618394013823034734979478664039474784482448449532399190591875721223959597808283180888964121547325841241241827348010205584885558957677583641956761672016244146454289017625907837387201999801756599965268302702523177546781388885589264423705652103552462432708298380018134304347540569469095733380893323175883342280694454794413626737081410046695112408330751992193231470567239541528020996183892202040552479241093432501559386583754950192285334630532628010431089523599812278111590910251401687490228267164046055187322853395898022180424435512783654056398469870164752350106237969616029077049023205199905456944383004031668051997914275455959881007361327961684562133395358657260150430058741755670333443902346248572231644023885102377570129021068253485417237306815536595772587121558657163485213512792454841207041159249101473849284625277065960041720986231701693402169725850742079182499305626940659452980402401191203969306444267394829019968465799349602494366593708273729011585379962812686283419780081652242281981778722691003185908526884349518159228826216919541974200374367091682907625193158748463273595360921540999710085171152534914266561390791797462343837398989571014890366133659022422133448603154428150394213497244601305512132164685832753301929414847131607069515552806716679727382348978605979498224981932982516161111617201239726131922419559881044542248902373413524900118541659689618494904212562555569505482843809870426114685403918359545237966038035420216695667610823353257359574936412985476049572072365967200847091251535176091252774487913750552167727197005447841235272990347055080149507597036991440123040182563475169949838004602089940835071451134991695162471274794136456475342958902148000431219134618103734570019174854765836463091320515445243363938144277996881858242840895747521335223163203054144526266566267260328797777184887481849269851552001740053562623799405995283926394336203528140186858151091243613820573573063777807790510056015207276555071597294217758736923703887768011192661659209768863712243050396683645150821304605477014946461651969611594382123899173800223941682920127678812287929850829515507506549117033534503717550505198820883294365414835657602006802147336433998239256175340853378263193817220045434143766938413422677379588875830256058392589685736422667367128045981647969884163772998468324175659600902050591462438345867432555188116343868512599088969213810093141409592512674932906637284483180054153665476213947653337375311075967717750396801875279562371298722224529284528142642898648317289141161974929073147268359115918355772371310597437741047285033398195517760503090264467884360858161637788836054321429160814812293329136687390418203773880767853885052043612158518702484387282336454239738286963687061698231928363149994407600094166064476439381416456950175275728576344159504568181028001693204444138620366680073471644299704563034043506661148611242689484933731851676452804624802574559562605806743911992083965800951240397147110556454002851351281586156044170114442119729944424426177632172526097437847879507256089485461181527072952040893074939762495723358766642458992480638552636428654053688692291749177077177262595586053651034485411852629890696127745591997721212899221471474645191153992867480298733178354770860633995580827724352996819412686767519986671329177904033357214825770454721017204307793776616630459848474334413334388888686753392235075767046118935806826032970773599724775887428383919176446378264478343236649079302015623504999814899898751379201248482873910169732848395364496986055451030174876544762948970513644615448370461057700285353708894341271175718488499915759848501069972999036300698659495027505718307112891750768945045184650114452769109218789474534749786406331827624941848579767454561312713136463338446153420453306033748845584239247942882003438826231745335195493816860872545644264432394005995403047366673670537094283422759590656066068809852908380453280338720317383741727228917274646188877253278983010956298918252735474981918192292787713979685440801731022779112067626151595728234094671089487016752667838044718120599361515542179251153197608244438832370179619183767578020615701717951526240307705905415667467505890801493394315633802416994275683351705234743152306134240557976178149136926520538022910721487940821353448313728754826106251143528281150181008932253105298632250818887803807637084569310494177726059992573674702912737637501874020844804099910856282510541013284894811071281850961040654395066211131897213355680409814454835820635227629973607553686641913412871370790589950231511408192616417121820005360070441740352850784988846569699837430909151721832754443234891904143195391682857148206226462624169208825967175252212598145882234776975798780397422392725408267213841980279099976583458846216273511973611409133024923554275212476820114629466348629317257477026300134920935087488175955923019516167437453133592638374150578110138733454598869561970459681647931265153677745795822152345415517778473502811078456675225711594480766188461659067507217050531501446213352843937023869993860596757119215714306768029604539417865567094911884596547817412508248916225826924493613141996006953434203001596948909324996537038960390702382417088217979039483841284667363184864861279847513388218925923499545468585605901720961849438310208917049083511018355772571327802291267339520879631774697918911862576221762095543531570856045487145480476244555474345488051879304927813369889731460178403232699576350111996757150384327408263437147473605839105273409089507522946085061775302637840861192141065496593974469442104402237408219765931637456512991774627308612168711390674351203669839025581455346304317018453068728447506127547721222104484326050553418902750527510301850409333956309311109217784192916647809040598826638464134810852503294792797152294820116778578093528960173484528532907451874134536622672160819066301734061488256102295328651377873258569277102332873007354334400294307877344848110010774924384011831772918121983887484362733233734925604032921000296442987228271113581383043497931990941080612420111642037404301155851872769531513846454595464575480620838784548515805962511273223314543771293824218918427412227526943665387904199861613814205106696632703331558707464669195743967178815111133981850198390829318755676638437325062413176144604916722946910789421795909754090350146901862541706860324394670640931299410951658135925915407602108603656996746353932620344413506847589228648123050396697524694299458705683697962132598267148141213124433440880061676169868393227438859951043987801972466485499325833241242971990430623779881822425204084409989316747585699631168066917824756543797977146954440349917051278908989436214178432852717845774908485655112595701569799101218311408400663935128496444237307676831807237680613566222058296173955599218201372355011830625355604688882087697264061698585407994918194875480519671869680728332424083023876269114932360765532537768383163108577229335781388670152338382297671913391146839609689402972644763315519422995531667345091589315382425501064970154309797762611240453966556316247138279648843582203199057408474034151813311678206703841307133290776474035060467910416372843515713319359309174090866724706377046437478443560101824796532090205531144173873818128519567199957383621351011135803369610986495395861516306890536507972959172229276928634826763110897548861672981499340570583790273759655768117491951462879574364939800008266466119836465406893221686872204782295642037059068030218239663817513415436074576422234932827711375410764029138013118605122122797853800417666804731105893779527548066137504318785464469563302901093240293160472403863107667335779367125818717562852105721017895816699704731918452184451365076073023497944593488074049325982396808715509498193728591324505127721508148148397561755279245650664127878249916722589511585619611995940925373435112388879538898961055780150225661455535419831624930164525052184038428315860733801552185423138339396034077833655728447077305711126141429386130488971500739408665378932648300113751017890668635530886922668630313312111213665280393600386730351101938311384530562386131816333488600755542020730423285661329982379172480511749238239928504072052016679124737664049858222168029183426086446836590766939011937280321232547456025452342865766995927190872599174509319293693158873216318658509870772184943592045056720144368836665214906209895669790970108977083441942742227796770860886255097273832714994513496039868600079232424931004471734982068858945251453288020350116071291796565464382504825180374680657079439004585001472410906656948541193971861513391861809796254040191429257180730132443399764720148567251671357037063676922469267792424493617544645584728136617333699490191654275212345070734492080864607096391387191905810680081178951453655860405715820637856844282084884598692554580183741273488840122557259679193979520488099206789716463920654814944638087287351202686753855374988897428807407116065207751290625503969828960282154535410871950878119488933103682696603551082910644296962269434082048113196456095360076242341358230940632534187322538432544926032784160500488452968454413619011835574358851351077788732617772563352050027199644539103878900718329768458334577690381402364108892043594006594887028549810781580627239633312658576520794185535153920183401479619025195676888690373105432053371340071171101216728625078761855174791622595352858633867630721256372291710371847213592053411886513417669864208953482063150106169227709932270994014271475783369013149055567624190462660229982632901052179706632083971728391159824806465222771562991877821539564920992288366711257142008964248495254096133006440634510013150319185891539356296893898580256132399954665991024369838205580946636016820958523360306786948150046957119547190634217919096902463458451955328050426093857141482298202704050592801159202495254822068697534613023111578251205033741282717955457648003546478831953138266666520087285584643714583675644179102262737886715633078348249559310651012479627702047290037576288834730889394747364560750305230021354965805827901993647729827578580029111577915380091974392306950424710509781863894527780003114925891644636438698736969835051710172663944801840641262336227989022357839734130984619781247125543519308127455671070865131492821234618666543198392867428602067381987846141988805617394890851119565639906563919154905419072874574472289967716499011529096078226131052192854700532115479908610807453327978299783416981698840256432092584590979995789661177031774569029260295279066405048811580523238610305177536242414315740154930560927025688445557708199851186416936235841694529281341712447903406129359498136259716492353647207700945535867216163463628452766795467572073425226682501400462350536166029720029291379706808757001344785661050359308393579781606905613272863917547391928634807237395669182003140620563644256911834456036255569710695850221407455547218425529715840052994419698851856052688869945862233725360549665077457698084074627459081619062944218610275453354889577478246301905406849643779276036370968553507233741445667101390212960857726596329295314605159418043151254171109732145282386065548551960272181779429300559528401647571761096125596707640999783802310770415571062697845310341968195376167618064603622885159031383750499078359276138519557678175574412182798488842258933720768439350687252521557086073471809153041436773807150533170573904381796748208808167912165018607053028919176115530471173260111786135712638973305413900750340843305009540143862363046433139495711447396490870446070165745179222643574945836644989302208639680512859263256214282551867563891495094974110308200006096775870649417585015748731689489506598550752810841871683598671023251426837750362489077255467796042856691725609792605533280519791924382358867223694041315889499807912674396071720311145168024655923968596104835537673060188143853262133549411426393279849815181176864317670632068217489747237742916548399481338403385750058587326448780928883089284154724550791517889266118910031670805170990053225428925496900111820796850635629561267600757242849738598261455582745603566665075739530549095567181325098919087716833747375547225904593094245777099911173180691866208388878918418247469263670953707504526184305194968845195823264859139310927719635946162254848183602173881984116140606742982347970003683335898267855121885811187647431686955760335218449168495916672219866159393833051069204289116147342212883572006012953676248615378728304944816697389940844285413461789090835215240201745447755748345907291233708245448767311492892018665366528572332243795602795459224658527868562206016921722244500166227374413772901727848303285980239427726827927939642451577786676221885633064505139992803104451149365949641481258869010173955334613297699791378329436598735297971686546249346880727390079699050167376123897786343684801406921323245629961447026810340797530813357697905289827492211832491202577461160716247767957777207080351876597908148661470712923097823505992411654754446951283104952419021263541094617650420869740882843786054619095398321934946176520933471486543366892085077022332891884757485345202687726735933810044752638688439613691187601727320955608608804932853335560814522902308109450983256504529803742525009231982361141584678458926467968230072380388956268471139412240548844252535439685504431745094245090199317001649449940159012222754360203483296714247590709354620599392574702914630950295073499654619662524702684212023095111877402820291412435927475436565847555029102572988030630326825123960249034881431773456494375122515863862766619328734429668558265760205811094783290337046597478988051625515003019819231860206750519169751956825998812263873134059614959646066483641371799455092776710340543022880142263782436542476651746241477644770216359823218000978692727480175182294388565211124796379942293348768159439326373724448665126672175757998667236526805027730192819748068322580260358513734170991019874324542580663163693223663258293046080953543305816957455033868053917980084523078215337717582816619850808713378435381814542052374897278993025616528308946032632445508950377220437976827982658010080460509801742363794216400830898644910234998925935942813757209385572486073979610992786999663065799360855474939384382236981169662816760136193668749243923862771504952269564564704431020800870195087959116783098241557728118576717467449330505839052810271942433599227179546718782986979256393492088108799958831917139160134170208548033478621504846488978347771577075719695757893342703890911871751784446165679657176283881318600865938646393701753315297561424734036000980218868181573538568428826002239969295560614655134243130567764631466090857657882857015921094283299208597794643649000449448943033655225544004717296793122120544522180797908423564351808961311075501639898032449518646766898851963115433399540011509808494626860119108751408179925546104256575015883640504206522593328115543427272141478207955841154293365314065389487151526794750435803068675406974861273850700584894920672806560583286742044045658359495797306145954910521238146690757595967972827738463700264834089873057760540321195315081366070409995787894686653856461031629852060964995965030415151520392026748930161376806885351354381472239718776831453151552280505434182830380803990172625971350384073605922763746316865572127722466282185067703022614363502994146873089937876127038230912872820604004514948021999897533415710908924939486969320123101911871142213898361317253255100053415226927430485319171447955973007697140267280943127920688392235358915206174676588764072308300058581105050258200974194676515962606991867650185833638812622538361646578581848859174610123389908194730010171219008297225748077974255430876886304703285331820295908938570239185859835164189390068365920963465590935310370696596169323217902431327818453980513732758500498554844551755282605412357213241683799928191852700987274873157135796190509872510197962064366900065027535330136128993935338266812751748350256088904071089617227625819509951724405088963518522582843544827552486700078045690022658333201209087779241618560506385433145434606407531161633043582855972892494960671825044307772319458089264199225317937068187282257805378064496624837013780539487436919990872998588476453965633871024978701206420685151956194087121118943092853661525277488153726316176846606080473640546777428042207433639318206748057828903122733042532374947616925865207102106680254632681612799296970601731324367051678821579542889999183146096491285250289546052142153806751543411340609228327556509178989944093087132106340289346402159482648990302928862353186963183019221014535362275995268919094542853822190227422057097012023390950883718027631971427294137147698663076930850892159329249104639548599305318907152104363645651787393088609887132741622178274474090408556192588690385249242039610212631310910442972430811483813159758309884329464223664103113085275319077559229258602836546800615651869183885288229636634598969863579281780627796233937396383753072802768489791290474120957497476323704001374043693657024208635043559225372747981477546912258280793899413328382447745274638976021632714046225223736022957536626150768765831911829378141401837298722174413253362110027914250082816611773051212162286082996770523809260129212940430148119953274521577161349918646278178499920162056491641706057812904017029452597239893037888855401178953950206971407040682098802208760358139907599422895193780831730950703579001176320359318457187353218265716770234973494942064581418745887885588190868269432549443884378386343153519892951139732961279904566646899801861111642825511248581438464504243965665845010901086692052517361642543044063812377877938518132973475096133977023786380051717302979136612875473954949411209211914845955574645430986075007199824807757160370440692143968071607194865092779048358560340642824929822815990333313248676281922782180349042043728079807972732920508068642851683482016707008135555217333299738963147899380391056785913732970624717391765007331182522324918820543415973193194568188026957527222754290155938728945444834604829191787521592468942461825689253234271037558039840149400257588548063081404297545520977483851887529205681328441652661550362252982090993299398757212118352223025251846172900231084439899983413175670185069189473790044630852376155164839787920233818539544986760359455537805493246715601637820497338920237672955727716848814613285029409646491527867349002090651101294516915857270528011004839825319990247093484165408532010047955693127725468486896694913163602725171894605365020952455462202982756444191634977944326485509884493694474371749444154844893896939353036991698155789974686241363041829658383715832648476645747072816580907641388586009876490977126314368641099298007279404263756977323385518298833865873280795538918056211421799773765231078963486060334365262789939281149074838933478361116967813196758531088322400649662840509894775805556632872100993093402439828027522164008414742304114931285890238682427420792944033145512715614105004100527272046872025565283190628019993944790227860400785912054360803718373441938751478748650115839473014767056947887864349168716612667752385696475471403277372769009860587293390566766367634572138801653065509193699835855591999916007026666309848207792467597045819250797820078265763061376923967758748527662319374042168842138923544769927510978643411428781838718424779789826321918121624117058473326720980219307432882098197838804826175855087980725103786844067176108548526426780647764920833207340398524158680549567263950407745381478411362363325497763897007396869020458512996715038191208774328953109297294506823939377793662832878200148506228236589474235312874082400048008061227231976147216348140390356379968317853363376433234154643209166329750264522875012604734451118733889594016017675578143607744403215075010181660804158677876378607187443283141596769336662724416794463083818332602906090322759571911405919510397091668200930537933524898264316843356690585550287686915328505471385166722189132840830538682459588179720964849795972422752971520261670273128032586430479513739412887071367784274637958349139131696731206185163954361211096782476254372192458395699453340110288756972808074128020068064481003952940523633051692970210716290278720637136569613053487998594676021773340589885090489897838933651307406423535278078363545729078477492449487753509823656934479493866373071709901592020275752238331692820655787470276114487326298033345451554480220865119133903246636741933745651140334752625170766172238963530373759713357526613235602281016032162465828243051000584256535458110092803729366782575657746395161072455939550184551890665551797867229104624835393297206061849617583323846812830318867168027479080409636914453412232990188363818424791290505401302850114081323725869714002620571066742750110906877297975161326392334923391194895756295446163753876861119718839293671871810490710040080838116836873875458932317212697840697074573381573779182460335821808378979682537008652378936527345459042656226042423931017104288300826099483490281439596345064702518308202817875327326254911608573555678655621741743334793777337801822069165270606710251718290533949483229604925084759967064390996237335643195404501278100828723881433146500865048398929571339443126415183966386331309183142965822749506959925921518630706937140836607412156751897354012441301070727689679360055364553599124500396818412309774534858526002516230879942649990474643992260942965864393653199770714266131233763723513363987458717014330822074214598749410398132568097036446940944590007402209228180400947814176506811355693481936463032701589648472719909812711370620662807164110765866235042185837151520526231267229577214644357770733001153970373055478870274731020370397608249549771913600585780562231767904318631299774275159848523088393286240616668333773677824022026754237039099124224340231665390527136728416070882325505303233557612947771981173943369388057049651395026733711571375548359714296785149577542811266865388531773361803852055278252587904566656587144641728124590140785130468155613256495226878507820419974398767995847798876406145146476309321506515267708462237216507662598762981116374873561536022627870069485267219321598435348775685681096581654334882554523219451106635415509547095874801420259360663059927700045706104583511371572267195025632875393780743406218747310613371518350189772289686026353363362123496264769423608585213104528550894302321142793825829131716521456511137442823610434972425878156440292636771745568526843437875533934445511547171086370737235334124944123897038399822696460214620054940289959874874358762009909472341774343681713305621959953532981724401665175748441168413765743783186186166321320860310029538808634232543434102401839117279564994336448417323181098829483210474279595545220633112555321692532285742316351550296306213722674586968651738583281769523328116540700965967168377353204544560245990760815067562076801339951119226196852883521599469086207009255632524340520236375285137857933485524141204501194927194647406384184707016605314315592846328713420598020427205604736377544091122728927894423290808000359506086002835649915012202255154440188956622005724721661882489525665935870890932221680192774701896993574456497497019358477637699447940185055009765998276143983432539762969857622101956719450682463808595488874727707403009482514752146034245482026147119359051722009412558222433860614011766583016410171351462273544454692112921915194888349346543037477406291592190662436716772388544244949962658090230512581977310190633373976205667173806272854670758959609708556230514775973094991344230404116207270965879282002572172921542202875752189404836097935450468591943526145150449490639604809656452261003039060647713271920217817941874798098283784182065256429164602964987098247860080983939789404909228193006242705939812144685586850122639359732925931052297325819281183656554055448940806409939604491218493122948213375389495635088752532275698793600154450965265597772932226988178612242057994917551164777207336712238116954021463549318815669549318249949518817576153330936702392583873643410897352467698664737133854542064571087172193955714654596188142218554700280871116704372913754590397736417438577564735844853126414291317144413742325327767723079121385478755340182110253877845009062207260033328065118422345385537491751612654234460429165428347265310647070813367815686979082141345234719924316335055932220139526399321088712885000953636772736463382037934896635234042472387624135149054348341954345851571020594967539733816303850237164392843230937903936583801913781224196706116549463913143784782393666032972643888027665408264380806054816642464621285403102492598605462816272943104819089820106445055091625679604118643976562435577311242438518167411892639045005737970485917686380962313205394173419050958952939502871164195712400545100556063936041473829525900185205492536804896141671648880342621940261824930282650704617122909534817583424940894075752678108727924382347814723077723212265158268700931105653667625651170183541275374620167008023544930009811089894356206368686528127959574464141179695619180346898469649170942863665414509872546076350258770854068446005442540089726513639223933024378400964529928035839636584049346840127511943371208450337498682044637206272869881039500978235406052065338079985959975932363744642809123714884577097707506511163074046859070529913894758897882357482635855981839634579546521796811507138063025607326403004370504914959292775112858403168320553803077718729541308462755649188098854003600209778505764426227501700592624760674464375183163255584738705240390008677604452416340954980413071542686318109978749423582431784220646881765649875228776142443102800399084216728835167812876738369754187351337572082893845657792954657867290928276501415394787108381733319947997991778675581820304631991624044083283876934526735885289305976634168609857741894176216348802731650016622864072955452174539069692755607271944164862103240262170890816031009068570057737904102674998744848714704092534448820372060909484525849133617026537120674448593107460821298078326035497920987593823436162404936988552999124987200785950963402790689915967486868647502350552094275612692125108884549175750212829560106618913462862564940353021254639125298555386258426709199720347849884659048775739925138799102478968791994484714130794353901895627697972761066514213490287384369670590997456207520325964092523376577511957390149761500232378868013853274425548747669977571898507870017708975663290859112278039942425783163334782280738161796452704653773596635615563768081485201628291168024986540995286758758906309411402885553282442237483507692060714471031171573120817301579341464530723654743584154419784153675805606192105326146779549842044556110977168711730054727047320250035159377729768243012901202380124425315963306325270652926330668393908250123160359621123009870103361492735799060023264269338177021490355706720520679347736784193864555109659286733915066363223113209062548010592727723347810572489355859852824082873021358277264055988694015776259253971423468882812495308246083865661266006138083425651490020298993929648019978136249880583367279767696710526741737348453322774253071392005134020060894161266825274180132264768480879351979622955604910546751990038744004229204876113815594643042719546069802903575592477719130371128578037220084968203859492647601396358865331300360134036285443941737332380782574692287113304397304983530665780339559467358552743478857535373747717941681505938516255634600039061938540004395517240335925191300397357444703316942792265786525396037704721866109855519243949371897422986771253144203282782243113201710775856192950463265565032413532981408620078691159230740319298465443177690773782938412627350935324269888225770545999708847095797049170612408776426229717137418222996668380859282973838374089030201354378012053768276065849009512592687994219473106444644012134698252564410208282213979182078500048313260866063414490038388299786149263371014426549505926486268515542201735513567910441575102641957001129208087609382939020561105869685761066533852803323012783572734834458856357589059551543113537251150532139081275822799434105031292378656338094159879566680308679156306772628389077405893604779916195784667702673659871262427338776367050548597467158553902351235530484325832873751480562617144508401830034239353402931628084168081982084275742449772056182297986352514091274586595037470640942040282171360560379130158626077778024361166328714144008664509541570294000309848759725829576936477103171907492624216050646502325704575988681906157988338222620136960857144220328596519666672026846656073969798428451927268425429549420379422972898922341801513574592014085907438476345678267563266860179516825580809467042394073578956615244944312560468152143198447149518198502814046320210967585417213328763818134119002313087023775995542416180316410255652980869180769078626414237076738897155424693715062598843796468578315571334735726529196102522742758022782448250693792704777612883045565372864495247387782688585602525107876196554937559267375991099660753364032520014471397947435389560837522133463701246309562393577300443117292679502086672722256600408871549165495934514106902844626905105788155183118853557168138325281846248410148391114476858385077984147331814442929010831811057935058040701543499733546314904391937056622084622731818791163401795863628367400260080290678386727174680044553934100952945183313607136404209237237906835454829176986129935754815876697139277752485878140570723250601550095787035135523890842372292270056434757690507924473465709082624336091693752710583122030304400246593706365041497662924345045053884190633275214852277774534311452812507660568768431298673983063978832086815675853506904346557180758023278887454583578309734725229930507401353802922855343678882808143325970139923147836286184099052820184102216128144410499868725686166765332388755506302868275964445001755182989657062571537953150575136118918075322462551678150260363760356654338803678500678258617101624395771200864780612916709611386003466582048571832596218432996360329411620399960224095002537960738213798233489632167796455567752595001535818106000099778934729390611262286341614375842849266746245530746721556275830931800005537004870823687341275054448793086566618005259296731524504831768176429644038753224251582082209970855384175220701325206248075310402568549596274622351437759702357443453928951685241981404108575673284564033777709641285395543456008707450489060615573510896453291204707273544893574528640686454379178044263884565188152698795340998257154371211345439357048192746873645193902546418707146435224354895204591437553786324819695779557357329206161681260708386793666672205923793253608898556045427780011358588837799936457855307492490026205133231314981791020737391855719003205908923773319540240248514695813784205590045984775709646426765838161080514461540558890208215902995541039286286564959971878105262748388899543444369649047551668677618830465316873105363348785968262740039159383316225835556946748168642468076813758636092588819574195587023137673721227328230998034442900981505938267260038321496924381201335377758680015438883872623718317741295519163303462892902996249937516373820223013891548528939260702283871424351130474370396703305269857384970698586603507861322739396097929967506591113621067879724958243764597199092041069518342541420705911291513349834300976703547134626602657308215209939149956872760447194266305308714899398511680599220003196584705895141116298016966534481940768779094807693735243271252735612286700515624906091893484448063661134116201358857730999835667898445555602002785486975255496840859941674374121020221142267428451724940093296515039183193310099468983332572388558907818225657566258464350510478127172077844678875678838398798331444022911158389682511123244947439206181262603850801181853950682626769227709275925411854461096677790637426057953323085138862900198834598036478314791884579459812008756880345953791923314336437239577574794710148647424085921260624402687000735272121521796069705972711147645847376228404625657913627466643167884721391431785076275869347692076565118224853010316691384542461525704077032621404728364676184217310777422382421050852774892204361923848537747867052205447625964426993915012588466973996828884729219036947587639606952178212459197430628531670928976231165270695983716533744868663502405438111280605250537670203782172085315813706975340442275053729393624761635996741787272386638911170994772768264398782087369823184838776746433297323254964885945228170421144918701537122232343438657673033512893141282449163770374883723799782659276332717553777786026272320924457056723548116803015340920961776848341644111305536491359813120060143245021891137672371273674294629360090082144139552595313150393951570385601237544434500316630587353161409830002240989086553840296463866687995917145835293896915600091562023910943049549148935979179416487313590547043267827469996469789839138024344897742000556721953595978606706425622019999049521183528610259977772558552936811021510391739937184002804138958875164915377290772943556023775379571144776727912656196458440074399657320298534394706798852072709962494664451410103321814271752345757421092036589121433748710185823034491119177010510126038674871197120345111973226026892625091748842445896147480398847682513485492511500944341170870643400990555860277123095415313952607254531403846186557711446335825918303114664385636867068555247965775599465727702328579315617381050989774091241897572839614881347234478570648046325897335034437296798761391222299183492530213060164750624238930616295629549508143654152356983969737428250936966286470186510402269626191853463469753351465300423623196562318238416331889471575718489312223343493197890654709119263628669367046900074215224920122653277758773820365684507672093527487742362141821340740096822671024486197808920664722779678571025601577008327505979386689520658532928258036071423178169622043839258600671003226261464208806205867746916058465331947388316556956092242178892935543740539786054707915112203928072601797423012167933577318893605613356718838685258077240354396750786639295789880237665793356774803610717224107268864747177618657828379455818589928410889744119781792866440405312060389677362991015576744643382710409564651647573571820671017543497263955257050427762842700226128534879411379697009789888869804849521200942243158741976776886893105982300197149672526545513780511922141230411948966674791526918013614701867546013335606268817925059000137998015372696884090188900444987812610280423794020812587808210417171379089179304842457813878738886093869700561004243953430518743774512895174556388233243639857587608939256797959629965243618911349536221289092717929328290962025733246406348008794107607213497009149819167193332010013036952867019200264641193918354867522798865172863391951409016259096967424335926514313997112820640764413096765715537807612646001684117884878561332496176502180503287293943461039971939189318117859444878908383142177241786597046474459410944700275879910178193046250115024749960475930898514883963883121085619447095703499986136516714785671041398681837927365259159527023433039777629745236983697717146058191549303390140052821433778137740161578285795001341453210046756141987805031003733205658477890562799861320871777104935488759758803221158159060115341689967134649857535734882832106575467311531755227337823370421849589647629570917183509078713312326254766293969035834445240679546018409656922081306339703361766472183452745395595243275170200824707844354351138058642903026597825824916308388606325478051967403198270766962355320961118679165298730857430783747325262183623514874304568644061279255286389890634555578579211320790387458382657159033670262922256240944672436904933669628535043956117029154533767545331104988262288261378610142503892425402224652716359385691668412651094750522980682759544787933394417781771915784164605924673907669535806358252879812985152751841508549076143294713644033492982712974454250220809500076614913298981673697676414396038728397354697983713612150337985316484741627390376195512886734048337662774681248372806206114910501831750349550962174079373620322904116099657209876262119793051358159128923687684640373609002502836561542380112911001221442057275328310432363469784453157577273623590785157939780263560455459114700950261618319717129902152546018568747783937298042400716255902590018644154900561504625179676852447220393224470060992163368403913472203229221148842150236951942013056469251856892767531143770789789346477537642723083575787981172231616290973506169086997892002648670071514455950417350360602750623185221296938488624323575396047667330615110613229396437186065054683463486368427733632482065536631661800756349923892954389667464644869672214328504608962467580191798017283976609186294175506663144733669864388284825025955458866429035759122032345308509100953698657506322798117847546123941162944889075550655837002975740885480666508044736244447972484830618426165629128553196843383998737163917012102728331288559526085695608517145761257028360648323747251525638910972317756723325046273450336694513687469885710513037675419739977271100058559822745174226429688456707866564882772607890867628704912918444987331812593126981033256709512964222644320599232400746625765958198108355920612165940964004289461911984008027248438720988751476934964120749381667395949094806870946391601541297969053888528417381663077670457995036628527178190512585873002822282947366469931401937432156178724748535714212288198482390727156086208677177944787150719244585804385834156914413761060350008919583447821927116703285061055329795145795072867874412241176713104229294904222306095670726926823961978761135347052933702030042251682731635664923207195782257006718663190791693733790467348054811946529441240658131286993213763332694534691267034972809448593520044716947604753616896240519011214629438757577249730830502046757733349609172682170220124291030790250115645079065157495887422367988135807893552759707796703179233711570098784750817853083986107152405634262761711323148027901468833073564686450137737290109232728718327014195120603640426034788676074817265013137407879595497555977620917981302508004753702138388845677051632866464297648375949804325779986028077890221035963063777460341581370414243781348936981513822566864064629425840637429762401123553647162396387333129335066173552801769793933924802310364479700290385476476388021420308831022910071125182479181641646645045551458860432539516880639890455050753751912822771029194551490237505366297030810698818978460298834212515236153938085966637870605686855998405580290739734475011475033151541259345330773272825502422749903367197852519616218739519155613729206705035651947700786488984303128138724450475236203877639205528558846654029846253436823525693168767052520273282425363476467522130990941180179512694819690414935171654938611825437014025931595206859846690528505867897483328931827735975455524841353640802235749829949760635480862841719102482605168350237099927886350141107314877127647410940538995523459908890633584100676084084555294156550581422978432515447602026352059026281019328356629477366688973858134225285934054696688774763647148338429878841767784535866976440360056535832025113915406910436056089965691586171167079790568374568172639641767844517132688806914054222083523330674140444222070941511917336980923558726597858599022469261115509973788658132528724433732985446687107495035185363986055143756113364448621310304707884787265790338857918536541533431367001277026508451965389448469368740343459405639021613477349781440768018885922639371565283490335265856465741246920193705778801021751417147286031933340193958000857730186510434699341289635968291268287302721409667525023606377505469607835227219243139631817884889152483343936530663394829209874632453969863713857005829053516291554048366823714311914086003509917502327347898061067448648223665120119522191259116783520207130161241321325930185477498023751696458379675123383089937149706433151417165092695566229251244668024096879257009325255726364732697697094179472352684651480228684038472362121650162893750031487940837878538132110793876575299773508671515036868961024884252430086304826715896608343384201957436149042633941698333444890342745140469140821429367652870817070584406649697554179382966419171559597672081376661339227434262332874364436046384556954866102115026608175295725693392064034329772565198479519897217854969383193256496623242246766095997026759609183084223231607133580838667724091402071362170040168066878027349353686311399990795123463385198103280251482170870358980377511702376769677242346017656237481246273982445240083786977969775310218136437885639402807517631335765373563423977290833604317568580197141155672884127852747174786840140530511478465263146583293463073149481691750682033187216534595481361400357768177531120790518401409287496221159188223086222210667545995559956155257587152603684104176088091657947740722214770428206122202087607798913867132809571894408305719114117171089668636594333416641447872830434103621422986646214760436508861450224422875491707771892646948380778392084141026981365695593344955865164598051908479915103964957411037767572564851265132883882300461310964426900713619121509151526048147471175687377090160171965854152984657193537808481279993503549762080357892750012450572867127202956561679753908947483759375555894595443507308961694888217663867765434648970358037331159364800868203518556708700727428940546426834082607459891529378981982088326700855906798577474363881981338373180653048127038582759029183821786483859230450156104050902436548208056788164206350877210889238186286842005406703374647745209338101432695871488351083917838377944882159269389270876909063138389326567680630541516962495741255410196221168817939121567087225654083858406538656164839867674362072145139839850224436908583974002089697606445284614978581568143137335661452741976570461992938347384851692349261592015487654315771620557676060562206963995205433099077297671455038780764215288961579027445754058660256381825143522968380612167226660416838404248747295184996214649468275842019830149116377564594633008581622470712592878207064244088420449928705104472341982463410988180201868887839659239423180748762855615598150783555995117921083125368698371000983153764421996946002002245851612734525491128079169076980163638208464179323537777446844965014326688075160291564657186198890763656132215340520415009068912737030711628402933337073970722760188010824144073487346942694291050203154171710798706228159476598883091839655566718188202265587294386455752034603163703449029546649687798640336924452367836720971958322888630811358660860331355807972376597371367298525514061330804413600371854298598008516182529206307202482011200745930628447832134942350288194685119335532995951339594600203354545767926423446319292865340683386576821674398026567017358208756028329508506346136678252409092690094096689592599375037884916202658932706044448134839480843184767092689430408091523510611056254708659283762096669384666564981475514256113199170369473034215550404196142590005172183770831125744752043720418167785800613965047569663391984227124498001958660096797687523179223498429823559274037401162773726941765217744454631204257344561925639911755768788260550486361070972236947705509638633589851218102559729245777084994323624495623108965451192044766507473590590805441124158370946047392658581889608961007517252415527376022400518890434849554897696290739045859887244129016463851370933341408271527392387820330194974735759350930370165654261493479989990613172709552424583083587332385948469166303574695796379902549955726966995964778557317076203589575536925950646009514248106689517008380876900478066265399003539697775470181241341889963754218877049089397640256479086092504496418699004652440002314131996234104714075448829538466115311231962237248173997333552735825414421542330793821285500356614440708248084658176581247216377655909936664059470642306609583991791530220799500225621935750987664656088403856305678221185747135595080168595248799165151406071317747857690084411093498596614918974243101999633901470332159120595200983245295540562907311316203307622056092082386855063604155968653457615986997004028662759701869500624643237219818439896236100827143473480169939412019137031055754065254229883414767370319948626106956478310837948434386091754095354688215326079293879164533007144034935119632320980350245940392085466477909289754533027954798108033454116138441567576235223338861738958247465292756986009189987415673975102924071530079014917859264635726681856952379711425243166674812324852155036687612350914237912189253237263210556293667393073912368997291672381347847624022414279511419372129114411772079419620064671755544560707854493034548726014552362295494132443371959293734429656719205534636580100564402938014008419076856058707112007967579142430921447959889296166334953981468216290456337339452327116270243463145457304789161907787881910294107255693883373590494894832300291419483827479105558491917772766445057460061248850237372043943066374964915680526584386950857631041447903086725226331585516676194750191386806132818125989136013459409775218355595634948709514279953750073218659706629405334586068795425974728752476772067903697229950319026347940983250222955847470249833457149067350726077026860574254307798329847125232919261506534799837370181622886967089454035367313319482460992375748959066333909121678413727565285227176773181674549469076682807225866136090645421878259970684482368432969471828690447327091209280529103727742304617725263837328971834431303526857298158177863133372725547568793959581036996402273120697504277774422522913333645043206245116413230046654660169318552459162591118097307658711436047345667683910028758037313415512386710702755822641812876911323271818858548917808910433865027008684801275587401651892209637774890888217782273440765971852283670846778233580240018921776013625401838299942501713658820979099521096656264102075979039126910848967876906837496431387515565966060260298688973714343659122190027018882547034636301047221422276682279317498334223824320144951859839030494298473927165041933849897268384530215122895685486006600226523576116139400625180160943768391651244012027768902784276218510785797698215057859965607692693302176310183657202188724754404376108542424707819379461032058237312649008846549366318931942839131779002687001654301218597568665448851342146055916495020320162264864114615860948704445714202474833181899798501963307353675937637884226208319089926874505023705616590347600763851482075457515087224669580220558459918018378532674753026566432645407224382980119563925498373938550051614541115224193096791016219806947674040544641546415107903036484397628190583643332762312720676018174573916461365410050735999700042217704375972110388126785376985536901538894908964651588470187388591516034439837868623188979386716208506025924372677361962428013052452500391917501523067975306247589015638355904604033968226245610068251336728699875636336084843663646590125773180969830219999043473945545022941056185148638380171401333574817027828257458561470303674356862605732563598648705498217012220334252635479317128578918865362735849130131510275914691024676336931528149819045886669037219760028536322726764389797511691348706387758149529335340325517095738962702165061730010106652451342217162580592701260022141703570998532493275343614590990757465347294304694208349567058998185157672708384688044616037218844680073886515297086564841469004128684747260324326274711404011691166366472448874995136816512434404047210780546408101044686504501435976070773365200167347365755781382139276852101627080160130892958902576732510236893710464666325274163418148065066718003221600627693979893682840392618800708611306341322390801939765773457940449194347662985552440687384607247917215168213453343260661848044068513284541626326431605342187354704562945540896961634873025240447309668987863841317318015325331152059421791205110904906724048614093763690457824241965120631044952784054679439797307473022268573636645498365967408447093201807588221052298363833714306628062677114297992206368118795309030241634662101490644375477893769369824661562771883037495670646503578138555429744235772248322082595967156670582941199137794711735058324002461411496765406852921166506594827140845299600732227043900981707037445663327325496817844084631469615241945644501232751613545146470571450421873965481123273175657984135506706034099918176773573137362348968996937341715627107869862484654203660590194255811269488277392913478119102361723026461970889479279693653637281427904134490716311680653964046967346987594345960032190864674067980471966603927052748368258067340557738150496807411135440978857022909953776550369908943161703086516326235757931120975949854620354723052158998164502844877792746911037539767299731248881243318837448049400826950653249351916303120102133090170955806769082598776328424304068430591694515686020316460060644936137727484286273803584998453469524055204717923491859416041184947270016540285035250575494535565613642837370358316840248606384134276544239948625480135537002095762092051189306595364480021042306763752910188896529370187891825086673301956850879109313030854031894573391052890945575764560505374375094651594785185620571486024101088422470173562225327573781834923124620408926990143187791560761836909427032712624775608187697355906661185218863132886401951668710688398673027118576146101489313432430767889705588876943075219408104560009647334857914088506943229183818431595761593825955986368110217820560589922930028275240648394830981223997351099000714273885786026150590101798170248309084273860394225865567035984292667508045274523350851140929657429989350982014856804154796988104556153715807872658317752048726276534268259225209816814179153104107323426066526518088587855329838261834551403971089894456425729532751311366230168292626518189220547294190351046291134359432854199925648582174944468718498603981911505846842854971530228698098271212261656721230859091734933049973502491001344713314513853105081426317683392156226188616942365207782121302011676677273653667937517868095832944127533341528711850303905070259972922233470043814836675800102271842808554330839567443199839263557901260767349423572467655137543191491121002170032090808323273234078587136866545974263826590829948063210474995272933723322391184676668906042747257800366634811021415973009835730785100371891681366726561903168160134413219470669428574142452468389179822734508141453239941275496528513883510376127503318065499360481825934019307297729535433548554935143501774264993928769486252693784950802676434789505647149422053308975757633328657227600893722959749858390530333796559507725603222320317634690663998079386369585444845070369987916375343979667952973436058649226118122965775271459607427793959569555070709565048115716238343003270874574806736575651818259651671030389057214498402534500096373490821883792798547149052815980460823916801610583209556820764941289792974515973819018731704083498291047804891834544757692536425362500076682977431405837980369519606597531077961250991043530520219462316316334073534661473279292369685781495135480288651986471904677437642301483274209687712059047193278845090867911134949638973075597298690715265629759116457306097216773837025460055070353178548459222500439279947545945628262729297604311066569170527473426993049286279336695134553587630024660845399763266674987330472319806097135578132010448220812151521918285848626052320701490214600151842783096088849718275541368774013573369980282122753640337406508678308220215822908905108716191033390675605418038370659009335613206965609349492783738056248731184379816081084576847341579282717561617466202848243704292189660001030501546793890161021001175695426651354121817570784552582170883655272025815321156697029998962019107689850291400924601816092973305973197104247810616280999834725934569183382862068418959509542808322457835868474548781061101095346178693937347655098408159142718476077003277043765034034284921631892647531692623874481343530184934847397815750388334760704131561118024107605919497478232301577492321815282068701213403997631445154510870707558750459988779484739965418825526701934377954214088407963463298559527084085772307728464078132419134546695464676715295757289831620996899804390229806458246298870658001848281029894549252958507763263895288153180135345191823769998523444110003107447812378175239305344824670467887912449466429781540379953697219275309476154510030278800701046705113714891686235040658706803581163800165469833999903695001007437676205622641289342116496534923738073235016268214751632809615212186983653912355241260465537896452100396515945155451277036422039986002220490046209211867304609000556501500971586938021176008328715403161011071463369683181121279257293319695979889479072353410522992128900143175388141091118023148225782197912139066271541108433251989249860099113148757213130789666902962364283575037870881195956197764902115324689255458849244632839567310209763358242880657058660468547285189994939548283625847114877216405263924246103290171327311836193047195904347472539386653923984546097690090802919766010079676113907799793869722884683634486429369205109466053512275983452809024145019225316785462202606947755041267996510390306784600642458444158815541587996413160660949318878023863768139165618797470784907358760692668373603069049046604039765114024677542730383079444142707567573944561060102553457376751490436867336061228989673717826199845588063032221272175602258288781860940902475202984921896816870479578119293430005139161066292747129582667342473325819533755554022127971711727839850874911348070349685208511289402716699230361353023789810960392207259771836880745562420151108130860693577634655830713243713049582732343957874617324290136475262950733176764342994524291832472826150495786138567023992785496345616035230914551312188310683605137688006850683520307396842384273589595196032614133901736516573266399497674142962136694335125647269124741465883578873628353079471291531976934264750221716587108708095629497547000031900191432496170099689610232813670739158500289222424331016520982288835532418233256910637409637427077372271392715509389813199117409088708758259292293827008056362073042312986362245733210518355507940612027909113190194718020085438472964130564260316809043549948916276302178890609728516408242287497525914318449624789754629294298973309544601723677801493050747958143399809753356394612218720619644090013583679502162142864334953009070323524545367067170426822260666399939140954351075567036477040542475834462571708906650265758583100236203719325997194629320757978024530198693545592066709839431416683762647380288160279051151421070049119483791673357650161885071908243240678613046535761224315329031089353421722314056253685953979571858537350094756457120592031653917400385413529449047257856954102266086465151117150319886580308529725075437573685228219767789337331157460083123759396319786803067148043059863760624082338714218345200439931881401722059126098869246545942417455326567829996799952123807640400273569496591499482036981240265072840677049196431655028737763584903745143054824366203176347548638058400970932699769363528909197470624094420526204633183208199323400780643834375963374426467239364760809679931916052562021348498273201785799742151679151955462846806392406779130411965254921028160215081208737968092574203373067678661561443557447516989120855741665267453783982964897338951644348645846279254266735701940521606525268859225069857589926260572319392599033115548840593676282562750715067662187357318652568715317485359350433050968404533658184869798214094543869152467782154780035291009490717874538592949608073153587501183317080722025887897726034925962547051316571150211336713512613671583957999334068428848356999822956746486006416942743416506211299545512000112022485258336658560646232649827486174866724314542466232172394703155610366802851184300795031531813315827800829663596091619286889896891854958656268973271044114225751453812844647021153698726248642400054176874960365351701444457668942070872444359766733798006277443603081239115363320316641632294077736799599922521823639576102014301565338393986378165171478631263502083156849975355399917753552639530963912038896377484703681484293710176467495268587761552435033725241804138602107477944147163759127272269802951712464755318361888622120583758008226249076622634000285036048252894401754996863072409528698201590556113854487339202510442875520937504380756917144129082041140357812088736109579077957131391798367318138085453163514497090943324035560218058958589836641286703986335069294969886247925705677131437696893106403621468640513662063765061579507419298849031743880555190884560624984228314484925067547310519041220888047510047015018048840705560870367492462654822326004758217620295862022790078912194366414194524594155852278052131280845927776041278108834331686720024865893862097068366496451515055162889584809650944401861387822024593194724379843073565538008313944683328777218085582285276148535008124159495141192044675320518295356673340735965406867357323246072588074372816285535261480843708898761071644663550222995617562645998106981062683614738437882975963468010590731133785766659027939810881491123176234098162896391512117839839454368965685108020451865753432331474145130233276306025989466376494188277137901150697049668981482645838411106591402037419810310497983519502251466463625863473414625956472996928611410386602975912309071683161156816565347279771401929346679038574723858211347809886640436068338854474381024589407970398010851690323168734279364437032640471886194181867933718780735546820688651162533482907206227784260046955973768014218952782576173999850722845478992273647147044525054487573755530309256019143316670457382378275490119780528963462442221515758472111845862547158238609904697600272785365177247169891853583462345882848904493226516354109337558316644080585513505212151343252215393294322301699865442734562390181050031639071303164379700451728044317728669938925859330042219913831411716864469230213388416333834792891068887850117187073867199894754677791759019668364843500442976063595502566735433599366466310659081608376409293405804762351810745184602997742750752247973693372432814314229736660877118614590423398009677489751715890909374125736860232484702673659355416419946869413033099620555816116455978931907024144542421790292133689425915681485289270330162804636086447141510901365027626311003952670287898034345164696604559245795844159172545066568066345755262640801457216416342008275857839391235432618279251142700481869940924492938746010058402000777770493008133603291644377237188753180634260429416775051697465647826592084357575902834270672337386530084704967483450958537060972267150405450080197193901633899363287211732778580034849976102096795569478302953662483326735478827817732394048172569109509924977193224340290829303077322738385489179616959338599285567727605419636102467840149192158956958227897267313286904986920572807597871760290636519360554265957211446644374404335379199698548091132239810433677066737411120009407850485291251177170983979151904755104901103506236648971243878484335390586986839911993916637965211129145161182294460935302458929468108669126709599641197084235851846200792089085263638861256519256881715706607305484176210024517532019878137163888202176502647498192831276695632272058433235611925887594473150193724505776392784851335680008227108000328908959434652893176595197510424745628647572410823330861711671815583794455764032371595669843764385495168361839385534761162699530325715562908280239568167800953148860367525346543704870503650158171396738576696392310189207268742710028583960164903954056629341418054503637319325391373784641821294858416996794085686415583826674357469723305474415880299483650226406484017153068011045823526728207189162407435847834212907797171179146843654017571199036146144384184064627571011609387956359745712509662607541755949876321080688446862163090839867930802909682839939362921466635630520222964358380134236662936184324055107318516447021086909745492676431276257760335518445821482987046338091115206273142720329388289187527086790492194222460018778320179970226084765422499766813450332379002971728587378391337815798076839412820003347250325610488323220006111406801070429754817656263755510145967679167048689721904851481925681422534351042379151680548542982253899086531418714598255877763211833395974506499667358102430240484001607777452743803958202421486275004268590376002418149639485497483951833026673329047677141790815843829261269702435679100291655695100592789621457178054601889198156445796710800391074673609688639175648264575108194954146606023464292607025701449554931827794179953072703457188746928748900294286416173081354234687774318036362287335090074121578889511095597769559150626756486984173931117812472495315648611926991117698769839145358726913562780777748896078846741614299126249863897489836396479133151232215087275009040253273617806205121964540182120152981980696635108073521931623741054823605393702135542377483983779395732255756895540079317960248078792259715134853839452683568052935900763323792152596425130034296687424201226797196735153267701895573112017449974903026840398801759090817797504461826851910337146404923079637320836706031083457405122703609137659251211463419454443622971349391040092161586772923395554489607152836558678335841332889082734439707791036367066590955290572086670342778369014124498823216260198169160763490121960619915960303174222563928881848561597762992117485495746369152098250655248168396100083483458445607795924075394339673504231364556154539503340276727442525547954213249927580995812929439473971343896269351036623193497620183548422376053083902498745353286446776566452624787232374383182967940435873886140915478158509350348436660118980615603194948786347202935462402894439004654867858917030191942298935723793086877994737002743795818768061349283134017522852353461811028247751611894957668013930021731143303746363654112344464917026271679386072379035475599015241681287298143488978319041633829141156758477767500877703230555292284800197237023694635167885544603478428670157055340821407065606518718946248956977119457395200249169743389352555401958993885713519449215700748466719867357748098711359904324463618590530927500136471494362112719439635555784397382634639078217196374969865919675188889009418687889722100815735752116642948409864614337814021245001838097959549430023804200033483444597615045975424863600405881395481143806329514001858848466516859869702981058277786270795031898983940669774756070011679101546187824765813481594238138645457797659955959578118119554109230551577473360950159185157040243586150214061872370542885507144787569829222396537943724828546434893352957739450577308625737628487282695699663555361508505781701469962338889022907647059785043072764139190036564410426755246312335045969436247125153682844546641940975707885680166932251808471020394804064761558407083182257238044718033785758746544421776120480595762195097710583146040106173627868958743485222504663467935923214015483016610095307111008135206165389033241906865700442207337514547386828170452686745371412637532889195941186633152058289825086712805093763397651864680577616916502467761619669863751888352688325908181421350937812461842642101529065668054407701527962743020424135510106206429326065411846232715706492439545330549047165263000817373060995381968164185302743614769608443973445297811177018069230879371706073443033771309518559229537237989521972281901712853886049394089574728825397837343362314039404746290134612521799250513653260308182035727930352523321371508575555262828292273042436139165015403662538113839939715187427685616194285986691846550792031208973443891698552079300309682428069124150604726060263695676442284471774072581631259803643710967607637171768358922122749629772659959821180083596713235013259786831591561323965502555631900917670432746675481158540183579203544670146460010939860428030354767672263365470183195658244672458634770925505596639187671641531998786357906190744799582768453105459517635267667018694314094919647214449198375247025502220839315149777150450707733113421565286251779070922586367423013748012218424932376380016701097975236173918642435185132379563922277963107840350853782247744998541652599386721729932058164190223067948106390362496333588141827621935627627228243446415588857684506716065943964331648742604899067932478078209724459210520983212572847079195932103989876270408901460528770594460537999028051586007322320887669075887053459929607102797857194288016524880886654909556069937928864173041271733209370294987841706695311774539206160918734584853469405524803843981732694588648603034712844084234787193539797620543349191741903871820228304222273819759646147437825687460287727897057311642668461805829991741505982090511567784927227952328669021864262267868508979702396890324832348273112093378317995919240131517179440530761210520061026011467158645250007267261327009690322149361436232455082579354581780640321717117108337704370490107369062323224914118649431359327263832846649291924424824321102205632846301596479891731360447649907958807592462904196313820786503543855372454074208079825940576561218296259905660974735041367523829054171090677505736124932449236935967066446963412231071250880977793836783650497008420833095589050628133884542358910276254595196312045758309826571425592225868282562048206385985357186427898200673962667045685244127404089590921120518592796262052838491653367690575957706735699374446887762331690172511837713181691665056973776571065656723706855369625689110626232160662616720927424689000971652199731856899989179176287502407660298783550295552628755477858567350372183136810525657939554985931608255698471927739778598887380138834163559199700524172241815664773275747943636167684960184750254529206263048037128171065360465501253140540015697657037355922707698498230392287226378515928751039538973908041119029553538112021877703187999505296422908834504535069939997639950543304569010806942439315826752224342488859680118044326084320254550452927346130808470058924680935290713519829696559488849100176061551315302520205751884835007548329016643465290904701272893401476617507936827581466609373960318133667595435591436381047767629257311583979156538776336114912149037346806504474197516937791404361321826281582897576208238073197173813710169225462510882676736315423859071329960287778834475075103477950206713614668902682297079749747094580925006061953990900307522877055249053046208972909306212120091903281392965740444693301681458274999403069064680993965578071693226392334150302858479004710184636541097578380099816130666370321650627266752527091519280205920260185291057789226110076794622756167710884234635489865057731753274732122900629540362626726132587694733914374602922960690905546649406655239747080444243444339143070289806243098829112537323695217724721264391488342177011804856952125305577101696704651390425015365670190061535333901519526496854006589238118332671343819729165737231598557335288876983204949350636437302188633505045204170810224636932236533797007116400511137196301307564113053223873667108870429701516063117644952786500882759600508847128088189473306099510702275093966614314957718039936196372908177374259570531100977413692577901771574749056071317342299573943425825364997104776592539678275654245061438239410288014370520610077334347230052754541133793201823038442979555761775173670776589624205645387772419039679164704294169834446309481179923744631328922183347660613346733583910842701519186088746391762087207140068899360765559799986089547667641674521558688966187619845788454951205199662129195785376472542986001470447529311028049819119333304186063862650626647106599903540404642137697874489922180033282338949634051838241358184734225405150103884215577551602338764194535470600879468762676088879624719607117244994968383138799254711066495094193704737108432777735422927255685461205116098254685880598867850131974488237901193579442159801390884158414803481600940228600279145846369848962657476630839828255893576856807123138138553439513842194426559895488138703532075341076981848826776887834895406764830049398469820791739678201674621609416456388134941163442445458821260129377614988280082357049134980733478580116633820048766532895585653725568030012841269992815708081782503056243116867369009851183697995623220093616203717081476777325528214700524671232393312209769020441527719622528468989769949799477948414484056697132214232751251429025364311002958422865398358495886723473855473939292132270376621965256389854455399446018785009650316656732991108365734097660349110328193688889243415540140162577090743361824929676864404128420526656861457945235059370513187592277216392273016188079871050190458576288203054110297221620464242715542789787127174301721429282826204239916068224024142931124618630638657924951656971842418727534516369656982171717491487791107866262484191160226343222122167997846387606409081717111350561381354339874713261292284511604598507361465028426076123994136316857765806058659340274382437528389899926760567441444122449232477171720193519160146366435775813752905722361940067934889663087056345234917442322331067463862172791153802110973071501787502247403077557473859254137984752285124286364095360736849409105692033094373667476349559641469279128318799681562191943636829127294300923639171832980049797561161318451162238370914129785608523511692136232813247832369065552847210162194651373040904622430375291147082782753756746245776044263888433888929778529617712666768812168671967582604218112352234590908403214535992339646639835856372451638989656216132810232777771006349803498761263101044227206574911449465028328846122779177116929670976222213244258519400788573107903948188550119823906478555547699897408708667661454326314962419031448441531554169157584739813178851026309201190133705825941093974794939874936263176165811118650360049433518714199836040833399495624346721300451913037820193459061664677601565571994018481231851437637596183464206740705483317756555859658093618544562774972618781914604343580005777552314508337369593685327572512989049726129431315393603290961393122959025404700655431567311402414258969442229277087283892643811445359384646000638717874967742607339797277597335372432310408042487791296354158902654683524722492381847914912463088393323773355472810802419788494005716709223591709216109453279213975758694464554408186187140334010124546364165144256384448639741900419503737954331480376064482795990554412221042368616807271977438039100937506592100748642550211527659953738374739626231298772034906263282034334884255534445357925117497245397234958297793381559927164858142323377288345542351155847538467079875851861958811856691854442349646582855866627257277930824066437734860568841648847482996109114495771821911780745962767949433291872134865964792783408768565937488400053870328061162698016134601930277446170664028586087649958229056167430935174262295574824580715496112244783812708346813227839127109876834705825180174671581034403035858882843782138352633612768200535710161477724025627712129500060617316049432148902154836703672606410685468508056319037285931307485605093925564218362971000435240083037034758411873501922872239220469885482082030520831020510710921386689598942618919180404111223441667294824594952532541016847973376213155142326878063888257077471820394769267351195718549171784429316224800810951318817808283295258059394705154209429158369480458641143606736938203921619519229963566770259434618423433712805510704406110004860464180894039907796255767150803946722387889175405877592250252575345965505315372341172752826237371709559912905518787872995590145178921384971499391439403698548956041546875880813380048296505359467666134766471321953348723027669956274179693309759227454961336748655269990531407924071019369145352375187774095125877216288779165747186719499763757650196459806106124670961151694819283974116544752817386910237873915973843919767847541699445353946416847956931902963694427459196411979504574193247777623423584716374122843147884673270145241889711525211487307420693980613036438489811254990740159739900710424949517661258877162347397536990324456898299507936136171008840808463807911121356344071700880025478163673537124435569161019696182373964157322132873722173564810931588962605099539406765956703149957077522869199882928229397703389804949022316707583272500593853998425428641051174564900397356848492134075552885143374112852488360577980022044351773311387094097489261997028283566383460871211884897122902157716969803827309004904009387847781751735048143694643816441671016777962872348151927153399298867143837033762073891035002629575539274617653481946978494778792365359657929553752949407833312610241960357453321204596642919404952639079036710312377699632272690909180466010554095093005481085032333930750657539164075946405873858678782157869583766207069341135787212605388979321732204346862385620753975843337947773974526750529334507214731733288748305133604676433182356879328430529649796290363837489677189762159569101933205695329359570848255860957750883530358549207584011125911545914046108822589918075591591285472051921161947937446669317154021561489860691985305611365969863066070651060092133346873773982715588723150999683751264841007204138632887239459547020770633695683111850261301177491476142559347318049291675803533316176297213578902041696014801035805126053470187514294244138097027467521412763237702547844160519788137648202146422468672306193781137625816569145081846726289936164196006736897991437497316253186871338243361446734931296645959453726603553870654935081059144834686706131461627833333283760489909643122549012135587792517622589738104719432897108384824803065109201675581733887795123666493737390432759432984465662059382162768871259440369191810440780504735832507748053842984082815678642658942014239783440304071830642544805231030929174413014774967961958894886927006802578532582244140080704350679426698140103101421288861004832238853161789384946150547538169195663276467787030691848153671141134861847321971485038502261896756970653672634397449004024594296562723054835424183436185081655322857445486645778376586619527149056971389861136742166390114520519913469186410173022996963067896069896683363334774336817447279805971727450413431681773120131015952008416649638731006319901952670330680234718353655755781887811203869427476763264666947182631734053747410082294653342948109360159788248483780186296214400899569896053481508473634949226571131050255211072954737418474291473487026740445454714489972116830418261644851482119978596881670462633286559876934812924619340322373858741883251587488368987264356659657714219027485024225134657660204200692292612635251906976527317094994881506652754014470787182549075655297074476413714412262617795699488909879348989734721872357614005571366118086373057374938939936516654448706375685909104144913379716115049121907235925368332691467968236388974680035576156715688828745319996958729740353993722607872899635693586020272790226010602112361137238869135315787589318626340510549052170902471583610003370024725868301307777910926234294757890797997177218871913285271794692535499638216712884598671487139099706388111067395463504198025031201376632250797050952019350395444388452968922061640100112997240378266733465822056886859088629876508559436824631293878794353758356472232608893092270442800782764187545180757505337689730864797537082633534019190283464535850221679149633104033716057445025752987002750634325123265259626829140821017760858118292721627474314664653762320229432954884697275128931668892544282487553838142133359376646813194275178130422271622944242575787857287359053671550486310758749749497553269402319386606776714124310158122991555606531837068784122258456566787965914571581721070180346633758929092326928810318043563215719846751580134254444134831625308791111423166439866981299905840362004345124235599624156334645039746245213803502948796793065435217570565714827971642446806577336082363689260014475160451021115553689836478543312983140280442894109195940853265425281979688604369607539546047248599633622574360280937619736590059914839765314753655940222184265185816300181962444340300885791991869117919008001591624909663517420830246692129275692737365499930820566641218773403615421558174959993953428654508271305707951352227250644242458102414265597641915460605371743114477102027975100679940252477683417303394285490896386807678873222716908958154121265580537768507086556354768495313733610411011908236578796455975714469839336147366668431425352383324690460024224270898946484812196406723526497073530402172742907472969076190639622917860886576676486741223323576946943758713865416549289123430078723994317214250252851024552456107591163952750911702934979250621730760725360134178942877087227028355277202670308610031794043925249177666501380163920948129537907470038923774334774915881411206603681904075369437862186564663918608089540706203774441620154344411318330641113642539312064999166582152987733931482618152378452538096707306223950598539123782680474367419799408020071871965425540850304993099083505896072027186261131934912889002958992340722214796663058298675934089559151709677078287620769152845879534113698301612473640784907171240232380815331765772028047361176724357149436296083526338461399266573989190463579558473522900064369631033445249309593800868000190105210391638549405579828928272675291040436311815274430772594176989727489279914456915498581587175335533819528115710865083305383622779564024724390595853891552928238339957919710517710945783295515962715864260767264532948175212058910944397000114180832755690406236057599811825469501484976026675581225837025435465583891398843130267700319787442583697594010176485302433350001084311711950205634633385142172506124812305736927383491157268067176019715317551103179662593963278124024096577068858040805519623276206548219140744178332651346897624863247854124240298647306246688641417134095463423647767905709084185637752591499505799265491452637008350761479426998834635603423519232646846759867956587640553661572797058126652987864161867716427145110539624378449750377969166471790290168391248548012431814050407907156886841092394621725759056487821716220614589286107528522379979606844424179719302757898013725231615227393354699660741827955500990582738733567712891641667715520825463158856944172151975687543739215378963675646520936352169416135547242582165326511160787272054484278510656278506091722559272052710878176864779407814660875469970025455881274148802721975662399467911265318327790474404976038689845628921765346384327547989461672247721907524897021837543056323124804097639351733188766879595043310421138422375326858222822996695795545019539691645535065901129059071360135332219133316593639106924903720000869627252178549175489887481353248123444121224241974055420820305757117358897388910456683057928095254133046099166389523129725467005325546220086949943547845690141410612205862198560040130507640408717316201862815835116915947249823796872795312361964973274061962317636427879108015591075896021502926816075292617030287092933902649051523270634127360175182455561993459561959834435527237726857487533195113299785085528446064379768544358304143878616672121578833868427397558443861627931989555907896138769154564211894533233897445077486243975678945456825449928466801541226376473199624449991232300956207084753739485821953267831328833542888933687916445074171098308772867635309001314236443320265542247313797737085619589171389118820492429033757979490890567954678705454556604206382384629944847178900511212861795707751845144237002391107806960511943594035943658040027822782139705610010638644139564184205995129580610761053772964801213532386693637952918427496023465392352658851502339345949164647816379070958752985736478134257571804383830562654463865952173958912831017647986711000324362616005195536218237344638829168212777739391346133452246154758125696285126856619700051174955379989941323756145227738569196639745006525476518388213376045307841040619184983798911727003637931972448862122442030544547482117298025253594311973742070075711318837614097355722012625044522479787379787033434788114801909347355955666072493184758514734847347974362155266461306162842618757714164204617884027409132626385949941716038931491207624311263555996433726206134646300998462006046676737507911322643365265626418268014170757761232067469689434407979237357524376317390805078409935536750688649255459542276812568400649078743910034788298389687856654093999693974229257273739498240034163033967591195974906799463896818310750475160140804023688946291971071448927832276442557351696888766578316227237238665861297136327988250844310356208359129656566998864198916277991966196974156945244330937231425044065769775319966995908228182456545840481479305240762525030210245008376281253766783468194948602680012890431761225306892051532984312763291965921767923484875729114413787874642022208366273902574090804415168567850459292749765317228889057101372572541515017775977853279445141961442560935497828451718319509603566664051042261560178184018235938958943355056361615789718581458980965750875526492895890364198061188895949278381916742741773276393367886226069634532015302876180988859752850058089192579843341535680766728703792913576793890389193316315605093633737316072404010174591015227158670156983506277269532665039799964305807067723410489723597662422714517407475206044972946172545386640077894919655885924005891679648667472386127707769196515986280307714576193240432309576080512647919014252644651180277281532706066314064855110714236158306611329958101487161308619446808824954880955209157626909652415392837258431984357167179146913047582251089331773007999630233250718673847154581197199451659240586174926552876166469871703903526536801121836457210176758606507896241152252340718423890198689827160089539134753423651653037908200906939759096151678455046346505574631456362509501195449593369781674566025408892041126390813852024668048743862471443259389502271917299372811306563633111405503943799308607318749926486875936345855504306813044272796327412992764565625325828965721261563346650468727188492816350674165361251661118151674028774821876018850987787508527253282098169198067817830393033917251826076427945845469378679772489421871512182049920310978058565725513712237980955166168364888797585000428496259270724685007750167847213520355018670696539067125239863621378715340975761485953234101851664763652086292040759687675598216340628711996035354034875520445292459856730151627461187758037686002412308807643094713007303225336971624213713231632909716516035579591616337356307684920852782028464882903521607993991817202943022015805870022237257881305332034671349935354324665085578271199830518499402905049582452621952115448365704481262795203723516005239893233160533138101549044777361239358427939094433058386714598146240999294905477118805416947457052645241602705367823634325158367102482262125475651972712752413853205800464616515498970259436513126953594895056855823004104064656571842951625265894086560387482241536209472690587871231548840787075540329251947269842942702803082735828607095892722446928528820452440738610067873266947263529659632616022944453369192174626661812315443725011525789922939741048301648736322803916046433412594289451866573671621746217038964129571523586568389932170858276873762438957683082038914869226738975218613186385361187641372799853158907357450004875667961199676434957472370061027290897284938422916668006462420120376977990067563903790645480769942441242468312005341627935135766574270038057306614063623177721880327316377731460008619346177762823652147168883380079479761932635079260213144657673379775294763286224094711126407305284767392276926132187276283179153544113466385292247936936376123986153007027250834902707466402895297314397279674870015996797373269517278768589863792697546849487126956979843640541920430224641282811845110869212699219246866167539754663138924521659511071205506929323290983511356877225053835498897608244383213431018601317746995143027823841925895887554835453759565316943839663792735128410501653508474146047033372690960126690503160796714593148838802631949123996401673782375297190119981731927445942388515612567921000526351438365921710088245321145989882556790910958559429432230342223511961138283085951640708417667638546990144887161612736094518426373658309524956863701056988940769630969966251889071080104360784262138549685807505332735269009700873937816865216386484427473108888158129120192459989499265541425285355425570537134660592122549204134290118372979024567946229882370771544715956166886113770910883614318676349666045082829001417294882482924731025956942944531014546992896806016989110051664991069409566543281974431117985333993832198183421480338286793990803072219286126679572796336356948213016214170370261965213474017866379859145933836819515599480002534850552457961280245102778909897729880913266788113660109352910103905008690232281713295974315758110889886698843290352939216809464851974942918064365632530312434819469580434132331156476238374126426673626371482288218152533014607692806635485891176432216871294640646135694819379665438344040323185011439367767181232478569232837912670284827296965064252789495571169701535682054840518541810296417587192478956197594903899232060843151489552427731007619944256275000973813280910560745751880488104908274760969732435659025379449467703543435399641771363134282670794831619744636839797698602717670239288873735307336706701126359168573048502470165105347278793245201041231005170202999004998759588569642612116669387440128544237314902400945455523104077957362982712654780046718883018462039474029965749194777840634481506016947524483532952520218519708773750009936829568152683974264648250140075428038673268269696953583533322010494038236904229945563097750002227764693463870837906582641721804517752543442822925575745709556342655397926286223770625657309343591721973749652200993793959596657550298907112093558181504093074749036553078371306287988235183819775793589960225467127217611615717790104401305788063527777773947152463675185964210841837218555509432714334965104868765602693718793739243258855578309432911790560003602182485599713998359021915347575642872127186738942607646643235810891941687813109351220917042006865947199583001131500730624060410866870934205920768865755134309689639098298891819073793652228678869824735050401205077127491193148924333966234109502826778922752024851486745835738607306551478360290351609611745857680618995817677912702164180737381485067707673449059655876965245488501019668461022756976265349941965144682766462129167497769079065510720300778534952946204441638095942688002583904246513917498559657383226276918176970348646666432841376339831954637983477980855395361249785738768454046554717547901058160847991035147380845836803573525473718284642629164960143222047070658372567968444752606335964826843387687933840106304507902104159420602256817304705116393293351896711433176505187284841325380049950065415132258753341295438114013288203393781432734730968913421509603368191000583557396914637558988400881774084129643634203622676004547552479134002938860170207297936443627766988833683612459743517210489189207632210205875703294659066955072337303098879912396164648299597812343959036016871933995623303913856325292045383401249813477143692797253528591719511211920964984830560539131021282818395782443257804201861412504849968323956882736390250613952203044774551768615002329524059060494937890642601080302989110646193467671242485555149224676191709839714356996826125455720242411189351107200129156915912675699835137767432270618905087644993049790972086677048828293623395967555813473011664180599747568369041122948291682251932654542969168522170590352419958818547886628211259334879651366612279262851551482963091768072394264604566408559538378476219968420660808226397169794076020685325599197154611755450823631691785917746962279592148070930330845694040631501205598687356821906427009477012441345618723741787565018991344668493281247852979234752999289282152433339044958717001524290643431408502910026246302804518471811997341762722432498921347445731443010965078801454154651366843724049385722503834194708618742453135924435644250462094926277926320360877869966237303189010214365480705981157885182547490330302472061738687476056046442619878395940409093284272099144764355847684066575249477354314827108721406869318590083223293433645706171596046916801510116397197921465358879084667116892828089222587888060370536049140207277301379876693040673228392657017773458330379392815643186979788267793222173338282015720881237222663469790950314011852187235342644087225587124376029502813964161748361806875474951306641975323758793546420711708103519913228740251487229737498506360141546093102387814550112593034711752125803188157665329669083504452812594663892827716362104361007109779853926224608036539775232207459508474137456493330530998754778591030551962663954031526623290756903258905407704230615820549417329116494498694930519035184980868832006534599222502971712298318632801444593907591001465808323847801364360721866404315234263937235152914977420070170899577963089161348064121377613271406060476091585723330088279256112917660891813375444480521829909824661330932196232529158935603792049824425981112344179419310212061440507683789726144225171604382469516021408826943406471841572934486018644672946056093772686566695586016393975982112248485039653493514206975152253847357932334112488563419080659706031759504111752022446757527298251042794330388419330810743838646191825784579793102275538585817529707681653112602612048259563855330262772579492823004212417499483483714093358930338885572470573249058829822101884620166557125096850526199433845508533671535961619341146960934359987125648573533779429793707326208988383083199206655242898945969456431978636078113077945711787539161825339700079619116760893457064091504403618761663926048996809193549050417979216270303512174818803497144576615146712919750594120220814993203555478165934249184748905092834014976086472524561996250469738453218800698193272543067816840874563851737862551580116039973191284460192907874380453368759301164074725296717102102116776027321357303138458481752361289147099004139718453332573796232901506967375947977506479895141465011897602568151898372071980500357047741424221227054702347791634809227063794725477458007785019624892705644382440932843516371427280554318727812040180566016440753302748048534214171430128883808901473607539422080992863678554116697139370619295495257786561275531167981936475153116875062228324435626948140455876332141306600539155108877870066502658328964413620984266609826028752420510884691176676760413341367113675511857062411954900624100390425568757906481074743401150580574776070804867972689212202452738587694451874764106030385320102521589364111800000473221116284658382756332601491710761753987381392429322472553532064178422711150252825551116322712230149600933678712072265091704456308539175792316357255347256849846668207697067608619594624653427037824871719965041163752237109703656023297952463288768529602179685203982185008553231867641578221206781525773776997204738846461262975249821699865313714492338545228101256045855198895719613084140963240626250768215521595248208525015486004592161275032348391930086068061241162535377251645277609108058015120314339685410828398016051634748520269471546163914027975374909181494688421595803215866029009131334607884143449084812172025273238649798740681164854272744154496102156173802021999231757937209641839553973081821526739934413074711089058190404244254495521963585868578720899342269969443113954409157539688775158552265209193552015652752196699793285537543408746505152713617008768191130220965406021927035635495543615508258402240104549147898006971938358713713030038502819267337115791843069627876409441612716299562637551755975997080406180038731132241163417259327610047729986641195199686255566983013012036899908104671292934174129449499879419250385214836870839930703269452553890137331986138028385596161962815996910513027490865037280082453650733877243510734241324001228910707249354501508465964748122793072188801099681397543384199323011062500474775764885256447234202641813781225440651582902262456564595917359817050579763349414067142337898610832160116548911532627139471896919338732084199578841769172250108952067001662716595560419871918003129733643071346616766184027372992535473582654560490276907162339061862287454860904631747890091168857326111779278813308397522060994616316919875659516596977179645692405955301776752230904635505614012797692589296927219145154305421566582961186500635221448167526974118111084052130951192290631544928645201560321706893641755187466630967010601402324806406497543834532194924980185405084926527988283391920990254250485989303954302708907178954487263588457419042455790951704988625263817464720146774270009084593029775816474838948602204510423923704181124434174492440010985495685374802827008155766985779296752322078093216152001635448691348103535126902585957449427206881109199408275938849602146562527721216129595836300935417013992056672863894868588627445732630573491477491534727444293618970746962731891770712540652545502362686776616591540833299124769607700507476380044967976503920716516939365562894356115730202744422828463920975178501531131512268158833767545210740825194040575684639953126283072855611523007633816051916137364742138331480782107835071288439027041216347818805884583562087587111341642173855856686942856866830881576822933070585683417564086904383747386146145703473556978648388923881837863791085393385891252400596951488532455033945590800483310119299004447881250972222860418536968054707380394734388727671158108647228378718170542516737173947693565773241315316646340979292637902124653218347175076973279555315844769520825127738514405000626716270921515224062648066344963714572794549721884731313182773490883751315642753572169524925425347907698452784284448745444099401901829426028680855891093594195259246657944951489857625117826692799438881332114849050251198183928785156312424473307006235603377692566486315780104145064104378075760635381820413667734814309864436859299322865343934033892294620902569695501006017241582000217097656740927612880791303132700691806719012348195479133044640680640039247749886298139001025820015231497706401848285759409891928303290577851996510109453998339183792022196440424547044453729240138909666630851375102478993698650902813036536521214862389430330306584326226409899613489938386240303463239695061445224009750807977920282008292077426949563658182671404500214415216034150973533757268801570172970679288373428365959074974168123129144611323338184620704089834643991122896126039922222713745981532356654351112129207925165554415858044125941760858702208335841471032937424995915946645285116797596262402146282197533734172295374067628573792274921835813352255672334066736408110087405600661027645897099736694029284090168154252477257432303303001151074739751547630581788706340278136590815753176557561722071562441587676406381438691357676736507064296743730719478803769601103261823319607419385866888088803061787921550951290232962704917735629754243888562320184689003152148912257632469258661882969485631171225889352581042013434139771721465047481733835832998098156829189120509651685322362022101148775148895076719603394100151962034479614747929823842641192850457146548459635173963421467671281125418930666566236789108627769792674107419337810234780777213354482106702465082581153758768077300307254248280433555572505689288861135208179108645840022398182533226316588173702734386988741013542904917644926633646355900717233320585232739107079308959789589008955590517838633620357435073149248992556092113178269098871373828924599391597156302732287190438729383496857915254951543627694931230303050389633457424635952334047324789534821096188580028330980328260139407704349228012495220544435243779722870058057656487979241602266309382034503581744317407506017927792681042408873861898209360599631044423358488648137186878815598653669411937584119479161988681872689812079145297593312354307716676257270806128782450719505950974333841966160991974857485482676898476793214970294090938584793677740458925242354686804820110482315068692978370687211318604935081658102607657353034230779157201421590234272783222657887665906269638014922524464053798041503320243463345809286517350533797236029353653992131412315404993717571605789137519437718583414852455374584872445054169016725631710476146506129444821828297351222990038407963439615992456349796814441107542208324443450932177168703925490518479510296016721849406843080846930384617860361631239679893555612939546347488097255550577810045293997489372255990135652676510274720004272371631982998674927415035458061217633418269530203387757347860891662853754395927423119856942206161292717000589563134724488553288174101884574469626910065124588188300603059029109795235893136621857211085355978801584250449077365697216179495770527684955423993893001468737629948737114181946980664797453959676873173801738589142275370135466812795733197025946340756388276044197535859870371208588651732395944713655296143874970158602914293790134284067127391386782310554483449545377249369540490561359028746288689710535270146706971992388600540066394960914739847959366642808252086754079306299462581753217630275786153848535707110626784401616397144211517484408769867372404840350796511797504714425737581809290782894253347816370287045115637719831893097485701659711541016253954471774830452408824081853881017371944113670969710886062954336171345310182593262521806380763863737453288880097178595817802404459488098516524184821940969334836758106656490364969502910268839934603790792059806510606035933997790977253796101678471088301744091774766203154433154201159353903379871107604050860615946917445284379178940489080333750519790705283951850471607480967050530554098496370562006105611274186110339773990006336853047736870709455495948488328631861806161164461337579524291107612917374519152585898564185257622202082966801975233318029407986748390052588561581564600488952334281290076182061736526759394841379388943767226146621277269363285468085276786536684871844897983277849462263565010478814536925388671055705507942570826247844329448168662167115286886113033816488625054715801350261966978446396766241349805904883480926005783618969428785349263881222403428771023654777494933355849263191696957037355326321701957555465817866060771187770832035072854687222145128183204842792010089913477915616468558156016692457246237306584628101956091589809718016950531734508752124815455835618985053186794160284044598287453552875731718918136240086822183500106482151840482724272232258629061929343352790185155188870558247943605777862636554977851581201950075023077622620793179261977272309292528370454810051121642971227603687831795197272287187895823357187309199119668297532562055718212596983912918617867997165268718521535915546767843233780259242519293463088715734073111765825265346860193668404186076035872992082359873498013924015658810922790094946774846100823875534916789082176367672454509000557620480837625940808852424831692271054761938352460361119645103320696189503375711665432848352150540438953251609126398727734090334260184143385203518385763354510651288769365313088707740548201423136601472562329800544771949155509461910632530172433051237121601566734637828460874360087569794179148955834840394008370800284619515002231822471947123222902724785668057064629968198355659390564547263803545538009063472174071023867741221642296062213421899090831604663896800501858654146516289370645751429955114512840663359986283473455800432534305430384030826659948575719826202775824438904189203193128821451808290855191523797104960709361004579496007780718727651853176259228702037658912775455600333693234827724865595634397329309809277636349715569034057873420523618007762280649282654088657304263807389633714064363919988529672254855370008095247290236118958321744951440136415980592020397926115487913783073608492011275559119386583166113934824633231980681298525296860469215598643236703503048887710752838124726014710638577601648997656380503351966827681319951597316656085479082311909501603815944493160814330461541996807020566989607657889419071106992486641868268740254755182986081664257276368387989671350885781129354688066923058286844237933807713504130423822164324564541144766559533304763026201862181807962850358113314837037190700362101794405382002558005771534882102851500026086167357223506448163137352015814792472374437225834980786138622854035043410977582811691031735249940076688167087841866269058638166562492236923674047696522773847761930096944235351901238646664964809166933746682569919881266234580344549838249366918798070230332072166343766967616130920863624979340448546584236428827134494034645270248892993409386157369608352194869518343552204612826513064332233034318248869041813409814877161244276594275252763512811285100678828178580535535716034927234183798814249015978501202036272897799587543520252812555347546350818061675774581086255405750753842935238052187611875283248564641247460640062721104257306238217399297561251562841331288628627227675034829909996176946566481423965420177841095957461148170860577677010735599312063396790706506378192308271954520703776981060540304693022971839778213482809481941053050056330437673305198388144491758909410320640168424209993443110683072956271498107566257231954510805934719753696367886121984437761315466390186073825421947553082562152155538614744710715807230171669375854415565652688578212579788705077192512414112517293420915115283794650060124152252687396861747985121886436768531961954163731880586214034917428903750380832641444237538007666943890571613097041565526200808307228313673451000908442478643873476210278941831052077989685538396112187865094313266629755860699632990013220561075976468343880431787333576702782120989878645975273399219009173328180331349728750091059474243900830197969127804206483967767169508487915720633334561007605115326499820136195165808564353536499479578721941555551734933855953486849149374483491406106393521901500776253464993518351269694989524933174110020246598123287284810130840009762781306849610432735480689458529311550068947585380717149943879041400324618540437200281937930811067511113266856185420316514395407379022886324105585546661189963247313467692938184953926124639351678022755990639582558045778324251272139396965461641016204048705895628711254696816976022239119980021253312494739281061296425663162519912520431592147035244374264785140312048343769079555600566950640248226683827525349613271121619380420220859618559536699022672236180908172181785347841173738852382598911211607275436177163980642226981336373957557091693729836964160749330594780921471438122601728679789299501995068088818684888176522595194468054590138532350074386164767654144924317030946315608149750219938113519686743007038273721522761109785964350381461455556438952367180906723425158945110328790390609960135345393890788918154101875441630596988210036314908493509453959112679538863200137908837050995970129498011890677679614718010577410439891511248573717290635913221452795439175965361776685058442474959180516739829378599971772692715444104990037599173063323818591637397877388408186977435759563023151364577814622649708848685866136675346301350457941691010410079498578159415030599842444425681099050185261555266332465610284258229729122215195882996095355101908714319835893513282212925430655175615886132914086214269238455933424406502378382774448321330757218519969374113187783176112501453711079540227599696679763098798131147363056758124880946051751432135331517994811029451117284825558391595127192199442945697186295430386740758886777697270886092710800996010281477965666646784533757961986628205468129214468525317073616924533735430429907755315706376738674954510017643668210516223600827340972081336422184926943697562106198669295547242787478415088258117009350849045621824877555248186367876994963573751306610474870073504298150562742792053410302990999697084436938717756180585840431963308862369648064669506954662227204559047485135166385521836642722136361919371718826933207117951573338511522106748704722076226789430090250142069036819192765945082857228663038826843740054445465122065623922742503911300531428575121462227829453144189361318115774111152031213516905761094932114139565628924805485717784342932706744054179270587568760241417657081530199707928385029381243023909575259095987113922730492097530454884788907498561924326036671991692733848137218021678459462136563117208831068682412199191230016683929761836383863458090493211454486259943288857171848151360261973615938682760560079735712444499219896717766328908346582305749511452609620387396503489161147557014770979451239480764616501987870954969006752696272230157681541255614728624730238676132952458086708208536280664079566283421907001092401521581092523457575955620591241242272783223766508145084938016545571843330940084228011897911893043821630982985879799662049999119974269171136048409561296986763946589265178585352081960130023478504509555308947053119858951403727432813995154815367362876594038951022425751266752324524409613500185146786589215067624299526385140768108862688428610677209886929442861413940464011640131631065144482955604636740879274986208014115595982421992308181697418926991436417243610440704813308644271358632161468501236204261652997954154826097277726155371531366887226646793003211581391103741882487598071386580001374352847203310859264234885945473354701883344880403245834116910067493391867102865587530112069232221537621465336206953490934743041632173352719292075368772462896822492117423676313810295983117642144044334150656434264479756931112431377329161914065963589678044627231034059847258753293720347446666000706800714245073984959055032919633849079969022935120114562108318866253038784810131420484511394241675384514584556482572934298799140406908323660724878506182777786874976641278521756899369537216532144906748868362210087895261131539559071774243227151221723320490104769324973415161498738089014418317338048832000903372023137592860976455866919391976626480915655213485182865525486712656378486761210915236351959103609897381871452980671040704542333806526885342847049981006641577293936115126415966191783577073094053334819490841399647394440233122198268424519255236542814449139375566721441941863434125850368078186602688872466245376090893529664740409350158919773630800495776577594001219424457977613782901075737480270563626335615094408127431140373296297444846248813659514052231637393674099469217856369598775601012897267018542648914403994025169200930675046670523595716264379317780327248045531581065849079798137019495952197958870199880227332038985609132533071435533930912349735125221206103863303586946124857171445164944081587350440866614483667027217491763498293644443739906297514758719377417886134738916847981717505130164333986631047941193368999569040977473430254735249245655753145051063794184255164364119680787989028290055296111161354920281323552518629077403741773360541645531441096741424699403529600006916844444341331244757308049053906884162620655411241423137211883949022942152367606905631820648548695793389278569371925654100874115170567201465808465789323361300876279418212054149426496332333604070320160419118093062986382647511268781744242998250699877265633295970185068351698752073006947390609085515042373824701312257885334753407019875863041755281479355101302349606459121281551605966188647871778943093608137106866253169371228542547844302243674758186732192589657689221104535143520206670838075985941242973209413512612602115199713079980814276162383154976232663837108854213230052805480430694361768091893189802269618229395020465806072001600860582139932026120063065433543810571921029234742269119053695632418972741159442120376328701984704063024059507281747963874753297841938529261825045352016566792237301848467758401889652322886209180192731694743458093807491788284868407143237892375508426696942189122924502599188428431776126187546660313720066553312600856142393010080594092495458092238151020096425946202951866970539854886408170785913182356519982681386974568780045297329337778740526670700165928725544297223153247928994394913351222183299894677115175026538909457670136216029176034029622732992675473360464335862294671278875533073531188731643466972585326778268894189612990312040671612394585664724589215644680572255813465919903931407361220973372839721932930584122650169855661414588624870115131223352033684917571993452010288731710375303006359990732002366388447744252000558416291592964950469109331669260484537744839129604359334221994077286629917571033134015861241840227527757067262572828930125676940272604102094543560182157658163353507676624166362464632971180664174958883320578373149742240689622821365614615456177246840076996096045398624916538448308210827187878485229374979655352714075170593255330715386895246661097145414559182015878639591387860866593304413250940857832820083312866687778860489075957046234227111750976327147835234683191193971244806784761707662040738358564379666243415314527593879036717267014766059943332255280852571209386831927578118019962920530256211518793668126866583069060677854005332567170493792763600614625419091951801394609078196802121992230229573820475258338528890177685708817615895203970437629200662933830218354179864184511934667549345600557904291828121253573248658435127372683228432805708485456053684231099367196206852535649457952270019893646714651124289747712988246994390203751812896376167842478071010122409530892014633786286593879586104625465795731949793810115783615215285869382190261761165962688655118450296565981253735346976149878330223272080695518805339046922888254958066065511439693037371850633222738907533863431037701066548956412629684080226661115936629992146316628013355622660182313624257802837146930773857635098032752267877038444616751122980160344949581193213268820031467274279576679260445540340913981533662920323615146686782382383963809922804391790203227241072919403636179716092358358018202261431624215750160077751328969816439204165340035282608509265101014278654719453720980577933888524741581995728953778085093804653533722727984577321842459575765298533208325255897666273436183199511918457091944396856184564489728721714161095096314866599439285256699966779842367652494931991330828948776989439565957352127406739013816578687539356925771997100562815493066186602371701564320486529496526283727430996276968667035424432205139658490634641447406027978865295457683880757251109901600406721084358426731738796772366991917682316345707768348707254694504781761679388370398906093081683622417842399912617998387652075928558042591393239066104305880943961241325131906519206918996157189883154514387327466433115552215629084893303755006847637515490719685235144953824274592995865238855798370081037446536329356141602246161892608914074325655751126393400759370423266990719482845285224066479736479807796226709200254711928718033278653852666199072869128327050963179924625371963579395548147786750408795224515925009694793867603591854418316329657947668928064099176797871347174188394111741748080084662610858051190274856251314474845489462329873697383456817703853186789634484978462151097706529465235661288179245471267763014883690187394761855098588713132126221588654265334425928660032662350139315368896467561506967738450325460433449174756697802026706295315141338019874342593133771801494047877567665431498933196926597740165454762527243502154375367841480175148676069495977121768335996508455098087251862685798397175741692889913697266503384339952348301675465716226523937812004033129218311723462794695786038222730729013155139205060594619784088007626191170824507489936153514703568968031041282108037106473537206966123055557606748334479775183694506874770824327222870019268769708658838352240008311772262976639395888692519285571292502407423426806691080156716241440826914071122974723854408116047904134483343784889471013422787786362395338223878065816465226625628130618800481986791253086689216181272096389478142683440606230287036132479183357425414040908729117801795222127989977768398007522119418680280425711995420110730154974487269273264963355789017178164075260012462309386326477931916198644443539623630519816433083588197293098603049912214075408542292619578954028427036640205427647112779055526941546605582693259473985288516786532934899330853110152853844141701888992175173408973396583921045319035696146515381776914184116664659603424270676485812984263033147511808591476553851608578172047218088037558417122025958451343666327945355251717725924468831593603683452629004169947473803554738624708914523712719246861502232446697061638544615194870346910017972058014888736443577386013113023489717072495116235903826215463591980853001189905745636630913605696789279822053269783693860827855719773552180271759160027649766538766939429141410790793510326092180398079602041936913386220333369749186827297925430619203656095587125080534092610188270550953700006424089302961910847855080333989498578116205118295299106388652069447597050404782434338905598325895231421098630512922916715528584767220170079816072928915270885067689008664918965771735218802798574433964754654741095277196323597927915969859783933285699828033957478710718364869555562043072121948248990272934804911656658949573343376330209180914309879546240575830281131802070785230221664074168958476507854716389054953201092610842190011387122212553398439121300199432046021625547661505253177428604133996998993042474156227931731864406364096459832510950211733230379249321095919354853889274023337676898781273159083258066413851747163295279261458091439392108764165091281958081060180529869992587220733098179053591799041806845583886169266490528380455344565016695656177461269286099674404634660482608097814377539650877861574590880039237469538840286898394990511872709606050632967167577068991640010376760589339814595761254362336505062202779754370723022408062882895921972409289724741542281607990742054150016069114023670834272675769770274876753387866593826984435284407208308612487739214157256044771079739441766327875201542127990164917443003814423740867315313688250634300601044540627698338187640587112791934259449404162389515362450142221430664777203438147653426278064697101235315694105534824345947962471719201141811046522678153482975964764266898014811214925847822276945009699539798306084048614355467362211141840684212741896187524060936876622005272300376832309080648786648082555661077968773635724397903369229671428478403983661126062846710608085275491991560682207133208421255081288279430325215133477226396256853780288768926361786410487929954162883071546254425068036287569320187571456704272946686460729913509490408404993012424869098911205107290653181382470659279837590302936611540875416170424112236270659020819859081921961199630721216143490321651448089045533109312736517706993601109058534204070115562001304947064460104893283947928002869570072532888769710751519442936678881366425425438977002113773847050389054389586275876334756672630594423539729651487166076109524117526391676378849999723568446475212076031921826054248690440282560594322628149205660292501421573745994081570883401819893920522529783952476686710088044483818375251403093318287230131340004578229972868210121351925052326481858992961239550423631768997908048240057956896171872228476147256077058782641539319338916311463799421409939718189572429838999156500027139817062090702688495025674420461917224556646580424102669106492338883861849742345918186452349562578511023258539924952934679041114302708444075146446026123873045942469478629950762372832215195796518702138584504688008577929315235460303925545240820442498726702468185960296723148592076183397375806528261428274012464197392627184490627105619032219176563280286858964758692806243665616059206893274772500174605722939389796588227831878668270979683336921520174019104622762843823979613208080588257673861789570217140017899164566081452178131682543027599022216745690702191748470609018300625740835842071887295537021183039536815452310974790402696411962864950405581505285064352596712313765733535533011995017956574315109676349781155881475046849232220942100523662371757875328785632881047727768942359831705071658161887655620206143508205644435048390593730798008124221270715014006250997342840352292442859200139289257155008592186758733870304840643591070724262169651425307649291128174993697602589965716235274962123246856948097169925657460773998265835491968043290175687243666764677969939877167743017878813606828289550778433416124635029327793496171447185102840661054579456595440618677678026848806898799731203009431841056351542000331744344139916949295486084806145071388825057645904606488726949666385938531731987230256264084384841569696500926524080615091337319348610211683061679946618810184608998671225886678702915105062581930786678817359152504257645048590152996604569077163779177682142354699551634397693042017195718346675994124826354991649764222661495019687621932626829975645084515192439758396656960919033894017024663383902305431593033909765281797864352314645590890065748901633307747032591276547597471599319569197073365914011470267320532947397970798410361263206191798863916925669914195686898278746531927660591163188367560186490423449567324684197731056807934791268482380891405256694108076888164010511596386566247325622705140454908397557251978397582779123787915973424761746674550255754013674638182957327573498201198236869885371757099681226569588100338296228845599483304632399211823101074078049056620114523132124707043145821681460414285283988460543050115758847033131836196017560779447955895388443912412226161414650299025675948070276887579979380869398898495957386831630568123468481061294039278614820712947517790022813441709659709754551661656699134552526300484953533853466593258214821067314476412804492773043836340130075318511616450856016462600527851159996226306881901393390681258097974036093539088151270955867283295372699349967261519386569540023737893965085187783203727579015676106320999600582132325600305676213136018764299332957886351080201406514543272752883103705996182162659205051887997441609248024292210449674137745716548233934535644431528942571632325164170341617530813594338616962437804030358474461574110777335926766172441802148040911327219118476918119182038434452299991052944630480573112908831668086362929339279768360091503104221892563554577074007058075163036386198612027163665769546689949594485799544696586253945729647752732994428841906866820475304375613245900266820240760081697219924877970509241912957145443370413052328639020976208981737238520846407599624657951205914198663248349131030593546266967569333805103569206507828895676671917786136913042314877389069794741370345732838850347211873509385660573017594853580036861659359938159262728431292283294379891329517956506711563457098213467094965382077214722528779056151257152703426317422846902222118257290453896777170267702634540649957460505574129352453429962301181677747215385828209460462639288195374037883367151037612447107523925203758492435860907628256296452851208900026027707856584330479629739853200447667489438323405351939520105299647454051422561227168428751598117307880856582570958506814424827053491283586721891019665567228936553824756110676988446894128735251170655804200987274507585767669266432884902762905255244680768675441464836206146043316964006642684344302993842554838485290152696192655208888215709043581542507147901267136645560662630911515232330542388049867143076042934540713046793835310511096522138276515421366806223534295795315194460805566434160833224593961351004443444817664093014522284233643845233441844881626214448794823106695455745686113266425598334919574564827160059443464908398709986198267818185455599415399881678353460896581425289031655695197652662272683212305169550848521024812272936028112739201840159560327276244586699049178137307796553384936699139046278367366145996877448709304950041561781918970021180842865984741816397755682814643031011534192859079748784287882715716733906047672354661214761769075616775756167497073698715163355853354880428447846890497012483993803964431512415175069567197909793333326543693341223334639484041721075667443153000063300221751443981051543720510487024724504222253166148735987257575694305959895160226387622905032962293888465258247912776179928415889844755138728714294306179254930989530914423979705387143194706429860683221915299723624764073665616948724330703376679477737321306310383234488945838789289710871747458097553968868344369215712462425787617320064400609648750148191801320562953123865513210715014407488772864429022678396733808702887340569112129119570878335520814601491135497148550250294541422091489638222027377668601946322415506691038200351677499259117498819056584698963632755908130942743789793824117711584756120698143257882340645087453482578841662063141063655107996448406147353451852889126550841550500198300555543644889598680664057154877535774080878904781502882588931318871040538517586638862149883164128731183058428290092554462303139805253197315439433881874383141162601903631821898498560979011236647973140597893192809488167449522424920466539118654881027026494198136335736142270021140526355523944270436511865540856610052877279613252365201198515845426640814190839899024809660584306394510730611048998220109512092823963581505069086807688308530365590473962103753534083420298030656087480235950169034775364534526294979780402582396973494446542770523924534282751959437864124923954510251034009904463011143507520553857614188943194874514773235723693034839706234229216705362893342594798559290573756619150862043160559189161410273537942791791406458673367964999215154628083733118080204337072767950528014135155659811284128625243657332765172463823822684709909201648280415716799449145789633328304520338521825530498632890508515831513098641280068912091472780898058967849512435881073902646054072014385912519098755257700943750746534152460480476946083176480291136401317995284001665083879151095679968244352580343656326726157063941662010669636120449393921738105987968618752433265454347855927388446164078962291876767146711649117383634024900784914027881586685002112952558833355491653907162199681552154848189746922346146799480026771154960147504448239801786373508817796713519311884763406823585378547406094813108299867426866759992589620430766184863390030785435562793220206138932621249505807931188301508112699425762823368723185861544490058191657988825418171052796799467525818903340328204949044075340463694062390149893477507289702710049740547897448310013402803406801817540786941734562777445553818093949651911749549671157023681827615185214057028988766248659427669464647684205027281787221903231833591964072097171895462539469295577743988638346137467303306375427173620059791071148992816127727453490486330888975698360613175086048554941514805930768733799252412005651502020924705276759787424060456765695872084647467420692630928476055060223968117819198999461378781647806029622383493658612583607973123601742183484519498099397018285352554797367631279899511298145531535031886875687522288470644087709389119485705736147804123577572957056294529983984598635785983074955509396150846327198070856958412800237361998765840571188597353905907046013633636373005762621372942626649924539603698091755478015743684434477551863801780873431577302466296792873244733782048113223015760722545237359957526660820849803276556222681717886196292090745583045545506004389504373882068111764538001681924974255476673712797685349698664088068283721182632691489293051739566717430033737673342925152144228981319849369894893398253743573897656799057996954159890546070501973750009908222635136110173175723042050872750170241354971216389548855878387439365250829768716514022924951861984669452110278520990926437691713548224927420102064746880798588186987740673415287208670878680427266178420162250939809232466410861356856322308363535482578155592614969684185028942814150860101220050679626259951658259921065339423984001642143462197950285084445005275019844181293339590785360955405924341600034687784914487747480653943894171217302648004975909797498573204123660430843791776452986337576220338566341438927812722856804449643847139542935497020892736499765076137722227855602308338377996910021142383000874112095605783255515377594445310611723537486260313646480072876280943240825110064048397022566684516210615530369617591164604767974030240410691400695821453318797990142701153183090305474370590195588003483769722215313793171182524390333459294218886829027404113011373548815122008911569635726254680181976068742769550281874015092498810742463648040103473077210164579235940560256626920899664522952718857364002863613342389939974594900366974517489153660927839112870689040322068910243426894102077224081044828742929949191977696424010595591072537216540829908181974180533939329069197338627098662331863585531980404573607779614040176600933657400399729486443050710769818076117955349992460913598826575304216257178836210709726274200125559092442322585277133914596873448167118722676781450141567179908931631412448516370036840068835570515117432683704351397361750494643493676964994949032930235436333938338178154135684485827775450063575037558834471407828288789913207648128981867590600296537678201066751459153693054629016564688373356295328561306821949264911479133361663779630363036276646033735385570601205021852183033625892414637046498199920815019390447874350545279968973871992376492113058005849412671679986098205577083680123863827261894218575081133550325317164662541234816903072960955078029984370754681721998393054118801983440140012640075005405658512402270644307939614950341873547836787260002536692692607363707008274675001715624648992091632977865394039959242318329375276830002116384881560513662992603693634826892333270056853200865162494103256417297493902768501044244175889580584202416017592130244824463569850758588661408542484324856437796966327229003754576797995462925281297241076431941233924564046478936326945652958317923828475062600675049645115140451488213008539482196767993603413004573625860853474929786579796282165298637209151831723295409967118878674482162949301359285808388203791628360839041501148124823641013745457250108413667958669989233765042374026438256028802391977494881823168227332074978229515686689732026932763764337581966849063188167680058081475410693166356600972433544138572922720024823508048235908739073116889478155785280457290633432673446693474335089020286299064382899676236875002121096977101831600107692389702857861215304744799441101640997654209913410786660060438771501081207582403155592207074995263452570823404272844533855883654065207022445450093842005849236873882843910247697449202013132664486926663971650514798553798007963775749361457776258821411257091398881380201630392674777141297607157315646744092445711790575307361034329923114364680691652808064692685716742872915782508280472855402598024255858741040544589610913166443138068342140281036839080153449011661909188174956072124053829358541856872557095231487923450454116420480676974875399514893135171014213549373938499996948643570825201476386410903258646655765205872208041115383987382504618714730841862044903421341955405112362104085687484300222500568696315204738354893836328932562339165990914227445031235764354313822928801216069259656775127866738230348172272697823578253229502927350448527399081927864653101762214439922981243670811547311134200853523069196006359416821265562531120876188242821792877915572047472960205092759108077165484488157827751104059979581127010076647152561881990984078944952391735345984535041747741403909549155214573964443848295931865898428072066438033936944306503705691757633937103393363483368839721014260724328490661283606642132319728362875408219995002317883134366674134070116959020966641530498684957833358285361207328835365856039823997619102289019304695311029956546134469706848359039743714013545152881141329463119796746996563259441823385780553507112484165571280851800876041945346716707136654857472097179655791746413638923928242476251948886630874556067958510567985552935736180843091666204284209430444868022533309193982268769905921335436430316685071107591357383563357295277553414631956654515336324196874585873298935488122235197958019205240040598629066345501452765482191563352059214223077286313818036823384923211676900792748841163982688536068361255925027640465661070392508319326341640174362654208214400587850283411242218523256518502243554838915066625670492544230699045621951248720997332459539252492032088689215391896751529323924209183364875788528172501545153642939990035631801384721127975807659413289025925942644013260066480920049044110773555439025714558538651727912786063960460763697527332447659774659854602632237486134004191513400771719582794596651949709540377740892760409372978069924434455495490980673779827940703948735463920551668746202715639591857102494294012125030232693590650545503113414804557559482486953491095822719855702352658815806356946168261580209885028625770693819966411749129863269293901482840469993514400222047786906958460449734414280381436476435201989667169798206177724682957298988466870035612659739487796678742311039042701479246047610099736783007057037641301440425842786338887124743475771048765941892556337326821543765946972457191789068536648419742569733736540827338323147562875366425196503133851732048782771190315992096978858819535098899487874647023091027271009830449377742936935401848602534993238265496083361688322423336924372152276846856724920815580968327022537577986759309605103700167274421011210467999450777163812736665012001142702958749383475348202571549843787346616474641883831150290151296611363763737847956649132387030795400786498672447293918289051923096898785339959294666973434136202198117730243357923619730229242978187970839427402051866149391514042704995257874383491210794375978155740655321963056359828373734480368904368655278163326100067677012491068492567698219751089994457947883548016595366354278101343101298574457649081303655034741787294683574672899047071178364197199916113925356609226111848171081608274450501155265838661088720960515192876750054237730217982155525025056020283464571026519212350961965692501745379097543418705865590228659637542461554296918522816336845077668185114276237762788527324878283601996821549461771235533235811839553716340516080768355987944275452074136599399866204106195802713832681252350689522944047411188537892571839641900076087450364996764293664561444506519618785771112659273411137184591812362167393623573404152439341206721815368302463821807433142243254294274422575217559786663953099937283577887236801845485954458705319140094364181119968190539293387110556303179994788627830658705167083596494184320195991390317804087164653944815043909331340460831668051206810575075492278628486582543366937134241483504985521941387775459771203254449463793693970333033059064793572048923658145529658598244611301586004982733014376550742863977046282444375154684313284594693168362174504120788531754071206610026374826050997573990633745216844942284186232237559381086065878421241378386711135679117749833469397768944875038809456838449086376563500915242871521036366284555470944474152714662951057315001452588768720716556047279105252329502688270142442148054842195957855727247518143598057853683776455809005068267200042244441558418193365463019155151034362621440648555494609126296290173100756864071429093319779036789248999635260250773136660430713770206068823991924964105126339130639281120268713896316555143220435851207876226793413440684809579094769546757057254519770940718246830176742466053894495034387134790537528096088300617319438255017238946537185209474939343282157719189163723649160901447950518348200078945099710468720872101116034070912619221824615644554929922495259516628410821038106637832355170505105566979375184495228493607575168079818696298725966380261793866545632701174282681021786364196261937361642233914173995542862528385413478985417497147357503388926957754338098104955414977078842749296981173306014760619294919900890801391782950395709375276904138801530366010655092996193511563142560208458673689481056429878287622365761928583947965928469492620041405429240218289898981861134311015723242991896829991946930998580067517333512033484709695468437000342525976463387768307330638609622544399036126531412357291217131647448145951946558384994782394246250206254667305183530146555394855293430118456748929998570993078907838182490690057794769645146295666556386147473149298885511758656823996997596519616051212474258474856570111220094776820690258419411090287630033459926455680734951303607662549050544774569971479847701234404177494185722186423761973405991990360227812290732188313000167603595408625703078660333198270557231799097894590243834362357286524448460434822754274289610807540540509557502148992235831462261167146285932880469134254984509655226257509984822170779596047736723586433340467185579006191299860916534876283642920718321466278425969670555085790509105509975666726183491030911832824497895587916604612905002160417969132840351095769367902353030899677105337153119938951672075152568621293411976128435759587014654569566608053239815630261782075985532552857218371090886320212755011203964930388692721136293108100156983947880404664646138342112873074086962029075128156969858117261797875213014934257663755400025657906969874176079689662818852312801759638502164028219672896216376988410706984973052081643194407591406914960988905876196181076263837301411119680466270335941405560937682339147103571451811010186742804264986018368178798744666011010465995238912337600567578647539616976425260191289389597047973394324263987563393504226346867806435900055024973461179196990089592583344678880992445028771839455976295796317392090869504958436904270187663422090459076616133311075944372994279641878916167269103729214780417465591885107094386058883403823893963915834176573266389135454070827444628123733764725681804682901051717785261511235409625733377962559195647185971453360223767354044061327193206008615082209787828527760420959503294727361960361849016784759513307935324543911276030954007028203261404705922937145793486979248486408787897851962636061585658632828359657695081534564857439449120268294896925168345143480756410577500113761821332204206537416140840499596177811346758113873750549792712283098167219796178575640287923771031385965989984108094894161346493506492325672943324822597518196528332554225249642660188214137465557267512793561132197509043858220399396569038859631466476852602638654640265851557299040490040445933601454145716964527772136010208515650658984658747426672792718603891946087754070319445688514333720758775063589708459615833035229096586075655000094050945672980991887406786354027701397446337442222242974512827630329986264484974402272339384882716659726129665176745509357104052670113264213847597178824468422229143049062028298939045346489165005628810949917598831157569345717585884426678489835844203862369494352570861341047327198790763813362983882765875166589993143743639665054967588338056942695421830344227081558422502545198515271039874943389705382453744246466283581095749962739303459909199271367960794876878113696387919600969397709535433116500506215919815208591212240663978322407523099249776417798090836423647644498011866957122666357321808770746943567806283385890800406433418370439932217829594128054930579339074445250289900684501962815895432657687296420881563062324518763604449927603436655394011581684048042307602978400421940263125376585719898478087841823417425369252290642242596404734523435667567554053791311809546720214231116502958973731565021846135630786006157942885447662528176663427930141468549010697148413247855314499737403281971878984457027590796781840951550350685485681577562109324513431521562026199369993307916799388583294764772479565274872482356706015424715015636399809914485855797203715155725649262108086218914820158722429804176634200281534443598821194971011555289840893977530761621924877182900059909900734575918416653851361158931208570786735772268831748796359850618620738257931416188891638883912115008056119177195768145176254801735809156219678674934573744501372213561084060203054437201940701103270082864662728227472385929010309981594288039565594926682331471579022654743152687668571128530713572002716438876778460091504361067326849759355952546511936352604148705131757736972637538032847339385575571948003478766540570473722225275331067344922651371784440745053533205397682025283459727039032496826257999215849261388070971089165993118031842043569787859518240791999974124297351941003972053895129183815242484022840013243586464484880409713718016761066154288018156283737280416438206189118852142621042748933182605493025388216008314731561172790914588436224064399238770829618821217104831197611274153848903759642971139794667976206621431442010235599233351589115668972814094967261291750054692239172668833770249912331180274217924652239542374942695864181962372131286152753735742996537829839502659286876262340028205690660927240304357313806823471155098298734215969251266118290461689796748726804367997626426300082282182573725310329462569777130800960196650707728649889577446499550367158861685011128271553546711510034817715095193220292045284287427915288030910004991829559363509471122760929564979460747653016152151767802801040881037355421692327096996665576625629930277520002961749188033559865963995201576408905929751810451945318546942669600073249781341134601985880219144789719926817885642389707990800561777671806683768737005771348005512910752937901498838609206492590726298147479690521237541017598043393940072625569406871513237209027964562582379526232558267898990826808950896637839050571491108768371894538800095767293253898064660497367724093967516710832369341446912009696589027518012515529636752146246918603723187419964442992573834483989907767628599825885619428344338483787362928061793383787938659371668117508804886962845364091568014200739936208075194190878396113019647153687846179542117805730224723743566378167135495834423239974827180734380554801448544756792427181591235541003051188562171820655789406343671094833912147954876338103407351145874153063895286319120535925097811367968842524732836327473898646980401320780287037015706058089679767017481701713750750194588086149984203344593880319551600659850652943782277606224806937317904422658934503712257115956667770853098312263704492613697858109998271529860666197656029715006622252069784371098204939742834437029434736866450173899340175285103854558577718793485486892994121743365044341350429130524931569753808524379680129143439805090908827342616633038811990455667058344291613358358001149274143947534320263707742257878320185627093805897835587540953055783249363997198928093539606192022440139989907255490693067478410681227090398264235187276149285192902366520243640785696367271275224380211437785612968507040104637452535025058801700256156062201328344956847486898793837279206131838417682246845109383259570772834598900912993619690562818625006635558607605801223245351290811435514516766790384615659952395698808278966030176800469285506904519760858069145305065369699466955668198553277501894544799316930292264659351286328253398417190314179777682926708010701907416251194876657539448775234812221627216204860939993700903158027963579140873565340512993060781949577674200009171140274926180610248846803151244447459105527101776624197741068877397097614212344416430489252516157585602747432808977791919301133973218807487308177508294853200328881636968808458831794570466088471269546208392293042032912815918604089024140404160885157647720397001236938674497564926136944559404320497981141348238598552132276060975395652141275567927313347935421399977152782587630882030317782772346843392809472668709522518515773208110433824578322665662362602257382670553417628966510228498219856946912424411952397266971118514117941418678852276267911918584299666584987618802222588986866522991467140639875680455456083036814785096234911027762324409368961946343957349739033518180462952847267748921470731788050022490486267817723997457620238017323877024160063533001941599745086960518587413726754745446977159063279782760799662110853784114404308890106968510146127361933230692094123682626789252153633020697192273199789646038561863960924984325363813214456087782839639798648124459508876189939529673346590712569821595751600640103744965436623976836493012866272414782306331424506493627221027745673511984020365047518971225637786606524327723052803736787486697693293846204970985720741086160342576897471608514477261718205237610944214691300804235754297904323415039560001394794440382973660942587065596623017670434913316121339606341136586525366729146822875795639089733409108414313012268749300615049248565318506690243582363330024346741404686021588945910603537077970929789659133273661188371068272624310989178013677718606762802740132986001955764475961739226590033015388942380960604110789129329029239796691182789245058468844423956323323678946723991536659946212208076474768962106662771109994312991307153780155300075810954949446262539930057792632594732852046920760110909485743014030700882263362671171518984435299097701413801904259683632442203278814190856964529150197928612547578451627211529768340371293259457028545669685048167828081117739848909348086427182388766509164446510185622909783672062206361185422671382726321353258922395349213029330979369996225294584196457344754918282296271854300269262178123567570601123538287236274559169042014013345915671976976902821085536245990958541790225763566976041637889278347730617179102442449699225601483124167796814938155678376845027508274107751348039455103298896628299261097326121822002413614099557704035404514551401989409653941591969719236297522705799741866427574180411368879483454570901496144197072514907959482319029827836513356356388041235099653286488989895925152833013110208269290811862761572723404847661103886182185389731867852260166929767293224842044929160939169391035009530234401049834044425396217085126612083027642513023883003378688308467225156861596472470385504165029960745775239205634322869084438636952569662554139258043691084242216794926240317627300903989678900232804736274369470885401672992457997099703947090169749422998947012551547358378273181247256065167123680740950793835543941528185770619297390558732983944475071065369919712351930515620412924043627182658280039914828399396988408660131474314797686460614381134823883780103904255126253923972679933051951327928786002327159419957893923191301395551616540206983946411428935929051370732810885908555615931602308797385370732217285593746943728707666754131745411476777896648367949716697525258180062997436777240755403413849486194029590683161059688483869638526925028348439335042890793496906777951350173118579408693640814103981682395055125554517505393735704589015594217439009523103223077001865573246604263598357893309893896381818868902954309491253439231028625170570764532016626901299701553633888080217331078079971586330565429667546308214622261224347466983650284051928624582550575124335335056532118784013307055508079730429340755681300381337194497398094033216291213343562964044594687327998207871374811182280012943058953720953057296474862942714043865825643781491999485605397860135043118404635017396709436753806685829532046601652931338745249570384743949221180184308101754921153745883438724252811104227005365690890223572180414726549942838675422706585306910269410758904099146815374357575038479072908187797427663797220213309277903414932070862360862053832187113886238670583196204561273731351561144000334983299593810487304201503447753258038457492399524395467797309929515221300371322905253956857173810716095565961622963691307320925869852731105677080843825155057927547231719188760274574479516720323040247722913270905383776861788859112862693087281397244775086557953046738312044578518915214436950550303450926044221521139931391757070771760572250649767138694453240015348472447544805766063897846339672873836445868841161483021516286890176109764181281018248303138694689294224277534735783958445267900502699202737329366966915099287052077610253738541686390680359575620217549406571445096851447106238582043504782898506620979591198197378291424810049527874787486224124421119041693089931620972736614159997607970280081011758820647544288446724443338650041456251843277408218579555823523160963525018019402197636394970606100103012625223188181533429057068027017754355459414596982918329916680480192424420848825245014959622599425299927356953408593639060175739705103310699700817304610184217230519736961493751411261184113471010273428754400807604528454391128526335786453567247117881013962664027781545828966385508072414796576853690086085996213810804857659120564578577952296982949391681620685284349130179725556488136603847064617620688217470204909682059053342129332496973129454390434571044622590965330070904127168559260142137546627841728313204705002321289095635310845957541800613953822181373646873460239137147139936639469506944708257908475163377251382260047136077985632260819503770938345355075781960609410406237823394486444529990878060825793418463996292908389336063597025804330948730573107781268949773163273749306655266545232053417405503162680884727811457907550890311543449674587338190418536969160100876502683038237894305653512714754408710889520519574910725276810917312457127824499718711856438260577114317421526006775390829046317835307476029373240349844758317449541950792466789150633324226172138962831880600959720508047199924442715626899128506931595162756993069411500487229571913914060807119800927849888363536256352964112487781848655086239841609258559303684683186597867924274793503865445292228872981096268993967226011396400915952556716792356678955912802656617952242551794268558756579105432874873808576288372318089872887075099179163780286770272236190543108114331925452872404511840435240850690165545336240775220948441197575393986208778326871278884923085712885814937628035337421214335806722687998955274077771667674410107233183785728069020239597845708373803695923199859654388310615243596907914216494367290124723211949312653165402975628099901970409434233177124602536559619086882448581736719365305294505576508553110260766947285198670050859026674394078374375061931761878829087765916576590746450719362638332879695207114551904996008163644978003061937970548532856741859370488663387760166584562027785311484099743570652170852666024969726722111912849610658977848031748072251189096342911650892577147177617428025480153100234990631474550974107865919228169323528975735784885451324174776804284777822912529584303436340428539363058251067276773029942339932793453543894719796919354480902004446398561364488482534647686521395430802810881702102500572171545607520411410146128377481518936442329203783599902456179782364959374100513278545206554631489670058001696988532241153264675906051727294106333199506811184941440832308909868122900885083384165114501994317633005213942076412036163339841270465121783577203530219568819921228895174724080375691610529285957277197219062828289327696826817603084435105197651350605233834296891450101231990360812360812982051525404581977940260649806710592908619038269347328673703908187765086189053471615058198692266902619197117097070488316058420190383050231050457961028175552959709460686503642155889899843212120214854827630026219261839446983597126479999577734278295880463623785008722015578005791598284448254385690883424902253890514560684447802579704906517939659876115351021706793207385019486753507370173364304615051993835007898255295819402746999745500294574833185144372749765180314522382323865862936469983700750801501850929311024444536240506077410381046083601283912318563980044635672089878852177129025002179095334763067819941461554632712293855003890215432729349080701566780429159911886923212547865672687124457930732972286987857621398053379365979347432439716450308739255204957284008893988372431302980310651681108097910930645429443787006826439231187677754523477631136669397688047628916911210672958975408709458852263329660011086751435505533281106455369239226378191975539203931526641814949463281084409514624859423316162798169443032725124528493797349582784124079096558166103842459090265775082794270294742998724700989074026484816528031886989823945084939738890493716112391777441116373514756700949505199880561442573537845073150228551429378296286289871048577364658425950410100067706723800669516860432248269722719698726546385500217217107204439783870806902905926997398480524340067991267505510288735565895884691973106266923696900690638347109161001894771286610349491858198346557478688103396913847749115114179026503260505113274485732508003249876419346743254919560976755811407685736269718625441364582254774085480574950043213995454319512806870171386663677667962909330674012626190025174681035157616738475188218283907217321770244147343733854087094605471958217071690258427636195537125862740370909919736213787228938372597023685903066264064025683180294255102427967233326175795312518357814938511523343043190823180309367187493729356752630553062724081985904306203485355088226600678953709187257328674262365602554764584784496760257907068977667340607845561978379747645787887020489930466990781101028750909709903037326948226971298203065944334912538428161443398474304032601691892342168246379345138902291590108497906462293567172191996577764416550676548201935550384436724772591331599325549605613724534683702018148840352966603475110003945925576905536374190417469949609842707987728097705125145820173701302140617921269845966950367607983906117610748539198097399363363476054012123828379960751587951488848039255654565590554710504437849025637713413709744815449814432295868184454845411314525938659284244386921595544923984149288931919557498526469268793180650897597098101524880684360671663630816439293474036627635546336053852884548176146434503115447760726674479421737427364241196062301902392487570931572719041477481326354617837540796192653364972216999522161988822873164986270414659528657361487371477290594207660388051488154198988113565145139579239215992644992273744072283693496259280837989928479486423766450577468599917486896262283746716720735018740801817566036494477870148732150260534626501436798765801573601329342610447548912519524856824667427006746614926734085291454166698398368209559698103349267854385369893726895627165497464781949951824065052197764542849829104593170396583097981336173084696040629077547250756882431415669476721869464018935929316500773527435763834383339090060081913172996635016392666915861705752297260345988151381193985104565246391763929844711735895977467976621438675635037595720500832127284656868629270586204311604693828025089695690550394924726045917649649492778230519417355762717394325788170900375970606477045540486472285222856804211895734813969805321951388897451866620173700287252332796413014557033692343467488225983390303679386872521919843060016508112312267713059512995315815210485945579667650775308433597320009366492249395562346903067810532868284449274582960623872298825988975991187873789018312807113032526413112936992820109355748906766772552073587931009076551982231712463572552809357956497164908415215471650852258189253452602356969661913014791689596477474174928751104147274376697394344904829283174280624571621020947016830422129248918817131912473970124316568149000641621826775396129454107319245955246370522029578168635135206135557544127337811123697523888979937487976964215743331545508995943049393907364340381640565083686313682037753183208823565083015628817813219613292934905370653461686550425094751062673193610026506383551358940442673040915807603283350294642950259413350341451140481244989157542426203746350159496662292552091315954536318333308180520408089068900627151008178526820620525488944278575663829997572522784467997472542805993118234142308304704164743850236188789217882680316769661397140093355792775468156124087384255552251887310471839877612335687942796400010826826601455245638751274603933769612986783058996723908370425493520362567241781849757877515777858782310267885752757762075607861163729889485110699870366537071495313957875464843452839157445887806324814879444273722840954723629989201004380468872429163750964542726977974189796796392747587353346470184610480995656427177310273718993798402078854985369081714036240030588461962598373853174357917337288721027451414496415548293466708204416279210915995765082909830902996266219013617824820649953722556778249458753753519296920733019312390189070821727948131656292866686608256977001654356009914807404530635580381516115752819432176573794281284745193268936463825203533161069923078368681881950824875230709510248292117812821394673067038637433282235524326129711229470859592238533506338105149270796491813360085895927082950808379861727625695059223264529517885830907512941486447169568513044263689274534278467402571298663828402438421216726013983620873036567225265884917727911521516596003503809020261194772205692807951303511898103857852805361033309936003228227500774978328296720392968135865911373239291131686517033698831129111152834906070690098138049603679179064845693378608057091712339232418097727593627318203011977953849867948982862009940090951247509283561507371912155202042552710104012421790566024930069613357031084494350101336138683263270347644032821854464290560579881939020461660914095092985543230251561520065877395568072597897231415615737983572422975240990904158868784844852851099308632630166446110267618021112419614560336699813509817529538338248840822541271149332129317180687706943162745507102723843787743877513693302217041277829877340872321242380692627281578102579552157956697085185402763091224377219680338236856252162703402239018606222534757619432800902290494281321821520655566230037133420513379580912885087949136635764953078102148139122335994521351952189691846879738660573799528075716164362279243741738269286640629591684184164551139527447091704013822705884721670737506394280064743234404841426002626372391539279922031552353172064496240344806408667628883375520506446602264918942025209472178843263895515308241139413217463212067987294168708352017426002778963377256530559347490535123831344631597173813663287030715355326402272023392464564991126385250415363980174141597363396934971507995797385768172156060477206904585534215271288139719811706166016711510594381675554810073935170343282408699828332005774739498703793316077534270646431027490316426366502563079054326543499055075060073681118264295836005785686748907941258589484813836647987222588966768691678684954552384010891370566371025373452207994772021761035514534457100047553645453975673492399177751316990757533141048465939856902921215302973102107793452275760318183597152295372345110817061450296007544406176608908591622739780709498279662945025177059501823027332081397034262929492507804849496977667616707665072697574599735984202812592987970154788460689030408068357708336822928739257171727186466627636250800522826569067552580265078614075720415909761317886674552708576133108393861183943757098677253249707513039257955989131559689582125238766683430517402804434463183898279179379535054226838283313097143328633556206594624012198986320112816460295678712392222582519682036300124301927765520287823082901076651412211408290170302313662433134388676388933439410794130901860428900593250109971703695159019623018220615636384026361159054701659938579678510047675811820150789855881831722194139592948465878847424928068366533284534533816019460890998355160414810183711380682045841665427415031181843471633665127886182639713491188257212887687344290968201480478503789575183940999440264224136207884949499183567705247944749670411871714104930388833974524181563901472568687428739752796436748284372726181776024168285691354274406828554402495926391908503886143067490102853592515701365535902059045792333469559752708391133256443387314820871966442452498345332784116860673489563263362368994477154224214279188233038763515802128809413135481434623159714514352401645947744568763966223883107056536520359205508546922279709626074879478989270270199995467629494252475330889088578532047592716401437095651845009493371168947832325413349016940095876226726920987270983366496025572833681855759712581654908411160209488908927679135513206544187978944922963622349494795202852368487336330425505402450373750729376814961901496272760871421378543846754448961601368555399304892676735804323467014105153871557186966115412311234358901810388637489564129819606686668554065053677300826673991720056842306546149905637777145559514554732665468010894772347471711161481555185264018179362136544943857146650663893174919521646483684235913277774935413095475143714646192884549428062386661913713609513756372847540999608411496388394458496174012578346720272198961667732795742280793280017122027842472914191012698814481908186744675012962336467112262260265329698831571262047563850905075622546522625144047792659926916763063248336884260044282973522289002442858086605910295483475080640822130858716799406433057833046718079777009490192590435300794662075777049512962305184823981818121791908514878493249473986663723975180562756820911171151585646317111579297527179380318221619738865568287476895657521177094568004378476843695061740915126764787281440656231476395732992174147245803111772037021143628774013885291208639756901654287448194899820163633321897175733803651211534837752365673594686685324329121483451285785588134174244551904520674278853792431156979871508666132137358242275721963658698216267553380854307286701046538631979930218702029215275655070299859403512546500797128119171611252861588927797419068460157426060742554244154598409748966042061027446903379559522618272045117263006768431132179212077651002617830143680495492402175201229158387422864638248604294677953473490383848871974254637930265660015538196641997431130288841724407947817787934787596757870591578433474123544290521728609163505245857418557364678812999558881312764593701345591180240494807067600072353156098177906911771369296926698906392681371953656302618502198941600208386022474367916632233902284758754903406466111960052982331457919381169715796837791287332989710125341832798155111214748994964877208645741576713154054982130278054121558932848941408033704319571557364303645174081639607951209614217523952904093177596089313185048577836820520825508367567552308954889732802490640034089958469426523060784788809335498606436838065182097147535683665556172472631969898644739390874088942054437744235655135296920694410340376227558303634907356097260133619522957521742413030835814206849460432712867851623303714682357548538145113428102266093808306042185043982864030625521570147956795649257812738991717443083121292844955187553733893366717905941903313632199926591960951588052956498887920081700897362675810059743793956605960467743047976263667445340157254505292768948126105540418960842712202342237275200326944850728313417512736574235294636982081001301311502529233253713295008745185759486698023731247804621906858506811610852191602098762010665834139574035129387460155843107314055814200110541657078239711678681827555960135222797459676504148678740649159805496464405816896005226928525456759624364717314879930758084116895949853679164421961367697256546787641092524981351847949840940850801794805418477543213545068794722701009423313732703966212634713532119372601897217567636968404946416716283125536289089693928446037742744986440642123113213803716217961410717466261228427007404945437816794565047236132956803176975752403367698624938879001721604222936729580440676060541312664636412093344689098265523097601871306763270545912458642595224023918044911393297762200862258267625476601945722797893814993264605260915189637243141236722552156570428319010364441107978100380940669055533190654525633970791650563532647182400220793504754752515734441707008579723818502255939946653407767669110855747398234901171927475303525271882585968073179322292401404160038035525792743494912755831073824258444474118224674124220910030741754238744574234166752670524612726541412091675033130577466345142537163765255172816701350710486271028823972299936614188107583032085046777794797179938959283582095745280782773827522822403819072357018397106553066004307526951861715634494653456136457423378192719856892819968560462273980532734938748339115385283517317851901113499439729627882937427415623118591236136455646323531614633341037838635334685998431451019157512333054333225624068031274388112893221705291308181409541617326318734577630755972507456571227911030960948625106678999656824417563918375973191913076386393504183146530876843518470691281685868288461403841535692568460076548665485120160182667576262855928486926948356430389998500566055100304515267860123429121636071448472195864192264146239525597433068669948010557934425917829327145453162374863009873872263129632787277669637629682560276513465374265498646800992211503877946210461905456821439750877772278591676193814121087142578211666802097465469206908141923276229055306387653566058117380541392343445351435233614918906126896337804343536181793522475700211247128848070517299877263829108190541882874428612985798339565821490461406703036926988546347286496828296358466823516733197692187975150616042427661736742597555003166680043599034467521566224416121082749261572004090524783157711042355283452221107125160878606823538675632478564441280437322956112881753419554052155990655975938514794732233048410983168279831597165112143036625480077705186428394029593872950746119050012417023208014388851154869212527487620800198500118097687749704901636344909432926210322212295184719785373594801655891322324406955410662121562238693838502123069797771138329030473541821648379762696267899514378534632233778539315853224579889190991360484702325325531429794870154964215834751020350568995926377066510821278910203148636670832154190561708013468978939358198519070997406041039245181710072225276991793701576111159116117259432135908187061984458405147506180320784375276389080678285924489438729136670534753427076075562731296987928419448622723970367821246007509649395001422632050588072414018664522253064377022414352723073429231874387660831844434842214217125063563157238344266635226729598655862540187166883816412058805174268244005771691923717939617353048961795464539188855302679548417860496995216264334059249744738623716493642649841556261594441785395056921252574674745291577057444510632402303443444176425311191034527129648561971043623588762316144161916150456037371266107601657236072253567095830148291177578699099575799380765208907022781775658799879446703625361970458990441838945623660491645533556157301610525611343692597680005614798998612715973635177842602107585268840800770200220813820284221802102398869303493442733330240674238195011171740384976601449420962525844913581714437535765579246972340783339927324908613001452037935963340550898969398067748236569784472946327396799435981597272948714223679040512565732930206858000029431305306051273608212215492942136026110693399794000799341545833745699136854681961355886673418899006608969555209165440752605236691327655307518102442988830920549144640527299210812827465137778999575469596815746908805244542311082972157749964034829710133936663174897867777775222337722918293885291455806553392750930306469148974534314521966038347080679820488039842582921191117886359266402233312974857721485018466323168029175381132451964826642608833453079607161668048937616443884783812203176091204366359941100825426762891658417299898834865716649392660732047552538626409562094570246239942565432388867179274813691456224504150646649390700065256841471903598259183108443859872831956384339068640509402587618360639254023839911462621301374595419372339261530335504034657883189194324763373486054611413664724165641618997572618597036934671733999284089127722053214740622680190054053302511255647838575393157441284291156318593263744692313663745604957977779955834347719354309457446553150941291355195520767427632731787106620938661948457838449028672287655356703081501645419041329313657313202354402653727827788193815171284650042776558533403094227287484711020601013925203108094759360671022999841795446766944034651625934891119285397162085429033890419909420400635428474431991169767353070504500001056844885356772453387405990611714770456428021245792216188098158050379613980442266114498908505058972052022522272692423227857933075225672475352406160432848622521404024084091555851190073230474298265710684548606996419424959493594046058935014796252685548816112068164337340463214680947898106687969524278333181862294981419161093898426849467568285864703579225798524485202089259609978073127698985635523301775484784702794145885995414440048644455843794525989990707029758970649260157175174067140319547230448450039893199621832586945698436121723267332573317299074259535850128367439098120201409048150977319003801678299401042318997907999722383151691882137176008360617631922288776179035441496576961417664745942785215162844917666503948317931266298788412576620988059959306020862287199400296954811410177920637123514974656462020039368528332162458086478530538027512176333766240476806574163665359922305736546328046202553908489400992933843596921449997510804252401619604624097682546073548752125061337981211469819974484503141965237424646002682928046215911166270833093017544435942337996947256487822751359252803309075965511717074428327311460458521568119347387979905338679239288536817735515106112480237437777209338263869173551556557276837036930231901446645226094220497305062417580351837103956863297194481517254245278314296641968149506360247702095263661702471171659914006176722894302733147815945387705162657345324680606704550389608942180955386591613391870858777076463414754270053161369624409722101719119887979222785330181605497149180931355715122441521360466034271475334948830203405967537098329988936134730914015681233199372005393026707341573708467712037611186363843656958562796379648073006316789036370505787843750002801845641655270298956783530236584150490167934481604280451248575093543849747468643432857948911257862754481530479222846495722018481478376127661071692295631047357025356570518252686961701124078123195215782184936620623332758814103358064422094939769819064079428159224932443779354417968176459900381431455733839566330705076026060064467771201330686560868680892231414376527941286649036392481724870882133437641955126484607770464951377698013383317618681690063263511527722631972219925445787315735666649891485510597442526043328686260425683328155051571750379116107584495751323969559188051114545463975161771546540221637177588278155393780535741603221938314998725303934631181554667680001062217649638921855005717783419158765975159696295134271969962573862577286341650773641650039245047992561908806184469042555541906197253917761708127501030085502624153165691388331667666270784007674024479322354109336687630318056540818602865305551931472639197110803515595752853450122435496851926408157139123176458894021172177514577187394669039219660641674863534970844616365326527160869976466337900101404555879099247337388970396556275691726979925063820370412690773484644499366866892103062636510746265741620722759859696351471686980827818619231444430888065472805969463892611028016749643194018480473724261521550693185094192465611093455767423829876043559073613362753839143049011482161411472506296735605166040878709106859883189289535136521626432071431928163143426432283464689136927138113749528926045850065077671271584723876010095759747540650728184796665879281226714847773619956106566260203265554420513990228490388332318879918621032861160884436080330046860046618285377934770892682267089216695746369554535225132710384151417843963654128366522595917444226514835077136389352462393938200912243406430861957975885178227903108654437301264583190189651254717843990454919979863585813091265653636336573144621264840412934175987332041883682101222401187474892368053846057018936574586710831916527683820913388514210366406902429161404395633242915053227381303459388154303735171271496148995108672964159180912277305717008522177593854142767553812636194151807980078202162642745833694134455624079929505150566666169288953938146451608412854700310003859740817238138558461330758954286646469363616462661886423311781656963481950709467930573143338236009943916105809340884715546571503305389475227323372409102767205939054119224531597319142023426232405432446002160425133181135562315696568332626342466788062071994404519032729063094912005909542470896200657146742112802162457897565743512975144667491762704135681598422067806221755574569285470906210669570328269216283295614131820488126054654594098006227686687367033512965136996151437496949327455729385356392136171104159124794264697415613465155976707994312463503204059888709031569281378649422410119790876285987321320986892527135851456550797178944163319696915050363175032520987527217571308374353444057933640105434541110312178802928499986330455006288148134580020444218928416396352819289534749401869075000963718909053819173719064325331567754754008330258545660391029014389945866128472897797085563110706026057592817775303599161152183051388302559794751471205831516070569811060536206364587477010590227822471146576742925284482393281308530316931238561165696648936869186626427987076615734285596511767490531893750992981077615805062855089771091956483996986299357617153086214234650106767474658942450147546196490609302174316092549425598317458099503520706410466566783904027544009585651152898616429107165612819411074921897445874196807411182791429324934164085469316752286086889083793601814590691043524386488120750576384433659317578385160393790827835000161172083628397710578684410574730116335626659014035417553164028910140609891705834414935999377892261396869623857913600887068836872472638016012060897090665384263069484348621444761007919778243401322660149657752321794359949140458512828205353204249757161032723175539379590233412326611072165246823592786356192649198686790314917850495092290574329625995289715491580780414178923856168523756786333123466636143215208321324007187226687546802119510352903700927012799363985877394831817566884323538686069963253325671176649102095648732875300691706118534588548314678931508072244010224418440475372194128407040120844050430608948894621806469182208818819990901059347602813527022016058437371927094517251059687345279653515979456180193388956604530720605675613115716564983700609673571529944158455036044210816224171793830460729653941022884011164605315930029981152130721142706960783916138847755062783097803459898891281092519150869996223961564929306884514796665050557486029619266837369151320707332008115982174566235820349238473381090850698938186691365206211617815362679680399300916597150624072925211197419651281244131632229786359525327644813490948005885150628469713993470592080131542071550725026743628497821942848023829847880023286818379255637719749406975165580139594511844452702415236850308458548918676018365894832295686514606919195321561612590843094901641030300553919767324764006104328729566667152846842502132459805925674030544865419352523040634691951462946192184561242346360484050608686113942197264668940628966886697211298808951778259042491810672840585271514329135823870846615854786472983185363271580512502660333474667365189626590817041250303393905270329703802317370723811263245186630312029973690714153461440243472795542837798226223214030502159968462418503255494367546990235952947870285908046080905272669202698439118155448829781880042645485040641758882002518170739325522102233118150610680629027148768285239198270440105981823649819973060803433648814311683810811934885562230340706613515568318605534516437562241659267764792525996429925220220236137220312734055313247476176513778316138202990188189244282748291617468108192837878035675421227449621151767484358709900749367459998453151733519353707732189753825691224593133377124497033657446740239318222336118772524802442666041697550052018759174450139250544462745020551701750279265527478089466633144425650830335166981826734103335902962850404473437333408408878560852693686718561267888140640500614223202789179411729049750220836474100251599575568632064252925209897016641590916826902438558050146973043928676933266860174391061069476591714837032821514120519306735252397665376341788689902754498057634556183805401999162276507489435702305846852748524908202268422313189713150709130401256061505735828047432278325733983226998482681671498740931632538035695129058085267766789311965879136874472086638857635066613362709429396545685979822286691152466462048280025663601761629649492283244429833848626175629639436117705811243715858890791896465377430765888117886337319238616434990464833923676106960399624768941177025154749584789294423853664356437042105509096424295098464009610329651712069903047457728436539641777670800032655866198105106520275587426215992320900017614844498951584214319997907134754701755747027723994067719788489778055388393941798663531981841376670164218146054674053098868822141225142880541900401900036690873379749188693477895933516282684600372296530240506606838144511953902371598710505516718539169617994365265289070166248113237629689478137430026265394358999364914838806364889057531413157864750006402282857130016247073479455370975460836041831980267847260570414473077953804341115473635002373133489818140356255923581964563123060523633992472115748496944936120516637715539793533625218565481286381529700123833448575416233192860760486315787850449322823351343098020136158642535693546763925267553324340966875835251594421091381537251275630088547684090213707546357781971985662765628369333109815534566500975720098394150149224569774599598452465047019801924475919715586649423902857865400444492213170841852405825777770596270194146136293955120340254510801656962866839636033418808324781595728314126737341873299621721797517589596976727355702468751295909286919350219159203909067531360513869213544374778553573779165355309333492264145608336658311451231936534955664825648190150961375992749745622712173723798070190203973706715202556392411560653842259145729633447613465231963385401477149267578148072739775013817752816887814229015558214884916207337937249963527552567567878425645222955267306009637799417783382608368088745039628787405051035220391700904728370490356547642862850234650868804122309395758627352860251232413443688431659719961295434220714734951928264543139801180251613521964604779577433708087831131721058631512267442689733307492808184204441486439287839652221915246052428574091700520096509236465292371219662499895282072860207022080325552703220470917032758651493130346822203013101946008030245924320801884888341966155102225067378305272244456311658847877159750339454519166543229093416160719326540592055628413558412991562444784407339399266969691334149982489339364849632931930057714032279500084931924739654830539358679785844700701476495035887059008926321245206911282162331275975837736982509876809951777814964284398525119494630832687519689079435153171077351371140964443090160857586247164904582131569808640675075038708109664263947180354287483820040168512610146264779832843264635408717933348432507209174113232556124108720359125526901398079692911887214058216218773929144284547105565401377793994979973523061518042526254708614020564836768856892234043052742076371981567887868780364465338817267469924111679363570699177051037338036408844686136405290269551229723430421002645232040695717152036158793100592351423189963941302907771078320741637701454453824189968566728055190004453826437023312855481325859056854047421344341821375178875227882518463458398280194343903857915328099298871476125100040241443057636483474790939529900299514943277430870642644898627791976629399131455390932898103377728428354072366882058772972522808771685135533247812093194087741359357001623291722769912369083778570738173201337757415402724118333653072666917023089410952148786958798242837897093358495074071667823958786454326835245057257473264722123333688536941319486309884632065865754593259404409371724045858326859133418577476522429860316568924158486547826907879704327254981883204739385639410947121529079478289151999980978798423039674384192145579286976994847529559931956604098142635877732304193662959394788960315596377261950083263078673380234155649938516086705120860171063370520161469708366133993369875812435491359256859063022202366313810079935331129482676804961648815539194001502939557832770999006368771853022707885958630167771514093050570961561386001375702498284211144750349782347588969224886533045037273028501687987419742997596718339828247580154894494794189761196408874591236801937968079289810010618948503759990175333315296192327917472494206106137294262774938056593326737340914547804533083523333176870756597792511900661364441340061240929748232746337205321693924473004915442073369196454416729697330402473114745366499557387626594187561107379737548887285693541426671686661810655350066214113551514611593860229074507020306396646845226888660439647257283195114132761820933214647657539820538983839929933280088356800756501445795550904456456462120814145194512307580162251739698602861817532764115824537178164986861291996272578966430891367339735011353849814122018135149158222841093880848699845550725557274945215153364569101624971662248302952306777284876304633495993266321801975511873602745297716125343156209524844031665277370052119613164388871769052207650169154192002738751650556812574751298521886444623806600792501856129128647121095485952689462483322393888995523052770192939245524990160338093886717806011171551133364389586565749014194301328997304840002233078515753087820465338273272434679612959903616752329609395268923149540140828206731798634876443800882295570567411675093454375868261521295391407888433955791155172876810224582913124853718394586451731172767641595102929502343517945247230222294079044883833057904762357549633240752191089910095095968736897701115497437801713436842800768942458969483671260112071395744234574038216119625622872501070666646619394205634013857480902893059195052495170426855969326098479023723327251398654765020290550504693460487454226695850528178429961712599493349668959999890719640229002695572698351935833614434447434844530543451055071510212613719276309950219366052525775158508364523893920237209927112743445995860736991355226130640636341160267849702954584950257968457901349127324889091235451650053160712349242535201927346828518691049950150373680795025185101922134388586944398004962923555177571282157941435865865244652297333422818055657524534806525389810212764151524477996040174486060308904420309111141030961259268459082148745846770157508976860238531389337721434954815409884890475488527829520167220895334456015922901681098074866581943946987547517026868787078505444728546776981843860661158228671460747933838821980653685614247170047682920490374127944082885302655000663884146573942242940490091388086340705887684763256814434273392679673465777724720427288904686910566261949779792336610946735350472836684272119898195581579492782392051190784338359275140061912410017648530318897490698145367734313148700468970420073951667397014157653150469344034906951801724864422252817348362365670638730247485038377983580347203626989205049849534881165558168227066893151592602676623221234598755147634693628471117986740301994262523360170996010684397571111570997952681227923467002586276962466287238785205748832990584778200352625436617101710196872067833406222991131088037969924219014286847766171092027504587690747020097509072773071622325068104599182752876954915445240503236147488706933885140789185814919254654266560020366309147240615723676292350102083434148126570749644426593308881791380768278692692078251125003811678711881104290479422118686625248311774935613903518141515683152211979822374365256326847023873915800421293889404003691145602350913382289267592263399762305919566649801839888859304880259519513029505266508730594334022077308922085837114754526091012936143717584533962022875478682798155499607486700670898104433192687943616014396962682318415988660433021150898771196884504772881370311638019385613331120188482048584393820357839889489656849594381109019728718453125514338026249007367587336450000305768608330723660228679283124310173867663223989639627855558341206358643766959202990624172021502946849674264973426040569531091906649827477421999768943308435233446092894052013776617096271538261064578056896781316888734429968431561618697777184304915061434992962620017360884549507187184594638447608027421223082226278140998699863691737337957517775195432946171861276710246212857244586783965153772137050949985379480617194644973788770497031154212416489255275168428681745374707061001665166182492950075320832762235758841647876532035225405198894696294374288957509381178293425185306196382447768457246538425347550713480611974465824259978760130087844492855775629719669976088196075414551006652266286839086609209400895216691326745479617977159109490724821936080397720448201040525612572383934660568861952025184943641738009172662469554551824456193694156797138755807510052693941541897503409023885486249797385999463536631305483741761418404816719763896435469765160560423861711473914602377243652896343446466061943807146017864088976923580589881433987404485426335550774501125756301350997539984647901212926240832293142217548352486375739806781616820395809175300079351968520012500859504725254446195397286054613035866707465834660384142251976587517620490943512567174027631969218270099745770467769904977372823082548173919083736175543035925186454113291276897997044509294120853066545980614793434678860195244084728769086238461948596482196167971723279774854469349934796926688493035075661899661897981722024558773151994173146226877464586914211631742098366237115366627810053576338146273785400603001697685491319651671081455330559754992845845691305948415442008916739891162755535030838440250968571057458716542355989396885019157362397841882832207668624951671892238527043001896517577162099090342951081260335587920659553866298830433018462548674848785811362854800873106012800534011169365195865633972719767134715211164807736269990484500632732356967012701225714312667681914524832718380051864465210583254255306870752299752667976187211988506964319419815540754589864414701652518760158493402775070549299620737773889089299737687077147908804197238499712473339522331551958555865316707068075027004292376385873168959121519120330648951116843533138689475699338118310839045681924281888594084785523673303958477976823605694680197493719991104375122790078016768232527116954587452987405776247202441295180433950511632976942031711063226326091140960292743028782233562106268758047330709309331774851324235152157213256323668763489809207179780696433350806311592186894256578901135009720759320582760559789069040606920100529318582528488349374275576268862377963631092430855415436626529309663478402905605524720535678210426139110780999744770969247628415884556751632972400493860958473802265499792991842706484590089463661371119931575607770832440174539627753416831007404505051349297678442185529750737355443795687904296327239381797288580318076361117361188335953606756617121331856577396049400069470886287632317641730504997841990149580241316469801465850649098247152627051227795914331933129369877420942074448824667274352097689009090225230931116188821887048165173635615655815222069693175023301230292897085998827319324318395061620201960172988527939996212266561401612574885015141414491333110996534938835490185561556262323381147706586990310327151429565333708258452314730549824877139874000125973366252567573219482473199487671472633909339567307165474940274774427688105941179129822475801325416751097864973632122264989507982271080916364542367912897333515296120602969415960799231682488734395793033950526180523967534167896707800637533706555962533378360211679188670842949709713758633882801556408144891664359404258910660849035953628201180220094396763511524191743806942329754404222048146632238091155095674130157422923947061633915584428610797516659974139609786922690552770429617222028476752603703520057734100688188493461798486622709933521216963426376425752875063240075312000521458899128871423749186644736441781356451790220170569930619924443306781800192865746830302331173364803158236099713034900700326211755740387091353918546083580846832189372594340507308027079108333106696490119189109571099445683122505806464451087477297990862934635843823878568406542137269908592861316256946633961346514523038985760049484749372627036559415914238256925854823090985062273896336555707112581202674286742547763486172295197313666521448424703735800172828950074204252602409844532133368191478411550663247014825504554336444337005114632671196992957133012298135613954098483047987780926414287137280603490110692339497281898424397984356126569892109253654286654395670245497758873680194343526249644723148003369524477753280887065499358662686752478334417159180700834292353030337313132844885057668593658892262494169939422828237979040049937720447099572811224182318849772273977338113478811635341519589353040863998577821900492726793753812425578773648360332642189952318613167946190081423657836530187664062806628863233180415072709107593143917351249507616276342843272213955725858272685102354788053481987268091637006202116714531318668185250837325815764277003907724557211740636622622560497051771223650715427141265498806310494964125308358685465887756741766879522636916667541863036230299046470200343918794754174595070607262483159270616600586798977229006384876246354289641706772059020963556883329493097377896694817479390133209858159042538303284622367292511657728719426242785587721480690518380684340268815131426227207202819942071576600786025854495109851248664057317491873309823786107031197465703430456690761025850421485157663853164679879483433348449110807483423979012314111907328888773541801621416914104993113199588500427059948322017671935416620225266267091642342431460603039971691714114189123941885001469674411142780487836106253628383468524633468677206944554733256458724966408941407823318246899282235432744160702583266944212740188831426440803147059127753801452832287775505869306036837263659387196634175892156376029906839354124400898301273859318657200032786757931441920735714897582025886963982575174502520599561867378474035522312158933509076188770014752616737458326977607645178196089470015355348430257276199290926555381165377575088054803636380536944110488477064302481113757610730173998309760199611519233075768521739652644055666009900614100747068408057924066649945584873505968053645738668350427163195149520214141881692299024197198356638147681108920332389211895006956659931004531635168801605650628991436973371432335383901345296765905313955522711358712430488584676959735507757156815483568998016244680195569844377897753400224979756124316196782525108439031516672457321030596508042071307550754162017117172918463852887682613019520800944528271893661577407422489806521906400631068678844238271623472538643015278959861397907551471646992243674300711784904000768033621108684623064281144993471037443137490650271805957628290717970979490989329867107228200589106568085465485788012708898455389773808595468906164925487057368080439332614162488495154205110344803864461364762358797600113344917458702578350738656590568052423111608579087608744084607114786475313420417681092377415227097681878829301952847832867078250872093539536995196423656276803035118501959025534885594834706553112543510073030604656252784994459894212686453913138202090069088458048258735444749355467131058375349442345842013536220492288347462047947786123925448360419250788222676922497482094164026775682804046236711777169637066522576869168914756019394513944020400448691192005241369625654465257411025246932767251364121370327636254017482421191551485077170495990077791358417224475946316183748789027028582285140516889761200263550829065143631493258294813191822654359176371776078619251412069198698814895237870477000651101490079057963303459900474250185327910355190432975353534168168399330565746380039140691165226027849181175617241195222321529217639781431882904195883353874257501320206091032856019223138850419612640673374673887170138738915774140687704336701182429334211092121465051225107954152295450534234970453633745693651172505290685337489230937827980029809431156475599274378532308419855511762402124823903657013884360772010822086766182413384932764650220233103774388662080036802194052304476664091506475687505371372907127156321217498088897979053523280458747393982863090107305232620743375937564724766646091137091703149038476036194746341745753436977350155232480820462556140284557267882463456824944635755491686874131751031505495828641085352865016998087039715395687653114142259724069698892289695233017560147269254042891233095041888086695447337814042207147680535665471054939679599690269809794099624029920557744101994696290636271657727880593858300700621006164179150528309817103958961466011254317811918468409299676180006798218113239169519313361270648703360460508776142926433872830436173651106232090047791247979993033248377905045986432687382820128115974225932172992914207004587467237928637586814008210929882493244574415902868059699308562220133123474549015371765877724682327898514218283925063618651717224616111805130676044494160890289478159298963814199941955285569693661969519752296339714465053851833092239238248917600344162580691538483494247598200847837783046677630653283817752673170899468629586558960623401990515528051855330285407700384801849780930275570736044966971843796911997211569200303673190282640447699559685425994523228499668472823079050158055328590270099461826682784846416671053069102413538051588621890513822169946176035525020485391402677851713986588847088439576794234501334597264139343478659751260131129203808671211839326222961577961059845326860678461066097205221857749388902166493259386714533116181115320652434859477982416518512859091968571616581597140244548670147392312044962456112144984288991959413870199522249310369536360787412958421868328653762660022315514512020516552015898380832070577086285296224153542754667631393601312596750357777367229022683749382245185320540039254478500727670158313856252114626143044295326912096699736294280384715199049390434997177785873183833649454448862239881086359602818810266072042811956242707997291336839287293972717125597897985533684140911520692975528517315257758683110050949890557192497970998505405506764400106832514611033724143876239860290640222801475923844659206332910727531916208828667279963394332449988747534799041186216383567835386241047704085002294938691863311036186366950385931044937609035919741259600249677222445745007179535761216175308659832262203352626711206673927842235186509435565612939408775679222694146546167734579525393709408762073783435328807542419521379224952671726524781546925405425118769989405720514129263163744916282249041533499891776013282403321585749803702034950450011181105372270599558605916101265567086902581622702938090951487614472710567862220853430439818171695115426692931669019477987110152297759306630712504574117648605011494328929865949749812360375234827151799977363683450204140497242351676553679699293549108719131294383463784847676740432875045849693674037689359527961915966317647881789335238275223294388779339674929461394869394017358720268442914393274296684724880705864927294085052340452056907221017597141109698071944809241137530690732617841048926151162155153603938634764068956232911060289221766718717887413392658086453266444760001465000466577323350695009982260032378642320587583741928308224800920595015979812330491741861323430578777044979572193583372964288476471257225266417531068978575377845969712051987683310454714992196505124745205799541182080229619715161654289362106682896487390479209886229205347329582530244006391816552532231924014278034942934076326993433018233941188092321897767794804103652099765613883000939055159802172098460495592763899012848200078529686385990801130219273660505070200375803532587216747467104694146382517342622899313550103867369296985626053639692129221799959993263010019795336519228233153259085241690625394160343442740913540570478438209651936629236410314318232094939247541329707171931493466392013157038887381297388293348210142280012979317038692824273877190156717566305130559129733047969346285000233879727553289817128264309491472255490283122780699919835742720529084318154225089976775019417155716479744076599510982565668569191556755341046325103754050991734312518978220592244821646554827040326325159350123261116974809910833954779258977252463432430143199398177877367172680302673500003502265468956267926342124464408296403625862554370702562903967855508693604345155587351472620055875619597768834569658877073279690609206998391786071054644714951206999735824869937913517824482984580469615040172854006743739352830794862558965195714560348799705298046783717682021407486497844951446093256890366424839678159829193296606983619886774469823194327571068362838340685062651235205824326238013747670324733922132463220458133492892420121423471185016915279798989536941539784919734045727635378233672632746587727530652666807538310445078325351928786557936508196133506814326747589435410244616558518943668703152378792036300665729814613945109998523741146963645682617073230688796465669268729654675387971561220424193957269098449114296832342134144269710194667012216783716423871404172617921066049505989172916861958295048239873223709315845484955102721471440570112411211468381531839515993070420644872029722316736238375696881799220404361994888717179554248310024474327043324275636564460056215495194510017219603347561475243416068144703499709908758405086504959127875471470452335184850761709769175377595474052526691414654608192382840016647102589101822547628308487252767371344379157621335145071214593812220927841917401347721121725184503957966271140822857352083560123790404411113795383834979427188560421763318823543539019713144995096972589410256939568008988781884499565432538531342794066711015296797427970981273596644085715195037253400213840853333056599343148863917297076033828981309838633370538442942286227821342823364855146159656364230002650682317811286055819760423495649868489968139255933300434878608749590466555651671889821387844380561828570067233761891546409124556651255983046485519890022768352113781543798289499846820090523067748153127161724348793039688964383513413947529620736937259478408111637009254618422202919998134703278298788021616223128209351512611072377807160773214869584982738353400157981366703657024920707912563150113891973677761969121688407721207660797464724676521164740490793380045665132325674482597568906531629487920435563005551619417234454273094833431050319134270186821042205711417362077801653294725483472903632212662882539164200664228076286970918277429731188169937564971591477831834100389169225550640193428598327991066492992841948586168314250771675638764569236360359632384631489797642973534739360485057366434030920431809037542377863362505786943353364941624479849409961717372270072979386418923270565581962589123251783426468403130723130290315696089524211967214738583658629729664448906980975616068755952004864195319503280453556571939480552427761546013059973732199725582387611406084823162516115039507322661872196724889638268400994881267577167790600820730590912478068679306815682410205570861595162669597923185609569905884168006315614682799703278859621432874804360823442657309210007074979651573557042697608160392671948120988546980872726519925361147858501922598356118873434360512523133906970935543801060845219202061483267162480925350789684585192139787736891272206262497639096171132383796178793293376224652122138472639273655082088799987534190448378748513646046735700900702242622028808748022738625899128829645692129014920735960363656824313836385001216820402171551703252192164132284415891277146278006648022507193307402032628020084309994850505105103293276272825764512714469175304514373114230615737572855333429314760440508369064460347164765437034588023653869661919542895306712400421199852270491821399789553940542945474430179043374561345404088574415423736408746360768584251687602633675510774439254976011745915997877262768939268529782551882546223496324502563477932662023073547972066038470109764463309775360257998159108806704878823547871434779644415907287904351099649495461489255737495491263871824824360605519177775747274810048481026805692867580138136815353508493961296366249292076242540220819905574282406762048131126327178610478467171725795508479311790801391057301406788675607753093802811452570622822666610696247744724154750050579162359630737512094591462355277378506131888843285155446303533314541510549536280513060710391850488012253245526002575120534756903328227199549960746696876069012394052513850860055067735030357416907386054953994702925036904670248750423439729340798365195886251386611381650507318006371991927150876939198063767622804393782805308116045346904238375545114219836071825021067191992724677260783503188859717115139014417991009499447758116581852721862606944703750646870961033676653724138533125155435864494464032843598777282763791640793624995993054852560755880088574636401463513662241039107662713253235494822722337422418350941158927427638288898749813914570934573647536185205307509434801183558303320529489855603448686110019946742252536017043409483208888537809203853633906708574637249646827183819094185262176755893598107555025201048332825714013926537012985910270819987597548541294519134258412108240142708891281943301075105633396956565751149763056702249236039086933772820810158752580413320847246030824134309893842055200896289128728277956144129068047119658653357997448569999967968137103219787827793153531926064309463874798084009261846904027842972059192788748998442735817727139180911081567462439420567335088732286474262036011289281110756106095124577281252722255714980399519816623408525302542939292625611188455413102690647123381314881028345332130391624750369484476478642418091952121377509092048150598543112451860682940077751872421419474479644547899037546447508503970405291586524581449512812630118101448330474849184863425978207715356390169552484004457318643795635492430007552271384803741950994372082711894095762196006248726692946052210110322419700015881252073460486802553963027929736547394376534421757229577712886909067728933858358426189675399825505785151119127023137828616788095032530675628865257435567580322457569937428115698441865898747188483286038078125168167809740680214556442994346114674696482484544407841195168260127007887552445082658701393637915298916268396894388185465539360176727162750251747980186648967758955585989710231883234545229467113991995816702833257995173829528171157857157069205373999293599157254210954275259864312965379921298702726550064234282037365987905844006958702806023064105478433681954372668107362644723305600120730615717253885746524844238920454312788975267414514991694455341886201995639947867771785073569676562146304986951159033150807848448044779964172285699392642856364987399722324386291944733925426942205332586038656339067593981217832918875421342146967637445931569001005180653745202944414637486544686794663540476726685296603476280519864179396435863783966421656434860997876888135147860049305273084041034348146156627331568407349348448312661970082684360852394352339614522611294029255478345441274123483566252493592833240625117463685092687152058460987582646443272611653668255238437680763654420621854182423415845823876853479544164456012727837523892448338574630325731042461766970569676300223046874183982675490707724863064246372659711228714498741260340598897179589875259481020932084385939597368715942679984084566114728024184846905966542380750913399243947516655203255558354063717464315578934716349525022297591147664259420165275399989327998227987197229036641678584258757531814544484981566771660831664944338392587450039496532231110801790644841577413551805092502899996119416837024021997337104132691700461717405184851172821586489585551355725109638605615342060268857401242689456186977324779263808363774082984149128880922845963306461840569031474455044875459387491522908564733663676460201086226296202786369031719341418036189659835645753845187175454161361101139734113343050459522101592911071617399607391978535667392889140611486464913113290947221329530428362961998146888015748096516176298983707954812081366541047762705243418397090313874850828379229668463594198782943658489236189642858190049814865726060843246133415814546811432949294367291651324233685800009878566108357640705367442220661841457783403123787692006756572071189200267624404155636655679704784444769516898983344857828685158389502562359253701453692380764685080392521102828800915582993687924090110032648995250802949931158545899800729995140511033279574411579706149798059675392705082158354409535014127790998429619503787157637290403461031113184511551278594241500866301030193615984497436155227171726127238762358156233477468585644855291178399066674840016901885490527426538439032743796549903421469132119749585080900942757449185288338823492004900302717091587075682586057502173148083557710867194230512746484266059862169702761276454447899334169969791373817134764669944270016070369788432358582079142381496961827350043478482659905976511085285145970190427367742380549532460207389998181008374995993818547513556718770142708970601372807508706845090657108951538758905181591491552203483804613073680769440131021546986729699329235107833387016551844876990983624369489165355892665377938633970880272491890756073837714913556847209416940055858849131129861332598896708078885065933056341802216054817569803681734660446515002705900753905135297480564234142104083971043247459988746224901910888066772826186389888921509380246497586794734242216046673764445275944734411709113054496904817251592182834736434379562890507539164444948288720360807477201553033217310575406312248749553919383498848133119041241628102590186699952746364767710712833426780687829998865872079839351323074392239444492206467396121520663893126419402641315487617183021563243048996566037113874207135008647383605615140532218596173208231740811152434971325022401657801447396489212623473614952365148593515414216034082160821485766420873218198847892870378991095037868994132796431543845896153386254176550841569759602419651005663116057606229741476571342013338041978416018133259833047653232548838429542195139222261968436830409132634110221851704786638915250687109769545119991453870695402130610177692377525614755470145143854936217924789528930863786427866854042051768820505334921355430906096089937609533693685421939450954817027724503320189583354607768201477926018837407473789192400710128662414743929684559092991441651471559455937265003026665819736998850639470623237893693097656502720763423735157233032454507010818466888524892089729119337187604464376056316181551777727550608283562454370265820669561186002808117986494459687302446539526141274228807095965104400390119452708054189492344460524634961216663183343997711856938127884979337093410503395106387133683390863377889414684694289218252427096819998063217943811105637063949495613513135189138339232756115727079715459418713991186215958322341045623499213207347835616311262790002777923103409721794895037634643591883351904281568306517530290555557514181114812760059247047285452473547132395922913138257519620661997364196369259625021246747745345359270188109246585429921334582356395984556947472667351046222639879650446174081571720593459918625180630879000543967228674981453165316686577541766517020919432639760876268315551859886690577974321607512897679481744913734155931876153952880172209446643499711522794540143303944715807919556445105611955018862684297948133144478275397338880867473464162052752043046280155734199795274666109353900993539782296571077134536011676639248644011069018529089463465889495363231247955556476143119362050304749464439369301854788653811701169958689039598978629719618988477725193966058183602894852406772750520733871559163962728596791806337470937279594740473668027404015252393663711485874289465770322957200855752794764834401823241272978305585481152502431033500110894539631124773624709269063249036060664110051506736462754946970871017920596694745803421462154629179109483669549922755984677864928925715716949014374115005170180456999859993338320381653353023677190013151590345178983774760554132276161324427053060157132783838363347902938183626202757597229182972546419679631833217378069992009536150132706460308551955917321629470040347208643320965936947782615341654413722198569218713488091707382009093387049153765843637017426620736074208931630055348052936217127080661529424372120772770136720626602421668940779103664389060365185062814467824343801205744947303530556784032693511320971440393236538591225062112255457070230639133433833804566856320483176334312706362681386106577634870225570863212008832938241273746868038552476942590834126470148498907550872673955304624236837362824390032919144907294100944111400652881336475730702575897401316279530213923535378393269344590463073914396180423789791292291691433478976435696522573980032496928285980122083270941776358527901310149473175298565752784260513204334635704670391843502627462403232692977320384521890006791349309424599613257577699278636373535695264839523059247633054768380803255591038175617165150054865433047205417204291665414448502473796477045445427795655376717185548620632527629877029830984947526076563056676999319783638838427392129557628008300965748061875621377010278176683048137166175772905300941157051351752478793775926918463331551730890977343285099576071982589491752134581251615168807362864668853347258267688387016382334456521542795287697301070524672444358947951825712535970355811743906419712008814634353627496113835684815552633155039362661133993902051911755284025262668388160245605246291602405568129730049524679773431881415701747886685426167748204151930004437931710150732420626341834520846913873858913419825872025188343118137323339362742343824507276581878865596420870111356222605245257134264714392965992040876872527607331895649208461398699787082902299752551868014293434461528438478941732879229788742867442623349790185459517806207428427511316760832746834945499343897697990869990941469385172727391981554223355220143339246778382233545389919672624976514963525476471216139552202000692523917421129820396929625036409232175913852572971228714636354501713823677979157019171292593009485052742675730825452415634918701414163531632088989005508703114766970333854400956443371402187068952491405810489397265089119289712313758370255125983091118332449598250867272518012611583876398509257618688759684764833157299704180832477061131943289888569218665874155590340832593870282587523256592235900121537426079761431834292431356350230410746771182109697551279964518321351030038526032012042920643654259209682687561022438833583110518597287875297275476141374010628096008323080425184086321205801675162478585825805914337250193970930424049165448719454557322480253840095482576081037381388003388814588963798670012799532844450517627880351141531843859298143429848364576682710961819558577316189874109704442757632350931010722989408064799704795308265318518444783258301446796957824006122954238593906725183097109404954827495658395737031211441844328309767204354081229466644874204135249586659245239818104836155975973395783443987248199152889189060217782759824713942616911686073108826149573787800148837803924807252649334729658459416724644420144574159994194833419697555430084535484873108872824974317818524257188282645352955968469150802651042557206380555195577144936806362770632815307895757139200966413466921599204587217008944034858511529343252751165469395826875194218022369353207948406748600212512936444059282465496629505782958675586523884771409840095400830805031760312998404673353656479043711404229665446841666311951883117729510776051512345341508303924149904145578771788146778069222859103632626985317081292365741448643589642798139431421523307020790112002120763744094766405776168653541404926117302269558902671970997753814205131774959196240516133562052341213834831161178636104274359458403946344068522799737314417529768366600006240047701216353624377977170141400284335883004802530747170657560455439323818089676988299213066005787656367758029156334938704972875861220429255197261692416876383361908747488484336292762606621541983940256997662119186214309622632454052347334376492630092296089989170201227160382498162848472066174187582080669345764528499341258712057765146074984334825687333481308673195531206780160716379503884179976392138904073442861271486447230064800557093030908855808219680407213293301768745846058223733755325406460101697944325717001163509250617832490563312537129165540722738710308812604249635611226844403996330165037568746198650159852221408127007636206193378672708772268981458721265500800493096269503452267718723650369883989121889733372682982045791325184483438523287637190728727073156896572516002718670058665916490125442854278635603522249652832957910566613559525709635661744182834970438957687322583274922090190560094372426989222848751385798411494870734937203501480428910026446316394587759554111380888248654043072449998781402263763182329564481780830771838781824134366010550990852054179021428806758010785399562519274328955892494017548878267059677944800069686863454427359034381167750672301792135934679412294664272466636722938672504812562602432038109728450480757040222193693946246659722802985037660566510840337698762312700095199286132145808250458528444293240865206090274515097397174213245908091193136656638792991706401448401959913623836489807237015633330243744264420837463740214457724663496099521913664826675180232539839993739482302764478440958925646411072254967407128253637460976418753434885950186835402190009176397263144737793505486940894251839615473829463981299979246878615812196929495904715313871005038114071118509553975511222746331014024911633545672379381403063072677825390442414254655333715098891391388875459518998651788145706132598045657666220093553090638503493055525281083200684898835291439115595853779317471776417349941960316395401177047552200176867143944951365566306114777390883811228122819741304701942797514981216778057614173193138663027494398318747575814575774119047729510205425955352306884356224799436875091605468930804368940063669437773566808079628278740172928279129023719590293091564875301639501938511877745770663688680463419216365708334019552182885926302959238153208593606385385289308215165206923925803091343033116876005108452789917787743163968114285072047361588416462627176520770883236518413780972675767092827806397646391861436989871663701326264351902275113607002178463575997903228744501962775190420800098761929729860771322539169844093184854982825757328954627954975897086091165273214277552700854632415858491167354024109670043599007865331718114138402809518981210402027245689709417076144282448146335338325222061044610459786048182226680407867057866891580170578824073070619571063067627967912370391022955743076754778191989028729685583724142522655124096309129033627268546709550439214009203064391124693718419965446927108801019211821843940286906889441502928062435415657920541110417478602860159672504471723985622212681703844520548113249781004297305540035974356633739520771116793744929385465372213257706345058018057336801719803212521855193316289523712844948117862480520596048820038643356083100960802485422002549524745712035406018318617549509735803102582304623449646114163900631998812058540327298355805232248018911020438625718734018283159893513608664484479281481696430902981790253211550954990969662221771259203176338629623183544576028693080937467440158970495574629600879998802362626608588143509547386203120984159739304115703184982533362782020749314341471015369384825107487381586863802026109834033663292703728492315199566620531301399267992371042116357761602860406354097746368204851613568057733673167474450056249733537970286732167288847094913125318330264925256268293580243315317814461847699653529938627469080300282894522240225432747258282810189346739883654157308127901984013671923571099254701861039292341925751631359947451705705440713915897969441440610896699245838102464240642463298509769964803933231735014709976631944011417962691420814779219487141056380048733582847458244654410274437540459787641417348803903428873608904282062388309032368386695668832389141851456696241299965942432314287284114399757815306666818821606641229334202651845417626984386097484674136812997767501570218407717452648385554745459488083067432709740933917605106810518627519386212727492297147198268941039936541391818271045973316886408820096409696366454081968648023354676620006934657041504080788267699171886034200664984071815786318759580237979241884349976465269606650424934278350913735611960555874905842173172146306934010177206908685901812853329129470886942488201347973951045864862474418621554587566491106125835022122100690783553344101322111720444818206000196455583896057862943865112461922558285456022191930982486514009558487869261044398695210659487167310064841913351344141518386257176697823217376905207628642852159872398339369342604546547924367010466784060930530082879528483298199356842616727077030762673091835751795045957477386532393902715229009523847882071641950018283652283937849868359649510342412845015094897999142675051134486022726070476589432610003879312879475271938140469374436489478514784982057515294574502621108449997338991345076927367252091426530900328889105535545459833718076195367104775518399925788230833201486057518756903384750166812187937307341148675355355665565835830287417498535571168756080052958949981484726891950827981399523164516954743928883624224843811253276214293302420379080787317621114103494099982357730304519721211170324821264331038200515298157185388180444874552205283157809591647241818300985657684086389107219774883321227270409097375650409152443084088430694281914390575637370310464856052973201486054374066902972596707348001847534017749997941415450405976734254690639870347631933789409671251482641345278810856455630820176199143208157408439470383371414160586346299182605476686374667278636124551488712223781427220361811197943943609276283270819997582887111740781217362414559727559065765293106762606675202027795156989779509907016391307639117467283673637274660958516537989968975178590948686000019178132267584226012366139221974438758613869641959366923026600597908248534258153859227336290498227517898616853258967751592484601428209823895895555334857608891269434025164547905683214386615419642788055801180858754541790796238418411512544925219336085797408378775008874957934270413702367605526777831768202234214748758964407379389566856462398317320360755585361891712131718813168061525894752030768718976455800834612003983211235473442154279428019253175931543787584410397169098810328518210354272902395257768342871760825678079134478340492685250536068981229108050713275155411361341395212210203109395853887340260453913377663416601735676929174293192124315777121316945068606358828728853055386911748736444647022632138377453062362984256070133282505745932081651629633268401848908242056323069656098935399542383639334275863527702007743651489604541203847243275290271368939122519421660620524462845767486425148970409741398115697231919851749694296407934424935329374709012502816200095184502712428781234422115137041595592855661766603971814367710186132331253531162648895743103841253101206488235556152982819672951882427261907532251440846175196747267684794614217982884288741103888619703167861725950186008854349002840644603287884725339023403259917041755311654828473250187675432486044365787327694543359206623082212819512912958932801257210948326091232597150872623699402773677805483520048434205300271922860505990717585335876817440344684224485780248808346401104801634195705114626218045624689139066597372504324421349062033068581902226401172650959293170083973767233318138774852834365870421289860617314880657844343448906389396800482681323607917007157413038855622589213934875553003550302496415859665090640145986104524321571030797887796154830544351003987592344246469919219948182026884277184416328736611409216578966319662260868657785323930934833790146503972776556284467138204795450093346823885213738027272751417692169769426970102415810806572915068300570660995283998897898224428965830030346504685119071078360340787487209629305624498223629099182813942038591807115946699030862927165557097188839749347771329221664698752754045061750102962335110377589409275287994736982516996368860475443115271515467217799660686552451710655978050192894043724666016234085039756014333807201591710937022033254174837831283155541113211063259126043361147111094562797359748386735344865450344184144317192143209784807537433362092297834300422221331583803613700556704544286686543679887160569981165192993974841320717316152909055858249596274771014853464502020074369944434106862057706659503223990810932917929937035071831193460155497469704339021497354945429147746163137700660737309313895788718848382141568831662755160173405230098096820942529885491552006244180643785171613857934957916925801814692950917865235244507749523143289088665133153466677160101515757157021517433880275622136568627919473893231757133315242233908635479726568895620344723826573263593907150005654006945218223979024535062721416936585947034707864808662634536056836224276741353238021265175700381534494667474887643879107793033045166269084807290694596919181673995073434714764984199335246420588825455830628194640463043806627357474818436940799329190002441311179706461419529223677099974135301895162532500496863679959237663911081074768324446718515780457907900839887417053721073467968188015025310134929949716423218787546522455683080836518463328070334609441450237308092766207862235588801052763928204125880810195869140922019463214170885335780079976922433829696570678540057326445260507227306833478648616650776113961115497347146219334752260969962935978218229500203831242704598162447689563921971012483141120067882782269416553698224574138727489248201373327927672867414043802432818388656879137322457606459452088654916636789205653705765474402133044545228955023899418194644593103178231390719750402775000056570385886104201386404728965987746904236111922839768299389175077015060206896940720809889854070824293036939844146749728038776027683672685656759668864794185556203410971791150825520426420724770944523188350272604138430015692060368670259909764338807146432331415078076655463577016435655138988311515482242342600906024738521772692856003815511961254898357556495649640091888765879727794209038931992421630902822008475429567231989350346051842553899397373349677481050186926952009723685791147093806429472372122872278002708894308960094331673894473877776271614914538756045178393625924917394586456594483331913921472892478131404552444850345865987453373945662084928101266776054323795697658606421950071864157063188682756773741889492508905627254846699307003523978986013847008665148863725712777181234744322317028742132121727006303810384777365256775045009063801637746949656843266492067781279293197971037475147200704274537611180809650500692243990796570569640192815641269743481171994481264475725453145097466277481634982560236851727664475418805988505473143422723060301244551332460858934494006343132574685222600695299509303470518205564872751942852265266024136450605363124880667452981230441272396912193885218656103650753543729250132850895470231550973968552901234238937401163111312282326753310806321350838776050427436313227840846047022555747727245623851814210049119956872144618367771180058933300895785836342553796937279323183375090682968416071716609205139681155187233887371928101252460741376262654667768850784338073514084489536851244532101931298671839438184729151557404464381916076069925577712121949189845833688559781648062354266963392841041699356187773979544299738019682301468491673382643233167020575313993909431235782657130614100106576259257539120559443584923401992602381508684406580743545156621268376043625163110553000539986300837284183863488128439288193970547226678978175157963172432116058831684737635652329865967497826869053570348790515679517597633214337588031861077766021466984219465306066233617276764936662775656427918587086545933437686806710380249946384921187337996423637263281534525755752187140325358475614041404988089047019339295765121979942580225581713489288185606956549451151951007581622038650920797047560326577373169841396748650307952934654704294556377761143392742748393614049904708747001494024272105539898609663443915614415782386818827026590473962731510099851738840369757844570563982157423199887027587336861208670992785514714068229278925117142834066392609539879680722144214517104655387555603216824040509598446924874785560828501364790057893278586940420950692609127177335083234945984282579278151192019045797647266336102672547282606018120327222451441248594645284150778539956800959314715368640778096796428607694081818099290784581760001216388081995589462601064783101264146280672912401751275109466684272897751754994515378370971955521691892246640636263340607629346341114590239589462961212329647405685024052745949275240239534635729132693948708575439804094272235320588697171690129346906188449646158822435158235450005400743391970955807340488143363418360496956973587600504984598330223161567553269292371570853888698695400264856120697922183866000273994382358626934022848807989722528197321478423493333644060806358541068881801076212168737934150378987591812304334119444484939904818086239978408895414546233283687051111566495835857216400397331717172870138951413969036330814218455907393928029597424933963971449315648407731864731401611346915350331888309667017875872307169541729668851215135448805970139823213048283843227059034153024583354199456756907527164261710621263480105669293564154543635134671699628291168945050414728727925456665815651473274067828956870350874494016596542936123184889360123335821663692514712104231023013423099687523714132307830157938511896827619312676677630504793621822965943252002782951716799497254049021217720010055378255570032659906967082961005632340656574921717331780144053463462819239654957286422877966196428462910307984933995276288320382455389877133828895023907360313524311179026786382485998309484994316776908382660756674722840609206274631273199615301849381023945024423754548484396041320090460225020403694847183977815904237566113878159583496442220260013812479972515503278268275562289230897913782710484565845060087296701995867271709295188881445832615244436847878111156671432790870179492436851102842545309094591476818348269122953513442623886231397537693760948417939939010154110113171913896637894412688659406860041064551073347679895150586570614827611649508247909585056608726594444141190786429234101316454014801606206535381368778704016763830673467431841716079314943969847295182609658977734509579002309644750292057429650188666243908546757273537996481406184615709999955263656821147232597813176703110281951430936601431850548673219500659725654867924654733695297036432837185706867180274553970067249416304849288053097464206838969386695338028688742123487331018940575167306040976603487047344699936585434811158323482494387644863345070564880419617120116100097901448761907859202508860232546368400161943596718056690704426927799543397826472537524281963238043718480214183875063497592243724597892946824014268895977829236254673978957754790437400810061650853860425281525782962674948071599299299598846371119852395434094419832322569675396203954840456362479689341681702558585639351458792698140559994245181807200550133767498442218103387744021716936421251319591900255438707588948846202230722107921974175083475293560960519221141436081108039240462215328082711679732941596545199240539586380084361736086512982184931248816622348584161022189674329132339731040760241097272699982498174251280829214388609395647376540414751624360401500829638060004219639800186689358634887186770192191038478300613403140251720639962833624433786351461097485008711154545532840609204663275178241547139579272208767768530805424750900725446577607186808439531386202002064538551236240363498031692957676734193799612253493264399387293906028135770294003147402195585827584260726393536453612241663390434064020359292531272644480100785422935720778903240907556724769378571174212556091469584038626079174069285598386315445452421802506862912137324546192464622099278304930605949551938669599211862313244595468247024841236297063137868511738599255730108290837999058890705725082453225709540851214480180471656930805509260804091290277820000935990164837826471069141860286259811694159274294866246149420777443863638643104076238472249154528799190724381378630858863475320967776530666952678473146245846863067140953143401432284528671320468404698148212986398936756360097052398159902565710422463312776138958281692203406504242943070683078647965612529491684715234843184509896821324419191534353574624869501986880434532066729605003766059397505668180714938922026734345553831440359974071892071861693293015060899483501415736295296109019651234807832639089985604891030006473220073860609924985853058613737547728786017688844700039533694792964470215392601362446875868893847938161642785238066516425981984383183636179737100837713107284702399625749139478360968006135111886123183325778720026308374524758898548780096740423745722614859334878032452932419069868172315330811508739257022531169599626798099421727269371898998317709357538721814785939076188592080093443179600156874575239656485106391585930011163791405660518754176572177819188079798994573974515432661713145599085539434214280068273928765645425157085843378484808659490670828551491186369721385137085816769798757138292726185182198319779401462267215970951430616723564362291279152447340008248463515202341956351954997869668054832485196362691602486401577222471707656643959684733973366823445750904481677426942302963268133035520031927211510754311478845119195170234338230773868949281197115262332522521179558228644560986375514846110515066477001183104676262516773726287257417873383969483355746000591424778230386078238793292480991251213529109578531339865854962155899677298274128290122824567661341580938327787127057165924930646947685230134785255785404296675827541753715443438433093775926825025934663591717600378899028124103183401698206693818933373567911364395819188845195118225641158957616383759990510135084600084216806493263811038324090552217651447379567123436604928900671607001018793412321412936550118756034679635182208618318917631959008240288348435734862608672805627775764590526502096011560910967540080202867117852079465437892775398565028621334833455415528047841220028189233576640341437279596463613818595973539317571368145250005738089139976989875683055442810937975438529580625600667267751257559262275711772726540992145981625272019598210017327659320870760657130215636163606118803004115705169516721982858158786559431783752451655960776093934432367176707771935856776490213729758861293801379750787881019955197715397136325163798518614351660585687354959445087604109577587391368807456281020841836679074463668839034635314295710655997237821987279329587458432111639446733689928059102463009814536882493331613200722882210527030092150506737310392317102324235053489807487624253786423363356534075919292815581014693701379155362003500173199083431072586899922104171064587642017636855012974170747842768281963414777482763469652074150414027635914779793085069226733726490315364236687545666314177617808278928076919158858013246441235030960758868859410189757628260369282222102910221206707246073365233716423397921754532752307289564792251285245978561441263627499960156421149761439192309030915016604569266613177000558219448354668483874768994554186994364466701968190700865309513646079994788299344828603171080696673803403989306775666919582791551018245738248472644678054802991636498855074810004198852910320586625143576459273873091803155278938186222581957707251466141739184523168923748271248388600019354815896150854765613029627293593190675511265748130455793973445830460516834023083897143546935285813280094773880571159260207534968922590505162454476083985929265179184313191400397402534109808879298037266890079452288363218700308478575596179144477423037666622031824706210210671005316187190739495252085516450452618734461150232897854731284269861090979444662257264177982023018165739074688092666682037760297396688760086954068257766208844043581061951230398617572669709450846698954648940458986132167133153395906115534929810996427219856921920682054978362928387785634487598824086114273471094581363460720889986255066507229798469502789412703701925052534935681597391818244817346202260136686882222311007806948972892626625033192396841040095751720522931826433384407834267973986211732607987622651926744723315383258782241788733622278012716655826627991334624941396600053530958065323169841707518501522562161314224598595365564077932851727369622545898336743702685306205354447803076609784433314152310073128775050374536195684659086552970944257113912800336463027922014831617657950357727608269439903341982820230289286767956584645732479499745182771638841347470443073062791388057854176700559961947479158201838723481474329811077418075218627103860808737114512253212423935066991048735215360540659039213290550203716921655523225372041510741962432622812480219779370133851784660034018426687997481374525671312919260902694372958392741834718174612249889903620032934327028679945378730390612512287552544514279490157999490430393705556984828917674376767888316896488362689964213752126015553288489570864243015415516715855345406728468627955691370176838751956904750252396143640696278218065732602150478758138333039463113769044528994456564146043912333578560069062203759425484312159897520571991864447271479821862202836668000143770459229618225524155536673119678365055672181945902235418804763403062267194539390051071766099937473321569100280462048653625820520614495612569874817965885730195096504034895284046373460704013476369205552617839361145227631677502344015366617136382613486561753097512741442664681503824610749597781378287766261132925730342388803464092249828438533284350808916718718559898277483941681739547514417649505614401962199545601656273130404495113397674523479275677519736941243487878300949945362917341403304631743022626007820883953162345150542915996912628616064588306858281737974835844883248703260152228432072908449223257211957572544564202766222308673135726169765062730057472967750543921421084999633939355161314073057787194999754803062431399076186128660641992014474136853763455983721389407476206277922372364023863514362866315889431857199895310633195027414011102255454377970895820593669941376902497735294347944147131811807073764764031173690402112720921758881577533943200739059300409449991823606819551637797302497153170800865101615256149868491472938261845175085561217551001911457743991713737383104288354138784066968874024690748310266141096984760677935351197458776711439123282598218905795675128120306778246586415055214936226234620736553132545993145764691210996129385257106664671944175268780820886366126879559957575045308793401220207688848670554647912608426655301469788716592247911112248765482249031267974246123789708718920575774585012566024384358183919128164406509053006060198473998240294769887676895446478930833540987152442226031879443611621142253304661241781636569114311231742428553634290383408353825926564881825616792981397954974479583788128277086425967112414765991496520381621160549829669890312600968000670865220245574201127601180720439768014263648672160727017573671974893624097480146737139932198244633586276948273343503194875840210346423245920698955308465394515419184443755218022153548878492868472908415202700818145561312375179891825069895252602287280299698616140660325085999021206225794675593162686174599226974244229272156611701359461354177345203488904581014413842367269513954227746149213275070029298013843668185504732913133125718007021153111771862102200844631994615288512172383567735739126718997355786143159696464183079707540395284335017933651599286333684980347937634898047341118861999138249701921740679306520399919642854248824743103762902118658431426618135190228500927385833981256717106346737890960575711963126387689606688673904347578668710981013277040792023206758878771252037457480691408707031108565232559648292739629615812669733103415750323032098153995271225842701265724347264835882672561874866097849459243475555448551104456025141866071686053169313582571859187302878446884584456317226327665092785409620285844528845046648689512893432453919469230632463912511166361577231464083502178622635544088751270342590648882510325699380423812852694355367960532547590382721367498498172181965852719946249358905262721242290148823958830246951937679727599974290971275172939859465534868543451721280185471065742950266076807947032383848319802101266933911699807888491047951677661922592652779349928775977796867093338730389286707685259452051118892457853927716818889209894528912417874821288405486690185883038870441828576759009339154252258653811400089641834642871347061496121283945837045105086126733043133909215200568138365655166666536988393326092314740944297714137064131145074915429336802911965545717265856981262651519231403129188642646767073652357214484278561887095052191348192904546500779622968320498615302837761885137716586066529291051891255401528166070933187693344375704109024158165574441299161351886360655542965754665922330845137363321106241843945342416476438842605849544457633667306156261434482806110087545089078623163517621486592525787862641770143402066708380956709513276549193623510647469882184399629872742039964381715102659448589416213880990691075834104226254544338721480328556947916979206393420632695249495144248872166156281486653549195194031960366710079861877935667619792696656985799543321594833290227031054635782664657304008159013474485788331037569935820272580988598119559318091543111074201200816655048781450114943671464171192033961145969611669556508427141431688228903028576244664097172976642913544588773655171290573817367184356831679929456183027937154190936622139052615129647085237872329595526435799238542145548301106187544308901009956091251090074206305175947394595309798524893061141438366870173428882209770960204232305222885108706924516170653644793396193129137661932967931066540527545443269927157503808368585721492400412861375303866479009201823572783332404216572853431901284872069594397227147658748299030397540564712443559344025560662248848534464265208475020156579980826456885926152082652871684366974641088454202153876466330588980683473551523406304962321716790201531797371065744120820629024925438687405591632491113066152166565869505852199770876733499767038677700099690794151246494024093781835595255889868125373089382797015860035480349486641841477472540169554769848501327580468396436971801313781460139844284775111660841614704497967884062034676062356419770711672031256484421172191259297028002995674415304260742607603039972470666299383485437133899874932367963430852865964307978011561254771730391006885149895047487861521647594136052767212210846283930890649693179834644460158487849040253640747797572733307169593878165715004535893675835546687459315110292895455969321398052763439425405361029960691552528979036564829060415079205374452737511012044310766148631180107554644356583199092951437960880192581470904630072795980679303960862307671050951824280949181747257361450878440954550265713866826824476586347070458074074771777118674175548791692046409739596427020677830414836920895019578428436794858733818423138557025948746089707531190861579805080329721510652824297134404088295009730604947526046292208929304285072186068137921558649291341125691461364783148610796727248623962219261463459505768041043375279867782320217571877317308737236220178531995179046590219217582893101114489498607002050952661178436056117457464288693806967611051951640280218428870570931705689512638365202530485711240461067900952360015103829093314222537687622145544755817750823463759561089035469730183092528319846431459097625730304990693458055689319557397673144636016986714811209408341493121286386329656742530202316480230347105809964761382751118527853739892012784593974038813847924262096214519086530582073225031348753173447722902807801477972141177252865190526387108947428631716049308438929455460712728049988708068675574433147369311767888437300464516488887156977284339167357065834478413575822722798428276882539421631980802709053279658649508289001139632354475267733321811196894494458124529808911918384887831667776723043689547342300238043471174456390088169332203728852845262383520655200796700397898095846828069744380214951860128995134167542154197546430322942719519920310719261137537575468189417223926936711939232925690809286794832257910459752293784796547202457081917853571162429333216388443553760130913696256947118282007175248481093060848661809849534133855091632180749104943013516350783487851647279392831914164070969200343968210931867920266470248847655285209851956024793919708014307226731847979015675299936891508280216679696604067928410126543888526519615365515276628663191004604564615209685100987587696726275549402041870745352708771724718842676838848706296393257874344301835847832404382253086046425591816979462474082301675806649403374239785592459215898924183996466561887924110972094415533971711695353272082451199970236335841065330042699510045906003159269034399629067822219222891687056274072242717605549802907960192968491855804801965470696247753520386850958872898131194561042804124897565815301299310237576548798353423102996483536905046212271122487791863511389262060762134157374972455799964701553636199218221710110489502715674775556597709160329638861359871466091063852466105737113883891034541990520929002164151091333791351056729197153181399101619844727509829987111330953060548913595756189015650800621592799371841666787788491942192144104967315474059564893420799929271398510105690803563198111009575124761068342070726263319840454534791732723326505126559199878581255479285857293209934332860140574160024527333641438172717173722456502423265840710805497891643059578874468088075911774733368097134498655674839666710267267132817252760614243637315235511371782419198496466328726285396651198855576862635834340070898817118990344060033095753784381723918728479243654825369984236326932428529377112914846333526069466679815434643688687760917048572106922708238890948804949773927449508833335991179819504226814025305023610399403376764847703649178548191259406282044589770340429103353726782779670502610663490486198610194161662127261058980640039000364819517573131703779301193149208467745011056527740343137309895233226018662317437063606045832813922163863260387982992446135615456557682473180708828082426844417496323089375515931477367374281004243303278692386836220538042254068610011530144720583460666429112910978613113091541629910855030580400038221555851474802286663733360694406242941242231874671207557437624371529120069385852213303016568231501656130740224875301906941786325090227409688409888199312580600412030834646845683073232644919682303940680650002192964653346079549742353467190239686206500510915650936103170645249157003050367542108281426966624892567427908721653857369775082254842503905339264977247037372772103983615505718671940917834990866082674502039051905615861902090804204315341935862367724109475150875336747299336747868971801047916982230566959866261660624190237408915126648293889479475793012186850797488953362066870284958264834039065962965607031693327789208895548329381040151213614191276227401171265830824501684378092415224440739360299363076338213404920027705278536537475396062859298793606926160841217919684360538140541051662053624364890113853512086096698433156825236790045674736642694936639189097344623852014423755786510706414955588062552586283982455619615343864004865766632986350009254517367408934137205154370383311256788753252503349294202903944793328013388504049520862086457133532770081114053800526650763290916947435885894489586371652478870714422930522167963387318866261856741236054071107881136585111612037248142656036487092740970745020316273603594541100762134507908757628121916885706017817183411487036505799511768773909675020660943185371421924026663312808645548123274718517067654519141842476854302109311666773672243666469901419706948957509862437848530583324815327527881430481300362926115917703408565344358135866442631283343842342798443395558308539719092630378865043668862255591817001645303335177462509443354173116404641256057973926383830491514442508213849130066410749694269392026449206367899374889609000121695094779279041234866667878027863153255446255823242476268818313224242311436216862193786903992244957134269716211694854443702228160734382558845143078476379498017183617476812344992966259352006397778720698011105774913678494876394621963786937438047134046614706600021912185101726718339180260849297831553683515047665003765390013393671157273694951806599585392787099828464527465025719155667063455837067047571438623368737843973525836879314543189207284013297032328231661801198689508449002185513061076678563510325572148015252185965118009137492276813900356054688854671676975721549201596982751712626484549719829929896221229297369247314880886954269148823292999647116582187595828438906625890412714785108230816487609702205428318661319435345299387876677601015768026527069014080144688572507461389573905284444130302214922000864064571928215923804784735408123673693558821164393107655873273372176467947448651381411706608155232319556471960298131876535321672606552602705637712480316965711024097975521790001432410294977744310164092518811704345711373792729029202682050116585771329348340566875917323986655093855373584859153614518011033281768869143923545275717076374500781134766956352117976112584702415555535648781947785731500099491895165934079195776142330229098802662266316906238656069120172751497092305106408886282541604738218447849933865818665624127699266242935907246261306281145253794572842066042988206286038534435547515060351928353343091252052335664618821488086007159226162783663681828314249842643640546168669858606991748234512577556372676781340553432293993475689664486002426758370038195183099909917596582177753662121041329804800060485974908518526288965120727248285009876393195621778806515017541471323291884080414382471916137035667806066918795467749301099690851273579396483421702001447275578559593171742598627386732786646951334156757340709648516341936871313261921671639335176152131232789858228255700526507799348668117149381706011955910976948171938812024427722745857721704067024798908783577115867123847571168917888392259863165376685956631543106754215603346541729060936749851198924656605808353709969536316589041165772949846456407783428937053751547664036027841023306206740803940249603690965887993650565506614276800926630671601831952322118079542917029253144413902506011371092866751078336760413169628792520166007878903972091622125292153178550702084705850712523025745742708525860662256880555135101658076356574526571770453813699776760560846169070005781274557007824067878869328826585895469561567612170692288622689688836008167890121361067482502336478368988878921889684638560298695187149582631732048707666996794813893506200603034642822153816933219502531766439303817161975693702597838436307775721784330716388987024426045118386961745188313221636968108057762038168342025875142090231842064270966322056930826683621703252471559084665477471977993736522879619670001205450982489435792765341277323998096212743551025695962452971349431694598662793665355100540362325668643473187145218143021534424251585587936734355435049478334773968332216818763059127084795546227095178427635506139897882316157718950575847240001053059388704839423447539102849523944436493712712748153692937504345914418864450610747067029470204109696710780522389552058214325604957160329046776285012242617491410952975348773727009004657425299272809950759627891589751959271506755419677865463184659908648710901239232331886650333092726429516629200644689898247328254710517498302043312790239174616081237208784019339089919495487098352237213138667362603726806482512048045425395059228833075506319980947424554069408694498245129361594258959677708289419992568421221242556866115656427240948039497734223762991337029321532153709245939617830744095823807286327605682711338352728503246040700367902519921036265248686757716218955944637883112745849718682144656655679975425872470043223882951008952038958587773463874696499178486782559149793274920953005699531077173185049636949445528931129355526015812639186322064431212244241970288068161959310942230091377558970774850710254064896662557521610062872171713388807002607257371321533547533408525426715077721565680842674819601822836918957315550334647453122935017599344929030582862414276361127431139614056973411275661160442418385063645102604678955737689309275063598396585977179773267737973284797860223753173859918789527717313685063509113675484495565926713487871222517261310142585907577850056742663117428204164939940674063826152346165999127047202509677889373710227425873516003636967704002682723728104474089436358011702575805515925391835674740692048596253311131777147220363677974915305051171075095001840674892431539254797083017328361964996340173410497938460408689845365373451721866574676062393825607620173965566109496422023601218285357100783836532967603826732102227087451029137532130342011448479493076518493989257422571075000827810679307383980056861852806911482116821272111813595897551604742022850169091448857846748505640553014387419097782348663205965438993699117194601635860316798363216150745058220403080393596596292527839855777005932269295414639437020517974177208111997717981422928512459349240064667510848694423755330572271679742165851978305745764632455548610057562290029890443723439554842680299754144281578700686288265981138891379655273184558674562110633839596515143985486826269388934594133638963994440640895499293087365228925332611667394338968422234413719526730046422394571650690185731407986174601042780162056442889266661015184252526437205164569060803066228385846277849722975714660494207737426197745130920394591582976204304880450880131769045725913895920267203894446363103764822465885837288335381947756779336388455100194957797312188336243579805579614575765169494020167792196743837848977624465663829644315350228124488917390792485656682547334125685331169188120784216175600673782742524271694156949617118041636246191118390437143763053464305704375307616583286511302223889078012127002409906041186312465928309204880055246213620020815088269209405316537201300048871275898185514943303428421356404621143091140514616518725492794963889392738932405893176777846725371933506889961343105591838740244918688506052425782356961736498215811264447904223110221850700370382898101623213508521585958277012370336507816014500134626638735182461034586924240579686308336629047313925079403843012583276580991566373698064006184202295322608890391012689957876816196113669236073787963790471084003931463544958106923520124850311075204677776623749172372140905805396134834934046535592210855698152860010775699021134080699824955628802157212875480788991590204874227883448349817316253200757444958075083432410931268254100671394297488923734311777367586938377578087295757796905287485038849864853665654365036236399065139755059300817513641250282519695349955534813878200464064822559797919321572616298543430906206909908160204000866945055269493222929041300052504802073810931527880117284806282272950757633315400386217411492841307769068882866743423927819331329081630447818235855714956120355644196883805931232706721733670186695726239628500244105640308717035222016694227072316759405400497786329435464447330025538841573932406251483266144191180696093707127965458225156368542776932025448635183606964109201339825260343408837150571896705891505488161086592790713872322398860691044143124377564794240742044977122449149778673069054175240240423205276505591283651697016003742015256495849245955500147005586023768289962319788606953015880144290392827852601401904619947242591930060714021271643196167586279996120218664526524651016827993733083086431250037497598531992100503381139291173204522037029829105948613820864369219443413199436356104271730676168076486767496099227327368895416001536671427644762288544090337797603848572515936982775003027064611217774909532339202400977114419159261046403629008808147163907958435981158274772757995162514736256811870945021485059737715228599724665747223285753549122260390836898147040175860132468582102774929580619978914043596725250086082146361700626482618743654881759528195109341417759420269034239090906579605542645888230161946150600030242728398189456349457762474163827675090699654917131737927753557155937827792207293615552893321588165787710811099772290838653843773269026562863483757724930800990460185179922384264264674037587216726163907134542290674358761807104608141538105389435181965282940610683746565634715369986644155213255371786907042713896298147858984091209710064084966511645172480215962224563066157848112382894638106228940625683513904221784916182109155426065773086709518138746724171057744529089068767678625909597635227555416241609484824230577112291585885021688144323610042379497353033980013287119775546291091569845272212400792505863327713666571539397142364109001261056926902694550755589565769213571438248105252013949312991305694989303695891328738703719834305139652918737830368090738066273046780946327942511231320071143808500318426934371524466511819995383267647462467224256418927182896706924613340249356491410231359043453133814522559723689376202143135665998403520683754582968100914723448684166717402780201221305561601104474059424052937528220455920533857911359188071282202797504815798989475181060951793878857547391316767167418849992551695397268488958141969314009610765102671991761800248852818919738776526186766342112924927710501948753190025898998093717408968694955825578492450333941717646532697456425833689049310838194717199824270611341439475457523231816797301591158876496619375323729392487926106317122308998757035656389625481017103456542600471316764727031716896075619160386371844010461472511752823796322562360694081418664343595973668713294120468074665278722434846091836164773352600325468088013088285621144267750726644044783967694424357424230469708250553120718026303200717003774240951958553624084969517431360337975836811712486552651265182181508878976350930643034551719463089692215217792769570869895238643999064713964111843586363905059473832100021078089666830717591799346167510089885296151058465487911361863674650088502161422224076611952068119785877719721255111898655829351654560054084044174799352777188609220009771299360090829154458834491775749349378289877767904892351938880705862452168524591978640443145905528997384245338419436683448668621924215995245159308362866450101237713264274815389726006638607381355030650476365369856307940917125536512425406895035955636932366065440569628590755495031027189899656395221257842043235166796415323447564280312385147101259535272336707843106999797137983668130160807621592838672124067110345534077383670301073792862601716634236857842016848722966113924656559098418495596075133080614524411084204408721497571481032679089996308368116751135364024958090037444807547363101746196524927929339684203809028925133765183080811587990971075210280113261167460328049688102751411451974135766808389066542243468962918824723311957718800650397044130474339860510352869026245536933151633496448387518128155598415807007047028609370663723263147109267961644685792097152579660918243934556375383609402249770570124921324037208695556690695095153315925495088197731329256429817497010925769825753299085010633689284479045037234826066889604411604008908605430298341247188350896518371775158965150898166400274138585626570743423790994126225662027481081858036353056144410871830722327643221526380730862344997618283693464256650185231910356519118893770808146217385329903019314049531620418483659929597240661595226991539342101268385136276078862248664355498994630590832982912777817116845356645702131418731084519583027339582189604558679956930578256578770176713961211156335114989724701206715742576885260294925848169842228416375824459227569832938611471369344117125354307928021930723991442670081588411944110501068642736166649669608085644004607783137095413249611899538970504225831524546470988698959114347146205564358327867290707984697370288443196634284432204408423096265360676229378241246190165845833511966827386444997063982563590041555032907746094244086618998293832563152709118933910150221165463162602862181904026074831344831466481862009172965726073543501139837403520057320414101438719164260136400523625234718350351447287731441081923192100153050779184542842335521026622637693765641357097150038357718366890472166961056408241304260131980929928359902203034937146384132366873373677637640420387860422840323954995812507742132863894525097726494032485892624662754170786092467117383916461831526820344892926000386551670392301069981754629316760553909095555468864972335916228123766643303482265320807594103505185160017285026673731452713348665533350793464004376905904099497244777405836272749788204081689586517145550582021248017654237858412246144177708881657027032895714612749293066123639082433046027691699254846034707873339062431751323466287328916296531245499765038463445309144889925297717329675323560605578078461699262382769292191134619257243736284293681051688433627404544011103894374101885159677403195441366392520619743050384743911159187862329297303738528131396811577289621804423572493015410188164710152215617945610517540809203660934220731529822872552325330792225110426577732259175832928926157521797226957244788249551343129165930517909732938914908084597083458062537036359645662134191516857543403226149106303648498266905821805924884578199836955701404521326247392855489663658733627925080116098685452179250843769720324867207392933948847509496602304517922136498038989568963627801119239095051522164292981726255410592926655912043610634598374912059021664883948836555760564858447745924596367393811870735886948992026042625464598724404997767184846736563504935441888576500620452337486661247862751116641889675577528862168113939990423577673406629368335999719110285952324435786191246723230791472176229809552823136391303877216136364805966803356742107297495742205018629321965578597843214903152067838244936905380899557108521289385984176430904659966783826086699286878051672291676652516344419849373399987197676392902613592669153044441259748032135427574967006206865936583285306943051093981227387243035911236173822058135327226157790289236904394507933321502318088620899751714698963312682896741762056531077975162863408607419643342070044961549182735355090350719661960124117485307524454161485004423245282042059406895841361224151915397294543537563208223020387365329796697447354007912554356744162614308043194002618136307576807436649186756473020568022970490187162177795061357054092801634646324978895951842809412153395374417390601624168734654094252082240928275418731663891272513778320717474744662420102148769799022909102371205103986656659237308136602984213625280849061063919037502051493131193218402674955000825623859370451514163968311348307196451906925192318690111598597859892650017319928955533303624205540029389494774184320652441227864427850537731608812878517130881225459898954102697119848210495454941954638738845367771109381294424460163878913580081108591042640837631073130337018719225128359893915089900966911029030324339839682905353270998306212802604390788432669556784338676321057873796549277065488036785118698857623670324040638582271006480308872094144854162452086411689479317576103132173631997629452809237928889102648884937036092577304823269587096634338444060105512803762013744910228630227592760475002407321737169800142517485871245926404612949842487262489771813980275728655086892065226548196395201192202273128607115840869424429736524507326367246753846819062203745767151043415137594935267669082275059877787621683039078845871689804157153884690058017300923096574751692226053994356776273410144198318125950607142782282017241492676112222987198101445156119362096556436474103177763662184676522610689836333088374156344346402638333057696333748271679549078780444570613640321678749459452959915035694632137442058505654285618040544759321829329396583831252687015357773109764165219732385339489393789668243051856076505478122230674262586564521620374846462001566656845650246998139661531293131552439430568882999083489315972643032036622422817548626997084942060005417443355922097002506746862466096852304505037489926560058388882072951265014821247880885329005762209171456258009686894892988694940673103960594467149621103557443098532250466437108696298587237191671631808235258074138491929194034652829463986176319494266781190139810622611391957750558765600249169089305457498053548850915710306536528173606995604248358154319581373880647595931353865583615320906103785818075702287078256166369533654967652173430386469800045088645627442336322675995362136912117987023962238819047743574440416438215232379302099356792384586006439252318849654271469952837655597521335533102991903548748968499420218514239394900492421799023102449170289177573932451455150002143793634904273110209919541593445489787601762254353382524080345215978606315233849835841524046211104475837634868969819263904230828137661094997368952073901357560421309509512012599517678083901249736534711343483072047923746412131245625359200187746822374040133225659050774378045154398019319214960786953825125446746872471328592471323904013568649401585122321691709714671065892914824196512457087766347441767887924600973708202391289686781448408577317746913369972776632548524278513284647897438899426533824469414613962172234498529197916269976254915015816982493975243108022690746088266541499425779683783944030474431458768200405656336387552747873804061725947815548883314607981315532912027842351602222043831123252076930664633872324201635568460497767258290423233796119377437845478565006377628617020655846188840140476751645873788870471792581303921055744013332542704166715052949295959493831652608867232897551222983862836001400659946701705660732980780458822246520300045853158183268540299896649239530713175785965572235689805501824136902620597166079178966295585033253809259660511013428143277094517531523728044608037436804283969944200840965278107982460994651346398778454375440480382080582966535966671174057987321751076236076822413209969416201085522171466767340063896489993889068101505181840019513427973989551573880200668141222877996106021457163197931072746545300875212019674026912723392815678357348150433896038718323941758185670749967298574308780616880314376175279093779774344996533403052188225815955609058384258723008923845070201587813937280647166160967711728175834274962552581071358142547841940976938641722576120010661769233297497006328903090598849619288263937989149229833856177589091469892996330917322567386011508907760366954694771004158664436051815536068919431686490249841980767708291934061563425792222044045495092340521263982392417036171385296606794700670761803491392240775005217351310028394852177033470595741634343191888101621911291118394289077793442840183163972281007312045926603998428377041982564572920651691330429737772333485593744353245505471147915662997179762240788746722542950941599968731457533039437745923192424567442394873128410576879838503844157359458622383495338578130567948840992843248181729004844147405476108987433216743962164113240050489043447009777171655039546632749802014526154332172664942064013238684876167058313882983577593794446056135310732980747462102410120513111192878721882351645988329090117329709009466032430428663879757520510740455641228094242843005773343640857382009666209508726573121060674892914573624330527084734952044531686443517322102267093514275239103993502158380591266711827752201674945654379944612325819766694865371344606798428802426915508653881200433412544765961746093607783708717234555861576044293171435120208345595020431776447132216482021564071636082610736415720754179344980050192759407443099418399551257784742823307102493027851831178310279697132126576986493325190992617100428891079104776871419445049881286585260526367477048744396149129573451135900624078896779093324658622556489847565549915259596827576273683963493131553347047035071431241331732463578701495637766681485036875250597745577773862254611269575917324607516564599211410220323283871983515166715827052005491461171302446872946074426373644353296548208261176248049668703321020618372480177984891619629002252342316053122559455856612998171007249123609929736745209966533686677925696200260215316953375949124123680849078617596537953050786180840455284306807590019318711756497646628203103451968414072076120538668342271906423127626113002999218445116664903530183604484422407526910937152201744666073141475916533217501831906782616499165589474504709153147274782790527213806443535977082676958072551664331834129936038941815615966258837466367545305947017391293218111798620054535769092094801421592764127917529926647835168654196833211615392123245023106946846104515983707877904182646546840555060372985969371941876086439293671556945363498447104322092794432306389403329678871660963424224238684988484954307303240414430575881601709443404191292067381186773634543464873473988107927000353281106007543661811922333961653813487313787483832888778873913753656110083722212190685981052685575068878554175849607520916353492632215522270324839461003569424395304276749522197995816635228565219406232368389498239610409800589004934718685921832718076903323856633809879909926568957033353983680994806647619652926478835438167524584233182262074096832055276154188165975408447835306218925431145836107245487698809575521806850909310483142750992599256488690601631709588428171449934564030454750053662617812047859351224621927917252698801025575651281732354226770892490427050183255088118045145670618619225241560160665026212528873680374945572407342001383445043251835124673685680460987585112333594204727597961980783917211900382663791041278053779750526866836449632663307203114926936104340941541338042844880398650176520038113970121035140837821768139930116723427365587419931946458345970495362174644436972778677612850534842033451528904757820152109755994680142439476743546906747038441096267716046975722819400432582205444457385903256128452441203669411661086446284134428656391351336125243951146103214592681918104631537987685430319986089875714440904168015983994841640979566996310021951303680001115712354247328432681040804225106995674038949637855636317396243085978074127810179395167331796937776807913878900051033146345462893212830635259198532769254293417736796443639616432505634380259909802141585305554493408419810447672833476209623426635035380488008385054844941801676999122921353745339818903882437879362862478901543916404769576107195090171576384183741515962398067249035948632108244085097759735599984462978293620787876582973066932467218533150688751759544297220174086149485593644594630730653513784679474949218858560205711544041280457009534683772940078602541517735253187279112179126908942601159810365438224883858635112809422506618760752317313256482807487811341308981663932418393692905827146010108576716731970351598919946198743992598719785538235009262780696347346148418958617421705171890111041535898811942427286995688193353544553266202832190185282718013065653200022380593088567172536471688923420012649642737203014417537099271886288068193279467706034552188953630794273059661688012859772005551697909637026991480689352931312548176056174641560761105234934660631599107774041700618384005323559914679209168833782711801593049808049751327520842285726391810138957797208876268973347849989084478538169654483347845062117754624495588336446520365170027972508336440965188276026266168865959936749019394318307723527404717495112895908428464399534827529200026069836665307971006011934727965384642343428675175830757560973331593967570670950428288252685754472060417112882196660818276680362442579013567643803071472768979155658641301366924365513099556431457708765337782743070139785686299388320136199121346434616943218760616039348007855259524529418986158944080376966537335835773112980684370607773374413353583140985796421271321254746302194969777043568188421097639177839298903254554795643485067833980042347169628874815997721717308207987447594236153042727596838331665305551790172746059463847536852288404254141653981776865116707628872917732304466745649024991489056778913705445904818152949578497915589322190896491756784950996212292600030595902306713910664618330972194007043955850158205659523822421978940189261177298712990146209067034132119314720336769474821159409489473524661355685715142965870229724624265879830950779905752718853957949531696454472014687870306566719194512012778370373659435893857340434952135030284306021776267467676112482764220011765237134394642440258995010257977112234587215214315390972374107863416113920822481761215278058106682007741523430853272768999658838527500303853321972136591557334408883633672709392183475223482477255694181199960460270489350380804211299462105824858967646190548152360329942926731753467986916919583074128693342490134492789344455063195491163828164889513089030828413648429969574312635838907282370642566830890088789941611777882523552806676166754307062132455358495170060769520661036518592066296925847255917629391241505578969330212795455593325997976301631601993274608621642053611393408156450101949229036437882941715414398097185382158500915743817528104699351106917479073175085769469925248203628102145502288382972701762758433744178873077679838406445770617066897336325558788662293166385585620788466911645104469252088277463333107676331860120109221499827407368729738886718722642388887560942346250122864721471493906329299896969794068248426957711875654012097579907370217539815087022381481448262715662650756789453352509694101523781167336014083390474429073169019890915119729209422930839213064307854113704891291457649621367793122918315996360330414870732995648783059819144092379599836896133473258483909167702197367594312402224167153501997949320300021619558456678785744058937342600691033442683414823163926766151481414737562854976496429460158367719907664653199245728534651734260562327303580116505256569501625764213133803222913389794458234419886869381067171744591368344590135495652958381141071694021924472915725283165521950070686681081176977919605558828788762727351107250443489359963453803225149679793406181988511385690400796434888602314910023293963294733863594956138083482071372127364371816488516471778107663971847670456029086730711598991040899616458118061493754837915594062847411632331412323849436707455724872462658168096510772216192063563655599819679832215551502126382004373103760923826592760486661430450835077423333089673957024906576614974076743804301776393161000404677167267005976738600228786143844897060400484786253581212426124406708489033986124547779053982109535692591470418694477100078240901285218519279313573508493488183081982525584351917313080404058475008521989034056659901685747555894747347387293139349862406922305034904759401121832031939191790363803423191235025664656157370530445774900175783896209844564996418358121426047723016414668619895836210721978474910599545923633967689083014258981130608790371789867568754617888317373486959052157574370938627226555411790639117677872501163442468481370213307372688137161407062460054797980067349916918060927912543227276057561036679770923939667814287152648977319007360938330852543171939302013470030494901004794244393238241435069171065133005567924809711768263561231036787442041529029643265701078603613058896924388667134056255746390307527664381099682958110917158761088708114574335238157110301373217041114897273113580795506046716912519241173193704696315262512342625645156340138188682157802364912225068939429439547062761631640273567278322102318238067379757064379137401982490185265589955745156152228894954059765159968851864555889531654476489988008410253432937873857182508743437008354470737675335135712768733490455494098362486061158676371931925280430446800407114872646740442289665525247410919307556420154969665558411119277938052431174013015584413300992040841219011890511249961659222447780208842942220753616009665592254987063558461743085418487518646923641118143672805075693908083240633339665844208858495385857169903584717672577986058999165075611195831144193728308790452705628660978907175734114613997961423488517797474106431831826944613466167909699795439276283538235444389794151912589969511846673523209063346883258751629363908891986948486378431079529601131930756644485446972584785817805852005543567167007573301912009976178366225922690664340153624947752364066453566205956464177670830668674917333018020403790631766105824045308129835443168745084450964922692777537238457370046753586454407369463784137030447751474388149937554654755796594350344556183244421780121104944504714850323692338085979438473027624522819150407152740865899610939871352283782745780986649528476397077101377821538509906777208156437803637462647076997380095588360227865848419163839738942378619362965786398178901050881620608637448914017373915756321702160050926167406732073744383574975835152588734649199245479216021458586492555437526762805635313263419488057223320068501442742099497118141308657912765414972636202293380279552159423274784458334629589275214502597143580369737354697248717449448452742536722214759645614863545382692675361937165436978068298556142594686471042782021057621569301061880431378966261634058751407549527816585774220866335817363691959350962888898460922891170998609984483589393597586530241652282317169826244344773184643967320214453412573466896447123928096342465177467800618472198434207638048739776777801511106659076871237052282183131893231363966139926578105558173677431951230253219613552563945748726687612376647460610311999666300137705884046811428769060016286441863913808284935052079422968369271911550314014851421553769785780721000570268878476057342944132847572854644743764137377678552783352227631613235317529049047114166634760514487992207221970520900353057581860426969419006058016482181568779600048192133646188014866631156643055174866324104509821973695093225517899782093596224392238168921493178430288924462336399839628595274454321195303269370157272665688846947355728449799902488378626217549804280570975253959543628538235480846849005607856275694583237592293712000652323182269622492698947077379016946338161176484410066501122268605930963100401995091812590519666397960064577291846119632423875144623640667400722535501293435698179769194120800446361240802783245107987874278716557334061924788365490785284214278612950843519872152688833771220040593763048574118428368385938748754566164920686931510888260653944598564061561847158150391739182259129912298429342992728937137825368736711177577398496091572651739670622866149038681683019601869884788929133011119567662345702113121340033710203268793413122160416972595642499288420507226984690757446817910947393304157449337397272597078409410296106883752388498708053976521673435786551721945866542827070927714123457973977311302367963083142745897072584211918158017693700556706844020768187997707222791460731487433292310049239054777529188044372522180080238481715939141153686679239156862965411225734630671615132800171816239390474568970807294019219517497252292174413608417092844513159079935592568381435663565436649390257618392096306606467911784618302125381102872213347329964866705486579988886551289851000790352657057646671619459938694027872558858839410724431650687965986240670388001655018600196600426739950784080123816597559383106162649976528578561373719555791799411304304835117259516746122390800044438941112367154935866420503363228957291664212083882175460027521395030596077978658842906632000693269501570100437194178966211248757157271893146419371121896527515477806511103957465618390805036644052869216687650604920868329795116504484802462409082651035078374987058477129781752168819728925591278341519092827086418869292123434679191551204541336898872572192283235706930131344322885737504403439456320961952488491650237586021597230299910761194394487100063935828093308068225457112682205781553699423145363075111438271150271183418977872831209222712701452120174311882583929397193204266510837569734807231950905509439090440861764356976063804556633578569183983099729190362167175428444616236001566742570819063369758626001182061914321531614325392677690176516869313790911640409179168908207351943818635366727289786750380309053642951097674473817722865717158057856282758626083440509951803755688900433206246407011239067487025982896385745190457453479482213946503342921788395239703948706636710921297755784191253047553372895935456842820102141818725953373925584429901694471422697163839939957971235457202639538449718768514744696539829288378676526800111244757452028598604611996599992747532205348329536496371160487118006938595678808380377373009635592056581541588960257720648102027686960858866699955145306621670047719022146536756611059500499554304751329915841017669444422292882282705227042443673372890783105836133113982959027397105316098268331411673634075661205431519118085562710533646089904121255070358370237319059207351837487595258019756506817561416204037542423621214119010274048979638786928846292056803148838818803233610031638767562516691933240906400232500384085698584952896284044109178394936850668166700549049709940554488618134093780598085446725720373591200975597835906145462547605391671337675149616828195951816579802598021020452834479277059036997893416525890045323249664329666965303839260871140791225273970371069326753344391853002053264838497702807152231624946988305984421961508622753149402860802975443293664602977751694082045278287242791178485082074304624734400570481753479984258306546033960796114054602419605934708176317667178376152824152452899240612304406885397278720859592965511011819345443016471176050422163863423503822138085749742087792640377731923466164462113397057029726835131309658772443310817711946457277167007797212576367998479333456976089912607512945235489227199395551689794666714568317989340598705103922660524900573998501788161850414389210729380159038688006401197676627213690600459864452669476512832691681168196660709497116361707091180283539148999359066874543644338822073360823535359133852876962908557846883102901034088104388277478211118595167595592863385264486831080986237630781791788485793414826888467636568353241058435990329355581333523960597235851104211705509049569091027274295128305696560115247764766168164864715773090626162324547734122133928529683260945757264505165349674528469788165438202809760462040492658937466552952664244877147019130387767299251724078658284825433823042405594006240646130667435080025196051085050702508591546438730250025887721209361290702788410078577485439270193186213743792079119898977292364819462055615858602595441652923098730897145858134538533889768979058293238113291644120443862666339618857492657931291020255202789366853760879938638461751014852191919757097702012787751167930193121068354347412781693876762595114482300913460701263675789975218915797037100560140865987744242416995348252753047286244145587406079679799433234042524824907427653476680113392239250992184095249951614023088009375166511416247217257135543006172494668768282233881194291687619371228315060886934691474236858663988026683747413787170976950527531955915610213928579600515639872732343846354363801795938504285369260529566223087926335591881889298906961816346906577530532361781398760252392673560908335545937681280430507963851998612750236459235282444490539820374752443879371254700617808352001517886247215265246868372625091782550789007311626932326114953101003728843056494776131245730963645315063867430793796066640830244770677994665200401736211945226294578722253634290675120837727849643186763674825112331977731711626116888954202072306426504790962605929550940934299511261027758914804653721415674884986866594440963197933502804142735218473189140144606217201353601786055066306425322376090619230903953679042361665284449101108231779183398787333667217003159450003203450008647932109040344957578265384807322947971540374958979444537073867281922903210422295685643600217290188821521886311575713599911281858943102959823360081784036771498389795262946279869586504288195142075359080214750223150187073733048284207784812893062928169545352983542344601432770883470966869681835513444531132174885084913482236364360503823801829822438947513708977791527197202605304998837727173116653691407383320560012573688109150507013981608362161483920421868100814433498762939425307983723136691305856316485798746458449804598350544687342390813123171006202724345472485951364395341203304346938738850317164970293463002169229466021542121372155149277215635263258946663571897562839567618684464213658942113642132042433240226816022798083534827148615478968198725931493248078920245202603628524322802648148962622635977690930169412184341023465847305982981831034217416692773600476725503417511262362764031383384135281290889435606552679169769904115393413746760684511739610715053130323922743316300150831154016845932644650176092243564292045373515304644713611055370111041052414231172313918397090677214661448526336108129966583868055917024104741208584948138803712170714760086774972162863232814885637735304791629109995033025723890672401023680185132561806600840115117580808013967979504557787079192434380618749971813235667339516128566936172140458718852297124401965655983806619048920233572618858063796404489621720568389387514937693930114776869713371282204088427360928578967584818736759938782871983547477935765508320372854985852331565130103762744180098635231932248940428759408760963088312742739861294716372486635788200393663650765503141751365377923141643813762744630441626836393387523297141140870531561204894778217846645137514919256193255467653390666870501850559307978091886067993844247902368551765547201626576256696367712872123762832234199196562318380290849379948017974255501081715398590240661694375766991049950155625223806825148739172105778237574653757356798669811880749938493077529448684627340250128845654615154280208217953398972972705142043887601782062880034139958472711799677632212550217682634580002781454657041063166142905807918710904217354428980841375738654452186732234319628051403567203604016332516819949770760716499546175510437535593066838128276842621268089494592092373063213641939508352365904432782047917864471755424086636206974359031469762292344313552739905891868890027500979656783837506603864217618666299958956973418480634757598807791070677494410491998697459143153656710034811781439701791100797104331940860172070579078317432692366619693440887979494482271438147146632762336755526908070739160747354042710162108793858986575737520243169638578581540629734597487202978178816054328229932080265947338689211076354702131707473465266551607922019749033233386625563070986977829965033849607181301949080961868622808046107068651685704198516490466691089069092874708872546206512507812804217379558061869904537685545427478317022038872166569801437034179741175258215375346364948536810374370182720395431165241657861844364228095999213956425699940481677291754621087371624180091457380312931240445932123990979536561690014248096594872807733226396699774922748260195507369592810761846321324571243657216787428654764955874446663907864179615087035267485808940801558034491363679664502302944208988457941007743855735750538999513365627652020704928644322233542252242563118697553283638828500068077618009237252826670835656053445254479167099966792072635514591716189741372277512945362852466264176222408672035222986307824994827791884524559778837928724109671180868407177270453811415570250147590892092810047784918296422118403614691358172277984887842349446951604889281285258856036295123215940898707351932984080979971336824946172322164400358526138348242545370810900133842413795597133431346475626536840577826159135286915432126888446884281881461462214616277701355975655203420498993237236240047292434659401289818227694286350089892334768237033529386893346851615763263415068631815126395422773909468589902729108162763252974048714493895068579359218369410986245159816792546643455334563692290898223674203852774030986706545594436445612849280738045615660861236243147308048057767129690646245838942554050343652097768129990368819879921211538612835266276499867420404195159204107825382800216326520359045397574444558745164065168850764998913144376187734044256181703927139327081487608537718723596918844521063853340455540131621168087793283776872756703254299285960626853810075750970705931885458556707368083662230000004506182291146247326208680897524483141793126790252887900881965211084770233443353594798406750492576641059678561429907728058618265924968976355249652784640861421072019429499056291088060180002040376199030988395293783997963561530123722941241030982466933136172561839977169751545347539856957420681229315817769058372059238396751327187439148758647085528784871800151557569921251017786030402786361503744201391013104732229200831545288682670119456104303224115562355837797593641641338505586416492513896590081215257511955129280778784588091584335257956655815784558307465629194546161456191588159995895662914383081456161843776148605277934351884471297024029403091436973611908696604758934751847678921801145303027520191512071127211162159237461631797693782073559527389154068666702515495534845016018486472539472072794306424268615757011184434231881133737359848726832088707939246493709597587744010321888026160806401488025818072212829110241091430643841184934054786178707905735947867981718138452457854784470177377653304077086476957980493386750938183927006899712509329494264298004905723700229915160956476814629769454196992177760411383281519602236198670979879353744690269039673535513078091305644079892022727790098629900482017163820911291373447892828837120712957327219692397612623861837878107942285769749435045048191103996444304707278679569159435530739878948806865997352817377883496707309421037459565506062015222923634949245748152502125584878475687529177439729635643379943993600116180486352538948989746267009158362394521176157901037967090874803884932222392005186254467186600516048916072333778314436541615373596358200287314224847210003674762845489475795622822968965248778291472712024219273942426131617539108325964206937915435178050939044543594442606507459950111217400752626190986037368700264299376386526850284258028577080476870212957446090595256880949231905273645312830387459921653593189040137998817416087894369544918399564754418438707250534943612963297564694877929927545174125175861912802008478510360055333951415520874153484433978097311156695597159375970016324852196752820680023122775410150036176210897090158176671081367726475019238349628851519039089660753668646308242799455260012583156560091886010441234483687535831502521192005285372282806581822224738275368781330932166600854772956987976343545581875691472836142327941886201399362610818430887161974746733367062706217528160748937948672377428455371560025654121471708912008040625241702322540425452952825673931263030487460951508433757463903377443377487893876880652199733806457791915422630077991152173881492451791541052015261600268831437616532295403952414684301008541816066618154880359840475562216653107175838836528018969000323185489439710189980233337155043580430702476204661642442610602591273725225332876985720161401818639061145253457051150949614366181002773000845495143433996855773661013224821330442068600355872903944231526627717857252945185654045986629955296082884060996339931631792076544580408993576293717370760922041747465813424277785123678942636756803722571009738084669238131169943185573942261189231642401208054401735207870325933450501003085446505218156351669530155315161515118738831747814901669525651239804356972458580824196344197228390178259689418480877433984313202466908450703907977174285042560749925872149400335660671756272532862404804643276280139005426377963117436003470288775346307058047396851807438015545492758497732756293412177173982985462130542639478560981748661597684848661575730196541787829941954237299059396647561644902609272179818318118855765017772741093118388563818895929202520260609025215958011156689985693520173919309836189992119731186698765881454306041815827420632156138731947323889326961409652635816072821420113581567994008674434928245791346527449842589275416358075080880426028360258381280201945648479246552486132492091501529546678159210340023695081052870344080085560561102519822797247971675565204993875030479601955102486077787080962681371271393298641890574108508257989596893048660854572885480541671547253021319228535852660043550007333461900142618727012463203419062875866461326817430468200977020587148652869537064719163106696906342238716104433786729379325911631826356863727766742958651588079307888905314439693007878047609915169465781000181698656830617731169353097499962117936054342512278074998911752261423449117423187309900505984713623234809150149498664694237921908255873222336108208596297812851495028088111225467689357184515866175206938317283180127364009872782618847895278629143051348246044981357420648357860488211317604371348418166065240202000024615158576662068398883148943021921549928032841763633196754664185549287251105806143083855964288416745440016792694222171381666579580974557278701975747022642644758368133993532852162752556832796140090176651006802748025711554736116397941974810188851562302568405601345295531785076546737495777975159972133783460189291680364429988819711191663259759225949643475293109121230358777086604955907385584479138994222303745069703892133702369595811083084490194137614621622942574669969920262320395924451216756999872056429126571568140526492881917232042809452715042006774278005542022214285262296830863463271778787219395818815492856337514505561387289034381530852576570221253239678242088449374421338650335466564574402309678204068063861843292195874646720312664893921377935903034359594688100306138850344025204365778925440486510311519470972436431376418425441238032038064768014238224076609760933471396607048317314138004085266597927198525618618264659456119514860447352737500111351965026480327132392895580561963024760835214434184611499556632475532623483518357763553457570695079355453923279834896876708431544137262575470268440236698880539563761947238368209361645800651249433318343388976734288976390033315487516478138968713721650579780698668710054539397969346842074613255417680321657789523861331386127533834407988296294413279665178317625307563273274083460356673903468633430099598651095121171928488239283483807320324981415415467049856072402111644066259648451970486197963677606801223927415163764803369354495263447876904883043339668480332180611959444361174097082790338127609436736515736077288915793815476729112385225832301702720394269099306368542193656395359580586293430072509900915158309637313912506676077033301107879246007009747041138297174794255909317321399505417203347834462037648080132711217347154884247119435332979906178815308541746787485004816299227241242868002274180350942263816921073249880162108394286949965262155306148057534533957273644516144362044811879331353693241048775774793461927185646158801476628129029081185788817489652913160387941022759581406604254510502291479503021321876074455262495162592571955220163635047585917646262109196450490570935461598311349404268842048276189116078116623836179455864111794060498883984539013215077853951309508026728736675204108651308928440834305468052130863298535962503077214961680025256767930868561154830213455035014643426376319580173196303081200292445498766239881247013097437846931660272612109572023624059429251696984974117458531080887840208529519644408192438095570724705550568051002573362565061471369263969690416538112143521926932422762823379558049795022955413429164891776928347571304128430469131143237530751130474470245725136290352089282591485468157850505756037786579747647167051236429363190433679588598228445958068862666879324786908387960428264938701605359250760885467366125362873981252558722160842824143324551872640815081491442228225520747139017872956695930530882209907981288433967259868178396979504379001856246447786965247392483936091172328674790217633698826697503393741393330141698708263481036491632859265720687467254892070817488451343593315564940177473092388621841746779114783303529310391642591340899951597392859162061842079097671760194316870457694497578467571632553647850267068131001060109690874969852182645921418426354595762654613928527720889638665581401558386805375814108955419048055612043518960282074697815099327523975675823484706303309685354816328517985426356467607915969544731774283408969866892603462675549418263693171664240343172710768095437331457774835813623065215004264190034533615774439013137175053464066817651483733868395641214214062392730228510760855292753546985509961149049815368104352307805142525463042858993766820672548690763091486528536195524390727432978259308700536578078237617288412667235776931264336961591090372598320874219273695511515615483687243002520130767650077358528485911521104232415873482492538480106230153048515700670100577332648095366756541498366858185729237085989079795080722715910722786515696560393206656507699869812468927126839004215604341594443435798624310825970230077601770135649305811097852447679048398087977249200581810211216520247835981348165317077242966450844358013862607879209271306440094685393909070157832468505588355547532090529153739250701935605387025397573173386127209494815753087160245442240609612461804353429744290839273543117431205670720026994404514922938773268777039417599472611367090933699046209936252752580265468798047768580814122204760171438671386618832711066130899268754320182921540574796071917061511740025854433168753141133975806515509918354048844582377579244782685199686065347814340331352670098604003705689393892507441727188737691971045633110384771611674360920376814104302643191821611281663484589966622554981854885640746821528191114354076683212202238925830932633267286933901824136949892192023179821687641646040114174443881648641290526126107654157291167240898143880714959255352084352974037497314388860456445321782421442971420097111274016673651529310582900027227580753799673036978344812448161489603747111973643884781783133150229951755829232077056277630698874811997045368286826737871079053643247554221728454794920288459423118470609869962454650317976614251221651738889103549321814079286054006404389802175096497158009556183584790268795732370069994518430165577312681461150920520390457753292741701617590214953972087283449432661244262309769288480119378608225836522532764603610631585153850595927346349357716543779705010797121453614708561137836996760251835703272745790408050668456615040715254919313955909336802399074899603900269192615099638296089857408160655517534852019085448479330536630471877995059544542857429431335904695454791621230372051096570763723971576449958290914365995725601972801439151500883876212045429190953352519010169620882101702448884019524089549272960740177633414749491996840416121504342514147783643152347219192491141288239131177763142479896703180351495054513831743741683531589329882718678926773108248942329730341898171414883125503103321743793983547387979122668375967875244763722057821091254828652720079805960500220188061589016661115348963342753690886027140682864893017719569309010607319644416572129036692031945412176936201266107491088370621663182223807355816680152609782242907556977826610172303370843127359644315790180231557992364655362487992680941016885040100201287569542496119745493254769263863995393097838431524484750873244761896125119120054301408609313177484634163746493236953943412529516415599080221705390309674102534416012583814546938062730540601024639410183866415661712436655197007947648848890248164615428811743714897249170339265471282554020728466560548109234988605092949934609670952490567582020791497220428172242998396806181983741344449383294795505953200166265568482247635675292521730766495006088179200075263731335880560298071322740297887499535818755087339880205180744410617178809756398794632779367707766753747956281866880826169511214795588707635895076163829479158564426028793680091682894111728490967066787752232217946298032975190599169968057331802512248992264464180164044948609352490899886997424061250471049919352351153499888882635199170477447486666290324321250688407114206710836616606261370506451377558260031583571677641881986575208852917488169672941573222486398122669385180785865967206819515910987712368529936293417349551259448315496472933104028887609504687134962554405093257368604335193408655737951180920267321396743882779926631349703682276281358817326716427929942315987590045148765683882236745957410380251483175217760381178385687296853494455499063112730587263217685639130836026007233212716908613028240217626246316986949132895411765693209880665943898529509276057039673884985424592297737680835851658406811780124447053516195649051477692873110436610837390925960926056762465376232696985153676985830716427980201044499742431122269060372564946653650158013882291409083766172031968552494104098174556105916782385226049635949721230906720972139472254945012757694999371950557575495466471642916728310026221890919699703531174383859569315478949406609750275668548232306766266841201769478420396973898975185894811062194102208427881100416569953218646529260373245778591906307571979328547014649834320410093591292941652856884620768988548567346599557266446159448311328672988683325414852278423023120795811847809428699775204433827902454803079904818147769381734740646708603004537046049808317553988867494572592020989305361557759756906737040010940885979872408335481417684130248881685051573475342248381835643818360321195517539938742515012958672489410532620979898992406592317396753564659627499615520675578413064361085563001516277268580014150126575411521305925531644495247574308613990378539587772836574813502274572551071745336870411451767702786346460111382456831931451754803116135136117061427042407639381041897160921900841890740339951404388334707965774861089864355512187458087089395399466431897900135781103905540826841648005873414524357448842894365562957074495364851295411248825073220116680010237024496864945494794120930959733865091313034567838864470441475914033394278491819104153017963129943715443654560404188379163224996237635467652153232119891201000083224990984845513500875250171678753321340605118563689346227142662961698662463775832678174846277510099721878663839341211977681004547808027017013468352627471375015320527953314390691496210762164004446798742156266041442308112168040723596860532154300263553773403451637484985083933665065029309650368581554962369555946630014766191280180755416833301608073761639024110513122476734947588060718450206019882217374604895415760582072358599119185672169074870655036972542769855557389857537233342003367883868315947256090720996845631101826126226502315710709157856593372629358210507064329664208428677267110383525002969358351839142852638033350193810164305632079406247556195924334281769615317556507042835371364542173260851235209274354443233740655221289022957811686802114363590583407083560459200539318488987950916962438466854265802789049129509838024177310611201324309255742244685637433042648417579370766049847406776732806000457837607922087714745765589610888580809225414924483848757855596205661520342764995984133705274829168349374160312520199815176695151246038177939145968888183769122575442277263108428309192673317219468825362993881647643635553451045532981579759685611041597564039794705120902962521113234356575896053681999726589364348291787857189451380853523806109180724121819192884468920445091826020584981782502958302855440413013045530927865701041014309121790323848608105678295345354783447166376712695494253788342765613671996191868770410582252194983700320445287317648471819393665235548556670425488227698440357444223428324660950640740148991880813816252804427109144206386703390271350931195728104373912790199344656255212207235507050665917428497886168864529101313000830411883036684711317850475408680109750469042164667079296439275597291275803742304800168037613312226790111907088517097668377900245386016565752818966533436016006581129951317951558423771817759261203798549998972883365857446863933563973732302804686017674298991814684735197090304938773169287990423823623532631724016276505091731892401423692166394821079177845543900127805726105192000470602539791596834581595354073884116400992388254675760612586029010579720096610777074314525724456732025535431981607362731729137191356850365048312367689142741528422656089065181668250432352736309039907123441103271239898817929477748245611406444362116954389429378092839249679134554741016718263037885009722406665415218591284888270120394622145623733608100536763961285326791341076054334569010643248712200888964064145145785579100844963484941056008062694949305203928323406868212893541044115890199100554318287170345675305651255741594026812510305669614299336249138598961957995145087580225719632432001274731737771267351519522580808270602247275434680763102387103727890968618116667745674807875556786944404875083457496368244130196769817932272966802353774139910456118130981270315579005544931848892368920555552722324773331008857886617348126133305089373208028027021628575866290978461744049189287095136651207639240194934435705560986662227386286310858100171019356167806972541786109863657599197849833228546600351046673718592335737487057087727625481516094871135476351671564452254942175001374356422011411545116438812420353884243863987195480498547052776434052564450946875674377918026924830566554273159819092533323236597093006880309378797104702557823201850153481895233058929577583249097028106717515727220161173553791295453104424686128509858262461493237058541647368843094509819222859503642617254333592984014528082308917191872987034446038794951330525779907220299228073963026139034182138932257661064374257868105523543663686836329326174696825115671936023466268654106319689513618884182801696479282700019025744973536990487696577832994261860908323623628144088234602324055184727545763567307351126342407366172589777882765415994481791853290486312396918065997737259170406280736480082157990925923120603076552716237855698258419434977459509484499539076140852374485268351345679508100640737654601921897230596950481923761508181195695737807820732048043459264813170876665508503161119685902154400561637548212474282619396082647943120409931342188640189955524787969858396897217325836505197226050618290328648389354546782694397928263969907329979736016005208323337771471643662283169566344768942865108714556096820184850668376875781196140345523318692519169059234326958638020931007061316121877745185044723762589603060457773961177861987939029001526345571699118187773056267502253737995896892791862291527671702862493700520187788012887816464177478164139248316104243817112757571777310679909519944025124216585535199884105712024100015112353267874056398123481955045556902865084153562358203109521080822506830860184144224367634807014646832101341875475802372277956737673907882190031549612780881671880601058474170236293168562610875289575955481125077984765736026946363058103705091006257811638908544696113337233001169223427209625640904267614457607221551633441353103342167578324502072095851165001303986151150289112873280134682752344007362376826292159899536709507162250777816667128632247591562193587754588074803853917457464444595740912448099783268696234273764464442980943275119050385708375189393575188037873771986706888776152574372102148665961006352028501963090884647330429556454654383180991940541383850297476447411956654484161268186199778170993481126740495330807418298523509934513551886954830381151340995981156318597359393904192071073641234457465497850166610845344821309534488295500682685150288841696977910655488321986566816500413161871134219702607068719834165601129406918642495607976195033371979959002973312778620893108220086463180420885395401149913846623671896518021889401016421315292069705538260806959685972274295614897052304491300876976745844689983766470402960675465391578026388302356710647184165659058960824926785304802251564059936608551081976931746857088743298294549285819261124382313674967142501864865969033965126628611136585815270120612398945491750524147508885678978082700330323047798961760413842135730627293245989765807940492342226575100047095831453922190145220563586641495949078156675587892266747180073921424449572544056530707327937287375412378737744227348003800542199312067972251680119096882184444382276073236088313490867861950512625785497589566378141161743215974849961711437076638831280161866510984582683845820524256734667949685565511580836242557782225244566608261778658774892319996762224544452907002392070657173107128051800342057990462783754977924221585695970554552630861948981401117164836228144774098001766128927997648552752718487861801334529394606660613567529449442706532777859189785606877176546464202059270706124320367987235200656163034021504326793199975551342125354706832463037441370258404173774756379174800710917214703390224409547334163673791949172929110484424590211752296812877193784251018858643533493940190618687500025416760277024110324950937457870722951679723943343850889799674725281099298679856858676401924377644136927287248628561064781310569213623768832968620772455265504505066497002883437641114912065352337245411048788959110579733264278118125259417682949404723646748410461320329703727271782441018563948178089099173874265980151716058948979790564917600437437466992362203868699644942242537946168261873851761258884542352523146095290135398491042418398714973729874051944234589993861769378701479544611486501197114223289416552296926660245491720290286193903717158538669292136671359979107657586106630443725451863335064571169944422457735321553342260119686306220876986402580038636247623741872883563424997505565662080596930079067460164771825532675378711468921927550729432920503504447191008346711965901901817432150072410317284096897786697574708465628658640366120874980985210298396408103300503656469984509455838653114025953572480810235362876559054134419048615069023443260029363019858451376996722384687656394525637149099677138161570317367600677696572181332548416642353257652090453164109581801867962724630258199057247902154409074752550033227672820975134716297700561167835185044645443123311632737586482273848024985890980578830534345779133958191602009460644272315321013759580195960827181105332366308182036535744770183171689490831627997245271020925138384380013314959326286143833423497217545289556631281769159565609564875655134051257137583456175336471463870433289174771621507614637141129521930926636030136242578387803583527255636327681526801640350333861588596122760696112154196800763079575111166255907451441791844614369260456040820690689905039549070627132594855320794176993963042119155628799612262020441578640353503888477418614511920138150540436082562899154471349018580538286972254209642438794873966774752865146726757242630214648906852523864001739997190572670506597431129220208390759514343593478769514771532615072001789953313360021682793534906843666703079165385225605555762415283476047683993704572881957979403064882345626775985165605339032369011395084430225405836780512757813513929315621282433989907166311809729527277813469593440957182606957998681724952159570748419471098190891905662399458804264799046058568514677999485804752553334801678373077477301111727945932175399925756165379892837182408974265196262384005727975114377204312914156418871676477684414668234320625677322454053447459137419079593309751342990693513065801570650227137150661239225608710556650851350695543628437400471742992677142455578294758674608874151864283105253048118623818393962385190296092597968296577161511017742118159687776304858498033050729552316678687038475284356056358925215784641215227641448949457328505901134101105856163761393455788520083952329497684791304799883374375745589479061036657400308189366348207247958961548497947545530949190796093849515819615043460324834098116187580873344681618973148966088100465492973617006013045332884031500109630610938637398667308971082900849760625146407334400203795904068281005625382835912638425187433397389247384055933848355651410948537886521547700237332034417648037486472644188119616333554600333563299923566148865830157521365027923697130049951247604107440180755432330849542326790238595844224958589741380039423709353591059625828997552719068878006237483443675969761521431036842872463994282334829678833598066954030072669330021468709075691919060694756042777028853847397008651046741569254386454679428279228523398443514919318519455810449790604687814101587823465161405444553252961323576040527696017825797162028272759393420223193093920670143536804577090220864844283063827549893081083478368807717302433196554488526436435882976009047273625757482557292627083335923693871423274829082067012166213597320904193149295709631335877172356700118176448088353465861827548642872091855233701504757587650022588075537612108035582413270979699860705358945386163971829994805360305012728832718443636772798440093355513680556711807616969458348068179241344757993374102088513180940892391960038370957119065702420142662963076063516458168028345742514543541750943075262672855110249922342454301587194929083429805642131379289394629001925867260043797048973581194228684476461375357094836303286396073843597488453106800896357112333592822560561025276612731138275967644055761919916361763855740381621763444246718999102907609547794306781667538836660035950021606126455517125548887433473583561951019484944472154050476049357904815939868232184665122117841337949393239273858181984865491234554184659656030026569106774025741361399006381244025698281847416086302455666866390921467679912559718798835818956177993799840485589855372655594061812409961464141671113640760348808065459743233351091125879852055275444627550733422838067499221366019433026761450049419798275805339009930053110583406650113745125159880156212605563857580555535976774847005719999189419516694169182807975940770734136621927179537736205371083362599444634353465721922047097076681464270018852463539751053530296466673595916073952214648170789592851630954494288582736408507934868469097980837571287455764941559631976053967869453617430857990535359488053211885921237595401018192116932674961961086350239305952027647876155410896153666860622297106342109938262616648571606775757733664615776309071048178672346890304603499101366358563855771083174915276664183809967375665036024592606107416836046261383054102845818626600679132538828985963404306697212138953023432613666285595562647543305833547101135967450563211709365124814150076633464695357694138471018316549202187225301146840941364133637502982494429679766096931491031628987725154480680605368096986561262433679926338401546995186623676552923278807823804186162087237677201676743833632950948971102285267926711430138697729830320572426957821089832003430402877464904090428772882481907734274638225464782144216254493241354225078765805175246558764336722959157239938114252963729748310276602908969147027036169622645482259362484302906053526336545823430480477542659087449732574522858402970963763249935942680918380599222758380174139081354942749236823977065057057998752825119978401627334945750907723931701716910603253000271789257103976160434920314019637437016638015769612921830856073512200122450953826343966195444570322341486304054247463750511041869987240813202990188252749528123970533119633551732901019854399961688481686006526898472092607577616115389932584718842947727714731818655745676702190590039045679561495643661029088264544216877859957717927044522523423069351406287593421220212284791276926445506143671612860233803497714717659353690994550208485850298089179498320044075372578800645278288317196699690092652131320172581970803829773727205293445310542516115850579277960884622042746494819568194050127306055902512469885124852210950253954644380743270288982906350925492955801588449541625808689647993642951030869638398644163301243885354319378839586532472559417744758056804735111498232437522284459481782649260160573157694114894613361788784589922827478322721315390963402462685010631909990637924894614539864656017843544617204429426080389031138211034709622167489654535801000323230359361661702277663333464062037608222125757901303049758486207483221319623811888510495923807695766737709829341536228695255979427571099259965237194568809320526553289304480704593799593898466756722374924084283935196047842644568229134913940681477239873038493753095957201710084484395597041177639284279624690464907499777008705336814214924128749330664540244508363404717283413680997481149197021501793285413781260691887320291459683614236752841884840691477809157310657179941809374520254448947866060636599734801039763363294927136652655112224094039350189391273633446217353985981736212869013096446557361185276276313473116655275078963057946599100550576246374196106535921257800659797334450104441682366528909690476624207752313508798394082740304776893519014840741586772480121370588181440381066221854786218441399267581767916220225130445408367946602224956207795517324021357429405502063686236889367562096340658461696407131573066599907206153936536920355887194746503225547969161921373192777969848566439010898122670877969273676714015941100577705191807037784504433049581664290627445662645550381243610185411570009277124234829551346217938463999088321020112600155064771142430139865070144373968586802133110590325920523624250804239018728463781772027474771592972059574518939601778507126570724552262061382716069105945025296679850715622947720876842235959347148278580870352776879749711059566570471850927105325960361652677947497431386736537011413562984881217113081804598157563021491411402558650865818170307484533894078694871837457866198190741377805068594814627471140954230249864301532212314515489436202582219976507858700688028952472228749170787032251026456600731123788107141269993547004701636873921433911482019713414765880843557605248553694287592951983468993095715350141642194824745327958225826261922646923710627795342473006559078877806898017691197054467640405696272702768921412075315608251751320130420849534618786434188028813070233995267203529476345367342917456548045321023162118240325583594709560731473357924194697493785890529509440610398654020353435315556123664520028459930534787654854169095163270395852726825872640049406646720935201616003226707337837597827769549858445255196349976310132311495304352702195664202621830278634481360113181222528709748236810367189034268678733616161130432651056913851434341202084957832370316225404304120860280877478442550299377176484483839937437196756465088001774912521022084611442044370398107433766492908198897420504937226423022201606942984305961247162872117201176699269259157104099560317053433521192042510262289144651961446541791061667280449050294796996157991117966850676192446241046967315182761795052949439024730631901633063423997717672332317881461040778892862924802330748258790332253535655890770504672715493692106690444350933649678122055233134289869603785112930312916650444917871375542478116246291874413351857760877831784776586010189700405189714140445114456580946097189184816547746906359509284712643299336199316491144674835407884055923367510988805058532845343816891129164263728823149955715852779450323559366963938319670181672547650936866795920598097767969485961414218393452696774570955421616880919483759927684787651895767204328386694793133800917456182405924779106463764913268506289913666414802692102222995758730076421452324416619261698323926185662543196648172753961443817683027899829465483108867175150459979683734063711371018013937706894776256631709327491607113758744812247307420662133793253090866347041320047532358318239714928558334468302866268974104298989278015266271006619602921517406016241987651027310193849822010797291042697905895699325935655424389353225900423374081480532497795915062599704445087922902998415080065223071192740343667624584790400074678167743236487998470413730278992484757380725133774929893998929435731988514505252395279585765509541824342704953597313918600642641857747101464465202421177667603590992257654439662993885495576388673945436903246947889239354018029597016090468929441924638909754493035802457712823012492311570401038436040440895330849113942940614714985278868370024883993097896633408697862639971918395300221251032979990505239696155876851445162570003254583020831681388746170948806905891218649064225286115018302195935814893618082764389259899124679292158455454952146759274210884522301248190217625366904664892091200617955368555257771936714912551916700651736898818852544493588915071751825102812011748023220302390324959209403003483987202091001604524353952539604795643612365379360786223317048194528520362717126201880308063513897617831077394969667700983287747849933136876747109208661553990540525910302617488025066817720093968896952951268300722250301839831009911130884702368138255108463334485995476830285756568413277400348602692904519425402237619942806003962839104508235999994526017741624970347341402408850846835123564977172800555788509566112415058553020599983295493731033084278050556230153113874305280987821474941128959373534406656499023555773967485430793459251168536547369633918567733029718161721153830504779378029102840079590404079376126706959977743839551962501395917485868491339723215670332256669515618548682615708357690448450787514318691787494190714855778421143918289208018165821733012197645967709636375190813843462829199385525420507574140518871001059387445685342728325110767218984300064155386149024307030875027334303437399965571555432941633035948862359970036281605730201345022600444962099647544952413622290212955114254383312376038736028495557959372733851658409357012907430909260505503247064028339553174743941423896822090522293610011449702011809514254527292288420728410162173205289725335538333373929864690386388399370279082639878983983368378734705037792695717614838074207804472313757582770009175928573637504140709602855611741411021808234109779101068932702502125380498979341170423273942166292235397317921176235384964776468566486460807364147172476768460265349785994213854768632004414517094464794072262429566089792630524727141077146640214832294440367698755551219329078963582923245496839349249868152343662402374836748167268634881526815704517713318058577417012229293610446729955116190069134722577064279533316821662638748794169700795930588073924071632131392692633568035201677644488435900672048660163222907614198953305405176401794998921290611338365418409216754328046130987331256700598465132224898431845646628589675063503118204580658284905101946986322796094421042168999654284554384351155153983870703772509059255908248129291770224456518737525362462783751182809086360950909224915997828656060682304850761806472851689074235435833150503833593740830181850841090870740153516271723141662243973884174866771016226098426245272815646817760163235207014842334704748933717369657086378789870459846582190543625572474968622778417410214506519208687892858046865432980257294421208882088207459877722743538703796535465813325703217694814999091119362020041827834856894163329675000314940716518364082669177608557522754403401502685903963947554169988295474358489963589245752096599094815339939400435407936889325738126787340466122209712994918428570191511683261697968408802396268594466124463854374836386172444586352653717127769634132011578086825446401227232621173695298355632362316157696349451186962641044457378459745187719981137542515474294592354468701831829547975453799502699538200117599664265122671345183126641457346707352619120077899971056524831424249207729432152194339178331277218651653512002330365829538436692731128833435144013680883242403916556452892031633868504471556655438739643368356533856425420556874782847445756755288108741889918140656093613137163387835553939827739012539874532730068041673901596595583405515309652921404000700380574542880793625921888582098571672800458456073443488646142184472816764606767003293812407718813005700675906804759984331031939969465250357493713459968980058237176309183824114081771918151843962549441978032797452599563959399050240267084512168959034900260828524552168352804059043317141627883410784604993103696262114077104335644436283091446302235759879248858436105079766751571281406628240372767396467828004610588206359398362466883558890668648343455866637999043768099523595413864254132557042752089397855228559050082095798302765139340001970354087354653736754267760300161980963541817784034863475018104031427292840962146539989417849275760721231861505578990176347792781984815939484692540244045816081276538259722561453513293682701388157468821648861237559281994980565754988795373622155050129740841181446744351391310081346709532312256816503356238811832102509762706121362467406036325566403683718944276797538656958673814883980586033215808169281639879441149679707651459269217180421929732739969339607856112566265454425589282264020669303118378772793069350147593103419232711207004721113110009318879015040572022883302810451587975743848991329412932730719476132805257708941632673740094637029830481423896701804140933963021707196541319706411946606492383582196373387549133667581693217334196935441361495481172546005614117796296178054142232347031084648948943115543154344685124568156923355265129824964886732278922401668940011127492575537752862961409337803302639435624543436039635006325667778443445280587240190893245388220945658907664185517622085868181169688081590504412880802858310155403832210070074692700598844710139314403085365785533507644925340514648654654901589580433842425353412206318255069003319513345692961426314284555638865039122738293211610036769742645808211885508346343133275230410671692644825436928562480578862155170346219787382895664199709176825113082012106037467474861489345908904426037086451192122944159353778696615574738130306841088400670686602097129067385782864004842622910025740634691452130208011608783910811553852639773441036971210478215313364710348142394245916267728144741016925324081422306396366873519193424476211380661072192408564663640261928499342137010762153516606901640029531149566590394566637796494999442009572628461156177233057726676774688949939062637762689502906970205105782892204331642401121132409422442470683666859168372523737149154798961574307531673884633298098102501766925210467555911719222198793157390903608662011405958496355005462033565690826301007006468619185781137366869613432278753844863386633002104808477428109986789653476437995312465433131801346435409437903689756030724054197421930804397303981650340511839276926348025493266387214530984022288167645952679164124110416803091813286450531871049752655157183119139117430176016113790779399506180811815169520567995979916644093573667239882962749897159279028112374581947503849509154442247837644248828981481796347284503433311899159856513864729371131677874128718801289985347500444059979181064571162177596103560441125768875189033398949546742546640521177860711998182139110040230650732880196478314268751398300014959281756357579481498056848650890596721428609304925777887073761991871180799286245356701484740071271638306579820571871339912002409187915767153316195202503835506266813929517975195069973925582031280319664079839698000106524386265744496354132137631203738254990323118506266512479201878880459044762511906029325031757205713282440980085189829773812449119671722309832936103609926803871086457542127186918602564208269080831321427311319128937738855007238521388122369304728841228348051941246405961632979768711862014465283440415657012853244288246540154023851367806180678853510892283460363908491595316204539647842289108145288393268054884154272922459432852913953008562753599471356781966919199759616693063230359770349626535514468911422170842948871844789549512982856033255919826856498420968085569297639330828107110702130771194797031093295200957679493476296579219916459388971290748311582329698330592356033016206215045582379622559679511919078913576652648880365260082867243769873556416311021344378981948453906989011085935035742490132815554305941923330323700540795585503040549114198297332112748465583310089977599620567994388830335102736591435791758896903995474882842736611908254434228914962819549168572559534887265101562111671378203171389773859725925728687343422166414829582656215882156149174314219128186852589141767937033122849611413397966158457108806458900746273813270497861425324907775788895113537255696382760353957996487972428650244583120671960874631660155072302226386902089348076631110339979052426053831595122731689466408277507230494525423759595215651818012967919434684099752935830953295208013983898202177143976641372932009673661238122376506672662495893011730693182082739676436519019836204114169309305992349110733206962797745387135415792127237876491177237447802647676008377527081731041358814599660000538988636222869097711164337269833795719885242893390728751110638427437959037038895719126431301120495616174004966211996581796886209722468156500164442681566379919835907350043145044917084870427351768508408276729362981327739847785319345651651195881849619676517352692752235150168486507859500110410095557843716749425229679053508443359297211845187404653211196337284863852103227021638288289279058586212953667517665994311845274758273498872698791309700109082468450728848701963888107858780359975180425414782090580377918065222999697090788116320481016416895486157657694135160817831603612922918068860899399556981751389331556320746771065819534987909515623307774395876756276694310799034854257778982092637746735512586087694678530847221639626994717873992354788642301349528307584145730078886809489469184618673319326710993878010903499251362258488499463834916764783095478140826102545365987124051459314021233294079845381065702062914787223700631306108835675508140242556775396639452487913762899387142774985224193843665090351794995323001890768816800500536348867733520811508312485169931208289547422757644996060158223207628944107911936644257650523994658339845691759989737943849187738975826637320806438586055275021160507103599897502645416691696245443336393305345049976888719744264010619699307033147036807179183065865035559213789262707382823797920327159688846228843473881663572458464127472357566850895879207743868221642881745173315797819495533181021732513040147114259438143020559269776702623523897951819793672315443620369266895332663963666349252935056888361909439505713873471492455189262215712320936099021337336297324917835124347012665267140487283625717331921244390151535168964225854983672051891146277988149561719177058680422684624060675158929757488957139120354847864176404103951752675249317540667184752403929663872357332838978608094214068997955692133903875757377023583274085496015132921609011920659552019712934271626928549855055343667286058298398634614869183618798351103102475672141295950361221743354710138495150800727325274139941308145805483477844007808401085365072819273824740514872172662362409100584661852011179965744359885228303661747593570711434456953347289793995614694372237334877926457036134192691538008714441557059355631701869001738957546806675815861581984306940048591664784957847814074396073901519712216036294671581626195570316355176120474301203004406541499372130343143235485329283790210506847097659472651003162282439494784961007954634547682858857182456889124600242943995822439177694400855591318648626938997099740195129894686241559073373448543462045802775548620763845938758157195031403184854479589493361512890878647784065708945078651012097205401087672710001274833541409195339979780173754567683702002745338337631079090561003471664091535638187322201152924725641710697887724362664619177573740329044305706567104658894826435604479989425763495261954254805296119055327663596741376579028853473157920080692776576537523820250753006597756157787036534332502552078453511568733273157098804743744754203607334794941695960884924405427995822159433244971686260103255902355661938258593606826259335358352895817327423849311876565529717596464018353717675414550191870832617759436616588616160571536861219699501903248735738416656036844114580486056064758980773780987615711463707696279488278484861905574704335689514763781663244315651765859928524755661438344214814615742152213279638842286120230786702961466437697249012226296811665722527963233894074705665500643052011891826818983825349099619555298166971764928974205098933119700374653466380139355208606962936673507349386219068312857572389236439224392628289855493625167666891664399912631391370052342911975894477731440550686423415592610910527977154467927043667497170314185219610623215548232727792306517503436738692376925607413284439652771069151722077036188248827789635252671058923793066383061258329730450440749732683920864242101921032433721955551837346652855563913204005599037463571734946804431725380259190447508320929079006581163621153110822311033951944369415120468680219285760459005094820508272286968681362521747032917567624517534851384290051886523364573187297037831455087410133782295354073602263551156844441252168254704768486768978643116722366139681064510028545490934758387788668598734012581738485526624965248803310956496440997309714864860589058202756975416436985632545707659830771431381325549606698295749109854985587648639085621269502945920946663670311910195711693198448099326224304397770998177904707740675817072971191895492494713659940275421071601661790059752396779795478776914132959797281618531548517437986099296218755687496066021350192388726392374399403404442433173566790904147286223915553151112288608492861988206581383370422786155149062380563511200997732440690529826057187840314906548307959020791060699957902457995739875944232076896160542928844857172431157085311711207552658652755828545534307659822890443683800985365690068385264829262338933787129693105608814536426545946594010055645266545303604310664221283514519327976718630698083794419816139135593841417373127552485653767443729698032719338469418816746474148568637425712548902894516957985932838721477503434935868456815714756567897385439192069638009988433854747201729592903062298169182009107968934394800807718422427427314726209134526880112189814071805065741610743139444157913505543369675456231117183722644584983338454894484619849116972602269732101202753938745331014361426550029683159809018086319045681973541526236063982638062816199810114379291994500536513953896855658487544661381403818723283161916993838918423018639216676974138529556884421434365689368776503787664274872651671548818197082488523641151010242142984428568670497520286494350480578385116826232403444970593496734301918017160666312391866630875063580782660430685007734692254942493040549856790327852683564602002358665066667858665363132626805545652715526823611943564294265724442767610473081089227371003181371513729624127094628704035387465269734964412999527769665772704895090960143241575041461046144444758941266099517992799094811310547609846963759337553964435270952312110234035818101894187385855346162773641748190070992125009038098631243946466657804480303002785623953187057014399095562507891950258970070242401602553738666886062310232163217681460762645391975803529359607278836024241648394639669654631600701923499978381183319955134664142051470920949445599284987189438075690439679713599986066210792205086993036316989379353611855972773414162398094516971212493452300826960977040094707173318870427013194822330492810624236124583022019402284354266549564658554435522819384703973018577712047647835202122029231886879611722771266265889870191322163440536371026919469394865719675702919723219410939877185292942876985083175344524073935784814553087141593370621542406293456033203713695513384324210798548598714158371401791982409545349803281130842280056437873443684387408420538495082275484657352815382292375583556346465393843595010974139612827039510370741521457752917722876603446482874912906379336094111765352667183947700688807960781516145019487801185600237812832995211251307884461827478520767350034319807806453833241768031119007844950881423252420714623965705131409504961801791228974613668295132822085160626407046085547647076792745792195617002180980556873135771712894299730631358300860634262911174574532030745267713374515232017396260320907296934041424927889961545681611070029645443870715031777740569049786734828096972204240957443291888890259466120378277761505630941215411975685994839051494951518353860098596587014807694952068856765684846269498641871096040545055610273546293593074373711152149631436162568765926038609958313159434021968539989157908211665758384133629186814603734945104261319901732835237397199232725660194429131593893852441682530683281137158446005678351329144678127904253514873974972222809789295403454976543601633670537941744877738685566952874282978169258692125928707724153075482748860885305387782774923772247550305593853469645945141736709882128657845843318969475666433708010410846828899578762030981851688423707597634646012726082975879249005381362482934385531768759725897758779568957013363418803510772173198188807551303863209491894076943624000551461406504372496784622445869520050030308407116243703428283569013362926138004981556791547956485570789514299308858476977314834402344848261061796054763734126163599897620638573790613494070324623104951950645447315651331695876932554681995238866848835959845830984456529916537926782225672688251528812145405460158010390316204026533045595571613642384381290731331516126617431727943657728605686075287347858761987843568399834132369303477581890144499848121340487886238844701084200107087444623432055611684993778998850900191928076996315634578447872241713893649358902102122708917310956393180224427429211968059296585662760180060209689622515929375048141283213889081740118167498809723905452805206569914110050606140379316426010765810795363033981958288530170406658183247654632720869745664907945159276155806767370349208211527409594277925477362315656717012068488631577066235095027002346369736902343348586603073491439228356356870357708294851070217918104059884430625461780235817536934015239580363644534578352330743610592804769726114538018200251356069704301986618084888635393384317657251609389725220309998121063757708476702763910717671175327833618508024628753083205639544693090444437396354486328459125174670977152414621907937908631938008029503302948433052787224546321855024782244782052717754568956039006834738172132530853799966467786770340207690308927460677832890299424028035522467343186084940977929885223324007612760713179773126015784230375185422879513051840572360757355113562624238206925328809333090972406678897019904899640127242392520975503779079266482111242540251588038487723248092536094033196096814102888911543659859650011050974296850123207096902429459335225969796442764194532708338172333139864826601805024878948856938201676391276397804030118235941122084946653280968077162115070495540984830434405274856623187459671346259219436494447111861749899895058298517329412385942375817567588056641898824470142604952874752520987836366163848662824878469335056295534634496166856227777573412710493313229815003334901478218569957336519955867688295870710516992630876314060273201058152499459549047181614620134420798621990856768571115731998410509524300672479974415429951960156020625919227192476162691360956549310394820953434717804135166340948728547492531347515729675805765026452379324386733971623717421809584323988963859117226650410460084110457165017007500392086950953984649825039509244200393519650478915559312518177661772845845640470428540210300800020192868306728365907230658513251632611264652771572904724402372692821434606377217395813383248590026092777946798098305031044580051935108447170918303028139666551337832574072350691365457451758275329146967684676778855314445116853894943660779496328440305715863172411777020335783546695590107500203711149426314394179687597990940873745409619609515605257212280310120139396741064304686180945729641774673743752207749806502114576404701127541676888119028068882801773840090647371913967253751425580154611821070915515639298300930952585915116258347581238526094416636577072052151558624701525057405985296197255224543473747936600603175358682960334952536366724338314126446823132464214346463590539245741993633631798345230146768937889294774506692672337657190127562969339062520549847270200476079396715502383752779546413068895102832261811012686424672279012439834229021900297503394275579102702455676637589792909877794603759672979554880228749938430250100950266884317623638718596490652798536201891519096510352700091905655839248815334409609758742617983909601506906858789890774349759452070863557974895246957751635155144223242907944310429427771375527620190066250246714561420995547125965477249564329806166251442229205417730724758129394311808076753806963265547726606199924513268185876207008341260798059554729204135971175519928390050856305076407723209370271371671400231504416536774260648135036592778436668772954373299204113926750642991438672385202276780028886799091409473409253329290737464088972709357105689877595522380858914030856058115568510674273992445857382931986189652696777403575439996815681148427970930546074936869802979534179438172659694359077605849014801768799973515879627264963472027657701087560555616984610464679229071566704130070651890158972093405242732685894487867651419061792612422366929369734458536757808543728721783549903246573906000557426384325222426820945342601805549145996702008559608826449767877600834941459402706657756755360427104912803152852150500894704989051427409604949800653265554752555879633529289950558423278751947676080545833675717968911482507430665730406071179789181015480268883362323854899681457914183738159789831634382957702114599747027787483369270241817480523763732930682026684185817079916408226560509357319890380162878704774747644247315604340517993772437685907752827171722182562270841533641010956669670796866272895795997289515318008847086393962370403970115436511023951517323455795799896429764674739643241398454934361438790380859802993740769446148101956909762376088142369098346969920951777373255848281040768142272651306318907152843754996282619801848488814409743794782311980766957273933666116397630937657481738065050749310011535613718129056413548628020764572065507383670541278971688735160571172072046648708432373338574901761811945563190901771948159864547278220346177072901458250285342661989038609847763439930772477587783239145312291982593432858890554083331077237487977074600771683273058691181461015050470677204622346988365284614875361910777105824692422672150416739669074120117848672659761057027894777810919393987066201578135430199189340013938138612624361873065817083288296095859291041369941292304328403184490788321629475987747125172815119586081300539889183916382329235168649670599451504172968124101343916355703316851779995327061596133590317556853358144385176185694162967964173884666124860120753271054490832402862265673427836825852523848255121392940338400406655529645050113565380952109632457335278765232099634555976316058682047878928363366186920827949284404898963583557372101082059632760238683476221455016863280325521135614667224019747961373103030411879479968593672267432764213409272954232329078900194426001225160731875097899661325237239406298341658837396556515481260645640849021330389600473259058323821118717215348670156782538788403366659234584171002458753902834247805237487645003245109755518307541393546477707309725646542630081790061163239445628889823132544670826913579229553558040219739494100308280451729215147940108984255891131896085564952010889339945801386974533292248357824511637275979076539487663220328428752631532955919469850501804935479033996610484541359297247111399108009516826488754431647071705790455012638933750089161436877638652838967161045834750741038515565422611706728582690183580738877050794206042517636292129714419914430407874307437220004357992244151518406658149380526401091191836657076336079940543799152507818901035386732065544827955975963117207423041550663601934557204067366540748015995102957096409252336289648499559858229686319681141866776214070824456173763129009115280862185209030531290464337706685533940077487034015282351863529271211595644004846451206531954353533182469973888976640854407241008850874871034757948901745933449382570518129340752381246093874169985754214713143188366075035576197486087200706378637920124704233207667312280423611015055765015786050770527711484775201876881426529128093401386209780046069856119769527459921629077472298854157453471388547970824310337686073214165755183093507701029376629405946984477974419249437657964749346359489083892791994884449996872517560988444120496964661986936612510884401359202958878377518543371415408520901418187728508919007465156709122911421837796655767540780690641359323861245873088762065371359281896295724027322941684390389572392605708008688966283488678255681827900729519109234533771634816449740922037548118516494714350846842567664599448312786664864973734900900878088350319770978493802591344259150936217296366500022487241003582094282177921788201188552556374077283738341719679535484323738923289713233277434043162324690603157332703455998437671728426485367104446498613799078572106474520273142165646369392465103688816556164766659549450093728727952549382586224056907312046627981651380464720917973370388260476963048132724744532183143322324698785288901975786807206147830592725572429884412485763933919907775053921833954990415089055347278396073046516514097102899713321425147706150974742202318158198560163140031196695700481864378437954166415965992295661188692502166754824158768230921524710104665606085747367585389034952456999050326638965576198819623963009077567766152285249641552607245221986314257262773613239582295061355867513167499588127121862951936647355408152617179297731572016658155531686039577871993382139495404302701672771517312749342763354883235628932241461500489775706703938857795323344415389282449707236041052305447930044515265557333732646021622780768728725859516679689567890978436934268603851764547447391687713695631838714558411870346881142026960189886354145401091889736509044278682837696458534092255608945060519326072829861847811009647492852379759370538591087413829113068586204172235781480432404548396130887229539510299017791328018361960246068028242211359408198514370479165024064353565618136096611431389575161860601062099113751429870468361157942353369361216881491837153326162154782413638539560349352066595089626647258693760932507243485728660687062758350340092821571082825227997516496595571079251639820194899630962052481578194510902774270384066982196747358724203407489341888046542532730103037380035449770171790590932421523491656721644161393983900634110545530127314773445454441305240489510179208129324192341911493326276187721909837020420897974212154116607656656758938337522879886284512905245693032754905667107409356100516515764299768419790028595446682940001152700557178571123036408843312183825344342830297712777256477488587153510761698621834685779196522315509971367988804779277601379676618287581613156375815087121879086845161004945761559614208818717115785131631987184199755087273436840699761601782185328536589271247185006177538985950904304039963576893202949962792350327221243738995303020016048451246474191322668598138465904126949321015994560018930048864963672465779930843996630645168369234954157469632978858889473197812581239936790080185873169879719761294245838778834641578017136029496724852205526055022252612074210652483823592724554204986529525159476581818111580877008545674523432005431874714467463999404915368221738311722352254621061892497373679386227024070567881001481518594657241100413913980487269862914222611820176546484180138359577034491931350429876879842884811222517023604743377140786381261463107475943264536559081739352218934489199703870251549596145465806041730393225684401689768348873596628069763488530735787036717032595219117795556771797382232852544258362218639576769722767862185840480347301186736527113818474550588946973133322066112462438787485484262036360389313636631376204973454710349058822811571484116355947694359227107359577971630160114495716361711635983743319194125029792661484253792744111976663454131993186698121959671016552125035907553668773622430369308232821121752786564812483968706189200352415767114613517196086472643635480843275650234655977480704455658186633524916347182671860503697735382966013246695547536953972300353317841392391856029670644815806719475497152278605509031501675244909018054816775574193843859312348371730605472860962592663879428285879641932821922639652630636168745730169327014322180373173472480476588672999508827246228854232557478487472823431449889116037832070882974044077677264864685900182913644141445288594854227192043912803663223132894719356072011483238883326265928807493421488494696944365934487172414177360138647915174047838625936424507384070593521410229114783755454305126576557280844458283647542189288009500611090467590772431499286813749956156942952448145651447561902025578608287663145533622412989441408932930135587995506821737275927010671046930023719213362909703474697785308108632487790628071599777498207064614718351086384176040664639553390992482997208787818344104400944655658757391379807396005939344388868930545232086116551524110411026456584015174766674312628190175520245875395649775327044254911754781526439547857056983104071273272216281557747194118388857980699800733428711910132491983370164285225663739728047041113620650986995093564262037401266486087032407928670569578942769869056198512019720048446348600431936938431524053975179421973868592715006204092863770919673429490520001573179558728338744919125104582921051648467105040459489679279462649377271810245189614481849986613742075540284224786226457337193802155526040504921253452201454977631744548261405989123322979171391247612611062264222668735898247876367025375519554166675191721121330440553724803305644278730055840690853606034023450407525147235890091046264821912387665227834961720901504191564453250704183202042335276458883074343097951686616751026449660638511065436448963872194526028880685668704756719104167804985311193924256263787526550489497945629968803435842919607870767973249825842046750129578030656607663077652687049784642258359997390248606165884816631102381576244489836540504177336402892835079765449700527990931622599859477797422710488350472037905761864879745986340889497920357247029206023104982696535579197470274694464583257126609042351164883661975678049907236952914542644987955132804764673734923807424899758154696135671171818716267157688683545183850737125289990054209938981834880806942448697680474347838328939993267645161338754149562651978475866835662278320316935071131446898767813297828442663757648276778310190537521048058227320506809717476756672035410104343431242049111477061576063522824017487139220513545123193966674658016417923209419978183558805303003515227363107846811435641395834121924975827307126119134456974183744118762386136782627145521541015696279025567962308185299970327805469922713842154414598895612734065003264263323179896002944808428782263022462032902757279272329873675042938846297953422968588453550495855393480919276210794428188490144751453683396011540552578730602978838796643051019686655077145456506078156280223574353707899397865715054456080462739825418646221548906032538270327187016609590418865405284836886556507516263880087661902320122658896493381142656298041039973919987098024630948523904215219261035858194597285357424037976169867964287840578704659430019737585258454675826042113769161157706108498465684005321497610649690540867428178466466660243041080672412466686727727445532264947515417250198133845686733914598195284322522732061568725899938541308534214663956304294761642702333224646107773057026948760151824774317428732427191287790819533207522579377113408269155673662516651773972296864517807462281424963805113454864499956604333955547781307387842073668939834709247675615144578185012867923515282055097493621495296803243936354098372008126555270040852098897075196600735758675998167445726230434671920261058457520650468805655287630941926040170539235019952586201020348531783327509740507283163018014573425085715155016424428181266665341565361816137558902991186984263266245571006988050888827893904893169125801733780603067844876971835900364176915836389975166229873029202975666883366830935615271203246681406206256878215632016568312101358655205723640744193298663343064960524374078668520469440004139501956738744314450343085479890683821403344321322927529728053060588020862048707512861372984026599732098897061283203979522081127234710498375254623970756029188365700350492366684011307714692159536341256522247337590020793072991345653710832540007148348391530626049822061154839554310244454250071168564818401059671517816797855263191593758343119671495672920739082160684701418300694363835168198097713854421019387751601429518156886835443726796877558386508497627912602022168178673965540304033068103601567037690600055292007498574465231203820806052471763935588260982579795847363263289137922150964421981943043836678201415275848887834974241499726167981976547501954763566817944625558707919293225832011096581873239823847583404003319119130388585013940753351206373465712282250352763615741566273484954207007006842460147216763602596158579510853574016358996484489393325473517453939431718719422763348790920351429854651337486876493669548466793401390874368988635553525685218591007026434350622128028821057155535935843664637574780498697192139047454825462753068594994420253234186866176429605443302655425721663996099924370918119238556871883638248177143587494629066158748192537892805309087288850453143243871805025480269540905481149768338074682058028622539047201842964694083326243465689610089529763687630758702015988467161918155150258656996901462849444802180272239417936784364181133556315460251275574837128821608017135296220312354041868411176806620212034077269965137150656440356343197402611648616091967177159601018266540649463312909225939698323787492882456784225599789588961671162207676546613745622802745350499143753248007510021446424246104366594826198146365299068822003192687544904262148180599314070748990726972556276640429221843572033271592776739366740602926032106427151677319322273486433232351269505433453194649332682356210880119862414625766654104261561565878543548167592736519213293076622165909008017279082003635782194029038628180430877332948398461604584913164327744179651998274329244431828994178025309509239167797280981488883741764632667112646960895247092186949448192910197390985742634791392180753457655470028570263151509747527405205600124881873341541538140241465554342814477108368024558684295198541100019792739925226339401171480282708742643132501386720839656776899223828143585966207469489811584019828384348849702564722706033934892478193591187746973193837075484144250502143801509568508841225640667389597061572282701366636109369273483749546439680609568811081747637826960124818469882904681299400159975819887153257435601238506199151158764542018902872991804492666282796313420666247492296882916428872186065553260110355366628597513921642903853320374264259595008881084532207842568625820896504067505504205770650977252614829751581853545867601929909992364160182333700181209115624380178885311733082702167771247656451670983478985394964017742633251686012694189055295746849740063245233341251213500062862504652831112391839283969473423111204509449393760284380528895751562054553450768499861894850656179436396447553361512967803763947976218917471899212378571761469482045151651650110360840545897414441054183116407296129890140982243925306618503499381697991040775963373383209440357302805957678938226608692862364805820082621546036629181603923988236126517889123053742840154105118369213727559635933807327519355369128104717585624723426115572202246207301630841335018775268233841146231970911765969832096811099871892218621954055364364698951962494890911637820769578681766463129312520588589219514140076647573588357744289766165507019081864811778677959803819866504398718364925854975121202062176415327477904038883560750391131023357219317070421740545616917081661188835043256562684385247001139081447500818185795371171882605165705482340888227983419654162907111447786403069918167898991289635420180630012667117922259247366106422596216135886122421743193709705047471108575403703084348073751661828753647293757732748622882574387383328166337556080459486326794771232813202404033268325519069324236393593767416332892740024393892977763390321545659535444151655824618686198880338252571863852395326163600675398979534281490518525208705180105699037446416626328524608690816465467764974451724034818245763916424396278105199071044945687573687989008207797752001946158721226275409588754637569454912548351424634901779483441063524546608105233211923162614360239325133411509767718628655448551739832783402159323151841501599586767688259849193340241860402418961720639349570172457828840753377270644440171749716970332188611549942135136935695789302860364061017197257540413650211734767179950396329220411830628341707152112061885509714396432552441978044709889064394264573940818012238857782411026739116565136733344152015723986870759355716773767557637651353623130139600747957477569294585237533365859139680552576336827336264007837535709936395736581252728551235472959064718820444689308556855080185158534111154697844475601566015092095952679100337257610413617104881363735011442913168498239455763063665504232782284016971695267527601364624973807551669175292089962307306448217889516844828067398595212568000869472927162559148144643330703648913158239274103844142266437313155828423689070587665088345711343792925843323667915248429930269223934668341048709979221044524025185291779945266891209001374995910080807499284633786447288177126575678935423529853136874193183297859764066658821369202419500143498370348518358685209555691846097155659063350747676206835863594343310710446664181313820370099112700482110700459538797331687890765771498625305623205431966882650672530481916335520451197534672263156905558139251048844241754532562737181326918033414880132000815050535291571372320040094570797907580750340197517501426230474683071443428301964509609343746278772510416723805217969066998064149124727413388891232661270058780694352517480251030221897477426980040031075332065042016955681878671201394924135451114310811668422299136573067642205450386870091346148427069224154207782512620957971209626644964756499629233227791657915547553872641417519714584308194383101963826662742514963436511891114227289632032553766567636353918772325001134248559007702556045271829053275273427967960591540183915196105584981123573158655981633352610376242785355998987635079246421235301797517776044928519999760745856052067674967270288484886937282673680355663540789554277629737933052495839743504683807186018516360112373884722539632841824429328610570238985916950584906139771474299094979611131920684940139995533838148879903539308863308851417046675595597468443283017330216106073297235803284728114479556351422846902204245449933365293273916109552482279516356204531557605281519029033617419300850806320652184608357079981244601453059632029877477495695289996010284804148575601793139280068026030956271946572520351022409587827312848970536474607246388243953893803794148792393491862105565520640506173210651068862331423197517261866222001060688810164300090809622658792772521254506991764874641925248866677124647223018282309143548061458883528488545555522273016716334806763309435527922607550997187218103900311070407137593679119201814452266792002352794755791771718416655701426089153689609818457897502522937340998473320810437746702011666945953174065542949284656466923441713182979279787434966354680244909620362516721063206122181885014556383793400221671560909642665988101560008675304623463335753293259196218242552341207709013255267824039191596696749275656605073683711660451415897806970102049192939842538953137296041463013432075884753720427503979762422708081960228953313705221193850778291535792627246478358613504601173953823692511029537355074729308650191097369048670128303089382787486546101558174177163743030388583362703351212484105687742397597162046222817749503601089017457899370566639289705328858920354594914162414877331427000259692462509822109182897658862725199989779625804862351937410123524357650656112712152543980713873945546178821772975621363098118170760829756437910407250612210343229840053475892657691833370919907448848407186861549022483033648613669266081898300330056211604017232683033471688511349106114955764404591207732031209699605379921740486656038328986273604903736733433629854783331385059438592818685094733156161441137994700815762493203371103026820339500124977746478210275797907570215243701629930680754165285108894654245494097394231991859283381628017746641602610546383354666076372815451291426192913593079381571949247726961399720319571103373115573430089574712806595183823000948365490275048272487649666631516982589374577839952556934293481614249135450966851657930468023369929250300406635375379015861313187628330253866453639134682331448703704613225220156853931756380061283957543542005604997785035001551435783157854496000668691887825566696195878758794172735595800783925257216721725895744950674286757720848869162794128498609331304426421029165302054433554317883553803362295662489332016734941171334962843580803978577293058610344349195859855773438317009124099902026064557650183379638720054362202779135901531520815130146734614642100243878936549144659345688362311120221122124735742697417940895103463828273850681550736267350396103832708690407383810400837927101070520026991023790886928913084743257601423387254786652114782097445269047446579021283786949792535951074750463849820078281714898679177857219430580149872191727194449689168890557502865392969889759377375405324413025677355921782460283193913595549630186840960401358686561178123815501381844931692531319639225664067386352503322589861954788618537356248395309605536591121148324916088079984489310665220326559123803211606817480176224068618365288940585653731646704612033084652784573153672333658446437483331523121826611185997547122800941877789024436009970221043234645763473213680565078598424006163817719495131492447224877935376930711204354636037761888999581308878444332990029459070956782581036181387424071365649510544940965731446239909730260170560739479225512312240705810855608002229628416133817550019252989570039777985251570060372082719313492471400841496174558514010587651989989009405595772138940603236958585304249733053001815564874703243774528708716334705144741094301691079201783249994498542338444707464552731462725047552744173176627259240531228146498442090371305598081815902194588025235071576547308734665906562115515785560696889165754957190646502815368502944611355169111147920423575740163216290177936298013311140283135563162591808570254468371638329783613713281050468222918432960528980309330881416534102656079647309499150328066325554674493231762745157865920811864583942144914634208437550183575318559147571627251149956253073515940673594000617409035237066593919352309135742934349364578192796416160653665040592393651494849300975085586838450956068249138417550851097077756176093751553735242005825210027942248976477275634670759922015840477536245518159205070630611857813740852435440991443747071771147093895622018728821748211664154120437784705628186799593681173363700256987779323620824879429645744468159503664478646078110405184327367562425670036757254537357535043809358198620019681049676668471733676138325290838993751191869093790344351099887647870806090137298544827377428297970244426253919710572428836139943678010077830206337626144658428685667274979952193933993388607418703913655247754090125354565927431989831067203584223697339833203731815410411942263684050308481243565425505786330901621505238744083879913114846223328744933575096529606392652969999817853593619007983121406362427642058836411572513607911620054350183954069102632460932574021700055687626186154710635539532162334318037523510558961633746728188440738747570648234469771766170821507628337257281515864507259008827027983693699364617317588751195883751751921610451839034746510438041031945890210594739623962556089984878666834545993498204365005556830276828672494213325474645112289260075775432240891969816279715095882013547815268265407485209298121688398733260605176389592421735334741354189175042782645050446220667042654262688120386753820810281724899676482625446528214453957061468269958583951805109126434406353188804603731907102967222148783140405853887491222474766704580168463594020681970074726505768697294045406224606039216755348110898811527901152956038599664031154510444324038716868832182268061755390375183841711557435003326671023113689708436361080312752578369376119648225740398105794755771506155088590951287800853220725124065411798707483908874787306883887705010899404659384062050055211796753730103008735321207823325990666142714147021493750894472116826130374594299729485220182832632478608839100674450212693809531650556389794488474290875805259122390421517327920724404988620437845184576322714113324306156173742760730572234504153800149121734377035207799089605848782040953568090368470584632477478842515321835303819688374069813398899511912588460718822153738976071321628688134908387911626967547550811597423203192869172267094842349345690315514735392275662348028669049559823574226579915957092257643349585182688307301482596747379680899156737677404960292392902568535083896353722852221724422085164822046176547580454196848526321982576035567149226846726782920078547631894321761540708397860930096073258504363788253580411343092917386969683765597084173606396453878439081889515821178042120132686807151178301064229579491325463781264225089932997965072939813330494571855743160819814276011799027349896595265284746085697490006285487787485787882832500415808498069053594458017497749038869744395908760571363433066069948819681400375500882563426472414617588174809773323584850758408673679764783552942889241193720946652585425478044587867286679254770017268129933893003388024567467544600657360349207762603776474300416397766338506372376795735634757547204005397634605545708550142426335613334071798169204465105194546559426737250315807666421024104145689243436595973152350128089202975844507960890896069663235090516519562408584050017974209060447307842479324804930783659070666746489620241590756693388319650235687102700567686322198545514513903363645317776366672812843087618745178473580712000875970554309623622229592822566191844236757591211018112187003848654347069980399663549444997505015444368651817946770168984296223056815774190472784947062961670015492097494935748043610141973282794203296377291526820275861604791179430635638026112807046696589971532459472862560267646738922531359219346652423824814614447814246016455729388131693467356296944838327173490153333478031145008967495818730056736194881856498895937921269309392901059819632834686855297215821667335372987480573668888875795045866801572180887942964756443382194705542603160058965142698021038276833983912582382844548930989094973195712705391178815651295324219724092755820550443811099053534770433017671735333944529775568103145670142667681119097430632281631173113921858032220790657523119627656120182745418609883675116226942572436241592411738634307884488902624176043350771971721037822057128006363965892546594748720817492298387737419049822608443628231483218057555125256121112627965719346240903911837476115569249663964735587631161615422051390591886262581967388473522104063908250458122317701057433711136533642440329740025290732498743269046260020942541775819161556483427137445274644120044866526887219810739879068519299693099696038880773855474204035550576029229788073548517449955146512286857695631953836840088462021416652210574001260665673718320015904373916422800602803677443912397986970569068865378182038441491894470824587405133338929271836230210498853677715636755193315706422094901866962948938295915936181783772984786980037217867484192974636430017514399158786895990019178549916299534769540918329780973208081201845876401887141406387190415497058552648786695268784104603285042100412797101778691036715465383602614507835297341490572907283937407425883250799209649941641988713699473401856825682926572565438358773963585139835394040277456993461281056870311017846537503756643703015816767441576976212638670617084814921792671147154529528756986481246285362132889217585060101826318442486942802024277896190475997121156464257794867450189341399945925876880219070817048846916167682193413564528812368641188480959787547920705483835915642137424722054361590976137895535301649801785700698671762734196556910240749444692523339768152149004395083189776933065273651200481925660103363448342952255892612796705176356901878990661284571521771409288699582360684260975789696167094981199591652608461917335968110579242420549379308585699596911769224818729265208037281018071668703883742591828965458264405968306360168035419803110099524455724036743640463647849137631599538587000680389247431442262483305448483110932313774039258484174956594878507907500998007937149282191469994147483523383970205558446644563138751607144802531410731640067666790669038711525454077462084512685602433893001602276260709767071954574323447072340496943752211942838786969622178859801272823805699069770480432386233311654027961462958594315215354242924676278356505296705705797822505904661829146126984661639831355056773563510747134682343545083619561292082868111248843939795089650301017684469732371246781861838343048646211361988467194873328846678401533689985794587605561287852900637882568249850494691492946668864813777415039690297589181975606297708070662424536485700111760273826102296779153085880068139423450657951323375612181074030334932848232297831732584331995968466566660020251863457938152213266333891312109299252870162751273083313165817461553227586819015419259729878841436151368705684161651807698531195956326372662093301948263369313398035390933254854104871769425857395375892889722585258952509516443703424803961110922563173963864421452166016298388037655207832455357970445623052315663967546705840225585883556326847522888153103518497489376088113053897842594437325009743893497672659222392527993280345047195620632726718919950418053204202296182037983303426288262919236696745503299074599231259753774257723976037301823697688251489242250365650995123358618345218252884769732609509485157785929018627163419020998878917270106057369192103378101204768891770236932584419678092682516524178467979433291590453230842308947932683908563700698617076441396383200158940694277357308370008259531050699824250084734402907030885276831887057783948035356541604302790913562394119442666871974818346497098226877161552274380718342943332353512993491800772129426431117236954334935751078034118931980432174054360427465701942689706189625310935476269235204855489108714806005284998787957121539033217926139310938247319448176431527186996544143900841792214010267477878381262758211825405990773496068639534216924886472831662549115884648870513277603057766879128816125078928663365276450094710325728943210453518365229934097526972410468793831737514643647291650337907250696804025696096549875413273196990148336689902203591339617626450209778992620222106361329898725125954696389641512532805961566093637267979779402013790125132797349568402960627582971233253515607945031328238002838600380642221205479374755611214744206137918988367653513007293818219895700490069001914812802436465996551167526013984792742033395952490243577365397463854324574321996326841116311683282279230644435056413245063109403717612616061492286787602069099104523097158588884789023089306624395891953545680877355263719563095667399942368505559039223438503376021009602455164946179234750350673626421993284178619629262752315331580355203999901899445416690653465819352594149259236203920284450668420090065201213022809599507968310876575787907121357504203638176403396005496194907278336074193002280146218981662266206576722716448944276659876862925489976883807761483949604761088523420608481785201085502842969610900366189711261518768280043555287505343653878597401964815748494667120158607068172003054713228813158669879954331251233765106101335568851100871326269881855815245436125837309269514801618619170931572106169963921410702940498700045267139036059944676415981897673727636217730420503740258808764319581712977010020446092369086426608207936173074846191644246690997714027810737136667061950157390165414549665254242290544243032299590214770492371580067581623001009982454616397779035728942228657631110045018757946651087065213261396066559201715604725228303923271319786043635059335175384248829290680169930951722136399699599947746255205376942547766098814253905403080410586013780824317534624847542194853430896512580635466261015158706162522115273492566574654342625855906286151084592934798733155091361702847021155070483940552199623922241977710429179261686503817744966421562708179973517509451164066798299318307442277763905628898522698396279481014839640942461542124548818145959395450322652671809028979410242646678372405911489762400324657566623315912229834855034021255907096354538881578870424244770061896368571649940602066928824478203159186024370433476489012009444057285442802280247246786627551194280502525519583195278223374629516084781074228459053648838000658109740986688997350686474883538385804449837686965318534454362842234995322633482694775691408653095939157042678507356459088602278739201812529730143562864255258836521514988328148344523572530056453019522780279913894085521183340704500156113137400621709525883061101336811349924634842667268292174872320009668132731107821435074594293654896244372149874551386138996573966709996301016038063380850597821175473055933712592427029795666286751035192270644004774426563748327032143968066351989097529665155793194096323994030159897101312550391766035940823129754992313299804047967279109713832469105672081731602369991920674912413246854471004686729148376035730703899496145333238674271285735057211618192313454455047372902592244500196141828641574939929659302766293570703591336142125213390976732619429820051284299801866797361804524941667855364687283949109612096092642172878969814144601010921548238035438665257322411396676691988939237249398940912383494855023669385995135319783125862974516999376541051041144526657445839013063259066046146332465614219302213265397344186815517250166962038626059856444668242613735679361776515228367496904967448073328008436686672166395212047335851485250479108262195375183556647166443125121320321212469151754333634840237184213588786198171238935865831325375273660849646324883760346184815776293825861577652486536225194259306607124435265930284578337183820056208826870454503675434508929091499383756870507953594603626803228839998493234489037388999845400840636534889895946120894922817899272386097889417139382016085784715651420782128186672275619049986317306637038107577470847672781931290942754785622106880851262580193042014135962167474058470301104629386412056666335676832476108645199685748394958130848931101822568245359545085871515428649082258101597571736060613197969248346870555943410675516710008311849107388480542319546812565783859975804170082866315866531166241320273317027649075058322373355459722161529529426884580819873697351323509029921951795753797113713269886581983914887457857815011037314477157859515817605158175891923557974298927285988130157920953743392024522149574512330681330241447215152087786731456528885540855759402468987487781758235347888622396426454328180057370103805800248681204621826534572297553804018630465345902606665175129090682805974568666804187463995192104052757893150675862440681791152840744847546784152294760585856030156421493719078056466243089625612186706090586518595793683452186870708687842145457604701422983639173382482501956252967493985093706402022909212818318913937501610858548755035571450167112995813545094309500217893592926068956852892120666418129198904709437804372451403666061364340183259193819970281912300390852738958287488089675489743390497101143036129261400306107999691873058697848598856174030048298256672705840151507573987557468181830963682091693700364213204870464673502136612730209243334653324402770145089345017655074400586532503943555360321352417901011140223741654168699483347236177706952068454231415188678814756871875667269424027352336455385019495556064758153773533272061119147687715338833965857032624602932879875445620702371299731223945494234274962778289439014799797270995115064312764799993408813665437434679884097834321401429698977591064077720655308663204003639239966675683903510044570660727644888986159896102179071603595893761153172802910154985519176347848700184399303609036775788898953856023837490666402454792503615290640826555062758118926486320942342289214700530637691476330239282314289287584028078290781128200644666374493148614181284405386760802429077856920193783898385714398626536390033003251456558846260106277856159928301914125867635194178247246103325939184534687459869678240355916261608177701478963224183180173467308728456457184205976589606271630160857800943523635847209500622628925280863392550788796403055464526975845712112906675872869214306466815987697672271195967352114028012569382504637845062647830229703501486597030715964752133254803786527948874189467907039514509038625254612331343992609419482484175655211034763304899758663605180360396733207912091947848069458309822783556985926924197324000475286862812873428845548377776899381745149136741882395395574515676440343789918671233687789865167356698051574500033773227716436665964566331500039742736710428439060218122529190522210602125770293942943696319871954468847030370255915303177908086987846345264201460127747969503551033940715303218675847511057845674700480398516110555655193472012692146339664485408301757164064279459344887667585538068184033373543854945717074228529370127439652310337511064727900084919608248971700617050624942864889158336083211663256866790517582200519943041946978317734847096549044857856732263822528916367314360000468145935668377632352847688810405177420781800089432091501557020151726661737328930901535950050150881615311997456876389444603898807594895008077113256475600815635956597200763927828771776842793380372677941384198132720307263158164083095324479735031543539943390792022920385248888909678683578112990106395381228286961370331755268704182111653882448103664926254391124337813016639406999274018002263911969952844701330551353418775785587007258452784924005130257442945480206123906865745360691132553038962274929009522770140163150257026667879221586829482971550973134346894809567108687373834521501075016253064012855334931821424768516758582975254532335395846197022568300014230259240927411960086422123521798655257062420365871109179606335065330453337985883902956956208887865369357462581716675757122849594022229180349288996684682509825743040118609394330965032909722635888332032122253373209886104575807888324866154134794373371656943087167617468454153294023542491367216832683186869241033891691643182107002312877877217605832074850598991528643160463671237023960525581573840562632590926031039577834929225259242219119739571570089557995622093923063278512261213220412218668915016419886948472024108049964672065031218442157270252434852004207190657196066279364537913821895905587882959362398405338234810137394481022183945102818473951707579095834267990143567977975486969843559087772371429732231649228843399890558426620312995058450008614791957038284553284252668300986843524969571182518042751235971400084766310260118155534008954668805227735562946219728342003217911678020642252175631171757733476790598989611992113001953491628982667811664503723181566498481662477093300999900214802436022675411974400942665439151523249399885171427571941652960652712073984201774289648054475238209092916781390236230848552561050416952261624599252167442233142869203744169714609228883209059433422815050462398277416685407022455207021938430457627860495930029461664089575385965145865025244142518675991488198793406919366586159296491517856075602169778420054441605603185608829605250293117651475535323935186768744307125424570487204142088435650159354832137211412606673228719071418288946539162870654737893302649933518851179968131701136039333212832443624453793988419202888506584308287274237626499835580951831020187538774986024959792073833921552880605771946743816275813948818128605552255743237801165663966297740537561629337897627706829470987628124139756739242255435829103564972294998971578741140417915859372752394011673063522230241123330497444840136683056450664622420670207188858121282267818898938825712616846947048684155836207537589633157177922104046569786678190167748459094869511718269280615926278351906239073460824194126747217523774406655816263223450794084342418657788430315909361223739129896131821326019509614895768010511481011390225600572463479578398681081228562157839805237318060424312678895170727101681363511247126139090298383030376825773291798720927182815651188606134614093075410487213938908176399713033511852093444779264297779444187733217310457714696249044340670404042264383111299555932088654150725203020514584117615573790021016192944407305052888248087730098776178635089292612647780567959616219138022014784227926874425644064240289718351506090213675062731913665539773550144646819257887941863001052325664951932453268173466190479879011126561202704990705538543446079220258145111745112238396984393847375682278036631814010132793451191703704123899049808412216082096037840898802448369474622421447699391098909424856852430154692520003082140616393886126470992992064793055800717745513003284168689220391121630770670798045907386975216271389170633187933032847296948918626515994150395042852214717437783829986268156892172103756120349154565178259796300924835216499047045209983712845334882366647239015535558898512849237457211742254742815932989068045248222423145537629209656633840658360426983381359905839453318936670166791022649275249178514667891756441546200920547366149963203242494807281610757979282497652970634742936562789447434322437430791196308562961687094926926581996595602998251590311287051030678929538799154611093125606825147884608503583032214409443149159084197615320443911591140396904929298942731475601420460708699511447186778325996121552045031687567886115431036351978746884217104608536185091471527374645885050794420105782216247776545738642962082649859152373115167140407747904044105422877605596041076918562558397234326093969279723402743864358514794824985699196359438135228181998799489849721612502526267527669961032693870201346882994085737412141484293859890434202125679650811607785767098330820532349540534744602836849003832733695285747391857241337056302702358311663459690366182164561106334549701702842732784445307371874362892263613706589305603596099760354083266395342693357221231696075064077799120755336547110068436416577761616815418078660100244258295243595891733192005942432294999022495326742367742468214999061472841067212112265978371242132861391570133506477171514644087798456849794691297771906702578602561861897480627897032091597662519366231216521670189819083874862359595997408292623037089288205462619519182732059834993833512988795057578069096881688153715862339327664850234397339120026425950309450465287231984717247440563074441298692567127769700090866529166511906506512637574738106185233574134216429946436219588280546625186505428790626036006971376828147908271516383987517426835931757115126152550751443891753197535044464872278914968565109411163727202944061732539002975280076249636656174379811695085792802791530022186802917469411888410283885552650160007686036939067633406193073449275002831850439912282677959278448100438684070644597015110938729351350078671886486597583384055653504049289107080386042018233243280504026837586529716956682533248735980391447698939305460420356527910822354190910179128761604053335637990948917769891012701163143535791500139284130308517837445151776988547556259415849301518391232952960384823225230658080327344690170404539157290788697303812437975785224891596785143700098354938214086637506160626832371436462897273421101407389806732960314056465352349328148508865470746114842108371185475688474492273086166110757234372885761273063748029623486119553590467405780437282211194762733383859685396870482364085206396397518484159923484802047817899702168545003480342096412032570973680044054496070991319368364031924773705108016795540811474548155094246198606338625567349151846216718809859349005415839131367861615359972485550349383453568406269045983122231835069325544145879490716727815455656157618492422404026226779734801084325358195234718008581809593862938844131416581131927021325597928020593969848330926439461835938498185043342247710806628745181407001801702134105285961584677996853400396185873207017717085970765470125641385011604854052369418129006656963855125296168302369363389203808735487969779757372437496041486751931606715882507614380490737107530564893377903147123657203456431702520647303928769659845459375894992785889884271875914397125486219974445113212620611975342533301772659011928586352209152049297156884730540326596767372101931807411265637771891144635666888376683459117139648258802803089838767692843308672657921238199274250569287351568550976235198082704124405606198804627793509252493411767036908485260575230674131716897119141346228024096366559142213013575174544055155056628203910003517411130406238764777736913485926150343418508200184297852125929340717510654796502104380843208460648339295986583215089215191222497426363139231280442891055335248552459438883321470354230481811676291474967731539662139723765091739188496627577118326573839173924770385459985875467835366460662788324105512188961010670890170872110565617085567158320328593469086376343272577858657499682889854059813665794965337807939146587569719476547054746933242609980476614562202797376822300868370409998468733090906603895570824536756172057174089456225533553859757771370817879040853224293773535166797813037679750827613658558470066673046910274755997335624354408301607629743035791395311788591705349217429444528807286898282259499659017434967098989279541094551759449704975201687224931452791730816521148459419993233458623804402472513402952933853502279068723194894639084476578508604322270146245854796281129641521624209964021436390603580765359098961297902682253646389064224662865243491867512077182407423044415301663455160688405709542526267729409801101847724218111793469863437600122034584129695305738518920779465322260526913994012374881502504923290576904154534986973471633573840654584538884073766269267312423228038145258607671484412561890589399664155582243640210442091497035162028267009316815275175969164657796157912655639260199148784059356492034820479582778420707788834617966454835037327189553125241927562384379344750817017803076520148578496440265636575409956436280283121448509854652855225450115478724959349883205911957336374610744929829602612835332428529280269355966363587339783787362031523769694113107513912477241845145671630535011502268794593022279972316837461379602807774619575840107243209247126364014045950021355295209684037058767443172366242100281636022629135490404034615031236749284700544759261770016668315311594765206488001482226738714760385749261576805113352299035134847690927933713759111022327179663980984874384221243233736611608710823031427443317848228537325989757101868733881321933987616077173775635876941960115598673208324224891994771334576557809825064381996474042149775270337625937866113870942995385205530201663468817827153439780206908223488961022969536131028803018908107115780579157828222990002870753620549336411238394792387092824886727017368163805649219641273202368112985407403521755290485589926383931846903338205792330472581702751467370167697511800370723208758704488176577679816113020997558705627608657497762515287726955909054680304256258513134485417603897563979798709191707555228327051404317402794008922628447291299095978916472160330958607930082063944680731686207754489434008328644306707996825161750856291046711947822485319416136727971639834606577334109821306608730956812957784715845253239386271726898439440021728098346165440804508524123142286409537702734512224302187991791588889622879897134721624157301313361824993404656694924437152188476784618753859647588409126940091980749557617774633947917139377622627353557287735223786382173592715048967162081774324942362020466635448107180891949983857826856787497918262547841374070913656942672957785957155366507742927837746186978034533959951571942582213530674962142646806255728415126937997691232266561139491180730033952399799718419253331172652810490675241953945468443332810102803188067093276628044888562286674041717383934718558951243354615816528733596150903465044108761333312483366884291651657876777133865814025835273280612517347122009380746983922962560303146044651486472026759665653725182528342345970884570411626556845510661648844373232846081449548403812768688537795533164043162228406876054918534972474752834629747636828015129986507012468085313652388092339187021908718940875530925144153578447781698821435771005995194992339476685295439775614594183647527560031225741100346449462933182616505288965552538711320214577214335582101445133053771140596694659029510976524229462133018538420185296564456814775388466624858098643685706928253022774277569969266684901225177445005519379600265168897839161885766970690433695642423050637187577506323374605460573430996590367706789656698991283016591623463168823456662033976013155417404615187937645392188622996091773707221950805026792961043566556329535223118963796917919836973159187389934310202318707252792600245700262951177635468968576843722687338541618415148828766960962693445074761741858168172821164936771500479872734082429879474176207137614635821836055317319947743067713422930127300100776664880084486816285699909061401649266203893067703462731420272062338039871558038835694117597201435542624685027588080171929831118948239782289009687603311616639950143465437306940124989543765651710442321106901136858546345324564289943448746733039329341298077865430794169934365994726332689119159820094676629174199961078764398905993345708965707993412818012114529331893859730128149964855252802958166411091874949857842009600285830097118127396157484215871971573725666388039677490486044776186269158529772828107424101914375760688327632923790938210607148917793449426018501700458776316419079225705366091438784537267479290230551758565353787364337416253299505938934232478873198154173064971667581106917750982425945946220216812425627276883370320800958838502429513081616875304572366556927576981869172368396975765838058489928403740419525995732265483152040665598548805430532948172529805675170669962955375938805552932312680950661260553071175641990429111166742236604958164984717063430193467056278288267751838854892874973663185425010490171484356765485627726445745159820003872130043185654235944050218947945701301309719045944795814700879183594156072791441131650082918234249133511538054012666577406358336401728412370171939029491700049479439352327688860924559823897580151995753446542243301456963441864299649326622132640330757975064185136462379114442077658949128735853456562899335508053702132833837676021738099143809754180977858509692799829842688769663957497243971653027313970707190201490188714795565414926159599085186701897755563292911161429060918762319344835715942146009318145569205075418089554629523418641359264526062950906761701557538150227589432663157984964475859060474352320333842293483885361096450708441957680112352025574655766503403262893287428024140302202454461356615597153117145114139783468217739540317216748076866920023774802018047861455654300515825640565223258357090025343153693503351069264144920951084980156746891826853696244398735746437050026116151690876101286639545649296388317419268134401855151936699739979877207774827515456704098121092775355203035502132162726533906533037492350202066122708709143374186290405722678268303013817530404816629859062421359586851342970836358870016073223029055301795125702591923578551234153006729923427066833203785469705728104007231053211596876748211396927183382841278224809663955043398239682527702787997472666775401627636893279995743380080186691117532241285624144422037285495797500670897981481472831946790066381883038991519289788359786612101195219005868805021141029219457960505113005925219751293798751853365698985999526459804997527437798581991414610334536813807172563550248448755460681992005943680054917425951434948141476712425258584824608623435999249133274670274661242993068494673678724017116347956839619640148726072657582342916215948910398134637817384071008038792855802602492534137985428673640908161455966186223937526679750690091467356315097757628348986161437673920091181320072910994572356331277886534490488003085447633590216859422832309310650445213983317033421848206480718733000218729134862387487829758629865860634946254299055680765618415490513845400417107766494056197507568794513609887482951509880659405590235718858192031137952562529132722340155973090803595649773906393226054844770147002987286168083918396209644586537095994958613447715674217073157766569366448325081714128545342226868248984593253126197190296594605381134088949244528620076550075160679115881135953544083902526071365114170022449619831104264586212818459501087915398236749437429283992299627769757725759622419926433043217004212982098210509458911795653779318815150554893766657369232688763148610040006929118660207573311102509446106767556471177345776670435857831758630175698647354221360506477832670290364280325207923850001808759284820603963792637959148044882484112837046948249203203068851092893632040722075095699928792632050147914442517779963401451050145842559999309705615410290167270191624690554853308388639138694950188519949248705771516290234822221178526381884188984666712998819248922134806926738400172906200920078363888333032403243579410700886111023536371470902276759929514960244841854213494047670973851898131323318361538870327869444223337565574405121332198317692477828055059280826343758375759545090901243862434756106983233922094498821827854030156126906535287379203205913016975249228466343157416377724042552093526815743609868076301494915250572960814815157077459921922695090930701151430221767510897869667574079660020607751658896681669064719014039080212437947021193602311854988452831576652485087996835165130130750703344457331868413846145538958626936532659674933666240439136567219293707127689740875483074662592529527085657329544684536957717743270796963091223253290221194397802758070192943912158644960309717134832046640157245736105971790864490738687985461797183260744984276448682881835122939646762933047872604683661603010641775793644522070194289403210819584164587266483274648443999870307977454786613879974249682970821395346737793077283146632931620199577214728749669395770478872486722115852911825126845483888975145290277112703260902066846580935325890810862455987606969179286154079870274697044129425515303356743692422917686597791167684662590178503235691907658791041931941000866981027596318194921442180915792199324496321269340731786130249093111505481383320044997853628094478825050052268035732556335384940097923769715085241353017829248555399199956169765278349943603263929659562039786224499542338612344534354086399593057432226075636225016412828497325444908623956883937580230836814831126185512841637878071558452731775465454773678752038058318300182652248007002045958992003301502490702534565673000077903847117638464952428618107914251219993228793293568086265205521361530586011529676867631320925095710434410638185020755866538023649029610271730724165035135291749803571924673708478388582597484123545677328786301104661238271222786441829529950959025243653596528969229389352261002179373246448827193488038039140332305178011157222356981522426755350615134737917436113622073232240044964080663025848800703906499214867216474289182392916841209209515130460308502993435233413874967025316611529689896094515465113162039464874261121462756415915571113842132129213071013187961268288960129127907769921533603104903414781855564573782722282183097416218807534136650886090336906858515011389038618905216265032357676408350810867725586003236871828659160910264505576182069118753701920794642280446791987073476260760075863440850479876569675514388126022547788327001306182948938829653951236575761295295698543722543117409778813787864094102520540434186948162639127609469052387762924400661557856597985405524974898129609510259514080046426896286792655367278973138258764751999314421606434359883920102366603660709642075445839768782055527145471492015797656261819559590702205974384528046178516705192452397738734208884418822475516932286921896599245479811882777885307992708143780523697889425197452314048745998944636830020409662107920885727543973929114932303279137321837543209943267561399735742769616600902411133211327820778625216210012632509648159026955307575582134615699027709681661452753646917936405278260118921152653491353461924548748687470491734259451273274851132761897298258167573158332082975420658031358378928885117648857752837529475375211782660632678015311432052271892155296495292638431882642956019890680112458844072337431717465328545060765675903876957953258156376882213893521881193438313163140603029320748657585925667754280054869885779399597176788019424022952929344687515091904156606777894914472798143049749444955365054770093192354601210497416010176820477634897877780074621337184311037362686544242386323536469397690590653418266650670685289575395653485336772114629053817875254343957266820622220538830628406190159821000609934265015845714536609169250967384446717911061918379252930956019701786076322332179646498287530531978554117680052237611216653140447163421685016433519155569054791029263871304516963597633406753465513320128287660900596133030349221683064644422339003038418906287696148452887417205639101344025150943869247953523775599965421476819365804687800378318238302463722527961709664003422523040826600487018594014067959387802175485042419046267645772603074633307962769718800968294017168813263348403938981933680390815700139295734917095322379245572258536201660705179889121482255076534168300906454528596058173986170451940787920313917944511244281929430092748265054018539029185917196019554819525595029000895726741259582867863289845706810319005577134850843110404324248282210212505160390470534281703869393976185395444663363382928401046954555336587088215459377913064500730567036886026775766062769786167968612233411909999408848633784117745860601632536425223124959014470841554088025940263871303180665530869198081924214088750756463379659605575239773322926567632381313883581192634964162584488589225797556534277701431641091389489246231080048072158937004713226584467251571780584222956460628767777144127263720066001528979339222078769266540503123005236257503199940207500718997713234310779695954470141489115829390074719778072990326404773917843386635287333321695978784093558503104459908874975122096231375436463139919236904059079174254001819216614910565478094644415242125662389105818768547087863693354455543584838738513611407639268820903310476577069561795409125561518063227231363749392843932528765128387585352697037191248120565631369687989126969329927452363242373038294167253356989965878719204247881698877211936981792077354746511873636350772400543972677096457800479594372529856852151422193398505559004681108482611930773091600839508881980188836391039862494379796170792216339359284380749599373641755788002300568806363926043851083692798798988064332542404425514191910862636226064369109054571621104645838578297849118009649354645532309173273986673595550642876970474015449391078252369988116228719755789847456501834669184057589758321832687262909038372703456381121393073402598602942118947938761322441609686654998408792898936315427693492574980200044789759543086634906598433092994467539508782559108820856844561518710613691199602450267317741346462784712480243258098721141802365601316802621661741144347364861258811459366719467048188211084368297629218272994300715531533252358126779730187631702847448386723757279054992126520071697778514778350800124320247465406490042718143162570112397341629974946298499156122175457145338290293547842899817534780586247132292775716889118914896989386102182360264806067767165211134199221797258727869826259717103140466215648389688843760395244062623809319031889860247148104691912447688148347204949893952402391049713061162146178653446154285058816480363856597695167928545245875927845344430858231563346040376382175923046806855350881737201739867167714741233946009863470415743672245660014032134427449560931574223852147077509033101585457939207128885723303656223740522156288857515679496564072405070220515841932404995279147180043387253524339750512475449915733436163124990450940956443583551749076031829201349338870368063438902475985084501014007874558178026362425523046915202382251317905403510209329407632580670796674045613831304950692642453401799061901716388018772908337482311564349340894043241960043407608886402540099618155852436657124711000102610870322174893466838055246864920161913460649428446080097595545669313776018528664288449627738443941496307039043476467671424392027954377339057471762968431907269660090590080540672191987988615418751642168915595486318074479519389055466706572554307176508060284703694190103809159443479692294754917192253976956421941149676253356003629781687970011012347472298849916122272926099799035594723790098576684802109740229417738022422334815354603960221240640221157262539652364287770801325996541020219785757015206002050774091058259631328482349973495104346010312603309082013720580002776268812571657034749265752160367419475505146878698788159932104255618622100015917681559635957244323617713760778346761170139901621320971847760770249876577304039705506918062100151513598030807923347768724625765758683755069679263870866583521656151053178476900337931473035856360082599029607411576789192413582001087635163658866667296264045639839779345916144060227321767590312554381858918388573942569328085937655514863090823342105582855408853084444329757692397291396462980248307706316044109968208762074839579076270553390293930443965497666175803207382097679872629303086055023996608914767652160470483558286035613615147963370272787053818377262581992066159124573186709199003479842965242274024791576041734703528517874942992011325970355579331604876685491944415512785943426339622088141383603491870660257568586334155460348458340703547158007113948931790803575294499265445266996728714675081122466396224394662797533150200375726633758710677089460736083691831536520675936229729291218309371618860607351384449000871976960939601750245203872264099828225785739952714690561591399421294241335703601166655322546422228163268948457495734050028939667440244311160780284442251449973259031954916054062872429003885759812402153701981342168607342332186440071782795253503470308275407526966440409222110223286084003435875734010656356537099849727766304855205423833265067838165244568258167581799436793578379798295436287959865803255696741810176759239806828087309313817127189378488756117373769877512333746270104547071068729091613743461240453551956618608131821057599606765012585099540972619448596204094758056456939204050871127055673681010203004146742973909339751713876475354521892575874142103235619219709325902479011996527431820105045267973961194791379334000995834544363954291549393313288455985364011183977740859243550199279120876600046503964927504421278070689208705363418893074547459435926074208445202430539092337296529944367300968329289650149550849978149184917382648265687724820332914373516374689534612056746782782739841820758486245918784917654895489215630737200960136090585420456124560294645311950404947066161599752740453212800643380016269872058907033559204087921115886759241967533321510424792312050283890944332072735361852898475465774041073837486122202838271337706744562458921971850640802611469114894347398772342315011599166959117144348100560376756759674029556802107084962059638220441960996913424760655853730586449361901430645397347629787087181637916741763007969118486438743842034613685523864408795234264981742352933076786564023161776727649769839516804632235989544659381209293781738435303669552748591000481493553163626158627383334982926698261054675242849549954692552772799140487904507845347342748665780285895474817288531661060591356581579123669468335081721420511518303564668177533571311144963492456671516384827215411601380658251935008008657788792167734217068755769156077361383986025527075617220577953683431360592977640881743293818799420604916364079721392803465378306797412547558611838138381157214361718115463414961633115967284179878536068000920690694584009970403322711488568448684733652100736775473338903006430946831174953144442163867938416884935981459281912318882511573148722821952790198038091151847836083297782102331163717604384694313281421428689119274979655502664546878955390455080969034143847164364009252232656466044330592262562042057219019641553648203853277275838309584289632734246669717779376712228184718469002295145926326891266112646820023381413109040677774849734439611023553285785929316410424778820989399300880775625595905255293126350198186597556534366661180424716322814607608656437715526424834669177181778755050975674710230980495124155667186168788732946812792671885539967495153385321728719744749787404315928079785039448906596273823480674455099860895028959893913832131460888534245654896824447827563112750030471983175525024957902709016157584798136666962858112516146857547093902355351749660480870018196944682630308382089814800459714021124986809723784034060854364744790812400468613151604420461544601564442130366934393561585951807598399534804835474972505593977117734914287893567774191317980442497121420722154427378213576556111405289487577046735376301213129974391896340078746886687943961920001506008912744333755122119818496232793810603226653571939744023076092906153110169973921058655301577418165792544966822092742084483684723206662938765553740224699382251398990267615802572661073979698071069788365953463318500571665642727860687361658995654569797091143660940761632519949167832690311047891162241605247873323987003927841307687156537967746450118178505766499156555612419821026090914674774295299287267853409685619803864647574574735420827486217464329394613889958007638330337746973919372128454259252221985677468842349028744199599934885649684337158096968478335372813399947567451157890336841346895061418305258481969299002550451308369302875894490644241049440432177452616497064739418944832693872578603798314350286179910859109422412535781764432323408870298547341884416250978482681372776438531488087871297814557380366735381923142217944531579639630588731456047264666278230750736302189948729777891932674394040747434858344025556979253309091187659545148421220598629569700518538462909068420599745877321494075874544554241904142076757661240337901366802122165133253395428359378510402426362801937672833060552296529883231406856259606731160897110890866860924320575389046343043694609951816048300258369604882194475382696054826340196144628556696808465125262822114364111852741933869547317397102275760334978622389241757509308395313465111301804545619927817984386170519478866594725403392942251713661955937136318758548098970156044115223123532395235322622646104635536893434604817853581073095902255142959034920911284163450002910191499257421975961867485768869067156089683012823588376260974004448741453073525348886943470487922615476349555926886931742287186052103880367179996479243861418018427655735785154856985417318248443700416327077681036000242426591094578840251060975468120324761009018499897774467666378212613695304395168144949888064935044866814143572597190119759728549192104299974961587120790589200190091731454860294751403112657597174762745339838227718642572593278111780073959935203948032166264189244015131740057369599173091247632022904884269669008991984954269234610074484970532815295275623625265812590034725346460826843702415772709042892400100472082974958924928769651869383184434977573356210482526658989446777617812769145048536895210378736297976856935137066348631163482811429491338952128169318252660578895756774353213794816536075706477059175163243797657519504798663171011749601213413334998677037344203712888535192513005058677973274699869155162478038727264350815588087724409950910077918394786605215927661101075165220368688797300521296866979009627166168387279254926621701827122755183320123102292606115521633266296021617213162293334871876827642572110273906352178715425908679081598746996807709100723958886594832686126046353326927690067692294798264842319923466692502346632541243577555395158862600607725727526403004550130942996708413806393184310727913336872741412717860245546395606153651433519455648518890611948452025027314739841924616630587372846610385773181388057969463985602218925256057124256008996147124111091275669297481386152375224028578354392775199722234756647890122879495477918289047609520862874081737616589151733562179866764801592946697653765606249287212189951685182949574755110081396076733155666463646226511909127977782332069290142565044284737666610730442994434948826084257825407417726901311019657640867715216246549671764631266529091070559641269405689690792683193466296192662651669648886314241692478275649631442673084607838800255798837052107332089396685987551752286494081703781035064116933019452619658015102333468386713233332572542962895095122666288301546241204094224151779432544019355066748857005798196561404446665194796394505547704206655883127220526285843844754362637510322712378559205207932401781867213914696938456366052582178946411139277290552597173846484364040626341143128164666186879001787626284954868038043376816657248420256084876943818925922780211519522503222771915088639473020651344912743820195883105787593358341476487019029538171287333667932606702835966225915735932147847494898489298671256942527808082681040066430451942370050578995402037468238071437319299249964812993689371439655088264037856512487702904281685139628607412909256622356650966070610176711225904990000412709841106527095768551826222600284048860325095131410321746155411387727161683310227070647079690259403337607408884007696207674306050428463903323472452077698063945814825388657638525387979990507802832638778645787523480190334348925058958006487763960983181135352433507979698121808043827864834417462105722424366198153474650544402585908519095766240803355921092845417507230808134040854874636882523296658466066394431354186206732719368733508531907666214156855109898364889607535646413930598832894909279522569842565864099278649627797598775173551504752967356069714498253363620751841922317871150246527735229632534887892798647688038265508282962921608281988495018168106376001984351477511598468690789648823213141191209792632955653852075325252916063056709095947239478779752976838590527798637826703811957390252636584659691143660004108626739771645544685153079881290438266147269745718919990530677423735167363449308131671752563526020559811040630650160699159659890135749022375051233449756855072351363565651100642897895775707421754838851679623736207785679897379985286822054153808442828650989157890916068712898855033670358727244221460603070762891520326268737080197347548713372416474225705306960880437218516026556271767581628153430551394891769872000901701296218769421609329298405495249180929495372897010005675310758351781117690469359504414434906663825886047270100215065406767135881609867157269928000904909662832741906176824134721067224263057706834677348444187122839781103166715832248064173612459131875574950626395022146243322639994713644444074510310824437699397361279025277628444111852418929683296030913055639972857300152466072420993900745265354261280954444525801144455583435107162538939699946482157124245656696184608256799047089605103478085289596066391151206812093946407537330169145173665480812312475615440586684372294976493149809207181065772564754819264736930134732024522673143360569388488574806768397046276329771065704369574580840911198242659235146780239992577702696747036580267958710114650552931581565219555763635123522981101566335601783176167179560711016977317829678542626191689194300191723294578343775709159174519294247063238640364071450569624140874823429876070626902814517372960915910942777713611660285851472772972425567627970050933963508834874622947599756422992901049417361387725129174649554536191303981509793916448191916456000329845606825029750835421436582658517852283617542130320944200124318587861941124486500160410142006422903689654554657587557842870686858837356787029906076127397463156546165916339499786592929519844144339379235554138482981494261614709886337205837133033928252466985856843460175020675817256030930426441373098592709832414315493096274254784227091592690618543784641832584183639959449285037788411960237035588373681956798278229055171060894932942626659162190840318984737256085825862714254511971436230974474416646365364897463282803254788758990870949980266029564470944231156402181689156008302576746776209956946367589219454069527076004051799802805211548534729341960767739388097610757468784343101375938427269753226026893883467440887268796132976409328363508058757036204890339771767761036037841006638777658697284266396911793160176591406338131327133968832542760833913599105069634409373033577570555095281016136489814290888073877085580348780052883878677628757581065022812816819206322563390994617906966047019254297617703782377340740407662981256274127155704184411014082755850071583245803539742230520801868950046510938496929502262307607436994159766650097709013298167047322383381244287292894547005100716112313045605795330244164685087812006350669925213542820055994709541980720039941778395453096433367710385868850511747587121085656011723753498721696503960831680126271851606830604751024906233610282310074565188118922078805405809080849394020995664929424495906962071851069289157418653127270080990167036417813436697653121166269379199166675828442260175709702370544562103055591601278654809747286264953556110215515706235455211716774736616969558709706828286982656179400609384918412995547738954093635424702139432799367541344901655121652101839070432047320526815657148568673857601717698795941776817453415059313295774120275039702779639167733646746065592742808660981439182617073162504703852130901305908604495106661719200636537099231784002108356418895595726780434833682722460804533640954597025270320293569265918204034421060856066993711264095185494669992004527664651091424209968955908907572496606458506958122324148172363322903728343452474747594292951912524046877720238081767055432668381783177135477641147251715487383593532637450248474676754559411063674769384194774771219412485800285676896986932635176091858517242610668272323215193766134789798766261819216866512485039696140798532461328903504228629435552575584093365184991664965939731249040561871574422049985827776663868981619287036287614868923229236961650904294844634218114267402533669943431972594747886792090573637762906455935374204965113143756706189211834167672384106843859786040477162538143058738765430494314699383957450160955059007900434184580646125650833372626139000447691531153885177839711771999432842394141922191306753440047415283497613740312619780880833511096380410363266451306615764428349967163690887074995198737468402867026020590301210191141440601301246664367902351866794963476159364587478888585981804281452156412444898738178742448020635141552165724276521966700320158600125068164181839409239698395905393820328495938345314561075848593307704315265553629930435745732857739386390925632629498956299604805176640952505787850795442954042816552238926737351641931884160871303565769940832305246154492519960777782723755588329104624301022189834376803046950618579564141618872567975494159058602831525476129533885574003429382731791035972381685917483695788346648133322834678636968638913945836801332351211587472405737684381346259857963756895353618597353377361721230924066094497054813286231112654741112616406871015031557573917277548699091179261696456449189278490563650583274778533052895777443991328291637250745017400041584013356818903070763436725138639256973936019738692849289172046724435494761112443224692775905989175639651379184738798496324947482584753817145557495805746805599813421845188589516261563253553015047561086948279606927041941765834690772051821973493619488878125140607186711844629788375319030558480188131624042774152338898847827356557084620710263917638558378617744601289006668995623368144613143794033055984386159940517933632125354610815524632489103519030900632298100479577901296702492972080658370164517648776076656059431434619746708003435575773468958703067734797266930704992945666243085789185106397469082601489577833016595230314011129236987653827349884178703638377190276910750138785545384138252810246886174108566863728216250893427289204737983120423707689620952255138047456716007742704563361121989659212618376924164522239232080463968150417638113617698840969452794215373303884629563599244517050563555237342290403841109432009235162635241119248097127190558292021917478990920169140711111413189582549730449461362396064510714300128484717334577995581746376546999996047602209651730279272568442616583375552203176391022392125388692356379367938345033466100175480161114296324457544769762147766596800627678417860187496690751256011493817460061957886558775194162044810069045845892190646974805958148387156287943792219190310964667828718251211942735080879635642822421875285849956443903434717613489288075736175300341253337430590528685783746310766822715485457070435103988778639104252754773096059576167401551938389941842066744538045591113537591199405147916512233575978099375077974008938866176941932910637078676744797996743764325366986306387936852434422331835879459931630825542498948996145975484160875921095489849969880826904049613526712338385291984569735939927528605502420494731377488741862725018534076231057939822828120941751711695777721360305989141266883380616781358506106674233176359017119795502209831215397547457132019311698718579901984961848702617468669582752460186695478310986650146386210569503871011719010642983761315531231396533786805098672130683892847349274012206492374864622840253877538210367770139438235204761077601760977608368387731269677298048295884506576640244324033270599933737109985232268195874402563392642786873781403827806043727256884878189212869956001528174462835473436548277451887890573340853545894310879012176846122939466727794786786753955731262982261038757671402070929773766568442064716556660430513248223079692515989765655312764603509003827860978499742251021477548777513196106664148816540916043622831538638422321885711985499024178370180014889806283607516350065382551567853834286684008004466645372869106169082989983006671452202313160526100712362866156084785033614916753630128054189731710896528809786276406626047639088117869619307102748182293443106877762332969814278410748166039378404773513206328452287152885534980630144508623944916957797726277890077246296342065510257337033310530655994615078709380363438216520021124843770683140583223554808638062011046968284820260378584969923967501697525309989729602496456097193411207886982138918180097107986137033664379264364793927124051599260910491139195844463233010767924584029738768719320950927859125046721479705855100642641688573016436825654475134781465579804093930714203612385590111165708296075522031168489356771556486075993270648960001711989395658701611817598727575480563381228459066989034799026477562200547916447235509935923345502802667804704949690361116913542979945098653468855735829048093625210084437163175412004545815464576068547634968609115996251146064269467902102790262074278379727538161441032578429917879730797323088085415446437057878538755339914352754713176270847978500657619547901455084580604093607556236297242633742107141005404400486481453922452572124143178740226664338293657603831270367649693405867999363207401000010047018355267527342757109577390123745282969949680938797094520569111413059845574266278140369475080907947831443393949942357055350554914823862829939145511617863396061551609912668631143238823049073028724259323300659572256686372069449824684924103095812411754673194475861485001822262367017694483766039270437516163056383585179784912195664668812617138192001150719128876739783980673600560251501875572726420648264566181201640519428621822175900369388837769229248408761529233112210635529590949241620875240629981818797648812536607329310417544192636141837074383200193043662270915458747946209464710574796283471122686936881165346058152029062295203285877465886348535967540168855656800685825806189997729197609632389266215861472829219379221694512487384445758330538754421788635703131121153904277435726799553596837863826849234814388391218878069886470850671519052085075750560271564663834567069417027303142130436466868850656095557522156439682509243181173639676903169689909691835659925807644342660670382586779808852642769504321954448859506030514581974920215793254511593550346381396072008807048273171352039834762978279703264719227482349363752793028079588200639698807192562032735722774717538891801708440338220404000064150219231146646609773603064715424689278867148175535880665282248405765321112384885613334652649808294552926238694077175733719617767575245237724561136532974180358443219783163700872635263921894895842334020415622924086945208256742706844180075530813154096132623210387774625211040756233065898773900034073320616034265255078583594038546577984457237761201330945843629977958704624625404436170859635524688697276780412541863651678676902790957762177184887280901479197344738809510812186754930546482276337554911450605834828476440310782268343708396093648418705390571460463481902045798201361296181575063648712205378853558918519464936815557542963960513829961800518123516237185073928922120968230785010179046067368488747610857008122771443632485076931855112843432292053395967165436651577930333631822436633476023646617668317738087822868317761222504240063670467561157215420895966315420417251651432083820273350020990044220078590447023421693556602537330866135521864034293384408446159241310486619092952719183816983631330708867804234668576034283845288808213054725818458262622485795467173771015543586994042432759575516785087863572981353794329247959366311081034349260343007606375307095521520986432187189262947911211856276663379595528954364050754346467378951295851266656851562264464128183248915942217196922691996567427307984577641816952498133590186500440014601376576870640524978306751617594353456543992643094905839929051323852919818626807310139203914857696906730612268096151502344839198904971796360894917937402658376795179919584910298403463779419714643511292804517324078960591579839168572985662589131763194415556297765321859389334302829983967603535767681687483568089253079502762392007282226483711550736503842487082625129036505992200811593188810441373560951216484356941803849526307800926602746250203908268346786651503120170122788424470498268040443361991522646820502619860842589959889717864518725607765250298417390085398737750927999884159557188204347162760671130040798992156854730389832565102875497754292673773886379001999903356913712307459462727865055374845628582267208512017404979334423951692663840304220931293511156969032232022683348651743244889930057613588009927602044793660948560956579243559941183043471818666352554513177318475243861558915342782553924450814333671676724008811987175026469874216252410180732180899692936173407038141669096981112590139811617034446621699425382182183464757510084965443120073046367991604717030292766708358754027410404736116878755328885476691701173605151467194586851322135558962089080679115721912374115058449074236834166618616200579097739591700270213171610955173022812068404089617167563975658573832509763618738729906697771773132749955031892086870590008929216189724342886911826118802909653839279292343457714240806744439219732864448803463627166916158037953777794771843083477591830240607251881116345936712560981578907394781838329606975856053895368515055287321254411643843676741731047602694308838727777066097859970342586743857239968169145551714327085993606896996497083305853637120819702410137341327429510576534478110442017334488797117364706418864399981059928480059055607096524050891542130609999978456762087079019802549453558556916031788193134455193755822868704168330970591093149190234224752339112471545503178214085054194337125713736270307268743704318534115559030066601379257440664968679872899131732438274929750610005238253275055654144030662372032808079410870771850139927946128432328556547781112232944586177716201256220264419515336996460513660940761364396125050122594908565226386453429271949677971236847508439077683329031085619591010141635477925171399065088183281699489943388671638587051725401167081501190798408947766731927183270650516434473464511445252210060919340684572720529397122445519051116830021026870177224554061198269902516741727745935167528024924859413690330337970627696621757284825283711602959332475548864405768046034314494372705947135130975234844219446482376397599733889979393016437328299780225916396374220353858953300173609780982365649162128972003297126321063182242771535748429874672463564127994836122453865996584359120615461911611670273057287271180536604914095111806321039340809874746820273420080176692284355342717627095110950863519081486890821196238729753878132782741636712123373524835560921016601247528489596932457945459445529555818785636376688235383759889550228592668069052381133931570467214862392086398064700906431502581186184640063027837216585264876038414490146475399048288860684684732126173459055628084614849618229930684757035189960330693309824182974565388594456274984908972727928498156029536251950697427029924344073306683851911345941656047959763212434790570191894246291425786921507688160854193754482186860383006002430987496052094999278706661749917820366043246547864019164800261574628079817921667492801967095678381544067235874582432523188645867853202747943296307775495642216898625363716791441083872817858123815247927299521689525372573238788576234832301804451825636223610119333775028364573902424451851151118830513496266374557288268111586294753050503201444639972643754058201383383036171714944327005137312640708554302799720119570400771624680308670907484637747511235371362959524900551562158261577868846668234606409836098111433410367264491924053989528439870716536727251091686619905909243848760163645068348067326235846994359124558824136260560785937082171044265809294983962734507434199643471087094923595662412259153764796667527227415700016309726164335431454564729911609180560204230567577680212650659148609119777658300874855151963039875007755856396721894250137733198716470229666826126156460067261026161793922872490578363936389691792694784633145970440791782059382266289927407421068042795253923153415756595452543025256150820712950893726779030168454586365617995507731365237471988790927985986741845204665686718019093849651120889396097642719289856865706861609093006002876839058286800281239294954441020858037085821048227559458936617023341413623823116561114511492240500736619145800288844480860060194996384256337763477951930168840322292715531612809148916681724908907031954000208646007262395888592829742009456927567613025131042183539733501242359435589369692341497512313687907294220298022018998977318595340565375002483511790277780334833925648759917936493418386383311793212649931082395116154704157269500068289239971414831773358677322282584504763682552719858746697533775448789925681128946180081999985686998696625633819477797509582474533729548839770129599257341978429105926753939814910907399631304606879016828029248667434115434641860696007321289839000381563593107481485850839614579828197808826160935308344067599234114521330112375690612412582302772808759165648140946527822713416532569778163176505985609582751859591606813346924799533183933721876239068548299084220614444059398799946421965120367685309675909863030985830300821682388169051295636049407412199591407456905352351323229412668118508704127319358874734371891260388096433373970243945630636610105611218911390004563475256489251038485983510047724397444219317614535711676390627500473788313485176278882263903466451881888971154345927091235200190019666836179318259584152684816284357358203173921674262783045974420884429026530494582678016205721658784639015829787889832165943245008724225114415443943256571601160280442547123165460428825938598742128723750329877151471939500684739444105412426224786553018024722197799080597200535966079690264040393944248992949220624433352323969690802288612314833537754471458397426860036729130082481377066545962355390911704295320863034286764236787983308612223286277692777290096875742631617827959080147265074522979234893705530307932374514558207917773839205753529913333376098124170102148814505482488811676930833680390799082119529205621269082038560471710978434695287408616278300500012789261680199534947135245677998830901249374694892816383620000080728864283271486138760889998437014549373032303412333642742877376252895955575940383853021657623825477256696260544951935639704581503436316509074841325851172096541618614545303177291887259580601413645661774995656054363617917360335094853131046552062305618693001303045254850137064577876268965248032913015580027889151392599864687517565189325672650835135000597361967920169204675460849089029222215348238146190787567943287366783293828283594447541015368814679656300653369060563823089421333970163040924880277404979079433383702288634432164810007311238790418514455695387965461596231188680970360996657558533236432666607636830725407499656687971632474670076464200034775824189242879355593409648625897264432328409927957176406740006912330766602427986868762828239012497295147309284166340827101060588671254511087820952133610398217313683589144282151832586272455757476970274188721498321008755394599098696894534353367979106963307658398236371652478039424890857531574112552350938540743656871426214256847080011458762443895877065415865370774128852524829659000267975767718713755094795010908772135754525885889459602896565991543700030995758221802022208529404169875332739701942290959058647656134159256302326363264129930101939557002384017494554589722066824810758533903351323443450747329754445658528608173040141363308659409610143691847640480352498611575347967217893637602940206319462996445834925259657840272944662347638302902402893531554378315774274233419998989524201276242868956734434164768089526976170530959092184431133780787711874876157466722391700519776142522122124575457960855477140824900089164691118866670416953944377523333032263991280867848499360961017754732991003045478142126162193983467574675147127543184518007544795664817644057913079451570450332243560494328605349129231164379677017656478360322653987478933391144441884366206487692968200605809703698353934953978131815004035202022572371895829770057330121654361645986822844686564445853651145502052498422401406319291813706954018694870404545618029210500207599144974455586899782984085195609150703487582035785435291615869286094271133238012634687933751427993418629958721691709422712143892168409835011127839682160365325648314453263789817705750711048677272569703270942033199442479195728552635779448996633643384591844247309674608352225048454283561595519946259866532335590343153233876173743505581677751135812080157800447519922513520374065374347430602837653077999858699059311596185232734254698848965613873244197950558815126917121893952706136982857704030898667219643676312812759503539494604284715208332413039543261380324578399507625617500074189497961511668989082595299573920997475917627461928993684898673910725706579847803888550983086340003491737939838309550796197160914473642797815238065813303615318750698952042000618181313396972585614225288500816192920999065114990538284533737735241766686937562886252187265780628158892215875402148440312083443954996759710146653634614823469453299499728317910379633098464607896946208866627926395622134670641292069192619546513340715839290724286612841023528984666326527287498447221116878173370264425265154729386903079505256622439336903435604761686357464301663921062246331752742290988007731326401437542145131339484252065796026254497905244955955937906133984391591513195167131388107924706704246637875777790727325852737092942237399555088805092072515007487387544907398615985225529038820754593711069390887164979354427469843741769093853643169565295327186476561338600080500683656325519455095466736756596750931440644049057583412595834039031569871946048924931042913086872611703909093610502890884029041530078998654550596038933519883989472376757630164254791428377472389576031368988281629973630554405604386546555903554255457400080549390831362878382150265502549777122354386798934314744588433015332468417993471496807254398206982353410385257468279857964918597444581514267606590639334482012723038810240318013848972526845224884254043242977320023187122949348165568470560083678178425835635323953499382442661691345473347398780891793848123171836783398732435493777447178485675150061321441105834321007081988919084712561461897689469761648897188189291775876808829246896515526293249366951291998337805859161667437206119776220439362966933128793804459602439650862942030341143736001236785659085565859539744652692576521055284709701103403474028689274714547531761183676444565022373406899995914483352084023107319121399437612761209960348930006798686346352976230218998081855097214846291592563260507221232768801456252693629824681507037148138380399214187802362788307037860685048920373463991028136141869991567893812104127673698768538908146307286585898462599218922116901606487440922972165764566729667546287584931359250655579984722266202445488822095152635543682924702005648256579843446114424920104514907468347470420453119054598904525170932682403233991128183762867169426876071663990673656230178751859925405232641466197738433073321986887648232296955373338957374251416719748598890233489846182232316860460833246601864053138771404674084991266266360726132936050416411641455852363648164138670584519043756932632156471473815683411249849564902942769744209084697875077740111062514803910772202503174609118013951930898253757698664271232088068531727210743818075761116459510673295334495932226178625210717968922864099032851375644490807880674309805254948915590691644469215958881546371983851527165088620338968202993878931046678967741586002530096856389181781181072639406189331353368602560044896611659514022251488143058979890471176282912633372631205116839666803749791209783006805687891337830592564610196920454719358031334188213139655207867805893743213523115877660362448076560915140073146494367331282082000712617617692889069544076185087385449139067289810989144326148280366814480349844275639855864783240326266770584879915670398980666629958945984392560013725791256074003693904824551990171110131136571842130128197715961529856162474611494033655893666357848205947564451317661751667647388935506489701337148149871838596758077940100865789392311156485472872330750681799427055219231175921062758871538011391785982126156163309595545829327172428755400328684303715127356818276789059668364641035359882296287558904315505639817498258014311531983764815365428612203932885357705918438988078939776854222179099347346058354873469457118507066683424555313539951272924092087988698174891519413404714209860072691407204008363454439067320840637233115986238890935814665703989449867146821633605174862451981453133641220927863545220041220015062315308370003238170556130070833574684198261798681722483893609849694783389351244489048699882013266436131026075616401108382988114986317575482140907492900817637077352962584217987919018719195635840090410763849396452464764293158521956774243467633950389848233043148493348124406592510576871236539592453628203088702645744935581851271117238517493322377383892149009376573563212500940458975963029123331337564469761694733338380874737544543210503647477738198570325851631665087176086114023426319911810121347623988751326654120719719480033004813821353118825821950399115658267828589002736327484717836595564120276233250337551943241820147243296937326301997729399944192714354352740931627390166597160779516056383676759088336880286142767299286251547633091185999963937127628983024465166389954312970093132637825380271669644522088299910713116408299071993210859001533947561716889347313072148268416861744746456084669936440099764168010310755406527638432179149805218410240789278671800680475745244402421299969992193251272839610833689274732340690872440557574034584065966888655446188809345235826541921376781099403999996350389578742123949723327793856899056830597112961573746907006064058224847245300907345674485350149144098585733729707497074155211125051337391089720891722961577208127890104850458942144088710970863690214020461783980971510104807995760443794133711372961253047072947282273668286937682622968583719665491769718048978141009830666996698928064680471730006702488898642944845558327023932165895570162158319516360081220543781736444074500250804265787964249959677776958074910226820398829866538701258931337403941836046006771790483582815725912726863527374719069468098463707363117822910679083369386090238330729202742283859178074155709307593604135101050877991268870768069513088848806314810500463225955516163196045614274877133682864108583095323003875962042421390237485952794154789860922901464361642511675822937998058475678461261031538469766113392684431775529962712522137474349621707767459570581803226963010603107717029598029055367134762903270257098130702646721504343761721566158089414068719234493924148310982002171343794171022096359226216216376683931410346054714635137376770364564897363291837341438831619137492565044268628514728876193813214637103926518318000259227765573827458700397359749888585169457382931826845925342883612932478007317255308666537504454422250329011208086078559470099015642298400231934335802400803531846317424571175963661127351869670201473239197763525981366488397871710349330253762366797110163885223543976675450569227898414076199913864636435327818199373894853182594811548581015563939393745815998837969031989612579758617690722841257017760283695306894040762417213496511905625752994497746127328394280926900105481082659292506857025410797859196326278519652546046640130923458305281313165380059517689025312567381750675224726352003041724082686780509851217779916624409858875633016797909131049845026154951956096151880509476777406082079959885017044824768749688340226596159759878091225805800211247248883821552477016796682440140831201891906497392501264973738038550445633845521838380154253250284334783948301980273529354353725562780129874956912899793780181696475803194437429705366128819523290261920741733142725607723455040874311292484078599337183742715696841145156308610724346602023062856416530043481963395892965730415615097917708927472359798458442426993368720033073669522809875626926654403529611363292522674124632007314055279908522818503348356945722642248684865966429710131373220711379529269905924622170689936630489488388375690357519307363838133424870288059759067314451702520044282046711105092060307587153615998844332758872487775314306513027425169501775760509291893328644034838417739771400067146817070788310397089291858953653660243502519099553167731693359967248058092376503492903977488664690043124907837350235402599578440735793477595355072382114625001405268341773706616084928594371507294628634724576217790856803085233171003323098394124335574502017336584949451846670671752547321275257549161722554401342049842707879128871298309594511563481615486614170937703667664082469401102591613245151624568568998151860185086650131239987822290450253370615860791072968037973527383775349243296217229871757008975373676905803048549414247774463095669825512822622576823721917748852701300994686525076706152437567130395667871061636027849787810307472454107605983338672234180304938161088528023849120121905435073537015769505644286354506354773148447421396052075813252745324564834739678701291974372141135348074545158032436087190760043378636358919758518241889763964988753490067481312456647525833519022416434832915781080170946118602752909678488604303267329177505596142036989208972521355070776484037291186092900563509736762301370623772761508211931755227057716731881048017303022867634732946639409628995040352197302081989165256137050120538121304711961162057913849233743239110011377332148190963308780341704871696822165474171210350562148915423943820484073014538881400111691590345659653401155318102453621981008176463183400773443965342977694299922803785855365235758913837875841118800269285118172568988785003193737143732448548837176740559067033786706914098072681702879949067580546446779756886775024987423305737868212391047424317501804747222659721173516576178868141811216317123832328157114989924492408960208223776281990499310243066643085496310550175556910592533416649699472336514242943553021005910342234251942489552146202631635290284900488927242141750457255691573112407172859601602005510419625342176895399451998266629678360893934795622649606218451805161055585821462798717019692422637941120120919679236809702803849741471363465291110824849485300996579181619024100308890239533688708135263968352461214728821139859049518005631488820777116645164684906080269923707393010774273801466645191769545263455606187615940589528643416335712618735215655552558261590113822788576440800475438091119474545096251463858696391450456671166156248796071879121248942402657484848256662551853050541044214766909018783041189036676949427306948095589843444435211313828808065815385566434373171404784346581246387377748155390269996030693373209636067668001648401658713202461927563369183127411229432005733809601292628723358493776436459989327100849940522700455867657654968207596796369755633835741340505757529846722253320840168583962206684796099449209954086711675906175249669058157654434963245699546054408639377934504904848216158748611344882907771225569177386384837561993276361701574654832255432145462093600344587637963998266572096229153747925245297067708441186286364016457809359961748221996445627409042955267099479213703858907027383317751643284629636119512878216908453750334338308033242543045868611950271992931892437269306148409360603970169851718097345234300815420337518315937962788746078213053438850784188123125075514096472076256284732565354215485115670082584121735674784199028473316646481018476553976076435295785307329117011282483323494513706148118228648843893274254906256528921932405032083869325372155190401482652821475725490556847814714317275856466938365076646841232953551100404142910624998004138146374389360683059603091116590932261641532367008834306089541854068675361913761454287962033069020364994490644794845403479205986133929403425001536873174389586421391343446403068937930086502947102568253710904324503826887108440634591576381110118977379293985951370699459301275980576071944171198391864252532681612416777495987584409254318055234547890266193600888511429250907851489109382460286236555968069585164227924255660979931458384449685018805413713974921994277505316831562126922657129093101495548934294215025798280806099429031095129939326495649087578404947589857199064792339617932670105689308396790500249068144894242164638549732235893638039143072796314868103792000815199110969604308761106520056006203244679567550414305634523363915486445630769333427447093575792385987889484033648007741015173621498319084599831501140578788057632908206740311302736859363715646345252152377501262708040685846755054692490427485702554600167609416193067618548548106588350172800236026491179415024664624875247312677840581398801772672708174220072833316172617150624975908839691005352411880214210425599945475178769771536636868156526477668347308840619003847617911183024873610393749813012306591050548018206069087235134197983303751323458660310182286816756828211784638492272841067160014801210048053114784006833885977491633196756564306657073565056425755163373287673501062284383127004143986329763615202071761666168106581134262916329579754496921529219410408822851626555577700189321464240763249194352458836256362808950917898121685116895383110537320135997076252939964031058407018418168006239527525266695163518931802780183126656173311735564272755930721179960210357480684286957819243428688331526416944192012879054967872602961472251567817650756744187926830731650658456993090106570314288000736693202694736542383332187482916599309011339837540801713031233270182717211852323670406453487557560914166204261444994940340104874220319080723909140274287585930089324822412487131547940515206208613782606148685840017589495549674077718181818640473328652838171389133513812178977274062471569568419247728830744457174189488556012501234429156603264662572309767745514325864896252406033488661464497554602438922787671526163226220193352393761656041988501412586472065234893628261280920170426595396919235292534437444588746986893279288490778910018558804275306083909660780528288026387533089786892432528548386995960533832451796079480275021697427638127594804192846083830363389037696755194949390730865505927344677186187653128077979815957973125594489186247649282304711015728659061548854993764901570681154922456208140925998340643430168298689248679767922836428989313375062845998286061430917219359243486290686967639928871943746147738487623372972033121977207052244213428422310277665295626370914701272304580336266010086732889742142349071793098810719833633046028995221109310150841458633979800767479603477303458036299881413673778743602603743040069497724544319846579813633640661788277709920869501829974372738744428861928998693788055847736835958920759579839027406364675751571838166404638685021831529947242662547647114513411102787151883338008398342853145943056024860679022570047260179509747901672526899291456899356340924483949139242431515228504571947928690098375685325961729287563206969521144024001830312753944494058590103894645157945227630455461203845384355809032276893177365251590707191880647982138167862172453064867913920164678825086120621850540950304179836298534342845173301069536131610977669006438456952142614950047419142581034480699191796674217062088089430482277908832407855650132014714985218658321819526232878509167248773125169930027967989619529061400476528948480028851174919124397775062459058728306743366567083679371078512330294753848685181948672919716701940736013187167612151303579421205534744632678772152356086436243407085017794177346325656555136053035266435102047142422194352063217872726758582185800745371534687724064136030426325531711091354701194294832901097495186505568116923209958832476293212495860947392264933253101901118400003685663988377956356844273847329582771084052291031211302012887536298806469115761288125097954243569381897346291594776879959086167502243365219590249885431655708448553703046670234673290070312774575703316996838494814119143504977764965329507424220961489113642461992165157797941705705676366771063020075050395433715322807711014711418476259201925574400521886526093942073676272862331656444573985066768481117563948935051705611962709407562766002488368009390861482140606581231931851874019518367127332231022010887284329485588431086302158289236524440958590790964635733562836727522806007720862790979598425906609043664438200866247535424768581528207373650820560600643275914940041016074272090849031563024553854922070995370346059906169274332986947892708936961053962114152530987330783261304557015519309954040951994442453886736542546041724413670705324057288264293327872942904548983114880688379313625650419430708753662103634036527767599034448757572244748437263678828998063676035500869432701068452518780143489784364237919419122651306427579724679887268231771221040143685477893542373319348650734335637589117708344083018675144455213739240422713257768083507886606789610570334282454818006754403115632967502860049109569703135504855855733711396934035603990190251464231546348840484769547142007929277626670177063270901421752028495787827748298400368172194460795170564969038450975082297552222705677797769292669008606844788022994993084539094387716291887742605335575438726650243897707477308582988445303105734837605993814219676083052191884569717588003618720145188348278359853298370836595655594938277636860447502250980333690720498137836752025644109424519561738516557994687209413419553812926281174995127517521943971139853108180689802981202428519062044348019154196862258293124237115101103232170834051677064176595781931130631461922065923323103600411031369649577804214084561130902333827077445565135933767905807345565856062310597589811223629223506675732713176951902317007062324501986707791493913116602840281287907200129458807430668666689030425871992210997459645015401510212787531782838497076458233214076534175889066450915591845460534992271037386303787407012726348742462096582165702190585220607477241711953432239487100790565933896853319529813033619797516504712844549927900500500644425559915484053488664382667810503877455935794557530690419124271195923675009488512097474528188536092907558124142356128315749023455591390505544961953048286679482858483750042951943595392002333818628708371748883571103813368605228901757670077777093926641480870700604145697861178476564118760488217219104661610646649479562012201414473657686061854939614022657292456325593900981969818643816837958970315208356957513829590785075079355947641921813909891592268828177795120592601459877017343294156953100853226443943298924401789212991769113342012093719728171998523797178998674749823318845993604410687647956499054540305774084269759971819729694688760736502669560808493292093895145454787438002357052154017122466466545153476534576328860026473054365228878908230645726040340623506630303500363206305674997971192188164232488959719853127615493269874922180446727996348097581122650435684759826496279895632801520692243066520562512607864827766597645973802471825941781976370793284529975693509739625510026468009124356196595627073446864563425963989719762641263164535950352587615577672420391657261124930044665638978341568798052590282764998375314100917017016280329141520433167719378578056349260365678762041564794548639206048250185234707870003511606546488513220342650858991709930037989515390581217525712789914302000498595764562689259648972715415598990337802166215421334870335489679940485370493850061883115826352273887886896027425149620564895572401401047146590610193762968584629871082498617258034685630073173818849696461945510701905390652844312032743429433020618020665810394367650737675021137410391864118044849901068830378508492448963616530759648999646153455756075081498997086545216684570779931821633047208449594431042759293720885458850352921960539040349354624348726859711661035133982551510495669219997346706993261603125807601288087659988350842073671606274567654645236275167608702520509191430728110908186334822829954944023334971852211641853553573378946501477520288569232239411249868767319182923116098293912738326926748514634800473945815811070764452634026639385289800419542065319687377051484573277079784228568552413807495930533588573417996852109494704047504838303911239373136494841425057248907032902292686870634917465405024385351381248279973074712754136919522299804564425586321004916643317309261637406402354998355780803966013986514652933960711303663224447389909055377942771686476464989781101789480997312756774489878414758462301321842067168138955325035871619753306839415914443109995602977662849733216164939795649818336425921076170825215550847658784946577351811962561148752991032442819675511699895284073442206768319949145057575390527029433246932296754675656663985818576904573903733984703983856478899924058667919082330682687255104514601760140354417886059017378423535676703309823075334236829134683901422333680474799535478628041946985626573304952778340722837493144507888444474030558753943082224076492044509634272699683731023005571389018077787012937169007068769447857769212992397068007082685347545963838299061241561437901730012764507600414410678651023340285384301963733404459254691969340977077743958404332057313160778835840386120949403906159093499499518222322784088578874150222626695905916716339714694886119386442963079893170377533481394806685306912243654769270610753759124199866647557031275856931482233177266078459032984504589771103104063926053100102150871051342741609468989562804796357626518274633507772845233825092192404249365702418946724264374962483724302351896100341206347011864991223238523683010697339046802413460780149163257096620228999481919012321044537819390787799747873701859665764370619981644986763128968929780314795394048954229434492847573292353882717222956727179636697423517746606303271763100326469773878289532853732859862760961782664651320141753880974785270731421938335217499084579417188628441006406157006658289577245673167514996693368418305046947819318972296891341532767697518682874053310404647204852174019502318264380592441948115350921183467280627390191107620703036496393110476527461683837117270188197829516729043132534344224928405190041203669523140025903336836610147162073355522883793021434008094841794091771807632305024518569087695780465706315113406100663299981680524761390835711056405375967808539971044890228572348174946174460070774601987752250575165110150189625978510003635468439226427833784667145551517702425666056016381481742424630039823019939768856874690592534790969649778266089997528474904058358527616123376217086362784646314475289077649936820413947814601393886060024934819879578010054491428925316002015420931027020043923612646795621084365696665148705101983480902038461958911556547301291335730921879706229711931957465459640551013610750442892011122146514569888302458883938279057153488441409199603700201170985902474005027027578204186178134070782791665799058358239065005405067485733785735892590982940252701212884520819421051037058917391974978549702629169923724116507597482280245524556984883941128662128204561535862583366366198154843623547363332099832835467779711110964779352238538455423099386829067540501248921501771062919184642076645017899619931626808712100372009931071798471435239168881468864311992277104624923785741188808047966614640309588330208966864827137074890271931630109686652288040715704595996982006945673614374461837074110395264089890095992881590419523150956090684934625515830576330865882508755015525260971590238916862921000084787936879421574605813770804622987677849257010516454288764410224620351919441245221292633104632864029186227489463590524418341116559737895772847680078835416516745857940269989411645049335386760760486554272178384832463391099083099193023773107933783353106210675486851518010685552430041107649906661954517138570117517409108693347041413954510782490284809006842427888139234093346788487318417991603097828508464492062981683531463571003545291891432848364280925532178540090872305856742747818762671645760943742512604605692863756518995175301129159783692471804659928732238260556979047047675342700792460811012022947248178301995082966405441229222051566769297916105080102379319358754231633256745584046402515659515452788707461452762333466192981979932800773341882087227427837010297198149199058899098505050446918699185538302876832578351385754871095916158556741279859866242719209035464107092006961377878850569222480224033544915027623813269013613494127148452138208267778266479469529593235704073926085423459138036978389684373838688292276627457195026009745523616969757739087187920134882493489961149411923542333420038526847506557084602888961458362625509598398555298280725556302231273403430502600131519138215035286923317575176792353073277673306845640271852995012304615004714769182850496763701419885452652194515373996892395109040781100314822859405090113157813544565021809910004313915819725774555284937067306096806239621150654053471122827051037127956929217104365856942811715075346076773654952203576593513168759653260842347186930349995724730097157484913147886985991052717861710585808317943015643775825642006187458248082554209524433688950911595391860971069488901867054525985389682216561923043140122022152573137600511609807445209708453914511296347523842764035975096519401408613186088388569873054366430913394294828996288346401609454231422753598163413728587725631116997104626383862366710461945919475255419879246340671188481854210360231554372967391582586837041706315795978289495731453609302416700101674377238973384370087161232266041608090275089849849222315217739240315687404442336137133252030880842906778539086843477900024457175197258289724609603358191227285287417279099410925421002322698923418057025816283778742115860098497331188283007035903965294338314762486147518924406961941669462168590402593841476420022598850651579316193578514946757728212877337796136570321920964362741418221269717004829122101524423506069003837473409712399368546304969284001620700090816684109086220059991345225342949281730788986142547248746558838518254872232014093894809845667958091786777872058090969798986737852071864642168194450204010410770466261103407876048597093642097407346979281031093199041784847566138502916973453464741568617032450974832573918361975342060015929909436410941844040157325051481748099022163973284402168466175006158189535167425744791753070709568773808542584199955799250591754063032154220375422326574447395099185206567717105886466412891009035731362195466972804251032838367498024676286896831664362725983001395589138829601016793591304103792678331729425515174225388106142377753177364921772572929215472011082231884889132238415382129588303131720643901862114954593504597674831761593249816392195420714024190071563077679820033680493964355899017360627275715912025944905166793253930239680273327609626220830102711297777587748755026131314368691097688587806699935343378365501397619115509811012339878706829359580918277454740605347523568506199411186280244449079854576821388691710224208745078135756811621250710434055952482107753491152844580211601678972492233083979917636077849660854866805207604789492100868667322901531014728575257700215886591064229929161872182919523662802285909778531956467843886240230416573692085226409320841233022251835092453212485009579639012623390359006530013538893214977654689138537374666145370816779168709837491919939647850908217916283527583925778807745712456192751835318701996327504904611662477052628663811759802367259032362469856646632734167637709555920481892831741705772447625931156983302138204357687643815203916664875469682044265187476003652131740616764179138939206365136042977507662444883514960685963497858184340287840997705750550913168103505992829561212359562169494851014277028506616172562757534514325129568199607669430778204566087855949838380186737347239769604881154390477467017348152455312424197736793445799783217488496681936960430896160298886759078583681395397523848981587560395853963695024977346923521339206486598443814563259615167711952569695767977954253575500173517633362547659369098172217486210252187600899020574048619939173359874298248153057449532975696847563230700821056706869695771132932033293236841352022150969583532408307027096739108253775392980177449485967820196740173633123954151136550011049350224052708253672998322210538802623268633256304218187294992311160846500892440372719583180038148736343975817718873568031947912143602019465997301028236320538416952194392596316343236333812243038110754897360537356852306146882921918020791343893230414735559154198998284491406905975777841379360777654486046583041377510822623429686515152846331090347147977693616640603638353919786128464965317051070076516985117828889909793993972040465447042493496819141204591160420939887016445440968135484798751295652418302103977224191256326570431822168375414579243383454935288023489688490144713913855774365828629176360789108483160614193019253549105556255885655394874336443724809980729808581342401527689207913524670053320066778518354900993431484498237691237341872917941554523528103046140472040928863910754511430278789441421049131030657008309001922876196394043651304948482817840214388204279337177230671105284014063803345856555053252314638449291178731128837928985391661192268633568714906196684800277042722597708262273696345206537493274998831733763977960893027794307938742214637809661595702781131697630369978602433098595141996820222578059770723927063409715987082070733707129192100899111533343980300613877984269285621235726636491961627388377280531922644007042759094865972355783821708095466695328265855313685573798051079976164457765429144964712820431500599953046109633475328581388178904516946109711969291977361613870064051359723522407774068601714063832653074696570001533738428618284021255619660214552798966509660580056388057547869072736406577428481703015564760078732425107925871638659193539684075110699967793871542978782257055875673309075492484563439742184483630509476397000996083640463225300630646975795294714040741542079164325729656183059884799044024267535867959810121596298692015040125990091473635684407201784431879071128101327055188394825917676423978706061558335510673667085453245507002136349438286819821456089615339189844009493209421614755867389921112727923448509826134912850424652124670609553416798325423895535660343491483172739875865883130066911122107564520232832835833453575936548678910630171725245872353206436713954453324281678895692571314876709758635112045114589325988537338856478098716328048492413032606811849172470022884784601742163142881573412521024078817034301340796611589038940117583618243307854419780480234729010584648487402651616912187423330365562019461033684610299032840187884152368427445175234680941812690449320698433822085214220641380131386626625004236058306240904725745431391333270014458800901239203848610012949814416381575831079690591736024403375721810454174477608285048595604373310242825132031560050972866725329926841656682530029361529792655413908499267689725944471028517534455259105552114962816852531895782761033728352548394738208768950348793417602444060410002342143392656135985741137522735150226529780617239347283648254850055314018495702414877004182949410991865639156946190638196226530970131580789540910764941898346956056291934424143236930044403367755432193813761791847682585181401770618804426170372501998478428055685269362717490618181524817104752433774143189106046933296808510905838148476503314891263890732786464266766933451382661746631242676737669213180817222788571933294386677427783134610189193454526035161182102444827289562922573812700320680498778107382004904826443691595018482309550306686589154240338978411461146491922428318525084623970848720056986001210209749644141067064823905605844802587870702665403399957950832394555274051173521585571653845067648752400620191346559987554994868627165804803972467473544807585462383061557345924988821843285463606899431611758722111135587801752219051357819231595823689278684588728180136537757814070134122349944185289199218994628956401548954436977846539363564655665395099806672561377084190063237728132772157708262693067301178852621626894811171665227686169805788274584174699975507295195707027802583946318849598558363108040799027877104603928861405971595204135092683031656225404833573055429425898506751599136882556215247762319052571064296652937598711966355029727843572894869282024922381366511034177487170334019716596932067497074223642880985367889354143061150672198827125453967360020379491935119733247145292757595393347714946188361370103474298448709450508001777050424894402082142489485258695888833704017853525647543101568242141427509889058590244093609805802809368396515488977029602889051482217818768857441471023406072825600347774528133907363793630105069529908205077603315185010278174533032204576265246074394548458287365181273055658464361468417441891358860785848983761928013766278057556507471705258941062469156439343726440176721227940386222086692603626117888630440614599879905482850513474610805476383608044849180102257768177024806196413406926162638562257224740715939840475961961816441800655337390125795269131568304554378125287006780379222967077617537933624144606564970992271712113810641791991628014405621273506638625266565849357592141675821661362237867272816423264091240546009909658921722831836705096956528548066993156345242832967123966056073877809967954322777657043334913680500612224850738307501527998060551679787175238589014747145434340966785985402461465255780291476413343962937068021515116972003727023125519102440953720339264391820461933429943244860224998979903507361785087712727411994525684678019648596309732838024868530694511688226559248047650652832283705500388502427905966228819268958182225571574363454028200994479876601532500339609980797718147085241617050364305130267053793623304637777031967871139905526418566069676031984274487106701263170987167239316072847029782717044912587353552937867044099409515579392550135839974978639459982115808714017183786195181602284210568179332132464663314442505324118092632268084234511078006292945301397844959385456856958091834613191873189023004103583914629770850154023070870002687474806872050415271142849896652605934131470541942403534834937910512270044936960357671916310317685127767634197039692004045067531856152958779466428102729865959286306358201005298945068313890923094144080792775756848346831555224020302584922509079566631205856607699671294289491366254294993371154776698815604561775856320869079467668618202633231452874423675196865246036080359704401577890589648463882581235636121764481172372087818990464396373440557755181768114417510737584959125149367720558062483465407401565109725483434748963767668783210541489069728654629559221985464742957966203276110720028876374958924581244156284316577268559478050510085104709020026551817778001246828539190853799838080140266176271530313817319768110738700309399511838023106192576926850964981016210058969791052347878309546659223287056441587785856577596567928068630755725918956654614899380581513541348749558140845552912759460673548550481741607107341980590031728042241381678013000575991368130541421317934149514741770779934900420090083870558608134884149719344500264319255194891962684480153411019351045233003953914737197572943308900518459292763284840195980427178746710237012666391798494404557368208854667219097601770485739147512953286927594134599870392866851202507073470586652551850106489630926039234227822793155398550366641036814168256248931556909962222898566111994516837317473353392148456871302986797100418395906866985049199215381756441562015663255612977760762345362650956726032175132158719984828612465300835755374417695733590984894310361127196966795592853870644166021571182532767691748909494825381980109961925109568163046342939852238485241638091703048284227745764099511710171072244599901538021603489812777125384067298287734394452175352461221143401077529831444484717907802982612485116590287407659208213293368145286278102506175225829796037162322117314872761605663821470062332448211041799667150424671582519015418786696019957342182497838300236063159063903201161591187596349675097349414856948476935944139678037992345980712928009856985777545480607770525945607458587363984585660216888329290056115712492345858162986804754108994389238657673995562919262795253472559917879009676715640285352676950016220859010023653125768679381999184684452308357217006811580349405032884037375272454707075680922891844496529052008119148736641170737533043014198959569623043200540145032256579116137003737800441180711201190036365750272602246684916357949759583333694906441215887671111020226127388687802723736161898110016473513170233822201286721740098841676313975397982867523573924274798686014366228774524316102965556671429135139654289107371316067993731956317931456479369844408346065210885458625046710080770519992703267757496081050693784480891143501629551037477225917451429785088347519025595443549733252742351258759382022677211489421515456444812081781475039117503409576603218324590720953693859793394747976277792203919021178972543503822340211359629313434742043257009251851796444911787856982504471261770375388760837501147768556983928415036506843889757922471770253362153418662980685043307404668256766961546946740224005383444434538000694870659271119091283216611335319378701849591810402835924848999245581687457065440143462026144318699890171938683722705209981440415281782069713780347820603645171715506623732669489886209446551592976645585099086916893261103636642737875276181242257731505203801422099822962817008098582256983085119515973771720675787324524159135530071176066110008351170365386367399042567316030366378112875190173537095848241623903841857647666702031201353991114643379628398388344086074640845215576251709921418230268094717389663103750160975965776019286465173567880190877950180462194176425357830045336645447541292633026164962821711275268561748661935540978019658428325866949528604993298687958093511970696931993925296735588442325567687468953690202826722731629141688193066827345426873686265318090564438985096334757991267226737322310072031445002660646279465447845766653533512056024958379770424477342828152067501262108474995854789334852473006481730127116699267502524457737951195101992810323835085633667694909274942882283654883176828100860784236600788688482654611067690651343893749169926614710308449483346838860842047644816073221400416991155243478710300198169102152489315870779186185574992863319959647125069094764986778701846011648680143667238013751417878632481900960999395703249872721249457207841796565741610811850167758917316403316802968495832600628047503750304600822883176558165662331810404413463936997325491700642582182984826465787838044495229764588974493891637794283156956295484593744558565966380853453775382461318505408582156726150223525532307984052573077519360854760749715686533387577136085971737750508684394823652455256184961531227204769332094930398318628937788022350662507017718933432074185333497962720009304954257098406883188390229161322419466868092532980928508275982318422068623441059158081857752133567970967913989086139678140877577699719610292281076781802631076581501221765998206643818002082364280053006347530694827361981667292293046794689182620234954140390429408499328843840375291612637965294587979186061251005190923330684275290926941074073895336404256186900938592878976885871704931861639581440435197524156148141504328414399136547821776532367730575096110502216199846203699008870244103543218406587048092449138398956208721026259160966077997390708534916272061265682436059414204348833437941094492306832191665942567533414772246622208012978542522526291386787293659575575217976121945335782525466056399110872151534024647151844859244887313181140782892029064400133667947117205533667409475173030983409935555362954972856707602627361304950950120838533796616597096121169870922654963458250048110282524201535669455326576771205196779840054070074382031346225041641926210962693449484033765916963519817396247348635201383334597457758833531287853357203293196714476867059086795736667038129635043784236457381628438061965872414257273894031654078037491410594251758945384088077295824078262890812788481359073288794736718393133321128371737315050764172299183244275640748012457277804244384619692991125833445595036986590307237149434566914019588791866268691725250246471163580240572579132265479768975058008575637140107734495132007667974693956326974792163958023034981387652715788285813897501416088001077416881350141367047960795553668744301490560285317285919836618579069252144778527593302273755529583695849558315755089764345626868052309611722596426439739221032201106719706299680700518069551439126680587172794602056572783553553021669651815421180317225475039686611493488920555027851197466213932474241355229827469029756092648312954993969652960744320540612765393353611297629380389195126197455327782071007187828229228456164977926628599190319461005668284766853778888514451952853011976722073112488645221253488169454023349093031239538952098950033936310894562411597702111938536346586079053657649924096914317676122234970610398985472554242224021096904625238689201155117449676856420662358061012920347879128657218553794583406021694880982827735822243272266978914852654650517276843011452695441406328713244265880168067330790475765424835198878263357917226052585025728121117773448712668223116556374075324255225193578678431459274248468035151682753218150048042325121532361276956058198428919166690155576433901481634894337655894553941934001471789529063767866816561880634747065884595972285628935148539532762504189672114285300737979045885415454024035332648782625716229928741299607983917165055325429652086373391666061455015031436516402605810035926680139785266238666290842896184539880978104331007902433515543060106948453825033103587743256668940171788869788057576073657538164249619145919659499281868227247499647361159974418414330181829348509508320136124878126006775341531168249758794707582215321875288244700266408371886337094982699921092336611914687241520754389617089913661453485370471017942687984802919061543597937026705411297872516422445999364055958386260836289326942855161800643481297256294742375170682763713981057969108182715913424870222558578568089092273115475198978988486149313953812724951285717255485463831661716916161458363513753304335180195436884192957803375364567548637460582199598029476953672471528623631450136669106910956360996651205032341242603533157964067251443086134860627503156047112210386021481645802100067858244414180820223436708076063296832329309487463495605354256928737246991620788410101719745572341159281957283229474532012455195784964462802599689686200492707198166921783479319580098519203585639651942701907548760057462130030280761232915112210600316765849490967015041496638747811080450779246539785437645800858303291758094031571792052156113703899868092062939306993069135199708187802497422153131786903480162149573632472274415984341222265657188417685534068803931041499961481234626252162083434520503065596336976098611505815992660525345657265285427108916812067130392137827541809270549004799466323310780017999735250719084221711967545298408041775964043382179149627278570104187649861894336454215622161579407379926237002397019461539351969971302467149074721048666591581405327679212144537542235946898832277540373449123961748287953389600843490514415781248801359362862609792826381950411496737390653851467586513005002106271632524150663569099827478076520667155102526565766693773411613285193065251748152633886504703823488968160581070625319777652031260847069753768938762732680323866138218395353300307560584402416764143710041331442921745584011136028883696924209443461266659388534784338342159317265983894101899208534560228164111887411808552369232209804504942951301339293122249803170046765838748978440935260381898813643160125808622081242096342061732725759280150988533386805736567839526907147986871079272302952391773821682203474756403846928307879206246146217531338399869872118132132257063367819715201716209682982800790429873425771757598701370745270728090175105532325003352507683913930186009563505961144155185443695860946889197249346988759475025244905937705377662151944129138054987494548040974500542645494203614905609603615231137919839140222445097263361795953569597439576008205614911573044853096893781377864046055535191967406372046534842741958562365103468683534256723881575326113032367624432919104321671220499924639347482479026696585523447845324963937544805057005485026542103000534928582394223941282830290748502053083135265004304106015128663814778114587619731337059784207386860638817831848914801986382761706603603413433002173583788347435241684638831864085079946960352117067667337385547505566740509108607882894195532036715854666095302966607746576850399189565963362631294643693442494492895023634332984747289579960193654103826631513814722912471211181273583723125787056783899316939430006201307448328254516831293273146048578492181543967391326694352691465891297790169963347340346994065752122379327207417977813741474169764718456048615369165716265695275168157522968120296166769954332408104682432316655214739366805023563642722132234509165513226751435582688453900089665897319315718491128775786353274661339507252908810694056925438252580881410759286225289596547461779534620486214484353675117659573163162789151482063634843529521105818290266120935138076057988831700953097985508692530054800423812214121785066645182132230576579684855119311457257391833334799265275129372275551213588907943670510583893710126232540161994876028860930589065959825648372666920009807820734588807724775115188444014020539579383425133510191476683381978248881889792882103623442262757267339788782086107842785735525829314375916894852332168912809255842041195627182470529762667320487630926183426363738031507572642321771561074108491373970498835084826354413116680016428176298495852697772774572275355172917876134513672713431639927255716905167739187572771244365484292344982650252909729288852422295097828144318931943270631695297583912180226635932659339972390536022190844331549019378992403075021785983438912330448349902862135770839497650820330322465458863116178452931736565310467391605571785799020439362179334995128833600657378695730395389805276825519357222507277645398835239867375788615122491681952307801866321093778410724421529121790728748998779007359140753078555638925056753482691745813174987063419834259919311971543504410642739746042737305163878183787945846237962302956266835940379416280200959947657590740637542105434495914814686782860216846261131307718054549368795615546570677560863104114925447857030090069195451283124970366150029680103049446498619019943296613330242201265386456934678213020513701141702959446269740473006027443200407973425778900513569278635301797275651020279204187722530982700815384964225466255836558388503808401123952024579162365116663894293716378012481168911128700831076358605783365095490781929442749690057458103029486625579837667065105776869661418848179116903188095497508930638190311913924084156238018579308908174831096982564123233017430810231044026360903642995235030675876859939159825165938226961295735404076773240465766041968064421881707279711509696047303058981969081475296393807641783417233410123594387212868133345008451066673417013484605075558060466898235784953351088805951727869949113981976260104824748092449457898916185477913799122309727302146025275853297585450811859605811737281874344400558116697372384052920605404275519094025380669329492659512721715859889753636415525084477719700793207332981330640428047061118815792710645481146014955177312677643975882906919809197114560053373617770905746569624541495134913968294053187021700725778604852056282766713809867837746529042927432835229370182200146821670037132979104950225967503128318393096859656853989312826567999704468698532817264672015235310202252130431467586393646610913895341606162645885528340749285195149028938973625592927304051974640798324340683803638842986790023010533539904407136186987088293521423108094133242003544105916568418197634997430028511225315258009072435311301331881764650292745841468589030670880451738989838310551623344707686872241600639896788443308800756770164203375167600693092028229846320207044479540472605690480444847687057026701999507602357015128592558334055113876723093361916472047395759022085082163676551877333444791726263139886955714953325884488719697727191474100139714621778547307842381545901959821515107163259704183082247228276224891626774767034160563524861655459854958190571528216527258838993649017293918848746242386946666426309028178227850768833107148854345262914871673885194181400423513794273840056663517625423081210613487375085691060306866285468256256730416875028498593041088808761000739016184186219037579086676341066749632131630849009769304591362860208291642334536402125346217540953600942949755290754845893455065485438361628516798519634341743600156691641805343769009939429443070747841561343624183431981375856357277676984791477304809110396430270955939521110451932025106210272762519178590046213604808526876231209033717336404307488616167087382440590149175325322539851195529859212549541312049761130481631447132850559618904453721149262078604085009466363741975514547416591418406317922886996226463523261925825436641638301630876551255393942625975417472872052808368798873303786910022531302406215210952133213351287619526501516162608204131493730855487263028134164023561155831864663225869766371799377339154237989226132651129279653531493563607508620365920421685964108366793116199140242244083274172389985331818961526156878302103929785302193854005371818203048035687186574598314089941023553372904594208377167260238502548484888206087137754638485985349628931607953661656727644536619348030695149506823314753644229420959690377778748848929080902085747707313812343453879384813742649011389447805314933066680350536140975422226230968073941629869133176646019821242542685301189542068714000730512369462813762949286653458961790000135705565026145968097306759563569620645223379009575106953797906098733387510945352871174292673877782571537658017390641774365356854530369772586038947386783983734480372468681301923308361243350411492691559855515097733975795645000894529869517645113649859609160083905122992205827612776127742326718632899913527443617824482091232808554908741494175242322476398373402441924180855355483476074916870644119135474427411426627521294040281342318792743494229870084221413686609040368738879300601331962752952607265683221207506127454680816777683835398219028639529812039074965635708654834176662740709435291616058495316295129193498620663051923252707385708246750469684270800120812435067685236146054654929469021931686290409583274420741541114920999228976601489644241520638908766221492019121849360494369832782758501352726182460946638387346684795764362382674071396149276215236582576749753743895217130196807181832949013784353753428691197229446908374815877441912178012684551853536275376277709266027094450334457061932864849859747227850506056412463417672305124074027014388702161614622329720923043082347458994898652028860253072528685594059646459321085710361137631814573839352735491092447811728692075911898178648778427961481581272260305918275809903747166628758923249409120695216783979043369908717578084751777384778459617869165825949574777570360335929884636268361703714526566176734425050667035503196986843638456447010470622431835490077401915989756317967983331629716927976438785812134903469896730023970056976341158114830115650994924773523201623022747752840363745121933977835872965591266582587986732453427694756336714954732287188427919253219826081775391831715334879908599913154264448580986156792878382841358176906686789232458407742668331501893109685905454565157374892885707536709258315523321011944934361370384104289548219996686986007696035728677452174191247098535928106146965344141425125795087357357152655534969843101933479049417039035148820652401652687735799573192280058733043167381719578625587612618809068303821393737417817396834186555263793263097117746661250042240484371739024722086517173651252013771101755246681880415661118139678445404472567600778955933376371409661266089981300750275129264420225575418346311312817811436317823248486685063009433282379594263134703940980414761239754972217816097394188885539725472573935150928811404176966004456240057992865371582112043329159558835118275204724592703155900015149927855620375353600545556489454912178460611643619133055977796841361981421290886898538220093118625358932668420489477431491647915231834159643348461532933175804468417660892861275559292072127638630238896837124770222998519973528998175022418353418999382066127857128307803202923070687233153367806912245866054618071511293602998611006419402327052550007016295399324572445903889871943278610087044543665420581896279785398980894710884221946279203242422927422189713031218511504861045556795299718963676170486801898586773926509323571874763577603259533627571133483423842778872455851193822040665429196778472830362250159383617179726442339033695168224196518124048395396299443199176001494276057353631788821933724204161000001442702059496476499023168474827086523925796106480514838165200151651190696183940675748962468523451631732210651313280011356028868529148650952355705462936705391863353083050856607350129079276848575085519298837399042644632372411978369221496887382697377782838294337532449929996277865618511989112710414802218860324187010674441446456463364222133282433105732964963646734200133789265559469414618486322591395983322647372619062982050406352318054621960417677693951597610147370962120862875260475840556900926398592884492081753047340227214647457017009801055729045843086761786691941492420536573373016364739207055593714012562187806314832830356394009870897207573433116496068090523227151630054284757887341427948041729385755651548574228254963403280556154167869066692528212453904561153992611341292914098022076210926723505943570520059137075259107963978839803988371759056492418722872446185747673260017293223629503445988808285338409567502782886415536262228072915906377212098804404318967225932962326265650407052338456198517103062842448552998060135143906593948398997595795638170395574645100739890290011967905363847988029790557511380937744057334178391032239548592912302630749193351640914411614360011264694726050340899500026344543852886770561902806225253905327133908853892159461133515550798913079786644524308827501209779116986113071136787558337685784949059694902352708095469041821574260468422416134713228912066738313778048755138483890836669734462123279598247033668702778417272791211440504385265277922273996439562825490443292936135674570009889168500513990132634933293497582738364115662253728793605470629121531550518339531563812391576778022114531934294865843407385248437502265184442760771514962757750721756014214628509243005691972770705799374555497735798839174832857743036913691779347378460394176468566561447437707013963435383161371425811649948621055778388386676306670773909623421931772269708877990200272918881336997991447122560755921339950491724839922697259540122619387410795387467838160437332352570454021119070698445363735152247030019030156629764458790172851935863061497992945257977540773387351980150463883021320266901665376884827928498005587961675969841944021910526534132706271384728034084745378790365838599999440609068251321192022164065480283234770690080864607191414495302027045233397947698660814819366067373698705146453136409949136487089317721222700832165060806167886366386077687748466086187110709905668928133185553094591476647418670059160697567551882228365072307705252935695973728004446791546910935357397644144248584515990781035987745598555554689722136876414914342552755974715423592476692718534608309578463551945633502774734612014643722065512211923193370112543096264508348458758164343574394849871952788906857771834690196416298142025366997084080068461301356137664701587263895563020438466335507477790766242202328047676330435807575710497545442258965165735234561031649647527203344914222800640562068350994078458304167120115772589596281455501496007797474135067879592734178545724759444962797707212501456853027644491262411010841040815819208209905286355750474957775022693343999290684204183608066769639295481963730052181371486075305811402131095226118583932763198502290921742386253994589614689195381261066457662974817359636990027898599515890832315233771601755172711611828045191879658078967888159134852567600348864872509542473247668017506861416014799274084746945954364555797253453844177635274927934572397972876243435539961750763440794473574128062892354178884129129525918785050787551929577083563864414495872842591241276769305224495546912036440524196791874921133099698258615698184937987324998712173771870961675600399134780756680158211756407230007744853044434565740069877100485937166094779987031716910297858065549239396444604905223719269159767635849004504364027433484237682336068363653670237067979602464203459291022807565858608228941277284812055740535313061346241810596934848300132778748954235038095532992865934255830863788113182114308341074400163490442200055366357250326899677549933773281094727449027073405416417689254039277802292508159167972960842269423050600539304736194387307107250126182193565051384075156725838351884792773438357916154332612922941944469739173691864607044875943302129811396340141390425663513307264560096546434814143383747338194038804697041341475890025154547768243423022496567890721939863509803968228116427032430485207303933961212066954273544429428330299628848435848177532246420438389206780318777963830993489844497411361318058024786526779147023316599180481174871771900462489389959314739925695539361145623492056782030003770448636530125482208138970852080131008875448705697161791118322043736927208210699493247035224938340913179150966776476914511754880745560914050339101093484335470911990178983771535690949861424921948407411589544862940636865719780030713607699560977236007282468100020629122599406680529976580893421576200318688685211743261648503041075609167323591496891838840627779036049994244576245371254280569878128804295855941863978067341258900851359699022249360119559514356481408810247799849287957884632898365279704528903117202723287502242107850241384223511164751917407157166386134199013861650788677228304906806475811010424384091072887376863586862636386660054200872394807488654590924658372499123498236432846116663382978592541714703781206861297178595207529018177014413576169390374950178007064980116393029559908782124852240809086011949501608125315193535502185205156624696147733188001849830038237505969702178903811250620388948420913556482568411384730293860582434470198444865013980167980100501991332212661263193462103729777740915435740297796755841188574139052852720277243065729657756659810553373324493182606920697510872842953666912230149513696476804709340578547552916854464608778916313486535854066917418526647204691286614816505010292469871807769643484381977926466124631808280345672936809861678395556948207339129818272376048638828789127504553710218232995687885258355722985774853171369363120349577399834332662356083260424293772069162194619847362703095274646169957144175591725298954601119930686528061980889959913781179443058896990304964960487215576397400427130243146002935674318985567490739560124408554205477534009172438680643810552843856172617245090304630355100440622002828788126009947240298691591629943886461490756212882317179139579050830328629526220509977760104875988805103988159027539516854112545767341588095705667435057675920425290090403734740919003226462858294225461093598442992931403385015962678723024162670864166568164046931906550066445743729457010659352848522773462868594468777926072887380080980709163765392685980750025434209507008030988930619053161652960900125621117773811479711189321429874964944058034612300812653846811433030552207595209017891995860562705415596188091182191517409017284788191646779315481233736651402786282346670951424656555658690600166605693136238849195659605531945729662680671808815829477560774487163633363559041245910620621820185195537013970928058937861031371823339694562235788757048152075044969732582471271035130565075912900110172440612280537875551112555164059666597791448784292076712497237494613775528551948446952049507157317868379524992791496754506610441774936184679200396448199890915667519747546757170157896341309783923253452177224216177525890789274711377413183144086119458341795515904082451914410983002879739378049070595209733849608782835944469009649758633920320513842385627309631404662617938136793325047802387495010930231279078655258751922108578515263746680247126167219143003626411965872815166653739110874809360454702533065397543176033025804356190456817673437321128711764867044367305797958036113381349653823515364037810533664447930511874294291263637184264107670922222263317626224757980480073413639717290633062153305953551266407013289418325494289548352793117481148549202844954766021362177653514353119557444505419332807083877011210354980071647352310269966366965165408752095427368367364821966200443824932068663147072409955090460649849523568911365858298739544837270235321862294496404536811891272160993200335233152528234428802152503696250904267111260151680029353993076802583771232590206722090231086621471370645771006557934802282673379446643349286717955279010993685606927615196770750367642810462059494471425674226646725826753411121068465481166961976871843831599783244796485508764249447034186712110088274795785239977140642886375609124825701915835614149593499454398890638010214668490205085651016660311301342787593923961371018817028675020798976869580565906941427388914224558929903096408402666428656813889861099500346666701846070557139345030485509291297541874076174096794589484056297480414462192220675298495906303996821165241009274172729571451299800967943106825914114746569545252112489131341691105328526719054298457189376549611648726810003694446872147931836766159335998224980668161897760542413117169541212376649990599899519893704441671404272662156901952130878615332645579931877693656894459857394801857140605842368519223195480741228040860214077663036675823474099914609732876339726444241172012699437839868563836456864463063889525849237786127877465323395157692729017643815178372288716264393190036153325565364391189737949375583114815868550550182113963816612624298069007091008172645868276203072234113488215332980726648031231249277923410327611087519637647378737826266453211585386634341842262467414353507672704582621440348813372645169580798105001327503431771066328587419936712397939290942785442357556869978998183533113636768948299234945996270013875451365842174647265291114129286569171158699978624528186878995794709290096826732917359466760431751710306295760646200422053260445668856900910975804300796462635188002321108345226155845757471427760948305612633366714832387922440707715549764684254253796152390235807421456087294919628645545361153813084176361756852590059378237183425509071711547288429193855286415111643125231889931782572997241179066876037827175465329464046226987626977564223880234933660511943955395975623780572872152405203517185132101512147044415782620433624924090408496573357519381308688494734708340221758716946667718894477595417302366453684786651009840760822819040461100745943069414612476349473996304745028731539565299229688881475329543554123044102563479120364383664499481055425880678438072087943456938725634457740113459926527176674233233441842048817040077921545207690441944235861354777411497108861505874760069786213852058597044599527373895623644341684106596742549325210689508795684545090346201241937619858959878865810363767624809184855345949572522905446236200775381266813016207472644452874411662541753403767627591534009064703687091438242474094863586216640837077204011926621224719595022001038142257309814165092074685439435760883645939939902373021955327160772728731784054335943220878099370138457326868125053530614403010150048222402488404148605439217488369450915514855973331990351346561734601545278974363974185011163299383484274004710456422820092143843665150807981948525009911151234878487339058035526289942393134861130397283407885504839534808146497887548219270251570193337364520880878178306779156974708813639838834873448739943046344573608149624270926124228873125516889448805909177225007755171867830233249251907530435041446822914042929647532658251543471377330128754427590240022718336922180364704492575545553964570276942193798749532992322596020736637473924989017599721817323911642944952833852275122583926321932140687730923460826375722367733514528523743449814114974574867484706657508754645028571201061815556231577427396325484094100722023107388716602085801315755962870148050581812787899664208363037403426897727007417995503053209324729027308558778065569282545835955584050624143787698974557756256761550208354403275853710844100404074684259279375697678600269405966113234528640020962028262531805232624344653009419819002697220840835269191964349940286447974201810765011628187207592316916607495026519189282525129833147262884578952021118626165891929095119612762880689597876539560032709198592857908908495352967126771401861832694540700979136601095320808955674228819137033173013577117763283019080775659258282033753970197627970006244847840930118122518504659704209799338098908515955551544324918841873561793089474360518260281363478634877533100096592356915465588065387594809979930717394721361627366467746921212443869328584769991608622505698614331344338166151042743809447748591078266047313098974388097893737411259474475139593455302253422787688246015106215359359816480422724978658806718948599309334605928190093605783451028386465141181124162295109983175678992637772080885437049416999685639451569542709488624825481086815846775356640018649510279254933475773989011513168597208304553003759538374611028693929066749771723978189730070775017600916316328617878592943659527946299127148403113862962749682814815663825486697045886334083385028601850389734158110821752616154639351311052871549732357530184115141338299666675871657495107129838701518661283549340895421297347606623137398091027272930729907932343023326774886926497533807929415248569994781890305715858815305476716600421036953457341789285300338638903143889218493594845818065756267906605480182175050267862318583432543731548487672675739984343269296020097162298993269026323957762894182298827325533286587145254918656231992748133317795342373143311202830237887897406150072219718977721510472608975971071353085151860311216060110162698320464937776723631980261173036533786174509851156348993960092249157171312903654209003589826936444220649981119950867070622759290994070273940448700617869704630504530229391486342364515198427323198906737329870744704579605622780088825885139468546917091361217609385066402018491344832375603631133760637664599222799029639334735118995304865680440678820889819037226590644857614113630147472287814305512627646735054663716956503863909568649359519603298326072787431940004059140299022633762782377112249311273215239321828716386849267786563540823596059677076716063994151188643370795659471486627383434435617699210908611299765270689590127492508681677552647602048917303254005399124115124349866105620467865479654558429731548538744872561862873018952020994653377388797275548239641055270098512133989219005179759919846409118513353154266009647992777787922903102962414959628859892457982019335794778458041112920710432923104664195789495267139454337081758914559983048096336728243910073188115099927372397659118565732150209417178845001689723208074145993564374275821719397754180174213461524299223592663980778254515700073701453784880473141078434464462716123061446967070913733859016194055860838913886123117745298967936212788287390512545875464205284479113173233730927694801744248269702267943078261988374943613836304478179090457297373217847546156578201810094922688580292027181718001164468027901006273929784451182238929120929471145536365352361381032145480472893972328336127923236666388342527701990308563579298492307943847731439478952871917305014160464798527563665859579425470160137946237057972807869842992853798859329418649522529239249005402606325200829508139973624387310355804471033163793618547423695406066946883970008883143033049731882534401265458547868558328372628684864330214614656053521654011821720587244432738613161563346663298980657201862469147094271876277741528329904893040426706440664164393275504906409567344346072134617949657705035292985299505927789858104063153791685060448620157718948558127128060568381069031488587849028022207902107675735750530516747792567821869754217852040279633887113187016802000197760789307855529902795359013096314061677455533129575070111671057749147340627761099411614065562411161590387425185479293085029179774539626052890041754483683731359705038409914452213064298107947656570374922377295452982083248021083142947163777980217895607474444654812606437532915455252816046569205561514137005535323914603996373568033476708602928537040973894957076009292833741577354372811584597718893199638536905597906966186900616991127116551687980764882670403033759441020828653533096102831218798242675423964245097967282784658308124944559844828603745300253433451140892867611901666199335002364873705039636348643501716880192681814165480288260923278221916591029137767734266035776078875810256972623052188267512449532689322852965146196001605820535713730655880262279500785370234081919284733844430211888622097449020226578746118350487293624149667646800930382935814604499064319280058124943523045039737121149278206716605847326976357504230965752365563954900630702958847790222671539414275682831177930335247955852769769354765223056747564022354728324202930060389871876473245722323273872607027295766300983700699226991994603930326213328767340852192863785886171688721813713801068456593144331615134897187926727727226453694851330347931831764357397350834330201669302557023460569855839625494251591853945280483799508284730155471888153281782401429882876314573517021716341937670699148458280678156614220055024750308919311431262694005423967355044008978600052970167886632893968780132721747039512140868644460517289540165149877813297216645818321522176997899630742643328366624121774967948405733550847018229835660694867197908103014179894554998366637751420204775584048781872902504816360263643649798541570569500141058412694338429251651684892346173338170106973110930488858147309669831174452010155267776009378898924463677820028415692820064026349618494397800488884790002344882567661010419974187405855745336420341545197785605169874172181758903890309511839266486463005878434991684596985800671925904125994341940847430028210883981174618961648860169444854354627920586612042597264316402753678224142703685622301309160129664972624181152806397573030460737924306557808833724328543891721940833047728141666319041369265317775776068616888132672981619543388741720291431384815695320923064498052235597460062137608282537619691428605825296238001217608228201510724899334695524652999404356995374172899348784934974676155211453114037067746601605558494555581249552034049694942142674855915578016751254142180206745457312015324118083257856899591232918794751549663825445204209105895643734640814809885993307728997320605585898928082173255048655948841565188382223818270589207231169556188570035488806221864443909991294622659879420379513364516972656625398281265705657597153852182519903550431220772654733824024793003162540357373140527221448058653740774304887544761964072211593383651143099289473333680751596635788565921670194357288657976594488827202365279481376862257977596984821080112665888531649708143780001365756919325452387348761717628850504799489373689941356351011164440042312137871552887648525181994912429474813337695279544487686800004011493627350507070883067738906961413096944826804474991530866268154355516305925004888424042244080919778000274500237399653034553022453766704951054667001759681378474566713339763160971357611482105414925945697926204362823200581181440943463515513324449199116077963514178149723839354764920028716584870297416766693096860334988934683562548598322887128188103201505209888352114248684642803573825460007234540906535352843681771506977920424846039831444975257568262718025514134273968518974315042596862627900144101942599236124567002871081213097449691688477610129539207838089191690802888980207112079273013730166006001799744811165843011188126325062420516471273043697268201066156594129076763697218298842441323589932922712564425939415622162828543265032890698727553077582232617672495788420117287224518961173931034359007687445775992643335726357195954585195219156627770302352231640252123330334465183071096469930906388573618283381184958956106608907478850195542682400572667101682239759185639121834901806490208710421845205929950316948324324521784463938471183958101421375915062816972752435330337491573821628243088290834841370141633919424216636887575982040604300167801624871213590902257908845105390504190389480779796012447769431152072810189992320868622536671381282848580755832818110011295666080050806312207801127571635336181212157186732842778178240472696832694593881288457283396975985713561367818749788368969056609266747858596480176938394004139281545297728351048036268137485351188947574313084250595404284705651732563142057399989417237219131322811841252685637066792241918426808108886212511582649065617162517302587608369477752701833971619042419584128885306691216700184655399490715164715893916275578217354973558356560771995058665689299034621024506699013855760977931362523798147762770220332126999308983659219847511508742819105705244912034559911864072853144745861815776452550444783493107369539073781523886900148673444897535141181754858008045830035822020698894016077989107835966813185216739475633059988266027569898773665979126996846620815732697084073368623231076635035139059746364443884195304670985966159036930490958021203705504705245307002486485921953887923986522719801534442747072062710613992513311525988855046953864521242049034176045650974268902012594387507518819898701397013157573919095096060987220627132390871791462576021332291622009848825116444187787700374521672654831985678003111722023163209576598581305458737680735342331404010596334862015027131604249005748717611921927287241858353977253106526671627539277638601790621834056083266045033137598715478545822644343748634560046860293706317518977095522038671943743813407953111851973951356077688260167703807771009617011500343074942386576561521232390129571150979477845548850903341836607084798452670439802664218842276245242387339165944906618530775871500897859394103216824564468438845885273316199418433726242678193476150724424239137892738327896112257215841525173651745077929166337071688728415014191076877430007009061610788366396651797971007036776878251798441212417406575111142561010519337162973784705979770445675500101712827418355275444140190189956082176270572178405215076541619985066310105025787509257595796939691518384005306572355334008833537657183870259753476912049840810515823552768923861467905241552122081658226690831596693868699275028125734536669590439016707614339813164938162544668395636095504195741494468145716527384649163141823642572582745124079472639029949951155685978460784498650438539403905395359760170723481103318840655749531817488424890658084689936247717568556724857683743891628143255112765088482381513224609649344970448258986383978894638662917693839737702263736927268012976909073337465674647861325690186163011907536066508436915897414447608707480149599038486928581499376743151084512527113441345354018202647844937906311642586234153724558466144173371463423206115961942752499945649655955679046902949237728322685337054503866800870147943289345066344716257483412308875641672626137218168403075076026613949415527191519087074307167070007723708161998185156330435967632581599133980994937457398447359788533231239138469508951064557624308868138782489639220162051423929400998759218563638109690455938914883093584671506360995832680752162308931436131482797556202093977692254430795753220084917979510383505544563499165286086288575079566867150565459175971691839726636942936165619439789945905732778746969236997461472699636722342448248944833470317017894612965346293808447899179054518627266273326302824162442576742671217255656691115498020115200281456290515573199778722510809223350680000473849521966327241414790563745536576948081313162787390247114427082329731031167674687401440698406278047173473531747913675691659999915242051868782377383628883350233441241085934308675397709942050561424648988144810501185296807086970932719988819964968858858935639815477831931177202366512384953915262804772798196651413821031385438324796596956664087541763378898703733539372839378581595878310193214958891568174518277631307032701980498165894064691296555966287316381577188286100432658360661645589142145914924830981256299519770569438725437272747272624760925306879416489380590202626406875072441481293126904574070364344822136758949487373950400024747691347582523397050865166991358496152703656498911935163022610018597764971419001919168477587929584147095220085471951798209664396851787420962753094653388686674955743797788099175433886857015560211722930839638919592283221869300982726530691400474088454410924523251111835513670055057443757336133755253832558028046942630472191194404949732864396822401260173815082375478968932884221279336808420161390920529162305652217979954087150263987517918444606577747170473482731700843761523404343749441870465130776375136967905116312376481686297481874115858274044631741438792166811166511008481092682366795963374431302394437136128963660797599891836201430654784652551592047163234296320651182162815526531136769087132102236947957075853096145173357210753243237665462196435008103185876967000050324029580468313669330686635982678426100768784390170112281947233910359561320932646220370053157929526375344701160759070856749753616938366681647126948062520812862729927667256364598463022124366976067180769635881430633276452801982716560682552758984324377962099975366959638514314429985288149026399729536753974294813019946445042415437532515098686128769365743527353636262857098715019063163712053143896292096208729699432053138027414562785164959332751828080147403633171852894546089369929202246618178361031432669181897054353446679692799697791628593993287375921207051711224352241057187519132953465333590528733447434674792338771939586036445544102876068081873596798255220378988049832548346678588918453131057377088432935948129001638712024617183582978788258569156039133117670592721154210001073193190137686173724879454003073751726965340800019662087720413346661069638771605213295535017282630899627378048950107437131236643281327679431401811211132315024580029631661445946636057990611697724341619001096317360309387114393326230462912428117240363948409989151092441058580119997979404515276086630180548629989016863281597068177674856409627867958158542234794126136397611644566616140601259910042976311953047435031533764630373059568041198320352565024114018257614632600511276646837438180685650254260016155272692798745413266626989034991735007622150520471025658837876028642143816483827903581743619310103805221922179104105625629577716939751904521143079520719764407084934839486614586992272556154630381508383058711491259440034764925824795288319365591141690499552303071635802546000299687683133655077712121150999413681824152364515120810746552100334039130090829918931029047602369820443188845913244230760442316833956985460594352864051347300760052033490470965213129026927671410330434329239069738424359966018408018935754260176803674253050368707996746267955420888267898944476153784440583042676225388162161619400833896138760545708837949745947372600494718393749978253378664461508651531853799287294577631709894756813882616939281979230691239168026224247898390022463093065295480834002948579239107068319341595769295816310653483906700830210787268843045088143288497191369059834398843826155897006411225958358163655495193690691298819630698065825917976772178946712133192481920387555801802829521167378685237374821246453443000922672718859059934329767407106125155675341684091282202890379212227789437353907906071256338237383372726031503657391010791257204438425282290785014495173222026628716852372160299756151917368752806605776010149155743084241817724015862844782258312567930637758420262279588091196685284846841998137046286656819959089265659011666790195469018586426274069913533024441981926161747632603407613891013960571026267756142728922179431969522978264859346527915016674803310197545671511636156704402806723233097915338913030232632921677506717499821001422627707460343435276845186530696973720369925974023118508221168396064713422047594562940815323232802286296107684892120748254704836440335803722840963172987389357797114500332808671266017646188637283433188957013167480704580062315669972233809777515124237968368296477043412634831255591073353593235339069127270489307484483551426149011717319765282722141359229988245263317724590574352604445516695429298263269995973516264761498156150797201275811114287546724753665800438116458336236857222771803257645032749690002641212016396321215372543964817243436575330914211630030833287597749737653830904056356277442260811234465983057577558256742330992388284681297902375134497167609636750839671194633058404527119461421315979342520560595142764854806194069698426518408246262123886402554195961059525040236491231244055944790738957702271940958206347794955533089928563537216920453972736597032857331462834081180662268128796875716995531834090686476840813393940208757160292499208094428578130872783506669258601529370264441253434878471076345106696691020790903374044812763786417266874571978741419085196604174633695750162737941549997558088497672975611058130527044181033537043228478386915549674903950576850826863902584987694049890701759078722272616813665083334472632954234739267063803814796476256693782010578944854561918788142495572756325507126876915787698070094313549484294113119512282380073842819070009256300468243574608209198530973881936498915106061931194024077003967363528109735902416235871385939879962097800731070077948867003566235903428559132286418591536406062798959748794988676785399937433603267339152798121430764491525995596406510919062031147339849895029901276446974505551919192966621103718173027034997882827266374862743353392735982787863257136362348186801184601346337959140487244502103804835486492964364318766515987013823593758221212475236070295037762175221107501459755190013629250747222967424151555937510524142323052758800330896722612382473142190289367268318105560746712572272252809388516662565736605908574357353650414204469571276363510791305999501901240763169064718646446284941303116385505876922614977703311565121541428829275928848990639663726433339699515042085309468271643593283646126073558476269513420062633422607904501882283858655403555643323724467049641832911952709306776211347559295312702583203468525580934238877528439630300603134362376647463927803608375835407019110531497742014257459237048061922914694891593586870337265978274622192504309272394911587556461229076741038015534125686877935682067271439346718510803965286814637769545546035302935255353689335418111978203036016903474017889980608872926670715552269731918156943382017134098112287575777963551360367888778483664727025329790912793467764647148649719780799619994912705217862845106208488038956949836131189109223274604606555370483376720887137902576786922279992669514440710412213027542721701129665437868040963213982013841940709710023965168048453131483166479291598833916286132462239341959714264164050713026287029718730813073524258858486047031343829459912127152275117056715635707959279045033743006410007727478891757841293604766726230267855165051226886958594801925993988622996476930246710234145959066667937177726834607020284870080674745503256439856362623964192691259252920395546879656728227872533848498920243879357916163809608617353734366216653397428758579111231100175084404672280108260609177827366614282633702176282222335611880982947309608262276891657575860375403937417152154199933308077356632268344395232312383554611142640193174369942178657948101818491804441101128618812199555917732015066116963925633443300895705729508799107429656248423136549394893352497008895876900609487895931390337766434101339446118076940718590318283339932654991566954756571483092287116861816832828099028166836287620788779208796399160216369509453027050453629300798646430474432604313945964577216175265014724612138951540346892061321590473573292523947595446107506530896621255333469016014223950864224687520710599836635542432820815746248830429020242315439380273218835951593530217300912117231837015336409864058417808640827414655049785881118975512894311188188496156706542141487670759662437022188407207888593725067724887082395937173015876471577045107394412243845690426271351996260749339751031864488652738585225015942341625143832352647212983269375548986011841975163708600411314059331119764200058552061313982320241131465592429541117240885054397799781236688337842028685873064642126271731080999729068665762611488569646413937966931440171130117010509945487895812002722247096932614120443170423019699666602441127839948198315362347935229812043678338260452102723453539224279794702139811265477146705468295315312624746366260917410223874209543571147041543547796841114000599383167486637370788525663007017111832898127067384187654871069948282138595437017131993626055302884284416197028319027621183611420274154582957533961566226123084411657820397379345421217143083021518316486967410632963005474392227608411298126747463014252038681404342121497815373230091086328340073750749533109371239032328063492349190357467441588441114538934978175299716316680666056995988961751085448130444927402060367167335644759443490917668248507535126981259033125174124820786114084569687312728519817836001939031494883232790666568897924444338831582866395272136791013110633981523077810462379848571994328772796044450908057381790313768456838919835286447741317455000633347126545843374534199717897073387442277887206805692687175610017290370986039978753435165187955407587288758676970616167374494391627871382566721675102488280537686743706635242302260296236735723025662593870900773118988801043215599354183270572247741702590580757118469872212482258126286170173099450598544106501335566624522030182020536926176204661490607814077107806316963502022382958977065324745036550040914337103071828159918766994531612635057177694210442253697791573468357088085273468143011028984229771984602883317860669678396735693218719771173574342867098746968583223227464189624553940615714744438025504175636460606214224412411548831688371488397816021200401479394470700981422710622823434565934751142211554733094194976138237071352087383169037106669549378314181007069655431640347108350052469063801536128459471951147074578164659176659595352367604784880970152493174325189641754557883340238811923372389873606121651864669786753601420011154921138537843738945433503756268379867831048977715989504729472031170841118995598328367310053693895539942115093981037921139619117762793524982623309932299870844481117962496524296136880733457343336423702004278987571892168464090679179338317283436983248085558987269030231641606636773026960625992921648851549268278609734156030422753813879958001497319124493803236878129959292093898268356339143448221926778774185310331222513882104737305722908446763730769703210160094307895962752656972132781030787091319475455059051658364226123938449430658423191970852024850489490840563272618423243894166311588968932805576129795190545989023053341866277608191048242394324991154662597851375715278974169055049608937513175168947228873512315441344460105284936563083637842290936430421374310306656235543831346914789711019279909109560471465585859018917995750868085503661662825444654146645003402565031259054368609705546338700651098665779186229460180260836286155072735619081865876480247837089324293700968215541149844778295245610025377731592983238340702037852355048744562452645210559737505260434525548865446557600232762299669671747245225074750500903626434985845302645323193593152762967583243611548446556003710845068492157380031698345420168509808543793275261746918059263917301996916887414549060148678247860993446494784049747470894848977684058996289684692314375954633447452008983333709219019902009316341891438305800298958401305520824241256053941360915767810063521335568863827777733379396132382908340167301261716640510485945358162380729419458813945846819752104997747899662507386935460197070389985126368112966035159663760160139290523101731870257674277243635373579509271418916566553217220473225185768182707480705542431297323396689285318294637323256505133912574575136015814522170982322164992843003938534905038554176022833545519379505073426364194153778982785897101157830681372161253150561183236984497680442277750731310774984805128264790173638390180177482159422142446306944818901699961408246697808600111360031373863741259831879811738174401824000456505010393891417396530318719469577868038264972422551932532546385390347189664103374963779808801021639153505196361244656611310787613722402018322314077393752218244973946991166882523198083717794770736805253615802309577908134419649767942829269092508824749587954219139098386007678810227646031249576554650557730964297305940689589120738107400709715452551138998697374623080585512811480201267891211335775673480984970531407426912371961103774111958948735121546457692250403486962479384524420908810696359652739947910598110596791401947564091261974511430352142733041475615168468352902356468783080919057038162960423413012495982732053595843365795326102954909995566714283366430791886437183803655837976390015382331455553608364569953716731981281537868109426726210598127480103230286451656921120603650887820398899902666134661765866824232443549373067586911475776917076186655971244203753352396405844870902974663376417509742625139081599600832529501914905585652949682119968904486173709329376969324867487478336278838056317427159614995720565079009189733462123713951172235970062952972140812361771931889837345306905525830395313462538451970827923271334091496446992682611499269316711157975924005874260036079887177628795424877927358643899919580168587873991269044619466782292019386252924303528940479179143734344666588351708952327554557638024100584226157546222354412059833438749599974833273165722773411251846479619238285286245266059714201181797342188373060406250839346240095789059668650911767714570348950993701515990374714512750272073106662467187889236815750786674599285908318801495305481648054664648250419620494923621637940194119413694675431257352343925588473301800082325843512731078165107182907412552324423740522033392761661652423572523676772509382334356613891907907564108985272624992137306638002035301987641353856049671085650296189466269057747600452877167635653982661435100526058196427653176145661938455724839394012031492490467210133635264700990597476220323065674664507472679151917284359613342947415256145067533447673205744108892224513317799524596304446918445150075265055921893662225148130428504563888737049709188777811156399766054084845917768069091859960022957317906162832344433917953031876976182018557058407563885615236502621258479868172999805432413095465450611867743835311954560804976536281193349878543740955687835963535558422478841983663817215289352753917020710487982607750453145497462045500309792551672949045328725682034961069368620017901077799924449364457665195987952222200365893634498616954775506508156582550439841982894945264535113765923925425315369237414168778461861236233117056896552890772359884679887559853215795118235389627157741684715649079014986797746468264445738155632175792224004670536492437224504358891548408900012123687738457394918706087814194710006627089882020431254262727868844040243265665315975755191656133733860033111971925864376609448988757664408942936487536016395690471834612604290986173046441915399854146313763551191717142420226866033208040965068406981425721504557016672832391766105847333214789108385904085056745631539101817992112477000299992797650647302019968130451990784073255162296111704070560393355892296803655047693105065214567441650655105134476957789980850189263487625279569949286015693518826570610956563095184861002955351969286377543175306392614883091329979582504502118061255686157937300684816131857777376644741358279903772681971460308066058044469681292626231178330769263444428109130187166388984498765806913069284200795395345248145553151952253077028311768961407533196990362620827275646998152491047627775892489726037083839247905298920660539388764185608038145625652048040544216865494489990320088379830642394239079010102685709980326316383740982393391787619780816033784715533325762096572148421320235113141525081332375422920828271888224925248333841565453079996395102199860291553939898312108238845836220973882236891789264527513910704511023259095922086792854284377923335370825322458324050797655919799621687120535780419632666003546096154732778633319714119606358656894488435436955083646844517660089238153461959295051736889028704595774882793077392562615294425999386897352867750331480106753270400401572538496121003443447301414885705045546689907066320787114736975965847424837742689105695935650798231525196679350384977366551565395028678267113159117739657440935467284341903618933128828284609720773110818392810537155541444959198667013585781806642716666950086996469116061393781703386975355502375337601734554981657725712859113615563509967333124312564401077031794849400224521462876877354014921779932553258963929098108821619857307828371367811464132598078781016354550505178475805740497905847717277353042472844801908350597832822709950839053018109549721207376168424789762216687526802608957776586596011427234321663544849898544578274719068392980574115691847950390431144394262246520116582915818309424461791508844184837346730612083511584026905980322812986699558036816324649270703654858229630909815193698268620450719577842174298498931886348274879123355418609641488581896619994761080688034945308815166165058420159577637505602393368932964618033575225358844424971006366161969607304108840287974788569754898652010200081797322970730386601382283731428425371041176730301708878141175968350711680719675431932504277911279751750818405473688943544659211557801849923972745049579063513942064937407771277768505958124959429771336548907735589763136142797845327487833327104076210766610175643224189175163366511373310143140104114070424650623455744276075663331557086644409164512095887433697553400449694599681546552625839964931890717477279333687451556850074178516043476696848224306593354978945490356928580715482729896376079260305706570740559278177581348959255960906854137459026086395355843988225030477049645296570550291272759235657441385818724666805553378042261294808036604235394390114836441588282826003778863841602086478842712235172901696001513936834107250166554434244809109736745204565509446761974933983516130365522188205850903992721848787468233069673289591654034832621648731707331142472453137973372007142553497262471068370704851544334262666930290780511281377263727056492570779556941519896344528138627205703054286124615690400445536198981769597320151669043907855370469878366752193132527976162236948766480062101483763128613493214133836894947127365549785505089990491827746533622269265856543369561939182735625677595067981103494569466548048309601117334845803601265031565434980886189197508855544230873700271667569635924421607800440744665154292181169636647937462219352947342214699318719464061387882687348742696987566334035032535764450486868227190830816654181209727955576156627326442039842131143462487701548225450521602124329809586070783458390000668359951546922733584374202568508725506935959276716091315389760898475205723956993322949401524657678903435450848891865816479905826805043971504139147648551405125634367824757907577635164783354857062818187040122097231143174937360225449121903621526371314760814338110844048776533626246253346961718325543878607791044134156924575082203379611566526690325320648401864545997709252586101244395196246701223443794210139905009698776868598260251888658752628902604133932970238429147547595296127336562299129890746787596868042351661180864026356711546637810488375012353802623378091167632477318632502558032761143109303036331548242521685776747564832769753630729665737434570534249948522509965379040468586689124222710367716517952402813041869396999609815686780454179822300291777594951565686922109200158497794004336680321389743303163363123869928507849832547139169834186766668618306789982664427722652748745258117420047395909191314767711422307016631125804469539498839021246302884320722759127919610727804304636855080661847043990898846332458116975275336088890306871136262080630590665995649522718039861172893151868326134889187197012855681366731666064042404930970831457800506991606520136142563650582735047430331245663346464402263705259950478319403487006177966684567285946963108992182753935513910808592353074291662027227181317407847397938718344679742460984507883459337181639855020825580223176925169457414661763939616343130888343303409668586216919961435288194947072781980985517234701809701791607756585457402648310627441759564018590153816113608996095333490566224380443798358445747178497310094106904287049632628336113124385168346503901805908818365007401225922053303530969452297355770124901006125518462427148208405769202467313282176039514127975150527414693453937984634221241122517455674572844610872063557495176151360689189874017983401165259683393447331179830965351893767553725264399512069896460786291582827092678851194313883174465547123363637416387034288344591965379001950114476788352566106445627452798889513513324550942836003019060509403756008903476666814933751663616893764156398752998940158185313103602356616640870706170166503299749215867013876050385199026580734499772411213347734399671778493469608737595093028757557735304654660320314000734406517486625671692334755454293119841695207004960002954176652021330605994023532991646778370861764540315154538017587265700666217036617522925754780833421157361287527414376393842426686476185550812226147620868481251325602304385657312725695559898451029953733197562883251634580135275431373745053580220955167585010078760751489181594529801327651373773624770727979775766910178433269720118252052360999912739705019408206153302931564399276042494856654038546591429407671728767221448457255342932599821421686665186487329004599801225375111982785058446419705378017886847962416613597408969439579340630609021080056371913265659750650476169892903937891479003437804352041449386929545162063949373502662053443028800112366720571805034511930226765397146522552718041566982557798184583507805847529327038575725945031465036200982344644404552603016090391129494132848209002444353388203042659728201885508329525721333161484887797891081742203536797960115330075245090355863684567794552972140203284567922038660529815388397725346989648561758152852362392453187042840553508923817999996117485304720465311508095545998016035840814424923129443754689062381697387680977225284595687666162469109615979068189252199354118607421439556529347013303436906511792877096135972682167616569648353204793954684599675280502500541911747021244283806299201553874290663539005645719777464073403156451331632888226508997383717835989952193878008053658506941998847144486757904179825862924141813452574693287488652021128356191806651807031927956463426449076918046593228572274740442582620727881200670367717997052695639160138224872240442287449152887667942864741675685043090897628094648970150142856408331446782696443055754313321306092315521729684341327915791093553717980383738405863207568091797089075246189904725867728489012856328212557620412696269009282301332790540330175345137798720519751263894088116436282130472310018124736613683303163749314266289491252136946765771532237667329196833828613999835101139572547791428146791112539774088483482162375079463553412442137444476631474597436340831851767081034401093132781795265724216749742930797995678971150093314321033029786986166459809732222337749649280372881813776629057168590570458016756903615085129723830351038643436893874292152409341913666815118992308683521025300880947909410131142902972438080894395539029999534485509538585239735857664653730531964798293706033635222608835182875041232255202061849394726824395289985391408689505025804065287468310214946767087839401043698785634258729634545341219941916596083700172756233593021898278725151985836403846352381802847400449474015402647699280529494581874100847209059318779812918974023879986184923880242418508459877933994326077881686949208207392981304581740038512814648716888029825958487876613516643207474339438701005620797483085085486382830600307785131294437726943815368314035621399341624125931946016483155946847977296883539980173944697485663053380728457671239808206582793053806945313450858874078223804001713899492837507053881912367815618252228186636172667180582876897763567671606734716865215755793261904243876700922025788927830232775472517649895102347779762491771644942660404436424525506055453560610475265677461608692266707884496628136167929617593912232564949708196047504053739928122588626576348296377823280417561572090755178149448326769618472732995832629574094304897389258862880383298404436354209558086045569540494978329267185213100972695258780726779085954412900861673831679480896352673527077164091150045478922962367198216882762720165595402701388406628281995187333224230491512797944018720396183709566826686878742083660429627564087385500971522812086125429413368136951084477155198728513623879197083128278220990497872108917384515529087216086228199496524403394640097593240804829922125928231253810583077735865757885390695461389299088400279675441151646040706993712988936495994443579759032038962610804348463180641450166426712923117195758002034540719191092826562133488374754395802423752583464808975621759569797134620308796233748905532203753542798778212167741100584340930193777444271754126644021371079583369680676051449447549465264227283024510753750233703950297532997597692467193927329393374678723153350611831288089396405167307668624612971346440870119606387925825752955363396354185566537345479609876292194733848757604712808558243338706130414848293794078897903466059719850185529424214228415655903965297904856772270095246375303384612917223656774458121563336535098749853681092750636558227066357306095555891855589430909869728606119743303848429584542836386805689451958987041354595857716380614754205780280735687286195232471749767620893096187886384408450271223341396582021429749385949353517254508970602431970477570688481611167229497965161060262046089396272567039814413428196546544477762526480436520494602194961604995142698167134656566532272693788402945415761534472280365840458601256633250110676481660720327669864343031402957428869275533810691513127332725319091621388232248111338383762498738295526365683147942124218499686204848041058862186890864836012339689217113454710202162659254781199423995143401573279731158110696794582828876970907702709394027857514727315488496871713248007132009971138642703448263140110052573593188522597206069080360928054216840897090024385898668225774554580999743244324525711266927793040152088890408297954711820825932313777326157084410003699244209415080375613972449625415823677556786917319992271257347868461693974819032700636942771186154883699659257886866139469289276532963416466676736065910950931258919301706807095108234647409931288782223532669720158071851980160773202760863279864722657547152436068264239785386122662560904375706492036230249244651582815384169958068752808714003698109463951466503283907862084404612014779114947572060722855222694119259284244048012434509450897434933368852948357272728467899582492609083812936632099059968909317723861417753010488452430934953726467448480188545544679708930591223983500464013445032263871142399540761961205591387921065997302995044336901709202688690855309665455674470154809044344255027293851237572938178163758076679878505145209275160918595137408343380186826969098442706342448707526595465637252904354316836188143949699823846138315289834669810622312376986791891065700129384560660760724191150938221904973023159193933129088640054959312486932532359077362975997578487355520569936676976810181604129597599106973868924589020709242340447032465916799522700116429712122450231175399100730080729584029693719188787473616058840124941013474548370108461009521027809190593365216099939739553471098840190491093865588217910715628943976819297682817235702207418245658846234131697521086611555926705244244938497127997887480168274139823722546465177354024966105449969734270579954538395741630419429247895118619638988514986105339325502169732823532408144483487771731643976145736330237451727341215380494388254229652037777388035553573125204772146701749391979321892141811094265750240642876456472717311999072804421324329603394498765508031248337822748565430044194323809796798701641574892915265459769544226956408823602153617816675067672981481617796948951117796615908532897726902260430313836441571125025857594319903296649042413663524222539950354792564389764097947758632245452283382899708829515825447950262311113522487766433532292846308773221687551482229395044621266397643625315795287527220726734863851218605145486209081827646782637467879402565758197799844365670017350031462614598872735873519455609995421979967935283973846739540247225128514025369662895214232055430534764354079397260104594812788423178580264530018490176636269107271838151980939639148580023383995434815507219608527525038011257495270133760824531898885875667156639163765930427924728392273001619480217698429863156985322548758973173755068135130299047836431810614213394405457016856854158828886941604956112650746453232024987457003163689880339267685574591005306809366346604949286815615754015453387679207945608354960129381190925373753996117731718294541105696155168781031048146302925745508666578811034052358464605199262200898583768131019683498982108710852981662746373874961955741238766648716794940557685677884047625215342579788084426335856349867540638359308943630428902185281134950584360148695477028468909228195943015679920799767753287942242567950019789042194000248986755654863594296860128876884780394716704479477863766194866217554704961905307117049413246167988263418739304139187268096542807361800284293966127353247062377842208976749357683711634435657616341820954130222935867526987283726134128733792516628392975787982952720057310755295507029218375798506297090108082793365613085160375068780099825617231877480871416512169626312463068584994102201027272980389517928192658702929487886767200053692374954703559528138585462040884592872061684707769153430468082347196757577985514368699860488398482964336172521255266319297353339604906131350908185333745343314377431568145037929048820197146498271692849568894796111508104250400978214155236653400523778883118408243981893220040132692386144623020387290759751123880814686795409706353895119948200394479081125741740578060260596442684178168683663162023047345874294925820731653634218157911101991402195920260081034809469746743665022361793033074297535038683689725454614802938019655755580383291060717333136416591478590501615696127538031234335300949664018126806980037789834581943983978441299955767780937423215159122819709484585574744446512598779026378326330759637944208103684674739259614984777926586887836934462249247751372040608895162073125863116242079294409153036328484857154343944453178233126381555656610747681566000991180335543261689162694060753949989546353486167452610565437427113759288694307211740883112171526410700290652942778500976758618328538761415824209556479320296057504838044641136582896540309880653795969328196041776000028544432095578716763598859002382560394560574654086198808068035175330144252392469201656800204169555724331436256887090861823843178711853690653598060288982267942549172779029148719925866701703697027132901294475973467616492689198721342147902663667355907158828490916096910508995937205189896278982322640734620338098330188685126501377706736973993941634677412307341698348721903050386518981898871048809180129197067452160532517439626036777309111675847569229399594919816586409492662730150387577240283221637737427281065074897668405188507761255070229017172415703315846794248167767789490256658526664891444055358294602555824985437811685299179251159820009236452637180048889006575555660841884390334507002555147105315330096928996959885900715133582132761173125647082236337605583196822500036619149594663779990928344125493478864134291406545943434981240675266317851387985357779666779095306559660918133285343056861223571823950004548772292500946201573204900369001321995091633705316898832569138923654457528178697809208622064526414521298296801234683357610745391226151621509046270502502087665016339376637401457733965674218409398588997075671741614065152957956607468288683819421246852833804996163066856716216803507614714623324412829708162266479957959152513832012213253767388309156881619369576055271506843032762030173594567721523992524280493114232198040281609007564333202045781392778717419053050367517502448190511424345556495611316218603562126978408039420923778116977179443222304708429137986193973639903323880084118018637986131134603864767186233635866165872412117813557379588557246023334939232520514022937202695967428355520133913677775061231715698800098114315771381161613737925689035488461041600455449735007692073242944320070913966464404780488065200898698630864136885971677016828090602656928144668506231083608116278167459504184394639360544163277311415341750103160551241652489031631824630810622713297870849774665701977113570307813232535202083800257019295346845963001248569263705573715518524500527997311719254411334391486736951140032249046537340021034644666248084693804964865314175200245958435429384516294292705846439819846221181318221927471187765357571737497983327621379487399169450293722292678250442703500303495301120578280106398914458892608183185512519312337880990500284620615016284414191894900832296043041453293067269495592219291444084861077341450205400842982992162814935520284754890269269642298295920766117596201344157867546482874529288402269459391098597990474716668889063255414988420415346783282692454408929285597470486497221423993785212356214711566628784903133526646431361772154349830186503499417788275156704454138017846506353789738854593323587744547951457266145836464602595382369170519715497060615500427727428012564684093663222386255065895205807148428099324437790367935675739859386073436735840246663055911790076528448518746903067144209053660913394074407400849366933630589626930806253288529068470978958710087770187560162076587057405784266449580249908479996225476916707596027041882195450040308875906622782910169067211497125180439345437943679983484893321184399286053667899241376916021110846739784729427266593670151121847822540637550285703447198957950794700496481645139911423639189791256699898170816068389021689637803962531433830556293550114627010978801395273080830200012133177664017675120608130179404384657711584835870419326195627223256420841624319314712625596141909948020125961238548491025452894817475253107856761390101169132652639537485377396697563068721687324089401570392727315606862597652805828242377528259742788291532984256651107886831832115024845979047545335647578484514764743286850232437792169436061389907797210826253618403534564271057768018806763335033412047101042682367703622829565737041203972544842264644687548839085440139958808001284861340035407926600310814587330552697958432520145948181185234900554240946921270362913241467518303804663222168454966025488198781870254762156932115704087381262994362675804051607611160915087727732293578549730042421226749810497031014490290488803530988617105813332454968995172448166202030858964446519745716783711740784704073406770438057921060520625029971279669895139118811487737615111856264816911726014358609175078141064634247192927333806965371019990633623916473882235387674036739008154759935907676352425578486039953055781325493374658734286995189239853977706438849459664372690281074282759617222613343130583141210161432213866151743498348703365524155882845123003831837619095228244452988426273066623463447819718204823518477464799995986772033583634079405566994421976249901534174758172198381551473338088285245236720626131169522328456608774486210743078617295240620814336068124384397283732161342366003877737911031032951520623668784098859898144681005361089025461240306099538691083889310733005458693401239929357035188600518300813727029287250035986515516035370685249909457629946831291671065726104531943079991041497668488446709180967708756520894874836562093418302347626969663865698923701361956123573325211840680608864369952010294548264822938598964855117942415643680263826127071294830371542095863159665711686885175899920278180504994498117051109604930759635771380588963925321477757514924454910953036838023515633884849869443959090392613063258950895331171466547462097106835686238684015010349972861998128561931074420970575651963013354632207131461018404264489597773862905718169948627047996617702129047341336378777490927350114213457266480630496254342706181410075491674491820335388535896337330139767265798189464358118635128068458367709656502535077723758840458919942419460701946151208486412370853587732854179472680162597910757265053799216626077721379305827804776353387378969257861698213727069463920005509007688911275695279893156292347714488074314402277766330008420754803236668473639151019556536942558210288787446007177318813947183428653712186054320964500835253137209522419751745891406217260107091979176615207882902091265875213397394125749833259992998862933276533346321938265606945211474967198392702106719500672717317120769565635816429560607508905353721435707740469403806693380151300432954859784425074541545398171809251844302564793982832891937061105397016322568435722547997423030323971469991305241452248751286059438638718711262391912269648716253786065967349928897319068437588135341962139909476835662262494794112674587771504368474272071156521875032457075543291131533132982146379972501487478537901249788290638687705257371670707928797830377250964844369802936383498336562308975816982424791426328870359645067768918955867951744103483271064599456647396017789977378031718630821323325926725062046294153320966649266856012199998413304591490929150217831937098277804877021931727679804595261474249984885199308365524475162971112332371252626885391480413680763111266785372951757983895962090620335400293669173268110143341920903701647516638382619560003875948916469643396711263384495909955182271803581616589243506713946889887084720884023760720501776938279765511005485685861371967516929264656846521792176610675652258584004621372984433806889137364927178363858777725409978654430939814019977010313989245955748001276690711429524459212998606851009203306666125309002013232870287294631762928569511595432586229736907053770429373915757256393102206504359907367016084805138208999287444074083180669440032859785347554941244910278388062262856078746944142389243174242664944794859330405382765096073735092344361414188020372748019425644339171255682585269787588424628192774430387272076376623089024308010917376758356994107089648745871612576529975706512697971129257005993736004722882849058701271204521090490045721058461049239137280286194564967798317800705295301453534936099599413612552328577981453367637442354344059305421499115987794780589498410053530043477723566392207418400331427689616429945608081619559109080612334498886851872549915893979777020774638557633063135018599641933103892575393500970916801026985646559789651328203016220337765999257793424546659031612993979584804293858681504601937066136787379699629520381590704983531407292778611861469582382385274505663353625157340067945563556711254952125415007002990284937226170422529784933201128748589223813142806797919077272954659967563827068271633451826118141127881391692892488600957038689808057121380493129455582000649454812396058583739555515487674360763400179808306709487251585429326025862864403188373549747056560857415322031422871015838574850035038616002645226281673053196706137184991199242320884383113320548586542363278015846391639504004552564714201193784629437844223159579570436824896037626354416645263564244015583634811714213601619352151697261913007866167371106284762308096382811344785465098912497943761596896273734919346517706306124509918828845899631554201285704620954250251658078210661007918740280494228192702419605793153218878080511924350692466663416833210078977555344526147769318171528979284880140323614026042605523869402920058946946883501823918252490937208721409486278635241062281820821985230909324487633917225548879404863640267395393263505195683080876935051518711983190265548894774551658353718850199760824118853534515672240398187751470411890261073356308975648143812891299190649100467669737085759674623397818451831901281889485865664850292443781299518342599583549899208442545862330032033555342054038793305175257418867515589123759009208690706988484282257970091760944987015258757713483490397096792989321441796667687968075260353280636273317338577971434070971554900039105754418785980150785002977707802045832406882556165004853889418470370443749449749832362732174347843978996638337646336641873347951993773499995824178397275829194985309761527667775056064085976058064200225912782156292802253963025854855033751095924136702714106663538889524992803448683221195792504737259661395345881411516013999882108483819442219753574604395972945370997410435310577970713099140063863708858066176884273124335865215191520316171679768151503830806717422794115351142360327519142495349402066814239284715247993265390636068361622795986112916274618347970028777050683148005183608982346207567167040289175341240715007993350893549424914002621819866556861819414748752651678717246486060437953223547358953922526004641800824117115287373211412462507363489215464804075432282486721266753157028474351165193580328053504117145774356873536606796300103821388449812023524771971753077557721761057576748976480483648990879333411400298805246545083929366491738529213119124070848641611127621921687801127185696344599018556927809135270205905132196571443808876733897358806902345870297256659377979570749572503057170619628705144709583876589363599787999320961020654688107500726865277576074426282223974460167052188480703399721372440455578774623768040851471434972047621502191077328753233913591524499157766988187450897420845636783053996946276048993494761017693322461223936943082350166271287737927098711190840035433703407585457304948069832982541349669332284476629042935827734895886962706167720140408104595162183211790400315169133016601830072726958156584888659228588979745429247606786202090353239281425281968799026898157837167663382356704102824672345895143889218760963177433241132262419981899735688831677634608357282579455585862329050618596374203205428674151071341471929555383927479097075774928345009545560040811378837609383700225055454674922409675550853928812991094582461064518573631341150134011281585096283976854839768736182926265519708251927837571790312812136705394343370762917995831389048700650367560730375149072869713125560978710520103275908765539835508531401643063734765541561961939509651882658702822904828616219670067304215838642096311739563977832998114549590822187193824435463570525471350056692573560724013545451929640386921620796642202811957321500998138880941736510620768051971805656372252265681645984542842383144063704105022035172822846798860113878730594582504984667036496217253000787774890731794326287257885522468344794449142969922489667080976670881452479900279594901498202904511269247871898223354941066753692771541005287621857034491358786583949087771976335306650902495727316221360815903634689637139619735103830163455585799484209014779379810057373703204803818807127323964555786913627298979442564193147422867479817174657409055033706897706203820014648350312577852771972810422425012686337871936978564229936149201087796519330871818107280417307629198571844365094606757795031014584281485455042459371052191085879143936688038808622707236057620362119085660068318619982150433745303762245858128499315801704165623602695124612241150261153220626982689204948450327334616523829618661576305969869703785841501245382567725004089007648918483699365199496049309819624671558584937973536238537466320358804354441304803450617034771739611787045228782758883039733845453464249964326059822542806071387890038771498762500094931377517053134571353784911049477474670248238680676994860897712860444944282782266342471119028644453682590545101683037564065650303112225801184434663603922848622262353982499116767669360347535209720382395730729321886034951858956654407274897294296333858370580682918651787375926760504019509880702128719144236296019947531139525771591431256430662582800085679466130095688488497435664505209085850384180001030431933239071367624421917808215463151696445844392791932374555700258540993569978538819066677778646269092287130934475955977856802147069647899239150976205396957513497505432951166167618918381659263956771941886888784708754562943353331973043575235371048649940539704321805418735498153706309410350464157278717898475284611983457264561914314167507457780263220578232348737050032653916985083032497438347852911147062112502929215308186747698377294565663318858731258797066639944690170603086357014844190169892691432069015434121908849484568049314329882352410317227308006628595481000131661273846310699501347344094989160622737510845336166461054397279909914134483135797240787169962489271962234999827440572279401746164968047589573099922858938762694872771057991575581761469459327457301061931051019048048342192917015730722227992301905221088211063283564047721393327450813561838241757359274568437492328115803807286503318864919607966822677825473440300103651064350361359528194790857545849501920590895638976469917528406532481393264727504778892674320034258583611286365797790708825128424184022353102799323279322226555302596940147957420560563407149512659810150992099818091549069615418507451851504153856035636085003663145745411403629216179914770013353711042370291915265414836069392298967193436959671230620142361475343432837659866159828440739856062442174434171776898715184419243310663547074327678201300360096321028723419299250161655766123946747616207344075289828760745227756520592663298936231975845965120038846356778229881634305241600556027247513668360651371931383008072834375709474333731799315151812985421872471334988842632900319687297204268511846062931317219866622722670360632795687177893393889616378228753465141366586881632460646416384444070586709492473816680176143232771039944778775508988734073734740265073718715765650120582331945581445539420424750573057473966347498844188810504277451184541734987615887306404776245682799858480678803488313784140987785788581904352936187858131872152670479158788635205979532281916429869585785036071571052101053151809775190055118623422459146534892522567247096898197855162360935045008363171486368205853412941177293423895099605704604562505127583017681963096343055261391379242993457957340623175918772360308208692331738790313937041401648498106021690838602482312578016374625386428532129568743893229348037649171811860834936292426336990238230248035218748539326157685812328838967613368310929157248597400008928780881834172457301495630462711011043124717512787847667409274398020009387029683842210777271249994586730505092041357469877247543359215424439832607276205501664459208490177769797969321925400939010316417016305035005826174752475004347868115652897628510956005314320349855069224985398136310209615497258417420478285241751653064222940628706253382966315481674158026401377161704710335989962329821483019335028586725499392821082119653089843952953115388945919195084663650480110682866397719461165525685218290375312198619921691350032390805168800753139266302916658799783764349713264344206616870705235558163389237179306506867231866193039535428379632762827190506550065406145190405174008080705343373226946030199600777862727788639366125182550497764301547001090723201363222241084019974089116646574364948840716364698993268940973671170389983662718922187008175035326910970667589730465795566084550536530003359525431237296759809087419330320959043204162837089102279701211811448128220709417107800532162417400456761739063594321367022073376997394720440555586487375370252650965385242166324826357738528035576872121665312336164704099091702700895603991005523358537767015690621406648033031105203419639465906408703703862862542414838528381511664766783419521393100271590457310467398103492181736631361704995198737494559201964754501286785935257226660502339892398302248212482915199164626628419200486990830153693963349932507816119716975307204539680841676405786668912496333337505847055311865582623882251780927693763956358523915850716963465378670663988374573092328862734556690220555795527161911796080948200880948355850659337159993598583356972676185616537776570250941129939723025965757976460798773170069575033482928605090805160800839093946564325869268733694399996163370945130826921461624974229467383819538659674571197478741438716687971549537669185924503764236398276268573770286211842327552795204398437606708445118974104989795868579982361359888997526742216775277401790258563319756315617353184768707643428968933146615500838890373271585489026153935234096234458640754342227614742054889735633920538899258304450714130785285321174667599580641432895543921888367760323207881227363011936645873857542643287005478886449287441840240762083292041915157100130967641146695945394215631395420279276237536724982112241692777651032959117051161337260754613565767639150166945113990139155103498806519137361484039106401699377130185805833855261018366732417714711375919004302520827222546890971202220320016818263792047564315600132886216310779356196927097468840355144278229364295620039560706938541273976454406723632978236789298877495744567539465606102058187992484579319245398232525561149409050041251955985217670574891740757177586652336292565395090233886884084011239517621934102972007952902659038992394416690001366176684212269671914652111199830891731987825928519305594494787619912954690449124275616333381654777109223495367182303782255617641791916473843506050265137589647782901890889578276713914678046375188682362736461228135036431228376785940380254957784680554602486062462548614788019372707376179367024173026973295425346205693085845355002209056540040140391825644139040963953660800635200208222427656090503178010685988696783434446957646251235594681993627489258844276392569077140522858211670220957348952188667122211355634548849753697918853870460349597977934857623491458927987853719901146027202240987306235261914118983563400860798780373148043486821096374099810699923431885077571560243729009570803435372846803215271434062813133131904710019884722136762762548988605848550334816679146048739342555042274443827410590659645812190542337101016503605756273075929870610278871111996794138284763837959842362276505226290755679699971881042555974567372792986444041339480627477702899791542967047443332074103203383032686376289934431423103744237667058998209732311363591514044847854045349054813610391596424754373094587265363831092433119411657922402449090670638001669163230627040069202661855484614769425769651732924369846269541767210716198214780996392868355492859902425098000078686497782068905652270033598721483045170925190575529646077026920699077734131754900637839169236548465220034314081394858282411856937326871624796662208006400731347846447917924777632597418404826872982427107626976618262650160244242122257950387850971255995602722841411166775961967772903497668135623229012695567601820102353654894998637914603987790465434860580662543415314624190342838191067100839506658320944042402545230879976011423437097258909167537857703847657628121525611289736181710989693488458783995787526583472021585167556437357682576076841431572761894853308859090518738838256690320504822765469323335510020526824693882771514288176799209294812840711762929986203453152726534762961831194800806524028027821337972431602336176784241661902428729891822484921229630009437153446189423599519075639556248051283347683051907153464617374635003418620969936694405192231848158998885479293105465440732981771926990430777907669260649366462224126121343400325957339747431176049505755799817136429685848593757049093228933855912634597805071306747872532342100465884179673915575229634047590965932316553220081087006875468547926070086525226366793298698938824557845807625525091455050223828182063942258098457487201337059975541991137544884649010432527183684999954300624343414994734134881246580290278154066490775226849791523511093143479201662154886943051599622064900995325903043700757467688137991413746942480609505333810780741624958348248242525291775101228911120205564466905769954493672686063752906894017924313060564460815792299076318942067561182946230654672166980773716836061625570818352435688072116019877228883239045415730181113475400434825534024081475912489787480702452125180174348634828864181237224626781232173481571787204825832953393601400341786626662048030530311951727544005458597896898209328786829808940835842391654264919925006571817708589663211582364728794080642333567045782788550934570440802590282582735460251931236486290711408077017393264858032033638455075188223125989875815952399607035439346255869475050200644272996258176898769448406734187595932559417197251711070638552143587819356462843121681903427884683212863320650189751852434416425837315748896633361531708068289716510256203728521964863863329654507898734044452462973025285726301435542947206692191405668889852447597709063600032727839883507880095543385985734910296435347441759786681141752314963957508675212859569213551646307062044817985949869083232679803240072117669832118104799977286409139885923874796949365162670764580826147300180455528555235229020569727512900371852496728017550380462818831084522981267097450105702839599919663478813221863234898478660433017333834764643187702018639765105858260755368301572946046678928548947153214059352357104830783235780376168212272599398987078750221865131581443505386366551710517234108995937794367525260735194236540177091376898391501724284437381797424386521171593082911307640037661343882468440668060611535154742051122424374412751029289748593444202804576819399504548012781061440166512462619535579382837505282387053256909010713550077583420060845799153474029703028197076332112024732599558635182573062574879885425033061511297997619136075498055970511446609273299513446885320947848384467165673058115101745084721317775728988705572401992777470902457627969185230393838902874127188385740212260293480579610216145661014213939226850015531759682854557512605759642741303558865484734488152393363339433337103443976186398722693425709445178007531418656409060318322142879927597062490032839936344508334467951361973325369587994229388958036984185210625786019898090800783659530251642881136272302938232912846923247157850564155412793151960254172125554734086391903856843719286548866561061577856771489729453876212624276023023574986599520652411508847483628054417468134000484145297167964775683486193049958954424630676841163727413343055031842377679267151622340144236131756423845246913168040897882383835488616739320761669495824760266509651678125461611617185950202831712957296525862623335018430902263347561448936487955559024154696319820811251896269389976772173965254633867033272322935766720941460014779438410062162130685825416024689354624212677759496771747443487138861886753591132458119888734404221715895537692994874441418154672717426491144909835594465151101727774529889751490462440256175478581090059590179316447191294485223761083943357905961317163496263684177055587802416850315040226808529896306749821324726123925329808487793324821389915120943459159215140087441252917472034802101930821077395266021102728542716199825724583726593568299334606323741658082360146147837644324625341050675244901353323391621337536273394810563375783869734262276437184154326387249454353462876372924545208601159295695053755462182497622379468617581292568911343561175652615238552746666249845229923679372336983301444402108759708292480368568901273280278012959717743920235401919194954966283154358616706970241175357539497797388199498241258571474813114608628253845388259447584019039852305935428598185947499502104701752916015690255309830791533404584520978236276074842393208248924694881595441684412351797449089710802659477642501069012723491202395392669238265384441856177585670716162821539738458399657392815955783513319381707774758554199573281139716769961160851830270209714264804778404103804196358717647301923877816300868509093253667569079153142587670519009130285901622546189738952014038943563471924298196352905708144036988206887218153988681404644105385608289924596079944926760565977639458236382370686542492323575770826750393170660573643229684503271348349032118969116860029245758591480596879547629385069697760868036270428487990972777871268138398065830357507382713933195804130676214095791228992952339678837913298993261473922458535618319854227938753946054940692087359372225230211459597994335856843714087905329892233686411000273119767924027934444583621904438732412135479843570925676517008574596300441668371182279786425709098505039471953942812576285350820797515906637611086717087526256319772154889839995477972565305326387392207610248387505566609723242714695642668809694296708271170836811196998447930149691888261717086654679422021993651202632816357684864190590123385979292035908149575202236432502000134752285664469436880002695906231404363152855541706376647415604879351330080814331486046816467117664083462369309430908937416771639353057980678091327458632161164467982322832251128801305298082076177838904148272527873510599543958344947280771672034039211675117739791297288214041301046271101592457274391354142681331833260002310015434412055048590848381246450823383247611566311651585705352220253131061242940180876289595487145868197408601947844019583197099360556705017241869242757069278176740847030993142317187283281490937784182323067789691903102515969055981521948952355057989397151143762256054785598758545212857423475129774791798769502312943282556538734415802669371397473340080288238034178176165503325225070174362384143688562512009444577631518517601722807994515441474927436657714069252998440338789456047388725194474566325249909951216523917878193241680518773282030746894382283262898381556011623950768693175980458606241820126751482406722272006738774444565384869317185740254581100083320928155420176026310199644143636021836778197522505417336346222237442219328911927641359528085155638284937716558458925297139685518790163014271330574122063436064958242865666098258685222957143319616839084197056710739791996637368956878484787757997407081090098912725682326313698730652474531297817389602793976550451830150736175822017563240006210648274628318314877933854508064229186549347056238406101358761581631999368473941627963037572486352241966634806727445363748899736708996132644132224059222261719420048528341072582714575582742144554676052891520925163112439184358078958390397338650697992425831723204406570880630127985126041022896315073261641668767700078938244178533212405919867113739691354631779917147131908083550741827274375921049713696086415294281689177931192784030652652010871185594931168468411283441148887834032742390067357717990254013055444779895881380694157192814310146891742081720055993613044895591520405021779378037073908353463817596373760456278430992694049393877038201244255915469154256824172656961395216990081541176467232659866712473416637234225720244602166627943926481601261166576507517645964686552559052604281617140844079073223418121269598813997262449573693305407957283116107696956978947264058295413062668786619828297569760455606187448076131125947994854264744994640162407222325255759662034988288459092555903429239426376338826206007117185010166470109519484315605805404110139574607635300691192276330338046819391929461096300611371999124877660024051740812258274264394474357548693270089799006478630373848715498941931922696419778138388685633679001246701581248484229923355098290607628797672006861000436260615095220717611638452633771258654783460273231510885399750921526996766646286356883455841460216108065373837906970923260474702780644238401039067569083848136324244547488974247122702613055177471010164085721270548725476545040100767271214647569245551117616114883026327551620303929006811053511651087578842153833976110848013184665073070474629000518917789347734727374669017010747350846823930926634618117306254799101428671450721157001862394451672419528891655572778362627215187622701079452011935836467195520468394394061608630746888196299732221063546922693110443619590716124160810942955441724017892376078441052724758619396345729498852648571856189164676642861341728614925173238051104223511696406047038431950465210283973819670637304268332577012785774074994571969555106078860252837041394521056001961031479507430374291047797384951352541233804608754690995187730203753663119006947079787502770481753840166260710047054205390286609087342695970373131157972655945235778093263940817745986856701280610104406697040477005356539857754907555547590689765897356322611955456961901104140708275079332187569968593299041675072792127799340670883398601069711472462619292805905912435076304763554252354924385874368737804631230188006811273365735849696341122193850468684647937820496503800955815731084138433284028417737367458625914293846109916470024186597464409363033121942503605600640708282429979499199147538153946458695824261479903074478199273022009605392618341122445691598373756272036971831967430634462407296306324957820262800240981264570859255367240275132547682139767378118249731293031871422372551045142702898730047199819042625714977260275955555748133207352219056405041893160048233000904802130836254620340202913375661208883585164217055785968132865342051532392003664123592418451621765245816061158799730366168449250549252700121529998936459547675595358824786688312997925841768531720162185672351202103882675816066691928670790041754869788898145648778974783234918482563983875016517060841938174771886443169015640373412513005307595029158852763632778665237510459689633990172923137575019475320237971620388023277360494595466781712503265236971240309083111073943511484339565944388460656461557260929526594068051084278836624663882615485810492165085294533014131760315822998900342699449108381735225606101863938143407059996958597264653219055435495039676340142623299251438812876765856038050817150689875054707926032210384036441140428881683543169367442422867024097551899414343005999210468294867635768069309279636052640443244828277470369537735570453145498914329810947240983332146813814005153635529576724122908884823535239538823481725079833075373424662548700344270663134680632049033473381569286321008709242983518160466270120957544685315603403344500583504367339881652976191103704553324252351973997248069801061725010717772964709519243277839200503851744296745608036676282756504949588753618236435757128622911559492733732839178783585303455067977960207021765455882086745084276042901742364619504739606851102125866846538180407906229740142221711262619926940439501484757816948040063450574540962527896782168401521905413450012552475675799904022001742902763822180675932095049704128720634248067844452218670995284850431026146372129106624449395838132694108383411532809832752072395591810178265971889962663264981851927030736256328807844115565967098086187123300204452383547527243710511109663335040126073368788295643043330983865237091137046653730451883627990423010135687332886608799678087461301601978328234739729115919053283415469676929271644081083216864850531384869246113875792270065114925686214783622981128397617622026577484309248872184375268075579394199806028129739044831356123627139556744491796529662537740024716652522693155478563029286053580022695913089737677629824853012316003148487831723776068682165430195786005396248580505969854235733760092472808544908532499545847147274784231733096735192194867854423324190406915908784908719120079597130313425366002433111299720811806980902700713461753111430908897290290544539084089604122343100279982536168249975327394617494622625021912922483245646733309617015654384180953919955268446556387491590131862701940404884965398645365739635046880456159997181232664767375695585616291590492087880443590432335935127668689571520420539760197589480569862089661666021610532612919884559537228568412079056513754188661603829985176248067357250163222565398156431678970491515327156788590789379068923939202299848765901348599932632543740826159075809954481746596270494100834052703177912550986037193247087517617584824195654698032830816536468472654152601200640379299555862469703947871114988217321221659115863315178864210162049463138014327810507202714325556550047862694450099464623574869956707460212916550500868394070216784723467887351012969675479323829261279631282086643461364082811051973522244033418519868774120863034644449428649025948218421486282705096088786967392137017013727848216063592053703525431257574380477371918069669564594072847102958204323067368648648385888406983153001128361824063645652676151198239287315202429261698177150532139593683173737888509334324785153916223627590494789931633022175573881524443937972179108135710838182685558472076957934297816231292954679271653524295904505819984637405242676300495160584127962014872636974188812503938492516993362912756747677710918057874974037882990145883234729444045723400560866600853585767473549478751105223361176265373679875524566208098570068845251208685396796854974925701944295141604508495843890353393540047342117763206427675611076098608130432229194802974942568257061131861808771818582919104252046587232075848668695461491871172380176734098147143538845966339521672970483025525364255521645088720557661430480818084919388351328887335336667168379097796693217199389146355840682589720335347723563294595664556864753707499373711011353696904786452510792755445409684097430786828741455988743301479878048356212365644369218586269250189797057598229414646168773244174013903215436122325149955440633675052078073855789653089614615962097366465131733932481962848869553410035579343930312261357755760804120878131758892462718954316500395016302737954064026956723615249267968352459790632737333430048209441353435682553298657107727886808290238951589815269549455369164516400365950405856566893069195238269171567567263585271719282192922121818321889017765608523551917603423010516914391778123001244944993175416377700786947226541257337549227146261763364311995503347786399232840895266902692859346066778794013913339977000390628856646926484232428393877301638963262106167417374403114779995596973146202829786330166468832429025651318685838514981280135995758623474322430615277622131231344191963586998796419004379812754640036434182453856577806924224582671876223010035959740217954409105797557781657570932664542051709471766745701319611733667108894839022967585801002172013586612327152173700678641919024134749587855549876879186623166478983985403270747210318115865971173337787587951447565125064977322004257029959075904711307270118185909332115021539661354954250792398754479445244302489613223710726443532283120359349979079027162134647680036436958675008878423418886770062356894972742827368584326805960689473913774062890469143091532877641789329550934844944482719470967989762160877689297586135896979265722070486357816195574562142663510604835131246315815925779193377513073366864166332365227020890858313429828654222046912167128934204947364367684727570417938721350477689898791449277024805465684578318365095816774808544192883913863718982704471239877903910607944155381829382320777819775742016036540839746737682136576801119010006258608055586028339960838299611871563852760677432599662592725580902298905518659780895660240961982692372023192023213497231400421442322963182645946481136584798222198367962162628045874534077808305045460556753012533774558538910093407091703991567583426437348510172897568070692649551229784655425896417640696742565782355055731483984845777772855154577899239757945507028297854699974469544188592406926269482916543167721536556169432794538912328693410570250565998481234907494057084338869275964275133551018670516302378913343486982105636358809778744302899272706075716498369589301249463655834017941066793451932210121172561497075018363585926626062788840272776059186759105192048449039683318609325180512239780145627080749902809067486564696666175243610740484325422350918255039716557057534024623226006723343498927779444969682876954005515688205040978421213232003110883940616132162745898125724467913729925326246372191356214550638461292803206118640481320386385228150900966247952468570505309035256206947585468826019530022167723721001654429197400105607703938052021660151524148570922336669353855062085101241548007402968097141064590347160214605740943316246168623301440610180910511910952359778760869546953678626239980002605518029357487649788039455782164242302847384835393121727182525368960569179784695357987454275272882761991776715486395264672275601341392428519318872055898335689997143008615978703266629066136699207184135372067803873049551593198738544846005578578400139898881212298075509574349859826191576745676364485845786929222193249765928958314739373917551595232613165612797930675661842444984364704388712576205323480854329046721583364141990654102823205385243799334964492131232550776048310266236435444318237037328917865180845220168736264456735904698788929457528738523800672518578095689668239984272115358529977094981508200145428963780759821272431569377508083717412966428457316701033109661299427060470109418975117384026956720437418616436360624210758720863619293810912957893339973277124508279692149360318935767595980848975130719636865016836157022229212337586475516559033431600293290085819118461397984979497403796557398974301115545231060270260390302704848504925248816185355336771921622842008264840118795768838739746806321251565792495872175465899989863625322314784604793384822315796244167609943017961186272078795693010168325187249867338913337065714781160611207568153671542512747892846003339993115331741354973401968553688458436309559782308558251344934532731371078737304457474973252297229113638910606229675978022367943548923378091646442591365903761452912594679345756329024374871332514447417667334725948285321037439321884470280662982987390717125019746750726466928779847739009161371267061144402592658133480636348970087453299098442983753729770605651534353715117510261346402541607055959680986332680485090337879699859263913281126842891615083907426716863631698739847031166353629731505447300630581413156488277655036172528389882280223925701783442583729667573047346180964380658965368940772994252469354209609073703690796350561305181487092928608435350869505354041695950329159891108881173018972040613419253071738570383763156574775383037679813864558660970797897955103516061136333599203163562234726998862600579198974154707664162194474216841539966250164154256244968777252492377862394219490512628036278967030061807746722519678298365861269804274666021600607436590762133163553898241478534279394897788502431278672272267334998955335698139530381172557922969048291238837335005433724691920171290066804999727201951254834226573411810432034757173958435316845359960725915178923515317042203992220490295291677638290538889120069581888548344661961714863895475046577443525654594614821600310729450309284798433674215202415189667947865710722066348319769909713430693771507263169884605619908196503673961781507411778189033201336353504792980363373703714416463436444857663467215763875978632054965063893857991193099436214138719099866843905619529375134507050079345905634391571142648166614780652393928906853878534742156264973293604137478648944631944720910465803536860463066169182291209238425802887237807627475734912907466506527120569090319396323457844326651855983965842911418197536236669633981976299997620721297947581106126015009751171310822503883292746020951289694913645669462407236186399130079683389734680512985775394207116629535235878955928600306094970283189460201404600517044145616276094115418282918426183321637977727461775645435117812459916499629144329229461484162573986929356826269895341536693540607383989351234896251437888416533154226594626900850688412165581606085802765536500451807660855519224503333219800594872761140586043039175774208547341416335686328079746721750619703724486122085070058954583867369130625658144910287546426450871308480242771942621140839025039776862101336114880717801426940387662976912293787888476366695173915327034124258068474998158250832755894931161131924825680046914911649966763174365905357484541304745363234123153361085861024966964862565244863506847424693499813693352866264875485149472772682913968472381023192820370494697934463193506182219320657023415814566864173257020335120877831424734145448553372943077400510033333222316365488116445976438818397788393906913998073393183331725434459669359098281868040813612124506523711694228940558271769737058765499324664174358766924995200408043855610522050509065679357022284028884524395520749928361855731207882811466133515130396270520158720917567767198715312162854719083943278599203039392477846330734133491428294032252657803458409136865307909575181161538196730599666449680995469915152561788802166606183851768460242217619713739024032037702685123736517038164004696040831060961218413908478230270664719913276863000842323961246045289149910111966819179055559897981964687524761267196631836322573717242598401266125134450576235486575997381591342455338738336789088403163222585842330457214599314802653593442205450885375460066343445625186021060231703236256484600948221989813380046926725072571735216462253272978266905806220295548170081352202000951210767109168922536138123082781287007032922705782667639580421508496287003030438009812210108408679135089282040320200755488999434043281725072143112453776419113519007990473023517523727281917997976326918454369067534074011527396357521375740186242359327209569011113690020612176668532116185016414065007882147222036218258473109386671985695548384963003743388367791222604406008229317895320147709323210286374095051050158990871093384541858289161188873110186449370911673909886836757488431349493992738575337950072996628755429925966401481588336085788561724900434421262140256826007770987419212097453535678242743657225492540902248585789491828207661301428767616397044968293154419260391239526226003176448417258143853825556631485603572888618574095750928943408205759585752874950846575527757468531723227158266818369865543922612975287169723623694125529079859842410505935040105222750203304692219793525689325262872698160908959459085469674298732819478962233718922725917917231717731978488045141727559722130669850278246933352491184836185968101141129916207370898384278008052682140136133629534598011263059267648007402056791628914408382771583501779927419066777253134806981926230091230419613218572788067857503491054383483740052754910350632643728093823272909216238987311426811017298196747536433371621074688434401580831434049951790958273179555978152972874140060509438974337206798410745182377334586357295818255939115701676158286013255639416019902081810806350435648917409869843860358051905395034352394745318254808312038497615681531171919484781381331110402473729318272049394017921570113191122743214090470543220827542714098786596797777583519700558438353273498731441157237425107735511636517859805859079058661087684710576296003072461813730910283019982374698647519530850965928911653104342203580013997280571574611827111808842481673250491299500541428747645255579738403268994509960040610140771921822528546369996303699451530328746065237151167056729606932461294104928195825774736829960217395751303619667193894342637572519996523200323801035800992968669721762666224104555179942288569016146688070637049995080150200239416519126241474865852493441444600807516118228459973088820768847039080159335728268776825629347530417346118893253425389427178545567354790606366891890903183798784974736701327870167704387404420078054044661713468625193179840392766915804242074131824279975184256228641242472035922947487552677352884381538057677133391896740217244458029721759949044770068752585599532637777544321817524255494620912888865601547580160696461537906035185432607060410408950193827621450978273122395862759060283821308732902345004582284702080794278636099121072958620732168650755211649520468945499412065157392660670455427383053623969911958662732008207538368325706147611718024888570042415157696404676038108976090206510620506298820015315289404857540517543575331424818842650175788625721670305037164030589886782586879968718971246017358713089143103736705645291164116172155509683725735445685843608972303105882203861076148954601856289250280879496787044326937353703284472250166358968498959869740224612589609850306986157808726936239241678567963252643486881509637708377700572628073954293325133195153782081600188356927832665588884686806153520237972738393792840988473709472274280518066331773465365487919624492155455770175135715459483423932892763746716100996054349890180771275192263763433212620185508151229949964038582150421783666674540196101873948539248628372034889232463244316597998742126864443503441949433859099482023854247321301110832384496670812148453915931511573341667656991149452399675250859578603782280882377024176049998137157530749036385195430413380309823151833488338100366609691665378100307911298122245660395493599097654751251832667522607629427057343516296308428112541433344604308587180148067922473925783925199377948004028761364062975988215710147773299045719349365478980758529159725196137656148280804761394618899083185257093526741164718117501740865291204107983237622419435661611716125123974976047164707854816644397595701261198376884010430537738173007440950090615097981790921067920648156738447715857806635878932950940322189808567129247293296436551876525174416383875476696326496235606661572585652345758727657910988833031696082338402226399383870360777878299656214164088430665420534445592731109853761391216680925420767878026203829618136584368191748255300221070641271255624682010077704891844494651415501622546380381703041180869284495142703105245087843652313283386099812130493427359422672645035306832392803069110608478035388481485803503082242826269180081330270827621979757175896791435508219056813043902077642021901231819840751836137710926359981421694823435704819574978487141472912400388815432497133626670434172186860139331299093493826079672101980979034954421898687985621797758048204492633318042177297305115008267329953462063249951060503411135351536522899328957054839085225741844277221049413479439457228233575521356887672579145830697286479773848872373292471090582748920497297112989588575107965897450284790797694317797366597809198865025955740862662656860313505384913745656300747060105057890398316399710558945937346146674748333157545737374337227909512384997093931684998596284508323511814040556755663799593908835007211032408342874103008694507152829571550251585386634518794101639320544209094004409987339209302219036400769883438387857384648464652199766181413339133610048026321633521142290823179385124039034068178554203791422111485996007820651549340515124642603305327600372977994505452867687421991575496744373867145959676218169009335240351596882451706992271335970599310468086987163652213962860492190447666342939414713326513723450964461566828699704382799903488606262014173793009790760785974488021989447884860034954187775925238678207821748876093611792641036847196622378095676872385543506858976238627785815223972941859207082827230615740023336722983649135224928166379853579847200236204887736694026990582981573301312353029912882216291831576326606284586851543851408443995765204996412128205393409932543542466635840339533839157119508504629783457090306186928364369558299196658843900389884538944740695250191940429472580589653081893947914990718877317470988038799921728399878820100657846929381444957781055984831884030646576555476980018774448332321047145444044282652650441829863982083369960425232102331890334504242898126228659524333525164313708693573774937389362171674995506329188454409470050960689736778214384006478951260226345390399129175748507416235859176208583141078007184504577971000104191067601234763909424166267620689339656232010712245940027714270230127678976591961138176372784455252822280955624293820537766912068532857079891874914352906132968364468053889357336542638231202630227584412574406792608492960846395415919675745862200919250698364286566537204760589632904529713329598642187374181922489515213878908452414871052416244098908982925445073902808577854788418269773226377223844325017811765434222503823535278966539440127349642027460185794506305668191750401709305991056852180024046890199010942291835963123024786781835065569778202707194304286550778663455789505803823092531621147422813207744496722196316464105161978159521693626711239590766457880208921309660194822236585398206819027774895638631072881321214846307487646191029524785029950563924581153279312751636879374780574682656935503804975432630590418765984928632062350495978297422649518789628762083071172971570527718275923391206741372713689811655883895861792367587474429812477251296871831112016240320548775950110595056066595612780898854796687652303678039332764565831369506658860119398627336685601781777002066759506876007491679699002244886041304078541950327522121370137211602041715893652337370716668104275252506752460735139209241091462825465608806920467125912974362290516169234531072147003453552976013723054512709628896022037175943510361720774792831481309398323975219165097693596156886980284072631499256409214807319042310270188918769403646620284873404773460514813849292846166004318284033139100403736450890791372676854763264281261680916086339067743665651202887942578384638987652317490029578301308198317607083052198924023397415486040044601265078761230128801526995780885549592830157865574818258842561447619750910072226908069451661287905415727110893279376181390699700974717544989654959060355474774494574933141294118017155283525137652726598109726019491855445805577173954265396046938599207447993236155943081679369220325385415378038941133174908542949604236104917400249462310285905766960135844707198688725226616635831508175738605227453475192360475083696159316929496930049962112500501430461474574075466965098157193416611437791844774427887665155489877609803627194364136891916703530130399473841592415131159486372451019837384917246130389315793074284848969808583170551051981533170859532208706007109746014266125111550381527947639975075821344159887152440330602362535102153710789427175061869584809340962644989025964006612659370821576340538375549105389705589748505514945785398729624518537986360181577004788146443752182314368564123695674933247423147231405455666816583832322034419420217122610064551600159535652618001254028318681782533848071389294533046776175258326450301593916803406754063446477244928318552369883900935053340725664614240123148087311994008359470585183319400954780894080969041491909595797101703427774401095312808989306447443797942824071918467482134344399892641856797377218138719074277178299826732170205230507472618511331959832294687887949707344630674687143758635784914934538447057456603209452019047487330669923453469474626834126631112259216989757674417227605422310542857914736445946055816887841391176991201615672990428722984692313817855238818587481506443791676241789866552759683840212483629489412943791552949331118184966317977233726037634567264278652859923289528551938106936419398019214593004517308079014393089545437794608706440835235894068221398322987702683389734517761438472639197115938875825767461038698194651377332118985731111009069959498631959418497603776796201358031021826805285242559504715612019906260229283536780825019222982987726199535154069337119819890461937589550297064757261266156369301774842829927131278442128713295924418922388290466761538565765971098580902566573329228344667009833390294971754486414419576026498048293770483217931039307524231063410790545718576475264661014138142787176195229969655558914192530811730400845680956237257639524909076643598258257577806304036933558083256763959125620074889481279455084272928863027595006641440812224993674972886113603833125123512144288881801173282864152206525833480304865033930293134577313672790666373571764924253753994056004737469455608023347269159484159416845984912870644854155634784881539176685168777865325115882169536606994823038100638664869807691863257441697487226793530684126475647120242874754707200255905635533238525001040784762282069635762172959852887887468780214358451436175227086520164648419706244192744862525777220178187000601216703772062305846715396744079609207832484890373817617241176675986783737419710420519901452318952175477251921516920217232558155599046789908734218406217556413750605275029831451660367221491515821795505902756076582553137446227374909773414595689463847977069640312075385081132090642745647296736020513243394433669735413934814499814812224612335320027475071148323401378279699583450093735283118587432353377914910243667740112077887137899223361455319548000753977539676515509690803764411327575201274676765484984447567007820796168139961522268051841084137409012245617494672968252405859540914293773182038443262007675583915561757813361994334050489657016434285169358892428822288260220426655170955209635945521310759044185009574022792888786966825157538839727660245298419426485424849820610752241153810569061856175759685642096651806968610394564881958447912028647749902842769431857029301329663567007044084138002409213276445190301987339324330989897462977961797286250500047096245011166886025724356987750057884669696303115934197965796824990440088320765938844696336814474751781369841136462271087696184157745594202438946211165784447118803369573295235058771279291071715214900078792351781594429659719813656488423688525170616989982773729570453441433466420938414680264743844823660045810355815382520762297100686641304783604026148506519412693020820572822350293489838933964833219802044187399084218766222271557672184951658811760366073666174109916777865605811110185329702764552567508810606167392026353705566551160348769432680354424151086738317464295248046426183253327859346231178554903831989881540879956062063943488478147828137007587549397476197507512874998604069375989750819099438714836622781782932013869516815018300297819944379170178535278146458229949435412567043392812420538699373883625146369391505537886212817258758971778827565067131791075014176577790930571131971274610303508381440511540450819310475076793782477008175497314535443753080437825465743057975377617599555397899866649499759016298777196248389031366486834479958250325808999308648677747574183290525475034696843467694403848487026665940952757872106426905332957211611963953044786871973138490202974914504323023463393011257476530496235342454786225550132756206562795595843648424700935135840340485093415042288671889518813778920003847024315224029632850377781739925811346255531782438103228542286135651899457698040134789934509069761643525277186145885994273886952469549976822752355846128755884808650978559811524253549077258094504446364774497500384844192558623038035197642403637526997802767416564554194456770335541952577695254649972487016109600488419291464929339475450401003368802734715674260184582669406436391512052256904229785898377495802132691615119730264666788640157161928058459306659092455507717707641463599114774619226012528647566313375315605941157587905602035397624294023900573745301431712444703714879790834833979162447014449385274354613679841058988451356692532628874553493047824037762887918714378581408515846980544874513115489528847869557203388780278508006419393044337361908048376880409821797177617609778175284566042544523025065187837017253643936987761990053203201699618528385744849579683623396640310184616463164902193580619366664690743582830874210018522511285464182898652289104486674838418682311290431606442701189232781014949128654259960784162838218997887808592524851539230357264259376620639209153026952501562818162698857582204483685309216532681924336977318592287439435296896270908355132984636872227905320562325990053440112260151725211291437257403071635548156130917583301058220083239808924765657663272580482885675214868703166794121980206827737713861530394429535351066214218964779665184597712446879210853941542273913261554932792992767455552212634604722723701588731773146662338088299643790727632740158820406985409746821218588094204527755316128602485487098917298718796418125059611441166853455316339879390535221451426959366125304693548054650295182754146733145511961879456868283192087351778027246172715802617542604584214446038435694637837749102359983890928666270882975771051654626358357792851530041421992754100713577392541729147330068289587779418855678991109188258052533722611360186702596842849672561830882344870821756282560716794686543789058660931911608401006251653484063459838745645782665669932246439516971673933736743902035214773702142536432766776103989431630554306470725582843976536508523111569191435021214890749160775340516472185352040839444114060165091710861487424470018702181079313208272989261707505360491841893569823915752623008590842586912293707825796848975470224780711792134189004399627709869317621120164791688740071427762463800073740172492220879653246640463282374153981446755902551000851039552298164707313934088516563591690161674541819062505104403111466267280247676850063537148740048401989996620762856111286140965509224749914205581533651359589578254121077044731121299656166876059734635381198117008460094147370621619171648036604691714593997566413323515976656250385422127099738570644933305321976206005665996962720426981333417871144007660965251773177283044932115790994223216193581916392338900780558497731644753223039010234717141269835704231965061269440565719842305258111422899799070732812395492394798254713587671572794949924544886219109305416894915889158807228755713757407736809502050647883688610042927516923497269054559953374919612092662007287092322005537825028623585053266788170758488084533822431482659279626191665272354663528478415871418998665895587566798098869198240671921865227964798509557633004604785821269527496227573489352700953655217530595474182818235581579634762947135061122271992992835821598480198328673990439437001644973439355561650414080232204634067438634654358830616979785399092690580795277582493987286119406010541942409559633200774449875864835277922142773737301363364437157492350077290468653172038816412952753030251705877245502849100639836286442144479996231233825440724908003351161210461088377261141332279408190584132682532449142877300128224196238587794087300041053193497993212305609861771897472464323205304933660290044036960567992802341333916453757868142619317648663822810201383719268920718876366229405500361151197240057437122706264716026708803190653680081197191651283294343248633616277529408390479840623779432242638146341760214875164542179290190704679121712489463705893008738485180359698862878437451361454555269504978046310984915665926531677255534127792522685811342149803309491813988404183718454007110106378810735667315198358838327161397621156978604647447613090842528408503466036288034156435738353117216931915108704334122385715302687668141853368437861730869195451227882011020881312803022739306932981762390401251459767547986928807226800447129487488240520818110628086098155693300106707376665406780058348667797741209330938188760114868310878024094424359457976281659714583388819727395378999351271694872196752149209448994655123135887906783714374741213069576488997070623978736100771494532223114185710489169014175831272830647517940080993906342957718895108788023641590764077836157248211468912494601930888518309275677057480988927792127888300295407379524494910813870964177787469522917226054118549219233076604783409300303574589047465394972911775151803185762706311099503014720741552310387297792381757541251498233520336788220169085535000721851756971770840070607458820811497376182093482738957883781700038915482839288591822912483215905424985589902801417326551292505835121544680454999155702366185209678916186428959533164477962833312596814788651719056888424905504374313293093953242390284341591623552734858489715798184578559812533397435416367777546727301501772849449109270304725669465629066311938115240722668909712688584779111789457022977094604751268625319228575089839779560364627795551371701513612891915124053781224494603445659894190007609509204610226122011853097073378932776559917440244301336383025545705480251848040395453480992901980526536296983461955875477116358407907020933344254308770576932028194916368203592057678282307451673356791838496524747767346020763872307316854357724627778472332906401896585981425561273217292673839523083670099806708613411308614970448713694664299831059063708096681375707702364980835942086689692054750766036583038689771380785896398279948216367406414172706316151390473725303785263603728608799826131769293507623833672106174883137821262140215838625953734445628488443101835903459326096506281654669833926425194191292175243207789798574071532634935165373247080376287104359443448976711071983789492743603156662961752233271233406170856097494197276329993246366158482947509583793372478669135898266270040364501400639490831544959664040639676645462859833774424563577501387417716516699047168077044097935114363957849188514161255189754208445841698629908584243297062990209320004292284765236750359433791091533816546167710178181046147484496342345171160842098045383905141579167029850433067857153674058766277537858492350346312138042399462448155154947038611449364461485062200204921637643996435883472194112028075596834190508787899032993360305420796947763175023956434064995711451834094266044073563045119863622437160038833043423995454698258962385551427760363876452607529973275864566585751165168770672094382384932235193917285936461155471910567180068942403888870071421074617261375016816910180311022333467138672068581660455180796965718252510645481463595224754864539744410661480504115247806929357771476033678119333764500200345816588540171543822976495096774079336011645717661780225546379384690950833501084775488385273388046570094888849665839255581017773214345347043203825753575986389764560605826194940950227365260588420815743487682876394489235280096282375177801927205723791415075051793483157106693259628426094526276157630608443534402860086846425442488742580419025405606975085494091622769371400530338518910309286479556582259329124116730387507795271591814548706440293303241308932872813515434584391579611362676527751346554491886583331172116797462357499746344055984997564026399334511221875965235581170538254081757847292653365740836887185589168134581275714937874740284127729888141869346314191293806767653528316639216562589298525960463636406867370778986810181186202118376496229265016497754833780496144264405606201878561145182364513595572997118735362194294930678152875073137315463376515382927073933112074847710155250301489955205576784768842349492475316024424897660715008820869467068546265605903518874178671286575449439176540253523672152345330594735682523239034033324344268131624287078468477986802701913773710424214221950414574835628566837929086968881109549943682329883443081547375595961833223033904237246031470443153319399964343267524335503996935464484822615091320734473923654690858243004894104121522866945335571167617761083468503486104370998252665357968076880928417176134003688808988364341722777007108657955650387935634694043423092294492718398669052341090495109617228222869195684262708600118794505303671863807493846474366711033671401380988071531210239461160597170311443405943578583562712414302733517635984152945407515782667141301890715312493553945492657928493796513001493874466340081683571002637671757735478143546510136931444309868303591417100769664144071003059727308884549655630888419361393460028623397545625575260941101517017063137795980234403292755412064307922626662814567386650689188854014179167860066211226786066794066568596544705115680000879637206302593022968143473803037170761472166722261997062097687808102448036050507599397057147445241319146646393132189262095361530569471150794172353355783447073329283259066361283913074632258381520311905206930710285249895759811041536858825146033572295152819157901804249509704945038921851340816197370048934063979232559074117916935589587786122526554549422995704967935258198594599993212663598136582148715273976421444349667396215393621788608378245134291243516586675985239663669826529195111607767884748478956708933387722798772584161323769809159737481805305747512432508523395867475471426765123169489115303268075889330610536077901043375479503159862350035733600642055677691995695844120205188173167403700357921417500969575059211292055165468783906235613770851589525457855165435118277516330336536902498854404693403264014515262178803251649341201104249641364316632749292929881438585105208502399382987154068964474784988559964706677598094925909414378982571142870527102862596082318829384817612284456554224146353468970297905701838806954871652923339587315706095281286061137668114526485080898146782015493601672818751382880081793164829091741882656680606562784840246075021647412195016150454905125019409034845869243717445120982220762478761923735380870471367413930600903397595448910337147297865701801910203063276362854822850085622358231220830890113746679920017142180856655477773962067445888636467262804734585123161211423063609264065137369099750381593720548199624645603767154913563327707740692279241595684946655457678860932236767903280957459991838701432656971383689469701157275890739267181517998874943595007789506643055640598498123597082445423390644999647853183530603776801043970012409181746136333952118330611874806442095201334188022021488048955057402175160585409650970815122674728975325287938246756463657210796532526097994266524541611913758960669849223096058572408130742769802716603021092975026926429546438103983796528928011359323567417720701626274558154936976501876112342627237930394734660636263828051242811813027495448126326659637557279825455441484309444538348029095147539883131368472142388141530792765119915527426511150790973579405737494694179985390453991184382495685875936455548017456442754600759228839525670416747253643605643047778696195043445069691970489377603818297290090894998841087346605498273034501783089447877534428516538724574625012430433875455465199646928554437782706217943169051271600254569545742316745874120018555473414736321355031122340725763804427149480818854827619202570497079804539882547301836058992517194559420252466022934413483125379204099221776921026708027896012549120403431589368122899980724107736122013106206770958956016601712555834855202695192769017169924946053716784374653578347095960398867562973321080341258666555983429958557318875522504787933304014599699288171317089852296403931030415087841526181625205765019016122115835334093386196200865867043134252518336040015559488759761119868469139349609915037433314140415250622720464754342302435204142008208387568357385448698546877657904793552398155278061012351068420155759237257269636107223424832487989473836564288520049766177313240649050234644006068691864414655234476824692007282327016725080207181412830122418886531289590101676993508374663794840003978981709798466805597118460139913495471919549056820843711959856054102952450064227488931735910439254624433722170505882761916512763821341201923799447097040125432377266874943198583163482646057272436271859927724641635627066245133455743205401295323542596654549505351529266791692912907265476931871075907180165693174357888752436485109496087585841863055137600494717341154265336384592445418644306753989519125012165835717943258112735470321456100156844492255952671998054956700457609249414154757471831224596244889419922945932861751174799822769132417536775525316089942367918532049327223440804658579335441847937243121071221805691290600861761618300229541554064353383376384706515089589509317721170954238184555892248036815929055971354663504520636458938992323265344096137448510699373889716013441112170835082274948193785363183603996969772329982419798040170371281380880390166563383697986522297167997566903129250429460990631749098815853074975191740816236743375436784457233640869010717502233799348206840410952063102963345639725469083570166742646600533459936563591027018039753068407971516295719173510468535631381455024883952061367807261153730439516363620966536916697861503883128385954549679301812292324357066960505369671263210655061899128569672839805774700727634965224731115280024780501566969963329528175038269337317607336197205061032612536643047399534130012791610688191094988749612117503854239759157942954577387506308248213610694514704408087310979582618953762361061755713583257329028122120350730970768468203762149655409559115433197920791651475782344959052491798359565156386224609390180212231722173850621827051867560599692376163730447514367319342607356043518939657196284288044620900348325140701267157458813984785873909593156252657260949697435819222570185568585280787636535314790164883381233576673477713349503032437155417463209291527206003158386569344522977514289736912662931829891179483228732572519863144678597024501199130872195233296542197454234142746893123310557006371679512728250416064553636789063790026633605313482408642681687987718688117575527467941327158955706846420888288295885475338807396005272460784888322205353393620198010244023349602379179174754315826523874846252767731756511721462893007471089128492691493026163416326287490276676022338196080098026303434554920433631011546110518869731459946613780275652397138203468040432396828254802598250919741042766245098503433998959075573303124700209079769703560247839893081025023257364348383599399579435727946684672234778145103377739796902047218273614181789276361457661184642253711664905083532327095354898462230392388062627664822283376789860078827395626844467754513397065092618622803901551805246801085322933631001327872178012161016946112147806485156957408290146635193140449249461941726111807981207102407980817404259802162858723553453615507107414225251389667098218060041064557562360977357196401412165575019349530382916130717181810246122994495733707545002769114093766774981533851429383375170364871760514941494945049122469428922284254057542130600197507533952931400749020802060067048756650860960697224823001062035483483437307601733124741978806064755518008100108314493304609879038464696957906395558161697718687396831826193286061377593043464930537531041307786083214657628404492937127528929281929868292495746372990131672723180895171309801396342323295976155667682276020873224049330366981684022987176357227365226785263035023264765729631345483738748525116209644245747261670491299880730965562108265985411375248028924717481899195955061517503884698455486255200263284365446604849364066705826163001011455959990800248732289119198501079229776299496642508682058377973854738554582191644515855122083491278633411696530917262651510627768957357189604285505403131189550751875958322415543082080934651443334123279291270938838683288492223369924263343646460967991495797149726874017534650216654674174156751446909465130410706245011653432530663606104944976217079721353865423566724522024407377225709731452878507351436870920050063511363337135271749882908839770661044320430898722607674901728862012307734615581811688342524756946442883545524114696121095425027009522283714812263669763126122576030202615742650009760643050173429890925579595788638721643618935549774527549855615499681710712089146534661616826457131788740884493087684278502220857847492188697612140714665714258336282780916131401143685843935652393203900789583045758418451026155063710812979947678459085003792391698404870482344001355187399977667927777746381632130042967030879401452312524944176659826919827201140037341082630742577846180320093413039745216300296962421924991709083590573827620834819824518898862474539531519866480434138857624844302421883895097261899035342606216651007985713879777399827151976397703441963061326431637664848222334989169137696275052950908232010518645401765983148384104663970833189641963424621949055020704957797298162061048986703498924136423258892003011870484399574009193480103722385836029465821409903228137401208441179440904616420681433763428801360402606985750751932086832255322233589491543942598876000112002166340221215198207086786766840723040416887215798326312798466428049040512340645984161468848455451494109627286703285988149360627469521474791092312700939329226693126758903721909463025679591120587081852459765327048981433078365526834806436042986957624922112004064510434498562687652622703119782776561371823426569713467336536750923915187249719401404591161337426218354140712194931309129902791441972396389282278816155398540647395054834030538341927195653694742738870528302612335087786062088690067349959366661582548612826975961129719326814229646394269060915749557263831844140294874042873505099729934568319051600509135338317403042885678275858562039146137891564281166364935590855860011915843222152866813871584108590410262435782261339304383304619133530136640412323407257589248384252914863713978896986546464302763460031547351430169848164694118450112061774902288341661844819409210703063372305483791465366717860132115698698587628949471792088439490335396911413328312534325528284895930390626352125425232497166995592335007785679998139446636358004137022131345954675522992951222359355467889912659941623680105128528363373228983164893983095107048614687002468979899033350572190358618865263205611263997416324874969507459184528350048892739782866977390571339673723804688791532401696008984693355599576508128782597417095927045693302173880390923968183429054140631850407557137604077501331000340062247169240830642862333947226511631031625327625004313651141884262578238781492342221608790470122281717039854035946237060657990520640175221921869803513520574599869503533689880708153357788280232874176704944268725520377864303002712000753388303326877545966563468987569054171490425034004270444497586710450040110787726118490368591549970949031788012774725699105964971086436262197335820569488272864486725228618250192280297810240991350556798431212854925825407722503765437424998267170462093373963801410185415028888341368899560261491136568004602699390978203650891527543685265668293639394813689808206409454375047394410769094460897599094908161304219129659088291475811216935401922009903742010076381495939734387449792249623785184515964543923288310619955876801112057261932198350376975822436404541084847927993271770098778152512295319577277669756132997904356593144649247634441797377256324370712840345218773795888393375245077608084081848866432531442189584899628567203941108953102881895107731645496241869990978668395117440929266547957839537955821529222686162286745281655912513403824355872941180153036557350736660386491363555602690754777339502994073472088848516080112918262273626728063967935816896829043910392384039173091027989518355003188642310612356864743368323132633250666265181466520893288765171046796155229005142535733374447192336979206957346910894954339605836610374384636908365025745722799628305302796194301958419438513931829894381864961515240595524261138689841462064913261180429292957550050660194500266199511943020830133779795923386713021355401704959707025717529899495509892743542867660249183037022645008723099082465659326054876607314654505982397435340192749103712843505731214606210218119367209038453263525572797192451598444588036414670622439709851898813982939636495029076670136964513864318941282052451165913047003451272350568897703998687712176566810647694334570826381804852347145995576970415060466889997753156208485460416335306258365996044153986913085350609820064028377055728366222817690418644346053256060783968164127883018627628738093724376439681721144135319441649402073992286933567621516149917620948612152109259765430853833059279157735046597127084159594975149395760300732894795785819421414350845112407042830989368395035319943524040455185941930878245633894256381158798210578075291895507696438705314556391819578762436063340058203559683021655199367609473883514078093962628861383631184513802894206984871613808793536476496505446727279151981692965654084786688337552886071146810541110799639536791572190520541269333289824341331966258299465561490739631332425848109507056413007440185161074834279259374995119638774078481025912816089653679247834484397454694934733505452193250202423250279496676741004990305468645592384608363627259008843049382536294195063516620683952955448342254336437244369885094966795726235368305463990601087730552481771910481870688272518434315421196521642708740676114370730610833225561103730072459089369312895812284016437891529793142125518062324370142830350070598666723551866219219681121474958891535796268932980890137626475198169588908313731344811722760520191965986107827102315372346559045958386263558664652657225138953200449184236970877932296954980208594681302671827779425993515790276864429401712888934948708428263822733111462517868545628181434352395940174135555759733022045970899151015920807538399672682945703883326830657991608018507695907348319003886065578975105720706312793596459053384327567170348191291873517823949188715334541114809293213889179063583268291877204295826047802382135628881842294466419367670113307217239442723307015374611147172803686896085580930823153570038833868860877736906114098295466483403434668519850502102745038265611597323065956031745489590102476273233887841919588240034836846527049193063119416127383997791597620857190479364427414511778557140755966616886259183406095953128688382016605119105003206441323601318913123411980365692918237204349133269700038508106561930862446552917273863981478267735725291236091397958553402973453731966944732512121761643710681429841215248991612423089649211679728151954712286188369517318960436768264441457807608128148036474146979683971341525144575571588001871121171663099022975637686648512227882920372506812696664543148936608113595894812354147995016767109681235844376733290169761014290690029593161184417416514340724044063037910941009961843760365443150525243621729567239102981831196413711674599584105639652289396196868284249117209105501291540046923464380627781047564930384007424332821092684947619198421585637506027956282479065024887247838104766403941563436291481901310551323633234484640521183806519962515287144026130027771460399282888991970759777350544408868005813996403828767246715879748118886959895184510722201258948389973188104214516363917160408202134597465572638049322942442349109701095129402056432875839509645341518106606824189703127868461555837479321767746064003597983940311727020444645321183427239470907552652796317885757445272979646351749239974698402968682791688829651433817360832210598783391950123677239702809862735427818456680760136402904229389391017572479179748238988482789314657001729444080091962696090872253003401400341617524381986258477823378779353636119725695173795877161287335606534389249072514959570726127054278690830653663328000563764742546045993807286632803765045382295202820265307245543713058561809971186985298481323080604508893508258652025559985409134266074393862711392082930410755195002746794841092683823978324698062649707071917831689155224117021183407058072867493896734223159985005012207915694021659951365752860987152188531421707115387582603764686821592867898383847821700164812805105157280363647284535017131391552944850414493629788877986418232918219752179792027764892406728657977016959984000858552761888575050473745124807871515477974791081729226935786907456528000177737034612114010676553421640583187809999054911849775460771611680914091542547214884756897653244402488503968324123631392856749434007602393807868044481168225769195197595642211776474039609816634334379266684079984823511435702123013769990879068615662142214211394794931231153052251175733079249688546626469574966747434842858249050685029381556710180678113183985530499487209634718067049726616939283673384179590146062702608660014548424976698142489486469488737994637606664650685795781660631214699084709045126403304088930105985863877860550053806875660150415939260555567494826443238086653584275152374923590475789677162525257725586893414027852360989878371281543955081612559878735443221134963028363073811006105793888079074583446317137013452166520033619109452368983365156487495098343904718925144483785757568019694553937772816917821281140591190323076268238294220741891526411484539894672372607219912825079564747043300492870391197461501565933731855426814782238855238641625542598606405355268246961718799462978801882612145323771857232059380991727250405097614729332846931135968289706141082872093897573720985336263518636399176936389842696612630842610651395580202613932503095033195937862109474871697186966523260627956171907589474683568677958576644008871425121737752128102587051628613027727329803849009603856765410381332038888711916886813092855429958952213612128258417805231124144947331337473421662181811291916548947974404065381628801519756525804845048247981823297241122358722288470968242636618131830641060496272686271180872614155352173685623512511096193576885224530867995555819094253182594073152254572867424846459976670977366498434432276379127280676229685827309213828195171098988006216522929777223144695389014442558744604005265873651373023132939876978264524159912490565944295468558847348173957935168975584385778196623411989957063950933482927708568071116945893987707866952562846241631777665608409657042147540430881977302601151425361801700231078736998383478306290691910846222015833928874553947907405559245178883250577475763940660373666586874269756886138556746812268045732858750472590721102404135662177113261941785067283360041244239817317334517711846786635485908895382223889853508819586489747247501248610974136135651722678964789202772683572397842944862058155596512343631286134190902424167921571280819565618489101459460432897745874289233249095925258924814082220348725637960403571218428997592051669871619013025785922705554743006481073866023595287035625748621270176461417090763512115536988404202824802977884684275582766102328413454417029085858631498607498057667234250353994590816808352654019214722205365434317027150617586185018702337463155792987439274254299911939790936675512988406787549648809605842015276637440182852255621313223651340170616126006532106643430658668815229408901007483304974391695819789662287372080366764142010097919369381260077377884619643552674348876978284469203942428979670980489768595707511686192182184114360824243827349329193928056804015701339412056622589525223653515381210904539771491631727366192098183754867819302793159020274412820913732862267177353645322627102392215683079199022793904857127257467329745063848549756921464155274022102605457427140456757507403175756069610937459567977311831546479264268658150926366652315556226255745514090043381236080898153346065827582428094183678043408651472410413519858912368809352098534100329682146451306053087507547415557077673574732146578700290115785739790357728545678506858758793260241477208421724742428943133773554676489547241594429919963441646364992656917513786776067876236060838883506828951318568644724623287177016345108918579237658639535799948488694307272208030487514263967764994026261405006097515898481188823501352378925128117111265383887549307900160173675803321314667645485726330011495779888288636661874402572037249977571061123073875702590253296984393773003051523834109989796341897242135353295092707794884167111991284615604708099339250804283075602209086642043998324253452516076067609320288568180288448049615020349080257583222176033281649191280687038686748627173598788195104827540561689380513547635070378754400782520877364088226188130247369398699528222636229786535838553127238453730613082324042100395502012862775090055515994298484986503648704269071368052469577451304488490865774600160074194797476544044881886347019816907050371533387409213262540100928716406875504261565404688852752914881889040697522108470430597001469380751938268952180908159689830994665205061509323104992044558923921743889576183830741044215333057541439235036471055903527508900790895817980395396168326878227545337215808914285071348730249546035896441522658729815993703442838652698647871937899797408570770866670679117445057118021544153060698325511543256829094514866557701475673048676514729163938232735949467932842073892082212317287005032451260425009929294732611713409835737361237408935592395292197644981842697804530882579414250869044458902328595358692861158443244315392656862221710974670646827753520524519649639000838290709428365625627589186688172530679197274235124868547844411352045427315708922324428033047309248924862035745624383638518771350844435726153459007244683660606033875769991529222308442121519228563898607049997821100975876531941984475499939308551077817488752691087723130179168181354814796641626432578543945729436992304037373069321229647303604545400185347834594631422398983001058160333857939990166721873742838181912084037215992224516079569698420717401576031311854855387791319717018359470727689418416368616083971311706622193042905105955774767961205085971507193394423269836885461901545228966996598432791230124499256383109590915453578862785684925901947290010067019809610766960517599497686278832937457020255413455408171385017411693010358628003302861906477854824582745608625168808327797036252690327119967377150525265750541957133357021838700383726764496053532929699273895884019628229954329210034429938920486493170733495348310141303908332925532299466367426587213804220804264388405742215149302263026216735794959056684772699897526573352112367736586885470300673345854022144139218949956346663405021150248420756252113567121035425668508027524142411155284661720279805283915302625133637800548521087049474378741131103223432857482011969619133929438154493282542599520087289962426324883653815289998359757959891229611587572733649332068642099210234244662593259469242685296152737673541024256249498738218614284996655607495723855864856962040717684084726785766142598339190811118339240100353470107224619470796057306798796868601482336152779250932653591680273011197798932120150325106921948313331234206798693439091444552399523497543302974741930917397943893696051089774348136175966755122179775898928419365557476780355902510078806207885447133702303250576819217285876787015595683369706196000320320141118351425303147579312266817846839924933238077051710493797624735706183155201656193063087315375103351649938926854048267921618994362058164121887456034776048597364211326131115271955152422924172487112406364456124806456467996369352223167776230744336291783727485825817202245311523202181731039965941986924358846946104857390616889478581975625101939176416385598342211803941924219233710130398123681742286914410763974927866329730477071441760199297828871778958722606243827593875548080115982634642334210265448282702947202242094942206133042218640540092277719791653516426543301184267945276275279385184347182783144800031273385949095396571394417486763686310011735966470927219972255051476403386379911443656439739187120238389319913970184268264986670211251452087163485897566598212357416252852650434561046288152429573778069162805242124891838642938437806268595202225392359799216624851934040771082934110459126724615094004723945668871082628242508099676560214087499133059623512395707510858341073094971190078963747005842413285898308880259960498989584800044869725167275715896162060814368848397743194088757956302682825971565331478440336000357505375497425186777831429572346246300258764940441891487520036365097516108890416440328740688797599056053868351100808433048714157618000553483217815842825946722815941470721814765987806238920658130962610538485485328266349379941096922125694923901483867555088577840534813976373601639663807485979316117842622830775064906099886958126962527623436190854018327403893328300625312877016598661247063357804310503152126350338794051160662902032024847423053509947911426732160340899245358102443956767663054151365563699888767178136715422362563227473175396328740136979783299249253965035414477915426603130253800165806271515353674024125213840218166332607439158974290474211203255176529114472434330227549029568085928841514763528077644577231517577589940136742617065685907605447229504729443902236520806640744113490636266784239565068416840499609668013817775760906737878975707684440717431372636870114569819284767582298456402304414940802262797267446545170655244838671059664554330452400203033251099543586059640754230189275480934737131488113633759599673947656230758303684961303908961513887739070846622736972235929401626386260846722057725722459158892211644278208142928725388455603805207620713710781586570315790644894330104741980130807968500153229034463611434518581044197530508708020635605592067203468932012825673914782248473691650454740385503970228467663482431442793792604981536093773029513147263504421158401175560790542621358804812315013196780189770911958884915455137739440626397504160255630584604512354079382846608047111346300894514251879667080671792528724529752227783562868255441764356236152362958625460849804048003316808833636104228538452291880199384687819751740990485804437934572890009369685317560320292451658965873110770463523202679880848716348882922972453212709532809949437106918378240643133546992401677393093671348447002823680089534053230336842215927437476673976948378119751937568311803493764314968042813700125209632663875428997787919055100258760906258934590773936808876842689023247399258337234154240840945954726562753646047768293061667749663628039503636243179390958363012423194013832498523188476931622533627937248324624289369154469899302238663892957877967227271176691998919771892099218517343084673421666585934098441146965485353045800855224113857575107569398486924545315593864201011569467615281804273505078253199976946853189288924235713869371941223780466923319364090641471323936687159989720686778495250325659886852130506246167025967160821422192405347867597273472245343047335497307064289629995331170038608972958609221697004040639469067607660804633355868783870926516040169027577942619719850758241911903312953840748903685676843486107870424469585485949219163315023229601049176789836404764102919094035704626962785212287211844793048761250504150334504055206753363766075019583729460858547705604855485260452982248719739433288116303204324220590329262042415845779058795645809023608982334540398734463448294673959335593551567886727257607211952253085311363647627951801979307203015987758173502158131502667403298913535626785537383211145526923504755875375332436737652219496278947021587094170010449101872594911483077586138695051810680258435708730010235484485907137565234315955209716726120439426580223666015931768919970892521525143205807344914828309920635707986806912008080069492097391091927532449654435330247799214858068144076183054563620038897270486753919134641631250116208669210742082606022905514979383808476438931353178347001510519283855805947655818954908061774507358141956224704771714619628192853346129608510000119033549780652385694424632356786374409557381452903947092589907098219305677867146749252800646757184575771233067538895713714341242231049186462586916899332683367514581569053971344415664186187182763396892855686102165045202761511328578548134003876446198169695188473972590199189283631944344739128727423413377783323948598890245255632468996166366464120698610247295712055503547024710305697080057652305274002664117457320819337200769671456817558386020106471338424505660348406067375926254904365091733573976823327838513922057388359742904951115559464370851590529406564136824420386289630761869181272858384917249338448105305995305645776435883760168961451493584856417834897590690305609199656913281439606567610199251715850306424739508269647013683593359549247586201300807798682596935743536069658034614643745718778247470933475630608424657007272454564012827961743753701236648134578858183241115815873619585312406070086493244211181899817908409180559355079848970098421258585373178320021726030118110560886415208179518854384975670418824649671189681585331395106261206150734143275145095019425365346975752951316161184298517141675740055662138398930669080547570453083383424530970154789508109053798021787271634126300147548207943122521915741896345277435764446343303938661600801344102528554784484905619534179406988613886361783665773376379904325316608245244573131328910205336518424821455801580883852658160109532023611047049000549023433901502114835202615723368819014104822158184048314500331146359796929699299902489700331111432308463287246634122974103765894690138483160964442652198796830674682841484146578814756844251560465112496552957866726825193447724761142282814118404772262884879537392251713352709239854033138220988419115558298170980271876910215137801791230162265507026163410357557273576226140839447417071862496320413399748676128293876565739045100508332081762440060078511948662488778949912374145692956517727395436017287643514541652032086698748635285605707702418475615309457182634760563889784542262595166194059860739340624300094997802082698610305921132133099517349530663369884345406901456401586970945535006726396327449226294234196438001868311238461075708125176355717425388138491384051733011054886671088814510973659665904379926229702442736099860096829083216633506837160577854882287923820851454205597912622640523746941782740337087500981420268166119564409804879729298842766405640869137058414323979256493607541992365450421794543523534534214981498947465620877659602273128830563168692430021242022165167332323970834934801234636207092058622762105268587317796500799520448126030970766666231938372800761329933959324428137322918289026938270147567860488755524703520005214351246750698741805379512073350359041616219936123189403944128005715834889982739661710014577126065663672643494875142110212003679086940439856207279376719180031572321638703593066798049424840340883090236632897794132550570848172888172127053589651423608075855974842333455464033692634979834251660854763844256143417177534842652716760921791840060164596085091152151347295912910279932234672337343342381682463800373123387897270535400038269196411891350808733387636940277859786915658522909760830338352779639180529447823508798508987265109275393644937824991872526963590017196117967614939768282534270133976254021512394628898629225523066145205848096928905902155922645700416600991621359933958121523177553515590858706829948132791523303364117579859072605599209260945125533349919480221782241714958196288174506753700085283929312843262722208318431493377839973671674793320719226835777241080265535299288628316064416040645964201958037324565567839349823540979732337495991704417141530979362767930697324624251535056194156056891842357439322983979354863893286844498948181932403352043489183353044401511824853450119796582671308187245149699037350513355486626575418266846341585503890806152884169677174807760695591871649723135659112802026716493999810197720580969409127227620353432563478612665978359888161272018008639460655016064032811495545788842318867266228235140993627650388344877474316959780538272714264546061065170576353818363416856564769933931582827952959894449023492285761757754914631657971058576917996507900108145555521749060152629688191051183620619229948961943909784328484047671159400593619179311046972819399114780256872381962666796665268448726300562581721124535423948584462147542709860564949959629852944587998885002272982058506284970262998189466364234679697096383787079908934433956366963334746061326060552012618734090191842122856137042313576741188781107490076614769851701618807842669952474085412775276415911722331694763128152463222280096188928011861884501273560570806354314517349831103284677603524486815906787555606608171058742506019087668910356640334179222652253493311576705207458664450014270162758664137131445235560475756261844728042796806107128252582060476712098249486289609805868776717462030800807273028225378802255422581844710527674379587975870950774327101999298790531097483728313896134997297175291447807732468586252647271836811568997853831867342707957288472013959202579097903587202080194729609084956442985527184212567577048237380567171070294935574209054972529206870044586976098206750068886927117356762726241091475957367430255188896096618288921120734736417516914055813386598575861091430690379493636260734026414190344875590927949316608251335983010050116528834509232960060143438514839953905137751726276859638014273285939172422755478652426623956548144772502534949736552220454173871757102045211237867973845349279003703570175011086861028326021781454027929375925445142085492014134445322206711261173153320858927456417069291091149118962675291066340039490874171004204786463208808251935098308637110247968788938310466503142287430481154395531519269917628926340706282118642396288723910055485000970251984202124377173277537475828560107575778176440616554373540346453545627163191232622622785642026414005252138724926773992345982577087414426328272671020734109579718672733908789194114613359570537687246508136250718032224157496795382143956910542314662760358787990964138230857210677734989455488286356960515273630868115932471879446311397513369692048026422431994608023651329270936424920943026894086171171596913891825244102954685233116901747681582385369432319070404154433346555418870113652866653887156532995885350335506473181808411713373976437053606126512745085671363619066255421531666691226495052963860748743467559461783306795263573428119979777045380260134184783145700676464511379150709038937073484745186056077208198616924635546460778832403224278757851525048697469658321604342506468092392618558545330909051751328569306440722646234696037675179608687908276856631397507291545581569399906318731298130606848462722068128373846115172812917923016267017745504939508582260735894109581593231660242611681849626821627699406402679455891890855996969297664410819568127740193625208274914786741015487292846260549393020775371459256486363300934461931242217774602054749212084737524665228948164375512354468702696941075024503869848438379565576051985957110091172748348192745951149645918668448098809805754604489946594193053246153748528171418950287761568504224223922471809161958196786954956959341440711978995942101624705921007818448685357529921739567220484274769506778602565046758037072697012649453761613624483909261979602457310869436466270192157343112968477227689579282291395355479334528962813891689215703363202386329416125277137839766298201463207087880931131597880577627782055954097773395840499447093253508652590322093908570769737574700917216883102210462678513104568979319658318609033279738195773523650981126433530505297514152840376486049968740684448386658220603460118904088780725517347336820897477336843425443523990104241892636076294291984083128588199469628620870209627704422645864176902938781443709369958743800153711067459390084354553483612386848893333718918474174567457338987865666141788953699363700968531196793993888134525281535874682729902925023707978912371302418603993699639123958707364231303523017641930721517927966655838183584761241012275097784538612743011000282240516303204320032379227192288472530698854755491908474354481183214461081094217233111257948775609056562542872167387919195570280564129409011232686690587834241280720681795199788977817187164715476353345710556140529336351332425156638769419333241006330176210005972110704915974728282855291867018196177054110797083198351102214155776606591802185641911312535833999699230242510881529830493939392811977451805377918042495499988251541678681935907074333366875182341429067823143718305201428166083506208259982702650696036567136662908353504598114845286900459362594092670670761142239170463012358505830306504420031882942985314247361973151100615881288343398161959037324239360622673268767704321537439004309201740799497844359513706050317702932313628185623550582593266504805634918898597293595892662743511677009896046463731951722897351256604443305622124712225410171716967385016008690020223275326691920287248976268001983644340451017572553299718570077215151185882377203919010238603418813448437809631266932418662719420998274590847437624624642379768181553012740162291405546547975018444464619320208237462190160031335871182084878162907225497297362870339860946567680818376923244287961307986818088546607166360947406978811609067746605243485809408780047261471249695862891288055025431250289655363171370533549813340739436271674673920299568963156475260462700299272753886343397509042859004008818009330421487624279677114650345706825216038340583364457925072329191481051124787513715025771740766121655806771401495226618603993070385405112922938595622294970975959936888577317161491146183922490976665970376951616033785026378680760016671932172691529122675386003143786651145700139109495280376348550544042784438285354787211319619709942542504754479084688557026389387731900778507656703979265074247409094030912174239657162649476990116624486874580175855755185110283010170633078314141261372006208419274181175099838538856413003928344169371250749856406714030037478117637035875994243505492040114582578094302407298821846552872182096148384894962882723737123871875548917982635700374871988100599969167687329512670966093978693712239783210046714296016165508408358609061046159770486284602650126275695848287358306242377022357882138734461015627989865241187834763588629390616958793813074071504617510008960414323639025856166637008284419465266956715239810077455345489712988937771578249411512048845584941520778263981330532820455946479754852810815164332388187353050796947529394698822946009875339831788665588019120127172281336433688418471783355322541389906136498521488861876736105499469998480791911163477490121542737415363295549462966584735713978931850336327968797766991241128556344531716775565888610274199474063072609669920777696921204823872945032780192340102873190121504638951054814848216618001761562224868450415395242291462007526395768801367996741834480586688800267593514930041992240182427106267696974369622489510078395607379904662613838737068428106272424038505165752941928466371460089247590087573255518812099639868100433478092140226955688628497819217939056631123299758282327591699802391355062034211538949328266839716646989635357952779324210622015352650624831905766447406948016294288769003034605345099209992968123924095733661392796914447101174254808019789152165630106399769905622116243225448902449103391672388257413739805912645755211042911329261367642332602694856960126772722904094223041993061343124762378968557864316027476317013248050874083013233002233462550370948832423123890027653208563560504115454114750044402535801774591755348881380137081849420353454710576612243809152177032382345223272884517743248583018439586458515242064658254487239330902949769027517252194169330514582508945573287384477517907331932278892416876317397216917034175617480241109667784579876615128249786860580426813821013905847259917948219911277357739170510073875500898858212779537821113210882555701982381235320007745572047947242396220396159855145782288844440824016629248638785922979989115603487028710492578215330339103820530720013522174955997919993585627702812874602963213895760098342032259311722311425951719401271504503320945295172726763416136186495227807226178643861912861643611223797224752006599375899248783907059546799596255038546813729244686540879137735606369206502822720282918013719336899460059534574967289121091613862355444372707567710579836694463359608024417179595301481311537436848371928919207827363533113551816666388464400877045821711729297911165133068838302224269408236746280551864546357602365599276399744600823432512216901896950740457141162361294311628060191098531081373147821115587371330631539932199302164891702192878821183975881020739334603536493738813134362262186835397908188023671106092550727245767026254609538280942493740199832807262324525894842106546773352243456718012191533553368452199833835631112637947274628587697558739985068362674239511159166953101958642682127823669798270588907738235945969479427421775640228789394584770348623651679227374330381773266251680984438873162821641062795841517158395139845137965267388258558554381170150336086747520716438590726605023518355203599198698785396833325660919679724556035820916212014543714642675643974879602702780228098325692225988330446218569578295478178130614916583860523157794496179969076878503343210362451461716592320538519621319281970640836548985712410746276759235427571073981464315024995526377043598171521584994186677384846063369566041883370461413009880436969530840720284595113611671710546817579345574613909196669950327932191063959039843479360411676078945395863522605737174902914413029836766010679297057552792592384502330831253166372778498491371029206749294604702115079489981322172574088327308171795570942968224579231523598193055833053312429559518161092926803588422017713878187958842192932245263473363233336300017895538414808305764078381990168471529239985667946786756373918492232040031743120419859674036106506442151688130118356730927446605971767915824983368165122703776208173914011576666886601415559582097798738851852889365466304143404274344625333123884510112741475291451784916655394930722551304642821585662595775910846086255090166986788470731367369487091554754010631679849671437631986093365945705903921850751656820765826021106367674585855420021948116873283907906611311101463445488310657853561623466733490812351795420063283523058327534350159769290561260056851161520033517612096453997850919645622975552200857906365036282244824937622046376037224410191746246377998784736995567508306041251069676765356725026047919630102269638478714545560972600798597211417259271024059834776601973014403818048705582865982710574545266884964746922005727333836085658807890076712935908427231261592910497309710163610725910373800985468788797618332031741706237221333392227484219604336949349422776036859051647459343079622445490028255214542100526252585901374831563664862224661573596693032736284859030436844928377168103346542914216228348928414556615035921339518395060205700377963561926599550961862015940481245122670261381497324372089397341047794495422340587965701734086484751198341007036816694622550037448109248455473133926401041182116781200064940454472696433662191326893434818614610477663961885227133340012027950349323921965362308656725364259983479052732197706839873544884721144812098702828983499531030614738328201966704427076572748524503815970319048208323967536584752210949695672396945901492365188988517365595203201694218799123168904704414895529747289345788336635546637624910107237467817990595619183777486383182665481481738556467728047960757786824367342677527782101892243263895910352235886765755823921105374950275708996337572426847263698472784896585526554249510837333127352863738458247605542009324022003607053497509591891502241442460626879279302244671914857665782766458284572248117596924791823938592621818712284856690663077569909462231301474236349615320432364465402464258602168347699350048774015366158806305534294294025963771364263488030716161318188654864386309515920581138898049735202112558603137405019842395485659274487655956643164060367721325664199567566373201986483225306032243641096174248543624450621732496413407505820555255848767977872009810715149049590651003995840567014784001450676623191770343185949696631281907712419648622506533935232592721337346008999740778312442370013774760013880623934226014970735263052881052558715925854493256687359280872230097129566083369986944174605099890016809761557877130014636424207448936134309002224473482293934742868668603132669552821597588130715068738779389114198324820494971470134715221713648157141939212947755569785016253979222153842056462388586729700007882464278800568680003050280810079810325879839833467630692816566804354836994735709520399101645981247783607458212699154564296007735936072461957878783176455477179474265673100530693079630742447806179964726755561834503379974436921451520684431825477636515347824386182255934494368045196459114315500584874639512820840182939736003820058849986039947211344664716739049200167027322430925568870619376288574544594380105666551004786020360441551817661603553409553670704093000069656123024729549733768109171022551512674570972443759679011151685305292774922881793137317195652285706497760291034389161759382380731947866258480643158411280108716245319867378880102902548237921674624432070756777473026202861427949260543462276218866203244073450946136463924035343160110202428101386694527487143590593566585739749439625045916556710700109931412866973967296603143337504726975568932981492715728817472350289346040841212700408393542509652403492271923550155822699957354334367398852438417979631850767995262049548464666540672415429179545612679052437797420054546960394189361457524045635811425603186698978902791326262702666506834139173726981103302698825546418559282061017374131938121441754940057196422799811019347331422199792437412438021429696321173325288517233582084707833157396188696667914235832997386029590777314240606378129237318336996213925221637351407541325938387975383902714014244045530041197763185380880345516501246968388456658831799266197286258051439013346407589855617852346585819452109332825412874655083285496329380956800960330280903222868740716386686909484218517836488955709020420227167034294227418722233540671377482172566064142234632821285175601589016180799360486269766710320207357655800235572584054252416060425968485986803690169482484488906961121379274169361252600730500433531949908800316773624648571515753308205697533542332268891454622004248406729048562000811318273592410990646515106721780575487164811873500846087148569329333081444557713139579553777477148302513731536822513565576958743006777462896013554746875931475116159224097957043618769599174050504919117954212952372687746735401592401294657167995796662682252399771539351046047257214255696625476047728684775970515764344951429543113122784136100733656839711285142265124383038689083159482319141997383026041540928744850996028485159955270826258118512212865572098387889317019014651147354023077487543110862132363975222995587288071134583518967840286911895092600644099698312559119780431101890623466230823989614381330213677358405007074900134726510023431190006468009405359533011059691103336796234657499923259487580310408696740624914906781424897167010977012367710868069503078416948739065778993643985347018935276097117863287359840884814127977257416273217926630403797078297294546819395611801448365478409510670710497960087547682052539503080014065485320306233357787686987021551865444275159925355488466080364116589171361608253182332964860515955975304271400169012909793302061050822985723205087381939976922457385023612546525118758771501548115847972525261592022682867718410415585981647247892478413772731850833597477392752548132821624329379534481241110149263240170758353666647837233596691427556889526211741627721225295621035087927727297548633296235084410065018824382483671824904676796787815411366493409748028510073168406869769028109065246447560748149150562293958260526634253600111960417741613189254566127989563365649579110256530442259789707350429535539647509212260397817760648916380508784020986227090812525273108291943141453844547532363792809548966669910870807261715207535686564246417389752947856035102967034881183833072713675591310781784130157839369164336641207450229777701987874484173722197061630143190135526830487278338186804018387925638612753088398619914106914998247151235552946779736608066634676395156807487432458259855167209787767780876013192429128816968111092165422441968115675592569009916005314113582454838317761125199120541806720423222880322704728113984515090768610155810304287863647005351032700428176118492598374116347664272710609572542539754046940631620276959638276756113819652769929290290155957089703476253281065712297730676673190830123639340270896085569635091691954380185782773277741941104047707136138256348064070994566449630076404303098116762285710005405313076338531647449387204693980428942048912206339234479325874331501719586985162955765836149958032900310931621959676938771351048427753040423880806024053298371178650077484026890953330143280487569324197386635544879878183994183893790795857361651259228107639459319041957742401625297879729118182896574685442358978142524144465329307850348472848105265739829150390850439399923641342536051556189898885502994080193983066709626336872238600818516774611927922431855905586293869564270527885783966164003817566272219221136426105446626584924265515754361148938764867422808965207706294000330970468762691874747250973943693769755087539550771346854762408198594177808373370136579592156628118054222456888586799482890243239430419678090292432745399646963171394017039029130478654997587614400283163780629366904281830464237865056921772273719871917954488777734900128501731362990062494997822419459877100777411978886561828320826817219871511890097515192577951046756938299976833270842931078920303095547429642614138062990368250665062977453200573110283309436478906741960752038446494954510267988870565755031347135133536877889515192839410735816518876522869681134389712148865823387773469768262272185886485459614723395650420962106526516445450691424623162876770447878980006702794865450566828164161718771956836149873078484974844840582809113563395489142784872804490609589743247215151695141365523334658958853268184060005294550368715682903221334079252485733619660185662780626074865356748629214127216307303162363555697327206292618313113094780062981634543071533112979239441895542291582226465025420881238033127562805709622298783022278738945761109638365181494300933706249716820101892996304345004107211313213506119637532823371990273506157342061899198771949074872116467322305999703525457269881944484578059849708795643585127831418678052313146745454824699523313885619574584079587684017965468123271870404586073008296733771468586148366852573634140834781936527957993031150535929743223179758413895848805651113381952887476716401896078512298126117348337327331186385170951960584209766758618756542720447823100698132176695686859691879408298319487393089247068174650462098093919241105831092132663739749096431020208436828102126146627699165628967262067763059398469772797503218991655304779619336796160737780713929639871391210527140430747685105401165300858338034332535918591286348227265274612545330490733277112696620710121364778930595787797227381897026733047447207958676579001902639808467638274087051427508280065766986957394104088858767328815347637084611073276197690636920167493557964471757839163898529913544025181802185913893894890665820943437730231572595563250821355834390858833591212192494529126013175721109061731237226224118208046692744105412133377893771734216738083369448754049194361271095905925231510493960453641233651770788857071630472238290747602300486026258348537282022916375118406877974304846314031091829990913626409851721000346960839250547455637907323632427485043564114137473149845977937134638862262165804431904178130240795990692633645849819157139020446107122975941218268516088218405986870209356065766067259573937574202345345418476929235020527044174452207234078022665930017925124744279079286764510005745508751744958005648055259505500658487377757279663014641131735689950018985472012171558164536167658139426703041541568127766490642691702868818307675161900043374592594536222416983714461818972508717413263405821312056486059809681528843949771769562835825675698694354266012354121565936065390236507459839724972869286535372629315332373480992903704310277608028992697434291021477907396735945026674360135665258343568212300372928533236742396705059072395446698403147339898489836534688239536143316616816931521195390212484635188648538963855331490727674996690873609558207102270097512993865267888128830470092100735953987629421757902140662887938458121441178317840327476726749360696332325029104800631201424924827327952243673766520771351251944184223237326702097260039679583606391781275750987409122446743075130957442173514918730772409889824025981954784673918017522890126844629282128289897619579979294395955116613473083749122086350842795206426287560023643329169616964328222795951003165274349783484309067794518493871359857634488603698772421474093043719516013545326894111706010816165624554635939963958087792688691557195751540360901416756187395405980710033234410289508646113746828281850750715920139397844101751632644980399865764737930715861787823289523120026052014960819355330523604733602011348827380143754214040521006954972508223982376885921020836784600531828859752230936964929289545105573764266611794145441448799589692261631255047786397279324738017299531820925662422373802047783113190806568408580882510077936579509075233816490224721804571996818734455657289605213549812291062473546508678237904464292916417214245416894664383127170819138150331710162948354200599370609759802689899753319475298837417245403678464036410835075122507614536150997384076250581309343545206286551004915961439445202670639244168804402402646555280040148519049840633413015477097188172559528361634084681493554350586142761813612058385023262605807169856841869734776793837592542137950511538075985265278959848334839223091388125677391529022855341348610626616250670314333790219084513343029395574338607435113941778816974361404000488205912476695087580665627659537527446879445921003152717192457467963305099328900994715879249002735275943391233089208003995966159524871897429569181926595821690127845539421484337937277979385185792258350106490367662866800443078354962612476142495701597761128043257302955051393717278549929895101249199088052390398038429354090855853725495269170223577397363682394040271733987992380314422737615793548231974212697801660561555893746415993813881149710680209932758903770593766937932653530058601408265173422558624210091299211504168486386906978580662766484217421802203209349088955633047593727196406416140619157318521801313560037362360150896880916380436171319182884399093947630866262404755042582996994992787242550893293640214662839368862200842146277463966600553280525451926292251377052150399496969143917763682360845018744945366593094519315633006801846999911790399825471912932534734817697001983802756640782097668234390557160233639601062052145648117555128594586140525999631558435375277117142729033721852573934301513503630732150675391213557068217113688167977522126303277224326347162225864656881308997052975694562731408469431417585734896503827778633626202264861193944892405423350837750772935401977969397489344852486736893217069830727847119929414117187638197860817522019828797950051446906519889255465106049080430275969862114254157405161587420688484771359556208750971166916973127920653696025655288842973754039794365623997748181249937482528129571927571769919907465773178920277450222320039170327133439986578109176580206220154498111918977570693526297804747728683698460622057270927284989851207777199170249410426291328644067694862567191242089052956545283355623890691365290538872049919568864708694187258030827391224617684442855182313357282848528564680281343314421143822002002306774299002634359297030826094103193740217649403846237127566163744996880377668131824471120300790560887004669656184454104530432226040783438810108844276386553104069067538385426173932217297673222856785664423718896374121870285500268841900528927798769906624476968828487236861643222058905634967940018994631801893574072753940521621696751402542167072434345050803953525376444087012842085279323440872341481143503806595044255603824746066009944913990501121045112819354094537097258551273789280077404438595990299500478506975493975394843924088104869669440510879420575965697089647100739892287468685453073241280968245262908226458851571128441542715869449030159919515594491073637591352854245674469041744147492784883686699884233863249357112591243661385888555157531902528394406845885175709304018513402019116274925306373789419745306404045701763056259653701746724299219166469132456387730674616459418047268637034396726844044433310039381335091662220123294695690490027994378282285452179464028909830643555070163329890353796616569992180659936886337057175550131063616387517516573937675357566263351968651862652294002911250450136952942577933537855586181545495838869939265323864218462994053034793591201374083209670497166018838280366601334854327556471388024736748641514226123152493604464842576963084290551716794400827621179232754285796690116657222965213499284892166446333510090481173017134764470167380592706122057618817752144768565336720033158635688613275862559302934241979467740995607071460614078625297306750016330421496392318530563866847733484311871879885208866094282080074595792973497981579063829475790037390450674143591943218208120117841488935086003593336937168049633794597464107035851471348242462847176827561751467065259295468194278638962293990903136511888952968710294047075086389043574794943196168365532637402741156118677627596972509320994533898443731862183897469477297332229646489073808072273601077961610449493486655605081902938120238449683319818694712548718847165721800473769545064037617994552525548434945127574540366494155032612969746313277974834787934204133506931363596638754150551794571276888119672646616654272534519529693742439690229505970512360521372407591419545847683188859494146019996954750997811676139642940975989645311440382088984131646649099771736571355423562297044582807755395297906261196501715983361431146861772855684489636457110842536559626544615603840688357057568442576967814825985770835364090850652127671373089627752864705349547466010139114913725964372877593849445093904549490610817119299809995701136625526089206168082350291394922016335433681990793870798293073934733971064211642113992122114281661209582323905928604040571674070713873708228039064111913206680358327218895816697501939833977135332282281103320759516150314729777935765842056234977454064779629040799509351791383775758931409278927735449884859069355982512777232444943587269860633294344114647943569896172368382564306867156621539940835574074436051664237995996041912929411773691452891189096180965728526900408025764198303832923958406237071861259103222694203356600088816771427395496173760901406830283423560672351726555550569470502558305914343861885355889537403922006691603897885016645785784778841414716427494824104671479946581863617528011754458073127135703795481061881310305361675926904736330139406982944081757680880144778698459730690706435466979590876504771907110088970686214133853543120584663611205592905547821239845019233164651698260684802014545870908092761900436225737305012795068789816690267963423419360745687445663829076042581192265984709936836980788778654426954770323738175327595288352709489809875195611463100987818872579143871040410812214459664243724182737807065633919954708851706813854591088536163264885374964306224909182859742722401687789705354276096593670392088215398591582797515171248360444841463721262309849254040760725385968915264025115303641302418997820934751549974597347400474905837778598640527157882603886120803543306257587587424967366496420996595887758276773021246776345256136196208895096575733426456005467204884833072849139165950668487416246230928209052594080349487438919367636858930652589495346866068482940967417658498848220840517898436633956259650669624838568353848409165488300422338335955914115035286010267993416391543420291991108953089708111278918755359537798639161533793015926058062771888558094466482348749205708254817066100879164546427968962196793742519558790706279263722489278504815135065639584174141811847664603288593483926549236241783149838371644040985547682023137476793777635379518704371386396719577515748422703542379562015132381950614087646381209645046531987046028153174975366394023260125754070698363451953293969342984398842627087569501852922571448131842117065039101398111886838335934637019161854111231358961488131464242820101379966518690410046701658001007027379990526650767149419798590599979805020802791575190280347023088083776239548248272628190251110369085618182213889858178846713962332339061652318930408416007418693383014255250494302838060876395998513657213129942336103155019808652712293427187184315684997247962599496515302356696997680151130965625746265182526147174911155994686817836664315000575114652415877207831864995713701601579708423619110882399949113729586289583839472692902454763557987105031835958306348766135674375752008786615032761205737862037871024853574050125378158445155316883756440916432100462480255805674640548888064834857029562650811499734167016320062287464412008256162548272385805893912472534342137000317178710726766546519079967858865542619234403898814063081629792401183990720517203904483160275160045104400717416500444077098601275606606095998626585455692951351060590200976718146625422955131957094495088205663677439448116438515427669184999964294115140215332909201605102217907573470120291364790164369163657071914513393969948745978456829702705684951199213649706181532049611440645182711241490894202739295036429304311727791639728482027954853364779970552209178215839429135027720339726561391270800810545759580347601862091127325113266837793984861735065160179988996931449627245745916537869256650420877005847486009114472591915028049902751735553980579130749185351923968892466113881660072704038160870597619069353254454082343733411394937823582720633969303303613913355544632862473060300248648345251770288123981711115781874852587153160398203187778140258644097441335676953391045836464094221333220092779706297406559051131333415583716382524780886547662002970971040217016903032501551741936010218758748937955310644145707749712472833025048828889661974222733664362876115137693703354082937914659250223637267805254815698500056354949548594199838272347523526302586762127682889147763475156195203604368684300282906946833954898676939963773563845914453415715834653442529007768688561664033738875004239693917121050159889611865541182773527698107594371883024488441283930856029848921359421457099015470691636049517777397976138690183671432372088898490863422373329687327303024785283374905214337959724298597732462327676590074416240352623346737878404569937036209758317785584617315299974075565670416735657755435856252886127316154578692991209116370148169541201448604648102018189068961037227175602971334422256621556793782980402855288158643158024688052299738339930475676373868856511230363170951961326127754313836228506670738400189919774293972081934839275349833304935665474530604120274336294117352320025149655241131227501743025922359430153013765133126990560959917014332704743717889914788524817757924485894557693409816404462319505547299989888426995088860103219416979162170059212340344800971520908467502787593811572351482581685542157457434741740607698211894439941798173535129340635472150783548283788021457492111768303057450676633153615849241093865369511891312573402546623287351002998564954233578731896687878723994387698514802100618532648951402359481315248041931418484537665000780914335017324926588458090547605095618317825899099142143214910954135476028149167422120988607652355227432871914661543468490494178268287956617088185057076990665965795239692516725545276871922772327364920539574592970325313115160575057991419030499743998778291211980482093060627386160375685245991640251031206221136821566087901685365801045366620468997304165343360090400405952342845356075073577163015349703047932893263819341308976830290589029601784202589720368765028405719211220599873600104713296886406818820836313148794024945247246195991283393212705190933171787948069520365155437345220535788223398854810527182153767630850499016888450390787674843433907969452426236773703367906716867432278147919821260341642217726787046087414552478278952684796136330646021429932170366624653829154715803241220729513718825914994575727722162083028007607029400432066918809196569836216297117315313722641950909590688139229177300264347488299713468954304474770692636038876957643260525541541875891067681386878532628896893862547465065912408863033489684791380518753383490780351890154251032165427309316306684990865890786662983972334648689545434856292087236243448660648232277149537705667453191493288784315538367073485045121532145065436837797750169364675726400616546446329309465746742424997383503026946087136847217269287309618362574096115070666432020211071081625364424606392961913432464045600354498813021161825141618606971487264771349267606168765610075269732646984795085358601608696213472205985545878546785946852113795299607006660973849517426138040800582791074087102508043289104787002910136590511204128530220113845109108434844361214077899913188360033312031892536140495163503410864052143870372411930302353438712571457216141812937855630164273895833038566208449110268769326359733230363091185341508567279968690282292371361794418883815208564867716930768624049946264893011978690220499671664487110991827765560399385914047837821835629801562656542370387241978831623516609884066293435255887076154526715007313839095910941015582369819728914198315904632819289323920362534970660616112031478981513324101148418878896023814908829637611045523845502733951838429756181595420754505010874302126997780923855238200763737678171964414963510922955288530369856382117483657996285311175802900529874870853114405038948958952211733544602186277925402516234639229946147538341344853776932427961030037530063111857547876850742962902709309899861105745556866058791053942441078558019260008785184443443221466682643848730033433942249756398566988399249259668721787811461377603463396600219791278587365715521566317589243041293841734602362810217422149294624226240737264722833825966301985282628765665971110477957135081152938075000404451501324016758475597382870499400828519027502661411505626113269434796712564056935555079763332737573603234668821767444873750270323964498216780987872904553319680882067877560692227135996272678978934502009990101477254117687883170595950280413596971730829959165104517839241379680293523198333140293723747834785988741760468569891820587860958359063397502944629169775454967495777417542781980419694239183414078756585925211211098826265605316044037946708019239568188524289778000527079497004582357154243900926925733508085631405241068156445690802376490458289461776665149681227041619926626060696203610116694540850813401228284791237486305073888655126770538357504645957897885285927824932575267562244225954178766624382706061677094063269736414337171932078642996475028207361049344860962566203577917112210841841002741462305714340348555582636014452362020845508069429610145321814873037939921480794460026296001789898639248191679913387973270897668283110926798257352178039885913249890901226447969031566891984553176776133878795178032395036770596023934027005967406900100299415670701147447575884280379729455939266098401004312057558613549914824435217005983393449783793320895032710964359976780791232348979108155045948026354196676600826084260091791547672309410010489325500774800747217357242284082887894541245837802226800308460611649179011286107859040466034466523496737451468081938974218653291078274079372165534533856037421548615794885109935135760360891199540886991871822601475317325721249932660490467136884110558551893426444206386004719423824465680461697176652009902049361109207041269473167416095449917812709420220207422677206670757668791473901125653899011529997274137629865568396073860641696896460891111229182412419068519728168528261626283757148062463827500822566498715074800409385593827435729667336078194421668641219498145553838821530231954884111648859395020302711836302667258275173931256886271962437835435147497992005699291074157880052653640482911667148304830208869401097428227669432806931132703286743679753151007248921513214186165303401481602612953927921162911637314388114577916456927647094000542271237811013836169753994735717265127881629831180249420587357452677560386328054889157013064308725749807930411457746196023387374613710364071670551134622455161288718462964229357736863874262630792872115009043948510206267265531126144337695066182506993843132150858140219682326767583201691750424004839108586193553053595685217175939463453664268594330652304505316470052201714553268832298906989699563190584387941380137498087141903042454977903812267277425266658399289667764129449763175160534869365876843613391978728115253227872300998220436053047515953162466164222027379646178874447731451101980107571221200364984440215812915668952556152189186384612430666560129964401640490926788792130185155745766634895249703636407051495752905122523675659455133866650658583117356067717219578632916523568342072815414809714422362510546116760659988074225981162954856394300839100902696384177694508671534874024142651918002216123427474120085526941937209743321499218594571728601590467359870265791285948699916707343985183438827494388083999582013744967435208232156487503100122697214001091850195514878432120321814750162378005535535674271703123184791268255117522361786007230062866585798916071262665510122237792216272452724634176205060602677831880678653084456445371095865763305478014720876204228091195191736478497731478604639884813980127021848314303375494514154203243502531791447380458338618537602400163190703422635202554750239573580322898022668901846197844271454504414991780585179889817319328534443397730699352192057695322912370130076338792935462006933917403683177938641883990416847810673426405315286686227405370229211897091909430799415773786397041816121578526425137463945068166292632448418584771400294013685231858327337933499640709829031805494335083199212439536238498601176626450364733772106607321070832895411412595088939331637984176167011482711667960439483790503889285060312895817413947224909596637446270215298954802277091127881276158292781559700725398613694265340682538974645193141965914450076588895795105241304826955671080899883334787720380510105707271509941143910102814090794717444394563668716363717851451876320374324598656822039680314178432289219212033615927783764141944586899097553819344162280138155022335957784943141559540198143414625911279522470380991642220924189412368628035361054225305020487562726272584951295268183844085890733250281602168685722745111025698533128250947550557046841299003752634884086371176357641040704658917871276768237195455447307010995655436725623800526478244981375789614027712679696647582230732149882863134624093345384468193333208157517146596849196653913633105630603652187367193138550087575088037377429093339941957655265767676189243702060453181563982486451505859224345724036820159861706932903816454744807835699929758249730871809216845855716573589594848301382726247902953958195988928873214678133345200794051838496512616525715600157873411523101452016613671892388658398655858262546132289608497548575964628939908217440070197103929366533852500037202421133954623403311486146161319550011109795890937627294196005749119167190119707364069109558636952528171579830883646429950250313758287642979537628941583369947428861900609807459577386942513236936521986823805619321623672152547954388729120775722439367719537613334312556704718496942999405598743632811946739060020185859141404461558665975729100321290366193170192304980107221520353829082225485361645776569108966174292894430646058754477966020394642322231394215431030658538783850389922360771395489845918789735494211768842866495274437044787074385751366399212093641854725542332387216466243536019507068692170429067912445880973330105703558465007898944954451301911900982959446112150292553594961784936984917328569548095300013260830666549820046169140785178119776850358551846001200756401946104127302743007007952181487273749576153176856080846113453091921307626489165890701617446655918451423583756905818726719591340504879380203631916744010777551104896548386388331417454801018735680567137599663499953544744382729957634481541487271780889988563400522118377037967143385083604683047612681810303046503702363620965489325925082251093097151107030085153468645408689756789289500288639789589457288815995109584163345860887065216766403447417426251886383032040231766011891800138765506230106943953739919691072684490825163420757970079993112404842709943724677159285841622641928115856784299503854623379612036862758610350554806270482065765987147186284406541941635951673527591080350995094823464306433978918403079075893373469329445749655006973168926502166320826245482499852388710363146241051658805829925725634586726588882890566357833663499254843922530362699946426100606983015156502354354999657911667439912856077166232949479621256352117220248327669311839385463427666202937174809254367652201130487486868828669601952920460367438398482215046794893346303397878684231428054286428337503649541330820498103261433652829726638725854714725099647854692722581980294990393541325656887423687980125170244295341254524618711065663992646552423131820311816336989985953405462934372187091869853084312986647252696809194111389960555882044283235907785487485738610968791501365908012990288769455480096049397461037502661898300656450457066711710043797233344905227174427654725991403325969289370770251903658874588101114343153185185510192248427695687620270573247188004166126689740810176126429657033347044304828903441211714662720495494204875742709617290668177118690947506362050016401197676781500677473014901651311562288497097962352928415465611473348388836697913967472352971899968404581571759446889406109145269947683048293127104983930000688430941387218196561327500818344327264724274173774201755524877438281271484080169181391363507196239347457607970580247231556742910883861699544629158885445410189373998167153225981404131430804638387978595826450220053215954415465917475841026635429501748468088527581853087677650311771825493614005529528678851617112845293069114903283260952724431751848168939132062668906535763086849659677074435178473745953672725050146305513558248285309800738055431966331656542436499220574416215304193049003151994895963270226935827690951231771420860981774804395799096719550819598012842931874000306102041620198893413116152083014367720092536207942599890266041913603572612192179798004962444268605448821245578387391261449281886800080635717635430718236328921052820333857504202947160141939628191417763693799613696656745495527548307294574905927484778770557294770675055262325394985081038619248128399155332910703742021314793217615319256587310504967203386481877339523770523408547987378077276471777261023438175853235054075696479198471242868309178428914378504790952708795226838849712269451853916653233266162629828807512638442985340015893487872114138955669591576244259793993196972614953675539134936617204262127516578813692596167813709326921700778826933646003389627034546199677481246413344935876649890335859849640941209035855299276594106007100396707465211373410926695554790287199036450671754553509767449134101526082640733599759491965068965556773586704699476600610571033054124613124699361623773788339921963258610675153522248395801151202540922352056324415463414401302901672119877034513427468918873787287889432632259574613726932968389296256394679611778430502097211732464535942949706181821100645960651547136485464069064725012749277244854581085210248535176545527052385306095826572753217268083722003483136002634378116494379666150870653465877744165662907324875840611813702874554820115086645758640193663703559063150280441646536008170534416500993714798490657202287393988943212053199149694694441086567755486071661071200894729740387844695308368362009138091553296256656871124457765896325933354046622628250847136489029058224838223769452578553491183404593962500013027217876340814878476018340401871008627787624284058840947119820883624395073253935654359743659960540200710921090723308208279563996217561599212946340518796738605349712243965439314060651816912708693451800729778655294056407173166944716542798813163346811084571849091621027879814780571749203484758193002786145079021151473670542654404923634796017035575000039106968376340378717759584566061021118406101757496867389161565993646710151175146174958377020018388905282525786452599464732649910774594762819000215031442292381321753126554096685931788177687218988154673043340582296047189160497503960824666761366637917009796473263196693272362082621771846982363475970251514796812140871692810775266843170826897231767456033947156224691310537188043453957607758519255054326623157886856869741459052043601721709709726782531283387652711152211657825096441963225248149444866070870840975761011560954713490926113259257256383478410227245650215178793835767946864302565201992865962148186161010583264859852018169532486350482989402802133564053488750379701111630996346049939201586317076755794693869022316006128757492887967979263565505316093702631889479831561661180078619359061791759194638225370511507740023677648103192262095935975070454566074511978092599044325115806471950699325832678230463263604187819922058106265922512869184660536174932218520355572901639727807667329289507934740720621318936403202350961126849920523776499297171477705996835175662739962999254605932797611360467257468436937024274995470971569094887390333193491853600262209156845530250310013547084812443573190299183160970959318415191643263297331097438140343326785090612379489626062736674182098655497550561322588001379670267917016894997432335751410616315030502541303079639570387387430021509974581903023392173292454117053846561240511035356385337888252103421637974261413796855190269594163015950052556013483232402167299009438893140586804363641503106625286871209732813740797256038554457324234310732808468499676439818687454454712147315211803507098779848512981328695745100599013710568894893064311397289802283071679272172459933757499016419811350425967966600503450213781362726470138726953416218297913392487247957082475830099313132339504943650635398936433984898723395432181791269268030995512388653348155322612195609411820416365427961196410311060501996553424391241596500558520471724698961639133813942804755170837547563305408399078753614042271402232003565086203479164353599264988822143331733090569667205590646792104989079184188056929148312117377050217706444699105591242886827454804697810594527113646858279064781161575814726169579282498383054451850326201092069770679227204206337744572526900962266020510400585452326984210794278078032852225552408073345392178080001777545664343725958726630083911515509461078999224765032926485121970464310058276175284737160704450746617858647226095434431694821289161700396902303705452341810484813597131213319950406964266216026589447045397885202166643283842381696245043169026028731615907288804012807322576052550206609637456792729745433709145721701050078770939939006285566955814682874421736082890061877210772998899534406840216114693257608413238856530906161748230271002390877686915935152579304356036457252653482391774888035280170538659310245471066678578254300071832661975677353068311698482600605546663072577260806977393009444958893989222835025073593845994215407305359920515699597183233966547307676146072883219224218914969431578980920834114290978596231231328559087309232871875861962098471526679650798508502315886751233711229952040159621057159304346254453806397154531536048618189838854877384906758842978152124621278646284720939311285159848952391236043008061144548848397190061851200770787255385664645307564193696708534065095580195742111847739100753140667395562633953875304072721221326573623857501429862530587708653044245427234369736774042905644189964933583114954449950854442096969346170017779920257901792155671748750969931518439943832973534547246413724859163281853673493735117354769376555512709662662336223402261829101529735333165765682621760555014330640736011692072146607459368675063122045404115842777566974942762310733085237875769749356563507870359511366959275722249616367995257540946260982164344593252767589782090682849316734486305846340720318185805918205532358788320487171006745434259418540916389106258471455066078151443558788181949166380428803811171847539458076469430119810273559893771580697626241069723015977401498612926183080271119111472118107844923994158689713924242873886853721404909213986014000112978917868749993973780346579318633692567850079489997333076790919253885244683352565099138653083805457400377623454738369072824639261221483449549529047077224690964359023168016964137501423704693718713602468880797125666992958057019746212224167747421449624526818071581616512450542172986280531134099757711489306007576950499306319996855905452435286060358958438018331283490132787274159423192065445460753822394315956715586372992439129230077376455106142972513464091860164126810069998000428593722570983817448731893745161322127097534320433253827205052795837325784272980603792972877015937269692144440618387002088161331283349497730862516636931916605850745227726738188927806423637943626655766692207399213342799655654940187262431517655384033216698454802013753759842758052379286949754219064387343948973801283579070256340958845887304173403924904572811306933088240136183870042905432168986803964081614970979152237581627096035378499896666194815409950014315418639802671021581264498950350855638237683820891852297402880124723134152988942025009073845789745946091865496160934250610612850536186280742599027726891371439372070588875514754199728403374959496043977154639017049714664218404460206236065544843595148444429828491325498838372802384041893170777381022259828672931139816592232655786548894754800398330514189893363689799755488684571105764686333849093521569496538922164360567224599686869757862796347622687305772097743544193468109122014234291243820060634678733977546779463408905944497175140494288082395723380640835360579008132456835749906958549963125523937887039081583262199302520031101374403237622181403679982355584507424950083951475232952985889862862665622554935609404733805146210463739357106337539202968832499896620830589631630635618320780468983143563182991538019716672446673346482057814574780940702884513721015018078072177366355663676611562618514748603010915013450014479119441056030902786659678827089027830990788520846855007257205112044230139493820902233590959917272056546580454678651582006124835571400676504999385775521093509159282098489047621166726216964085873532397415379702477661829958935783517071448051363730057442852432508851524223696323579381325131724412031785950892767499899681091413000293320306262871380725685415892765449454945876768535002143225573099288465829643353759044192736838077419449370168490371206042995874223988256709456900167827997356776765604582269567958022752945963971736693884353661591714614680823298217355929924858838606970689294403059827445525627125332425664860168250971196943159466290942892394063313743771836706218266982432272977323675404451032264476054611747981669837570876838333885649001960877865826082283209698682588525702406786997124317717252946361881002429929312191062999981608349736748710406279799715479899181690119475290823122068578422204137596295589733821301033192202801607803247715058065961763568965293739380525490356336880719046949957195732125589749752813672028240159829103318862384862853880665415401126207816709332834430647803806907432245484642580668207627486413530875046059408412113145549125222384481365909125605632153423389240887265139484352294335522291235931164485251597777363086868642674952376673032563709963237645142685037395025471901153712416845047207407876386086719678462812926310195286829792127748451525554068899757015908979631944358641242747622976284114659667393053937884858288905622448142129883661101650604237791033358192183872760847521659432102013082065579883104013119961440720111406704181593833903016359163711443582676426565485564651466978128125331324928953297707648194881177037881034455322150412023105590929227451572600434872113568617809214884666390232439369624896793744874211974365383943374851874746330907705946394737839509640693594940685699462113297534150565406837049718745015674969246576847951631313105473453061041756056081762327837106237591768123233659561289557598654104008233185215828532459404917246455438948220928028400089148080713868492965049043806245355844775335288312474317326384948896161110983703495341952324374068591886697444210751362371482113143497948160844848983811502665273582512858313238061327868448960216217200543962452050378158293106124534765639738545935940126902858361165449142278121949947141038530129657573923620976841060478899625150231012765506940810419782476431323229627381988083739516697289602120890447923838123773805473464206208758795401805616465017377202010417222528744445448168774155804886583109405380998852775562041532212510873960061365277969429728876901204686003279827056384160574000096770271026728818961082204823935887271239700950459148139063354341610807314525188503714497241342064877675196466645739617150999188941293713072592054232811819729298236903591155866625273259957316268442413719476247415667581802098484349456112226206774069896063799882108827819928774892041553086672815444113068295685628739148102232467240119303359485868812135608872250091377323679553946385830173087713864078124315723352134740946081404300486162966562917175364122829438727954349859933157794809860658139350814560784501232174885936656373987418229965551432439670590235206902893692129051333312278914734883858493779192841090563157613640141865382411157234581816702668669393465697440058182533695080728416702746783957623441133261053010274025348923793237061760445084029425156991230972119485367610479101513496900736372703787552880343811386252742569565961753176141601144266306364198462864418858605958881971547184485348050244419452561964582740789632522523294253482576666649160432941946305767543013246448028864210765036712885278373364891030179410930417787348581002101950404239457786276747907673132273395751257379626395584385962047445883452291142084608581815072203601146817024015555766779988635649791280324547104264065094186065196067962192858655092803900218345446105436109624925368784100199941081622319790724178988593079981079731881185937980783919082314202621002513940169563908475539419520350303838357583745892150349747719719676998646836353600263117853358887721765964585318301748099812835897139527195942980451519860664638326302022470072166449893652800076358721942618879447419872640022871914384617903251597615807495497189498775515685159571037184551540365096969214017800290406044551948278038752131159067939071265874881958009224878731308970223567709744780135878183519531027997223796952216186402334233265089608482473466149435303782432809390346043987771253699041843782332688082002170971253905374411446208960609298905120527730498269335527513145975513736087330196119897421969134750880098496362849830380556966611072638144388514189693781460851291340334109663443689921614991486963531902032317646035863192920418542358176313252885435606013218771432328570453097562371473451404805989836363743813177858536293446571413619457350420407277976867338758029716720215270915681188449517626825220492570414447093369728664975615821834332955934011864328836666933403422611790787432958328192032439058322452282145785520936962009062227414100956858976128867114067017137087173338330273838767123540454148882877918952459169804057051894082714163461977126862972661830974439798694890754309357761950647279394647054754471768015544030550840069346756370309644022948828846090789630646673611631071005186627785887475206320034857270166047421114249187670136404950341935982738392477317586496606242707414821370530255792215734328526802717570653244340507513560861950283843343950456044753471681978086005208749284061333802256792340470766380710152754823893193691448721357237032261478129390660887058778471666047504245360196698507953470774981155941967242214940576589249758708109049771100408641292460824150180644947483129780392335743161139782428986511462493304148730542119685808017576476814478119481672123917883124697601805961782021690425526411214859574445737666247679821791360723027789464455070416410282832109134327298907466506952108727837541102807878581223196039873143369329366696686917239428811865734817031706601189828991289890485169698686146650514763734672126126796531146073088608556922158240756724317367181973669560027439995925571969574120061742925170768846971939913089839400933983876633317425457121340616403154645386775896869899423152668067633282123598209655696075848202056777837962797378423866489517265742111306224287046373918811332033680640472136179284365309283798914411399896843346613704773120533230994651299203737656717010565433436027522685554496162925760828376077770240824002593467719403430133687265631437617277686309545072266653296271962555947964140174947022361294406067879869090444933794628292178845704915428141642381008110548796395922327548041959460369882331799505856194479890977107595633412570784940132080939156637061266765518574964098703061598015655392953278796042453727424842884364461951066875432469241064862503324065872719417014901230590915797605873253662426026697612838826572527707538492036801314287928396155892741946958617372836884073941972000682246831428292586974132418559633511997932453210851243238040705291848752825823547105225458291234487642245900691511059383316750085600657518892450594123694915190553186631266006513763017804603786553028379866441089740424543044949238300469443120066566750878725117249654262744630374971882527651773188294555741023479106704320831291090462565848766744521579935305354782731174090202000020386997979074514765283783881447780579937772160453688795568919873518118258092439193437483403860857771351301623932731945182455404442314010773361543274381987541051509038638361808726725758527538085099373177240570411636914483133072360910380474104568672440051355344639148241963833735342808000369175971720829731955103389176891437343631773884899370187267976943403472993433504128473841992043379375579328291927768594123164644782301231176879789703434310464698638278148394279168118451314599980126285107359017881860557589541622514219124097070392523054684451639866158608831544915027527359399528232877767417982297032552540511213929138950565382106126132585106356597042271883090978682945955323578566297875521034941125024650074166796977831955143110078911226175111101987659139836785995273686419730319712629807080112918218250478957064588529050882381378321348351073521098312160459010502096244487785752628320073574876055219713484390913074339616052501181697983275302030030027013495952717674729658856675611395499720618928455211106538142640725170339658303957536611902530617487329673529567123382612977176508216737088592779158174532228172013603275396331921445771140859290553943924222983977618515914538358900088002619631956856102535306206714571699300518460941107603220307118331234083831129957633282861292384698197320279725357010495625342664709975405367236559633846392677631290488834795852995641337355416628625624590298824065750448775847610149190351417546742891371185691854227036106274386275186935075095710894667274906961860683222597460362554623062604941982479447981735461190231959359801235742733086012770469924054282664990306786876570868574713664071946755196729451752044769296239044392066516657635028688749236461267472868050498988969690395898421583676038041464607422108299846042612328247212701334141772048187791709015002927888212867721397455933278075752905597469092027014728929872052201204746578380890777989011828177988294100382922134241422405526934093390746758137846458019835013505878292254345711141605230875167200779350214815423265761276284498854272645200700326972776371923293729926137739497317053887418193910105485210270229365440170554984989397584327841050176295318508959008528123346334589408642719766606508986658820536820721048168988282676543486256349769879601280109623660944100272372362100281279791036940495639796406048188946405935331810802661728258694629122832519724896139289795827536833329457568919615870371689844661954186916741335798193918585046951950876692237065755891306247368600744691267600069030107640426397997990309316403388158159946417590870195223456838220805725978236677232105640297069353009221601462388188709289201272502497626910073623945551280243815400853322415112671573544565317732964772821155493727704332986948936324770891012517063733206364883787633357146466841832430753894800718746844227009696560798500723543054022137186836298819956935329802932567244840968558117987995161306997766661381109089474502791373060605229777381906111301808566651210727873930540526899193933689705449974664456024497128320385858268382572908462195044129580635326217550212154322888671357747090235532988624118471160197815579556317408820548341237298041590007089423839624719006513506940897927678583492277435419645013710088604076082929347040211893855477477108823899920763705605563709082697750466275630561723679162831257539182733713657339687972867884711307283110840404192999030480964498090266324410856101462595109472435915506018534066863441414657295424711287094857450895545009169401089290250969787240058692948417785043680009529364951368179042008306697647059108530987716805255300093344349554207687737627774323432591726234073506788377959281334108021309037082495296559127965404020606088110534479495740531972031879979580493516007408251625854532917536555457303231467851568781866191740996319480825096814726500079557725906247290295554038981853216127559671656089196826706783695895888995862872949787645244924455322075437112496889462425640197901991049711528569313647116660157203163480496314591173642761324709273110816958521919447999920136296755526685207886761907401290803751056703490153348889472454014320205793910577781447408043721031507865261306608331649485347102907531705182691626625121903031804914509666985774582944272500091164717471736246663690833047224404706055312882529297579292175649222647111043519705179834872791089728478960213441618229734700795019555783709680115324401704066560251181442008618233561501010701582926920623294791710622117223131563189650806416306671854520364884388182902799173979905297157732172102276744834679995362104870912872185173548025156821828588067253945979087045060219201710928014175971949036976124773095550730454947728999302366718844933235384368397746968573885290724299710354518949158987167528830124794419354929819879328591632483941939574993133870363398077838362915386052154790385275758373404351825453054017266704538458022497298473733220448257283919144324301862716477899295200531436891447871097383159748926871540665275405623530566261169612188412398646383979965390832085505992769628990540276858970926682064971239364852848829856306485241597983277767960090661976046751265230769575586289177461391987469900476496882432970264943646930237982200248612594267856528468279801829074664530030475160029766976753022298080939636726675416363239387700674171348423223495794141165678904334245967030269903117060266197086715839599923698080951773290265983814139306588011002749087686722212550225282454209299852497192320358546891455259343966770402661336757473645037158482663185907270409063433287408404187475921044931487011993306773200285198495178750846316985954555398539977575200660070766789071555618540564118943468442015027140173936028526575622143839471783809402917396965436255237777051754060639596053696860332531658397382904528224613776144538649435564678477651123061100432437461942199493669883920521342422150383551856094641523264979876887485761300007866170412903910021452393540626011513523086048072927099209843999415892362003335807462610565760394446907236916600366945123700577388303563917765891090290542942624089678650780233065145776018395144143428813511011378055990943399949023717294662514609752344493238869354781655083640267352159069715954236333414170308701755845086404415347219169698769322311548109745150889038529179112418789241642459094398473063388162788937574355336563484680450870901886399092255521411264090740387958310070769379863928573669069128567594235140559568290436243221480407388125853274300895157458280207248762717487627907976059066242446197970745817186490992618694979165937853638068971065344064220420028304433233981949589265944704809332423734053577402706361016256506766375423051730624254131503801889551013313921205630266788111798391813515975189043402309075839352537214518836394535082664746631257842677201005680650738234812613019279218687479336949647075428302554038497803911495488438591045339184521124885473041292892947283353446077190604068973391693876882061022059048168286014334877837672646701990851857864390354508171984365398654399775569269187913567127576245588406169862811709807098412690305626942806996780439500198213866067253244546711982040866985530371058929673992020582064283814949947424280563247358888090239001073939052053656742954843943295244710152758279636422805025521346210214672162596233317738557294207508322014037332730469378065503388086072846612697755651799610997629645935719269304070852189833632261308383942874981526492967564329275679635367374719993138700077955486621647428363261771340821111434995955013595460916994662083874111357280649647415700009275425572015901830374078844080336680925437679549571249577939327747279294968705170603497683369310775109295624312864305267271248929426213723218423097140388475024168875358461330754182257119334989589002184497992652183618204548989125942149289085352385177873220461864696079230155289730426423123934889098504924209910158331356553244430946114689993639929511729034484327236647084452216286227715835441374851106427633606435252724689933009085091619128738213354207129232574081252512241637657813452046182282777017788288711928098271000226746540608933725066555776103551068420437509835673128659033269291655107454683367567861961585914303457244153560786955336064279066150493876369637187932721380674898586385646117323127673035359015308319141933201800102383186232546700439153868827145382679971490809030474678576084781968025687159677897447771258342378974891770014534997256937885081929293432699691945794058389323595675306551669689672588554752947217011148132599553697600915484792945110934950141678203295660198322994736213630724682931177249533453657917010471216993112135432789547541767700618813539416629303587302593947644780488436580995523346504103370128336717731413059117201227269474051245805530551908147472798101607579305531608740668785465193777987165970736593887486259299571422983931481553151955997476698400807611880197622849200481684951771559085853672809827263829002667677217171562656776270900661093825102017130485755714889895277797396159180940945628508552463338065091793931217074920195668869669381484241952318723020075630779627413420326257013394039280196410474017443181652706151017943015746265725146079935377869349330057920711463076522272732455162222164109655240655029978239482169293581992588940070659883319575821698157512506287667764567029519743100719081012320197182875851239405641547704307323825528606322939984915352902105804438298965304369583679217775446521126010644926121220928945944401527266838536175052685585020789691047964257503227151183575094210914037831422924514506265573152970041365476204569558570948006921643129008997352167165847898472059083880573076928023664636934857337663977998701380658427672962378023663358612826335198534629998606517171354252273738343266656346670913762816977375346582664437270152147698523770651110355531021276699398748814040203410670735965429278194393962780792459310924283769998823019797819955759703294089545815985653785792068116521295325253032504072590681204668743079963108184806187817956782349271600432875357710154590699070577499755207750041599049199172758234167178052449056204096083762050630041243398522053449450652591199786750367650013223756568091584078705271212506669292223164646144737203115597428419861767625585890439597285717115378480808120526875655936594307294611173106565613600370404667381742763713951784059510860352861704309204445064920301104276712276435528691507980873058210322379955283313510608969054300902829290017898904639815307179085694429290563610175806918989563341843227503575068254943704336336332998434931877093473324548493750727305906014302861004285734810980279580309847956542720664735045653401991556249402914838510145003933579814846774510136889336720852668478971517874740997317613786690293859725993020372282415617153403689006458044549286126845253764890458243545220392041276439498859332611635077632066833539969414326867962414559768840835099773403926882536834222022468067385489004819432111407756915603348789978578760905853267505355920003163563142764149136871558614816959566711053227001619841347514257996915503450548507904301993611765381634428464176356259561060593277308256350651391500237817775575508767187753864124689667507005953017905328909556820127373411181649530189029124123536486799777837896394309241722679656479508067420906416892156185857067944856745732530245357953298761128301671204889119923232443746697136542260380789417752866575337811802622434863077715562500391078602660638879078641831746941607399735558486445761366411209844007281170911660807007027243903954136060917510913976366012173047182945582097687268329629845879115348641496698221192540650575340841383032438831453024597981357009844924043966081861320682937982121160439807136421437489049866731379843197441974322523793966323759731303926077623743238645593294787032036493514517665509017151634841513767852823103016979259067741448166882394897017484860903279455076508401662096473265434512325577858574647048847167723594728725837272614508375997555147194898020175707945501189591110789295481629390322810873341124064971843999771508865282199040529082495823595353375895643484387163158342835265045376064570138205118053126860027580685902502122005237976917276885533782424068035981261780551229842800401419003258140982046166605293496604699422480254787607804173915615912816866575026187498463653637422913295021711553426884653146996967838285593411378861815898465747114629308428635606695538508462748339315581639701276445567532689895761741770792638177031768443378723697587701437528163487028744579044825695779930598980194109266057776705684947323539858935583453659396601974106340113090904207059128160100321623281272040097318178849109196883165551486547209353634655058177205714929853466423440005391611370515725939382384096729594723319518117587394949058638793838123784009086893771948254989980984777851629888087213895133599538502293507463054575820360819628289636628314433944971223985861469414988970506214209915537217219779554210386793944345009148319848347068567557131902219142117997320510693896756601800265685151829035934966307393278308295416847428182051519232433606860525640763245393772946983493865827348962135300415919312560831835887160628764673510207371230242474704215267663687704495577733353111444013698672027686966563399899383253013930122927818763662273557535305625142242289636106829755758400907261678383499559718037719587560595643043002198199526264637100804546615218926232710276672331087173362086257320967919072698392664093488445078920999340037830521576397873374212774842563531950931830816085253957597974434687553932526120740085764106214404864870035027518807673551914844257191433164707244535578230892280610208428122707250382772767857833564237891365925628250750805944983142815230319774063144744684749528871011671868793701993554979751348558210049852530432673006086655292194868214598145122529101149064537159615548687279495515072719455525968218374867763250658328637520275231383553233988919634143667617218749630600746747132216807809599244425946988315133763669732480586251419887397022265512385474702784660606923972797348450847288003568661220803384157797789783195664329725671026653386072690879683831443386180508297877283145931849662722317876947053056706213399924249305524924823471941573976122688553684574136333862942001816435167892774717328206933717436439147653013260337153676646053923311900513388074902600691347860219987162149885104350038305158562089151647057815639547503874695414721338884714500776294796936558010711826821961812343271057846673297666251907513350958908583567458635432564371243279320098080354520362494390262966516451862195711902882406579769164039457488062585069732319568205589375811689286852481317930755105322565423201491972022435496073751156286077888850259057990064655827603237540579256035139686609013630288555456546120973908369993955038923829744707402672076569291607811905774085526295216131175670845325697280098106311668608513898805293278726978768116810487232521102572059910013949649669218877441563184608122532577484793797856720768449159852147404997390354937416372457427039223436743825324645590579923745514252853749559236136442379890734706129714356543813330350697041210074848786767557378382668644815802455724014327591054358384894065867535809430368261478953208563713888942527422802510107597257639776287853286410713420597293638303722689120464505297802991174396338471944987236052496298302231215632165689553195607858890943333465838619090619282597252565839319161809420398022176442669475035110277729800062238440634091944979087840588167881949438973435138696789599968032855451677466329077822613585464462805604315733221569922173944749831612056587420538314690458742116947446816773862531639155037983426187605621929202242550709759182692245324228166189416950695935045841940964833321690680445476742428583157753685018799596632298148634444012748380002736707941762593946831158019032676981288892664834873980092796868945444673555199194178693183780986516675515749088303733972294865487803482110520496688306837638937692688230304208818565081054431795761251553937237730973768176738870208536401976795372481468920079264007016847131579935203458778723824682002111191124792124399989661801386590838561827409187455500428501701101001871634195137647120335497621342417120723269008698565796773088139781257189866679485967075088238267530847719354090324013924589677598185197127464934079203109488014084450140192300767152083453922291636047143723298469387046289406447225294749093930250242923847745151318803317330904352256688054483102447364205995334538453981896997371658851606439762528924090439676097335397492396104013354514512848219154375222984852166764720020448415066908199476392936450498720764507828401516334917902717264138715762016374320060375149694253193614189872513120052733677912130773972664215005462396898695964334348911090886086476987769641141568218769270432327558418609550990554119076895153217348276416465706592222158055241836213530471206419620943698184496961946426269022740530228229518693384381502349703838216586630809203850955478151954451181447962690423038512609631468863596871564266571834023583733029106938115271456662083085730617927467136687554230630617574314160870874391371696117603540367795748598480582565130615310379977003019352277367203559356513795231845380795917506121314290449734039483365014900155455899273493486902203051382458319568898852643226126344112188641317261394436772845739119564266489435798138256584720544336043344216343713220512514563960331322444631914056905798284526871979499640641188422900675840001430048250185897372524049214458616936221908982092940778784830454255995066899820681446935682464020072395108757873232917360538913085431992718496713033218871997066817367435712939643716910591389048228323136310044909974827502024173830552236870895347455357640740777083188815984397218398358091720097834221306379110946628601758132604964326021417596475315309806789659513606017421655708131411413776126808619580868700018371807330209927536470339858043033313448357653689136479285574555330554200926937097190566016054755273531857708809333453860034392152182296245502536506569395405439798747173384490922464336580943207328214019344479050908907173130213970713733476309204586391770251506367255565395212083439305517171627554241217497545275757322277870840547834335955836817717061223979495491714841713915325637797564408747140282484467619911253050746642272828012384853757003312619839006617443329594055480584922034781777955897664384058763816805821078852250707630027989249763211903274183990716345774314474098569734611676440047185538609213931416873098655175357469338564304404914882034818166802323654437603816123731766584881937544796777352894506545112129190541943637830336328095174110270438132165037629337328870497033126426233201213808105876320395187923443729885978323544766914420982288857192426259128829810401659231178457665679123989605285061362613840014557268162820973830627869133069212043237269342642706940060558840171147729936653635212413002985001836958024173762239234327086135524697674593009283516003755477717682980000054922426211159845279144699452116177518829045317622837818007489776417282507984239866146903407775218801195374063974612966303432350440559467778625731130275233166834891516208140535742629335025435794662407986148147315514137224137656741559774695904286678383049132492024375576733227725060256100853199258921953092279677997954716621255471767883634195185079787648690014725096305914883512413088277461396630628478717137083239127307215019205398150969373837250635960570506791320881014487553705445267850615464172578283526433453458021228549485388240846358675223420151363861785020047521617461913410984946511819585953933833481021039442115041087274658145654705186394837787585233409165140631879409741840383238089120136676447030539876755446385874329863659822059089809048548108761172428917838029391302115985981091669981032699556514571154179650081839485129703445748008700817176588553666029345617662746403227867274935747969705110344321691561953968071164861443531140324341514553449512518309932574155067700061569939848924387362466734344834223064959510794701857208965050091327710827008128108179455677753737326181881020962563233880158826073219838454433113612023440872324663983216708023571431876800208206449053777941820708833768150364821431483343828458301038753534119023394345415955613213884197699680580856734231077495969921120849579934715027696458982246793212295105961975139037891758974118427761001969232551792617728693721051282421687537202471042336371254588512462510296438060329346575042872499009097974111194391292196244780509300819749296475427216593158704426387666745142751119702295492084157496248880392179293351901390381426524316938435767815768162403260937597801487116205642956987403813298773951487718535119827841236634977594570189105956142731053868652614227076575771774630506241050848992310741332183293318179427554906995349867979454184109330103565936152556407185135868346348919700858266205957185551971627442686938335664310041844541925392105138094656136111008456881921333567610456582056849207050526744438834836944612091826362169152201445582446802917315256419572028607351403582073569469163217579844431825886713508651238228671321323804603992422260187574958531561491043644076802705432511710873231911621592575980324280871275863489130233809466042264290150036998944049075570493798691148516946871984296552289564252938838789535632666876438410335836673002703115213294267779425795201815208204507685761981313351171468713989780444911527353101577235264375023100256437696764790564287110407125534343742769312198254247331031082054524139461500765884248381324310754387402724667147611545704418309709001491016710755469849868397629978914406633543513041769882834380464764485506627762264100482648797494157689495749507647348035072981599489314416540367154339639350189996453333264192516107750158608229019449504719463841730150058692491979695764490176507960071558924611530910716780598373903977137352610919088226818188105730023744017233122712143012518251519558430180939816819406314181072408826358873931164003185955996867693707376868394003770104994778965095227478891570925447338903190779404782687777723843046967403486869042025686494239043199539433710668102322879002965314674912194496749855687864003965640947680222968908622134111762811655408621329889744984023917339615582657116624748285088568411649628827507154420165533708204882101962526412672574664199114645950873695230984804478087816318156155149765598038046413071738675799090063332123871803185242887802667895183127696931146004124594367005929313015035312999276047071926990082609787490961174526040924885793089874817723535620732429593851890266278482744218900232226198740981599666675120582635163247910612272580465715647598654310325013285482796426460216210887081954451468510677398635381482704116717586302064108680972546141763390081505273095782293557727398687176413174579612685747447161089284216460441141122689656516333331032151943561962439408005938308080867371388543486652098679779738302718706508475333682260642010267714718651902597021791957887574295103477874348839733348501011366221723349492718556164571138213713998216541634595410285029545966763043692326514656443373096655921225993801169932956195258599824682599277907972211669531005511809533061697745949742172754400666549714015623000825985728317752521102834465544494677611354518974162238518738828828922856351946657397329443244504052423083774327914674371519912265405942008153282173772475137281023714476095705023201613757740036221941513751240501399236538015299751463824401617687728186702232329559453629421214776081228301109341801343812907538783825035934234784737444628038657439498389939025906592716516399028895987648380268964725532464857289743834018549086606416610053423731376478719882343317354689342960893864238863171506188615970426479136196416016374695775775215641189245576897819553705703654980311703430093801828752500926502229613649172450089135779861385285512246343926678602039331475483713717542154616149222730424394513824352952634608969445127604099619501163366532708540788820017998458600643313071763037055967256253870172611657458725551831770393445953242130534678194628181594190623343265235233513518011415576914823669707648432760118344615165619665613866760752559172475667083875517734916472057114504179641427342806992708374821534257259642538198892579170050568294248483596492087049947365131792873144604547764018902824690694239614723336769088491849906839809241285427058161710025288592665547306145433502414463040113336035806118970418712248465988435853216347875508231832557674027396136266747765820070963382143055207362988978853323346526834834794853412833615473417180395111046425690986226460912358443673773022488626637861815703160851859076562329964409206485965390636412631885102031746727956897338087239253388838239726318365237923951877727718342356600272116502616334187721164339190912959407168778746500118987035630788625839550005824271540695199677583607306533798398293171818398488942373422332265501128540031077509970837913046086403835577898418315071025362318667917442197843862510887138198557233301568754712975569808774959815638933910344108561284830640529969991978008848083037121943070550363280831771722097701743110866665870455722523497080136804825308407882783209889526605695579752285892294919478702580063136253911409869853537431399067684930666483435299839860390502020046488093460449668872801385648019494410605448010806060596021008450783663541830787904785782383657976132393711931149360216821588816708438436131430195216780025416299458119206369248604924418698462123122932860406520456352297400427642798902269533556216907886483955882624906141813974955819522162845872921824364132186715413417580561230546381828401213573222348811102313443146750985180233753499151732746650123930045208936120231964046315957851220803128477651958170853126478067994836568170533135992334890564944490801966879901129089808949932246433263203555518381098221975515359151532975436514168368756055945675332385324971139831680663425192007342540625018130707321011218681743415135310718005750350811983803203238417625927859577430738491853557009487404290470875378956010003608340168872040344181541411113183650498227947965387705439005438791378309508921149888466919077871494306081424458448237934128911471136264297596443827402297497422961203950578651665316791526269989390696773159805584090031230396788678205091111330788033918996502174956306113960881585989884324930126055795190080048004306744830454089971746578998971779908374548457507813053900461823341989237615588934087570971194915883041923560869839674415948550804128123754840649733122188547169861570501493160162394942919809213465288612627752518977269859284123815368396887474081878393939389501288157463545422072568894267541153498569884225058561279660967820659816005930884092826205045736858022131025746099233396239374398261912201029987559423618367184830301359731823424306332229580598685852159215633289271868131973218865658248820010252916776350061000300193545799316776314284366901222140697468394485185883361633054576482572995558717415404658510043868555772262568699244312532813614765031886051564555449488594188119962720238638500562893012740440153729239213624449051232277036631349613083092361833194958171574639833937381339756451667721005159012060908226384471394946084249184906175244631634155093182394356068240341770109379530767253754362213457640514724167947553895161573366748191957070226991816586210579989167905202469938119725465972930427583603129327598602160322744803222019181128066449285443210366471092176651592613258919493374319032809027922008110278033385638789993259541804310468986722448971976235653132967994362909757017866618081990077358307872491617635389300394024208900188221240260361263844116543845671325941183594269780976373623850638507166824239953885562470079313638811442778463885823501057666127980357132296870132044905029906209492932495113792751124371578749056378993683430876053526287180256150641652928356868516959167305162936853773933730412208220427016060673828631916333465077598888943595820830769330128237601665206829294805456977243425566319909300303008017142750313981487273707116024790791169492299845793363673033582392737736085194680483071826739538590882037030988797960308466318040548504607958882911734141113883898419471868725305500235969263326966723749365238729765476052488136122501012202034939940888904974182536957437171450362824224616522782757862849971897379912241132192119413463226890903816222737149034161818061082406243701947139469395746184360722998951790553983960438795405874496090481203243298888696504058425228643565855225012586373599795707345167410449513342413239581583237242993957684674143049393559443104221286940804515902038859796395750937866244308676920229555515770563491088275428037727892514150837812067010904494617418593618669316052428167563115774244147823162601904809640809016177426674838339484567334436058488978087789945538099129514009101103859023712450000570745686078277781949619087057300656098869726515820662806049709773839766386934123818768611853894178861953367903226327350258918254185650837843646419518882050732776174243177513536536840831728770750000933564125465905650739990966024999632992600450592751078390786011086197918255925786479136902784305429115106980174672909826856321951545735265747347709005422233492695767244561878739650347820934127222413113512127134608716479088741951852483394766126343939634772543800078900223117721745366632120923686740208846881409900698550056659950914296999837601876134819670478016128847455860707878071434455682569279253689063852231610912200548546416249665010112472151181953652611979758586253640421095868752470516564005361021672863077801490775151428843628868810880517325698707740799705287144093906340369240625080960355016205793962743496308519649838410061167103722392532536230013807327526206645321358688248735362525649854153820476250557154143647354405450257609530357603692070225003383681568557975772629535024016756984410616368260804024488292003153314314880733826245175719776386585752991989770329128868063889949582785121748014458847581363080026521917198458529068517244030089403151026052249279999876286430230870902110061411278142816565212081035092895523369973067573648037736429451984742354110273687389728971003514842728717557196155134468876540336159415892325073672253888258320366436562697127201480720998285587874872901210243488642200311566888336422638631782963543181599666379098326443266724871547960963653183238360390061667551617873026857914414953200606473779771089839662173015393884014721428131276779909335676235854147558022553643477498835300375474512413432077016000625794520496558976233048871432669778190168077795767037484190798221779009333876878625631096478645817428995935810761581365467275409888370465448565927428151359886722350865955360125843517423598992111193895240366036394036749370589564157912221221276897569832279846915372241692762822751842485609431462931369709126588433900195680194823317342769630522738156842993839780153126442739011495293466271219189794840000167160896985223004650720333733038047280779549840884438904261286381635931812481266861600472242258227975061440311827868327436191730145101973764985011353435215903047333632319095313153820126519318262725916992030785691564855996810260320245489536499050832183225120841706090292213245960429280469494602788177659983034231910325669157204335562808390831528643032609257826350073166686543254346500597238806713308576685792884403154643967756864216690061385158057358725010745524754859125400786545308172327206762250468422179104897312303117048758635546248183163509923682812923660518481517718188125767673902310391141577237767978044311158594487988354809248667676732460611891594630792535244074757138938765926908180105863910312719643476650279566813107907258072160569999722826164297637028974781336946813010334175058781805767304539747324290197732349355929543585002401587486441326542342561461145169882828050324752121453749200541022290436381345382387720804988478060148237123776994155088231506316947248130260400631265370558495088351622178452323071492908517133866878202076648965776754214633983196735431102997092347057091314144380392917343205408040762535243884299972182710300287561674235737259147866767292072568332238511593614425260097137313814838034136236379859238051987156177274341969357012722756559229145764007342604808813987588174920034701478634019779589004704960154722456373333183183779591229902877559100481148451031623983664332225768457581933599878393515067399551153788945062148497135857261286361513099730508869377990139134084963364857095443026180577781586873596645031395204530040270853992245395541055336003824806843586489506467472794509433675940521657980676065283104210158792255288931870850902713064850516544909596877932630646184455951601379814630913679727274511125697778462369999474543622610454772188749800749979966435904898167068773706487986075979320680435894052184553333590473887350461330482069115162294376366896282594643899517141698627668742890545501240495144696901704549922071712772007711096437516562329336438762393969545598049113473249662306902391889815955566177078668834913889461367696147121015620236554826545406144396282266711241835256901237860191826732211328325102023916471356256492249267559751349294038951951333002775126954969499955634455669146144562393237930756277674046514224703796299722626251535730766151683625094739450858204087016703592560237633370427298997886490212827691262132514172713414902250478075574773451573365669687845063631185533081233130676035197467589334538658488065575233390271856912457309304693165813509441419557256063142295943250158996055951756960848091211024159653857212887517089912476309582915171824830112629445764613688477152232488299554988144724240269489841975697972110058446121446001333228307820698009147927266307941327608494660785844440643459084083903878945251974332820839928163651179478916089692717080996687355099942640083322566638048200572479132941787729969292803331296086703876150697445082692884864896013118711387478139695512576269551164618211298129430520095512573472018504878140437928934920965005756035592856912615346452500249009167246565889042492286210615075068491042112616615745112887783864613351757506363018478213781302044209312853544228374660826769555218478139540665302268442208040903838899540554288726273048100234716094724492421657853368426357014586134420678059496393333611716162702156320239870896735981940209268602717316820892968527639051388404018261383624150851827882926223273834124654137258683091398812103010860222735413861462037326271449733746898076173439174904161687858027386672441693146812013188432380013052525705864057877190595708680067841839848253026833649252134391670571002440171903958292369608109225733942358705025920011666376018172423654696143513214967357892336984249590110115466853805804062418855729102287824731793709810159331101032828629469643488383064155605091763510968999840345424695406992000499518286731105154400863487348503086466769756230140687170180225961284448208903897382395492818305429332681831371788041181217235097126925496974367781262417549368759405143169976372737058251376165029816206087752992027762349331960809946079670223195214584951505360182298372525241340250655822973783057128540795613170426199658236855130138130301986636426873813857284092138296683831932589521736467482144765724963348671293719572221479017566555937167549251263834682415405975997426299824439518168524009185003498558314739920785349735274856737395015873551098445474229813651220215651069868146057951373795407256068564142088081113564295493113942536889929015968264468185436393892436898014160455147482708642789123195499152017930800098440523185120638442117133395005987423352907631279204956408220824153193685834838630883910306469366379968045775342687060390056677560424272264422742103071857636063610535520648980698048044841534482583361107626118833799199406099842471286691725450772838091481482753931695269595145236426941430970684278763667636145410776891269282854777318386386110505863733256763221591294727010801971748922717909261818049335406375143805868681474874206067054343508609528346554500692781767831552527016685882029345504131843615153711293225825919899566906864645314468550148614514138194556887066958855889301538838472985711129149990163090522023115215487097166709314972471940971698762420550816942568220920703520441690470235010034241627632917911270518095752656353221937643306243478688841547364607860578702636959065826873393941051636579899695348511021216637925119600571479644029323449945627214456838621805305789179717824901918108914090666195726904414751557635737613278707931726838638567119028698550699146735883602277361470223100280083268477940292148396717237360780524642256079829730058915159981441667325993514080520035002468856856856055032813787254853670017968857701199767346519747118753150926367161882263799998217181654359695786698576900374807594247053901117017820918710554237121059274882491109882061581472755035511452704123628497630960984584032125536838761315259838721385304014481914826224584736402305079026151502468692153718858531660020725999513306936572384893299156689866047871086132803684461346479708827712535259498164449850769349103487494706839711620641062181056036291456301327872021405578105935330736290167345450190513604128854834172040114442096371604147154808517551707237495081356958552468509454070815225236256884920398450958591209057720469205216995473184483056614890849749768526336075390942322766846622627854821904426222896324375312762078451593164272954530701981884928055705921313695558719176097132105118940428191351432577149266846825347437348537709696780447459321888869567649143573141425320688331616043411484172757323001142364043964983597452905700596903027218576517319970229939911141109196157581886032032906898354616317589321845702081176106678730391524032973717078282672028825535991906969411250115199925000963247111939860849952222429752699839931647049979923575514101058787970848254569316932730000402024718932204598869665678941232565439758748935603513738368913844056233636839444074077256570369137314001599693558083102819465683991383879585661038266872818517051387972622920599022972357416113785745451312935092255706814921353569256161209633590123663267663050656795658664678488251857294825912096036244719431264076234025167522717872888993990798338140903620127178535933239257069689099571954841058666928676513987460016284369152221217532285597138465349584304113386220745254076734775147376880000207420877285394553299095572176117236841814078374599981111513153676767349685304212409998409001156783633971709267222372375469883638392864325781289241973991189887167322617767677763250553703878413478966730030954053513674787522812975115439138435531885925344399083323134543342447516716681651086328787459661849881867162699185180522360621477930152463606700566078895714323879688827210122056743643489737377880829743179100907797979490965221447789029183990760997774565497207643181492080124977058327356888093946845561477462144174630409642659500520741594018864095315457768260109892648961885498430864088315176751414706870478143150306503478063917433410848571891075911010075453983597881343067341414566533905210827440848438951055011882548745708405177949184529191053557387077213003755997117733926136132215678818934556343827714812711906656183643884212770067532972295013236604031478435606620856361280296572913525835080336532062001809903964705099231479690154836616283883098964910848253413308634997607630859349168206870054825602799359368264704949426786496257035128120048212325486045696945660317099104836761826262710095010920199007864205100323163286241616875505582289383046615790086394165138058548330821232110182745832514583783493434581979298721979571844446770796148682894044899502260276851544647990769559489676870975202684700291658306120182284991743042259959723489232743183699583641486567148064391142741533158424005064562893243428957202988807056291187815410588404971047465581324593200902649064809925789456320492844648041064323440370776266757221812511828402483441675900266895043209534790503329684868078570276288571682194861023907670046201194186240734986112513707958032119429486719293812852483487574938502571076551434433055276202602789289548083639232197506184747383293658938658789957253152691282945713136571843046418957181949823801993265343124251328190540739141784218898741159411929045299236516674943862102149850324385718875745331671280869379286366465039681210232322320191720928988998250057839977549562497321345855719170415894075686993155877356899768893117431957646658339110952484243465728880098663183321309099526058658969592473802998451107167303353398740235693492096499621467482009760351565838642255962519708536935046304337235539831359817958905512634296407470591138800653804841997497630074351763139434884636990196664526313747847318036849390633997966361308380157235741955813596251970740290038403892238312469508288620049534520296824967321919227349480354272007124511051041422300049650137486521489990152061161826382031996188434247382352837754099013126367593334816194427412688235544377429760748921337938711344659500448808576310588477427197201845636128484140566459325592839027309245760217921330645361067970186793849311102653979197964247690636880612874651041106336692610361198604685159584956552034856198973005552366603435696899380059870685649022428108355657000497086373981564895533414732317587389036230572934956131368845513976902069436306830224701348682232639444350583679676165089924953268136676889467063448972502676892124941214519662546941146311973338002233079901962985646819687101074731903942481572783705799047450020477581388836816894902155371090471023988888846152549750816798188565205523065879019483630017318015809414840444128401631874634186853043687542639920066806011148640986533550440609274563837079522962696936784374994846221523297766223485401954853629366632973329454759838162231517694507027210628946378476478732241358934579970633491368321760838465917297934006468923036486938452741790309145869184075847850366310680838515881991716755253704933374260470276843671000233475240327167872262603076627176955340118847021495635604903300746691292432182388211060837474231735827730886879960036184509849422019539036916009326197377175269230960742454232434515527836597585423422655052626265088969974043748892195336794580738679001547247432361567804036009343133607248106438167928415900890031173990299132670893310474478291650543913601260136244325067064807988049525581570009381630875191020543738647616792023978461527491392881915249081202256759253149717788070459877116066182400945260225708221641400659090003006298487163197307958748054636896773608937418158696499478009192489715895830761483509332404603777727185037978575535208026423780128225669845867522003072324818163171200963479741250722877635023029514697021690507722216989628563862985985387959269484153975407522675813797975102743155365589687013719998242644825323185230437781839735739688762561105403483034942859953257719110929250988661089310962997521063833047338125383192786450598016481554062662741802424852452115171604358786987407151293300716010988828578171561600238222975413926992607379663165601962794513954030334252373584288734690088216860003779396524463573852572858037582287670883130730473780538833700488621003810347888869020766075483695096784606694852387659228469618722940711693844061892286211743868640538030848838559580611409381435584267310606756353886788277730084820306437515403681897401849790791889201124550469393065015880408340648892061161085191432050748272109683635696846058988792174767048434525640733273500333695929467763170736723877490383571237629489540140387665184710641908474797497113157902743880944420990408412405699368526794942054180739360535799026243868280335023409496600738888711571031273919233751314216259859956005540307116758530150964332354942997609502248410880261689941075016936514352106213954992480677610312206199897744578841675601112135473657764341112359557182090887126404134419440159278457575561886307460848129915354226739883509421509663532523641296877621770596324605719054559908720150909835329124979957829049739909394495842971260684377557407086591328387516905231934316417965924997010687320574298132147130707235118813476235199548870418711021874190881638935813596634753322848335924546244929029924319988717508684875376453652196687435844206467437128983681831341099501379040190541056853290702291674738919711806642957294072100152305178364266639183194790122324302909186839037675765279076548019437731447507232147907229736196350234758760272121550535623781610042820274899722678857030566969265155687500618786486045846955194012342932179368844045047902277665601575683356309243174552563677638057776368941757302492077563345859935279569319969565096445047405647933967087184371275422935469925100566991827162836776616071947131733640299791516055666491603865213814431320098001956688050041374538712320157490322811837427042631794049157852441958093167718843226303884379837534196737627008786376225021869003384776662965276659671938013920379405629749006749669018545040596140424518705270433838058700268625055926764168382671589230232316570082391138499965812867491545314589985228313627920128769561686534108107848734616397059047682277186425064304230634940355340971518186550514070372088976871329972953583162876391297247018756746362044970478568108694288257099367068254512172787767471766920565018910389541845956360874021617154834735687985532275250292906999913380988367776657646284062571520350251086772370448547424558440400323170280843747539488037907074289939655536801429693220443775919591522004931479577279562485024843760104809694649953532704896548272282570381358298902880892343250407622635765660269668734239757221224659640471458887688399360385707242513699440413287001533733399620899218529162465211113131258457576789780880421577832056668852729922498810865325368463363013221978568748505314478384326835460109849021133732037647881460581552012614333630126158016337608556852556463366520427130663522578437481876935501925312926925789364264959448965064475602328994262214999131948540656266178761565397629584261748494657471752187925250491232862735899375995112920049018630763375453778021387850640996295686044420563991567901840610010145784465103753296056189719846962250498726878916986954410084878161698415525806216331210064805375295319945722857642631501664464199662957581904829933991891849551600356278075577278769120910862248948160203627704810774758757503527882470597443553687058125946466926829219306460368930965583529685130186335357334492030111719636169806288974338901690009614748708251792959684716065350436151610509063054683599852605354441289453087838247199065554427572935515163751974574662403518842639881822302445116254754265238542958308879488834301734216760653097038246013391254444882424883589832478650966132430137997460720132205513273589903056786434106480783803019007563365641233555919942966750239219376000627551159093844399139227212589682520951840833189434655654416716173284398065937901034120515907124481785275934907444966711065835353563753602496866149185752213450511130741083581463109681506413555008305040426181066896457131530154505423334415673607754919484288919205071556785281284261010654761882410358661748265102661508094355083246933285267943799452565292914060968843891850035223086881345173257893135608162748686148703560415141977963197010973864262832875221821443298995507528608344276270866621252962720520702823446605011724933316872866053405537992543707257479965328685266813863272811754408158663858931009446251925806507260581847960782083832856847228587260024316879632450861672163394137325959450802725624744429295483787781952614407794350217629407936969106304503608961234249451588266980439689769447712502038574704100991596139306677670654491964846568413759429794237717042973649980061990051476376219502055678979675855408043262487698917590438470563499543820794683987234631094202669082994585061479121042669062389516032018267546263218722304086906245549213625493078306785436276130134648415121067538119767149971668166334990003581522325524669371710601709126649843440309985686387330309433474241402824415204107832566732568385914235192741611803547705574932513000015796299260764549209690891302919797221318688570199246580450932302431799135430388300784704745655671199481565521767713431707156928565063941691507251020337670520298930370618335275375282625585427040000607856558161108149439991484486025978168353929916998205405855644024431556706645820380624380392549876066786478114000526337914852569095882835533554824824437424863307294638620213486178147550386486272691468730235378918293359225676516647901410706935285667123027617927919713809092705321410811409457424418622102045984877105616101753530070794197619104779366763465658908381331382363023748888683741033831630322069938882224900080466755146577015472588199627816051110607834291552916401793565624944838936305565183253448680615915284935239004957554426959454133655934674754581425928319336951784917313688015104930839681884691136793510690192600168458874519075155614531797152432724183530083418265776656396302924615535576540994850575601067764047403201669856179260220779970623208482482197658818760671980242415682442624595473784736974590530154304813921336303172463668941018337612545323914453079731563105101412498324254905160565769022215381556607944418444572816052260902467585626585264098613823348033245897867757601060022673049509049018373314278070071870233638356824667063665639827649396334380549186210755680012581406557721355932608953156401879493361443355616311432933337375344156230318234135955277669163871646446744172354944417578349356620447836845153113049762345836237758997423345230536578878103013263892328909565635476414430584019952037192243649862959019442462578381112518854813810942803338657448095637016495083818285830904980399118267487749418544301945791573691227776838343152281595417356421149260761954569806930104900939990716160332740305864504854013512799107133842379886656973989178126216455614184723427970431218871560520653071366216988536232629951867656522133624442733371089628420271435605314883516945783553924397536082788153829031862071725851561785557494608467794853186630396308967630120270518702510121777971994120271010495677382898438022187674275316606530109333413972218011528180814285632932251052904555695295991783635003305997103864933491685932544553105414841390258103033450076016866091412767660753706739574969946275168398348230940030500018657008732972793204046760247524803585341906935940273718471855618873344385032852193439601436216801892951766397159500749621124000049331580960203060864634869979336876434837912877463938255002054088119526367493832455181170289585212344999921508107898019375195408046726540631072520485027417395203724274201915920692957715684459581649944181246611061154355897903211482126603617543921762322974742077559183849088363424591989354554087114413013013567033951945886044726401850602808232100860272017065561802396604041078782528698553253206700491333931176732048850187492541595483748218684080310496405139476070308762744317038626207423163227869030594964761015692982136667564798137202591198997166779328163186334855728902212380201446286381134143481584857138812184840841397266035786671915733123468598142017651930618659163394522220458181620844121126079254378135250523914648565183495662775891521821033622149651427905136709055034303811116287598851137323383316874804178689063175332027319980234313393577735622831616533092882184627001877476650891569699309146056193390737612028208587670143643754623126087686435960910363514231798906635947358866808759385874273212940761155104583801970297369305591097588093603011208358976097959334917357513328570804111773243764115474297359507476516560732780535262371361256731801173666321534993918229052493540565983438112264170389223743783577823055797636439577623706414568326317510832688892354563705368627262223532086692414258199049568321581662051689854844649276034948894097128144954208959225138037315786908273887515345563300669524710862584375391627555830850874974503574419598034449225981074481078936717106921707304675745298926419008567563284121613975405098838898936870454037656568659689067571666209476060983136342331122453457238597058506182624170846694888476755272944709494709772175558768359825744757763887990529024386404430576399237565369434807769418600779572099113721409731825732057551500035891442009884378644278314758815697070962398914771199427308112700252192574311867435969339168767218116834990811794223521391253635412585532170159904356722824169911162468211007118709127280906956568970817837877632791753272633013570345503808912050445084400520455521680101832501286661833710375320133690435410764500437556140661494834627665929856243270093242589065839794728943876946418950537161388851802586493794175471127667309585625373181258508787465110935930516008355548132467123433713611175868644789060211219741961222426843734190777177685962351307568508033107208517464459964160065165169641185939468536700137880730623209455350922302592991676461667561086321814673183925035239983514612981272083538736099353638739855850472758360448353382922761134652218421479380489351342079125434758580013611985442841941771617993163211827978521421728143850654406919667286732025383478176342900942778599860672137455287188045985878698723007924898483234462667054710511385829070968727967850086282983088587723422530466554074105342923796693777185987250579678019978940469438111864944226209257586435950408692357912569735760627560062903802428908059577404531586961094041946608248876370513186840327459168217163202451300729266799866850505720105843226078419722772446335313810050246068857932542855146725825834124582488707563619224342291422670243406589504993539787969069890667143497048305649422294211194809408499307533328213780509639012799578873354382480900366986197355527175857722316818333780950904271900535683472529609257654255330429110424431526235337339641660784407449852392282931053633162724630891824660313623976787013462621586400637900455414480696040389482551362499066299443000782948084281444670131247707451727597683154993252352317244878814669279077478890712901434211594734163729158736800158075355259267972446393660382032558468040857313627128671598950129806828143088171196511751013939604467854901372524486384945112122955969621784743615116223637284238772167612137655540359112692537791132900333687146668427221861725435488333878490987562253620846036762603252424614443243675532084260379240511495129264468231315358930764339499868632029249203137846282413946867414105612760313514095690876523993776143821386712625376847235935471501522262282824468283344119675973968427167679753606631334441102862431295289732242829155795536781052908759900982553670288791106797863280989173614201781038891814052081143474569598367089199062052991508334609058900584889959727482875612558605659524088965211893665258221377181008385897941992753553868909453284466206511141346091448456998557968209023675889745824739160184708245844153688822225217771045178027449148670400789944510191154977147583148876034733490563027592443089136662830685165975349903939060003450963855209251341415239294570659310273539975578706507876416447279194322815961574036222154289734937672203259740322283382010466624534363889720919122036351197910858647644595629735326017707156785313291500420900239296593622489113127323700168574761529116178424845976259084714754952028789575576027982284503412344924446714261057651592485810751298244705653209935317389559601074165383670472022561053913156884900825210396426599529108282167234261463388405858261024686570233731791660941456751889515760032322683536623219026337409202151503685874703068866445194020496682256090363207606504256251488446505047471002961968812105716579137620364239919676182207171844866426741034886051198221254262222380825812782628625825024708675006815361116601141064785731894589903471119917796374798229497625247210401992378881617570159964064250081088108263464559186083240128545534537459151095951073103472835020442271613941827884213679294318356386323981973489711704962606156161013401901247070316836581351488074835025371399939397687438929112259352080912800148056030624854888802195797433844679493015103150198369040966122977819855373737875340508850034561224978667687810115728422940198800835329246976896799988953137169755662764308550299024498564622061890237788037271054802360667821371089937522707717268040929668278421886158803408224346384846132379762140420483701901269383216097670364753469640265633220855716004487727468888014537000627489326727395763229076637262926375133029152692702755769003334547449525715338130157465588737650340383665824163148026707052116023460766181345809733563645204819905905430150970613420360742796927929409921717602039765965945075048376839652964193223593927036371383764261745594081794814579753097504636846561979624758385137355645944878798566207752036857139050632280690901054685969808258591350024266641132697720407120444478794930356780595076749156738568103994235822356127736213978636726709308886441807365776632674391829082304911348620975564881943576353980593076116970216783350369228264456150238393047214857364790891146056685685290008904831421442485572427429648416404577217950885699484669151740017112570200396592919241220155757165127607865592929666082565702371613662748558828571064051699496035754584051499736180337802946852716836604214248873860316369775465688119237093868377030606664701365312449619330697605321872193590627725519746803971971397639793910961462898126310744594248805190754085053580965885803203834495802366638351950483697419832538160478210620277380104145063553696727420527155819724567878058055190445773732782121122003556197864204975215937073352311461738179277973441778893460364625314582257793875342009096407272104082582784423438155523027974711489507301838960501558011619185598892847715364999128323730356306305268224965469521608838309137565668319292070422879599485559171240015629926045120818603049333800953553115237085605374254947835125447525446469309659561804983211289128402219258045082528534156400282975728761018446767702326814392920014219537078881549951305512058553717111309541409391563135236009562876187618634741432679284886269061834087057384617913714758283624034984160464020722980366920632824839041977568877747753236946112774843960245908543165192627535758441935782084758131144024157402633907480451216829249465396772433120726114833744923277228247914652120149874632170243728461906350901119977980245501018555486229419435245774970340368056934508830956629788409548068131848372381138323986377651594772660542060143884206620415237832776326002873759640221279184875293711163331595321023830755794577817237048043827883941101700165120489835711539347644836737896939509529901739328002841330839973782963401073879484078168333476863190316517418695228723642515294009764088227736458018163313723844431521248821320498541216870028248310456360133067762965536373713036238585579234135522260580071561351579547566348967987079797721492450331064613632121737667976419137310180777512756863914711750670885666113183947496515754151146184993902285359830550116406767447075601013713296744811493816979916419629179337402078616898590170874768902100223462293216058136416541097567960420050434088658163653643988443218416656814653416008079294721670822873700912181211992350320782087654669579216344040710467927459689644969461451079825917427788150063525135201830387465241419603905215231429355228025561233612945844489112462710182611645156117066292204770845864816211396897152951380041473984374063131384861595186867001479173325166570188139391141921527515399530191841660301125131148683673587247683327482069676729370083674051141440635029391146797842957935239842318041117918424407124980341705481951192594859760814912319793880288149484850075875057698802070638681495005226399940141479619502222684370770937152329910658165751419787811511676529741115885489333367160930293460906233025496231060031692835972599470652584589316097406341382104839002361175020869159536766800742901005232178387711056163496850456876706925915394194153773408257568392777957251406760539470889354533090731074188373635638164307710160125065036714612097781188799176659976337133285013693407757490973186602922483182493637545694246155149838369349352730204994237509899951414349222725138043698023858077843433579673103531878733726085952289339196691162165036740668187435006097574052162403561499409955188427726853193232266939703841626335201195796687178593556056444942722536840200249120569080016273176009870805430840758414773270369541533739482226911415435799348646290176721141048818017052454671334982038275719093085307958782845429044742196009276022644820016467901102064510758102976701054363595299479452962355620685507282813118467112254365011716918392543820006256164574708060776958834981067455604293930137383588584752069404197716771255535436918440194607482984059269386805200445859256853184455251444552503855198347342608804824571132263969030443754040309805041807986072059817829596903911147619641350036309664774661674342332085582889754206019217607312075848894699424186257063420801498141139176202859970372844972172658636932533852735674815423760225585045780204104602011868213565634820370519459905303870269657213248315539569559832961958143341213042450837692083307499887119802016877132072205666300186048621075734897888113884868328673732047689351239598424168375799225509874672199088879461289039376179398963062402142811998538590107090934818313844186811344566306866152640176344299656448970913670312561937556281510861563736024144886705051173091472724164511578600324634823588039340291121013147475355806234651845258741957750231475834740787136757753396360360472016556848182451553073383602633676429181360510923156923305686775992208910575821154437821492052194327304446258557346701172814503470541257063075649328523409757754499434744984642841541407696256384449628113394860969021909700024340762897082190771406339361826458928161696003310519901865314759570020671713396068532125242170384917219979540082225079340562194428775221597125205502858474871327716674681155173579042194129228878995685688714645801280016652093499182479515313422226436993136865146502704472589671521792749850829004814633446609324309597476169937666555925187261623781919927923666616294642962046803019555807951919041211009127773763476256510013338091634874472364589655034557114397028556376722128218868898305712919694541552006542805430240864756623794961474756580979055372825449972128662514151407250073962667886606548592795461300792040829545203017622744528443020611193852171387000366790761368568748835180284841761358457534308081244237776539662431689333650281813649984728331097156788943174482626089786833710742177919624111389389818400058283240627834438124904742952125079890883373462220531485376912868632032542238294870834831894837625299767402238785373247516702199439918432926182776311575777154729928563172089904395386627032292448432961931184459796676002734570295180082587687124548016861998806346929816072074986515935019369011711119070536908707380095457500845468725654244050534050522898318302236705065053347581447496418371556051649023255772072944748237399451608611207718334202153315944462174721848688923482755468545176449590527737775198779446381312468982390338209223271320294593368648460831326088931357525879995508952218693172593350648812435799303104936572838477796350035756107794108972771332626545289252445617134698160262277770821480869061716376439701406634881745898195075867428744886644471656060369755469420305225311429151915461622082436794916713436897006408374243791332186002241529260324926135272131515232683198917244516950740447665683307293683439948829448056586056658308675626930500435124904270654562628589601767862202384155462272779963462043282043905156632761918976078328456197329643056850255391504312561084934506624234574991762582543114579279500276796615810528480677011602520340686567517372741053752621885836579596489910928337676385819655740010461969473375343327178106758397249440536403065641772251443846787431551059535280587049216395283319598971787103231240875443944223063650742443984436751837756969142098816131031995511909631597290053055558322298917925558685701103692245471061746405214333560191275953329262479296523555824493620223638607503294728671545016217305062944441615961883183887778993783199255704079011644664758722943976023330783463616697513439509429442769987070952422804578416410030094337392123611117878267985740817579325914169306531535551112789989944900730362078881166007120440984824731077857357939833407440958319366978200963189669673765679415842492480795797611089309629123144104873397367763831010130490562001743764210470622729449213154051159875353717625720858653353223163360046477591454499013101715834930596044515735656485961429288468241634519542355100622948927275805639802613618449521010799092715598235861911419682850620020540606965294362577876474915813682846714967545474660725276797924617466951616513283797549297870788588050798679811663105747412999414114932902506552328629824009242073160251362676878300390971132894681545418190932803743312959469016909189696004019548167689180591446962904679404792620691178520695653623647219268608319443595133577785974247885572142468890645366095898994344467809750498711753154221340814816335818456057027765929634519724855670613786842988508491750592671679476345267488281292900032545902336385091554161244137589515839502289329311865625747933345920268382323028134325732099669603951899952781187793490218796823339879061336199633794011940729935845904998251031411209581610628472449404987920904949103344276985525252237275491436954372129523530286729096798194391066256821075970337934110553190116309699515318762510670810209862836820432116056580905246007499383155940288152635864814046343925034612459733648601152519176994872350582285800075658465863228436228571790720408199864646206804404248973821122729754018982159689713804911788148467666323168269257268021177023478501291596484219659073577752990378923027252814451705910514819446922422118098218334039269490946201534668737767555570568163252212960555381720502835233640155945245158589985957554007072855999868466376010888528178934226149210929685998549013326730576378276174347810694441545082507181571306187034729153650136017796737777837971613174090591597044411281680460810320143481433941245381835941618355285155433485743119205365881430515215804494566493002879437163602813272603308262727338378913358633437205426021241726146833015751293452997961690112309932180675791322666996582265868854248481922756329156661704201685222563550935127100138765026550362185045919233104760092081403877123851848444860753119638777678049195346994996601513520598692186659302873339979574732513716744027741073678065605730551103805959551489991520362558356121778423038367779212866315881361051053481650306724219121859431844306920252301115937879533373872992056047385469535611330898391956707046024946434183769076296040198384030965825023043679220046876490930047246947895397173158376952422673363567764327644751798985054115232531695052223794731995142022198093986562480508184161035809406264680381266067514117622685139404180285395160553951956541324915687073724043112048244313098114788796764339087864090661963528938900287465968588666594886571610274092066329467805525067634649564499207614673232819611731376790178806808057912903678380385950361214662447194490406796835812620795741371015254254206659922015283921432514154486723719613438794440326117632548735602167046539720080793622232346234168898069100423912068213105845944499209217706993219904851601478551722011595297918961106488154036441269018903312045771961204841443749608859183165899413226078039954759019846091567197050883416238373045666669092027708590861856532256028189169751584197257464183593377084621367610747992162053517452208964079245832938067105642756733189446704246967079812386745215392357013217777379213838221785680638711844746350974619730955618231433561201814447298490171395363100935769885430923615317477979201322323956235584110979940423015428179870012048705676247627328563347380006593188987559145780646009961330563476880127559200870083790815698668081368331733702367962858921579565488319081294340954155360438690027848192591751298104760221923995671396776569868026149389015837166298561573490117222606263216737184957783441583369983730525662213129565226135562071577221030019596872894022615744485799893444113041351028458981741306347040769322906832356515937221752543434600661670700923372737318213946566268249677614349744331129667724320512285888454680965570627251784112867708730671492695266038042332346825258553572800487768100022028730625951424847462785483178091222944192372426546370925980400484170092471561356741375779120123979836268233975604488616479426228298831970076759686064079674798784638543474079416282553954031013843032885018222417267079042267837733392806577444107405917199495226234666324392504603073679568618559944588463403388086687129346680609566438533914091124630841317478119553492124346227543781505715661468614787315685496833635669837893326733293473783937756559996862946977362407119464003139678138349553444752992162608143694769943928787355762841927361349365372611322745665748171934324892421855890578279691913008090549377010749333398938281350902089925427861591021148515080044410043436081421613443745122571979885773152562840747381681912703052395737230859106451003685538051104430849206507492321231896865332116056633658914183862760472857160070409726701714916446559728605845799480695591780282891240851362479066687100335365542307717437693601542296699788046268232030687755720616060273588061527514922892169565038646984831757558871071496645378676557863073138377212644820642818471569176911552362750547620335351278434905372820547304597873340356673810502593708842837460852157727486944716729648925657294029013970352486754430832789162215355554483286632355088046689211980090951014858218463029401131693199419752071605940097566871357407301197571277684514246982442411858309785894748845749990461453702671387674336254217333124236214253607284379750927521986907452759887813012599269009403211204488954293073984874753940457782911011993942063666742862324158967669328262576119020929489818634060981161372213065676438252054376535913773415645439632954672686310324698760165865490236162108071416291949099442289941767354788861142102436043169943435365362468094961198731378152893844153799810192580998041815805770913767852231580188686831318771775472847375329619989534826070388914996116558247768870007281291300122921634008546902429157693678601760284976895579343863981256573710049769343092723605076389296080773379645199236829234172174813777013240656530889007882814839470021173704825224185720818265302560579352886967384175685646487758912279302248785318650017207005513617083994016796731690028263068370483529004483331235822887744632105152849565962678745293735442450249970904766026457898600401280924521111512381441013664176450681889578350114111248035545380065962901458000520705282062506726320829604962891265827464015034246642906081695415298241592634734800203332539861363171109963445445281725267736762662856510640586477785750827145360622897556820315896187825714565555983615534019568517216669362144866410707248531856557554220268269238834682347564739421371523391698072696135377966706717750493660542788414917829492659523814410893139051793916005394820910822890519098421315477033086546873344734137744576212540120867718151847827546434783271402400325472627977689062369414567278895004582815066382166159896539312566941271852503456619670253612600077001082842494983001610719612671388389864913939358755645318260886952636341560426114576253457082506881251860028193473285017617051571028830576591949368108544645608903433545506816515125098438745905798675772728403648552980793332991662311105815700371940405367948105230363545133628512013354474226576974927152895432862321533842077566199297118693122124073860228224766860413976932389258414324202497327229410865395189258555494192363393939312611728542668412062355292799709922251232645636531090769087140162980425065252394038609538030780406091908043560269583725898986755543376213572727295459018357831329534865458650720051053801718461786123886243078442165824152222158127233617387676851935323304618035380352479746489522048063468953825992711152009004189534227384706697112261096015575056247167191484418461459370365032085247184369719853919207941069334283219629957961753636664790035809809689951262612647076275818170189303124275894319957490684314274247280964001215741911913334003262862188722330738468060582101783816925397593586372194030725219342188783701630864847237695253407316772689940654781496524883105660400218724515965938268096201267050333484371647458221934197388685642808912303533300942381438252810741529847268294119438196149444951952991442104962012583937872170230343733951487397694815822846159861520579234113691429555853169560013086949383067519645106806184659450529376627133100859336117530378749846379876429095655567413092848184228766492989933115542137127015465055211161032942252135366616636858876008475525775517984921755392320188503805830693293258541664407278379916032276135200385569629780434088085849607675813172463016078753497749019541306993014501502984542827535836709470255306005746994958735999171314396932595541047048484556339049499652904028400080098683638425974092459021473227083401997522906865422435733126979606179140083861215047863254725779054776784829830631185424486658307061465734964157078675119191689351285078791004261154785164510588125258789827281083042070261759157981069459130190284480502480101782016233844625880743449602114822857097493797596467601575382004807272580575375173060079290065092920456042478606309964583841554305128888176642623449949276775808926583218543050078322460791939089677201731860379037400800771960060724012580746071707867693208958061774412267044866811053078267223778238537103870307058059715956068325742721916860408186868488541111413962497961299353442482961220039349141242238629375898999025873255069950382021782350716776854987126574350406095637557614998798392748553084255377383223223238180684470128028802062892180649091152886625040279592571625460438947736637721729226006997955521532769539653452479344942658090046679560315527838257939550389007161198381034667593235868230110209086999065275430447886519418443010480351686890124832714918221838499223345454354607499329019011468705078177071491712199311685011147771588654846497638384595767366070689176761112747638083872353793932153142990048582851053381134748573400274852154123730510928512083525368925129080354026999216569687773559382315234385754204867253855148944402974492491402866437749071213859270988275888205731433285424411093632039884746706435972070755332401209455503541849225678703135528895208849502458581985633627504044517037405550230922279296272784216022884309399111072530401540244482507355457516901826322923692095090503695997994290148828726692268858257150305563348596741328562608299493713902487679402088563295499248346851178363349648773078247537002621710453983888540282886837771391172779999914791335567738806888350303313350537055420983140889851002802947760942796341288582989810969437267026996968080142182449011882882899459442051354303359086282204389764340320244647075969933074312947422621655799024942428721016660325447258436350424437071796498507405487883989325645240949909886996618006751164427263407046258201492648597731015336239642479897996969579208608062373684806767758377380361464894721886400462717938003751620465060220017674656661393683996594922178137296971919767517323250955411791366086994403243137365801731627764147514805631803318464876206501016797065441980488945685459030374798208370409293852979002812161850164922428466521920723783484449008747641296704683709108333940029821088196506515650542284092851699576670690996062436545521197822207419635497358426248381464173137657108400535527775215163616974590320949349404556027280844128042121908202950585640734993367830165376397387243960635044157160785874888456206480099203605896874449633344168956492346653935244168935941361547897972702709905267130023507985670445230413525615788067117504970557626618061897711529500300941220105854605155347235074684125539181099323983710271758999650378824172414387360265634560208847352237043820962567165965255547159402501831768059069539684448583729691019038261439578282336645923673993780909901567413519262040309087208004192901829162284628235466442168360965271153282250043558724432618327191951264820958353442077327790359620233316281876669292703482682479601466461033544485764239743550728303953919910678244709703630934912878033545545702091362807286741713158373237325766923726883331747165733142891455348859490681244754645123717600088973368389843246883030851308822795539581263340367281426083719196179841651411830858077224696628428236791623877516469840974575723766037236297198758900443086145861533638843243013359373348284492274838830340588695598223970314186983417967010729318203362008597033297783655354941525808068985484161627259871115145076373081340222567954789724445355544823807810487747947540119521396509865148020832630662524993983495323290080359341628514295879184059874102912867026554345364526018237634861073283560022054579258389423851774599043773895633595140402931761216647546320124630009596805494095806182221376638810472528800322221348429295557148680455147751226336269766080965885567613065055516929736519553940902301430648766491186624774316389754436309023593306017257243194474091474698154803491810541051785101688323475396003618766041098207413643763843124542858261327160991564502744368350567141096075567267095090404657778845235290629477760731062516850931444902820484666775608501777097848543431114228930875141712415436834234633907742670894110086962293706082464844319585097894621672356600392949629831249370491550749537744214312777143954893852784156219107385300676601366556977877457691811911072937225780686950257259444086971702245525760498723138940421653363519975512639840708294324602016276082059600353849468369453323995119467381552574994943806784081649887590188041229442021042925263790704663607070364707040272940228684687494530416686462164735493856895352787570355215471754321592432263051548147066883997234300190061794888239852362112432096757964270576238808224058703136563603401456817284825741556054242279911847000669508873152001690096026146969684425803414662610514972700610237630903461302508242626432823768778324717517941834379430378417499254185275092197071798279936510248167887573176176160183135261000123279078530654969131326360130260776265587816542744704187391396481800082505805372323733467415634025896166622134009900981164319024438806955041694320092327719693853498449678677050985058743748346512924341173257986014042429481392299575251252413430104951144426350934506507003852591676247762258478629354758471166008749968892054644198108834115031340889631603585837051714936670801238345419204467005047990626945640444538573657241306774538167486991875972654824102034403149683285392386596545041395616001299518149517461408914095457067294023523525715999404846440237353578928889804107731025919443090222460190816660248113316160733857106554074019221822139488202428002172707075124558960277197911180017757244394226047940328357084906528194327264002591266077706870174856054060300834269197443736177673905066215716736371602962322061981907935332015067358448824728613306850617430004078251540862833311195442410584413707463398740856994352322603962768435629860021254612194417742187923790923434428103906338418726061797860973496796040612494475555979031709449564393782788989787990044595936156347587888916148887188237024446360140241848819183184219072598256480754588486720047277833687670140277413203848961271164317024261719846576290034884574707029874005901151162466007369900543273231862126175548717460315365329495050569986658826943279721057943099308874243657239537273344072068048101576504142435466295373490827339360925644967970000700776714097436651922487641947024736186986257066001310099970182886828473596791967386551159030846105848490267950524015001406075778241790213326745896817606112714320135464952360144716826616210151429772744787901417172486765203882829680263787191603783473157824094887763427126145816439759388639104061902566931791717219454408663529645987419357921351640225785243266661484057436239114761995218306667668387206403405499469443089681835222520938876425062732615018217712281895841942915643670911635599824285482173272046054874990562362345613116576609038792139719164751884789306348796001219957075490203933431548079819738266382929516190415063496086626843372947157122256732790058031678782798148039190156273402849872541566356823959352529484875027542548399671645358061720176793310414508388489407526699504019917081202893761734942299202997017323759916876058827607573919944665679911717686628424418763685758452703478140593654914263136050037451150249964158761628870273983927150576210127770324774347542509644486469590411324601894247493612813367749587612452370511214201952640956579741951448781546456255156944708973519237169427305801057720880678847657392935973938345440314156634546259104567138123682632123517105709530536653314661055782046518846302949783688272394523276064967185436020301544545209498105116638507571539351090565662739406688342958394800205123435690635078059136202166179832033081424574513647052280779236104544442292089899255104299820735167579043951329652588264699284414863022426208118857772788315867276664612482297173206209503381598316639097481775363992602660741382253406177409204760996804103417907959242253477495025985117019979580889380778038065620457834522906008824675581467076812475008565349235287535648570955091596288080097217701028515506874575045515116299412572990946499109204049869498374678562333822565770508179408941315691634387978403101284720941216354932011591589348576829107172336666371382937912893395693634063075288705587163418454582392460420640899165696268258747074811435337716731782172983848683282626165961630973863093547578376433459162058827143121965045313154281694378468387935208021967543820887155501540109980523836807409676091487008413725293211362646020546803956067348125576919620966550344451779631614661391990882638487776972936648896293415768803671300814843148439058980626235804559736822784641624841394505122654942849348270914219174932316857225397695494783441089014106988500583413886361702312560511706446052721442219175797848109856846236486186225565301579663966144379564696728172094623924049769963709499739418177064326606052013484279504681430414889734415894697294837043671902249831003655751585901931112227936330273554186581534214456747173120124817590021208138682669768882881875291695305439316346039358765522751181325652569870180219468195140659124106799607189456825972371887864626515269281003563424561258503004106120896511890039518931945956719720694870052080803966408220496000645580377053046771861994864994543356204920123131610299056489574500103977791555904892897113695341737608650410921624681105293503393166898744179519262855511067415443919774019441853383565922285620595598166803283009161796499796790932218778958393953427075562743162388920730807526655515337597106913211727411258299535043033647467454384874739594288736441043329625478683119689896902218812375373478026388545782435755009699143371344815057340885597606078301273130471887030650518883265228681279018812576555031823356903342051494586979416230199238961161115659773986620485245473570501036183675201004470616989984892112851568927797323120632104301247614146567944516946215232285007446740174324179889006231953176418617657105314075183541329110372507090135789908597506631431882835021569961612203760034630242284898626704096517571024297942406048178465356512523494389728058634615765863012123063830396703714002982400322630536376412167643809819902580487954462308432203902803882004964573560103465495551295259383791192045989905588496454534986350649118076657220641377923088215270050883856527042046241112437863784297284651167168294186968831527750777042882089148726271288546373064409143005690530672936595611297424090484368721443947898138646873546091770315902745606110833315438225466095987638305989294266369737031739643292900775267872931761039876684099875001676765408782116534920066215163247750505315355316322977685731362615308994914974331471162693886521383650265387806021638973775676198748329849451487323016070304629027699993357511663984081722668002701962359574316121203426795777913783688725794429290313450973809264942992367216116903815215906903535428938520124723684173506307007514807758845389755548421857202892951404425889505709344342155561982671551331086754716503924872379219812001661911550752881924762216295105695441144283710386628986084650612046197151999668704167462771834389433972204915426315489074222678224341829904432475857402045408865975293064723645669700766626188881208881264544665930769986026468818884301369922545077003878393807256889771167503271995537848515398175238943418380251605985954330274262738493488262660028917894412769752747724069713972377529811013183372734956828148314682091957923614517969197079383737128540290221293348678915350328850343189909142753022143451252402914869306216037973129448042579935559896245086803707996910690221939683223758907597192798128479109155563974338511732886344943437423818260527731000911552637882224387372534789340717288294650835275293273652319240032429818952493697765712584034872450828151261671108372334519468603266110006681876005706250200372219355477653696324106314568646539781986097695336912022115135152137908466547355190432529023361996505140209444542893097916683510469065794020355399280789540917516056655682105138439104373242303000501641456891518828937756377067816062769272842748563169757970000868643249203682180644422895646346336485643515311097289702377833361949141949980370290316781914754824759709657411766890164393417594119338152358950423366468500451779087907395823139539428983832910439440658563643070437566901295629286984750525467096926551126163215617541584533190693013923798511890649952459429639155654104367062254582567211142911967658972720322969599151990777723853027142694960502217920119504719304455185214712507753965709687226920578429907664578282943222475959733830538763705857646829000449131492648102352638894362163588562347346920736955354997294393026774100898008785519541232522513351769954025760634567439245551791497200237509916112554510705081388809801379104372096586542554152561590449199172039043586953363051116428733018363374639144844202293093062385963278508677581696513561530684083240558698402695550137853942888109204922381421880580944934493036838563681567210366088398179509939735491236931148943348389521970344099688476700537489129738568322323493064537073614290875090413019144113898018045500797386825610721325514058163253773933036123860655973240984173666531014668872033617780445444444812000120954339036643531329331629922507211097162375520534989480042874199083397254245768461466121858207822413877778541993856379107278193301958869754266858139332910108827749707071047968190023756796234926190511398961429390847733289181653609659783416139762349689301574899389021348922171591135926190651926080874886904557046483800033312113366490616610340743002663508805428418455357503736975255147973197190152042266731357559063076932249380183458447670340296965422684949836184882783821836121743592094602835541584500593536962811143435363442382238308147767509231713736591502134303397293247417199524906271695035769425613091796413016461432527593239963629876472289132075453184151281978211795165992869835044553134759068901825070559868970845655632242929472876932000095562245404035877514814572721223605256162456449753110943087666148842845444031573758278772263540764819531328464174939046969868818243165685365261862295523570320134708379395127798512328679541875030658604593165952591057811827860604178953451838874519061100735121287216215328338002792986333986495246027552433909361570045137235304022440883036621100714081406236027441893043556295608590387921450258605742922341018582066294495593393650893532022086414232475635286481097942581004227838769290888143115673824746715081711989597371240111228572961078550289416502494569925353712998698278366459487017317373994677667810196576667514472272621636518939933796914789362629113953526156594921042774677531932441831829457545529609337779359918782279685548680874858693615197700421374213720686144270490791795369514347359080791966829785400772377586354675591506433436698761910856916253750937064246173334174349519125348490672137264293283332451156273848279753439794077984680318479680682286329119639318106481357200146620388651716728530631994706087986589698253092500521830987245506779018729281234694806678138931654500305671674286924041631422293312787431927454439308692454459913449849247025900160691946103711956210636793630273305621635421891312818623592601062000972099967641127111830901937595830360472546335731511752861456272241435340641208318286235922720375365760994585322580045711680658760333718491107791943325174708554506880198985690952633558441034428457584469159921734640777856311233441651348394619708995072371188589017798539139674455010521118175814352859599714584911613896154917373507779082295724273889967438074766008709160748693617525399798705870642042652314699709042170442182619289466213583150765091557860144319698843349742864195790070153444701731462531768823888689297729521803291456193594114631385996326438273065356837594122965945115094445201740003355183030264177658307434729523297550033367352711729828291024873089434748500051004621466122837207849494432466108196061166402224691743991767766199592424127287620429594812182744470577089985941600175149997737309142583576229815050842046263239334722428740089041664112039107826803635111256572498351366382396777046472349112131314925935108414511089544276707086178101754402869598155775723291171006920768993143776715254152716222184589321414024755380202976614970797487338991940553870908502833820771697866770595434861597311956990222494691809412315301117422809346578686522807514328241899557265525266183486140449012769986150088620169578958172928086885154123845450564717222686441718445742790964261756697272752589676314125238448792007080001431282508196398784618038572688142372241602647828953963614490997045880518037170175634720207749282591612931413146362662349893680956211976524104144900754085546269669389645840539843244678626393431045020189763376880764194973447862628397138074779530433425649303395858465181469637835942482522996876988547952666075389032892738447802437429981451613707061847196581147293709910948024441133162099078377018402704354233890312479108033845752586875060393272734621890467781070888041327442319632632102034793997517653597994442530249325920579188947863200776075535066336209426926423207429412027926344309052035502197368917648935298667694487695008595584725936231233429361949147683248015854871360839175091340599256283596548750293485197243167325667964148950839032830775456568985885287804584196763003510360945576155999331635479740263099225507791739189718163469865855460735995955272959837364721361985198855975943647572624952316481041255946066037762842747186318510694030485264040332893921819317809883128888987846793354019127907114954793521419545103513716953062931718885088559831049055564308066527956817531373476857322862501967957028150554217872427712231309218115265776189987114260443874116249610332584197001877728184122343051718319956591498715967378407834345599590940762591067329359749313646077171915511672684602184433052808753366399029252787399153198990063791800829399278023147803463890002015336156969935038992571169005718222003004197634122946562959328970756625217327991819477890880180516570623150418931719622546005362750274834220118690759662961272007891749609063253366422956115951416411457901251751339463162685726778741252014075774176642345789486146592367354764522708910755412083550140549313370372182719714779692985462127264353375425658258309937065412658190958470622496478442923913840465599530916776254870905888210190575924028260026362444769592309673179524777680869940914070153247108426503201718953044605994070378346187075940246233929608938254240220866734064819546928278660273761709305915918750936499434042677131889610829598549823432950429042854481424584988618085770081959941585321364025611447598980145732197568157392264716252045223565550464547380349378343977128143747556741705603164894454865701735767403168657001507375618333994342814948141044463676528931904045201808508144880947135659888886941547714288151925001710535708389605816867154798863332796576042824548005166609201578556913798682905694786995215145285740767992052953409344150238236568153550061912729487408694967941839912990617256620370077259562719845181083417028810732837098044370818465858121343398834307778451801396457505122792225086424885442985914205583322121764241215606588010198666317534806030152004066512913084265051435658729320109669052201289315536466131322828812251515141011117276896807690185854038559896270535200035381856760511040828801488261939791417109444386885984759327783337308070008221148502740180404408216273296046159941705462411724110205646184750707185081084679274761671135676688395533263688820320748978761133473487714282356596802107202988804020580520266458423070029139727653711798576996873402274744816908787124957799895709207589478216065381408846290783965727383918952284411100617885733468926532091011936445981556370220730431157777954907423030543352197899863382947919037548214447383683105511088097808234651193247799132337870866509270036338183783526788418612808328459156328692362545421612559891051034619150045295044719725279150858079838096634099276808416092541828853559194809243393945971172722054781105877522864267132232167305148945035824777227531841475336951767784097659506197393719538701244719961000797691071177317142315492377338169178573979863875106800190472804904219313842377917614314742481419397785936734275072165900208408959027621392338741893919269284650603377680790706380907281163212064223350907816847933645105185596151793565114819367723037943978960406449082277373495798347743060350514804697127661871841466388123459055655857535663672098834554441374227833774202035849285584157128372387507764926278132127585097547556494181413386538780710366771368791187346132053483642352519765154932629813728611990081804952600968499970532767643954987919155269103879670893132308000715971100963944109206707682356866311667882119600795093548068948461781806203680416506589444772477798863638209677321664019379792550241917239415054120885938491926674802102820079854454761020964716990159724383783264350377888448361729200091498758072699166784504570674358815875061143865038496140149810536219560767087831553667148907250986820948067223316639175772089281475768998603935440569332338545679607065873221246756289667215536549293578449007754554822327138209901917196177112456393543059434009797431605376301201670566614024534144304179747787768290140283708973193873440515115249275524670493355661501976172736943051419513136198128434296320616136229118817294949882630549144222862464955476034570268923531098279004147998509954797882672753593789626508475497216935044300339556910399713625917798713336440809218612097177878183637021764542297502192086865954094897754450885719233883248002878220885831150460813306518775192867614501936555232322468201274061626068403214956445289209465479893583867825122382024376050869103338771252406365620236663801396790310352997518644693606726506995178707481806914098146451036025256428329607886243775996364097524055735030697319859555580231004823297311692490743853155244390526975315961125424371447974854301586439365131788867824614926161347707983434646078278251924551321694201987375696837663632636643192984643458209283306461497516469700289570942672075771857896784113267640473943869416393605143420715128141375040061443612230534369259483201143201652353822596161334279384114538040916894071226862240388834266742926724725715915173067581343669862512912921324665856713527318666439645955206685738730196689454942130074054679172821190317036976393324219836910513937014297535007572185514154856789385326158919232322963165159428646167839888884606611851466890542601103335614911228991015118855929736502170979715754319563234072681253301254946314217312300221835031683921756845352397181252229124933170306189580234211856325620543198203033923387410258151564400940189394577174423339622381272222779826101050904092027807062978249891765587335558965395793106114914485916364045870152312516725932971408099299168355292707172128361157489004401119225146239509834211102734560569528669119974583343473814325759611893318720335304815017497335404193278499431749953961204302119456929779741617245870575541084587464723502591103840380979466166619553181972937624016795931382253947816564765643451179425628950293933629172268952655209110164562836003573067753907298408357057005451829367361930503750258580530651802466653479714657350102105306774354782740879910876180017315961656995015751386409071308897007004021566116876703849402596134895726932892128376738973417032898607165078401924135142406640460040233118809090957847120534089317996508339310006423411294440528328035250480848949658569205434729535176682744751976820962702481454145758469966995044186052157185441695561821911291976650691934851522967475596320682095058470303535922701653519358615171051338224222727479580292347231533412031297269501071699214070303484213789044643364356771222672245475934637934280245289012719744525892072334279602187548593321781344636388750111598528920009301188948207832110971640355964090226789546441627203535067535383465667375843808328906390490973601297689569083857456416838251895425309853183810272788364263828679129017235612003948208904258936457011583243072510840917763101935324031902684077910737666437025995604762871335536731807977177405616949290305984647919941065256957893340313825336537242399480637462854770008308044207580397468946524180084439033539183120270509285122836953249440746501253051742641751438699933238233079556324124376811011890061520044047950401983626476241345105978312621590729116732407029263906093966056778181971644009079957765216734487008141773378228538604536345490288063313785594893534722527891786374211258639182541117987925885140764348744406250848995961993242906926519240964499298726473824312875660314653573502906463231394217487793833335320741715539684077610745474807235208666546211571183542656609407863309781806608939527424133105318568969160708965479797056443599114648451861037514965957943206418385791238284855755567891889236332756973084662220966331218847363505622176280440004605231130433672291475528042815249384867147303342748841923034001939402983662270450946109720756951539213450536486007540582563266188987949137598112713797605614421158433858791186743465069952576725841006214876259638409609608652085801253917525478244606806238305308331911645013726454010656244911113286898183848707854280091393538052507617640172679694498005972004762593547108989826631860479882638077355009200464091113295169141624880612790717075562750386735979341663386878191775295904922575537603719432976835670226935007094123257572048724139522445486057089044126045580215906222613380746492256771928522437175133395606011668900698171903672035458619613451387299810793349184909290989362238088867978704981424949515984250076513961058027410972218942232935538843190967080914334657585786842971120642302319721247752187158579605367376115136660549177835884844958522237190760931724010008576938901450553779770936549394717614981062747867182611845800475226004965890766285406725087456829590458316945650176900574702885095908526974820370696341216796848750755202049433257657077643075624260147362071560548200809939087890180067920862008662134049803883029504916894888830200825588644702396500236203382068971467862112008288312275155872565249910291366184852673831998612542393782626139612272216861006843718129479139903514506203673121660286928561126547103040629896255754409492851024756433023983188278183421703359930201320699405593078021163512498080530449320779416118866273859243095730118655300025076896566478551368849766013964753219100995319845696507465039522156084865210858741486140079847727381803705282351804736678763822754365862482733986007492810357796478908090819833930844754853520766864473764143524670015308466934023621718899824670330869245452226247943927302022725604287005873812574932937853022836268122955125078065329802938661435975713747449762967645504171378201518849025481431390820377805836851986402875368134926000250635757108830564935705383296792877187995751740350595512101071582384022299929405944950387527061669649519519537023889800673269499842837713831471466448226988462959610513227420864273185409019371291757542662891654859312586258134535594084882654449761495243995986751351415881599694877031269522809386217563997763382127530990537580234099999205525505563954406378863963965342624593390462354937985104242256437048408347906926877053046204400543719441857377303289038049378888381904699338540959012333105943909481711742344886167549617131943140585401284003833551625542821056002028317681653324829964752866393367494808083834561871146659218742280543527721163188764275068881361001214492539158889103216596093165709907560846688977429383451297622616547680292541565179731070297903125475800063287742370104317223382741982927033747133790913563264537571161429785894348313756854614669641810952185039374800956042833630198163307671550826869728996812447405135238487298765171122847952953940529634212370919306308601266526820667125719777307772463579287897667168181902494128651916748770916551863703942622154422157681002422890379348526928699193448043149360792807486368767842552386994676011167478420995170848380840402525605504607662052307262757059116348189366671189093612987084877443040959658677068473686729933267698145527909827636779582883222857048006635806812199531036630080917047401826997029419551233901897233573165056547205852264063208505283711297443531875962062281486606433740830367382482818294161907325531551141416279897420376003433344374036128441021499975360544375479475803161614941781970487494978456384368677704682619500423079816936894513177102831004933420549386385028256186649670425281797563806464208774100831351943935493367982592916742953513682134605150142547809141689333020330262804240244586269155507569664330160675143006467952180028596098853276567193552037963340511265406904091796108697289164934779261974333103283025698643503287045144594837136581851396808615998556711034682256004201125895465188850452480218702846507593448922768417478080042417192221576890953737104316308990457983271423584558894419914934165283306575893256674347703067732578755583221448546212443535203316321104838535750084506012634390706591121511619272830704376836074368575868743791500985384665852048140605928987180529238178745727621428021441086567084513340881241025638857913086832749687939659688024547693335024077932673722047223021643643732484469711131805395681484185445216817542661038615693068954306034808794922996665548227773995996085798837188827646287007671806476905587600151547720502151664309581316391350189238311786821697122096939839486874742463777302104549861898987876142742154403452998678978367496749534419275373541699299463152464285996146966159350088958606517260100265058679825736732255268974574699218481152170097625090802725167022425755820895844970509875342325564616113580842535102546040976094053407339602697659641661472694765500293957921118345519658909681610936078775330048601552052959125219477689617482762496160697297674266765449377091832542259161183245146225406410713396678396435617646059660828505749131131442144538317196623184314611326207779168660948090296961440457986365125469856583079268515844872135491531229901773258509016900103624610472944919164660837898959623457338815464557714162109356304396622796306785581592249633966634311980374494339638084755315561856206381900684325873013057871130793612288569365986082656242111180992923206862854758514968226889077603108223115313739576185406019480476270898448976628636428864289971069390441424562690263390926190042672469417448506285797694852562568926057560956615877203280352859092134279457659706361588113523791531588143809370414775429629382471260649228734793983052261277133541036216496463334922236591973660418698598507698451506352772089802951520925807204405074699291610036818940221884820275810772673459210562678833452866045587115171073709121679973023519248816052743679986504353120186131109334669180346263188504138190262544775294973050867705044391287349776846468535892224063844987534465445923841328241167742857153450477178318824815797465531285100199800661501063356915374203665163280940283689116831243611587882233186217480846639012594074804713412225454779291921194398333653116656405317187084326923100351371178999753084721591539235413128449929671262169014505677590410777749290906085706720403038483500947887496629297696338230659206014621761724881227710492581900674893262188779449722552706720681809453855037282368581007949711711418947967781540096637346053914579873616934823110165233565042879407855124836366602044546428817016043196330416964778933859907920037601017535835733971906841829426883669071708545535075397738080558179513457562341935041856094652365921835559231854971923180816760707887552980330699089744794179652858721457368355695354231060879178098942111025888358648254000329031532484384593818217029378834276173469463397044896660837327268196942289693215057068461721176525738351973562284708019455063767942135381313409669783604585064845774972595592070291354802213653579534948593644222893543532500706925341171039620153482693258264904698785147464506611463076926021321661771626714529504012300946398234830940105232370090331197072461307753954724590284745090114568567783932451915152357952206503993171856502546735763701372224979567746546998803857931741066220603815294050687900825101586828038245918092124265202702981664076972401855788647969610123390138583043090309728677552044434189324799388769155194464084304887465951107354522531322144280544825262409504586121989239472475136143173845113032012634484980775937273604610468688685787234687760194978971149503108861004543478082962544146547564301189602278258688509546471413590313090567620928453178223694893381162833842079754600119460556956316636471609450887881412331003582030605409075624660277115846218898785711425447291124404386035659713379541131351358219245689699768374959975625398042910441588970668496758076656989661686321190760971104531481008126640779894912113373197519442465923220402269590569652020582722799951490591176082291524548967098376590119729772100152614231246846946243253700330532779558577905368803461795429696690413938968314088308645996796394072973678297381988245423790063332126801739621269835083099200014649578864595655546008187964907997543066155362544899054821084321565651997284240429189596690613717973123072763133500118248856670258902087593396977681263896132401341935677343671229389434986608159599354530217247030277508180893899887452740362888669761661383041844586713553193176333559102055676143509770209534868875456825793659372415513081896250216196672335682744538645404540040845078192137456381187224813741213389745404948611209899351414142760422301971057198440877028503520224003893667725388870591154414628526300147790523349006769189396999292868872330464923855173392321467110557258740684012042986429516396396847517037535181311616390409996281107680083509422823022912832867453675595541232942369007274312965751887437712525443901197972192250228874612381780669120471977689517504480253351973437476188068770540145579334004934045946144433045600384833986163037318321666493377425085801284286751812508585683283687461265585328300334749253299162920087372191497002873705311824102769623930281153108003614376909364618146030493737814301883027336063002779446513712362556995855369088861314780915357475343808307203269219814960755960100935270269256353850864955944074728733533419148778589261516337094694831420025916235140230404756551465014585676386806390640283382971281374870971955582466121012592580175870618584444845314282066133022328383717375117300982173560895838920559473453251409018689090398864030768025805795163588805360997660860110558261449122185528253973422444667903095699688972554749521479622546162313380711673409660160244368506993634586622588275399456069328788530467442476186294305665157160439988911810500608395974167484677709545199540560129847562396548429319824121698935464407261216476757081772166576397647755339102746965748926626378950800717494997138428874482933951852659180859940604236078724977482689093125089764828100978438575500044815343764807593717719818683538083696166950526940993455111021785446885069688785695693929289566439409252789323035265161577863264413509177777531670652137421250640950372130913545256312867742323420579957802712521529719077719018858881330877111164151273690119332486328112565828432571133526642198095109514533067534055035786890270238567665351005451710524218539056038352843885375760285698795157847447812082419860001663538857104314887166678951563340156291064735387951378610303100498847140923338214811960983197872256955418810641572338982959221697270089040066149690326635936785701339280404165079085372824746904559434188921247908672651844375951612537571585466227377912511860511448967045491796009025277489092389074016866391537616831855154609705695673857742761696383566251619741227158475002814716337972615980740817249864103522577794797416367468749348802253392424329309496066210764421875650349802537074504960287163575235123455704429781626825045846626889804335212670278101001265696905185056463663078466061769069509548829528664648764138276711578259307099995367269181740123521616942210875702560062356776561972224907376530969843964241395382430838163038841513120073755009248727185370174139432534717663996921638098809215557982059426229354761363392055750302373720137452692447257586986340345685966207179484602813709100457610532863969378298150305624415037670253782545923499566099295075703385674658516398178929792924264132192005144080688339002622853215133480825566695485164705427897898818966814896034825807744533164894957176232706421182409832161888021559065574782252554568620214166046333178761443906915228112682586733260725414756637916357392840947554068561515140678685662263158778515804289969385473029283483453001942151236028306987310484674696223224213930429972307763972184666256072590764054688981527042984637200593855627444945305235299940872305321917740698822145559306385419496521380654970800476146447441455807787612749288438010459828416296253514886877147032512901924594426686785758721944875438063860062038411489390954514812331035033312842966400699250064038595050130997314655721575650554508424254069689758240483511025060785541353666468134643743758116975672967453222164905416579842633521969821440819015009988229224043611953679630652834177990164078425320696790292312281571973496425695209217911885247077494388960213472115128301820685305464367430829600533018005888808709846318028604196272044116902608310655759711813965505908478174063374008788790647357036369686878878155076161684360402181802470281157022179605537470653354632357067480020760427284673033297802015124054862189459008053092224755090459814585883224271240156941336646032499645728097163462487551868481952613258231535667303303576772854294833258192505084281328840109163904354419910720806319061914080021861653273461721328041795316937951738555163961810948704873903947794584612715464290061495381278971975116652799420082051819100318330337502977427922722118509557923477313794089622151961176158174646585142104306471409547682428799731868826035062880548650412553414487851962331510904465047770150722853718553861776986495202643870349681757159722308103999861338294140302463005159893843889659053231970408860787946861378743092301796565460051167050414443947705153560276317099857334371243261698229858193954332063534883533051078892973009070572416162386639801537564685521564918432490213310994170408975843667792594905440462234892756054317004578133145015634223744304107289790691505417525261402026978566080851027499132027053545261058091771831813741379653926613614976125027975441866775405562499284484803151106077433390909812765335810912733675413000892369202924860668921125871700220834596029292090669383266506378375228675105878083149952758962678696516728922701284399303542486304126674736888991267569783983811013627193975854477429612524841913645351330901721345261117950572562948244120698321010329763633812730886435243453116960835907201027408223730993180653372542302664832019654035133391850861724601509158924710520612310214196740755386870254427978670141503045210079986266048946706404405325840502862312734732799781819737284241291535983450214325557048709389143302853832454986563529381333718023882418471168312991533876337694855037216308256509768372261044990874350620993055509169988528247143047870018235941040495801330495047364883175061356953316945659054124694230663674507248176455950496066524990823188008955463308435328370721072576928234339060237256078010687369752062511654608325820761089994615146079659607378048380334200494422737444800832243375708355342473918201752513964197509895412332452969998450854947939360878778603831559560476353300399198151792800249775753711797373373535350291188617021905196706375890549276337171217533973894099607657400123044304352699727627630345396342542180788917654639236008586089014986579456450745151117321602119712408548818140406586427792282575820362004701796962349149139842413754456340903316721516953777101889264026906467823672107763942951459787142974193221161284715322932612127075033742284166078198271505073200101847013557237963455897571219954010992884120824765424828472347632382170527311289288652836144602155572027332817255415102772208243355761175440032656671839560062390466431099697254445727784128126578519524842992322610229057825511420269221446938037868875433103271507185873283430558189121659913052197198625933399095957089338805478254876040739094476876699483308907334434017433182819825218235689456833322452342788410777169216206152626191506086625536503075982911634639617338823967706653689455344202583697332875361121184034500189525316284376359105274629201773471307080307365843279834607000355332446138209610548638841197063801801535035576468951548392567798220548995033689177675553924973883362757614358054330073089077142128033289671739143668243407226949545284127956188412843765690383091991287022259758890093905874157035890169039112628641227702791765050698639711260437485264300617678479240400768078761100896739841704014564873980251431327400013413945175428903207418377783863547617790245649012024670204613917660134865935506143216001527141316654096015824747351055191321326707191863588102899695466509646044406551793562404808331346535482593629027473079269285116537277880231009197191298680837403119711942991612568801899070956441469635854459421870293938588603394549604995647838454537721482532317245465799478963559392936472518383787548562389481237800371258706652636318791217192647037741281746910218480872833541889091297054906880990722367716064644236140899481018715669433682066525609698874070370127710694114912680235314548370057988444154997764667455063163925865564186358017171149424085616710035163502903366033499688429051799710635679890062609207556741793426693711509589216573196409836937206935373797123597138086527968139404932362330525682115684935415322927791916229331427437710188300105254789971958694743586750047949922940253367062787348008528451905428205322736123749863126749703272069866949017318974700399356353979347731501144748827083344532824635770307618738182974069572667567971769558948427864852239473190378364997087919027631966383404178628607484948434873331438046541978129463677017544230887540017251090553247387710035726048987838744420147144222214323134528751699131126607558522612083365877427208367837770872951941307598541741287944758584355859812630002105946246903721816736631652791924331216596577315098210416927604725212008622736433877638949947029993449784133006399460538799504800515156698705389669423803180908259912978360259589247031710127549256469889255671022181039625645221136638299550333417734523916480641478928427366529478412233368329461029955893402307222083528955743187330767985040161096873353791715444759371005275471073007783320610244001935948603077738096962163453294204473940964828982488624920806372337028713421872527496744499019204460690091229819174420862973567093029413659499351708692535591553489825650283656003337823232104039396251647302788728797827608052164045653838269118311932795847007567130928790777300048570842286826052894421070500552423400406688270018164112674322563816111766860786907854387481468416588099496526028427166990190172073561370185510409412970077703318630102721330653001440397858068693366088499207231740509781177456728879329392426629344891872699394762407657789437151052776571197394184308885245352420674969274006593008545250023121846084438226043487516650924403334596860481173710802074449624060500802560096488426702556551343708483771046277182771164209795961390957972144671114032664523638955116568066287335126401615759764206057743291320774834079006740266552826494835652662010339632059624004651753390855757595470232786241670847016231968776130127078883479556105971244716313882647179229591641612420650327378445611978658768182455842364019256820947118662169767552014541895922747260433772226151970811870215232222221274391452245377166142588947413285553068039063754011090623825004986242603853723392746561365798795488846790636917209252078714890707701404562674557086870645457800895233565795112853600304876489716333142016124097677752806308274212460466535712160845833960788664693926476686832475379273431752678222629705493263021753502590047250767837224918252402329539590038333368505715790947499724059982657273969526046627650088207180947178137215097717691151616851929314251054802104592890201225967051144440187801142545229227522413555249213725146344477107620876315096743369732509681807138935171564788917054747955364162267136873725974607205375979249789817264618310744387704580408099464715580489914716852669454432788110843392719674888031911051104755042860674283357399551852035307931657600823047538807553296498610554662736225959101711381855456599802742935918461402367615773574903866913244871366640456662740977610980785155332353864038171677539453858273049047709356184721494043177554541953682345058357300880976280314167434193845377202240124290976777871565616522175965791233696406627551373883444824985032116071364419706845667368456247367133161053071887212597737884537006996300929640490788518900869415143340290886455545851038073087367838040780277169458273134980912657192397701168024759650909152781250080331011040346122976634632052017222088991181924691224748858661815438049785111947291810399794783733087877663496258674861780053911180347192494847143210705018518935116232258602467544939861132853551478353057303206983053631690432302574323162992015876964330894384228744730190522354844748588045241024635994738712678879870543142536693258318046200486120015802098487969525040830645145471952414131776147075697490411498304433731532723286739343088193216416098407527710236725636941089280813814079718581847545273817874384289883421792760071536584871705258342665009084393219449670672625344492264850311244331367076172695558111715893487462549033109027749921159125060206396799952457851037708878182092242599133735744792897577076572423446515843648368734495131550476501218326381990997943626682691375952617642620888413361814078852187580736595286466239586291519773154993489271737584928160222156478177759187198556943378009246773536539176086637433852013960517604999696111809960376937858989196290465451905679461248017161883918116400142302536839997106990817097179659518595302308885617758756014060869348834777591356761147732888831043876721988538667529660613194597881170237822243963393986585856563041516358333692857174073261021847777392426184961244739349040797303406779785281908666000070446374397063407016695836521416993093307903020839448697759778077302503442836170025582396361094665210469692168984376171550924186039009435858729215141619030957074983779756165258682648796613963003727522966651863749378161216356105412583446504092001231910968202720216245234115426662462541927900070167892578415866482163586464898846363376622675475559224129335654760779746413969807063388154441029898516107612075557987636773602346639511545221054314527130678560862857188014165617432350447148854018551657107046925182504157379200594484198757739366517647255119397174716081321775631251269514363319243763905827721346601970758425544953149372314659313144424437454827054320692120783505081798869271306883042594898352043231981129758375502771604214536533172504736579827365782533255401269526954338510821486744892905196760001301157590978199062537362499088160442300501960194871511597940753671096427325716610217673738486253845945566681446402774843589355594527619092996371905832312983913446494464234864679608712568327204535588232523813934054909728782592113538349754411546966621033675058578871371884407914996463429225312366544630109710559780810537659920848283863928540928856396104873303695599118174571120076972178292732392677504645640161599367871861497267466929210313444669787925451174200368608766799442680258569675991834539251902191022492400036156496018038643368767166032026533482836006381016577366815046141231285312730548197843471766084349049825683111143588469541082905175976356314744734225036622836445459050773085824592464704963570001647958708365841137445870537863848252808426118016503615068499702783773693629859812537259971102433851650259499547670473537765125315282195303746983285150856391010614931472113368715522975473049355751413761457780583742698351117475535525403320690354787892934917414188572678349285660978355964067486956523577205154859653461984290733376553610422671569489301381306744258649213769285946470099730242823060301775916735225251351037283626944852305802972625238195122351931878711473824022703606059402735371629642614395612579912306827602462972164141570882662359697809698560707593741540199443913727514665771295058696189763841168618114719725149253018359976497474152795224811712796672540175009973237806333884577098671544270695581387750896542001120989148720957043043943836865027837235637717861494821604046159683555536783753553244110047181077389976381068248043603069129998951505887742616872694097781687262919295276013055991895663249821877037665482993936959254358988530874010721481025545720728362199393398873137901796948977276214676933504039914965850682325695801989065557819992083003438637056865848992936903339866264343293011047782535805249757832680684779256614441102948363995655416906377074366430799041156894063538079906817384349051684775311376381304937005233543002573589092438497304649310249686270332694924648117495398989263136855278339886876978150593458722052043690826968662635899955909992273142865404144469731918253677363148807145271349687456382525223504118750239800035006881345062262964226643409132480097502439817037938337812431493856195198286943337505473041265910934671671451678702424765612789624569501230599089299320073610874023994557197088242140524019607729803540379283367803453245629772688730719188859618368690670427809100143062217382992580458406193179658052675584892503363302252668483392001000374060981539956268620895507471880217477905276962740648449672726586886216558626643217011299645782328850626491289859928093877088194446361526738666162615228471395535744170588964733469883283391090735021700056583536570511820956876729166554636175705994902436955363463999539825854304222379509851564103687531040958086139068984821888653686326481117058887050691808003515716125547780849830535193201459840869953752285220937730898463985011824574343651410545730110707759185986204182764318410009522750131556342150555245796561450553743179979940281467394557472237364361151328827953035607111009536514515456391231290992132747019026267935601785945559120192969189132487945824605918217474778733227424030744206728611647484427516180704172688334443364164056326913039711568729325480123036509264809937817166901700086526679827084208742676019157160295388370981501962452629050199372233735092639944372571459506593746989708406777952280967705187298076164333853729122336714977587821732891456693483302368473861489234478687110628152678324710681112388941851159424955077030452180334461470947456178155690843531895028271829453348295953840984777851945665711051679864952969073185855119266603889624182745131811119577942401741305115855508264935456648009894655466260921856300061733891267833829694320789709744413051791480848028953746034194730918403106271057061074097188518426842789868253878130080954879030245238071640079349568290455070949275920061817865798438904950550630374955543827719552848380044814757842726660624582239696195361872621013343111900537539806935318680596737104919756892193531554988955009947979101997066049844716166071377864749139353016814772450243250399507760647271825412820420992416522910531684046828758043477293427335619105761531718696270515535230065426561068681012147450947472063379670618829700603951533687183941695291441693791910327535455740298394098562435837307055067834308084666953880259926026012321943016340309878072859476056528886119200236362010891796895483412451398804055089370879742144020583787244195202816687245267412855685878956133782751560444522170927565361003188426669587218746729174420042828079557496268316109920628091121845116148147084449434157294084804116573589144229751735110937993721432301558442418706391586767937019895171634006253206335111559402864988357862042093562711925024310393444041063054202476851781288257788326259020971213630216034986323241511423329615297331639872545568024806407772383279899624762851010251723455920082082671747999677382456133577423798650983764191993919283172338320192197483441107838629791879516304153342652861437087272607790160676254255781514909510793812377224002865616464219266297550687333780142832358113873329756246551406203315260182156462046994084888123947057018450471834018225031307071877055466025573525339086052619328655627819532035719393309817077164603065832061182246140644306629662283257409821144326841942154956021128545655243290606501068091409171765925233746675173793129514721380640579385490222389875999460487312889737810574296904089489832495490588401784150359615594294291705894351537314005775459889709956584680954353632800840971421447462331489896891094495019041868281468198624520343547117127940370122298783608783571398308485451484030276596220741110276205245994215284789407718020165826381674806639619030057819804385893049347005647019567186917862413986644841666712952189011561652414419102493698412998145475826419465664807704838219455402457671477942423467432778029136203594351098754836906013358279159339574145261802295018112921578620093903728501714795354203261027854696903549093116696437404831617700955471827186592684146347600391329671618684697983704302735984877207596486855602633444077686626114195202711667849459357569921929642127039655951409613336133449728497892454847321966820196017526784883943264284511220853744363683204136468862497175330332931703899966876976052582674927074317921949771369065922002520649521257037953381820697687977853483844350254448811256545833325365469756883873048966273196625291242110686478682146188759171666114675992954149447726506950977371516524802909549179004897569534015686054545589154745975526958273411415437159242067406215652829014434972646826471150887482259195185666202308645249953153004259562397704710533270463777239465554320982865455924291118786500117725905272669933743987214855482396028838019979524788429949879142779960696158887022319603648905499551844878673026994953251980859770001331762982963623871637036334588303290157902086830727582827971278815407554001529092543732720941472132657509413604793663333373656244452102244416870750860079284783543271273904030521687904239279785586999580904070473040546412292130210816890898017034012549438984344285712563477075957817543277004655440350435979516101176182362744395695692710687262037462183842559830163313266530400866891806204856683333569280157821826346809392990521129070082609460713465553069471760468153587021169919515393754737956332154631956540380546801513431544947393294649140429961878746669890967418657854590136077196635784597778020919154041444310427735570873803645138590045514180607606051109267106218104991696297497852988691747197751858152113969095342561633358723953232669103984425497092573121239013856056570148584251764901691950869238095950696729391926991385043770145493359497851979563933607564905150299454496200376456091846148627960608642692292655770127801601676227968392500477390146326839096182465402978473250548149730419220535328441744408657945965801830970888557766546376855457938135285641753088991696936072121687026785856916056726631939166829021204897760245415375135862370098912310894362780491477084609142659906602919620501432871978342952138631649926584529071337803151053152268823775772101412872350280523258667608621646482067901223407387321499949072057016244427310567392473719537577634601959468871053952407558698397891339755067487280071725449818388462290310028494005118242878703614936207604548916239253849440076103178511362461360255109783458648367106011643366560841093651934508847244274939389101106415398526838774731183475243690473395992772897327430871538519583899316776992003798852899223809943098051222667837820369389849431496297961236405584397420228115559346465998655089406574610080698090897421486751415294725705777795278266886402626311996749905086438012985307875266305641345801010779596098768316251736883703298165982226771768328373834959274757636195173870392151531388094202172565768403615093575231044394160186482506051834651958319061425292113964994603460556443490756129500002970999994468977310696641753684128527490250290219340150682517647234501125860009496422413763844689574629666048572402499522225317779489460669431488019322623717179694100014987839510437781231917415313433604206237279824786666187964893397067033289169323619977521846613392314233077432368585927861264994646930244105561664288198020176773240636072077627514613922694860437701632166879243858438273289715145536371021588531945928037885848442363264964085384938873773123805422791424336362714435961505656216934920665559763671501820043628475796812551387107890005779893641489644291702410088598755617261122568532126376815511335459079995563174159711481061975416109132482665644382902765354664220165959602358424946046064011852914697235170223657008673109536465730226341258390837547769134677220580327467819229111445764614788761848490004277035833505132287585070796314521218824754674151608767516613259664350001176898321995701006744221793162214503026662768077104343592285470868837246378409828474151333242589329154052779179207920415040551222677687547156832036482330354402393270946885647711243045814587642194265562037034320094898104572619165276260083365019704914385360289052235979961049395095665559361728979075519957329565854229741499884839225071317563353424547404614865210471960631960165513283508011423249449970537978606911564969717150836930920371924535290259657672978659581135724552904906795639526762902959363432776430731409103709743938374079330501346349327988028791219910743672014662198455769513817696263530102101750861201144695770962304226489298369235641205327973138620736192526365268591395200455240324926529677561916947689620348687084343752618828129824138696761369348602218157277551972147820942090957952152296156244758100041707176592837637887326630240325314703333294428657883937179062219850375167064609887801613489542207548121762110973766388676709874658431360699310999361483085045110237398192746875636702282468546157024087266146935218490765359179863310369184374879178037053706021960609206693388065774760236432373299013298905199814027782810571758610525018742504335162929963645018562707331672088281231790981576828151510462895114686761952837347612556984013051152551303430448758601516287647824204179444932658476696959867906437825319145705713481876709535243954821309543717307785833236329324420484028320536755134827110551447915712593513302115148915230377589929768863998506520823716663702682999984097324764221954763031803331523469895998009734732420399522258708286009365319482241859529001431577719575695456220754428775963512211569349745054117850050122089920177165074585614795503460667795320799337378615389092162507986113979477217727818371034732340696825354580647795491570566819405574997211953376028747463452591300684969895597649845190441326759617334834139998269546071773597699333367209290618903710508739033600769271763728898854386799727530012184701422575426754502694406235032204503124296184203528237960326825291473343154170856632149370756782193667725136694812176577016255163941820466782640740487249921676306768935691930606854592760638934228109337727215962373313650313136112942975673359390538541978277916148209499428200028711365000431715216456571482072615036175486577186750485230699060229111263163091498117762077717682711532529388036500341882991417210460210148396036642454665619703550683221326384291285991968874894434423799704394954559991964658849605348365186719227237465743046953267495186395659671347563476319192997750022846495791729927153583560158130458622833703709141659483405877559086367923905498204513771721085927974129710221042267135982603635232219840077454369228660772893957955571697355838672105445327686778643592368939469231831800008371940211436128712690443091435316870371094933373994409826598556420589143457148223516431987579040502111796752766190475916528689442583448059325132844645349442002714045378390499287628182438812324141182597419829617609455799487005260815890783972435878216372792790610603245220928535681392560301157254456681867168078278309338561747945399865133994851527575986705447086376034601622247255974302539486375974958165544692026571902525063819929809341652577813397984365735386121465633425647779731460806005543514853362024602202851506562971067106485777846835177024421264181082442065043540475305347060248747281519398660181091535521421196856378618224451902134008235362223305953847800823195033490998443716599751509447972134876040167990379368681875489399072112502026593478990602870647209036325571927746697129325482599159309725029387802780792671188494938427193639333123026239909255924752668226039698812516987920879002436788446565635760009314613446358052618304224178268285647625056133231027443376916742448202426081198623088894888985706224623985324806560560605734916623936359858040295928605324988435014093714531417382430715590929664619582883793270773642198610897005653065680201540867416443232218608374393465461861800334270168486914711009939569040770164434904338760670672172542812110285468999038473973908409063162784866708610532862289382504003200309421784862860119061850423692988095474047143785745048333913311564583939652714898752556992946648275236333423678413427387822638869956910284215116256424849618975151236144955959608897770466689741494248098359383168164688178997185734688649679476221925934882216259374896300043723971329366503172769041358578773597477889668321422006962463754324319987784954308380681362360302644909632734627797866615102967459736461483961310510999905294055888867903157398301973825276561715829099913040579978090636217956114323135854714994253248289035963850648653150413778922605944113781186675911050673222425314286302292129372189780622225070277208638623006506477036981953771018248543508662487320782769280473960251004686246869907388994451923162358083078508281232218351045605915759186111374394719327363625015728776216305815361898600970848152564601030999340034790823217002452506291947516582626759802569300444175274000708663659198998931741592128006585235236914234620286631848860613563288237167732146019623213008683730933367526001972870976030379488181552582347174515405835970524455344274668659908662592166773957792358019738470884125631751473982627187493079946211914790298469308835530262771965374940098478777257965001722628367027617000380070950091780659157420469286261118766286830837160697394929561398204560188219118859563162274585378641031232796459442902239527065244930019694302601541448355312462229262834546597365138938091977046300861807160719032933396902432336430460652864186969241036204956899924109022748858180778434675241214363387295882379633868935964201400989212498470542717461031252947725803477113117650557517918540565899180373965890012733485036763415669233610054309402521315061412656785597908270743410535291639581032362218580201216766176915227977479488696591569521868386482357352587626059449527458993443493896094123131184128019458779042273965381284607683174094578940644409874030020875113692678706007959515131211362123290075266522769908921947619970650661629855224500695818606768371211345089421865320706482608519246557606744848824568808401812593216423134987875502655594645115774804355250635479146409305468632897689642236445968809629341069840601660230510809060471989298895412079347051343501026400408614716588549445892557045464591649807704506666832306507572117177839401474669360894363855251102744190684692320035801198782414068861455195071531003111876926464820889827305826561923526278089351105258378337342604522653615104078910137167202415048282513134379982160393660311005822772457188178245084508785590174708983622662389480103480138548276985513329823907818726921185136334210375541237057233454624136388476544142075447876655477932652004563074905639653467710888155600787681908067516281627335345508122928299091415437040610278533036126044955138607096933913292160976295364451071404081149747374387397176453984890598068993619870870067819659274310860195483628779658359797604278828726839404996787065866270940676131952624063603458130115247226763956452710019671648728434706497046247096914719426873527510110569615651705479056812862928792434625060398589402763551241891639451505595504712870098693439044888912985450191683737559466406464686276601017086739893479999944956274457620214027503934062754934230527866172059194428454755100605273320440103627196835843116447325921240579887017502794012398747848793648036785476403741963941295824266953209970028175169906097913789668480926484634000357023234997084417502029272882543445556714637333440511599491004796861922097253219655089927573238932657498078976130860699043365182721951542997664652074908464317090961797393985079652815616440666152484098554717916090746592113965275558754089970184134260145612354795799454864783869087360496899971036686367063695064391290693194252457051988031091545532405499154765045771025720049261426149500199895238892071442488544574889485132287050164992168546733936458351728657166683259735183219379826199276777918296594057861219744730096168646270061740920228361146136819416636394932752979744326602968178187194513880494900141849486816544408695135640386636225314520389924688818639388213749950362733763050151689402539024271413595016564726114836314181861516457730713966189153380226236196297634056838782070156651049215413037890899263511572606162256037137885613681401996558567839067718339111701776858506664582762962284159478321416924403616525719504078148906047206275628794199432270610249979103074507161504695722596181272250358051713226026767253941822872505173135872901757059939910819534806293822386666443171256858125890996464895065242828636354246493166557884492286268876015347132860415123948120279202903694751176167413288302367947108039815256624915985493819396281671100852094050996334235568446203834564183481812747573083253924511416623721729161690811871982128619619324616820536986779512887346129320074613342296775702191709722233496264268809023588420034408548841142236943596678560079631414068961432989924882828225252872273213641483584178012724954389632108885324585884934733310052891742639452746414576578541622429545750621930580179804801319935974442589479914403427309201226870146217330982275279628596882269947166616455744406073201022190799143068078475301464472780579841365015147306569525152517884295757571464151682124603676797491812795347073561701131582994689171193682571495350450010387446702493261955495560529618531847702308158639129000202267536009612862781880062232847761786092407070045464185279210914991026234419515894748284314087276086341753793878697020200000062201940262493429066390576735287314252213348894410393944548300865997349844797249124632156992861141040637390292132296755104979604754794122180543057385968791858787914049415845625046606853833358290691385568490536661336724874479284670997193880864687148221801592482704765005074577758578935274733856620854540359293259985115369570350503538884257487934035741745399815199999428627170246461456947123910374726426580843180558452415149628745650568824368074410295621919489290447994345184141757853956478061272705500958807686222868579436841630949929958371140979498619044646149240466745591041590981275455812389766371698355576685264519792620884342463531336475028522780091467525143552860551930891156212147319582225712097844127290921572028567569841190657502440004342528365183082517296092815983459891444171192840495392101141755306157344478131889242224127599019153452553022356560878905300805980391218849875621011052766342665170277808494176028845908273151117842853372781827146884602912923560964511868236434806164257033077901187804064715480136898418923381846137175581186953407723515441566877190879610731991627501035166096804084669330676820608864568250956226916794077172808273173542693245942611758060092468728700751458322778574628011795387076218195991061611143628445650242831729486323306900926194015333874562909188143911535359093577152491627817199797500632700689969069689365678968941973340157852981423591428900989119070379588674471100879083746657534898534563463946464562672490969658873770340868651791315146120348930604251710897499996186182690085561215417960967894236748328849891813871479396375796972310418567524803999188992534981946700937765389278479351987287067232350148027785535441893434905838606163264764919804630465616693871940588890995018455412385266982393630668037066145181527022357098468917216016988497798327576980521755532282418503173731477029137803114770599296597728018044733684272628707408779668362586858606985765323419249529555912267722900267284703818804597902420327807883260868482226868517486079190413392318401344619492668849304046444146766004507126083772417618213118145643344363041906181717590378699628285351955323053364711594585990002194537158539191912462092191681564938579054025397790616523200002829577638947703000492706926265104795381893360094873682132360110903323032561498856242935963384598790916396007367629955677669117578621385518860969964862118105137526507180852835954901857086590684489344783301438019358833359453194393015231632151065890209136309009997301548521510202738113224613881012213838058090038066689654481499044270976895819856191923172583287551254396794237634088285046892477887382819345815133419681921186358583828423270097915583740882105667752946917663193019426338731501508115124574129918959832275235761625681907690584209572364492579021496740621435803042599644979609511285969722442848261783223275636454381988340528502843341261346720369625061008370156641918853118247295871812540003721841462634593569128479986536880885765281466509568172665834324205358134004503424771219782481100252634444785614706769800605517329045164393547908336666415772119297369641914282833810815442235836273386838424321836373660018477334373278739843351102796271350577183732907682780369012994823556836164513810959098710724874668382148167055617255302552732048105254001250816205756487498787663594053467639984000981737042549579351644281298305080795001583281139489555754149062162012344846510439557531368155368695436926628161635331309091263532224468341858969490012585269174995186574967728477180150533888761733929671343492363811639934260843841897087404800037227767833164735404017597912396281256304947966901501983650161845521373470216722935543004905200534280603476283047125528026132922243477280984926098856955769661500755829080592299748963469713596676116769008098839945058007834082039779169314559713828562346951824300386745888230790031174363709574638426499337793516786720322156824994389712157262987768305830837277790101083448977551298729613730792273312299517674337176949873420092732565353994223979481780855266740727804043021652893710544046661982159287975576777796129432661856023314713233361260832491962707720134810886924909709824617401543470135134983508928711641494189611356595506111215006503085502537392099298564577449807288815967446734774283059506373837759640721391054014956684855141059274850233606786280369295300470416282576984053227904686832409357644381520587429579875810072599489544180945941737201781891157056430342020277375990899181747708904858429030830694849515649374584674385821679684298732784082181498922539268205451496018629366704147290567210082706372078002324534486558380724307408442248047094867019074684220867730877743682420239972614058079125359699161040442080918582472721331451162019751567418060509218653041812622794519468647084021900168955134495885444793433201934175866335418923980409793533253934808035408718111112342433442773324490974589254867481601399636754972941584220495237649073743149362187775131628056903293556418665093121301403924291274077506137771386108817769420781821483508511054967060398056291561138073739800046453589149836732221586365878597223911763462610874570937502780253154360143425788500515666402676670241972258661787678314130342914134963219221707689016018528265647205331021293754879344335608391682053168143965148727075333708319035697626154325130867718271957680005730940241934183812073181155576376838537164783288131102410777520898144235422565462660750791513535058640154944222674822817014369490462158372898132857524073725292324182293176592225212647884128906240019439686792133665775690755431053151593980525507229144906981955120359920690339301090156655776799702046360978686164756489655257445861614218041313917726419903475052605270028252773637583678155741921417179922067995269609871922144476628692039775622175937047439573381698736587393585154062892227183078928246281397096411836254550671761444718192341964911521795962093729914493661090971267006573388222504237396716958102595025004336037400251171543138061582731939216993835708420097402421928511442325313320346851744228798884984593343291004885459434005211269832292975231836734840177877354028774280234775782307286015487574368507836852848941490029854669736162096343194021935539307014169095894459071503610858190803437925814693646479337400054127500191045087136779870411679028962466468446995271007505393221013851209156590945849534820050075975559880372656031494571595427744563253883625800791729952994049622176783594175283109348964580140541028540944688704884689521502549260929852592310522375958229405282370903737941495077628243684409417286758406239929114293909499319095607572066022451623200693780983328785082248278935270806994071090608891245441569733756990213003712519250852165206114300940149556574866692325968283208636316359425347986578206616783572204421958214105844576734181570385409379746305474106917831567871567319304320835693096134630488586678353945345807472446391554411743068703543907006684102947590591505981438136637792248129407447789971331020717482828711516391609613815005542657803062736420413925793729708072374309553495743884536478367055398928234486769781602142484629734831291842800434490438743849316177285850102638219467559489433470107519486087680095643928433448344700505524894403087398995485400397548475264918166730249738850078833384363130897003591171283920969818189950787941751317037349216841616179302539083240990579982290388245045921068134346656473452252425608763240896996953093832513365092579623306492318911105220143842577838818908944918937955475711534470244311634764581133295468346526014952944516928063950077750040592168448192052857062075780699466258759180330720742171590622256598199647498618135873146882289675517572852906538329863216139068133314591046986805173976822239611315765705701804414681839253927460630321663615147174767576854319810192275274504543297529006382639558273327893967754867885226478359051401766075959309327793919971797252503199440357793268565462128843819282341519749841939141664322988298288857885689901632925029300676067243234902848921522072920868363440783649242654109050078938917671574563809544861561654348765843593117181467947707634192531248381878218125510395743205987005765398116269919683168959666525372876006280529408844519354842033236657978424234786509614958225133070785218241220541103306498487354695190041368437362075540575031689929768416630490918056279856933642692284276351401242112088634248519785260601757239172299978870345710928318154587489178815481100509583377109614655163067395512181523485867768406749053954718136046373528984005473511096241431893787647144715372747163423120139795253567667781253112031737698442307429154952839682651691619142482069312237629883745188812725143689527475857627908533978841319309257620705805265532086090816882245885149649918205127833592593724996441677857395665285891604204086037087437014131156041076446010303309703363414272510288571945139078658878758914036502544433025470952779013523033419686741458031654315044519585661043697532884234731466796228010460023406653780713448568249328688844094287403218389358553049423325360735421500779245492029947207583885116171555737754884344004180731513462756531861720580887243243010073207839610557501796380019873645740599354813698951129677506941776478645741461219622825397210214113775265560049284667946164903002644829665048443911109728263709928559431632764430616883480265263830619871847460137089556461200466191521986609501929873335516499093836280613580032716061963727222032899302122354341086865055741703178660432642570090692123012297813747250960227327961314891442712721985614254704133869821671899662718661166125135037040771737847236726211165340614717389527229390558711910259815366372269017643514868987357287799676718343459576781440088923255681799346154043440438468290940453404630334506965339348678428980373321663791901317090490955091993976286933643512587626665917976337801915393704246430421245689874705195003775407611236072646605389700242736864301647149900981139651682696873377217234444852671682710708484983368456721043848364227867837924158851739917156750015015264189164319389776342208920781209002492612900088434871707618685046557918958449369457863243655100430172909689971888405806243885918574598135464029087099296379313074193346289029921649688818846640651234541456735736747199538455389460901042811942484482592347509178525223775627964235305705337893992867842781484180777407848345243036847996900056579355609019374620849684210754776085060859967688784021359675601589724603849327884930995518111726327389935394876492035684492816990651454776150951331227047893796966656620050522212077559170586288320920211731978234262698321303747271448085412144740613803226579737640004839816996343912475821693400983716484256484790758274654176525755245099119013871231737085637619591248897540240424449817334767031361742480886323515925837115501034744476955163320573955486635760606758019192319975857445496850541309558641042048750680896310245389449848622294671740467232178546857307543277345922693702140095009964984120531840851183640327135086869137829288376169526105662187590502574669341205576825100324426020527140389819815489535409138068436739452117059332271178246616431399594203515495407058459842766158517735740649545650809439028169047842419942593268579318663533061858113936235154194810139704845580028668637311644901272341434127376197450537058644293240230242497475995447784365635873663610744232876527158863763784192220915771469187984543961136928536733039325538645989687950029389632821323716958390950547028539029830152216142910137890405782554551468730680968496045866996555154061384380251725347606764179802482519030999716180107691802691698412823023060965330427266398692892429280994994409944768518944216718220045601303980377036636575093548118211158721938949852610446668947308707245861053423217696250987914282360812235597010336678692242707426384908925763739559413149455367269850441509836986123948005460799355263153808413628532415899753153754803090334094474346229890424641508569401230875776622342571843133537997829938701199412470512234485257334103719650532719131366095027893920193343849380310397808204693413905306799135885430725404172568249874607913299172942347450266729128605842128475221745833925238362968542169884166530352965897885076487227739264271593526877331443979297211417670796945413093346665970785746707510635638669650724671614249278933375096109805052871361318706424489364001548154021710870102146264180320396845033056532948502151134134540550651992987018797731475272600323418742010957762761512709693958891032486438450842841181830626395443794042916088058001357428524226443408820178021264684701601676455188936597995777952945246817959951534028303725497786492080965928719981224907185548595193844251382925248058050981471069174198618002148308400122521266074786536479208514313795073336207105934704466122869136879304881049177247058946630412827139926083854350932407765868332979732751505687756821079149338034990761939592998883684583652792631328777206744002476528983413374501380318177566874143345715244524362075607082907207084335374843869168426743082283163426062557931870213666150589768392171492745870528103448482466890414341475662691870578017504817530815311104404272579825150800375298519829594366846207524958553625783801476645924596707517294723787331233093107694521618169100287965096333247634643331465405423760490628496243613065230686252313698729538745223964846658151161673125879967326078239777698769125616671990517309867822626192837172350629201099106595204304573745663662441953156943191636183931070313143744952828107278231896525138582285674557927165940491007272830605178826297848957026213398735557999942438052783843806092300993135205488859176191999709782548998761585258804877386310750962433515703360999614653868220995142955451675412527528593141647360603488270206472070659128917258538696050868123742281829672231428745808524387766510563532800486939530630675346573331329798716540349032228217575878205761103797147703105635544350774255878825346970123124828453182987999608216974295817199307413153563867615020114008573318691566154904088305849387282856800330934129188052252682831351130926720435957353766387900140459048529176531599742800942498306299189832806796403580222774930307846922976942611483406618712507017014244808191232730460032768902474180694964086708421158327625738984009486622131380103588356450204759349261847849270087596545669051072423166976737582057652328969516117202385282760772682720812264946588277139920374131454646426632801792564478696416595396881212945614172760660642029844133249511329156188366652825949504015704480109007370185961953295955189925344006802504247907903529309077693252691051968723325728282574209856765994166036153094333099757947054880743949505804210300199790972541475004090733927161557157678586347513873344794574526916028999050173150695497828885941721332489404504396512191549000899312468221550495716656349703899929266283781348845843496261930757833860619587193255533451333377357083404507922333011413105532435157797724931936398812457069501511540268437330820642145747611381677761601245587948243138598320410548337442008470663452799079643195723599641300847319283719065581245946636630236720187763241052022948308553602575766460450286147647814594231600286147486184072432370678307462022505597298205702389545245095409103031506571976141697931540592516547051563702406847775071835388434607633814945294350197197755458081377132767523411108449728443864734299309576108341046643364356456574558379613634917106779470451379566867856957963566103931819550550421126618498001810966595336973556635026201319355897901182408173107681702997074938395047910723793689031438514019799469202006962291966767656783159838027629144932041492456290997519609190386507660781601523641122613540629664650361801973858213616142922836381107380389730277233989831879920183806338957071243721503885978879418452084936150134187078396075171525300543234028152860855892093330853947458610701542050848461603674885941639498067614311904692599221599864114627661604820765829882651891167118741242262213677742811402346943695746520308668580555089086514991875474443244140805724043319745911152170434637961052985829327713527698368810746742090221733817192000721231263325917583483560793394345851263399388905880944984188834310221125904671621470661194257559639011245442114584612929957987173219025266447660163275288594643261416415332806475895390755362193969415021879412282811796468050452034005765155334928023150324201384509790344100505469227310077914983838184319480016852397557221186396991236152993996178426805477375697330075127680185170023071958953370980863817483602438389190290187724832723382355201479144589359750238031303346048846415214250627938626376661006346031745307239310717950448517869089854842589869344206638937586550599449584946240050558735268616074587216216273018013009921693074331636552852992688901512450078403580738767870989500908201378669381960364187703786448030959921285123428356508496838391107142168394980403044800673907359631414807811085811661193146429825026349948530909057382959176618527004551969517178537149190842159820045128099732038085219552316752636749632256538382711545755245508649134292502975748010370679251529714712065028834517549074362128829003985472498973745476103888767787932299512684709564229435338457048750574605151409894539958092481461329084418171283870091918360222203458250995843427446508351152090164547050380301903034911142656729676764511537364292331673063496427376301284561605619015613718023163475123681003629518672461469682994590407404847412539661685777834177126473250277200127798599790548856322316223830449710947591888206221985544087163700594780083313647782749058920526940350351447492310013220390966897494046586349347276036463908963952219011972454511913306281988748754996385706058847681888093672122875614323723929944577360972047803174310409071629135804618006503759404538343354492969181167233325614804139342732012859919883302718722139502589547375092217089521481120230467102074099531655942378099871151413509578324691485185725596385281568551619582683328743365364767573136180064514091208405130476057969669972285834881109362061750834528427157027528607404949624219002915060283472668284443101064909116946538916718438562458114774547111263077892999851981302734909238752164896214342893950941517919127918990869266170671273243515202445614354731451518717301688942434017508757441467081686359536739251468750030150698172468205391978678321429504934616754556485177644550858313567695243986662481275278809023125039362507476180957584159221113108139733703896510158605318512924808847895548315351395942446902179289475051466890070259088957269863265870209714029902209729217952530693366999384684695777935552097892118434367629269785204636957374481949745733880279757036481757991349230134694504578245764587646312778602311330350820649926082676016780730855892964649100970762938823520674403305570701589576003253997041062137520665040783502715206464166724537176652607364437253142114634720860662650867845205481674113537546457369571433524440391820944527206356862365216362171236143642429900649830692968723802084610590000948448644165975090042531548756677576859955028241431241638281154674300474966474193672943338152599493691916777351851130884419943632109551683149905081583028752026131841532675998438073478542574605790626308332098211933815423278087199369782877143375732480352263669017700658564587952943108482768980811514440878104325191548141696669678887780855075906244581048164358327698650855871612875970708746109947212925820743134827687881920152662219960948248628179835839092999050094375369934988876164818327962464639383904470730809450507454914038111905380342350983610091657299045383931120516751643285221399110819486651069941641049232146726471043980563670332272359233425690982599712407714236764299779761160779827278230566270748583127631336083830443312413720005090626951030577697970047120606594613791654547402347198517172151893196178369602873956707513341786024002768640343722150820437457743051953069077197128861725580203338030004119296319422000458315642674898806470836924125402318121172516682183627061243777937143464641282024942041910402186035916896445111439917998654213723888236289707871325250812975079074760600174900929422012166231836731620252959733582481522831470353793537801171277563375592751510246019177354257827457502428960030246213943847350835221660089982878984793288261426504929145534302745220473998199710966719250675392841454670248336286042363310946693340138786607470090218721960507817017992379178542909117348142767399172924185484762537986209033924635923883860717681973354693658287472902800772679164127736072117150267864869254503625638463865530832033712942000988880565552598719002773816618158628155518491897923195776452142380437691380478108103927483534929119272668721018106391935414307367960611293588025418973141837416830657513822679809091008069496384979494797824113010041784495309580211842674686855869433545170361432992406998489429051516892349559998206408021714581051521868614942507431641917988766601183122230715050850452163076474628890562672586053015155487691031375026844875436083251049269017658877645449563708337116577867586859775363454904389577362933297306362553270349960871532686495304976203664261873886271425879870627183087117405132864338269991089734824411063691221690977717116706062171015516829864119617124503657429409112218535990244512811552723280579860619060863312267637807198607456798882175212065408891411818576916338278408205543997180291554768533998004841283070834170955731846062507452592849999921695129328994947917052265939232351160566843979062299259778082526538941051573210150951003279941509884459946018201043083527351056826211582348800257263094516168520385384896940571201454445382930943554958833788052449884628814362136908096902606853196643151456734094570382212927279031811215674217400417762119306307090437349044178517511196905962158834472679710379353856669412862287138133242511915854121675742044380159727710511826159577539500916054711960308115612597771362843799686534884059551911974174283128185286635713511250546197639030122002460293295015114767969519353000762730577555688182263446442926032292177194266885581473785942218137493823806570591747447403108059066990000955485416367798391837830292955392722392284681936151981875550588328884222042808771225165529908383712306370776368743892392087685728975598220123167764940443375200028262196755970123055141867378776361180873105380602981277373817891447605289906798489706921400395380471178031647550132178840385510925083138819531942547283663211040738405618461058918420442109467649277457292630903974746409268377196279152458512351536035043963412941575181561439677553996368127177835218675462962150309076570213395153758865878752990177884179655218525782150480929469630706788143005363045702173941133745333177838912473064368238532517645218437400722680172649115899282039201512038062473614960106649915558046234846991898585734615396801605087392030608301524568952042396845578166308902926409101819558446737124368946508999118568332787266631328705381109358777953491108792001538544355944393471592648477438343243747584966622368106535057176855637505742397922235790586518564810292139785173388691716516078021510783279744399432940724942274869440547344144689077991621057804181331501609579992534063991494428587472900712860582568130248284626120266324430446700275411242898494484942800281261787487395937858038866167395263187199973430360637068340443521144256546719177308293295594591426917931343626605525381186767290967765160539636688833828265090681455569399163720179645461870346470440921891653648576464053016761273529040051323732319574063917727342620806639950256639509873196916633918165113547983638977669156249083396200387650274418778600562991447101969269632879390641354742795067346312259159286836474820990865925392211323741637958287690368376997854344753225574822754586629224384445674291798388509018744073358528256763410866546398219851887071899595590357751457652053579676494860745957204514190798739449246926200156460265546064419760553407930478941284937452005464287848308020441454286129750231097132550741926512494324073059714441643129534698041599664539919044654897137299621068131655177137743236592852592847663741816454522851296309180957611707515486307603865188608115755044260237173964544733577825271593815954373945454293831525784459199892711099183092223334828810046109090297373528262069450415819585158249259204756575058949321900792247273497808704467999757853410215372873633932458916894647177711101988055435221517863891095189703485754810392211504363737444421544815177648048348962193618181119832286964936241545652658374608170828243941050729979331763561299454222926905409660511353116932077033566706485026744360651355339331442087910735199017894737745013360234411312404476414686026575457908655088233663092246855574728015634612884655852561624769959663834214692786722485991548554213848259604277512391107769633855892918264245185455275839617118989724378496700763162389060558982267121064691092945234687716130762310105640655574658407989848343649271449292415453098691256902399121598490950070109119602915713502646775358162561914470835496212838994715268806159034569239676161667282065820709955792476667203280717521778790316116803913091263875846191942483718499386105028197156893882875745692363408524487202682146024878932241760237674448169263234746994732591381137772510779374831961722628134495452733939763006370152276607554717643220734848318242570759282307614673880867548336397668609025537779414606718091308920828546313342420964555905710764178638579559881128644875587652975072899998821781376668209252706023680379482029373727182053413852596640413481855565877562599251375513312864447918579998580854641324640961089468362055696871311943671903028400435185461227446230053002894915369239824643893708195910193011685649383507265898375318664851264604679490397670229551714542279344846765332215398123615438981197782230277130613081123794704640424986507592251965017609956973585645028953962548011062455276688399972200728672661254230874629853031039842703803943543520301880294389596891749626142905320876884828546739862677171250042123082545335107068367036657030019669459284186312582016308798699676480932513244390523807535346444348304585664581728664757649913885745408138951732280274313627955552007196721566442287191717837332981654259112195587451390664770481191536691428127457084054795804792431933402315993503345182465889612714700776706141072000521817471917865732108996296164735993094075388674262240155180906139922327177064823755804698286637474290862911564512716647729967021268391366272537509623597697953461341568217672573780509957875274599593754844671152790081101340601978935035737969822906697010638040086993240807376862808155609754310674930857294255657279318865026098245830446680610689848008680342404928667552435099805250178851781558487817839643797310046606879775895209239401586490678708955863223925845028981875214048730111943397685113679552955531037358258872601289911853727849006804219318264718736747668968431925543161901916435879222467931343102340933716144908607799342216730955125036372456616784813753052314521908922982743989594368831946840230129234551921490462498194949095634330204155525673048556338719162306765780288467223839727082241476970900798479782522504614316997712317156309783054211964639980063752313233897457174821286581706555353527194776368526753680851530285268422539192519777104988159021472812857533704374474078088931701817674833584786653763334410604210497346771430454468690702382393624272173965722459311588306491291034045885940966686140364399628850451301842516578504272274960438872537938388870517304396051914957980689646690659022503885218193445313353195209844038647060948813951051994503388983424923393985647732189435772255496398897838267808475585241120007062301905685712089630883529831824668748733367463696225331629492192052506056253367903759938016772956641044841294111358066130251359325179557680216098310560445667450348140787834720569900085300767350137095685877799224951929312571867006735752630236274722148918239169449172683262519813834384978325610211158878295735590934765220564030797183707175914389785227888276771118471141391537188753806326303931545370244681416210232771914869771056051498603533464626052960880787741451834442397530987000362039820956719574367721601549146914893395502884921297128301482886394521332490220063684255993311964743141230102864448111131006001238868497589904954369186844898367258480290109010267458938431068966913959240554487524081032069386709614932881235342627831406058586767906317744681653639434658188105699330712706953366775800756402399341416662897417408635592942331288999871572605439088795017024314555992014740300368669023269513677313925178785138787045407825515083299933396498914649605749572856825588277151366392179298185031124842346092881431437137389851491435531346291381948080838302148300458459573769051114168000535684301215796430594892240269916725741522501345246735126027117642392944439406598231498269636453873646462291033824510587011633700905046915302981907807790827234571680294474989247606667182240680217488878831905571017118271612548880239846245859911163606572634635917925325457147005651014727943440432852338555376434716596994782220339095606978813029183254167093491260465165420218411529807107230179461893444403291045859232098567890760235699170724053756997550366299135538654400911943156650142817098492727282916621599711788038089661329499805759108235752727697506387508910657483414535229948949016648106989279739919298655229037950744741576949927817482773263168681129955952084783329278126646322979993879690294846284398478760035227910940916675616304326703906847977533924577358146301745459044130965598537280186879313608463697608971551169500478193746745894325751957972020328386625915218030697845138010458126440771935904344923484225827832377088341021510669554207786718740746852658930376128203659866749305860962080265927477526485652783954627189916955174847571618637873794824306187472755729699542833600100364799995543362864968389589363864796286036696438906741708631482927382653408181468714865148601395615634296919039271442307730720600563620693772073605203712000178333183972314745595820284777016018154821555832670695922757067295783733605373099659262965632093746185193962805734625164329397006346373393811678195361590240736516041422601066637959891086527874020156746185386451496354797537845747322964997050856508821720648750572916866866625383759585317886830303124254673354962543880980992861540449318783261340472784867244792518085717877222213808639710458385511189738959560582606672485338043757835983722947866094727112619028409540753143706765934092691068197151944524299106497293161389841008632307974789954609082889984245006525257198121807559346660461863203102430190099221712934757587125136819765637951851094707228385363351718283336187731256047151733071676374756546918664286740164961748524996700259421717593850445962781491340577567069205518679197925921074437054444149986321091399915248963253948051917477527251107006023973617767902215365248175208399660059051856396011927845424130061688663074568802542572229729359777780803178314300965234392569285448061756139062473113841622272306137246280893698755927645449084800732241227988015937420964901553387130682933221758262815154101293736001809978229243052122897950201517767888537576275047202928444093206232944760816682433211650899739628469240777075388091233886603404671577813754805419493856590693935717915811563561965702955695745175176463880101240895202136612681314143068113438576916092369161356346482541647650458305251079744933521697322089042301281107082368188768377098576206433826715089735471120588124564322693061638131062139040686556725042019821939263907337029929269905638927195879470013259302681603438458430750354510814950680002265550679038456434381755972423871872209816103414548330070421279607579796221873364556239228054982516097879765154578898735850204159386478699629936526180306486357109263564411337963416626761329776599470270085399095775478147315418601367641834271143090911601969796260707539643510666882281742716014945384250980143680605667800153578993357105462130522922089988314231607456196683611913836082644516568326479131446779679120960954885313594976361442736531002337339894887870219830344327276852691991946015958424259464331285977758293647046238410920574109550156281173446589213234070314686604355112336598107278922911647391119201265812794406697128309799373906859621000131724376770424658885610900523339660400053696528084077278394950286654282071294592962210303674995352064127785272057525401243246296777384590363547461178685754313947816680533223944109088985707697969592884829963565010883196893260904257122430285855729319659073407851514542598541592509415499915845850560475860001465710302896488736482651355760067912299827321810152090670997026640651339204949251765089631273117228680397820475738368650606794665259184132633073074411787264157092137361167101776107768964626032687127162044382615923172416264007749259164280923669002303330190735358418436090918802035043485471740608152476869124856146353436476581792920913385070919239411513250685840002250726810223054504125091538237640795167862334987445926526600529303175013615538723485807639960305801528297178385027180371054580678404984793519505355260441086544833165540288646309343857096914646351998676486576800546972990413115671305774188212603857087490329523523457187104991399006485939906260326479135628019026488635527396274530051123802479878378278755627887043958730018753715652313862046821554779162862453139409149624858292373919230817693815579501552099515849346291499990360881400815115690475766477121284592192773803719545701662484771163105497246768527057986412246010237704968082045592497616456862949620607577769347731792530199239438826798995683267392929007530143536774219069252970369788001429093449630753134825463720413168806200423771254499860296773072642891844246991317263461393294042234237035721212546753592440864960425045635688416789665389491779127063450397755672639734892275045061329545709941994759208310873831452770229392838171302793178556617454543305277487261450253327988066971448915742249904855447323807873261487252591554359801988792650348562675283969224487765177800781834260604934050075828481075785260385619663014333339661332626116909127439803470827959145240190765909375643091016057055904718468780759358135780085624462615471201543581091088962584848978119510342528417823105463255607902493386191368656039518446396217073486151547775097283338602534695247730299377946738663110397568458990611417214071604634046519748294682487310456201645203132925187629857496924926348714059714927004835584214434509168820100483905713230007442085768008481250246707793474571135685901053582149927068283182943633192465405178058718887677763866858152342638643644141060381435556269714769486297207037707910117390588841864684321521923674912860532512898424135916885933473105349578966614677056679141187179522570164093509758560879322475472089379288132919970064462911594650671571101391502110888746478668605602804213809241868844774980299885492520081289175222501196767392881402822854147909003512045396808078065537279031391282890536320825309916030636608487589815129899253535501044699602069082332310699916483074381373264498259610485115663289262509525193782417649864170820275729322090372268974083057280233949329561300511568939672360064591546064120789788625706198963403848004118703404924279438511437237466731998057637236902101744624717348471218103043804998188097135832383074302183673213306127004236779472367384109355472245792320828165638487056269670731043711474297390766937080028167884128361184975393818567616161834945220587314765731016673952169484472672535469488317164223794543123936904425490542124270381339966752053553444143343564026815788579803763166464122209627107757492969266797723625392619653748970355732684842219891595784106954193223944865705871835652767387452477015720329204677617749820911214248571868177051494521103312286835937037195237107118186235900386080835052099614847168718121893653154943944909329049668686406421350833864199861147053001633661580415637648553566632916805962028940425632689370971448019347625471938729796893972857728795599550120170365781823774714201624407453679739209311453300002131225479662201328656914042563245152812224032180537232829920781146161821168420318714380270103898365851477965746631495624895341021826233455304824220684156727247471269514131349894723541688062742825236409782895468129371102033576142580490401694950162390524442295265384495700991887142226936733951513966181914393014858429577842870841908708041886515015528244525105550762075954858866799726646625424535854084637638211450685367958080612700148019875338475013400097973757029421649480425808759409662191122538928751211263014464842840440357096004542103305542846716558255531594342761051206510469134910251419158544322374318991408208819189945999300762947215638352797481379177544807021680693058092757559735640512652577782459014992246820376630659852411301204767198372831062572843549368596266287275323547903790923931165748988620328150054569358069848510309545815095402631213546504342176220624845520357414687562074760193228173633019949500532588010091482460708581206194344607703287353688471811102276110482060302137351040814223298331785774333894729302733840599069662127550256156698463399405325121089112706985284693854720638109580580513846701700494340518520885372884038571939466200107962459990588274383895899737730414200274181330449405294449532358321619239197923492910514695044971765675732825695828535627822069492021461660914493513773429577052519483198536775350081109183270475660926921428857538416174515022250217444377124438082902901215259404774502918970180676254324371649804843152462858974177762521325297436997244369453586940869579328583018928246874374084344838732569496899453767616606595687529849575818355705135879601291598800799448849356183403659115139022052607945833623977903580381561234888354238832716170715376467105684174857455273209251359587990037845738653093708454506865758056077986827128960491043393525527084508702304691608830057611682711425215968739164121500246215019593240570101875663931050141572901095661999782556975028537520905485543975808702582667068711061437813460755665953790200596261932136660491163297991632290558680778212492566645594124286422717159653624611785990877768145531762619285772402950583384828417068854202454837407039941478512567925494091294431927277048642863636738765428596744355380754915041318462914014766851001317022566878571783478284320945110754141597629376967467853030603786058607885852784023977022322874694587996154713540768504192016656722354402202774659937466147610813565552104614099849634568464916100101251848976858113640631248025990280855625154998140124975670960179307435222155021169422293823518265093003637015905057647182589317594110894565060173982723269911231230642771854277514227454233781321358151331386445269080930316259040780875622849123800209999886067491902864773643805511656604311687155237746308120040026312823383984158852441179631029989202206310229514381705198504227751164021337835076832916929673010754640608762142230204896244048045324112874572603125949974976797429766776127059361185163647785880381692519865725032572287147987830038460983580453368542017771055111197283721203277232414719242203158941139259791061104216192252069944748895318717334422989146353670646640498105624493872377727588279574560168355174584419487648427119806813758898796008861731363009081801687979981593843981129596800946858958285689876451684448536925762104433016012531971603203558326050435756081017188546599676811062636840483030766177801037133726586306572222145771947905875059743734789789880900866693457667651818382029863539451560601137459064247943659722948404556961175466698905872342947559873152784264551123341487844840220981320902495883837277516413113982453553201787544751645277617681794323368081118342504300346555597809541363506690846819927477433556969990590359015791754258457006978499065842802297504672019276105257883196688797304712991425540122741276823335951667992926419312619186414168176899945489701227004801840428188994780109953296591869164870329970115467667024004337089455235880112826656039568198049827400790603886715882206884418557503545361928693117252289189444151428168133033538287295566124326145573848912154729295451197530429507642740851719715719102930200929191050673960215078636705745688610538669038451428276618184138656023901320767040861697812027104878272065330779284734286719147465299484629940642015445234694653007561941246672076900263372703470181712006588282347523810159664435095053542299015497943883020585254238375704096634829285364808273975733814988384388948150497405056172544809115382239441543468292996705622644339397038115197658387463981801644606158210591306427888783123023135022546246943782874000002858777695568100537297865480287012548979334855974498235703114043358822523722501015073528282933955270344075325259436391472893856180375391352303714876790702397040620652442008755052600857453850968105147863724150887030563062559220476836509399090905939397521350742500851180421818863470839431692513139558543832693636397672615356809572895140159325136725882900516468532696314684020738114126803315242103607315086603793663540738682867377948130600223209632851215418263901220534252598547826545856433151371871438617047734773259230978383365647847111069260466487910877231563186366473845480878658490879597819766582319495714825899068256640527218505576081923240380835600989583382052382241921600760119331358609245400764868188274376602500050755669346417471257731494501152590435223296653152176827870089243594455031264739097356702553109000514557220188607605286781509810244653883688361720619098381985522467076962345469628666539110683015367545753076604798230810993951766841224254502549246328674627999078458263485307710707892484266913659324566057652033784394051854969845933322183763047092515527296442973915088699328482560289235289153863206409287700020622769542904407654212675366989947166551902875151378455419549533227240797589889552221427624278227658784624833849839861816551308359352452329975828747465395909620806870320404928222285882625784021365294688705738602137579790520510858377840575487042961205862889661021969976117507495866333290319674215519167480221022557462952853238632482681050765856622421981305882698710780144017377261750788600867257969545488942470511131529203923386318688721196177417708260524122594102900353558965779888190435063625200814838650630267861560581689604593817894523614614762926361502249863292099871568108723187846175038421971654636403412172026933840305036569955034310203560139114274768919014006448831237523734009821981597185984389814829629924529175189902556965808044923206413010533235308283390770878925889417133980995235193515441846901397876435657146367237132229848329256344194906864437934118609094046197133285221078682768564860263061136343369441219841888310623526068029055481281594347580679298601889006426910520169381409239188422988387829356721190790723883138583418086164810725910079841357270432727868675922534875927387777159364579750711178904765244728528887050661835073067050730872615224889796245581181832690776645259054160023472257435031544217480658881196404435148639739602147738795992137455703030223973063417889725291325870455096214378635935219289495327782284968639071619539419342183990469014220321499027908871734569648119549946022948041890222563970422130930789227911990162318539313178280986558214258185671768521065907056860562512608563300595814907059321286828682855003664499388731597049566993493478226608627659379387477578374105882960037848216897991581185453349993052012890028199635330109514523454432429579372427119317155437619202431736826675537369742814036487474394541291017712919084400463704986409766376002322659047865631707927104881634323092188445232150323108959771601231792540959532191312938328132605740888669686002404803323189908148834735684580246706544325123116004516968181861603335808472581187128441935942934271764200535277869082546311848075970099050501547262848655012577845397104578897445382244211813726714797696887382753864247767130301575815454269774718970758532896565289400495124495640188332977982960652718666054434485044057038235305824300123143562016118168951051637684983951666478437269614057594594089018454008270233277828912589379454407780321348267082697104580391119733801396833612784455072068045047197073682717469242236235796944705753398383313958146015513410377013845534789947270173202194853275921967296893425404722070327612540698891920465334188160714878863176011726175901343431603624807669662009415744139989357599757644766039112815751788124429723469954202046736909448853799338201429696713557061445679123354964789246729928363863898615971641950012188597539463028307491267941568096805681794847531765316371497963287697329429311308960742463392800554090536205749050659383625412915229226220420255995550113644310960945601458894537173769347847140872605285937640795266358422548011064888997140252994054145462305252738182950281643115391040253920119275230064453757905309475887670302467422949067810819569798859002926784197258163374897573366814947681538440222016970444688321003724979194987883919494682818049578307353905388932183481242749727231048993005224333819299480189830308491951125250777270574847169567553216763700824584257099969360448097640647200808173061803365401160311464718058624402468489670923435568579288184692959732676672706457852368780899121708296329344267523645979874199107539167969347648969567479316561331461693834920380561313584154198135220372719069847723337933518473985301346809690548820868426924786898303120586743501690055876287383044711682629463367623608705619227017797904935827656350378845620020918004742643080467045227580828973579898953219509833218917014902883080938790626129280117448606136790839202491960225500878599901349596893626481861230030818449776490974697020465527463864797694487666764292357757418420481428043665605376442022868338898815944176405975117036516366171304656994136306012551564706666277738206304198434654239468258868475670617661296259469626831365709132005693163982811067373080874950845098660945286490963107965702058150815913664706418786065522780797174842591664265825690022544245106987126950791949836085709687206620468676379583270581167149373981683291625340138326202261593048418430042260089764722228115266914103733156625925508477999216127344743497676502561781808313956825659114338879109272205977330397538661556052681980112206973731104100118438790038723663750120802630470446256197052031640980331039482380591264432607429497622201205169993242304034326950208152980261842198011059392684753434889109425098870006314324367382826458960930821605173805191383424816836007273780996347583124696331284876820215559018622358871284632654233511443410855465676357854427509387077240462505578720717196907775256965559467886437489534659167835978630181897578276685680293843557351700087345003491515651584552406756199847723392992734690959012170121767431621170602524437504838972848206123824964888445303471718341893051474942835263270584796003318982448197721330255906922673664088344741491932537355291152272419270724997282756945038936818517543885266290778623382439784676840280504239872391096071838835800784264941845496327205574772737943092589759971187289769495170035156462635100398278926889257534424728089811822147323467101298872411719289068315298230838064606773682443910183940802562399321958037506905009436517995508038053608393744013095207545287588091987703400836509743008581953908711197528048678376550759156502483721727793935071345359798065403263807139036833814417371507983015443159229411306182448334256852125352237387869247545249066180428846251088002286138998125281612282586001828901167536713361184256924568786930055815206298065509060641105177135482291898976447929123238029281145001101653700970233467582691399759916766612408002001494546488963909862049421173597231718192366075272561517677180267707615688737764997977893322964989649548731190362547189790665512409745723756147114456044337521048574778000645336416251856435938385049179918748343238156446613295958957016021683372165522279905320206887307492921017836079343641003158399766820306830258860022773905364522300005697241796886224106933863355384400231148889099942334653737984281081357194706321944359106017367863243267589976921172965397714236619931808442305610860872769498604061963717904060107694582797756325360895695860223392759573600295059214436351095331310652499825852546817011383015360657333434884772814059067808389625473974696582594302980189091967802047346022493305199801659820901030466234055314863601753460949321835602324369892277804513896522348898862778615667052676448032843297616070648684321869053204253877720849058474610419819266781930083301699788464337250333778591273396560599954874881172120104776267365681122170345768082308899326565641877014011548732806071137062681685343981660699363875203519038799418567582277653356109647459562055964382729543871721029366700783154019599959387438167329955948058890886464870866829598875065979658809519612161993626831430175692027648313227994104877446457133354972540339692847116675465859116069764301462352290705259341431174143512501353519946036209042461373488890089295212446648843139330120540906719556540119866860208728612738827412506592063669639284813552967304364821781545639437794011767258580279162269696439892928813751609397889329210516759313566065090288529492933723260548216723562478345158087766206433027357221601873953542926451605619152496571572659159486792919356947282867971632120872223374666570701620317750366300242303524681578138898566235826990880936432957267858613839815957961793339530537130226076888390701551268665946302077813849367044820153171673741384825979874231193606996462031824154304690727494464519377518029369286924666287220550391022903568378965306575382566323568331865529238960229242318096150676414999842867704924843735540001159656738955551034339837793044099096811917584207025755888353580059312689401099692007176714774410905867893358124707461582911857101407008253020593175864153391701880582847724004174670470997325578945227568092522958252292867997805852811681586578887107266473444384737951577526738676553384221500731905060300107657800547971766861891828384966146380633965706542598762297152300164051542854801714262183727324524375425648537966755342743118262374956417334442189731060695991554801559194005616573361429029270574433471969244697609118387456942582589759243668785649103415653281214801995041416705136854554890796898389492879455019224982815438632030841020797152412875843416994521733070809119413342015391321845820188756820195907427478112775208116597355042063766226510246116319331340988122443854400231040893066415531096624382192740380394605492196058332378295963071875933736886666732690373511954169747959459373075380840864601738566556275227064527621635314005212491266828020987678104417103505305036505835456978826082035460491759174865727222700801199853153494640142412149553005228982055104792283244823621332187698240149185903635559089815370607419977735284379095728698182754177263798887978015305783210998243659405480156504418567161228190102316423975653272253839225201104525512541044816232145029037359808035202350190694987086342702216949301600310145424719530600967805907830586476739837037586711535749322402226636281721753638742841805668478224028277603672258067612204915141949544525883421897071485330701524624015565937012918165438025587623954060954323343254143144837433412910477746840137526538788260195258926480564613423915447529317493341386956794108421826421832927120624035641299583110632771419840744994677362301000195092163776021393541418649127644834770193096650586638322172219059648316179743345459795283116167005824769761140744113996463233100682728795298484634503373201836323272651804698784225068980083612397723878802969368810063966034668594408721180959174333179142567813304058823693665382034955793664914705904832839625596157810205003351972427733070090533294438451891902409809884553760581345326219798100674537192694993318007500207566221035908539202173824037658558614079677896937188245246328432344711813049304674856755681349483122802799477452604212784578737045970707748543576342987840036478346468936054594122193225853066229348001988467573655277445395650354444753681825140811776066043710517137493843859312711521936079123706068521031590630690455031257960360904030011216159551851280229168043608458969383821778008997829003750177464056266275951882927565391299638009636329027566445348844532660013788584519755993751829419994919557327098853739885887710107713856264019697562251993378169336989674348951692983546969708007857440230058855213519317316942024817100728935974459676331110559913730835579501763374103835078185605883200158598452572678995802726108411274704227155659075071066754377446102369871349701328490738421246598937376642963150248850076644656546812137694497684049021199351249815600350567715543957633211256465559327173137930555856431649952124427322342947925535975657170080899658171846874723428872437961208313067568214987423125937578517130750662893670872739148391841315994524053277692688690369521952419081179743991946866225751715270474770481431446070765875300385527436456257117824675052590377723580809591093556211912878730309331133309653495633455871965306527441279803158297948505022841413318772371382033792656535610266629114440265640242367491817085166192451843610070094738833013370373384735259348899082818859864778406686202453077172667848771735811021280550684625776609821084773372127541158814179263419747341819581965996268071723379456933944583705276459351923778515504100731463350847040265083769547726962786259288145232936475441980576922376530237147856094095259096833942874594085511827080022130985364753069753471349212233064786387150905519782807766801762845716198508854398627307607660018618795092729426509902621309024637768842227502060736819846656748383202213902503788674587920254022247054150894834068479768101981145991154152577752699809560643550614542003294609367844404127672139612889401207547477236008130531090988496102242611068143871067217631881590496979214709878846782094537643862458682238030347443119366927124010905229651097456537631449493448875545858816333922719760336181653872381081450239891980909682206750725772337537173900159124030037367864451462458949393813630440940490566604150140911659609821308861447697896178393446829762102479574552757098660051099974810992005179703708972069445911425402602518210925522226871784058819441871886191571109528219211394011948512773640198157361621058834972732688609579392321556188015796442042110302145906517522744659095777752126046904926293528582169446215277668601543986481824431009082915604905400273814032920857850196140040863956926845458085764215065913839692513840622951060573437598616855676464728351404395770420100810136813517639330926194253390152863862652524856282571662029033824564797280513223370509390781977006375723547876716962547002044686278619059044250545305280152734512352911154776557516621952628466034552398885733180422982600954328736181891653978758567816113110007426061130770165229429802829808413723849728923878413366543223831906109735454217839606878639557642744542474731101930586749045447861993342919797879109063391349082147148895890295214353100104988626754073589250270065012135692360977698560208110438717443772398836522271060345639146696779370199007850662816388497362396832822929350812112487833484192447482667374742354857558695247407643493550769923235969198868542123877559517825942647700087990797566068425793018076073863226654536707127778417763580368706235230433390164080718162943300214515560365386512650316258312083408563152694178009850253821744483994241830846541267920684202536605276074852327406913734496339051242398530912807541140041634076122946488413172311138126188133482934621574103864826730086111705888064511483230581002272336743694111110630651193664802063204514089314275610747780466525369740196378157169214574999776543916043477581799982154686120696209222662530800272754819318573457866771538242122065755187864136382181437311570296442316659098795809582869384345673992852209565952710462805059692703344909684362580259022424979793782061282320388838350145627103591709314322568147310762478047103572362610489441239664795443652613414093607849803986556091566462319303237701172790367182943247297927222113984722324059815827892216688758888536938388984980172650593047616594025525278097083939849035340173592821392843465793704933557346144520419603218448686816953299153215258204986922669552475118209996035241079737068728103996055895498981695466189029827195305423376026519072863984908676654931305083382921743544910683409669683927930678793244273871916268322781744220902813564690302299998570198763554611436481643990815494752232634287808717004299892100237283794532672727431798728815679514529753609317172633482891798043145882534746769416959992919840581382896620188280240921044862655181738649060385065988240930961019645881136697852845946935871621670219973667678117826666508083936071245026739926177193805159985929148027434849184686015049479452894763592352329835408622032702285705224796276917305855901396032828846270792860333473474159796900240829335892816173754231209330177055457149135818237108619736846922051064480001778624106790102391744995458336927103664344922495131940841528572840695476076418464070546182042557436888074015070692210375564504085679377396021589293644995651567201106530150870536177940966236814436928400318751149526155288697429366210916398886412924471671008957738625733606595037082764799618001384485431675876702839378451638675287096927138464827647440352743418567700994188421926539295366088974966972970807867927868261690627806267062789672461090303488692564614408000996134993743387680942147313156614706926415369788404338598731757351806523546705482640009476856642054853183608747854449993574136384275277146922574052396251985132261061880745442940655519538605125224448749351214062301432086828374987051083412339154970845148561969138701361301491328284776520728055371870089525669419166898528763302647467277342041978306564190245696133622350516559434883614400812736039180697650377650806642363059038840092642292071351576656750203824707583343656669363123501231527652174529465413541982705683090482502919425732384329684462278340289883088760742025396015717067441824991730503142720123602291778512002035906901475061641471483282009358330660546778973387981951874548015456331429375060307915137682653949091278933448043406349589468698195666801180412715860054064849707367631898791326540016635947174686484215883994183285613942565712956363983088665104856108247998876463865950008875042864192986136124974520756312424533972537243492856918546176123499865665507538761191131864017878192142544378921990986670044618858290814584579353292876403350993985814596782018139536719560459350261384188677245189991011297601946679140811181566409823437641635285947678680962494361459198297531253299722288701957626307361764307114409811323663881387433576822297364179115514094043647499305037768658563394221661384443337886731700463790977458951174193851878582220931063039960226400424376084429358914799402214058516137481245167292322222596418531449627748576859790277824481473456737663280769992909348967525722847997128299149700524149780415728985878159366200728624691678182615621457297038194465749659915592837090892015185496945060258732662353227913379797359100261206961738370098100436903447336995720689528667929439055527154683614301284891418278599249148325049127709633752472218033422045120798713813695369806650272134100545127272186030449959773043302892866308877494822931674579965187733633339509731373118919316870944860407215040987669805279412790918165331339226871059837943586428031438540559850130929980175209722084247430011669119748797254880039051737950921725248644139810617758587682156929596931283340753616234474426448902510068077689232104653642181528796958813291462245867384318789195680027302639525079403398531121452786666762877083109462440398872868499002197395042147085839127910971819935908288778750708768177608006675948108220843581014295756347713476682121166731535924663510158750726156494418005178120928278247238967708507493802688692680729371175799942351392045924657846396333245714768894136324167603325174333184962435862849085920520341894609412759325788722736415519161300324016727147686426445898491430895121767743789952597081760789432044100436619769210125392765171124060924468530853425420500842171804957814087442211231967439693574022043187219052896989327169486710587408943032213480411489446602024161794631047251861509827041753739452692581616334296273003102572688461082809005460604430084577257185798478865351523351385241283541589662422391816437452097092664888202822169156512306802051255784423648735497433014626763272747342806123899121669565169620981662111578245189927332748868769974585763667647983870208323109513421409827266989023267716715134309323780228973134296071820625737715389446184296294590278990459755642952506620783808931965963578515467299605603844057044972558913231499451293627521975493116640920294526000275614461313086815124284977265655705464184263487061743948648120806036331834831054688794771259506644825946256521607427881955418258094231726498628603975000618333732982357173538635127523916252114547008564843644113880660249986547107888481012990888005276297187865487746618192858101347230837608331229255474482430147748837614255659686800632087449691461410857289507630408398264940206448021339938967316147422588406357810883175392974354116560305935457548697874546507367901754144488157483164343166929041716975430644571994517221012103615745819813458071855589386525839593259092836863785786803794933883240624023942908840374073142132688581470098857279931367878522992580220683465903471323276582362484538851822329982313273452209081168106443315951274131818238614499712073471430425731117776403839253842592267966945018483917679467519259496531929024415670526420788032718049426453446438227115656956150700090507635232186274710546233900357552195708249536086895471960789597468592244590234205002681419610032635898676212024872891021204774760479758451039093311308467079869210696797549976614777643332238464099776299270427044795427229531495601669678144501857934773071291202313642152254185062147651477142181359963074132885292791373945937290691312475948662587821808730336440486882600147917300678450032841851438221979857515045733746906285095235058195289391348620956359768476711937637693742187437603581205266634975266082101418243718157522829001816398619189513673603747660351267049916600006205031373145843866476589572527359108807231028375406439707434684602836579365132165675146499283061483618726075441891040104147317628322654286212604975039290064295141650418483920808277091803710361313082170382229083417109267435191671173695599994342215358325443341745118389318882916413768723649950301047261727910825691120964865231703950410419596592779181520024812611290681069768011521694266871870750777857915872894459762741532696653853338315545052234429928228567297578058260248354094973787092825395676114449119365435909843571113591679133736452620632785808029006914198005636026603622664371253681275462638689835833330921246895996249069032167010304635889055584036486626490793859055977319844120776817768563509662533839327769149157062843569315000456758226587988297335054447464997758771448598068672415850220670113633624680510167380050144535614923829391275746247524694861630869555257789543214343449307288583551547853131606329282001281797280944645081765711131466071720727081205603425100826530172536194200787978575421524739522106974272735995748885919026675985645755292218962034243579001539398948936594662183114715237374175082425451741031917491931669734185808116166951284355281047272774809928681287593667267186262209720228121769511887808938950677517132053574491899285049976894967943743062291341362481177798630081294182018118445490031806427790336991386128004680224610359079553143255622776760898724073914480667174077248845936228486905131706838351971799850529758368659483206389186469316389179673494820336556261510780340269808882214438915283299257949928927340798468035888254139077347378055109871166533594411695896002149558656147752805413491623249468315961577770246146827506344641171053956667726692587340152337423145777485627702132100500510145122745133380823862270887213324618614051067396411464105720510035584038287336416118878359184556870686090590200634096062299626232096484942946236559975195203912929311914426752343155953704294144742690247322674960595209863677657947313305439689262916735881957365075801918724067066185773498235738765324734176996522564375914389991868202892755647491705238131834799731348694011265486787854245022723747318197877333650059367390981927243009498542980964478092064307170557446982702445962399819145949070458111281833258081781695920625324325657641079349837665806889769723666485382889308922451136808040383217355060438384548400817700915155597408861225569601696499802079238133818522786867482125974186901658286068592819928516633150691437706146176476783622524042819121400017823803574874569741042635724288164317335875424947885560693168327213845102225976316092885027310039727704005601685273645465517247001315695409559166596296200126938623124747822783044885625746582228438472413946559124097822818035880804315696765780670367017414730118210891590454615546359315391814039361975838399971656057000594148381626984630715177485213425121229281544400524363956437576545073823580505594124120275791689752640141502130471035433161923513621918011929431440544836100829420801482011919740766645628617130226379759959583933074516626787384738787673608768723028749078011176319217789281405161725875980405089640641469749808903261074404822811033831564755390734172493290371772972031402130024181928065435582796621910633900645846149327332200672408107778037195634531133608409572298702558086375105277905049473702912423805419846326927572834696935737635895629760572204376167376389429927514336501779919896649411758057564786690545911005176389242825370083388790898544560144417594166326538238911137594155341577825613052392733677766378229923973007796285218167678500547541292423977721306684444865837644308105847004517182587098897127010740406309963236484418264619182761456403637723913754694320179917706719023396784843302977487741850669647376122622964648612014593892031286442162536940299313119229608577144473520821588639327853733527317287672703254818897226094162636395783814119406954415492125247467239346966594488948791936962340221625526172562009480776263706902467336077124475312226373895841541067840773415467220260531639590543385517540482350014293703335756168316698532536235709874499252429748127077484367494646301663885518352797273975089167243296054496940700381585058511043389742717399339956806714330662831052352576116830661818749102033755270222281613528910148331187315957717315438188970260645805820091739605047019231478467279451963817190364046861864653317723706194627964206410702778585530690009296129953550480435514217241889171701806930637711498049119628821964641748236087217576752058484647104417949062678648102070972964439778913256689708402942993560057309130243870166151118939912731715635972773985199473956159991938432842912894526475376605772754898534110634183000436053579930985975888177750446311089790104622554353711586109648545198563609849445815579246186402320598667975351451289572093729081315419289394706049987170692052669004669171015922892899691259722919550088614344913541387912044968305840829944360068242441005959294326008220594662589360215234742672032077296964757041637996272971084681606577077132548018092383304786765924108725659685292597299287458346102772913077169088666292536053880447737914256126189744846415297981632509781049566068392434366004076391879307952815851037503700962959324001815405072127133227401182506888153906822176350502212011563648135351028850512280980657032868108094438556264236545539575534119482402795355527317774705490230653747710476460852028238337614425151935914665478663433709772682390492015892542786887596609763044654218917379896955338480603430378065602148339485936139624536854203913453180325586997403429750783192294539625904512219935069417357303104822363703328051264621625922583891726207391895227379638567218277294481605770233077564750215132457293831095400689362505058105726636771139932955024407442278465008940435376114404827480799562920638367478732170530708194496241689469134957830925644157057418546292251816538212037200225049835751483832836645016883844167274636300204309618928837883795887091499141534117585112612936308504252264555895252376865172458305915373620232299458806603071324312938660723078529447733908087084662373340042395108006526170478908910034171092576689969137149734829154578098843874817962134764078419543824152627115729800626542724417034513839315149231625012397154337324637317014088254865391903862339435497287519117436785418225433666694864991301015703522900445918894445342310053438926016934769969966365861281791708630109027571520708744120101132654916692060811320132429173884517807990952940286577042824649947294869756842515343654186791257062158119432730355323297165253281375060019949872570340765250339907928741125372048750268528460792699263623427220498918445991651236865952714419084337767114388986795611943138235767281159932084739076505981944722880572383486636507848346483146931342323111837400040404774392146158156227586278505190796261223128391468800334229827779634384136487531181055503891309525309129030978701871068728393221683741745018095464468234889670797670157563939584088634653460140412167333633955391502564690296912269082993063951204864783001855850498045107107883837637987771667608830731389195817686970659458254946378879086714359115320948440725227953488372160817826314392395252857597528183319466501763979219176644765934274213817020104067043551161456083533574740535728305206214796162542500685232964337692324645763101424338863407440954406610237316193628016417061438800421714144928497988980137656135465379049521945975101231236075452004371868972319154799820343110818049078969454010517775878199466798077018402356868363191207250887142937306126862601931306094231108625816038747016469912763524463267929329407325460068923496053237996796519260921381563422604368827183907370402716472846908394725720881632559961769624950021306993295738343699437190242431071276424091253084349662059923273503351071615037937282070671305395132111008304404905467460504712852396656389849023058144548523878968698766652979534437103834349297370645990254428307891653631820577583768362614925338610627927185624850747682889689554987254697420485679526460985628993187032944649218777497100855224917468544517528771900453768491753005381254915172801407356586155510918678665951593949803373030015154607063223455053295613175473996719252608499566168683668202374211809102489012878779171716291169644049937528034534243268462414954132637072202751042121486716080236869512065463229913585642547281165550722452557678627106103495651068453211397229837392083108502976426829742200305538084262144503990073808840992082289762367409745877135780672555637226205404358722180107987174225928645787427668175567385937258469444883001296746357935025083456122796546937710950475820925841952782962305592977133801550733856106596795718172647702135511672540648476879853697319355200607801689350875811662507404139872444292760282298721458797790091771802440621610164924158463954088167983750903094304638630593941169373837326963964570000026226166519231011437483194546323727662873773028009770924849310873497292958425660602807662609384978888243396099607894560521929212264162270601544739386529157161006932926515268725193848038223190739798887264456993477742151974344662498468870470486830527355547850118322201958466823253666358334212101625967295206170910141452412345657100022402144331797814199954346327467830630760814857437529117702868834144674202858441048828969297390506874055603844314390392360312644434513553975224671610934836640639827993325253812603452586206305853364677010726938492535915396259100371177375793293200882638141067802390884632051374446729775218922741442849702938144755877536554281909417973265062809147436166835965036028123048814741298673167627634214919075844842433807366418486333110908444717333085776860525568529857212294050398920945034029334074500812027795897489633254643745373534210646923231985861621551642218122829498517933278456252066077343249851689719033717693928385108928500332863379244218316783936560939237519714957878561603690965675206162557806798307210920695700205894688039255828773054587993498523533136732351002709602172996429845928183505086891519942855807889493407348841742317321434229111024505706847527876378673119299786581627917972942346381061989783319224565519424846083198952953706719116759795267472989976471915078414396041451555165898781567284861072794998345388926165630947838293016803134395554866317060715979756700729646860064922276506977663611584164750588923796599864619829912359214997047298713249951095571828860558997599018308070056275678621310425501389747344728943379892315219499536468659825934640299638448871692363107478624113390298467709552456612791678768678577228158278828070943982886555474003361086149389350546878708751311457878548442714593822556273206482366638056047005618579780323117452420802759078039937957636657027985802357269436523782475620373786244386228033696913496156131688833750262258878422239669274346934016526190889182862155830945293591845201701223961969080712037413503076931174710705624914656160405409354682078726506891771355598417291175648921781239195919081763437546213719114658376999565026673448938397663286711742944914706358881415089607444450811264576039827493094486176893057848621476316667505529807487265965373186808957739385570827497390012942280910966941205655397372498555591732408202200027639974724218939945238450664859429573057876489312939659429175762895448557535974146197047130906246411704754014309518149089183247460106297911208418913039884668633252459843266733336504769591093053200760889179037051810675661834313403621838324262003272723322005116858861234712185679476780371355117051024005058380158281542204450092104076015112008410005853314712628453322620437638797063143943325144893916421689329183699879790985944612297643549406221552799991993452823968631898160477694504980712206375221445047844939572147609938926013326820077345589948012007311279088411758741845024770321492733884972197065147267777299850172151360967355829162998031770236779880089828613432600048122838134352118588519870807468032177372489811797669690380682593860267902622425550207690265245532825654319048836111151295917665178358077625981525667923322861925839959983993856024568531285590532534869373258741850757398428118607992648046012188506922242702121076312912317400801091690433479697970098735787764692698079223762090117896678854983581042560670629215060756641346229803857159696162962868822572589704026073345820006690868264881901175820913646612988274159122199371593289124111038019098145875238607764977009784570673225046564050442232982742103587640319429957052154524332843224621513424318317837383700486070785583336731862185947726712789213706819075248959930325879856147093641327236938385394671886941484139840782337984539198883178643562137667132145186901908458305508138981586170188653792538763270179712941593756101103548396688892718944508515616710283511588269825029405927247249707207184727082753828491740726551160697348961875343408754709872545970244356402934915156717917103351664476540177221698122016588326573014157687873833885185341880796233340161155749100124625624315130277343092097552322399222788153751787501306801935434771725604637092466276043669456622751208366628179574609094546133672562754073465026363292560847143763959525852202800743679317451791569420566272589342545362697996309763322124421194685859630664888771948567225899192638345172695859425169829174974448302498855202077048703020201275336486212490446626737109307402755459600213173412236618151927100143312190360667736813356851489036396345946274936454456842583502316460141301811749377519220430184476033180885327562220963768593111558926548689969234816765401260634051572042999457394104743015175367525500268926827372366143506843728710294347329040531538561377421973728420921229578863186151317566848335754944796720620786771202006391487526172277104884752544785053212983215071764036232256058703173453649193512573517537726875059021979898200311925311043848080953682030640969007927254763728933652657136788779472049318088629585861709102701429192815452286942637375687210052065423365824911782664055339969868900228924306399534477947232961557491397011437544199526792206889993292592766889333858060725781102755863801036613862371055593008601357394341254668099340022003855495352893469203036388301291839026576846084892157332158341076281348081476650767927076196022707011620070591100115309075785656031877993536878835926873217287933379813586665491036401523258019805157666467726628532452837856840267657308355670937217440786058969063432643031788962171887010711085291823866074934771616861670910950201043514965413781055137152847475224420290306118513644370602017914995832914372140564315284033810758464980890262038445318568818204344395484125164162642970822980258590151402258060152156484563953714900354197375110107105656616887032482550473322541797736617276354698653180599959218714432293951116912259906344063027066291199727884510449021412658384255813210988757957364685367079098834284616409882149419502829193608774836725019896957529506434361512592199335610163569187132178605794343484228617512275261406571876146519667596061014650602950266721194969624700947853247907196458766097152740436953501956730068607852598122023748518983772916128624462040347070538156323632390631813305431301839085195370877909883145751914264257418751089626793088997964651031976050601400399917750817405689306161090646644898042641591201320437518495602121015114223111958045880469089307740347519346911645457090696970377003061080228632499778523617919058466001887639431016870065364943720207614159180409047212010305788970181590747554525583277762754861554966071052043322771669918954707430218712033574369937241669113767656355320941845212443547356030982489721666573359740341024271324164077328622669774046997419560969291494067890169723414947050819332231842034773926335655013641537361631741536800286257593184772836036347178061475954823235952699201496456028684073889211961483985297698377784570537856914071117797909459200056713410926360550734161804088002064204187873607785612305600612849117229777635339464606729728274946830682793413201002137957442000667839658696037452527533509051261311834661735592199367491631797516917754452126196293927043962257409353438041463198011463102863687942697996982146156913306224092765201896657618312586218377003214338333904827314333734741783751546447911611740981035310581500314115371176034800684461457871689036452352019770820798301728501351801008886434246458372020344932872435973000400792384671695135375696290755842162011271224785200888403943065279338216376838614340987548512176190028637201233288394445907666012329548850586233536342575396903121267899768409730275404172371157054119967434348371893415272822051160404411918153412733460465510569299896767833455075483406455056235438495673074711407838597799529590388235250287085347887486237316188033765749084255014557562777557066502676566935723266074108610634760120343005294127509793308461403505222429268611397964605188953359022325917631900607026173880829416091074558057789296696059745778882240544461460279690389942380737776107555007814392117633105924245091490721633098182743125937961887186332354413010300639261522886207150676000660620043950074492953740095115662766436504149233625215226120541021917600586690815665131054911245695806580086292539341215633106962945775707574711391968806377414509291286437473706604742363823790812993439447024790783339729957451343153897544797759294262751237890084855931507123650784022153008227690209662755238774258211244686747015093174015285532642737247483745794584411960526277583322351636562659517484846071646407131773563294970824774026173577688706893342376044629650640065333438925206189107046948835400596746160463536179024064250980377445690499399956208743730410440878192793368857923485368337545242232099766224219908418035071069009735552081714343933710212167574297422095238271657666900018463503484329189710981836979750713043561078504527510911306735476951952838075406042471608848467340010908064894495865184232427667628155469046085859157282121003874779276538034694441901996507336845375633546134437612776890918345586734200412017238408315279973936295176933810704226579373347658945143952791415575706130717153114817904491763446490130219334387545684699190126870430390641575374246078432636778295990072667683089107707989893859847712737764015255149776250038189130078439221961226569973947547000428936891706424840424538532606891033140412485372266969345420644435342812349021036188397807461017569818723772296691818860917623810808836723593837436571864744191864887461873269429965579198468113511015937302501321268668206088592424442190739524738267892908657462092781137848183977686540012843352270226455300002918107092173235904478330732063504156929854913560350146114860011718428105367210204814049882164081503273168095887466192220577887810102488850410189838284066744445090830152775048250086301597258867347888586416815961484496977008401576518610274074461011229624477264740503725759223121398841068306296668697037909414010611436300488874925855456969671764504834521224886685171510020467173822399921581325655522821364007230167751181254395382274810632671145987484571533008384400194306768536467320826557543279428818382296068058024704297458253823693417085338314463224975044066471533317211735436753333073974482173872626828411145649175811912586719370039616471727023471568413638386076127516662829579927044201444646382143472132648232579384467995290457302960116075116106028112637610877540835688289121059222895446051476044292940220001530054887596652000860368105952978403445796733392911992378739063918568663230396723969930618015337737786621948225063572348666045136755281023323606448946936088647962538962118989148052167114276765477247894657726805837590791914057541765510035342521427864053674579460646429745617034191225702157531800877292543883867344667287017713490221363363632650749531408423595775655631066001769778707822235894935485041693782321914519901021629477118899739673538449178355675131551056024252600762795530100182156595665776334437108006827562998232074158697118468959088209733665332604333231811697354740893996916224273376856015263007459088626717214208095451863766435198877299739573109678301410706894467658691841876354009299786957419832466314575238050465860120527013686970297514679554323585211288746313923293547475971029713882969804518835262618549456912320182622612589391641045481806964371680744783392273016902696244521315297282364914483250023447532409308325688659088144297035488957676881971432230264530669492254727320196041302978219508830491822616181295691224030780487256852549553733364420100265167113926869892127412231770165836335900623905606488296815757999763465548218717863226045388270275198037822910383161863377411813322936268032932824112276445100764011795157978027872642957805118157092401116558443385386559286347815643544728177623543798907956749275354789239719055876172844315737100479498170021465286517854403617931063372813173320019304137277015980399574862540904430309000590490639005828257315223859350382610601274696255720901338036305981670621641952489915360201255162030981732234760331372823081017645771168318597753729193108054232952536837072207997971879826812759908644242690285016148593742748124453350837933567443556874762353165164779824634961745102184481301069741326218416944882961437909941953732659887345923096016013455628429703076107412379068432865147466309130014836632970189207932450392935808968697107551817975951821362087203652251493968057805531697579904387870667359084301329999300147028020732768679359695668344223512861769480905677684146276511351221970160561940116123711077404221274965974064969885765225202317872079569311214002068199183658824644973909583820140668389904335784767593232300737258402217153862053337738885405337923719958292514608584647119628514376867154126787627194887863012028530387445210295391598567539499987556268728634972788688477180991642612328062024810922550058618608449465769252081431673813332002215615668574480763915457179973268828169699089785497345980623647509031580329792376776630511005183206524744132528708340364618240053425890996864144324496205028204574417012940279816185563084368467148367519706422538586837949788477449792788764734981637166201202304345946024275329315511815001755288852215346960773983454416657001787032404060906648424463407652364281286387317195665016769337617419481875092012127400463451542985663020730468071874584118828834907018356754709072559303811848821306914686350199463931507523635229389200875016266657068539483343980458711691608989873556199657983168487264347955103756351609619398437256953430948225954656668761088572850710038721656469778015433029961068490490172933471553517374265766112973915372489015246342851770919477279098772882589144433718815419893211846188506190523838850294899815741924159634355173897641561452220404797939142084350826149318673688996628517878645695391447391392012075445842938750098747910110700941063334520001049291987101913565371612130104381278773800097947265433240937420283948419625179736653792913596953427465438860998062142410722486765611363371250625473779387344912728170632216184262103635823216817135233391385184070078574877365618775938953644109417218562405716766954961043953048690955117391293531935951986565882994286779046374093145510413943768245116448366680295728703540154100059842352865249536764718310890012600195154818887055516988092690606655607726043516674700691708329416355518404983604389476381871835921874803836005056464490049126467132615748300591293914578121138201082903226912375770521970871611795730386529087067198481836507468089006020039071856688425824078141918636838337239273657937862195829339638296917226274488195874438144195996441571645936843054017491193725251489110089984145452880865463047563954351991588183178320927236461795120117092186025569169494370580078677278697559828632938959148592604721920242257719925236929499085708853958095777752310596117185558733370394878535973905894645305776256861084576312800430542059582612453131937469927555694398026920790489646060425153036499983314759364648131685698456152193004097244064901429778436276871341143085486171676238735163335111337599778186905945476191466140588976067086957484567785047587548426211567900238509910972893263992065243726397897358441478789416445827201149511884498334012012118537188270498966322795566501316777950732828981539332729913183148119471858209313530696017871275787645681849105451638853223457306751394538501123745740941093898728154877265644960031606284100546515175816107817673867554475213135848654267953367264563195367386579423825218174164616402335442264010629347149245917940394083002762785225374537409455579356455348233735182348525651980305596641251820993110020411600458782756625151912940133061691558858016430882736298759879311737971083443087627401771783690131937704033093807132244031358580730073516502178521503949338150785113903616853847932995081268893958700539223692465153675125850225943281979604526717243021201209561024494882621201855634375888795140716772530920374610030553161186872517115874762383412910036050930790462589644684882062144234713495823923932388279963739637264047304132996417947067795960319566790975123344689315868338464912049863266574498402961039397939544150451748741290008324578476861851151692871725665844327696515464187024055359813420301300622602342974039468847093061900508475378697912312517943306585994476740341599091274893951777335771033752538818574124309623082923411047171953808269007930532638720232947309877573868669711645613796616564756809979153758410391084599821958315499284483033808922864802776392674807970961404609451928315174225322539980117978045126645849134952591918789478260195218231537672411080542472859564781920294238329157300368379573501146545206781127331552607681667619390018436071086584927344652767037599845696730329020970586994862647937283550988589767650659261848898446843849881832405732919519817213600913262830449104141814671352190666717270903230258197797694875042118659549894019421409189640374882798559504326118586157297335987409917330432810845497703427127440421083708426257904102098423132812583668100486183372538382896004338448407774646895736101277142726099069570506477010991443849272797831298543664309365854893395024741911665314610214853331108200061940412253781806289653212887882407042156391458213017378918997155899112199280662408558534165595234631655578923659698367421481792149895293180961167202074434739820505372495212341753675354607798426802236335551909415071632827857270261504512803477709459367262607676165042657958238618657431928376797676172502135989293032871947940769640967374331495211175097664695379536256250475388724355058111038787974722673915142848863126340893960597640811658989724444659263152044610068762756186146946259013667350515815868668390769514130192046998039330046015492656874057363660621049778819405059365793344467832585113039484677466044940366155376514819566995260988599217814811466488432178535164970697109224314978410117347320049118675218604229034371805976897768948817149494606505674055973464823514061180615179456134251802212218924049351361558317651607847679808343571816758457778509872368949014750402202983823081092091577735952257072836527119669240931520386619059457383248398532509093631717325157715510660211846295307635491038345627315542678518375334584943040171233668082677940456820923511614810653229213634077265681552554566501741616867785843191897790974790869026943678524403218746836049786894422966392397657567787521631943933542629667689478077766099716296512538757771637374627320154432051659282419829225229963699289333380440434297156823419939766876777394631298289070364956100671500054839720205287820806207584378579720557283672737822725013480440752699970572352831069714559339197715971323910895598885886957946652329048046998653871186072980495762197066667275151155668624566936270080251741576308067852534133198476446510020004928390882089258090278395406449964498813028881741946403221976459104492881438385685902753619525704403551315729876595300749339351762080759813945360081087088747768776901392578593220297496045573036074857913111349647672053891016785781459744777247434130263510794711696571928532154677554529050995460266212842001910216850382858365584023982162546519124282990882622519026138565924561296056869091416938999463485847187566239730178703046849342342633422961271952689323764493097291124337635741877122122949159943025314493836908555523394231606990652204270281266451653956455854397567512774506547898803256157052660126821039416773804876269932800969602563320722323049967419951553162394483252847311715314391451633728481690708526700062540276397603003229442979869163666848759546410848481731559948398877906768013841896620476339612242471385917957374613970142849596433286631958677159924259977939034868080219262935025629568959653182683471863884488406355366374670880922600164212043161860238301148846748763938978111360801996258204975995553772219970545501197730346876676436746674726731198384631133925970409713461003185402226626961597666315510966746467890196705579890329461743719058979144014956671907497129009309472588514502995361384783455524717305921805447198918392127068357595186296451792443684743875345214848856213248347476755863689389753837599664694311767254522008191531488210868972875881482482869603257724149981034184345269707722131441361884555754270580341844091441432563886885155390613552083672957312200622179475778983164618423209064552696848438960407759729906850109424729627693454362820178992842854192534118072023182293311877001146986142291358880351522368043188303985397309603063994353602612491804076672719259570300840327798810147123674081082928795017357105963641046015433380052028719078846243981151731907232293093418687082835916663685551723838261941514678058475134405670970705486060098871377086116302836336961419410158316096158490764568491581748899604445089950020042817849152091912448525130382771500972713872128213778633136483815169440601635538384781436249081987458744093419692104745940445379964831707256620201436462478019684939092439374827103288841861808160871312364970388343887770232912015492908334582244076534348151455027726443716158824532187250856871805311984582996475211613441231250414576355732147482908273714874925019212812408755756784255673000956343129722131264261733561905665586871612581008530134859225424232216869664505176243375928586910251077737709786538612465953278472871170549918672438220521630094611563477414486948066618527413856867349466511581872081795323349499263609511012832644033655608794197283656853650434503813857017058392486967227074011763120879992559795295475614687739211870762456303519908768217884752933642566975071926778210058475150791374687384836182122255174855715547574311889194935203525058814110344571148469238081736326360984920562807945572092337895780826771832910323945492002134333206950092407009494941286480314187284718890621395982227057506344756509477393312693058986226793696426905216698647901665047097455476595442769971361779546428147966144665640282882887303695226181613767694914074682929270142462165797212191434759474761022924168048306325245867180442949175472161828178880967979159353148679302562500296501570981253746950885289749033536987823431740678935394296976780548206350330086848542994953424780986381688379220881478865048673447020700288282426439360392215109702745869700656356203299779405629819919468552505342582276066243978651913722520396357396816038676035801312606732862673175517016706876719115374774387098135796956180139031563308757083727543871362346986075331002019217347858737116658638384878769418337079471520464314978959684646884342085787209624882413460873984896858552943768577582871223267813297590251656124154870314190943122150707100614454924225624796348914562657891306657082909739007818107110363642931572209943241286089019122082060584484815408704857994562317842627882055654200358123025291800333595095520616988064269746603078179666815013312373993119644433624042920847951925243447509783214488558599647951575416951500455227288292963586105084026628998379745061684656305015650093074672588528105945895578240420827936896661825931606371919178467791347381722847534183686266714334554980751590852720711897088438387548214991389659743354427840189964688474674693929060606296089157388132606606387420548176062132156677775560070525136056498313119550651303805869381485557087810252225883881200534537346601361498635816101586073130019939035060815432326914738187694459784024839113168021262718318379459289590058092266629634141928562038245817769952576701361512438268292494221739503795912551309755847680574004871041852684026358008801613875018990659937398585398138238945060400942641680659974829052786882187176186381725599890090355870119705705301373991286158041950246092348220486577185131001398583617120797603211033227978654043036747561679949704690647616944307709211512839667705152705692898329063022266681071271519589898211083023828710357596398407185063778878761391829986345518151349350878187763960176779971543966754421946796826110332538427612941771832170468572825724698080526997953801386044167468411726365633475371887675217324567978530061190634195118953814720866884514532925189672056481464290074279028458135961204262782061718602382348036473790739662815000292735982024248894081500041812180316468200541968684520335435579431841227263063366586667642300493619392281040015383321915844158719735969190877737003218668463954611741480070114582205858447272102407730472021901812505082973225861238341592135434973191069215791194409692058550567129104708749391821830207458995368543378324323057963930338165109156590869406353511890572580637409470326134638875430256490498009927610530850368036849760917566089800207525886959132312002328590881669599036495276849813778649966582371807190028549476463182240253870337915505510257236645293997992169027959320222616160712440390991899235079517521422676570808770900570792454475459525927868956683590403327384995161666800345050764905650749033142543727111749507628796614892112152311531201957377422109654366049821163405828549254900653743357351498667009360605406436521979079985470123801042801288035701578492062842631116018393444004959628094214041734970938533416648208961397624728765132970605175349897693592665485243384720775058521084441687462333233498198190414913652892261571962919962752662531803924435137610558557385657445483292380134333781295219027987110584692766826849925224364220455338399024245054744263958300923713723867204161681286035898250002912046117018116949901617669573451728728483246506190199500285912979998440475124075806965382279545588382309563535680715492612107335355946922252076665734676013231983815204352786302184728029531269537684052515288399835163041601230055570782120422353286663039572401559596836593669735159781182993294147263765966764905079481083347311720643192128376414568109597380456927463303542059008165174096908092590211743870764007160747996957797907978958146981640643021465886642104587614826988564590418598758856493170662365892360843067801555848401668876623319781675507954982328288319488874173290719493524278657797249882363042438084145522179074879335244560569299296088812116187684664315410806774275728005247420903938301187066742519026291731761343482121708094863484478947274523021420517582093828204539547721704538272894022246352722182417839081185479555803641317915105387436930272291598957041154726403355895556640473378135798780214765712993088539831833648742958351470933424173705635915404820085272365425656447641133203388539780519786929812598383406529934436679863986912852167142067476819326509227108674173029298392817497727383889880937441383218491883134997466463229305873889566750553378813402411651782354642931920620450749613023303687958697293299606200398914379404911335642945724239413824395282536757446442512536544218644766553812854085959434157988910432762369667206756195005380529249665547153801941817720014648804149975504145038735234168152489982374924344480975138933358617922161865874109739245217866794506559579076893166562197607546397511924584320857976035860567988511299018415325516507141504829973178972505829534666983231704350732358071631705113567531600371691232139093932391078483024038339880968283081491578311658351167648834048031987226836213230220085739895390483898088441011865229895304281379937414760338056997393804683471601620471697662731674146819260724916239744269281691870684329912188385037701216427629380781597694092290099114315369100707683043601329980395473709694177881615999057310124763600078798180530607310991117397684701118474147536921640470146307954391434649009169681255956371085628875018530903612518721554471966481492846979102383300809142190261317163515279642468771860176922441923082547832012027388854451057415578215753698079128353312449560075667600125818182689239291258640563543988168703063381769555044900503843109789430832762685713793153309671903756779183826673350844424069091162372446372350250602708299708288079727036176412666587591846260296627377104474227700764661150224246953130399199346885790205433587280620828232609683210784916811509814740741456927738274581244930019743058530993478472903608369936468821925406229120734139576507229252519150127316248623993445634849613126283348072395138186098048063751862267121046114453356324828090902650455779733400350676503980581405727970947154340503929191400992356705289393243211572958550414617768999094573371073501887940411444034574594030856283304265225761033788835760395270010512712044883436173294364674186572730178924098426474831102460116481068460569978348783482013117583586844437283262609600356967195120564038373014779907257623667091869841585842054826595277157164431033369735655439813166717898354663309852941419708562901640890791366895078509567525488677101649687320917086543252344262840474574890067160393413945365986772707049046775776308513516202281362946763620713826158569541960267953948567589299584056722850849882533596519384972921116214253826795773263514270623449432157905570859119252610196867866247779850815936697837393746233693888940708935339122832019834978587048264595460644301644412746857007755014536631554373594670267423123303962913633083049792718460191890275167054467366428049629320255712798877594659768768414024395728061949908834594401127229746843577351703580284134674691181292781722091799393678769399882100441371451563957254939618690441759623127589088246044150057188802965299158546336451267775883136155330328413725678771323741274886992309104121058623413164170819090881824206465922670524602341825841755418958539862524126775296777926817260096857685819250421659827205754581977217862072675063133822737558832264923137632845077053301361525299281028642597031871827530185071413061554210694952020080615599814262953304773739321253156413826707347461328423485806610563312598817377243628721252514265318165681913198969582530818527457836782297524383055652140242530363289003079852209705205626645178024974391066695453329830441307627845259977272409124102315341096836546881721817299251502715762555167375217528127523970011147511356950187178527433592867559328914459844142307290965776169794990398431014556564082419693691956623369676686882612789309597452757242730555430294970135489352965540150607117691739457307749595520773586762453146298998955836689295605781470770507875693229220984457254681105372301755334878375508037878552380156385362325491317318785670375239450360536097694041387552050745679325152092515258831429533595717794224553200812302127462955783848503618776720202702208902282144052934331029123496500001745406651210851539509111749349338198024200323525725599329463093335636629957913131627375036840316341447583586017308700989653565580141974328839653424836229029190995898727413813455599903304900595016044331529814615021014850925953244098543236700054238365210775197500655951120767352028741816061275384035995017882057844933085815776680156698126073352874902415425602568088056642553849728983087063102711201252835940554104655481335349525433112048707873025001490485006447375758975115969008689804114247462859491762641714170096674758824355381057649563104062610206118322601068653090216841036492688828374080977175759840713982279206294238714523051610114408140030704559522573751004494447366529330342790125067433477236085572139808471990762542233073674425462825369079515340708446330962822092484250165605308598514945267473710782604560359011713950077134378694088120456898815464706194563691315689169276899715616206582787092243011283783183282979528579535531074830426576202669128124606227188689434484700182653443637136853666237914723570687537756386519684186621551873659330865554152694209736437667061805012797333345980668661902770969440221819744544176770657552534643436300153899300342334447847514216791012120477092663179523506545979627827186921858391926522077299416737114412811716205279825369937459506641782391033439271321763347488839159000862039294135914352886686149255488570710325601887927436745356685661345174436247713626339551094480495921282525390347588840446111452887919993649859961381967105529898933319973024983967889199474457504488686049859017175049102774579912774525432264347023868016529333131683234785850216734515808007963194165829342922988299759137884832880727914636431948250728652180832120958547303068183736327392212397543258614228574883468949650597292023128413387662894967875848925347918074732265873274716162242538839119074475079220577878654556499607800755104694256646859324836043728191047329843370205014488625719861881999243277751475333927098861783532567459011980952377710758520736521334185013900286231758774432346228216766165063676550416012536508869355628519181106179804153788135332022871104652958296895179778018680099757654892996727730889909261348067451509360565664401259497134007114788967475153727266413394867846050035020132065423150770843443319413549914040098719611183204607203066604626305470595400691355863826969039540684061118731228698170767486452600525646992153105592687909317575975398594511552186522127531834162576670717613515096973484296494882845169893575543682464921337569881413782777977602605615079074369260805867159821284453853154707564453285703329310108274349995055977735357468595202227352507802578830979429753491678163559549720659999025570762874847609117448015287241220994693314839974730586451876851302526771587493387502278803704315391573604581382708348547685796122886889321273385970398291584075891431224083971806131855724556205810121679553441826416362749528156550616692789513990843717947936196895305827493162593085169775017884521399264583726773642631591107256801534729504306292051778808569330591744335180427958552939681113835749484116345522873641781830097360967044906587192530023029072852437190990683784523861591315913479858537488978887894650042643382365557324143455184538544594695906302889953918812267165964257240502185120648190072983214426332671264531919648230088737992442932152298955177181908680925385878782441385745076271615965191177531869714827791378635750267004824212937692356359341228780458795845727213958571972191564681848607666485575023857749665117219004039641227205688682330705361359875660004415530028068510334602561283680712940787926834863337724164453605509825410724554548472514769675204347605946813764139604501538669267890499381124686134799844182010351348661473348738273959473212347238156403694886873721415990897958732018233332486076402128081368092056301673249748569959418491691844989794948487910889171061253804607691614957093130743339977236646681985801996289893130531945778897094708570473138305112903461135459587793536041581133859798073962238166072785603868190373360117818554444100857692168797984676120636255976180767285376810697504942449774556529473310979432006735161899546779255038670356018497867655352515061657387260417147501111439805449855119414752448240322806253647152972886513034137288750980079322977804872101285987951047502971192467816641838755227780953634691970872740934628659676238636441315510692795781675039652216536732464211320218673281043064681103551674201184058580225005354982820057865856874450368458414174044641269618234153852515418662347410255676061387566844778304510734972290877148228144053443142426335538043086793216883909108676000074819463500602777514948531504451528813912324386329290933074528448931230016368510529934394485515080868044048543648798434015977207818390804657518671966732419412692347551387939225432325468592086965622694422148074560174380512556269870770865584050585908824330080648657426506185727310975091193791528067601447681810714888976478785478246534492737030298708841078722233119382049551352383275337165930757464869561728772943992738724070652134189420663831349548528668565961138147609350260748319368980131836835278742985071131817398052099800754140184894646324709510970228093422138660042201558937457509555491255385274683982503565953556543366883213002239455762334867853824553105872170680214353513556217039883376999101615467179295042393467307740850759613531572564898703277539081308370327702843967649422726437367962198966420977508130422826105711685756888860962510654226015977571597260056331553537779727361581578823678525267100430004528386309890798935656321193564795482103315814905709201192508019917510711077718098916208004988189723037820768613404984427810984370690204879981060509909139686829607021239241234784529953337571984226345701596717563671406071474514121757814395516372598890125237606775690251692590665747947512088145038597892913358604320756560794056596530710969780372192045545734736666258031009650081876754691962558185165973953236128078761063141130194224380077797823952326427005397411288436281580222803644336839455186830955737257495718933559471035567554998289081138962178459188997251851700178126855560318040048941585755048201657672650541233229565686123951083532952000851949212979506539965992260357933234473792603748913851405840906232415575170809573178244027526953815043639756076803896856772047451969239208862997904691707091397924573103506360832931866224913856027194968441810210309154267331065968797625926059692795557830255872153768238996450706377667403092375055048225435636171715599814463731253988680550254723499106657593536456971138128327794249370773112002670596985661741674844091217339678104432425874303769374814454598408811814826209093716888037399866833843599755621343800929794686246112427412382700360446177806696245819783751754205259243843743240604038164153224461800634677905871299586351560001651836367145961330824789335534592061543171387170601909412671806079939855564724274400631672328136739429231882015454382202520544299620420490175780198983677405120423288890158082846565616320037232021365211839189973295779309877799429974244781424209777111774387860465969704247732867904682078916158015790917213351898807571842108060426782571751102646732122727020895177049116990406286838490960851300372626298152390023395061217932469735485399401840139213374010519656766091438284665678375730898737585296403820507966912133052561705300802392477417740732611602837295856498253092189138245191351946269528452098051830803076465731283557571767545825781707267448922537838018831686602458553198737530001595747033786935903550831524126740552501553645303096399309156656973720211150513758763795923540482314588669465423432782673521159872956222884503612412279682397773205636279603678744739170350259010170932890312418999718466778555187219238411178027381618542964465524038614634248975637999433499156731604715293868157532022153018958910471586444285298570091139935580333284060246184953908388461707887738479474828571161182821323895161711138426451824929430957320955583912818348358886483261668218715816769303335503766528936715588356676640279246299762646145441346854686208045344274747002581652114496376400975035034393917324847134780447106574788986882735210045811369345533333283123700101683126729337875308165040712118535235242859209261166069187556054722555378065715396151283803272353095590877032109270692963689683152161989259701591338720015161078905389743681178657850900827770213933694547110883609528255062179176046375501324696051421313383416028536801574713585811672035488175245342217192605164971279104900894339811063077584666568878333268639664520059890831227964894617781730280450800323890282624666467123327315907738310135403886737115389146346553119442854189374852422013396666533338514071265492505560367492680549214465877372059852575519087109822255241025929774533814335852367784896596753103228907637056932172865379030496956492819540820927774901964042649427180904964167931444276967622058796736592950688910783585839072342238921453993737194917111834190167831766044170113687874606816705995522701841863608233133707877201240338608309925042212150039084212038114551965832202199218422731738705494329041705440174357950604819799822770830167944619350700806831759183520196704586516633007311950172084797881043023652756570724333452222660491624462541762831370203583387222861942136149502743602734538866217487693967073858338682161615026642742329388279158423784810349665482191138308021122305528215875534439939863165895377571415049475671215846507004249582857356238139538050821599780941141090051427326159455118741702095874326849439168969803045752138184598443415758241504690898950172129272888103019463030672317788853785590690997047004144766882458367952758914971139859240019976541953310237724721793617831596713915641529364801797593505434252610577289939245056050667291083460595183662953564082213187822369886525011541802303030302488252643567630618719337508977787333813564641240698533080927830710711087311560246379701866667579221417860430820712752213696227358092785282257020585675544251569312145616100801795345244618046419798201234216264322227042227458518740454698775113697723939908717986317022531673619585996388371007956828650964979175463412760734672274686970262262737214546782572045586828457342018220649965675547867669882849642113937767111719756393685766205332665462770874927599021074475017718447082235018164509273161808619389309887781080643194020637713972082871530163258909285733012795359543215645313708140982145874874464995734480782719484517425059008033624256773916416762560840311856462383791570283356635326979905830358026480665588634129872308156468450631670113740272213372251153052658456656465931518680256091459634047856616254752601570806854695878233577284867584738138220902621840381940042409142167871876242864999960571722616864822624406382598428399471447177842563698022587992127300818853228608411028257664943779876725314001982830721055510332080615946419886682235167054497950984394864549393728038555776250953574618840783494937245520964593868998628106438341019425580885549961326914663413851319855687774483620625879262259091116082744488684303136094127810487537589547569389632577958060309114408773264642030857356603879217200223400434265574330168778359833356343213198736461884582629108455253362761016408508541759293210326852485360756739833947320352282958823455711039435412781861635828280654441708656479003911246458327797986658837356421341311419609612753634103887280914138547134068497232186312565252820379931141237097939643247211216980112452659342881631028838151600981693562582624678057282742863049804372993894521471543581282618109589499741573874710948725227798819467949778524548771916851313641484783877289387282505287392545825142044415930921148346412616891816997417501845574783498043233087937288929034957127139541812424714423073910934480092925953099354698975722963177741043167582689825338927121382455523571739539431288639889305168640190827128384329653554603257346943950121860961477172334451107894016765992479250162604648400832019555687563828099844638075276891810382294793454066774525385941712883873011194216838695164435650404779547924834199555314830727922213981058898291446752984881755425569852160763732532501314111111876611240681364079373718046887923281422167363059549057425119874452061333156015244692444842347321296497717624029507656222554262538679906999432391947359951937335060341484787683774926304369610459576612139580917955353052727138236082126424786846980448141692152263197480746231132732669375941620710370683952468908495310316341038795623403540377580974425637086205927834415735034445152210049961599315569073880546176500716159599047362860653793779916610622033023300035068475070961613874692614993497160078670663382015526629647350228016844072836073451038612783967356226257387607706542084494584203492700001926582257068719241802963098088039966864822033909305763802077731824630295478336770655996587467681220599209219557987198410873384078609440033519825948937783706920838881067697228758417608197728066513769646319113237416799313209315322224794581272085466794422463415483461492934921552188957744528747397899562013575941917177937375910323135754264138273022515577260177385761064652403623032559508516110994383377361373359360132902364646222822825396558042286248950777733596046224434136302112257166521179806751736147384283892751283602947456425340433709513961313964854240638529324523190890783122003818266705906427815294409330514129375958580652293386985083256220974139507464321099419405752870489292025250794629687258621273576321819147944811238749809553806429507597877173281196372132615348092022267820861148417854293784519504257781022580553278215080103233582913657422842304760713295704338267462760597689322886475615003610768887712948712287226175272317755153271650215297245345676750789097712769268585214259749573670019058211570989846314378694168499888218077058168810425447414428444248461947820003965820406928216361840621597194952287797010229179262779025738670270523863650247712842609657400836943025570939804832266594859465760088110798817277556103722809811642723842955332377081610226494057337539817674944464995499576522146031987763755336102315545097033077450193505227437617799427640157756422160447098200297059863702132536803058202153243805621166133651044581050034789789611043265141083207406450702371070030622222180333520127028372873305129661247271495549405574129613119579539344428640820410659081609827233905397592562255976539687887252129297081076055788544027421838600916871850241200435018973533745417408261380523460592417223881709112556666630210518939476059940171952427992306475270377890687390357244244534929806946774711119469751574289051637798189615459743272669097574178492342509594976465762207666509186406776228273619270621713035734489618654010908769233915630311996281067778991987650416847571118142819144511165870636674573247782475412098142366373769569284498881756595438646636376357010991127751202902807535666500586279577804469085299685945867563450572245001040475519356367527441483552985572870827325005570409334019179096165709315661928800105542041368979345853245264902301484267123379645082224655298207312249773487565377343608382244329017685612424904202421172495807647188261559824335931593617988725564415941969277151614912804014997555654707061206567626242766400141565367900512380185556727790328341960322979365838490950865726379399728760840367637986196483292702938641948491867312558348115629788392077953548371150515739516483425258936529730407182327448017654047107933367898047661480167701027606187749028093419633534827005643488424731494039928097756234538402612754725546101692981962851995023243330378577047014571109879680145956005554181217441835264029683674211983932307396038334838552566078269243670459072880069252450533960734527018743694476033866597701430505185214237144146849673923210702108096567556300245715867956323249009949731749460895453059501664388252664308578393422248457008585230424218966627446081522987463412784472457715692177359158400543983815715176046477008500786625289580379989554687832659054957646059634432863780946796408731170107691905671842063312109433084702590729297676761673121597956863503380929791347845766404915102781308357864403750479739014323881026327291751737941310361999144006420927001117836321218204249520168015275103414774011927630023269998135893559282679585554854978827576034136872672445898378152739756470484218837855943601101951242069169674548988538076923654024764156481307238014727053763556175026976956051935604870451992414883130159192371233578989049412609995152040014204984713724418715645466840645773335935454040235686498310296304955769154675885244828416363201167403136328026255942156487492947462621740982020051946393964773080139933900969245120600370607327605733470116321252543132789143991271329780292641391784289486566876208343922407897141348378963230498693522962624460479815442670671384221686505818288563162135095815621291679228992438684509036028627387169910349986159891730091347877707220352284957668210998245535925366247788244267028707028516086966928101528411606915536922507871029610089593511405643260887672546948193604768448345728488329902561908742757930727544938812268431467219009791495236326696323398176415573284217696736984493046046290573675370355704705493610649894839233296972085081559484704048293351341145747889125701825596164519581159829742855942147324783845746051614009211137066111585618531042633435259646382870538178925839560894650584476858060333314427038255374553572130838369091134662745486380953912769335292884270634838460946903907827565420098081902853502415756371709631231217263076476195007610857269838397350800969670127394108189853042856951749883919938984385411118709527474880329664039894109171704004665997949889739975155355352447371218221642753664200201704842603886841159956605892256957598739257306187730098923047125756387681030122961831236665481123236821156658008559785390730297859862066752594495473158144439859455892527993275323695176610725158697489093809889790505103723255330138090434202237343616146882906499102452306015112341119124977403851021670943469500314726967396150539759625626701333714787186911666871808876963342114532416369114572046759375567236956426459145026026147939101806635687223572500499500839206779338508228897028071898174241075003690473325377053790812023398449507368983072208654813480616827223324724631892358273331324870982493427926808549475119665655606541061295992132836445483514482768312326969569064235953998558613180786117022003224166499925297872563366826328266456083424017805304893198657729394428693125571328768882259332724391787469078320587345205146547934565260383043369438278682076646938491528920434641545350890435480177686787505539188924118966931771471886942808284945941223323809820471447946144193989573199171909994064505368741487847918042985529437482686670927091803892420325637027119844590362001467497195393599953364670829002871247899776794719470658142259877326996820910467910101103928654970045926203937987592003729696419103328388238914473091978121802288986170852248975472950546542228596797586402747148233718323785168055693878433194236206144521799725182762243734326986723570904762932749976767032523556103804076822658935250222853563599766667709631222780955411977902135356918590570647363403944918459480644640488282241496157835995199599316846073336420432923541721807360908635988345286623526286537635252864637056644394525294503102645985180690158760324022853278957589233685479981661068763373534724070373881594738551608289909953319131901051365824423956913884279868563850635541633301360321435099159798590776194583080198558398252817381491973875409463238744535913247034026522653798499803255816827348188947838085696113652744040128440507424875585395192184837246617777123032079049604833646033037111475690234494072724465748257510406509272238268411758152356536212864863070436094741530013051578367519465339800149740742438588055123672124383314741051428403112235138404813772385682219045054587218041834226723149372766485986853535074587640066313862416476733231474721016401696064323407865112636256764647195901395592103109643360552664597429920856505798554935826250406308401921369024420163676008112253481158623482980209074459389491048619582422341519496595409271322970842209964568873791120087989614340546874651537100308848082458789620417522628682560363802168655979902737089202399810359088044267732079304769582345252033571861879004119053450668520928503469055762174795723485281263169230797792969619641306651253048437751966448509307496105589126872641090382898066978409557655519613015780545288810738294683814688551301184739996924685804297657213910747541511110587418471509258908257898715241444464894885381017434765436618567114438794559141521324089177441377603119819868363535469785022373434988890494201019854536394595827805221717557946786285893333773662932311633592468722909784582932502346231278432825613765238103306019388178858234991484157512470520376701666329153070150855994080670722210716433147744807844892954475962049317865676347574599238713192850514656046898316209039019079663547542790822299572635811854234178458863497592113899245692749640780281266199119409666010724274676749848400615422533541543845853291940807789344153024741063344813686253555966790889708455696216857110887970473483033265199701496789262838738507197118340136713420738742032759846200344279502639955177640729261691350688643374853713875286827824129784967321161026447760061396698531491018731292156186809419524594185793603292978704387597746960032906730169574875620372069135420636883599686399670922656335014547180413828405493018469863468562936760232735576785294376651545606039986562891857205902791074839700996735317430559363424172528898259817952530944874539880063912932481542392552417627703207863228440746623450055382317740622668908643321247135439293565063840984960804884349823538532433859946694763167482084162375760337973944670123964258783120228290121365869218669764782701930963649991907427895048905666611214324248191700482904583532537075611568202744473576238748813972360348381220857619140958575035071344135226400426063740426691010315803101610433635291938255902624771489458482398831929820454361281390065305800541718285147146134310884120551996421876206362847232349134849691475377272439579896845880838835726584762660913724955009740927539131708516235497224828441703571756481076883205982011708760419819509738510665385189168673109899563047048641198811506229552633935434715385676908880850195417181813922890974042608782096938086972467863913913716992353375101099216081391010033345936679202286841626215236286984727753007993612730044374868010620170912742416578441596061928240488599216900364370170709365084536478948396624329278038861114636510291463159013217005239378009491331279375556938638989689685250878876448670839215084483933894381562370324933039098272043453276313290407311106406332566966883836440444159693384584715255412896955816640196257949043911909968028370257585975465611791849638824619424267027059878836260006280067946115720127642824872410983860495491350863996570109344092948160824803641525534459519336176917346118741362523993283011583814196086833026616184299312198889130980294070216896248108805381118330721967910095567733555492996209698805411803969422427756084948442965828295427369756988542760808530027373279064558703106452805720201098732494146424457598224018936934492228500453339415886251488778268056049636926640433763071908860866496440650433269664553645164144785752278458542748116324045191918708431324737107067308813374411366996679033693644531187662407897015067476600222284369714749637703342820811958930208820115073599731951474135824999375495063878700350706652280268696001025902078051476052349985368902087176191917598304831631707963182905723032464310515241145810457029147435660106839166305780401096368552273418486071406245457692538835283303651314063149806203812301134346804248739250431715297984244126964735204094411671550780759928281702848695351355720248997000163094068636649027968279015698396165115860136171794617215532407540586058037753362475783728225867851357983145433393297301088979485438859337080142832733495391698108194111698924691821015265354437609313589373832814304202312044508884459651833719214929901837524296332388037035631782984177200980609968173382218641963301361895804371741670583791356299175511790290597876657224901665913283784439907487090253634511115766495489972892145452966932305879464357011886955944703332070533650661171951009630202790329735123727981740771161248884384787595957295514826207374262911937711543021345117758261790289417580172365266997885134087242692770754182557955260612914408323220113206334238270057661363970863790582155884754329504274657745765924683863355188144404799873345162203276786567428281311995724126723594146581221416759472292461635246717792969773981673765053640937062173238500766086380738951835888168960790622292860507504192751868665315967268798522072681365840530589987300647280674377558369525212179383585166664588539958943555420757985210786919960867695656841980735658239838665829780738677230467722667813318282058089442945201228865667294911567534666848985216014630319689395252449810193401303603903223488341687478800250372574520660110674430754759318772746115418949397019207970590207617400807999741377055914441721947078175268929017684543670682973917510358308543432929573485686607543703399119556887104420182653039369125467165935893754174141052964625971092884214701188563055056141800424115746409065099887694135781223799327462703331793042754700369374156236159039875130560494918259530676014805997017016305905205206087697969277994380732781118104138005348707485936353180694822840756634176823038441206197639865541627597059568256672761740589500680825872753284725480961727777063603236134547766808455040797720007083504614970077752381522524097473903998754995079720028288559253017328196845768160334696520002357758213632827668061101365637320565261590029917776106260735152184363593662739745843018329043932361361887095962647549803646939659809035674852957356292909067186199013471301052741131181944229058730375902020350918844013398269868541373946301014418797183636511653981008745084542046990435720596470672453087148018711484966924354839831088810244076571597520627188651875548327592485492513269336492919504218638899918953861868926224573412535029719124821082953030802476918810059119933361840968201455000541354230377999706584937947528585104120256586079340816560961176883003810077065342371336385008610092889271532780345675326818357611522075293699298399994535637834737960403455822150852263460590246968867081981526035764257772597584518320760674793254504047514106138766197999859787343112301854286508296795269551388048784392743296811736506831326322324740332440117811328289659206715882773008170868845032980527795048849925669041520071949038253566441959890584293301496832053471356654254947584116762294590447160334297090865813011224911152809227388838392112959245348524790022932359109489153254097700773950420198941497328706681895860873035577862394339509949776271437034893732359984428670019634303591457923923794399932398529030716133372623751084661551018077308478124668554996523708521898884438226165296577439886491690976429447819197942758061085039191045862821491025072482654144270431444615493836735786601433773404576344152749198802578687992914579122137442544180308777053601840257605156634710860472648950469602614424727787029223729718240713922646991928483681980412763893769083820501872226711357531490311750505616263026865589473510365114184062944060360916835285203684164496746347930293254457513208636605923804269867771026398801116186104016284798705598292795245912512779213127411462271860394734885885361320545641128897113868824838673272241122321221014607905905080363910235811666164888152842608112121152355206211316241323480324082358292405030369845328144867675713681072504108339906613884291822556426396131319395739153507713375587814947902153051171037450894583284284927952709084193526636647249298907944845208702529815733595516485466459880074456614873456439011223691548375601815773030148928413200652132995445479077410323775598187230752355507319840183905096026030380814841769228814078407770362209136429642821540404993859345584458482085486043155619238044256501199595516567428928746011430358268768353693802423517814413555083520695625937332734605475205643680603154162875424575834674140180376448515898142388595919225071355917462609960696243156728454588042359603598710599549439098551976661538230533238616329475084983016557365603932755610646870711001423323602434844782027711408694841292142175130905610669364186992276759622782641592541563548836002178983270533410686565071623140078630863905531697898561071131627375070159883877308492860386515961238012122570839442399240316860964953722447550984170243909633870662585401635323331334181808506439085991895682507291281760487591992616260570816753408805026364955170301194998698642021592260984296946776476721810652195727770872419179741037225638113016431179056940493795102814930106577250765568917473715642492772612580370722042183428608481694813575516282960846748498368391931198205166648477726160148785168805815853685693184249636322635650475468034638680290759413533229345874645092329060470330462117598419895284220481948163221639637775627768331219726144577722744458386610110662883679935261640051962905596796726787095333937216258357905947474461192684994003536780417303703229733014765173043001675875560813141907939062868089995835363276008830146120920700015864777602287120279355485104199628641049542130279400762549621752548070805332143836539740621462416226194505722926184057182805860542631281956277804561569479853728410311026445575738463620486349037196005621419483535669495701719714844701818370026499149769041885895604563694230648359380904140234132062555182849871013125626104077889628656202982742463298826000278414411426485503373479716541197767682181011949777943710651604061456416578944099092989596708956410223164040551172737508852670784511418249063519634814593895966906208840274867515060032563636807778174151441939157270307054850497673877044197954866623821153010071517111229774331119884936648351216827313445252810030725007254722223426053476271140118666683864809815552361260578131376077238433190242880051400536396868904884037993512370586711465775764153882601200720528400089135148975261497940775985487969703063681195941843991488777394054970684023166042666222276691813867052375899108671662689066680624088344165626668644966779314522236044628236003719526613119943574277444086155578597476515323597109255360240271815015079080287905440829472647199459273639928331383887095725135524018774024309468525100307556054560306514863601050123519016715439009024280615061393229793831015403145176892904814715262344944442205020953310721890924185926541357194944730179023977407754851862424271633385897262813994972599411275011978228274424212626577683023086926548163147209877771805802748527611609609425702244314061037169282732501571914303699106987889390012785787023257931478495375831197705508442793208848358722830254643321134416117632015654462052492900030727045469533979642144759033494430440464403569003618414768415507279446215702442077143641704511837126935907306601780615757717447356258673109032047444746510868686332447167101097060150668436078093861426770074693775362641458273141160970421208629023708327671867445573935866845610564807005029722266150707757703052473084185979033503728934248009801255352991253616779070558933544479870147486233386100454037486289328493646089362838116045269259555719977498867185075742363637998005175062449075590790428203757311514569503732153484318913198550230360464363323882528710755382719598981568276849862504228680495848326509853185079194953701770169041649523576345383340609554486761932094223091864636509872513338888621418933171360722766762318348991954218593788877770088250078700448358525223698439778132667228737016212808096757107556597969243767138445108345519543742284879605171919830234631478447148052411612371036104827630637085928122881923296952735191655845297721856364385713792319537837536056027785426343926014629561978017729890852377175645723943177443752538614655541883775741293006398450774564373307306959463569076999227986699831612577604736762881040412999069234855055338322500632468195442782112476299712631178740188776661480795009482758351176296492916161764994882970205995140804558334506307050742399747224431225611467645274989981780811258441541337168254356589789638175298526503881368365056268625305775207417346943314364240541252227480573399376300922198837478355928301339070851183569993806970194675581550645730328053638120896175209257527360074003226653645452681962748589595122040871083664506399091102569015318971067748044286496718623113052987931766200859636513630578346099201876652148399987329485325276638796768120175256073382386590690864097674960263869050108270222492708078486938852753659822223443046096018485471282622134954973192013953946659050902805505075444837225528515202922955516776033682944246416085122200616704081540420871424299229350084000884099249549361745572924183846583142482537736387890576364640561254591415835806496722715724836781015874882190002599132738275803040797686587783151721431125911439743096423363113275597101780942500313948331950833000022907880719620241129816707507499960821821073466614016331675541377423630017025541482374118909374952663844444688970410828662846966723987282263003234408240497125905841964159276298529674810335595827357005664346531580947398300582598125983635683943399815507735831880141866165092948151504083020973636938689646031555303468549285226706249167699430847345104618805624974417497617390669029752730029876766305539637075448680865760955201134246805991177067470262286793134603185854410777009263355216398638314794755666866036639631630440564999893513023380151544541213441907643292544719077467445042395948626548752231521871969701465673723937078097963407575900684003523140892450139127401757305770010103961666752653880406612619653387717181025053517267734289425195280531106085589069860192579487024273188127169191855845105218627059584911676417529072007276083772371597584912633992444429625003925011153835285610514386610909190974646611404660031703531301137376533062180668989535840206163007765129739015543523220075031647165905756017377586604726640843780354347114395266576259205779901601895846874892255589755587859486248962839332969962424152859755613270277763054063574665942871557331323628768067595153943081790978260963440255646888372312361429223721336391469120049885296235357095033063235913501762019038386972126926205047831826727950888351924206802022643484907388551529018752060669317810680484146717826187395051921680071612750291468367322870301562381997711568923759039753044276164362745049311114644113992531935323533719610997134892763017486547079699338998997616842149173726383106306422995784249987255960568660943946278893520447275412847514206652861231588807498398358857349690333165038873126436357513962939946974773872792860563135854086472382032833585628888702254401502299245943357749816306174876708296182895652086086819767534736014373461464139906248456411439928794294907073952202606604783565973679676480664786831549654118190601206509623774926798988507294458095084061797373959833475188506189767656446204817988398744660364133843441983816265438375522801326713115426037465284876631849847339027360080224863957149525927103568570289945448560597999133133025512339010576408799844637363592627240160436989789582100590678978758973519503770344327797844855409893370886670995188640191322818506317514313655893398790323048241194008684904752770908928229304599146789404020754179805927865688850761260196758695909429395774107328637546574757310032431117814680084670573681461165028681022354507627434726941625347746778125190646586050956940914745852845750536821965654318558247948374099622720776027662557621179965532971668946393764586716310721605930054965956671246817693872296882677395621555487223074168885802599414068879161335379229334170126323093907849316265820136570861010064336583630740693783116741211207530598001813638914698609232122049497261184049743067115806160354117367961225959685246382312759923873113990825207085062890824248318758003343486872026751008789506932881625501241488475037398856500243444556223703564484069001790662345395147316664067904166999404914967555160557087907535463220953541857826370432500116088032355775160311230364770605935457402251403199006931357308677226929368755852153668866901955211528840125327113441702361435406674841265854823214575028500494583609894144715225905998446641917102306457724189202835348783323962363533102080019926212208490631050022318896999669256820101110873683745986974463278391135316006765085148415177904394136820363145704919252055896528015970463589251370473999863966716247302394640383706777752073062208177426782433916964226311118855865288666512959444698502366253319549599681665859555001316448837211537814150783047480470245958427401140446638963716697138810618509650387008376847761326712837943807591450362256243570061515344238121863337133554844318030614129263203310490574344802165653027462294812870058785665974492099662322812558079721459048242324737971670835498721155528915946330900959632152132326224241819370071795674154325848609976924873782923550284196808468829987197059705034580673592748867305446017930040979733894184543464156104920342918443241851366132875126921285675867191260179465156315903873096251658748880800890925119785174851986648066908029656080937211771535328485980046085674705057633842211660582873673954674339561332387920491208169808873401041927381382930842967410316983843396666048203509807326553680912164296053087899267111543656191657245582969206310817724403212246083674748286102441748054902475599024460835917466917533138885824044210195630872446244147134271785998257844005243298890060403767709483792644229100497914119781322367410942103096341185209832982139894985695591840378371363152232045092944147978764615257068658478020551620432005027009686317017792034545366252819469948147074949078960085197734020979396242184624139588781461600349949005848885060802584126425428611512038817547086700281729691723777187733947323546492052678155966248997205874233145727436307797464707268961354088322014640982812966952436017074645329757350968166989363715199306256462085760553556465256954445662098515937152709452156097922133488371433870622940001203520910059927449820840572068489062866621205317886002563259626676764470307724141840139757450210776781475661915789739973384248546064410918457261739410020554472462750228501000914005149786049791748038903535106647396704300552247525721327986161946427570409358909919365995358885518514977406143349216922908857590224601520774695709496079907872055169533460752760724149857571797576977295018019294334938443118865724452737773105847232724018473215742322869365359752558594374604792174303769872653089166401833823355236848439162525172217205969084895198492283741371190771805548957210458920942233817169143178277724113910868822940359087807729114287036976763011046814063782867549595415136677482123535332389640269918019502218726470559666370791219175759406990748224670074940310562786013642828510470161004466888205846935473583956319797600815585838929999134425470493783944331584190951958361541096690456796394583618639023928872003464705556676669683755251311005363279468931599949585349430219813508134325291938862742207630181561240766311024667224724715360178818450154756803850368351033460331448858975607866998125996325566229673831725037609592694088366677040077813278684701454397966373527033650285883641596753471051573206008218342284343863951036078139431545360003384198844817157476804315934066778663831561445000012563245013733466635794510186332309867997051006389138501492841120049752573695915388161936479396358343320580359608906409856265487767668313772793205086820838906836952818976065346900403899636865225660533370735042158641058491248722540465154842925375045583420724170162401648413788551330706982834271020201232169809426218352524027354363447387192746000064069992453413911196849328088369699568021965345510018137007297240664812498527025747343961488939810574809356789020725106212995443818676411812681180354112969837731145748996334435428304378740538241313518001373795706371011492661131001013624260711239117720752117354560120636658236753213418176017307265835123306113965275888708274792027252327395593822415574966457488579649108671980618998021166474478597674132704929989169393925850970159855564755831927607210540661819902012407477174654687591520378707182956428280956430709716480339573092753693585031404905502900553574380692240371683752334407332772315979100345405249999681757247932101110438119288152813702372794176027395602700605897445733877078643155890512343291982678916491987446026257611236568504657866682531217636359303215516871423262627172320090721462135716874259172830998978699294019701981816755670543628380389834735826446583162363414645589329246331925908919187190907454204795435757099706427321602258698755026834064018492175650002648091245560301664894626340521909992986723859301788765114048706407898590473561260122905659026452240603388722509605529988080636884949901215733122851813971130377903499772593303160615253647528729875217005355923929008962643513441836448307055576379733700900004438587361254885073804522306008906227590632128828716811137742627360485211606160065195917244781865173134862034983747928261940127355255561217029933778821046339386644088850529212079432849438068506028569723292142490213691848169815075572253546788961748481552777746972937920219643484799051869523761535860823631529204819943872986186337442345168401452256675522015553010603293923158431740154911333213793490490753903814698820366403481784615641951134719967568032654094370551515419061156353834397435550721638699249051064226021199676740523685887747591813871354348046757527565119837758912119960098119664647239582164044023186807588874484839071034024177346364705380688328771593711272043570662348091713283493790970128641031615309854291700517860849788131183236638095472734423138376021244523520989081603896026319319370401508574411807396224358210097092974781846971299632194989983314480348771880297216078364088138499464987875250695823510621704845401261096843843080940169687965263799504437016257701909660070895347163360054142943612130898019610752149717357866803004236450091504494292396799274749667845844441303402740116426216365594597573297985839634161601608772010252841656485993303166006307997565195401216883265771419995542020468455950476051075040441445661110243547074887402697968027778744758802308078090074984933480505711365637989421435658160147074682392589683094669706213199329121655313699441896783169762945222096636420852415446652593033085584591363143310292665376621532090877910441000806191810409399076500111355302128941367614360424081968349623601606114580024101318611121030548122510749668325324327438333095359420602838303142408321931542138676142908613268916595075183767018926480816429123909492465480336224620146733209811699088698771617762629662648636156018328034070670627664435149491790130884255328455147849441227581416191362067025945316436135565388237326658372595702646609300794310381998544464843080453062979042414876454527082418310205609586930961584763405281999261090202153826925059021534393757169381604351365964930947328421591135324697900522103362903520576366816310024480379892437424049501418663127718504270048837402482841154205077874696579449332555895299931726142046186512762210047943354417694474836689034291500724965253558200503242533929407995001464148944964083032520645403747433456070292626612935280197725553548097290313160011018844053356918195356805135562082913232864550638525399504046689749622333143495351711171669143528398797373431888982464854720617833270287101452167076214779280362555093398633209614883328683809675611077485392491723573934843187219414351253960384965051187646129261927681190196623545533087748031640296406525055727420061965588539024269034589291838837236899660337706969321800876832590869775169411974367862181047609839338657954474822584189450750072286224723092801831058948818368465285719671049828816648520326615400049286074221441560462622643693982035381203610370433782821956997264951576809358616256886108440420691879286514057890101831005338418539330035110641667631651812238151086487722216795383536033939144213895760892862223996114090110816614436234512368004330892277517441473585529138631273569936003106461701804920522584788884157543686358953244449411582938506225125080993558749937118219566059741656498302286432651353966874922432049112958088089447384920057752566846818588622385941336141742717209230443059913564724125052200129683972159761786180727499388786284653583198795544133430809060276226536027264079436684683032461624957435511160147676652370158006960851894078400586420788702005081136289141636078097683092898540546252351957483799154516458222739557144514382453934680088293141664677435700312775012271630721322543985745325767618846776752759856190836033317923359909785608095741000517481070448893831731885723426195662592247190185720839102856550875414824088052764940185208207917208554080342272027624093392774916489681866715857511810810668026479295417501502186851406497457918320168044958945526206278503165516353905622713941494537343212927349846018426248420743003392068940611064716465368028933744588053126219402832617353489543014144852943318754119591301011379149790216816511153647742427148782927375165235273083473084549228932826949018357140159771644387535521377835797370366289960953841916818914933692236264993608236845243198640912377708986533904538779141299913157196635327122975319750053758284808277915020028652722163651807193675521173970492738952937656833664449678361760170079424706057367456071958512386595689280793440265390804549075033166239438541485131010563496032435392584844392067725979163046916241042527271611217674795306201063594321766912691512498385794166581326644147803532303244957080893554728041447089265482946441928405000914057966691047118977078662615204476845291318646142177341967527191181037113379506574784163166624685473258749090358552873398837671056107399479362928240979794058193690999660694143123103939803945752663388069296765714686574369526877807271172661334842683365793226454582676582335451997611902656571775278610007063131388631575248703562344285636210565527095095858804647454049818993002144841203452965996292440222543422590031623240865940160878776814443598856339912588519087845046230594231000448009192576349367786793160485320745193631348148933786430886382298593891095487609009057381492237783924640470141861537022648751973536627964772500376632287742861761356076983236236701981113020226945548636633030052206532041337467851505147213061761724861398641722878613703016021593988400568610092882451941597571937035498969882410454768337432112055755009470654207197230749306151505491790368489370326067194094516708748176853529571351405832455585958783008840912346445676749857445426832598148145572011301552893896481165528391858575807502518529256729360777440653179277480577047172620222808406268584885666321503119685251116882101064925066237318122373568064443317014087995769715771898629605359585292945053586532646541631982825580176944332419075133917917010691848471820382239971167738374653445758193016237537940553689181532331335233332071624293438372827280544202842287714892364830486569469333647094329464631647928632664665678020019622456767380348210185992250442694773126650288975198916360393372108145908551496326631006820152933816698026505973494347448064577635553105582810044432008999931999979630631073816009850406593182063557932954347627680717575055120603171700074108224330047791600386966244218743670275816322879126870425473776849462618389378085067735291334819071759451158207387310143312776955232425207945103669378379335450232417186939303327791625054753387117187527020461329706171838034801958252925578518972437959759601389427785463337911880882049260275731897113584788838959404332658879912406145734867463264363025492307229351815248241442288767866591169738505561179724020292312033384093675450877113693106896196320142130626212306279003271531159251856743577530374549200899277933422889372364350367275633591092273648769374915318138454847595746188309206897032051163339939787913186533796478597781331206417737961097428899875401351112278531821195116262702835478365777084496552404519452388519162662736150951678440154408255922948027647770391920853650682495210012127899100774614923687433993123948703567325847933267777696874001506022784253932667672863507788096129934414989118772364512227312936526022973016110308153817277032900133535182640857752951063416023895288422263912946916987583272813406505228212943781208636700953214379981408192778949361323946781924932802619823910422035337883648278276965055490132787840291770576757883791982718193860999267738317079907819709028560187636312224385096022249360847866500879071076011318041980464246285492560596876362646041485649198898728460997863002891228604797816886452954533193250791095771234223552929273037239114417937650949514365867335573350697634078667251295947482859615552342875210321035920106059921779549199648722684141685841617390496400165498470760929353997300322153739067382869861803766992666602658032737171627187586426437633028808776130848505590314163504237985662347371561439353907249887841352116397875028485905666042862644068924662285332863160332067518565114229028935504132387208879187061893426295323761655233331814550253713970279265141030133911230411535331361480222067957052466434823436176504129626217554661166461185737802639525720187266443934986728663669078160512921693816323212677556446952483572169856206410961164630938886284227281744995604091657616439121691946181794663727656456458154143478320319180830849516111351715899097284324170801027901995840383968950511845757841166785226595930470267636485189498010695581317590214587372752926571528187661406948188779963806929033841226733620213459224463249214710166711118101456736765055030006535419392257149657401701461274889322033686994789759029427540826992792918445853046541894374061600324698207532326930677810996675529802485840731288890053588063500277871408059523029649345410350388665773118106588149151180221667517747603241808045907968078936978985591508892846565979824691125471425158874682368775371123672271861331957786102736133684995993449877744988935560432638364429386846611712938008546103584387121521201228764798252412280277077486990099951261945218078901880229680095018224298496720487989779482705533311234346808671105657732000484313559779652309580834625406621244778463412857714238146627528391380124561015552195201083895709633233737160342802384108224246103713911306097542351069927176728073731690876515338219854273370733733941375393005118920711759869838607254270795267262972981511687791057193242883362478398408259052809174328126555783930089811347100695063954168153685911419371081430889549672178271447293305988449760613842016043241470131231631733449833380608770363995274178835611046602010796057805715712660062149963963204763629112904376648812327530575040774687860149545924657847946526891579485603195947814726395060839935115155844774279788621445791375358055608034444222851490446899650181507736077487905868604677223015481494854541756862466198856418842962946301607270114450380636952617239127101147003808202569822529935574662830839793716838475634123468486269970907541026318258993824087256675382422585070381989910233181401932486453875943981017939322999421275161690163702384581619644957333547786652068521921399175893203319970879972651260097478432548604519801474651003432974399061606615751778686187581371205725896012989096188737217853187243704953212289980260341097609192546187015521029100034086533580941677461270286602750325328165704850425669260737947818225646201880419493556899972670303239435994962403822424654948706218401817492644995807425068045739638320458596220153248409626941570234096288603066186721670766597161907365928293310784793289481954212269500563355888166793277022174910962978194640487160883400409584254676417776374400548866756713392978848135664454855239490520967832170337086455044195297743679158769511813222999754043943197622594145855939345129504367342687097871339992162795628846264877580022189723211348812988925570053974652300364250129117267154679921755077268320348344712069907706237779883492518406755562789531341972171394444064937668453866475580949694223918167403269969183298673239468723323988241705951631830849129406851682883554443996221344014987734079166701682725657289317067904460359847252130004910332984479026157709258101102173776349160187761610842785473404149154077613096958244704820210525326998076119514611690572221420851915012260866281984918303737436652655474147839692496984751731445714323608631388706815738586270453954486453041133762830711020269703834513809541141108570995749228144199901526968681113871648210137647481118763658467373932676022811305482456585819260648296373356385364914585562168729058609002572862243265627885872700217903574360678279799732763498904990013067240061964801361239591432489441459683763778454056507456936454842022142919959528558802088472359246801220960229613575017312789177840263625653376007630422295630800779762099059248241536786818607337364718045075786092897072540705111068081437900293252290013724764299110571651106322560293896549959734460840332647674180689804299561078405770915051514139335073117803760546075399024798596737887247764871197467456799587115702073689529558947608467958134815179159376336602683867754694296479046588996391579739988585147417808908665094596493936669199345131333360336310751467131581221465423945145822046857423389112039514989601207835661970846959719400643326189743652777086189397271817086234340293451538232827887483579979172622663316709740653556615750974407302768137391139582354057921483846242339024036883965290026576661348199487782166512954419024048728667190671014279914278412035914413583615863003662356371934734679628643041827404055663889981552025301441465263679189277527815152428695977958500153675057356618124600172228107416126974399132268605667695025312119187023692096044454023009929762889525317046298567430868158800122975154725153500144189452072296910106177185752889170071069907029703644454096413123781403951880006317973367972079460957830235286305302931799127738757187409262436710253559078908877847003399784190752799641494267849610953950406213907601418467254831639316008875070378089354155902333323193544558715464864006294210883334399534400121807202305458395543308316160464297921767904485090986820848087914620286671104376309295923681415070350984849546668865464021529339854157540852699063271337496425120127897674574723383945291901835295831384094587999890476658170051825869714097775077559049983673978388440280849365950483290865742778520299207259807376292916858856112880177196734590918659192424287893766428698422800848447428626808363276443730132317504125940232582708207372332168499411581298042369251242632503420159521458161611079757048209946358956854960256157917931455127541140778210459864616042264608564531130195817109997856419903823846247009409538684169840320992448925146023547324947037486513203903147455845013316586647440763662663476655748073063107120830497007008003279574548321951242731534785103920626417365987674610747797675760633066534919978388895286965966938046760733893079091729426647435832642613677522554764145609208052519029495416768765857817629161174371692592758232671943689834424588027569154395474678956678729380487594138555499138254641819097349645309838725768143388593863137439955037760101960711319338859150920703506654435296240860713678104006908477554148396707604493613700246352674232274693256768271828073337622663823459970850784785593200843063728098910387454084699685865461794953081072006204899480050368513202318238946069918808261684895300588562571127714512285365647362119856773567634458736940571205043578617951102559780042515872734599202006452570592107722652585652587862804789952338835606592885250004778706962088863041615085954542700919947870726481488076069122523706005096086642264281346859776452008494659765858543863799646278760742709931392226224954078201891712659229182223714316842119073788952353940756113752667432618713476418344539662619254825881826399256988580484982625940189549849461300748341279871215174795689722587077395934854194069776534098145518690899364733208248562987915752145721196387381240575441880407148145233634494159173153229594826979915455698058683690429083828986643340390118892013130371013250091034448397029546524413298139540193559386870666765905652269191696820867537251019264118581452232499795878710029685990056865045946008998186861976341010114397018123582373497076867441669908768361686305674989261861899124229204574710584901032728006067356843758652219010254130917383290581716707510204658907954349571648394440257852694534650195581235106069696872813790732592393149017887126183344965992666293077913375356056362305160631683524124313805974988827017520053070114815048041689788361725733486991195659363521973050600386009190494258203477453665815453733257481554980304538213205092900878432080195946452501592045884043445079637491542163127886042124752098719968162868934393153098796934095730972724183177384664447854576895950624065187040763808792110183781166706824649991377499966189409891849814104833518793668242377495078789513873377991158823963053295107353945848422072231060919389740253766570885596152396967929522598421560534572258385953675546226322024755054609377154380587951942678479878581757878636528596758381498496416165061537409473812389787351220123329625656397918979509736221275331432626719730511401276742155083708596174035192898548152579930245145338037015593329640718621875183020636803027640141687152258081051994322030090634368725755472501580640828234153391795751946773728849722968839570443640708617252043596356142115210095016325232799452567684936481777815718822944467053484576086356129663319065531634739856804441254563764329595389938551259654913264466654216549293214091235457482958118933935439180787523283214151222956540593571696033589509513054992929093062983270153676928035439831371782246627650316423519321081805825132708798985563440063928389624418398963807949049118963123763385475967706931437365875012053082550928841389790265546383151237141382152196328852307111866018271455413555932573672399632795209628150976566522752450159485019158328906773342736648336315110888194930218733960891683545998637932263981055698815395585317018688617547239431732749071792959375307648117668679074351416897241330551528062784348588229094059449483482346960186738707062035705971295617674206029189879604119914346889183876015828139807557400705181001971703623017548921615967011214047591866435422412378858167036783315263171541603780921121792239255117321635009353673110009649463754553726201033848275868624098821164834057037555908734669979434106639648196744307480232556592382507175666876813914191729460571060226543571387531365908346335703827028248976129948820147623251707806127335398388782292324559821127630792710826392217871162901485242308257288481474407078879707439841189003729859849235561524159099539480110579005779811453699563098423544827000199216795960239238466551058777471993861722936581541889110410288189395120637630311631020162800997429713587723644593821496316223036924168465632619427402367880584735752713452627341079773542573587602303315322015081483889828702568504761316041364704607306527720996618570416923592097151162984574904565614197854338357204738044131751643665482466494594184264855606321856984588626220764094545325052045035041812764189918237844004110891246629859228923821813333140918131791972544403699307213273552057401691862792146668235863228155871827588130824481823060674792585304543669729992011586656993075766278707116271247124867246365057030636492644761730275256451470454680842417440678377424036096523858073377435916041495864905876693267491918094920476304417517412456893720234089453848094412812357424151790455156660331071787483616737630285386350240630470009168586277631608681779139099690655088647178482282991806521144485988638187387994200337567807055702740140242700313001063548990290286026465695553937238062837320037818194347917206005835687721014239393375480994050645180400466183920229680198338200628872021763176353384456623154992805705602120148188655772066766230945023107567488068221231191520773649251793179334849480201591675123891305981752124637417708797534226641401626861706097595512439902884546348779005618611450358199518199635081890823376829440709690263266758479980361230594402091809929175480608407939171181104198932727878992449541927202507150627002199911034073104293331641206366886821381172677998149925956967851190848587214236485072821814080003737075612004284884042379010991226352172023697579773488694901241118916028356565623727762658162523162706490058344180534044006432745003639651079849313630570522328406495111900027699691020783807193284140190710330438339958850958161400434981919511282106815158914910837616421669893111859258999245634108205071145773238323035495162942164260072900151193708083828715282178639275289744885693642283571810038759798014271871253814914314840132151998726466462824024710034658806209928143330894201935358563861288616537116499322781698820414106178613160664163889771699800504960585421849599598346991083735882734368639336395288653139518069694473934298092071673721410368261844427386173890177612682880156076291604046429345520495240688816575007260498023397531859942184069568807441311918135791927277850398605286029086136569673113051989654486579038250387328817816008757829982117322131114388694055233075225038622891356550898538429750624344980874167030811602749065250341894511899455609583333633497893783261588084163477233676667233424575104548360160678121164976239013302375506542717766087316889986987554926765569497916640405620567387280618514164501779114109878940678585117436855227845322157138678762904911873521795241795674582282086483350286137885342616899555063197471565015891909194074656651167723472543702288863750896844556387628833486089583167539806819133396937928935832931715843244409140463453645606903288465278823050836648524834699978787635031166930496641425567149509145680265811628933866892042700145064321689736437983471280417228626259194562786524352117633258380351617788711275530537410460669633733862551458958689079489406300158520466436074792277881365135711726379852889528255574599160538102915298461276570034432176099803486438114210986001185121947387546130830465113510315730143088855177879675617882890376999816872754355437791882050116029828900926367015419217725943362275533299956260124665085579986154766283402680320295657319347629335654400214877636117449953276323823227442855319807751661401997189602988410960582753668706102246246774234651888425066406961007088917453360494896560951577185743424782692634805717660604017139232720438641738953541599582294865120974591688855899089607501818923674229430017512966882509667338380044925444220885274055652423533347465429715791367524068012556650228309531266084485472643312711182471929420666845961535658999836658995915002126140795928075894613841091085617003325458012167037956675917607371601068725603156793067924484138964803706223485725380311641229699871714302201757081402468054008308595749780101458809841884730924283399813458674046929175396040717925829009672569306536389311498991294802471521765826422412162795181604178034188312842132952379362854433560382656736644735162005900788476571808011382074789871103476835370441137181349910514891694431792174563303039851083240115974943461518139562667921058110480483211204741101593378912070646223653015748751970691626312349866322514876427108464531100157256767135594337549570340621489710698905322005136927759246402638076391657576325258093446060795948214283553958008137460611130212813877922337102325832534387429346262342360305002767926719502779923688037087901148552803779862054858518582712621962976073418482427935695901452116158050372882466654344973997153329724772884068345333260503042238920953553234128319162307175855237597337688366696461221343564362399060760348880837616075278484292774319446724928399405974470087631801299388771808936612326105401136751923925434821562607170900931428508000157217082501193867742519138062494187453433605359136248832055589810780963970461971931130920838232603837498113213742559427521656262675477601630211907400210604902498933431166473625543403653231694159448456547430887053179093942786051849278543323970213164222757382578422813743336639963234461572077636661695023765816904443346925350457737192531670151073423112454791832819373911515802908592977155704638844267624792906341228106665928133459285519434897402728125330929421801340407024340488283425757590485083519084099186082734836217554525201872629903238467735358928124791654265687857813541920782392207022134595453263375693232284590984490832271472528215390853792296415484131470026350392886515899291892265716416158770675055648359132722315887108263087225102430668782009410670851279280337187612514714092924921357213124141042245378367369509836871113286596547485761331079959568188325285398623287418484119433880624790619929708942580390908673600348974008703191726804223084783567723242630902817222810031636749213099106678607126039807896267171032082888689507799223394651014867004981038063840229161766905859712020732628627782288150677458726706339990761431085377541001442632778699582950511955116064913341378384374109504915673290490996837289819469875896852324273627288411161022775594041063264876379924003283538899596926732351410602904808369594551641593879609104052770623616949326714568631442820589871865711664683725308546720682721643281208148282342304844408754220760764268681469070573483399405464801588895024981109669039398469859175527372635809958115635783497819989340397088380129052956262806128723259339117948128767944174815591084639144833511837396808767237433720433215788431709714877689204564505096521967883272544464365025006855192493552889246522684266851103471937169416725554495503287583625343169193849689336419999339595569032144526813708691660983922189785257857392186302034922409139099438854977108073450581097134264232259724954439109416185634022117439650960931628621133238769311006590040559789337653220926462906853787453069605798008739514315908144579426800265326386773492362914319634854692170886750306317225142109198270678540809978159927870092149365371194401483994190300875617742877745010972195700094916878767710667336345048443436224648363861838359100291181501403803454632915523838197421987428391972014657011876517468105476402270598029652027103433872120763734112205490186556460610988977999354943065436749917238758450840107024099570439522511202994193134888320019891052456892491823549346871658431058798750382082959704066131124837202730728463451060965114662941730969664884586087768773144235518475677953879877967012500141487719036865624714560224901059813298590574431653037056651229599591637851866766843089059572830057308262708717060460956196842099587513059723813528680865864466337804826871275643372789080235986008442393699188334254530903913647748516022222770425032942179975565425598551783880569507698883246048679211009774830415216606914377884529204209254702377391149623802093142366518643416361306128498341473564475149086514061758538880979705642369443033075493879543392677129991738633622204352356247996419379750253434150663349294883186959909174971466900846793416368045441767047693873710605320308647169137489458003330346927603283377964493299201904015253200581438989772720082424041258347952611921831251402442056502444090718657589669571328705674983944411102726367774991948206740537920723011425502090597993010436273702954244213942669022966974449366791321596774014625344952975860087107106778638791689033927601192582418307414129108920320429187233708065270706615587738064119792217492715473814383613150857601117161849551298584088271531009516228787284136230708937058385217215486980062505099030435419318314239703981594368429516395414760532624296308352790411517870841795681771193205267417383689550558767407305088368377271540581363134559582880714613789665732708806625285179920435113880201273622165568397254484370025384780026261174146555618018347874575528040856760255111764151930492803966810749881846843008827010766842598619634884918572164471847776314384846263205552245815204157675407150019010989960658651868041342934036060584436566942638698483810906057513983295660789734497794467265105007712333503361430753694651269071105886078775144506950315519058944053109077790517817402851995715554103796342618057604980081493521544696198659778165536230370296060596541531269760000593101746821317681653527107565453057837511883015669466600154501889310157336299803012407840384457196706132650285739103049112290842684495542385209844885991946849472122716000115651704890728812746569180870942917949260042790171263351350676279527151069655548045007382825804883890301467982854476309580278442458958877890710084001022183048683965301383864155097196052436026418696749628371094093563947814738476943673276501872459991583201097330317089678384903275731346390353167475101515802721016352222317382678825260841634353747001963169534221172387682179494585617431750664175985666541710868869600154640943931594674668219329407482493873365967672458158869332070784972512987008441564408289529621423752332434684508673692872891319938460152084418276183469543227939856152750186931134369036844457982958454596840341271856648213305048853999864676554460859703933573019092988437520791451051811297861261606136621052703511095642921672173582199843503140306165640572772658337137372110111701648632182610358363157180475128456242774265980104268236645180447607565113708710843686888215231533727495574068118195232938943491457791440051600031567382814643499135908357685188549858657622100834652048031413735019480572009873489521342635642367228068635945794182208795773594976657942732884389719220284015430943079147525234344404256085337353316806927072490593665247397001152107171806735964393738828489497161325614573204798516912952067621380166918661205054047964036423596864244021886183276995664707633604725540746483213375606862301073289298843026248379672427077126418860295117459305614925222501621653827434011422362891993240332042374953562861276781123816158830002292978017421286022351422174503320654539825805603872104793962308054114110075165846295308346184686593266012201261200296564329556490845571008257858854575712412466200752806251350412047683719470201502892164033683571469720326407843436315089884218076385319127445466880355914071860626474103325383284544915614351348690113639636275168842705670043400168046629514713204069667020987723767979200182897733136926985839230751805974360263250720902409402488018632361788925576040153394203235971249076450328910905653766507448583440139961075991809478852122860734488991739715879775554511034450263055627142810642083900936578573566563416376560091097000775399124144904900336860664244804046660872407043980987902883958257506031696090059415289019013786178655238091791515454769222453943239700222637202699865200724994026412233218145502725480730330949252048699040427218861035621762377148629589913308195663134834124745522885144801366648559419692743517089230301729527285986492320258074050807166301927031286527180292984539894665334162015403188376964086357190844732502720171820126435286112370044071126095749247060413102540547705978702079217571694080240345660239232641897627296192066784487907854084199467518954525772470623859020615878242210653578563251995270218494505219438576378319953193415917837078405828373670877237342745422627922435890748645126822444095943097739836256413403390799194476931961131648833713395417483035484200042645698309319341158411362729847048073544205333686633705500683266171304074501357220285074013857408578450397876434387057937773513773987012526625156128672769683428357182334780801080865940309240082392403545351010625899105624992755800899307030139638997093573052222169009102005584286056060612013181261024569573510228636228911048464398767953990233248112547538811924942582921794975701383123132130657552942389488018118586941569761771725704610756677455653207304107354717569371640612865058981761965783118793279509272075236838802363893177420285882116760208461522274083859060901417968161245862722026752536094222836955696581527667102593595731694028760217432480701282089494168608651754700965324506771738693077970999115274624814742939634862904294381838610504509078620637222488812617523327798009386927683650399129807923855390038362212641654630120208992092761416266196364266000131456004319985438641067667306645544340814616385171676561978040906216250615490048201146335639262598374858509850563030886484376646659143201908757908596691836768088200587341493208632722358880979551794329634068524115747565901826020901575052401647653051377045732284439126513379817590380814867522059737257284276215024189209451768511788637661784404430933099395671694473601428516889350733572794444412289812254139315155881910036239588317754433718866976187587942403760189922537897850290997020440866810807269897528755688656197792143267928162118656118031768542719502571994741844408173026204444278855189937014084406066282487210956275136244105585232092517192455333921156105742846685087654595672621835589626708273214745606866570902719855382990318788352942452598944982578889761025457180543286740297086468056587704076717989305618106407370002015699094143189971713133849488452426133375376957193255441587668421081221325941002849961064411826387687996985617344473069350619080152042399105849263872071297373291359564484829073983614400046282723192424496766910716301387605408124380596638034915241520295416701468565858778521686141875046428729442379235372951609072612241673127347353344948808561648537268963432089620620996618974986271139197675265304890342464426168505082510407166880498430779501203174050339896883619727830708362348371456213704285486264648964694008057736424211607098685076591788278550331253427727247839644089855134358781516315844474383421144225292044169955619345972090747167384243702774518730072492698397840290652713138315312612443751427324020085059422443026081280233535851717485146016576561585806607307037038833119325925678005405793799205698258680511750178623875221353033798967491469824715044151101634779902695952086495301083160646951166924739059731869875900363046853623395505516117324791919887467358298281811196493153186862222037637612957796660714052463596413770285133494533103892551145550710056626148880077199304937170927886291274392778921037711459038273297874730074003326826011802279049039461756231945275037643247443914902950818749943688087433900836268658742684647633413096866405512427431817258213718193399154488239922609528681772910472924269726826625332787776995072413629860418728531874615888890990291155399839707711491304849152882371559660487223552497535437005162525777856610014749330554374438197070784631249114538363690418006735332231608857132027762934437836390741533182065939465679860001789368811873285217612553831297547410824734205872011766049476294877709620929509404886991288111545213255548166313253949963378152421307382021951032379750911755903472111226032598098757559609862603104287191614977822892344963490704006464697747048300682454723209557014305787691568382094685617925100123726027336828830605142525028459280703543325049309039826031136296168750712213266525452735089754790976844175878923644766956192931899960385632178121762397548822544510101208071404897871126228126785764657746423907603448470311399494258130228839925721557852293203976666687723724363384595232054910567714783091590913577149131124932719228761080094260772123504505702149434997342446375175645185303740707906550362527575048103812277604801839860802732520175111795964361946800817018077801390227309324939060951988044382083523570096626276294167672886803758673900545365819173823527693688904768129203923415719447716998840581788292345286557848106978020315061474315549560419784134216943003841193828430578509281569145495245571544497738672668943106274460632251901076363410416777563399837725458013629039565799480360005675951493802027693429551305082821513941835890457927806183637998987683969085289303121343314647933192061403426639336804728437337690136663971614279274292969290644808280455782481263522577484613168848286314963920273045367092018997850264490246017698524956311475335217702739422374996576904722789687906912507539469717308798740245179354712493102469490611786860440741253294505839868427208425983114954293297399183382319873990020847191998768724015763166865260957361310585077134586482092499039695761633181960639413092067188521918902365359858290066166318067408174133323009394551918665696659737381177896274723565041999150860327001005374701283282291026614243050987095859435896752417118789464445713162761399639896989539999337762375784588364204448842198996809141270440393772618412737950825722025697383458589833859697865912889807276794258127595128742756571322731840102029742363048370869320368696643682276418349451124635240486709405249715350672546092380005327297440329811404296106922026454657632280983891180073779686283202411619088362334292098045733710931514473879569677163372352802591773952935524244375918460119201367035281693967638396550655071525132908084707895246436902235493028030129148655651121770741230286190424744077340435096974223510491558507476065462372387056790894215708857024541487663038433777735413280882461703743242209910786439741250668461178130151686946822511560430697750463350568907368670487190792361204967478041725855510119519892440389694452823352229974349472410094907027397306086420648472697864275120704153822369914881663870635218773558084294324597686548351686470192462684382431086880015780349603020652331852880783478321705114973310034027465093635531511677803187368881803835326530855837498247763408211579284426130448519647647872353105810051721299946406517162928220545275418024194259873394504693259498326626224493417631515869569854324392589013607246654326046371540187002209601670650951028303764702339535501231349320595565892901148049102517101334544652554943121496898744952746311677766654469987140657806196907953349685117798083054660037685035158407272896522433252356748843901181654910306398320598184836884805283372474736090391022507993194982220924987485218449315670227785420052305331495847826783298869224798269934862603329591699193330322488967018038638053370516282827437819313393008286232657311690792669853982728653506626375660698575995451252284197965061375882990875283960043967433640270167863346533354147269205582868155125599107120443115267850109068197507723937852761653907144538831923548461896848096423398203745233454302583589916587467131170132618592677866808711928215462654170978446618483775927295542893513287883473276392682242922371521025950451071018689981985027500388431375243768228468468941431722640811002803488141269007885093340444336191862098961999791215216244451200700557345860675912146424503348644157464650256364428191395095257561473232773333965039676406762728161930202115740278778680729051153590253148699556508274021852494991017234048475792516235849383344502776371954393771641739952134517947302972736097468858666308939049483505177395513688645064932295009213154593085809751036206796504196044014843471709661291108889449247756643848291568021280679458857054718094155719496739798537951621063189250352195265365401191062961998552364079401361324430042606808532216706610884069057673696187834949076746962002105079874665416830948231061341084223375310551693755966844774645853497226677905126607074464529365087746383234517315021286041961205519418209929992166042176141719007174920758504359096410887284663158362256057069232406170155265743198872981084298950280186795438142705816000653449562872216821913778522863117358972781256149155879449226185772603565595508944164798207053822484630395463857354722705667795500524172105282547285701532698821967684517407935886026419142038696673311548514613930661691274186315883035955729638107192994710613536589999482806671000035177716323431178102185360240702045857150399967088355438173245973916824132336028787976534060948277028758574635998282687153201379779488738170711608443395634923293248029342781849393977754060744689344295657526530226332600047376016119582397378657771219394207016670132021921818361380513259957208787154954811549285879282393224431089829460924103204358140076571625794601297731731874264883324478968301960005647512530131582019940387394101981972465608745753559013814272256751963158690580236882773910973245764054377720387026163060410722141035529375248248871285108425654469849838331342672927544414431667571915309386182895318330949676022155417717271329371620723720334228089280926863291210092232626317519575092065138699032433219946956079147900130742330991080014646705138101945210926331395180908164096269763577785486468705486097366443587029190836158658040756243266709559581676014500535247947289345353608703023321983274607964038451443862032435526068870926051860581782614439572891920825428467991810710348348970603753154338402284011075309926875120792896226630436272136669153130769189504745837739338431435227653186750109161404010200781952076360208982003322550648687770729081767439793524937325741484172392507570827105990111769777532693067939426170789144823491357524206382022685111356572476558625666631114783908837037137385902094606046377728393715659985344329963890658411663445107196448279139883365814872984955931464770218392665515678841368664831863392378952945295053297006275769189370518175883795786502645805069105051370568085862024739663828658382199611393649420679245717171463168525295987671812201930846432205545329861710727805437043564529805562524873435726587805176301328658343768032343470499315552225795467282546424018394706780048585842273642254164883581127000573905846282172892231446194485730271281810581946102004158104254160996062545164229679662264693585349066646945500227098949531357626060597406858145537464731261238709653997615137874614112584304134905017139807784558354889736278195955558619368326378805326385143200408462703558085787890292363574347169061014287658681998851055922119607488666070280374572241779461055838697947479930373948884901611601670851589174676206908489636056877147866783085081247256249916754551789640622535478825507939214355479597957496115517329739140101005364736692787396411107277691525423057676681203834002187085486324768067631504847891592330511518121088769757447912646819077820113774185033420871215339685713183563866127256192377165194135551626037787040075598066448582829090797549884892552763557085642767695039192310319502626367550280058117804657255224963042048854302437854927989452285563501043095933185826320483455926390013218683138431659462285539867964885292465329050139553155564897352075411814825039523695843326312353839456157781595172650074915886283740525185862979329841907059470439978922298170860722929532497999775231247285745823027974970721548298790490966307546014896457122573943566013820112648643910912773589934801582007356341621758596610020823342888084623877869857478043186889717623427625270858460624273933090807563856331459649447878230356720083642585015391787672388363682007633176568504149532059293390065440274137203051286804686364910683806708986708217763394128186624980209230946062769138310392057238017193677562579463175390209408422525562468967257123195779983679332761622705009802932828930303571792081965493486771287319273914167678235256990736212378708646751141128888771499854682611595101497121478012088891176325849140219044134797442292232417675220743337533118512104150061100997590318586970655780530818746016351938371837524255730344358055994148402115858890201227541369099992385448048889853777956559775366636360404439640630447975841298039401122689378749606183610598600609791382688089208400528417059993947532531498676423014031318222326453433292462948135059849264274481989215677272630260141467236778245553676078459882738681204729121671800105609480726445799715580800336203179142898459500533923599315954348732003555606221890608671948080833228764278299670754072750423404990101972068256209171645892281655494135292692389822059718103105449156899993501095911108160953941201936195995515105781452945172347891828713187805153012685142572612324009767153642729698555769523363227575922950234750745384012764916105065739091678734079677542116690007086221447191532068475377965393500422819985081203983858964728734413998162088524764824140326013602135824287901723116806227350299743208300010857334356297113365990856209334440650962772018084706517391404481973223342024581888902931395108548730536574472367659111595200051777995757174879814182604166289110592715860090014881199821375501358618023199822866043542221155169527467987172420727397445080269382308688510924003602635957557560337724508390347478050721052380398411297515519608736994887406373030199888260960294291858055703627689453798002454720304608472901321829974807426798743615586172413143183378162259442420682476153438275874734153006377443669343046235735677575538113192212295132939852318314971334181281561905647784549629359060550297782938620759752063329946530996656856295752732269318498171269157110716713075253229488551568882798634919359081931677557803860985820842893238886523729742031040002041415521953061862364927086644526360761079756556632177087070771972020873793867625416726566968561342889938913878070192004730467859858928031192839538100920630639922334232766768873881828354674267303675551662423240697316934364838742580639197316171779523769370921798103057315256704694225074295012414208727542397036309811261906574615888245420131253639958949033709194118055756477958244368815100849995279685799201160947255238359942930712984269329001516788750806515907156482606130978556819414327366787311590450177744923553116655785860682643940465796592101243658781474187500710020584846710153001377562284872793793177975325746445283663027273600497492009616451795434924725899723701632917942642864201989484439784744591588050133192928657547942634232684521433971884714683719865023003120860223090243878541484865393866345177960123695291561582480012820348384233225210933211418415414980941663501664194247485139981560064187802270446819017685916173292575665320315159472294952259541355787572804286470633435717803641064230910543948812485286764298088551920238744083423983823094332809068099582916703116925567949364897343400692591017936913919930613519090984229085772005874713755733766146741627973408262560052865681850422231984722037785480486222985834727322246243234344455818291273697305339301222215592243044814462754158378023047150929381401784842274430994621259567958760219062300739115186379168354956385809814194853929616001193042061494927768569356747542239516365619232127128310866471806008032099282180521173448787626413744034515292918518539964266861120950396310908517864054485916589794387462888664239712353844282122583618086489224355300745893923078612039921180683566775752926088465854862179688143839798960111730817029209904032622702215337445895681472912910650669119139274591295979739158854590899926741726846194172791814570692876562861651941842210719368786400561725021186193455655218264529250434135049545563819912500575901192382230301504039262663212276787727741077563286391740509993140512809550806445096142797901794744317948794532479584915627755808639222269002491664860693856014093562505579341722536615182826641772403250269208489354345726036705759854895980219033816574518112878658620687059639656269588450731710428327043947137913570914015114653479385914096206825836636784198140219141603244097814050647566731307551132435578029806759308370902632620615952956902457110910037414037494993409161678692755988718089952451051953998899790238512667900741263058758188453051718729561171429945320869451650342644391231173544682919499623489746919653246613274533081326154304922450400480999372701468802559980750787517698741760776592879255848992030745027990739706880897712709712517033210596689606140480777043913407741723476848599198842968291203752117015803457895895640541398120991548124561272254628088868996198015040136959655128592681151035277864557589347862305629031817250883034145108061483052037571728507563806678164488252053940088083098791683012235954885051464953340213264589511288216539385304110414553453591165246839654415512434783085860671821961438241829410964371396556578813525511606641292077654658127442862728097276018220660783964218620064334822939578767230973321357472131858559992859467965800934584785488422942400691337847395444980400840055558110600570968467850284431585598286068882107441763667370129407317201602516369805207068116638902879952319609444212707823983225559444974822668397900952138563681761176544024640329764389627014670444416677250372218640677120393705131133680620675328008932635034562116165240543140785805253467351237926103029638237504200552058570199957780108998122435391260150216688448503081619307246591340323820267692487978953860548357620077819674272485614546478202229448931693700786616191725264114836066691489756277857422698875633408413666055717359226570012421273262873297580260216498148141827449028430563770651014790724842094215266785032220841905239369760525864819386521557993287078007373649533561572338377678850290205946109266152882781960140574160432459252208200858794786871384646179667918371362184126652509110411266943668357297631182381420473464726931027348425162827227640205120405997560610392277025237312929266814599432335036713566024108230520585182524898245994507632841758850749666860317627670642043480320346922494938930409992756948804817912101804450816459054735179314225542897886430236290098052459123858470053673563642573551890150899296735686932162828067172710285208671814890003612764934578903078950217771272164595905376827039665546370903921205977117530558008068082250490066136010202796771733850333750846105047558051905348571191417144678603902757455853090397123563032132367806907066776331448916659480878394669493899133214914689511944568947461026323870773462021900080819613366344858119156195408381504641769108571472487749951238640815519080705870960081350038502379978742509948050886554017033593197738967913750941228654686678928513264720516583954971471789108529544770169131722741949033117428775015256491054621608876675078202193889692808080163819081904649470923183939277184188274010752720347485218440527904017787199057555974404779140777559018707261550043777010936205785057029470897200195053300520869947410576416596019362627054515247753749957604843983779110031441823569003862129296455281281653749954678025477613050661415773366981794375817633487962250372400593699774378708405607989194786261163502901397761629024680062963048272964051763456451355208729120513858402003152499067484282596882171296461327897997805241444095523830201666592463616288770160793871132272378015933950294632326515948067690327689058388095240612104129407533990342108192576339106470539156654670585530584983434968519056419506383602457842898858615638408864150264258810734180538996638169881197645502592196522936725810780378183551248027356220716985921797818704158552768979207412773233827489173692908058540993621431903437802153509492981649288639909493436433074414787614777271651850866736537522477916539356206699061605214186826300266573998803390288920404509339689855093003726530563015549899114739755996967785239883707704212863042862048517766018261190732267075073149682493731642648955136652656595282411572849655032141121955096847849450207107756711207135321078624198415741373842893089714280092259432495650370307190228970586552878367003416186406311360097226568859927953717503742051065741229364927116512347280582684545063767555896537989897066689095928118600865228449044800800133377006527239600991320420951548273496351323647804032218572137920315208181650471105175855635669308616757342398967302101031415955149250623303731571090151994934050755100234144179903773060809071623121271191307566316527115866284573440517619076503192926219072870941791086760441911238432168625522523028151943247200985541344168206594955788058336259473689616745635855222565807419841273785146097381860568614278442051211739942756784664477333939251777226125977203726474305065278392840599914864426195805387382612305714549194678811228287699766696984712406804289873654057668376632717977085095801158892572972335471819918386913098574069025300718961374840671015421997409069074127094207205628965054175729590372487143075875571915356408606879024270859190814438061523333532136078251457803411809762873068876011972407897432543540078038654456465022845638148996670084444336852798234817431453391061984898640092934303431774479973265809079819240615996952564065211677354361393957494964707156478407575501501004671182518278283937806389406274397739641834021101895832024695625040594511365097017388932976430674655173161597623510999459348934947811159578706146383564500650127526002162098231985374320899162717293226523504368006690148045085351408782948401483722082496136636428388986667968502973015850071288159330586454615382912032989173806877275440701329528512644646624708265533901421531860199433657238832411502752275864558986775041650195897311989283287331307315557951129130997290703496308852192469534209873970244409350273881628955846498436959999269603703943181194057845033350747691656261411555674552378274164520895218490623598206193750366085701576607145652700840619253404634717284982817188803780921324289736989940191802958503600711110319384927627979855292158357469919356900412537468694680713068528965614590797042937073856245560069386998255672027658853235071218454758829358475757725667755525986537694179992911781153445099579325943831392536220566879405601047798630515275786182143576996257887333959598365757518054744440393689749192442455365234208869833460495227721013363879311354331695845992654088133358811290573879529565460872963366288300088106271196872199861151237539867094151210151691905480319002907222456237424584610904471387235472041540082696363603911205733584927976528472361321383618052898440553690692920248307299473295501730534570157600466258412465286192798598945633427646342813231229146889411865229222398728658480907128121886341178939853160484000037996272903374744155494431373093918808301404548104732131288710456902811623940904709755239902504222375956323250011492248109021365952730626487524531660972118652875258070971894148808447767398753039375392857146021927356836365267624053098610613296911627553318126895979183490949451677594530119209494158510786615665890658854642850330022903128328460359368102014743980953657824896715961457843155769573675567053099970022510286302364922947895156218276491501078771497980375962483018713877311189667398094982663416721418394032479388921844668576655973421704123414464188381454823681090374618069430286554954221346115129076565485718833381449955969082122892260925822235996322259070842179629151693219176927152362168510436716055675332317457428848798339256484973808674508409261019131694508608366060308778294661396368064710257673866923471242429935866000506413322199828353585261442681565086776131071312290122167584369027004172608693763139758274386649483887905776090126238979987418392930494175259223715948954742741747993063749462561384193344568095273667291707520548625873281222921791748441419544188831231052523929472701652612561873211912521487148430309434116706443371485111631039897353248417908386436048073165690152371659443096773329328406292598275070055615633449489258033415846368202495622630942948235466090052952565129499517315145272763151278395861637659136820837788160535752449390071920965995966977044915226054264715079523223829129257144303288298265610649071107957577715841258389171468575074960466968564043874861701630218662896627161211995767195139200763166124902824889357704837691299251387985818985173891499275670558719654272472649128261719622280969887259667800417225751146642311056685402468706709279868208547548883761299886098870333407476439060899163923208198151731098643026074281677935914659411366920564092565652150396544240325215988828729662608814326223544510576287634408058404934024175304898701993165472049805013158732026408165944118718841350762898424975135154893408125786227782381659074386308571139689101346666192845535266767691840101632908493806329072398521761674335696477826923854313787551112313664174930362019258959768340761420946469646909586268062101217715176171640484906324695575714945659213371193734159393274488940184348289536011110927483877718061808204846514350788613184543031019402024887676658658227805934017292624938603719613370875347115893192737745760032541576238409937632228295415723774822058001019847451281623958861871714824885474422233813845317807366838804294693502047234561436533070077846955051662725429544099177659052362272360501591943353925385428686771605208912367469928630574970630413232131462381092208970484609214455690118874043704772519958666960581867286692063036665942782449535958141591333499940232144863620832221728564703788510813243305331124559624508147484133061156056469813917623163965037168445512846226718335873103202203143288986509079960445697830672585996545058268420704090947964006449780653903111824652482270749726113369580971424562676753961289552098924373656494359394364393167409301862839900916631960826816132925094308222314412819555596437886047696194524172775141881156593847775238688221322070927184762718481001548215786357666371678546797385194867340286419593339293132222251138605096534591599124474290570472311066178557440468461498481980196205888956358521660581455049292448778772484328541127104362223951636008813637401594605055654403562329791634044614043588338637033389263068240042167958543257869928746717759218828160386316188660753111068845108849657943393496215647643481435585441527565627970551273300525666493112849811637599915942631943523522082272687563805449917491389941627507574482516060323138690411419828315450085710713343994545001394675011014801357791200494352734797456405962768381395320218015093827171103844508532815280119386272020720762994153573007913985065223453629379872612146608830754229594758644076239676649299290181009238760740079287277557925814617039875653784475360904266129556409945006152171139131647489128188258563351859617448270527015299283725560156538920511070126697721657408780396920044944432173312439589500829512922586453805747672344062507505197097078561801266626853879294130590178309983295005192668226536368915726889178384905631556679814035228843600426300963817285728072258500117847545830784391917407139320972023659893423080606841295075919121648017789119127565734871734757166533263695691256313611017533963936515073081704164793542418779889487487762276707368544878009042702814244781579392567460707255270566769628397014988520587019021861549912613987312638439426217580536791099151521590031169921897354919805337189629465146820338398092922351693462884406753552456584226655412295399878522464168968406255377511161224223811164801217023467770646098210095917780214579184535766597478944689742202537719548069108937155736836149430017085263508818938847319950045929269639539635999187049341601040033383891288616170975452549448450841548154898627442534093026485247872142821771509384876263426263673902830007706726966363714876776413360462215773206200555807405111680438212980200948531347709475665718484440911146918876988793023651935670745220705032636918478292132631718992395877192221613087728505716186908978132741044288779045391440347823773750468861893680559903155356939944069451580561330991628750417613838709870322893353470408913181040028957328617362135594888395080698736621187489687815985161471391202882432681164067327270117154377667969940093696999237209388857304467225012142750326855176100928421285863206368144748437845498224238646474064459126239232070987315717160465788027240574918319641448755670944579144422459391848643236473782818177716841954569986007415727220164084024924026160665390093526502037459073177910616389753137353397721857448914138963708320186141355006090165795805119475905043763071527019887679600251365624711267561796880598783854218252083871073971188279781503406661743195650013944238654147474636744058694375133608904068439800981318337047624419251019543356996135407667882522817603640514592453242454317501636049156690302090849410991815650401452563946544692402527457406371536579593518916285785081368526145712099506757342762665134778678506854723887406595405633746114785090810246398350289430806718144280404752158915535560142225242415418304570485646114024017481521108279832928480744554365537579071253200578601179529489054861860478637576604034083407655178319267775932560787812766804593287215190381548574054934974426152572298124224938375944288825498619279857379731731421172683576054678919011482965008900500816687898985223733177487171478505677799832528261709092052145282715195084033022258778204804804097203494108173888575596915646817480040818301424128096761158607954991853282597496253583095535348437661117656508138916903764475119632025091315411021473384489218317028015500589322624298889577146474115250361856383264074101166220019489459995143577357744879746358818387673172190689932735680311602704978624562103672252560311791701140096695280818556692637582916722834000313991803240934113751338952841286496673043762031919487528376791964126951905170693377326292907790748481018751509024789006016528763132242735473861104699235071400130874842395333816996337954842648780496259794266999251540196630334278496509283993688191317245997634738031633222572035178336388623702767880448610664245103805119677504889442159999036274276828880814383926016086772636540317793870198607891890427735054187627011865069197883232010026243925050766500865635649494526899103903721546480681154599965048774247951188129130658393053026575043099360256329480970553537306127311631366478900963847809952416764932489803668262889093774154325841829070438446776408921860391474497517629223797783085849184347970364388028619765304900423293707934989905029391887324690870144176982194393402986038221232955820031072727703576842556495500650330443131903293988066492681165945034386861234658234931501162478520077685401065628187607630073244352339221547195659292434092722108733903696765549330965919919810225461298893743338920884578558462249841188767650285998057388403865213583035509709335626374189022523641993350247002771411194119960706851108257021776442707174535071310182842958291292407569756933848709328342755381683602557869133174826845616503694494117096832992897748980303037229380781074707400060623822803356328195526658953162167902280227040297483056636956121663802945994391363413475018271171087281468595488015236122455887680164813660106106008572292244203507012230978949781137387929685452915197014859437308130763438093879543937395879753205478100650107047946136741785621235345805539162999050798764672509010517135308391127079302863583865086002111737781367330729058303208713793289825719317866716489094379493787066018259548500287727459616514497120104009028138368043952567184274757186061392381614796275161058272808686026945595191738381860182443628934696230261691469149383176113551525687605535345608245068802375846417424584774885328036779588858548669440635904958005100831236245429491535064860794367311596211877868412433574717174562053304204455783730406324410198406650133324996613962991345374093471652097837505894297598606495975634908906199442130204202841421653434013754966116966704676715158469473908440100542482324298342059900001081920296779858917927385163549171241182871440505455409893235536522644053621623591160274300986571589411544800454105070497154650032804551505979285255258450536443774204830767646621087360190961830206569425252737129264868469586460838762620671344566579199744320737053006981184226502484521784484324445148218736474101574240252083300796215684110817733329186564943448250673146700715430892975587415642120170357818204712826583970853629061348100626905546565492893406972873588213592432941426864638952880714871499418623370516166910398196519968178448738831226539255308043391852583714529445677191093005341618745612277118333430331263357521383972101654869152192961566933149287620183019147707263447699341537314673970269654455497049282166248017820809554548732631895957414972541534890385346860622034455622860436012872296143677841372841070211836008125622379057361871940223117326449547973951030298156326354683044998808597094916526817368081887412990182758348446383018495347289007553877384622856721978862753499010452405441710071756087853939532738075070035748470558502181615768627089314252773257991474203764565425661481178739068772732025776355216305158673424585944925238530201381431153649325626625706768683852610867196400100811775086249192814091322700165756487462648652486399776288137626414654250218495833049777750603088432709676979717154272391648243757895917289298837135862262133901167675709628460509845031555891938066958071169459477842016227755783768839224930977739191702866121193978879528347770942332109792969544062718838060661295647110833119305933482784369355997023947966223453418824472304616049679034730830282185753016538809808896985386416036748125219633553230975123589046770004729559061022760243103553548916663114105257801753411972532222961159438971404851784498721140995241398743994874186134480371297618881865555564810768629123096480844810984944352821973915826817824054779006451741159391651430845554690258580686941336621300341220723545544075960889392587384773074254905551036773919521579752519663480567565714580612744725402764354817128924491098663606280819710743721308512693206541676600896947688837053288982489527113861068538115633305870594818281087678160368383697769870980693129294652741327665558581114517343088388036182590866365633271505885839506581025409395995932024752597005225940176111975652970651949612679040902092995876721629667567113943749526563909569436565384374323796512659709534513683414000750317214472664436052591363150135743680831708646340715971186560952840310072411751343591852389950919780927473385208180300384073050472304298226169200679987674050650071784210549298966758705111365214560407372391381504796880304477484985156818621290763124734031526654850442805679590092230979693703562205941923595801813307141432755683529802175291514223027476920238277536755443491857583788075307956223383263692963815269940108162233104038085668161032464749232139170643412959423848054088630038426955070172116280540758372861070699637417768713802696698257849449933077342844598532248789482375540771043436204311274112471645211956092689018280589998846703083272492305831649126736212175292763892996257270227354844195582794718757871593502013264023304967052403695630908108368650215412070253684140144892660021443666813337482296945010740432961224838712852343223364752265567559760749809045520906485619262770318450716470422544494008194192768501822995990849305514088846432314231805535445207201164785053195486457194400560049644193008393388534177450470521910343299400613448030678285887797594094698456639444453147213234588768514517304637396246157584561671601713671285127235450014664480045259683626497095141650239196120416553633219320315724970012433626075445967664623504415783386129186196532352481042564301978816482204991859519234024160280759217216119374008956102091282226926750669754234801942276879408788923353117364363091565882710492530018980983696759609086706274862558033643499545045807696226591215148768401186031956351596947797006635131903201995303277724474283132565366408714450008654595153283983995497146964586329580044236215523539711834622620417732049889638763187248707105961976984292204385956947035105781544358489419705557873575889217113449120264753127280008235973594375295364403758829826258090665052766670122498921386914479219872236918103110546798477879231424351067656832372034829626559324024529055308782064892076157607215725491162490048899097924195017451579616334194969410481953539389075890395097701062450344958356387263963143202757421988835343198747393034180526829931307066729372203926057874499597250774635513218749990319677485103480650724437499627339221104321030547705821010919973074868831976650474258541208659531516222658066663664192843688759711711712939526340717129487114779036946709020866423659367928137142537056570858870091838695029947871210506005398003374122598722836442643507213531198856299944664474566659594534685218826590228243352370954116248801032282653884189206595023259255054655663258151388982016081585640142400535709359503322211310200441293832855664751693725023901888969834762573922800793109477153211136398808494184953245690440954106090269194504890058008456651750131530227467165676493401457476726388984917071569919834584125133548674173945083195689322481357966163685918532374124497368289005419500504611076796386672643735576294618301594004949145544124934351704366664634731449339457757679192668980975787233361245627853232102449585205728010450108733822975113639741331536010414739633662392123082751983500393094461941155651056439250002757825097742969798732063635737706386810980392339421575445192095298307514474183220116018220045010005800437683040050404460237626066777485336976295286342597765392698404397044748259081166801791473678592438438643695719450917310992718135725647493189366174183442187944244073496497059565065767833204395904847733271254318331465466553193740417648371474785508371109835821504768363722183631108181359395548253677479590787533622922287705219050080470475528382334453275002086540520927763858103747650109750659977691811974244711037143156656129275625427479269284154291236759633067790640479096234329530525870560911898294978090604455514027377258548347843838548425543715987378289861743486235912041095571622114275625103216409784049926251970053972511144236804264872086465808455098406207904662060324724610788175081683755773380363594238289431730142989466954599367501598625552792223256532081450752796659736292285209044897530194568082719084005475513636763389927816867980633276161809974786985153283164257352809727749900508386159735675565976920256089328403138003030895511546093290204462627834033437833685536686309752685727240718870356336826626255125135273271219623454958981007367636987127227851299294033688085638582616467386742719595760067800003012733421641666611235626297721478743245312549334089130145386600576149616648794158769836488243269449505668264452557073761823618295634434054832163053385607515094447808148647711972438805300572734361491485839068368791572855974020538270944228777205336852364123767006048184208171050160305505093529502082870417085486025195751074929149133200257543650084060852956926747930855048746469715938121785602094850885074965346586614848242977872261426316060542769430015797476664207579375326791488941282437825826837698042816433742077296371932247333251230433997217373996197797146491194522687115827280064546223681318596307475492179345320886443764987781922090196481414343077858437436237794472959335318976934895483709903094921894984622292022661065265315283850689581595461204380850843567512113802467866138196494292988646281010695899671971121023133667078128744081029873297470025336214570612223770232100292979567623491122487091563623386755794846760647282407317677983564678194712312170595727767751221554326906345087652852404314514535199716877063812169388171020571678493456042492347769456771713871734626711964042370120706959580895666686796943258764699226465765962569219401015927282019520510262133201959491893118377335475274675268394165288804956273619616983338532302463106992731215646976067935333644220850326518935180707770115821998534049725212886635947435456714905061698370519264927586157478664101581313196322275968489398710431186536615162544663416603233762744672506433670322280608262756052275819334029502585431898964798116482182970580670385721474107613027699817195325536499320945093057866062267986246802944842009773437977185957904090852532512172905356234480638062228229408604256668033094140271390175408007671031181392977898063349014765017994776994744309127509507054857919343837702902284103269517800882734235508578275724942120196239145302503440449790650772345312687175137458455578622772822930538119430520576823791932829927319358785425866300540864763528756415322524384881674558117481993765489584724083011225859626982333839526955920865354797184593638399644720176026587861325800160628146425964175851863740808089338911924250588054363428213901667068135653878540308327520523489537935568111183736822615501471299634941652127788904615784133420741984587471802728684450289654943870000973099191824719960387706146084411014836528156352264777679309372732906939835173226392102445307831898160063571378085296526275781549295899616608797347999803753751602224519958988118153600958068294570405876930518656896418781335468716113458711640362135341533514424205253009155776529013857259129019638989506212142514455035170611106903939512954305066771610907676529167176474041162336184162836423766203407464841972226978410261757118143843803382534717959991355468571323812363656045499661771895800124570702261455872021901012787502063488205404317222002656755020943083442401415509036501543675499118689605144070847752892636333759368741166817735382074503511854606878802784787978024950731059935777379206484649930182410014937540627176421169208558048558073677755106642027027271404417091579219650665033605033548809619057191678586114472701608306528783596503746334635539290148911365549934122134717164407210762712461093447966943467869049519478176036292526149411907974030582200478892280425671019490301934692382245863198594210281775173449099766585892378223946062587095565792503283803380377567528432213279106684686342770834436769902531797992784214828627812419671336066358798192672069402013135154389572893211845817576162272292420062153891248287813836129772350234072722025225485168523962769699058284185598100947628676012908250197088516480534293501157110473087618658442633045008532427318639281635571681296941092817857558937038073792605275516805518335367956449694577327190987139896149490203997049777507329422553829382238966249861576289793074694121257677724401698048994167625629553626650562372888906230081567483693783826578245425821457272477398117570768188743851893969947864466985833718418537288969635441420629573989780170989025551635434803602450163186543281740143809480839150431224726119152338632204253537934083953256610496227547449365165810346982911474771150713822218464973337048319083178911301425542845369976371314180962089539196726731197304139848012388219708258582409301408218615765699597052179106366426706461730596664651546076993111733882163759915364834420075333637998281830673582565274878458769488671263663771778852042084820898015301151271538945989717696221054503616397741769580203905152034921083063105325153924229893869761143710740525596226670546197041567321816062753792864660286416086211482221238251605531933061680181885645136612552267566802551975331755071942101499253520214209142869931918625710145419051252341683413138793417008749723247248940649827420666357731298762869840388330378395940927106649529713196926488105286167831000787415199447600377170292741843491776034186659760367282816859559545914785148366033098460999475772202136794794544257981932371819341260148744214281474876242398512611703950353310615018380438832343494140278086680196783596921901526839771168189160410750556117407065604014876454716282926398560452938753524920565933749013943199453524839332115534611948458514527299903138870296721861873183249212803020948553109067881841196408599392719510113171553816649183838784465488116773992987756703641530688269199403790602765693648949500323493046298704775405964925533289371356201527726673173611940054746584994812619725364624745863067824554691680969640731383962207871992507343865419131857226089023094351348244272166099690039831454807513641949144587926675338209238542576541023541013432187590379523720219990590620211386887767630429052902095452125403014545278137323785562256251906190206254428143205132740295515943109332760559300714012119856451556901937470702992681561390787071032115151447805845654775300783451712910164496114266263190511439660071289172158635528708655964289163893712022600318399257349260848098309432408012726623483856699270977215443163844112660508885235695536242587772560758106710931362716890577936750538289396844384863375194983888965380226245369207024593630945149422694124547351467480229013863585562333059950347173021960795271856941758251203706296879233022907791317123382352571410473732170729065987653251412876777628871828019070718969511638354558287490235939274664184414341985187004565296164229842963076202636990600735206421196803891694911481448034688125970777504645163838069868216394420337522988348751697432275388833403046618595143886954936000096702320759512784378744134756083336378621471399027860291871097315160619476304311445463653606379573186158150759973017349039591344153272927774921012515198274271907642033048649806247651338717657737794836456846179344911626715236000047459635751728974541275557473261178184676076442142351610669843918481996094163336753903453863365873026405654948534764660162884263048617405877220983484543350790803459057026571968079791828125997070648849832703500578752334817602605425778067364279657116388511462598177659000429369306895635644579847636391133149785425585782499439173777489456938113658894169046824796554800420186402599665059398284914079223537689171132815596320706484759227125228840218490498337871614620932631660377976389153788389921403798896660091799805358578540311324035657676735156282716461893142606355676327598899495786145488083164906551274787726492130888650954589420214548057975733541791161846768202599281807739372547838483355462005710706247456808474869136183759091328453486247046304183967642589396593752861661018338897197958470071542514341755285004522041697448437657537952076538245783767871431882344629443034275409330035633151487238170327894914154658185691434801375186479935779371245888356379212756119942646941524087173899659004139982905923547210631153088711067279117654206436243344869604058496360305357158729334000907266909747655358151475016019357621619468472887985090798653754262339213791847549791357060481643294405331707068860269169577248937180257294245123378817067768163620005915428025919899738437744456210685878836451444234361253692514985223460332963649416454179598780545567391630786810466247663850021116793732256429594080678951719487454656221059550355834968637159461762937768959112918449903978376486026539210572709969557969623114039973558514516054972707569267952752252036616341610165679305149824232986002509070471625052018592760527167969340334560255971310149171611974865378987747558008652759410938897291994086868151481584919879111238037934504474519450256749756222623760676998478130385220108987982793807958774443814429445485657203800728778440668057733320139483638167258134303061552947319756148057009467043787268064399670412819405942933683741217790929498011715695214548245044626892770407492422563041544064056155758091323042444615770591805597781420580395708985721233860965970933976059145217910582993865641129132430433251173755323549931547925569645032310911447801673536484671567622475458658956092437744484372832422140908591461455785331703907815628290728863638064674908111452329967847242053229672920792379816813171713741821422483496177109380987365741319214487662834985246511839493144950941507473124015816714177446979634733553158344429102294174455901157507877093780518635794026554244322011689097060590133633467090521490626148613043765454697768720138180473364869112099904069357735240943026901151876860837967388110961218531488995703788013904403504177921969884903619336071789213655279119754701524678611244340458547064433990484455119865296619991729550262512569718193924611483915969400780240761086918254213424753916105474419866915088386991346465641920592592415630738463863490626213241595557713502534651102795790846300365559369174064933971497115897385433400139588112491937589141530123342393303421562823861970374102241414983474112646566402723946997252987522496462600650096845926465512801414416025534158611097077319851280021742715912841987522907811366535770368125215269303361843915847331658918869555434999157663417527340118538209955884954898855950066937891971051099664059698057678287972057524629750959050568236626285242778490843975925544229884273951052848013264216607010828121420015086368318774946494709566876071560483296329912393716418725061860834126740340225517457898844793072786958025523480304027503496929826019083643421069197859043009899088217810239800267721524486964812667194302920884949052036316752399289508952109587531723142396087075856871173508457731451108275782031821260469235218141403376257482403145920613423065407008664896029494730061544422947033636167907356793883497064758376380897761154748898371994124178894233949563240031707852917795502018463487569277710434969654407720400964629461563921710186455332610554951578937076682191590663464981420531613522436509086090365661054886714405395404669659554112983713225960008940441917504841499429354076450655792423336496600580816603547654948191556621136727072740559434972206391118687697466721222542637678329249358568698329848995449399767844154691085881111955858896818462471570635688695814413359051506132947259296037770604396085681320174648401682433502715164956922839390562658987421351418517442159158971520983784501303142361670856589749670858974496623135089167893126041909993515408570121192851013364681432851784745942355752781037603385950942474500099926152879369326124206039268793811650371233089748296111679762053001406257060349687318370727764814150927327118722451172656239059027460460180620132153785077683869233290234651434523749695387541661981146079651506858538613310288622676703114593412642748548431665610674664224051523106165953563747161636954784140566509854787937086128414232663332658046912406635101349593391463640000556839944941132747279964266380248515521896204976148922302257124923440253379447674979252954403267504384729394614409919093708265273186339649932091721264267444632591778854125123007253018011651165778105204389586807769133432666014363877040452016668801825627080815966609424123572047231052297754754575944036770608431426301019638604766320965739487415887524026335714996775833206503159228383411961730512751296317632240398406071018553522268530339450569605031662838723079162198707051414953833979934525905507332359055510302385215201264622002823331710642777107691172396655180898426219803015757581220796426813945127917884148872598481955809768290596208648685571783557469544094611237242151313822727306517575070725159369984730730655416999485241657861131493832872922305616376371388218759934061266221664421309941106460534116474750104077959427888756916463248112484917731747307103387287784645116142998022073385991686605354197812373679523031196953198140636148139329766413486525013409166938840348460212120231242970276712502585434382129813263005013094975323741779887672622258766350047270783201798797685144463672671422085972020315526553384898639918666709635191569196958926053975925383543455146873820067952255830427511838450399058892524979916499633494827293286950372934590090632281097022260459226330286282667453401365435317115659496698305881916833890668783415215788760547773190984363781280762706412370184620941305903813636246103859030254340516469105345077179813088453337554947561629191806775468078937437502603388201501053480346971518916421915172369457259598821799532285882335099082954134676009611892790361787460467596084736329295400348823881435159079557393990635323889871988850528394904819167135944364546737707722987627851372928697758122930261002843261864485634412312196957556950831111038596044575927913144961230021137640359852014031874229521423278556460963947663050888625203802532166850930102369936678877252571744828941646831527321175235801230240780568988410523075983859251571676931705870619208985113482668958524623404197752112000846457540495418572726171943314272847152906045238730695625985497630532626491914497710498073305936248374340807893207798560884014414028211183806914353483436349693144330785099846700514926035134572152022939797430391876465267543260299192913683498793396612828772048749339721525576410530379494507214736429856564987162862419857721280084258867931585975465822866227600244513240801201648948477282977692596192654305111877011686067642877530757528289779652615757371530241138554730304930693316190065562084492215519612291707879773391559101794580920478581916628993500478060620910735880249647597161942240096823775758499213507482865353027598287567968719932816713441224870272025798763261960256322906300707277898685315693056092449292986647311116678145414968342299569024244795441669339322291527732881221996530765085556975035125404077326477291776529398680561237272494200180411872881786500928234527018725454205881704745037504892941174535801245018152701241757415164261990607417403625567917865124866763808508271824907907849874817897379074383424711030886085408363248233502375213581427497816787481677731138765217046374350456832890367021305131331824362394313395918355348167793635548783914817906174439356873763446313599035673353057938826266773238970483919923228807006777793061834616465700529688771045937063126675995867408559881996366974274629155999011744029200548045293857400566666227823652712407187921632307714732516734121505272275114979157368653444382931178071456650909128219067466970490034259658268927653053465611539347584033549065999076830967236459790947932007983586837908656276052821450254591241488453688054499343492152239749966870256333253510247363739872547776964042172824073610999144149791343829479082564184337709710591916703322019719790573198572858384388330775954385688532649301537179551633291260384921042706178659926221868699539261941951480010323104208973794193888049223221908866945622307593313635785989172108274042789127014873626242433619076577930364842948291405601240076471167750973116819333015463678304001106507329360365495159568950330163001723244145081301097455089057357708749023621044425895357581594532379418045780860885380454965488004464028418994615405348619629739426670637027606113960304645576283717999318351738051784426134556894365566960348437470717374668743987110397014265346260362907929267194671666822442375698714021411061941711442233514929562963368473850374305304124174672260154512646515143381943895589016476152748995607448900880058351842256038049945521312691216242903246000172216549068007071695913648320017826951721663721215548495200942496724273429137814910920033107180631393689236285390110638876514584364715295308914543125423162250034151317853098744325961114857185550739584608121527226046482084012874108159800453025452584882321892026225634382123201686410920528510907632752342309762563764904205428823843043487366997141892552482705021167423225133596271116774707932771460262702569521964647853388032630071308351291860482023937431538400933612883401821992216055759627990705817290540140337565334677648820731305716019490536565809044183240513254522177565972528804231232169505262723244049152743644925012512907379371902547022091365264961214171926256055934007193927725582040364581189446118459647865794506473925814056038020610566955726800426905676393713020196087919948642344527804522938168234553521030204042344553386998935575160996513889792737556819337942313440778292106119216859784921245619173769044311502530876428887242508451696319689536759161726624576021506539311072756068351517911544194167710139358044288196766656685519668873980819541751949572752059129332939830554322002274768919541013556778366229112732222541320668332290992781717735851726266246678956228716559545543549371683728210444513719173924276871616726443482447973813815726840859214168866095878980840667356760605139041642905680920695198143409827689074625006585041194938613684264811272568422113646613147152800776260070632561961836858516413111179204737991196427837013762737582613272037159400245823673622321467715261685807956325544791987526521473643348035729880017654201016997128534432976644428732105055298801951850127296104965245579531006111024195218758859976846823575661629888137633742896612578259017311344195115612213393736392719312920750985269121619540647420742802360286468855545869631658658263234588982123881969457065480508510007495718679560652016218675513940842074576366011190261034654945096616896492928940320739954304513806430066101423781510534315584535763925394354620866173603040103620226311441805848037509226636172335379196795910503120043106459626476391016092036834191407278931432542599701925632689965947511521912451165894777551707469052779576202529086811796562584338332768110853058004483889409363917796824492342116957810744679049407058684465442216302627606366559290181883520611497810705267676973336976527059812733063474873342006997661666957670883896564394450420055632233758150096146585095552221187334388009603230080949332103676623463060805028467804202460274946664166054085219574662602838097082405897074980311860331115933378903961452871493406867045025627744607203944795858712745894194957765038467974311261339477032486298445754439889175592969099058325941612450883126935674805372742245329364725668704592680705797306144413878677975623305312341437152976372948642168889205998668460612885283677636328336171839758458614041467339975495102902210561489358860181335663505335887203013482173285790182822619206282301886158991056129602132091846571332299083240308233980255025009567852911110433619544305294190833127314013571338182030853933275433402426345131561063253245128540875659564891305986097981540334498734159905461399076406325810867200915556676879580692100167571587286559477970001081414331045099672965994208145045886323861113378654695621790009555755226818023543489277753455444888159563642677063592794574611357629384644331989252397459784881707455823318288246340118454332065725335328087498594254529321991932632929973341397296757360583322172750851664460620492422196994637680194633152186698840354838413975261487160554018490687347231612952036633414965033586297373589945705679146899109340878418871296182411257917623570491131313491181586356451605813132396034720560256657398492855298568941060942296439072783475215203830501033859509429387788864781825556766550838255921396822337909905127431698501762345336841357870706664675098373215276703317055656933839936518940662711981633209766823162369590863808066785386791937242799819794584158062700316212128138649232298302027635492446415087503794296832387764289608022027305718753961870692307510698231852596870322725647882018933626807909607063063746292240068786360179581580038679768298613133133007516645419615977394431842520060758571038273029088675950704936559854443510234960937996178994866033088113689109795528248080423567056587178969102803077573998379448174794550455572377704632869704802159439996610326602845350061021815506477070441110544214157535767280300934005392394789436236117912744305751342968171965832500143077315193234543739843701838212171387814214991819254823100528056529431308261657330195457998385797557140874109812828579698379165014938557941330343242134068515184917424379106615144392427449254428437972576169699071495221310194321177537808507000068058513720046174371830761099574791056364316669769752148804078713509101006206000766285609564981806550084088480036347533988816183010954109156182154613385619482907884293844967966244021111714539446330534203344239879502093060612597824406087819271597910919020692246831776801436489910531682953042763857803499327074939270424543706932640051798248828164664687084092278232851846655405034577070964727476345154580669138106610412793948044157758957499913083269359371334670163170158351758056642007478885011038686086644411030655347305104316684681073715302888329367057687337170460226351296809107972248904772662484772094836373346672621656103176729809577684424596776725950153615485375582593798781569924804090042668079287634289060455955130120692074052852946519618700600516978108099224540562524126068436366731763666419156487075339411270237909195577573934730169375926383550352942636112661823231695743482396243394375254663579620782612312466292501314402439621380092738228232383047016896057220554422421635501077538576867859788108408173469787446495880988451014791140654277814339607736715564716873513421607415546373848936726090288114476963441783719168361116108544164216609351471623710880379910539111596930084178009310064650573555196729554738347697458437068971004267847916716758685675105178419497874479710378074749305140874613328027205508824611726538592120692165118313371207177627869660621721681383708560226358967034803255762719270082174364092656563168348145739635223805668998409574205137010230831213639260047793652938757699826868210794529812396779154883449031039189968787012773222776732101907712534040647220486138487778896603503027042761069368433781788279017062120126301531001783328999109761299655400248221941235192131494891760365440498460099377112895860214295741523257811313230307133265115960160045942817383024753729959827894411963943814446908695987368751953599332883514656472935381800661959725052936059058205182724753616918117489621549412123537832579291649045949193500224128454769749116558005233937111035292058955773349276073822972346270846178425351542866854135786904005565376469278769311866206953003665692363429705362845785822891457639267270822394615727839121567881807848098968438105589848842903376060542336170295814886348418840993417468534507791810677718541753819897731712550345955230490899905139065546973825217011846555517542016971698128953689422953240920494577785731016420121055277417752247186823418176712114890962244114641076677710346996269694717848568047132898814087678643121548463526382046744347537995699721635108004452109666994121963329275861559861431115569166937653681291563805890671480554164638632994155026576500034318071053886568960055204893318580985507250442927438811154844420118697278131740119067545352816364741793164263505686559059846998070031311665548959894193661890469024422118510582951293127147983796315323309923630758089918928438434772365741497990769840840822081683939277832760195699317948468969549872623650084667431688588912408130681190519686617848675642994712144920730277562075441146270646079342290576097868308178053931790661206257348741045103391434556615428566635210051675737846409580670002948779719146336586340821899224014614609270999008116806810128163700985884604571283946296279030308236394628969681076445517360310069777692319057723798978051643896552493527305731346613623835867585804444633584142190238894554898859814920185375033689235163478276807700372562875155309118393184263012849657394663543463505095122193151478462364151217231155614256782098612846380635326549183811799361659978119544344960002277663841281542164553780908544964988296302289549441546638417425256932084115357209311056088434716890353884502295740606147173517983640736138253399277842515286207663233352671978587007483718528203600642128966527742755691685013161659126965101824973360577644988838723524372486059655461087205618581671293549329449669212135549025393809609636193456425364657456180798113529837283652585365209794066477708965870220792479430143666340982619466549407136397487339497469711158736190087612506102747643468377539334784651048856938926764598905373199337290066342460046734150526652292465231802406954051389390900812286764584621795954465589500817063233165973197220667914390213842894040922133829800319270687665468853032377803989749839971041588572000730756681437269027494499440228647886719470105905844064910484647134205398295212621397550163718952282444155986120779642037775472177467683688222546857207471774963333103759601077281906501720708346937593446073233254062401843149458594706370903848462797520589961182876226084855020507534598382984945731398445032773066675237258149327796212459779706202923824901563816214488738171121510311603390959535165460739721058799803037172178177570113136680156157515136355660519986446239222642959445710609040542261598892403723965820627099381135305521969985764822063508799951000397337632706108075312708412025797971244312205209436070234077541002089993868776002573038945166838425236294651283425579342441474961617292300006088565026749015512445581532062383111600407581925969826334443408971493636293029132303799832135467114614588872699984533095146470275025343744809625310475512300271311027201156653134963240384306405536157891646108738554786346667459396278238197607746072716263443152292322841989538617298455731969298497274575976812699561978540702084864363219442773579308859477378281832519164141618731119918834506960329183163446847408221574026244487635974153548687208637929741915315931772779370527997289707707276399642171561806299267272963103387207089656440751499130532954022073844198599567743160758685229295512182375722149913974763483270165671979299377166808954173469922745120835488659766793790898867354219375798721260211209059669764966851664078440376850510178179845165921735714896313147715735377290905990670490081133938297456280571552721163397894347090273160814681453824468503354525300104761337730450878875383678881132135283595542600884339611589553047757047793172704231170787277299291557892952991167268490411210994485196847347112047461102342822554589800119003580249761562117453879708127802560854765068060275589247039398973996419203796272843296687389463365078024677310033981788727078472104470594568074502460998921145247678987058445193408645131288495102557377702576936378282507421712259293520886476746697971401905653480888407534698331288896781364849584266471300392034377879153388994761172559806071222788628507051435467702123896795203958976027848535726495792459677204553396635666498028635393311763178565203764185710150341158208678872571042807382179522831242133918197582247788249476077255592710002206911953251203354168385658998702833007038436631893927584673996910163956627939105995700757171894076948932775865746346876733576117112917157360784471751020087930294060083325505579950513208127038358877384509341189953041575325558758832827594788742781217386396038032238327551273316440316909929607610420070975520561188537684006577626054009372387824258207002856150010771416633525456488140835270211901717579303566491203252758203765948380486895972062018829253411886237972627197136137290189096291945385408222945404658618602390115728649872313270270381708200746940398856522152838169998141194302120131828024258081426979216213553568397944300630145778879167095815665824160358552751329057087561303971181172378793912310138015186100812626883355852969384648132228538383453085704285841879288407548417896942573504375675759968398156747127183504231115809907998640477626050973488746352649411705146461473276420873752743049017173512364505875759127536590478229696771750548731138855263496598368375007274073198192055344845587869024902204787935260590651312012024167289206868858927608809345371234566499161460183935783824961953911058765285844626208387301474893659101227673910863521812734742098373670673224934295845736261146809714772635981538156022671997350273248832646723201478559680529604432610270489233244454010536899093970820097242393188290120509022837862802879727012823092352875131092518437818900305753339765538247186903563988072229075569043085375848717406493661051737322488555258598988936044270109959298795726352604259603648035864618227407701277459666224802379574363116889632561255139064578791413139383372413920129340213615198469426151689584663559572685731845212906091312894092797788031290007537992965700511785006601160331072505026523859796686043050840035235371006223649961433459831249855651890237136544862330658228365216942784335980553628063232871761620109505807932282250814867860945297968773225145550543357836714936011207323165526189371409422499777508568867540485084189135718062858094718551275647534528730064887007076360228155755015694737892717503732994044642997497626941975193464063325700849570581449852490978995153292237909750847207420456358743338590104341955688287552866529818845030077360519092381276611936366180823188482045866149523322204361572414784631430355202874004535627698282116067791589308392617051798804507229855012015785087324908392268964453008831178118205001475342032053041636538343357942924157207543293152924499773612533898860307598187873965616985732725884599412176070792639718007666556409792916150627876457740078078650125202684616076975676233174950736037779143522962034298628104014554502278182740962312523065469915167679180728179589841290355708188305461238663080190068141607339206007915375805917190309163613883172905227490503841347118840345689806179858048549639121591661932232413600919810799199296813338822696855586216590299961447360143069534046706595402976669874304233506561053429931823772383013374310053166870218311317477490271637171826989352822927461121345062907663928392051142895347362134941707184118997209822248146704023706601612997597052338967476586191587078421095037171454637483147711180919532165373486383228596592185794613544697040493120845035398984907565124372811950298663711478472328276430215870248091940737522314729856665866438106529914422522305519247199303848769771406006645866365002870722760581470251411835783581795186124266830762143700633411445644976028674847089369767296398312971338719684499031622346360481094932611140145430097073087005611013325100571642978023939852251418245751751855021089675886621353351213983057076180613685314811694913842215791891223099983537498098185547973260244812812060377094608448294559166743453350228348900734437844463426913202192025268274615077212724485980360819113593236088602253637570626427948010502206050739843071729715423427504888158141754283930873390414304871794145472741025944977666107626596184450330642073525715955526881568566910636065548916351819703105557179341575847368138684763125397142358862573180175453161692745400274527621118349593021612002846614245915775510516022094544843075309326685225808878443306937316687441238623111076821248667393921905477561392335118530604355541451396484465410217002812448153375427753872964693197247062106610588417296958712272895805442361301659592186187096498543888466617307655183550653617064579078143711190977821412228039574377007938031062833463708803966266071897656206905983019873917473755255419664350339954308145255595718526804532161987064846025298670647985582711479030650174229639650058613268447354382780420317200395398622500541468916912165290898272120573071958546226303649949741038827514460291733621983539126000737058889409633892902163988886567145880039265960330117575993452337189930792474066691811971312970457684963207163748398886073133330565270548870293958290629349870315055135947486540456073014142300526083279657250328269899598011244160170255321702006667565837425654492708438134172261699008822503997838183604341877333368362940652071523377691807713779897272383759043073863642600553663727996141360368617339390700334152314009711921870977262324872653815067161171269971523888850689158302290921079961917208495000332022013851494274914717751617715138003983799684121224106117487382450801617279518002212678798565795709721683733755375199113236335254455050335243170520065047393688843048959844461405613858860292316727976766098279990240553671579488437365495317115642877979212178119231359437940308657507347330998629053851961145730553883222091490652449529410274169356627274230950872760050124000761812828794470285813868252649704166680119358852037539892435113034838817249531075655864854135189900716152737281645023631292242764977316760077104827237392305685631393711341426149421500868028196858206988102599851918735775369514362382680895468774317754315315239039191480253497486949192444153984924107371977899044515301677152589240314124746279767157170039007552661601129536829929901165370093834213641874600560450367337276123580194480218314126581719291023572096841577768182869588565733598257516555051291317365139741415188428489590224354936428844533572239212906332420814600241095481245676519196095798187388684382206764090755568332932443685930396369167464959760654769999395470645351151199192525274226557179049561008134625110879380802973574113223487696288711243145601164861793924483588415501166732211585687323581807296927243846963540412682442830161077733909443712751693232862579592413585894642872717350617491160220168830445977511077521239592069125351337862379636702179657169736125642297504038843416824818703672504368362476022833233774367127781566041153073616050944770715602046281352185978033564741641948041600923882774827462005073635922708919800688199845412915800786299504207376394944283875948509462486532383239453832829523289215993163804825956344093563622419614150785117617162752464414993685856246648606789223665378733971150651375228758634970550374601151069866171591056035334896196259994122531590366209017309341683513616955531936355323897912651844539632866246852307255075490263129527579983769444240869958184793018611930522505814722141896618523212898749079776432052078854750292780432247434123788050443341237653688443148930210803604530545899982214039636699913896193272589899496135525401662014025546993841944234759281793824689967444771043340068774596592134527247308805838588635915998936263474399184114935653716128220426083379450492863465421415913922862069752003747237055521902505853550565361192569259068325695312668844064427632629476508798102859781346017816373175772855854609883357462686738220981409061803864211748514797095180535306475231866410380612206144294108871450713081416305505801140146994219495994089078729108457175224694655985064066693053362376069657996926386166390616460541861337082510505219866999364963713989144165099869353076326934701293173974397060583659581164469689462020009975367655505662756589901040804612588768818957645559106039691456277920202052740643873350926961180668378356359951678968253215520293713996575928361973810174406950631024555910315880875250251996784572726712421292384962080114752735748382471622146779867125853950734493075386881275166495014902035097942376262470530517850444928558837382330187599490090858934674510050869876902082182457048808578713605443772616060937342101469377411272597882254539561464523471046212842375732305128334537725944027055137064040145893665272050689609322431556570922127863898806821232095573300137366202094468554898536807870919758124568289920134110065988477430156167111819134250698993451116816514979167201784208785160026001394713121967996794340344081633930456741242224906949546490668021015237588374941489830735730812056810651634456830959699025173403175121850874341942620162606450212811676039972942599848612535763663455002811602269515032347994108715138480903403171769778927078461106933270451326777875976101463663565554109049597343509854002014426617201960004200722630296697627461154454579797684509404627620697068693054275348328332855319708782619479869773496791846214508660127508254253425583147697793641231588003322638067378065813887122857100902837893820191032007047765437443070499566208773357534955214299308215258564375978406977373510655275394503549831496730950975595758592750674854183109761781915452397364439833074596827799392766310814128510157140614785248251390305207754905991705554418569498995794947115545122286289210016554049771722058141546163930820737780586418791967187701909235133996256339955935847417157087063604171683249692052034608323286549112257747924806519399543497703052112315234421734996741954307741263557447165443110923345992443499936170759132745789495763192022173163099929887045511307978547860380525994254711827446553204739637805936983531782103251867658748210450718955068374932426215334408839680486613271848484369008304871136177507623808715880911786422992283404185524430427964041116637359510873388807462850620639383874769586850368757849875676189334604149941059800404930143461860896748904006732536353137699213258612789191291576376901532314559157133130969732109919396319289665966294271034575091273622955564798360265371587183512873058016036786901788439064990320185229506849887043828486557582870058415908887710094149515948201248184940454674922884602356096145247848504214586109079099008169976152409611270160251093155919074295229710078816774592438462739898188285867751025247167847010847463166284176393585771178380239459123082645611932350500195048603167246494541061860847377352435661595246304092607959670916709320102054052506776628599012700967405991769242971338518051061474419534598743910206091839364474647360665984448302417833354733029917270522857282017760043046514111507336658342170465177161982554244381741962064717612446253948457852538407377716708286222955033325522175418099432511322152937860978805198640137330307161934060329280642379000529052327012909968911804845270999218968666692309751999408390107978050428583933354005972246653270513490669674889813444428448580016061340383400055149557623567883137118451780741663736490658353602404360777428672396279854764900921196335305752463535996831413646401429156741842456823071246500364209020219106946831716739782860172806504699281523805311755364425092308816944547824753351712571651369969691124281871468810661866230062624049541060249672817151205963467482278240112803604316902824701642314855687004560297252790010115698255951802311005509989363026916396648780762999377457703552871481529014859395544521171530062033406472673392889170204936612007555909114760129387223103566915656300463706044827405220847864937585552077003188438690987741882621885653741097095868406984859673479384886168275233247248929079346769516960424178043959334121840942665556474856441008217548446316387100294149753486966222286039354037504860749850898033760278735711530613029181451489941465883474071830873375618727295468076850088791789171878409201527403699854486228281937680656831241870950971181048900114039697594815989512756570188790014199016544737853727025218026010023969169112977216090616800421974687261228028157832435354407095181855311452491193487818874606653453444606062794962107730114259952173103553166623088240457175445235318662183711678521028354251583661853331611540769984082088378315282838281025566738175628890966684673264238655132840562291218184825041854563110283329912662533208143239460958614182001617489764156258188849486750752853181388045268443931288307926916384496416348420543814459166332107895659673763561339278593271492482347869976611493337634098158426889704136893579277186351579825618926066557404771958388699817030249055302526833920911213173644577746928478881907668994153963978300466146288793814185445930867874786878271513878327296588724433722999158342001699676781002433917996317639463330352555545104881215833192625637277950341226038713478815348923838595885301507224311984599994014210461899785763181359282488326090017249729418172897690349493519450998542175985660562907415711591484267323570919893086676846876399718880495517726034517016201955976066799978652412489673736865066414140011256975283843337335119137925092588441930079700217143769414851492322812015296268025838687254442078010296522103009944611234471815426134900923510615001219437428898849313761014048512029541294523869283115879599331379296941665111770541802719188686077362737764152470346764618891755172204342448530251380125024021748126495198608490256752272675017638528152747019958783360854812914796591750046724915681534215061200722670307617547781481244756362070577012463420132726525596213358912926733094251691479379248673966974092221911561259351693590300766611027919007801590883558329490570663543764972736360222988145259178103993852932647333626859919370483379873272959961398103917981607060014128699870548484599238768595652628186372158624377741755412524907864183116220282954626653768478804221620223948356952649844459715306498779685518121154772553831404550837087262213174117326494891891182742745348689285438038671555367953775660343438163854935952164779656238558109515912450171337624914457755205898038074237396779299628408410260967243500967010084938911766533887787051442664376980782206724698274646111264630423001281851790504962295880806117719157425653423326783794896107080405353261552724731307291035439071955721082311881899364178701734956655248997312822548910206109089308408781575804216099649826937604791680084614666946647473275606421809773981413761459244268929183020891651792071498966915444270651428855504582213396863045126817509820931509769590637912512296943701383066460525943592465006466805491521784846326238711652370233890675145150033750119692991412890775149267002304076771465454090712658230424195165529204628368233450688226832413783485536971521055633753586189891346561740467255262492538601443848965685839973714913124358753094514651144519018422125808569958361923197385720824253886362398369716719882308596230678003744548269890910509781447591321160030914841672180746724928891089282183741544514020293906668035054650773272162151291767366189325542337239409838309189199640861008863885848330557861477756321995316864022064645157298338221751907505993967751720574909581525705099362055846055919872526479193620696227420743677820510854295996238174570439907198492232160370677439838472408049904536577569786282004741030071611744952525065290224126899066601520133859101587718015498711016403825849736662499365841216052719948371124699088397190688854934130251954610991064867505251753007387724920604629112557879806629294371929833842321884993566346705186500940967752197793458172578695738164637349877261228979445603388409257427157577455991261833029338111264763049247471422232510032588585647042305007730555632968691721942468730034428595021045290145408644796239377291059705355944401523498441450137360043747710199729655706351324231559065257987914619381054862692269223658388370758916355243950590996345770795833381247764567247556905865483380943300865731624927904239735484220364973083185404652623441171140810656033207154499194300836333087937378977226138706401149799849040405745618678884670646802730145486801207851235445007562188468921661711976711320867101338816800402536150957868262709543727194574355752722835847500992809724137984541280022429243207655598278349138959011728151375318078225059180039413867745615231744536037354088059953626760300399855057694982750403904501555351743145574684807127215656662040288054790267436655655505898630126755667445197192419783354901743505743917893495009917735661222114782792459260690264435421773134071937142480025969502669627875081493111772461496891660341750678350328610429360188991858716847239055765826855453723938938546286679367730305170023357388323258123091535607246959134361076907917162430576404239939209912761804096933748921499343707975734642494029048304921629318920726083783657638547992656689006085432476549470670043261459757447014354939342727267109317572162906369306327270845559440569616036955575774113474782195893869285288552603461296525888871256786204285635434190322720205108318443648885732196472400568929473686227754923268857758773870329930820710615525033909183743514309472670095877169993418214174640454758681206052112579846593671496239855832088702563373114075927438497070811192479133719515104159616382782715001612047538640829278717843772877498774927642939644995121565709492124047243504992977643224686656347836446558269473374781178102722321672456174392851997849188075475690850385375123477587865242778873893616637503533246055227101150598546525432149243720991410643696443016557120148433875879800213533680370956676464557833868173172208707287217846157506720200501954909197969160039088401339052892489230109197475940632675959423176420952802646863339094221196483549198206252884965639760021752329591209951791627900105610331409660310727807763144748381102375772677555740211493557709548533511374590042630019518926820779628213564863116272397440801152192322501148728088267270331872566599364681333226539167943777728675355780337440513685622742539768908933449436206059229109047264428468480199072197684131437937482204138206909560107091974343925335896991533896349138135539643387418020634082533590867070929011161149796631587812236942521150204606191843860618834784812426352106746302719083909312018049551838106577207952636702818086806408432499884229161732280752742075101198597884822424216361224759441173004546770390586749977658495224724961872589998341635136246962126636834598266218535599400408105041800333833481615333255137563951764316865658640658495412444814083508717078131604540377488161459357398125101623121058372511852887024294522740026093543527665295186741121221755644210172430604806243622658612687371118771649447725797451101365233051344173178241682572115686565587505852107016697272246273779620144626863538437538893301079348060477317032501307237449008077440823959554101365881474770852759891841458560067329952048488446076413887072379215203421649187580935147485349737007142046040792796516883218371039713409575033422250898044586443077308138580047277512634640944464369547952037592501892056634730396692496485747220416565591591420236759833958260490167961736766592121909508563895104349092464803452763874604281647393984302527948695281465241584025318694670103033545215550590223139621536355604927307441736482113178745904071079278437258071070426470628892929488642908797819450179590154844935312699895614415069259849234352222313916071203193702006935590399103195011419276994594621240023638687358434296364330508027847114701806014132981528440124399810603906527704417771945538025826568070482162801658488670658325505612996766763477506749804585117885169099064924798291410067906804429604017603845450713248464153675877885176148222733016621150772895798188486994080928083005498986454692754005393577352526506801502496133517666133212906227610314416912383231171434269409327662629708580636433042467919267662219717143847144881782604466473944067782554708881648598455393636309410805360992259065868953617428071758266308914697830034180585549131707558481214539601992031750871303952733893309577990694166815709006855480055135134004752656198246624701805702175348349765567567728193932827192793725984536118688837591570342895149110486805428927608241438623741307504181184363935650207957337538270653830446940258468638757064102594954865694011387972081504736251451925324285439502816587803873511429750745850444207100007041403857375365477325150196041777244598158367180296174465584761279752255140988389878990531719973645959751965441449917231120181596569151483508554164526071727877201376129514539477460541583728559219517762018812654911162439288577631653972746321318188049604334409828119415648238756577816558963763939316347675886264377929833591488365242628547887243011673105425880317872861564329566349362584617053224127547853238265770674751521315013633496036755340258109048942676879619077552664898510277416617944837590172578517261922700826056616030677474850085366138845200178453370798396765235274534909627063533354696967658208115461586334801484933476611739144213927091904968323370069354071656825491778088384043599601342365716239403470752612487669426459923555453146927544784732783645243022746519068654686106989709140350978697972318424566622507741566586475747065830367001971859732492718841769133687817569929086057821457420310768371917529426871121500153943094000550170448933318562136750942760417647748296439718247231113542821883748653321571738808704920099189573258903867223477957699557448100697973658250739370652049700382086706133129729433890494975859747630974131363460934443622309245153188830647173235668926923815614856302959689621498528332058407751104178123839913210261772606180034670846766507398258206703073785746585987676216355871266552601780858581077634680301090495920693053315387882809009792268084305800487467071685636023157111673493408468423090301450708374449746203558568425644777689775208466988565648501484012711922102071424976987540953591523526321036659767069997983893051223416454595351841418798791429140921990579122268325592258559753287750066947949003656214189062536817723335357108255440427184817671487938496721249762423073110435514041972346133786335785357375272944457017349865435721912236018546638278172026470230157171511096536988703702393600041030525141775420381769652677039517224670354679882449185923474392761743537546468563971055238310355598762800516155594328932940551388893633178274171914703135643788901049462332538760786938499189123353438910193815632036768127284519679111330220397577599508914128134962367140063434175285870814963702923741138218830215787036295040335344440000449000665405561506904911620720734075853426632834885659779878567064265955004728992178170508817313367801757280037616460607456874515523004323564754647938163174136400456783114003415217676751748072593129692131678045330242414148452795099118016437680060954705924218667183451428980163501394748299198530692159871120551826150255303202785408676625105604291164645880313826933970499399553350923180111101369244768375466549912302798576715274926802596379718825648210179219008394359426526726181592288949777634421906035519146991094669483851077109503727178908162353570611361079249727611205143667307914960450260388438825625948306618275974582023479587327627391912075867100751150957202978853496103436971566939154902966045025999051285647084447733213268441199611982420883940117344845061412771949511387097443456788948422279241248741655068514694389190364689184204900414234269922179122036895917720156550415984712181302241830381647017657097228589463435908693342479814327473912529187910835571438308865813157216984308624152614013607798415849158801949143100752271456677433491536265031325291493139939004006874354260942253050999697780998696673752638359022761205743443430722757348635653014455372648679238315087934289337801448587900731561421655964483098161041684129733682238846291232426134138689196131920262440757138050824494782410758924568759884529226825201282630466863909324556253401042039875419642462894666752915665340345272775551397199632211075011303670575223777682243905834850809966448616076569229045504495419790400215806453467866553569963206128558696349622229768723896530224412666561261513427539007560265681158591292952246640408054433542444874210018633577249226927925763092253193992908392229581677432912799084063603013517353054556506710387538227520169919540136180374233655067611335425227468127814069997461195350002404249107612069379553665517528581562051087913099938182243254154160762726491123003169094427481700181946318619327933290707489756844164616530119040456448429605819105497218209154302602912015244214999985408086865189532919877330071464078165553873185697971451024666462692461444038706384425699198371463142612930374245011294261761825117906568610150269123999297231918635329792296640387175031683530999812212951909549498881088404760437531139986587183685247145344539039849391602709633691125630342669585388383767129105988202701226145140167835690027030856347243725399686126401763469389500414866814869127750437823589011447775638421662009353169741564643265029390545119233450200144238377212317357745712364009621491597648388232379344339853671072322217658906084899395165944549753469048116069128641621394014367926778642570837124872925424554276856050613955169418836060324116695337281230922391959240525106866838419060193960106860376648410122031641524921222022500617488673853030123613370493541124019881997496977149619527147576367433782799691724510590807057208051474860678373931889645557400465145498911146700710191965935368967809152001452022497336934679757254627216876774861568237920917507124128289149864271756463253369322470580808950442727153985018630585963488859085530001734314453221081591494378826494634022352691021564912853983045826147531556285057648060647279494202075084389193787078886153242893746473240912653002804923974937082664799648510470970732606749721493746226639849575159794651855210685581515532605372482121071545582488078632549221685530256601895467379813732146709331971310145662279642991332953161241375603657347913329707281599379879390276679225675498766857358235535253892395664914195885890769881200791100294638170778186744794506865571109009729962541902456516951803711927628052825670548357106356332495144529040575143668079602048868078179499966801369322469835786215135502683436603320458324940720287330288895656374357036090769636754767229238231538254179564245899805013978980103828807550263360808056716105260724032870002545820411629890904506665603960612892702846959799729275700345418612048183261323995862601145646941249735697362123385299383967385047920418492685809957001490904144869443035225615379275810461121260840476526496271619818643558663881350248473891410560518759599112999378614616667964548709986845380591672104521608740099285713654277450034902976077159418429491192273592486395949241502553143643554315747028119089341818080384090743631742637052871628647231735709329131131786838144228230000232958975820504848792335119255122640837358522642906585388520979535656763256151208708443431574559551169732969275960254923735309662013239206752548417645181369970050882352678081312720033290530486506592371264199684782516723960889627970894426005190602889372672489040789013423086278201010519633379995930841699457137685348893932258298898010619540215808092570444463396822865605749798861974187081205094836603763469148160975937641135843725603356338721632224554481375839091427772819998828647307465031802223886888569154542565277885418083181357771260921823968507395876278940331161146969177315509108707115976932144082185683303970825527840985838262353459134207398976770460658443278033897424192792752966454468272948265579517555610361247322389749722887558835403220737245602455817425093502139724907933596243539174415197090975912751335844229117952252779888755077446853888143093904189390937330937950750784617099366137930360422135389756032951341860421450146879642076512931189804722201204796926510034717201345291846452710491518034663281481199549060838701159409156947029824879591025717459135313991684918018807770264509750385488942294870928749330620632765365515920947166665618813064697974900630047649075809969244198503005556385919653001141158527640461421378798291453827524689278586909428711566070105698570467804558165951824956296781309258825317048788833608690740314143606666772916860596188518591856467655649627412437828535840131517526718053608821084290147259503881567755287306549270075883133109745046694441324572164217032187379343246694801961109328672270501624958840758456312583960564928272260829056352635861958170082047811014112229860248235239519336886266919388754952112063506210928407924944125866326329474688646669786095421601482031273940615225073463550786679923563528803044637784403096260674444591354523223898462186901896190579880891037262627827650795319543922829195801590677107459835167660375334108282952496231571746373164654912129424208628708680797052521981734754039503858306579411143667007052565477126268388199920931693642422993171722622700009143671046747371412350721587710372465913025160475407513887545027342507772262159189816043920648685728808201673101240473824213270783527744635552522733857788685156981402474115059930054935803224999058773805194876568728788068035414409049340048607125630362024414117332004295014533829005977518322413563041909183858027185173034703271614544885004651666472953539351892916022408358752030116755339796950501270966356124963048330958071802401804987951417890279025096080756929759768114912757624437267500034668992582072129564464357490276217406165711168563360894200698029220615906718155654658864936766552063006481491644437332713800258093862667256644123376378164420308788282463104322746078892268925114941423877184011074488225800380485208715663787735102724731882204667873226805946371157375080807044434886519061445291882596418790211653109097177357503185813380435796253560139364834869885653824001250912710698324963951128103177618890634188446018271609473907461247939982911668941946224213299648546249268351505279029625418858306765034361135779319510896202716965117063020998779715306661428107610483300140709688600130788717734910315253230601564576872798842950959417475402979559018780711877415994522211643852950250688734440815761020675325629074609446921690924327178583204733096882653747915416156569593293593485147479102299424082473792655416313625348020701540936653922379529632227700735753367907946597312305296120710125864641736233890709767712926814122297494740144916392949558383062627201442529665595677670937258653647702805507017281337703186319438991211733174436139265721386093066160702689955238337906294683669910116680326349936883151826459147703641431629339699815564898624144900359008619597125527032885536047951119412106223537041508779958515469901590651411751780395953419829011990518737304514012880242254991116050994684003263164483545081527040403179099302572416764740482775462052451374365023612850050356170399791334161597142961909846910668850462403609765670226928566776062999698412274498444963183361630939050707950340019035643694056585905170556634596138427408631865169912202755589628415018798109433369756913474437774932346464751090858069442060799665060475646550196988947697356340960193523002146561269254189068657652540476617077978445145773007061455154783911320522561648963695838916505103811162345720909137757768166676251346696210053150355773887062206510102718594572647964258336464202960212169678546325406092878802620946348450524782589492044338564430914914123253060856730981121950608220650613651324170869403741488997367561976379450426934636158688596886177515842040403583130562808585830714816733017170103070851373726301963892779503043734351998807298503199274549625339087062880698110599384107743318294187211862367244383020537896058726300254656429940089487626058145873370291975942183430131338078338184346386704326663330648019527416709089396948228267578591342859900452155950349326648713074970567306729394703513743930020550815634759757758541309645605912685285764742643909126551521969058422330005971061646098316110471857912806319570966274458007473013637374058481580134019622308412632641967165881360179149081429210788987016800736163929364431876894877450592308375696749576180159567865721722955761789436054694413393698340756439261019508798891060357597775001814362958852879246198744723717599958334671565331826360156674871534282931932408489449708009984112111259980324378146826634159346199335643269551623481011149521293523298785339997303075472733215973939177531450474811332944470719620709603791998620767057074334984674875242677178517389972100412917896569378599946889274813000575562065059364053798313965116857450852455392989091900566216638212417226463080686925245513943851308405027444608808982239437898293819800303465865795025628691554200671010774030393932763229766705284209205796155254092583349630056133477793189390153465031917251053275407042729567655426483809327809505159685460283029172618285264766273216996850412622490665686936079497777559958957720240128318725838913564079602251642969871750784279313243938649010797373913469504908530657137805030588031161173786479716504795104138689020879512225382154752172780649362083130295148637519513337649885927926100279819942888769064777789253863638181090067655677428035546652437432713584452572553561950713725311291481007164543759260898125387622021753305696926207267557475293674327633101867162862238613202422869068514748324299465840670154437589696528080708656742088592434655189227422511840019196644468379758911118939187754763131606675486989083636990049651339231611088092009723815715086629901948891586011600616524599069820026447457924211318931791696185302237365443102762470218524251587989213466267561009421627102735705656823836113021002750956107899468814145433935093256193303911923470943090756416029970634829792540671183214698455100730283153744926897820427769106006859982296807168960289869951580229942060429499463484418753432034391016675211418917907483690709802311808325399778926729805146625943602186990399270082597839290467880598534080101576190864431952096351156924945819865166825103209307293704670384888286077943059270273030404995004288206072945471545604280005434465720100138113202926356213530217156989881065959799883958114088643623756842067491813092579745240801937527002096207671638936899217987915580629882204990351117346082058499009236884667619923612013118158750596911369874064809308255421945509634956825790226040569675003109804891771650164139025356435600427224851743791923569924566919699017977512882404550900480718437053376095874953022700411855814338126425838830044405593878009193862377549401803258066718063870692051366992355482316209807682461995729333892153725452601734942022335741436659134561244096880252815498980844202333644491282991221265691746848349290717974853465828077978217330213884282414892151683270858777836676181909634373721143708984067183759158451627251457472826059428813735752823475718409761180557313278880126927749898888378501548823948288900176320999566425587072136866624668854264651673544547704298279646116820749265793182259671010989855189524867234076373077751395240238047522216295943997082048268075824461466573390134807621644292566188379380729183521329602067111161497206254861122818063561410040048521061568745723489114332557297600591431781333425239637683311615891861226802381661240909760333979541406318829704223164724169577055390788291346800093064185304845132103192397798727994497043777949127315830357830293787350670686500208352382141800013527197389443261280532243549162585604612830535760214666269060457036055013538047323898179560294418510591218969517304752491017682191423821998903196275814855563682527354792128389406991468742969526808473370731682334674616653820669626347390612043581942068772499628532554670642534379413138533694477026176411223345091287867918430698332290409897215884201913855592183296754477726293509872417854992901615733803738231651020509512632867514081060086952914957327951679223317058502630093612066408671856039803116132237884128373996933806342855096180510344615050282067510279480680348854291369428974574335683386847178462364670388152916890539685611407316334211192878517454635936681120883015919182022529389296413626466039164300693405295875399621279800073901159407021414168638645908551998486070583844748778472188300341166351436149170615263492238337294496041259202265944165488967389302110368364431037068156127344511764136729330080877200004489759525093645640333671761636572519242880171912933978524282313566093448239794224659064187445058787687207442190058041153754263619465740030351795610281221580789684233548326055295733736921853755049019738820729045975945398787249946966564488136062707182309362775910856154036153323091231226536577806113352655358123233951662954550560379804884447826327628604782797915271029857148386150909800245384269841712845671697633148124272074134554920795151726469306283302966277293659081538625258592459718540441428568764053709370474427659491997613026524957702070647019208251952120055439302231482561563272497446107135293601816264141537312180575586101346185219524262652166384882319901096976629102896642624296668080897108215908392354375193044205626947986162876465960244932032038371516927362370491605175969655263802445948186336956885221298656569402196336983009749832489115733747040060162752481272353248438908827159310483713053683297075345050306915983565458870677333891934893250457365435210437609333846025598046799428903069182749085142125610718851422965874913624563661364852874260214858729662380714078635096662113276672303739900128893103695535149968544998165459277234229589981885893535820698150383855047788023513615944088455577305892880445223537023056514128486419070443429054845123053807945675917097082243676344983002562661133973975530508543672586723117545593202611631070983729329660121812379155608735405204370978012445729373353696587677407100296824408119642186892250161179734408865864526024160216773262442206309998594764002585339387096193653124975888524406871727471505449572079853489939922312229251660623595112025554207515480771248867519673242742431105366229314283198356041936155368996286839927241655657065592801754468436289361144060076122128991787159469779638691960898543452362658538724267944960184546760431222913528032885236511708908849483295845264563993757637940332539487011444672965228243160820139319114577062728590236391119395561547421203907056039149529889725471743231701237949558066693197614994633833025913515455269270110969737117577651817592179152208435161445215238002909263298479370116725659049481535592541042041369708153280516222836019783221621582046641417079891961558946508113264801063311630336826931314181816301773911880658309127541644022290954353816738928057720622814634204665059142582581581890399376715964854777409323450683754367443192931700413167132149652847153056236265302533918636990664989892826440047456854653218938077294563782160021329456157082192668137253943692493551384988879343425803749652850369697228222787932079571895531347727255465730247576606249767660193400277302944140454289656390891554971751823579748151685804233919569489942299124023615840727731020603387916928111526436478861697701674447062271748247670226685589785450714173484234450318244423649534936466362190260332698819164023134027469062338061319419353184425674714117918497884968693642635327494795294173118435373855552732721597225732184084611840277905609863181470335283776058955179022051136093289447987287516393057108496797430481315050597912002788203560326298154864514224689103420143803935753513543660945025040615579486785436185294345424934557998142540534513941475508670889907947045806074637612561838709795159592776608616181539552437428985775385263030448088529783272858170978703061959724271361282163629666270225452712740556080087883730024727362210803622332745977554056846948317266720159055739743018755351188727757388918581456828185787295072299304315699840924453267460502629437636151455739471938402673046816870971740442246601398806162551207052759032099675455476727484999685593567126857814990526355738161903807330106500810759043470222387571986542893832815842581918083110150032024403273648128261508260163885994592825905017728592764913911452758415857992191944882764971303073697661026696426386440088643380207163193298250966502137373975729174259499785570260793996266019431281217949674999786850786510682323631929735701790797342593142505567261221107886085120511323661171957072349467436652707182428017546293603326218416692552594043389689190472542379066985577041551391942534161509895614155364903156678876112071523944978703056963008691814737180476094338379173303890980877470017015907450297014855950963753785195939643079251336299552129440353516992585696052875512710692590252619254309137771115627418260488129530020884443316935994448259905878002534257080105158715764122114335840374743022104768522473689821655970842877787693684478251989841038440169011990037273413990157048735009857569349878254694789159615759375779585251093373087385339158280176235325481624038282208085305905482856888053781453170379882696334253630584540170474416167866233000698778915326475505320655872405276508545573510495268802009490219583044289007241804904005965281813183149346738902857326567683467169543121109601390605918908294279151656687886111751311771631988002051533758412431593804107823379990227774775249280691812267976735449501307560617591412602143700160055999956951443702050466583974830013340262636225424767802996056654846043500806718916458521559815864741649821627843213030960137215984997089693064350598208231014366908643577503784239814752031139624654381438912066779263144375705937144050423918393663996200666841505362945520909522311540607499298838769757481929921090894879197728775917614316829788567577010668648759315443270273710549064820503552073017004956116564799079463669702479491642228440749730129575499054191184810075246933446255669406317907714310700442025972380738346829780830691241624697111170810937588262111163205951476327720798143969272142145581600192947510993366814624352998596616793383732013654381139554078923235523474826671754814894659177305926631882572973868247970273077517368217717015141051332547661357943327667303013756254477284991793663971593363286959781965336218176169362505449843560371991670018650833970456675705097373510080241161716623086814559041428066484824150706437840045251210672620251899813565963307188985722637324276285736100717661528630007597356867992222643146020159873241100278005877140447273446751253998868447499866081051486193436091816733685378532061345470335506839645233739795423061866945051768270007336182146575055172249284323744813074660260725234127336818212282366215831320536202994549308340493641418504025012813139607455923778520815128232709327688132637018734510437341072609569794397049010176996250549221945071929437796467379352698126801576702214655511257943894616009582683284098926430421229895162056426675205656631141460302107691195287832978360204450325772816386118303480326684277475461518552277023038961596348219611705352795203966438919383818392990743642439615244938345327951560915910181190932623654079491775002420131254639157755835429579271274254826939346979180673062355087431823305769075654959027250145315328416945731411815639099537566427880978387914326369863227731535588127311689344203442416400233068786723237262540150974797214128041322909194558640637827894468788021634493650105661928165012704582692143727370309545087581943061992659632933075920994988636537822327425890442516294235993616372169497906649827082057422790128170964806087607649630273176205565296218086449744927096682966200557224497382235759072634024868846397580463723128404362229158861360883521168853159394007714268584559097825678573285101789774123870582998753990839063395197515072625060333654244882756086657548658129342615772380545674284418804950449975776242268256578485708671665360583341882177031629019364483606240786934063334490281968388096457782997389053616875473226398546963823614121327702773087910531447694812865383496810122201448329326138219098560616921499353611286461827277953090698173342467797287127197460063925646836694506585583020257886313821443275257533258729744853508893507934055277947854011082818178213409766336154481267397288629027819409075763326797273437223699552603974757066028731414708293497277546352517772312631915428910836060293857753848097108246128806181254606240402128082273439234240810703718911730330232414854017690290313860817514145344094252515125704647080626240714443958447473202363480305021833060645592805343856689733133303943092394514121420069785946172085291949796137054103833035472959506316592784831053712199178036995322649242255435352471534398254035879996163502820548835645229784297154416942654749955261030489188022844062772127117743573114630856137984789890421768396792160648431132643804634860460056510090247193053330803786870714334310606184521381519758615437389212581113169535366387794473062605607862586848485745225543554168900912231996785390250377507283328779540609314474439023311542019239410573398279388696804061529562604823487974940066705501812510201404020655510384266583861209412992585816374476786226936341936601080340584283019928678228264840090601903066506833574238774186654014470788963710560985723814147462496820676248411632732284979319685520487552706417204970692769497009456965138411348418947002579718998316637961732779392395673077592078960644769058503254922975827578377260625630482763121645679306071666989194084626217885086660685789191521039274958027349815022601185566466678576808922168129800319230388062841865824252435830409708883352325423066040693538722080205880810665230703962736374729261272466057553772043254337464155980035715874738922487822988907016438789859907739997137376457048775118613665942572573153307579638749171537126565362079978873601187241039066758163980166449019889159165930468800095224452079535108009290266680149805379302606108890709526683353392256363854241927976732753105652088737267677499643043293868386443213637771824085139910814206559245312945896323212628720781891943412422994891991833130052588939216142368131967218394285053858231314509778399452197054717162143710349973790280195819556128998285054641616323723011894987055446826154368636486021229829247851046055043197095208547498750999812299706298412422365033433325301986731341266263592309821980854041840597107959687936636467502203966393341681443628290714745309763458930981394202674551589691772884524814985313746639895157624166100112340920744102235247687405962231027523254831910052592253861553105655127678407458126659278121078644844746069735151608202529459369491250526727928263478314977227959315427132052478048388694658035547224234753900419202451711387945450982272403427917639556153238017359172759910050575621070616209712329094195959614271797332115748844930002337665350481910822492820717324227308444225261413570888700503854742268947411627050628458305717691545658428103895589927011154301722716867833219538916431837082645887291586149589194922678192088209393050040667950119488223189924212565967557013139360312205858425770877090919913887659251131721798989974102506938469873197141772700599529328447784720416166680785289739220524430940035351308628684915409837978937995524438999441764293925372846969741834817370953911052843967803958372535520860766536703205281249157749915695306224018404414266218423010523462445544356021980176454339833166612146460976382492113008311705462143358332815868315326113244568690221305686031396816475941086369690065352416353408637730785758991717526098284402976214314116327556679294379043186161516564272911890380174258583632788060495266857201807065174128228435246603756676159271967918212397213156361004164690401177479009878990321929841601475555213531056724342310206934467433554698392896119297277945998550577405862379092363673203966516430974868074972839536967422689498343716583265254895086603444406337562556823196992077442122142408602526407197825970490507212882717039337916338526875236955979318955251304341834133368964667943845310919884551620696737797897538058121904748201712291056754939909409890798918492612818828730440485798223940974672050415541166303301976481653077418646520162416567248395243161077122660795285659260439699147624082030248483520806627906686637630934632812779850656709859026666978021917268335218955846377238438888989870803355508811606954835103623127009520844017850487283627598720292936237745119190370919253655427257942174991068240362305393047873684160622665619530957231484739896984243242581743836993014810594769654649417182877550736137699988347791581304714351225702352827672974639015159753129828751969590419641884396135809599725463579526362596327615328044626073287797132601118037010479869228142093996204512730096892742328424328315818451642172235205472436301312624773518793284405727803506231837395117285731695581588789307893904626845190662234053013657173518288663260258500577957786770890176442340822582660841963591403647073770458840995565944526907764533299680826613594517449697945066160549491284163466989929436294361545695841506955597756189032388950428790919814242754526477739098756759486521496328642609891129876129810709833478151517115502851155299562526553483854454775362332712855522611878678852079387038676734808438894950219389938786265074763707758414408470033452686272159005193402051815528520890370624668455098526019508577086716775495139713608353570707634893310037530810206448299342280202954702115564935257595871833288838987835128027960333820397499043779931007095770721080508260625316204524392361887088664735241717932521634482580579209832377408523272609838007399020466407749151681242334634196101788589705128556553841828442191520994382780301871605002794830591126653829574824093089330212085235450956804766002514501816304230424995412056784272280166668772823893350797106894660414305868180207004039335956387949391196548824148965248153618237403347063513504960195347629774699336914154726838970261926741555642273640481674672499643719612513643987402777966927184613472367097032029720298746210252718378647598961188803037001086306363142494495274199398413517528836332028779572450796599541038970715447175902418474436004316091959193078721871206988798830613908498036257635467959466700690090219768575568884464169107293782996902797509796673652179661386389864702438459221656879423345793275021323875815324728678263653378776370976902540587261605833324589469362557677622982975298871414028118408850720920131817843629093719533016705760993153172718572872255184355223572515977594486778530121841595309828876542048891578332349420112757114962120575252366871237442296195829443448112938151830867269348534253403986638850988409962395183956905712998596342658195506409412311023615802905459077343335852496241632023715760360205453022562799499669856044654118578123884939987577379500543275568459716477066751534206080673740632531888656585006925391371745849992476966319142991129126401341415400416845999185707260963163676812943655813295420192169056688057688944159570907168125204112210245779436653005569151773236860056882408703208334857795047249306727753727949554114828193327528816739045105582091655534247155813747181522371314068020817046744957240659603393538463487325634984389644981488859959190049656342851471444091592064443747594567020264766539386293160410273089501458013760242792023601918996238180306137052243348299569339843584621608848983383491172547886425009904551220426462771917056662807885470847796851096497368470062910857550193745956047950917613062703680156837840738750368161076873925933209416353837791943102494356410141727813720315610640224160348821386228635142504896245906803144891991688353557152681386594210830343441961420248981291772969913612226405683733423002341554746992301284716521759727082952651657878242466008726372446731224273866165611887838140385907368677561373543865353808502654100390102999544973763550657483087322763140833571746095879359006885684773876995109308718114822686991201569764278339247932004375057611785915092670108789738122373662468547899238497631877166551877984487657797907477475895681269837190077330939853566499395304885063400775311411276367477156125192728487263345852261508136361780516139721725746238220199488663570412048631329192724561282475531860073729392127725293376618088814806571785821662371040865700863196551279824564584775617277843818926648887955146947114888193457999758699670034557186125986070191255972163746142601609167720307086110116963248699517436154979451878364213319221527189595910772886510536376500710370413670760027189900726662326940243005108712226171498883327210493816144314139000536572450358497157796716524069810478664435196688011958749063964380054144892273544564313544489081885970648739472103813230560516806227958943924161170408232821263392196275158461899531814787044262611297052051426698620658479667205279893663653368983786930643250558582255566194716813905755776395437826060718564631817029878730503245681635955673205112981640107319457878777623954606150877199284223110105294708908781585012052887518691178723691226403380884278226992420899204881291208251477723053625683997899570547726181384461183090614328600976296271802481950378519848938302764091281821719656507352987199345309265872456352291059434678963784919622026699472640455469901778441791336717148461473575059121789116037843891256453476253227366164088247481694818768767655074311457319519289450100144770755589735179711263860027458977038756302580307629025560003425164500025624230222357651839429332707207596321498664118515792504360689008249880100671145079638372252840040996782957957449366722617191855908665860637132933571260830301386637720659821291992931647835571564898549417891108342604167745413875463562339293160916362961406572723905447791569541868503928089841121957179887657426735004500692157178467756971628896034135687185091906179556273532733034754938187828278222080004942694155591519582073978108536464968214173178669124832567136581721243894678544074424943561048229437100986707934955246996550348718485917156370513906605922639965615313429053099180666317929077455551163551641644306459563640863614775654279506474550240334435410258497477097866727566177814306563166312744894298035023569258061037933287027305607008389275131671970263752872379880179920095598264292457067675336904073264945396722641247342232381943141569349899980372230227951673882204705036213090276329878101994850359126215136939407344997982613148440574210958579794173461649856084289384787306487577987139667285579375218755883046917776703453082182363304736976145650822285892961892933904416507314265644969343793410563943895811193884679767324226023313953370782935273986480572961023038884517636327761412317100859864532896902078201224133622261863186001170913191210459089685007872540926506587537632046648037215231307879781640611620112099720622680857217010250837850861710607810269608889331330732394622661300565271154867670268516958294894766119529281037808930795241148150569838603321708787495538844236976715779691699574869671393615972169447895076002765405536749288689067354151796345006530268655695718573154636025064853619163566937363911101753250073351642133979095209846700303706378315968631828229559506953123389540351238908795439045000554726975845022546549055669526886115924231947042438638394515947846456525178809392800896823487516426617199240111377896681379505598944400159580372949046706174646473278539751002585145146184117343909829673324245608287167484292608606915288874664832531703662800881449244330240214954771873940021928497627313779531666047721564250733799781450067738261442238593711076278720456246702703945399602035644700991958240283550919046075934281361059935232410074472479654093502028443385696594834978885805020719345827732966061921547088094788542823770890504351284367947476142224833319436779633398646035624834860537883585923615125721253490480443005743553738484255109724841342376383333272662489942629332041241976489413478441471708791531319365268625973861471631298476726272978538911824493000360898375987447004162120646584814122709653698453302336460333027535351395585882522696656492941619295283557417526588533091763923102942458452499710786749294564613553319194245783448899857415553180072993361313333307146559889502789208631241393407157530725635987151359370595886165460409033567274597227538025854993375488392085071292161093230606742495082915812210273933915897313396104776293398409674305735622335215142468882652196807072434418780186274552735616311377866810985221547260697991645231256977528550084052461801209805225243784344612251183091456076267951598882255154167907117460965464507153291934555393962174488380899513968577635189927200412781233016608543395927008736784142399995748964770382612641985883125941937896852665428681267293933072936504748824479725658914866907024216567177389765384600619416904568380116459829038790730388098914450173348318208775313769796352094556325805197715726678544318698251559000724197889620790109009543935074939884579706679295291267206652749697462964715264799708397281027620126589417763474654514480245244424428452830621091662091588509196084327925916066046980891289421571884779737400087476491759242233573810389392186792649975625252512438365917424568129776926647901076402058915943535728342855110994790136274779724947113929870780146593052433809522126458317217724441951931558199908899428920621246609402361957872476246400411012818455563400029277746317360390204359675206171991201062048408579679083014617251633573618534965097216987675927217872187717609016057422216976355409195617071871185867019897668924565844661486501886884237313389768890033516808975645809243191415970568510730880344151520668416674267529754298505335148642572673602005379411413851702321844021285342191701351754618590243726656699838809168826448917998380106309400462399236450512296552404166848339896485030506950513992659199702801951611358456999886077601082781259135249295638246027152606149263139137545594593661813979802244669385689823754425913844810610543259123366572104417954869025793243697030982174901965460675801293958723161712719045728231662109027764963399658274586239599626550071198660884237896714535109035794705399942065699759638248871172409133519434172973265046513927655171570534693225496869650679489462177588223582516780614564630251556390354105703276838207613039947021616727591618081478364047246714057577695616554500044636150512635529249057245275235902642382618463682680361348405195486200457753565825709657613361206195524165310029018527389952693639797410243914343984109638398583127340529635754155947450373795826865271982881983651068520414659329524164970420988600096258426393042858903840179304192840492826603225734888206306210142777534444044952361305821792040304818797353021898311792827567170404701203174537685761713340301567674702436938028235241757977991377167666738363550601662705783367560110428431774618026603419627663316672796993505615311026392516200897870290980190954767269411679826716829166056608073577457755921966018808945592560852798084774774975861866967157404648783791011361427717648237700536720720393966897259294725983877555623100975118415132000290674846629656996582613372494599487653642986227352759068363793593844917993162377430100388881910408229524905476057712921905636683725124366620343452820687446423994850748893348323548675311060197447604718836590124967997064005171524695985885441588708428705551346320166989585959072786255203516555029773937570695199398670512248766180417401221070613820656472659609189778733062935915038951294253440542144148397039306964878970419191073233351878260151313088203247431823928067856010539335565264626371152321563451090846807207463369106760157976291286368846098326966150594288510254852386267323482517988823392468390094567637395300313764954519673535356766529810228544429784792912999929635971965106564612085111709892119975730364207506364735618123157028930976320833249749358238929103148447058418914689166809051823650260153279374668596794363610955474425880343501866184319395287239465110838435350034714434956290166496844788036803216630296027222156827605872491062574635675500360708422816386344666637117275930951680384348482018329787159709134166368915261433213101764605992595176704581876237014784538640778057118496933247121166133901053102432204939097937143999064245644903621640555357719092470488513973300748895535758153819467124744011296984512640625495165608471214684691860200140552711188016017816586668472975663055472642054170560394705525120714554721336270075468929994314823623731954978413718459945615133360385846562789592718685723860768247445647642428812709390282304053280597617370543299060223303913671952298643250704902638960164613707198983150632814611155665148603008198261795200584220528767601725110965894650264631926909108735504424230011945299264331389300453173656137570796944743103086302877895156755725700535948454498794886967700145751060950981828139661380656783487496203724068123659448297346688136809837917246998905213827218905825723685284273314484580557962073819106459624737297663927585570537188845988884981289109322274776170004261086927650768766414697337930661542080215425171078035431314189884717069726730492552277774801737150032583876508678277264863073716877363422985874911282489290267187385372587311572753125016672192417597078621222643277908196235752157842038166558765382368953283738627819082560292534951703073318814555587903528080570613529072613612971316183684227993969928951471568039344966588780061718594395219012159805623897685414032755507466050827559763080662675071701709399525769144877906517947885810465753460114643968669036313539329304310880301452541858515549916045417185950683762665056132873451115130686544877292135813123208613438337731765035433820968799525300389965808878440470969171062810911380471548491228812926951828590452760781571758085380895888548620793114882446678751979583976436813247786106608509764163296414924674967534880848543466737918896313807686190637930008205531311047447173777773567340547705801989335543818430861146710178927179960075468499502753553579030631693950009919181062202100328806174969304670280926265989543816314802455226713563993722306880307382653068338558027968163395074340586841551427034530398888824914055369757083702845365935349438765119734899997955999619848244085811622605223875638759042544792572698613502520048482373180802535604181056522128377794771731300411730448143934219569719312439232091693822667391219044586502653057672934016018802000263869581866829032271310361797208184870452252323075117486311930682997585088035653282597853428285654365234487198913322022431798763014079514616037490251003496711630335283457586696743127388837747133573738975859006876271722885518578253468636456833953804957031652267152678818800785383413840090756584446631605368442700989202949996726809623084718111643582429513926924040211153865964709953380439863075278009825906930806817311381992335119570487532377342729409236013772772883728530481068833297124453713861881694362884465800618114476190650665612390445316980862738917578603930120555661957823222015772032589678276963052882158136191660317039810175712288482720963618426961495063758730563600283254758610125530429998713726520034858974009216940325590554774078561110384904791875785812071108904681519093144559555594191208976540856765202374847355285934239648701441345951046459165608032179087076255033063999403562480394102758760053404246142319722679119130239277333458337933773756432358171423354404756827654947935488096387158430838300261980995363993142353928102993835268006436095485006409139191239455625989488121956010435901762638259205317001047274702284866289687510609785848391603193878118441394516437214466546977749161742069886323406981904363633037031567965526130361107580511135287007449797312975834033089038062456126231397150223230224086386565802080925002371147528012014186444590554404899980422899884421878339088247297226083676159428572707234872452253721277971249726665344855510882966617414457978579334511824058703617539488336582177222875004290249796626499027515195152133064685459925892505541652397289932976032468027985166083122974977593228371237721371791701380969381492737293500026913232444745850586134104606188554034017420917104866040995397423765771191539697041315253104411086437306197173232158440622939833402220039435105950571983980419931714496247919953156965366182638799879722371166950054915380408066370152922855759314937405862906322310286676281904821333495594505907270977878570881944008574487349691605811258640111393037511732506035235439565664043536182819512504502108458761399603013645489830994712361712351285627810509459469911738409321293463341123275014320009615068314321467097613284716342970987750989885823324702985786743321883589506005653024690782838006294704960112668057281302616084183818348859397805089679391016333052924719143359850487120229881025016866697407276297216330201940072377789164038148003072311464176881200483851198355937372825200741822294414519877640364526515940586097210995727906479378622416146087710024502638760205314710367380796112528941689481388084232218284502977902641463248074664278972624940372661719810553877430027509906896579026185150472087400031232911829824853004643051453948973444272207929037329427631426215747964287070709658346433172372690004605962742533188815385079040593156996234607848583810907896703219863100854485426858381490621425990300808465893513940224189323027557467190954544651484994644793570481508206401495619945643337341446018115303332256943574071853741103343171457960920279206239070442966645709564425348332088533773076396868938253352184171442942147165619876108764875211153052045760811713115122806821353866555464296176902777924775153829787871157795962217171733485318146846916141848261501822942332232616781071219396498090106497716865700493664480997970349315767132078017791478625749483719616894533579547374032193097322731443769842872622787370015964184870997148356105495351261010913013250208708694653646436827356454087772478569866881244051375383455888124862275002101243187217132543919580264431082715867934293148083683955583573209764827828680573530489887407532404391223589464216627936862956515542973558522552960303411991952933234461929058547269457132883203559728034702954580762616202576469246151006733532715079083671566340516879127922573431828856829928740507737414122767577030747916275896329480132462224743283684147757784259445543953617905051087825770522850190226763693225572484564804827423348839751148557200771522736878637487600762233911186160711671429740126521952994418080242305978960194977914690668005117821985396763207219677227253000767920783931654031046246761949497655328022351430774231578538638222279283506124222928896827121426899535803961179323668350724793230968072831022890905059105710478849965899102409931145315942438120078259748371100936770903218168584701528766951227773251616865354506536268008889646790512265837790439739881663930608630114291045533639971249187770539099624033118853060105687206860326503949511862151430973417963626314909948733201095657178825491268832125983961496648513163055601893303894802222080269609980409269801506837461996968262000392071738808915333492108019639697758228942191443461207095133213441529163464906880665511662070703060947720358207290840938988195171210333769522511487866543766631095513746302471641682289567202024358594399964030959610922894595020388133323858436979396177785010683113841842404971436032380109943061815987499459200663175954006141739097928846460208114603438269846244572122617643368547697328503295384442310607072409155911801611701328469592018783528794331912733217965261001319128139923063465999382118188824827879183666078358802312614718142378723860939203165692474470116885703890573876432813639183445229863869458280726864012155868387367513940999401735394654850621346943560221460824459550445126054780851483146891305242918662989673074142742104478472704823383835683756003723557016207758596323174840498066515252372830459042533814378947846914310450535043220964230453239253711151891045516179354678645095515301640390397808663353431804644411588514555492863126597006242115507538092559292032424899074953164908899121077557135628570493674474173969941894977252870325112890878633769515949090419529110998795744506481155405440066398094169503070964157372315230570934742000748114665926318401478905577619747393157862801802296682258681069839553578143317813477854779825986212908981717604289857033486292819062149227459730369987627368504293252465064788939220782620411029761244328535194672424796269160948868496771944097199029268992205970976586674779533453727964107926781944713956150004766856608822705492990228188838270867631954661197106027387926567435154786513361626324561659376586094211212383209794611720640371167820523335040330487937792739610925466880835708904005494555618382569343957841827508922377384415832117941554010590101790743725927983189065186404947626468874532684782594854560164824163997867291459352426607882304290976358386950817862503337119729584740086299697402989268737718398360473071262493914823994756481236114416848524512030531957872680859018271065115915362862377463205590841254040232180045815829051251046561281777817898904440360652946389934501248806987651809023251934624785176788698622559306118481094783499607788703399768506100187171128584048576817678658907392012396478438998132752610224673419478090402570611864630437986769257218691614783023194424233478312944082815751935614387497066882821828639368819610161299450194958452305985369530738962330994155895748539586445094011520427152372474353743205680028753391213250679061027869455080951435770276575700882438902281911061144048749884409411589826941282110015275211988485425256610772719345892274120739845348633985731831321177860704662268588285217357285124198810901112219126930914071256711471453313533253027108952376044285814409026841261737168751178764033332591010329187829670691783476588315689850295730962306864946579102706184183253553734701520450780854095181123529983708244782863434651621694841303663915496113712355151703411095411347358876349891010051723503154866024536689985045525346238999076060089840659804779951436488384322158504126263990159219942631357084268232364543759956811125022179286920950360946958046311052411569400317943617062503881165724556311783692835507424030712607507851870315105395938241669838922645496239073344605399899966468169482008953873247965397408336524393150236538100936498736950150945117718449070026207383075980224876770745385442417708339237672387705687399177529017658412803306195839215030121856397274977325787605372678076867262413016163758125214461484709840414138001740263426508290692910782929711758927500120374039005210912191761358287601359724375549026745973976550490471912182170157098966793187444613892762754974146319692105834278496147846210813926879305130359505308387766442154830399676358825753225880621353958044740692180545217045943651603914031661967125102685070811389859296945510222916812334266399783260631197002094483377353713147485991595995028217000064207074446697764194960311372394229674003510963942760677972596409859674943748024259456202917677611622153014417111219905708823089565136078934438466249426850222073371951019786385364053379593138221895878436199270297210675179373770618385840435454376682415847255334544430870655685599653018035769480921177121048367850639300659198131953277027469313031356665164609788124790358308375863031880310941164710731111918844725286331290663404905303575276708145360199252070630421607211974713676024701306978608406066862930241926276205428754013920218418250911331509045924918467465675184351524307202010327870284238896180812584034469917200187660275107908696980414260817868576349100468398277104232256731158606185738235187168177068402032657957370603933378400886131492257184537695108842857925729119373015627845856119735780895717870589202574818732923023285169116411663616242795664589544106048440648121314106655918143964781487521123551243373599478406029437667173969094506126546715767450934054630238124605196184502276017419028110518683969117954011933368634979965801283324757964672988382811418921815433487340532615237629131065513021936777742500976311406181494930823762259574160149120835151918682835990273146130426374531629580660476178310543659594747582110868835074612574569768393822340795960022744086888403986867938273775576833551700299935530552098686244525344249451896580591385347436015660500350376932841854742889192426279350420468178428438314175893134408913454448973978434952957497192567983942657430779515836624084184126179248567487836176613408061401168748009760488887786312235431264648395954458892324815014576474959371473254842350024022036445396324040300847279952805107046152086020923844468710289161381686279899424058641869456242620839075316265818522309991131479911399006578944935808450923355200950408002305718659631486744812650152228366608539286629900961247606027263145916731166065954452445780414702007846737640917230798266076343459029334665836247923969097069894218386458585458479299083832419640619097726733283313629189332107370938718711515436827144845616568411291045242591263994401551537616548863554131163224206910081013231277765602815502870126661458013416479502275843418437976707182506327655342365469888679982312423019710168111200291348083860611323849258792933439661839814834753929214694411401320531336701409980827174317726141734783815468906521966677631877348260154965266473491539671700916125002340580604744132326624226803527827233374618663399919833676343048538357280630279244251487849864694452651829990053915399560707107781642430947817321902071026546065126652818314065737409144539013087110315101904630958591027405654513913192282240111319795752742204757008743448389182676066235950177825157930633248997629674665024914941842480140706453316799389194468240878376001195219883884860124267558822732335284545763928168359723149651534024735463980338080053375401238320055967193874645655224505355237347918859062147249836796391922381742601896467611116065801220301521099997665877626858398702887042729154945452223182819016809306057301715408464167327025312972023321488181984108733518811275133091709195589330294635284748304002789750887980616827106618015385930946394835693963297187048179683119707286507616735011655879394230695901964537943590027453954003060436942267875081580251021685981042549278212601448553948323363541971618242068892994970679749246309622393525637466881020354416464802954367495779431697747317336262155989125594944633616870766913108588785636092170439860990089286988412158623125582941560013182154186527637707810723189048789980129084495179992869564341475896104487906768607682744551554741605150172279793652695701231287725288196325287877621686299473846448187944314723435789854501289561955464621900474932034462012995117554593214240364366946366550653192262168229205100835341774062036014897147854263601278564350392834713045943034853866729248206164327793601418130668863569528819447662129458123382922686935647149784797316676794376653657873513022487657963055979267730880165941066336694429796597470442304167682138198061151466575291218198670351160802072684476017187277773496889332613779976517579477058032789199724564748190768893404847089243220307051059517252643031463198878712497277026504765978436070179898768717248146577782078860654294702778887620946859881582436412367697552827356648369625277566960934022567224657666532315530998091190869189939678394334613595618748676922392881736562723316011999856229590316843410606902755119033622737992864441755295628156676103760522017375314058004260238568318985582782270853719265984316290747747139037839716538564124725121784564088851509128548145511894326700263595164810484340853709486144928206711338958637933951683789796319325348089409266518837101730120042348028326890525862631920138877177650813721721160302801452382222632871789106047676789262690133564603284902045039128378140763932792554508008812325854492071504080712371370755103590882534969782810272196826404692468767065973695027844985160527479705563410949268540824602263875505643561813254324561127705749861547235874062559861159424734061200116987721347895809299962022847868723921361087270332234134590758776976907043798639403425258004108909720318727435033585435184084252880239410958752328069899546975944721187831516879349890644315910054393197221490092280900676177702415101104331398552904290901261086719093217965585940675613288412056501445581662704774978330011927317769010471701961830282365874298028913536580660096083853408131879974291235470271525149776537379496740063214718381011579107227131000606643360200948740317008110023082222694101345881084062914627273051356475660817269276668088171912247972626958319000390529003093049107737595513510281487445736221888129739022779774670425908968344549232035116847507971841163512893639599383280793573455052065478199103663714745176802189424010911746068382040501766374684435051225064257905429632076947752752465733703085368268357153844642322958134405920674530635429056069586967929785764257670065780490272908827629673048725684779687019358434394826707818711718163613955411374659420366868476234731640227530547886963661309834261726414064781580532792682668443410939823798158184049724403205464161764209576755572382509755464254172693452626907444665029250676088006047619375142683186105673997826212098694762434351540752176579571702701832248672771816469109938429508513969709097798044837487583399986580096407266803714801029895825682726470547731018582936850842418650474013808935750930025267948932504502271451669987905219062063914885038012129344442818102732658836211215138819132892511126815303781717549222575862170971749029452470494973718504805457859311924349748799307116800097224518146598500999497786515281664679266917824460417240625964083242281013550063235988262512977536621007902446685456705031244417394949698617367869330341718728338768980557914745071465742817305292056164263777676112208916493482402216939548568691683295508745833150713401418488108011510749385481366484627750861079164215690963750016468263067709163491708825627547742064696198784884559307652468640936198503015172834754468387868471207509709537833602562758862254436714605971468754362817261001993964865695769049610074788852084220526150621205413614242523858559232311916327983860475917800752415211862903366055025349324123868610467727175531725411088853333827969904181985282686659139262668440219112797204032584541623653995286530637925353382113910911522584388189400569664855729243603261021282999481120021024890362674535273902091260192228787512430565544107970042699919702318943321837758993018103737454314853915911530703429787950926677582668595094906372847308694405831015147841519478496180085254394063914170560232942974167187886001089697006941929430507004654238803059176981042202566787381586606526212564286527391850374924236103305222304774944978337686545992512864075530997179485685358047318897170753743473173456053437775822836514420135271638683708967731730493314229503580361144719499059371690812943052018819333512540623266737858867674919484651695026630060566610851918870451431824240312762372099636508384090590070676243661423462907551216106936221017913295090111542541440819584148397122279234600056145691151824783554831295990724570140822232035190506839690663795119833423478251043565474174198635692465919712261140613434350692623439670622515810068510998567091155442856273702263818266626778863441868866072415829552189579098359624626159986466666258725578403971183393687581957801677613509916110938210952051001951804927849476290507981251550011323419343027264444075650323118812562489691785458947459433772294676942125968603746407778518424637155017889833455100467708836384627307822320344775791101504800608414399320282882238138551138715519036151749194852223118103617785988816335837100814187781201329931203732851844329687606422281294922417479721882848538911900600487519399699160422279195057958731339967130763578013038723984302208106798697656386624932698909422612147846120474258828870226347069461548036693796226127958619103136809590461761038111961651237890357166613987298881676618393595092525910710009808585990585839340771614153855528093071028913221627919513776846903263571455024543399631222984511904732935360639410755656323229212894745859288497009419249627063446775292823013066021616404079221797867419343817746224741068531635453309634727936716774479222000776720373144387607702376966908217701769061886560342569786783819323181169579138338522126822035468808208022131869125999714763509711349783485474731163857468077235017319943859280282053847436860124377535756872028704750207439929328326030118050911307030573531860704335656205107457248582730230320494906496869964076171530873270484601016975007763234051153419036413220469327822556918007733731567709261659737139248811445866456501024175062419916784135865734293162074774982533254396570029565194470461887489901903138240559127999038513445344471872110178370642672556768776149885117644910753795881079268478927071453158884451547846428400836256255513530594234868044680036825700917873260590385769967957315671718507918350789162581460838810166840167371244451395497538392558010591339758659431975858722563810744206245193998813479040519872052163859041640472517859353430365859862928588298043105551611483418328181026052215297302609093421081623951844644107528723858571809220143631277231552352042269961344043354758505997740268346379561848192056381212291317187598150383369688747520987569583129726210370477436838956088763019154081808344650545699012330133563116576752008591135065260441819885261821591246625325592759152550215149259325656216632423577213079306902315878323947865666628697264298038290729009227129778807621896382580715528556152509222454158087888053722602791101451387652098479612990688524679055476473312508569332083150598432572261167535362440610126266707251865316492234592960539459825484421659893079812917769254722790184500498286052683438191644241646213939614201227743673236472489294320234321145930827353741230207283432754106001007378183980431843041741173939772909692918566306537730068280991832167560107196329733012973359232713586832644823944385573165944260267805202331962568152943263522437099154178102800589963376732489830883323174646500356985435815176413245412565559999032992453817314022693877855716014890196632963833328268757587108544956177714313147508011173671966563639485079553701862766193110563984337403877282631240688968957061635295817718484787388080093352918400978808910701018883491527403435655598713455480936507239768410185653970295804623352770975838036795637731658421943075968064258823516649237949673057547882144990580002559635251316680267433957428699024393535057242717704247391622095125742470959150052112484981471926351817946872770721454271450895925016857025226165324969657055026661979826133668113058565485446260812180291537386470416503190304487297971931118461496364368065942735992619330667794824186658300485394059757312349316997382940098237494968158082456263044070572208668470720245506555827026648654409464171957969569948761878399381049456776615159866933572286090421058221849750548147803009562803126682780110895044050345351715816460501337291691198181603032168811593864881412698061403815362366619467117424717195982604799984287840183101665442607235038248474084506903617515985310496524216984748877781708999245417662989094225104341369580635816286178012638988717704992522448154391057118617760517746299550364546576715417810178243362463994143968630869352951355087053617879118087731944697841726021814200746154861169365098997804690761869415995984731427906250980579556417022615767561425256260285413215455329763223903890263310318938135838659563644371123442717016309393173751790010086777267172051211817515484466384721885279507660888428452291091019823718839480262121069802262010013091121670894386064298838958508635279566858950654978912781891819425394307716153650213262661917425445265956805261196725147985756888387878273553477314888917094633708482884361198930165097030395418263690578492571078412786354136700220741626899176987533910463976558927159919026403176619593894402678680151312007928975531371302733049695899038075148353476202151709727026405201155978548748740741199988417952282915172271618568146531170268705167180828739925345596496006578628204477465777559702844587912885766366108828599545496511302286669814855688521130772166846813125873868290173688133752945717487061785509850802082443526864305098670707193259516986935870897210123322689921874940573770679628303872553993048454378477723280381713226769519080340268732006348892814752846362506744210352012054307054396663782565576619765012095085276391062161699680174776565681464216452752229798129829807070180955437945355976068913840859133185297436325722139436212864387357751936693650019765228791200660703775783003711910135071046539774328076420278712036106667872624570639988191234063836984364307037291119143368365927598464594408434728572235452040166036629956495390719833921671647419880663207553050955847140273141987628706563121204285500401851900016939444062314017830221077292166352436473182451852883075845070708626779248105678287635715830912540943626865780354989910127990841807295072700863184442860977630694735979992361789002347779770113034939834667625414794271141665895544270910874788624180569160528370087742430423260513312835934198721822366523667820014462440155028173098620443733946297932719041438443298440598762003343653780419023975421952158483484706347489334039607190710505602416843421861866510167667328046451219016296919753025314412774549555217444186590823595065970441904182792593816613912206489059349642475166443000189511831566811276276374751020622997144606942136895860703746264015322227245834471502086243576336207109531792289811069638179394564695087044078977549535363838161109613613733284058761195659183183413931169422609631450763218954139467693979350434933021281791329800398029776556900826243042597643139529512442551361345134404768478540489348652168007183581586070423412604777838808846632953511617160607029805482460408403082770447865815213392967608396973851527730551251084928613987952443871222027694526288589877607979994398168593376980050386607077005535268164419729770465579964906609583413831926431769560791431683725307116902091945499686944183461686479302840287333654739566979948637226471751902127864987090732027965448284513282986003067878857146153685347417440368258806538153891414761975345203477963923984352974226130980716160029749241372761900078123498830485496405374185421719890544005365438249440237651115326707597630989021082418171802561402305170373031340614492755512737129272888480278021244296508269172417957750952001003599833482759279191777891297617647973981600345350189473410030862042099378445879013146933904607939941215097329725347671318023288439269363697219921729051021080321297078109368894693100435019153097119383150622346202682386507442000898954216294330176565809526644975748180354302540875094687617661956775637375248001441013919412728002887931846132468693859023003721466099201494102407667326540362589258916243828104655023699310713629015214289854642944531805776632412695909356883056957730320378576061701092484361944403750019166968182155471835120891884331497318452654084728399530974802595977235516805566455519753901516113335333750268021690893009811114389454177568182436479438937321093102166775634110860340248942406510426364086162643284320924687818143208297015024649737605495976753924433650349239324961848704892522764420345383993903263361455814154638866552784719610590780914834179995052214239054100497007963574853783170799204181027214734477004722746402054074151825991606701834156133490122200619506226137842446476399801159257348501284607078315364424282082139505211668616378780540387915420811054885919159163189831859854835079589096725403586962827738215252271845319617488342272985823830613651662177669945606583900691050211710494266470118440738851481752635997648689591170603880254742979031933126368750229559990432534275965966680581797863121774052391404238389701542415617309501216829023218474110126435387723479468240356860880443019837466483403455648729750914083230385794427427078159849734114017401773386800512485773926928600211033105455251838680006383219074139369430001646998020038685178468795946505007682066404231654478796475322549806333023630594318614092823426968485192910824881637689758724483465264939197377112044390806721539572883130641441463123887204283978470114324359815039569523239280056594802883792812333485000728520909122619946262081037662463433851169254702276707661129128200126778188615280856908855255544939061936723534673413010106652358907303240106705020729324462720867922986501818401139459246994035054303031267329630180236460590829218853338501276126648700627891049113554171134943013412472796002066372389842884864681194456042508411156020947219738633885610628604118395074140043160132274448631973676769500998329429460464876105582808593542214320049061917422997503981158508681257202473979270451149937229487802014912035792253819606085137575288534905591663892197618391587288562699112030252850308502343290371892533960553729332276711931742682390316222232598715413819018354136489272103966712999928982330691858374444470992052924209112258306410235472928998348613450315630569100912512771936972979450741738096559623805798662588939886679437776786853996273893739333176680466945940054485751739157872308599786535786717809284697481830199141263429936398885526555364769377392524076189071040837575461166705818736915399002858294581374852241581118400471722462799611470470309567680184820195191618202452806611645764778789644311985883106664844074609759087474421529105724773307677021789298199187824051495163274148449134859764783018300034709429766517611081847202408571380601373470602239622194132057773973179915082870386223998519946819145688279381363682332302300536896057330755407969641874511788321757413009032741308780212198157458837770065630819299841967165864153645055884446790449320653739289271553278449225378558487496753158853352171869658566204094503449106189380672147375589585402510044946609116341797852307480597907448917614539105755854152487738616387627083120149507845780597619704645761505067146610134062286693239795491057731872495899303192679014866253960028940468800859176781269008680070016118255022681573393919770071422046739784958659729060016871278546800826938286743695242817413052867039515186325429151867752477027704702474530559330424072783175513711175373180057223499154928085288044880597841340356783044744898202162148513083877765632664760821239370201405079326556200237738305209314596996268087312987582818542331280778549094473597358328497277513250919561380562705216754131178211120094098809432334989241266826234409843952090162275694305808336557852535591108628044933181890947484484119797031984258919833511395486836074584931986466305661230358388405123637972813062952928650460511262078588380360528278936925410965821404964435048151559580645785141331230469001965884849773505694623608816346531273377914717915093635740511511413292960253188489195148756681765723751983601457320959506985200100482180831822881941685875153364466657892993057466583810907209525317572600444047788464775682778123443474085572600983110508191038312690250535029244527161740791666552003068841847270442815431173277998753834256675287478880823610367972239835434418449317721135371575243664591072771277683067900750012304358530245824398832502156322760758528367899984107283879057981242604766546691636950002978770794150868088367349015549718735579578058042282504725687287977750795690293557599194352698130925208417443304409733345536829365501668580799535642043624321505468868670510840028622679495698267587969603566936917464722629371375354539883496117106579426309452278210030764935030351990068884877486365297419891708219764498319993834541673199407402395329909274417750895210619640206904102078745590360779169820336360798811386834698134906409993064786296674384683908621793943332479234814400021294721875051275766417643401599617019886690938750077332451693316472755354953957597593205755131696012983366307350568695762644772471384523703261754643271558279388709337866692147641905357361893497389758736088692081586755423098730182081591376731338999372276888332188344366291310602845052806830848865972621596725714852295561292377020848798285080815189205898836552360762752838933217669412648794819099829785353792183844141580231849252691024340611814197925722828938758823260515875587318285263409288007570330527440823841000249354928843193545426716494876118865777548685350823900370659278691298092716881014211343297120295393958583475824966680836661905874040837416375618539773646354357521621237666288242237569267854446383263670828736567841460276786412918312091575190703779849026541273778513381518760178375867315423253077618564299513898454845209303219059294786514222348114151532249036183589834726000613340620273871921776791131773564510302733581110806830282628607595300695144808919567732577606288268213240636433875429250310169265196368904071749086967129460892176639963643404831472436563544026692375572011494441039537777368051900809294126141135244513302387444926906602914621255752489437865872212255319571100515917409910069903391003915215664111957959993432481126792773950773124176441194309349100042292301437982195800408285174638415150312681339351724328453207600098686649427343633722931519421205518222687399683360622187468971789180378390031685449529039761026132145894958910575327562687658026413911619562988007372317745484773084964109249835360248901270038800180038791322977751855993834146019391922337324136081528964039960545516756286055334437645129217067764288668131696564927538894136449299998809108425688534900854639953535516484448197626534284020158838929539714259418543865500808686767317974756522924910799354172202722552476407341315589843110978281381746561313742278117156141466428718682391719680936875792504881686040692121330835674939546114663574119927842858114870453384186106184643444684304098269278901899950670819431990709336999462081815003947283506052282472036529296673489732081763510381492408211053739649445971622342966283664609757713748552301928739053955185449271463922107201701054653093769489065221741190966989109321188570849476311202517655143943406559654187077909169495807322661415730609572986480543952061419207049020498300963298272951077531820144733797413622172756628696353834885398599851061829078642540934783372296152920850899842703541757687308763762705951133087337516997080249646169167635985921079057766854802903674392297550189018993436153286301415161805600433350474448140945602620415216025434282140037641004763700518689047400747295329201014499109291180350486848402957738664000867070312323566229339616755030194275897183761581086261245358785925863673096415703514191898084637691576296604123553237789674389539646134127312579208068587699563702165448298731181471353273777117716554534755486853764632389224614465006203185440293532414793977046397140802864977149881319533918231100966675718050593770689141519107647608171269233741381921418825834388972838055410800641069065978645092732689004778153397791888632632849851185615423573620457347711535843032921605253943200975515177148301805252189249837111041086653236256945302243705065863753883906553719641308364481014901552203684746293998958996634038838900826442155835777117693147544146530672681505682173280007085333951050138678233550887296397062526819046943045368585367536349672499600357738248339429333853892336476367916257321107788955190326505507157458676523899074501035309743196050146998421801434690766082979253933064014399540148790395736587893070257734315280208768158007039433282313791545145504944256830264105866135568676555593085678642134078826806262435511274020055688883564411900227783455066382862667476962331866066784542586207882436187536905005435585007779531686518908894194719034072001774051208207832690283754558322742639315996596039639969240535735242403299949767321164770751497381078603096549480272465654270356088304983711047888246174031372145544567138468210517724397752498743502074088623696971604995868008516503260361710442406337297288003984566868887357708565075797962866563715574343775910771263969486737056446976582712754684663875869579456212995088799198466559912978131717133645281278242751024262343308154358605262431980852256510241381202048604555835991451530974038229526980385734824367809106178836321999652549009509431339055265496806186956397264066372556525067943289533030090013480327898695916001008615291582563091026294892152745067344294772561857783624176267002293818824931431026576878867848180865660375635659820255366756083393828267611982648927266683153645564648361752867141256633249974032753263470894494304352284856594484205130105796411957030263060770013166170758577345561623701489316022897970062051902667803895414251875114346664532463217125091478744071656221951747689902622118066992013065709449152085942371851332310067245347372581022009565134151008193281738609553892709871676157357901808776399138190185414221444730543309202994571532209397440201033204870578050913238250284450257522315695825116582677123413104770901093169441786357565238637984511098644059641695614246669962798826863545425478637818991885221069290176271157508294348893305588824763131065044093321432655088433801012133353744872144882953915141401901209548666685480311256126959425806601185792557488905785107623665695533463447307802289545649248484234766667849832162632489980479552757818838565816182803769179110160429706038465430076082456442775893979333928065418137644542593697291257929724336065532516474081214712851547930912647138031134600361714902050478772254922028326027349351238886471068495595003643066993962747307847711087800825085929479866878911431575940945419681305958001306566479952796363071712966170209986644192671427801424290147045170198868795325356334729322527689907773214962018328349243644242469730148884748718349959313854806304229303042628833746188972229291909425873248676168297721809735473979044006383856223470603793707984984081808707027899678682405304826047881266058266597504248596956800866472898518560337779486918269713774053283516653704816414215407004086226261170014165928528349297752239044573649733341355494197244451965151691075959187918355944106247665012007379633160036956735968247065002863035225828436771294394262987025149831527912187428911434783649526119117592896388281068046073376583700242028441461591709834192442398296486111748657096379803896959843057926063504686145628717463404116760721094191991928484778125725820145982049300875040945188953514706074915630517954328483511845099282745863281226841948939410547738198431669402469679173712169977992900281201373354247310073762878161363940271389894523788450088183412675614655761525479117643644611785759619112849463145441408377208229332210487161635855222810482842701027284870132510819512693951143047325715357236119968730837535057942078721344296270502902283158516296111250214683489433287004158908161097375379249776424473391775174692284960343805230408880682820767463687668348271561050370087958025773984743863421272263563900799090742693379727837168529072115991485596646132305484148233880174239185684959470199971128144068961534364544736875082030093040182427911823242149916807017106210610232322502297435026912425870622630716998119217650198757109645978108798464960046746718315490303256746141699826376677206864630016294791914232620740555035213070128705157157802465236195503730017233823175120921079282782771039032925719138544157517024933386898318637060641161814555927584067118978119034971724942153372137840547672177708508866195419310188692290443643211667922370039599289835329119407093950130095409801745702506943827480020874245136508654114581647323696735706584809776585321121856365274036206361320575916940024982435720487573575450217563586869803891298381049889736844666067107809987427247269709446888911305623622467531342103307834990364437979379998859281006863070367946294659092874361030457692233301407532023643394193556607282911035456128666949357023877739426133603327645997193550829468318059527690742925138208802589097771371447263327108975008467038008462625343598308912840174160792270747820725730006025333690993156982274538654839954558844571326573181748456228375432102334681988753344947208841735030546917199081850139259808890885175958486761301239429413526611703240326603150850505112030366157265230237515949386700196177515913805633011894574328520252716600962307956167848789448057115142787800964580823332932368180095631630620651929340344498565551618195869582751680136202016864822410556845209447918864888536260057305960565879966373668477578266785865833752442286027738415748283912257096610059022760577875480081665264843950853982289600546435143208570463174589396613764542042762210555161695020617272876895735724153163938607493358366681028339035278888672047425499838584801099801434206704252026289177578546354307765528362068682607405384502498939333058315368141841029591363821817401221564658356077764754169845134059755062131116317091325873017488536011134015672054486355818194047042081386864290513123844109983953114471785948137806632843198155539426826279955566785542851425475282024684333314253681279076957551617164071888972470416515323730535549599392225915875019808670349261235750598304146598287978271086324189884940657755574026134727643817562860699418224914869578142058405732928569179937894095333292620837886137538702248987708519991828118659057694017087789931219647654349526300680718793592783512616795609099701763007095021300127358081358730164539297467688598160663186100605569407730935967017138740018785241852706025315605167260241457682062242938120161805002608444725646867999812525086521352582277782888466081569735057118480464936588824312100731410879109918746995733669416934544669236791848139548614158447597058882406454215855367907519064596203342639661219935742043551462102620756520071525983748955759851056629316018287734524390676963080548245306433683193251256043831254490121773313551468025416285777687049482289582903432209846302515683354966211248767918870675130648561423148883834690566591556092701508012232139089255302062704597874362130803415229783259671332167029887555698854451641676911926598741161896659589813194629001752040293665054062869671823198221373414774266233965958292866663385272534981574483328049444143451993912308362358779236026291623251124593705206474862481694802404435786698606648543019327591781572387154576462283810605278477299378738338506277841100128371551514548666133998272009389812484004786508633373927690615736780421089953767942272642858367662959657417728298351311601792858056273817778761989862321335379712897005795010650362140533567877787000980359260827954591534639082503435569826561961603916284520734425577466743773412250964385764752749097277087921190664428779662161531788498513506791524454854905390843591715655136450892828309127667493840147623037376271725907482253615248798088344600341786756266211393783584327770315657542689380718030737922070976332662025433348860879303964512868280510528666991831925503534199366463878369143092606797272108536883422572122873806940905473009279055193653889609241260455540551414108582876531693355843087868871009484062988477710029530055262325591690507999552097351002493101889000051808125545277543575055947194536223590404653339649616412310373336452763415382394318213257669095962026183986224419897459240923080182082717894449187833555807470316231486675091412607304640872748949772388181438577350823434945427114945425267270427711082556623370401563777806464448133552109272887323782247191736473784067896962850327320979515148153975479303668079957561764556142617130796035769712647527787582085543586477187275658538538408975035999019367794470439565908979873796078287590382222074598461692851060627883963170973647406733944670582615384585497908382492958715894619667672346993021245291205024680538877552746852781108248970808678230364176220831862789948551442573346794492794676631745802892472647749792325202147409713092936316688362804176990033470059169168869384761155319685477745289711386038542998585002213078215038190624437382640439383768229065484145134287508274279812254415575732899783996827810472702271363113054670624956877510973701202605011371269815420269879653628367710314783709899029697058702794519229076975585619989130019640906828940122032495346082139476915531928666444440346658484861393147092271233876442444120072470772701833461748089666774839713823978677895758503698442449951352649609884020124417333162991183603477656797011258141179116115266311533737445415710863523185917489892305728473261341737140693033782066488527283562533993084767189378741827135725725051562901606711494301257143659196298548459278258206387411125979524832389584181756073642306410620698251166108169050395047118019704469863245131954211835087980096475885062214375908527623373400318103962377488904147281150936338825566615134549611820369600535192059061098460271515434632364509353958312163748486930103938427958390803423080783738131952828901783130899021593730235640514507712475752323278559846444917940328171902229111792598119058035510137391733598250614797853367360615992823833752282441869638129065130915117388563771432413275127968834415236828447314414825988333584991761878200531944858187015989912227576473307085618912868142591045976850757934502427521566838795030146216513204631311790024964876020041370755337444607309384754927549444760639034842209579073203830605801620478531726087723815913131192655767799469168441102101687330006807387555795504851660819004430087611946100774608216337452797601913690967839571307903238585093645484842349293953986891154126431201727507938301473303512298349608572094137968222323316520296259679140620482754738724728334923742921114760319581703695023700127867978911478651481687959848918422125283247119154443314371686501166339894028168515501097633008337356433762744074760476337606742377391974571342747667046275773665454237256422104500876449034734978227879111165317287747056668015081386573819677492359895742400813382927786785339114075981161851864849179504512290580437733709858325408275310822250036976248978749048860059811327742840833184762441840819414955753350604995443978098978563068136908697654676842533730889563888023004974171063176197110083989097167789058871993871889982970454907677122139851162527462538569243137428127750907983719916561289628074724543070545468955109631087956988919314847727174447864880009396163502322768553936799342123862470569570961219289271632229748447509055896541448671749641595324297085797224253398820158705809707025064111103573621371098934919846535669129470801674110133403203457900011419654833143169278537104282196956616879049999551711537359314175881549303310807820143619471645809552526856010220986656686450848315042516106082539176020021656735681138551411450992644608274298464455187462096360747581879275046706818778537561586916972915914416875414195882926981894004823826226529846395737517795094997163736580071850746689589270347141937647881363660048238995134211500816435833531261436518277344340333754725135052289737387379454106059653640689200184171541658562443924874592559126093781290557897662903742376039150912733809151603465849172838697123384867473277914395337371564223616630833217482124013185402814809232725162543231858469939239976507834708426635198928608767941048277898829616061545354306992854713929776599745998277180378841832487090474639567251782026941574218368175765426105378647010911245053650241053111470616572886430446005985090551443175031800933761292294358708183496884641858155922829745259126883585363215817150071691493494355195437178385692475673125089144389790524424834952853305455898106734340182907669986745706262763852008535175097634945469072109207622402138282090148885437427587752072345667374210440557953111522083543799335887055149769808839872694060227099669299022370634268700687525959019659679690184578996020954023798510776151188315344824815866882073477464520702725896849970670323448669796904746197250890804199796332829343503135058173405898087945023958776929079529872135143255938616912713667857414746530021968939874278313515902216697771237553452603801966871307356704858537913109215624468415561265603825419986298423336993876287907160406284456009378646658134457442153137489695793174733931488782852265479626767016589903063782059755668834736462652388675300035501818385694900470113403634736822512245928896148608825615740369298704544533440175089373634004127800652969857304085621721783188357348854241352807086802444571875054647425181081541004959539168748968824019754504329857204180514517898176169708075246120693544188327838749030288162865828684524193595781615689800474548592510831435017645347447262431689927319040444262793390785965594995084281739368336510398441334601682297439647547622992929032426260028490915205730600997798836580278664479523893200995307470885220499016776575331681747262232598639685305274418616354908476774175437664611547006810323630444633041152905759551419314642764592764703823299422672521969326305836256978951908918686385924696508633916080473673988369130674154335784643518222457798794724640197510114596371965301744466501639758354585670217995540926752083978334091019097164374468116937910642105630894319452745316759077043753375229674881874419032777979672137550226102277017585763323801796900738199039205700987286799219614241864000127725742678095966058067587688148076997062366303263060065089330164369828628157294834546317973222590422134416230072981164188099627165180603346008644035684797389171186738819972994254554108799852835267188696721644629990632366299112514439667811795523202788132819756248410426121790850819514299870115842347986800789073792499441408224377513043229375412050857638041033134254485190166147704993514379017257864127029509314803134804282329192670808491743980153472146471733580036378214154035454105108117022007310040256976454379579867362908757818454853796559507626978477364569574712556305550998435540149518565217917418880670421685617961702384252614855998164675779070545502596219649576552336023395095978749858282310225959936244471226860797231252080876226205661440917047326716457116072435225348987457231758510569320947788123269660494179801672778683652873717245528013753604921006897357999139287371941960109840308888979301700458570186132298587637355838004437590363849890783447353069055137120554364105851676953726973409749438660545126065693144800682597822201435489214761083990795276274609619120034758948152571208754252497366488170245733181731930582123260249223500175391793124054695651493042981903187235797756080130415201632120797923413553026363156977042112755121639653213554977887326473111800762200371376258136946504497156297067991769838136401856916722946741398564919766112633764225025023557366503984119510011126275986588289892218328314113865408521863714424537598891619589224994368657486957864722840729168019267466988764517185373615356246889272514070327729128073642967230415033397674098070413773492913531194957764154188535883845276391669455987385607140875054496304385059041537659892988565526189500540692938322354317872503238918467624333632101403180804483576090843402586816552648816989554203230639212788096744949335877791515705941995296654399671249097984575917310642089591004868297146734344731747990922818083873737107895963245644210179625524866832155308773159030089017125684828995617793216634739844240460206299528081413869774665602733839342247002452981669618335222501896976752287693060866105113249105612520729639641133699192005864833002748435764928544170546164787242197511968023841464535321955997222411491632293574691594240288503732936207821511511909345042778608957437211409052673948764063109542573617957854213508534468579311806585617493609749683474273344080806958231041122650094696173245681376977121345568120719463589524320311222792432350885670208177994018216407437809450234792996428949647942031795544615867178171115400502955693407334479154664940837183068329215071093286004849563342887773662676744473243497036845331126947152521879273478571488289104058401809215890677100676015789073874055492698992740270736199226342359805239621977744613875888604765839454830813067261370963574667275701386172142738449037505691540427437352018453515838894021179030689693152667262457889689489364476225995473968038795160714641922549970909485713361173781214131685890398897010695060410580104119974512837182069562733354635139755618458619258323303363066071334446994626296427516170547432894035165767397140682292157287141605085868034923346672006337172597861682012291060271361110670950646508962704266970200608555061641627690835581488796177196742664640231079864922664384201445557996918181548807114317811025995211199875237646236509054509493027682606004655857145455163493020636348990077079565534538353855791152412453696218132128096825542496600475274552667850041088529534326519239803499119297252633053201889307893690148640897846802659059983559837080480152849187713509211842339041926267499623232573720860364164323393433529495129166815236765024251372005193185473371038193363592253908722622157726836003288968780023250608570408774958184774773687747705647639872562819834650392984236753160983666262193371510616634674837697456396825033792026262265684855697431650755407984422183864763527018790399903583852114092794257153984843640694907929205177463067004064992197612465851227436527325156292082947359470530467549131483756090053019310886449724198176751985548747336013888035549489427776862199050903921866509377961236572503315820763861828454557035442100789026141962631707531217938603297159343371392820894697054090950093391532562597894183528534394769501279801038786593932110552790503446101651840579999081652451168686643641834143210461097838182648311139935271946267244697894427150797596815923468730481523892429748881370984799921578262120157381938208195756038297137778440139406792173885707934167280187899828666808525812230514516478973460142902305134734806171630643232534788977640875682997118152119698075465278470236442406602789476586332063378631984138663024505952839225744878690284823652533045011105543312658456120217735889654676272722275713667626316595638466273865304644350266253596532362572559257260264396748674381721463614361218862076381330975996097961003457023227321575186296528815343961283597132820154468353556486447613014809570114053634213765338235702371459392683214719079773815062116986349584356073392723079499786299457929738929161924899372368855622045492236369834784859524403493400493512143706550611267952404474012761522157543411538133526594118478862354315940624208106548743634503130807097064442902969902592904796959708761040368578465652507834571936400029231421579976273453687622073816178838751848660138033162133647987834399820568444985840030821761788195504088593933512916793801781650062405640536648426647903051675557658147487696343583831585597173126949350342191302743906965923343177476193624613270269209152214592602926886506826351407832250714396276198802700398495746460666519440880906209401622988361780408586989652383400660073816119078835845976914542361622632077233273989304505672427372242543724750904459357126552192181282525367841581482579209345457628211856797700149433382543851576821729475119474753255825603331722878250621872521603765443931114036033424903690575148958589252900667421557067896296728451502210685543989589264155701719097350921850913234269661954250520225692445575414257968783865270417793197903788221002010973290839236154856883259954636422657255723128676115731987438895531534754496839967697570571834416433164742659953529785489959794611941564771472944696086423036805583210447636381056494597557083066393728241475824749116530962488119089907047174402697489789647816817481882408385463673245586391162344956397737213386435042696662759608885125497262873239105426907535389767031578344377465440949200911301513215962933610897795765903954518369458171903121223198614815322578397490400569528756127883312715332939092883256162909316443309856972216131963525009422052656154283637768118246823753802544077361377019176924088350302899163309408479642009474254510133787134408516663524387401383246683502451852543721697427033249381193780788611103434544968645766147025229386308618193371491906093866878362641633103502269238811869816642850775285541632015940266329440832404279160446335713188236282040140544892574710918685529509340726634582862620373717347577415202343711158449437810963626575470289049262348015777531573165851461511869583089180209107012536842180074358210992764343836923912150953620353858462209703753639833000420824333059423950062818339217380094298652575060235153771386039981994928279178164331136061958025529402603837008673488450789538575438382837245237904218073505986451705252630932231883878064309740235049293659191881239116801159713367323591596152091023957474567937710837222555511972362958354378819204828437659701071413262223655782823552904628909467134361547947236513202857719605162081700219464967829222307003363668842044127164295301377683187970665182863987196490922198847269964773930567253733240067401524859073516644473235163630929258942819316630147040922646957709544938184970894725939333032289698697128540677439662018212130878450375265350345175483546873045554703741441571671375055503389094924987833575340541812233535452374930464929930499608721901178379113578199742330853331355913787704940476354776410336928869896904532760939684049018014089019213450119940545924183719434387582188266856890021620479341825834555652396907645114961595896953938741274856044157424118102894123578476380840253157969217709684912675297872404029137998039048774834744341010823684718668896970674670700522660319896531114457112180042480430035620482204438273078872444467566967177061343583494518615702234308139237831828963725846303924461890285113972394859804681178381716024423288570914152002328305188292468827935442525531629589705211559124398908847302477357378653978694200179125690861096043273462828223242365906527405821648212962395452609048949032191622401752929309786365809016664446164049776732057245491476052655896369269130059870241282215279607333428021899777264099491374027248201406568856559815857822426430852058604809408284005047516050479047588970690770515727789089024364842079323387329785960938521672029589072046177990256153625639556889259616186167669245912608778496702580620506202759827172878275699321212378023245678548288341115143162055157983543527152549186702984451784837159510964624018306973002624402419411885439372654001390115373998261446881001707174698059809137460625156479489346382225898974877014671505115861147259409764737437099521925650389228525551820284888337078023756648237935435737531391593632572991786525798333516856944799402083903111680363412235616803593175354244127989447480427690124678197807574202409271607334318253833451276914362454234567217583531264603424368912654505984402019663129798892467230775914096046685812397354560863237978889885046462346980510572616062971162888466034010370309243200568868823988731433067283753075568526591634551832776202966732778677955896074794799178490613179260293385065924546550445041097141073954882064703798762342935116206277033521364978952047639203841628563920625121360922469687461602622765461351893427961005414540116723100504316139422780312903829835030054881237637353142008688638339233776463118113991395894932315567013438454548729942336160129046554612746730875263212208371152554516946271240010186160295343464813215780529019274111627193104584677577720077352848144415088946154154836311653599119560229574106253301855175882741704457432930795419333015269143996859693976729687293690201845203213577739780652560262032765410784793952146936444521025804406570417657185487971924372356246494009912175321721468716921578698548285840823675750956719745330888288602127101134392738140912321643442415268356636427461587835446561143853000887739063179558068204105476313997423138382875012023877015239154163180192871939117891408228856562854747657151580435663369380864031687186255121591430017200468864040770284761733940172026601458122467287269511130782098810441241706885811600833640772223922614786336158553909385673663070122718592399285793921467615283341216446321070681235691151079127556702445105054779331467779905259351300558612318709612498111754281228328133634123167002870809425026957004306741009916228479631245385087619216168578588453185397681092425055309840519088579306264936501590788874544615107506695908247654137582166976124457635349404476556406852165075339935804456304871248708695297890309919074391934045039583082593819859218992476850433226144802454139579825821416610858200275423115163826309942039676234015572893727300286314757361608817520911735737563157680174282852183770305052851457505059777334074054945497894392959878234957717355066017679412584465219867300620178946467572208538937239983639938203947057115892534761516281948260661150836881745455964175965644072705017310266665560278714829639519560210544279406211199075871531977954484488044766548491453113161995724835717619421397885931170298285388278149909608474934319732991919332283391835327198018164329675382069507858018470214391215292474896097880407855424576228689583880616303177637346170164411759647013443811686220658156549512592101036521352835237482059414145371437816296237321606126356809543372311221308802245717893081657793614132572283035002521557162256589939782717221022859494871372873083642947356748281744109490811176719920637217699570063886731689835751108364909819402516692912289873342159355802119373072065870791271219578502015763671663268663726523710822074426888089329543838049143101116653323912512183055079939451719738631310056441942837393074533355113306107313694499491653479578759094284652843174956432216599582265794155550232171276498345724605507111316902422756071547657213732268641035507787116615095120025846457313113785943040820109873268993345519894828005861121086169027562039670183724875133676379399746251495868174806849737928512398268740986314739412036724833539952655811579231121886538904820793438397202453158020022686147731282244567801280599064622015072031679655296724664321351812058963683353068790925868499738996423740113249150029263522495323950068890898772176763427629454599930020652546507234984543919762005909281305573363186726668465208147428532680927818498352007375843236787762768221586308037833336268661342273517577101873655910232569177183516604931854625360968950619699345771396399934445152061190826097441325928377986820527230077458011425642512121310534475125535835042925869707630090995827199545566867165446807872328146700065159837114099405159022098493514604539159815463285073959010517574399606483530041534517493184853791933445516279704345444711447866496860062015268284482940173833900642890266340734412721539090120794798806998386263118467151310917170996983458861948923164280159324178758290435724750955329172805838456463659827983865599654866750108931555128440311062763245255431358709473775004828769290528442642910462073496708980543833063865045932141179546094043565565759162599203223982845595100277605250736535834272373099226438066290191526340545315783300758365130326257073173819903315467754695360590486693423966112115198797622902247337000799612819025919435175260816731612745926598937306084641335745031856354156421754949779519979571346783931733950987509433342953054306392788464284727981642933924892256881586907451860865001451593507814548444274152626950415173565157643981344171215680543830875639131176305115315095416910844531311738954972089198030750448248777610796647758541895549446002805458933418527124495234948182292228770051068717141118493069596984312233321869219774931452088636385368660254078722971045175373271070415945811219555623982714129378306969226772460582698128738394172719110361264901139388981535189087575943940091111940986531932165289018123945017106850278560826671501667920583826382731240430924265215191588867348109486405949456674212332735392158316861396372384755518686163172068197145871864479317982775919853900587807789806948101578528721426433431173695697284973837185626594872829746341649500242209977616957575587891976681394426505368165767145090348047249798752949897836621047617689037917999501953689025969985913917818043781544569891385989323810009474504773478395556470731727690338905592198970275662747666330192455225590835859901127267678808543119709602068179361492311618791255659049451409895171389985340479201477075675266522853201487723366386109891310836362629503296777261753146836721272209359905522190715866279036906731686327695218823823455430531199260408645595659522902239272785707094971608519997323832027522078741863451020294041465124989351518497370379197975862382366814641062309890448082493023638742656420282297043659241030245518226907675133809401334206739752270223302066903925258794428735808226070422969722427401264942276125857477306664515264538766458809550169792563294559704070075612112045782122952192158640785792747121832621042557244889438004442636538460615771262523732887338120728543442387699797689572156295945508857669704304820299125951131502457004170418609679989683315238494942791024383095445798557768241472554961782731753937830846797827968159776103791384357199371247878377632909732322586678244635387266778324384292744727394456539560930917154545384526078839369125501787068748018504561751464944534196702946816276893823912010194398372142717770822114477951380757468015945999144093566827160691013672656040802600091694250880344353952523891953267930369008719642818835297530738024181945386032520455124022033933423740537127149623339544645016477478530711729389829264667768449012531024520825479214724083799717254322240817698959893152288059596185979944632023919624992768245122776879147689736412220256501492348545819456031930921827212070533446118012337702036571420164376104711063374341661354480702146187824894546046766134101476586709210247429795097384404341214145814121195516463017167771808098954627081892755425083479667164210712310882062161278268194875496165566334448844955835791621422975985629382363165032443322162190298977197080762791142787390175830774474945877439319368351463111929209380569398572265595218937049486908582113326935213720765950729686659157327265303372442545130675947783623754511759943871075439223693157116540358597079143386123723280328222913829200803126909291304411761205586740730055042908264384817259901900554467769360739886449553288128978654304011898398351720688608873316727997640571109788406081952010367442365453348244482071248325292624312834516974029679469720469945533265511668396653303842256304620253980115720125646328531058066706600559093043538226104767393605924453806897842024549855048606065074704148450927977362881890593436127999887874776519124837791105544873037197467009745684075310097101993572703505430681806971378058880736571993475647275281148280389613116232775849170059690862762855897144345244021156356693991199878053377906115444010125823066702485096067765994122124497811933459229964377776482881211156999329641974304540531597708727371696877959535492787748145339316139720172347115821370036010272827891745018352020055546469136126443074296751056901579153778233080924882940115751448140229847476636046859157161108632948641587489486128616540064350260352748794442754312284412601246660841067494660744198701443954696838036200286793421093394187740391523630473676419202235193928695466219528390522897701972148231685365713254415352844644835186632575757440951098947869345336136660833722920884000240059466831971607698729231675948352234315639614617044536040511793026518999198719570387429851201241983309716753932188138791659924745820993051829227630306607296165188356052617486941622151835838890354996813464091852253126578504676675753906931818625531813791420864538062258247208991844143048801086815739264132912713971815155938444457059790360329598879264355477854504255776097685259155016768320320227953427117980565437515441756295101061176380882636994708559714630602574950038926738964101970244290024918307373063535514537035672753254917821817488529343487272792845484026755534929428683582760852973647263960421631733040043795109018071193168760802186061042336792732404108362482565334015469005582072559276993642576549661211170560910332187746062347108231200742139558981041385429807497021737897871108976751990803381877972557938660576060930076730345269358725176777730055024898225413597319421504036306475045388703652456579642845638737526526417762087336229361004063735414890729142285336857933512975506331542848970688345579272233899603927999992593238932053468745110618902417770990999120159828103634737035508151778550830981427015662674772603341678765303543164699838412723796535115286475279442415174634781586934735269639401058048890090682890788449088836001593085641942593916133888832708725589776473139724426269268009219585922250148668061805255186296037759449292749545332363345985416938587952540254003217771069810425137439456686975017652668754417400088579935859110516933123157341369618155305299662607856398115496590109287996001439397798913588167542491038212071836575947319653259956595170711777467177612636138329967285693696178125011645704596620374108184683947959787567771641630757220195356901003682773794406926902513484303918827049534615149860205063702137559561354078580647520529640663614164125536442465996296278312988765612005759560883404010612171155767082703824106436339834205797563918860535675765115637061370484070564627934453094779577412952665989553970828374568984137489412008436324646827120947245480839084182981907280250182964681239755939477563633933543842689475124920861193544452140581085955582113623847066786689712841229134584987074270518559471854560141462636780916308495342812651538378600281819257085036273592448052726243106816883192646455734519449371033695284935259647247334527961344354758592457631280897930218897287930271492105853801623845807309446400998136417445972725460765437485600749683844540798398016895537889667920096745568793600433757018892916772998111646636645084422088135392415106776939995655591579080237611821461342223991322851798409664924522541864913896362331835737069040902882323895261169831430039751994029419488657298966032523716527224590622192296258368104654098743159594984364448584160879140089353190093373840006540077669860987060196141897457681291440053292088851625805903681469964942410871332101209558059289593730017847281381037786091562317051934209042799576814846271901198638771713499581858713285759144093118676874803565356600874060723946431470979997339877136073328155198919010071945056934755663782980861644795391221353032935701363905252882979941922608363358794716022727319132600562017100696566302250798692474610993898914605501644181135260262939888940199088141288431800268863762162386990250464799882156827669913266058599524592240130267836470751244124318075322198873668564318520349440946104161647074512893027327558410613779370815903107222800019699088058216343152173504290516048485287015831615938881429931769417271992266199645462353197205010310731837207772985000088541428669596432128845846146461774595496641915276403374834709949708525407857840622989638030086319581401176410113588822852417202971600415412930055033345563659340884331213512619744677783649201508863330016020750735614677910197347449117859991775417315031910428799908049001220161753684468192880055512828436967485145979263776362330734806296324429284541559623049738696513722566145100668317311350380050656760995345387755453552914097797898440587529885818368138795406426288115056646429369133899541127910633727088620936296317260058956640468088374220841511068160744604373849888679659452557642135694024864397000976582185646763795144427391640487832042760757797647694790237479519109880584878807374405145953955994068213931554192525492987685893123104960888609247513099271329010513293769224608979539979116490869338039359461835058808676662156889894602404706149956328353128693069289907777048921460449442285524824055144036919467840366696684627765710994050320288245396520065789966265673550387537960595823080322382985354435166171717938445089096147924021883403527347633493741070755315140107216923491043377232511336545156781772006247164460513709293252546817896490289177856245114530984394979463261339153265809635976186769264158941951708249714578282823735499558006137225170319631402374142001472397873140649391897319770706951878759478004726863459667049827468432680143030654098608004731046368966268330200175858451755929207071799784789219069267358075397073195066468818260216485554276264913536801247435121912518445756206399868208024260665229237279576739021567453351627624754951967881075260373039900845266762664307093589290904878563018266636002145834523089588225957054749357448194145019613657464031186922160447137819010285917169066761390529702276233756627192724739821959292416835125547280987811657269714824241791736015331627287624899849704695328331099639354820017775696307566985878033459639086005618488240830423286545689944907232307002312964794757358299874714944146306414662782635688274000323242778487319399464760735734729426001888589419184002111762829143522719111593897779025283696464767626419087017190454149614551245510391167548987994467802545104391572324045087000798481858848792134365083644611466831942467306007313678515107846834736520588276097450675989542285185947919314667078275655581141049896526519042626894508501335027194579263892073930296889235700111425368616041708783330596285527403709248212748985837662448647090550336189592651892213269462216147705688975219339550020302421180069901875909282667981129053733178524122339702541733677248104132378522585339529748676870503085232451047144084457386626344789343048719212743084588283719441580033863742586996530656568503580162440162752698034448525503866128151464884783625243204931427848444144985609306568725212148234998955710612641836052691294527165637639909159977093590154004794301381981864717685603525006486448491627414434151621803831054434107866260136572496038160985063309569473505765064276953502923174486841144633959052247575687292538436601809997724926200513733917294773580364360519781561569191268820469489984171109951197311247344123347594414818147906388677981755810122903520651469912045081474981765159660085498494215312856825520024040352874002215430486949671139425776343347953148507173944102651376182806817236357431215010782669576172397244336491627197044062291293168961965988849514041531030315526595486225032808681663251377716343309613742364266243095779901320637724865210480006618493576527770822827802935664646797059960353650382952096334513208962488066252391347157842540590124869433176542960954537983035316000253821099050672117548722829568488399797649001268015897164906561530096344390401223255129804374041904129521393022563629292028481122899148178135819248625570817652664433794456584177734808328765178785710814781703753797371146190398933964527993887045097941749906623483707611061779820319014167424244509953879344538832366065452245367862407314282399053312365462142418065124724711381809851735623458402982659116496751248099108962779261457294762100701625134213217891030875444651274168821636150774212418045101735388523794464322989044218521044396425665242642035684179495938933778608886422145426445419060256904949256926401767112830518146101919033483468941235703111609224291535364854883888447654938844543665171523926382875778850003115150459588862693839091863943127572618015684387525882205914022501263260896689820629686265890411953595914319346946832226640771793925060375925979880890982021391031379042290490763016920118941358361137595134947976777553769325131251482167191683044087497566608169191961513675505403388872912820250396799217734481266719059637302405967837823303806454013812147507277923012618742432673958406133150064110183222525051971310463789307922731627877167886724960612405331049950658035177566547443859773612427260561305475109534268907568027186482471464752595401018862067168158586378400165521298141551098558440272825799766665045196748418065222488943363634136625070302113094834109292591355953243615858814037145247529786170000119956576332205604847885419869094294312704193816863290580555464945443005330710911464698617955495026107054006134453920176128941832202140717944616138465570511984557171407411599490768413136162994291850622666735347085121664445888985283118521651118327405014285068728621584526618658990298933698227986625056269607024116764000104084778505295487037112904457877259151480675138694085428821859784443968501005563445624894024935096585168383871152883137329361289564418910311908270034856944227135218321627755122501825485127375346152310425607955965271424196934906049495166680882070978579305996008337340599936108315147836883048595927637009411785476647752145350459760749041917243942266343823559618644958784827818506009454234876428152520122052807294404354418306560833155070991832695373365459966283878883679564026294760570078088026669417769446669472083481170689862660029851817262299224117420739894258403615136865060397184959352175749495309575468863687577173185784660049352250484530899802759177702499642199610598438235391156397459917585608888722589618781443028818409703508277235095078819903144774744644167529402976650581276905159445493641868836411091998279788913970082165298246082387336895781355806519357026447635143836423754861780725623786428417211151372169899453340022961362292518733145268103016137814113458190588650854924679726589669408753089194520756215877196333552143505450289283169253864549963741214467801553315375264959845455347748013345899380146137720160481400383384559746277429234409760220740152527680342847840947878903651791148947985408065718231308892243409019017102368149222693828597376402668160995473883903388165340024356045373612072498279239365298428504110499201199918483646724002381432292121074727955673458576966554994931723213576563359017562939094818530249524187978751866838331503909136228967663246278124815047221641014395968769658335084494931590733354247881733224104853938462224654431579576271973907416567063847443095495807808815493824689972926522427232187337505328470270406477354102482237640771141723484024599374251075752721286350650557295537982938719174342753453663198578845679207879252094040072411339420001926570825019218749247266848759405427041243814457858473444460567754989157279879015567835246531690644628487320767658171266973673299294592496662421598644880999098046704716333461957048364222507688898963448196147714044742141219477142490330771855391939318789851992908224904431914976539699453432135214914550856991609461889048663696454773852437201706685328842676086104104476990527757212995741730565691131915657670183924157504959284711122339689365868216661039222466553264890291926086343536728291140656719609870501819384901411615241640296643027048500806535999308479695613684246819041272267634557449378157024907249166739806985067149428773740751817422456544953455606137480037776769138667759628553102921687012320252150561141219508889716067582511394296698678464464612345860969216025619100726881922984035770308492930685340157029600317804037783241505615857311616526504552527565117920839867706083755494015382044985416217668182194182258589892861575960321894595875513266300511673585146861760720356848946823015476268384645675133243805277613310461283464241200648652228520440728005433409150335740352361447220512406851992409454349471989114649360550789420186717458119461174977288570297937593455076203392046024845706503305213044560786073721405579459463467124759095643343136702507211528169498592590096043996989262779287857157792842369075469756295621119573507698467504025327021491829385435517888625626085737500982079976561643728936032987710317404050411608708793077901331603262738824445785113988719952338109132831861069403593149187051023317759239672349759100923966014663920597976236963744936750583484795106965326055788753534946826884231764322112939724287971456645945599548270396267610191611238231516713897461808176325824386925705863794447486253925462607049173707675975462885251103576038016087058634788814707980314587105470184668785561639269398616590616849010540594745209921433427205603923824533650766843147524778839772242291198522002873126085325625800616939913931986731133990089998383540699269211778185566141004479086630695399971777850691883479670691392067422912532898180192377179787337934754683147678702698659608826761267992611107601228229745494563415929137768577596264276481526840888461099456640864487956711566994699836993067545103234287855622962853387746824327430042054588458169812235706590017498766933433685151758918551184129737303477744060601416455003885978286566753853715349814450739027126686376035665137588953965414502875395918191206363619260081028974785822955152705875430843453032085572156302892987240020766817133508181739619244122786337657650453041707407464782395085604297291497033679492436208649767003914026585270919997872829391783828440787335803697170528141432995415013078325500781664213885537842689144811032012498660096163573200650044138721463002774594551070278098298194310857311836727471338299423272761898079222253583742076292811307130888065038439027747044445871749305194290877080119265472889282524472283234129707361110854697772620490062776529232343649339703905895909978004121313259447039890834974877403625228951413328904673809460118836785624545002837043467589260745619626465904333392636468707902712940171690532518450012569959046183507714747781037868636882720526400335274701596409513511403623329066327109721406930716440533932324335789427702856927665519230004452369374628089169717026414599936919356180392240081154404026146577495544202905471764586152586899046420348706881782495782165587818989670601454060900299285542665404640382422060688735377552704319631114097733343502513361285224669550200075978045395225697903565678054599393089691769137098759832559941770097257435333988597936834106663624560879045829957447410345419697174425821321615396369181864870916534175821891581767574327609991754098495815124441765573070094806445072208622407770843110389991376834172081163475415797597717080009281570734001301845492070122515947328442824514450089150768336644739957882958320879302663007543791459126022759189817301429247640072475392529369299564995921232543311601666188711016510131250520984294070404472820946664435475316318991162585683414129463245603614856443094288120548394759008778128384311093427171611728991444919577573655843284435421404568517221733860700929800306537545494782892090758505490623021016465588234600916857694450373109866034585143064722122297934490424753521423969577845162676684008672878993090583659235114901964433175250283248424633943879183175239602604802635743187758113364117634610465702825320874889855440323226831306706032327558916239281959814051427080205838117846636042511226701442727412094967814768310155127060176279574797772689117763217951166167213520333111673551156851008073573041723044239950879312530662387015322797488764074696032639577364290311859658611733792813336399983866026826413419440455196085575176617213384520829564572178886823977387311168399949037023398163877309729586296562115024142028291077220457115888383162696019002295683290903156602639551800468588731759039415282493999199309519079133837511090516719029055128238804658360271420844467765744851678163019175694906542443274664586297694792400380000352662857278299057525142618282287650694893212151651530752640544628154858586881634229409359944601142242197536546194420214613380421988796335250329513429617855701388848108915772287365160285038117612572408814101091279361016432078406571975116801361575584508469481353106542701635044737450123088360786341383814874343218612558015385928959123179551792680476189179014308350348148526591331601821418788976189200437183696162762922034811068016986221056626630827948785577328231956053636110648983456973941873882344510031782066365171428266969414652647955729566585341047389119444187064877128256487239457356328309346229359596663150661060324448578612420444334173352444352945111078431745309178090392754297463480395353550663023896344599464644620297736559884980270135429802292971067567193765009202920405317754083687622887883719928326318286600809525040818024189262675075487385668377832809773311875816027196130691839349914072095957454705426649988319473042874389045083734636001516819018621512488042134852424564324729241079516251122355704050537434561612778619918981504392927101011732254947145936336153435487406594061764155832003032468439016695671422711299740549278880871008605521238179243328260703984100324228409798230491317393386783950894224149798699063555536678876680660273423055518722547876474122083171127455840123800325498043401032545703832874739167579427695798246848744427842065751041801669406230350190168971282531488639539096674251098909589997267283714307488731260657365386136038942497395292475619771551357540361015210535820407070329547567303076488501890886881286217693225270167264594949629709743523303920107755997983699278475802064891085618923480611094563852444408463440177884972678902178598211784445024619028665117775564138154782091649151088048846500255717544499026516066217317586156875885232742447143973224562849509270595123868744269838906751960989321603666321172858759631285295906809881351500457165541099825379607422946609673229876542899359414910615964243802444625042421122384555101617252817383603623718085190356320090438275803379617613656762606190178399489219322710690949326321351141902303554109614793006797087731352039556121619118828719039412797840732382138976534107306593392293959483967073820305576939267043866970364056447746349303739068298070776308485065521970972207253893109988896593146632519025375020192382641206275365570750521042775900854238160991692615088981027128261236287850355442741962409020132825200019605017069387173835972223246867138023879881566814362904356720212534448498080921508286733104949836037021693731036116384823716562012771806774365308361150288214355097010455990533705564394037449195219745321953680967477503043634005950621978246264871004510800492037025839638616236574342922488006158869077270890904955149812987889354821585543391815926801141200309868036351417980944284913140953629122172619898565238521309395182122271434615426096315912354872131031359379783733756735060830198370778263754686670282807558816477332570288852708586944058676056732620074618936153844378386333003221893444621472567808187088036994811532423898158504416081829876103597994350475172827248831058966447016333370576745652718239489680311192180728623639670949355427105950003740055907191378359529978060196944220242315454415249831129604123059089522356307152991412869197289971522889326915762221810513797678239146618233221354991489722371763676561909628951668966507802549193270554326062887708253550196616757698202503652845367996082709233424740589842464296713518712307829623596728637124122371968780287248279812953024199282205735846304222688475775618342429995754466415270180112864043819414630428787776987034704751153063864769604359823102215127307616130597149233854782750346315061146234948471494555075652721997703952383002152375478747410055124559273204324839948084480585298303420436448634418199469797748927424996237872349470397652427214366196831011127350229244964680334737683840616049587684655102160223047719882518359956458265757469739358415319424224724098287263871097047339464036356871723776903349013109171018418144516490669814962986024080552737973092395584233225002571040810607401378653162378861030192743936769285092278093479731068816323143974344739712385297323869458644794439278710120752052868976718577522935346628980798722900818852453461116925215651159074596070568986956312002319032793115881228528760189636004659598955901245439774392630994580922103899013447948766880226646813068085817358448340400063251656677586398982885008754908830784190352951651539764986800569990298866823154831519741580859778933065767017904198131467762008210521181394600779155265682333682704290516077264631956458921698897726696713627096877308096477569531541530240980763955156204774929201348134643219995347290391041163169498789644126545803479941828337336741775817685344215111873466358194313468433631355155778224950862989140345730850991567500106031851849995712181221697992891274345255960459169449722162605544629075401461094085676348845484305583540799560285271416229397603493856854497915538645804023542131630433995104357724158422132298440489420848576795143302316599261006735437737325691245183241709859938718084221946686841684025450775691475849201013412497712186317023212909959185681328878322272814275839809586612752888265881012115721217026346215960943843891293218651629646341174029736990169641310758110091847886301196823744910175326332738485420988115376036798665437068359491565304094822658440430774874144093910317093744410179740082699964042784710839464283662333890043307321422389998971004221550946172295977854893902769962848745820617272148352242860460333528418946530406868811036625464013374065218101030069151883845347193901326577309752537538292970687247728280801266634527576067822240584037713700992012391640455968483518338165096403762167236417947862950208011590597354874594430274661023431236106838431533383435763783262482807284464446735566750547947990434077229548699644482130114732107736455758576101859875236342556849753804359056749716613809777181926388899162574910163988718103481771271490892863742540781459126327088800903045536301494204676887727307918808802422800867289048172278028588024505585070087844408227990817169951286887975805682971377306661032338668649103170856853587547480390807001276364412348847419112733230361946354328252807867425317474042468423998031274240507917657701996491826394623422388642170416749839190140993074355164478222983040473436351925100036863905294135003526707712960646463313056901078591931968858300599559480133207563556791544852070839569949502471297472583527730355046525901382401611724104494373884838288104469539677051358112923496699642489029156545277559743361605972119898753622776500320747690065523668705205697602875930981694479662867548085499733410738391310839345003269105759210558477439482503333226952179549649285290059346613099601975134429062602782451615267311739781713121614244455173441716762095342011369974546697556701034182325312702575810103651360955545982698712722936960740520706546389113846191323896692025438258746688346159119978295548538034075379043926536994175506651348980324670102731467344869481003802190801287976819759998523826703203472210418992889720449942129334128677255163800826297853610370073201549540921383242595589444729359673194349275625667868308742200268125457659813735797337695237265802109904126315934780752139425913738849209677587888852585230543065121822227051194134132488521743739420588511610467452187385406825078144997802652642394544134386208314849428404328734898789433035872524087911415107607566668523332530426999900600615855960700992193934894856302783544438294645341832017613402493152271510478593194838838791611798868855246514393461273806497723911192943606010115416303272952243264453575745447210322417809084147759325728581421188715260584278577470466684847593923277067448149282769038324496582260721020143476578953030496538254782212662693761853187571185039229899273586953443671302982430754453600006584891103158000744242991302181105967394240222748429425521311938459477214546970426114019384979887592296828099650694980549242740308231987349492430116041613837865807324024715322616927490629421682215043946099142337151705982401893004729407499906944178539075993049271159822429976304026242653714752730623265634300263296416489838523410045961981354746193209581431290761393402704023768084240402718380411069086125680870583639440573331410289418267259600646735809413025558584871005361829235017449937995594163814864284835636709865433367122981484696441199733415790286184655442957611445417652032295894633778213639747550532280640473202512247550958715365005894148586114116340665288321615497769832987054451160703160451783777775984697506471811928020770440806038956533396818583995135290000245393458309711111522197020735640519991711251636187090164245631777673313070389916404222359933876255723587366351467471117863118087544966757117282484436580023869589416881927763648376742687038767379709223428174322389817757221444802620420289721158173869656901867223386319333987872285304083170848601716017335891864250520036877431862567509144982098328150067516782802425263960373370197761574081558804732925518383712458596293190452599326601994696548669010053148364807986104357484771994922245240968877022998548847189472549207700445428779784682627274239355729208884134124242285133494292478883250769050016429724385031479126725307324716327520598851479593709720921716762872079525648401637510248459738771125508513956042602217909316551456794669887109456861326892227962904601325636112742464675732791455780159273608012616352053877536855096291254356666126186206094053991809565428281327813919214323564160724962629650462591315843049394895888248660742416689617379184263260186080994400489410066549261707229305348930311031005312014250008232182049514490289715336028572088166363756372827051103533753067275879261337416578553390095356596560405724334765292429713485441994511406057718528952341376684983581991827680386640990804513680334801520722139561116406264005610523187363046390456246258828595569339913200031438100431347339115502601577774495195599791775877164879673656435288138866734700267440593068942077321239494682421320061620091697601153231307225850737177344249057985819371055848027121726020133248309516904505311713265918960685574833433346716602871008762491283905461512415969399297719289008429706616365440251312327964012234263976844197640278326038961244241748777076102874709169512521625549633988390134151731814335596113645688116957598960549985283273725221053557412675968933249395831002759679801852703810233918794405546327448955137676076509763712077037860914067273278540749237313443396671470898234529468642368735038190529724079744135429328077001848867150255226720047266861523012308290771003430621988191817946550327934535772158748778387875420072830549900032178526075747703182759552090742290386342303962660071478183636202344727234746302141401471218331512867369033181107572900943945600823814946215187541792700026061831089487056409918970182983244032210111970541584734382236364426687670894893370477087174909362772456782149264613676522857756317390337449735699860682421090946115924359533722850328400407771905581873570920838658861280257878469183792025202345563991840348461316847794875103409201527823995438011209619907534456153468811160242387315393386419298872200564436543805255823401389906254374177812022716204388416171776570824889911360730329559198171941144717370685734126271121908891926693218190891120871685190243011726553257453225669967155597137652392165587009891175786844012270760036145269600686253120370338164440442470617357898408360177751487893487366494562326389300216784174252554622233533276045317470393063329222529445553789445655956662706031839189171833884408341640637433690685448424495306635518798987083207349356711715141603217082441668899349073443044552596612132111650694061307359962403327867950719918490610506863317577460929030929361674976773772327528790311348753248520601447087834186967953791616495562471622319772218211912884391227085583812151640722490147339946450545509471262507659737315677955418546347728036070238598598909817481546282583677684742735926100313651741460229240655612938287629530935826538129308734573193904710358782816406782087808692423610357018077850115836540882158707522593850437047262275812100479151352380889514691968225726764835650154765981552390078351608462772478899652924612186100772496629344001781071385306775606089716899699728652458463111429399667712744133694240181906218451584239842384639776041884310246078042582195423742823855853204546228058908112853460416097397832297157571956659015609435846447813264002047330529927876571222729307396014709785452422257002702414866673662417225093426276468636277132480244736198808014719803315943015906473329098752580212648207847350246479743945064718608663779148937194687331243408402341336616815261387347354140467010542123421277905248796644073460117486583749247299293096390344871935068198621480704075479891611485821234542214832199366124227366921212545737683172874260803150071332794067730266398687309363887109995178082453188799061292633685137648359027303754358907192503862002411717925365383183574595572498950049395089950501589786621868015382639855836050006746988509535213023547311189321053331995853836037932752722705378525983985359962258259543697447195744579684773604297221833901254071081136198634575559358329889977330185153763919247855815564367962600184051722072241710097826476556225545628870463863551763157929572260986248789194731696897631455117356030089995371782114156230349934409558114134870151852517387596482732117904198138172751347611910219519102858000649146216810691487859926371820882166251324430722481286201705825895385748227072891407889220573493586203178526722174625401385999137050955619387799136018329065032273957902859443337225208502960409535224332846771128111635165373771665241820226440485124556002907234083984210035320855284002477654267666853840383602918283358033289994478555520816314876705133997168086023255577043137415755656303189753150368465703707581516417495387489311327762466827143656773064782756185618514167026827998020408506493983766635823603581694128247387138583982726917262074574189587826005306151243427918052974803008582637236464760689722051855379293132071662958220555898107816133509225826757582620254339453529493349777612815173683521476446508948947183939370233028011519920756829187863814167146558113456417706086517511585658934817939155344103616235248048859598710914601781864935062901403731794090578384029280858690516702744676126896868256335511512930959291705795443504485683865563667609129507775963647814179312194039663316945506354555658415241055201590385413740837157292877275384568996141162769614002409071579429847676211373297671495897332225486826381919161674718348827105941172250062361790313303751560537625149787050333344776128147886338712149260377866047403055318363560001587922559195755398832116660661504695375757975077469732639212264222475521328300545848878071613825602291741438413550835933292124300881865341794344243059963818627664924678279423070069346866457043110027336028551748020598018216659484524915041335161032687844138236346277654638387540104468089264738921370776944567432060100738031612961833474422078370417867296357881719941331990200261558461086910222734398399771663447521473206817052789283802845651028351984892220894455944302830465354708670481784110297853644366806555374532235755738299993663125708437232532571782976428603475838070506790374724413505263015688619102108825339792509997656495616875478393015382364825388632609563298848491445193141198107732755340717795213199700939160313715790084160571569896552094532378383830379636683954031031031926124442248376894045130187577629717187835020167627819408912428902979830268497328115277945586831618249515981128707787716274262204212570996441148476577029067310791266983106100956886354555612236326010605675197327600274215935823458625111259625657141763972045707492743045226855144189706388238614938444238894794184413017044138445698435183780432223029186074511287430092001832639208950662033218683200381737664268514829544189871389840810694918903082307595352274694979104751836005772207228156485363821016956599996140421513414032552552137953484339814859019077515221774642945532515368184389368991245024253887990439120538154576298410532625515297426801627347746538845317006920518634516012223358992381145228179594792992200600718649502195448106469791249738703579116305590324387317595138552387494515660567494174861352344430850657967186391990944032352291061690982570869562877935767802547150399511751706322949999218591554775023089130849780486890312518834540265824701386783836386309001336995934313809916758552658899932932903730878406456254731879240664085702176130439056970558132964177158738162635272580513701458765706441116819937896223939550694678982736881256444532915180328289385261256811392026701609336371427456086380022219700782087114862753553163960605252453735692989751175130366136007563593447208146114600450669872197185691319978337454864497091984147214093990204538698790472159661416967350935618757728162902956377835032472457278175276429472604994058169735610656633751270163325755110293133519464467886657207788442250105619358235157790217733973605012300106616412562525348961839809111488581234759547554761290284489700754644078008384219463059914305553317729947822125987767614761073099205477939952270163907516818371751197483843540888182112197418405520115372610982232144932635597192238776992619603511156913657591929264993360969274787411491445724391496951748115145135252796491240437231072194038772178272202107109327276139842753243197121220944787319287621817922551488602566195494678125809897827994645765350407216580521497883318557864905103114201076108292336687113357222939157981369100911314019296166296924028299771216655616786483217218145539752050239400672667267597667626709964766213270209516195837411222204770180887039819578207546272060234406743585218924895801206569909897503741310800988031950762890906915743299325632592278505237263621307721341029635823114521978556767252744542619605750810417772064988116586230166801575579366650711226467778366515580191341179800821061145804757923490184430414636262359640389973574746171474715781693923712947397764890017751888665339842787394847452780163797398610960694154262698625444512079653999619693777246771906250508576426044031823483801189739050742858105660793456563577211368033031238489149719415022156672874395412417886385177222056595333329576666452521697076471647522849733966723912040465579334455258557256079358108688450716046457418179389131686140034031280939509813403667430161956348720747565487894107985098151179770303113436162427090843991754823946928364903581747623176687984994964617521160386911652412450940676031691940440368950431892141894463698704840741930383945138329400749353595686557767992287810713188403127670364357624691001863968546366403910856558160653068356227913935771155236585921721319634530581330635579624715048850288045906881395176849057039593397569625628185889416120198816511934468319605987787290949075867921794214402205653326688055596721423084865580803760128829517936782692861367031128344750597183275139614395226010287344163451935997272286924749093692253973935425881010872758076102578295916649926111170704342921868638749094734801429960916792560274730188346190716767803942787788400074862500783316116318045467430375071945842921339642936329970835338003099827421951381386891257000116504334037833798789798649605259392100621117562650254865067301589777490710056133416953814268218859962869889906902513051393340421958526211852224505783238089076470565886056462102498885468509336668738637919801564560786100728775568708598749170552465593162562925282496058695612084816388767340712566636144019970341483557133475630697872682058957332702595916382302235172760317814749557148339141279876103527635785850707876060387434531668004478951920614022984407667829929579245726347169937941585689968262596931162131381671904461509011513824516390836686806264970658243238070592907110709846140575436046430893066737830607157809166088043628391058856408235841139130764016420652476184256298611987380700574876307479476749328109610281932891564332347350626929226159020797375071826895072909149108072078147948358745078547214912792317311813320829648986239427940601585993597935932937794644731658760374601717814028586676118345959703518753975545577570196586674302960518722157047676913932109809034356178117540191768866173941868604365749656686696793463501268416875840072759470067647566239929390784085045090218655270843872862394851667001100711455341845831878256660418969953895573227647452572777077868495423916949255295933749089909094285535221509922321762755113411385716582409725769019792990043074333002750924483119092415392776625776502819994422089852592408188898141238926114882212602396615972677400346083559686599523619132582436708374740701648242183028277922981097169115172113724882620720983876800770161019428880217220697905167718173689111920534353304593857175014557624334815338242796279558352888896117216472400833618162655064437487181025151344313821657024589380238533204564815364604091252400196682647780331073459127846915603199816433638505694297373815162564254805558628113132857099025553317020151449303936399301562477962719703662600288267986370628192813139904805351523549568412470850567408094537999459613951017254332667534074616618594867573365001940799826538992088874881514380227694400936129746867380324424667522379446881534162213998502567138806856458491313776862823453329272887479837811262557296073044084028602197094162689863875435820681672179615100435246121230688840263137289842509967501201633367384896263215589500753636862092209225982530979547420851843542137538768452187598664046780700491381651213257411733365766250239980475078524801616455390729496286407634188132515984614460513579377523920117237712660985797642896395666434617812135351153575580017844033882133705569546160503637429615338194256066309311109181245321130431865253258620552676117012161150358263395145409258757343753286701608046897176041283293403508381821463344841841718597252385682732683658162084935145572884254364670295125246809662539643540947141144484940834876524548529425040084745841386453404958336676950738967564397517528957842261178425995358162841543468130347425071710418408006721717729203634929979884757912432099309663443183688286874182997963297522252001654671463908093520525953436526960024023049367563513068955075549368391812684591606299050593210919917687621967359527362894823767663882646993197751760104780032766729079520025628543989877800530360215284245167394475260949692523780675362200536836524185054658568951577902630007154657698605690715689107856721004429388773098530505770135628483777490001892400754585975279005965724712616061207539106612190096752397557575016967158279459296875005967628598593076631320685917486257818962631502642406878143559934977895225266380530574018311058761881625032943390387967008932297453497866276111827677758204338095739603418702633610908882358108758604858852303460414773268900692185324307521605185456080572896260759515632467524971465159937423547894496945307856089662597905797699586363812479809556343449203565493439811611132306793377690137924418329750521314881815868224669491389338340201884714124974160399066355729064732831631685899981711210003118092421086303834581791759737587559585096883929643542998805485249910877489156061528302591267671143940636359983616335877674668735391056765165104620192618411598414023459731633836120913464157734296131407366213528103533813973473239035718913509656305464606835474984727964982800272657718304821968538103064651763007110618529311562232767223144511169439978399132827707068199879490291056531670008910264354580596508863287340612541189611740380975112344760634834020417949164198322834431898451402403781079336442124696654324422333611845447939809702162949653873163113729125573641310058991378939041452028483446116225496119377335057120209437771151720778382298141072824472125880309008006748617453287168061424455742671709412259841630789678471516374350260837608543006098178163001524830400980697106561975468055437953836709582832509988823721411574579085319817724735572760403833095365706823515480145697272497091192282087762942855904282928598972633138246435418184360837100712188120762609625507807793967929236148789752627171310787068801687360807376322661167490904315360166369143092072298006573069596176681444146820420609664054444924211013746067354710516928206905865691376410397419568408748047057154103414485302358352760706203001395673777802622383061311245621618332155811955509293552670827437257947219650113349450884484290525863610204729945736646256864320518597619836144713832123641489432444331055951112883473337129731774601110884951922946170204079792592910202285733973309175673075846739520048377609214635468446943946977145528892056524997557154216569454660284676406304620963481762135476161090206074880903237848334225578768370134215739685592573405782428432051090356464334143244706228830137891671365421410364120215428120651190062761013883304053230431538803921346574138605885800225037473067800480208143314189520100710722499457417870336628977054913861503451679290807692821027261010008021725014780532897212965819029565219878872626172549782381500924169013579361060654536285312441423149800852844360722684761884689022245317370896405275743665545975134811837407914944645047760720999569347102911672344210106964645940064731199240426968925789389602964208864949228065141807425726513365258872765497800997822510177206150994222342986836234678166511430908186813035541086013045215319867289121088119737023845587104120894789710011270847902877434309003871920707002226595199283224179077428878413942163033085265703748374966165374258212005031413776840391732904208243752250331148652285730288492871024809977231058713796692031821286168795430745511650937903688977987665801272868292810817044179974381307698088405975274220225872110151126650586547628689650668008035594384572893125206186971876355892950788637106481204938000350245208810660164201071420428544076560826741111075198321477836725627215118408327573419581023901053071002612488218389265380549445585059494760295519271064132384480789157843259445314494059911772332258853749117168117734277837653737207435502267309749631513118208498960981944961203634398872368242882779160548788801197780840379897009853692653037637139745239651385873070921895826265098633491090087548939470254112092561373826252163142809075135279799242677417692803338082858674764343583731355731252123369928820256917456306754534101305380495479362668421228902721471644822862740600484219119649361082417648320090235743150306014795027280064844949378006120207306038822962161685703868390079020074193689960416335131888574514411373178790665901451797222915244284944475126093917783487772348145465933089653935921654234361320338725523986936132869910180123741943880828494230267475559238785691281056323650699772032593401432330607268329824504121444070123120597367788501769451064000640030152734446258911756851065439243843304726607371841440748620749925832473259006387951456248029983981433184634739694447081661570036012307010642779256258587824260741576729615954960584923547385932815215288850890112942394729173146453196688561983151173094403604851376681113475953911451669013540999048915385146892610503525152336714055306607836751776320786380098474953381427431818681299713744586389133758858661664901026664728578499678393567941683647180365143487897643667526601584484006108269785032557832730634893034188802422094887888482225810663526948886531595587954194210817142191728310198998439280637296319853312557453211444888864054157461477514049925310763180243945455562094384730245121567536827405846939021436550322398404302425379626884056849865448164579561467231703619713028601950312941435267596806689227837506617476310305633588989362113142939635947918037757906895450929775758967553382963562139620278932961498393999131567233697078099355235238415378092908311280770957075203520406071552253244725485384956951455602289839928763008054426691978161881882497403447467424495379670021829428233601734503869426016579781525113579564395571393147894925606727284993406393549208760403459882609703598924021100267517562203246688555166696534837483783038126275040695895093852105231264800642236408671309898150560742667543325991377640138402806212171784134235855646376053147661378800303758648389318894397913741028714190695525732643969194440913770985430150971362659645240583241631584992056431335933160109441214626991792938680727615162348882873794307978843545591616890451173243881167841043228621474038531848657152174340820789028860380004965757356140569399468208205534090333994653526374548125543728192267340794990634550011267684851134449194111170851182779060936149766598778265010122477300096585730175527309150560632825389035170142338632294264695656494734047714581282156329224036668984023090131392764368293984253535387529581271479739147494822037488517291576016736674561252733534247594946516430716286345812391492897121247434969685299431555346608703824750388653776611552972816224642951739332610315815431812059136736340953432537621174935144294350439835092483734627282138172508012014895237964143287290839348391875873638057154832581258377137468263941745264632989258663862928948645770375432593551059666408792870083944192905843205664661185643827397266925971530953684246567972561303864147185400337526551003931942893666362276123771981288147280746124246779070304314161965315274075338757685515518541876848178993407854205309986369531657632512981896263279573301210101424503279820457661525418511855103879476972895648893608149230149011612983314260261196457362288361824263805366522879777300757030653328641619098187800111755314072693358698939170547797224711171877851374162978622907307957544072795743777933600820651867770424357675324864766726851867099995936626348182859022493633951055990246951900981106511065108025059669445022052140945885990259481461833263864397791289705456585392452316863357183437143605213131796567515095702463946516013362209390085168791379832259750447001194607666871074797097238845612202977392464580884850152548695609662108156752878198079623911088621017022103197719035823741847743475059046955705279586945784752974326103415559523944505278988188458077948046927342850341763714925451485525256344476859533287059667427872680083790753450902530429350755279495380687160105457472432552004535594163384998365191331692463727264075747493274706141748033950034333774270939596076290588987050351333551418254986046928293844914060960339408300440185095552473606055776154905400697619149386102870187814644454180435059194059043943131938757280629804007989043176039797287042239499437683264979624190131704828855316060057779981858717758873735530083431255615951762359190205756810602239008592770564893058010121917874886370642515587018813728824691436185257208231120933887118324855356102780959074229795140079042225237777472612296785853182174956121226879892306850743021022786513697049379906412259113497148180786614770979287834812767911345471246353688390417012863700715343369188304628750331964935645621079792961041653647591176642157913650456932640497296001363534036818877050587295364248922178010520625602869140509030125472087216534943613186336552842050101685175158644695668890155123101738295395521117785688865419283827116498679936531486536688497651012161723737987209274387941506616917066118825371566843501370925069348353010362116270883915329037415812084797796841762999951560949690947243781156626535964342476368315314738595304869466009407378347034367561041186170783736101785616919199886004632629892006109551643217541794696677442551457303004014982790484780886147516235798633464785203701743811992814187974610373591596896122802288947938760220213417464210093768204113179119329054211461085274163491425520608464973082339218592942462854681576951963174208139898113783458445453952956260284367628915947665057977996377801882282842809583329495017546860758016957141484901242228621619897473342863812502357145904697807376043281357644386965821795296521346890234005193361870754184144790150652961937443603936675826813395666644892104933909419136960774403326703410594515747285592254154876578239540878198156402836495917601290664019550051844876970218789911877437682674087655536490682106162294774561302003060776377885497634830147433199916192720236013335344506902547555460536859580824682973524892381010177032394053904279834362905438888041572422724831150909010767004923959009607983237534476245988773806446546015152881982123154936890927475722965363226321704331619767863482030220851829345087326321033988146285338829846691521689289437915389264681528506552813768489919266047025726738425463725146322091456484605248745477400726370170458484087682886764613035153785407228446849782341446602875735305696138069751478616686722483101247912557973835486617276176371044620386806856004533100698281840455528938147836337432690076557357375146986728593476101677703765400139840826258498726103906789396848894274802136761571556857189596918336358785964587410613709023601485711034437343794590835956397359929308475534035156771027849594306213441588212293255870832107214769632419367192566696623887218990541223085987201876276332878803003495119826872808850940435600352407206756139697904103563224680924178449443990029473644403107686855279437907583693224503906039764016616818296195105248430252857421886311672531295701087438152085353241875395495324209428755013931280668454986576317820717268616229425590462109753326388358896254393275509426899646622431201870617292884132797128753989341040335486013872931534931666113594495648663171434731807297407655858075805661825864546694333839444812425011343545445428583735025647758017239080519781647775337498377434792850383345945645589755508362466201517112847791696732349873330139254635674768114102063861604866712492015150892887855177212260463790512138239335517921964382174302597042896866945982966568701503166507611780575564917009605759867038229786436839969918445445083470306006768103642896425770574090424168588587006510117478480833444391313131421360511904927274675439965906770596072591470057294319631487061907598642694257266418598857007857224757301852078790605228450413206584816998124473151200234388628162420459976992619578111381108099483453536534424183318566220194525579320956682866836833915640915295001634257888108985349331851465243615693382753857672612207219835408011889726691628958516581202539418735236044018830466482269800988424865301998295674258795654630592325228079057316404251873811515915725270303993823167158630472221887023526054100374196647602787401912606142954363197340477501751174215129812611568365933608379299033144129115883223026518719864052460175101232365341813103047790784070704376887170351086738107288943896014023439806140125972569638218065202490511244290131740643329987117015407582799401057997565066576248032703979563933765415944397897810535211726327075655113017445716214144043403866185588000452034541278081778287193023545725200640742313345100893523385250638610409753903379113937104818127747931182482208893051637972470409723295560322604498232898157673390162631195163276682321737236130345921521945571341595522711645216531183102283434669540018943436048160196976990419465767987713948821502048169527766496220191799405385028705052093344231857703700401847478500394617899912193001895110042962173642882028497364599311819185454567501050850110570091030364378495647046265863092683099777396451473707778711586672378041587527266424176869474713089158852823209053711507422293779874635199656731180652581374428068221163111994673670771101127709853868660673648905837610595274483463276303692235374176197254469320284453021142662779457564479879315395507509587012884100605690797612952132912348025141552460141427299323833160840661565745735251895161471452754251751467642206992084559145208569238030840081212301683295448785514452572588780757419435086633825250591303981054829682589887828958805881135078635817002874066962797637466463571662870785379910436914810458117257927741368326740993601532234551403057227694820767664385435701038348111891863030810882192516736038774297981700600478348494677644841506850603372302364651241622304855115959050753297271160752203061150757088973710811894664313077932904724781473135039580051348565866183488611663013505781876613027417916415643936605035923494786266198427509291593551838688541933495299546180850050163547114476841808057149899565551428038274783838231001413875954339358581529548167611472708941743915920725994641863850387169257862391415848261443076034356007849416585655937090462480093052398837506551088267926681943510643635441273416364211739174349825739798886033833781455930986799058722765308639234943829665893461023170533338696377153823380938965365037723295526257567711557499817452286315999510080986763733345076743237129256034421087823692535876383948789973790432195261051996864780385292212696547406856877978423454519604687595301761257629781646650590822551022776770821444457797499636414000942892540574043926236360895507829033229493666854763738522381038478508640911435575795808871412348035316639456330846591264298015764660430336904928754946721057041171146693712152542395989444697466107878886342826145834205498530565511246098459048862625774668075658967209385633069822166699614867017842066300737195881947631214824627838937895593770542643753167957248380212802946091299922949095310165732401889205285788844037615704810137045143000120128986432830665984862251585165307101937862900137924856824163090178513384654740284295344303083739730957714727182640082760162885719147871265695359185239857860227704564312357501580788950852646263843505055625689945982825084953459792023208132838166059382514444838265271324199282573157947839350394259629881300307492404828176367288481308346028066090217010604693414121751964539417388396276977195101245058462825262962721608889856103714251338307562150780680593758373873845398341915594781264141189104155604737261518124463881329325234117520890996749114143866681633230975079041242079210699815953971353742636479902726966085971759916960094272859992016775657234082027720666415779636590821096189191518883798273816084684590935286829183251223302591730585879859019726687682969244774756055424440664101412781499589953803087643894904802065607594595839227216334806175842392908464521695790550856120396076381663522617349567283559264379518422796237334713505913783724967362191984282590559116352887986567468250959885803642792650661056483633031486897838671702611976346470263094982947041837732655180365155271806516263811338901874258324060458095475754269920777536623673720761868242039213950368420920241901177567916706827017289805030884870142137142141852125101452819653784600156278495065400179301177683915412089918589664956957762676829363915513243741201073577447752906236077468214121111705217108598222603081842888758906976483239429138261918415779779399487503409443891812988097342390760796731677778853814412033758159963056873792812159852039974753861454148700010269308886441082906781426587427193406586263923957995469920191630441342476140715291269329946212436860105451981409923751628967829556765946703886557845433489222080296524876163657667978379752311580522052180598126713448502683651172452285971116745133373868671140094273556626157621810821170316043219600998826319302370229899159408176433012847891379934499509315575616848444319913989348758144042136822779333234265707019649810734975580057395457224188333943324857519520071036313222642698268894510034522084515292873909499568008774262250892468995975431498866904891221278466994007300982629638840201173218651224428938146741568964632905590403121119213606498921812261244426090316522951696024013293815339394664724225723669098469065873054557579859976022399297640446368112125909512115142498069678319468124440858465328651613196691540770924393474683040261197523986764786193307422225958288653794843557933157351959476890321196637031788130396714448749772242757964477525022490357937131199693967030612346015974064494486910218046017039705064549342602175499052957781653353207455955330077119291616677750766337241386386129294452580859167688816004222527796646355810940172382093198021167465370100991226344725639312098949650618011312540572469578451607621932664302250329698786568182918386304460853113537159732510982238658355603076642203180030597032464555620971431436319164133484391456896518087689151415272256606806192445547255522055231358344352892596932186122978650152581513688829715143701095138838177196369708712293093785673928171572688996849341378633318282223436055870992621776114102550971997855378939849969570344526276702403492206594687601552587689359000184885025712414049168304773602817594504826243612372988304478709726708542161352979432085273741385864179935439835883215878131099281057258384998987544550373322256399841016132188636538622873276003127815334366134046201625261089642699505186665066798732975972795940014317671307118762908299117166103757072251540166351458844853574167220022635391180986541564962887229503039258718738583554902956701022925811171264860467785154274137499680466376036335076354438853653657666345447568191578912791474816665746848057340245738990383599321932312391827450090882356569063258669626558935712368766604701124903123160355266436199581602751728303989300657925926705652865920040405673358062116488538023543455674671407293809000471769411871159750263639772938248912530764478440499931152583551967566177268644213564019858253800517408139423081508698444377590113392032662257208472489813552408701323589554113733840568629563725754490358293033688560879871462911965830612725023334930080659032466867856883913949521268873217218525135386586778524461970714099130623260965452876111879115178963659288336081384837323507198107252126697114471880411077385153870974828150056880095080867910502878354988262619647114329020935659634362338993654333152809540226817066713625248332184291917211615097921286504021847016382767531739951562911537283036855097201105100175698167940584239724096579245519599157793534865537690244981104188709444541768530716017851848485514518925710729292702797323982424204545009029541218719324666256250990941389060261202714261261156590412970489716598932048254784173890581133174479115165826969108928010898480364510191440465636324363345954654351476319070157932507722781210166635055433683002112567187947249888694191359856928774295578538396201903393172948624889082390523865526349155019119772498167676311764152176556752981933030714704368355330486128943122368408820438863303601551971835148725535619196435956930525360530361501618947353902414982801084067047813602182921804358359862526627095729497603355532319914346759135708608681423522026443841837035702816724435057006934623109305307113600663501253712444566516511380485820120148895098530034278689552402416471866768168438440215248321318067859555694147332146949570938283089999602025607557539291358883776477386029165163079174199490713418383741837209809309136317306123288303785254562267107784979429702361548842248440229740781405215972405177479373861854570526915828346080746876278043081480384752930028657127601611554500142638410531274995277776478985675375403474459228125440160987674947978759825382319740283358923993221700314273844206658718274539856557461423612096455618074716665736305662159840661481407689900891974446389359831911450392340646829445072763578438438934185156216250128119295332970597042926014617940584855758723029061463453052025134200660517739036051128889530315385056566418740978626924857019234997771591560293390740761750325162534499010223705684725068616196283759994033859844835659015266069432640307634807942081972222735647254970501404584948780881516332161900832329714122873451009325673410575274981202009106988875128134996649529419074207511287252671043849348804577609515973055886058151176701728339807545858276645096110451226425970593728284197592272101428125962808361017798115030455797873129608930955095576623545348751793418334312511284791198058881541505076374401012411560380020880633830153614234469018493730698622946642294037554712539308406720788516882565650785366409786015948390539280714705423377581251202547002734566001768054686242223578490702820525695518859861285495541664274456940979993435821566308108049681626672082925816476938592268237411764264711500768129516209241513319228590003742642857957237339703697598756121583608648654774675452755419202351137425685888658147509324168283800386311207907560223806883203994853478933026469455225379316190533214061691390719904981021595293828222080467344537971518820497356432204065523049402571948387734618717669505029746886872355203492327875716898208510231047625058946190428875681385877207853425035744699740684625862138299281596800654037905122743762717613120410119375614938537316753096247020101625927569988534788479347051152577687472278637349614316252199856013716354826912411568421674480431552822477148812675328794352272457024490028981725433551749308344371732061188450400467890554245518982965547332108537113721133277262212973124647583117334008056435166494946982655413275363218159718150512168543410132698064856838809755150771989455145450000990543386191559709770969001041236011865140446937217043677150783367328562387494476036012144648783961506095530108348159822534157602425808914834177086397936687138026928516725956355976166389112600679219326002060985041458834212523890407855292496635897534752992689376963758302536581771953309968136014825731094231386241478804239673518770979136120365047527796603732244534797163360779961615549059893205630208982805584596346205596517732967712267782686706240715277562949778004389598689240921140374803982258270890428137619954594173329238347952603107648485424861429993381860381399817043621876201531137092717019421959240154000365827374921955760719768876178774026195553060861130859338108375928667652545709887112715199736970288189155378060424656674579820464435780651664557851240880345654990531758179727608739131104965861813320096064154763996353367370932843477268619535616975396807467820763922240947458862762713466081872904118366896199927193185733044002612232739919579150888576125248639179766339868984551504573783252589371299328748322959355893494741835952648839649781664242528521479911343707118546836208183868154391736253562816682778246525978539082670838787114337298934607018617456009012966077393358338599628715454156496183363025350291184120069261679303530437080814630682802611935988316835070793530844613597672859716419966690538012135992183156652907902023418544426770412764485458171512587407849995348820319755635050829386295934003486471707679323070415982859314017913239600393993434520256352600252197516728084500195544049394858756663768857851252103806870963239190436582006396741387794007073487684274628297149158715557387676260804561956876441333544951380823846672427876748294311172537245547529096196261242533118543298597464679977170291928301924361450591065728546380203602372163686581135373985353532360459735773055163868208443013763035461942073099379276852948583773636138086183753015440953101797982804006323849583866274546461441689666614805442549298957809003086193874800808657291332264270316539672292380084466109583613047419399087960170700339068810322125576744053704920549011312269513717850038965581720450897553472822883099975732939637632670646556610195219857134343730808737199248760686386193571182843054798082336731220673306693644205118373746794182219718499449353654616650565570668759993778271743412351522092547691376769871710762709230792679577711396632154403004292349912534039312996016670764011051395427928880815564701302512284738986343058202839796044603808863479929435384642069910165152067782302317309739040960500048530900725304591028005568624131397244515957227989510316634396171637256877382283431033362450496433384603829323819972205689278259771157226069565226166221567875433274819398507029672717930183735915060534076489850444487144439990591877025974120846626076889254391666831844471991633369352645146875346602513692691126706222310896746410005181895129907839384150859295541220708345570010778760979372822125638487428276170879773079258509087227083909119461063927346993781592208125656429933833882132252778615068834547858748749312331138344237824042865057019989129882085631467041831288543951457655878334894911067726577606966063513045036308390400022346296023284602699208713029925541261327649380462166723224534002996871494787055156959245583671624564716860248931957137289512448550891119295662366728660498521861311105857405861133294785078205862323997410134322621097878471576774440953483745349173409738988182244746385512701493305289441534102922522647617046975993476759558768004816135993238047272155729992464537906252490599520867835378611256145205418600346104035749909805375233489671381228796238805549829340654738913530891837458803604839636967446864963003730651129546755318004317045254268039262906613508655313735793268113083771085152272590707435959743769605096538172410907012544675002283863872378040260952424035724810668526063481629406020755034573612023078384707378039879553427614155962918009255519709018470249882894672906264444538104300189999691078920859500164323647530871249173738727645721502803699796201780058615774010278766860024578764881818116525389771447962652497035090445705610605426339262924100595763839864225514224809391773856560431236228856827351371338484576057202784211382692519851480694923974430355948510613013600746526471644549075994079111354345183878290624099435756131251930639103375802669264769212581263274757044858751273623995325468431245729407458536661297787861951433509881186913407287835081876066254312838413390093896355236243956696023893154172427189823358861946110515782364109001553568978195613105547887580910342847735302159136110577919441602568050324603301717769260093724216724857391219644982169027231632443437103109667075512532538604472351325731951974655527432824500529613132110703340762825521075697328458153403317296050409533568243210141145500340013265917284404253182869318634087520424981910134461105371713756962919712249571080897017531017862903454667180295876872371373320511110794425350376977690894273137000359420679220429112521937695890348345508266929418546113757849142717472182212021702060647375766307669658425224951971753580100966888505651361074249114090031145718974948844095976884656623959019303563141948347389102855228417084407171642221976111608640669921825612084994627011315928119443867096923586513779447534361316229926128199156614606082138326637653551529244707630273298423050056134322000190952001304828982328221084045309845254011337703104302336716444003697630193093115613168767946495088951084062592405459175201130917908979581110865062103583657138678061603192523171609697594305171453187102389125293192068729946687347985705695821694973328467474085770370343455783385830428331315644553316661788677244818825975087847184473564930388095653260682470131249266382154055599644619372113652163043946275469421857039861964918699151639888871695528847973145284276942195199189384025650970500227985101085721228754270556453530894628694558068039911653154689379732291888948880998476531906413035639350073779672759543380884832820412420125090781796766041784592871061881520316253374606341880139303627086760540014126370995208768838661003494827882970468711258060710116478135368503384705863244534029602903517568342953561671475112748171029689492747726566759332746911963193308538273363742709236653125621807642986553241366338098350818818671991450148819949610767823773315993461009896805677133798245200884236601060725341228139078957150226504157747623849103961066915458109437241328919303429806447951589731971238118282176202082901668668025293895031601699141267755130682403479880406010614009858034891361427886425644265949643196410718680905111795578599895653268952044466251602056378037053024990958116392570889989158784504056034654700871895110258825464006376452493420273966541090447193707650214432501244879744862998659812931578308981603564644073349285886757370181233375273549343396243207649800617601973490906392269426337985828327420493813977514582052692107233624057319920151977338076785056557927951883842142663313513106097210168398299408652028313805164016502929984847438803981472009893834696847721963571641043334740931115592663235243908889329352348145949892857430539353589531975871635446876701383627098678886379848991876640119604563736550414370308723774888846553717463901005300467042445530890076967116192733154050530024248722447413744406254336908784386235007647186898921317709723006733282991616067074495600570239774158299936386962010747431698688654783454650636608713096250901827920937148046022064421420037736942462102840695343033125120497261898198412113574782466858680872323143631224113253579729243556487316178944135124683602892168856962799721068114663356758267035828079192523026294960792697934482928752237198564024735882162461959091661090066202585405129579659000060475823305807207308535142227604461111290813629991611194472971932715714668899911746446612055147944291059512094784206602441404665981365989818929337111901037043065800977387844081700677482939836239654118191243653766219778237709888550546712279859641775823158934672548525878261215049059189578467025009116575947145099575177659452801149761457795677804715880663435839269769860566689077399292053527860892375000897000691281916558402540061086309755703744020075085205792746578291914154763309743534073134828796678160608139726872131506847786496327305090382113012306691156610037563429369217923475362714823658911741612642542547379424425984629959530240822812357309089606732640735501565451684563773872139508892157690088505606560752275330539255344224996507603073108852894089643967297528964254754311260372000651520240767691502198612287455438474301959265409809098734770778895095234049522791147492722372759741806586038296297630209627833535082118567993155421103072446102208230023615497010407023329661663049195961149063099287735338149877897707971836171102400808223254256691173074458107700986385743461367339758076676299105868700592486657811140540919663067591026649985568770295817928742094775631769054697960222464879216186717398425949330521568697437846351242871830659772127077129333156982383457982119090570534692301537037325787640216818398120169118141223745380761221567946922753046191300996521264130954215065058106666748338064806458055295839276520021876153500514849457869908310950179607106860147403794293400090874396861349909343571882628066583395607878551284701304183197877276098751681521515933087048763770441017828001930385666837928566403307725161640499250156060362292528253683159802337877719794505174539867001726933934658766863061775747731625019338934585038637279373921877422708012931946233455622024685419861541086754292872902291683070261351285175781759850837184159858288482713022355591677764532817701417377428452402595335189235211969150011174289266421385957983511178918698644181557114774380193733672452288629051540952850998595034923080846429912891861294395298509366381942938600276468843962605690605805878085934887846778003807219854380608248809691276823605469427010245028811819330192455578072874131254440062451543470845184934317486291832546167690479676126212923772852713307957835230983540173723547073467045450233316181446251091401556058757786282822021585272778160556471263696824808479971887101202613405649901697649149970400128032864794577588623062659534300446256319311426025148465511737428302823662536623375513669396933523122688573880141056946137082971226736580665666664350853374920704740228393750828376538951117378459345113060043392264226809584212768486390576848375958381200560602156645239898733349309934605609551799502636188425211352522768976680260605195386257840163628642775588775316777856109908444927888681627956516466900961324203465729598659505882542850963625827981096425999383962216189797025867331853382444769067406316166681771943108098270524155574419793155205675452224075274626807104963895012573100091430988726769482072872423926123054470927072945940297573572031660244916522459643744020470769563858059304186408832769502481423285557954256127421471149938124401153924777789136408900490704143550185109533745351796801306649767653207794783962501224909219690310774207531008882500258253630287423816932759949678580889984931632890575961975808498830949065821097538426549341495405630709774939994812050104656143312187298556660031535202781962358625974503770395156281200577891450325369839467289192614548296033215986989897445970145266262541854203329311385710641054131524624944085869511193182804906170298249657309468131719644928283894769726423093569692362336923912724307649568298161633413668871332730310194669527928382276385688805783358809377346148537131479506927976913967928997554781866781341402558835991602313305665088471524007766161983861296883879914528866568300608138551169427282907831307459514541597464320897118414626873822001245796647375469237141208482302385529808710810874656812371412087109285278770655868599240055188661775873735363757697107326008961377830159806834193376011210318690977039511848911189682895889637440078186628008052377987444992389760690901203981381072380518169052146254485277763296889977702528777682159865119131185496197695427678434872634177198635500970705961852763023987558830924071239844597250339893333317052924383062827274529086420563365116931197151561647903956392319476141033900705141981515587584552053250970131905581422754540304404339066078829152341612619456544083631977247156417358916105635399655687495825086528284265839917009564576460406293981359462323873508279661621731231325675180999094182272824338979748572584858650177696434171284411883194676348438960034642333946053601769700380327778870069544146145045022757042389582645813625889513567088549571129285456906239206117949479429607907100661207770150363277699059969590002906585002238704184961563054249173880992556068349166468018868649192726070282424913506258499830285239246173847399978910280526795984535127074087354690231414357122393253122880445367066875957301475874426383519648874659458037056560160129145220644690633920182287340086014959349633455709000960752405108714639005906411742664781275071532386703408909188338442620645680315173936942913816187838604089630873620410077878827636296184998173467162030397018152566946459346033349881382784101284126505711010295847163881365661448195245652730244369072894390393761405058188331569440283713985718321786932720828391981382946654507568537451258611327302021176987942395604578582755832352697996629033438084992392803117487810366211564226987002732700289692668089905370323594696147829297560706920706474408468043304305633048875483527425345972865541139159779507371076390477964471032212348472481891442692090992361223057962317526469417823154548617748461351872799294325209401261263640457735264563591201640033588929484155650441294404615444506634632899402328492366910499663136400439644991510588947664826284903026375125165014743944773343115227377651088314210941552885240426184340146880584380033656277730586028578157772351768667663961624026398198216498918117880125994193385720564235816954564925783087504718114521415659377291777674149005523456702305174995233204457799269725709268103811941421700092500925062273653422096697751420153561371492437081254611601058670673026929206826228747409545509947082177478939092055311720204681502423224228482661779932912145766834907394091141707740558011513462506871298773900494856065044461694608398244280541342346569673227889876025704886311761455423065743894427017782511601294043327890240687263077004566294322691626015001587052186043075830544668388742893356142450156038749779744515820900127721499556953251447458388362982601463130920681967871563605223624520080209815553997985494523075315230735794761049490912782356001926042667845873537317597633412988767357807124788790594692074844740981073444274586084562641056238062230060815374823641851833573724240909733272750702166897769739096428347192440652950504772096412281165327224068582925977000067520162220982465388865673839535787755057085272482115368158489333965889302351822945313522185954272276815828715924670833397139742990443405203621531020087876634554149820943186883753646995748094211431538518816675396535591416826369321647872548203813991624180836762425017973150029831215469587189223570511233507162734918470355645943777635161790005106012080394737942333128214682712626496886762627745577984953140355200530769097901187213953697352068966597756905168015089779788840440337686775568630878384722903924600922079265047703007195563805670978977757417888639912436234231393665272937825451513987857918662893822186223472272224065522722436961071692441119619743758561109492853664177920763627192249116889445527928796664892030286852972357481087032181775244910376484112249025752661513936390333409527260035601513089968476963825246420134820432699473148445671144006506985800926695075124237473807302405909974224090312439438986349606938833085000370810200824078495737977496962033064423118125015449384401559488717136167543187298372163479350841551128243490831534338499883108060193607439033462480819198035521607896305065072073445790147783406087779588869420988000860440002634701650311929744397354391551687223356502048443581650529111128345172784811443812166477579389189130342739186226864966257929126275474983881539979880892403427764429167947535908067273295332095302167845557435104038174633498413782889923306945723622202247735385690526134690681522816048187814479419006327738105436381825660424694503010386701858661733091707661234381690618396356632179009271252590555672101639148470740860354710841871524227175955994081424931144324512435304989733624382159038897177680652549785140863648455317741725685606331564936910586069794998074448051705566303847136780133990614361578490258127712617565016812502254155735428629817282925587784688160699580598016737136357024591114330362945564438439629432384244253679071531543389228923656886836601664654388130553785718956332596213787046716920118476888693862278792932448576431754832432353811080061933294458766610659108368792601932068947933029903807113566125761664873537860116398337770172952516719648176765125906663866415105306995886004493298911635957925341703356906667473524762100705229104732930054924979564931775456816112022322525227282404752932075749097136453597262711227219760624312828280634985518318242446214736016112121239701160679469902042614680106521284607760225036326182364423808619680163567454723961620732376764013913039055113913329211980535083526110732794404039161177786060968556589048859711045640677846614500556742971698221423585012387842079823411889668667780165748158501445142013535853546023214909388641861080859587643422746699989837728351231673591587732790579113196733473357349693146346948374353931952043492910228012782592269113996121680097993390005348980807421233413511303895718117249231209788566164696215689503676938706086248391750077377418507406718071891384559672436662468579437969827999664614270343039084114448957637904233338997422524224049311055552715179152406617485752206450523017803084561367491077950850244175704261341236796928037982583850072530060392101453492831970865483358143373679351762338536457644126544006971246090472029495766629730135794193888297611593300877894614473005056164654253224372296296482498802600231699580425285435401924647070706871213415587692560729832192706519409694760661774020872992999699249811135353225304264970245341530640226446437502271404741788228769393761457440886421262237528057427841080108220485853862095224062057568511495896030272503988283731069897572073341983249316152806535477593300707648916647737044877971815518212071921856615475872676036562542749312373701403434532991284708991330373506119074294690929358528194994670832398187405512066381477091750166355461885718359700848752393212657035279119339844114497664619260017360721940006159365607596611647923533471483803484653235418791713460088909370846931440126646545734270903534466918272980799035553501487984142072999812481532190361294298894214975704177269351494995504805522742669586996857498736348312291337383392051533453100333436791702315337465358668226561309859711200915454042912486547920974627401975511003703482541026542462530077477317529500303878019721686305829081310938421274572576088445822737359513610865325774707446909952369328304488229179125191846107513731234706754224433368187442753487510474620691380154628580517156306780848534670669163706164184120500581122246659975827938817482211017099134088928158218761027852732803205698185008777229332763490313419048716790536014414571169313664044675810337551503114401930764661683408534454613078040505350410315682897764518397971361563469820530590051957942173216656729241286242564401879910863385263941564121021620900609183418305665733222055182493412984821746832318422976146237119684712236560512262439912167855961831916036591285625530038097254941033372226598512497503367863952339632724028582139887009235182316364516417017913141462821678482950056608489698435739059357296933723309962769371453299983172095380689024263203077098366742422551083347945289068342526899217200742828670603821331236988600307455075233749320928767469008256756024364003598898790457499206459636255222272912222081513836660876400447405091458577030957715026342022924099781220741302423956958900952851656130802385832640559763158124662606160068568430473144547052769895968639773710858458886577766062614414327125310242210660505785829712932961297985911609216891207843282674201946901464057363578469610966697771639450274570442447034680038222440543994898249886470408314107451951428439143231938768396357704660336454916040684523033420213126205196661313030649734660386546237840255874925130991603908187663658863007476136072987136323027288651843569832437658192792175038974444451199465351549745803611236679958692337496673763715223633708117630538400015416345973028786164387160493143631918920131341675495478526905697293258244107310483277390136071371375101418433891743463511480074726202512070447071461517488939431866973523659721943141350393652510259733989270102312907433723981485023011375206272711758637083104382700595560302613743947739881733763950321939715244260733653963668020640789970328290797392897075454493154258395084813584109026903941458127041226319688673759765236379169476171125145081460555001516301233184696415724337976724386183650396062370819206921766049269164680763350572055667274652897843944544537346378149948260760078579231366508369222367924561585657602815145559894430764162786531832538667352430090651953717594745436214880910671620368056853729129239263044527998643225258583796044358547300194908605629992284951055498502935048342424420505184900534856185702602147466916307554085674569859741998660275443941061770437056861932234429033087188469357208924165400331001987682574385992104153077844227223963315129765981685491040079306322370163223975141429634593184734841042780064885953593496698519359736197623585548573477047272371318718876991746381158939434081928576500678628114172915549604210588090739643161795363846686794507120433939201944260152019517631949052090043531655676358230130626858365351637768834499438810325445352573453055944753841560269414980349226434721169172893738807916394387099879518334698285877386875429865904563056923367913222733218634070497030208339987183650800577597075286193352642640568820995869519005221804189463412220042440430657061890113542273008205735467971104366506114662937775605886085623650606613094446611016642199667334210201947584745978970030973540092393449418232796151005856866105503561875632211978203778437053067980062295423009272760242513065430555474677763816754836090326543981446589755494509628834266271143375232088213765296167286881694707420103328440661355928679021209066805858212181254144991567269104179851662904182300791393082133965656734518620862067139952877083879822406824690500979556445100117895773302167494587468102824263663591697090588493005204600901593478925401041485205157720628073219592497667566440301784402192598241566806601625650673161405583490175928584231799373459410983463450075727130449014558849350369365611123097739035606616360707196176817400327789320501974876548229822318372723760365587561824670671400853026945775533343040659030305058178027560180044235461012842270787219448373923401061359918477721862969761343308331467814183045600830799555730759263271565793987680606459748258833463716923956859170480831831255965687793826383573698097455907798272936639652933726999334570481103445073641194347554987888710173124338953874770964923105832281838961318829568798191876206275855405811632072794318231137397468348839058845622762599298108067254923879588741127400963908264469952587977574265105718467196660567413439466480246355893324509384968010136259887532590492953527118218623942073990867825897095538119695182412189186607798831674013798369960643433984927866104499632836852483428435655898154463272281236810277389927536292440064406589196792450275699797511400899316337437399499027225062114390402955458618966340191664769813200827018741065294170605657587169403311271224237152305711979409763548181128718994347021244085834297302507217758954725145867741103219172401536986532923599928880130968696792115934715912775598815505385202101552333893033833898339041878551705241123221043086670127995869051413971904951661725952564669581672443975673385479828449492615891287856980873656233498007854760739996888128635157594924053050571405463437818029210976158313546322045063055496983831655000056628370288341066577878686762700153664222524966749174061337221684209513521624978153396083355818337108588558930373806628954864662898005508504937323866549942094094005360018390030880971430104830389489050839800250047296640737724511977589193037632680683168173485995863609261177679137369661624233888919566283717161318673925963911084630520840753611749474918808865255511602001674522526924148695879879860588937637910180817345942728071275729443435650140932591884430868868861402518902893987200730274004876897217842503137968991884571170464105618207436453062476424791867079911936397801711072727343036422187700156814743225619951570007530840816719003181079836761081918560189494535774937383214284896916077113945110862372420381315232933419476414895995901988432391420058506139388741557128927496290070437279521171979119908314298355916823587681184398621653761576173914649335158542778494151070617664241536295286792956159286431130793531174141836157430730805299147103491392045393803743285084040090382820484311717370899685850564420343801576046568586221432893502449217438082372373957038590070597002471316635451353648874409697975660098657807562292878731979557952088381875676802664312607203873697002079747714283450640273176290927745435415851713893749737220385526911623517803545130601875770628950750994136643074576912384650581041779397500534458230249353333155529930964711740529092414141845555853260439297937792572168119719430230646431729884875408484848236640543011034283505535460911625150414738718289642522804160945187971996530850047651227242950687538916879343520108704769704204039142598562634002574920904859324194321561732656760144093784447661182332005497653362734794775766452100026400251448270960565634530396746428437898569867595329492914602314597530661517545169543972789371348071339395627143110197557802881666677608112850282055814594231512177914644875059068594149021717954818311472512435434992325963295293173912387172171591637255216006513271357378533904170498682601329519436391929548035802381784639429794196037470298281882563267327079626329492447767571883062955656581449484567154082439225238378773440592731051259329200255089379261588725090937583827418604881343449041136393730036974436418088635202593596724711459220606258620275712016835910855930611910051907241546495791071711417254491999949324899796797095459490012586635576990936625588087513682034150950502858484102619979628383932370777119908274212681030356619485412965564676407270544898379240010369997496292612132904644937961560269465883486930475175638354446901895853943122378551535679713194295220137163224318853271736892840019906513832797357289163742060976646181204279189272774887459890371972311451976809739448819658582935908139718611990398496065230980957340583758689607016598664182214106684550247857534508671924055594370722030986086082299833201469569274197007499573777878809611493492879993895788200973515320177263481689674200145789764914651415049477709239779328951933061014963678029100723541221045157468401419436013963699335014270167718649868690360429989192770060352562809363109386503576484464296675721440225106398022243484463040495872424881925498385190932063646185691820003900889694047297678315147632507411330071385918692507946177468007240364683696971103075580891192266895653285527619000448027615681542550333435658859608929059861120253615273552921553819819242406350815570794410337549394659512739606340949284143819719331551357255078161728012963843558633658410482706035917149499575917946531439586431093187988990154997465748365635613305766298212433047164535921565353319707657856852708357280332228112408097578189762125483363746975753593481267541805882486332513547556893460621141447842950988781324063411245755567447411730929548463270291388544396378127980285494959106505484461446343135486994076728635236261913200288511455461098650502124859229325561723354762434674996931802528619225975422378260111273537891849025669160277240047322348370910244045228455780070273691508871389984390642371752487900511070376342353820817589499725775553235314577420756494455527137818797370450476090046177649413442696879437180345197934158935860158322725551339792077186236576629517175203662093332510892376989331830774241435088448616906252066582155879919110819067447953300924008324361660191642117937741618133436454110800854205734857581239690183154781043933737631642244910441577783027682474974001257994169704212335470382669742303636083142560419110868370621979682082577865084990220336793857996771143333583479412253477527350102664965437152748217421596444284373954708673682461647377599093833582865229660725900439030607879025578364939026903931859511927206585650583099090673448577736028044024326570471682376288612791615973497587730958877980732439188247195945189503941470458456849313003199939039131909303874593541064172882944732573099688762464199948029364608453645199701141155236828447179497570952675792039506928277228396364345746838928363704178727582120272720071425080532445514122781944025359090729524689291258022461549335902954597468368968281074030911584038960119804224409568770918864882861357050729557847947760126873962480480654591737518190321730335907064591503131682911269837934769402943125727187414834689779628802516267720966828095424972391633151686505093213310886053946210672468278321835584220611244192598616283322352026259875122176561214401220106186451165706991489661388838930459976319002652563226810235892966996588342111588944884817827802803010730201836174533467040018674806712256549211605937675146888739039438592846182080062673948837564696080805268649257144952425926753107587420195356171037331536653489500755581681698572900553471673823740270052105367621616493048529609299903084201366309526815822106375686290785979629575509811217278918680693821297980278439800145438331910925313233245835050321860043344048967579042967833863238834667992959690916686112221605892706833490515497752747849616993717433385615390869012531596380002362006401225396243274221496286430418282265110375748393584622318585882222181179030969706127265820198818819836606884642080701602707846169170476451181111544136508691110376877180930461954198956250020060675072352053949637952798337292310587895274941337782603807863827743930608199997612701473921552476518917895267320915226567697637672687165767461153910625338412454905996525982522379253060319814577586282777916981498545357093951346378063326367153318702958580018351033007209003497566265339467194912489331741683172967266308380124757088643422724086921832884010780341277616355395355925886516805424011997332481303682745764518296003311727151803349294407344195957798390392405727646226174387482342648548650098393006200913121094866978155305074925572249580806262504891346221054196861054654190787166994100949499358488317773987405878348892455755748963675370383989885285909256125874423186853301742240126317940896372531908646306623517300583912978507629815138657335181653029239657652105027821883278532649434100197102935220873846656517070318868450164057490633620926163636962867662896107962236561887477675347984473859528395438786089246019594045961705442860842546989459925933335118164473385419809120230670589357005856432321992286484372356553285811738373313671802283846653720500336624097284337654099210487451526794150280567753445603092266821877083172806886609924995909602674121098177671235287903047678152738234626397384163301643008895963328843638509915502537527814411438502887761463586794556987245834278903561250067795305407964829129484246253533174758448878439841207009401568926064142126955087559478276317577692057904175183369633041677661723243962613894829381053130878139446900017218265766977960716087976898468839483181948414027802664193896484479037702544194367460871208704069464488009677959384544689217645742129186313621575268852485397727625117179986577581169184530442331763722125649455414334348023978030329896152611653975679345382797325428892112884380903500028107410055996900790731989097984678058345362651429068338460726243312133091558105167569424631379577016873338835106868654285182190699144081488546832029244566441215125388500611393510601987904994210968675133827431936181133694934253286214816218517879542371707316586373418365831699016412552500903591670277566149091447410299511549132704330463511753931280350017039536330779904979915626360611351577668315811196271308163681419423076923526839561205732402445623070050267381245883175872902904575427903440934051367360505606079430789877502444887782282769954234542872844120551094173218031154962456660897723091348826343119681657779341728410299140733528180222084502348447595100453043896959478632429054943607953273636369654036742053833711879073539108858070586406019946589833686710478157874170122156916751120581080632575472000037950480434052617360802006494272119832564367475840578564345006873859431926307607340022443743318196964312904845739425110582837590357495719863847669370569016340941557139474075248353720040634501820457934887903285440728047284501731856445753210959010512548152904187650626636795201362126075331410320910022799916060214229689533924076134629552975374355784525672622798222122051321849206155866234444082147729440360679019347226265069696888144175316719578073261892287796375649606987192662099953254693249081591432307448245128311718440061138161819173294932304198188606797484766672190298047623490672282678267887242041561232469591238367827631330460774183642834937347904043718768330566437273992924108798055286693567510994580492286098602833890136731014797070384963170144862923800719969976013952667953023207161596973029769282470201689948318272224440507435108170029706313886522457767721518560420156298819249096259144996021527387024750958034272849751113562990401018881519880271606787737622381672469837592914554670004126613807292980447011850234528009297404819800718044801634778074419913514860844974921221017785088001884306746772798368238908735754109723490177316557042502264174067569732268852145422970525035223858117280427190975251987964415300160717411282968740916712967444947659232301918970951762990408652264528500522224586442991309173101430172950467101818935685556533665102637701434216679311639580444292009386015577291491645942011522507070840782340653607335342805887161842519778947225715731456587540638736852836678777971861507010615792108754909337070268052208715624071768064743270051201713204868587450921494871144927084865831207043508475556512939500441019845923370746317872274701424219094964980343448872081797321249824585876479852631739584072778267218287522247252968783452884275011578540721721267120845739107733310561654248429700030373346054915016786090375962129171951110513181165868047584116160926518842027575060047115801272042867894431796797082069621740725698756937070740622279380744324962085336243168045237835578567919982059464098458603291926706791160792589766152076566244735520507013042974624578655056646356938396931523285227188901261403962576350797435782252069420909056483642019756061637000853307712884317014647190519745458791866783227809642447319752118396785143712546777258083730098832367985723220534596563938066267481047250651115505109483746826738208726253670402128211542941261362012040298102272455976991303708113913355736843599786672989253155553015487602693655867888403326563567845239305356845498527439674378816993363446800846260829035068181296018228070381882446442481306699156730683881274722931060721683593053533578379095762049334306799327424465388183783176302028398347958522809605661263718908594018802892850938366419558545595157646850789601325261033939663146071857931141089266998115596230057388831105473959448122305368112407384794863359601710974529557318929364134076613679526052619948759741461235770610369949739710529090140403360168868290814767177620697307963836126563585078798790748946147014778978101460170915966980661496851526916057950200365902278569098889375623836377284180287116581935174798012019855318668179424807116685695816292043474706896792107846469165262020439234081046784713503406326526779422651989737834136009380937302371052543287839131191359332323645320161574860275551180238452258555036661875592924454724843255809975307062891861056670723472285400450575967935896674765495998446050394025974909332560607595578397501385411103595673720406211511982219237495103143681700513195644282669184056671590171300218583025679605379939720157867601262247144341282237397242221057995988758283969101597371103220036804154888759741041457995532293988670337194591668011949594722356665735031702291178401180260571534788476038453195391367006934809371264288629168151105357079580853131312852316299603099695449465483237388534380003598208536253348502615688330851883949111956733516440307478833953768625038657410574206776889606076964505556712015322818502241824116817531565715126126511606910465266593370726522253811770618363007822906656791573840374452909093422915202662263016724715168952641624154788962980541530026451359847403978925251445020161265228465664249068387310920210720768286049129006686272647570617452672221888122965103360834066129574399590176732815691256385120466562683023909123449647545147651059379800781442848674475018085284830619629606990874285982749381227650228333161245875834554086965215476933702154035429739264943195599070539322208965773460825953310409652354097001159143601132927280331716333947718680911636368950345624259498768754020314507930972902671414354837660410347040348345554457018694206729531786605899916858512651126756858084056984511113143006942566208177469044971410216817323479709595766255319635216173070927144511817469123675253501820009638242675065104279638891434613304676311825750374539340571929109245842278027463333395993992954680687116897722070691570289405058218012665736345561267495615392091570519346705724361780142805463865445996818147389255651196794749187309036279490935108588706906962461424972202290534982798512575070569536936806758315182985073364091427586956787127786302672357865680530195213810033413698986672548289226492436213811003159814371051869857916539806508682263897574489400883631457072443584750706998300895404237612871589028112534485916936934253203337022821664805786225046090437049137736976622067945676141117010151377412167456235734424075921795019588236454628216830630608088101395230004559770712289664280017896016559613460225542147303393058002030699996387094566868380143984928653711248777558136912745885558401966122966963211411107993094091090892251804868330599841098279553908577082729186762650698388448195300516325874552165103596596672818740186418958882476528077594621994126198069845157767416375563871668452414646917545578795943768925715360734395770406409996611636006181739714241183224146734877504521667959695469724712055253656956972262159629282161222399770853073573971647738381075832300981239559098917926587114621032002393105119914762908996286589690406915232104428738112158548385782308623589883728787079148968517355066878285037258392641067077309929760755652344284693094332609655436646546689836375211048100354529299903402073330150518503893063141083609892658382687137639360512956478148806024624002976892508730911424728008982379015520889649668061036400932865448071966285952486803228477920930572170758260621798914131871824332632391435315328804432993725183690584665159888381491292064999082285953164566987234793090079210177562897106832877746780846525636959249190095647606783666198902925760393324827289673347827057659025715409984454439220245767576039846582635344624538591407502155913264362861514797595320479050451935268460043676238606454086118757286479573404792327760694008084322368103354010031681055895650237849282791460976258283858359302394549899762430323075648342411780150818351145912973789119019604898587396747852524972466389038214905312486438381917291597087049151977467852125746263261266932568183237043291238802173449650723927484529902175814578800732674032924742955700801994967109160110069280277701318191806216811684926493860086105498875642390115361421801854947932619861143163290351820448014687154635628108909508065203667593967528040958183310324163875420761354635499438375323263679787868374960990402941578948641881090687466508500996306706180633163553867447147192494244532961559373077806509777891703434304490056753841456786513176124217904183713302933107233147684692403758976119397841761594391170588279371699004088164836226860652483897698783919940295238980534097715751510719706531052103540894831786649541507664464756014141336034133095519688129164094570553955586737150977200612835189248801149330516653558077115063180783318715592750510853301848162116309283443877408308071891128528895338319884595887262912029878427816383715431432985885131444623216881277932046714304927718818368735032089797011881479073903683633479491877893237341509307623562230231662276933477151614747854864729659361727750236353033129754466985466691247722220586934140662805160840386425121584640341064471299449944763244303283236991460292475891414306157537959738964604325170502545767714932402845367805691916735301639783187383366198683876327608245303621970049790748079455063821704853868032012475274129467359549615632226417216072197154063367148878910947442750244897747515801363402099689041875652384647247069124965109024070946986240165798711878800917286440033070372172621863141967727540725266135725765195579170074402084564226236461613811518824326931447831334560230393618238049288897864885696477625871341770305900460297586843571668192369624907961646097745584718564809289881178141061335720485786946738416453819740572099518719426983543142211693279282181717091699816608787603068937146723124932155255631169284231392000299311279902542398491016741795159284662901455776168712606848642769737954938401927993668351421782991376223998759340542092880999550492223168702023745902906942045179810041480026562382306772838694898169086519162788112089139807322994642910480714655041728176573681552655434006652916602970296758657730218407653678493201306262909487385210730994761830564837641157770917308298574238543790577428274816006664803332023611134877830374426043446577421470002548812249365159008601266141654666945084520928276288132451331492908924858119192611998534961599286278905623084332496176694928203014284459181370355579478913099495232154757577433602244684716944634644057820212905467909751210096676720901009658423512468768346178715149532155277120519470771066111052231451200816202102953904670274198765831103609088794692693055562510444411043693232891536289759523848267082861547573848315749141608842885389969814541269416385578023827882745989225801928926235508354664455924444866718804538692612387999732233550404013007480871941243171958683508943066659977520304251006816338731810594184429184483509504119757446280647423269052299276326974343583984411346788678654379213488812531346621502711288677580527151358941738222058005625724717784881593607562981796860443584747877295571296271803240316330386071301143720695575059496232917220987594231393871374726939094590701359447083929330584032624716320270349495754001230916666777613044699056796358328768879044848153995426454466130550016965744783992776781195456469001365549961575879522035394003394820082465881852791198406970825177429915104429619028582907240956830862365228333177681501483580700121723086256852213410688437066540341814369915632403215938968789487515187078027796921237052991205111283471806449230521622153392233484445456571740005559460317711465323968496204637765960195940171211527104638778079731832340822797205260064281767560702547543686297868070255714848745357788676270313164612977543028913796952115818457233626485216191566983083041963314823901599673237847810590599023040723350695972783046842971801796706294256150980120497935796757908678203512128494332670782489068785441643208195168744606764752814425322783468843382479517912100897370418615701960811735871245463426459955916920562894796369193909944356191866464730043471846665261643899073466649491976519671462487833816818575268593070647228635341442674520939846069697738600192781098987078270023138183059017911040784284595876588057971552169675335145591982176643598030896535886263375746134077457716617139223683176346139159731589192471902763220125669975144594846830173130773507734638488610924036971531432693634558710846590562679944842653309540110973909487975965698836708366264326550769703308349624061363119507548856493509138336647936491385406841706557287901696878014621144243839758023131318730090989182145545087879544383106427564385263896577881667901250597558307010539861704041818080957283659541406295204376711564045038462584420017840272583337057074703429721385220287500794669762698551384565372810245092500483685005082682049978998807730042731804981935996432857001116337586490924175627511222623748483795043592112683637727331946206606293086987695158655063968846276682005696277914249002407815169800482940146100215667545628905771452447146752671678965218159427285965554786782707147123453190458929024077024543639410051955576736939914744181210896647899235855198240584533634495902673662560881101301546640808052061551488695466038013931721021139914401470102825847210907153003767591913632381959628362948669940687860228750710583479045311636006750820275486938107803321732829494082688219431849977190288139565079436731367863183509329006074741966160616568929333740248770201978200404670361312382309489659152231112619268144401243434602777829643910888925182380756553119906932976447368642156976753512549980552786562515226633029434417908871323212017987212155868267465753586413678702614335161938044262209617290621930885508810745392426724320614421711328992912987314526868866845659780916423294890597804345502414106933840141551251113791819232999593053659989457833709495317690954923907651168326869377241471942822339440244966870718469252343034483278840525034613633461670141142321400562243349063247322379254630444376705280910912017234288592794844794383426036766852529868286055562680182889029842126492559523656055622622574345752622079132795546774018739766049575592174059298460968070017796487508384455008353279797457371325420285772882642156006806053601697301310520389556439837139708174138480941857433022474577240501046006664257704319356432919607510266267621821066746569719740693229883881484232233213969319901486262640643688833849235008646681920100025210256114465931439842234329856263402036201021307468621002545070933023926184557537692530935365695427059041354189443346243076289117998621980211643373460468162953256209482385319521222836102166619347387092367278604419264125272137976460634123145258868881486210895920785533201929192535835651495017044894982250380108833943962822516522606191526627379249316497587932994254664003938406107846575935489535623564907583010498325320508088400652489538581655570987229546563025708400763949097727011348967300847652276989290903831553307397188499864837142756726313255988757473327322700157180751508012921082521476564697909480279480676514713734185879845638569266772745467045423817981104734178109495061510285067167250936389716280664364442610733759796900908715206506269219140908635101051061144464451278902633353455262478719891596885953576281282354641058836302311183502234749196687933861585053004860072155278320996235288517461515491202829536400930177774607987050046133376967747048547742648373567145964729289360858105729463277496395784776546892400283801238446018824393318425904828190025098044807752421175621614536052099864386312286591958941131713187423491621827249148288736268656254698073233275817289737411045632170247487234279081996187811721554887461479373366527318029843123672088194270886708093955494435193283676242285680943723581239051157529200426473761132818177275165829168265249288718808439379994147044856057961488007657301104087728983663370542170993290815579731192103003498864887036419589417808357798994351860629301482146999994857410830361970662677023500109317914884545135283009081355194726741965715137982605066399389427713813229117616502683055604996914473930858676765576641600684557742344655789561082415131248199068533466906318867825731696054818271452893874732449623675451671858982087506753897270442919552888242748850293926941621628199797843704337010682810463473771692877499912143245339820513747298089479920539863465097303029822256205920455208036773216746288552174678405049175106609969384291071746793924761842463842938501463208557353606050209919418845671266194177721385528059813132638742292514902271075585502103111847197589537959910969001143915126537881445156306874728584170929811813994884391393180223466419570420274520432413511594962665454346161789911880991609412842283748058984263425300701138377169013027483980957129667667925794907997021831320026441306866941968008906834350416202116296329839166653412162025049815254476401807655103638115075881903967102396930427450598664616915142721708718512293582022740563253128770177661084850126984630352632370089986648264824880838458329452248097791691702566714963808524423007760152284287184121674560590352579948212794656121737541745506914187343304593751247752602883173899034883293776005027909799577343521740446610731764648799960888442400258273041712079140400769578391376886484994054943824414355557968190321855949930008357662411685838959930922461102550798539941345966684252298880334660552215336548682286940951843532977490405100586178386633135648380707900582033660763125977170722783136133298156497035269274800340301269580337212320123799688112680504091176272463827063756918291208926618562852742188584232294231062444070238857746621799427360027913358517068392134946613338192068793509069218385227672029839885185879562210766122640910502293176022432264705842219967086068559514536592251814765182262313710509701730681434259781912144608133788155383035360342376496510252588127686705273277344983565121448672973639853479685705670241667709734703055930000840569015480486005046012438772706467795858588065417521722739761168060280004090705434363591286704938428660877710167446382376229357515383773370037563842239264331744461763697448395536685277913089301791939798668123879557647762289866412414855802142016397518611555957234083773996488228315406689067402866844063590803976952714286516501969862095619990967310063830658443351470981928315910264711053366463451658035702020336576174767202953745116276526211803643025418020561179364213220927658865683324428097949571327367605137988530624967855171886754783215129864814576190790578056985207385041662578188390735737479467597718664320072573584674343074387058256095786772351767273755278528062101001391667972495391628612590170174286103430083394074344737857175340096505160906893617609684629556368497454889194942899389820902479371832305224466863963151722222328114870112039020076049793005894008839622515236805582197647025102207854905910858977157604730623406996444394802661960152687634598150492463052310268216708493952993433962132403703820275858197333975639033668189384382658419907227996338061943998563971583319934843014429278051207247073501647728724437673938985800325005554278934717515465011529850347793923433328544951371695737343615289753939147257055135465623745936294502696648226577995145759420409664810587612814336880833101522992880815039648735029638642959149432006900234772183900564605843899253984187183253484583713766495025351220796026670293630883369943050473973297058717288605366784841965525364152285808798676893825123325952928260149364007379243742973830677659167172294489426553480876666424897070185501914982722961768193270651564054574677659314452490374227290934723823710718157083472309036032485339562879831290657797845879350313940018670720771268828484856063879688544780178646035602548517127842716864521849033858360383024668497920963960176310265776881044307863490887490498408499748462675392521737381275803914885061470322868249846029189623200865067333691356534960763733363167765498103158573161022067350259083163886600255308101361004733255963719821634357685988384748201043368554952344978028518456915808609033666020099619315396031438872327470415678673647795379118827048456958266148856798504248368946268689651133280376222964326677145993282396168540209883033458635770138105610576130588912009305108901323497291054307647848918803057135209505760398270064790004652036900019420442517643460996934487348998351614947190658361272081575418708260459334112854129913621438392820006951400660675950440145552689767090519138856529009856593992398070595274567568577710167683093869056237765469192925243438006968191687516031675536243124963691952912081465311230497537103931758475211233453271215186674220351851045444058697786132848856228487658099169773884379103309570828810409079063964993886732927462395217532911257319841255048304337610600201208214174746203373242512118354236150432395526642672116391356801327160035967600113022137259124195654769134251019502513330383651105735236235448254259419533151750687097072487432787339103652610302381994046475248504088006763307990348820781203144883198422333887928964970123036187625220679892797346605205929768183720940050501175593345684575457487056576795030090907255394845340193741480633907106411232899505984981829017261488586190890721954297041004262552821177613485083423990225982661283603784218964062808019772689905691377947898060000550084010150366710384629618544492938531842706694764371380477327973186366941252036713091934476306566033673750503063502323354699211992667797588711121117279153692852129661070707344286493718248055601978497999496810581785564014637983849825373167040647876461172245395303280149425775566329002834218768478541882292648197702145948459866725534063253929411265452956220668815428028928936232771802814001939502685065080745030127438793334307904146735879607971110910872928735971355757352996858851319563053222796660816316861946211587357222745641543971808708634981473918630322028304833996744225763493139230055202123498647336399492910219404404956476493525777937653062987913504701006985284700286446655781081782005499721610445276235242474364540651411352117841553321732481386265635545605295891550336089249096089988280738473759770599040530207403619483578513233966607424381017983999461681790281919294102069839674444074426471571112939788572872028563084115427236202164770500546011152009850655739316882954304883597851220582447735611645262134430154019708120279011542654314104806966542128521229516250319750754491259735963607255075688788379433957231706587537157098951740631761766569323969727767004974511324217493876057149793737231279809815285577353903328530531770634139225776090130174788450859110482625345367935895612563427534549410413199641924003247411558075572767407399889703028670564245050998553239016377836609818796495368288963653957604180114276447323122527101619157958825040853641258965230094433223942678621654079818099405865233990692431042824924920834398607111413199496666273875392132140481777068130055274601100410173365292637160907347131637002402193322342306397982180369750389889160621619575413649840245942852443512570206179285688280457521232868030614251514364672916915301024568115740823892091561012686502109187573880146733691318592334936730810584719605836186398467002785278962922174279241161995010324743772961792580821763370339456713696215177899092114681390008610436564304609861946643053661190428633814246613292932343421210481965382287798408021850819314468100853874851571597384634011570053236704714966297334820587448841302528172890916306428157691633831856584336376981297909065268743140578672394652967263606524871528354657213896259037995257548886375574060383345220266170882579697313081066102212888721492712806100756168361193994419484681141047254142861888536359885545387074409221596896220144150724172934717382062798906986391693549593653368466631748674046471644349637693788358956919070779581818443650770464493497347090192557990161207798460481136356146398110433855589697108358899219868879867887924637098031136661680661962979780490120465607138919183589840401107888024456258980650715687604731423356567390281585186508088568778313967904983460975711388033635224992743640531914408526266945162476851938721405815239532906086047715663144377491210620983083056585247566830656641033126899960239479215624733014555843782419218365441383339567337673714322069336045075535867583960442271342976626185234273246492212346883738693378429973396612532368943846585277833204250849049586336925676963201577628908504279807904459711980386786497835847287359576288510737604172111264417008602596138126633713417378810022880264293607563672569128015023450232478540344403989729196981940332236329873751933722882075702016669645348732256779248258462424698656783568767258210333687252555895514573787440094923913766617040968077423024091755305040858682671311398627504877548330401787242138030125993114875786423058826974022513709428694380145417598845572485035922131698460700373073886224472719170773632863106485374318453228493280912577242996844270818620744812194494648858220579566441558920354721690477384118570691478446246694784921063936831509730107721980537781381924054899957959991621946255438402311434193132094521903783121505766426782985887411469108927829263839290314870322012582219623253903054878180968398918959312641696686951667251937339150901645114421572036660611514869081271507184885918263362435341211948225627873881794429322011501749752938282299633584438851494586342839002227731246212310428221021373457773218993714374779035480866197422183714679553040612105839409461834820934543227104793436701039544718687121813871638035538207414405212809780401977683976193526708005476781715622583915566968205398455865181710518898907911716101329323484333981155068717448719239941647324346928701212635114323319196545943093710918888971896255139955308256506858879381917504217543418051158629076624426749216493929023997327534182878837788009811162259000622536169225292561353031656237094001517404009092169779873917640800478685537170024752976764200108117281808019823311082088880243396663630861902372125400189768408165144523655025522096857929440185807535230310194974665954074456124147170184984115354633675431811294045527546997873188594081386263384222292307014481426093870143804681687686250074994634630829248048025852468841775933460503744852918086287991056489184414244136943388858414983731624392971242275433948725457502291785614272331897875792544414166607776083827864682854603064391481465065991952432293551257227864977533055416929407468360061867115095354862925264166821833428771085947531244455760047770271062422303961859991351228107250923673525936115815269396380896491162843032507891738491188014585775963742956752182552665041569207206188044299862373528972080506672227893629489089456486076087092280850372370478818605794985508914551224569729373003082683640036713419240268686904412363156542838395942120522425255014965279679694726323599767987135017821790668490022838186295854815619547510994109002917303606181088941684480074113265185759815321596485506800119544832226586522500502409824598660517911102055830168119453819339087682808223889675349915559174280767144496320815459855324659284250531601477053477436761097047147274936131649987535888926123879339948999914369322205650965914312878309287737445392217238426697006053229655791311680432043248542537046662697275489671905591506727947083789673487165667686396983830673414211169078137354145910805693489775823665243298735457216597684173813171589120695465800584961857774638893328185319273616718564426977568310963418589694598723619333268241909782765589379867466429131978392618102785917765580962577053457340447451736237942780074621466923768425538500462642019141791884841562046487559575441262121664395731242589873074690220000990420510376778898328582829487142545425418093473446129983942315822823781069359893713689166167834289650531379708411869645932441044797195124306754752403167172000397426364972399374922377538102541699684237673920790907293180916221784320863074901934163583905407652345631441022367418253194137442727576464162376170423423386229560583224133527212570413202917933396696269985313641520979191684358066061351260672381063732579852625007631373941522076293998110635851947352137336448274398710034560185943863171519117938842486626108592903296821654186586804381562661610098531860932464023856141741050473607933275712241283710808789448657230946879143223680471462335120130068213567783499623075172347905686986298958394156038401025410671021685965742442470871618389002991390187931182844321422379408319051642400254660762464510942467854903032536506817390916867374175750035449283000385589980816117499542170692163656547604441970209409728581112743952665007264951459060910084177127227381930485671399724705540414478754082159862566565132970731748015933721422985778117921870640930809703479475247893301917261952373191936154441066861818531879449969063555140461102649911688655578922989881703314700580753372798155417488943718515036721143093950440390358458029208116885289973276266445008833760491353190850051703556664880016113954541504147378357377657884491687172428174479379799603787489092534769382359755273806015749157170941078491106884723849784447413449261216779734035656975452077553903866769498490439343180931854982571904033121337910244469586246119298388705820184880862091014115663061702210990725696334307199140633733774153261847711713768254579545298609946232779477723402810638799407108781447755205247643864901968090337536710947087254203921040237540084179983091114928876675046607343937498058065394481768880013475160750818955224667395650327128140895892625347208503271444886343214790008508021017939239766779147285152857566281433474350293076881488039759433753022474698393195445070909498621303607356060720716062426550920889422658232390630843891856190045627774111034722881460170364578673990246953420513291552178902499808223785143232159986662438108342433884806777720195266558421103099684783996651503671747167505672279918265771866680094500635244372162288400859671519974588830876485611102712648654279654868934641372917484657612180411186982431058127278121121205735858410035080743588734024265642468129079774649608930976113135698472312971879705352301293291924280184727969995861507656320710571825485890020001580208327664642138051566194858190761360916045348066784502127645978656442051926486622403407805249168720622403670046455796598930724534400881838420228381891413779283989237322257962001522076206372556438128633579177796312259010480842996842348754967675653565717987763971965691957594925645092083279834901780557884700079269316184744599654675690074700113761422046195906052108207704801309936554793725163061257087150416380593995344869469417961090790062934965890578402614977227839544568470869721442493956315103772162698329069752623946427782236037548651796341313594571498021568341304462334308011884571734621479650489562459199457739934959414390334597821470242682266798706263991966664996349940930517450108912158753365077893863085071868215947729650999639977124960977801136518435570146023201979279777342799999569948943098937748511878287646175417360422004379903747608829506215058991396366856582725035766500710079951882574075273086412482252429661433148096219832790085764804647323152939562684389477572425093709102486222159722335363332935958306420638235352332832709786407978285687764823100903205415792062793613736713894996336561621010737890953933941796224247758086998295813423069787175447219484692847371771710197372556416756611349107875509083329579443361472425613000112065286800236269454625317151884014168098878718392066702043393512509689213607102967576906760495559253294324845083432181690869359725661288281131170996428610394167876146940776675917249672551904430190719639173570605906707560515937101448793852645325248899776387932350626605792014904131213808192690234882835524078704164805003531807864563729917267306057064621593824438214631905753664593549314760466004776056431512110162979815356973610051770880625477834054612907289186615350849276983502794565157876077605023032791412711314235130387306427151711808681651439187474864381796046286809525051811137794281958336441379549900384140299654672568084403012058584858388214593971212610953096296015339676304091207155999704164885922461453195100879310716338688713410152349961204287516453926470364705724893858662496265496977712654357117992792360656605833984784296805142109410634675482570195559711186276329532416624781825455605254194481484645022698266628511248255208208243006536282610345850967594249532069627180842356225328692449146001135879005254926800813162743798703944422740817068183135609076537514166346351494445022912501630624508074224837817547527448465422091577802196258339777975847060977095119895501988218471941374781230544320179616732221236839534821563710293026226779099665910345388285788995328898401947379512507516491252730052156520378431143388384327397314344648254023790286448481979161152706179514919744405980374777658383516504145828562292880997663747188336027783206867271081737638201798373460613111465017695332354104686339260835487844717834365501312623682821491408789758704225249542727036315046848081109758229146136209740084778575459192148492173066591431083998114068724638130675145446124641468727076597752202841043523361099777201687150292490200843275228288913271547722831107442878118625106581360273469081206214065340476238419467114947772138545033204989151097395012928477204130389487736960287030427967416962232009006936647590286659096479725324851104281513068177912466498857246590924082181917259699724911806034656302082916904590291470369593635761465787615855268771940709412364001559570834369369451073805743266412544524662287313303940237362235181455452039355894865903962855685460509225423140133207527425828964683887875171712663997731946685298575639323019828841338965050112733436644749005663492944916933287779254119375918643933102191572033965320953752039165797151662338868634707506790113179928754427165773409425105827496134214561183374232937121333167414581415866532892757101199431009157162446978937420573506714622208670287593770723693139131875598210278972916670039165603026417436802070073211739888703151105277271697678257340633498175968123215119963372816602723251875761643797973723858944838905808797154508017948062132351796208574954053421923284251417375286348995605515736219282648997209835040710975192236748829333556780773058017379359073567037218608138327552604717456546908745974384411724429857428213173211421088971084835135441403391223356739776265502520715255640300264884924420200423387034352623166698240213198810875749052021584756908304017330354582564129693846931693395163547155513955832755291142956332144570308493557899734730680919012299688235947892454405240083738225423059145811163760368915230262356884840391651169255498008286541840102234267664451128044718365404325169683991145942718686566757030254121928537129196239258265998969658938496328492391541158401498488107178923254561444582918516658144431964940989025206439910444101605884473492298731607428563361946239706938168189700760677082682762219735497562078173475325722521051260110771777459504664209917834203988317696265172724341700885906084133307882513004829181585436129692085955621298830429504114679399219072156174598720086376976970929429894671760624257907760658055337744128286348834196486815856235415761888670597204190277411225286752727037494570110089196037921689443782292903840753273434308718649441430512061338250115401246676419996993073132807174139360707699763104578068338521737934971865436641994639302422104557121507407249893934092407392905662442769902069556322957331741321301003151476294852860238048966883519299062008623594895705519032865410485748056118713586737753596281816015885145422312393465175058206345099231481035238091468210633096195947249590138459915881210215265760753670177727210412526627953764046510824182184806082194511102948998475849304720630038130296068122279807319731906238926600369100387840071279624140699888700804409628212609665318396332861511240170311174598689442301414061540744309907541179381868609912409698651660656901547721778325248741399702498309411024690281021019126055545574959277266220038942587517194386524076428137634201478891300407914420322298210850661561935486760166067300454878360804529145287834554221591930739691075392981155939392350918288241666421165109770104716064254753796232287836959965770036082399756206008351457760401342063580283414747249285262736988661462030414636960819455667237918838737639437051825004790706406523130889838574287767407714864551831926193578059838613716735636647276031899147235612153922580573024940117796296902556249940585942432812314553076074184559093538922546389867173279034092710495147727820491920177296033371098692349882625622211651253025919256313892560087114833392780986171543840402113990842205440099931742072663303686370262239934388081647778233241672110879411690787902872686967658825583759908941564176111045114977780278041747477155375666122663883922722961623917266829531465264354988147876369728875474501691007814738324275046405858952070025940212070129498686805371289084033011315021504955897117077104765031653668646658482803402630501003069234747423534098930557017348225699777115840844438160555215373847794895763233982626112007612965660579825671695078571080853485106122648972092076641280136713159879858220825497241643041089767995089502046244065497685512694105492281115100232974440985000166065260483681768393813130597719549037321025815876321274333128049015912282803926638877992410519625187238046604631561622305334666032540810515964704680189329032763272536459939480614950749693744604600182807172816029845222492185213814179579175881315953889198748613096849757596335436033247486326691659033519778505900230746785586861398093072823499729933798402963271461786734325423488034546001380698316649716383871307318228105386623449021305799822958993156724405119235742502986369289737591250986903547833858551207865996863439578445071744721449677475373917014777838427501818447040627476959575794639202889211948015000125802342612799168512339429190591240377257848418924789617699278416475509296305698411089242335632062840012246533610748775498881014137014636788205667117490977412164536698555077876372192345384741166931924742482848459467186707746463177941425904304489952222519543645206941769904751798338077141637106050264631076390450387869472518006340021854440449652964794987949357013761658609985714494716459835463744443661780091762199102201003041584180571671197259922434730941867728370180110477047234015344158725357462809513438453257120580155737711641503996408147084173071339069724721296273895791584819163148006748390733463997218548982625216467988429053653100718813841791769200467084618433349908553137979767560961632892984115131552237121260354212320150982045157785981703049476231257672788681971481711728545065316895425371260557508522877214631906187054207081332144974269528823208934197263996811346299789788512801659944379454253033977111369986354344665611669601900482449357153990980302579087676005713778267130135416266154652979618132530855409399168753320252873516031817765170806572142133340521372885316099582298851181711366083680889687223775685328027044503952029275675259182637167132249063049141230033515739822379945197148812582412493813201379506141250337327607536288671715880559760160499188604456054596485125398006806589066117109778368192673712285249878684125687869579472584529722214770824535580029498123886498989550044536597235599749914627197440631366271773663173538637279770683624826822956180739273812645161099143129736901071083563145993656118757549401950968281053670219421205824376819258813232141514565177854794553978836551057550983156253642224421994127979192871744100678709442371311615082739330190890353977808454133694981434072314964637718153789617110834318532897967734841965649698297960587591097338863359276171868771811766551389765360346957824325459331378635111846479528821022203591914042932700190817568698307891395094967665112786354379376069136529105643685344327403821350815300260452917086486286644516654907893989624508122193048720801564797712323080943076675195180750071259712585696252007731194793724315482286394101348759527649247947159653258086545172015749495540056205893324912630284296000146091903733160527716746705697439605485960449742782482811748055909336233207320587334492547819451959058604140751633090360740656039745817585424062951180129540584033859818563100300906615325075581041082485457222639132219524094683503861281579575589692606839904462157434500419140433926233409725001751562318551724005378219361522263494370434728378994421253549260723543406609242653376622357509622942950150039338994061887619869849146987577463593771061137644138635430882339912886336161335004532180877827512513765567257625606996030275872047760164151790775797599366483409497898306123347044602315526543459453473141127780717748859912861694913972353555565993150437106386659476726251241394346890686292929047333149224070977694727310859928893447325689625714567407156100906633784412126743668367874591540098796449694997019755811252665222557818281257884197837156983254079721551253609048934641729108240525311042104483339625950674660611494359630267868117877468683907881109784157214966670960840985406001429997413033169967445120831563254514373631037651690172002272297557505352896559004696291918667813034807557798466937733745494804716047286437103015897082630311418409595485576872297982267351894999488411675961500186205131099642134650464682323652675888156025395734520344214552110666793481007042296128057955527153070257474452249974125847464571542297886695520870507297444547338595501421030931348397032912914148920408997098565869520132157157918010594493889933147785015170230454397240933597815112673761883892735739195560118314349911838089085473902056774505012333115623749174922575161256606140775257129001824410853783346979490307873901243243605688967137322573829798715319655749199737370758400925081321535650848566194278893339307174360279389637141014389864317460365052772174198761729132046800994631672000231961241280900603624008495716474735699961109787436704678434168517135522141747422027447618473165889074655200805937054883530724627411431818506122084228952477769024212922465622832210078483389685655928071706731398288088903026357259717185789559814532182258337864321124878147661722055181270934929942361491711167280645078070298113210358978604050055480421659330497057075601156984540816575686853165583560732865604896775323569896368156953273737101609897670049185866748377698432326493498237130019490308249848813760598111441127575073508088835298063827915674506893815124264146399698603790708168882860004560484499475379190675295840200707703473911383899167379810834050361343007050425763766514726436689368741103388217381574985203123485781307892454419257783627921447290504630722734273787998855661917385638681305286904629514943003407700171485596490886547682155542814400226887432916323347174211031694979836229400089011761421964484544099879497009353666095627325044561236096039991363196672885136485950564454305254158533101060613849375877849843415721361155810548844914237303479670173328192771728021470039292173828163921799851423578558095322264352652471769234260484193838732800711440380092630250439864512774588776871624609791096202007794465600855517585048196124907777790559876537865100229653582780340643412782606432201144389033967417067581687590783991485580737831466821539678852589783685331396778567651909407346114304273099388703505157374096902616249337369178599245456588584208278588154613461141565200618725808391401333611088497263202908068189050543343834816791590855006941892251859704720579457833106665495258373503533729611283477949622692264458733057433452908993887340131149314045903743909120693993222869942392363422546155776222976713920160716563235769455427455209935624686749960279476882743494660069015136996276143057898381744295966706034615464966928395769387084497819070690961808054465437279402389404299208964606297544055501402520175638919774017471899268565951007544242507223608686828080804893581168094432925251010382479481849417313385313646610499048291091236405456076074944674298842135583993072352866022507142911316256940342896878479701088469962052253015723465861703295366266887045298895373358861156361606642932771959257449263127867711707596798737846668554906865587575276182756662913513835945525828077931295731653644625314934988119499206032701005113630432511655920294810988131073262442347551434979140893187414692981389785391993610833718368607161145589867759848743913792713997712795313541799586668117244500886868867635711866897286663594625053931787305873131566759724773741339943825409593862984706754533759424242232311971081434920963306028508439393244941399765973316093125975481402665391151069520287518819179377191111564012581507266204261235700123721003536540498269339769367171208320802397945093959026438158662991030297899265428872630952820811610000639810692196530759038855013042296418075965319530628747383117233553642586864913242194918919231115037843565363092273670058592563587308549276932629856491118750058044086962088928449873489477482008502662789142908052783019414578433054106776817835030339424749305032083388716673926577394600489283500730245000179656695894744891382452611103052708891831865151674609951516042400428321183901289603494822294337959477368968633797279696971539513251275674087211675135022714327659309074513729341115681991159739057271205095843105019511583763929209920961184933692461045511463086616963419160695259073089681040360608043751623659979794899487146876368508732513682517588259017480978557864662867779579908182644378791932295740592245811443220675086131563761249014641397135195666886884621019746034329725069676577286033336456728357463981781479092117467057785394552448908069989396934080505865263383985266972818917080810801812224170958894222981678941008123265001617777150591123925563336664711549699629445626411592777366171057315023860751084920776962093408518034186709676391075775274905958299783645092852035931510995514800987981146668730300158860384187923137245071743588220781902648294331957343017662673275959724541820835193237535322104737721302010443375892586898349547071556453368384086613471119045424863644042595139814070018353275568926739521263580198364652688426969850189990350464618532246060813259383195902414023662474870785739177238193699507728370246280585047475840344586541788982146787004435160894602490629709686382692677179744576518559650365880931456122639982791886844184125858303715952207540770492963994681261768647142308205625952930101411922165719223289393259115339935907283588211999758527376805252642082016835817474491613562773931982777334807736845149013616261408331192058950186518309956264025335386443801700357408565747834045074184102968449276146558722492429080354000853748604575449275327213351251315408546824477390143734282042004058844913968985186102411191632927261382063493077953947520538079674821012493223403552977114346673077099488061341414951394309096810072284819718576863887173992425912771105726424084390314833731793190343675690907799664572215744529831291818312382813607391377532589168358199554527991855479082499074719948857137657834498495441674533687214458437470979386946766292860949279473747169506751708179311406012850173321559888723425517612177638995231719892941076605309619698662078327357657948905189643024953450735593191713027511090052587726055744418751936343146615278504210886007480056521642118387919737427048860295605671667742562011193421787107683577131076046104746126686290877431889048236943860807708562913442218970035120203214377979315257472276157942538026022095446516733866356677131810763323130395228003929822444815189929668789659829317840886770158157739049442240657106709181910182333976273125348119981870188512104261359597340039614680973327675969047242909902957725787934420048704771465612110373228141080126168644407288161846247028915840126379774458572585839111493574558347911835857691257720309256298122296585823124400330330280251230015881415874991667879450788873663383320427033992060720304238263916089254588352435404073534377504910496317990031210426743439563558987316296808911888329940483110142560035195314248991121736338940809926447136302843676966848142721339592776949995968803001595617987886891239166427993965523100116254753536154118683391171064333813856266654485149875571174141651863863787274321554756956521952929324842407981356953091069364244996641444331030065802877413441939246000262015087354288182647453194659421913040824048075157388135810600761376515321309553875178861932615169660422775868899163139343447838205876131039810479087938727378995284915350199717723537842292855115124405448298907745338477426484854034969269397663490416718421814397482058743218848044519349296449550107941672765049933539307750786227869858677860034492020025066211005375416673347161775374893023295325684810351736555332574996089521104236116116271126462581231465408379971218477682878990421251793624735701507154818021533869350510899089826915545293541998054104211635179319722079170704020203602515581996807746175207012732825765300808513906590727559681627203771113811252105087127473332928508007855972087396680341743860089162768386589352593656748224063440929637691393814566343484815730114778095219367088244234150815696258675971066925856827095053763943890957389052718804721425293773452712093956057509655005734887895227146081671592038677948962142336351211940163975274970018541935926455474266467802288222266270574193479185257722041650280509600772784205231524555802728515093784829515985220783690378445862483940785691241964483189252253048831542437712789435716930553847292386408347896411318486662186870219817104394289408754506030888420316278283038895542344680434846424379370083312003339052821547107682027063767518857847778393582869528750799667956352464475150416737343622793598860302022100264584233772734828974193085789881216804834675145005938859131234669402771488214650026880669322519859545451427412455306136370001810761382325877955513368373746950154502464440558004396352989674584350854626876950832915179984577294391165034635587940395692125098694877416177607656708573049109847745777841845831152720853675199735239585955679474574287836511523666521190655693578491378794508617355445167879108896397032101693999188435622679332226697692897616310353729123073801978417420431135655287756972742730801448064420833617786762434756259814941262834315121237390307209373606387522303043216353754775898317329424585829757824395448653850338139154190467091648465783328465453388635669445192202888723204260891592178557627321029360808658819798084981731989501515559813026513969045613440440980840217077203388951508066201568002284122957397358391085293025005933701183042655530528706393497875511530812689222972367619407073817634089668708186419422070113440837478001578092357416243973887876352546839898373797283597106885378582419944609809447405787058674200351080426072589065491486749950904615188087640547934859070625366377121339398770301127917520579068295320804107188709460205221530562972264837374237726756227203663356567674056664918738767001109370500999266694867673998054360706844590794386368825686348348670016826612633403743570692993026618115181051092844289751497760994538653153029708143862276598098072947331719010745832278748777669177844778489099830920433451836201141814171298342268323024028951957276910394837456109917594469463812806632798721793912517744982732500518968759140708992988553738112186439085759260250936705575739518289884334537233925147923160939573059366081922551407597322998072464358105645390136932863698117814080950321351478837629201418964288981708648605492907933926201619513433297061393130319192314403786400926353922786608102456590596588681610134806309714705471566250323167276383049039749964928117556845059792656259502375942612456919479089308062835173503844090141440074065621152021129466998079668331423585483411207978162290410678681830062126590022953866946674515496282167613724371541220631593664109493297101082631823092174488088351992657521521455419321040198347229515991294925248333513061692588838662112112588673012764579894127117929415277168074607604160469059318084141678982116994683347961904598536884140378456863436308715460042048496965461030657339966855602412093750685361501189880306515782158024611216122584886593555272337275735464747691231777390653870191560040218099293400390276904656413560516476234976691054504725779580107496449450961618157789983661809526939073241461051295783879042342940237169476851496595882135147371115784177384099060637708660461113535262558070673933141896936823258713963249991192586578976745915905454603998219580306862222974776401777930474223204040128425978669803675653442807293850448560241219738725708873075969308778263309273023723994459733344066956565706309700363480152385711434825654334848280837174374151816637259599431491241748564319773891313457243610533822836186268948570732228866525791230294894985149559799939148426895946822123842188252797580328764545033501278064316798651765419225445654158158095409894166791126561071280201522645355544983784029294610626877091913301632440303534679120544788710530923027171136482875081603595394992996387726663566241193695252233832391116722767960972739479152846999636790465328373555210165828871374652030314457499614463435644045573874021497016348805739042071266668837522486111874367616023098365897521756974737350341190130881121062446146541610364845083430071717831943422144020573902327141117388364217885035750140900301850345756281574043787993366750106194343376401779666815556821547067266776964678322098458005854614856987042065780081881388069253446913625312937996260336569029371394971924882698650539053888820335044765455283516938838141249183714601351006446105356750347473031532489491068470054007255254651458368848162122281957590888873211802874398906972631911966443059201891390709031283887998936567165100924604646778807625644217274873420837322351507455583635632901884891431578338498596317851938878528718766871071076719461119349809778005177184709317510138420877897753224795152815067233531240074495181661461091660010969400689926211429812287532889760015108278323181008462720297041088530053464950294822049953608582261851392887591314394777441373758761119603618228584987884564097937615417329304550273420917733453991367760872862967437543298943774480550806295781856620778167657803710256004411085601429441504795196496358127955895385291321765625734328663071796211069759035173407893329067958678135262687932479333516825410731495769175200148424714336940852574111458784577878422914038034118395366485729365300265895481668857221558507812004443093487262151987607015724828316268969142412584383034155703401498805953287164773716898355583639962335637004371084787337663862910752093991059736809355048991788060818577929977557717630129715872248889272342616923294932953770267092015059965904789462495055682191191830677464680860918767234969382214817887078791467586210788409938953761720049797872506906202095676259683236416121409826660718171195182257275954554244815612300547968250707822773511985902362256380643608739477853774407746549608019700736655162838703227584756881935677858319730341483845477978657287437140354541373033385499010093071443783581284752934359790239861493097463665309719814299326108088176665236702296495287519623517563140031349641335821266838823646035364553682616170818062071452490212879581881871654157420215233753668279477431668269419023865860486293689500426699923975736150990281095621988739932562297077181839033774172252223672262299745691373660121514740855686623179097867555750071284300149712987697708189403421319761928763663377011452020375862048177676027952663721152099447110325534849347680835215416774748002804495856214071330842695857095859169791909145380440325728975154620869755052597896910418179779896830122095630978297678108852785037575283994128966939483346091391992921865557354136334274529422991149036696641692834972433151896737743770130934430624488310588557663512906384723164074500162041295276088617877294081340278664403024588846868070341789414340322635985695174617014254588443992596265850243566072638869203436059925653185312753039127826538808382604523393868192818103946699754698278033397124759662635209793616429023627603550771354986156634211709190773992288284277529990341866511056308850783183010333088389630570095661114103778940527604595343341617223190580474863476922669041669765621235460701311699038965217149401074119883207913805251605124172767237184706873443197676360443127088416522380089898060449977508447410604539500243285642042504525689105375282795974141949815074953882111186829188484078891954813661373796766998121260524734546033908210439917902849576028004163486247139959433783506324409548121395496272706628133232550165981536221471480845659620387353724877910868831405929111928093928638096769804537563460600306692799274785444452917096728148434492196205814695511610405243239861760347543757643272201542810807058379456780178900091962064278789610287561567207760668388130161461633979981713951127979902796962135592201231398978621638157155901863907893804373243489421393857513246412380970363533964109673892822899584342591239658636842754052318714034481613580179835868480454916489843764214505295162780630172539480083154020928467512887076378998740959957768195533066243398810207589842250029975668412341890848719905079954934151671695990340059463566992022671179500054825354599423862135276016323839529672476567698996849419825637399473590764662146943852710005958879326769853458006954380331050417785523638115032324791929057970025644247302151623381148323644611497690106322636503422390942853937053999907850776744163180630502357586209501112940155927662083788861426442931424901278732321408911492752824108123597713543584318883292740115874368068584733338202662751488996177994190228196739396905202815216761696031414816200607362274144393923286127196578091013211380445056757365838472947275546069905760337336652093071719851958705725021088004038634053261571836390178517068776320472183346180732483716731639578698520472099238997596122905720929243384307122254124704571425475211723419193804919192952076659067108389109117999371359516201320864270186746825675500782398699187511082999839029867304643306432177127345988748080750881508024263699678178159072506506084387646610095945037657705094600722579897846768312868010833805537958108194909111025963752645688181188831709462117832125150470568358208438993257433142231005563438981861360834421461900935768328258354479260002963856567585407198241838507370610350388813483464719726027634466166445602738648833240522976833975188424656838530650506026832586052490450398876406365820232308456313837559263222538063967725819279039896855852902115037363186977904516363997879506905274642824161218619356312545492736861993032163734938697611435596404256009609530493311286335894615673104984023044996011145006705545755882606134638701285921053962668618130018453841544907682650690446710478077565929105850269506989367122822702746377083536506218013691770298794177613394991295917929164118963590185757585176906460997003907303400859018847039112517823517465082239903503715054260533762356801250391813121149152962158847942854416345257920796485570011348333325330945192653612968799069930101311080107139570087023794279593859559643698166711723554490257399860575281225182547113758384569777518430014994479979190402453069521542901012184581087693334239063854067442896689261806647386605038664902581349834185434511182518623056268215453552362602394960532078784399585672323602365426299394183262419615375109562273717345128464530791910467552048076676159755164912540326270467756608345353979401304300187439255736317113304987540782674329546447679050413496007954373594355771084378419933554914394653246138433327055342034181868448647873819990092185960425291760222052759256457377212866201322288820460970139109400499543021342655525542528690395654593230422087778258098520570848676785523878453975681733662251991785667016714459556822582315039935054331183172374423836996600394529617461874563335729412888037710614185342968070051996445683051502547881971926049930886623859106360822673837596848267404752424691432012333864504938595692892261472303513341866372880690005875880799591253789759216958556166965647193197291774292680378538361615097738659866099469551349051541938682481634438216056799389478898497848090278483461169727697719199940130477406936529326161612996958250440165663288758891057587694768339881654761671840830305598248081022570282346769266563625338582793887223622121888975041603245268207675280151933826970615421990568988758031776980043520631026793238872504307462360417622772541776486309387900537351941569517453091699897600711685219916838351771159469776494659727496448782052466045309088410091083110580283499070199803655179864143687727463839198080308081025976128199928116301448167138243490122002078198459815071124087677844921753570588731128958801203951806208658596427075210125800931468393163275910315645018973487069948095379972100243734272428860755036324581622704738392283818886060411022656812429649614539800744942466119745322531522696263234307579639053733184642252872506295655634933546922034415794242774492484588955780369301603717751926584704504962137091205866238014077674203215650283066614098491742650271205486186243002509874032364593616296851390386748518107451268753574953656797898390788901257046066974981194574832841829367528345606569779950700395550460682781144515757694553377634944359527891011213085878716785438295288969779460842108342574308863599786840517470931252750315928112154607427917676130587914745385830016393791172965352762777384252137446273865233274586646458075838138268018014741183995917205500532733057038603482461347162893837885626332923089772882891727150874973997863707061644826008239123670818544630936927116731682569942573948637251606139739943305990764257791914137096852088504668839961825894810549217419980439508526445911348425471776331267895533916980584634523511755482121469393227021569968736881527435682593457521782035055607434220425269300992352904644371648318094688957178299363746031355490845006173328646831194764705121325998429916155153818895256398370988257876637195779719294882939653967451579244836631639734093240868901218063413738137563882139340999744551750357782552434086659544144396091400201969127875169160104669691311885964381327760044522255905333633737842786299524930822821608160851285835546156243481780298564562234406014923943547695455685863898109558422257049594470666654010412165544646241914589024179009864014434799332381260501838109659491120887321630991813359683457311810432966304589856671488493707234721334890950178927898836998369892356678737375472070344574675709547532946330876822009370278537400106695376320560869631099939011785143450123271537319062016922133133937106078100270388924860816504510317563200748545896079247089638377753034219883031672945833894601251469432787279829736638108077614574948821807434901037017590497352619364221181492249620745523544933396766750662284709459371347476896018019915894066330799018530446039990924297036333904891629754733434441556442911716049474146354570854951965699059656305314497687255465400727175815270040140746202541099706489113191230208222628070643103833699636221216504799181069957047121414079915785506614349852695370274161060188886858538736189855723512210752518022308834627720769096801699074898660173706939597026950393508892253018071734499879893260804244025912136140127694005125417993000855877052546738523448423847055714968136045691495014222754599360498487374548492560150209567156884462820739500867166770154174658602147041204392131161299915689145595518402074540478365807485033842177117914552866900424993788511762110971017650223210268199505672176833913301294788004370856529757530153099257651949827277978411218709405152402562898753013828364721783244057812023281313584692382584530608718775806435000557510618391713629377278252148934979117989095184769758464180990971068288480023297758738823223746468253282347530158873862323833223614699160704285691868750153448674376091665170545038395790907695536868666059540944468722591751150152613634409652326806910647808964711491570852190804784973981908444468614510189814335292953321654162191783805354833022727446874028850932452232640992584993353663461522781802817899863711781902714569416628011889078614097809739618538645925302806208909016595497472438547895462330200199720003880971785825867953336970167050713322052334180068397956441016141601475416912688170451814657752610241600392152363603801218053363226703780154282438297813066207150814647961204862170065470925639550658076163983324957223020279524810962556161674672045546555470015027684455419581996164340679895106685281030916051127899959265796641950407714482603694555527731589079107848310795367801855602518179882949473505095937896345331133649484627266506128096085936508351015823961456477020250218400387897025800766157802164883431106076539064706317481255142655056036726214955077255984286307157094537154962516379805824943414526160799240925151060126541769510090247001367899089539722636874720462377830447131629631526505296927337175673098990836700045490857076416068036760478875917639096197345041672992273358942639918891303174875989336224665576323638822266107346671647605013530539327374759463839155006359478128904131336248508229793548359468434886862702240835863072080602503555361084251224192300593360685144579028605268384734406439780788680590021923320305205306900244312895126491277183237610213269785513287135654828409936524397155063052968514842902993156869203132533423906566018699517226837347342960198943535939037246136890988450684268192488595401552640003781598304153621718750835537494870956654993263898334289634569873117072429449010173244778794421458343216601352904435979881322537835060475843739913643056696102072082093506016667851877793310084987306554482708845587196227148209580436891353578943836518354697821660970943853759578964551843196411659852261016776577014020117910564187292700427655496724456190918185829403322318923155864394281120091950096380376906101564255830704360805221886489473536720805396013516516821602993024277999193801614055475749988173552131607862937632129922432976316409345003158858429248527188046527644160750559406787246791609631152695706913299499606643938257170877969571818404001952196094478948270219310848631864494922188175805995263566575524948052986605063480634088196440068278731075157199549738502426865816719887139560473879897804829576118902540640820856581338746352017495113402092337620264502288892882618396053821732208758877961325787910553717199984850979376899318261608216744665749243810674516542775879602223353200818100797128316536543656680707335350989365511534013241264849558567216554523137898642338259421999780410171542095194463717028423178477389146195428074536831725929076690705187128130439893530995138646240815083423622550904787808400641262733629350777764620966725573560851370707390391263699313578835634907022323921561251022553694993823256284006381476332888022252869113032778285923043535150694046517291027219254170709250022058367903153941573295121410260594518863340069805938654462963268708774382363634467116122065908182384400060583792277603763756813581478452391726287955396945756337555603132595477189510784600903411693487626582983063922822959898697364085546703139874681979702207777927914747829761699731844739115246936231504476348043388287282502627836895076270376286009477672472894253359933044931497608623719863838578401323838900856992881194782151565199987317478586620966249408616605181735449770662388752012676534391451522734377553385399567712517139740810750912001542029048880695041584451672927215245938673245645507169574389643716837069328334269129535702718728681559069047035807388091398150932425094345270961392439822963158388542016773910908701062820450635104847069844651794257610642381465620619976298698522290286507385755120061968007529852888539208729683252865581984177015862219639911300422422987076128251335745226032616833279179863832216016841194118588900049311650641532574291784247367735096033446316855445667237495073880734375877449665475560040295430101349684452824477904662193814408649552000281143492213839575833856249261240947602442838155757466792438495437846985723919981338558592552012923059319217122625385506722811645904860613284711084244542115994216641794674428069790352866662212594074185489871351743021954392388259317582156761045875923272084604439267400111229577988997182250172064752244674308916867504887265225394273852441586583878584017046680030617584146305666384712471433150349757997866834884027191016417612170123465007328202924589354991477365925001986064465346795779128361173728687805521512280299482345497453141639854863779651561969847243752104922286989261125065420954253830022667667009718631543220260272531582500015379057720644293943492774525004428027132697359753329292484932753553376845130269511724604398317339395227850232940969890129911860048634138559793643419155787108080585665949452530714402526025666372947785211439631632041633647791458022018184950082297264858768060735353456082020467720765418492760839875895345274829621538767846812562199251892713228134897570932885863119904847605743548218553782204435331775662595104213987877385587030953602210902156499963829203708066429858978427327891427811798594959615810495828414128285615041140795389318303359382382340495200834235785853841096365578979391393533152108345694538709754044078977397022665329556908319060734028657174470540249329834766429022217938399371458728372588199868692070518151395892499116474929038372309743123044235433353736993934364594442893082820538617046161520376217274057942835602657416288906717710246589255583403153442924331065319814825369146546269072877135362230220527003408464324684346820386218915730532285511217842103859744973480110570532325575120609739597988385237964372914268135514805877118735340250222086359291042478865799580302821907601577696132439846338414546402772352530485977266394176809205531260278348448039916240639083190431357653272116266999951606790471101234051807159567406121880505619981668316293855047248862189950784760358530908985542813702875048300604953416516074240633468388300234015160508920300646200723888029500780644967214017060370740600158195967230287179116389016390756038057282495839608055054455199225543278779405308651064748625957796687104657727111928792325664387167664507355026704310140125551030481901529278740553101656185464314873145750449076063079083977803591075902292663447515479262010410855304090227543969096494630452447322683540246349683073928019793675007517978093587943399797843328706669091909701014665262328033418188780779651270635718892042560662718538009458539856308173267197253653070554217481465063182325187761187178937875622088174544362683211691846885963391542673691663688507929831589492368760297637763327588430976790552996266668323004826159578246120989551913577802846662986341256365961963293802333976667160428181090859072282305919177765391959966574819199112470043677794289819351361819448795202960753852149033957027949643085590107011676126185449165532680507645126982074250426346097482107610826195997092818455386975915924729930562087775044072165655428019432397380402419136591622388896725541054526711973047013526827595022510371127671401288624427682923709092513981824663192879829272639415876066880563618898263364393203481811593206886244260764181108294247726633956005454106075781910593402390373798797342129437111712572298635324835914473666356404048198924775465867241326295801558473211677239387616967142777517364413144935607029863660665990474726424294550844037541550685700620625393766148361773002867680124787091831137366177680616679201479259824502874349167246273268701302923360826188682350202992398591156030221500326587142207790911976523377191480907340543885720687018690535246910871979244236723208582998373551511514938605113873006659394546506823384759090130303186247490788807817559169980394332783367110270769324821719238626320060371102434202943164589365050579724579131916838752734772500284215298500668644794859167970566102254221123034244964543521291157207503254515954531017303487345664585269209137052503983879728766093424567430014247557024122996016662891899648257180005139759289848754714788218737488095144424105615306394262051113224063271230003916197784410725221831655403698844637192477731308773751849050048261976094205393195298106525015573252309697935548995351759658859058639890325522746720626654282488192650892464906291116299848391727099490742900252215149218806733355535244388750333421687732275593808426239413887916878242386601772407041632543683465605908815941808506137883375007187491971108556251378814878120061809132399552104781646630779753248185501270575116880704988729410275462814269363856765611608668037034856347081901689395563566641109301820611446102498067674079952924772458412566882973770855619045951567105964941628440203502029197027394991313397209098596307770311408483135673084530679329804226915895286373867079411238495911330927463546588791940252263206451119531865569244418360022695456856665535688901629505811583735009797168148928382229922434644323648555223805936227885103300992017291040924304833130159864459321344962367688495524399279066258570078747949307297977391114495720822418674474421286175113986910819944372982208224250728731248079572149200744853763743256544207401050086974295082353556228349251379207960535803010936192084827561967552095542245724082775278444364841349364126901358446379864858146059332251283454637997951886395047660241647833130862393205121613671425176748898297036649728855893420010683781661895941730730667001132102430885985651487252218243339778501329408368122114366425068631506095163295633972763048978361863846095277367081083554126713223079928809050034449316063678876107850272628679031111869541313982968464199261593249927075800335200580623619991247744960135282733474068853986812010411216794388806047406740819314775275180971168247446700674058376634995235868548859388767081819117538232560312785685293272138318358113357481478619740456012460147609298122580880990230440044072360021165523599229519151507338922695664770503123049764303555227739151698188595078214828277302326339987064747420827992295191060879760932472685262174147740965679522800487579765964259402549080831057064608242536157076118228296184759136073674852998843249979624260666720331213358706636472381893043905650076688382222053082606278291620718825190052335963082373602975081792048315931010226170827168733838794008969057018554179865757571420695341978821078639029343093771811889362628496886447717882002592617095358619718167127640442320195086958387208625778683406184582339106857463930429040899138570492693698269728159579418977227233644404808167444853873635192621643432436413907327065023658388190814839800941775738260777323412545947316201966050789201742280959611423380183452304915366850053102082968384275734776961756351196917009449813150355547231361779473032619421550663377029036725819240808628462613673710254467123533228790052649537031889108007118689069640728466224665584382207319734394299165622862631175803032139230265666605500564537873385593203889974723986018588659759838575956332916196464985680683283707194221896486102826096830604062150487609191472668184877272278862482896240666203915448748763731607301038478144480330378130499764016650972563919049451034198671196453251484311756823335832657008358721223234222142936112477681937183148710569950677702605515734286243328923609146379289896301237512410661395186873971732084759248061959023379642596806022438778791657510483259798112673130425994938984260526104429133771308919256566192876158679059727473373359364091245611433923630348599189562449358414630803975036054040697969102316374851483600069697231756201567486646436651152198570826623640060940865678135849798977987270126846007938474499788323421476766930860609724499275470576612104565001152852855418453846553419165503048149912814627681046600271634951023629558003187218977707753791056775576271885133060353446271944799492051347366720362403872829719038080894252282666539335020118086651840435289172825447416080887321255892599297170849408780135636539427939346825831579769002611561525711758217367207565345146616707389954927774366323501303232342151633677938817831711494157734837936895071170210285239616128952293408466296479451766353253722701161489589595580853677687915127143910077080347021933913872513697998007010879780264960064816114024990946177936135789365691479809269366336177924442068385395790824241061415917576284284809665856550664598885193752611296949600356230036205778410095606937287916000243432456023742321394304929092780183489705478815556974146079307724199109310654679159089688209943438613444018258997390771599116955146083051613502369593713859790318807468072389198083029800572401508502627620770626209338180576760593964013742880534690980340460789290169221011173249078393378811975543915051937703391508456316638357420895250735806582133069185706528840327780443924487233239240178561863576527096574332441069744408336538497235195651527714790616129343120343234288327106294544075026235305848497453618727118929188805767246818133774544709392819824846107415038437601116464209715283510871605144494162617709781927939594984911611769453343079192479265162549763079705485675901329076348048871095116339782644136457168292072710991599457150199715586540947552261984165064635365898845546203869376815955700077481839721978575407864364696264636610957225677960227543488672176209805861639528450245094000424309631087652850719873438513490444356101403188602907715332396966780362080655819868823878903267878913219302304144116842915833581234918352388968673292033178195669056032992225631006020652082975402489648914007030967819757772286353923665507385087886959519108612814702849197595992833177015074795129815562146529191210375731716926743931178051002185645824377805116087062421701685528252045533840716785546634690962045100871770402315181421485974993143394532226098109476242256734364932261292788009759478147677209705896342116423857693890436146742320041183060836286345579823485815148803416021444381323439103551554793093255642659174985004762202962795881655605756459506769439545508734881259673019907555664818785888535778061997437156846915221087625626403416135725901355310040851618689258212049564632457639061003720695053551315708412870763349360968610864330221436138091009804363922032530488049069605179463734360325103765189786489087649312768756108705446623119474362595343409548903607391588139120600093118054768787203267678366178930995801152738950002009156720396867043678007787314554730437113424311221239218749554018822645940745730213513326646300324182577240160189445901457402736035219598446081403224890526753541749178364872948811255167330316504634824528350248358108952114004372351017912626279036237821128206146327391713876786558296325193796158819436842623228227624533865897313924582320479929268482152458298653237714171507520639105220071276339538554090570846852214025976750664076398596084476786325068343727528349235123443009304886660260121021011128730358263053791712576032936895139956170558639054152999127009492521250843964919507913465640881484010583901303750687682550731420923650078701179795166122286525041522654780693113197016102757917421559954180185573306478594065633405163390377914477947486764318682020427401465175131630629968593691650074875136573308206724508939751151455079796437947484260273063017389169083198527820413387216887029827387392904387312374012089236275368789409537551856647062435354620797590751354044851766073820109668237193276463518458893787215905067527861784279861329397081841394291512273845264843244584584462815699727779946560313680941402276520950005515424379180145157588999587780614586456836110852297096639730820145529281451394355441033805855855584421625250452431637323877515468903843645723935831225027085668609608732190791570046104299711484905321562036666785443090151642415582827139462874503955401460177103192825367075379930313903059728877262822781334867816768111844318540253875751080795310367009370665962117940718081477174012280703859100279624842029160911637500017999588002510786304136460344814195079167576577243526890932311386727547824046825829921309601420313387719385594063445491990120855326390478910396474098799740183171853733504943752510700694636595929427868588377121319535452218920261951443880467534007215022148854295374083899162649798609475666328039462141424179623482338176023879606074328602451495087496460319014581017161456683912661009950030040921513781704327473393784038679440166228836886372174352050989221252049828057203070211878068088870067445408286823234133713025254825843556737310296425459458078525648796859480137548563848347166285796136085585129137344471882960124226284362505402196027647886832952879022599649979328703014270569287334162882989849391578030423404201881626674583661420670387401979200028947995014557234615807202186494006284234325404747340684009584931949593708250642384686423425281117701556017081343293796295070383326844184484461297716236137048579872340667642607822643534869984462203904843508908210566171315819848622436199832840098364739450668307923074065156655675006733470892695030793022824739032076723944275468798640663324754509874751924622598657345063178747352281767791928337555834295555157038433484624006962197205103059307028956985115515988832975433619442183034489956526119352677541313645142569320368149297338611710258044070882413269715116213738390048040937483788563656257349112788904639291792123643572994884364832436450571194324463461615871824274334447844010816027080491636822797140842939405961608779873668035790610091709587520985576785236545399109636249132944809075288758330955080366707028333610951892812041098566868956767051209089062332723028840968725224753080915696195212711483095385082024474724649217164116878357195748553278782850557973149246584814776555121374750844698076038853418404548270509170065951857518337734698432808755455607912169997941449581628226748943060551418606007542971179119367750444328622245326837267991771581707799939851780892312865538705020173791211903051933689158868200228916043773967760407847989080938733494581482333780184927753532950068468888605141687126694921692183932293299231195410505132081028782139964323235892978057070191827820452265666805666351925398421661688399239238258156142641163073242778491089063957096849527564282478142748553079362634363735964086377051045045230763984002193030720449880716332634712482179378858341838520425384620562291580041414452687642446573213714939719465146478143009617932518329672296588597601983897507819670876611517151311594301728020264715755472346625579654346540580411243340444224769599189214404366429741320188024640460369074754938381065749751268038777674241552881125006475861653484257019624843198418228594073223993253111587139068865544845661539712620400255630847704414784260818018892300970730510428823212222763776974597736959001913903096299511649012298957927557392305399019950852567876961089966735381500901148325888642338359873173802853978224006138734626407292843077592313269553509774099893305134820158011848101139003298899402079302724411308241634412485789040870799955593600016071413651115527713728209534167512845576409775550310605412263701037554472607110919827047976586654131923039760803868195587255070775961418275950434881440888489379782723607718797167106875651015461284551992887176076381033748638581926438867606988116507737473876552528366354644040334417999814935719598054787602962324752879493249095417626019564816599255005074456234526440766867667908372090242780787645177202294711314160776013337517258706389290760292661052337663225516029836142716636767764798341857667423327240782506312669477529527295057911112442535762334858353950448694913827217410592790457674036302451776811311852464892094400822016454136216571698296167046659279383802425420585755736168180836791103278301681519846207675307359244390617197384618218400754909264754783696463174685286747883890188339990835054892156420986751469432055521592752941252458287492149541432392359189647566004272832772704265195072047371197795782000376155868981265113513943012343357640512470867964744472250040662583278835545544877282626935531015950274038904715603806919568973997216456136070377597414280646010096354275704833359868950899785616554817414781177497128233444885080535831265474736288613162872404951486420930624423688009025449258292458718676246258587388609413070638229827454484301655900002879799236834677638462402009413765978520511393062226813976901855536162887352428809620513728444173500969943458781920008686058348911326090028460800060984446945495543577076705340420423965063866210326556626201478522935690079701411983346706321026085373251966915505577556127350387501971689517919067197941059294106388489795490377818532403896236350093648666934996590866162312668330455925341696886740991623277098366106365524510535056261360598140129753040419172821873605110960165305726636297573245799275080302753897896019800139851123368431083221341055037393395048194336671458177641770894896209283710737808253456220379026190846677603448924732463684936741536914044470830206874871679337962793156784096554598571283004685735035889667277575733874044647235520375324476360948255190927810870731531775131319954701708927484723071625401826582294901403436968585983519238940219073838942470880903034631596147280986605479916288310597250516836988752619006229419818238706371291887079460389869224450016026501744438451560797510599429671259313806721310039556974273196706027655155564011694900749749879854239848907043612951094297586361183426848542792778800645790349045040608435373298628239147495390097622583090356837832227621745894010751447074784069285442568310789188777787259569375270035208474250331203744969214580379499539823203442881206608064350254945349755155629882772787695415029727658141823219519227145387447292792111042153169618261630334215648636206048530087234689648109275336102895314267647242798100009439053566727574909667886614214073422545861659948381541478029039531288944073133767756437199135638041216927873260585551866740269752511548636402663583904734933522072345245676584422729831056425064089198205527661017351617007352103682945738767689285120015976058011906665297935527291040292958097354974631442076891142640310293851209530207322015137947243650489734698181625522765165853356700393150183331972017668964187987966321690373591876805890403190130056105928537397510596946271619752187024620819836236966324567760734418192454013467001187471020562103771165594149729538013407762920465082896811532426237028478771465803677001065336911102330659800828403922500334757047900020326484886708728130661674629702328329294993592086051740814137438519481773754488987182132884417093587475485793504953779666294080340899378303208760861343506964497183556643815846525633960460355186807890310342323032910767404875861837491310842571232404871219899573803815109912609014256171645870853576039276208923251243281023123460435283779668101846006445019868212465052063314617215429707248332243728252875934028807009274916836162218278114985329013158291159378348191886651977301540282212541883481088127572990161555179154367976715908046496120838792368220417645757256868042363604106408606216593188618496017217583844603242251172887376831524749153782717044292550217601868963352234367711034003756770061531220594645984059951812727570460835892934481288079875734177327484934894201170750387454278420741869458976220258286143592218369289001998484960536120045901828161501963272389925948510986575349424331403075822775214006657462651927726830745962459862705757126424826098991600283285620240468727435691721155392103329417831917847982910173770454998048606242693038530107950567385674367291521759284760527963207727760499591851322891369193021302358094871529548550844709157229847446796303675770993264722456487485761766520798078428611012177255406154490110990256530611202816839895683793264417559592634831780626425453451341683719376576628885970759238476085591939673794906098795926988600316595432522290702953597925535839912367206680757650769450325248688215904889045151970619077062894945657938345110251110092231365318739156298534874411865092447536394354903023493171583984903541947203793470454548744594296822395159862832097570058248213898979082098530717310543114698362873667806759772388683559589583010276889023746424529810135563949489979366333411341985847137254925862333427873829074351261107398445990297870851454736971921840406757648178156922153007832360094402929880348118550478297090579178188613382379742443532638573099567107022264492662503857663565095416013505989245641824408299028969986833917360958250830027660617070427711623763709344015691827424898058687245626098638401950651379637497835659061447180044888952076023996968224877127249046174763224814460240397454567720636663922924359880071280945154072486294424675547871753198799570828896499638723918917783077952047394927246861737957309638289893976260416865348450673960066862743151814244506252629822559255278450510287451713658940800346352846985600323223732438273771489483502179174048206914482642079826382669974909153174475739571979134037874986638016512835241878747880144541274045416686739068058914589453194535682280010938655899025935496917060545666532754285064803179641528269389258822627007898402499264389132627342730487030038873924650528587012734360935392797067842993697721008775383803082808943625079727086197289560682300765612978746516212002767122349497596415720225269982508832129879170161602815576498454515819894065736204081411151968483735707934109964040376481084439343316353143528970078775523655829657480580800393507349421674335836367373605957302605920419219300001983774992494405729079572357459487481091080324698852702186122255752792635737359276000505321461033181891240532848303688968867334036362779200565944459535395720062850735981135938583252867326659646451619153270417782727648847528540337192533118972005995965976141345220320693351883998072500480551253700457252614850480360364969337775236643851427065255771823319165664514479379997475571077746485321983197104084320543862147019190553053011679295946699239197714722681706522062240417494813930389338006274026184601742420832416891111883300808165206264970153636182617426929356532570477054305349631593736392175276038533842062087139807577168153779403547539946697682349625155752767093139357329421975741993945215480002020009356831138726375936907873385532611177831667434524160246777642409154821243912422497833250389428871698488600420910570023759031336531827097279714737012189047842497398294893135641201754513945222809283958008844343516600255154796214441326017165914516551084451395402873009624378473432326041771228566502871921532929785200486986052942362173105735377484089069457420975584237355644054844115685088554384185106043059708489487697613128152355620001328921402575868168730198856970780682263739088992753743795069429628465400202825563177320512698248945597362667758782265839115954913228493818800504310049159025047886715967754583480587861133752080358857102048130692716848324434950811695249279775870533753531357764848007067634047307191548631395535545943891197944510153896767183257418593929196919070897897982080640193999205230686795824415687732732354142382573484556039463608072149628087373186115763226809277141783653405513587504919064603679996290754216528866641477817796148859224570971527411005821187979028738031389728198805670560136548906046313238832201240961198112369666848490511665652590279406281321727757653116223093760985384726658225307764533451517009827344860858826124180604321649613413896527716500755496470523357372474219757367104227360453633331271800001865789311542921226454779520883891660906547620670626613651845320964110936055647709652861702894099053807157933139607764973421842912799248406486381528681636937069596176268922525956144034655325882848364594472425198379689491407294022764871095743076564122074996882880893712078674671055226784128503640285303167953448865930905536313729367974427584542821106511411093749104042462674799649046142165901921845270095189161883199219541990155127989892890958722034940549986154962635208505387861895980399535252895429947187424445945506469767085944183332269511216518733976261810877009035962221623161570028081731394945327577068391197618201313950720020421063340212065311659668069263890997705676319295690055353055222364720638456278086982229109335667581428073285253638107865100140204999440621126661485511966514255610471452665533093434262476770830026167022623343073538268316549212610975182314901055132556107184450939250268852237511959097648173683703258426901332823851479839536201778756029338523304706492867209211247859869919742785480108139002396882590832431567562851514923905680124888694488728984904980570036230655652312974991369502604680991715038765257655514992859290589549643341284472340595178210112901989136811415699191005784882684246852127662898897259348868825160208218688636880532245793431735648830532526808274676033523117263926251861031619710904299906552374105054914651737492075253302222463566715435853177117813894639844874945119707981660959822921706043707651583085198858047005624632362633288123071266065674873791574088835982993738475195555880321193600525346938828413135823885369907504288116323091953079697587055280223050148253387550170511094291999334110387839544650074754393140706577291559614604664944473699775529900404055322382739450897509848328422114648755565448520534032414740150649241715309421346465228879443401091073858087110391165929927183822982212614045859754354007582212327014739277921555682191720614965112391400791295955531706708173628332143266426332300179715137488746269800132288844565361271216723039884799145761145435260559689968365982143563754597926729134779053128247583291236668439202452626520461353667582066583314271962671036458883481517040810077126481795278655372622872354888221815637616434863779614029807763185406272687587189181119601605190060005733991776559087717068821212730483233735463450489444613345837876029636119559080908875731074749879768178777429950816844570886747382083831834309673634557493232262074870622807757877949411577007393441368878269596723025198651210411542210236991076498197670796509513297032454449959873225575151025982235171938392343820435511137723917051652793358783098155947445234697962980946539758830311890026414754084056800482405435697823438626971096933663096462416327032526846193521699828926391204476971851487605847979670752252253177686820702951294241109128926761981824004989675164804886785473314356729867975413252281058554149947910672895192791101706463543823691927940152870971053287866955754205415575533081479413473196556756768776371274174640698151331217541736462515937961632837504318091887994582278530667802723064532441568126329440256579713549628883536458193156272535569694072086909420817429621936292685669420660339119668395943152022408363491417370795995419476789784982528381369683670788464746952410133180910220860405823474313448410477122140782425535591225633642574967896428724181745580712603340050254047378578503152573522589664255792824869584435659428358562149049135920397338395261584134184498352769327425812495108240301806413357953353505384948533750515127918354180873855444482038785502267105056531963316737447977955057604299921753527620564156743371803353571420593045622014258619965501949704783166766908760344862300799147988758768911691638949667403186008702671689171866527837831260135304645713796035869424977370421331919543757094848151697292139304483184742573612053211596906054824172086377934413076511615472865916731164474335042561677982746337977634708223675097194672584749956936139662482157095999989145189341321660268410593490206073893775238927644721166089153705957302815246943633996329757566113754035372586795004860698807866942270489080647982198281848793172588148651384189014413659875095804276551632704938465675856378682754664079675343588027834117437799592484250217745092932441520134262169611672883675904539679505231065253697373659394375429120310222379910408860937763860422337385837800220554983584179200298264065969509576326205944423525621934840982093379932163938867147818329837659635221732767988364507804751167900234259068817339725249957264040014284063669233833863231289401825535352883651429029848740802267480904378651334030770523584110840129373790533987189606739009100009330919347796419775697904382358767293238384631528755398456419473635266888970947754292369780982119347226094517482522895478673706642414099307989227474789329614594998749434867508668278076602795653848654449499137996526181065916781250413345669170455652367765072381630601678615740969768693484995510754583705236989608281801093798770485369510642713955257805958241438500519992618808363452905148560078636554016661597207003764638405203489304265203967305659113539938851673387022277311191243067114249323233828420819372934338010753955438074868727280062037837291853679330244822362628782837750156214406489242246791700501277968916678895354590202423373324481710795169647267936881458557800251883512605579376692511307055415852944853635206344034647420385956542928471705331582873494495607647451143478932438966845050069354249770427490331424643586380123648468499842643708980964827309810786367536247823849679647411076584034061682554872478691902051348343177791834793404801845370605477094605377199554809582350271186143025898146172475095536334038199823428003322911866785421007400592906775496287817931186588261850488135380735643960170341409595395060062901294496360623989321079344183187124130726757979721841237019947997949524456416223879136335607404737659226654724064568866342893878505802796916296874048568107031377021932105389935573571650374849042950669952552292274757799947637596634315471807632526518099230710049452931209901562198308506734786664462135724446897383443546657465711753674499974317374307918935657638748658608687651017677927477049788711586130333020529517748992314330807283728906987393021321184712884943238128267736092077845876660407753493102205092113076443908441702046808953918258573376667302773145774160038673316151041235855852074930433917044141274680920441928498063609013991059525907455792192740150517117402375196197309865274404856462876702716945823710131325164487414534173484771903739276615732170684727893384363711887976789322562794532365184604624761330425194268342627623900441842255852377419329236790473174867602788078782175965161617872269696747742023707506483605282243761507341564767707378821618891123825384012029372736904395254824893927619763049111109301740399496421450288303118585320689379295935594105032264513017409113858601791010559753677265011227355346531848491639894627618333596725510161847540266763089494882542479034612467345469019166715581923070112589795238798335545303273904847076135724001520508045704257323481078182718940460295204297564883121746358215097430620433358152450429472332524710642709383523471218396210802261056349445474318897237048530847978075418676693727709428315184439816869721167915757734466553317196941294408173323651825128667323748485051099474459199811361530706770330643052429736429166139545505168744708275977297000649245543003581813124912444125408816121151258254321400023361866716979198786639397857078826336171394585914829508566369196180724048530605286259030116442257659347985284701355325988981802035941233201201918210942910584993618346910788082872768628908906624729398276996511505073324944589721594347182600033326972059171488312884356829004006762575967601776678593523720682939121914015366930219661597916292666040302947642090379804535789121030499502802998409225064363067854007766526272070207224004977177392499039671852583787205136755542848862897929111710196982404157622726726202226007151927521173520254354551493238822154048332447534173605476786835261314683054172734204915115571409193494656191769967276065674598834015598537757551970943074892699821286500172630478448910326926912579451136522250990472960796277866543495520232798146370000463632989675329738207371887794038174698414755907021993860622854093439984388956222758863880640386051925147520671931940670221688734766303204296813121185129540931786296730612400074014909578905889151481076688660017108396847604784648241710299139879114531241692967085896208531208849898311571109177118705483325280234767921735760913063866047871464212190140239685466922628294124793600850176819231052184653005255332280214442331736299402647584445107403638152252993154228310920613474300383243608178869643099032609825669341553182423328115808571784012250461468530291711427159330867510935291675563549613797951960091120316427576818171649289708850305935424869153913084631803657034469591952074808862412621627376962999775233419482544833702003447725543758220951632372537332941597287275398416720769612040405540520917600126622299415298441499858054624314743140167870946439944475831705193188998402441435467221839294295476266092470017923391151728936792372302548580398680466501660062182608263927076099577007629091557514562688945586679390797922444017334881076425779195295823323601982128589503763371501656361496804756592528137700253825449611582656173895745785378174537184329053127631734548386385942066221157745429991696735728342471212441119864768096671004796682072970842373518337569364289200001507766026603160244676715485428858869278916126109660182959930318327386222132126125878842531169125423511022169614585781427424919311576745825512686523255841511864090099724320274056406744354686959203960271061499607719009383232656644351543817016639720908838172047409088051505504915138972332162951606732801597754844030694740487180898783651255640940038338156607531178454164943404547093139463419614072901469132824604064976995742925555725311996558683187494761497643925045713271475095676180142872227137734767708904090264027066234166955477602593002052141727202779187400525948573854159391965555997191705234328249425692168027999127097890644782869940395509098775024526179117458240205048988209454258804673722867912182123447825279756441411883475189376557730907398859827783060360015253384484929027844108662843240600625534764257953105573139190813392663037457613129567504253905698113871345798580610301495962419332447389453115180610357782132139334119707868269549384480242836376368464290600566162496743945186418151140114813747963087393911114178161481323949890072951920384475105503744243671151021812925488259385338772768888705829162216163876452051788484108950263727504596469121314105785426841787364720317259456407547684680809704978316261696077915125963434674216016847996928485655794122833825392471924002951225758278289709468645238314766309305716578216824002136419169519902471049062999735150037723579152717488919355327896522874275948943462646076047936331270699448713213692636835162507334182863388100884462882693159001794628926303050070663006039799563889691597516634479241022393262681226915223120331991812892073283069769463690620489072228551561546098063800693535312372221679309067050290162553493857144748412237349626286946620962266918725459121538176531915291150895132601446499918159000506747008924400631546609354078988437501250883922655204572944140969852567803734642645012353122335717371928804230368676968917139533548919190106129484405327539323109700748549782776638758753030883491986729117255457782166201509024517376278787069135253248938697785799443263422501488262567004341522952346816705990767200630975588789738848415993481819218490365927911937943379756718128513703430026430553994738383159166775260545162984782988041519839557285357331535499520011336748809655879665108264486148664745717699570564510064752013712635019793692744594875600229045079211683198814902386155697291791294664489433016414884233701605684458669503819200302542027309720038356544403404057645629548479644961737498485265923293955462431197772157498572272218208794409154646252704097673292683851919891037520967928892734157183355320004812727262141815792789605676691510247869401401041328852437501804013263981992514169111912712890783764460141631639473983059645296889502721439917311355809534101170174030235521767154815102045061724533937721489588644904588844128493933318033743385296496230791940308852965901528167138785105108776282135091135560954986304104232245734798473183962781447695031879422251065989090467495446959772248750781408875555870153233592436463286673087862362486743297267973715302204781782250214704615242670140123178450074923651859009665619391607902846556799155071397509828879299950355920039059139518466946557115679939705373676877268326502341100844789159847087066679796263854217944135439020913057275283135065201096222972136585016253731124385875872560812186454088367432549159670821949489398058794015529320530550807452470000754525008960040177056994744395894265977069249406573637252952421664627020149632433287524828532384413916073576715162461148721127095582004006173336257180071985242351112644492830526080166849079112603151916409882405327356359253171934311205470015898888820672163702165358245383050030344258342597850407786439171807047624286870581152479773472011556175471776357723427699867374839954750056492405534055232386653215300678534361295013177626517787750639594848517392679630912622344951882023644312351588304870169564363112525253932333504505113946308175867096654250747262872210206410096842286909416611702575819234954800125092207016584951509870574021250556854253541198894617282496063687514265359681702393557345977203078270495793636733691372132747663820747607196766038584959298629976314547267459467498767396437416134120285456799085863410087089901335650829506076422564172712774801170168809508802157213412420474785570118785138322802123938396030585705015463298193212689634686098850365720640805661684596184135850765634860929468027151553886907830045630651685084128022959334542917279651145946575402512677883800761790952657286588548869462948873373512701388987173167646007861667781887792544098507705724177386900590563953087297969763017620388610694768331526037228460679698876303884736187503911404783717665148122011034187035110712780944826195306763658820457200470269511909741859870142229502025019598238487589587174553767814796005883871434811967373733774020621744029249416267304995319066463432274518271795226322840616504668219141748746257980375717495679864775167093399420219595377151614017017807045651632565870107560347273147353135620881867724261471070998264723463532490826754635561279866367314264051780812781912855366570479010790695149376060337093112382925602627233136453203902415245050634289838075208715382801457624931092243509866983647957359287445149273015035480895804944706802864896532844091923069577672320702678717082970362180617619207407146284430354184123449432830646992152678528142678114459116024762532313776593352396806034549417288102129465775803725090446637033994984753413936769223759548332206478559734224243690250910619391812348497649232817780106663443348356190528754831579154887318676951485370605333944519168574044613905849504577114560307020514542821959723823948221829255946110400995210047191367220300586954731834325496607691121588610452805217624430970855946699750030778222594988011796203979868696325559458537742683512382341589682567981063360104451672718579232839636912432459129029897822198082923013120788185682143226607597453220253634249652328627061648382949231665823319762378822740489779587682982116484053785642314735546751024224103157228125207419273697546564013101126043681345117586357232294476381079013497296206594662293067928197783353093576495033897656294626496559517417878698260916439905475636332296304113559461944090670099870890055439067754960641378582766556556185876587357928223751733802577586259013064338747993239327739474353281129983290210240471970480780749255280120415227485081578798147470384128846980979154161403680426734230144841428202636189579215462825148022833930270681144583605927881502987148550357123767413715670915088784190977159645442756103852322946930898725779427252859810492172961691546726262309293703081135393846697843245742346437043717809343614375068153726593304471862115028145446786812964796889333498754740236327457838366718295608005712815484037539336707435862807442993117108630553198339873526687607918754457449154028473556265736411487768572132823786976454920611597980693684388592423340007179958252324305912400894032583019295277609499767028112463363919697183774249046146867813302405781624521834983571195953969867208878339037863553494555595526470701090876014525571253435213711296419683427207420653466924351815635835487573489496780608393978256280648428840141579425034792846588030911368824220146634421069999243167787163963656425371602931500918179799816100218559253842085777381932044420384407325709556814002316407552969142499123788743706638531554176478395092355994464726645095780801893923650705989844914169880064161529761048755934964783040309957575178091464973939512872823494468541342807024796941703488899008556456390719121374790085712719910377004821734868354905842373537134709294664466556738170097823588984887492881097183302742982490669022841529617786043505339337738841695595403069374820420979687479981078972321852108727436055966951458612397226143157270675626012090596700717143829960880754273647203626798013956357095117137032390943851359592696133706011951910470068299967616309734645795116825670110766582473163187217418475129397114802353019499001317559601250355212146098081446699101438184828337582252360479709242314206209580858750595890425996173202865056097651118637273689755790510329695565288973379053107922208825871090047649848699352974895764772712869975344330039096024790351798910466320109799040094850297311399061093497282119881942882405804154222607969986626951477514876226869976856869805031973950158975980007268630310609552961932510553998235276547358316925101296463441120474143604240348747768040041385633646711828367117562459344606079797560974050868967006463263782069818650491691132828911546907412725588164913029148642340473016542547021192938616784527197823247482711330230303522739486832071045554852244859660974288225584735757662512287365075812907821328214679477385842481215712307128841908187999540352691477058003138352100804587807732604715775453470766897764718123251579763490005118956287286728793827214373807024670411788324781964559563203807665242265474836621449072974871359326272273076348844153124480315082400823410995442053751783393932594436953924903022032497643534939837263895771605222006242464131584781954266205618850493956465734529130924853329792009976143845495723599611307558554437038981297482476159432515933374048337727979182961511798167972148683860029795155843892992464357985368607802904008016513331997614045238174272397753298050152635230151252775695004873778949558455002428848596121620589899907750773089436548075727219879562580250567317757510736486095826203355044950426700902370216676111586308328629861143859737018306153361639585013670768328538504648058589460066711490646619966201140117515224678090642253888744668121741084732991519416480668120312961147525525032281824936294037700847551332055310073789082752170270648806484248577443096956133352855810837412953618063843705216604219853179221247298346091695399387444780097983662175756268640054858862892294103235149503197165298344351714022674810426640988465500777179360513118387460094335598517848819786851256590363648264987383494784041255194118818550205204261069087689061316007894428382629574241821632468573139980131720637852355154936609979180587774832045768682518545709484303071001395798019338069802177773029123072031758895415889568942639562253066921690967816682141804762582861579906073875325482507435641562533252718621078056513754110466614567436831296249911860091439805858529051189392081764459860354604087857658657200414322577326332624585943442579333083141794402636174515219295308483780928738969137526296779365627008171452118198893766882643707335443446848949461758035185789549425859243860437444820365649487324801572852582230534664490006033016696398603143866476155141231269371329434799746811172717687341493268722713712220102321271168945679296829471401154656376989557076903185237275585041742032692846056326701933210816504773115637557103940054504489859515727642655406560604857697769591188041804452458546435126472458983012834108284645975606139032670654713171403234929920229130463496350100097670065394622801493653448236397400119528195604569739819389500576907419655934533423285137275948542813090748862578994809077161824472565654412488412460417703889254758094156063140673699263975053875544163951127003772847022635420051799361686301793005407972872325104467262877721754429821570729103581233629311451855617344358809533558901260196087303618178943577654533297754846042819612550905110046421127695099046972222450191601680942065230153767937693597683640954085342844371256378374322625232803381978967417385222457892602447200250559014407872021613016247537431255104802116330426676782999024441881297443842690071337169887552444600573969622207120217384078423707157817648139131953008766714073411967756017279377074831823981590010824464117401878134743790567427330268492785299447778460326294328505187715383745580204519060042726461567873849965274506457903649166716499174026069416750756834088624700701966560699562841050707643797067209223893379791579799750254822899129279660006544697009213139667205449566670143008388713130366426300552289490434181267546995444651807712782238886355004856993951032854217778857178880426647541075483971505963507434370721569825314352509017698525212188825335858031731755990401292590976046043242130367123794567295155035630969916421285586015943397775949341401049186926050902105551381058607471569793892383514517203181480503529893425156645306945669232250523852546502289003355517716492441926351020682337856010512398909354238010504335500072124261494437974994434617434605909261572767920981982921397452169601836700353653649145400553724798666474439710779734187361510802882457156756662772221883164174363738088989430537118355518181919992212312240632247662799661613063442305180759991673609952383252531972755283442267645797765130094736510454617758812035761666166796442776982329642616991764518731716433706040943337081322108327062061271442829371333056936795002101815766137891125572937335031031725320182157334775799897869924018513851931570667365279082424317588475997240323702984065037139507428624254145294931299405121557272658334731998183698970599996788886150112352978426453339417492817929917357500822858029427930956438115276414310866039553454800404835603346200014764357920375029642521603370570597922032675712153008081008627006728213005811108531247014643669121884598823364470257321885086219873104562639387295854274951624014268809503149431603726430193160900430353231479086775686097836190159587102866707823645234352685822780217032348215174456251393973126415660284659709117390769050640282126299083737380369058651489811693303303717062062831337725536774005719215563923135081659755395123698204788161760997310236738120802945640341588967914884457101756010354012066121986313853823986296725527701465969482025414635235281021676198671422138626805924757813429834496430347292977456067335004781293126230873206471210796556524092998216605079347924260067365019581195051723983294094699408841379253093550567653566426691838340844131598819430909683102340433801506607238956897854971135139942822033738396387276797474259692919604279684332303811817583887591848363926237661697364861878638393464446958456672648712919989146632033070166764077213850901639148929139733604307524106894514191738341463559739431915445987122988495590108768085371687220049111220023340097385717834849390034273710797775152433756538080610177117375738564317515498707687689878869131589114164344018214451592069572890412436590635049503926718510726085912855134464633771046332501758903623852561842353595079587260432779684433214075115616521320626424746567292469388236046577821721522338031841211318497601852897698580502782245249067261066353262058137631236614579014943158178267251333896329109622805688720304245267961102113269782547809310034899708050272918272861814514889660196542372840622480616911114381310562335246320633862245770419459040512701536774026632243974902338796718126510412535624483123864028048244061940182785210503073252995328800333348872617340518536960936197497368597328472587262315806083824954147354945964435446616343131216208457705893863291455003440833860202287612109127303519332218935245191850683790520656962527549628222930975206397786587804843416572059421824445155307520548237460347471172211365722822417699786679321762163462541964579584958024949803681036079614574499242469058361129672734471062593158958740714106714585582872915627642963143451200618011320639118999720723526688184309738608965121811867998724892353367429551073351879429178773170145430388252447936991179687857072359008650762796797216967192650124028983242182894953227005588152158030013775431032340450064006777762040010610159396676406701123723079116226683069013504455514306014982559119813689952936698288349026194683543771593299354169758708377706688225302642019584583396843773766331315480195132587547239566109232721315710468247763246327606618868044770469633329211001060582571194383430016758540752625322578639388811572824008747330850306687925761103633104316963755798810534308542444687185875464509239187291004574377904559184663776568469696684580880717876966734336004550624215665529632746644356721429982695212553100405062148818769027540220030285931662320773317105318218927895878377696851625730533561785311055271955382954406812866878519766579370780040847971135642333396478424732173192228361278164680330935195837065282010207870544355698355023492994773001062631139482012968379007737582425527204054954074828293204852050333269111266752461471653600080110233052353523116494584728803846983154287777646573461023797824084918561199069176860188339698188280284688585178303236734092546562035644164664971238036583657137228490320389093420330427130860983166075665057476053547525980096594211227808312207476143327568588066114995821649618838077363762141997761363070185068784549268081174593900145640869095903143821118568142833829291674977429932830975002900754016609537067405240257728403842813578144865131335126999474055073017027308069958140800917631867708821296867182871855971438890373630236918023078182391552745645444267452291358894835718453612531081984473059887919443336771754807649304507765998808891676806418034193931495891374904130444796284804439025202293512190208111758287067557573097977919428896251217260524844899381948515308868834774125109857781119475879422374560584539954710316625231081486572483118085188196182146905936246899211997420756045062524348045380004254355022678228104297995144651534938896046140173382649327686063511015541599872651309921440598610445975160697473034074747960272238999266601897810370192600847221400050313920949305917812894651987784369072594949244014932783621578412049692107308735550862210165925087354952035053768915155885649962909839040760670718981368692032743434556428386693455310951635339369539603988744704752021594888181529166223210006292345143949071655203217353575107340418731967784604755630824995884983965600330715783437763308362916025880355016418394337938391965344202466391072190357341628125867161339877082533775614338924733783905603327463902447225911377655855019114351034903575820219833675238634042991436399330116343416757632541564746584982050541227359371705932128637217630735079959037722077603490680183988777993209176055848622407097734614227163732042370918600733992488898867560038120977848041179334689216200032866986627786523723609027016813142814121317285819185423047586078459707066134674970730104941051310609429561120243647728487731917686043616435638963753801217807181779385748578908334506259963249283427856896829963701125777507078143999258119501854477243689124677848675655901625184793921521906621083547532615818797015514584636780596844095422003700535154637704389557544286036777851715281220409429025233482938851009179371018023783077102003408065644939803599181588271580452507039459089254675152403759360630827876333465684348194858068728728927632371743935020673671635919011356105212407767278870660926637562429281371172986931818184827716251078372622508958639002904007926131980577795846403126701204795942706083724352762318353988686723102254285112538550550170880784628841855279854418249573674076822155728097265040245133104703537248997547724549769902870895775033057027204001790640528971362338090688001334559398060086516096021068763181254533651735386996888838563292837151834121497482433124783275889147633569804128850327228140614013061887814405498076930258819352602641143033136950519905835943769959628303944088837981540286990246055302714941627883352212898069796803342655383837121189454970481572074118142404681629568807842089937775358209038867897179703983482519267226594370935710110882478432044839523119148939936080653189019974012678687059511919888403662734190342409947918702776043378679967181542507545056569184517470614062613802784358063559150167240701097447082837394971083769164936058399743872879042204729067874555941676031629922010760589210764351481783270883428768768775054747895374604952116003567218168644241495608565348008448228414087446295440187852731739769497320260216337967617721520709147691411819824322868564818353025614784898732624819799158161808332732093473493993714104082056701162674890199866594455377812167096365670181578823018936937365800787371023342588459295539848552463611459489358508879832258938586450825197206815456856734747850443369032178964607574417325302749316378819819699308339546625546965912085119726803899257719017957698220059177206957909669402351600668023371949977088825262483993468508124909833978412794388379003667644199617758180737301752506132207926530718470984189903819521703095324119789765749189940246564772936659874755509776385644003919670516511217184710828945528797981801017178359427516430124660573384774425447645605642470638811050788056929626141761034401606213691229029704667783560114752388400331989693705447739917612849749930068479568729299026142380717398707816653633447118135218479598912654100041939082236152501180303293118871885255084028365824931459751017171871643016546720283001900924990370884919485464690725928363314364855235838935091996680040408403914835878796911752982575911953091548178125663495724752759527042486760605859718027025449726154992103350644534185177308411595981848013322762129012474473698097604020663946636993753594566709385656282253549932907318839139173353833761661676731236775256793257953687186307000858287263168146364392058522570540593502564780110922077594462630431491039988867677728529314317544586443153726615460048483554974839953733780736505033099463652308200763989993123153292135576942325431304803129245888705512108458750856701488131238278501845930857771594104167142229835033447724212586795398632686778204075647131933540878318345739047806060917587222851321484963604866762309495670334507277429573481223229433700266695761152580834035564804725371327403943162509492385578518953689175001745491148315614477026577509924383906856380102804669934434923411432016558298828409911098073422130954396141777128225994256180307310057574205861639436011195387468662599456985924275361046222725738464531381790320371578343339010537291003886115998196787623608947836552052766443637735515157448019188641364159141483434346051076796910930581292252536271802701846670429254678521416762749309136764962150689364927874768724936212627337910386274319080296533357415945064287307887844356317188837818114206567576323031552472629358926661024299712281600073865374737789157831998261164332545432716248063098853781010198367771426440233226487650857414304790029194083977522233058825541494086350434803293200864277305492725585238259106667375080240110792820637493858305312644609051480671815705989702550970013808029817775597018848778657725526494641514095715294354640156365726752041270548992570526387120993856095059795045690989509310076384977114636528056464026852386305604936998468668972505975095757396018536352729472257643627577374791712362692133587691985661428554244289835498049809308699457043853222952350382993195023341929868106672808292296038599986636441487214158573853704097398262855813998508940532263543889744597162777551389380630151341775148403964348074760573370213146129651682055327738358842871071778236522198680783844246574599395625028325665402005017293849228392967653874465785150394884938372326985671642435308674667660882389384663556240553120698308926966092839300130637897958827365770903483650851753789597093672922501982936688436094641500626035053482006459846257770206869899726780916351274865644143519824453847518531227498277293142352833229497928885512254574636008527668134064728127703084458783091098127908127780289959441544261664890712307498858923974090451876007368394039059336090596699884696185859007777841512966661683989858356864004827009513910429394507632823153733491569157916557878233629750401144231940686730773891009474923356224056451603461076801387724564153690487949619425708235091752209849487100724812472542495876420159094873659768933870482996589333250089368984144176649973260236829323537133697317020472399814411844529861774337793717931521019646577246564792537544627890898658468289331792232180305416978086587753126053522931252475584198624440924640909422467396140662732651846779242951950658345508987093687380684837814240040288071372051560998012429548476246911236138735375608217240016717281925566908275745002566689096444361262495530625836289373869812686004338881595878725717721507069616724193345096799827213459611360393580962822507386006863342466810643988607374087280617802985254854790272198251975305169173884555652351025229308512396041041938821227678173135342599174833833602146863407001708269386872563314707454646004090461810857788578451850558545798171408532930294646625709390355236335440561622078452173340412662539486466208903251557286631656380521402110161935355299382381464547017466604808460903282270983244034407504576632542797801066820264805626443832592264845081850267342308359366082167808191990637769824477605502199230043916412106778294459684493454204434001629767076493828854267854619312257514544949693154217740467188018807418333043190979786214575435875377343747055560671174319104125043361757021420329996782840726793029411645144893300345023665379673278104622156779645123119175789601863927973739387907365165322244549025415973255016933733858862789381312572655276518387662772462276639011853627963445416564164100393943374031542333417293671811337839249244874207819154002099102572299899304493952382325727872433042942673912693884657508332962801296925829747827245786498190711432968642993359314274927864850318170893926022988742417224717484140059458991655047910802286472464109925216357081755690850437880777624241966982927214109876676706778638633932094129454994417831407245474148426075965141104460999602457504652539476063680440918939544603245660607877617760159351716758112599458812970529455408112483287432200649449876311822838007635058829395168941047198818879774928692702481829280104410686379236313477036934717065210738622637912472448594782678453207949435411232284242976414888017406006116275632485390960785256039823633773156977725727476654337939539731032612381792329229628477494997946429579332616280115338793587876287937166442603403589254816593050690046432329528218103204912155550941396236658656987983514060050908869605330409504297089792320763785537452974675856384444743304938045294495043556072407642902233517311622004849131827500086190061097376204720339349723611727349548159658258480434564101992293042891318250110503113597625967793187887177543376955734018673867574169628782927100695602524698221440259728754642157914559300336849655827042264102412867594966373012989537728152357003132376798317440770829398184879381189756611332158216332231634112946940645171632665800344747203581001776652801388024343993673951705878828603946138689892343031827351888683872134605675284293596721471328783225513339162936501209263953892044924248413895434407448085261434371468386371168025649941778785939658160228641640785149308155540551502689928515821736559517831666162807397851102510164079763089054066613194236147605553343526934973370131696807703755006649424007784766007149276131720608813161702039955652937433991279547516409018457037883223352400862448540403738323836705017675136137430957198764661901306664478944269622949673194551222681806538947064521959423635819796175736852407661520847913626578855357745095329911664674368102317279551282672373232175205473444148185210624760077671282560308093652929484905753227631064046827496247752918014165662225288482947643727648100163326719075357088037469559045847013871738857864983414232107476361412748350561523677682194477102918193689863649355569346354115175159287146209223004685757113548703454681745926076006477455033163751439947098795766362840729467450486747412554685503724551256356933206809700547247419609090463615740305535711170933577227877897652938620418091429831451914717442074401917398720587402621114817999754801460215085214457054644918977898836026305955322001992527971505804891969267531209697325129836513695099005240274486958502917639293062831941792056312501982392062277727585383241938609774108692266679983914229879859528665409732145640017612631646154612144089645501123911586237005781379026001882815890767846940183898649324021079976575876651429769745461653153719176506423612800213963312425239564484310458106466417143271622069018694850935197407913249428747011729105543454431106869084455849038083342697841908349564938690972244734460157944498799349507746498843988613626743390224643122829039416801749960685637304049205107428827148815439729907931506474886956123764303991385118435303556708432305641694097516184856712606752300775749427550784904146608233834937611446722534495811193514717012854048676589551582173024898558030030480222539903402046746653710966026289007287144582115261646275539895079995842707893454471600660307882615544673180686729755615417808540017212908015403104787977325574631680573145262421668950278479597932229344267197575708760657719334383687856825962958994825754567825092644459774922175058740075197910817869872827994342522635363861236900725279179827234824406542643362200485668802082720576650416969944773599306827359620882449403286490216277963662720560100144838689504534428356131632836942514849338941344696659115899107646456586075592533129934116970585126779850944297092532598538112130735241002740716388485533899692340265115251342981223283869250281312580100568197171841978024756800792218980502986643170692356351128434214861993022677240854885310405252231483007755732989059554290595578894060275680309725937474893464012576591653030305848460789377347547301670716675568490398878085387294210957707864869684981456703385415395581407246860425881028759777383071411945858490553733083802086263441071121366783952421285240294999077105805847777899808965806240692445436401228443492269590393853770270720048627017825931260373114168539094324933059344730589920451301085603343806382325408654652216075584134385663268469172470602254398550306595077710606248942376519367857205079562881405118423315234337484891086417571292415886136728072684972743331207868813647759191560608970570498163686254264168483521488694986518294302918657666947217663973912483962939284453826943063924250994878205013377180485525380656039164656119572883916037658793376476693399570980480944656909706070851491120623476117894542360447154162648126035473564662655607408462733584621688282745612538454085841468031671528804040288566302418419992733396402616070712895977121033658987007438656292683143123016057004354617344614076707783092211526830443397008039619062581108363754526014927339007932431332690753961674687521741889483432132027908993295913902486622063463630766932327360067396085473407685906685577378967197077196807871677027072310341245055838694754192307864144041200121808572740576653273127267213230516472146234115495788071579106201753330439340983805289320516287980741654827871136366448004638090008503475438218601888788033428519718704653332312701025038295357429522453805066336077968116980311627080872402696835865823412293952694862860098314425213296879126086216749610253587132519541026220432580004437471748238101700124199787093367295611358545092762684486505791261276488413764254493591847849452965413225055328793321064708430292766255221846362536611913320544383611302381218258975000824572581262934354071625223012431783616351639867242519485428435763421014600884149681983038032076353285484721020392899780867138662097090831226954638386102189527336911719143833276852612105888368091261574730085859617989173155333680764219755737929805786375773644710515700340519087289064596501733639515698649367685818389422446629438079782331921263078823709670400678537607722936639846154543275258507054565438650032954411352717861739697736800968015289535449658045966135234785613784462879882084235818219241324300777447105838969332988629131916120442231343222304054137060777263637345342130316577178990461462414667042411379548530041266629980280064841223725961195903804655393431200859284301997088972416206145368061717266799751537870888512399489909565452580586069324389682227294587291714488531345379103738087051446587631366525485265475192041255065676179012772449255781074033188503152593540313235233674414031572707629375520131235831259608985229590673406258416284663490016241744314352720752532735522578702904011662879135503991960918116401975600947008545063733316616940930232436470557790784123908402125950936079937562288017685777896008639727991361775316259321302104414059526377566465074618177917691243249983777380907160670313146608734767519183993272279625146041379150331035669309569331957010055321498274868216514307296026197388049246700226034301462691294375407523963898817452956636838311543735895310427883393562565895387603169656291572219783022139561129885353690051093325916907236265055500812560157893318962212138196407414378495018775693491551041102645314938863754706259910750517208623655272980752157459569201559450494158611371809269271412583517075001980060450975076450208205407621506823476067023731152822442037675825073796596704432016423472839673438368606834261907690296323715132462037250811414888542517992677434541696147155849416719456575548104492280538168249654913182253715449862762613322809082166612889695516901224670837224006650975152548755314304104178233255778101054716892732505078408256426656107491550089848656160098239877787163700945534753823605167232198843411415815086224285320005593775567637944609992659426445354622785928765753890571949936623001004477642135245483447868980703833129907111431633019721231678098118175845092078907097977532024774918691424936324784272356639485404295120059225956869227286332347740898785814186567275245740527155497388530236755524015326401471346777477105473253431046032245523236307324187854965821619251802964357637551824530009718050295132350762267325934616604400558395603940741142970135961455838891447190708348109772046668070120014762382667305808648079784523655670456121211844438733119404606956177845931195492582148691135519050767582864979719736056665775589252613336036755380191745071096613793329605767796980628494668127840706073482184875705419962105207851875289227513704918673187503420311624667860671628969953052330911742312112276317659754069332749372265901201589314313226301696713527434456550567416353583601076761802382235181158442792877292980775218939460224174828847861954092172006063252568958501331845938701442924347224765652204670649892887021891583438518158339625524022233739173172388098580028512401633733688345154864391157859803783919263779056448788823490269704126959987825870075261137103909356494174235761054422211503761882026994376193714263505707485868884769413923365407332919717437966541767435721555836495950690499545649760903847886936552568888208036683149862764299901676413895402151516292730748214701028904647962266995485419060134090695518335259160138461969460920817009223208539718843625303729218159787011495682713209892931811013424191882032286340103447828398225118686085291011978117039470040018674281402103660917727195224121535169138649456701281848777530026850210981751118954441314468836191213918259306786043347167527029196556527598176815927291431503204609788741131528671589462500495426998970722631341078422429954017404323840465224114886590083669141308566045823309487937738701737437736959971081906979159712161067537516971553813812964367133761403430898159909000282692652968502506203322414511192660522733975416986263998650303256195258598893054116957044965064418738655901935735397295662514724701656348697766271959689811063132942024155612662639355600867665562915826023196307312866762206632441055693492364930550359206574163381858338425860234197610443804060918843201122387779167948316277801744875794765511809873756998304578566323943592377542372168057143560766099373143562658124607829228329827171526160830879893804786231273408759534097994040630511048147316946197499360797844087400684832909131653140450178820026579221546492142272452452004066644082386090620138956259946099635443046947273972239733517794072488467107151916041499812800497582924090771344737222616713068326663705071211730118918297037075566754208119662230991607838680989178083143975375160924185394200668127998361798747601510273196155756827522209553071350329834768976292790367295759516364379632442826108751627396888449215923249591800292945945141020917605241237112627735075923508919377749089803952208639418669734797494782558887610154508556021943914308194000203442910777805475049930879776545492664824406538762324744018287811717401562342204208565031307088824112200176955000561965441299640970454432364517834213878067503508862465064565368793140285174265653407513251590081734628449301974087304188820772656460162134353407114221107219345669040495439622294912753881665880193360154658443528511743176800287456934742091209161635285315360622855974874789329683470998352675030887008571329850406417869626655924408367694885774861330936564483206025235545265619098768358925092229191205359321497869938052590526440603027159475321515340819327616582975512449830764122632409302052827051496034922259117353053791430779978049318286328421253008591944376604073497830367711273118732491580441538189832444670714278549267864100533629680004864589196355495972926191041378079820557191386078764192279301606155754384220351424541614440940770875446064126821520731617309156529351499439252197838258717148882129451595413712197868251367962829646133987357369226760051124587459638909611146630743902573072421477597651225983698667282709962156450152945412032366211761315298795753087015569214400516557032992919547302024086580948698753010127799803019256019150521619420113420590787129034517746060269816459093273833193355173266361139693081651006617559833032252688832579872770717381872163043913921927758682498566042952498277839613235520526247522279135595875164489584990378427556955636688980109666332472531000432909293780806335095226858698363370374790115858289429839689248716707975713684712235081831526809313713972994025409420046131894181098401382282184618141378120040280880939305348189411793652373970445203257409463284920086147377928387040247557230070885486118000425126334112411803095088826636045613330244933296330858685403802458469377923394555066952835283856285803700023510638849404112318510131743627492037598839276313680012871360823462847406973850281994997502390870224283629821143254779391973371702466269606500136288896255905223666822911200607537056561345484854764323741973383872187072726990212121823624941648218435512364345424226728326829688518725915567328366495209311179616462592386724102629400975883116339875918680159033136221767750156569759120409201833350286482858852823008498591687712762724546983203373639018906449057480920696047861483988718926266435712002544345659037553315150588703143012872516430552555984182667456500554867589152971389170134022233239741298653924510184219772106782918098087840419087020875625078705179009161093553444673697653638793983811266800799849008613347203934615628422333681410788280742455867701437773237710424222705285542225658497032699891504713087031780593891868636488685105528165862300681917691859731246076838165811000872608205940288154234157538033661930855282747299697488430039198135356883093489112867965719862808087688116707041753271223618203814325733734189502848476222583443372497221298917896773023567627151827223083077193745583124714175697062326923622084554542611704074617017218415729184079137833961933901817905273663583878559894365563830077280576831936188277454984277679056665612555913910001906814921047982544831348953890788890629807929679314749381497205920094242580573850564210569560534816982339400346196614940630622426123988310602592712522781089669685355644621504917818155923070976921584158090243862579669184874653901814148791650913110579718137707538358319231273808524398779795136124182352410410232434512139092190362451924921074225499975599337066516346693752164197879582669047193544049275971691283805378412612440184638209109242896536002237849580448169704690052780782233731784335124264750737021764795477741427630793725818218011153214508441800038664502040910466177848580115329355615333014163276864072733307379496236197359673020373802369911818844139826154464655824365878170018069801813453660119285472078245129542547975548528046899930774049164201552037537436097912032203940810941771058252266504214319287253097263608789544049898437710860409420262081512051425297195767952018765005433566509857913720185178768379195275276138464797976383533102296877261173038280011858467405831221667385053139734239718967228409400242188010672585257477300298866529475990284753741763234818818538436083344709652940437969649852168404244452657678509802725021385619802851467439162072162701942380974457542909425099760702934874743054778990884793827678994315848564762543181283326435486865461742237997034882440245250440761374956616183439762020676993861666004161544531498397026674026132973870512265873425832037837971983487785545714581691660599141250542041052351014786266660094347818221151438280317669436413129991119584045524522035416180784352371469490563437014952216249591133791797991544184520757071763972927855769438865189395141833826240331163793563756549388507422881761043386325852514375841631526602755049933081131173899362870452257436769352017573980797901968721764119545936982759450381883597224136182776986579712867540158596728110887047493435180572673906454660497445518503124915093618154328515979343626984955172849883110899216172441490177395387162649763141625718730290189207198995826802338817081922972846824346775468308986396627744482286870923485480205334169843789668980600199485641679537380358079427475417434871328837695193395476101043286759101834440557259020324132651432110423870066489438152123483373328346043079373621332149648796375961737626381969315640333975477526458698541286711380586769759695191379743853974694828551865437438542369690956890427029159553801157603889475563675575218451191923229412023014926541776537924889923262751997776631725186337400334116568273917074622424191988219311555928967495324735650311143902235533508313112833873300640060799480779123296667217393293861635162246734124244169847682425240493171209985290897246565427518371973321693491019687437136118481423497745416427438681652133223323885759144883130279467499917553579552016936619990104443920881547876638861653955431515400717978106753415248116318867494726367589101439791974949746152461059033210644896940727068827233805362327592259105159628039607141574490845771290434704693440644132852970866802915565765453669306014776948948708464028125793695507688556908227739422416405776281553877618081575620041532503512696167657766305199073541245407464161549510516482284432423103758216230346403638163882807863798784960567867909461432274550819359416662638741651450834963511620205154272727359929916769463654400933139939172329611281905550842208435721017036740100713426381676768687349139461692454497816300183421190330257980374708066856470096869094387222378291878899921772327909800974835694266001762253693287277452104593341433136635078150455405680733621142699027521160134334015769009848385798199875598980626298781595851362566493840915579341517900441427439203966410516364252151295951543330230725368916291767295405423472569186592544851111389145029480244799866064279289013932141942733265488139667308624400338237188397561488159199968365865467317302666507975680682138541385626713671718363288483752635814644409194990873670389616283020099682402444027400518175533906900399440344571105054489469296860519420614616398206525176042921325401792069364727127327672264201861532568072482363722772197610676162482402582862309344467889218675326607869866960916919283020034856688372708191631011105925003417999318377742588631626278119990827720188382751712464575807153558206557476767424477064690604110502118101130802507530086569171721699761578222475221962445017805354617591588564326928065359860523579938186516778388678704045146425345492229098847134271435732138434590799573907486883120786255688267054499523053852770101102826953267891233960793841974844821814048457395995639941926317133157383952868620080014320804582201030872440783637205046168107928467883897105062410265893284678750890129246123076488735685572576940382594836891320211525342408905470867065688580816158198776196964589703977726318020596415498822416784271437953058101136579798965193640633645480987348831304196537840825684349928906793085157814829976984418334457039173422382345600787152894317670712576236015585885663221066789546202368656156815589974665459419188244283897244511867143016830863075856435233552767230848153610643937454515457266872638878969967516012010861373383453525440229558193828120338043960665145505169606945128925863473871060995076649985564537419960327147548155536935260207295368819390934731985077950439533740066359218476397312079051422592815020251412307893408914005483766923507914545614167908039875396351774564239435492362369555782922968749136995822555053279639177996481815353995389771966811935757513313537517020545870339061394221979456784524800799226760925369088746070738410503593056014563640858011880068051055873476232982280686073665466771472147677075793877029037415998045614315521865594833790909184061377366778739629640406411447882888620134079559565182820578838381517415572714772891147206851770121968405104552674119643945778269309344461467100523187813229144169975488042332758755989505275806399423210004944807147665128864509899713245681121262286087431032499720050144551723102233010666075525108924713716086628832562630311639071433825878178005981606463007390723764897755945994246930269980851228870966512457356692349159102589562657613426227460341589391378021966018827277401353509556735724400046237450994180025879473695683188112268888804718817791601945527399351284582131206079496054085163656357108717883075557333737722517787488197571493815295745299361288985909914701257939909458920128874125568017839033072495730996591730361407150506939449684180498839612577606256742475490643028486094041015158561330326453458477046319575073409543657251465678170368149919162361718357599962783932310339841168241578966646932266765027772053659195168661125423618238180923569819177780321396689141889358089421172279485124113743450224240655703924578986228202413563444832742699509176689255235672712705975588824488828804190223268415652185508273840805629165345593507426600599826350202770654753086407377120517581166659482887538523517005595101490698690257008099203277594137955330442206588548390308897328905399029045160248332650562310027865473357932454271811756092906664844590238766211368045929641468638970757495651188951706859242151651738622442735831306702909806202506831959312290835953515782437306439888215567969749528259131245257420621382514603681906898682400665344951263732867652010332570494427862965994602544280165628132292218681726497411140391048295614839061126372855678883826489971648029043907205585951404469329052131953283562744056020110147910505808133728943902018596235257581920331614470401716311029247368282652982070003703213636637822203618098240065082545764696569155518068721100525464725317010716205537076212395757642477730969082200360868436721504962849979427350577856286209336707245085456706896171676136381558634628403136478659443259427734574614613880697847122658227139337746469667612803888682698188485630361702147560683028583444778864829795897846115706436220138300308931538472843761533705296615299136326893254850297940434894375074707828857246973902116024953626735889486587166404204120165519039603014876027175040301129309441450899408989021879614064469624296112714651219623027672307354365003578205915571146597275639805835283209514243291612978278823260913608857613144981217871738904989551779672915132153876009435024654876987186220948440592033885671852150732589126985556294236610768563213710044957461857075264182410192570570041194022457883543757908707050189833884635166938225654195801960448617783746199115873277380821224166711375420151491460791637586456041765708614629189930298630938470560941989085066329667218665241395791408872776227166434388872935164454665896055584260731290468544363652964999674011063874174996288710017532674311018412330214247154412096912582811731350097179579924012861879548287069836870176820250052453537542269464439393582363734765530349146033430226913855320631413708082643021586692500318316503051002481771496909940119358926361129318568466712349633542009024501946157347100333757035608931875648164297480507125257228944586266030970194020247050862039200183698774388094373442131473393279564846238928252834583817924652162770712876814025963144978528626037894774287372584986865369024611373175200351923911037224084018505900046503478114424229771173456223190975162471580849303517027978001775786042443145612073505894757863811640954943865874772731646703911338731861784270814255233643185574726711711570604078182957113566008409696800884161176707451149155659233401176786838667368071470031707771204610231443792976321533952371707717632013217053485771771895594589579460261686113174959646131796990196080320786570130832057254775540659227029807438960268093739543037918593388999657018081790971323385394517446348799449612092439956155535737309407308013548674563425313497022280888366967821718709625224574814013889180674261121472953643266833688010147907314311173390705936383801354931127279265348018578624992889580294148159043865523546723739389922375146239554662499019526847911965781794268764177975265914774987490577779913771736102046831199143731560148697766797804360613482270442505159675870138371055104376311014602906717936078442673810968509906226168419366155840538532052612777620818855307426693016332367236373071020954771008032090899575269484460225309413111149539933405692482695008882841013307014383886214307314963864803215399764543871433155333079659656547057859459153609245097011600213674188281983889035385199501885325096047169993223413269005395466625101192228553323237373096424435380416483773230836352745842561251280645724606128448784009381629345763555367951887160626934360385869261259481992246979176223272594115106198246841781797766970883193379208815331519570828325416970240078761873139032077181180893341490286554461928683934351010441300986960032182642311320265873826008692939535863314725120720908404287965166900991137088471634423338173058042665917431519216357888701288448745183194084552245538756734854468535534482573317008894362212897416946676207152654076985674687532600197764594962553129684020272230812671187872584768349607179742941915619653620182611289069010667052724614691760076497446799234514710911494053858167712944339617948130834915626298536207305838617911428983501014531608630107464169338253254208418655116256474373508010046336163128902768250943289946267790736905786403839353043400410105193256399555002474067748451237423828519915291364276684228966149191631127107758598144288602778067599861144418132124359866017590798455447290234050489515183920958089969620571228146666090058596913269484933936543730597391762660074212565443080149995931230829498630672586388331199899294852771932604233997852737239388604646744564456075117337488918577479021688608416575561082058834741515910924651749147636116470323865330521506719159635044628055835269595134634172042251908237898666150856944559096759590647105388014586508718413982673703997681822051973670901760498996215963863926684615247802888698642858703799179862071317977685701056054835072889226708715882296089256388076715062397737951284220287540300392303008756452081641428846949851948766313714777543783987724471360009157060048366885708991590287785326370108320728470278262508862382580072907288870230048128658603397041744234906768417837855009119512765230648406305219844933253519340675637297543699747268619439185519094139614251237463809123667375831907220569014172668839283997109483553810736551648644630700277436728364681519033227557420211132595900838538436320804051775739649852835256776890710477804606661964220255846305477620105258752347429310900686639345004979973108631863796798681504456415754293146901874487570948760359205129819554674442281554124123447223180598398765929370893053763113147610262791583182045326407120904235097978204784426306307049774664679102233931678352206900481827849912604692165829756185463897750049849278847516824044392868732926314950034998166707093288966809519349243842507879044661328365663575564543512003110063393484769769531062113878847414324324513275727108181009257562198808953309863949813552229435554004816407097320121530354936934623051666289778120081420888638232547323205235967639062606786687610754853249890576982116587612088432570284529741197739753771482820799809733098094320640060267115165388926284767485211269938176275419214087304422924675988150319973683997041315347027889157512469592068859392982151728944449557345053166266121600081097601960196101518639589654308085041243799436519854967538565716856081470704066376769103574566344914040049061578423428915300827469681310354320613790739619751705954405080239177356940979299301013693193517154820292612906060806495252417365936396786378962130430945554102566720705198828062867336647615152066229030766667015093331989944080644040182872021441499381253139856918425713661670878350125070046967144813092460106010182828522630251093267302227625307515247091271148906411550796909878146296068249490448184020868093824348155122597622995056578468809473408479958423152407619972700864043082743537677244915700253248623283464488125817920878816076377016394026070263201370207970457562323525518878969603511260522880867039340922384881656403758046430590826847450368166604418377824906662291123933552067211046517071278403143595911009859834130993257112841350598905837491397650568808827689500518770660294115665427286185649169176034944210853153738495520356208279469307113897352880462964272291236569003999679765240198465783759498051034430717998811585658742811276743223753706105040734145175191410507496183477347010547066300420599302107982101687025802801943950578525806465729889649032246366371519877508735681289541848138574368023343994801720047037325770182029816491215628198586921122302917012583915216716910888965841135879953305341370552976028513213907746661282568192347849756976557883727739552522437827205351242991981986129531510294848523360975087051304091432688253487443530457102193595884876100265336528315729988474854352363327454881176003365251367816954755081451754602258510775172551744289056153975937528555642237571584014722159275245940077445680610658146054691131142151283482429730296892951291462186290351956982860068203110550840238972780421182281313880872835502816247202282101108557003766712888267981540383321276290628364196082124167309916686294385103656665942326502578124889647374386110346678020045417102157372743801906588483461992601872732631007677698122551836449701675166497853687136982021017239682304937931050007677291778305891764802185466399808858043371552347054694716444297081013616771343408588143833043747405860490635553854309123840580682095772916197298355014314918286185186136902662718967145603689365602296490286061991927907614848147579413976859172332138728045901898395611785992588454811742651931996806618332014363312710009761150266905736209691448908353610768182863808934370119756451074471875520371737591188348601669864594267028067782700435805128137574843083411799894776845998917527444468528823222870054628720065440313777065440633713170682907578580617130683805675698712785062312532562558001287328432197002094628740202405088759547032283126713414405978065773540378738967048880931190548018411322678969392690106908429387907580326086513310420108170313160020153697589743693427143960897938608975510312960840830558220003332135520368415249392374769614213380107052196212681200860997228224457279827900758163794185006445104568430079051839293016584768822443381172045297891785411585730446334461373395649995308058782127149021424163446509794861589858665536888683594030287864889584815220181213868492542906950276966308197210039650236324577317990031961996994037162391161686466420516877039769844491929659161463502814398794600546587170672020403921807218092083457097357922346638869424821926366943577661376369081157576969990972409283306257717052920138045808400059820516839641459870819323987599144431343835696817791122877853126553891635202025679312280141989520432534040640879318231308910368653600558513353282314025159053247629043303799210394593362438006986048941907095289135065922242942702438715259881450359155082052076259053583379652797459658625462695666270765008155797411585209760675111552643993375262730044887268472626107082671473761723483510771078110137750112492637336094026382143568968829626213899751575340195873425519481671585618113258688964271439930137730156645918791083178284564511198017297782050215352008152499842892264233815573889666423718019751037024495791794648007081091932235591550388249794473958533675310009712247653771945859178233666310556039095868369906618040143845237131811809091343703984350243328728394721364947747309348188637681001408251360397436147640589279814714206102830356725861561683517676919416655608935835683737694602051622731179667284752326610161673078396986831934516471505391227521705992824603801915123879376606594856663331757342069172018590289492628152647990940539817258101760685159227026275095109184886166293384984940570537630138549922641292195033998206856343477971816284005694162777704093322902926744259179893766321672185875946569810832858055018614018271129680078668281936271494478540631823001222923592171558543525341739647346321333823226465131142953868092413241675630687308551328712602000604135370269569433104076022253163383882193075069580175061090190862476610596546500604584068705498629384986420591360795504907445764615882621334347530032633941536238402497051500206108894307446503231379125847847463806108362707490818826665329629828936192438825197564990066012453239940296268691822582211818792705243953920996295830061705423875345297095515993249796723917792630257035535952336593222391438544225406901187294725829132199237083479608526198838730149417254215410634238698337000489982468985330857764942302873511838387993473327589367142659772714297993155114407060838103856684408300647704109430242793171371913359007306334124269840928498569751505328387096271405733690902987773736461990728107851480244624028970885649552823874500218770337552096237396573100173748439962735896893499915703580763819353057338399855329126631018698671187310006356773178771093358633331814287623144240432492071684887818476458015473264948063281103569153417348019755954880994729538596262533158747479665433163722540391133392810807556289922487007529445901867678226293298178424765280546435984446592444489161792885148428454159531544631332938942551376939005333947354439046877375666066983629222889018456563056611624063074624169361677853043996998884867506633143232225475043939208276368026376749067683280383018731190859134708923465402013558311652665208323472445147344593766258705070512311933640089474735327179010560633971710823611578808837253754188213635727317304787316644586822607593353555228813519024599084747206611377592134807289732542594164044796362982023160866407546830625302788398392166224495672312783124451142598520393616565608298769703256104172000448001577354612084741398834324894721403117170627488349213227993638930673786907356625485934080199547691969497414579481733788490516577602664471851683810894943827625258642653008775408224567522130393428845472676425935544362895177388420112851075399926632895647166339110373017839172705582690816725408914030133349098155729059072991843249743306179458381782773405656965882014143668191848845545227485078232294306188164643315575560982360680105559151263135940364335803808717150122620002199325386044713653942792049919933057840188205558310885339786017304615401389415458654393572660022709772126633162628263222824150745361372574095451158202977926328262511605248265685617982346950982474993076833029234326119763305672254635096964546204561691432185791665960394371738787850976445224757793739676476037111089872374013562691642186975124182176506036988206096039579647774182605603621592301025553409969501254003206919783178643123191907495189899998362575315787729191126277915902555526063514795668544186811400244324590807449440986651678940221816223002738048579089779454621090013840588872457724110404537117525347175256285382657764868230493462988606406697013008441889802829853790749610508821868440912410225263472251832858370378796783747300002349115515616769828856851401769017983285959159163847436346959747535898405465492799587351509524410312753466332506168360249716763571564490138880471226466269995166296982542526390261711755374814169047774677296134846501835735257434154066334526956507650490054649261720887958397557562451074493153905125330039662269446212072806257694939696335507418929848448413974137273105866431334594116321140969679338352731439728465780920571101679797807733673172903693443222374701829964752131953463186480913027426708062651709385331525108884763417278685630039992931037143938791837801422946903481598479086789532201965891552374776747406087927872272380483601224751422534958735810597937478500551897175631291711207174805939763617651571713366475281401357103590353885977539091247724905003497367224989038467925498276129600435872194934717372119364177081368579747386908255253218237633435719194430547718318755729245044868306328793439056440539816481579358757376029483522594858051738085632759535384156488844521210656054391290491123020657158087514650272838027915687229978726523856685238000366105485260892006065734206378364038869313510459208559172297159318051997235224987519545383430508576274049791397933535557295202016474082320559955507349986212893698297959678370872167179860655035500487335557442397058440962043859370478266145939533659943641653024153046776756640654921850113073277090304676966143348255467716683174460539660749389184393980581847448832771976823229391341747186064756467265447022181044007739295311315824700810869168409325671579609969958843279214735283231439405028129932542103199193771456225772217311454656524241935060870752598962498909775032065662960650225761925992134580768273145057760695085414077514775524322047339710855705976337663289923587711160001641354774615057841152599123189793023698643202078081841579862450914360066648440113104212010958191499857448443503131339656127701489666845693393463758473730521847141706581912406390234057232694472863231238272145787733763018442389530661728354100682776947889937776149840203161398113808642827321985816873971866013126778814066228550403012213986038190303470864359920508617851068631284334120933660444424198192765017001394101671558312814985356505478764001371286794758301120612631977019471821051166434450099367109565797579307998745358909925171478447634220859331448553312811921644148019739051812293277777916951162365006598322143029964753774246456934670945337557728568351538058220838153211239042316747538385428443612372749867146105790925489524661432185472344985968222055290842535298305052627919953534666862880781350132175224116874841492602098672096230183766686654311428379362285655967085543589934086420568045726623139500991226889046572756042191045665007658527230475923149157908270464017120094843138156377990713915197229068219051495274642328831907715224395522194583148741337493524643612712646923378637144127826419369321815554574187245992019816228057678873802898613253193094874326360733746890801261241583987747091626821297099598290108628794884313901989046214473780133818631627855703797677332760883769286275383432101293101601652309072425462243404643366550017081461320706164993087648547286608912769857351998850657032288162125197564703178968055579485735241549928074592851848082694001577544458371390874785020399803959410149139445362789427611236404086615600171649644425220936327090790575735103850799793392937571960030047623881076959782093387807867950146602129614287173006071445184149240434794781729095623239616191214911229983907322206618159515938787528554295653602031466619493202910024295592796519695851942725428927111854240893943121923624681012665590275459612036628212155175031560753924101422865848744479672755231042065670114196217865509747451877282751210803784202802452988185636911356725527027167383629929656355950644565774332639335313712104227453901818208752985981663659092785426857722584427090705102608439781007643520137160257019740125029417722513870136093375361033123463783850137489520123829344213388020702166674292902765235594929579548022986668878521301638913920435145470481478439305425969739519593537085773334205028879059636836904846220517042396397088651500516102803442691387099686004101584324024148261038009288533351739030269562110512405961495123553729907178893549389323554856685233762029408074132201696487025336057423054818870624168399775898185376590673498057291811871549942568093990034606865043323273411559055220028563537284719796273307964374518888511933973949176618129658698367980351007140161757855265725772884451272827577623556465559378686600007809223303943808123391190320348603190231032270542965028487400421456640409312534601952686508667075468205105892755116865955545414029102543392342532270789263839297787279696496861815200286141953963838984892949828485177719029047925866615887261917838438186236631008991374016693948312242220313045575125899841403468910541799833947398322602598255106880839204317899957191291623668921152920684595066635584787355848252221193111807103177141068823345809522774209801131875145851355412472024832064011291582921944984564086179256746541215480269039206356854818641485317518387160167099418107873262242305421190677095223655201633875341687031476341814484984089667099688466953555553347869089641624831816957134920009251343845470101361692603532580048694536093594118208699764327494750630654215304166942528606184990669720900741716050451305754164793625726756920168896358680563545268966283009656452899495773115980499024527311977072312992999429100178012615494509756706598590976474745305871037990724739834684511465124601398626997049259540468821491790573463537707834667596360893955828285514323953700495095447304537420596443785520677600683697454234003718161643452606721922709759733448907144275139926581954718547710015120633234028640290838266978323938158007829256062853131939312740973158616890158151006933820192902759614171061210310753813404693286338344696174781260530398196396824810321132072674019224635707642974678811431363434205710536843423256762950312049606466211933630684781771278131938405508095937206762420476682969037710735740885874660835244311162769643469240787349412558057431892497510485266379755890829839848488033335845872814530331505081025723592037197765472835317932104919161767405016093964992313786675159553683478197020362389231112195082806857778438393554780491483718230545595652346977757465946368590739250413849791580886264518391082835872318528273244133072875920191597779164751926559161251186757063464189475231154840140904739188445782767534888598658866435943623803736235912969309464045442185647705873582606479684900569237862937674734048093131787673532977414120447339724046489594879183055410998709679935524232742690072809285417141078865803206712365803586677631993266336314482768175446467789995051656743224001942212830918670075606783595618106842309794004088619050604274374095277196484181227523514164584745695802209238733595980000825836538310904270209550062071882350047950329286070756102345097290132575863488483829095633557136768972576443904124896183838711825027812007035024198843541653609647203126826701168146930398928825183942199346306970999457333446407885267515621260941914429191641063744343631029224732771424174505933002811367522120741789185677704797102257391275318958137846311863868411951219133551116250736179160410876664998920703224222878410113775491613950869285387064435940466670981046598806757662200434070011617488082011071306893743993289943045306878661189198648629141703166269993097791140642039816313272204075282051651907431941614039607762081205076572153508344085878419150050168850418758348721022182418948859029083694912639055596369290167104834684459702144550807907865839303187433536837366124882599079177869817233910058745317068770592327111675487094912760582977790126049587498894003421539285602979281848166599213332240987626401805839304857781504876577687823817143827073083280619698216136071776455339548348314024844309112597951612334761855738322377878959820079094421046646508779111180274114497009902224263447061297667968648516594791209338967642073038821996701758783689878501377108568277005255155545702941405058883063921365510112154920966932748970689973498916446432282305504546449743517004118343536037464556692619776136630727134339799259853688331801593988490249547532527311656051515746044966963719644861181842919057151813997867807373716354590119063951448823970336551603076038297562568499206908457118730996239354940985715837032534112222174794372951328423750537958376624016064938919764586306809395046866511425773065813799143501754394448805762368987233564800759482796046958064375987975391423074086877946588954409832885109813217465180117050549546382397683488530873301455256167784022030074981927480020800441193964278162958886199719065258396925924582516036473406475205300134136698700009588310874998630999613375279787138024591378638957746784798424048216479100134248622131190169744937040783336990763857391869551905047025146064574806577883811405336815343666038471242840747653752020077055435674124748890027091615060629216245428647515231209374048533695863186538523977456826935246972902566526708942592726555534871996587941272459009282308884210438237692098462066338662587354533886101241229698703611913643019166398971188895981804489711719007344724773677743432089449863150340891151104170950481418366129245833717731662642497124316855448369678025620449348970874455606393417370786307000008912225822361661652114484724197304234936096577832898617049304867158979694095009326392502695233285184244186307589803388758942582870102680899015145304255997616271709908267693554417337599818582666934581258990317894991741190143959662211039473477524785048265008233720673397264648415030445074564768197737376007013260914187443680872380607031047044043771156490965795609049322466122368661646587404385956799584027722350654949716105835091089497035868477415820982296718506007472777721102074723150408214985683443277613027953759931719080554352658357821768351839753692866920982006299937247494453388171731453215357260339327490955811739638914747155394682374059843006361664751571603725642708441582389333693462235953044831878045353035308207237988748049798089825203391997383144558983592547856474018669131214128724076296234433987503907260141488352231846935148990862069870358822682933755249918709696804742003315136253097233408989947123178335612209891210621798551779574701705958386616130660762166316796618520155411151418735971273731665679508880660719869956302599453264145861501493710362207891374867269930226842894620506268568218156267780349032733590629057145005975508715472187994680671721311519188552524682863108980153167754560156672123639417036103696199507300162474414636027799411870538101661984069528214640415904573037797023480758884201778645379383372655354814919682539838951366002915304281998458958245267165555176165832288705125676034738863432479916189263189782029588449829888298859565204535781731406077128561218958193820358354848524422886620096077793287463222099714624487320415741126143235282436160168200247693394083244785019798286772614739522801662593770706344283144449402391550281600474385623628248216009703389371293315034256959114589043480186398383618349028324366627379213928983835005737622528529531428575017931068219319228438563954336960906674650935506750354345748346549805348076395388944511891413064179964770141146876787222332695809769643713121160083264347997492362672253286093648674720199179796815450298550793678753672778852707861282036943037801473331214758844034456154377184725642456077639090236499139801078785827288176898324131085437933065862935215859494050211324890440810432260369765318048878801894043560595203437416965907884762981293052462340561842993835738851300221850161525707373781123596854192802725988634194125276692925364822720583550884828070459293408388533487493825148270999154746032029752403858877471124990187126611482613937767581080917740340472751524731510573337121976004969973906299979813783461266802338553185370602764979954864975325731507256794724578043787882352211253591200387236852942549645784497939066735953962245824513829254965654527487590678371451724257544083859854341583162323345065584985908232223970677465285752960255053337263791233487211262792574443634498092530837471136723895454503553059988504887025553444355866550678839930967449363043320400326335252729947771119185292835436534569480797814098785254756662289977825709997029088107078858812291472192901344244573553264549944404423018172919458793121840416743618549054035258250572830561905027856401809704136614748820982018504446194381245440633015794000399333534561089356078017865346710134254195108524551382671668782051123138064329646649397759848255702338574769990352953547847459703705713708302435727667968121710173319975236511843567762847578686028617078292611572682054675773749746579632863766906832200224126160664163016659670289808775094520559240706726454251194686048477226480698722047992802688621895935689550846818786281307861782512237539846498007992665392549977246599933147624814102022401098045817489459657564283419762971999164407405057085333614412634789765362527212480426925404949699451849395052637228709129570983532381702015132458093910078026687975455404339878361183772704624522366160074634918184071800171138107080387182550131169277894310592038394305693584248361212356982060972271007687004293012747796273487485221396165032653830581969640392556975977851491611308345892779208929226263431028137463346912092178831968877441119013886260844320001366308256610849542848361561143368073032997691115502600120238396637392300617538733406503620110954968532670067108030749709953089006655903368636984398347067070435757408895465063057899311632465318044729219675510980975724910188346904946669868226670024058978329037311781000344398285849206863048283846636224790792758460937183643596031667843021505490646438094841708287438380754759026273234826756705887920485750449685316023819195175031889938349549130246534616616195730855491369221949050094993100634216303982921823653650836021603430150550954968881489993193044246256142608824640719440838613186891256577421809598020489588745254857774363852051981444608699637475194124239901784255994762532346444494414841510087373154905312085633382695994890490919457304522869496437154869725990278596849978707922249189054093756312589870444641454443349676484888918233141777762292647432647066318266452205950720882038763709154073612563201166795882002741928322364185301455197060215804675973952011224365974919335918723354788137627253311470257537582589354944714257536700309427130015854589589939688323012823837022011204529296082832475298708029520376074242515192800861956496214091839859776663368546336006783863212189362055591395328863847470386739153473021876084239079467342047193026257428704350815930623384395507665190242352696116371169482429249035028193733499302697083072840084027185473816958957271446079277228225098697477949325023812846474944054259987803236349335015898774645983193506338434264429249728624177293850191582172674556458115900618104075980278077108313213379955723257589304906388084530108165162870851260797892723725249729477555723004925158845071009819268373199087800640566614911864254701347374645733295675913127825210757745020023970363208878155005924361108106737543964230864689219096863126883288813116878906619879340130029587567334935421494436286020491172879600412999825094661871231310523331757435307324128639165678284076139807133336156055931549220296848874336211260158175698432858422305463044694456343276484681630268944991883152878199331257089526409988364246646483576512680284199996240540892802211652714957416393279991716749321828167960198892001203294102010047853301266216962239302714991583337481501294576694970616692996783919748307710548622482880639239735198039415296658216930917237841274745394021453513063275463920423220761813969807989461035233338509724221247317927878819110261008741052982500014632122446775299848947475179832076071597222765593996968097215892774636636961656828423819996537101340614535370962774341544174195136814694071508208415553016138910459780158878263068241211627486836256783459176010289234056545989116730409609100692577769571842748292668582249772060447288997731372190185832037849455950495656097058943937441201292877558124871738315865987970988205162086756086122497263866767354444454805489005180710043235863145130630666220496029302892696427635849213268076213761985544605456416449115958505513956353022546462121271205338651693907802949961104622234271182589743125071845547482783231261571768320855403202164204590720882545266692762978280365312757541610217892873752078716705880980536516944376474448352800780604685548675800902157833691041891482841062754014736663233843371910980931601694512233787620101443876199997955022644889621461285286295467025210433296294896547586999489559633327290981838580204035582067005332187309330139865325821754161643436338348272664927862399954147278521925301995134792949369992044542223407604023229464737325552551214905923706214051699480660464131202541929992398393006727979396948082680883706047022504437014454932196604839041892611497323522948097740792790229763261783172350220266159679538476473989654036917126417470738337286440190202822618306441609604735140715499383514131902620222546997319824389379380249614412303498718404599372504566065933479269109839171619717784824234552601606130391125590262590798345282351340998328283268282879375183328582512900391376780015162013468332286390967334226580563822849427924617868313414589736699496033065259696907425594540672134624007009627609101592937573518342694210888115120306800379629470005805660721089506586869061841452609998813616779367362096138206693440178723922201355619944664570991655250039454709505170539856646059496037013939348145568679015136595861403377850254968923888684559251346351137536846263509624808533970782325115265644198289172234903202598851980783479680452556674348983720254260768283295650247191296733423376575203941000744840466751944547931270402578844026248933718633486460932013884922583079288118652682451137902886054373327900813386757142577744679199206359455867047991862481454556944025834631106362922373783622079308143244600087538109712317701306069457877315459715516799769314027315846830377817495762783660167532644388794125086737813223410294062300673774445975030744351816606928465858994406420300416064208832066450992177311584535907931842980465287931744175814021313655694130483545485814634752963958902021172909407571654142116120458401851250882675163155332082191069589760821839075228842419340718138511959452830986345562464699873408043748970806055736817040457325806716990529934427888268394579700699496216911548858523415329105395182695099938318697522123268007999360962276913227473775494672690167643707021659033716930768139568649575415961798963582558022238689937416336175554923467882573763964626580554658748374038160719231847892958539601612774563511843954831462670012627842049920404837533237557601323083292394731515623360549099490781452369469025931109533941093144438538826331264978995265592324167418651389277032257615104573946970386643727631803113100555727375831625574939894747991916574897891081263383394540998184727540790879354146192275909565469217125825673144942721064879120136453348096808313650368878222479533726788148154488679279925947373035783820468282608430881853726317481209413379887459490961060850560833250146577139036362393408449740935380474285801029293526531496790134085950278135950895345834421158412004845771072683164040297976151085161160743764346106715303430807220905629831748429684631084948926461821550492482918632896698099184003973195698213941341125764487297172974703803514757758842257166589375025241763224912646367585934466969832745952915568705598295091684533812906205349336164043565079451021991866405591107971122089007405243392701362394887226437858663608330873788337906336366213669772476266374356828345045029632539451188591958913042974488299364651349954207745257612175803242959791142574966724309566814392964778298211060380540436636083790213697757908755029803284821981861362619988159144741698069633868523476309573922952132332485684196017452087877788282462375795457679652005109756204902830167738416425970850008370776041418622335769717046701945255038844085362742464160204656907064107846938482124743293434053211125122048678166291448095612278125616825350124887715726804658779352901794609279994689889341580113689451768821678292370953183585182956832047414734976025477859272255587063364028716953617251379129668571791880703847923111566400570147295715316988050624902712648840991455670675210146038472868806766498828322560914316621629147289923240965478606843988762742894456962271330220804860342665234781144923456392041366544107183527940285840446369909185873814600018130792675025446992185537655878050294335579515696052033995875084545484144035541186886722722462426591574274337953458055449623522117205290386583035801188129234787639719503088831546158808721769040807641516303420970879765242855718839005825363546005044172374442428805582290843182821261569319012234662158241687650649273704571301617266374872842059045246806092615414806320500666598919863307688361420452448644185953800800479579337145205279641903273000028586005365087457950485448838409950880873324935878500900234678334285425996056881771116658720983546450240431172052131122503658999136890466491871477891667998388611767918307020142639323666596308973676597795401724036964921432118710066726145607211022823827293780033837928142518293738438094377143598029486082926625145049378074871955482341562842782559112054152496828921229352323535916308125971991764463668296040844875881519592418969846235785607608650963529559083561617314625611560606488222027658906274625434160131749564079100433376329773518488927475598400241405400172162952780503408996633143615984168377028745520492942707864878594663339819498171820046068383972809175785645881947029381517931065444442298019482161147869303302061263433797609219389819059761432366986608487593072084775976748955930308675225325013335455306348538615040046910900634913964982747048961798603906162022339527618709844475976792707644836697271132362313017993401296571087397551988217897547623237058105813031259658423732503025397684481472965036966796441756504103622814170778468161539416291601788868482535874698042463706605770789309100075850443149155471864337323602572534242781806463202558468595824298891733778788152333261489640189395140571590246445396329573615550181649578162671131438965508952588544539656852566883368365384600924537785850567950330651900677741293689912270381310161505130992782447251498797007225702163765274860240389762285571057113818042694086547596378987381295341992669169234604822673707168293771785307266896678667962843925014701968761597268901221734159281184673990997509082364268336804970742255772675089873124647638897507619354720640182289705443372054707067977131804096026028911014241389094689542184536588628244638746028909228875308674833918248654544507089000854436652979907991177500209859822474785189417696654717700933788401998984353283527644568601783793413070387602664313674183321174466932728036519595626785516935245974039074008977307575404422260512587027314925962179738908566979445687973832402679990941738797675329064167489441549657369155233599262770330363371762481826068354487255783695659447277956941267344796874775466185055066617204050320837056565160020045693093107056061766922307990677165335212654645085765500237889007701859348043045502610489742975354292794123774551303396398548013147615411554632673466523771780407239262919522044464449709698480908254049376463971343275884170995363271719750642720284866139601883810569388374718638438241357213122825290996920757702482985111682629990368927284291954604484087835642501290495739793511751114314835909933423901719292806545034906853883507134260080580781217701811952833633159604779397755026969069411282981808708425739977859323648994208770658296020176414164782667099811483949567167874210968248625646305877947843492253375034469188497672745642813468907141143352658055338650378220155061476555584161857341711475519727366026420442401990869109347649446546381595555322510034191839039689140254902824774714148997939428644727871840097797051423922355053765789946130878755429141275375321575977274806947113189651293180023164206513506357912186703446195076853984396531568513500421784641796574143085995811426650811589372866333172687676145012062564860577913192436866527557797247925280788872410664326573694549526581588446661570417446381573688681800223199916525835136785153656074842667500297728384329724835137572283111158982814300518902686303320020468181270030847074202946047768116695461761616559282695644275721537125188150080636600013405316343012066782351952317500629655191082453601746449427090095688985854512940841724626283707378418536472007759313886401504970108641911749238650089889757217614033423457409822520607073947117521091504092920071031069658182697342915847566641589222733775240100489805250434135592545080054687683318371145329142759871192040033382852916131160413736310282388068135992007146677238354021696834617133861093788521917374511698392042533985148639060679998512558238331491566397485320071498678691038913309452095061757555183705206645868379031765188817076148492167032377095218035030805085983607323915687913003830949059232872126549420585578673240062298550437243444864242449979425923391786424595332816024014530570841722953308992539942147246566714247835779302060173273312301562006684596944276476455785427430349819543668163904032534288630336080686800326424415880338705848772729371377624217103709504671186228485865750602313468806802074022557448210875936069909763228727265254485368718700788147937472589763431671682393831016931870997620053275009387197203165826632211402982999043215437102900138926248832545445258426391844056579801329322386684276899837007927407400105714634808833058502295270123285801723488624913493612744707831741611358244999526195476934613283067712035948482207818608238795174298457154733149511884750861333135140010163430980093667905732226232229611012312809997243304743398635578292193603061332661091905494563036492084999288819823755604189269240277931536138617504576185606306811320595468357295310447140207597574310221524214761265391986745167833350525711577833039307873979152496901860100127808254785323461087941994986568478986258257837806011154460761020582879140313515661032181627349644046758115136307281172711391210547671067611529037017732737824982873629098383780180831447275732091767264598863130944656328660027586757371173788297803235171967735278903828382945789246715749946449096763599044130108762572011140077423861963341933850494917298275576478507386167488556998085095041662815086276364426775357773442628601251879154238086328937376700002441520088165370469599015444506329420944158933390974859270873719382791501211747464622168909200943152309367589667171333622760005509664363374797415297583303107056793888099796647682960087702091715851043006899413761276151680777423080387710928103517560688184886840536753641619580529557044921444984567677363436355815876164712520572850198580398452782144168846733385809269658317515009809948545197825995898716933172997465960155823836110543579786803812699475266467073516862680181078198912650771101582720970369368359479460276509018664415571613246457037143754955974387935374932665888888723785393635283221154282178999421534384776104048858258369946790465508070441473553798276756682575102921720964412412005732412115968135955178524102596796091640026794306019116670682411915178956642653692335883223828158917357190602790442677060838408997122388478796422270465247623001526003605298903710554685382737306792967006126179687107909661408386842389455731242340856289971784539708380904969499263097923386160201128281821728974077181164813863812602687688891921061385654588872852143266052300008290753441623163062875546696277636241135530336136451557897599018989297519669072592535621310982078164115466403483329614095770305474377962076899841879846189231788999377266837169231554253246104401349711840667684341359352389202235718095966385388516733027891923888300403043742760897685907261243930091203252738585147389378290754580083788263262709615790506169888353860601995361511305465687242906730537142912501984787173591582975712905741028436421934312725393147595505831719131486571908980797657018855930420211855504864278041570548411606746921815226293493983024926918412098186052947951704985035507949897163517990209957421530004554309675356146018168272274865872225191595967191657857268992954338418001240926019964943674823955522635116722738320546071587248326820714553283086049908937421801722626564207235712206864498760096339477737617626983674613662023053838566124019285255091279160665794272223714153199866815126867329759004324647163034299556353406023618359744721370415367439429316423775310290036754208917292829012143139952996158918248095461103935274060180189436790448849560304343865441174951531214890734905975123510162891953817667764982913505426573283660358895860937626033346315414752818087858158269539891103417394118796402469185908567799935031599666851113504037862050342117807219242456619290358214496694266247703892070932443439263797777347287794892628410234038677629718904436220598104361729894713407000103183629555126508018687493246090213399976926358502307302532550276573072806227508643390803040214621190879649882402011744311975836117185361353676309502074531527549260227754252029889759778950860422683829427184142728010622557282293441252286720661388876771388758047467330252096404834968912157984722482241729255707995812473652527439944186327670157620325922529823973575034287919024186033598357590111872641641193130690186199272741651497713891781458250980365375231500300709593168661438562642238221352973843785765960353054435039593020157122411232896751582305038271508773046196648363191055986147818477112220059467520680232953280381160921421016466826924613097973337997652234182338045276143470725340143280491088148250577681127533637065709442812140420437424215929420221272084840453278899919544527977060647412973300583672795600442543908885379453048849997093285567963525429031389432851329474977412701877229409989338872814018714988648404663965164015607733071400170852162198275916434480878691703001045307194484126308072935110998362757474679903941663266084160543386054382080161448746786983944343990956126252098728837702836904195759623721954066538237864245083747503172592037221969871227868807159913520525980748421414731933688177142115782399414619373280821233714331065461018471730873416871339872034681165934199201457202613008557882235729071419271943132518751887843986528071300756862083594671186773138908795271722055557808022965932154379726177776452821403554160395708348520408562571807704322332485356483990071801283138309161513553116633039315354128691512715539157169658313481953107840221679264239223987823109170724463083291094188390593779327872345498644717736110945787229386475677644054607227379840458254345662564202462219500055239707253603651663252826583312083032183712603121086647315934984404504633424322193711301035502591018419439872603095778742148526043501725421621435862514871960099790610384413768316910420225039271490359597051485278915569409762214643275853140254372194903801243405349421234716072736612606104376053427357581223600038722625318733045022635240308938961172442585854375160549218402981199238767454360747657130490968565128251594941088018568976408575627401431155538786209113013788691493072696294810545306541172107126405503700977715048062889492555805343877905493930314135020474031140042790760322590587760510342157531207326111590478204939295798612982567449851881208593991918769511472096094435778255430710947995224958910078514132061494325442215988697335338155185144011112566243566109772428753481681374411388672171648267449128522959492297383737831220877178092835501941413204914167187031256099979910910629042090609040991345803241229274307515017505603668877654703991229714236259769782840190659247745683531860105967330416446861827783559545112328655983086650146611350806862465882408428094891325614544026696600194356895692358451182887846181697179384990915845613864766266498509641114627544726989746929183206651109245795641822959288948786856700034627430278362760482386727406296105505039263571113034041695296430544365417474359686660913269782552929684486394777899028177779982522343282637211718081845766047397130701103209068009236179799226430081661448686400341871611826601774892540542127734593897618067247756002106253198467583542814914611509911403943376522763878671066150205596311620273541915868676272858504960352003474435647620873234045036561063348213901478524750949782514792785631251975415770712104672193801693015884441547605092902321613493613230034181988035011239509957067086973218090146939685706726136629749567570272237979010011208434697885940064145803644347756358586616038158764820658210106633168518822005219840798921740029806397481900603006185024490201280578403177839516131961123907970511882648192177849374724007150757621591284119164270854077464393431753364093303102108307852725315835707517945795578824401507225726658225049789545660135720730731565431222467290509013074493822263413791871862435155425116971109842806985975681005775183560559297155428321657677659259007836616613364621745056676467093249869324017725512747753503909360333542797515097430189798891737370584145517284291373357356216234047715408201222777232013747778721502821671970897851418480759564877714216024081941220701319984572284593939246218568356881062840231249990445025910412097294231487589745541417760209439284929796113280559348704592137070361432203924164164338980048174831414690198270501438284923453311412494657775517994884230942125090529970959862492918850902985573360114345748949572484090060246540561473372570200381387964187623158389473993407524181566206183988743037579904203360450846407099898138996955486475440889500754579542634271179283283831289415352601252934526180446701075441899930577677549293671164664539672065546814422601154960218263506538604319450254987354266961137235885662508635247215307383248235577511665085171988821137819625317466440508388349909740618280701408162984855206866979947685206592785626517659003240764407521109522969275479129379131593623094840364623476093996131659913620609662776881425092176544329496449303718982441676875927560068446274059829264857116103754137360587482429705467279984629943995372692444381290136451832716977082551624939856947498587360291708667713520343345452450080528535061183654172321425762963745096948092941426066320358200103407023223413298429772506144542275225610726904191068618248121002236631301243209505177655132974005029640389651206276519866736873887400198744431854963287575924280687942925949732090920038654609864278784152651827699916153115364065477151526794232965167584583235448337858990452551340501079958092066336498424536968555358809308560088040273115637890645819183041952707999813998356659445966142273972923106201601492018143767630295960335055894928431892856303317485615755608505032373854055382386879128359992626111620105723534323874757923539069686481772244336523214232125574250739094672393795855747380130378522467059151942478027484897162205368685618733412161956226280105306756250796341821221118429166865275163237609494854154051463044416496394787315444151986400319042537590433443112178793438399446957829238941792142860616630135898096012920077678088016399502233225290668706093447472037450722479207824906620228540825481114555157209175327842540402353790739164422550914319701845478653619507264036689565888807056288557615767363893038274890486841867795286721435642198224987494342271099982249993318467555853311487834738409035864352851607479836099822862531350553062666022648293430207938199757695801200380725266605285162119125389021724502293588970091247326815346378330361861485428158839242189899872649092544850987171556565911958624603392862275598334994282694628388983842443855582973962514360717037274229329036632060579710715182095167616856151077491064404906221633885639719043455848326752983966919509211715031128199652531478131179995353390953894246887172293636467972455675465291667407643607721256468127101897714650141428256673879270606078149835886604000628388205627230310239104962420103792739424692061236624492403783967451484346946497071827557031175746727586642523205940372034818189217167324457252112530258301243250477176412012399690743973186432593654461111903833308231411159959549492432071295117892606124402061782976760864682982525536508684459280320507890708710534147049886270888460421415725313874794871798063101940919203819131807432741505865327178008414763317516956625308221739147909840494861456841713668865924658016891998689373028968827128896189251863075362469635053480303193437455797079558056676981123084797360669604127392114381944719759685893291441602388558928666294403117023335092019771096857861927267655686775594318443590105936073355001944722419394963739957094240236102380886209451578790862849052617356958014413547261101656946207377559188296388672446020995774369371800269608325320332709707709784766779217283465566672014443805501467324041274516001009862421133703741930582091333374323995744837903854964731050876406798732697330413422324516518981848911393966446559642810529620042306830254741261577686582279547646606628431371897270789083240949440774687811632123875514501566241387040973278579896379136902021500110910533793524463672977129900012863254163420233270809291151368707941355783935414190613152974514996572749344555856729102658345931432492893562643929372658755268178373347826526146534148761416231177789699712150815311554708853310088132836032829394587412927686652706860281892332552744811145700878994150944665612420800192723801351641005956866323643488078139393065672173474209592357357878126747180709042131965029704992229025459371633171440750101990125129362519794825187327907190811116615869140536492070288161311064782997470013208700364864588535144944523978393733194462345394410109526205640936555225656132398033871211966601786555235071548217268493288837706748662269821513712300410201148522631580900345414451614119030224774957258973933636256850495309717671759917314613713152897791547045832404190550291565375134999332026144351592772635575226921111353343218341219195354010892969520426006152181959064677783054986121725828784885089512280851805085704658698360394045556345303849334345170427590073040671109027900748517837001213849638756390734275423764872029734868389432887382792168192101309991829251609186210573665090416156292157995771522129184910502618625285734001252466393796771415353693832357928109975620341798380051799475276407387342708148283667871795406886592420924358955360436045881616958165481320062294763556909288396034997183164884957426588791543510729808518679702659457242509015798183435747831234809659838216046895160107303726934340502776341386055930487256982403773054818066584885017491833930425772234610806215882302443760225228002045420844890760063995924200190545367872383037299342407791013229474187471569649610388286938929127084736318637845880393418098891223779293530720112975965258787705587311239598489104271149357450037964524761271678202742038043933433225758762010531072586352478295267271460297971534232177737956765743408122900396729534701212503582340528772838179260569026480331282163315716836932521740983675188545954011135181136969386784469883532228164761747104529903921145694815645543411776533947523198689244144939644394227959905684486674427297156552971819750576122594743053208269182926209101034814614557916283754938963483967787748134395733791078764249514236795374403458557467358407745327986669420758254264251909914989088338693130943144843078107295658435249944532868805999418859141853480470246270692053004270909009337821456118581037755446114714783746611301272971769447151912704513615838776748019850499517844420085924610715734737458184021228538652026508632548573500914340432248948830796225532952388595110546583542398970002956751975299727630928424588502207807942658663335830896622839356278425249569637534813320914430370580111922764902079448278672064699791482670044896784768892455623380416972540383718215398395194756008159544866981086146307837516793842672006916820225309380590960661032435211006593560869215500246762933181672650782868435530151092384980826156413836022962682042446598595665308656610622680755965465373239345924846146452149041845594801054660361370624651933001842227133645212245634771312670854551365533279514190074190038174605517333414512356671219076193112196413500065358832917720519489472455493839786478834596235284362535216450556386480726654674157647814024267390424971778519167720069867787543617916349597145704112907382184784324839969577387789553848532453249586337613679177851967390439823045369959609961364028008880122925040765837396085107790788622408188181518150271418019396951429039181424205804119407689372281210170013439666150360355515557669976362191298262653841466060032811646130204197484553825243699255979804480903631990801716571832895867735391737565050162320978170990840610908888543314096161943256495937064900385484291344092519255267913678731796692567411705204206504789744624895167526775907524343812082164672675447726102822722399075628487690381014651719527678269701894447881503194541129730469276232302734427424877751149320902237245412389848869667417383611310932146974858276333777447717395150537866951036401321516651386330208917950936772435349430899783075532354239106024943842546676742634999880356774306695647457275082229758460206052431577396830906822073625572704990199935203706974727686901731029765927252537163140970032927048949206952830188774925916291148496739769233343268597309634500100139864370602875440749877084132869189596279251150398466684986816790905494280070231002341857613737929772781110552946022143737939648184792082819459510449454772074136083330798374995876829536726729976886197052265309732003265006705316682988149894620635215038183453968811164254228651927515022352465325115813391101176702573259388853841382655086132344929056687058853726229687488438281025080139603574456758252459728708475250620647240396038967699628655745959039541029339794065314410485516864376434231913260062526946363905276697504769032694008141673024064368124384723251654130719831925308866369565228775446643122726747685682019821500074944656916500084664844865332950386488583006440717811602867569782411406135614795314653873469378135163362134342986108804552449188141999391276277743978228116919676953108203223218082865546026578359110513892602059289232939008163793670236637662485159128034129863939115116197023619851772310940299928417909406658344796020278257977729020375855927983057904047258774367820781109353918951727435960700020492660414895820012481423399219455222635580044159448242802124650530094913241510211046176659780642842518936290810391379976750253119618030294485378969114943885935269794015759870774322804213781038139834196337166795300534416159177375374116879160132417830802213829349159839687087733559489785701731686779052391146064404560595366621355446386999772160397302261010738385933269574856580924528134928109236084660555064532352392845673986474411169838525235453851037584155312544307860539560154185491996147485587854905213066876489014500466308362571451156993285518156887511778037945480257063690847524832238574271839117200463368531602268165418455495363828878635803342244508080937476217118700824715294168660727410827804157633830568004954419830739994320729083629161355133765179880828040701043132769360395403302127178020569432034657953013339449843039928738346440884583687983099343262246378002139272498067914297063424628889747169422193543107378351819948979059823606656245488954248641419371201022502423940049928960132561929867879591384949650556050068618307125145264087689133627462732706326735273557955222099035908369291595704182949701647497129688590676737025371056605785707808365813741120036767906013722297042188303428346712248129449178457125542765934178942121302983058880258904684616585965199625977790219066161287256342182841665083002327584926352792152205159197010135864759943316520232916682154164469976821600940369952443422026530603069154658037200375840198496082376201572408181056705072370539104598531360263334505100617994018775166767219015079187403514275327864944809968868312764316544128662630056873783940574211102942801099742556129057311719091881169210177360791065406920439872935134347182223336311528516418530566759723155256499250436313546711420252655400507678377530870550372754055875830499092797676514048574428942984320053181142717089974135563883137198698586205840134534585201862918404150459751425320791656472476782489645129106817145904885788077957436581756009497282657127051340851467302938622801136748889430597327854998747851495552705714042098950620109659573644419032142554972282077915793185430625179862985089554628186449545689959741542152446841408764132378594593872892246761965696748279067334448723454147961663134399952819011915242643770055958413160591033606522740234945139138900982078218837479490355786831326779413850897824675551807815379558008415165773172613120378555294280282751898719489403272317661093456073518315921587979764957682095384893237774269301384253400001895797942158776467318103592362538341815778638393245829706373646712149354723753287700739994182627092143636734244190454959601927937670868163299669711042516417988913934044063284567631149356004690766419585902878058387133676770669854989380282348261918688040109336907355289996795628631338926564879675830376319000746636690315458719633697364098997087827518113655576070949033394288370964702899105295652339823204600975286378238613612638939850509625106480469014196162568232022324303993987452153807106122489494547356031857046940365044073959997856765102858729435067819107609206313447159585154646469771398879553246299692684085464317700769883736089801727087141589268016251521733453490810816905625162645867353108497455274458296151792102658536401970294033506758892809592554514867416929497178432363672194452529910791056974980784981625741434503662214729230384442891303459216389975997535815432291490914249191674857583316686605381547497217880591494931549976337571533038364733558047417509636353392727613943462992917813188363566933966942349217048567065211402976389380256520602519284530850775946505763651938294678441738086467238483368996608175270351683803403938519887377557337065153313860821547062955135593371823522080832911926128184674945975144044838326980147702282685805843537005384270438615449984987824079538783203842062552648726708546622275722149595567085982331480474750938949696166002414722546093696866667733469523044119665516914433841888630666605049745687539777210751123901985014957290655180193992613211077244279555264489261850302863782555378928708941931536508675687802424816711030445068090452412883574171456771477062945636606304278382511104400228057179001466767565401022129833981869212022642993882322751328912782120927644389769738211170622051698332582679033581271807948864028945883304321923794173232639900160393729061838953651465693776118728766359196665724615458038975902939712500424745048745727596122472172438351059232735579047901318034900580492812027855238599176177484848701060093736167145145634055209435235389163853900567793255135231573445336722710711531713336966403018437971421050189526117735999540507268623226698054274260339879853716438686037672640678621067338273715668262033574717925119210344181790390727421027716103839150242678387269532613805491007843673236401687990556172392648336366723197951736586166863746930035991956476621210880306013049052610961190897108776612984808720238247568301933939110549778286811316543730704738095594284856474839760809475523079863660881011855668793329267773835271161164048869577632226675681452368325270590282728685763701319921389117841369760651299359643767155492203298029506271092793497381631028109314606445549160021076706151253779977032735795458765214057695176345176736808253983768101971316217686014894859237418108628472147305553249380801211945462442453575377780806868872479230877046896080239008540269695219278566481553281425906496553447176272037280335204677745422949236948189362506708732185985730793998327216954054349010238106048227424678739381694325842472222755814449831675240847412625318830569455217428680726198601920671809508049372426991298949734038572915487879201220126390965185028362438349248201954935659091491355771755911825130691762431648506268175354917788225827481738777751168643696474830263645595450492951199514907882791284032309514342238673088485755327503031843121355625541504776132821615540603915619127783841139839135022978773727486819403876957226335621989970209519579015557531541823925294389345122641130589285845476059638267137542255369297055295858414247436090531762031987940288042647557163511069048818863514024588889801479676147754959425303894769689275727702273358511264336479621017976324003456108337825797740006176948790737017814306435327204752872975135537899628209325489001769864831627072738502201043353871359148659155719320257832205083273513776468725347755762114092250506125733102783617891094112435845448753861586853902064202569370429311018417246837134633094018095883539497260034949622188022201664698194902474650797509659603640251011528650906659985979980575696324036598614300367103421252015038511861603986987164767140780760457816092780629656641485636935970775986243516900406745730994177155357618157474314778476189868023295169867518053498787462450244900845700525760067517503205939673177869358410599771047929868602490078763309399238911916042913309581100496644732102117313446794379366419919357971580203064698308553939352577886053056274010408411263098467576614011523450213967260426469507573356403101621580511847321407076331762015701526361587283162413093747918875788967571288827695407872064017395839233916769424972365481603955153735668707899853560919839280087940472050350751602121001904820026543232241988469682668279868232689773177758679463638697889937740906689640151510443835467774776091653039879836205550642991319206218749710768265674178371873602966938380066223267210026853607722864350495317894362683409043087009810649264633374046406181750418701577920330367408945143641325431053628087374249224991581819564292611180415721266557947334643520646543423446228192196814440743229717583585927754962582915155175209583739172435014638185731960422121765197828141720524999071091829039634383841888072724187761626092202478746954544868571290430732095639668391905553195195282279131739430214235564916058162617731952666303176322997026987741138744439070854727940650900618296437179412405040391892496159682407185210655214513814505836711545506371418036849197196893341941390969809410472555992685080705620512179357549837823721892706034135938405797682413372187217201476728765086594005612909115707148485882919361996087773322690377746678554996997687835618769722360579482593362322964483970533359513223127816605643913754583218874564177598931122508568821918509580777266230196527383230161643825040389285492355603418877062996616381376565566964678011090776756716187991823822642772433442817239536281014054801839274725465353977063553887237959290038179838545740006796701618760070561878327374643299519192227399049351286091800118311763893833682841899087503841448894204749111122160642823883275513849489772337896000826904629053460206132911545629998805851786727744516445985073111680638946875913500374142819368927261218053489472624134685935385428552697126520789901575100498139057861094668281196295068112359657005967980432372121762685814067292748297529606276500952909269150304487064221478058490153931367938986481560964746405000377878456171047509657396676127730878178778066770557452855516579054386030702456123190462161539282004198321423728291591379946064079935118561225429785021782986465195458981756064808705973551396946333229744787495489895384399755036443044528402323461222982392601872099401453735850842890229584594626510035314005425245895457444512826762078479785537676133232369298767547576873947046010415116829421476295643182473012268234192923164669336318676879110962774334717827177347964306431253545762104816387846712520399623012011972257648054498363239618806963578501623433981145835179477250521940728563008637561345455211750941384278641924971157166637395058314500689804916264461018513945705830080467303813518852368462129743708094558333625047429846032562062481663158761732247184893651921644095395545351304108885788839381331454945020617727958195167390213481404653400600414247285004643339777299432286661234246697839233263183240639083420648892880704502923820228028306386625663947276405122230061521667897923137693131876255855561244679217505440204282457274221279425354749627918613963250707192214948321763678040871021244808865947778190997609615792444417517175381226708017777386667142300313580278102851842512369056782173956552834473658948344574653714198145167465488348573579990508848739409991589431629162870270246078495391633490603437645941767248482945093107397200222229282735464549157717785105826323473757127842245460699703907832319002097725024766083438284715249486340200113989004955810106890136255635432835979811692847175210635442096330897515504665495658055441132421544150093383948128699081369857439576944050099429231309975606766816044165979537397873896225384241027552482313003569038474322561847323247073436019529140976753709725137344659901635945032348994408834187316085911094382550494811665460751868880431959176325563315528375362821337099320252774443902531975359338045098057787141370136469283103384584108122747687479628367747244880189668873069601703926686852621927178604187655711370524727939521256588341162214924080236586267054405230647965967281701169159407382025599656388010555871597707795007397337057494136552616635938982849197195441772726279688926327563461756205652423010570409214663769337299569479751664297603401634969008816204834066256131841450774012677103606930445077861934567695410053248444085263763897758770333315347990546131157980180643468014389228716003075727442815033520050938304237600035759870053426404528121440756855481005727256842022170316001270985975143400716259093118303467756669719802489751304129956541184496197930676494363526792545223064885657727611590898898641199138417535935502442009490524542608345411018906365157126586545991367022392794054161481715622240737873434791641952528414033613501237135646047759379206871375707018194099559383019100142774105861961312880663938033485351044951678206765186346887911402102762225132939341267508797873305070024714229691366546366513507111121400068431301148204701941693064752968094440596505904721277352175542217508973459829659762816225554701002275810959327293067291952577924535670735204785976690078284693969344081734263449388388261601885979777980366580307412167944820974008824660212689947762705194704715742390539639973620744763134249282234402579674200838668674456568547583877047338871267403800738779477584602841164654869478645813767418189860613019013876751016470204124062324345005144765969604963000131629100834402050731787586099783589048111324926662294515394074420739587912016317570269557250653347607087182339724371856817731184623315418292504175494618903418028166091485531643078124909911371155056811965344155997737103084291245929666668560531111018958483138550652916829825562166771959472711789096150188063304773401401239226773962593948591477640402886631106539715690966529299485000532754253611526352653047291597343994041231963577767248907843170045700699862819025129246759454318817905878407919554320121247032156736461138633485305789354974336941249598973760626375141442697438899976196242677416638256128371535589887022544799830728672372216755780952813465526794888098153066846814667045596468948145189574087667001378246671903762383946331180957077424699018433148351717126300948196181742918796200582165160469780253610746812499891214993279694028632885831253027157698302726798295317000414994712202872925264491776278137646368061275673628739237450830419327227381468147831979744405129508830962404194665018688969602042093687678571574759168849991385043476543120055364386252761867540962853240060403846340092217219947430032085868956190756138172912867879543145455879889659632120832415978845926771883931222646873725397297332142998056789418114206886676109088077529350881752657411062499138325654229154610598528189901272346328084329702480572521173755110721172123310918064255756761000852787401287339282069213844523194714377144344495282011860220406762171955488641833607216074976872857988552743660243383773387084891205311926594946710077361455731343926559540753791871407479354824127497239486214313624175174161728896616051507266775143576891740433765257107376966332956415689682719893482091169573279426104291269100694627514211062758905690268851446822378331612804773315046049667321501988243376058262785168654640140246429612976181297594485454235932062704504577856669431532516152179287219559950405985648523257905329998551150144858378052750209241457846037068524974491872974515225153488456597902936372410097607937867653108291197545262368855464689863839271117147846126731870504500496240530982508223148329645621677465982868007580437576125690562019483901559133250898193561722503962076319811884123676459379200671693601015462221786540624163800539677173760917888316829414927776382683213288519336425874620056749008485719631800543312880067110283416695896847071658534844944376514686115698201795776053531811247470672461384871946082803936980900810157761431666157379707058456160351047495460337582313877036518976815830320391891301502110710467399600147050498447600302727341367545481626401499677526732943690075871430213479125146327885896596577025932703984338997130537217256310231285292381219083492012543386748385918458402036741678839442646089106453646322211609771540499954389150594181078924078030505541935764385085979964566295999369826819761768158221941939443053344016611467501030405467007194563102508146709312016858403772923383965846731105533595012919902501236581378506962723337987239274624070739246346569391720711165545503985749973652920484473960710300856672312997744985332025351487381968035514286104273103127173839935452529461383140330461843413727885483859331836698156124450655850763146165247094785315579714342081495169846240053024682205949975201819521078497202677649887070477608929599998630491249550686199004515014873614256538643240559415052842180588132883628942305952548416873248499019178094723465816443589421998653228028873620451310408049997615452101896174766768883368313231097168071898775446188758527551530236948474962592791855476085751688231773970387340242899531013979502153943548970346406909607244754748959921890077210553805723599275935194974717976523395572265026761052679839106494734451584666936868109883692935011773581005636317045148431426224195698143700398636949925053160918946719206771123883417500797314013125473410203183930618385184824780388519627501697822110093625271673097178263988915351945078757887167416983723258560935259780252691853142231508507897290659971905804833850773225901360597740967148810744596389067634929439363016693855854346836827356135291154201131647786908986466357397303621629491835145539825129439433449254354062133147259652615141643270095160521597966475319651558216024999589616167221638313377266703612013629809110820660017017256110067944096177562402722335435951011296131705867165643212510363751706136808097160317417696843392113768830300009990394768737105511431645406873182029393192108584650690105952041069633939679180234245847793846988808911964730763183220029046618701124280901909998837535032623554796502578069078935552029687403569139141884188317675600400199696710940685460979480797729615325765838406951506359464275708564841103548084748885072543634406079834456875880075516917004143219831799843017125333037172403074014231276003920513403366535119875396199846111019392537326157757593038163850051400446197031295446732109905352632513172724360835323547470405989552446716624065931302818094955115738699252927570965876971781774198782638518366178518583195720984153916139218015749077184611862985861168240940021031527196553223230200710068781415453637734116970351183601623823191242148212440575856195778777827402452682986043437248007408072994358398091832734336877313538906322654650359332160915294092442290077290807547080007497620949859860331931610343163047296024022709505851513506797395056252994118579060556991172654859233058834201013514210037836930051979919606424497986116035998590939271111953326500938580297234529849887364367499474575168425272671174245674730207183356018466703333022693466207936548963065596407682336701379247894584181997323081975954654623297136668834862197310282297625381370987483191833180021801412057032337147492815496056137319349383518033045501127302992194649210272244121307812081711528929950726306659799618854425813467398953027492665581951965522576423505185913244581708303391796956665328588119419793320683724280571801160008152821147569618643198025053684372862072084871078489671660503447771806519528068140367227180183337346382445332608301223238727553025196047514803959093143727284843287514033374810321516929475115156146720400546732039822183789666994925606309133122572303944551838862636857426154053833461254789962215910280912597037563896671767849727445838282865104121212063288355100544637973613289429033622545148834437912313910420234874373191425983958853715425282864684181335431883736633049804778808209907327812409881147398763256127832159835167645054193958933649704845881180169933906335535306439059648584031742332726748262796877167821996162925600415473217875500762739644289548114010205106368104571647303587063194295516560584334091475357227041052482023746440117912993625930074366657967172530911151856142895324272080477640553960387968100319437551696872733921363030930481300560857448271226356276619568211751091430116366661083381450989029685817376679938524979964394827227100206318200821323744767560926485969394132174542569657906496560351371910213260197669605426334267764360294005935968339853674845157503116702101366296044186587925666174200492659052858710921028623411624903623769287969082043554340924068162835240866105890375285739876491390010487316610848693913475942224000250833706223959556143504211699781480119788165449216369440637484894901476863186506630588561783435909829215334445130844388966810629719797718558241185096960124762446989447791724072072493084331180739596978939830332215207373624022494715622282778398721578194145096306534650847071250835220632033896717009745141870433796112390736925978000981032622829409536449903514500938295701049989819326830205954528966654798082579215076538041400678641874763048805318113079150400697384312702222198336194880799270676916779848620182169961087420040680594459711200524283864737807485836328546039347168111182333846692948603378975693906976101324713545724499079359719212374158044867087739225928705022321846203035243448122342013082572642685575745479188458813307706213135911908637818381319336961788314662019101075078314942556630324673764741198452782201523675864894224983367433769107299124556898925218677538188820514870325363993956476117879431831141489944976684808124454896798750146580440141984123659711376778453028744211480415140747498307072883428373997444775370407145256441505429402347736758016774344021328041214482048928482145600735949563529219339921870848070853027432262145687162174264123645970284893510989362351872044152375583160515774152651712214821264470793217387564852770811542361825104599845448755088819269606264096762088603366252675696439930416432080518673965760958584625426609593864443848006406177287111179551786616118157871811494122340710685541589817221413581202674350046533700301404733305838951539683329271031206408744882766786321752583663315592332277424439722083130337184667205735002290438771660899852929855442588531112588576456742513123549495271621137345583178648887974682494781953217606457163152880615129396716228561769128732036044572047604709932961700634104436882850280417898543958298447613345951396698947009478953205442020013229587623862658087097012887332407913910809104180955466229716346927096738821209022370841203229653629535638075198614161198139817064772344899181357887706435511944867835335468737128066084807662203720924442143105906686409298585678245403574325081693009817995180233050587023600001375979408173607599101869316005375506887324931057572304846974374655846783713647163066881038278260106476351717238476799884634489981074256963613427277245515905493477501968555595974482911898150269958819369004042690834303529261846621998027704713165526150426969882276534603543672017057652831489605945696741055842785051714619795400374174334400317010150258455347345595511073813682173831990158683673346076472433804256095032417947066778307181894870927970381404913575204791266198907212355125520359704182277290955562545583610546632922174307434159163003607515612410649237469556417928410807561963439697897403402226360796234162973343003452633356653984830562310155229134154366115066844722329352796984825270747658328160086370938041714606914212030164104083930114143542181744837009344504306105275815998574823745739478007695513445796016972254208146577201732452006693480286015629884473875289570888956573630124484694070254928468806470185472631631598289505147630340034952282663553287531736636672295441747373699056534459750688081557425136464483967122613025718852808390319757827679399794284552970801863332391206814541100903183614168557205602901121682081991787608523553159079113652472365653441858971391868603802770776059545927579317078495651474947067633134644597307457072373010310602912570989073498408894508705375184243108356198827850707757932489106809151312256739704603841500019537144168006754458992394574248021513842945345289442630944024521506793089014217136658101099712112964665195089356571198544923855822169420558334918985121242190366263681002210466962295777678893716743174680831725884960566142379085237635197286816684581482116520391612039322399587101051725272759299429375293862370560217651180435896301542133173199396546750629482278350867914558408445872685755953405552965850212353477698523373725392554178902754504273789877475025698785897320645891966070263705840681943213776736080642963170076731918447083334711661943027842596370301313622120405515367107152423898511713823809825797353318324671360981155483281446627434635464927234179837501094095647070840513317199653566842425133413502323547757430183218125962158389037156175393358546053354082669389172785799498468572440570014558026411392192254563390199848976288725005288572032619898829410612817822236046301609412409854899530507653558108936366167869486649900993363052156049689957420425700403367377176473257805518575796283760825448742250699856789899814977250756248655640169398392457908686282568052913571062000869291195974188065844269190840140971958571256961027841062564134599049792958410993841397684456732955228221581164586551764403815634426377441987608628489128525759762336707291646064152613282389860863144809050251728668592156609934711392317306303954775786357974110533752450441698487640728836765456504585288843825882037616670705023846699454765672240729513258283195700409828331279571248294565671563929434231673843736497807635945531268983378315619013071829735967976114200189543678903783371904367450583133264260322861510795567868531882154126895864803223218356669707842982780789151822984294369321755181414758203439245562366083304427973188739526364784346505403017553759629507238774882934266505690551901562110990726009472616622257986275946660388157754434420502227841669097033473147293518845208187444674956803777742671922749310695838217262818043452727550396312757259037433331454128890672812124222533129537930514791338357165966519814450429402311710182095358176166129795099116791568331532408378696707335392299832885442085920644931156479764758231604042938900371325611583127348450369956890254791133635837808090579015473989639370502362280959861187904401849499615858254207935278625879383722759827705989781529964877686524889323644991315784319958365764152533795968525305389157409334296057500041280847153169698027596788698122969129984210248428034753080647724786995263536289303972578835509376562592671005356844485133466179291610737763803928981948189318958502191824866108466030612293276048537893739571443779477132010782957467583753662781177367680827578380006893246215224405870231005088870135956900050676946323272854613773159329718856194901777538112733259645192981211853154593975815644392968342363050541307858970148161819549308245039944858915365466213844667281132636083831221348630714705280098585083255896167936580007790877588846114327673448701601297477827223399426394918771697946625105917106361420386706622596029110769610888223284973803547286938107200966216212819886433913964168656251298328136280912270732705080312288635196955187758965816043036627423777990209630890074436551645233072171203400876473988774997830400497092544659793377578924703460864506778918833798018952880251458819577209420845977032270313052195707459843536672863529852768349378309944827391635081958566047931792190361578422182210466324595409564851584501675179414334604683417714942059570705157014256604505452517149309322439505818551486825552177000177087362626834096065639387433029304083069733917403448458268023279744391066484243664983745457686698941025635636231546123323489407695916606437457025449803486394432707273619278185807509308508208515984337000178620632915635119098121967106055443890019894469783193953500747075575137098392047535888835893830650816582199965938984498941156355160741047214508710467571617546185660038412272795790749637912949983155903430778202853835441678103127305178575924829700273031342704740607164629439764497667853428172419825064845993580748895017450340013507987575246377566944523557593509164715854641390166954124139465053927096276616493855718119886619919201795509977590926952074985025498314968378181003166281982440364319553131153535472207123236074011031228956606180100491832916283363310253541528578597075305992381175302707305038436257708246501308831402840973841817901723964197468701504295579694355876830913437276973209263185214191019897653866736779131194236091554077930131594991755305574093028374804033752523806256363851141164730639363593316425000698975968722731027993808770421128578472370981449295695841156081257205306556469746972145917452086204826426526584222366530640656417582377037683382005538765515926054212059538583627878330829795499075213368216957690125223435593388588899534807926521704012341373576957658423243488086804675719093196650490468769823982979442725044787075393003656672584372146593292865932974360746705692991353949053000860880594000793662628394446287956226021271554220361526959056892175909721339654736633233475342508716114219800988350558426191979666425866191942449456163337811827463836407500212641620285911050497137771870973979878128641131923637617554405090716459921100979953691670657510163450323601385267186026956142051373556591465586882438962746750016505669392570683991159729339188840911767530220669174789163414659907505452559945557741869297588691218821659220442074207838380830059145335864531596751396670157702791550913410361211001799062595140737111242933609633280225603825643381150134935243909178638757128876409662843454552279993807943561579915131125040267198530147427062529350597954216947963636893497330309305025424280082114065804508091664857970256621339378355437861433574801706224036162206960521121077107055806886758575294573665615109429404004448651158715838581778277713007837266671835840734938273923719274532437653781349009587364079086118210462852521707769396670486749829112385776514832976063862086541853481940688022456219569172591463621914711238538459615071457607964926204737978391776160487136598166827298233225339800513157666291738324933292951437157668728080247396131854261578215934834017200814585323920615671096058326027572331610429814469013527206270921429948129560092921644701782549104990090144200705622596854790262649713201416355887579588241825955736986397971624920253907835318601323601530897185017239630470690829493358133837433434620785086013762913397470687604297161471347044733421812214029890076881694078818999382154373439231176231503638888283315276429419797862142245238563183498429241040264590614463679752180245884674399482628920398374579721156019216422510840148828719943409861123171744080256295497943866908995432839941962887217679974015027300608866727431052014557824582372703632826730979356546875695026049986007350844006101529205707043978766826383335663077096766424263351038173486322688082767599476526267115408524138147914701162051026291063625132135959600866592114899031741284826884755092187207032551238367863480487771003416295284512222627606053416652788700130917764821414800649719986659778002980731198073397015179666269888491315614513209447226105936497999043308282833935818030864346473701277449949026055936719790876393398536123089978994537555869434315945718720365661893972943802239198834993390467145160219593108684454607931358295152758801067013549860891922746191066387425517854426765121129341710022690862205664622761392732716301976901187733779767208582797403191432741713095443133203587383385946672974942922973872767137103487806020491643080660575894683594213074970041951393861610644484999920690327187470653379355585500117039749635351532079491551229470921035409403242214460249299549096134433610070233215995956925147283264326328175451692077461792936117688858293390223888955711509502701574107608775756110239325416358722833798923647894154490897894110903540691841864328282747226390100922180852390003127612004418728435380052605560660441811085785402268996843484256054414055338770633563488538446924851040415296802618386983730277007057254461171723920765430647086755193268059028421709241335492341054122562437495421336314232757482378458158895734427603371350528624548076839324801959352081430940514414570389568955124125210386364614102532837377275347633650306458240306880777770854776139554830611322547750269424433464828210531415037061493923421363239951799328638707605968346404709837933134913011591288980052500693816407844918623151555683143675200305358793923686058737333072796474184586242894812448676841622706632478662013867294838047965642149444095830916118636435763982073783049301914010157587675369050128075943880706684793745715704073138725062661878792685020313894161642470746285623721351109056055912416779336992792156032189925511277717007954416865776941161480000970414647638259016252508381094767992140984289575757241390239770899199881469427980644509006192672513989449537723490414714693628790763255961008011546135705884067226521053463121362469806579478442330003383347452106729641819039272344124436233615875728671687226980120178486613091952806995177164314219399655791102975874367019762484218715881489080884898833103453988876780497529153810153958961086612458544636356642368388499183949996238642137892082093148537221538110976242369763418095470737773306379137346811608771980282406605002821996769554526726081152309697851067710322559746806180051372053915705268433198432261276810861538607597371490892842935330633338255302031771845139098786344254954255716974509391067661128560271067007388727047316180668171041747113193941850082321884993865715749025004803150582504520383784477107512749890641314158288839745934329840010978570512050626345061144323069892737812040971636604914129604254746891842873963284540813835348663788720608866698521073398902021799509158942053167362092781778895012912619462892616601707724490323441579889757509571763382247625199702221593767749562428594062821893834013772685954526246206438451275991867226463262627257096004372382345823610953778704069598309516475057430222371953930789328980751157627002114780069193697225994937113323831796936905461822166571053762670032847807289040280539367089100322631732831118743197974101627161703819247948789487943621107974338922047752461771399984538200670329618349317133270057756909558884630128175196358150427333576139898039234303984051950833333679299967939208006789890960024649992785569586915630960350660628025573198006452094986213773922653004620556907275372044494480595760617258195456916712237834951883930263792581246896794235612069737977773285413820435135455657259455852656669742147714409592948478082833309107984462256259495585883462118569075472040532642049850183358331058513047368880316607354422343078627991969243680456612149038990670931118379404674358320416224000866481475289378671345364265457314580228722452281154416588386346575225661777384852397563585035820819451008732593363004900103983176801094355531262343092218695916663102691298104587507595669337598666619805109689152253258638773120715728450560240358147116589259071459383137386574668795218477017712611194527006003186504484310621699664680864645283415670168115042399972960408729151462839879590663185309185141665165131454257040151129457303900393276493333336749970466101913279532049693654635855242339133303098492244269023953141771973373966901417042622395113543753559722000046051102032358422056207690362129333810597822734082328969445288130233055755033594181562586647206168568012858554270091701741342348794306928130353133033558126385976481779222992569789634083375405536913566600492498030905682843955270602095376655593837400217435002850002079900730599957262428392794130776524552682156170760259646508572131158743560998453288442175220573271568555738455678925710306388135903256437275382473673517452002061787869425640925788226231482012654303968406527990049855607574038895053452221607549758537790290271089808654943160833624741910394845078815282354882258654715731943037024884637609625110260517499921694823665645807592812049926093811368129161221260347341129055287760295790583413475614021546064000255252494451557296962983796698783800923765254915449305480179290986536727837855401354335422823515419969118626882693339129541995552705183548436946512297621295209717012195447258883774115773291083704734179819523729440684768701930754576817625215497155221727402719069658342911009539484500366484631622037561164159476406305120556124413655089175890998809337622495135005422255283238856251617116994651627136928756817095355160105022663059778808281176819135258996325299233082189223699774947651765182405590327555951384390538801276034039036513951701754291583027155603985944897418699651977405239824051718241234843153105278432535734951629253887967421700830440964180321314400068747105341101431970865044605405252799118204279761556488558957140041603729617437647584372472913735900644093756613988955551187277936142806153712589643903443168598249312597472802438563367962085481386321506964268998452642832467344631965720746681456815412684750129137650175277607195517142223564638014035629462444999567927578723941290731197107400262729274087951144799222443260187504648059773143448137234917377483965621423479000555409916922613593766774474490131260217380542121839269478845912412325904290000357766020708825481674529796798871936303995186272638664825703403815244524222776278582752998006201471725323035194987972993800422769002650745272580924801426730736893332577187986280641351593971607328706106752661891140355166840175043736262508334399088182920431511644714312102643179118081089095312686369327038511272208409544401496326421781538874436159847939779794455811411253176839431662395277317660434785082459435346008784765474418679864900603157881931301291403230215089245234226402341518288699745897176547252988145541614643659435814895147312654566343716702796765168840904926026563397920575305720057860290002481554283607663721839793919555888407526990111613764432305422400271972073449594443014468104176072391790839756726750573352578102876553907908075646933640232502936765846202316814550695334180331165841970859445956477135399711854172269375490346224047584980409818317878058194900120536703372928563261355037317894954489042296589116925248186067759314528614423230116007319758623043867981297019812189107300511815822209628271787712569055451042527813249053043478573403460146726836087033251376958326492700598845248803146793022064073201213929246911414190796665314630544363810624853819039510804731443546423290463961141268129697618708122841322902478817676403426119840167412995809762760228841640135431022671094325612905575648781566188479757915064826439199299498375580734140952459232802406718611971442150763409137205830426297995634600395546180479546521089286189608619907654229014089812244028866933774916161373017978627836032260666618636332437004424913405629407956526763216844403323785269787403269780367151496928532458109344123104594457059095337590157454990122896851080029692075167455374761462747304678000044464370915050277956203014340995626705221290586802867944564410328636335738955777357037531817325383278585923701930894357335362017903815025403573402089717696189799753934478430644823309932197941054603639862558618719697345657705963831146334123058937193610480807241334305147712242500445101584403921935444296343708828006191844097897990298018094926927535359029424871519706997597724514792927530011428825161411770767754642945965841049117664336098760875214565144567047756663503501045541788318532330638466098940200207174024553082691748164191495348007408242687457284685294094214223218139070932256985428339202887377894244421572839287498711240678747366241469953573889010012480093959907040178838636734758492930337433133671257137201689518242701141951184855380201168998142938913447939658293931081887946794300925000030801016143436133207662632352302540673561299158433653860137150442948990251683078605823745309233902179428296986365580312454305503046742287443822948086870092952253929423794566132623955991079161424777174272884650475424108358570154750101509195303662281691773047244775737521023630217951412917701853927851573170625642809382539871423124058954204670875103958207593636657574363579017075810281858941192174607520013755905301603590597440247587818995170464571524658555080905248698375843442290656827063284851623726509276905552548497032709847686060281030285943522872057217425756345148276650530336035721537989516737287774031756066635611706030708184052127496350683472026101393485911810714831333572596155957347757444337482445903591479899850218042976859516843071384214698491434302394720317470339622022804869916852687287275102984220176025189834120077825743126384310270188601769307667347124885628226532776012727579664448980454714146316746017516154104507314911802515068994921728680886717340421413619937162665166915239399955577601555586644761086598451407171917604325781256597903586917341432437221296440711422771329030850849920325383138319315322886524411831469277787102010791864738557107759322112957447484776145336775273848066271102930254121572507973486072762082687738715377093006629974351436537723543199047322907920294592953981829474220376917573203042164736319275753160364521236528620034726009090122541221438493753504117689848677062236992419406217205461248578937437453287842914950571865078723856206525540345768703986864674994718429233998768006202442591922310026329406434174836819353579674310447778167379719549537392243614711022499964278144237413004653702462566710991285748684526405935313840597305576779775371006207932062396089984557086632979840136604512545434193223714638492647914171731509398522579253095446419291601531279658179626479023959139393454398798050041155145434835452273627155300156252160413899108556640621503189059659752747137669457374725689570954610288884376754542985281266448455296513928600128096976846665934344816421585494321219292052562186320847863891502045965151903036869522891001601309611585108813119375804931859617001368952188192028722020290385314603699105663213920290569787934356872890039923266167585454987235614216201696809055363792465046482813269017265470483034000717624593187985820644406046020163378302867810684556615421957120153973291596744573214698150835971802086828001261449693215911815188141659477110545041751042384927198596677910249976972062514088785919784559067309261537290904628112941394868163533029220500601775169863318527378818312177255845122412264133055346902565053321660766893814181124458061576341617534751227223284896494771922963468571620172116269651233543996160950584220206720440357449072022939314484916979752393433058516687429239835521591486063085688223096587012114979025023690958911794663007358809344279528598804222858215122728085896893224702210141651049866862898061283550993196156340619396952009982100829730875105678414911388777774106732993692287087259571036446991020731467701612161745831216583123336077635806665006334963733028676679058512896627246658491099782490273691353630631285676782863477951377220883237928916605243927312464925826477492414486221534637324720380373587166775472121091639568012214335860615897862325023948468844981025202035407417764267766556351781916280056158751588044371835567286705306461724382766566828264652882657648905979098110185627808508727158367690917254112015889243981734420129622530630384973748047054198611119897698130338596369620254251229244740145062322084164396128908683241647000282065731045060266323437511353378091905201079093589549215801050777477443374960167806246022302564289704019178882000456005962588272083219428838132813183211427706963311058640177658540356931562137146910569428663252181366279628704926456279952434501553620656324474668067809270953935011956559379417978443329681583024109833828470521134529145524432379520363875936764568253545719893586862064822870569009423239878394147397891634390504593680727707746257843476052163078689554509398329874419733013553757767157147308144609514628748288695902046720930949690585300547762823516789490541959842756861345013583063025949305531510569484365281959078679979739771637738064596913860364442091649180741043152939043293397725171637154843397459002791775383012159551888311303543905642984052450127506202782876734701231066563837823918710038659226402600821020734475262161221268847705040162897908999118987555735773380215784271650605300110851153183713125076051472869606473451393200958377658250932164206272506807757491589577282733966986471464359997488157547550774674161483006800756063967459514781027789419437717426006356967544091738294234902683883537990403101728349132384471996685210944119550937628995612264875393876776093506013824650082566857961582203690154741025531558757351592662301926026705293070098166024127446200128304240457472550351300956373592957950916212536436098021747612734850799177687548588313433904508699060339697303844084865610232137242254182806188090896187363521115681128831514134420515181886208365913253277618674744126200194033393084459403382387062918954325280394081657797051929239097006962663793492622617214935128622934054858777396204899131534497149126430710166531900077351609008759373941302115709263688870095479790449732188861422971804930254318825478989019429947789844402479166105566723284234244071168491711065504054982033158733824438905572068982716959138661833074986298399288039321554429493945734341817985202062447475819938033943694564433384897522018317588057600829893068043694323663559376918100629457908200715560806231980889365837902982057527276673654249708047985287824572659669119910432571042938279474892729548356219641959365513946935105472317857952007123901706123604699586081277522560207371238874999132127451630128048516741595708735192643483762748396298726019817949205768825543868962231201653342398131991737983410431506756387899234515096605459337487931890841109691949901903438609599500203658936661807411961255213240794313012239172851838299778230047828951291022008218539897376607059869049948780515962205911084127402622280551242909501467180633104253762474126157658283606790286461247151595966151313219256455956239722870466439234657903918184430455162403076319835914019000844972086371942280992625678572180165462022662899215780677236114061605033209610672649928688064003047673811448155922306253346962036181532056109915911780229936272017192262807338770440840528214835893830280890167053771303269140827742995582361999132549614281931242180010628351772434923459412485722790517823810419651619258668139727446476325797310003361611784737056451642385620775632389681143358029851704825811428751629431599709119043511745050466422733359797362425139571069469466579934458767704495121648264178834392536859585836483462775670735475491673477736024497719644820838346431807325489940051586038128667595294619147391013429732460935964397068850064401851065375910428133271638002370692642929516088472972819042473495244234897405393828251464863881359342884951615811118967219018123934956274385174955787590110854801671368716231815715232662209772297990263319952189590282209714479200041959899326219501582764908597870102894691341591700003103964492870137466206021941999370816842009006787672111806852105448151818213028206768195734394313773061217770279137476576555431678712465848552336899358413881379709366612042680824752952373066379181060834996454343423562963096867448770731498168167163677433313489696312338290045735169875747182717144833566725959498951299630877466330413361698364342919754694968132359706053473905950489703224916387303907717402764960278773242477094649561032573597731641291447238300071582811959870159267251764366688143593795582874805815224491056309211512071558004096775411683840942349724447761854625111504170492213489786551443182586171961029995576032645645064997701501801537577570940753980926708307802731659747251643558171039729663940368536629770694727347647568343365823759810477837453820483104060679604304319452989436668367447850123859721630396066036978802638829926776507419825467376684560244029548953032725723132980534746686677380021711827064322919826576911640459988354979192418260186464588216071687037395510223959128234717413177982355918825827541578571429990475557380732342265145288763760090572117262620454129812584282508881055146117444820859118424534640723849688140936572363348084817965402073555970084106794783184823890002705495532143426198217088508393258626521134387888800121518162611859179620340933039609971569743511852111013537142495337438240464793245380849607665067414717290746585810726464577440148331327535230577532505177615728626434892154121107305594110763389539248966757067556215247945506449404585885218273626414445199104687856630995808133553587980713218197775767286293913422364246285922384424493126531702835706276226280482621515458310338227418916962740837512808499844782331641368980206554535864446704950226397147092117688264671871836136202312517697580805135926072566189938342406980700820074005830650360887662395797965522833178508949570638037081854919558871453815769862143224620600201130523112474076847746356129942367063613865899446126103500012367167317203597918805739243992264803080688333215787601334850110484803612882435441623407214786852349384564639833946683134195079574410073325553233278815229200408981437589029675931008498088699311536943013237059560170539330659657199757312944451372552459811923868405446407678390813336163337127108003804584561472336016503354046967533425679844820538093173257643919335496047234280575207468753113800695818418671806140354405981348306465014467727161601306274122185221168028496421339381297498277408526185358547450221163905516904581882959940822392028004939076658247827614519126962515966755141474601203114686693122678244831975566612142327095507699510355602824549226619942782511210078865741450944978275405265472412258814619379534550017548364687241477011163151872982490605191924503984936924972933328519807629492487987273266953503346770475452141647002964046818146107141310429965986762548556339408532707858888885216653182177728813343493257205147493962483145251662802650724350809714676509037280119729686706684326385148207119654283506589519676483555873666665774613453088004231144270087443895188693717492317811612824247553040561962450131377456128068243791191505982349604052859182184541681617743219360366838048097290032726187085966708286511381207150461947214849604401981530120103580660655725899860915087602202273775851058682915562983460497586935113629226764105415204002351709491414382949782564441771778262473225854370010658645571209044950256824770198897127985944260284732705145111784918442251782784214002463250115174524438532226671513375067757523801751198129134129680310669748219271988034511805521604201530964401104300919925969983581775585138761504537489883214929259097484746065744585695812381912909731096251948156253143397416444603948724556561256939805613198850259807305598926530297577936120354896876422105208454424529112308378741375464306154735650292466161622274725864493835151756512500312522369918443424551962723173991823286560462932971765605078018640772684359783050455759227477013147103396692795030259728679618185014251190333864087806639464366474707290523232033511294776214378182497918612377603730331599330714337757554136372643275645758741127652672945443641711790218672374341306332667240679436750943585979608638936226748696187403727426122181458407663898042859743385473819337595871036559423381598768296592695997807123198820915719902889572632560922337883009031837443623309808557907693691862387972718442069102755662474596164921442383830112813463651530696801367724313861911787521605370724920503206194980761026875846511269817812408610293431112175991301745431299538444618790659685402098142781869955840880475296068940754182810902602976151016977119040527829217377898905092606297097451537090906836760169786245245251804473067700219481789064516220181520348789964988806594224831168389038180055446268067186680533254814534449960684602658090242764218368185633833088779841520539689511853016108354137717381615293163936684860905649109495603040138282500622767305024675984018303294205915646325971170189711139195594551597011162254468592139012834686343955197537699577225401069956201829729552468425963344689785376385233277738309979104139019470066371711454102936310300915551979576174647275518231418102625885357499512546361383695767054051839109136707556174247781305699511978724981852936959962027172478099031721146338077269857985828700921286459091240076782414845849268050417955284909994258350703243210141900867132445828446075438488316194557012322751160263081249951195962197845362258072155379226657913199895166002970962353913708704883060863252688279523088756137613485732412711969701078979094688341464622258154842369847143809408280206827453304940696457547147239446925171646296262184475979902562103287175658946903106340819622409179921126748621895830052841790818269838909799251288681055130565886817840430385575538575435009027417968952041595709734138437807005676464387170930084974257595369222811097924752111509163211555884892987602577373934810893748407194211447741834740365466648989419663832738180178783661568376383321590208671370105891540562806658062785789365933889329402077359475199460746025513904259550634340935125585657187653673822066225522958812485597232516366518184165728182268153696360067229520495555224720546157512424331982470534781864220543846359578336762038891531845755607579482077239771524262282698603909411266750135997462062761888191325965469598572015433330711112702976430011178789071501729566223751376652176642212010437812778279894202933904516790638898627339408555423142502112562031411260610766409763097165573448574960662578191366286088151163893788538731362390924321551597497171176212895772332512909687833921391769452803305521304239813440606948882990177673569473156463322249247185907797116415139844851571456959439055545937160401870584383433282107344960001869325030323643477526786300249573503905814129300432904094528161850530921987933156037339729227401702302965922823814974921963315461555671801056687486444539850280294944383457712136771131894604238365003255022857093285521090318180144845146127978483214910703669537710151608547859146060551885401733858046348603447293086109828503219673570781552820352789895678310434425353604031357865797553477880489878296161591350276273743220236453751785343331530385441851942517990183235118248495732876573473274540436608604180818833401024286503071111841500641852106647922786598996159589040632640670904516346220286392762635950412611701230303816175964265616405832638388010645436184628619060528400046586545785794840224800278282821684327144727735660934572376448944754473752920992783647611062542537478384090530455018431904255201018429630171041106418436660030914628289077331551889029950230346464278611798127396955867265509606986943153563901260008050125655229040595345571908449068263486209462822757271551704464223178066022402578197565818972477814932036620408890750786831734496234328109670460175635674226574568320132964210723309987184201936615255669210295225037089230348753926361837640335241805147281135838371366889081714599463028604275758242449729917167349134911157591832594599949849637904486341230961515793764888933736550743941809862315467190682859943958646735624580872258967820700501346210466153882395715542914930592875820739725955216810407131310944115209611827410525814714377123187553994849669659495060034960104484761403313141417799621842230352987692845674330790234101735843438466776072409287337632234518915970679107812867384532930378592427817102671842945506547846397036187115394338741185085205839727561807560550011929555038953332472867823364178228995515860054291411751508652871511301283502019238702022868896315634281887204844030715918971637862813466826127415154437870874630608801126756761245146431038477574017051503999819356101041775572709411958713224149210091728997493166950948504150662753960560511896642931849805224135001224520033442128710722609270234844671649887088713490042037462336641254523632776544440595386508418637292205698733791089033455228496658499560696244526932117085061326805835441184568971079079601873670290099305435216139808625218795606169925106502967189085620849711217601226377530521554981485882181872055668198772100560500363800286461946709913914232558627452340071901140732892094817491359347942736814528158222681767182026499222435954074890363044729016562623768330234992307717252429790121249003992573314013820129101565195527101027099606777723048392712996236414408017531462981666101326119281899695226635659228611365146182718186587443223919541035820349976246268112016710464613842652461268033409873803925166338930169638613506419495846244982609025129633016999925683492991660570525763865312883058591403067271784065218258024137954964178477607006458846380145679367882711471375826120408550228416233424094219103999720575843713836034457888173743012398763360592178541499308490851095170397873434086606487739287886270196606673269883273251339382700546058327523627472865170201128500004612385299517812900166509476670912707418411441409637232506623706343353506039460045097589702016423672639749447872728372919531587945332474282922476727407478240739397153681707572570434944920135174430637794853149243578094283982712993586137570319353028830385530910569495828358361022053613423349087303339321699652549175294346331193961602151939498887380323130792044694866319326656824123129824829628012782691859090494464957125074733887601587859793181466257859795394125368806435525144271588225107599568471147134794841358112431973838859517611480671874357863232165586612908137794390020440718751830802882946679669506843017051357157562243399468339120469510786165384361109720529536286126413052405139467426862518656110639423886467967203450042168719667081158929733682242573210052508701906182399212863273249697248814775868199000462925325462082231084598547388659698264033501372425752376658560638409023224272094035173451487175372489734846955600570912459514569017100194073598412454709583725415501629127160666914373400986726136842811503492605741139245109244540360278096884721957314167543747526587406533281554615660697551652492500833237377050198960490979660258702687064660051548244570201347013925756378772743903029353853368726959793763695061685453697762926242676044024645453900541846486211692119221250143145190679223055911919660816108462907558639073808602001736567804890317686415235015960772052646099805713629955268441287257198126848556664933458037592362090290170055537679613215384919156455554540198395391398648762771419867314630159048217609761495008134623641064537871713587311227905270289682984655480432736393053700205839378386905685133678382369677753525687611692607396783814849098349552586309389894515664125050532425974638969842974696008397539638097927136166813035527458720798700815431921161236836766476769135690922019395749655084365393287331763767360105446458645291685266293267492486243682124792163910227872657848099094951442707801767425460450446687849400730463286937496682536747404789010385350236049828335888681184306129633195592728005233501731744267494908108258578316741669098681872816995370654483987330609595418700091871196595528577372351774475220214977653763947354986105007312278512313219347137780690877765399001621753938602879680448483836082103184887118008275833049897911656079349364181805991710261580752874118757117333270542389597416042642835276683496320793317166984072583437584950452703475682256167734263349285864918938288961805258944612765261814828529528766751698966056498897136964718374277530644824825784264993641356948492347334367653162980628001463326033114923119529146237879491566505707551967548398355948030583394836855464572894917485773912376752826883250826671351599509318227752086946286641593611915316354497908965780922194418946236080268616943728215779269310199247828525008828680024561107495591323527907193222113132570884318739577450880103970353109269574968853016907448284732282694898443471273170025761977406862158421356613298014743001813135814064141384440288142737426697098835809605359572787444528292521200728479538451722388044008830452007708268630988300480613862795623386796172716291489502162147008861266739256992954473679318421640219723649287834969962644066572449219859722840168038537494607854761285609494585715743977569387254810831866134178013489163748908770383720413867629457737521173212650315832784776798495409221308423401222728916414490327368227975344164980980790814067839427262755144597439358363906047689786139840100594224515902192994563728032550318637377931683045061769454556510393569945517728787011736789386283019231824579262571637959622007532827006328566575788705675139337208559043081864992883278229575000877629248621498250491341465231108477674671291849146801421787312430294596749784482771817152671801052341386398650354472131165716753374663360676958735742718063478871592902047361022541901009760469033662107140834619443684770276612026302546731652390121855235762758398482119615876956703626409040837502040697186103251132703357820104075980768379662947317749896580304119619530237340147554457227845422940721040871386701992609595002133939059676140543679313117513113372798130119256232095544552891617100815626173984582381811101114044957402913993394900158143277506742319345460301751062104435783042907308925945294458196599741518981038271776367952529163907541194948032381254746349201439508916044066683079340556639664330172533058456752700680267648651830916064185679480406510882101301782169131055353863675082802915676951081375475507831464033591098586630864831314398118598841755950892222605718442661225057560707486737060893347457014052315997453701703917401753895976770043392410974725186979408979704664548106700554620356044831204236641432815867759411649582593790430400185023656606026745223877760221987167755038577651308214004752036769490701925982678533435815673480193700784623773109446831321870355329605557048354741456368631220027779610011647272109580874741361188062256711286114364638140371169590822891118041747907175490106531603886719566468808103959209197269900026181802659619602042733113888856885171276442713306622758786301631395458771814933948683393687092331584980472047355093957518477556277324532696414106578079328473990065374393079215623036481460315972104336353575636277291032371121565497726690594092087334753829454223169807592434712866597867905928163160271006384637332560165654929886774406655053886460812770382263341713921768851042311652973120288377491900753824151059045051742902173412160853488363847418307113109524256802801752960085900074574011421547895813883917092837415339159107448453947830320361553842405548379343624659303890670029929720979217190878589571199975133959669161839236111706047146031280671083228424546946856074533831211543112277817499584683609128998964724485160401953776800380905888740005539278604428595289561811783186974191125394945433766297205007205012594161071403988191034052545324016689865682848072894991655036771210124610602651888374842332591137640071547693573300135114209514946562994641895474974014081412538501216120793763043466283768164937751788833848348315146024800709441411478950661890336638534832738812526542391036441835723028219278309010711604165301129901544869031036806424339115263481141177290203147014870100767857251653405697036845862006118156080295355660468838264994210981350130842819032292157318494212227118980373536820543491897060871828668697629095446120396570551954033449954101606518398347008016043395898045266733880216856114771107928850163932330727547170269008101333245660225263496892521551511662219259173616986445038592905843096585156323589499017231074186100927302180458642780855978209612320173161215680620500140900003174916047050092237633744614075241508252685945994739700109358815949341065717252027337550711659582040875502076848496348118621361060326242802883239681448327070426998347319116536824091502328704864159856907394702445384709940700778984718534336447114179638960316790407985193886521107092448470040822968291345937814557731057979214149922387817807406453097503779293750284833647948017796173412777759799761769130857685244219138932209420491295358945754013322310872817981379452510117118882179228975771605133019518495213483620947717656909594967157983394850621089199618267193382522374031901680339297977307650421189258241568639487660261029196303038656022237666648724570000220386311042340812819401034650414128512057173113947137731963689992025159643058773489066711347613258107969857059756595369729363114294154950274009947611672840928834725701564882098189710494516446501802736516495814436053012050387275946045791255538917261106913625129246229302376318832610219532474807600971645600402734010229256789705473506249922133168347317972747428725449736460451688944832692193498899130882887860352635725665926977319460511792906191986212188987560080262066097932562682874389035726851160392106624883609786632515416515645727059654601014289672415260548537599306148938080656400726656416839176874299957492210270774854081709354229548610538052622753861296040115872297715317003511482756648146472166940761000579619100546015391294943077487162616362805415128327752786669183646692351106883310201437549378596553131813579952439150476255567351507888050640156194934733842200592253129277069067077007333369231197492064920901602295856411634264044294492260033623986386256713100629576364395738531706886137437938180730563725335733604669053789706055991247112192809911240384634173584879599749616546371084734476574250832000633398003094605519332280095149209513963941561400533356518532930333468502033719766751936315791124422408925765294211481283506297055945161515589151671536375233082684721579744868527964879091879631233875534021472694180259471715906294125422756838633896652265149861091957455867557484277977020708461938846902167011451477514070725255313547292594998967374873198711880549035281385338906282489543054045445596228895844401884889243237347309605113009800194597396293266773748489487302364630126942474138868855181019224550193447874880746869941520346067390974800764360356867299970246414550456236842342088463798237944903083723559334612959334241496894292052752692286230683769694676013982061534283904602815590179300153850737696495582789203866461258984892028118811114816358832810259915614219582313554523456052447364260287410856893461560057123652967598356989614318245663746116280706550740890726845462251653225923719980594579870520328930549024072230089313863633769738586358675467959838319003958012273869057799863795801878901533672244492271976828623660530711350500116413729256045412325645056702041581063742878299492899011535263005166171495701835253585011764941578073819075941390388856937069254396607693046616005206045586575332682280345013650074974742429960258053226367914272022740069031888252561595886553218076579140576047408421565818174583514978493592257676405472545819746917476250996382158161580345111493427210647550220781518564473638454938996965519110406705765167795739412734281026279522812241771413888418883181082286231134274736859891316080408895495324783674085966412369475574457850772788677664614307251444211293152707935802043124980410860649102676681175230902170711331666509712969177077387222606943794852320483714853219478003859586437336332466245552673005926718952865952305542675911165164635357738677238810480068502901425458066391227787277112809306913190754628286867236689981227971781871301465715436002899756364384963263085427596400254207208425569656634374507389955300427062590742637922026340171081408759108183564614978579294728365632095203715058670246291941758740434207431213747074608856814994791263474436780194771301153111887796109757611300944263796770826924361289609155661229844145523065033155098227878681620411282636905054287902463173509500637165963250032387772744085669214451471488493611890713593245261665884487643125266401889995804939494620680830055716481531550514261339920862831241084273676399138610424067710268089784119533041603642109018218057976731338028038432750016678881984720480835043897171937152737456589750798638286300290892438432743058558090762306196682100902569497496981356632180587194963128523982546057382936124135606942197254749267297640291752237958366760665696511121263385015966225210243691121033252993128493940493377492093350028974048212925523544863945065676927458038262509099942406013196634032590291477553777271908187132243692411130882831321185054244883371945130343882143288861232358054795908473601108465293654349224908784162960288194273430839952068516792246226026975557937356711686522714416887348014611319316946964430154536602252117675641055867769116559909064372415716984752510879008454346235258123277207412820178072531934446843127317741907996895630321434097196680685323538589424056990489465357699441422208955008894691412259270971268364953407357194185694593001784479046630972525040269943778215493678844700201962353809963478397898923038427412067659160463267026893089526531446557365132658513153143915214670550439198130025255014227995049119098421298640219664656721960649635139308625740739653384226869763428251417748031141341525206458584094607182376057894971617338792260935665107669360924437167672971598736105199719631228984649817538928765122741160582511045234231804840570619335713218995806705216188434864301165809152024054009027310575794754047684226177099711291062152009162425734329369547693955050259150615777266516284117598225835447932775725624270768321064017526994619293100278854501698687625642645482642664320994549647549388677008414855206691275938853678134751168860230204135975600569332862356824045537205195294972378525597644826333724429840085468892509852986960860236002137477970141729689788816109302978531728333973763198496192340667619749851334877522852528210547143271057902452944395594918489699162747748537777858941410868689726875154718160669090912134862061144196348213910335754731026339481854213009584118578652602314250674621170367911267490278452588236470336069634065900776938430965556019789074881097197860876360916957436131038789557994384942314703940752114651702219170153489492411756913953877519412402100357600639783829642459815990755271760508671566120305856820206662309951235702309128145931987578616061083841210686352090919375645833730858668605833780152470666270490002863918512869492119710964386753904364343907618927252008483554638524579627087880030098538328214880811004854872447608650798081719629490744405600789601365866085803189627153941460474060572612057748476920826700449788880981615811361509754268335958051187580105047713710616397241520859865184879069708216751653718654867192675084923555768336881215131244470826571788634743700177286930296744965603901729712808134108757563468578779530194267437798957809289521832083579203765494953833115103250282089129909077286443328133733559703050177980508189909472482204010217946340846416217032499924321843515516583020803182744225946725331994075009675219449143637439592958513077369943460410247430713854659790223249878979585131250774032013241383552687355794878341291758418649805353180679683304192165045423526093694563025090460526464887052099197435288111100968852246031514187717272284215063876604122379699841828043918916828558662826808024336439435991597614721290961077223836591060503139295673713612891662526242673196844970578307491450000940667930829180358740160966365380334105837654719626862142324159633489101469181343169845268583555539934340820789728111006967925050707476525653009509891493769402764264456369018189377091581036465506187015041699500271617320889987673209954968378969044779332217685322186567580588916510227878342566826858197637228928424427917681163783460623591245484085427182169236923082978565747778105828795414188356572062748440594001011356795104296084971633063383256568454277704205295502389352393624067042838953547823637677774936519316518229756002905471690033082814526384608376831460073906846523616261338770025449522272038446398842953847320689844845363390669621610844759278645102330903869598564854711406647453945531161162199832616703827480816304147985609124275872708791279090929434601348941298275133988032292603525147589202891571761999653178372277065626417497943714085915722785268122572286794685952236206492275120916741149142685135019639326431495630749611903646072545669556337922026833763259725438777678639962315777899149306176591655113265408759226996265954363659001742360820204136379736774527785865070016985980545819525196312743422156042921918325535255681285538265455204654171048946304521460165769214556579104808987235524868282587492250313838297821273805000925404151317852066768952168391224489385869338677938787144636746684756844740921029809603928208450188160797336767585263642628732753466714765423018256876616415681589188716217612973222927956682513810179296149108103912075422205306270014845108962404201126969528172626349274982790705718581538203765266631900914181382381384955692667326673815548073762872521257919144700435360134812772507080961762410207106247256534317381268745072931385021942100197612277607950892632794618474251564980504877474135561312804152042683714348279502069685148561708084910064241514814246976527672611512368724189699396702709101695125337215534182663888701052587711852384952431098807596687366640632603145572360482715949278764896497661043081874646863045480769033918293529596260878077579183727017399492163592549842594837672441602786906651500554000337453884993310549939200113305817032784136106888111054705953354646638552772075458107480982067138165794007068763669726752130322582080889190313331229789318541136205342311374772305171186094673854549555624662138707832209946033446235517418886371264556925554986330639314055299051623381950841876669413734918546566741136521044682755847114390029226436202541255689191568075554547071148488777159076708191179272109333476068083758246495144147686503839256424918736792327014991439749278830153927894339512494878204052766420308509760959114108268382403666148296938963020998078510687847711089863108025104745336403905156582852721486487214298681480264429393613132273121171694560576489560912469679048585948912945780976434987137021934852433442705154260860280085870040875060822307672814311849342625307366105963184092246754529031360580402529335083916740218080516958561069449970128281476056644800155396616721281538445562509206609594574132399236529156331856405903588398844717856855910885942419302627013469107310905623035831697296811525106412785704148626118220153841162208628891155438718507046043881368410386323944173853458376767704628440680765560639060789720861900295756015328862463062575981327092188661685781983639039884359021163061042016361578461538253368880573072949643190527714245857747828328944198890949081259867460669285448053161108368989051781529756479620997940972516676053719111391434643401327420254832076852258369731341602800482041058360412500611358266936282710155200332291474062951874316440550543738936158882212829154575481974122813253414136585631937057861163927328663035979749475841693761366185136073826504791805758823561876851237513677271947141670084084895802082118239823034592940326990001913647848568495086888427319478869647205235047313957940823514056612237948867548271882200755890692094811163211231339188214821660193475035129805939054250158852231222967615450701388251836842059128283897562872516288929811926585304010036426438840501016544849502404472912310156704622407496906296342784869518403745442966198564412104921403513717893093120300544122338713704194702137307964125207315047034031296816843890320959569172117980312947220422996074116132355521501147924563334497078653741513159341336463876848354273019687811503655980585390934689417377485516200066834997129029897534615210694591375089314209713284516647157711415749339551530807893720413123988279599917116229626736365755529116850350460184813729786572067373063520873487833749766519229473133128501108896949675681776201644344104106953461486502509010656627687331112570468169439164449416232193930025386001235820164232138185903750776637941551007620574054111498891772612086803141057909156453461349750846256312848948028321054704379425083343558376692170588269503687218246826400081221532906589077761717413764092604776188884940272287359340935706086968798055170088090887403389141089314792366531565960282915008314902887209619030484824162886363028832631058555315092240151193347964197333099877009910303210945512854519100487290270562596154692324215670919337189096439092676230544542729267026662252501727809180530968757555650111105856611064825818234666784923184293883403295442602380423887975749201804860943453131316970585934332696251711490053352547713288614442006339922205770966292007495914959234537391928942740153253167051617255251766772042457062027880798925030898637387279077814533627511922721886510815444776686097625220751506550480255361675787387599958926222894079279721758863392694077130144863495081662544046976779064942541772277538696848215225339006364162569241454502970147280468312300127751873459995656004180186744819222884885533578904966434746003752298155255707333736252776882480894139357568817022260695883673627390380642313482191853672909826354082513214297649321358837279229218261167795987378329068621613199704546712969213140973832774541742024267503683285255052213603523314635777888266578910663450659436259345931015662878614194220903632174663512283605949665260021298110540990395857453326112971592606611781557457098201395391915108090786169927664023303501938966637994559186644709184999993694757835072671387322931161361392039478612206795610222159640419328760507773632630293427946722863520874113657728882503081055998262332628350724669450354656332955514035820728895912738196544246031141041054706019869833015039736036490356952561584542754802982023021811886752249714607241991563349084491263316719881442725871113242636163044304975233325181809750674888563472508223434339221022648609719828476486903961174554221664010224202137172119893001704525279612019083793065457212479187649399436362182504985343322408443235873388098685621337790154029765854067237634873000037059027648137215355667818017807385195110419802284667410299123635131660657195392808641381504715696503532357736619992101756355960573885744578350655100954288847262641128272220609009521652689988531676126215327908001362062049411591246334037274622355718991583519492731517088676830343237536135904726728414437913191252411793802578399078587735172928851555359941842466134760429631406287252841501904927226184250043314161827981620421740816862136370327439086650744605897159504392875945265453780829633945158526851751766338540856905595229618607806462268799716704492261204661221061918084420894306499910072186094679088920874853048102398986989139443154355428054822078052537521463442195560710713630129559934386313697826882829654724270718155338658452566611093467992074220959100580644106318550164421746443398230779709255235353202045433818864403737593704789045900238341712293631581536118775871819152376448971044648474211833815981569701768145294468024717403477870106761437192938368786745402129672606910823811460524787195267750926293254684572384395615191846967257476378909699368118014094858907215094960582693132879374857279006424788803869157310001578014398306300060058125085578458624349945715357422126793897845529236584475835949813250875463050635653278008179007860348075370393605705284059312784952630361488756808242403419992370699031360786322273533652909864220671604493928135969410591214656713671618649924512301557358608135145727925220408928506324954496620294727323422965551109954407388384000390075482489317988596708882273888191532359325321312475523221680235859376424455311666372084379215911409834434624664209265087399800854161493466946868504106023926176058096777131252978019336296650574128193904246162795513423652976189470999161521538983250006791427731988860212405601257956651034360774844061765815168244478185032188319470479613832282947833933825714466390902947086278150993228201069810545573602964165017162174098037297724905939844327639878418834985097962460065021507649582577818459154973256428745466236025720454145865361045828436515276259087849491203499506512517882176281770395582626200867573529388550979354630196402033901493774029778611852263315332201522978809959023916459446958630134356002545003825980171233468272014084735636988701363158399999956862580987466439475266599443787684992908845948739088482069114207950838332649673597117996541269490404787358979049258234418047949900306386857804872274869218642664308134496557202681669000093702554223206211369277842468285979179157830340577882422978402748945236672849950031571531242724092689266256664960657937092561561304883971917190994783792855662664171922218942879698463507878373613772593683354027926314691185871878123331441758911277676871612570602905079891969488763748197550733812609913293939032650613728756029851937582371550957276252902088028401697669937735437716206635891065413846475803572867119214201284990383748381909245064948941575724020980310871014144425049338078114607414407702522514977980079781394482554177030256033766945758253225032876583676944506071182697304931668525300591955450488506399586587752541372350358940689539743643941789758151903296643268412014336446888177298807127872416554923236659779768640968381426277970676027677712979266430928814663197963447662948293647609950903196691508794566201950995175788705897102535148845726309634219524868993738419697630528511785764524006225589178636025686370979044464471437840857537887949925179155567345079443205687925409189652342536923373403583226234562143224954935657736089733691043157629092616179579820401763405888676750409383141187655512244806886043470505568694016045156465484233827864030525881384711536944505644790222982330683416252265246459546410282008514674247845155799460838948963498316174206254587161560574024184115799889659150894829275293183734970718207364672299344214398124088573218776131058627133420757868550016764963609223593323263636437705775245038585649303661858475197831933278531078831020374227545651807354938673830818713008738604936166712747004405251475734584455618653156244911890878053724985392906516168973056858539109535332090734693853355472080956559812828261133881308259203141472977299765368740431200382339560075083424359344576638510344910518980991566700219863706011773926821508723756069078812986042650223476810440343674094995387930806267950350289454287518053233124244585478765767504309766699595430758271969602081993072249915515759859589602563953238503232904543453016722501011966660250328159783402681360310096586215844286912721749606861436290817809842530359215733151692886108408501776787105552718146727765967547771434131756874824917314060894188528374662870975162356413547110425536100400748366737684796764609024676948972699640082200838707197573931541399324771470539962308576597801729776253217905162788002373077380217991561408552288420286221109127283524310348826406960845156110114853831909451300954673464679344420166362527231737214910883765160209752629023793810100598652921527520605514948810133628075649166493968941695156671615423014419716523056022774514691386393799827134148571295759213411145539997418021209495949218551819274203785307491643215585866201193100373293735667424831560418093480448595024337659362172171825772287929244034539280917499348171413525131332961981512659592712082623694897590380134843940655815230930121999561986589920555227660599575838768825979573694801496086569333432326475778197832060150885069031818291130638757677263204291072514362127110952207845918205510845513095342667406232319293798838779881993122274123674472010430498884157951452090534787749917459183907223629438075018565352045023469565847432559739897273569650766935231891710862744940830823002453446504489547447722365538673136253898481439650767147328132188510738048906817763706772611711169341248466516321510958985168170384952998534955260486701055658600195416954229409545182206289241859376439539391669721738439240985775485247161333217776249783891095695221286949506990583258881281469158088163824999230774082321039786219509687191003153577053390202242651860014004914779150208587253825861832092633940604851304197849045490607430826613066197212684068208646757018709304114297421356715665106058194626356176678208839197563410136882608973554253011983598770361814943531306810525083802210979030889680151444204635303154006075856787277982228841355220444255003254818455438304190636332237415816209068837026695488011029736340219363548790836283010126372746440243417587743045717609801084300940864774969334877947745064934068681807452301588693430416662063479878040864666837797190500533217722888086253147639175662841494070780702025303094493821528399753819890749015200047505338724028214204087862928115284341070688792042547340060822215391941003100357166966465180408911110216217865100371070654808248179622187804904696948438745603580655338524182390621629199521957506074903571874515567557401922584905541488235180473126683501322311627951986985067481902757750398630333821990730443419175191797559181485632900934607591261116505557372319051432427887987826529982400350264864583532597659069455426624842211743127937504086606092226108905342075957245125075909571165343746085235711716805278255899732869608322731188778504898180961191436021381845007559794746935633222538351743247670591567343910581264646039647030429055952844403581693415808697279163984602222159550196514981822283310745792571934887272364170206181811566474444338170109922775657135187823056681474065145015872895863801529334176052478227087742489873442678457901432651425790996842290904579056051355143048191732399137579330889505674484868286074337273871687334491698594077519659661093593764787302191897274973484420134832274961560658954311437768249467209548524363761104596675277978557461596129307599322541116580535380106026074681231654488849080157041079994897050865404713789004357826138637597940247941381424236135085259464510569087415164494876235360745098795455673819111712411732320904296831215003647393406633371589998144584619821375192203014828880731668990772172230257692386339376575854923125338654717899405649844909900266725372356429508769387721603574953804231788309994012597599086944340807558829077953342807942803115013159834400330315225302988037349577636750016040345876395343118096336970892221389753963830149641222164189673185924949325657041192445889467162654289754937619193167723262153562339836087907643240659297809062705746097090244835636564141966102731714579101905782594484866647485686953657137912137749792432712213062109430573698322417796532607508478057895911520286105932846694086010909099628322512245774987079724829724359814361730040324019458858590522337544588166372138593659768313898925389358252637525875814000650550986530698795356525058402033039339885111597057851142864031890388184644670808505203460807709888039362125342906142307483468954780141825573694245409005904893698592461931052817185886071977595775576187333410627087958723434408060098219962087341684482520870567116076235998960865689291427756639732170390699746546361965039936599295528276588367313822099478740602002140333431427072405440621148522149214262425058112952951647603313269041995855683678519667984255497409945670847171720345088103842782905818613707814675698410450388188021676221795267472256030212100399419474896828676776000819252112912418885983238743964109565579625367189679211988834122015376593122200591333510425893087313385767885077954165072059455909185557163144707072711391719229440175849641536817636641178607017237431222815990268212664077069269059989675190403491502824508324275034143352535599250810978801905294132930718433531517575459982313388374941317574112263287468137781749342331234636711061582936196732238973810681775125814016416469521583874166055638424992188662460844212846457427208304093469283865179207793855001251826993366216987426847265114375882278535346270463462526188293187921508156980955805772680177957883856785378257173105473919498064707565271435163735485538490303318708520897190745003161547064807070431475650486882439820746564448395708356290512735837709327245565826001648640636119962630460837761982279315374538061029413374065034691158877677809288980945473511395063017914637260715068411949415919876608842634692999203151267659177780180724671898148298452049609815850014866689292459244656369796317868399338322577358339632391316310787026827272570182649676813724689077671008075529215403225240864393992961066045104303812595055295258883214324763202723786371924128623679088736807484440516097771819993748787526525764628556351072626908532567093490049990953799313415541668617160860840499630458759751262903820000339284837952525183202872021299017072655906055013998161587767494262500794534331687208274304680908214673486311661934599520592297211725593395754167945800496972755959885064266021108193146193244031407568476614315919383660952581695646419052928057320099887099171968301993621394608598644833950186769845978846759357767821075011122593322663792169822850000974284659440635035833325154291034006156439090580256858789830376722968287362554989058693914638099957761399786378670904280234934532907879955340559305883124605021122454230060731821931470794899285718256446665472768853283175337723901286744546137826007737529911988771506818968956250547467134849464968880088145404962896424329556981503191302162444047232593362195739170300160822222043178098821318618359767895914862041550634300555819963143822235612278245680045197572650071926076781150675674782080521542415635797301691689355615348266157324149829275815858618999745970077231416329378590504613289966118810758990771318548111631942262346628469631212522044851885005494413403844274467672680279617188641385182272277236922100428067632214197494478571429576668288574289722297491231413366045041286904451522877478777928702993323961947279900446887944402738749768897031771574642096316118961648652283504151776726764626444018752566531546660102826704770319400457573158075089572899879094379309514012439371695217076905268558596143140924482470419907176243832334089210029934636971343459342882940392402908307894540674537750823476629848941576263952622388752925686627054855300952146179035445291195129612381301658929514823579046028749182242352362413591056044179335923682553110833542555829490895895166567473271171525937139236441517326390387442674357141120556200178413099501469121769313908611905329202421027455770513555603055618153784225190026723115925057645126251785327738208647529495675270885397605297287312708460642504593411504429200747077810024785352916289790647100472761771427843777431727328705865901028207925761944811095862443794584701265888207584895937444130035385201188112640715958283021949689577573907877249426837103559688325336128420680467510071748813408096561360138241187010105662522327312769414858517621335359472441693496878905103970483447769944368889691752830215823085200424672200540850328894033906073268465648093905415476677248089016190844570849956865749997064274058895192839822212090409167421005078018867739364860060189766613522744379002990930976426711871611278206946150525162858921325465725854621060530124582293756676437584253074260786117147179150940177828297908078247923202601247583509237240412227305676656912839655873180424418995804673076677043967624839550671272040843213736296438766663998987823133430810450903613703185536271295480012573023763209319696140762207342787455202765247716775302616985117652770568675354959559118013591550222066159895815468501507263886930048103912459950517857695510320561261091878213207826673573562379132397772788915089675089927790243270110800594401216102680757810432771884977060622553613413712737018291843285293743240360419872918241226337715604459199812738726499640928996743655131735497627687822887812325732546207074087115750389787034773389019878107217205359667920978595532360386203424573895719173978477019761786294100049080477682741404790952336500649415004334367698503364370043565251000361191855769141229564093279749618371642917582579098140031037163341789931018991221251548347264024777894348530336077204509537310303533573774492233302567095596933620296725680596736124435481432139355721025175223111752151939905027396667968047898415167720472045178669416297839871925800354349303316167884355195399758052965676529387997021820792611299720368074475357284114536709970686260259598099778298712479416267843116924909170065063223171686840154043270472518213635477651462624039864172058405632418829303961113289135244341353955149128427722255054306580475995104530112354009689950203876765264084448399611631252979198744428069595614122653789313045153981639313891728982193808797501144840735720752358153621860127148048493085502589165080767224563746897150481215095429725228459990780748289645846132611031447468602433419225559038280403614451729932839442120280597258748199735534427572519265733998589962144928568570474651504126430501304759563455737759144029936995511290108383752260623263031463089909127048757357813558585357970226993864532085480456362866226288112286381140749681799922779984153295539302191912240621360660099735629489407405575455514096015047403996062366930620547191017605748654443812200917164871344696041128898876048069869831637416216056652525874932027116869370675787403147249563742433209190841728947488364628705671654803260600762814514402102362521782814108133878365473357807275636591440444622463976892375794089828930736714744050839689740034180828466001860818064251640869668264214219493715383286372092003749243711846118961373422964316892917973175927210893421872095016043821580362984836676921312622997091660738542680390999921083721646240388466989394377010783979437668444015375115578480784513253690780738320435058260567819729922627734351221902775674870803752733424409129329137479208102691000586640759901630387570391805548506262204885222334675688768236360209810466269536281029557175876756889019139558244863469713783550499906835502737940166152282156280634802680225078449059363282700713379535267783153027064550707561777865302282779315579625216288332674304146057894695081920050803203236291708729447114806197527213360002009408679063983913136632446489011562305371997540387392403720741146627551127726751877581335126696825212213788994813076344171136918850512486126720297592021173112418090536615360077530531930583658274316218100293990904042471150146566506264113566318978062084003036699831118642724975349249643589049722070895301645509399732619891079791616676017764198725240676153952786440022270792673664806996610411914351249427201205419517217606244804057486183472855527671190061916900095054023438600472651800857175079242046454926015432701868368980000497991433706756314460291619086330414779220020262202168493316083828893710780336852409381641447671417753582547784520954695053947725661449131544562823892530371436115345203131011771118109539114469574225092179451269957923652316853685132097444497097462354570031354405567535882825780131633886824459532737264494189197199400587533626991826366272652017651436342191955630334339286650514661079336903907455653006987823922400104196137458930860078181915531325693034866679265670907526499259863288772485459864454930414486014964128243386127163792042359908608344271016438601533709218716115403670847448306568098676830397617819719994448096838162683459664599059545991150134396691647016748738644766363680135724003776610166003695880636274175901421885437062924804412712033199228043794288613155020173664309905607695594566788678814652981590013914972960878468453270557959230066191794575787121518149179170793178180253795733650968825873116603822772374076535266535248820492779836085399282822932511473407782391837622239430131875650543692562583507730916983815840450105233940725011543080608404639856887027215357871295084318906889909125104675744532778385719720742843055600688215133218797391671758709301057712239587019742745602093588159289227189723573646815184797591205693406636278617704408467596422247006751187795309064761971004227026750394193885479485986294220025179720360856575314799676550602942938908087889557176751550689371275425838737924568759633486570715977839357244211745388397821594622419495682902722754940987442842364334386880595887935942006927882850836664926145545851868169560290856996601199440089059472852795212780139045567113134894266050222678282940379430359384654007621605494525293256870586205556300249534925085317255323618255041397828796399766743368649051238331311044953576946314877598661531950684037678588862939507739261667744271551359781208686266077610612092204294504613604624749064938798771920298915321618967967916264222147002286850357960979002250527141441287143706723549463643213924116187426931413671998390659809176905930467593466417240019287998093295017774716841293028754805932524583104011472211652566289300833787633649856301934479227452546417203188471291069830685744213273240974839288229538446744414196232380372294296815595768386621137494683701690723859033380521880040573106249968808279192078445772022163973559364964526185564634873305592678273577410241292316151185572576241915936032797699198126765563876832736479405177755627096729085197932178955681114351076400088238067474904029642230549816145405935626754051738958680069077450520052508593293108788461731864923362312386356874903954640119075447951881317126299341902786632071856961071897712321402713164729931840333273803992477757868578081592812082952974065862113194465187071860815016405113879357086452152757067355305812447662697064207492942471777395715187411942131893089949836491308248065225127932297744585721206951842969869374012625302839214666225706448836377118949065779379657147909293068113056152820929537072125332434294304009634382051086088654569667433316621233340579328555847239265075500926381046012987298070504395381843571878375650214894389875330388417905538269397983072543364785786834299198718741597655785939867384602727106702075722441813403721373181525586906254599075046649470349883864782482589034071671989510614376495639681295413769585364405438961395808088948852851270353842867222695470939630148660724826851802207958169444203349488724269507648019586789589557654893642379917673183111762010260174777200912453725322635113730639734689831569749407982258483512963455733336049712995982935211974066686635297605482716992206050769027466680060683776133855441798115002003246291782870710318434288408778108069676272146365618325551079490222809601690202025732730474667108737902642358009240735322327847949360867045239216642513817320082014820143485684766282559093377121043095459706064050358937784890060258208649808175065495485749772233165921303873988850110882434006065552457111584899370604854718549053306976092145191209338134246828763626057040644554301532871128023239304362888602295285904117250725569382519848833525661262480122992951153639243890612787222729183523819778337499745825275572279280608293392301182801570309831044524290556927978553794309981346777118847294633548523329070970154450397123972927646693356147022466747373285397599751307225895741614869925803605143852917048502295920240918846729045817651856175134062740451891787874019713257187957634093373425992610144414324403278191843128837612041634966030909819580067882993476508104877397021739992553799575081697741011858259942866850118942253264216960620670001588701425904673828756515939774558227406095014360508703777142868850468532311399203510491414366239056806462711977206949026013305528031128929402479128042910321742272751853393022678790279109993552401180904346255660535790528374443261293314984510938128646824126396087695885428062816017295336143571913596208031651971599751761448087042093412025140378760175477841489420484456832260915557492288164113258454636269055478982524939365187813994821599704243897130819664759459551757926713401878381907595643083214997195506767315488641621710720667027297698891693522963907439329848471264477061831866121634213338415613291596468356258537880922145192851806166877920739002486409031467430645969637324557415621829104697749153479405162215880955307451161142344267672798213828907349353868640484883999710208357912177396786096769088616938401219708472883667651916024093754657086876064614735371119287641980178997012350194572808801454839344410703084194269018290824347823257952493292242714525167664706763699703136826944812572879449537527227291539591067181476791368476277089222279686533389535414577025064399207386105731922932583395441492355957274912513464436972882944449110908115280407328224064713445598339535209551001751497216192028372044769978690259105855268541123360265850619254089688170783713796694748939121335738802174553582263739831663944268255721420547762534442238390831168571325957924872857463835792586478164141327798098837170421608258237014723872564585931501799288862577677650703221233601450921020805727078924821078286996901105120374751652480831211674844630377362890864595299548649756456354021970183518054338795739864335279481830501571825574244032613258698194652173465086141139734466898585274682254031604038937117190239621317231543537439863733669334207796065427737662403076763179008731834634013002297439808618037612405418333809176876339943157244135844347339019495673716716070771105098732478380290424190750552907549087116023981705373759505820359515836441889234876864868795269826126413149257586162050720307363644485946157143298291938110632403924806211919703986008414013456284185874425742248449084741874067325062651626512228366311149451045072300189930832257008581801118535337862812486746434898508944646807168262546371771346079081087429592216255839022343566564860939230175021079170029144055101802732951369522897757386932733309804873752712186238488665409819102426407745274078124868380993058600868608478045632531513813924710328397784857992711258324770443018232391856542068412548019243810673076924618715008966706367154643679695534863436276791457261306563385314815487931387303208432534455978414672684331087601988089905975888704207968910244100104808439112433219675498467430609086475167682386713147170335342513956001638698796125777595451616086673862618624450368905702656430800753583668505120286117908353645387819067119189518082171288616960966534161161472696026956437278218364089960993465847991320737447627931791451653888658900385953643034171279839102528896254474442369098793553992380203400492431213621953997657555700608335925737111126146373424057599759611271398912668877137570297134621052268084597495187024048193021438633194443579017754628904922376201808882916693256183711780895898001711992234546470265430158024262590076545083074376727585510509280946486905124883263175937637357557398856581927842827161722184924983194948489278822212740638775281973425977500408722961361856491566812558240044767028782932454092671614141773836509697710687355563746548149635580245347626877751882025217826158814480392455093952174971016103552034180852413945672592345438739970113322313566100688792732122433692333983747718553694131745905824688311225822962865101698306653426272712707284023162951294843502725435968647632039589501236961268385790693236721202794937006451451263621262468894371448017235770554801586120813161514673764557325067639750779926360864304078017027845313497129624493020407018003130205310312718982904778822241848938424953218614661971552993143357743566082307928778446583897672134579770425607164652635000308470674531090735244782384882883616267922626609128099421122658008735165967879891820465324946933264666985963296461187263771751938638603181662097062249280160737179644142670541253070847382367384016667593952718012305339861675343674672050408370397269876711652038308545353609466359775756117442171572505242201842433725823435923265859051674666101251500307952079058613458705034184382134037856873241849180021508231583178812144515658601985400612187656756740197635149878136914813897995338678980536198323617920179085476016217965850897954094670335073937025222930471652966762021950885394476317148222342688410236138941436123726019821031674422642575500982255578862671351183221176948511250518495471608445975322164709411791643230625977368430305078889580571342528782655873897223475423303609284909135573181580464122736576221561883309973047071453634761035300781098023140262873347563221091503697905294471980442286819845102032303067636231876480249026185754624688633994154104781009285699571287829419422242783327976823493288996547569999311301240796054458237518887076397110272043208772310823384620134080920369846265095817035518458197235727313080202873339954659663012818882278437799481206387404811365639994441599248494163769157395198293600013699522178428494022197199469296131549367321054401966496047428027373226341538707633466292513332232216287896295405041458722794182214158261166588138652860291236677464698870722473171107716500385222582492990378085961010958199424799581924671988287170620463511507110854162584430375913847531293502314157746928490671428565617846609403245465125400461352601943421283758515872003000736941876226459432446152137258635301727151506233890965839126727701367602370716974348691808336197548133194322724904822052301515101354025064152765588214633896125117499188434835152447757070707486965718888184950683018440578538535858358493908449665154964925421584231381402178961733892294973352001094140846918435108425607083103921641034063314991837802244769612959762439740041975498793652829727045684388269390823400045466518085759691636615282599057975761314928447290677239109637785402491133197494401121279433734595519300869493735279146717895880815926900424950700119899412620146960436173280707014013296874921541774624511535877120036795055796489817335158405288505362082017585869451343166815953199149379721556018658045814691966465587909992422743320664482899799764709524664843259408726961057977106345653257634649898933432548829250516961770666482844448057984022699609976057945373893393932595072775355061206807809082387069775873965840929000593750162072637747740055891120103366530765902773863436725993720510227759785011083704202188747079605921152103795542007509787249663757747391845820679240493633559607849740380853884912788867427365958609931762141642493051568644038376953034154622788146520941401620042370694455630666015170321021735109964672083334918225860933891160742548480623943639426045665271169851533304374924476842799628631844254524397625042017848035445814868042387872944059150390618271208708071119430549958738424172578791288188642438477413517247630139422611156641543297296640024917198652351429517446576527001746794639495980252627968876413931293464550649137695344933327925628606424071278203289017597390075482145685464424779605310421674098528736940322797741451688298754759545395937656825161448012743687434280627636490665552600578350202111660642228511744289530422058942163231888690761539957324722015979978317515298340235559157810876179301021106600726790290442109959064731090357453393654581254469454890125674162792550941904547540590380075660266060192188892525538946054568212751973996018965954994002689829426584443475076937165759248139689858405119079371600898712691006667076495260435356785882442375942346707022534024640861867093896768245514153428956499663466390722971189879668659061702581173369080225460463873260090833105479334613489961465424757219582802861436766413275430982836204458341080520890052281436736443565179988902188651940283389746533495974277745978125116097961599291212883918565749233931319336421735101251820220691965387488682820724887807506526625018922577033005184408451901562132194702865071507654979338179790249834326944874425714852880783361240535181054620178391470504670116563667981427141322752538972362019080314517765598091822926332587562319466157632311426309377349450050667820900233452356788439222472203949399188102333316404272280821775771350913106753456885074448340567649911601653672235684633401681724958038931481260178013525402029420887529614403603563519619531197762349975759489446333533991395829237768707631964936785518009116965638242293622523389344850061507288754117115764776203316104864712970720850939629964913352521084912688170116628858794057394075005653870642134485557526356201476642360545915643775398771011778021651546442199321699029600615234352641847669766064629513185920536862874492735609007216744586158144005358262944063114297980148838519782697661563530831637674553194744907629625371677792876706276838893782692690679202611299003599618582027628800385331550338299510895193819874480251680451421720621116295131319796627512718612685058282172691362054408032316359371564083684881501576200202978699882402591156975463724539054527322033148029985414092741209214548434848938744959103135519487595532054087826379468621739060223070369427285686046080707495519880789356250410903752612153367694609682333476940926828255098509057742356954110284042824925198852964505874721177776015264856791964652107447410933280646699601922047419360285996230667432561071181449635540133684882607085484804169231760495652365567990317021226288287040233211702434154321380610893622463238096421894420776536240965407716929751454860409463038729907297898601165096587934675739606119125583995854823145967680100847173974302860323739881772099473565695505246977731915247328354678806171381415112411191007918663206409557539199278767600490822646556121964707220536685675108186043392654281878230951540715787414412522692853837885735278937704486552335721127108481947151186659055785258305782485470708733031526698972363073849315348044608872679669597445809877861045976069331810244977814925811798801003456936863541376342208927194027245010282639544782555854143343257239565686104360306780307950843359275527681886753153949273077640341107759812350120292895219974573535304023464936310241263562534238048658564640868756726353307230790399641986261770410857891399411787569951657119294993418972152681371517176095963673423690410490565874171674567499052571410550651370260110585470405330484335389690927364744751923011604151895370693431152201783435201463472411482788114491867622871869617149073840005782154027178431903545501831135362526535431424446832742497693041420841966234272084430744760821530420047832027475299904371636327400184970884737905672453256257400951842789442408390559961624013649724957677731428469710235358437884053487139479532574296945611354454718863890877837410513277886634652936124578626766036678156725537397243868090103692695730415700058027048254505500005149770616414510737240684409859451097159313705928274608870328147024200642468468127318828567332036196643146646113911515025685637005229590276245841920787699365395289942623706987786698581283861725771010085723032008156904834022677084372500991586057494320128354801456267371812628542018181296231495014318116436624297757841188630561093023729742898704812713380356250892789048764399774705171921079918325273233501555409077202392236331230094133932351717976969023856664624392277760609485233509073286055924923971751951180974389418085416665615261175903520643213323298070305112310241590994586455749610378617671531746923106972878576215061178277318270870700491081816142242100398671144273399067562831539174212025461788075201779047285361256991544457014270219226362365316085179268974692449246423329142660550223557585154658911792271560196637311159158156212422254882196668782705470583687741989647162506381890313459744470173827294564329606927473130668365594468424848728988908906261935400871129426409269463601030222682500076189954882837851012198058932563866004634362157829918872572247309469886244114123098106367130414986054749983924229866224489780592510503789205681550832044871302222659442428930199477661268787412047796417861845387446866638899065330290988163893934350869243675111395105744753197769316681815849077755282602380418774241022153045921262078331928652388408978242943169234783407282858001862850309236115792664409723696535070635404279577141726650148679520989699541854002342266085087792869179497081868086265670773228510373024654686907063010237230072538624830287821050111205370730093484290584721820970424764032985196598973056245583825159111415618704972414695828434816881973947673755000695281915527176055236806137582548800955934026843772862677590330342410356290390897075465712761309444914309162487345405492546579409522429788176483879199827675516204641258807092903943806359477620103835163022992065407913361232634600215850176749229698336818001596807424013778168326615735174462783432316996656967062363367753603535948199309163199432954939129860748832075537535078567403583587767898171888557364876120189353059490800738388291648897686307611562634195496284107195316675342687712385198273330166654662937963569511667581637942832140659341300697105174354949785976389476852654313207264764934683893889384756982755158209741696301761117055905761725635234954251057673584855598384337454275548212896631981550653416045903712154597394447981965434803107880327627298483589177121703283472921481713113758098668374446146058638831173383516059591306922673957206351739976167817348460895801467942372828543453728655166927170740725447903598041922640611793053549097072449400725347131572774860384450926759925124308373683856089833551094071703665745634153775941940799093751633930857034819696150680587080282537569406695936137580871169100833905599474611171771313430872609924653775967115334416418909019228589528989359286737554250674756486255590686318313279989234412061614102945042674209131949304426179334819508183497994438532801088272616232017055163283634341046855396881743531709151763207422711993143927609620314744387817651889593888381424347955082186162769803148896360283904569012401306172248560657707415340174277321367009764465597158918385824781324718372210210695908873536720761381739809814136262123416011847798220655136354814281526863506807741214567141973214999386105280679622987233614932263045875839924534110285961510839785951107500407758793772034165022784084117166930757649623831650872846533027469411292235600573649508034395127986428481041010215925912387597490241626082199729486034284820453339608688279379442547618055732804891240017955740565063376856537925677690442183183057412284890006449081942255600895506520243232418364994838985879604852584586542039280935565558146780437824815183911756553375555980811235542249942535533797253259491851555055197591254847096455648964070843275061462222479891763724635178941230630739440984419558990370643223566214206106079142956752165977778052537126666833457937978945149013673165708145112370542575183050667564199000430177107731759382587775497823204484896827759966143966386583629630911008314434306455916120557524061950980648792045228632032433163861159302288854456765192757310767809536943926152277837650055941606275214765323717976411877056939810773388312880180695710375744806525228990487893378924794967900995184031413416936028985901667126441328230937925533494686613644199874866474242813207959567233199356586535211246525415133385446053975648237528269728550751289533607549827499850942502029600142640361675510489784843255613124904337440264526513098137806025296192632378591901371071540093127354168114997622721258789941892198378558809908786238576145281379573172838495280423263331831057738953676726000707371322837169618403354009043327873152341837709137844406746248145512612845653882935500157009804399380267728521252993603874689007444488260613690942855967943784349667138761986856948812491460191309292105748927654079467963943341737053689635816186883552118802419618039990928930813235959178259918865229171057478264153401161002969204925837215804572423208965079564590354171052030492757193155000480889691969019169681304051805076809680639700732634264832959075493828128639124377234539264580522105144806636693604090410730420690286583191692937663947741996104609595196443503460068169520132507873409629862412734137163147377695999450937240341224066638059696723418705729642771825596480266453974075302418733966310162396985498916237215174480147458404262571741440744591416391900813785973622022891105046457605739594873655252640462198282918031220589858558980042599503301340015377286912005841960919304520103670774716406906015185975289680052837819388375789284139502946102907716892848034737632696160398392138311225948332592745795075342289355319183519672660869939012939788046501001621358444675756004415170345973182417351019284311903543943726127712869909365259938243174416470693797787176644882103791817786092015867993906971392102830870374717179761852900497869310812585469506722406030190156934840645293761717397033242596550002567733985463798645362792267376142258452423841939513505140089080515313770691580753084856397970938960065760693763284254480065607102338344221663705987667539990334971735810726351536565703836127317400225158838170706382817074953381844362986643312181338908219236129192908419091199638100927774056375593441328075134197807662949903025847060495229859160918549626996232295537119083948527110741003025735743321504189568181703976729967227945463475115552464391615103504109046676937135912325260264149342217321871877980332101397642852569272482473289749335557768251350150741793087182569255937292257400163942120347485851746465380415253084041645431581102520921754346486226972861638660173986565732621343980665006698861840246019581731635956646934701822249538474885877469742553573267288243241111924028102076205740166068198450610532332928754412495204101769743898431615030758342016621044143494218346000234434585707938801269603625819635703052378401389961656109921101537079616068046305968865104170161785365930893334060467690540830125722511718174476392164670644752487841712261372265025845933720303507278423517431799704760218183219086522798289385264973169662682861797280759771439056548558966194532195793132668979808263500842685669412899228725157760635227257987083375265567210449101378253081262218296901145006928365997464257750354694892564123635923064403398112696743223643197893245805794776545183817212046831980867773296303262982831578081275935202201029112459673688120707213223095921945641252653427597444248865185684371376554730207843309226974209362816170348451615979350920692874874034456276220571721364120101742791953703710148325609293197718679607203766272023825242415228404411513459175491355526385252577030100002441723522165363397342774742828784973687522664279145112148850656355326845773895764677851891774428122236151871051222041386537484043430471272716240055845308299824686901710908613741160504458855327190515766521356601675102400813046936664564694252358979210837090600339398483021495257233988420857075854564596692900238433397512694416329480334391605103997822929800134241119724218625494790847830234611589582346877602889224471659791616787785695242805596798536375434322841152354834734681663891555219601023499230636736493640724404973955975185486900016096627452703131071290600571835411616655019559516219239501584072566923492391360890829207290906240907447122959853300641103837846878743618364478171340582054490953700112704973269093508262005068203265932016552864084112445639482030075278526169947819732128073412349267249873514441251857931116431009815985150213210342929146296531031215000840900864589357781909982000576881924341516731838851873680361342311117843976448461059278180590545921633076901351428906154266016525803382971740510125362662595858400976769554578279747553754922727969807712014810496144965524713837376032844340836883401321145813165202934802993066880694014319848031844420376645955695885246779767555502473890540288304254728944335242627920357355955408084996777998676043240266771618057484607147853143236632296914633000693112594094218307465168807479722175795411546288431002852756201049195894974169063997121838256597686876449268938515585292639064472960298358343452662698104229028081441281082040049650350738933613002645661446580768984058292360239962005437014599810779217854813697431368721372578461092274531210343650125316397852323793466536704042307570457896036542888412641621140133508529844350615564040862852931720047814527778837259955007161922335594749823177658146281400891109447805884769292012347350797885802684329948071292260288863190471003512000421601581303865045132580535249926671179917981394845480507777706805840958487339908604985509069635554368778844763485336350196589239446302373803105351381865128577484603346232796382381202196035263288663782827396989157355052353557281638429105317221264354756645582935639003481232620753931027223343224167379880770902265241885284589789467956220560200980048029400370003477556342302921952228052304698202509310144354771949267849341484865192942883363217707766641473131426854087009909736237875149331591728772978218769442022518562296627317769119001233190122202051088247138215549090883924251711084967521087450551314113765441326363841159258410820034324700261115199212326045554469904904494298833857593164293641099072618449830115512148314507810779673259477419995015221568791250891299968512192270780009654963881309809760422614042038544975257370979684091547481473738385587284167437305010287346499310687630857014656316791228520899981569336417333106628348946669938742164334421374481578568741527128139402679742650436355379133249435293125582058477726484254428811578088046758300707710169438931716195184232028150137352974920659220507412540958512402987911563784209165149538352143541217957433188686023701536929386683663884416649854166699542299273132476138496606142448443368588463210910582831236054313086279719991717166328076778729178591363295884535221273886478341988770073148628079672047421650750779542305560376070406928659221069798597472467213800019097642227636807372972999044379603811303865632784754464573168899301029620604999592694972073669060595468826836440013562481672877932376163635653925208698426673673401349022927112150694475328026263887579915416484375635699518443043853859785147416197870432109609996583260228087579680487753950341359333559855924782358843547344096700652131632360269303842678700589405052865117456305264056175125756584539602017860894094403113989617288970902652631634963289821238964328764944069132855490869321428683426549945190783689693433876402306065780849933746862362533261386659710567292120874749166045481830111678812561852247779514349273041004231032245564948841953595805590169578198127248999497588958087723970090825388910182031180188402350213053638241578429440530814317860045004017328479841135117300972311066842861215935023058431088809612140809592953743841388351259433049542877840356398875653938468092475362303604560821355961815337020609932824022062456978057664171167734832910561739846608894258889001319464638938833363410976014445613507180018120057907442575461609532152673211161329160257707219312932805375567629525842046242574510874536544683743860067184382293313303436036070326344481599432306013802183245421691275676172577441964003386677741483525122424123176110938754776404936062176722330004639931534041598799692062559983767251423923755162493172230900680409537663820261604552254793063066850846078009546246853798988319575099484364432558613570527276347373912646206960522842938770689711729101665393021965069412621988545831494830934839040141661252477351869587108085352740740340170500809754038962956290490980205831665843975867323649858430956039916549035455433514991645690846420252097759561720333766593489279671708767697324893807386566828716745887900889099849889939214817672199456409118380329109500308278184484549767788673109507661871475403335304635269763274646716861711886840827777516881753319781653248692021090109546710722261141951250289578842369245677128086210538817982546264266125382543447443643335707410417999923910160712609699084204332195984583874856289295161643240054768316922402555379702297283618583759801236110781571673930488103644925576574749316711399667515624102225641931493154880273189237970485985085424743163012495426632548249752754587058120885469496312970839173419322805277214768026140425614615658415000849888777624568022822362485834753537793341509634384528999863341681378437158269793884251148036482528849772843545713887773011486477154815582650009647401342695965892872261250108654953928431397679013848406245934112684583074350178101675753421255408026289911463021204915223550134924266819556352789800908110910957857863018531774976704752985855027354525236329118004859820808241971523979863363015726209732678115491368082576674596298611163973659145808752374809359519769963581161810024738567187042593542261399506182206035556517210862722877295897318838911138442532312900997830543266218311176045595286194372704223782951227027716249899682121689753829025379956952298432226914933682378166821624723531148073722157052673724042232294963204160320348958363546700424530038936949499754219491648750781962110982480184981750535358670360164738004781857051306970000657008234617596901039917364668293186983842668659590642942993778487685125530077349244172365331211044488850363719666671888992863765557604589833612807628681664937411580751542831357783714310839220844532204912736569776732518391525786566509633572853198939846171326579043919620805795577361551754703358311238662684634518352247405324941413209953620686330476182613289746142328968366478720838301284474441321055459727242705168329626209290209578392787084431615691132557761058563466170539619870761997099170375193770624891933096129424634977597098389458765091931067053128353274220774288607758438708355146583277002494290023751798914877127847529672582713986242182535918250824771829722081367512410862015312002185573823040200242461920303027477378138090276361527338592924620012112598593629958509735117409524371107074150845331329098847609022500361423381642107616131406883780684051397046072223449971827648507543948368579793601266818916419810761442996231080322036700548441157995234087957107136299702507102239269281546359404714467753582227998100596142699255181878063204024110121632440493638120335843115516884377456389476493904956170156492092010191807834532083572277586167290092615476477057939646382781172385781331798067082975515845394077215809669464697576640633266075194096295200137455799520032603511802833514943825476382650713587764980115636048521447783814462433975649355805204699624310813639792895178184838378058347917662477886692894946764330079072804822537680224027906047132655967225092915300821407660027450555016650439305198190678110540707100689944387094632015260280930881470234507576617142611129943692022530754079717599240065014696769920722625178263528213385126694785557500963310927725359257805354352123556176691197284467287838675690383286706845749010277506949042795183318864600075269976713493926043760590646017430578947777101820543402543240840725860658809383822611903630305109963237594842966096142435643567908980161847388444661982165431519827205334977467888690361143094172954130282153346885529080927085594808870606149916350092252677131231875102047868771205295317613383345811946457058777575677096432448251510411129462801285129868371696639845274820927751218459436161922163992589923401475969158627734652103596938603268805814180262227608710609159223050684102661304928493953262523114632045436082400595221858507251330612378916161845101470834713603875411381450925364727243354451768112534167506274986845156948743297549302304606725901738896233729787719502519069617632516336042596095471611663515615133232708056729288633766851475227828007512024157260382485904035953639894570799651683026282869649013289415310302231825105439291849457561664569789836587286862407122932528868656968657463153982588731074325343271096408898865159456640383866776042322040842525864355147382335799691708916019212137398879730254114118130315760409199198763645248745162606790198096803866569702518980563809792204057023384801299231910357823917930720148292215261685565059900212785188802161317312477383824919846423939229214678444888761936333246157493947036483197106691164304295913586003620401314329645707551813722175114857148653521920736038421628246258069177968203248077211270148996565131399569296523485192574743591987669543085099817748579679192647587577495320397390213543112689829186770411505732517171513387484112160901943903792133527532536059791568335099061978443067698719800248650893297767864050461595754376208095826774908588637626680315475860735267418473536385615723512317870745777698968650811597928566353405892104020454104830219471084670111304810428052188943235957071366334665218505083523013093623593322481014619101525002698016769917793152440700954505368691554445604183926731330620455259449245145184580467260334953514549555938705240203782493647164674226891942408064810810640865226239395748103034951974312361911122473941741127417471429482139613098048008724621540560672916392197384705763054971031060057963776976914343898932673814753526869089191649438618005895840559871832450296801813182860032330556587506339849179643653661632805315093398423462081593449115256970783007646946323949485150992100437626814397068018912797293704985126303954404559919995052122805542210615699091218875960741346453114453527921016007481804875733981629939643915877626028575454423017482953529252104868965367194112672212493606691349882108906183008230059921926059856750399918003099517424979890995224332327915225340720007249036267663685188871994790125553877164323924433314567813442051844574019129494608401042629772287696771997776050205850014378605958541785156827987379667494917281545021765417526897880101471573780673372503672974990962815500653514678579724232614083806680067072953575697551577910990865958577143172245842889955784403785235311945121096524685934519361070948261818743328615242803533612898029086217334926572226322891138297094936168113183526817174688644673305742933982750339291348433416356281480283380893345375336015034831090774399322317353759994402029789449396407637515039930759396976643147386367968802688925207269355687522892891110953406856619784830813450484875610187253865011710767445482674257097050199602959043942513944920904737286029755572155274788620948256070224912432682159871084345781181464628756543509716406545767524012798266149603999003183504437274024176168357615993237683872217759654061085970674603958921816465847327207267156980437455383595226598752082091278088022352106639678702401857703260092217926856591262721351156913034857824380918306658993375266983454572166795904960713787348880370870789346418227717698571626768184293430295185609116234318831719034880798292202510658401302344669208445420622960610320476755694658912574943613174382671490170723051494706141270363580835426825386827653537029030330253536181602338741960445386454880280099635051751939960420448646751393908534789280821720342459018358905189425140199485790781682348996896626540234134329270897971907232249593642807363252774564991241161828855486496147868853844927527288400675039772390909483204233548851810293380955850319339115606542194867885543918125116000103425702478250103105242156208911935066320098397308575997877917850348699804492349451304119839643546351112049843991468391976239741898679154332181648178734386276801395994933383518424797179060835755687461232553516315259905635891498932127323181555351774337394442973888235004317522397290889450179732704616250278752353249669614965040827105508395454247350330041935245085495810856676254387135694481946700807628293564164607878027394792423320662223505975932202959235860905825577558698106435415405236283576843258805241745148127778112105017889227342123358666249647343496096004092011919457131841405631946041472359058062237058959098921209510562059653352846181647096950112824837723867753315053907289852569474483182389442938289394598734817377172848282927362198521889845617239294419993980110615670891325353837076384691609186018443586239162559284406529071950642953434420704825505778363664728493494053965709149949754058654086449970003572126558704010586918830788390345830215397650882100509496588470621043952388788966419376514188100055215985445619095823813642582108077354105700452854817617087305114745364792627186203726975695443771253009772044333694953631361159198861903839343377438751165019805830227479837245799049095990472818749639365188665965211452290786326771089779606548223586215708662538295405518279876676113307517803868498778791220863497034732328259131434076057325894809624637925482864773682455033687673270492484972942634234282896210828422923975248299031127296041330645183453189220967261710868978370075488397097461791159893160818491435048713743475618005630042170402548826282329659104718084695341985162998632509999991248483258381973139819009539237943659773801944845718533741942740643137844149201727148181655882215029303409001126178583250784369129135692882587186943714409216010368760625387670076507915092048836589987867951257535677002491457464720909868325258368006031844604232236065146658817478180849806234241914490348541638636508482977377703728623378758227112729493177789750483956850499108834054603965269076078987472041170383687033461277464491989641608732772301619321378585139044702076569094267150898542513983859744878607912279038841907397181514869548059566568216840556686840632942389058125179179418105881860191228524765678480476765097600170383716932853432078974987153606048630262063640212362029478199042222149337847410030080903047670726901338542260206086078974627019923735792797976756827433072244682969231340230517614706364149121490256247882802569207140849262620976755355389812106731762102747445537589345400038984551360378548461762024835821836690786772207261105023718957571433740184838238802620116807435752972828161978429448641782953105670588305380382759226755517867015264095806534897449276272781289172433637561445229824066559821079274757165860881465548745706095586598923495025122617159721554245176743595898758458500721838458574320158461185269441723603598142907627833757685837100782065725675453264290951833839001081288181718961097184602631009490194026593472203056170336561567120719250331129233875806666233105900176526536704907037179254189974864653645527812327510388892158549839192918549748386467698647132956377296251003155026931992301975757452273291098015972576824733641237021802841065726195892965316928342758375698904920389531820530728148744489322451848537126777102726514134136184074522239340485187755419206646230566364991199324269938683520163679806353041799333439288647129601755134321560517981537261033294835953853433522066983115898856694648567116519250363884437520910031856899543729132695982375377228894115211888266981610181630264640464478275735705430170235923031491871714414379664130929686951962067910087318089890386413602814113766516672406595956673063515354224772214100624921035243533341158392245772175154992566387342526497279547452485260075784522827557340392533131828937247791045295047027321507989711401326927676534631490149951120563967214991175893678577130923975974886707958598484001478121214571251531482042872288235037497522786825816994416024874091170360678322333782858243325158750761220529218859391612218115701382132449317081949424884034279240624513253601889369193945620839934423797417129697794316911453454164619215051998554764145347526479151703183043359251826286630483202690489697005489909052767174551144757301222935631800624157511278910969998178938975250177256448239661392884913534871609183758608643078125954500317489478873575658530186585495076370170212811617950625362398453384418894891597185954503819548523852904789149443726768763702338544797505128692786970082436306334650128823601567663444920956601531168661118876497592147330603352364152856504410436575255526649910322910883436069888720915964865680673117635810343361883687700239428743060975401407430358624607985294302846416379858843032289230104041955878500883664259273244899736772677943562473043562748570478347839015486615783159286213285793766916159128324504904730502289937259934228267827087963886082049138310900008714749450536477179878768485413692157495534425525397752308362121321879620183236836747048026929111704749340903932012717257827905785553437287181258161089096148572127130855145936466205431978038585618912065504009452314394585873415775710082636901704808869501788023226062684549085253076485643108610183549667312562867999572174070386621977321851083125332946343808068874539325247626646497486558863455048339996932232114953131529664645889991082240726696890840168845965360837905804738732224952256586375260649098848561248481160591582035457333078158349431388203816724670006399888135216724662488009841259831572808375590758704106406641639729845029046096633257950109305359448175228061502879009358736689944436871879836689767141651424163119411849252217412193748944768868695842464705831940204370099928766342945918771568944903786586351147035989148429310206876912120282495339055621636102276434727977988777408443983068046119363731147707152107202813234465084018187482944344194882190648293185666726531083418591754777037404106863604463654131508777639241041639475651900829093213855650577130037126691435071907340190330868678550423385580520788325912610360777535806039429355076532255128040004502299719580448387900962444560171844354799490004095359351193971513703929747927795836609223275099434126375330938867977643248725563089172716382690356547739372015193535407979368335220015573650739440685922782322422495202541656196666117198171927409659273752982903797048228005512897276441977856316010353468185173722860764165071683817604437168190788202015113871434236163220833590730358424167338024675261279269626384621412341765088922007559937438527260827776509984451318988480258945449758582132943635439424546838420867683540394791545712336004553961679257379654562125278690929323784286028333060814592017032738814191526809344491332548142923022676506433903027773709688455123278703341189042436040452009188790701873270121988996864411959158141836558938305125403603184617994952656223972090698304978541809721775567952544063414761335111525022302720224323712530669550734190602885561025071084350899770810668975782189982948009510648013408236369305071084705958560667501592540308448741911260561374931793814706158449508381001482557590060862358650513060424810870293363109593504120442939674559691604850022578890877957613670116919067579442297037487371916088961786280253112330075264397503750093172424707725484264161851138383162753142365221147969466566863229861171237780683962378290075287299907215985260507856841952815527798613904803126513256097230152041232728084149286384422278353265780227444150508647674754028914566730757105917188315364168111877493306286591349067978458405098686517183547970875662707081270735429848949567956942692451114706485111871748201493790886118664161279632267274251206583182757736140085804142852937794294951486855498981822966608057646244207840563137468717931919969724015637276780150835656525298026852352356286458838068784960649320304580254770267545450901415496227250500416308186706683333416901064590706314807521446188640366140956662527608155642916080825824908730113601193048822588196972730792442717430229441533106147716045559671530594914426148342836468991358718377222969187840083343342295651143981465811340256976677635363723437881182764775584403328471694001827224519850902482622619065243092647426315337241685571971653365658673949524701188760675324870319472631307432478704385323626056335383050743126142537936846924599802838194211999487527358095013585757096787503441083562214919243139724965704836215141845746834556001369991813366329260532412075649718939898140529785486340079117619660683331255775915864029837076108838060525238770049340311523986098578042600872216119315124436767119643242185346654280371755302400407343606370363058910570760760831519770543684871098363840951762733335583749803848113423440594737198602277957852435178429234131783586845229598979001890024558560477600647793038416855887572856827785187798571536729902360825287253748443080505468258969779998161453594767057820993052276010874840890663425668307122485565081705405960450146804769205030805417720646925035785366889021977529018096388392462971807529329878889709925957159953013483928111476432633415906827859978580393249843491980686781045150052119299233014177917051776840797484358679390871404332083373659600317325877204097846657116250743663045484827169027221218904429141677262651427656763207286363293430798646792911841005776748293227312013810390323590753365812840569351221841659073200881616558368549871130788711407074000037365791835916621768761644583319850488117319984674204369129768800436160228775690718866274553747571204410202885189027747005673136756153574719613428658829273679940900366041316192510733316789522330955600139894385706826659024798066310179497210955892071881011431055092832020397731638469111263868846308212314639739615582945178417301930532909583943483737805240763335434163476833907876990472312117005483959119811725347008855575411694761938546286275643273984293624120753634593515418344243117013547594392654970691136040302330109489252950257943459880934056701443741743688791833663256210708950830529562274448888621388820331569144121958254547049127118008914491548291592584138096437319047351977839423962718229313591287043290326556650603981355132947468271212968756338106378473852674191219204172925692947500104055046332437973743178624811502978648812968377906270381572131907728757426424657051331751924521407243515894166141038209971710796593582195153389666928596358403166348704041490976014077162559257273779996047847049909944145571641547308626354818636679435459340699052387567576855197307119221701790170349348356945589686028096144789424115975576601566235063756677563612095314518921545734552709683353207551920925821828086175403189894922193357830898029581124868399435389545887477270507013519254825149719414949970654710973440310433978810457754908417980238098376961620515547136138336914825366081051505652996922546413644462536465513676724232795665046687111160232494442575687659427434842142306980643145072092547195258122859287355581065630483664322767840675495506071648450556675431855964806511739253003294045505746398272308195353492898376704495741392586589548549648346367644743863183723822316620671169758433180480282967307403868613356897701205127992927111413315793811041607790352339201517675376741326060498328475394405383548579073730786136152180082970846265375650491922292867960938018216322185904417807678721969943622012254580277072953838928652381796979987976068323225403246400601249395810102043426340184583963741669930338567117423760824870623471286681618059889195586364313018189563718352466176715702050889353206177658151584732351971612530154085894909613123854475486061470960970402877682776668234948801459162692649939105816305296011788445302238011836204793906382797901878247634521796211868047143557069989288972516598536696487895000300138953426686802376699657168594858470012885093227802541303573488524804980420280451153127918634156743923232112744694871393896394219564269460933049024952918720089709521614612868195252480828296210370250482053858502833770999647401300589864259473379412040896261695242369892164518300990445029587644965207637478793813122224463270748996212387684328744620000537562059112500456122476241838972017123696264812317517078137404753112077370843272791939377216066646699709136095085552557271067309651962905515153704021705037686684380393087457896308147568374009613121908749459173905590628722282951122263481512051290788773092900992897338706728021737767804643315560319070223101839940619924745237685110191144524653311374017742351192050244803090068943589983190077494226865731058512738223403819720471344057564000079657345363410072946822605201037183428514279724562630340803971986309279223166768483389046115321817380242232777039485842994023436004701900476767360424972277901283714566556027075670675730594678373941215715332394219028611182217911169975732224128005587858754624876243055339932039017081603999734912539230550306047001122793368557416063136970124210211278575035951946687048809650907169285407919566116313570952418362742936583042070412142380470783816980706181866209882836066643581636342775675217603776759886928436569499346586638072276504414058515550687524450905071690247280665334036359377841572069173724052275400998480936437863551180445894315903352883272193155583096281362435648914862256523765556905176369723693793275941742266861913024549386470122379287379825081110160211087221444561762158646299079586736321684343097584555291814267886254313111392207727002810160174294431391438901390504287648667955580317789875713659814810221559893763545802632919478960715284099699129160130418605400146243983627028743381669438314748945473083196644524398752594402772228885192875355392050518546227710158999109075757287452073197110972803418048830500412424763568964898588358517315535255068910135642446194449635950261250647291812566503361756619328345632858816545428772041169552595400886524092713630985513393191722380856356693564638539470358343814395340124894593512903745502146226407066442760424382107995311456572499144866768729677933463800566975332272096251823732392888104872196092203762958426548537897789970634447721886434920727670105749182245418338793856380554768216911278125194140611854016373391884788660648506718607432826656385215529044147928430236479656090919632461281647404584617069152098509374632369475270229701077114676128561877220276363823981438670220426731658771071588193963156456807154946069640108174663568075674394662097038865836766967838855491172806358365172063223438759063609563429793695802605597319687535124489100584371348867644494300823121800897190722769913139262656592606897941948929649868061353665982704591295872731217358431527119715192616660859315195353753925088327362234733069786718056469789502578704313977051022092461673388237910557238037960905583216557820899413698377530456915838673238541591554580908758305029737633590542236093288958391288100488051356609187151981732313503582733350216044962158200432831609057565023814448842727910427499467325791840890148323496285788099357329679884539507739000228460242012510204340135659669497249551459227051340066998917978199320576260283104367191352162895391398590037645441449059361696852921523302038016063591828380126827691931298732644657459654381303082880245084605188790508355212323452826390297277526033278548430644048533333640501403063824020490727548045608902973099047131025214932090168796450125518821354995588928569316994221399751073802162860670122114319219865010840402885842044873522001515972058984679680655078740920315321010162044893279816146443610405368777580179026660469346507771204020899099632885394345568030341106638313058190269670722539577886090603697237146674786862063427566222595939890467095563477159857042542116615413067942122087535771340593156733514060558825328263160444512276597369952296181104077885382916263585022699970952255466606104732501023349045025252500316664679290292634213967454148831230144854817940522553323850383062502313456769939515074474680062199573000362996763450745543075265004094583757237285087375138761836797414139978777391715040930231049471386055017843512294935726896043731790027602990359747582514772767681369512396520320597755170901741466342802179691705074792688294633620964720332021766856244128940168643732705365647509173312818869540772203526917067416420822176800156343889041652695573128356483306092571292447157617946863577123970544200425877079854868066666561688865876812686481467385137375232103768502508385428502882496421455023834139598072795730986892705672040986246145993762336057823137998919895778266650640779102060771130293305033898125609806806922167343726059292744461259753428881667051305695445963471187221207695475155276043237338711023572111457029149678561282755038157575313879970754098421593346764911921781199301838809059577829042396333757424700316856028486170004150612618442693758506237616387009118513207366522113816117883943414467216389112801539942438319017432023188113053235848502594389893836064690936207164456660187697377043257869143758304117983984756260836311519383326180398277143177815953771107139749855183259734022837248819253948342852971945185965006318479446025573215518809588783017574910334473891322561602847792679153126680492382356104714330320578933139222817332823623602245745094174365238622902527296791086835356209491894259494609205048217355811810391800569867979607091533696398201750887793000157538741552098176579212490042451606683261531052466701303731929849814071581663814469955170235376790641314178836889495997562974436267118930001614007738805821343624366860111647757956056031219045083495023851131045607677227724572864870444608517555094876800289272690688248604436035072055636623208649547103733293935487765357290375751389753804769450788138860376224380066319459442937426272510523822019397671498920502470269400575018047113506639607434154051907183489833428144207412341223454922341277288510542004868022387896020920059555035428073930496562804663155267380091889686843777075574085159405798383538697549834048356440829946575525579182203116050651722564877310429515806786701266893838428507042795060203438060504367611043053390067156965278791269124541023557334828326739796928679047539284947999783163304299952676532542839551466963639948268816047892704715865246321936083263390825219556910747332109346786388528425028796560252885756131367188719139784839906744531608241600230912400934436093689190222705750572493603831606125267786749005303140918627852791460980995808284346331328918167965422160999848126668164658910094085150363949472103866354641599232929708360104758519504408321204551857539934947086786626069382484948372847724210015654955354709440123183805958214611011469544546184966771946310525484222682221643431563065757440968347336670822737928293388196465435203057649367493133619181431603533918322023253418982955721086020978040887548817450124739605076803973820147357642132250340799931319129910933128860768996527988913587633890395117180465709444328148985022052268292691608749348031183737402279360686199464311971120059595629756060833604864853025394616273638407534998872867434952105899020448413859003395274724107474035294728670299037642142029284084392305176549378012912700526653885784691021018711799102215799421792393528204459231857106442880848593187049081337006681088981289335196352433267767275247286701176285590845958342399527925526366229908421426368905211129758774401590258906037438398344121921057165824650829196336147672673350286390457358649896254877387393507888744391761485219296056568211701777293841960953366164360716282807548690467121450477651498057071048774717413687473295147933227637580389182840300695622547750470553565994483996203511744534381362546354790978094325873132185048265329408222836110297432662800354243177294842030494263762077133226379620792008589182014854368033289474191734164059230434737032104402781932756328856844903487491306015899933231194574317352867997764404198869040346994279892050520249562643894337571616656031356965632082287909904536524634711746382834945170330906754588106751814154943797315329082090135926178122611911472719674771512004465419094454741024178444443650614052734812533997637535571878847918926218281623537789662478593253329851150803674593408369498262101283911529466938794504067351221467441647964312950443489034972803907714970651164670577016196506043356310111449594344605160096206196025954029380581068864756167505498340378880124448890434885149819632390003454037501399457022111538853793105155288792551046400000977571242879379887744757424824509418872050365052966860991459789095866398226184715989272714931475237934184693756592588266456380507378207565117450754908414908379034139325799248288936842911210628713780777124241585475739115046370082563996398717345510181528449576992219649227599553165434052859251234818291539006450847075923930416199980512261120577830113896099049881154720639927100895136351574274216012396343784160157217130635050460485183694497933160881104231624804586406651690750272621772811012971131542801665270640533560329397611806320105295592350865457277929532719919478746927099231786297575306894183108262023834468253143648890152291733797726111858134138203859707338412182519178970573762985574831420384423501301646196601775297693156631253209814815924549810306514003614223242816028667322240901620236047833795261311035090986042137730182231667760641807971923368717062854468267195078959310802479275860759849440403243529455401793048470882414379396277507963406842317123660450150896949709601099282390815550058389590270246016836927414873563729836209203232521162666084893474985590076584335562369484168288934931044093918080252703207187923476992780129109617313416381669662842469149792432282464305624175068476632737620002444016984722520830018064573732339510179210220240385152624372903159387432671096270027780767662791078618321569126978291166882091262266616077606648918375238499508351630831928681217868163242378819794145574836733242094700593051731856085364551969375542894093080817723338558564050029303763770540525423243319875620094989197530573875483233190582356611744402354444508747997522416375814613031327515511805340312300647877253609818158711058382286603077401392720432732673429709589323540593653292600066240113484381557024110140201272681004623806749049397065529613110117736188745583845856080823975250353627909440796404416391063662216356388283688792205460828454966387552945384417896982708265628270455751830815971712491840191745793114111520190340034481971351409309760824128892293701435950124707028184208443516301670719701447903368756853870052029731237126943065350526962460071774488981794143344376851966690438982076448313530833174590061941383147826929676525604164257068025423809206932489031454353364392675018123565035878843371539572702450465291043243485181110323497909441230025843145530721022404256088933378986280860339722195401686676762382407719317711782579985307455477038949437754838004354018596367144685577316342800197892531462666946447373476800104154170071322367367698196677057255574015244047902654278415636484788572297900112073124492588776240656575418523512845625529751186446906218299537130031534953565089949494038826206474192562556914894051951181542065686282677665297420033501306554015227020552213558885296134452935443285942082450333735980233277132933156814241798052511613068110057573208587075211620438938430826421823887412180537107079531941904206032063106245219101962013329558711706622119643485844791390019080264673653876373079665271186217402965107180127564695792348121484408493493015697503967791540569195655907631451345634377257123066012001134491054374132615822019746383884100062581274979382280326563491963450788572767299653596983271140294511377382713943339532827032296545507333043414918808283339250923971114401696832577595659722839314287252663174672243691164015679237401646887393013300583518858661525440016741479682309434655101037103395029742139139268943734108040729133848708656002109378492182549814403802537084593151789097253699116014466128843733849289137243007050842382816920849148044093398159480108236579886409614738449467106436390294149383920895755565862107873888169512297301350846325962433984750984534875981721276367078846681155006889054186924875264133400226942776106414575528133250989898802097074099883158017541119074074495947543423980541624203436427966964362556831300117639910056584987425489796434510039469949053037031094351091480550926129472848995065919092548258105112652258412085447265484759279331047988721455952255858018933452994660849815825475811430237224346617724206377673128753169102856388601721020809310474551477928225598993439527195605493463097141113280886627042647488691630644191969199611772207019262656194817088516007256979011782694134465905228150926646987511969624540923727242723899991710781292010749624820317641206588574801171076163972610576961863222362456301155900026677380454574047274770409176193728022233250109359536706581154517170435299864907848014744801798754284368023907808140299540851373221382712602945611014813312897877682823691061830432856598608995355052926251130569579925348258871378800909340723271515758017144677018748961031979135713666199477717229190118363355251671739511675041468343013752879462709387030233778909496271082681526025689573043408675795349055215530152874639823461025945179111597376628674884688891898819959288887709840725824533094538856259139516936096837237017626586802134631903837487191330246175550123401968860724540529319789724774285697807683607555264647983373848920147380127576919933254855508383021140935339285955295795664860925140252127221430291326979054952961229999617357827123033543831870101440495931096325631908118477773132601934810903835460675965994931381750724724506401953075715251677754900296233868126951762771731916531599786252035048215526227680930633784101003808870630512941415431416139165209726383795602213426311108174545380992814875440609357899293840231695684414784793401038416365313243462701842961050102359773224301055590857125037893537912274124535210846111618357178388453764370586108539562901403047796000516250750625518880315894691720780709625009626284469478211266488908942199648583004881396970185921919632267896503305709135137688310523338447398720571164405131965083566365083882127521948094307043651828103644766935400364453562199358484732503516097550423860551665347143450330872472529055069816988431631220807157906676712593150407348554636429661344458571777710433377450397004739164935820894329353270267079751677521738379501047402800974848836671205088089475831462071026306555896883754273041882055062480531770468801724471486535109455456477143970588434226402642655986953816194807975146847044841716253291712466858615629211694333215676016897383689907953508653551195285471691133627645335475981316243053333873306138154615283788312127538340482202418617736508110907763597324707723381304417755930661231743438465714597548230224544049139373297167816062375422618745945862213623495978305035537891053234463123433439886004921588364849496906167138282824836013908320628166256941720926946530831635913107283125362188562396210507416447826159117325106890506872264981984574741084108139978990064804866442785207203764468724800266049419701424129914607238704055482000576878928855498608764947280881082782175988900496920406788744128925447184761305582105698712828310220233037844739690085640309864455347801262021088068148213041495476706985700210282530426767964092777259932898548396881878076080085464568213690878045043053908193755529938131616301623049865779367835774538833288769262440936766580248809865844016498709734253257583137766655622852860486362331284901762290095560162018335108447282543052746750071393630574839494617920475963547962009861432270265137920766449675671448201369536261596857114075527934033306552159070554345194187317692845600307166709471589869271951205191833564518318109560150597626485505026251875483930425302920052293513779007052007807530183370741894904720856272276823978494634675665355310758912479818909214446209185892391907703136067428222826275088036856747843392704276722787386700798075048753359227365299374473282501264576107686659049286339870211313980487466869648719936011668449521860413595882948216167236717719128178401027778159681228071257182774682212883913056405055409178946971222634254152538662072090570097635690990689928439402953049463505165500988650245011400724995311392250287976684921501993571505065529284776107098914282200270559523228176988227212763460604839339212699041190546012694574346017757675033291979813996369530851873805110003762269381525595676746338778910188664308710649174251809393303157279152345078304003403414094097929608079126425395916865531591507081437480898024761225918092633112104637371060045625200853015341959579890738108775840577474863755107999885632327217318067739199699107565855255725880325103387739506873907010206517050458004128519194311103745681121692979856820623425182616517266245524977960348377537033225248433232952192623815174968224591943698012675650853145438749757798492554274747478680978957943076957100370814784504661948883371526166220173366642903499261196024436035363884125684557655304138373482026049125758024245463512431522027619290056275343653944612779834584376108577829134482447845766026014148878211402050744769898554787739490224364859001827143163297136290897257092571111789408305023528322697769244851010924422032119614533729775266205006262285746792537262721857796541266518109096004601783542659295708621673114011126377143637297789692438982709720116139308647232940209195831326160389232920646324112978232998505261996837339872663699384931467031035763080070330901650812465529765865936297668766979937714493197775589381387589193328889454830243837277662264418425089921739074026141247605211626996412034518504124612364974012168251780531217544507122630490047009551521448012323597656170597505466727800586483907592000760754394208085864178264496374303477884713694298092715623700916655614795204907186550538656277970308036483768745969964114072138485146848451051881526826125943264574042117587050360707731460988461263843661952247283525884181230277654441913297655366668092174512785430529886375143437631186669102042277516867826993067309713771619389521533616972742403120808116188045810375730381590144698993760046244039020083598434529063011220307350432719174618983378577027200366800717054366428834937228742205733680103869460214466305191628383809521839939206638251154067021906322816639079977870254376896337398807305623358097690956813133809483274101210509997487525055335464764432172232318680755551168017474562303081955346963640578316067521023017975380547401067163917827349175583000780626753323634812707010251044203100896397763400550766956851160405885954129677520857053767356940550187419255294698043279947413937204228788728512742327432113349691440188007319461228581264509803452922730970675019687029300722968157008232272262048503991215814535235011902320958260751133668669378663087101473314141659068990683184981383027978114916877350688827908819619970468901459787652143983069919654732008854801072851938770171083049459127614344121974507392680192206085541557358756160564374036562446005325218748012245865335359752053014653292094964859981112196385538082846010997590895412077866817069687430291090929051038286196086108135334563803102391547129939786325387536764991046360481593456921051294062450740020665051790938299758073251690065993029371185170896793830262811215083814649437137818359736438707770118687581451104071338690288539243030437336339735284904750307381793000971862681412906276777532507352742028097064169208604602100395727236105771434150386959208464972002832954601767820607911761083845741174985553606998343386977566632953749313064419165160719695518536368749534719717213492938408590767852184609375384192104915819629842248188079626090642929548372076037080485761916858812142910142905088009511902562580330319290510629900220100028758998207373491534067417770027337966399302055800928557777635469291724785001131015819512135539673628283198721880157805475470808514039679607126322680500330847871762616497702460802941067096159525417345375521008583565078477627832476279333130567037458114476510722075902096309400408380815356615296799294820602937738758596161309886115898645506048855979733052446424852520302627013182350748503199381667650331423584672558305897478466150850169896492663632811770901664357764348197007072337085258766124515903363440024463943854841038177548544406859425675905383173055156160901823708518318744493239366932664192657836317500724509128691235659766315997569871397889301888997324618744846471298233998156708077622496025608889072066520879686271449539244125035470099071059944311831291365897567495461012155842463017538008044555138619291090956608647257263110895401418586900607495541924402703773512549554285280138991106919538997066948456095389283988363999991143749859811940098537886019409658251610877470528628966523089681070945628572199895530680742546849167947265338024230906995462025041384202766517545415519493683275342582856382613034990333657346952632824994257058579125786429915887340820595997132581282857987571772157501041646040542205305714388525747546497644919655970664046511822929783972425970880291135212417411525995047143364507302327419202748869831522842893572152259534345059221635668443952483143003065398261446594150671601995476909140897715868958507431594716837197780659176122250207745708486841368789571115531477607396770649383818225510523953111235734088834758274561848736853468226612358652663560623952917218494735531857010451907579910881143827248785826321157669958167228186565103922730223380947687315122462339902483749118140578728309293612608370138012704214621077936174754971991104293125066837106268652482277464131536907283312997397622857397388891773521573581582868489611420647108064112939756211450345685194242290367178963911225585154869953442166717255641781601539001905223339598235038670577754282068036419187210758177801464949889250095112546492102974170697954124962934449218752677528118553861916581135236581930522201073355927303478787969983488503716775807905805088057884307573392518020366384366642631935795407786308315245852062953878646914625910323143229064690803284239168263031558405364273787910708966269790610311359726949132040271973645735793382606021989752662341290885506901337577748609099277195472236308284736399188138797811493219613678142072650803888816021488656057775090435388494886206994411437978462413998267851635897312388582430658377930368109743057034296552032961596458292070052804548805498931879253393213343886832643035241442987227839513262294527601130869661182852537299282276291068457477793940965473110209453623329776422357021319198333928491064047080649732410670366582089944150378060284069599609684239056921504193047039202260265616374234269141344762802408185069640756045097611974560419703290788031403360826674069215877512303679316733652327714749022005361055756378417413526890284923026067810512213814482257869385492615425173376076902115735010155806521426776195816855710726681812136042652087661732667513275765252541165143978688265272797286168003879037217802140009312261975871367782621904993074350422064877678408438853101613604601827111493918101322563290678120128453225943834414533621326888120553064734583266868332346665487682757781735513852341927798068715542836589222575815310862742201292670199880681758059318714329023642881957953719981358570553342050554485421222273018112033591463316867878179261311377068150151805849529318662169608438983074072675231072685153738485932038569754852372075695019823254728097842297332949450462406952379438924562823172891319244547147046374571480383135769028849568571677725281663748973343824316755765173846284500674154351518144569289026224722511039792253333753805441958713989401480543231395803098915741821061657590519660919943609809001910784737817533744762310542867138381870985337800760028926448691391083175845333974597001395749579812742849380061306533343079989315270313452303494013093356067053208180282827157110046235402669876682554733193507677203510011822355979888184576316916846367159662897739881694000995580924161292923899581051883096948685640051099547368175990103842774276834404615376046147424571988204640495625331023314427391268249558355514269393738137498267323591907584439250172148183282356507298145156718107774863734244973530715937010210491353512615117540568403008717031297240782965277059659526197476217232148592956272013695392827481819459321594429846370485343181567924147135843908247982178804460812183338752148028510337417675266546501919602168123277136981495998725360009571570652920938681817626928810987485794035859990506323227649835556019688236330809652125169673450540299993493530329372760494241176593878711006524151499028093613007359831335769999177318703752862242301878737292713071546135679053976521808059007407479401912988782113954973274053983293537396057428839920065777173106334513034382774366152685687223689451395655607175001716265737342957727038808622115366881376916969782890192743272529679734383620135831686707547052511784352033783349493320754119264081096979763924676294975681859477211494998498116520968667685915560917946268398853783200637361447263153350327845368237690813750231156057928331595982458898288054594643431152225722855312118870390327640588508975921403648711780459376146873096398509718592338775737888494693915971891056444694058078481563312736709720101088866850596158183888496985587066221681736721074808274056908569832641767951612625385772454821221483279451653033276219064235718726381272370568870300153789410456925233031498100308624028429128645782285417255115207532896258312512598636137985735645387317614489438338856365454682266316880918818283495164380208861775421967881107942467275274426686129967381038541865221784431975122144342623966141726427843568922693805664417011763741395894306968647920366748187431632810861798422617249114953253318172436081329310530413398248272560673353317356296231265424565129069277048285597490854217010868670513529381755314859215667970602548786591219331490094235536401575473998897973683727216895074930294524478752122892277920073011965255985750528191530161571522669921114024405931623026085699631595466531559973262743278554780253362997256637950715611481221527342220816627409122012809736328171679355170926770401231397885898637086206355752488241447549370307214746100432023941445652604006557419875927169027970233058835998660519755681367546007727986822459096103065287268405107918037613326597608179120440703397041746242490644837086085074950387901666218089608338896582429910510536265309987971166786892886561825401308860797877685657071237117600216456548873042124765336087485819642395612912253663769741454105646509557282380677718238810541746707536760695407430187054942850515962737991305160864719920099274383295218350493854074257166382734715024784799039360666279785168878684305080464304844667724960562449646309321648479379257956809134366712148719009903472574248955984903556082313734057087244084221036262926510477309799074751173185917601504473356992407892093814254278151684001026236728363490980769035828678459629248543704116138044748776847216007392550361308692040636361367132029761234324001401203279589564729106478873606056454786706243432914130869026699062119491563131646042148759222355223770385341492369419639861618649032182101695130424152531892230568189543637728847102664002563645043900852306239939727462051006244833326251093321513472303907260657696905240247984426194597057125451153610245431130023778187151190596329936760506168992047622599044947356058925255748601081883738785635373465010565405690069191482217102453673564792998839466385560021193610668269232226212263794592936171739467661116421708192289556084606530554749659180714510889300107570589678731749877689391128656015016450215158357145234088035279977379008690102433044605960033384347126369636941483369973235742866161946378893971158705709604680212817415684735223475043578393091019610355927721685009618251685411702243924619474394355220085624546660217281199304104861489926173542820596889100746116739197390281482874361224926141647674357691029510488761361963272475315258458602173514898211216449777868077955920036724364297121047032423776787251213734528256275094203653807713428146202872730015371416068052742625730504667043873985310664138692547494548615410923428607456765851939767767828364582550794614400854096102861240378541565937610520917031588669720108465328948482706076021454357136110084702217194689074821447110088855942337671368141297310376104121038189683198948938617541546559430138162150977147504626786195273108067130287187895485811625785047262712860944412746550155823411741512526867536253106906787270876526695948836549126160352203183571953798271488639591428528814946192675143863928660815195429323936177247416259430531263461111101655168563893941595204776590643546900640328292407089122118238413853779950924972512437188845343393834842960615544959936086086310508982807237955082158693784700554210167976801412427231293842217684924041325439259781193986948378363188082595695580176125417092228622266531255329262915106120763300921252848592290945073422190228757712042933528731400168596134546585307115944405458708250966792232861691507836204317892503996420507067000073650300848378224679313799763861904305151150840097517083138054561705284118848058574234441948156830985086778388846253138785773832857474067768621960148590326996124969156500265991795330220532346548416630586943048772430069288584045656652890511888661431601995892211269809015786542565340134036782760126190765914817115546584686782634196183503187198085674704383616966730596811372633752392410424542958642610728881866700061256092975000352934388997212562701003902958439548797872636191675447824512999227981875915362015449916308467375702925957719570183691378569347849356595962645883659972448749454470366251103485438956540110412892250992003752641195118358504324555301998087297764417142419866122703935666594238449722438295584091387927723004354153216902238598934876298446461376788675878463030110442701261109186484039886124311517964071744368124864500868567211999093077113977456731130481355004485592589532286878574111459732370580630554493715870587644080862042417873960283612251033552775648266350891678451105741768202424385750894621581696919615302780925191224529973877704297304978834636962903468818216924432121180455638126175129653318487093413137769063503912065503344702959635786603927842236642450427184339308693462564901530273246124830304088464739548839996127613156180643248780759679453460640411271566163820864144420993765979359859124930432617912721311203044056853105898774185360242150085102289320969662895265203059959502487366489923624370753843225409077117110807204518139701578364671169833878764943680600875340630434416074910857879102271272124261078969944926637222568387545043839284711891468618735800579596600953623991861651312173772797418321286260585354824859023413835503282784890708901008464607025819185352951151104906770769254444409147010654474800557219354040619974399999779462800802409892137341966198036876982320684411699722492138808720438109633343591333989178767019012871534366009584432034392967405550352800664059428170355313095051974373018649128553733095437009273135806860800999366960590780683501723260245735000403869539723500407628924693251603134007781585841907858497729056744813480828654477862726778620291087238720868451354533583961384277540419466799591647913243361903290862282009620928829382450558885075883539629165328869501686221547177047585202284339084014164813170945506881760868661496349609988454970937102818332333470644651511481389418090617887021500120303323372766496421791202134459831819789793761980938089189846796031738126311527398401557712988147452379627341208631192379829626653663434973874127493697751017240232763526536013820116029838634349984979473736187736447228103270326760842833720557766606208872211763296554334173177442735464860935306967854071099624527797782235680999842440406462313549669813612649541616325677937858255658690158791444092881297673341402074501332856806945002561423070359596050729144772356714206843078759259280635635931925849939645951072311194340249300672037690564647532971830836983206821086434377993840885103520194720960833046497803715478440266377973086477112822629293402489166495138531734948442064717396293042696624867029733830816305034006625199697677867356855961544178089258635603356786477140287684201975708547556463317245214604892232633166498453613409883765327807654319400206071432019132754750820044315995793943996708785210164723112176496184233130339928162186658756180123278529884048618417414129507820816459920337550948735188779753643385974591616251081761506230941168537132238592277676029812064390738454144852879845249475037286173698804169007308200810068295899440406590834141320498465752211994628254950888493437155329173793080292255182565585115254667269093693842825793494296768973102461644621293293685435997566348561884864979226226780628137985771905384951555768555656132983473360048823240130925096176773209225080938409929591187923770824244213485696172172612169193900365139324989939147724381780636535942074786076190752195548965609090155025973766766020843983311334226107193492040681490068556675076843497849247338832693356921550359059773649314317606415856043671398473194690249263535981477695999760424818355062220745144085872749217792316989087606013055969170299112799208882972641493503324418924976770621599929867294199664179824879865280643568665453261677908357680424756988871658556188902040117004406361979571971776286167315572382939181005391325006359654870023173416213229643167529459962958629339008667304007378586563813874992667753128556946562864287242144482921982516116844569367917934480613541517658512595444969104261781410001435168676005429987594112982137363888758562536363750456295438419448261624513516562468425046919518930277416424675430245102438111488286237122156198342368036688577662111842268343735990819769648789482793977580129583680860978370257156705924040985361800845605681964153637806206312703255375358611328701354231819045212284644168240617165282834876938533448259607418589562609217971318687176474264482743964857673577849318918638272226281216780474952042194543605526792031678914292977204463015602642049859694857419043358275059656120134691096123850048895314374056027781981534754715291733183179688483773039793153729843087743239168751509453511280372043799287280110301899201450570073352862226417327423021898999375194768703585533079216244800869053237245532734674313169491597499276336059504465655567504359349708070112299224879611273477158677456834113861368351547811490568891027147681739303761110549799934357290510536158398390735140621051697375111391890896891118719776842223346480964315823375774770352592522091274297778549151509710776648152296957563683015050062192066801879136488127148024759193350093488463865130073494468765650406417306826866433377574454621824522580518228091429108360377015639493040256520182302015113669526314320551849781499800430367376422602999529089590041642211633057018013352845351176686896248670825052374849144814404891139628923413020431990907986906108346185355659325123611545753942599020802039155626053148389212984160508186654914718148434485962030130982540807255244703060668710650540308754481915555033843555424319293703067030391470404685647244212020805245413136924466795348559613205457623180249598496788522930529036971437245047167013040886217418480462376951633099051043316362883988350291335243010530682016498748476313437660819817787414325901133246725714699412374734847642471495242587935647541833749409893609710485411649603200740706963077280499751560735214397156554964696976542934796138518564318596696931977876756493254523671238883294648034307575363853043680367317488946449177548955184036197997426281867302654842832725776863854254505684601136934763655226856943541821000718996461748960175490579262743424133082543231063447719708912430313047523097056071621236283415689932281258062798947585725572982517914147412136608443048961918178058744211095926090314627554309225767397723467735942731905189989079773928130118431840163481149580911400821608277637109499552724624285220614778366827401780693865041084938551870797600972159881369817685646686074824828867915281327470877133931049745536245855726060172541349705772381568352957184134080247415852544732622514018896581525918840731730075547853065882007249461068497972526362192325779489320431249655440310916001909807665232472426877898981380390449571612867963635337683465057138418885652737350296782795619533672403817200123609148367468692272448963586787641680320062678922192239873253887272141213051323640727266402451417114312993981124868056502354301099027157577115732207704140021568300061662348747949658919919423988946396670114697078960103956623006418630518909259115203303708477306646684869729269317297033244070288649843632361887848568644728501482919688301218036164289372128565594832559467283232781101382745133832795174503533180182236011478302626266890323808583390608907449163397073947530232025487547796009653058852685153617816701652451292358636816939836000519032388569917368988054284445965624657410460660461565311086364819282243048495333363084356861007742578983471454832327910560783188347461091666035910075761771194085989242843357454900786856899066449907032642859428603793785593538717739636285232941004163606231495029044588099317640327770334879307301618707851183719257780262495720472365985021903085561326975757795603755573077869896785099496194566343516948522214100465135500714124762268323221178321571228703299597903513039831608199855806003381056823728685143815557315707540588011260750220516236487493106919616627167347240481167626564748788149769864513734666572462794930718847153536665993693659464103705028168218585500798479438700916181559014715228951219224102615030240472417952868066670901938198953478099204492035971419106200184957241350927891412068568114117520552615506506918809084680606136169491957747377102778629667410931031595497637087091329584029198446522876848316331370847982582659867259881972070042820561535268499518170962281467954175373417746518437235866818744073616639619287297825012486178221929783561360860064317799998025551145597583298654527373305889324188838145310974971289498953911558291020387973484388885196636075979034752634301374165861008046240481716050870878192551797493183611995369711341496024600773767257603992423521186239130813895541807266033724219411798793129960819694397866582005911643591980525965775271334136878426323164341530098209644008174316103390352317847737093909477695787625971245133877719894866420290565318680485662342134114261882701665983687415097327491741592681000243661142482846207746880169742260914416614353367177729905127931827005181757192283616145684859571172100471269234763495774494998985627585381931305745153219043361153891327703623419282885792852903547748148404071890554194615396450061951875756390858945309744527362196261207150545913910560708526740396274450789407591594657361401585162058934639119990722348233661154549015389940604448043468554306034537548672792168728125881957031541112565247261339872542998921803069595550584143763894968061978937610396861424913163598466254046844979396208368380601468213083632502270031457171205328076618913842343866794599297317158670359929102661047843931999696889005181095440213271877980239491369773216732418643910381117399770132681836234000540279954221336792151176281187937583493760284085497149414331788137247995712471247632949081557333607598619219193505794683371900365272668101757563393235550042917178883531154653720891227137632019082836218028711340234217544728689513737891764137374543096686392336204573620589313391975128552092557658224665600341431871444329541933854948306202468219689854214241292845965837427813391173267603863061168515340546577984996912201219829607070632057466876125476218887156062191558975788737401068754956486494890656756215618207609852415536616762369861773593677862930507156096749129071902048404230817505921243540777202422193871004085795051732633025348258518908149780555739335423178894550525702201313406829786149397330654512239210453752039262149106639824566958448690016398307863220855680844178281438030992845067027242747331964987581699302283639370938413738855554935662476525819000092932714626373908063228740672735786829474266281949404507872405187499700419194205742998534072560887029699002497944934134895661077689687768740950028907342077652126590848218254440829477862456501064267841358318225027564426198147898785676082299338209932101409140238734804313115845688543489942354742565911739187571524542959727928747656498159356551396007578782528047050263722639304890327825701414930243622956806724726076932345821608218489470880708789052253073897305789285471334400133501334933622298243843432143856378390275135328542632693446848783539966883204519127227986604617079602155459565209496705951690154242428635719605429558863155461365231333273614213549318032718683876138816522758057667344833647116493468405551905833409097857804308326368063946818846090787986294029015581911070872792736093725880281232710249648851416424067121746073195480676988671777794666861620724449142336210976613204221908236911941376467204278265881873633282981965522465838171726604976618698586393193860976859608495278982849407894965115197468367903474078758498136227447277152647217127727845193081646008992816166316597584721845632438990622077306396746312421041865933178709457980126973617117523374010260413415044449654077594848858053877896467547473850089850797439904146098919068289828244071530226419267999746518124931744576453080689405902693021217191774989223214588647671363687163333658369681801403924281205382182828740354868020484477558444831326783960883843192950610703138971864108311646462426231595568033531689363986862728005120943027008752374977758460343350635137799685885358068745446634477281324887651505443333306920210997482664917554052405515437082264011821525189399329256291354729255466656966752877597787584654921242237046897856360975624352203602926257608964967236112008422555498165132226032751516939386053875588135217746192331723173944371308699705875507660363449416396756537092213613578246682804509800643358104714590420602046665335532137145347370320620493898720081702538531656182796194420122560024235403593837234230069860453304492462806163897402143386341654363897390424478581781623517095028402624494095765413829302089154252358824775857562405693343176473257154400993464644032053622786852215721325282854083497381240483195269777451169811101667798409203312526090135165724706354599049104165895170329269019606312382760366360669820339163617491197633687027124377243291573999219707642315672107064709425021489383334071985565829966495288147704800769354762325632974647507211393446938747523879162909290963294707895877132065576062498139317345985068901087103778965386471706259758334645206830147346137401713841824942809449378660813505410908872860831089366326908970815414763863517932446843414724418851945221524340815438355376693598148261382755095684508027826716888567577473374350310016242187734608573051608073349182992180208282804656375998510008773456618067490178457752674270675643077984192525061108655769119526757411829424111103942847298589889513082773634525875064560325653284471993511379969563836996400422573800806373765710211078266864975462834359237148464928532695290696382748031116609014168090320120576307845630291870174251128445572879005831685204427343041676536967803519243897134382240474064986125509022918757129259545158221949776925805352150539828673664323638656911351120167077258796279012579964533103068601012253540499330097485880174471917847591084879902371825733867195646446160009616593615006805946146257260714507716084703658578504823388977908371172670002275708997570902820786760568082485020548920079724167657780308139334655912210487830159142296960089048220819501687681223548412899446077782824076301256732827527932995642755517362738903052273533205343790558377797920286227046924043063750315136897399273336248952115396698297970999287084653742391930290872918534164383270364293021562592713440300368415891003569164684769095212333024562476796349294676942006387921995454535075475356570158038007652164022557181809964097857034480294246537010035410278848508174437203782517191688741184161620686880044620842767441217183057006959120911683952851695016619707064485279698007086659269137604583479554853961486228893210329042098921158739100904961777201646908546035450667291714686766787248934407044669378169724003858084007435077705961727285720856799485246337900990951662779802619689983867956423642703106842840688933960990529533651709246076493468068073982643222998359227454340348507598292368517774091957018265229219248913188776545442836977356103103233949615011798382481787669097324158211504487699071183321763283418334085045612364898854551313049203138957227405684733926255670449915529799504483717923012072963813938777267584085173823704228001742671360988569579163302028791177626469541077158192872062594079649608797728185677232038217481864972272372229864690036785510805522224454894083392387121748655092552609763047475102686676069210463715007240497510438853152760283237750990604996697256014102177736522257191978750564120733885669278668114623342772412883436315096206203729754341729646608988917418782757401985653950452888213595783376153762251080709162669029422161932095346044482850566028779496686709202847616723030685367617402473169274255019254720216838820724432707403442955877912268506216772886224012686210332773465589980739618016781165353645369959188910592948112329023731236195594596433190244335259342838481804841406247776485584595992107360339020217619641441703584223169838213369721351722709032815312750226747539985571690639426926714909527735865701460890033248539269454702027190784839048081617863631845198642029494961110046471302690165168975260167696069785371239255866943398229422560322114781207917104475798272110752699661443866744822932494098878380137339245405176314057740318038828792434754611730280674574561861935526588716355517221880479940937656708063720162693598701804598153235463101132763092425648144877202082592374378859028959747822599813373137939902972956364991812310756234940957584890523172990492485621777221335934542025177822883272341635992974999416171448308562299183812548392976155115212897163918209209956599622194097584901287188222901389306790968039933120832348824975842190366659470370410695592068249545559703765596938538467308347193969564998718611295143226742092658372012237146174672592940510568597161188746716179671253021525148048722633526944722049974996607686287940184574744274703125333471613277315299772251633368844713185899758840443805559961666434968906594044537372402782942667002634942054174708370046775524720916855757564484766605293014872732581424106837660526704118107159551802903639652957350009962325687203614638830770404820158912439220305027867356731317816523338581086621827803956901224968997503990747792277933119928958735798886662633587218131562911638139906147966058223820249922094746374918639033470857954924543682627356772874234113157300843455619590273494012420936857651115247421234301932911319911124462298807557681043700230481015443108635402122019568274053550999745720386956269162440375105396054388266955004238562961443785191489339298201972287126011864762274801428881833738376320595624535996018410687042475623361954455310083129433593181099431095576179282332616943362614175271488392877768162479877128988626888463593201249418946755619740485609733918347639255178176104427335420624811992981093144367698981070538880683118462937999929289961599986922838858027016189600762018026817100931434562343545329706967622019946368446486979190870226305107353950828880825341070593088976113487256754591539252190095936359586888263740148662250300680542424054643828873472249935278224061818748221493260089093968523737377363391862116480437901191098666374722314242358572534495379488146879581767982046132624950567890380679447303132566860475942714309598826492391634859236174617903044045393112818666980868656285483125968187686730736682382372197625921432996886285442271315470530628259600528913833787581402307410626733364888111968959889095026408162387964449946246129940432893237227888655374669191611620946670709980956243372988255806460889120310837674449587368527115010781896026177890944870927205524837549495850196014848517534021594915390104411842655013273096455548105097647037869910799918731087297678480413344073960883363233347613509823014548995160062502660587732556118055493190823700186315790843241410868515170904005072346466784994719613535014261137273870039539240665870464321200804195591076911785595416123179286568809918137932547993241487359413908350482446973638458496006130879693342868246455918070228029694927815974031675885594964958273752398872238964291625625336005029300864023927612964476388545128479121564877274558071113624883534180912634951709776102972824698521461811678304201145175467237039125612548961578574042564330998084251434887863428367148298530984102883370394434112753500061732313078696564460517264286039581976204569213717904014584934244813472675056926497808768362584317212184370691772740086023277791740253708738007634767004758279536553636722936837406665787635474474702169908346743907446356501995952718625705317026756601918587172970628466112445733772427470498533758188993352765680241933131043154003084125987938964726791710759528042178825739483889483684765057699603821922313677155000586940468256470772679102535146125168637928717885740196321130439336353116245469499223343521479241062482793113538625374950260931880814993318959627119800097591503316058455200442168684889833946519182854773661556824337596323097230797306089484918125837748623947487448517342713381653504719970566408087904490009847234843044016747529450566534893875388876321134646443303707982704510265297054535543774659154669689170000341580688214981682550260575904078726304039917012837976082499422246121344694498319888901342053131234380431921131781292547453680569069465650651830411551850264270774574283348476390235311580520792115634531311043203002239587488245071812510921413395864764150813951982011141406554371785873610667908432981599630416213796485123440468862860842145821537322425422429824925191428536204476289989893169914708251498695613083484628158104948923857558645861464921260452222748873823103779871215985082080967274250933477980944121799320245222989597396720845722163102318504332311014655965566657606761793583542661226379727086101718067281624462654076252643752995044100864213401560573978266937393608194778836709816785631879415360601000561154127108686131984234543607295077228913397294121172974950786989266085810096779477691774395582042056242175744139479328971570465009383298364567017922523107836645366517953937700548258272298569556361633373463030912675777329963401784722579323072757096862047944560913214931417917546204928786659139993850646335055591460063588837297156823520492864827421698476149425909047898327302432597391355389977576480431551965026677324154125158740602644723045268881294109116725866411125503287657215675205411477062502553517948826753116284167879670095190317801863323358009423308942049475312090233981908620248566781285993032538284548743755588650463432833829650395972208471177012826105154720284684168069957405180892224460806387881729452515678979122847868004370750652289668084343823966966275252582446302209428008920967972332535113406699557872048427021255439416485859647474750227726780915675844166451584723603724992151402785061334575736171229618232066714050156048150979348920537976993149866096238126428561222380539723067155677564788853046095950352678696651396753627358291718379041641123809933824598796289698971248569223109063037747979635419248695000455520948804253517771996629702950795754155197211443317257509492058786488121239965959467380571505827172010784059341909206026653261972125019655310330380742712044772724838928732992639080761942473326559361826589219765726004028519980072632976073859472390340785729585619765845685707330769116174063075311037309212090402320352635636415853416067310390944742198079875540914711320612499650747887485767839768768612512997804041218958251592497364935054337143121679937320081366761215934136834794112179379662369535121119607087940754869314735161386859851678095488157580965749981528539204465630541748650129049718344497237677911219111386209076408035597914040906428283624338431951208803419242247806191298454152709612985623963326028010559187326026823491099201602925938480482078420116975811557590711537241770345373500561473060465074964264396178342060278989798313333894894101096252984320261181289208729688179459466934674711694081461496636963563553229982748592628939965864008548173111506911287291530311430494774566206452373714745212159609893728148280641572899626668367458185841972634152329235179491475018922380864576631198536730546718228014391590331758305150336690755520571606608108450984205496124298762650572663401774266765585509323025343052796613419815556336919486213078213341485467415513940965892700403334004564351390598855729855589843347080224564349906451223597294711769066279922798470057154396902733987756664522443950770337150091947194252650486246724009307974013064933647703905225565080034251074101986768459359948268932180415501632048253792228535289285003674040143161854821556749578397641089275292293646378970653870643200779458606797899438632021138672893092243985469018710430296460919801442971940521932229330792341179579017006158596598457895008435436983305937471128737925426471717317422012196582527849927238620928766139288983598820901357329848014435461628431025866999401830157131654695307617438383059936042123310648735802918769890029749593394015551796283323367323689201779325491567413592047064532757962948864268376622743309207863989720638578379208283776021977250650916484925817381521576132183720422946611794579711353128294149757949973093794072850552553851244027852361504683910471046338812108984870733572673759094059854483274041325354365153065548259706555056842783340355723677271865498739213269759655394218144064589946752230008658676425687822734261965882491970000545707803367259594565257856871745152626587749999338229633152023028548874561631661312898980127720056941213556638405879162824239298407713557218970846856261058942636020677806098960886094468063421657280621813000280027037328280680470351995979535689632180225922956494444480572543880748559144424108911235720801669789949337396408724145742099529806170222548532362219978928679953702388971041676602873580004387946300128539665199684178670024458854356795086760852730724581232976548875029037473159844802297565096628785090992880188627484564466464110281514376508604053708396355764658879689028637740810471207995276473972049638736016113567712383182022514865768036457287017526163093755079528014591167822020780506925000344363950440376859344454997624290440496121094520973496235360579315177323481744125959212458489211601027155770849773403664187411655959512950717448071810283138558375198350223397240999698988968661739462622495031993212705406392466107305883124573623573416095985810886077558654864831232356081925477634205082913906342885644793138413370988837921312740148548790937668222892555501014701135082783124103079370925339250418969794976142323445860281366974248533423317314531091871205027397900176653889454056640810002065348405608082298378995123553816995521941372618824519542733626715279427681002274114521822770273171596916278790069829677530615331215221408235365573454121545227890495422107200075211401040514194204779614627742000072371218424204396092271362495183800109441157312497688153427323733566728655911511358961975730673033076335756465718382186688391694553504924824680852437779276853514024404633286598950231175418614849858077685243849498326415501679693457584196359091331327973889659489521952705304922132603108280277446621765824756456154759910338978321457304192145467803236958713279137804518451285468404503089647804190889898149923800081938325374478470677426082359950090384910566991719482620975300599421601560771574880850155557925562417639422508461052052690478246668873638964861308540829484607318444140859740145998953421271934838561732506470834195389490222603271300866105783106786226410555397879432712641797527973872602057965830667404147621971388136347404905797460362713203772057678761690283790335709808694918073013038271816024799788816377412652703571131818570525896227891927678391950713861382701213632233242921231998390736829736303958059573083370504524354201112701324693907914673191286203872581151782162741436780569657724256432271145388466935883976093722370938988411076095946234451822955771128821147259910181868386403155876782824159204373896843595914045924306942962474070347922288621168513064240371384936991411474625420587915604123574696869026997711778770507997468231211602415045332983183462888051706716617627051066381314535421837838585787341823396259245005757231414453460622141753049831484578486542924562551974716598314089283665483067775227324976070989751204024693366516483536490600325718592912138525195879862509208801320610647162155253148618532138023420526445845316293580201481722977178427989380293659078857837356061015525461719375251381369145199026414965189278716544145394143362629666151988596435714611153341357203473559069115381108966593893449548256154939805786434432589583037032924829058330085318669044542951081676230543842176645804454174981248238242545488424589590911748184745897886270004106941809510932108588023100509697368924427291539746781692251486169709064352344733963570522027459393271450718413178633653193039818911136430991606908645005408109009441574948557773724962046200108150656716614733636141276984024003082801305786960723280120802691062588557450117065701570810853447618574151282122454548871308986151092258151982929603832693882491214421847473537456913437513180738121017135898440199999366297973182860039628344618346595945956925016049392947223295204809628656910984011083006410591666638896603367467624222464579202424939796115515488932170467730672132499252655761372482127969487887260150479925841157230173036068463956146199885685340430551218368592050537691244528643870706817283612049641935661510633289602409270904482398766664350770058550545874147683540876891963672807372015432768432328399021057288657221409038293727178976312245524697356102391405276098323148419756066116352154294541957257285197404672855839483494411064890881818858685479484514888168656260126732462338068088558900406774915359897288107049325280683608280893365250421929685742049752888687608303050896411645484838489378648838743628962528651740694068564791768140845481625406940178023454177630576057598932478001054542253799741831483113836799056388948656615443671823406359592554561402845627651403007151734367766628239458545851125707721794288312659790698086894013055010729562488165311257846934104272825300275179736415570052812032160945479342412624980237082008864156338698462864643087729868694845039132106706825406013435815420851412800912193431512869227891205882771721573807737761639479299827588253995903303133773789486392807586018153145836091009990087773496911266668100752496633213190965146174452959051064966640156381544274250425493991894835870822852501958305877375307098850822057951626800785960920553649346103280139708788219945028571687716965922540903758650932409349406279880441203674016301702576219048770813316292704647304246212884933680200580496138659257885467227628454201262939326297284177785256987356691336347106061319273440137827725465756106760674862211921818631087480889643152859208727612995197587202588156320752874176179186530734350397873139244872644649282093104356896896222757049911869096583798097440086420184729693821262222791591613739591301881316171336776296203185420022681997807944566124776062292845775048444639989636804621399495412809570507718901425805595819875982318909091639753645695381279562127826228106264008751650584427307969930458431533649563627245366468359416573119745280664835603064863826635392998533414729473861924606207570978222355404945843952781165967423649471011033308978191897030765274984988647512392814022086001187854604641201491393597333734608987965292468557908549739525112224238260017907679623953744395469020693145304563300926062672520460111474239850794013756895258724421067700397871475181658588824293764373814668720169600616131339588134421891417414325565645037649483700169359439389559157765611554858261245979307354981745883315673403671291019934919807714232136633984013366287017177709609258205893974788417625539691382612948243472358919892001215654480039662021426337367597699391771223291960643288715808016609137446724729521581969197555081282214021472081721222539194839328696533415707666078547227370895855513964937863515933115792774663756219388355568756637165223636960443134245964270188465600376597480004368473213174545055994754061624377958055373493205033357392408771318494077068319440410738082993765311810340569779877593855366173055597165805067775431340349773064993221588113040654864296063238459046091419482823071006348559505809895352965274673619794851268769308025850548122518502231198804121241255440356954035110380270258057233096174871233828436539284686690852160100655512214863340553643689929137764579034017162136136777616463711482601061367751507332373114999772084748523283323228476402190821062823241403672371454555314175188360498702010848980055200334914843707159467559891573841171483194603795957568724283799949084219703530085307409760195465532812221797411419217885544886004355982632996458235776679707666402446161824267200574618144998085127670922277329717689817307237242782284771406628870069556368184725885802887067376603806489931350926041137263675251648786840743016830471203276601348154673679467950774791475915321924374822206539370114210713915299589267801186496497666644842695535296884783469273287041773283871101867407374097429946979011871368827878258250206288714973328929117764897637751497142741037572021690385469674846363374244443398167639802319277805266540835378572009513279033758862457274302276390746671532488224128232000672370469976440251325707666784575849057433752923967695522286124571660607871310510376365656384902323349136013195303414918379571561797805295025385275686347519809970235885726290481284483758076171734506714027651746426171612242071044320034373812473703777818996465997043421288254164315920794076491923957072539739854537919004289509288418716881655157665162713171507944637563743746561530152457359309739040552517907504473158896080572819306922919500631076470094255905143321602995950881606887573865841955717665396140518239377778916426061062774657922223843614426304399054512355300250116321022129025805920603630790863615887487401926314464421893729945566408459330651651708810835477446657470477465342770722107725906804408407657209825455440856158597940121946191243846154295312692347554445360183344254794738752270170252267160513601821849835383837837306547311497857444162496865731190830136856702871315141566082019120309649336670364241536755230134724788523860808585639141771734713116014100198311489895574127952553995634610118616499070238874672623091568060849447321461571968487351775367105203419700961722024700978988293566670836381029812997050941141010344641880329569609801433477837070629241207072474958776585887551094811756290227481380636192779790805114156141413766414561732207176670929563468382524775320153606415799001188086543565924548769042334861891366135640635409004843687908921170344392220558507236123458611545569239366302118251911807696696066255849497611668772121077340995526456436952276053077587583142244554041496904406611150416337623522424083859859933285529161297730660827502302359687249978555660887988951126869378356512889784388829562833139945647183188872743277555771514467628816466454762610849200196649392770115964476977111120871198389687214306581365629631973822662541436812034893110843607557590547852299463299008128219882239597082211513456679468716434069877422103829529096705961883639720444735596185421242382998083071792885600198881983372700558667360230024194382609112458719933511979336735537068153624676556847207634499152120645602662519132927095465279971550493267180790207553358369882356518877940863284608833104406324022499844654310060196101113994525812748391808729763576365714454584366901687213070669458251422969202308582252416380248922388919572214224420158177132055992222809281953796763339697720670736863729207041287159139995899775200710475519528379356718949235960201350689068495755470364906186221352503556585471415304338724706576397157912014825241043957736554124566401939018619184621314320766122980677411256329990893896816768943004825999453955857170579605036782008846443451437555025434681108905136286185652907252309031596254496861352493267886230008429645718966504538982032706768425006303698043249775521952054205060201494314567927446959613188739600186606730523169644212764536661537909734922815122965183374339226579135862865072746642476789249739766074604690032456387516936976339652076205699827367060897809224221391331238732428315307241343979094269902368833835800295780253912060569506104369755142561707785967313566882765300561927578779204690623260094468777056683051699060354259082379135872333424322437294202064543559999144839297100189022420683911305489547028014026127675749967112019042981673180166210436026887262036005863150923170352795996149942152011882234160344587887322417634674850764646192572608387526205727451609903171784099087362579537430727545502012607227856230524053275204628414632314412804207179559256781842593335866238377020675862131361147601833989831431190337759937103084502348886246808274798491648034826488820823731683770571862126711775074192284051033011888789051033959408122607346494342977617275500179691064565887572503440284401117763817234994906236335786323652094999206667999031857298947383871772007113985983726772040382915173539207318965586471240134216075453738638142970851241379957810467337793846203025239501158769452738348531625695785502734839882456162675475873751880784474680346029485322776581078661802616694812824161741065125207332623303144112308003618284904518797740181941806282544917397935730211082178015864324955631072488686697676374819534366097811595533208432384318167888701655776226905204145589213060277307294200570148131930484017096830526702574170388876665488783851825673876062724706143599404425121212612423485470863981095322492351322227375701122160146778724866490827201471184370946267183022200082245380007962704940443906056431961814036688629278694872192004977029241209075745663354131557919462602761864738912925800243101741122677044152657205331221046812620907459340810918903018703348988999096279156166602588615050629084061104845647276184708570263143240462390124434920313980359148078623631373352197326255661905728990346557917547143787617542264131187763194602263175801256429555272904330165611536098805210460868989583739680512714344807040226928831865483820901504468010114834581791465424475853654979913141019521931814148264504698163526621050658923549785261401316743445056230232236215452924911464440537348117266155997998023628880139617965672580682767732622126935385706116391027077686363997553625633228128174136875211622911787560990715218650857921640961481541989754899756224272639233182504191881716069922900976301091424162241978592738951036845064316113794377158412585595855951554358307793209379403021679934225938210788505589202614250344319744971409605072777076076498596585021646667255374959154393079975657737800520531025043082880307204022645780501246180699535388163605165219285257346524909161370333349495375543864849696728495107204427294667852175772086254754146418375586738255146040430140851704269583262148944952012406843655440393447552066142172164636013883789513317706727295394494992675702834437718187615551032082773981969297280621067537484465225226319805636709076822861031975573406407186596029211425935243747749385118537020646340254585095337795993366437195013628015783112781399276857285767697720837039527420006489361528661403934729025010356885371613418554766936001451835495423675045022650621413403330063147460017659238762091544074457118271591300044075734716689926069652367952405561624666245797261075033103417366557071704645647909535155009601964389253882218961048899246871000673712148965599102596685772583483445814153726578251075479705990535243876557325529745078031403549374464791483775517605950702469713687214511809604340100373650707443855544518501342752916315616122667741097919136218293582085129528153658106610383082738734075318407664370895115145366405641054199475530016695701741843525129432460174674034692829133501375218572744670699022343250125960689111873672400309872040206509497161507393795944426009178057113046178488427060918700301356336766289758121954964206033820137256402624623195088537580203255629216504917816850385229722304692651829695490933842278706503023345660076915974025391366901223473766158699717786320284430206932502766937723899144154637423415542978262294875965084848073749316098948998274437057603528148758051065252817522860356871137344539106126171573229944331460267836146482612911506094730408171503975322400203394604746579599822172029938696659359312928249464479644364631581779779727919581594254385349256814808109403586133079297683118793929347253160626905976048867752536931454078904029291725476064894671944906653554083783945640680779192016340625654646720086882864124898957545930694827155493818390273522098174897215226887425403764677626750277709497629834202405412387253772346172924133035174519913044193453450010309409253636895581413010834965490352036922204847225170265468459324172729745986235262722738234509797240192701726606811450544059408048639123466656896431104385687150194878286371990070774920821316712312994463898082207512681890733977451473473524731434871144873419646827003559913402265885249200913305424113704285896788309482880642494470572618211689034685933819727403552175302469752165701633472696329474391451263974601826683917383817076657580623744479315188076900143457757086181654784250712095324292987247200673648369411869612333041073755990583896144636938399395500696293320857054477843015211890428017347041318468268685444260804729014859218043171254978501412387042775679871660671429696625570952873754079591765139228412022674844063377960992365195703202774084397314093596044025111879485465020009929059297489536982331213616573884102359680369902810689951138930638221870638667582081330799285427184742483965408242006718980259751180987361413707768098971745498919478089725478394761225504817351996501889468576505090820180094267145353484329237616674124002779183795294890031485857822930506971558085923312531161479708966030913777294029257810919331247565628662308148150627880734301855077550362093789991987124171561251240049469779887207491299618037111182373056462395648773647956110140947102717721676370553485198817379996608303259203375515882968025067218891810307716806377834092240873562230730321789026407445267547292832337667629188905655156633763816555761341100383389604872423861393701185734022664607994982930363295618159037561928813828641334015822015750872635006358805353168887778885397221790748221981208077415059082496596558026338134358440578451009395158704470730305809976125739297523388801370168853074533735812106527812319473282685757582798784215365520042297905914329364624587079945823312526271223435880084943879459915419743927275804999620718419679105110462677155376320147981786238983362751216882500454103007228417121194881533706822601116973354060449001765785923679228470966872867464792534772820808985359174426914813955718358912421222750400301986491713293966256428403579233762009664731351711406807295506495300579280451354774086568269945734062685688034296002672853130368214438618319776974332761984580634541356426383770586622665052381102852306002666827114047463794193964608339474304149613530954926446148086407956188876211733795288956675959307355784772757700792602667806198108568278352212339773768577373025036167437517638502011622301966728603288906515147514983593984496143202112500313338470035937210731242070200721861376159353113563182593400120864439296879163649613714799284824646173718333857765982400224404492842616298715834509316200642459927641919199349769547108808984254818743652777205836606462809613655189077164373959823041347800434009371003841448880036371897304505579433712089881941762255490235519079497923857109513242061934894857423790548811069362047595347257587652194260592655727246810471166806366328126455388954802667116097355661999079793498420911449392048236964892954486976953992720388689612378439719711297869457939977924200166135344733147193321201501100803863516213913413844706947604379925691645404348210942463184378580269848197953844202110810777640796896005291471773751724329931208997694292293293701592659564035931409653886868337202429040785503644165937197696125723052105986164826278059043691517262539600030425662424400281130899983586673949448485209573556766539729665357197095195659532022184681748881918049028541703629255609224165759305090323647294919691947434604640083695387473943185864640707160364197480660568394883730753416451528293052539132321851763027289536020269062967127414139037304615369003320785585383184906466473043855183748659290806499839136649554208272279832600481567239359818733450742158370722426693141108673837950097468400193283855629508325279387107298423050106978979233745028562043668171307220042951875415289230003968955904447535375314129177137971332684440355079688054429223766492532826373146793324360643933695685583405801201971955638493205610540805522017047149895231835990858904931215552164399317692103796898758139581431745082193722453486459469218260634914458409624884973195066563513962457362013167314466753948828300076754607431710792844723794501770787858154951782351686871745411087087135739371882655374422616630439804682718811833341243536796886330632166074721834315808506903248629138085020626188173197519877423076929280610661300426105978002637817463870552625526289845440574200290234931636972026499809461503105107524849000072624644122954233859867714260892550782171551458448182373207431028265809139260278782894485766210368551412945729596961890630754414005228468795939229902321288572514144480118248883257925773883888147204765436896852072454007383974024591994953701022432568233764903622231020437454726431498047440404874475240491135053650283880644363861257825379142138109868115088060490150644363989406144828134843335776426099447937390208403610662368389451232182317589657540779983740758398563872914684562070580509801391307176190597863729196408771896832850856660517142415988052558734634350328492742176811742691754434599087738646626454608840099681389036642083715482743675424969024371037956576732619780863850783465078527664047473120004436761831685672386031335130177193399491290731673767652261445398443615796391655898807410110226433156873547332260557232376769393781525558775840400081479496945441684780510096097143049253102040123492456948180587033421580473308602866341591772839784002704945020214403784037415635318042067579572734384721370230338641347197943268997059768801186575085138819946044024486727051307094212376080077669247758502985071743424663867446649789134816074030021335217935825540941158096925962494722943326403992646926209769099164715531193305637689539258584049869397667297860615978716634836078783145533843119571344384661592452819645222144358287853351752727188043115872605968014145189803447505500785988341885959795583382578249248750774229515111568494574668789081016382038742505082961463460527862242335567223900381126628298976314971685820262542576597741926229490905485459345354205815685745270443812296776099661289067627963184995878464555900777065834455821206521478455379865366282007858158027301112178162788393851882534350943098121033991634070165500887022915266720373259936802410777019165176955019824761534044358897027269426192467958387868159299132008800433441227750426056229683154913835117119982203670814119495886325838827024792514523274941282625333453680211474103319171631761299471817100679917982351533485945705498602407525664721901050816234131036216499660191412714471039532793213382740723231966216935518989407941548431463572050976493444113618561007187937264172769629947931454159544732105747437591013059589841647809066003464695096716518186888551460788653344815027866800949143075041413321258288649973326933501568587928154076220504303539677323632636011169169662906002147142530961524633172674210329038252468517465270897612160774359655609515194254822894876173314498236469088895758708810958111828024139423273851454944009423514159970786106925534985460592532614823839274511392114684626449623991658561411840514684782303026618097057186449073310611025147702287235666458378247147005171524510995503463701177797122321751964430446498911745112947241484658798155372750498401185775133314738445234301490016787711727486638085166835057171231296528364203518343645316316886886443386201400506736919217337546830679632872283296174552778479489292731010936418974355732771023994024063265914644619069279251009790967876134208937191859756982822280277831484556563670311727149969565132574889354783457659514252926327462429705823319403668898911893682487333891123743767523374587885312663233845873503683901221781833180526409966716760815055845054410422797757851827395083439940640807789589999609640928194414054668263753619009027727454752704827371847651940870920167775134673620641640490218493697119770785203612670523071176365719234652039166807642788307129111327274755563850051616359418505934299152620472840812902255426628294226486234010277024640449414561227740263168551329419761284929544531231278646078204393985100287886762479702853767376541690915543017346343476656796210485203012837938055539351114171552887232425935872424755417664103321673965888747969735825071450436852100991543830795546991260517570959495937414038726730527050175347632195469342660288679598196983863953369399311839955576754067307793794340838003343418364288085880182369406431916401667630217778788623118969250296873584213166697810432477681651941853180418726019462839316418243407733315609267311146945500488582302543476122207459728431243737567481183738377415570363763609305413374182690627865024605415244347194909668121323658294806673049886165754024774482495855318454821843291569119239709792358804274811390033962368133289029684351653199027257213166538590819372928598087231908968782176648746861850231168266504623892707184724646145219660393165759055493377938678075884985295344393049205892092062445641657483357560997482330750014457449964802876032734286912579595214926394826571025080268230538381468973441439137213714734976515236906287766633558455985482053770506363694030420348878809398016383155528418997518367081016031025061593701251610394963219559777097428875353570338434760088822293793500975960607833320624202443732252857847436300014316978688069685139030330992851904038167654556466153321046835992235070544368569345700435452668956582241026179145839088610878009493527215486921597700247845002643123576378962380785683372054774691606590295243102776140793197919677448007243975015394232778109782855836900819518003984299164543203351404715140501079856794891251082770874338753209439059100628566896457222318947733696404772660609616497838978632441722965094926367397788640969694844010817838786806627011856601311450239688007253001956410285945612017051686346690120969639999383509137008894275414665790112688005128707009429882198266370237159839062987074984644822104395757299572138162738131568062690662993756572567922965008332948089042728529090595532013636948702738394690628115909421721785462023769271753851475707092037991815313987587762450189158754274751431660286542951544986229978625299103227993069327427937941068564869794230793804344046184741961281830251464611682399371936554292750298103642522634767127597367234491453186431751816068959085876082147412543430439687939917290562006800240167119443356955660756237032799037663013138253843805425683104650887090402633600174253983733981019874154504154604465156490172870061356878352171091956891508011422023723156362947737667396342064311305394486345924019608391835613626373173879583852726945555957291057795737306640842288123613624295892322778498801777503744717594045091757744534391144603453456358395504015112403393171111253728762195837240893942809891927617739884954019871297329733340575758043678214871811452366041849399709852146667062716355778910508571780393666921622932538157274935191602316845321109814869493326240550018924292709565147254519376376857801369309401455537691973468603262792658339643388282690832642898322688935876354535735070927560197597803994746958430541720655726770228196706857522924298368696686235155994516171019883917726230650014186954087707918966668985360515035788812966087096630802754258886093069756447321845675093664139884628071935831839892632266451183869347977745167962958084832907546117347871073589202736053220735995311189875464292231320028714991741410076959490029986605873255045506174699523511910200018573129447365910744727304109367267905730759043508400778911065907058755167288024823776151168697905100062872609215686860760139606363925511761519942581354583631207071712376820656062724537891179623351449007051832857325684727783352153072687137343305698702710014197435485983405070108604213560129475275740638612581499153750484776611584706622061771555865079525459652613905523419204386057308585539534273465417410038450074642778256779896008904764203326889587309161459821141615894383195069897566148372377862940723621569524222682336947760065781049945126366313386279989094592187335424097093261382443862533692663977410250697367975825634206426581056312113982315253530573742105633587817554510675339985367108559088191158768477972995449128986436032969251831033018034344214790977857608805964461600336216509381981447631918967263744249127519019831186162209245201681634661748469711371721540797828601106877281775869558751621753241721795009208031379593150532564269850035528268792659633679067256142777280521443981560805738752420970541700395799260928666552059567859178506331406797930760681934304329744188071877195744640614798609916648389187200329573729529290403380131838663140282652298490849011768918329250169066015558134033532969079615984909897568423195557687099086200523370523742556248923450779688967248098321595625327875248052205850899874473353811167284467930758898834179401199553358361962908284162302349682306621747257145625212831765310653762964284609471301144260138694342749495385952419830480479555948097170930568314814745849291843541509604690240970081662518481564541512477414134935873784532225883948223352940156747079622673063166699396543332717926310012967147322408901915527934190292907897302849273857786855978951014951482052597418243653637766579272759975910896001422471222100532536542799523677590859962543787042121967844848532015192104626548458872253226820784859871683600157537491198577173094498820973987323076775658303274193896053907265735310906487018631700901653323719892455984535541925173548299035315455965111950333842439393807711332399620517247794864915012552291328547573597073654204914542536426604416680282643478398355711187203236088134341576701191318241443688040445813532170560535502488131873776650582551275666390010026401643927382488751291602351235795446576352926624503899781014618933465308452839543793367476975485233947952027424551830171302193380028288121898470143411685363328747793874266890388665112268084863025524821465703028039977323478086092660705950023597027699030042935384376855001319987234678459127218506045369334725705064985852660711059034467021174098059244821359435085267592833148181055367691610338532106033285229414567880331261708891746411359884393312269061584654955368985848263698641948743437438291745430644441632600449245775428546763178086942676863299129029702595696316306970084812685383822672202331163487505741200979208972907464128074686626985518361405000662753631853640841319258551948084319462913811175920674306094842863083884857994865299303864358395984011318941695415424797495646092092375119516057469179962606611423327642868142279709842718435431305264907392690467298896750805495057026329802846654171394260499418984728299720196897857049627948740804375043265727997781098796998364372749956046255216677778090078526322078429950565444190178589241770910728728624358410726926524635720666510077777652483557418650102898698808271324332321797600013816593527759455033727767449579670167476941866342031568009739212495796280243163189768047344123959553138314397379510304591615100949810993880638600818984592152825760785977936265402576730020088957672642353339627423731355644829628352423097236915354280758596954411352448632028211974502920425623176377279216702127588450377986537886608095378364445218963934073849320487997072298527087230845646654491186003204435244692455155912987151217668748712384246269621496737932544520970241904057026904420654075876913782243844531630831549543451772790623068095724065185253200859217393200943033402519889418542711854610098962782346831617171116362634987015641281668960923611864723161344562540585979723295769682163786804082480961275877151812092563654681317587712909352965017271784887008725415719571966543127779292401476572658860981868710440167862059434905496261458572194837265277259827502335881854094693179353801745229536387799150284816241386946256031204970015296374979656399763468945118830484989970525157691876122520094778234918933679222775946050118243457137037282003510159005485389938671636569151547289439111745979615162104874548826879122423298892875915065132641519270514258664605822337684120701220032985372960482813407614452031612650771009093376422437486302611896647483630971334337240542750608349831128909536255733047083000082832530022890750523121840756408900135829994874945324670050487454588746752220898980171015155284767497403428817979600935287465282212910104723513433956713465832925160759429631685429690827290127542672415040681567653862434050340217083742412628375929145322447270493368611928630577309521354312243827496415123451875661019854786213363729988162478716250041522230200438626864407238462054339493498477368627070483180586853809907745895926874397514507714330375417472253278742633538667078603448499313699151647705070193119740436637802769089500292397292857874909551062365947042513649958838281744533617353871076489037130574101095518046522694569779793939655411343367766314114055432634996641169013121257365123244956760995439166132064608703582663600723686463067136267742657006050770177083824428772351821516779200878329303873571612826626694372139222953266597535738374375641484880950465760436747114120485370693693107095700718307046004084508267246563364425553021975225681738812810768778246509784254801246916620804336686566383330436415588862945840190421097677983482249650443347657262658335192609486657464601011026668664241076991493549263959535922816357737865108681578582370437700284541582721312897607862660076411718696314617733324121388130988122206334201091618857917748356460970870476948817380437481925432897936342617322181983516973617863268416285154875691495580207081476294364505959605427593051025110088926891874908418333187019827852107165913517401972749115580181445359924610316308087670976062199544001925812014684617261768739315317182135337155529269153659459515859523476988138713959041234215186052350063268039081054793575148812799272253224385808766088297146610889291921241395577221787707972137723751194482001791091282394466249723694508543289931886053689190566717572130854102514812821952551072158904432232372362526107423426003093529516535913392742731999454292170155423057592645881930760502913944019809495490005258235707680672959359754731582881960305867259297699652535710616184185122022052920209369996991771921266547152335154944344061982626839023612644084202123930438410807683796561683947654084314318455443956166957238269584481154706817412587730694756830731637649579533832278425716664296757830533738026158313719290638496485618848640776696354364254479951474760104999524631463248425465919131251987559860761564136434002715150959970731941862342773573407635899671366227635761773381110319143256659000028236359220437716800675863709443890752146135770028664587540753390355779215389935834984619152985822717990978595374964586280434925781229214749894800057527085955106210801422528645696213088614842631302760909857347461270220696619311242569744969899968630342955686165528289750411109096487657546071408086077501309998480508721254751950348310869116141320983952681990095272578055002269353890221881372120652215439887529090549853911381953732559970532519485880095340495283505932920081342810194317783412078459338869179417169522777948138398513303168993378454345224607091551301979465590953928294427348677058824924593826953586134388990700690626950377418117831710223912445992494568921567823471043853514912659347495606451529348447570768977081918488489656630313423514137542564218118675563824527659571672488961596415549066266197818496526805013604981927537232691379989304043994051067503956874505473962197750680803147179725870188994071116484338933874938088214247650879012431470525712829825393384669635281373627973115207506644505034204781094720268000498425750993341976999929457687818085819565839107592694840882600588910136484104093976993587848526181692248023614466091964612627808459394324608011603750058987512686203465514313284085326145059089625593621039790792658633962014265812986156368377745546915861583617813636589279871851611131909238571807900893223439466136137055254909361744903938686080304383474411463365553134413981974469467435716071086201347168766524953823610798062947101197398865743093780129163623693549047476746753085842776129111229889500138263111557086014196407785012500667953387685960405509253008378837276481229365353736003752733275631801624657023348682168236367004501423827357925992799336484730608502172470607789703558372397369512470727250779854697172066270834765531827278496954117356934108385527735608469964287386084090218280642801441462986246314900164666058672659530411574529555200016836775548576677341419156789592640198257284235351290027380042843765764987049235150959660552282251060925455581285048629626854023338876956650351496184251183083241358690132410439326483554354402899731840232254727235817840968893085710631927599973014310847275029073856652472771786052486903596249111416474825189083316551127289894401621569053514741279557907425430108245861982772774255560025512268849553516817764551290265549374314469442911376560643051228025189745636330554905834980205990990789307653361940566053669754616135159231819545850714508671648483350635658284800743491175671379264483232112446177989477496687250105776686183711417027630722033848484538312012595531518895707226036757937790324808083608145395388605381006415361575936357433041249757532063576937967799194079573794064917315524009791227036097620044744834269708973658083848365145932555611938380400639740452554690514350307785321512343579442904255150462353121877706306040006214842094533561158848275096119072714905642153507687315359029013883482383678109395468155443785065188112013329439231013927355050577929178893741230701182262932550920775772209339399418397182571072255570785531479173714978524336986226335068872038314139313678897556653486753719411759014584925784055853121109738442462543190204723188413728783255210423127621736437425107808076354666906025106745278991972726224874891310778038003128946707110947627450052296207043628655621129824610132633381380007653812364889775227872882946984873362486954508469886643018680293336334410706920557916591791138502506281724323619599732524698262810362032403518205516474163674285668386703774550767860612669282122902755785422310959534869115381245550126768515730740689110381341748367502327929034622624890527231202125652531267471031742163731763165907459943006963474347582628133120771495808673706202079889877525922709683423860771972562338855890442435332265558144660203082340199616330551781666124208935713610540947724327855435341071868475471052574344927195038656372806072347596252499453590445619726107665847889644008808560381261433171445469514230206508717139105762718130284459607024383494960117045915652596920439653725997291291231204798921581132382858637344249708601125910650420416339049573269199363836821906654911700325487155671354588476734865159616188392192343751316997062228421867361328144544953774025645580194605511101035538182617054686525212033572308546181916094346495208572377273822243393225233393838117198492610384953354975806087850874145031556643549693130870260105737757625658458666085015212761049810452258432680431407100202627568099930785958687702428672626387889430545631121256196107329421572383413075192314551046528190286143321967826821424408964243208472462149098791616994117855007257023880029330564658224101464452807606015311585684790831529126880223057658628690958940771867431067652907365449427025668199416773276789518124612023177499811381071238268951808347318682089624768177134622120910880207207054301675558422217995641416592633842665688068162984595077906358527126019771806488691637027910317529741446086536430560450170199288771727988153390057289247462619730085945828120183229568205646241839698579272555672284679779843698322665352842717397794769455974852938728635112728484600751459432150693046514827276607901242481969804766587235534511595046072005667764365870526238131319463775397007795881108494080900103062760212294802261354528592503769908435359133366494115398779807186540715467189943758784593203404231390604672880389673323508797632975249200295483625676126776014747229549332886843682642169718997212483062171125853366836678217439494450348015658455447416617294565966719996870253284312174531292474366973176111392343943645962032287728831064861553376669213775707234896943303281593768798792447630042515416652495638975125165651749542654705518401587747963636269095091864452070950154984630744802372141325469899115556486510133244269822675331114973108410617757702680069014012949566692202394203294724710171889834227889091346274559719969785902480068276647182883716235232849019302204331053055574969492477678210164922774988616882938802845164780712029020323644803996994131067313502083615892882921165587686871670770675064552312697022675310828329032790012238568961109832705761059053511149409899837665368180478883158762496179991359493376926054886183265954894191127918882003788698094083671749179314955116051356852740519792707559886965038314858400928390900021605586112607146103738123837795948787067699151783594502146206622700071317543186158558273606214213065061558303511433645993890757279877960159941934691781820310759160941665530160193342456783619348916092363171101534861731127777319709523471826341766418085960479471277057623160687134708464954666491539182996845060096055401624415068946025747675237472955167296610026735377255291443519445396757309849259575671462456744893217320711179556335834604570740965519105169323581932007961118774113101394350777891663901838727771788619289343740534045394885760768821853763893572903467483415619594621263924945950454594351420458558223316123458525169588499076474507660561101769422753042157882096841438712725965500218464527516806713598801194673834103688357693525195517121257673280092603187238675495920512244878743774925108883141250303586153353205599665917578400546463594222578027406575737339087059259335181364066002129310428536016752342415500833403789425846522343891006563985849609250107998414047618618008438522953388568388580925587707504220313258155434421772672519125587117613456580648880969245429700488239938035425267093120921287670102078383424139886255247288761454541213162530482936436125672764679497017152653765309630881957097900121013044371160303913145930981220928081334866338539297194813464907082772181582833042428088243925547931532427887359965163367856821261279316719450716838819454431584945481627810512190161788323751018037454686347158882688202085430166163347359888392310729195273129250936749206093702293997177690250363303115526872503412275801283831434635622046463757495993597386588521024193154605775482222183587911017136992716648940318577790929664096231184126555396092185778353967955307486750341337617821419355421167966001614057068678786153636349495968394969056453132710189809815118349805680161596413654348019049164933971628341585631977449890044171272092218251900422247930459010958407117719459714107397463408041827624161566318615856491214686312183631624903491559392712739925323709858205397545482814086241626310448996433145982126703717572442193993139267891312676691299391406388489850897838127627643473031330089346395407498754863914158850085985540842802905337500329557499185434099319071916437472446987063166831042483867700173496929328776648449157779428629328787747684102751395071277320755940176696584454448718947836042564949594060526486573354427700863415504639799476722765356165622344691892397167961935342318269995739432092225349047435459401262840641174080942793833512503542374058894541772954926714063336300330418226332402416196558063131207781304933525667405665788087581000490216966430764129153447917214268689107812926130797387275840109744280171880482049858044692494555161030806703652577483433526684330515610962677572516740553113075855307718632251962626267617052349140327892372667177914401691431823943508051377844866985811097464811804681362287368135209519329589782362636098230788586851691752262466459008181736424626250159978774441332994253647913948541941046281820897990283144466965873192232883474337905701178309955672895020684020807373026225300061348149453344342178755296377233062267515866317856378697251722085233949821425765127230595517332642005679069680190984347239940260788355241330904140825752014897374577916962618412806790084345888142133590710034139315256766923530622229223669623519314151166869786173946581640534569140502338813992481592790394949584369889754811654092678806855026978737226528123835496778444181694452126754088824469753139430261236953948955152148580384018765816675943233776366557653781859024575757151814516280718289034058233235036161448759762510194295076164957024434523447126008676831571324648943229846681325640432071510301978845172755879840664551166298363736386544989073047911000350000252727947809246158980318874790124855396564516425455621337777170300106820685712188667030146433404973797868534359568176933090011706203760332221831673230643669188382987565371377485925514211995082015836344327094414917494802277121598945884077769454972606804620351098323977772966825711810040263412372357912368065747084697510783157946305433291815266235936697663666500679336931487344423498171031221516458630074925493690492928715397352295850621933638284324678824730323029075058011926135553975899618176270279342964448246241275221464921145242466035600599304611636380600912314301125257580560988427616146631201090395489184928361017456179247032171485086404699396273539226359007370021564429631019157985195140685325307406422359443065732264013613174292569129202277059012967897368314095249681779359099602688605898040966422149300140341765600518260907310486739677780697186075640414367129906858786683580030429758816431142314489131990291837985441936882338325093314328714071726374430233763972598168134045151818071195720742518626422259357310940486772277859275301699316127160554618593046741904392611041462611648511757128688059739475095690406911716742562549092409779273459783716755985779823200861940104307224262447907260209750610025752672325776951471275029429900049411952981995843058657984810100422836919092736273049637895713068136116904778796509599259193434602553741533292520953208080619296154040023173290188511936985845432524695628295506500222204143894970278310008745101327549925149668094869517607250147994079198343139206616978015840787990253663753065089822752477947258609804765080874979389927184386480966045706354166099159468670637525518655184772911933571563188063433676366792595443461119401622111160429638632907613244077015479238423321455070736756892288351309460990559917154394658671530901207013487585839138975127104340809339663910465488076132636547395163520532835285340301437021542788404880303664135252121239430616495791337037816654039000918998823463597665139633482651311093991013001984441080616391922621472808043571285000943526840996381994773190159997264668638672171976270851013155804166280234724587548593023524591538994593981354654721743453577172723900759190869138120920598561539292742073102244967500587248440364249837365181350185004721646224858272579952920471694437424317926064117691150795323425304455629675496169757432679997391576923574695443833294849376310120170565888242496946304618094921810011235245466866019109940509966040429851875452391609969030866659600405541381429469649708710569007081028961645915276510239756223912368340429881013962549652674106238794267414463429522965199442436300994854865855967449737665441852883987044644514166528201416688791159242757677025339309185379514863036859377850955891639617093782246114738975022444909325782959384969388298858151881834692663900372694123258305961489698013795735864815411875965641614072694371691715027483229417106871772474736383066449854216280783152558385311128540039919876372432451357190735665171857223699514691353597163122476057558867510647034425764166118798198007960594719414288804735086055864913021928465184395174189625426906239528162578326322810750418246880334852765242800597093335274979675140083989369381387666226487705987171817355866735396363246350159883586481736410867146613079687969161025074440952308574088742969355345170438822733986508960208397269697541048702567421229627234330792249466076263564092213278119976325575774958704751766047380563778131753894167957416271083034199780659476096923770283529529451314270108694763841155787699902264684942065696772309914381009259182519655117936172756252173947205674440088727980575138121196143811181837315980397205503792059643776251340628634970010629704601476520741044513905672848561432930510454000425437749856617627370570890766571312287521944954647060991387118865328737636713628646223369123096715543335174159317569047629801840715816131296553930560552085933850489871813702304445959803944344294404195586592305275700916603212041881909472381909662445566607152603825259723728185094885370389868380036463229813074730588983941123457903579328797942614380006251412520240040736261542706289764054781664692885108429238140674468711883630018426015038097530541788703254860222017937935048813581552075399072230882860734124998836940502029499097785518916955020067118864567834910815311930840324487275141906323155419066922348800260196602051402493398715732475850404947239272704721760253438567865229573014529906421219601658877573476262684414246528308266930373405110921788699868528814738593674990436111477313856720977262873168418207034639717654575334792389194947582149284359991551042319401215330709836629261709165025772216767005233981414478432186595775455734818811620446470913870677622195507388965677765540806877367284389043378074922654666183209068624077413215031282036812893711576967148637301733864072800630611280687098884876856536537914812291641442690299999075300720602998344569566155673190296990873936733752389792337257478210835109205841483583585281398016200689571772733381118741448087636390133703022907632470253043180532043327455498266118418290838157992412737348319031726072327033373353592295560884739582592493840407375003587343566914537492033222908982562859052216040672139733111645544241937798039363893118536140169760441500055905335130259253099102786139674454007180547631765251908734264855139238080717848651535596594210274926993660852354282857340934277147774352385594639954801761606505662142943972130234786680366291794815511193769958401493560129374015332735965789738889581201059496114198264905402424580200539667488835871784949954916553563739856292257198709410023447654737171188823741819938253698320600285454317669893085586986479034675002546018287312251677954179037878934885018909627924023196833449457990481097111943481661969545535461160081682049879595594706604634152038646259485835980103832672218513591580612526544300809872148010664455019633524377362465742787491730884900352117935746152010640791441870496385614859757768910145237277789668146469460143598022251212916571959904219370426706981754203999455974886216126222418236728129006053740154245736898754819953444626941857943431106084084948238517606771938098509902214588399837681204463979609007304483579501199638410671136477164530046137965096873915080381069752937119457653114634342292315855407231900284068919433626966649712671100464937520196532328230961493213706293207585394004423481247703673788287138298173362931111511548642986339757921637289034314815219553324900183458955676574336733772913168904380349373684002131940759353984681899994151210090437506054992564381419522897443864062647809406261000861635060197040943627673567459612371553079774721689791919881604347486178835169903941906343002970811581703630415862708768226716787771727275909491948901428026013901100892912793820915677382422114520157403020239357791659251026732269297505173726461227803493825776942340059284531987450291214376576613466675627739410780498332033172066930813672821956881015126246367943422102358455794362590137135201686132474153421848487293927136351472285861514571740009067005183576662990185364803537310250994219800512500257660512004039759682370152476738095393767491778800677155707504303952167021834069841054211470615598999734750481336623912113314732948178498878999860995262650301038347395844793840892060183369181265851622016734570251652886571074770322544573575945095285506545483094531001104048592325870843905238958441678988700232452406536320227937877035977370603081817376802057420487220931925074803709666220905271961242337365922255619764239891604892829774624252728471561565838303359182078860827405594936479583008052303075867609388178936555252227349230076032322364482828677068239531239593233185020363294921768073389316432170795890684754218978106308955322513365770792936022346909758420575251485750164023197644061211640065779162681493716556831871679551331428763960259700139619375980901570559933617059567309133846193895690789303658160462708366216795436430854499598408658304598257662705409789440230284641425961406933105195479139419170123502134180794020156141541685514472839680500603456654659069690879221065407566418554285559351891896419081741993923079252086036465786749236104579461523333336027109217821296301774422322526796688040025740025340261873689584376538418550942791003821797400863996065329258509690810029256575807867357138248695545062253024012697740448016369865017783598454215720863366483803517423830248915708239534663027473151550274945849963943963629846430536221665518592179674529649799841910252808380980956435480466972772634205218251423527846157709330800972248201522425382255784883143004561176637516275455189029041722716191810340148819858190028531423036013490983594013113308877739945083087937016068831162821686533726118961309495823060144201614855935203263975185989465320776462925564321023855436496188575145033005576740832509050423283177908725627918322702932039272658033594482225857592369215920690850863804376359717045893535371375389784499793435852664541092911271108432480513048708780939315956871648699989312314820071206721269768219998704938195796337266648054645089363943404044474718479340682849287384459515801517989667884968058171358322462067306729546820106496122709407404981466749930937203798730367005182434067489766898449957280554884383025103802186417108967696128277721654019436911399047868357755291192320601637793791493372680155781345074635900476391480206556155219832431476230556755876544066316252000494227284237217347925524070148208011666356423313954869262359991851921803100169730831121277371006643759794936193929290822778370499090633655118663957210806370220910383711117385250430524993267353713553924384953600775921578648863439011583027377130164301873213406704861670685483828993464336225081629232824711867486216371959975673835372458725987040118258467795054062151369265497541764604961302032080674433247328500846710740067807923934329625058604303378577487123511482089065241615219629468555499296999427880024524846374448910775426160194028649670710567987453686049046056263047351160909130390052590828085120836179805153398548110856643371073483154685603287044455360750605799161949264015060399684222069751711204156910037566198185202312268816428977716899207875009480941700198808605695421274729618906744798824860601077150482559515275712888414492072410128123151656455136504857160542809703104468676088292704149320948860200981429088915990100379512233678027211249307056367705380900110815166535010329478390598169029867615908926841704824791294520359019125073360715665265576918382193920756174523439730682362791395572921982251596300733270318335322993296227542207854232755422387051760517448930875101489725819528787132350363711268725096225891739917802806127899217710034678919751326340697123425768666913680174362388444427768767319365863604600835982767287209594102386132357145802556864678724656235017317420327212888350274291774243815886046966936726795125009067423355361018437329986256327954704887546524080054537427456454585690378018532999685392470876798052683415273384733845996638340713440416279694217010404975807972594137396790312337699628720072924438611827902095346129237097655729758987489924747029926942508720322684860530402209932722378998127616408010070834354288904613913165583567714611370730663413583652396547657150161365536478922725204627935968748733418265123852650767081445742394899285366834845238120022635865838575443251094113584460602337516373728829054779845274044768278886198526610821045762713223541923566274442908048207738557743249395065220149955186904201660719126745646650699873896826671617832770293071868020453668397590595181817234085136272491471208767191620451559257257546537137029053528293488855123934291468977781336512827752576805583823196476111724841912097315494721777275712299597262640168295467873413627003270872015446058009907984241189310053220565919973615044923088030713086435942916178501521075180221473382040207787634284193751915216804678853505266869570656357775498584402396173309409728920789546899496007690760630245179142324721525434158874516786093251390405874143430860698646198656576275242407918475244041574414056783342661617535021788021092261362784812664497963488066993738825861290507355917660196409996331314264501257803020881730850583495057083723136237653282935634056343325644128947224165067117322822102623793689819518422524534864372104954883721247202258989021532440944304591060164914274829549976667616397253596313307645563972744686661183640611699376175451273948469059902922598221715953401824373911489948791603519717028646796029239198244051132689693890102536232884672706692614367028975167252558621817196900901652242491610884266694149073312327579777678513862794607683243592024400151200569966612494694867097275592916929702438957571741954694791181003245821582857804053975643993795999955359138501242830941202456878940336362937872348607570631353813845367161914835988089980012664436440798682470953131415216438588858563138738489127086793201666492706335113798343793828199949102936117930880664693133233046707479700453484134345942236115546804052754532217026186094738288155665575916794768495216782503586125823437573958411084003071600631080674590766193467522615788085551042527768108924836565813963403284453925527454630132941664594594754953618000590435202372322545269393414848959114224311499835850457312277993732402034850927414885595397125309198723210177750425070966920477056493214652350615163721094619947739178810501669367787299162098452277496622246009794080179592569680979198942105791626089295616967998770189005276340583612221296249325520863751977961079854237711184394134660551953272808155144502310692664945691598407747119182606127570517204292800960138891258596030338766107339289425555244379468712709940647902011685852966052537432936916902880623291126074289778910702530149329844011024327004382627633163975212997768872870729651824825348633823935140416314291337671565806820955139419221721697761955695215408355459404040884751121493958564770076129485289932629223845147694457063622446819935914657807249085730642073591131724297335225685423643558830072449302339509523533646298088237054046029037054000392130194505677275192558363372457540874343883531819601254547385080440420941756979846600093573439040165324043155861625738790074767392796399524920316980851654184226256806940774196301317915343377940579660407497985288571978324661209752817726499994782258837912834120293371786765620800030690622162128973512009513821758977175680168624731857403037815813882120611183295752642609924198288710737071129978123271773968162214972002976138387159616910986016788382915549211742235405127783464406477361280488295130898154492202204873344734307446865385537692536996916192533016963460939190859899931447499463364517161440520336379039287259995964799897602868246093087428730219734397482931089191337764583182920619670688113149210776301726543515858283220896551780666533990328702123929290347285364338456531168585322442416557329679141668466902756000912043923360568687784460668675881915826951810775476255419811467400383474433967949606458590671995985220523128621562284453744449545996298006580649432176597471410056126061061598421781299340993639247638454337994230694453198341268355063306792357782620201651684835268838294986960265471148123095053141377105425981124284794522739620205471074111688644996735596722517418259580986008613333058686696784102907930375137054900032882365407791232153869348649549814800769644733879623834324059051911396662885156160581559332541257444636639251644331247219386718994865010438863437020782823047472716389448818937040119479629509209402942148363614098978347132717882387229798329801761307240128327844307291084475583324942923298771570780873554094951217313646081674859731271323479943990775709030427171223916999554362818702237839729260086484396821282641601033700704538171612798012705183339452902814394766958349078382372883239820859656209766766505850396215200826212050889494450057030243855254896468094461165114725592672207689167803725048637759216115882520545078607054399555129259968593937353259454849215355955119462666546954924062010626593639333386852237745832519289436206133472730954556673371833150352299484477890295605998683042862052729511994552029598596832302115937240065164048431675621293779500395183890233435003539466753167983493228052415518702330031366040271462915369001022778863887304954552233511652374684310644208961174169097477159778854026821948284881563334816353668719180713567746738967350198062113191611627194708005466153254168620784315770081849625581076577033934543286973577085969164245732094994101512068194065795851588943436378429224045091786255488313877274053268169766274963415859966527468094008488031993848884007348358472289397024461386073536818711467664654868278425450945475893832324561692555994698913753266501455909475205468165963078098018939466459075483725522464268023833673300279465158845646593168241132360163701681525933226172791576008887997157382894739536279192906104847699537579299432630924652551726144239816507632522200755075861176739781626348697982446658380127427704577523292327921085352337700946033316763419787699159820007034280403853353070094460923525784492724628782838188967309455535042106698906770033842974672946090898205795245765096235857669365272582980509024511646949577808369958816643308860252467037838776309071209830568069821232809659359446687116440167981147376347686205350957556194979453683212048694438779905039748009882698267376921419359917480631611293297478886639263018501834140345926568166609837904853844938210438855650296026817279664754912254798038439158454597762485877151854753743489917907847030159210032743279614213110897643059047379229515493470472896989308408566057431559701867960413646425950896733573325121596396685539263694467904720719198697298973783586800624802127921143092585148800414147848594716529050463857231185240787569592473917809497514634780103278490603621262114242508172353858575628816424356133692781332531550118009826277461911385810625016981983418890378851838537721019824371217336229787494638043035871296319687200462115800140253069875757907864212630333150875622355413603354627659751932371347399988304181786559853487424881861124898790166836114344545399944283556804207659498495774133776800675780139924656839600450477651498507334385462642349915236382050715817655345038616168384710000334462130419460746508516780691352000777592987421981403954059825780726673650798051851790455048998802109103530065537222529982606978623314745687014459667861988383075499459231769107431861710025615781800178823126140132487754979264758728273381730757812517578807488022314728557137095301205423166218770420942870701865117297290083451453210975232812926738795040109182923264401970111218715317305331440957659097720144909956274907995366473914795631801707030106203559816063560884978950702425261500408980254904749258500707881410506689746672506817861121708083992263336686983036598697053352184935836233899175218050027425454355495780642926673005596747979630853292010401830510987278296176528020198964014478731531741847436037656570393781991798912973800235659470300108450517371964345954322482795535940311130639113842667116685170034755541171897762656754452745973138772714618068629655470481742864875755369059225599351196682019246932950699688375061476898455924551415204667957058016852029317605949586542398682773096629761936673910124949929318768748258909534116118097451491763454029019781216787352499824364770503940392443936683506774083480687395263499917477755037276176142917842623262517576215213064573573535987663369903234626566514905719675808668831777710732909360944571749948814813361629080228501564179274305649669855999092702582712513228705591582487143475795314474584857479951357371310628337340411849237053570338841930322807677890247567210480280834870576131682219838449034103344658147208875226647512683442416106119563732070298309463237122714255013567880166987978646840104023145861336894765716438981179199197699159486322492067179781687570095339634897507219829856821479468235430912540623799919724779352851272693522416325282865492462971568599717986410984621547835142440115485065948542261630766389239146471667524811712974397489984711965709584369201979885145043120443517267051376763777578699532089667726202044592017345406092843319715682266508198237971779715737282816673895353143384005589723400157250999453322768816536392513993169270851292000688433466299598711106317596794153478806696142664166349491941168446020459791128330576359780835198024761600456384206072521361388227269931927362194289328736440017954406773151502269919268561688430160163504448635651777942023263843647533230764503056963149068494468898597193767953273157378987436755545431857475736449320933471921942270207877044859234014233328248511809606171552667401268682838294052670812073625840982611916295225101650431113358265752793965219318271397531219566811946866697752002051371376289230705112282995219958903764083418705176992115656042025305667906298968061998655234647691126754343752148155108049212960484246336594808069313182850090415888752209027752579810365043010782675686970987939799570526012574983810562861210365483997183834693027553045381774176882655249305564407436309257165026794363625345126340944979902434864212321475161343316654704175172529328453129614682484702791087227704046989602122664386010090560745803966914043267911867575300356013118987149187477146893646373999277782293106739838584826362557953166648976934350383292128134057400969273159937191479433603186585742178868065568299814925992115971702706060684818932106261716086287530136830224106924598645716511566701097700151107573371312096731889627490492643803322562540072943452597092364420694653736907965832377430421611305786681216247534303739863086241591068189882620056498147491961724374972442645244414809795799725694750892889483991202873396332689462603968956964060179264342622293320414803243740213420519500552184928455244947142576488679574613729645729472398354019171827444076229669800051934413720563466597233761846490780942157246836672536220414863445667481155187177551154369373081506868756928511249274557530784036908179216505400830347782897790316894029897957174403324680770420100093323555993422849118328323204519821900541962061848961604791530180412709418118410660708714311693098035544829289202858544882027685809924780122906559819694838387814154640694115485871680055140759652379419210903612576775677157627577354896883257260446769220576301336435654931082273295102085592271815986350322295385996355191494751375901117791005241194804254702756440293391667398977853178402544904176376678744752970619206868783082195503430992512252258674279758324921352125740543947911366751464779893823971300861371425612949708624369113007227898697394336003827850560859747490559602087235467317395856742906705089581332362392177501448787367289558335628008749839496119894015125804032990400357334300128442418235827454050286937395924482726252449651794540414909096696420869450672142611645269798940563805086489678230178807372375055016987770568753031397638079094423857755966554862907708715127289989677780877911087947775175359913263364942844287764429066031943859270018600907597916476477498273566202505665516492869256108006507733843040128348251113173374715808170378344473091990808064755167815936481968779292472358624801997056511513522371748575092923226577713902506860477131872864449373904065477844690347867542038570628029881532249440927773285707501285852938938841476469868538311387948620287722203558622609982252231071933756996155294934898794702764676731077806264703949342945403169012508153709366414283304404852730563835844335903196917738830338280388238522379337750958803450772073205272712013980271471732564214278353571507593335951401013782580687859467194935711352693982794671321036089641868249827708528827056848244776781829326640179659546228655350923001596208075412877900732956539848336298372133174837115604376381772251749985064564677995497002286093484896110833215272067565896851889328357972543962934684824625107330580445416502832574617727708654399312326971884184849858052031192589118199045147252467189321378242073062443981985672824605607779579207666644318529794390908478038809534516897900202210641652733097042631779554593382495580297361821114497475000367348915602444836665490049089462045052282648315498951727390252026252474822403012900324167479203180618279753855377973890954226876916414030733477757514249443959982226887675573050870247462430056868703303292398509197780310027103381776637216181650972645313757582508281779166899113889570311882454535013430337809229851029006920613303989968174309512294788540596937669173450664544645613187782779159186834123439929636368310938489484667622638162128476310615860443583195859771304762230466749053775064290649740265060841402406931926689406966868178635284289604875294798957728160336001732542925732084680320892758062872688751958880036084003905907214575450152277719759950087910276319118002620598709347339547548889577193850145289136782577511186378728048365426109982385051769740949313471691532255860881940218992214233375309859779248303535707414780971960613070172107993117075298058100055213678107224620050781520613281048838326951032054117144945146494020784773697098838876250507040889279222357639948596899056370275972252138302308142231806211928898643253404265444358011309748969936106138360939461852330402735261827241327783139982208031300700329107704566658689740688292538173951574438935910822619906600565264103128095430896755054256680772859926855621393909105205238928721409924206270857794944515037119558201703122578396888688584659861416426205010802757130719742571279190817716367127580353761038179818108066102860398419209757755663003414034377146188437014456634321485580856979313622212873244123265178687318876513029893215988270714072082349091791907149375486108963892808266150057674362653612635822104318161766425042430943541750358021705524724658293613789347836729455366462880003775018168413058029462919035935772355722976195972646361598225110717711626187426761154076459622573951667381076537457641506335653322554471973083353671654166991809879876592087273855772492787334395438780477135132928328139951546113111746569014727602827731674247098567818732129601723092650996607333566273444510708482255702993277543999844593255553517746683166468701493776054395176140930517069206318399223751398512563613469548382179728732163021753903840534632819188939743838742797734278408989243210401383560359013031215012370256325879010924127454769647452081740743044742754685856451120304957939638498362649608444338499290365984398342151214070713617918137637581058332775617860638754244501236068089714319125424832291186490850038956641247368734561878112102693248887008352394265365169453260442706734598282703120602997278096692281327941797984456696268195607254319193850335145157326583905446234845385365194940983883425490025209720459484463379166522180280266564595098137642651288349913239424299829083225396798065892594061557574732318119875922689991565605546846035342568966555769073040746196974038775861076800247712114539576987610937391068350999637139745656505777538534979027009992870557953231278426477594269500325070891571495280488441726909157654457104504047344545620635775853550080031471038866304118519025789535467883605893834537034711880708874585063835396227473732301052778690565039258027197934935245803067388856159818552099519066801634683349084060529413191063323892840846772140469664672259917584615208086167319004772580813064243600950033509785013306149073378006985062108008362691924906687949150620629905042682747389033471531791589375338068274037777664000309896334597050766496343153601411085903585881358384158307484307932335191593579075238967301190600442997250852760894697935201069264428779928281996998914985440976323148969690149825093779077305107515409773100410249642553166717729364015491352622691049988598447514353000116917255432491066408384851680553168596449433017530704494425600452725135635293470672649443450316917053636850195587029944086988071736776099223445001722164518313099894858731161195297337488533977018663439038083348342923900094043001202692044908424051803959375407518170028501835564589360539143676546524690570682561451157786399074570139527473341004949652922281353055900042605315808120727136425482671822997015728077308908312743693588714169177491040224482185274683056234930191277810162046055099593151138999245473978902605471898462849653436599296438020581330822240806847784605856928541490186459147079566829865279962953152337119348894608893224011897704887767093916037255783149507414088909169977567013226992056988657239499119015137230882529084482184139317557052338760285186497883902162801131327966691811855660745028683062947614646449866612677537223718618187609208404397357995637044058749342827727958902319608931852641204448953804374769418922472645639974119088905273892274932971377759663195398851247151057406318821201751028244013755935081445915599973831862159764494188559038665869280941884626088406686041959602692313180539333883737120188783670704187076570016647178641327059719399963541315798763101692207974420575749782153860154922197746653266059123383134318575073545817409907557247597419394460267666631454810347779276256373189867498013471515197231348889772477496317559806978564062774202706357804173548687246586137739510434245354382305800416986221051323004223645709325300172654113983844151795034374869471238126058875767189917815165202239018625014520306408659069686486966991237901105749827363242137092460045923821843809520301343092600840880608793253152840200655762874662030244971417663623947792993353196106518644898806915702705088291111259701086754990746917004166688043150987474644101395973018332549183240270559038320647685110115825098524951497383149301055940801386720371946221794382874439219682950004477547738419073990877069549920546888497759279425743525116772058509809602092862081348226918709219482735778576716465273966041569887504747469383750281054491697449167412036285468632459386927287595778817475918784992171157165426938986139250535181208623329979639148005877132842752206023942725826124849549963894017825607427999852253622236352692438207242330322632128506859779708998604241687920982067665822844411237965062467665652105279627913236458456646423641591023726793615703071600346525529229617862814580546587818722489919721032440971935879984560739659741179009746799198839526555758886150962735777675009352325856709671384804677373433283991980252097917970457408183500775588139137051092273077829081012313148983532381711202095933037023019700266712266810299793940188334295545059231816311448513052570426031451257723979582380433225130450073458803551651554207070080508676794309913787067862603858454719426927735241122869986373421090969837794173576829351611192448676948768806669050827880470131188419218887884634659869318008299374994410314493015520112652845629092280037810046473913035760996427434114043433724625723659758118619235996562451676538490217848780147752449573968094864837244497998185343263956798247561001214176952960100936769378824223287154387294187921832463843522067501388298781469065423411443449186535800852155963387829172008084122994963598182346646050143706811244077197011236365891046984669340007446761907929899644303550879922815129606621315774367147324393187636941656894699829108242308974096797139240121704348922300201981776152830073766064867020814972341792614082968015889282208387155567698904605817289764118788838686029648031006044328451820158260934259439513066004831855687076625764645220364939143748516077756939672119257038609282932331744883738710103343693581739385745316952733012383832541733697846621895838186766909272953247305591935859653907237061740065947455971336206197675135439098223634049540001091829336275080867330749007304712373509068400337037811845253801611376594332101982549797863756916523443196885560040125442784711041028785300585608186272179553776930999459968337938950568265039039848479335871077792224976303330119676812712762400244437271596464524231171247166257760509813937257893112383254499170704522994122774607710767363329488107678059178504031956672368148223383461275826111591440781914114983982159800182618016969217893682896580709280462246387076142326702489617753934958049122982864066120290416640452139624407307513520016387401921904400338427456388842846976103360458512512924580691990877983074180282407871907776434572712002563111321261891739354771074492184563304480113794856536557167486021999133532561287104796542454264254734966824279770778257300680745506184055999898632755824801072565731617971347899537613134949964009341955522223370293933917927855496546665822416499115421870799948478492668579482398262315295255813393201447701200616756864116341367894003755945633531715813378176395967841122242734154302450505017889739307534710367518831522936915467507816406869037465049982413222832631307609325406275730716333355855707031370848067147263208583370339045905667775056530566064623707939751140590589333458057807412280833841560633735646150333748756780660760529790768984537337691284532665945314597688999607402514360804361751508569466030139034837458298913257370014256447437305376498442649694874713768733067695744577916241936985410802703318982326570282656845857693151241269410317380470147494572639949412162248343951104652742014712242415970616637456922319630762336633625581797726254889240833369762779460200400216496523883457836722112155919259428768600295189678830664074782003938731783072467909134576329659967792621491072860848617348035690103271793726713573343817608665856385903744379150036600224045197959561074415434277451227796351842142845229989924755273776930247320955109463002042466847993693750931489237219961953411177966044016971545256804613255721231487077277407923015275210475209293261209227842276836102981617414130614848080633182121652751717430353172113110988901397580522840123887919553344531224783361765006772238933844889501521796813392594631067559423425392981747578942376556315351401652781900925160136443703172462619163941038144391011734353354969260515567452144906059854571905299779407164355174634821392186716590339918413537978812498384842526218237957247042607611310939557168232049616193310577883637281569820258236625681102421510075311047049357024533942261039773819769401253377261830955230014851949865427048693595666270069802819502000433624953001878960456187792829474349768024966000756266204548192929428648103976958397235706721790688515044831843713054163281416147679815454980349893554841425001046672787675878930360054597327799155829355252380623733442276675057001367580362243948812823561625014686758379932807014017884098080671900874655552410445934271808452308572033462154066976596013160320269330026264783687573560378793963655497580131918306479237868770264366498921414171765821320105304566194578518303071291326163421309449440328118508788926793053640296297607580024420728280624339618631379164344573837378792574290223063853030721319864073227163770358763367242181727708624456613576755105258160270813662922531103873968761732538423178815923356399804820357609512354504852087876603808526192497718100996566469447406429222317397806261536029827570469442341961532144862596386074973935172051234099019812460039514195716328563211487262959433115019519517331114990666907979553923675503788622226744748477942760214740093753218382311269757858736728262452953849754927205058310650153493543821872964435700941194579312589658252194909942779540669453264599140249297287432709396741165972210128312301372042482294065742369721029077276167943640770712656098072909252422010680867966416218833608357152984337709560348014188236281451728112013328644096602508682831407955794992972044715697082490112717917233219125846279766262616447785200177753123013089105942827478906546756255747343179291229807900668395061157163276035366520742721523547355984156882811589681711238949450649700652746631498281765500887193260841060167608630210923149999533410524967205672045315722256782347405435779871240344467477260870615473087809515550496662242282055658228607238862757628011529712930199329057726686919924936627271407726190731112324234377906746392844678153195051024883622261052126626814764466892375184354902174953371727850199731862083056967041345808756374670309352281040521975997086698807970697568873272478885609526585378169410064194671491504704906723452583571256757454366990066950185983623174140774142169733307472222390300802959021855943333894494622971812183775519926073167110457667820861494275163838064064838416468126447724632737823041278414321103191502925220530933683453513935894255657107448727053149165822728400579492024778953625777586720549443546180422332635453129533153139173008206248703155274382761729290459424319656479045371142190204206299376180890090819993491345230418702870749714720798188615559845774300628834270192187468284192718514820202742230815930288178354297567889611636610169219154741993811376576921398659943355527390300886325974181302070429310911486802245546183093603396382913476629307346139922009794189132271728701456769765508486313429230856563682052539601279496892674435618736643274081997046834370842759382814101608144980427042354249687420330771556316386672208765619218087516670670982059469754798782203468394268453663529490795609032728472539953428698032664578785567376850285325772190393543957047779007886479482236939053229156764112708197657466494708968654271973986488759553612879496809533173844363979194089144008291326130995348330448992939507804351859566890000599011727593741019613533836266405962984438759631964176897554116724583391055500661179625973636263909605024330099760426491598329606578600348041601529334014059723622773389054268466537764110038287926584515963431916031384276544556097838759174138636235570210208572659592913019216625934554753972568450840257384429042952527818646933577375381677440804178060313837228223782758566064850471669684833768587428074889214104050488757206128380992825147340106472781431387655514250139559715493190246478380763305337132186262278307405188298860867978276443040535273836885545145310421265486957263491947981680565335258648098991039125895057250185650335165363334680453744623848880268670905600822215077971784878966697926678593494045070517706530348666063192966676648967576184002495823549172018492855428575365927351467903301672118113689180087885677889379932096323311908938399860777694063755001129360331514432754120164918902473371830537931556471637889785818188389321035316405169933607909230593526907889251681795567056725039016568986926933815035835701172172691828471076855517722019318295465837224987922826972066765702441722188729695963808542519123347038956704672666140111286605932873331759638323053284920115102149450111679564579835567626804074587541738613568135950763644055448129677974736617891955027253957823243639072316798448855826895245060306053243627215722552126547981630137699821197888509836404141105559064510715372275706398522796901973474376192443992884780447823530145008274124880086999785009792425749294726871253015122311454587223101111520720769485070949678725187537928931883307711765277154564623002908141420674732322212660776190689568167624381086846643957033562102109697091059583084854537488420458810005022439689360446933337126857910801979796981419836977420121510760630892941601307991989600906770431321717603696063602656943572986458129207631519889602656707685377079570451849108091388407559753369575139088662067910597757443667885348873534743767600812144278194834458779023972039154530461517441194437309232637925992108075196972346584351952343397748761213771727350116681608245490107228183755084073310628742833345082770223241819229102426740057689376127309101463248328638981760606279092893258948454011388083421212534044844314106920432549879762395612981235066502334162053460259838034455952993455583298659144268829664388646343392512553610495923963966307968490026462688568905483405039769894459109013710088472412115413343503686141977818550240043477189573329259090586378940077720706441559924722158642909462826096042985954447465652293670754166323403920590033039590470383474664589293354487322295745995877229281557981927372801410301479218736583860678829970474424144990151669145786612673793120585563734748949788853535094909700802653098018925772313347995710514189863016055905557435664463488323905919422143280354729369694199782384224646110004734252542965220728170086150951768299006093375120850821298998732630660548404754086467592567244802588816203222135676044613634674528517354628249631003950796362287955709422329360927216332623322503306756886538072182316253915647367663330302694531784758206594475893484033621878242759573239476016393493305341474168389908946990804629427816124355336709801620824192332818518638091377256381664164569156510245018728951993726841654136826619482347765049279427765880211757375905614228936563492392108860775403794332045379848047518720247989508793891366859404429843310638531903960843326995917087277773290385993603726551137139976732266319835214218154731743200795932701430717688099962972298860956536026584304834268426578880087597228153299939624342573041837808535253074531514381871065691940853679656293124480887009300526629555037861429779415638926555584182762322317014977563813625544028204965465610794111164694463966163170704585801181335298725966762293567701650679063624085671371431402196025452160519941729601641311372442508584289145224850287908121338146786542357458581534046719393134246435421581349170257762929302727713329100425580314175631549216964589568374579302116251704101216931265661250249283417016523450899883026600137217813962991739727392862496628284304993383668985481302758489461563035468742802466838745389364717930468028936462975836985375601608100594569499736060929986368513611834348466394361906986516982179041953250152582564121630682015899038736779583043821476119557276746000429562961622534264425394503137521785296193409122881797842068430115890183681023756879154943480768259289358660187164510978679389209344168911700385890885095658701250307437204151402053284330523700534987110952980409112002057573245140562241723131077113825084859523518777001020444727730464136717102661394544449297185387986454776171232349292522174334628024873750460029200133030495224381244666983506617874603641239526931282310189842509727737420258275783479634566108002040386746867016563586943302502509493270854700915540979701314949949338335786411757061579817537782855948659011424279231297745321953059677904158271969740531286229541198358893557584970730929829904239489197085584244215027556996023029523321211413373975253644260676871205787038810993181403032740720870900553207386323896342260447051748626590829208080003717941629051339344193036294346669759574947921438025939287349356837399098362670624577442531432563725338638836643167188048961366984924672740481242872252182026651340769948608003616102945263925249080764876007458201581117446961051383274635107507452943608679715620605643516243147974133232590858010025364028589940764967776468046109126567539382412077504316336809373875189431997279321500623719064082107989611033184978845870047471028100201478883647390604313420158865903500705949418990737703262783818091418170943659493596081858559475308300621870974274148733466929418107680997393454411651524600663985732816908110352226165174306699823075574922915673413078108334512025220190858030289619461185064886167860458175100571784726212853399223766289760836127982923451257925884128881089242337942378884298654357518355111294514409298846006172524441774685435355861387311839203510452885200111038609449562397846702329607999701601768015099246390363755876207078941040748237093068068623939086780427497094922287541787164331460950603909112268314864435108872896702369495879756937327794881170169019051023302527934383152425353016158364251125457713099807941015003061886389277220433524734184919306521395325378457224024650435652244717917249305842140265207634766091355423383143332653509643103297537816604241734655085365930327045244687928433248910495056456787466893440718609263746817363172978040346202972744745118420692812228647004810325613603148186450581827717628516900053667467946216152881381739251404672265564402722469300896144070988520312952875745665652006152853183552474346533979137274633705691427420152559055574904201795040935065228352337546199041668176242257131669760418666244720142020448072329005979702385557216039655969437508953875008715257196550000772099963069351027259585275220308800132625779744442905497231505604721261468792080400062221288968102438049650206684237467636959499551007965133200480464950822495447459610036666942662382224061096627878049814930439191138879302889233922544559545176695697908002938055420380427237128822221459497862411066550102461823758334481868779020245320747857598607157601519083613583257512489451838797324542118866756135189879565061948778323504091577850916232924335350411886523576244923496803972459135986442372289764463549244347723839325986707302143208793075708294931676957349660235484237979954891116208928227796300551131924324873845525390972994513041954853725483696443300101132910815068202519043745056007960236038117752213901239345002254932364081395461700858302813275848065275971469361714486675457302213874376892541147346254649229970121493341756272186373762051805001597340298484673051358081983418794047625660554406293215354759532769552041331101190484789084271428614095356417836803243856324559918522280451145105971073478431607102699499593672034825277410430261844690495192291000232838110152067193806735338446324011193890255408363107435067261789758054732770795003798288642162066128290237696344285818460215493954328559145910395367672421515523540188640844521925826742646825106806962544451528543008425135380796906134118346829099079299858769020861133332872996559710212465362198974112916920078638282912953957879202899261151483544161886239190713595520889506475760439073603809588157287770482918086075288508423924258295038211692503940252305540414139651679969296875416432388218858057003487251210065468175045486510778370150992535521987567240639538988072352762832416279968680113910656896930134912180792058368553371416372639646257017286792301682980046283945595883804602000846570496650021094128126935043632461268840692077340372766698450743869468344548951188405218502127215898636051558495459665132622913105393345916799207206548881616603282664172971586869654947262661157842203395612444805219265868632073240904583678726013953294731619420821215076114011687924970770599182857818301802581610803701977307250954960367230925369884376300692414725034313377179718243832446104533181730974323604492661189123597332474439340111505554488670406641437253914884131478839618986526975807565619764332978268260123826028414513461245994593955982661509178185291949336635225058771165317919020392975867450078333907017590909128976509776455112183539219138732814373437562891468904270360700428522494922882142864034068911842805485786719003150850268224150960605785805953323755066654852100782308249470768531471853822163129659387890988150082583679551698603845383875476764053949138023294984554238352588666430735893319328149825887609900353499495084672223351302625286614614318813494029762936111727236945320474891478923995130059286460228261642648303656189185273212103003363688033108985890637117523786343467905501348110638204430607683410406195786586657839138491477461172456063086717902043642731893098297305633912658982287611347451272357709937831562716182009157804408189602574231706821387881376992914927478101698462787076841113001346476657957314527120912802358416855983449422261857518877629303978220981652428080854831533976759878740865631815036944532142949170696060357673691747545982959588003082382083803263816595501109180437636846820595965262907713135913421571289816475448953381473115448189801977948055306067679717232759974692511126588298026096968899845881309485463241235708212841363603771452236187272630522593759529038746561328939454811124873301562250787435469081432966855885998202450353270634639887087989881845389290002256431183913207451816526165112996071516225845470341934426176777308887714587965496530209321669229821199395006561985031808202479856604333221023954024572379020213702494458638247571144484873565319173539322973044002898392346464140125975916116256927601580609146498049654270831400131481713367186666728015733633955053463214823371688083367161124640679120461745932550479279231542226031760796265030626594661614359047765799670209647586437213362409110222515459042169694653590966788689670599939146945409995834589539265446969128738763818014856253416989957435645682259908574126403252808201984911976061288178784354629598845847949755843478593169156463469948357224449724720239952686393573012895331397818563872029615123448557975103242787145762558792397677626638326643510752928387323388685450059992385321815898595165733078154237790937378017837911771706727607660498004336031730013839942532953737260815159578131626036973460030643112337150628270135483975075749477511991053308606681191272565209172938978282214692380408787125961618845939384015612706670690146315933982146934832300263739715762724606790534977456030577249541679604079188275910696704221358171478700635617767726593640552444019638747966122622595041735100974784586867437534501161508435561298951140495489872978337514111766236499488799515443874735616134308494849712678133113426100663797933899211835647224595007300923977393964336132356527192857032483872466888193942323698394751313093216290756904968241442775928618288553140753263030626086782313129095510299462948281638879627964539481375640026597145350322575097747976180171495026188711329445412996643652834767148892422516441271117437356969631333138866058154316770105278609404638670421257827084780811880096606816866644119468031322828580721245709689090114220694237746870649818671541217425840634240653184380308016559088674453209398712428415627520977572312983859850078744901694932612204243298454963868059237071047724315552614354933712170518034025421660604097630038608348582057489253971027842134909651190017730587311296026681209341553372102315383621833814866665839598083578251637761278849899191403402877844525024028047186288374168225231115008789317303316913429476656969017900587743359176815352341501578266642394335027935283010110685663031869779147038486861505271023990508197076489689899134310262346030889199490693413597567959556945187183495000462997883331752123064614577693758939702978354634369197316255037174378250306479588784643059216296173618537734281121591147410681127984998297894824874508185534278357082687437132337935396428104049355790268050905847742961029079064505269807618563754631693680297970167093008113388385078823140139655401424318858482580206745833111369844544480111983388472386483535760510658964018031691290830940230774953568896156769196289285445440182367188422113452476472459614957706476022400659433425857683984287321309326277792348101169629097418871644399864417440528850592666319222670501140560575345757671452386649245193625095252991212127766064896810296268391289076429560008131963548628175098588196981159018133336649931686643396774061305771047705740745404069355849467656934207965203544084704025954246052969723522617383096393320752216838741441621832842959459006618435168062284959679679295636668597467522331099753629062566670885648533459620235025338741036495660378277955514250925955600314596643185186201236815986259704150882540504482253792034182810286683293810048426712707793318458767384365305345096445790333306428067541671686134166709176849933067624264764788998889428328417461096833614168904099284861229933097450525171738758376245638848522603197738227729412949471132938636094681892280627711017343192316079850601489053712328601190745109318972185895764902235517595159389456560644344335487241754817221785724484873800036712764049301607354810640952406504428105349512533128965723554310952271759822470762945491117854275766611182448111745783198531176374124021015151115967881768041772182279403504212755611950216341012941828055695253636415955979167851289546699406657451583547616294508022006373301116809201858772173345913929172730465842555283416197812085152619170260648335037926056877862620674621657173426161766821271790047225167240566197619091346110850011837549010489701422052234966108097682361369584808669335669894591471597443139285057145619426253815493746009051438467888300106939706764662842774523251156501271351621159161566615514189175683208546332481386819989896689771973954759102947143580487934782801640160992517694216557632556825394848834333572298334275295001503962459562718726197018491914931076197500945675990126446317305941474176369918155350142503769650445750920707218070817222491387141709774179714257603991539302335321155852684984185650697585545630646826098027719033188112069486181540042743185809792606499319200038074778084297542102899874642356653416363387489304496408469562200482193340405899015693314469899470170441821339084181014864812611166653542319071707709206871532850598486929724751323860505269604962905424340605207328095434858600295956032930036495831291156593568310939890479234985742919010378058206283526918622640760145180124292443408064556584391718170221451539706006591757010972255931797350136549895937507453372934092013241039043395415784056034544510920871689715237013564582545895086964744850011725172709104268759561801950624418163805734204107435969740929113762439231160011956979924908926823756220575368863182943907360565861103995990183885592362398820569955980924373995829190256523262516211378217550394710179238706489811898862575098007423920690421733234873323326276586197582348904122429859391250748112171360576965220052754706552375831556207198926225279102661370493128173671639144332320680152839854113836397886580660052997702776192182124604615309157297963589090935850070711251336508608869863756960984637260755613686682860190531743806199461800437683173477361110408133605871600807733235409355758472836501202742041696849150966908794919542081551349516531758510221343019775743844502382269990476047840205331575473375290930331741030507501872566146231377061718509148891830948282637087862718686446984289701999720231199952688161317708414293685848629091455313942960771866835427120261192592808587352912315881236577609807574128220120820441983927262817721073464167859238492332221372429326796227739797865341726508974971518674556514972035449143086366095894205996652192543236982551669596329490722890659952815876386072476648966084852266155119267051390347085082590731177328518995521073899360633178803064183046261555516822225752414294371558720291747695448033267997104618632151749304360466577406258136278905619147658978441200993062684562023805293761876145367961861546406413928361297765186621989619713090956457722455025725637885115001616583898281074495157977951112061956319489811668212711314213754722102098636796326517530259359457178191024727509899632014554679122023293057320420719876450852281202202372698612752653306272079395016396725269657454637531466011701357531793465179154516023015446456327583690322511508297364091992406719695333469420531523326617411467615158729573715162519315886059043883547822996610182007763296524851998562050903048422265595545828009335605036641795715716154272286612918541364786429951777959522885597316812741825276269537390253476438260850761540866371080733263861756684354999407205666346194105592050596999786737581335575466562902746659552202873772003023205271519742073737859751446080661205873636142170905705064829212026480502564778892061814821368582881488421760705501620321878777699451545370721868529942900308046322013653018131176888613059531261286177629692520229604980479590392874199047966700056178196775500177194389794574162988776640443478706852351534210616583719845712440566032304803935564249557996129948108774079382172590171536062232810330048954634219982300146298160740606071430096349134761552323488486468312069421101920841501720946362582043520016498301556838301873231124368063411894227684655952838824575951109848072518035462969011132161686579851410631962063223938180825155552430713643801735148409307387242260165831182061976310803010452706185101533095770590592314670474185581111136748190629225558268535875772635297536118074428418698994547134646965560374860277962097555137221684870587917565432524561191656215401473251017007571622383300785050030043931245738228368882873368068805408388309553423403661925132736825487959117984036409828179748849585500494913346321967252779729205841680025017572166419665397409889537089577648910036144541525912382429278464357240044605425926180395651886186785797392983383248389078247555335782522548697115304362847356950636142590343142322283067229559862682451868095777500343954415536574545916226727681524623397187589213792732978748218951001129832015776327716211471360756072142491427593746004016373955457037353988990693671338778414073745798177264955120763629116693135192732967753694267595010358026030608293522235374093051294508818710333810691960317712609365821186325226148310524831433602720135870788831052137226579100799631044835497269584450139018209869602089426104893460603013233384695708200281801522717640866252611040301041208350402022749253718806938070716246382043432706631704524757653462656971043552338661922580968647043088253746495194137262396123864054772129783510567042385637587869703393324650786632908572317267078261637661313632794787888810392260312270696421434857838356117768136970613211676004021546340467633982899194830123287383736538968692229353943886488058554372746434063185544962365194802290718684556033796570345297811539219305999191852951007764920223763830856660085551052709806759047038027118078509758708589189075071677605493981298585969775559785683588748220363000151093478673202414934278141120677349557422105403236353045750887013170620343531460102442379565203846476305465878530927898853880881351811961777564825797652031649818515491254698788957157737462085755408736835767970297978387869456824386066285249395653432028339938399372285429751042508521118504071924080803497489014465079651679319644684523384166793466135865003273773074380336514660801263115571773918009590491452354959367124811095499766979011831126672864277494429045860966428530321813042168601173827725046028472301791734620377745647052226417824628490433967124334013709838042569364021804844193429240876820143122913024559931064707171440672240258608828482857912895866293757882468626994139466218397440118988561391819658044942458482776914260651910960096823388134346848217301782806192531079948078917150286856209156037838937719223179454924148447156858356824402238413291916817120601093142541148773287333938757887163939129756854028692271455430143456740894200408832193052701031966412827675485041615424494378394859547579235442484390700229839211435545965323234364606477502984763436989867755646820027359172292685810354917061749237784153285288722894192188257175164239328488279022309043047683293267147130701239377606279087832092698207388241396110691206939690865433380630508241239327632667903889728996873203222767551820706972156794068966265780598724043499363263879922791453298538537196420890773419595026491943088424538579928515121823086437122709506398625204218563565036171285201443343127503114123253234922830254144753095084988916998427015166582202745934655990167625676745328268354657955124953983971783529422921150714581858029922590738941639727692509673697873734033078420492068477222645601898346616988093654975367664402165506359711479526747737217546141583166801268670367081950865997520988290564950546000337705176779992597217479996091320333841704253854916583064340925681794382241753643090226764431297535368298798152615436077919349552646108482283581786331591977731763750884425865278240556425905699010927688836826622017335536021692076879612172959898334924294003920459698628700057094007631574852317868906257889299255960823068733296894662113172291967360266741740937474610127140859185158998252288605674993553707261986568782870993652003981186381331719318534778379731714026754255581346782770986853457070913163399842511432828687443240195143916407893132066015158896831871025637894033812024357822742280321270620046038733120031956850085004938976224779500006819901663257513070044015595035658484178383583776585408144964153369264712787128532023238914013089591914294322311579516087592939482283563351654177652464101912869023829353727863976968741916335171420526753133913847009447800308763562554491305248440860347105047579124963525331991749225166652255280007172891534486423187429099252762394316238521865724283510665630120346547761212190920147779070868997185344458886409884137293884386400996861366732356924397628091710589384207381557907103223390983307537039022640945373908188376910277057829012471531911833317680802999964975550446314606461079431072103116866813071716666344888991606729326480125363785241355947399037153749066096539647407655378323275775370563830902724195212789735927111996287495024635687471722068919370238396976536383069795002624090454906045448533757596537957412863790021948322929326392026564132009331288414510644150848865625051489038771397798898378975888942277041030343880869131564238313795560876932868735731292749976378480267114331798703168065369220073110548622022600511311630137150768357994314866555329017988199086288505043944931599477458242572584989229090652304070741844596661159646004946903355069489451088045490665788570945614945058429370048926804367986158624624089785605677849049302999570532794157192392812143434375714310652015780833850508268364570984802443269840995806064949820659785821325302038342603053863769623716709219715055652541793400199749538319362162662329344918690718357256125214723959460150180865827921904749763764815476069445170420141367757034881944231664263751278621644257852485511360565440701677429547820217562053280947906519846304771697239053198789950619843358558156772835456310132431292408370243543605011885099795735998991816807488730678750144953470880052452272128283431626076467511710864859313518984924225667326539017016758034482749557348450407323250554626045869531997015692887691230262331616921066124676779453560303637906957474366690978569984773478449216229538645719198292736983662768152398949914131577949882193101886049189226906639582926624391461346449446609491844203487304912798062703674566755394820700125861862005688346769294505790158476006222121531659168393086638375323270399672792999477030221751402088967571609332110827890998466445230457482831937411385315775910956783103227025920069625808488003436536199025261484249046211491371768020397942264783442348132325761606652466097449096156779389173854731449265985819835978663550329753864530196067592919005203152290088764528737751220587627301491102653593905602976123035371804189898360311547693739116094014356422938359739587162229860815006679263639213531033921562520183306860393016315369089806162897293600240590023655692512287772490164865889236833201051465877743858192943230623716047917547202872678912114625168958378429278782330211154813547429718513242602931152246573605619815566722683342836567286126979327497289726426923083319065473980508877715765193099354124349413951867680621685535898918432258371676053153171035718539774666801157995985352900302736449989235423085441967922443245184176967462398045909569472906205905312523316752389179179960007557144585730432701917837716499859833397751155530330869131063425346916021430956293339183423708922361030896287695523947051259430462633996542720035650030771378498608350751418629728426681142837262405593311259718772211456300559354531098540664844940663351871824304616445289389856700707694823081778345417476964485248483810785582214592013998041173289448421366697132612591380738559777479226584581861182055815174829574561658956758917694799975269387102761364904223068708700002903725736734961751442502102651800086657048292955844010312963700343514919578651026331714763682515282446265391636985286614425803766618906782162636051330842213557136675012414164164094786563736774395750822210583514386175136040677265166978688678301856244979941972935994479105045962914215709775689219021677141194989134139952381934452145556765936836682559189543577072082362183311248088770060508372835020583394427331719903698349343850423465848859450122477896559039159653999384037070211935734494102594129219045556037248916406916690194154967575772586825391004639407812924383571362618373578856562380401883837757280080434451148414605503212072147176635125173369149945072353132410088870546592329882347174640781060856907484372057187986545746126624209237902237199740246436668649590408264400661133651319404979259484652882265991259360887540227803659762046263009005350349062932805455220576551502102794115633767549754820614410566324869294877113698086390889835174191755910533741243945321845738628829469209010543193994381491522860586015665849359524906541442942353637174537112720479517011103472321174145204327625991329957773201610310984345343216696580212856865662679438586579691006902507260309053023299683883794066351300501682868776378558937651905257414132616942325936869792006849816516392882381395699221428515981212193078125952401364178901325638323541146139041366779036074010602117764675009543044099629611230817139322462340536701355682152999024725382948404550880691338935236715759410139374232309247121090828975446177880966179537880589435555748393695190807627587763603407603483348289432080141569169652005806768905815077907725647652090744483921893654216998791713292095634866766433389688317592039652618860505876359941884756811248673879085065009272721392415744004830980923344916468166776981048296473480017399235181668845252555906923226315723861362841143030926775111471461868710142578352438131928726981716333283093073112847548435239501726171268097205699620436876114780992294476259083088456343465741927039363588013534365534148801125228103296081120839510072310258685160926743822089433729934047063100154006325935567962240735200607957273304392201775500091402575028219821189214645478235564396590454688720946402942322033167400076066254854548637861804311514356015316702984090338276120143507407952440026262848346264752548573112196900368689803331327546831859554302894180896914876453569461407015340166075366187294885563504465552574036773671617378228256105663835938643920221142270133147085300121904578818755507938246601675180153760282771063398855415975629622694341848758948815316336639169433677528508457390619295806421052035536085610990345828266507113823130925826649433594341462822650672107290964698786408652583700278735847088863505409572164760773328018029966060553524967306054774189548889508954053970176196086404490026318705640919667887288439127784706650706653228241758012416063107949449535696034458376623210905940780257945424791627941355778849232089666111810996559096897631012077882590002404251613655695598058734225758790647242701610286624960746169959820244741096473061012189405895150034270852985884823404871264947004120394707771236439728094142466550935293860780100611890840503939639498833524659316720149773677267508386985804828615103576605572696057500628671299517180072738795195997443005800717843876087300061840215279991142328070630641708714779390993015215125259629276392664638014027419888646766160196536414990067171724542319448847451928180522762529275778586189986679279456124733660078811651871059352276825470709665641643756790253968430373834759540425021238338143896699058200013794518926379136071752697698918231332629420451831195277933258875965764255862142646297651106236589068481666320202990123437207632299737227925613049573696585183791555298985320037089637519617043040339518123507522428489523216839951074951183210645353791491852694763565307540335115781196422705879238024911052377205775638886447590411178547124662018429872565998750497325655889431960257425980004408041129449190356576909109080504654370084116545951831007267590151831689870092343345856454787787741847907609428974304670150005259136196775550271989748701373246154701719831036888810088513283662362852579257361688911803079577653966337246984282305220603068546939030977739836493186528783460940316351908909387274268377244855139956080665048719661535147127377110408898800684669931906495782646542062468394040998770401519860360884324052365091101976964314419441057600270027755447165914667618749518292240739632757014683160646869323831126281535321346834365507687420335526066458917090123087690632925692860423559386903429648480282751589616792272489210684316783376744029485309949192234930995929155160707943246373627489233146610587346135782490424143062387182268659386244350556373202382950716339326969659655817284030731093627673708059818824915575325198101621426884896572772294574495727080169968677196155005019744006537823597916963881513411704458135125897454770280620280875703163360428336923127714674464092340359901167514710273065349649869961489077853110948308154498252278550779502968035063593310780132497017875417520533975501380494460410560262073980185186447154651914899851378245068322455285223820573978486070988352319449368791417217373034181168962052657309367527148342074094114738641234011604740911674557552618497177560278612002941713151884240618898331486727514833888774026592882193083260456128224393492234151569548627941029091042181281893594231060166851871818528508152083659131041782719871858655281732138047941962596749826123023539618307494195727393425281515991786853050043656266085172706300041701728897491319812045345160619110202732965946455370177407090448457236256225229937865050273612504843721062803650376656017813812149449569796840813378297327657635605814384998117195497822653265725620114047236608477482285857748656595616378239726212045237085666853962033490436205671425629946331557914410193971086970030411568273562289746341594006104861056291467191354287735613540629707257217099572965187749569057051564094662985567085742338730481690392339218112353067660870401807506085339906832698303709306080939454720544749864943164594136371767781320636752764166317543161995707246487184410222364704976697774565207102705699869375300796397103153671289786946023981064911273489913804409020483577057008782334310649356041537117538470601317748616378666466317549660200748636481540137807824356203621071982334673637148094182412125805141798579449914647576748029288882082017907245498488935916831720075857841704680553948611849800967650734246466072242428438924860013510285217121917055733829854727395049007062872352829106378451956217779699488988121590691850463717528591446193920539714228736656844229993129197686572229414902756812106199990676726937147266017908933188224958695445875832857876718204104303616226164675042525896995769538275111182850944732275481216190726033205472931498486554252700779768980143942729645916410851311768920146978838308816639172136511934546784783057542236065213097421843009420229693000572948131175102191589527775400595249849051873064714441610152331633856292560767448221865322660128459881103619098371190759709043080238569179780793342004307443963467363209942215898861734393551658024878581392626448108279411426303283169134691816490106391052540503503644465031296353371509409255597712486029874794518140131882152309851462556179340874082793630123167136967651145615672905214370986093788922860333284260233704060489637896372290951824709193961014679925429264571894142822296334084509891342481864464526725298017206374263449830647132136247824735896608712339703441779035003500874621573967308229263033042854228191084718840791425569081981033733818580697395034872910567566069509087945606814861984387063670659624187456476662195267013397405694479519296337935751441373423526278555035103999543600215661384992406830080749066404362021496122526030317272178362218947644806808376413402359092723784794027150497555922675859853735956172987327462739711269306916488667741659250144422713312689486979638845364789230860317341077258870301966489533847741781914630320038383133970494418865178703146153590905923947834793649176843860643511620071335239170750001299903315067372138669223435945690898286902519894147906149942388857608104122468985133047689140046387128621165614670830614115019454185088166199418944569426831605603688359738872488660029835080792408163034684720842933528250076704163426447433183179883746320784827291763481673813018755773004482191402852759394622677710544713250393316355450102809699582567773454988095807948951123604090595189948148003691548373342906830280763078520588807382923742389103624481077468993130384869784902737417817317757561703303219479347317324396917680430034470826045881738059090627324541567123247221450963662316881758305263876508424788113480119718425800920343179437808302335335185214566387218235383983055631900357220720500751835777445009860815918051192954020528945328002742846470409712125297754548923639629010430726588318111850649744690999591004375420442231774511268698985707424374323141673910688238542110631400219485242778872470338788444217203058726130746172191856709245352229116200163669664969506146202190928049285470026049215629163924985203947092761742397390154393963206493011240969261263246393756650446801571304212237843345992176308292280227321467964604931937015228114035602915817272267617738921700241229289094396900398165007496545136123695673672559074048425937602716917752630544238754960233531279472888817414392117476369496590287163735967950036380284072068313491021225576481079692427462987785088997086929626619795572165493332664939786239923603953912061819097058613818988118012606138364179316521199110112034475649619273841963950336068542783028441903815402083087458426039035420333287306069708656511045999305918277459744013880109204755808725513938539591112044581551524579335327142525059574379569298941447980717719611999617903035983532726937563252060219463075694290060221491277298895508516561979556375213880989549920081256761373361086067309906447887498962030505151958835908242201269157873371965820957938372766054164685972143753768970275206092843931789108677281975562907606483311085203022554728545030417345733215473675580646060463310054970954839486529143686331416083197386190540429058698666055213620830350944237137857023448290013153016842690483828095549825437953778013502120572651322507534731604593919754402274534228232109042720203490037101801766079488827523140528284574996854272831829330726285779143260137435502808732319380184165879604386491140181807822353960758326965620961266165374117449934561510938938527513719434292537125306081984908370509996927502940513717684201139732638908747897431958860186569762590481245478652966190837067353575022453611777895503995268122945203414279652990367725579297218734922836033850647881941662716969425227775297121658969766092859247162447949226480116440229856654112108011973390944511307678709873007206991062306842899298719090681931528060464910793203903542949772109897876094908551310919652273625459744363672312258079577880682531361930682890580978078988518665925729728928169766493119390425627001413813022352550573260573506976314146969767698393583146038560530169600492888796458696528076044663691511331123833313274081740950199016498089669313594513469794063639237969402089633985101755019692638190729730941842300207088140124660648356172586658378538107872336444032403038798588601227556549677453939055757695760086355054521770564561716562071812057335469139914994540799928706793118324554987828524511386321323604153766368011478951065674010857587010005380900913979071797944398995585069409606913518880496983615991482695871327845679138533561343500511904775732074891505540514049565080360698212816133978237367711186540096140150641580241103549752914687436713363616588574535136484571881113309584809409806723828171493851171446148263767720344500674857011593906373245760137447628895519643998843805481597694437536593891560066690384039903230399064499121635289175384328207494291400869406722035730679433760647090332939704232755720921432476454442196949178954302548053103395437602850205926324307655882374157660919982339583177886014153000439289090138014486079806013752441582024557521811792835575347924308117358555384154812365342709629682993654194424151718958657460808182656616900274421598143463898809509174496620987963155148149245445386855938976259038788953900165921313737768781973073429225502029124850515688428626110698669328860766231627211589548072408985105629384597782029424564019645883243550005186100588171447934709566175636481024373035467917634451177366059257884283978234251016946158337057297608880136986688772828420386785156576146423387605725215996902501962591701845455522736243177506688694933528997665368531089671935049702562608781714408881172568672064996154479476197213941441063511916810771494032138168197827698110085257628839354061153264988248364007434512911642155883981388214474514422434351456652996662773973842594048563586554787433379430724033618299743385373945609520976137467276713571029484306083030868717757297531517701670887573137794790759180607272432905945509622852345804548099820502379378271158381247917346076645235386797780187640190050402849943774739619281724179435030389158454924759476090944933617888741576177317632964724490148680485835566407994427524152417399546004329494636519329831201452143126409064244683479428374008294285106355722356201009884594433250830916290535451146832368084924499024486546898477322598875641577342015050590468043516163506439798867068594707841620359203352207657262463068150400612138907502694224370494423785638108759763568847848951661013944351082081527359652323972770421117007563350856733132811932488404462838824980248401339881899497102666243218447614579306365584812468714379505422783428648089095594086554983335039910878884956904446523384171750195362696447206717858182494666862541986926471446358010855478550279042616075135307688761521873501682070257854816924136871627725507418187297785293395248679008848708460150810074944892215733112054952776816245182589437950624742093210407046291136295731398565123792864185584498093454381785441627167960179191799944919064098750653324317407298308230232177211441928421879281456019346849811827112100708194269096481156750463354290712820939414805191530148787434003548378178605704128048415727145223920351856243947371194409689604833892357673306330564588018967261167805283220567748594832322946405285812130278976030304785730441322386810089475790874238792703457248846499692966251812631601197845580027737135014884687367201442874632049318620275444007825646746946219045999398081705644550308532790158881775940793204262646863083373386172629558145322037098046163364616592627483654598369315912794480714082378345848338284161955270384508060531163930344865562760109428510529960866936648805070443912854484817746890722865737074455134031491517833015880617292504520908599162950059810500353021314831530028800918516703808954466851429582259957721567941305476884375638703645278961213613677482398645973455985891998800784712485343589639562028932214200113362990967220382742806291068021202961374389344148472830497976773833523549783465124540935980260752353210109255670049564063551488735419489036196220969359912913236948321134243606505449659139491366765696753386078702709771735425046045761463157693106602427920071531643126318607272855914378951616415553322170332783990736041027149700550495829516491501891379340228356303595312200278839262667936545710931500242811275665174737482328039056892336284631429400352847852954174196520623583728913308461171835230735016427331352045540154367106641320398437199184637401949538997459862698389180483409996868486775152044240923855613686996259985159282421756703747776589635325084311374323455157203411684891223320152783401319915390568369166906878252005051679236646509386744356718395249278777757109751989900785712555714366308137757345376008862260001256689506619482038620669303972641569805630152990647112485856310835993012367302002202328021772546918198131344648971983534482743293883848802106110654098323151222982055961165410339816891304426955174997666114570214863787133600582309432859729931611171047571942541601723244066291615020458528427965991599703038582300729412724022202567137628996209429729405878295637969825162895434149580937404591205837138643581547565758933248800418690513696305295676227202829730904875549327685314944664103198810964945856629673950009238351303786360358199452349336688435420563409858259904288482163724189275069513186489295966727092423048248889893406752733706566045327264044962886831078267958390984772761565171412641183143791842162778097182436618171126358297526919617800080552187658463931895787147142668141725851233351031291060982191148054063089191009487500920377092986360123970346839949519328555075661986015434598928247257612463814550360943496171707872286394674786670332250700586168714525223699910063195832926195015856038744550031999910117352774630429941604690660952345993741689955312906797490850178894423610597062330335952988815780075596717078393021493227534132210233114171960807540081125186210253343513089688682247065989047193722291433014631655436185762896961217445992126878746901314148088981823379562301084257014911071635470367102539586575954604082976563497551573083215558098477999664657418038075430681534729579113126503279429754518477818691516424600021468141922183058236982416511104554087953071835353818802759166151689975310657222425034758313554752019592583742986705112066616373655614374380695487193650232337725353851146523979914839213212425909569766215845982229540468328915404740995577351921850980227249834120456141352278286433396689094146237340532603212586333621078197969099848691786167279946856835605810888325513242265006310779563845928053039642143921692317832776133636947933549516339928475140238419917389601496835786304950513685361042127602897591451122098466390198780537269387258536335863135411452323639825451968981260445077397534737203224747528265202374693443213964123519653655263604873838730712921728884779289291869252903985073495792982303859284381021142786708405530835478339437464134626814494642108707867253631250439324269789368847084650348845688702291797061764054294728758066747499198372907959410408927229577875613639219848431325911216312366868885470593877353217790071829235161342090697039774561538230246748780888048631429222031571721534541044847953632456823068491143603600199909192647882069004996597867614504725230090945863988349724784711856054269191176036452463161549997753919038192769885839719250712597845897003984256072310261383273317664349293515368408237894607092161812751478120917108447707060182623204182027039312106265223139820350704378233515802243605523542078906671870429591810910042953328985648161390587584082716311418857535550521993653742293048386721424617291932248456254596942557667445901670601978644892790475054199601815979769996778360817203201083189177523917801656801099172119578499808825328103733751170036425314985587491993469110941002488161317453706666170705884424868927785277745443650395942252255350593190801500978765316418570593528626763303956688911644746599705829782583939982917942084086994323194821413671481409420551514842077977568837832184315655052623833924588939270836159701762078521260006211158567088242106424044924162897260611450993716954045278461730776577169276509511548262385936076775532915308799684351335541748457348291066440180630519596196096513921592365198063219799905171075164073094732864678283272445102269109806476514244343609771759410527891697403218518781883365393877011273666388192529329814400605946387612456517485480619092627972624195077796914617781319833028215252903565817687978590236343207773998650731730434334028118518254090485459319295882808211011604364667564975887944059489561708470098395133163152503994834323355890395887930289786442649012669181001322731482276685136219988518976104724962646207840712353249819015877645239115394871829602602559318367850219065524641827523010489651257739451311969325264622005608474225982088370949672393298374449358841136015659010043067029307902601742269452214936343896916587260042325488624548914267631198596409190796647510128895234296600392132414070689919307892987754637875699745166907795524943405778785051565985051720899666022506405713214322748597395281508430331506616011976867353357229033730244049380494629438489670545912394571927172371035948253818482540870832758803441565707377613896242046424736798156168777124134442435182621916666791615552515579231215638490605511862395590828769939950498586065114478592200250523135667202434377208479278277237961654064047790104785713138824577221246908502330915878057271678448083830510330940711606167251751358636911341084664761889760102775601465963709826848437221726974253409552279575217415228858419301595001507533415245430475903681371858951908935553331580217495126696307420754685772363160814551499998079140841218839154270345598313891606464163125043262264229622878993233901475129358980636924410715338667862980619032218831974888970438971967704775670680375967969972641323237912669558153752014724995976034672408544424034774636394263133124575293845982321509918208000260930466094260728465435781452931384694872954910683245405355225404798890632358730715500179643801618970263118549172453460537830862017955317607718795867177922393776410478068326080846940976096897371321535927289196642320310152316807110768772678327970472503713722540209415136621516960595700603091432991177240925173138562413983412220201612630017257942196611707255917399034364591349641777027451656601721150840065484742074127618524700685306599944646389112312639568665530595579829444887786772926749055043833224338713070106620603573897430525819344552083281144063468745297355101685315204451463215873178031722128351524862872941772376327670029127908111228451465791695221008238598619556942287213694192250520225024274774172186759419713275468276540420151816201466262753815859552730659618034074484804187523326879361493043244785004676828692209173873743771058054452103342692317703329753463941854674681663687755265116687181759820116137351476411532578520421632250493623489309253991038642061336265191009301560234356665629318247792512070730429758289179246980135950762839144697792766197247725145145033962126630183109557282955705807603266720355362134776360240847089563737944815831348955629922407621979036917381298200890407258972313582244261200941340054357574234833407141086525693931364020979342956918073426635737976455572460333456705877315074034823484326930979030947669372777251478242890683821783081623350917432039730431763056637517694511952622524928617125496241806160697571470491458987003854679437634901767667588139831209820460484517804867850263367838166591751179269672150919033577602800519176990983464138916254199254535377415815304896435315128460702143763177738129088632170656544252077275767066735102133671226663599563088585743856739259350518698135772925133650787384889995036602753049964979642651594315908963138501796806354686778239353630034045068974216167334658166048791001777506646578640552041949237151106475282981695446499775355600355420511280515913299267601099096515122659565197171210803348169092281697788903168578046053144820799562308037654661463861336991978038249682441579883260668843803612801197651843848188876413966452647955689797770706766050361806321653317786219501690316437151502339399407679677601167430693968360586303105774386992056033662013781959057457078293966461317839462251912833571777068816701465187592439199422273398659965197548881393106005779446637486734683692984879723390160786438345672592128801893419230748771109171604788744012071199357341813740895268422517412555838502673285494979703397879063754106833416740396764156481407681175210819762252591781269391927028003558128669938238196582004765929156379071714226117694829028674452170063936870346947459510260531186765002004991491718403195507750623792982340959068366864672299435557294551704380342596998154996293808283537271702937432465139984666518000672227090816224844058120186752919312622014512723456004823767922213305333169135193448757006187346243210576055556342365875016924458676532255164444158215703285402644544642770028692075233891239654979087875758780255097526681667215521656001018462637086277111323039000019489082958589641066723753507213688525018723504098892709640054797989031652224912478930502010238556183065551292863571914195946406083920044998431716874461011700737871077390826898934280251591512636902339206049760429893298765229506559178498303539853666019720107113336294740000718286093757928265281207851731377403298618759058753838736167070282308516763646945906371836468342933895169240206216503184679572695504709260223385887088300930495834313364183786167824334097133678472820791689089770059248744617880790224587145120602026861663008229206606955295492600223431839419539997527798080959487931989848283966789319058512945515213395353974098642821048567655697678183410324107647208345847729696316215777836919197067556721243318346892249305382997158535598642249699298901174744740334852380324659963917941578232254284621153836630406725470963396449859125252177629083165243189662611411992718587471121035733946110163172925925520520990613705861550626434580759705675882218406102561097819965588743728480949740775827364478522920236851141813179825131075998026412920026803162175003587067050814772598460554159323224612529201988993373361073865796821957137144853986060581929058436175042503381080260596302452076509815755989290123027547438487375618706238670980864028639043217616897514005891643497143245377291652392583139815835386863512337052793341624446189072290557188392022223752722071421078470958426667149270181616249156709908761517460083101507986483994124632402324057252400350335282447828554003199628365618432650699271034117961978202857782650242755510004674000490088934622470217816215850306094284058615009368271276604965956076309051944722528098699189758530406637232061872464388195575551432436134575115798660585856685797495062892282517028987813757962913290061133319973009681306841635437694579299555963317526436688509906968744219733090641835246302507516555882547581870382505617118337496668112883779239179659631947241243058773308127716444355645731989362964611017360266980851363392564863928878390887816769695755441212199858174937943776024392454065365645249256546909490104683630670876962943473503784800696327356960509248676148488735599139078383708578675545406396635946061678952348939658844279470187434573222822118604493305534275621912202111722405520096788065129665238559882281532318931174018644669260304010030443238518287754214640206707553778318966601074524964438922581450155570402931916949101465123457895200934184179498708032490785416856110242098431933967848642152409329818849806609357610098504083670641351689853478399205811830845300278738060707457439507320830595971755186473848470453796854001780182136561206416110407184007488995135324414590388748745965293406244448078760868532797713778367399476678984388391931845544103553068261345121353561279801345615195583426430742313559933684323025049062580146623797588730282311286941442641528321561793740255792386373259583449850467790363289589901798238524658028363273670180196281869495316885352073420408314068003362752243273972263748998122757874491118931270636669204464019627720590239324807038865721150157027598410534949422510365763709094928509252737296018214325085990555053847854964140683988088634416489844114313163032451961186598242427745380864513756313117667951737690169072096860567867459712734594619954286763044772235715808185125885561940631208736642487476889167223232147974413789732041616384727624639352313781051273231871180657527505926832914936804327320922421511971225445859167992942485775790677787178741085205109614901268226295823930682274058661650613193975894862272302042233382404823686681796764087012731716498282514817633004232208421425329697051183451762710785714227322862389065380736036334740768170440724711042717758490017318632266258750135328257274176989315050057961979313561486755181730193699662255507953017576679345786330528882632337697021182792000004254144249190603741918353376649183075409897535280549339431273470841570308084370287065539132861556858229276029867198927440491720954944420412885266635912104127330159456440915785965213286050631239969448690889432035294727862289374876957047382687335824858334663752400823892589327731199082450386164395408465036302368993947960562379041037098536276702953314253545503410350565639180726142402427210329714974442294927329530630615093133026589794183849056724057891541744268420541229338061308297039171280166719129267397852993924355572132408926054273849733963799302396998927299386507155857668706504962890075382543077647030357703528620869282421524478269321191493749875576122131054242259925457701544122938120939186374750884039913242321916987968915024198441379200135109737550032892970454251988473407704181076669340014826917915100081397395858411085509772539445241914435166385418978273000135399517872124111418887336934157234441059035986218829047076369065059985971722337679862514717008206430194307497636530128709007006229917357956541318276273780656661812644695376088419021370413991902627963749526779541827737194558804967779317611387093788697798947519238428873041958712205134082476199587356136150827137476834846063690777862104359395726529301290464257768139070969256529458089578246411299295949782874454517927368253394551356920277345276893943503842003425374521000184059166114892938447631956644010901678438801425049782607103829225345614198037054057539924958457631170008088644007551895102109965769333960230610431022808246974169819123775024498976829358431198685114623059104076252178525378921218831354957107739013570585400343346540338809445409822907528227275132373529421506503471359003561157170631452390840615735981993436411732332553855864787820509436919657033440698124325440162340207098614211144629119897138972277194204461166642202815420847669196406248807608351478372009439453503903563284034372698696536023092652861067095968322574177324400998915299379197976976846723007569100826111916552479585704812505494035182207537359480953318189827839164333426014139412315825078214575778178366428310672467533860621594085853151866684006321875860121041432368618238868527687446883884634612084398369290886397691362160186453973093845592842198990348559959003453678157394281755746909455770238839422332211797217436432823427826786566513869208458684798917549763528509680091590926424142307619788280958826179782395221166318223830436831289354817275726719815003398563245575381434003453969099959161652607227253781848243313217353482322813089391118099887578334071259829935721658530989670552137537561588769816368309543278100906999158252655085903048644770188295698355989447995200957336750147636672903875063080616219642754781598076771575889024823866326548765293068205854289165326678275393285957919287274090913823251304924800992120480636834425124233052473496121682374791633935793616126045386566855975727564431593561387446053163969906762412507873943499187600751701317497474178370215385087214990151734019718753728948474766729453276009549918376647340058063099860282327139721188946369570391473882307839514667385814667425778222865311744241905883577829508334125858299733281941494639117183048875232933380010152301094478449268506455421037650354236608841181470608274852814066392700568625804617201001603067300161442360067139080909067757234191940520897097157225702436417393636356112625661374039342923235991327398968410649106828732638002860650879935702538761798589264694513497973179685796741538409951457891722006138130451985542532783260709958265761940740155214693606522853343219775384642448473801217702978656623582736288527766360349048626014219433862968902433041073718496366068096796759520405993561026519726421407814748464732983340844097434706640212510530980190243744973819353492471394892465788696131932224274904796971958756280425260742692841820648364660269707133721321138954144708125145490968505769781201063778447289509510883174736882919339558038955173396977384910207352236794065113503869399910209279589102184070783022451216605708052074558101733918623695421779438530832420266058258494919929437344158565082356063308673896382087578799330232054359906113833717897682897888695178324804330427366337345977357433935704196104037562601885728650361723146145783068123030581230807386911138563002406165108070078286078894652453646672524912680594903556977862016656394625772889548567373705139507522062031912324598891017396780721348538147004562306535892376952271080685585418772283153208801464601422563953628277692308557596591753792009861169165678244100794418376194546362051581784962205468701577577580321861363630852724225895991276940485271737153186839149657509870050230524867582004293572555234035942310546226743457452159882116504925741535461282989661226127300291040966861563288800483168037722490814345378977012410381359346276591586859249753011571297038829943372452202203405023105347278049392853600341665679991108684862264741689729085048869852541417966067054633183621292951108930798336576256693822043918879894975760288401124515748917987860500971227346129649384867336122758276253790670807793646833172357354325310709709396374801747761185771499459045302730604844173467771927478077415235890690208259284712343187069847898277166598375262814746695124184772427079251279574851451230827343769074195630848830008099975674623891611798335233816188610965088486702987762482570712573787708616405110858051404640878237576456978630735135764245167312871948114680662770478321436845471660395164027977391864831836724486904427630469158235537461516177610319567019715304595531966965541065164368428887677674726662663479109190042974034434219200967309725090242144202516669071975270375588014991299364999070238038245543848079984050189378341677294521997649871744405796436144141876211136522353292583895187168955243947950985541873226301372289449039215532586764414140947779028791687219783010065994268268691214152822262222709240615720050441929168355530983049725512917416071036363123174092346180170378414685285660975576929050475693245747694805217789603146221712072829683307018645773638462766715004685278553224524024232051418903495617914288856083732656072324470990705415750996662823613429778967790691262414676786452010144465256989138535546128347070253450064492182057169562674233345041423130498717304601154166022576247266624309721870635422089867132832493404257374115718813334822497921653858288229894626814845457971020920403530506480645045906192914853028685708588348363180737545253508845634873205367115119965044657926971441200423434059236446717828966769073602016510863181171228773803067422738998704324812647469806434439800416291536617119725184615370853131920991071638972807305767421523166160116802814653192391983291286483366311893716766102761457875227827840826085881074058749229371926491755859494312995184596775116324545862957663458547204676054380353199492211158558114633119373937074377403807836490892288907232481601902639476771300597986039988127601497700209293614556424493474440957035149577430229118825187122745462962452652897011035047825311567701987227155844864373391284711550069402768795011690404038421474366288943923231647542131904984979525061197139012159144740409976406206695564472048899817105402902660967421762955115063015499305749592039100536145675887575838302793908520630324908566762891101766006449872735922760908625906797414696329913163775424372504179610028815355882510683627232741963780295020486045609491212947230543351411357562554260111196879866064991790500741095736577717208303339199584218837602488810849995319817530441241736944429546040025053394638151920237922997634561373794625080307821729318145347917852091594160623803599561519602763336777340076928661422529441663439883896207772650327752738232969866310410115430940614096009599740085736762710332143038827431558238970488941151717127540630146184203555007548212166395126950774906807272610850693976655800265294612215247405982086555596548556657278800389810177325129656040719692701528492448372750418709540452166147722822258259134771414461175450325089073620206549553730282008482959688301300404788511501121881887270669600146249036772142071591259485607780006489455070080978531606900896946676562561325596246426534783921933048281837244221697391448404895343343100195934599509237043168555708320174626630731837392175094738137295116216521311845815646386197009110100555350102163563048440214490645676221752135810676737025301243633142014112578705073754313865887690824732193275623326935057200403390672929205519900441333593732355677144836918543572043239601881315444222355540723657121542031978451534345981113554419688035224019367255890596727995042751693284153414240506990522072758297111746167864921264847353174165370791324088560778737673591956790150894847451147717777739312625998389656487755647862421696185616087674879556901920533434122611419997165080750114350906298266830433852807978828770101447720976759388128800151525184786712140911488894037018195879803645050061224838832077872941889113639613938244502075768059513233539851219346702345305834700886344351105144758933130550007013889422667245245312133540806436781339588969901137555066434128618794226418925877731978791562682555670952102258845155698018644353693407891558148118783504834427269326000835384733071141336951230464693941786881405733481169924196414972373179428927675029777357287741296913942335437271466697022077014567745832046744139332296333319493955779035314233908894775623501604132908542434467559415674934120431075621117117687229252767250010591216509783442342744635257222616938360602108102605196162841307811122829885552874007372392261122679773363410178411337180111268499108413879915250155266985664392307539809204931711942286838142615339373666841201841311650877712825157879561154043102451247891178991281840511174906735475055293229370796823926293130973603829020435284548969083596475044450219461171813396629580143458314141991416209340583650801951737123020530770361298925953620070378836881410797959507795627630823459364072370236993635480491551321290096579668569973818873285775388451961640963351282582027506981787499365060980284044353136525502848572413121439288448947126832568271514842347007698908018639508019554278930773462324704308885667258657138216882285159218095715411598893959079100972970993339307250654634335272569023116519801787987595303902939760552976899635971590201269496078844554099822360328931981006304917742004647555554392584676890417127023572794007590541591094050185420491898723070971303674037723758615954807239541494658832470306320562862345933950963023953767317223879095365333274441456440589900245529163576543290271900376655097513334462274310999142311229381397027277079538172753022354015073643761592160398344751432325505929679895437502540186029160601347850130155283206003840857014218320823824009670838156889989597466913762778202948589328143379056357715019503451286719108119413382222872148635965550135868123000840898181278940554072903222493027569071737692839528055994310867825610117181333685045023858428543583354421487778562819889082867236657511264920618981063593355163191735044058537490257381029684008071774281794135795544728881133011419569053792705428118628989056581241830445227606273140328030506031350032526779369815070727132991816357066784138836935182850449570788307274281315656052763835501683838220751454777837735172914700034454524307502593956744892557731642960961132800673006821634977439558958427757968648147054318866103739968106441692644279465252419962047696623431020633392421563019293282525308487461308799037533484743079586177737007026956502082337531981214696909838506258545007122034642821818960808383820926189422558187642992257478263929478564235568330638393737091938667053905987735257040749379578772405166062037104663035489999950161475153122093760953300337103280660041182521825100288260276601903033144972664070363806402795166283638683238491282864919263648597674035714107717940153983839373937690331290059498093375257707216368315606732671891668843224489482234991239333770038667334588942966931544654061978216432305113575251593883733156151233722294574550382071164233655988083549600266312902389285878082421030005687293134004119318383972779945301756061681782254427205692987328144869203792421379749946524564329581739673751646848830576983523924299779904760537619352844757541499487792164152550674615698751616821918941963784625888217138369613971478531308067037931014143308922729158835854226750832527102802994192853311661501622123330119671194666185706443367709572815309470700371878567943294932901152736946126586292201281232139591243183015714219374636006195498437409623470893058211704663350240945478320441493008945530403616309386752048055020738436820019088348799786968935809112639399830323844965719497897508463760452056428117535755087535263141210351983445699064767219517825370566267612882413743613803752715225077626442058464328090787232860749093736793825505905930519136090414311654198007847556968713829271126291303050184246316979956337139350587356484830982369791475643097103812329708288597056694956660199610559239336729815651069422878866754128041792338497240377234082786081527412757461623337171585417806203472721809661053803947290286784440312681278267708996678646141159380651488557669247335294466850967694319572718608049616668759395969498757476527146829104364969568448551834614314027574167873339892678489645613500560556750681012001459663735860126403584820628416738001386800382724981244827956984306283227216970947661172929476809725181925217011008395752029192708997076687912966587134062674045546817110499255000528200707522249894759980108181071022953067405024720537728153589390444534443843986001128121325935878797865925617080820353588011242181999977246805451457564184277261070357676813065546291030581888089245825936475913382639956312570166428421288781285979561800478114679022590495823202685136360248886145531678033835706643144369594709025375022522470965055202499071877958643031511646701405669563922756351934928148494914605116728089024332221924867173439704023279664694749226018839749362126846708986394716510847369015310785781994912946528479300644206959023872278302484407984788798135034123929932345670220050411682023043921660227674334598677045019778920904504477457452239132859225416276543466673292264489561430370443151823714028041729118460948343538888103958744840966888162252284898469125924428008409729993515247129355856212860490705791481436521374137389419951180692273749148669354727792855553122326938534409198504837164504858684853984293076665795136620368781718065698295269396887219000797192714317328102956547769186811870235646156708361996307432495294145099420640769913533725056476823703628484254798503662252494262597426282589883587312218529820202041185335793602018142637217138596330504156231832480493596707442091791876384526434342198752580516265884774632734460814826616530928114106750055290081108803592734719208680362377347217422386082159048242870236892080205715423819903276978135897925368480642569198029455403637933776131649342730439462417162465902971672427523517117687213058223654394985450246131535651576691105779142942486817221853210907804039531762634039859139711264574771149382853778941679027986983904666016854401418317271194545972365306657687263290979751670846329611292414711091513723391929259002332993472885519653346741367018906780427036898544910847619062752648170642897923032802665340681624436794105884612253588075063858623907237660517436522329143544094232862499330526357690099051954608794387046702409667111422162701023086497520617661916178638866345477807078706079796083900146900173188616684851776175676158540993766388921095737886974476150966765345765826714873572887238088395000343362281422134332757761853128516216408623316920127862746519840260953802471972479758333115028481795010328924554279929306584782683650566506267483849013079808316526603389649523408160486525347520658358677257779239171959186063971967791139351395027237457317118872834577104862474885263690424209822974220789603315882085549065160909869014858605094099275647846762279164326869278964223662683864646016777983617709442083124541324645699844970831706632460299816922978284063233384393198779441835606672962886943822682656078223599704571823472794493000336927969483339142287120583669528472980037429663986341719864355363654844165360974626662267979154767342899133423954518027146550823807038479771661080865022437412774295026680612776917126111589465091147729652555468581931283342602096584417571820859296382973337683405117468171238666186364787562345312280141879612175804994537080186605949115724375137748466598455137188377916519051911591967607594216813328524355989722657063778373012146127788700179617369993003568372855319831981771856061732120693685802921219044659957489213964568592468605501958304419514258582887988505485897226455875249468604986505133769698920621795170838403785697153442008395339608927895595786286759222426898758155271227539603282044924368376391605771847208629864170589107618384673069710513431124295225719205155568801085084118475479703173084168077652863275628564919756493214841024534989492585668602507029331412241993852592658461729788718712938196453912433961053802815707213767483956622054567147519643237076671243784409198457375313946819314216985808061123472376576142850145841860928838101683952378096512676541154157848494847864014277816715522346540382204804946528382622628419296900337392246654423637861589664756921999548106865350869585970136030997068395232940285724292551852387799812149745228069570953535317212651546904162721194611524235975914824658184015286505721671301273235859687823130675018870728536822272700814450394335291538502667205699555955311528603622578154950194370842795526037464206812298405725167540521051649540126254890487586060389030329943710217502186594243087367435555390203604280621485443190423177882542417848397340515056489612672379247974099857649528692379231567706934186890462821534199599136696768971150364862612488901436153660338844945915398119734690944294838813903240707383320273912229339947713696277137855694448318701348265648699194683219480192474399013343872384583462343965746959632504210319167038270671670792387677924257640169157983042576563842290219247131640812082630302073446731880524660369995506698567089930473847902900058933595289928264089915172344925770258543517050718056865354892663269914834582692144497832949979685449219252493335049404707300681462273965618625768845319770096005808194695787594476535877118313846950458099675773001482140237182324169634992899600966215038498525689311782830490904841598713776842204100002004734795630679686310001026293926503076900913416389757269978999446915510111543232474651398302640980997215071009622691659958075087961506249035086973331084194661330031394881499584014665878976820735631495740953808863747445309060748770619496523100704162596017337198231811828045638927176986583748722194651423955760049597297634752852987715799566677486178533601594729173720016834944745688359149813396243344533675340834838003440687465056549915105328324690747575216894657866721191425315600828480845086781483874239563299401390352489221182488369225856543015413234047557783320372454290948682292005573343916219374629368300759113791993186684381026287498884404949442658374472648685275727127819780713200631671617033835172149644771957158948944874970617479198461158347763341118637541662336003662606327043745445004912576591653649664084782596867422302218677648062648633318539773620712466809076492766362040563486474048728080419012359609529520179543529150679237257942726476310813564984353011758540556030960392703591482443657211571199082240574243420382309932435407384452038658081406962932820608912140249987188182812040244612086873940450531926069915854928899112220172014230558053368473613009340294494792942074561876143498106871075628683621106801127359370916083773857995127341637016792926000513379598153653121125704219684937729496937679883985493776597080745540455408620303195846530827781113819604651980074420451841848484642877337005944101368096805432053594303775227268678519524216371558536036688593239980219714037011721559205786684665101377307911384986793065564976192580617550065077196171853070918473095832857615318254649013160053129371049200118881721122548756455997131298528912415374038994964685638819669937804442118734799334034606190758163889303137537733272744076003928043382711148752874453619333334220317361051715947514230338212173674874462042163372021425321863414375562249204839227611468186862234430490048957831763084828164116563284134031172883214292442624898853065088169237123729540159167712902532555179072034627935121183758527935651505994103708915160419585373672212952640804043921490078667077016634972879382872405278218678774716958466209006446775777941951695730335693121303817045667555426699657712984775299110248708081028416512528105058662612406665646668869187946751343786720682674020451614374502259052449241402464517863672418544672575141292110937862221971322512219299250237516800059076325473343199395400082132372248115036230470993596209708047427120829611607814582450057755727932823020930330558564480367921210246108814519517167617913993688352263655392576408538992451319143937403102266653141616322412877055753572526000861737723115131707400721798331831383508339039014008811303252351794928346847880234370866456483694502878494878380495478303626888450892473915566557419525980981974225088987175072529714575905804102977667480668157717932989460262025759349806742909025702862480616101294246182799660274021772905025061175764646666694218044031825873416256307685399765725238951665955792669962190415252856412898640140580796430328069366741084023675064719465400945755104172913521473797630421266517521420890644956959583779532725469568318127917755021990287368413447527673777755331670212382085480622644568232945079894130158405084552875353672631919197342110625551502987013172971532079949787988421089702569245359915767489440080586519104727138443930491715893960543823693142744162616273842843324317558259064792095365676336437933683849602239167466197306925847020037157262125453634719843178526300379526950751750206717368007729026705035600239160821332383087700793725940866084776960773463356660490859442749454575576707774209588524059646688286717112622141522404416852187011672374579227009112262401983652803221719641424691856780038287305604982772670951227492124550928224330001584428917946982028269127561389258189513072257158871632908091098353265720211536160307818847269736064862006594380018638219253372748030567995326770096113027497917539582353769420779696642493908515889401489629956388642828080724079407350340539299771116274153655654652906281766641497071974338274438370255338143245007522357746614535724852229006308162442265917579105534105598715644963860413013165074814035980190590462840676699934036425506187964952647104838666535644909442840471099325121063258842683123527699797002332761317674812839816229910133542215403793292545652358789986989195127915104001220267528933202100251344826827572335629399933388522622394162155850334433481402674995371938796782657865823791040745123717244959976567440794237478292608194827533886828727503090659304727537009148932755515555041418941995196673649885479292811352049284454522877685645115225900177428755768725637757139682485997230070724048434983832468057474398982491242642816830317658523933342912193834732080793769978222200479208005260964493580613114372347540392384179009255752862240073900124668293575550916194211262844452169425950207858559714179678198516865994693957871598453985589033144373382522662518962137830660861563752290115851006972072470411027495721273988179788161793334663213733845897770583146232423378524031522772859348364769876296288279477121516240218718712572455513336591722943763555542759928585325449477774180057880321320784392816908435306511883979656941857608596873288130699902568228510839576330277040191245247162656529118524108888455360507717788923274602861559606746612530827585184507335512623448939547275775700337676074586518663591675127299518439963080702265810832841615259669637444495085260529609756453675565749372669289035714083910776894722914848849830202364730114869259672620208553141561204110613758606908732968041762930877413870277672379896205228303380370883691621908949218311232410756585005775593558282061765638310442532497647326662778387535950216216840213115974551160604261061343232708314140474728016254779744246605785137993642899389783023196141300812920657787280973204358837028070599800700289430821630632553838885046255073208634482712040929736849687499618115617188856495472094580106835887652994378325159057526710790457876315186294618541715525974936112718848312183484692824927327012743888906279644265780053728995107150777272385717625568330850959049910790572543066967510988716473882366967208003646574082090960889761895364757914094102290937658020990669507177239963033836857087945094094031879661220640217092266409550816411269807351462993348923670399205970996829222837122003744327946788720600379896234380680122969805342594072000497975419323415586906993146474251539067287085009870250150671855367326272107491772760400893088996030112472914573416126453932632676409645538264032163708182270610242055263441199150948808487237737306741561331815321019425963779774866840906366709984542699061287933959154388453526604477072051911348568167859203065290946127707161787083697206677902579526332039232541782951948760971165230009669374422096905536578826924674958565957872313957060070973188803264184301472884796526931107426859989069247229630902445242223647069516172027596163658039249267907000967941647162148196375693174753855391882734483164089373792020999352134789893831410307726259580309549050182911176849343094112657860599535089836484386304952527059171734721002100717124835213913401154646272984729916827347976999581402501173543241568932394937595228371676711580421527553198872545406998165884474707051001135516153757320235483061677106562596685334567076805441184095529635634523249732002593535140461534425228180357587331499134854950571389849233321691379417189816603838576979181359223481460803380635028277173570064643863789082526240761001004934920663551949427667710240202667035786544471103397424746092621674187918025744571408261142310902721449750999609297862941067613340106608105169103565350940877164435904983800395157713075928127829288976050859598449598550169340841805519276893881700828381919679312554029204591342499612313110849551769025095977865113013525867657124462598693730469794686780467408176703439397135023579386733874349116778751686406002715095999772140756279664180572007942859397393080508193303504000068973136890465663408652930282266383519738360653341673649360436561886133365911033316753550002203302854642150098734205109074215757578316192760764454114703701887931450109578389123326583049363914914905974585757823508952447950115994252304473943617724086111911685171322278466208455199552620443529530818432273488747902975176774940988597028656368009580961967291423746230023742722845038980237472960200547140631790858136109911781751174658488476191082165606904124179880423802011815024762419123020034073187253347312437429460476325537184517452410598433328802064552022052397677040947244740912373714823866618373568030356564883566475879112493093083826047203245603883093933813163707154633238320256433607002218080748005863500354068156081246489318312171582478133053643638613499335616396701176730291823260253717134988180779823080400147234407482999155335484635473635162578392077365558587778257805840713517283558913601849177247244093871567895365339002166747685373096972269031852587408503473832873010266794666183515685429989765998590184770908033034103406486981480800030457767020694805712303377948854541921097295677182488651538943749093779003756021334073833060788713252776358811452144346654140255471433920918142992452487555226180083027319229573845829027049484628576376442904805525790225162302946432998335259138535511259078247680897039190777651128572011075394545330247272631110461021727585796138120607712230968562033796139451312834006146337608043998919192062691346617376594165253120397973243507171051883714052140914254454171385299464973888137001541741504501844759438379782789053131862076230730781224968243434808276116073426450076641785731159487232003759645262623430566473844554794060932475352599076393661203836642346379417943329368458602179584193122406626313595897473686073752535879249904089483165099573547062286326567779192646827228513822730538860096165339809184377136240750097737703753424854869615868623948609520800107568267884980350987122787489140814559003765472316361777380089299828173534709350547108927028138919006928781599233069147983153519955629674149878819341127997309921046345146892298251041385585508968247253836947436193099415173005322462433649582249595356353586943054436657276410655176011034547212141342167135532525554430233586000787079797854499889334368170973191653029976573488410863879339175166864748707538315337047457350567182069630165458843780676443538159731429768088374892801870817423138568974163196563893778293535424874245414181854304538323746757119991303328501331737420071453363093311260696144997583159984769711216083492939749691769491249109815983734218362822312034518366639778800187117079650987147212652266438216721932540004914235924170174039201826129175415447295249796154916830225301833317743856324166195536573533519151734560371885164777886911110218317369554170472361858918708273709300144405258083966873570735693716225865500855234773317051131437807759201496295385952228977905948718308650647384817980488009596763902633601391425550051792821767218106962022896059335674332422865753739045703633332583022720231132700695275725656416361613949914778488668242852342466395244550938828473723919066195902423474974568339134251748750878224180003305084349927266483450925149097018338519015099230988490995571515895754370987555940865428694706617691837545823995089492893334159944116680469425730378983316063051826532200823938307504363448214579875798630907408568932467314640464317609326994436357025804265155211076444013995386698256882426877142397394290710448589020988266911962058406160476615376091827686624018109685196097658398845296140471785721591509604411942948650008662202812834754488130006834999709601444663048738871400040684762278673364552551685046448000788993895863783484105446941830362661056197555466853891708976102831869837963747410400052750475541243360611764672058145525524172562234906730955535811607824917103812213642438918139752168630906827935404765678166286740780720808221564140753356742638535683122079194920697614832552912822098117623845936249921229944589278554654935314389805799467670482639715747051899102865908760047662690893160667901660058569804959152021220702168325798685780541114283495720662574767705322068368415115841976959926240437244602720899447687352974568860696893079996613636287066465840076706423542075143924014034464926469670516484356581999422392067260962590448661913396793462307506298161838766621039646972897344883760096504575866229978475780791133598787987377040768259436418565971576890319360968860283246550435706066051952815065406279685948401099904989870770875524918399379876503472276569833172655517704871547745247717206411164697772591222198780982559555635548977255746672331217713115848723224895742019208770804610856207116576959845983432506319373267658011984653354858879165631419610466224224048238710495553454399647436178361431168177010469012019254363354101200189100542804094472406781788382758072353095675336511837611381196639465976479544203745163896194513310951952997610535344835598372486835091791353501264790564592466626920952423250840379581892271290757439408674438038887978936905728877004582780994182507055919445867213675465727063586772091385764789685980627033369198523573502815164213089272617254522628638184596809849218010400070680543844908209552507457543815688031849200897175380108611772823836965574509155707997991844068394985168278447967252241845562199745852822767141833644911684175602492884600111042876149741914643900650894274633504691448901413446487729931057772452839260406524989421003302512290697972024362809112092957464388593300094076265308909409079620028093228319470152833084683966749673081812776863558711862500670991258283523429929322261441771538129466864844129968131454805846549630000822548988945412370282694374077035145218701682263102080685724838150547941980060423723041033085113410324772025727205208502338216680668388365768696865160933774577582034965734671070110363792127421125661659531352217306768413002354230186712809717347854639498431318979578016702849654943196975378942343345004910865630887107632852714647021301426353925345158510618216580680210980630815122017594634140775832156864308616596468466116332908393177719752564467089835115848697032693386972316589701947661170024750466594158072644554928233769953440478263809205422643684279168906611353185792559625520818593865550412121195815365700346771102366765670803955047027163655227862507759983817374671380443649931779632262619905036124301606401884647125674593159178892116623908476609079990465513756825259908174394028157569960198901559939779297986258334822053811936242013707640157317888881792804349628321293938992008294397214864235442390326086809596384485020374228729628079670050615920514182760422371158040957651702384559242378216332743991623377497490828061910361032685470388679780579086124406936113523314089270172314038789731733941505822793979379389455223931658304604420471858925782072445549673332050846497875152180286720542635307885268086183534790546698156681077458402569118213607893370428940805421086278105983525310260770573525522244575127874424297898360783259629557987938345431702192721093156914737167870314187953208813804496587907076081954341932600475881674912901108086604514000442701687944527729379089870472021879687345241628933798428138489240606765498585393766332962843977012474364229444199985748475555502262779983497911540929162676943835143041556420957231917311895743443357727581942945075960818157487120060054898520639030425377249073325297544603355860681990789498863879083369830560714266079982076031825682448709078111105148134023155066991329883456578120758858679637393364203827892546504894118023307565178022488089876751300276240987858070181316438108067751307686032654614965255349354344539237633939715078541068502205870071392885638203451929401941878830978565777828832263062452644865010053519576630413927791349050580755149050384088979559025315271537522837741630667484612520000167833475733175381447846034391977710514534709210223986735407414082752257881127206544102367613950555109768491419884857149413122658182557291301589692378297523253457708350857951874094608218886196251850274386971828195958723263884317373026973313043058386722795138107653616452676363049641395748126205621541541262884426260569731556115729496870232624275467009060108590615963364905569385132549968596926875543151908092195130674831925271443309666646465106554768517487694052718034130276742017373841550475827902362042856822244163348819564870942442120706818748455373642557137493720822194238565894540905186080205016594969373254068224865360578425550562159383920097635755435370234660504452770048183903204899887083311569004316933207310251846057370309772134167566508490952347377370511876513668729379568669579776065996789962185743577822385336708766893647866697753967313337574493362070479322868066397040370379536408536269080779424331789992346342017049082908244875396408183172377621186813141835730921977690836078138548836215606548689426176652830574197926052114713568275493358172987750047523750508236642733345610254025884596298320883709003521432193273403514594458301622399115700581075620013799046717532020234635546596779162384184608129636316505002666073504806962819775686805588583579904032540524799512282031762260236259834533127596972805593191732916822706127125466822854919276112839069524616780170871256060704535606324352103930131870625923532180884632572620165020921872068920863346605062879671913448284900369341598664558398018002904077148144869884822357168432109205382231287765453353897275894487890129392430215366112221689277045940522175434397723261507026805712242628312374434564097977979862612137690942546263710757893390601068273936208834282580161512287521736981155592582310230769857242162635191325080073170168749115724260022485583428708637946313389544935171898559881454377182066651478852464034735758468884020839981755344493780155983790093691748474547617608839651752646503809552968126557232692686282977087283150794577388259006023722386037498031415499560123742021524881218111305075495546120826238552952739289884153325929636604251724783132516038424282813066552438480155969711050602908364149491990513629988314869812788413159676272916300959098757297181058618645674528737107888860160370626769139574905804151304860576108736080242330581542508495409601220868411809175570025452602129799820517050295422138462508193095526555622745549228066807263741607127041104516453776422710126165768861059785326576607821029415634111907502839144145974173503249419335067817149154255764401697763745395748523150242052823216749082951417278628943488186102473784703318873088337460354880684507297771420694424172350030416998909904128282657652523503678289403474883814129120750225251779057676843943370933998533085839354766567947523102461227458167228588803926163086175603777255064339460674606035693248478538035046374939752608540463618817603053883171634799785405948267568357139992772605107942951955265347156146618210411546431182618400773180471524325458085891687793700547710067126352208409797965573826779585338839202159894066456881483332972201566516124574649750828089561309398421042195692240574169406926726907460524712741633131463251080779458878129272814913462035341386247895719170323584673526882387529544766324431701245983458766376772152126008392241120356135879889596762593344697137775983436508013609365644186282722201248433665952167778364641459420324997188898847605962802763640119154582412812167236606252123228209855410009930622276911745118830389242185875225494201915942197346249749525902395385452153377312967269250841207587360925993018558495019653735396858472455966421443503899698159414355649444977905717941465126700084777545766523666236840259578424393026260101086161701983570835385718754797677223935644145867077117386430117128735117750271761570462808680505646880911022777404191924431294105139008727301589925241031089876935405340897085765769034728154681182689897821814785893210575512243967625442534906721483263607582682018303207083772464549201254221367429190176937713049123236054629564117687805661247911558527728830794766670282122633641135248817779096137656267231624268739832446810952077903322014494758446689477856686570456806013715823668287356837620117305384445338085623015529135019610334015512819175177286986409119770469876825235249598272515270604967312111270089439383595129124845721204507011291253786884833627783967700269279476613593574689954193496357618787863253311210060512030282426513948602079957499843686662820143803861897701949322436468552528606368463593524016149935542331320892313743066755770741137344462160617718978169701639872188445787397801961431266241512594215863532830994142913549319705776939521276769456483576573082273968040065663001021740841037162553124827542303333239915075853478086044709655535596062231760211868137641838931252958921789689779881279158103208136546353657717068047511327528314108694933535985782738789784772821940622867214824309590364131650604698662583664907827976638378221133293536903504936925979004248674873549804246268901565136874985356613850331553499535777659406416371987475951623008723667917954067140254004802302421583273966302384039451820144246397114795587589790958095771171633111462913768666463322762913627872881901582327294640305927193271649302924285360794350988683381516028949421499007573088627715613961655307307253705535416570668530289523739193152031941419932122323944388543599985786447228815477376736934468203721278203058402986899921684928899518273414550326385154194734987121958484453480929621302403534426806314657495452634606170665982582659121335962933535916054467935203782156280651455328668757731584620671574166634923228544742587159704590648489167147619821700295486763472674900828434442732596580405282258996068424062810521371755508554548451963909382507380321657779174924560491118962982645374103849212769593515117802450198560694622099670811753668802133448559909997587219964419214627600863622172585243249972157730112245193887744809647439860168018957835900267480183447590997543322774131603189800905592011351532462639875439599587052084543114686506618085706513734330446405276496007535987321509701085193471572015100931837994772385971258516007107452178172464593725833702139428493181291866455018820742299019543677828938593063937641670312135368110578967978893963355562034671849304292433710012533034043705287106393281864857710465409039815441009743623041724997017814727201294414315722886910404724304871870394856394327866982410795728393032999024728041696018315584482327312430598499292687296877473217680578279349486562413008521120962732406540708315455106374695568183215866600744895339349083046906829837355990313297401553057503417456202938408776184106078956320735527561831436794669883498034887957888448349747647423422036062424531995767309308209127541722388769541931811127119292874959104741677844411104399841956948927542710739320245637662675856349473139706113334498556080602153038861111677206463069143043922090863491008448379440186372138363551716253700795899617005635499166616060501267915436506621402340280847278848524964684122622059726402761821447704707898481124990248090313368064923776513379675506689453743660638145810215538663384092274903712015262255046330272447974896518794343105750283938099057458676170515748267116280486227165184699916515754920209351726469515437742893065722493795224869930404924734447108285839114271824799812616297863114310889094254780356176824944583773583733802608470021905684711238284618584809018321796972892888798108971116369131880223579264448335073561523424763124533182507354804841624307099514991774668854582967487081299243981753397469850662279215703242320005742399203019804450424577809121818573609390172281886965961150658376195356866931680446155690390178179204113540309501884438418534993359632491502347976753680633080506656984008736359731687502756115250928864933710797429542866329125952986035661798305883589990026983121155821306932229044767849429761503479420560239471985149968886534905873577764877214074679453049378231967570599561597397499992806606644050360064096927534953678478645764064919223831295116274465598250268086124352740472046606049783818718015506035092897893748651152740567986674719154022136576688550751295005395017241368427904848716882220946975467915474968503539032759113968562312285733989602456982242607910742314464969009057820612706336839535804825463408864527055725394243866814535516295690607725237013394373739465224348423341270746974571113026647778391362213623822802749194113376955077736299004751899234282251009467832603669284921236626472507498256576631278977228399277492283073745190565541039642808266461427845992608767483472966545187694650685985778504095943423319702910640975714256619571609842043189343719982411381993331259855618477462554247231837311837569890077255153345475067745173725263997490763371272981214817990852116402478142851707609923120687011366059658187208998889772200228599186291565385387831961118059295963699083402994412652535273813797535445527491653735770767836202763297311404025626101343488849445127218820630074849838316007379122105547614148029837053188798921718854913747186092402342962036124932998153049549352182108312010745680154247844275820047834270010149055470151396335666662626572676289988261218456429762009468589132518949338969052701729299050720432758376270234460377997676975745198182257193897079192711809549783245750699304862758847433686190696358041207124696289509569689302847472114777746463174671724583502398819186556235386204981389013077243233159815437545913669561073405471642205858960650556026398672441705650512843288251558428771295507481405573193857727141924004352623858266951537719559550836137995527698354515255660402320050749664132326248696650314973527635552298546681965201467079451197986036112251877050135703799711927679469112751256693029561275763541268573559949524354499985480308944865465024345834894738403478997950727160031735872462108110429403274357408406510816510736809425306235374745975510810992946234911464166538839174678071287898285898328869794877757936983684619152012261985488648025040022407787827978039958939097513660546233065909329405916558395395691182572611902783398283771638569652600521769591509924691290557412509263755152414272176826713691026452161102349028412139681089851879263369577774085437003728490096766655598779247324926311819056197484817543642877309591970853467813175516650116229399057438917827115554757988242820544951657093106575373351389279977055319087644979907895196087513760028267521656034093429433193006319902708478616316906017068716686016880213864972152986102659019279182930855790730824159840970509335317490341524401471708360362849052355008951440223035945134960615319531419933439923482875893631946348130335738968715365194010858989853321210757196965891373094565306353256487739207428106146518027096484470366196597517638791758466003765826735393339147311947290580952659740592447669744642258251782251786565447026240044541007096091921300701532021345361294352844615865944100680675680002158978760673663142673338564662021587179919894254771394072646458071996702089564820700281601394208133125451216910980489321772119666976506952939411297907934010831674875693323153302240378512374264780969045485642488626869495032727207417817287735220326640405521536077018803873414955601813313123150264511389435272539726102800069036047623592510283562411284098140561008552224964573257238411487803967425678732421184316126179373743242470707495975884413474696331525829542344706309953283718807059045947415387236010064133267798957256191482940567336347258465011086452905509297763739876602863107014521208032368621620261426236601896689630281447623679423261759868572637380720524469141606769669564383576297168036085183499210584502055584321923645505392569819415408211430447816900548217288735764104293184629498519879182902113486800740641169605569301366417864982420300970452534610721674852868763944497707970333178179561768717329732589189855704592326130797515836560111035795402925015950382975820707939880452104402491921921465006068853143535046196978766011384154916907619918990055756366418714272584463816003428778349390391826955153138946792526575607054890332098747516435982524876984735201019256584840705028326351530311920858695449540322782217987623761565404290762571764501945942883707418241908416812595859382333886774686429074172498783371157267712747614674032701829001897958212660855544851340026626614374243411189615032210198165427136658645803274541753881610988020967952026350713288073306249774619519394451847840061751011167394294163379341371756066521553454426337696153711315175905868021730637091055812178980395780248680873267000555917382803236023912200334773721798513740149488393696264568164697520314814611435262532030183923051459037876259415540066293914981704734780746210108319269752630795399583039419933388543939446200337865231256559868963422781674962246644528661145391953796414856627042165420498824894499433778275787253243549188148023955049190016763546347408225575050133113670508382370047480599733049044483635523963374211931170931907492983473911049137059541462007301651495167671326888721625908248927319810849611588726106817027813058580374009306205517382526468248893233778777619875144035401035685942528791731471638856058999864841353176825512866504362017802512423176052994201883623115973232950165145139273770523189144118824887090749926261287833879711389593639217786264216019391915589809257402237916066456180878862003463966420091036241538451990852730934322665959166767297859818653081991095198846818727320138391057983850896828659011185520008001062429335777716209327062145964790919985402097785150439520316156082566698777004281222628887451499661098930086698642498057290042757190290498536443151986151803148821571907852442043185945356957437228987450454803925511142274680902069991274925238914872666364009955106027077419819987215534498313618415788917963908745293558109644727701755362711585116261526999307650121117237465526296301587975609166833965092219178599907118597503709190619946628926538669044212774365719737806518496266466657762066046202805988102476944245151141953220137092659399304470961645175791476526300807667059248565962143706262078562958078639510055669582960965667689247998501009869809850413908984712229508922337595579875401441968227422538255844903504917993358714244894519962332778295745705685878341148393572605935428753688263211502260978513203934793834081330776555138925556029954155761498784675149983464957382285034176441962286270460565791011775886166240006317202370296881025740589008414995138669291006306326885618515850980801823409939692982520041446408513644799317270328215208525075202643154250532795981644246535972641846208409793357515613736229894619421139992847443557071369416804470364642772604136983249042337231156447928862013830321206020762941136563856625083521760473809457922594535648904776746475074205352941056964888112665110214346696212844256515237176560312201291467496877521936777430853632431224969566426097908914507473127006108563269316710021009918628869776709494804769627294734767905524201801432839354869041105752075038011157680810628967536501600443004858597103194301929715506656297515029423408094296317915957692952393150490333401974611252219530531900146667407768358722465232125648069261085620518873363779838984060481287750099938755696151539231758616291471576974926382442943758316208206499063750274146537216132650203346312679801865067807579267292820571755368357188782079139637222294625979267573764224982946755876000021672819069951538507586789879624118627589229628238201539670538929558210139106197384905511341365265024351524891426341160646388652423217250499257463346283298255824350994570957866038522007426245233452171590951788100543062895721113981207903640374513272994046754411894992870975125490100806354673122611368645007252421318884691613686088551604833347440356844864199226222212634276960845800871015063261469768137873984371873337778134942946056684322193562124068979788262426382112349689432329577053435922187705631450248588132201647379101071688775690853226015382481670892298488355287673583201089580408710440324073590350108371776301760858120280633111141542579483484385179856059220113377700650656817455019703116340873193320280728116873517151764165524570967550202975069701135001443928149595279983149974662041964801303740448838313530856394527158767556477219619031936857470535794581153742312210361627637635642600860448623222553101384026659977279654337820615742760399005721591222635120188453573240648676394389963578273797557042656709085801542849682860414712816075271205653521862193617245645295852498988787166802058195288287417762381819746815653670094533737999662359234780821591941958797393364541398891285962203156231965492577852333933884185977436442132714899162133427155892138690754876515967311855099209507218295196920406280420669320535548811853011779311460486579288685988834216741436495637296390354110480276203370329813865659381718638825572173453838951394724877947676385252614957262696434964077051190699990172586825006446263399322648774111517124195488624990644709807375082974690082860097436441341118916011333890801593163541022317141158841043677159121302289130942313607115300557158753396790506430681922253006394068779674410842011369303943179182841557686350889527532843987806690414903093952868426156139200120215010017199522681036580004462722169954403189538123608502123997461575060807583002798935237281894056937429734085189393443194556278202527249570819370566209569517457624027182325764338022915661835462375575626072822187742628126829754140966560788822451461272330853750982204639846728617732711067426498111969181261911737031888753356252245655305490522949136711333156762735226899243264912538734968848970995305594066072032084223501577425124282903307909178527328470649628766494141410638139292830237054687518520060445400834281008607459020176266906419079159609673345294654319195606388222470075954506966744897615717090461149036391148446380505303832240987391281398003873437460379653008862716739622066324348459578905773025854256516038984458596824365860385897692975373750706896843908294157775383854157406879048172849276947121473430030061108259526080521615051898417440683599768583091825221989060373959354654155539183485649048875631480698406122131076077807166471362575122779459165519430128602248490617140792184866123208468384461396714792778795663965437893118021632252726595035494815770048045350637213250439717376029112633412507878106920880168569323277406695015352539725743770442475209944665090107245051679091901275931782383397951886441451177074692381962330045040022271320980796096794857730993702084605103437166913246720217055996874728506442332206210411650724189091086402348972439339680951291823615522791465008655165738554997956180625531567782396512614943072005196570704319167710435621689072411421331298395379184561364315462313935865903749087275271993163208496757626726150619634874401214693002885715264082568633870027453357558676949016144822035163117860966495832587043096250915675734872313271668898645644813620945965621309293568466050817065737032612585732642269213531241174609981077833683458053777314716733904270138096902100426544599106566474670854842211106609957150394377071591250853974157413143499448194096534154964433454956085998122804488812094184313898290210752131069686805776628854460519905352510604056424061105885412353374831677877747561081587881960383130567993132886996469473305713704580227396315787824167560746127276790198473933411744459627544367922504396820998495137487396504769209576421334900022532282874396373510838069513635607973022600380625379058875654204753826398534358649081191595646930533999010010955188846477782772144905037672267752974101984277997671563722981756947461302096104357142958634353442341419290946752853882101183730107896969998813940247063203030694681539586843236194014378955452970231055821620631956609165315616905431456858267492760890512817947241929663342367896121354186267451454524290795288435400616867425935597476458733657805722751940414700967515228905444917657851152207059090923422550003446667833136774196513271654427675147492470665784706643386374252479389540900775655908696181827533158052324168139607260436524526710622852910650037064218006300935454878498609473603181143305310249934148454652029033439866145595216825468987097641781077531243168385791180688590304308234880868826293630715623916096764099657867093082284968122163672904509136458378054424897514363485353413234181871647005255676200502240025019131683306744816457093795401236322089075876172428498681295893716143026936757860244658527277330194259658344017192457597373812741713341161965330788569910140899969936223680602457923944336474353623116026660609820329351304532307586830911228539504140290496956536258357538296056934513566263185974339716984670429875004206064414165590154359464240966095381647319856977241926624566010608369826734927947766908769018334400749207046092673323464045172091402638449060556186724360025092160691026092627595868415251030956957004198878702856373470879015083300129075288199459772317893214801267209701933162645172784020046629282992104613446410204634304672740929580034000438794605240952332257703857039685281494335823529897029322037907792748541571428955880523568098067849642229991851035299280244441884403396732293306709475236849889067840545855080237007250667723718570757983656859793623492758281836804779920032138106764792526876623025242062441210181182704248296588968347554980639623704596944290307589860049141031925708455883353413329237122115265812327119870333790978418894704660994851322681893771143856440448776911429600497574072730281927368249514030573123984360641426568000213302672726492724043674527945843582113725330147472711996890945329788590713718910654338328052302739390978286756232174169596274764031951560739407707738471822854171771032771981883392211459792850572783676093909865860605950504742353325839922044716447056782673639897548849922423142182148093124163361114825873481807867602962170783424998546094259026819925625662368209115559912464480404509060440555023921822941254612057325250807383359168655547981872372207972486140457705901100471171386558148660547323901588515345128885726989441889072338218837547615689899560299742959527475435927487385548529881663224361349989989134933631879482188087070551844004336102575707291251503310375338236856749414337298235432612744556327979984496411604934440362636742781018629833201329971648853671112562198552798302998440685616137234949687456484851303031209843508458695526465832446929196890205578899176499354927562137826415691282916351258297472222809513188670021530975540941243745205360689121102161323738730443669547199657568962895623621282899832679306831040152072100771569400855783681726114952825224070579442367340019722863411765799996198582108091135237511904727956332429934137830725331807665284624362764119529568783348902272149345817859800540147602445184319733853652401907070542905358117799150526286217655055094528769671608763110891520552347828279398975877559246500593379881978664650828558645354025808099024014079931857292760891683839944388947273393237560514437065427771234872983230610145254813677373629803603823733337041574510247134941704629587823900461448952751465684319630651926373038526792224662956994294141658297834737251625432801194928262327349509873714815411236442308879649279853754845470139779499743782872168537173048199430039292768335290633162423338474514895669899446060920495258620136230338157950121812664644061166190098818191001388604829011826638307417050343722910573538753156082669816462459785731778990261925483835005499423315511970782535207501863273830584616780189034682198959112194398941784975343534515393697025169186179149369859617611486382819169388498126599633638854151124948334964607467599209380974140456584400034559372952656926508690931421206947056454464210656123411196869995423329472097298438815115684186491887487050032832563262051622951852808285680964291832274497103731297566168185149618710605762912187956860409777558374741600768654152054574750484804101565487449578251916437618788288063681070884352970243324472603168552421829696814410574002869632786034180648921721667537399233588598541351033923129656416153695971500603691464973911959234645174729670615118031416780107427835909116156343763775244131747136065284100568133812653319849188915607047316387187407743081462530543305126346802070892680641700594452972424436070795330944636215509813446050651346888916544045972375324889074568702789222995645588935552292754420682287012241186937332777285728005149229108194092264046176243011531251409595847022802912444723683414686727556244029860921606404621456142879125725595058143189061977203392128087047205399695612439638981878165908411019188729034941007622169816565221009102618506443720704041603529639475980733881610962082898069730678938632702769383470181807163059859268468951069046642199023607622701274287300399357653800258062477509620253491925421043416336720702440041141807268618577504272358160838425670849982120114352253918455770029632016687747460140214505566396042070341172173551006760957774293562298756179004325979678430043261107948915731533163801900926248986327220059044900310439880540721896818718323347146594178576136147067490041973157979620099219158762592297671022113207581923320671219497801342660660137834464746918453333695724077173619023046609575194029686020671081236213611013562086078701743508314283121528240539095136176220264324922470416777722916825377931840181454531811046034614405359518880109233582134593851165582688059193556612333010711374043240825431249152003676773364300161318858143796571998503542481190226315389832252572014973028952752002176572225190665521374086081944731132211438237159678948171258410532667149566390492795461610191293718947222602382870902573895631788820420714793473225628781076054924519838884501649206159137419603464727121594651955525062916696200636873076281583414174247649452210255799054798666790682922923635999773939663820503998612485454967348565266884961125529129997016144456937848818883939498430607623844011253017486875253456050715906084697079035874922802258819551275782776477229261975344122767331911225646548022767995508182375591592644482240513040768537382341899882297268829202695586106963137911640520968892584867437269625604176693839701546602488216828066649930911835640032733713339966641842199669651244295536915226769762108289143970495840952001599265033133844857526084597514078916077999386698200150379747161541688062670773969209438556364351680231490307039129062135849592432303870188857433064248910717438683736639296555798823426621256066214392428297878649779460275475560085561163284271969388743477938235271181650585638019591043664796914397945566661016778887893938088303031041134788340270266826577061203182249219011706117883061997646994931680328682785029041682150551589914332655730988380209652816738505198515167340583314686905436523640174247562863535105900648715466854349430402014118476423830420156002387827818966336774975689786421806316141002312501934864169874091623722044776239210003192609770045056341205908336225448212453472431339553352117876720800415671262873704838731222196433866165095726755920419373713310321647865575016773328343940554761409286537230274606478946480082887923590414175810466957574485805522278894943524542967212284480681944766487619925737461363254022269993503324848524962106880512528873129146359323923100107045720622262361028052688842601598501179831410474259544048426306340142299259940760937083567202046023594014376495986203738748687198867493253740433010646244777719124227268339245257171424382080239726331888409880197014994333236993889647690572991277108609143956605454152712276438153287990167996844805435608673693755866471858468034996015585083705183612924362275660878692039448556651755876325540491345203691704477703442733545386810600783384702037504881832886797813626443076519780260624190798150326394721400590721115995025152487058365751944139990328453018224165908886770328248413737333240590845628768326585331198921769849093215883227059402401706942203042980256993579716689805435623784777582850003575877942495275311549583706412675098878410587849108317388714411691044895397374690750735752143884318657353100880132801038888693393510148441441231357181073852519765418819622301993122296200747211299215846570708265463364484086298371126916472296869041712649043452725748153157151298011848681563164217341589641276831349196942080103787444536364515818924006260219209081932357140473160929749246577966358070901327398579757561912472116184698509938046967977660823795627846396833180432769183480816007758275239894311872251068491995737960269156057228633725314365287632351348580754956506307665343562912225671422670157769272369684748407248029767054747502184600348001767621867842028945064581712196562136249040205177912999591642085372993646452220355597980965938775941152022456383888776409478049462816448744548070709288461785956342454750824727269228157524149053902164806942775027978615191946163907201379272158155736070831497669242840908676252134820997272537428562499138965376489142204630230702489916329713002985788061828413978497280709813885820892372128481549526468191811026038192843414529976869147916068043064550506906415118018534141635153039853995232915720975070039867689692826235311135850687308472732673112734681140332380672313569927749230513158678739271539626083601311048773881287486072657922225728049252670739442304223520960269715149919787024908987979874518860368225053304314392504471177850765463386427786595456999221444054837978200962915004750567828276749130096546956802449858433675024472141124332801682004754671184682950402729769378059388260636996144431280449235290529112993154981812342856866393272024893790316644464294316936755489715955156612416014661818211054737577555869566209999758402477625696763719551633256794994948717436812013608128613437519153544010563408269111015044256653644401219411188296535777016286637502881668774717035355145351414121254826422400664768771586843609011470323761237575242589963598652534334479320294131440614804491023579026701533335821501194888326909380143842330026466902421155870810825283929923106540216608273712788664581014444224342622679586670116942376541646959555883625973758234478973741827248494482461979330549594449024497316259184270275897173951560668292142906071722347088373492511732340012265837064889485110257099119585224263822873050160446503692811682046001230682083904406668150549628730670279636071856918386594325485480777266198929787973814072907403153482324492718875334768414528064611900766601895314454057958434551034896603433481041230212466826296503981734327384806023274263242210152148192974234190819395877047050833601811552974180095283779525687122117482123051462282860347128727434346789077432852416104553527392466919522274538006696825586950076992567002229178930362861999109468123137757120215197726364752285215439540707503256605239705250463322048416855931952118457674517480721321338281843274137876046781686328339755158602719594127980783680350166499182007607231513104234058909694853582444578005721830930786677209346132445354647342443755359954733131129312392440365878510815698388733158979452965070870798408317061586202421636215235546730845577853881084594887384889345940778194965616553619332639622434216479461503318770135497373578577659335190056851135228361201942808673910684991937119292886926401719534634259847621165723685243215405086558543761172790036156308503089834492031744279244620509599807511702169723014683269191001829655574390321482464193798638966374855332815089081287478725555653584708214610955853177210878655189481956460768694916192861315081925323356185308960894272610909363509809392385576914990192987263064158362124963530400634245875222839427285655764160439365357726628168230720539698778256432929804842472021998286021087995439854967508093034468927903952983395888782399351640463500750374804148549195260017847454033624059696682013528176712865544889463993076407456800153558154742466827869805049608937369383567184123661064707122624811637880193418303195696291566307682694824539729204282661549660578206506514711248491511361722825034544519190274448892024792782079776779829436470178323037421301739302348792858297332857721059814466485229601096733260507989032632787205602833012562704136895191139596686207479188536767559909472316044162858444775580268974777155164057778756234276336662733233007461791970687310115605635656661491158287933940888170014590515637638977144258957303806753233271750825423060800974928317335160045061119977396743322648591504839948901628124926055070102398756964754404931779034063703048346979941379256743121150521658373957619327170812652467338885689696430203261748961967778767596358705144129703680697920875986629612078727450474671610461382498853696596509609658100961734139951141775826822255170688644313936414157361234458095658507802317382433227408059515399994094243018613742011854147579482646578291209422736270169021526674176196551386406170494465567597248564949923807057578301997663947690037221519434514273269366569629143928139125197454691091064034707106364950099198875933312388887593407240783731622751701982677055301772097355475484126453667290287732406852579077438795029489088105021936665089993252258724392558811414491806849001264801238693439888506158624751020983987155041968899419625692641897725736632655413887091728731181576551545962964647646005429353401228945015148919231879274486639538616285244127174651860552174777629351014269821229295427714778235994390619994844815416052075881625405215816210728559788445274548563361048674996625346263106556814492440624253028922996168539714841871253288287423596651629448791443398465753605952618433362965595612629842418426442674767501506821416022711053064123695356315647519695748102048276652543856841975284923569435544558302147682199220192190533888034837279217711165725461166192697416254007824765519772196492255010977423814584054429994075866016930806683016065834090838556074842446518345211956426235811317464950646283994883192409513040225639212975589134793909105311699328869225961860168430736218879116195233149361320948254952287996034683234972301940958452825439900041021429928488592472663290080804833570334437402031894023692688493069108909687285882815870210403972213349975335243210566940046515025351124398531189606834121360641933516628127087738157685967956895850089889412696711263309719984889409551056643279893501672592327465112142701108104634877372558505554808871694713408827599455325739170243280817150908934804556952075036556263331941896785906415079412223664941082796958767906581208462876437898539146331180459878959791666426201500424968925938716711254776367856322614603586779546026600898543428781059056249594621528999349175695861181814937462169167760054474722638626017806050205994302535397970895180275248844668859413090977897931565637333177613582191427240523296600965113857939589975713796712143970744269375747677052323921143096374432622965362816751829774837330039573654695060653390289303193582377921456069708362792580846912836269145853824127576420593027071221601618604664802537110639971103362960468919272785690935939609586807435640666219816129312455773744706822431073258105370116344029903172615797502545045137977541838426543552774960020446067543927782524077909253110941965434262328969054615761846553074566411387281525818003784318813362575442468480527962496939903702327984124415088297925040278378725527923667092965147468455855520684844466200548124486008274370456406252007442506517901194156396351875165556572317676591050833868117519921825547204873148446019442110164832995519902443276218309734008740198750345347181840859495450620761005052648378373893343032313992703737177239162276135746304170114785703704326469806378590290238094497584827543151537103247084431875490073475948185507048135579828000789346893897701895207825116949470174091134873709847791599396971639544266098201453995476742549890521144112463537980047604404826545374633527491484589355330124497403950168515593224958177982533473157425019748464690053883095231136995522705477782104700017768986725951256556154089959263260545910001721631611049310264012754746016944220054211528351919701522883088709495086392119391116537892606519755663176044637476085722507042616811292506950166676305701675923745698255969290232804252697456145952701785349252937487541022645957889847458213421035190539155343927857400406888058020660545558679168111390250698279405252825291181372835960950076276113324367915725165796616728333757931721141521889357062454690759972598077544673358149485017552132563306353526979034392613422712136766723075594566114955631069577872926777784363115899268232920658096179613452168711601268924163020039627661265063725587966962042199226082818665789414394418048126171360217621136767093378060563686526340064940491256216262007380412986417270571091892916604831843178722918680757583159008122258460345948750698738948458663242498880560936148969987136540458057247908264996967319024618333190491945164148703642036921780684107828502822447934085416420720632237969683572796357891687594888044719953428902023350639726319849122008456064954033861602351564655494482096972807537692142306672108481269179600457683482322181454706570437597703425904683029772554981162711464107354139056178594320793484679329672320821889367806962207960739345171175433903235357160484875254959308984975295309642037194218192542004281999061456046519011521665416314788642527439370626546344510199165306433277930229456279781058441582965006740970361791907870878682341145921762879215869651323515646391572001324809916507365588906785472511581599957625056864250509209044088666691494432918965651005723953677000283274575534912286486519122932367647375915622411304329006957708372253665672599516722841232275322574030545206318580916207604100199992092366950936001419323862371774651149646767802625792808893345138919776572188521381511924358842086510885696385376401616034191741323432640771366289490735115510690519968072470348351914573039076000163078554614065063404838860894402719839775263001770826864827474420018484083474202261623119046499528522220934150506559383050858264166045835387283738909590346661999923360479122523549151424551665128872198940498611833530354419917822224527369922997029104340086893082183587018614554498413285778239825836576994246158325170000682423132580041798893068623334893638780880586789198225460426992678186414212167629196150408575905802681850794649171208377844397018003007687435251298267428297490740115272005510804138331602517011809989500693762418252976447498561328162650879667691519386148676732989410881017157648786247923392365294523565650365411321909695327202291926112918949436492761296599605010028382065825627913547186787269841496174375759740400743267302929021466012075778900997758796485603754558065307812943597871791381293118795238605414339498342417811218052101119494890197028984682476893835607317466223746326130610269072747059038783321560869371948152406481858105622403183770942302761115147755060947205813383596926653277792212263186727533963244444466119923565080021337089124891639857774848260374165039349472398479756581069144795906303276521663687513532717480352222252581983725903663177187703217897992888208746444776672402281915763015463911699836877520694313988881932707149057096538851527969423408035429646608619434481709213302702124625378191604155844060444715233761013544765280196291829356601657048008182837361502266855831883569111629812979187936310579498326018570118893295704457538680594192018134984749079405792906641013529249115328364201899749145954043761128552108166953506015718844307781201486002227692162885681731877795182449316959439687914602500086215604786414906176361861316043977681036056793945429859734431683514477475435065239274283595588843226734319513614504750746287111351106965172468833965881551512446757391769956867569021126649855858797571888931849713806746743380916728730651128926694252478203080472284090272388616814888597928789714729540269715463782908559723612879323680852897697063851735177219292670144553120864786921416798450617300339184439013475350712865752149968811740332932651312442524192349614840192133207681253046457792531561652517843069017112411600008256350963026307686373863478355050028441500687505937244487588953166326272865920649291131667184726730491433782187150891687247252294645170269814744243252051866819966922884416499357145706121695778368888647768261241965069898599129124891060964094218942767107739091701719548149382378443392792927348672653385095186892328624217026704168664274168553600527428489892608354422487030850272347492294198280661463109608609868536215437666759781559722449568553833468165398757949712735943605072298564554610705403133162482098585139221467559341619841628929190264665339759601921453171540906754515684977935813033204629720129383565891994058563447033308870556750549677388608903572137436646197899717968332681126374010751889180254409893144431171567407423237189791816949760986946680774823088982439264583772413737727211037000870352364107724585202160155657619225028056662821098722630116728186379197415768464387345399959072012177288499100536787499000170372181122383801870002674548525250671805530315759119563311260789709132589258661914890807970700873313012361856844109299219476682454526647416275585000099498058831339265342881636067310609311796796412510442668251367333066545768258283344879526032026552040599959381229406648039824420024134233457365428302315543895425649685389671194807268838632831102346074176177691910629756455153171381609290314743900167225256162767905333091414751151004052834125035497077116502299061615200319099621892706038170267394939782482297712826075593938856669869011712991222316790044781187251214210898786277056502065739814931868030840876406958909083150780798609601032856032629731926608980646204146460968655187435688765221183707808374604812142650694461512868223443193662049097509548852533219218034938068029464108288520207984854143076651007870324231768299463697581722737608267577742574924070003385823471772954352192454621315334062233447730806529918671207813724220198029193305957220367300801982993358084581626169779738352878793230866674148689485644367548185160622152441977157086143546295958347807138008619462797549161164100731965807924606287045755779462244079009450947442091447117177733306309118264020756460176193961022647311671740717194286538840354775256116237084861068932906761923633556722125099740272188234963818318446762314323026253014803044427932420685095828955538983803804543420307730871969493096786554580897980705790315413262431795185043564909101809072857216890003478150144852258163674053936586425542209425144646168095955611587326619307039496863985210118074262979173521904346888602079191738742646029730904280120601850300350987102522176261525183180345726735280467667027838064773792406717349286945514545976956672729854192694539989646869522322273479713976286203789057818679081449415852043419268287314251089470785160220821183606119821272094518290263161677617507271724984945239532824613088297698682555446680077241860832267325131011423796782622117826375743827093049216618918289759861640569554254110057918036330018750389809966877462152838646849381903879500152629515729269837386354900239652961851455179574432213024039329775777244564498792315595855318776795457761512825581650020782404424822324612324468296586123555573320289773952148647634723590184826783906139024145608865570976463554033096208967833566918475201575039625271460171138381953763424396428515436342669590353502578618908365632288098053897718263270519670947977977513806873882123656442789770676242679445329364169945719696517824667558012855826030995260194482737363034956442182676614220186174091808383689285093921469835591813160773895117475375192035821979074628035727851284314928270653500747637090595525225474104250338332095212134846828433894486276887918978869155332527967254484370248711909094044005104571278103802906681947127352356217391434258525765005258809471316572351475857898537449201622158522613327857517256747996792934565497263431368070077238746728972979086798337296114658869349020885935132969362522619483975224930129119936295424246877300835880982864572013458109285205702430478045123421319484446649582777025290883769356977085815675031107135314802310427040871264073692941878733296099127785946987012199283590269409690359449699617740237869230015872059399046592478712670727752298726145416635266924298944398500184153736361067434603216374724130883268086696733457798513733680572141650424155758630685009228691727509758704600451518185829083779896084037124177188015259485062167830806164740785554029344927804373729445254794695899076946796303556266512375215079671554528579301223050672781454669376171804197360131285088564340486019414820910985023273915265945816053347684947370021307049498272340460751835730136892664471268004192397637234452605796653650512273883170322903676991353456704379268789923295819795102026066542554530980144744353797546680541258584687534685660264314041521746997134956066591331085353748805704490297917791650604260878990611094612556050467740647674022280205250029025796799093729859698060561920800329866793818618495398659193402555991336462220150612136097505132220464926385342228015092459689684361379730430471212821346225832836927334754051046186496607959517097090297311608733469793652600206782799587373888333218947465643360528002140125649922734119269300825087827440039593354429611892837046914136540548082901494227972566763182252331907904857536267524607138377624914578127918396386765557609359995329257652545044192015064526398141905780809748952266848390304210125979498605659134173745939248358792992458576228034155861790549131943966246728702154765571113656292276274328730653250277709248019760562767366982943800673416146666421955541685911241993035491274528897997203010040583013741985056341904703697223492533616024142717780558088508703681331511829871323473950159250975606748140822237120924063790586616828741087952262021963608665106230850226914572122577888096402058889515422011931528221352368328582318347501651481929033256064176296802102231881757201729975972007399559817808984281972793294301654244777399908649545098646701129756555088808279372941629431912705418599047369766919886414770004121851623594052866600734363485331858227434860145632347893164593591307913061523472213689213312378078572368982639365440356309119689902715702570386778351846604954445451588712637202652791464963432346597207679517529475498095688694692332650230224839487928550101174598152996766623428605568199471043191859104007219508546506062810775511162408531709676722746553236588033652360639605799450086684531594969275558713349508150102189662911416281497352277378525412925495650293497286234875919057413085917164200941129992358513146510901441646289371709508511220505089255118725105889384198582965079962276925149233858946112366329169996591211704145239234337556958601740778552359974904309638079072403236066640221917127121944450282900946444435270824918735719115573633128578360477654673853883858334462962762232232557053807307063323390558872008945921200990418759540034482970851368853136197256181166878641599447449253793641496907221324316233324910830173813730426218934277348618172969204065738022216121019480860899218958544819558173165567248427675321551880563872607626478824802615960541752740499664954941997100500687906374038573888215324454461511888582860826829765999506587364613332210536536734930135939511645291594324670860820499997801079422072255316283996501118131138094029354514600115856018656621452382562477285525956763475297630702299777350086728449742418050207808048502257524766873474198641142404306477314828167745336403295473807413799263027567728749417613064765734470144174516422121762290816173429403386669881235495778917268511018453747442448000469399999283141981859587513104440361126782683246134573175947451484065685182776185626907187596638005487011163559324458387099436355495598615129385247685004573543270419029078916531172273864058310439824534525538487645227101439827737005442286136759675922316572678887583061577640075834993861584768455314892542424434543815997751095002790406494829866216199992709122594157500286883506003517703701877643459939034082298805405392065464567384119939905759353994484202941774807734090025598735503626488532117552868922070107122549449046943367887246201269942024681630845786156712159383152091762844977830596615609698960610664784421618895141079523418770904592832370758217455231629120495889894817358237756968380448865300742142310396839058982610663230189865584203338496902673135484860814378460236897456755869380906008993899869835471019619220047500596542667640110325099131198277715803341705052738268338977858456854876506438009196418137144603753614222955150898704557905528952380443424566686101414023296431054939376876623414203436282931837423294134362005939403039801198000640547382719805293418019011106977305905291664893854850371953280195192672910893713380980853542401130716001794287492647063876263338554663293979637001087001142403671589800556809869405851187411488294305237391820640657738141641387629630400384206815847769041796542922649972064287419789940206038680725435219257547509932243304338951529097544679970151190484365157246223736496330260545545621607961887233186946846027035667813611937795238799884534741608840673432964961287203817287475608551804245177266911604518568936182064421094799375236271585681568745410939714168786176970979831544154595215222755489867260308612915486711322993033858534813629168778055597685568126748648256852060307622097974499670803743918058506832336121251497645669881593359974835190149917283298003798875049212262509529692487885817577215501563428961667184020919388783123369628260132988074568809301289029130877238527389175665985438883713878786067023668539998986417422173792496406089418677072932205454057065994679436954745885358548932485924552260748432410511900839020531902562261149206288356315652899933648609037945396642763955972706520917522975423920162933556665765251604806201611085855222196784396532465912207788885834001572275278603261789860437355779357973137328045981273763005267214118270125295843891207609715928927704504635372351898164704521625431405238926985104450477503111946173873564817941572280139182205210081591006433865758895160813622596379257001343769880163627803620262141174165281254873898931709994094010319084016021007723499208261187537574406727048620879409331366961633225121655912714106099578145010593728561025742257499010599578568295821859875135941255457573726232539280815203938805354862028556503837818989717404719680672059932220410830067714529944605771886099279746089010441205383513645852560941465903165777915250059652501475616011001272204825386677642242770349349023125822764889210702373576603145902640872022045004820945235422314328815603327092639753022591370820680075679167652818509589929403998137664808703865983699806068762266217800265598324682031781367035749784438887213628713858007566167296435846543254985120708517052166871632639767291222233745810382207320749338492597814965393482698638044937044836515861005573940167701279179384109423918711335155383604933460320694344269063293669359314323026565478381849119071805387136698720400140153188778013698905603418228561954929028984360448988268447977877223718506007842492939583564516546257627163329247970970286851601677911288522318898683550867477666612487045233941180694530915698578434339950332454083637551175963388276023839985662839887837406270379877506350998540180408324358764130962611257294326205122348533720496149975840003485058174456108029205352671470493499339795653402005802348018315024498740748718173795721840066472757868530854786754779401440270750625255216554549388903594935384688692981339775274251967729073966540875662392902222607952720640960499137235299061738219160052223434637788809048010920540082970322805061805364697122704945714666395224315630282217526013464625482442342075809345859102442949690819734880736795688143435678408928070609849670788271443184030844031785930547197241489420512037266119321234476080033312289430791281880259256957993868908597387507093847827264907908971119195439471615120891891631134508911556167128987352536043631923981028645898657802833456012982285806236881665206253123943200558680164596021802875622974990025895021704002916508405017240744071541505308161224449310787633538495198836041871500471329499687219995084295562555966440979832961035530761881884687871125227247688312555674623813115420632331530356983844349814742779651628557150903528454799189793634738058771140259291510126893922860994292732075548157230596184817487383260952250320042199276478158440021731006983872225978473496521391971018220260964191766054099694847601161819537183653004177064685922962601969901657823559171894081812308927931838973981365581678722736159829490485265414222804346295029335235099611573620587257244549044965952786331413743249868391231376944648276893836663838382002998893152579179614126786892164715155985714579507031052836324687802257071161888367327238408699663763133451766560348136642083187449547138316949814974143242323042722758445909438790431957252350943995049788441940865719762763307995298802890755993850514150627642170083007516916481469994106851627200867882390059669582724147145624048851091876892707707864703450486220826940000517164509784314926479630728086852126765245714721672990369519152276143566632475759133909433137096668213138646282398570796200990344948744391027931161439068074509117470903575878914940561133816783885698248980866090790239063369728049038886382988542322553087615060767399827104062025340873671452318786687990118806323548134228660220519135739168141941546820871528275565703816021741085436297347805771414143635198970965420105538484050129086991659008312146975085648716904307913869372240119838251691157339700320887157308618373801163759757473473637746504243395117516780749615091253720706180986090692457503766678019832191967891471285107160932764422831797912255476392129011159950739489401603199168526078376537982901256264069421848538633378663641385572563480468266991725748753561555399993730173444436350186013694199913391230625503035484826700741960105828466774874985157155911999479504096221104646467165981136806030200931782007472152676897286247893324672517933963590450243845508790696262770463866072129646812051146152981915020491085434019028238056228836867213007027507034430591055816627157705840241991194273979324702188562944434056160253489553494331885276756939615438661047764366271927453328573543195288563473292047414833566295451480313400408009500034253144501784879644793825611395707019619390794665037870016541092712922896889691326686059419876941260235362082392972919252728175542368591315109148242651839049786462042131898160047433676141163909495469847035355623417026600519028876549995479848196256854410678324042210827770710281665597570330603510069649949233813619313907652642504145595818007975587857367437731698918335301969124011709244156356036339518810281298599449313966158955650509156186968611423689100289340154994080802452488791116694959070636907458394169207413681304726262862604023222354245977495955532385342523040212383759189198283478427277494003923016035418536028563092654728612769837479856126660096176459593113196700433874948138672886109659239968163481910661051808059510315398743088495586091042178011590089911277503034179179670863167119635457312257390332271247065279948157074704296432616622828741679583406515026462680388024619738773279909102848127393198977990561288459691846522405740213853647231497600707560749561855053538423769743763705394011497091994192769584557556247593652691576854652433959908892288152284391410118490942149761600279943985868445463751617811578759619899716116849306266458752205354886083262922526053777376573026433307376934081395713977596803032841962436171440169065288393402225677307496493517452196927525374710056929431975380787472591679003838213481183302438878150345300032849335991042994198957982826544124617000342227563955061112975373892793652558246002097656921194829054387513281127920069948047982531457146709371345793698887906287919699263267766080454205268088982016520636913674089424477814725138354697757112545601491787099920251007353862703814281205554364575822849513605413351832316116807124722781108705642272234770544091942347133657728153274124551614529708902162236671545879217249708931903863068032924156629689394642601699820620549184302282839158919169412477546754499187537176247436602771305172689959986274471861760322162836129088228655170745065460335597024185597791001443141641859468469097069111319208140235190284840779635095560096906347417115657636844823666157510914476891268470988144148694067192896076038580282102049673414203945335622315572942996015254409664359015873458918129504768019150973067263852353524087899899203419302293255259050372361151161033797036760750156490166864577079526291655660367228844754147125344514458968016338348291976877337455859365372997875224848518008464591616735307873292556265029230919451305277588197362026942827083056962293741304226387570284147483679967720621269505244590705258207578599516246779193424853184026718934802787544320887096100276133426747992548144054355753327839973642877981197066915893082477201249747099958231661388404144291941821654896678447299381648319790521708961275719469073580032370119032759814464859486764101726042778182587490785406746828603810293609658875893499794969814252250930355761172471986392178873583162262537620617718869201672713306730692854908373625487957759171235699221948261307550448776494741363446016352916693935965506909803359404664885377298965630813183686926082345637434918881391552741429803728339321231894545316516076240113810236156267276052600691688882431952760620926706809194535595617136126402627710986686506013781552193750539090175995679275974720753427428762160686854526537899796967350834706948918638733819101341285266909746780358914059981111110631736937020214789260787917312550724088462781154407748897627605130220046475726624106481606531036101161822243392003658739988959736755089947882806122647156032140553246081595321338391296634334340386113927940645419092857725287389478763718721622808224770748637098482490747309981260672939075036520036090415166361331231658639855613345367696159333097064784407826178129455824742071794794190327052402931406880520943187994876718664656142693072027395804606491450511576838207445067038666500389132254466614696844650031521159017471517085307860032553864945526626634362053237946393434609262445804562250516704252649285457551107615164840331545425649041780036541770608067855786358970394069480509427162821528403061542090506177885576257040456204452372025307705154519177022952187278254515794427190401328861017718241105993537980161194043793306117024805606851850915195236629005677538459698542896977651494733142362934995648284251653966691570105644737458026825572876688782798210692355664420775260073554053109093217815829926661140903758796711475961095074509382305775325244942905640041384466544615769688320080629681530645589991432840480545438783210566215770817653361160673936224003781200673050245884156044370257700761190737378662127908846088765471930908194708141759995939076533550036310893085127992960082405702179580269183237308631122541488348982748456157931772578924617829893708473770410161842766054929152956975828709852009639710668593032281916971033905249082185608608329492108925953793347191860725519732437550204223254310487090691896876234912195522501987234691835974480945305344450803992486623871474699072953880399301861307890757180756594203167819753831546252700770628610577910589461947287803394334092659204121614993013832844573126606383439979544363231370153971600151977939391257271901640156776119931317028836998998456674555409867208399797286209099524809947683191516332532733955317616261800546706626376120545406863276340507604092551568730386153937228228985358210746412167250310912648476093047839750266691599809548582865482190187870123580653844313900075671198447111614787278268309309375076992601087429705168675555694217392614577620706898743033409587737947714035700063212325567335226747736528069810182259529919604968215018762216580926922277765051187814573610692077463235054540682200130257596876828325540181912523046565771904015110913259760808008414913884833506663714945883429902399696914507626815270366131079275630084800009802064597965176539583228214855073229745465246014660003678550606540870825659026012121436209439141484357569771482341162471426752068271105991602067639877198014544946666299981873062466316895713157355508469102987401968570418269176552994432803010010698747726565509590346680177691856109701063976558883412024160985657523145771738112365569953395238630815789074787577525229407286945886370156349654299768666206173002650815697107874975976311414064426006456207356975021694459041353216197283288214433515087654465322833675895906940265215307462619536538644270245209864028749980680813941241963786637210506071291669915607460175521545783100018973073701295031863893865506607981684719733405715367119937607733445347035664166688017444567806105046952048397171809503877868715689132419290563200597366932435874989210694863406886024043581406100803793569369614175699977311237208327402715741938810100260705027413744741021394807947165758454342277614490085921061318610159062789763181284573449400324403741492000655401621069936292958098893540627168208407752540724860554781928581990635445349566049203395296308746873018634200154426427236184391611973677461529867744030189609271030057965707170174899916045996176041875620729159533573449672336292069338038368709779579389395991938090019286379206682762577840707611488007047449605914920682879458756840085255912765955771912500511968673500132553783332130441144832098875336862916283116142565015457564965176207962773041344068097986141656556607543783337121136399870604674486878262281151980108212687188035035931059195840358673943871608264116498902633888368408305033833075288151135897719477110347255212404762251768691613265357047949090517454582232263861104626754452807056759427198211195415565091796256934911238327510624783027363620883622556502514941863154553977600838872812302064004953363138272898717049292883406458904073118540016026105034629840196187396194018709439851818511552746607447514762546419340363974943660226284207045515015001244593823401553691807511490055466261978117271055549535327433020559134773736195895958243113222640990509082069201062102923042198527881856918980347221491785018961183669182286984299673676827525012247257823005307516009427211808983265451041214663911101968975656217204691599444170316142242405472898855579607581545693627264848016433448894257101990602769430158772888101544948551006051168647335921152322598728625426731274027455356293618309886797122419689712920418321367596111120810340447876958419459372813588297249805676649320690416585495932606528618075436683263515485172079569852776551323433215697738504908444428029341081840684854214963201225481263128124800246574841432020854985237818077302602633546945407066567322292054341098667958501304675378181207706604358033038023971223945098191105696158309212303093152863513350609889716562663786640020014794826129185326944990468164332004496574248339902137157638563009512923877796573437396479675764894925961652239047530888476150675983394301308797296043553922252745443850151503302424900571057063923516296338807410381295860911415258036894246598387921824723226811689962641208229798946945284266098247933322113988362622610461975062178618383822215163973359694696213754806409295250697566125209395388728626642901468850002163246388143124424130899208959674218428654385625988364589070574711377299599374488110140224085170107943440161204677148713800543161906223130114664571748684372053919661741632290467103773951881440068647284332405084641654728511098362911169579418462525916349145758606130249489046955064183748347849787908037242846618715206163462101430027329837349656972661577485308796913593521225780222981572499903636422763091127480577079732023545625639845270248126800756502379726426692817819125886432841167787746357298183333990410906677320579243699626419523028085776512180647640453190631569797470502846012565128927098439961273602687402317616483379487925737350659750149586889738847938117482908099395929169520172772271332402880449627016698653008336609842666679236534579289533152345387178401126131401477819712437390528786522362118355888686741610803856604770262210646312599911013665168988623433401794403234071698247071422845028550142846818658903688616953632899269981214286635739662495404329486795342268503715654710781611710051163131172013842347098352199613104486519898271212412371232885606464837228401595696950794609084986348730247555909200613047208077234448561122870500580619057129947961016016233995790114889584424953079735927593094562686995846725237203929194616610243517971106529059547767309959761942374606919780801549980387101793134082269521602185573500380188494858878200096231395753790821377534321636459374713996558274815300560004691191963276483333710952772460026946419588107679880627514103342969831913732471517134884458535808525688568847169116407828202731677334472622517649097299435827198430387124248042252402070542008164490099926403771611595131034966339462563631031904910255848052428801528587967612568338715994755642451416387617967817956043760012382835697601011312191482579110117709062023166042006261067153906145835630704222890012693552056090653826709803741805769438729394466854285100510434879885298771233972713616984284523713064510824403957175298934641122425595099798167423169649475364257299701247091623164519730739259808423216696331433966290600596656074597435276927566962130262295624084264075679945475623946593905247840196942157182036263258827179110205482236386102484600471224571471193094787576307716360160843958191404215690345420421434616253315365362241995555373499811928353148078267713821746181795045156526393216054344739395756880007294839949999869052766359474547949353040313542539724522234991147877993548453545935334750666216183627683561253896209671182524446529610511553571993644633545319080930272509445554604658230710213237132702009701423289738483072500214719068514036145460214752850356922510633436871683207064606516824091627872431811485761672760859913645690514827520098505060860541286320653811061221952708569399646179506145805178088440493337623187195367764871072933081214185607407629149493954877017385442349262236753352093069363636175251063244088334831044430684469521683282889999237725633091097999565112130759117584037916767330422887237962936973199778793300101819922308060824724023791572826160626246433605561240425850263120416909165379175136894760272650304282342483847589446180043894391171219879827449824863130233403593302468290710861734460923094992245689659335273794530160603413020793489074986361295735313831249005638428424227204503426406748819197177787270061143809972703586230616574460240756256041891821420657720448282212674666994657175381697453898006253040418273295197943292876668026861346503382542875405697409845892963965210501134716154546756666616150361114071771434982896482759957582016335107605382330557913042360545573119399719237969271109292063144624810694012523550959285928683459206042554927272178225195881458323292715629186988819436079830917499761561188282719993257126680662149235956968582740480643599375350940612134701067187297945306441491980562631699202613692688865277453365682787854073457067613411215688695530754502418000777511684217954402572121035468761070445240953747238929790211906207802539377105474116342318428001045516197033558932397711581025365925616930099273719401671809855561474000554327095211179795581117949011144059767556955975825361032188343070624933260153629919498834917990816062812702885056650639213383461495236107740361884901905391851940550505550883767369274274762743327495532216716304053893814777347878658339227810010876980499030934207887422648009517196917958136015510034024931753159236638342827494917546767032815356178395419708517971837895891790869481029349665310121403575347101874282622296943690640782457704392416143084338439069558607641874617640949257150138190405700817042522147811243230495775522149934882294581943621187803249312125255102316084511933485641134935898590721202605704875230127227786449169669609362809050514953885809285055302874741741027824188269676831233053057453770359442889612092685288002333366758724874135329786276802029571570739793443671800923427820659747960344927229853510853240841647276046455763010393064561981292766678874883845341044849647568700470837921544095805545085484976237895624812525186675562816006282981540980456751398394249754410395616673859577443009094462297327953745872275656622538451061371867268358004859468741391936926568599615816223111260668526093416010511531688515635667139603386169555057100679011544046840078775000795376158901448868865894055384948357088359164579682422120629707582458965094515364132423708328027186340119709595597634734879495833896879393482498633212156749246315143668978610787331319965005846799434128259664553286982569716792915450087490808250560658333781549755065742091584583161105124787178920253234611950475300313552247788595061723954847296415851223413499296937815856901053410435205722309901473112086724906602629618904846523558952941889977723865042451108470282971061008372087625518543148136603475844873482493857584489897915333177120490824416920787605193620375098305015792547366376918671694565492156716906145270138583058213316087032678040473522693964893389360756266278155842530806471515574997341914709621156486684987872266861426211138915863194444130942448321990581557754680505191738656958305825708913493805833343251672322707258604398635289352729559926240136079635315505202798741363215730742038485873140734199588517211203589837154253147200290073441658685119489189195886263045268380780713358111267748153202136548067686117335209250054370785693527149128413474652689223291881522766418405719365108821417693307061616857981267070982280518203398260135497875795448609523580472951560234477563752055181848835822400714421129094972057444553001680524229814936446414711422835906594864930038747698499116947030309997144505502454671619293988989906943712774791972142124689883948732825110298508804998435039534453582214938632962140274701362668861345583794669446521668355707452857260065150893209252664190188031631987583141924523512864332138227688922108642566053831752000971964395905700545933725175004542391737527168056969755676212064551624081894822478029942449565298747579152855385235037318819756622794239385712347361559924258594118104387460184960021894881350338555779963547459389198090060534271661719042425299288584493904007677033391025903418200677249361153913172474602031405167979445303949277971537521332852441299853378231810717294766771505126040464658074650871509476222817483722951882809060929497924466227540151243285127750298307765889063157427331776884138072397910460216339758251491298555220986563845584521853289301132452340762761292407455953236610636748924033477407749432323189978119259105551289579321048817792125193305424758094822086386076826772864384126403034198409779307565823243626608874952440769386598675377094275794339748239136577906001259309798574418344332049084458054216171801236885264967641496256084571195226306532744801507760050666943874434879350472968891721485163385973143876166953317339781116098547795907823407338145004362485552019670292890451734318163142282116704029612376757662525341627991921970375796783269831639560932430360573641319214874063807847930306160637609163404350843627762676256986567770899831471598360037002709703506687122297892402319001144870336145569566512028942660219900700807342111103995833400986051077296058799145280224788595462638092089745390364994245083714850965193722207770450224922016845838885044886208376249077145510901716478341233031100034881393895238345660333407895753396987007090915981080402327348902936516797475463231381820347043877180745356121739308562921474939813354496293372927531262435361526781248137025444556709101598832260733322722168804945708039153113517450100645771764491648848845964823125105553417906704476356883381087129825310574139959411648657100366934587695609609941786585944733039981019214800290045296355923629496107688330902992024175475535197888465542492222816456682146491612951015526373132273523649330772148322215942603393591586557794983845073625463868672034107881377806929371226169917789204793440517620937326629820411960261364846272870514304776000268141898966622200183405986641340160636898772067836969832875914083611619286603575198542886610721944792318886290281461524058672229224549280860263567830725045260223992176613851627603498139338364136134488164811984916923425207556041281197682703664563626835911196699329406809292879485085534615909995164302415123705312713540228346262986792153831068360935079732848065429674408756209389046465030169443367041226468989177591177615439032691261515649935342801947844747108350304294330120365630667449583362670245185768164126588341136012378845967665111973923358349371857997786029012511137488687443735856258531482643298122477110214311944330043261532668336309275642475319316616325679981085897603433078169131551965125209855176575402130119138929033703239938875334788537053748186114794842799920997071422144727921385711536441466118486879591160591082264907394000483999339265341828693693878523749256057348408619160947991856403109776216363178176292200116216571194260026731233906876014390404237358263026693206490680457796288021785282105113521682125302671883640654387617073909980328665832224131468854972860946384717859079709988565023473207576069610150151116413254517469863469335513007130850347507925233071030107497889802533732370923642945002235690212244789237735874541593204692645066579203065037542987654261013826368435161502906325976944026553204095119316845603032169811980737313458768607822170848570649190985421231379215116081552245153944952360963629310027404084188150046062529290656328395682861002601936078794824141561122770626014019445432880744607024929184433261824862095336863883509772483080270385151371882544284589579152002558095567329973353218441235934910107078959438941618011953786505255269162056788946241775923734470478152519562582438775964190155321135706770112918321745417078352535436070730182217566353895666641511296041738799047427612395237113297002346877326535289858391025469446615285071460604246060425703113501415126895597757573149149148456291143980316467776322780939652972287898809195654144121810234899285661980881243876234633401216739840087093166964577716045440253350336027472245149264638368006764245515405458174071832718954809142603614759703982403998679870555980439193353627344794469553029563439909357591055835198867359303706281569331595802486403378148935754533118841426159056456678097539036264206225079691581516658635807540543646589003297379326834136330408109321069310626174525338853271001960217868972433679011217803809047258404428561208870796851663899017358293836426608743643015818284690707128850900759642404382670679418238261388486824565243434355404495243556345829010799189862554852818084355656071672610340312633710874812644583133062982942396379753505014105981962422262371758150735533724757780898725239136888449795055862775022201134025119071632851391445340949775846610487047651475171497112170711990145664791922490113557202982026275346510790529119593075531306880392332431687884304080770287969767888489666268044719622053822585698629237293569591902086301493331751758367430511519120546031828581211845557242269294547601856722608957778217903050212129630339706823620291062420956616422004996308937623740682566603674872946678765011888129446015778358548963433169433568553768391493685509598578817467699834787586104438942296393682218069223805179269849741122901916240239302878647321826971072433813960026931671811573646575941695061517900032648818459388365851164587504119900246258308890859163450654284958701844657781878803887491954562484342395609527891024614375786353576643629374792544422184898149756580150303819015944715749428086916934751423816078141930610932461783463145837676309089237914816238601863589527255468430020610406894188533602704292429384273413803955296936075145584649625115781832966738518022804095635584798517242900505990591469701994592488363929760267631837653816329375949124149828413252012306660074513674633168179442107992065929609536800128889910615037620963485080494357804433058203884574835470147168746204721085320480188717351249840227092436199830119590515677315785925381563947815912261870903325555506182725805255459833711509103312856388699468581868346627451292926945674381559070344473207814143981134782943241946317104185894389226426264806670088426941745102540030445894058745904284498414426894874088300597121060778471926308213680663083194480728955121350331150698373207824817979326031265092669202404206666726659620354266814220251867395286374491815150341378655345405084497402018009018744495244884113776120031193470996040150342148644414623846898966519451331273770692070768008912538809643027136934320396954701788147337878329509190222963117099659481651852713099819608488336737167680489517641736261400744024182815020509393877884425237068889409117747135266041110248709006061343027353829886249690946937230613730073605582909537327272623748611277448589633633468693039782962730055019099998134139859046829451398169396395284427895914968223524876763611083503055538463459628537653682349040539039652724862122542254688420352082575396717981778596936049472412331318112335670763817072560173330299821890374721098561055685074393651721245493646518159012810760189075374280182683987984952768737823302511241783303895675170369863178613317928031133924360315266086328613681745512147425041105534271527657412171244875839387492599307049080847394903203293817679286661482251000821254350594985076815180928642693606072793834987534670610415770288200396057340642736738344105330861986855087212847752607760865101893491997508658219812099233245204839520886515542899619311646536515468938318282861851871705304425758319449744976096548600535823023156723307699078947465700254201279627282260061887065516132598505940875529451280313542595144089334276432634798949727298368353592827302876687474225065245190051274402640354866056537487671902389321345298384376124113171092699526597174443009218164931343592007313816680471641817759216062436613932790473004151907997307615963016160008438832117912694156710225471355876951837351246000734221218809538855080576296451174481464035430042461431253147491641868286827913484380854081601164028157902917660605169657063240473125445914535187070712131935397163115531253520928836702217505888101430637284038078429770310266162254165475036811158829685970822959134909427952709460112036127968923561562546284970294181354761525906557132601272031426219402477068833689279159965907380754600546398702364767108580300741125136943648706795644827046894321676231715864782544938497530559356709727743773785179172665539275614985874542765435264000644939362029490111110710648438875827797483985537341085617394777200290063887240703846481240163277200991675989283166227623331830322978682639666125954486274238998664691699860116995508163191545376642211881290256240857383455888925216552832851668460488996515497272353141836108236612614469673007456824166424468390934239838191325398561785036610266371453895563701415975954975373695224133321758907118839179167545148750548710853242980179307634764031932457508487770546898217790390741632602622496940878271508661058531710564668248632530949163108794623946305070635189380502771333309164189647353347761114531896226050623923201418186545114970145692512901203880660646316535403587064154287794912812497633834691129871125598102785156650348765878949267030133956409409959101356329448374350761027902653451483544582192771772181069982587154920453088004549505883843178687048351785623020015073278844305246354705150334554363743260638828745562226019115337843301571925502378763057876117125631409406255529888197302286933450069799287952154366582166602904952384208700428332786529329522046607179141616063691360564888022298288454652395346174656575841338779262654775649260220418777259444453851890058652761647680777434157385584475659140451974321106128095581519069283737687064490136208159561756296397343151854691071410193403402443525514660780093627202027774238550546571328140411577911841487979509044097501138813918353085026466548852866202376175871130813324213352456122456549740353231974551864831462020599419142856395427789624891140505593684728317935227588629792417620055507050926448435853373542379837293871653093760508458310313520175695247657343960789018270860553786325218762742227225428553107146084168625991582833114120287737995128374773338522144622980606042700151452364870798665752052339459439641853577323236675658807552495253681296189591951599778433599322471362922236332645794780090862601617634741503727324842424259473483365661236180286889107661719545885383082950062128340115964609857949005461962055020412492098829970536868203096230311021294718465656461359261064572562815177729736227520174481163853319262516653578805845094763025358100680951522486796340246657555190919379974200022314091445328130592135518241447692720805511810418310754986556717961683602730774561785704146394953887329369702632897953306927027839774043599226549663172519630181569335175379137284419541278767787525466580779210623883217020984521919772262102918492660209128515522891538104849038284973740041095565133051696855494956951033558809954333692015729865253090668114671089425416553408086014731609784898903903830078513214079795630853547963592529033976387904490772394575309410656777370735886004869310591395331799054304548911461985738435897406901051269507142759155028616274172905703179228347053794679611971918182147584399445514330673455495821021567690182059603594878667284728743266301782833485942430254148751318654900496927552901376544706056945689832932822840428447452167168208823502015140398844307300776998159105052495099227793799218060636742825070791561776128509873786569071108385026094528016525410659171353629433639451477621199777040944948820272978534546825655174512910231367034516438950392529387073462794918860416574729291216878164142761142220367245381662315486977848622924244770438929308716784275465422813575802324735520531546089718151741036923690685440424857934768972836482341459318441572387642778521190659714045824158481360153753101118089387503289742130868040720589821822751882394323419790643822306290231202630003217802453151762718383654297292823306646652670464242235751016840225414572690867183316740485433109623660920767941458209800282094205267685741421459272835360278416581945875870816442232621479539628653675261897341160175319185539577503870527885856677423973890244169199851822970739813720651236924824079770201219366609132335807893904612199271790181566245139120842588473228328677461028167095094155885430459967228668414833347004332617680630424028747033533254957374790844276178162663480775831032832150772466600343023441446936035704183905337534210536434931710646060242179066862673659964818141791953954199702205191955387554310092338185988160606616250414929256795797900942145367656495526074552987631211014486945336590132928851303826402589609144998493747341069905797399241388659664556710544720733271391527915118449062847198374367821384542251549903979809416359591945437266977966594852167614604562514266664972763084802437171562721133791662345205894427751146753675396956900280874586623934509618777920895157287375624065872694749653765613840713820545057836639273645631282024321256775281308779918673286419562738505052561670909276029009548528670849617436080293692721506953793436577182017153716463617051087849305599060715079968432526764369595535856708654427131375843933635478114911714404680753569345944434460770658430697628994480904536263801270601544131878712053827367865069880158737496794953208240876723923048048118099938404481954352694565677411874294840968195075947099963764961689868535707972841666581578793553880143089825945247366910084826878289543580524946806368565919729080779040761699725371701024254233410290958966436577669507106955829050125749125522714888254073585952040321537465470103783513448799934105619552390703089061567998416703205695136258915465616315641018288470816585876559503111105231138987857839792508626353877785887122537770323792555072367201302582294788298090998262462288144349248455075921387963021874382988532585087858917518809565354882935644480995186004637807797809372968649268528691750770593073510403855511336773123631700754733736676052119275240549643579796159067657507620227493846783590275480097340923290366238303848267131229742878464421707012443077674390640112357139069901803790352236626737863105039505008041790220827943116718669347388102555483483708033204196157267802846953298557735683515350736967535903476254037842033088059031055913686458275720590555448842796207288022634914161479913566885737925791239054946248314095611048044641846974728614243621439831400755316465216165657869191196934749187450149457508020304164401309264817390440956940569927145687189680593516272523663584371698187895027575113231754222980360063505152870918774307085649830541643073888465872676869036784368503554513076932719896191180041539757810648105120483371189589852850723180011768574914717697078186516261420447254369274369290846379494542833914433619794856077730283345247086923584098183101733146951256428066494881035613300946987826336590236831992213511431420094158315232921535996511586948122329470306905618553024572664697142486439966281851646436734243884355150223099552512859741669604796707907353110286156923706549062735004658414157272820477604488881809812006157953639048230361683149608294658887843411626896230331795221856654665755716567499391856389342877104567828263291642507748055583102107170446607724988559910658140232118969951755338776827456200096240136993538946516570989105011645178301455342362115900013078519051379445983505002111803435278413476660651617672607906586932214913094168872902605215638635248351336565105363955605733529544854586793221257698704319755927183319493770461286161697314213598003335347105618750385136051743376349947737220576994670257815845226850847668403541532206134422439857059906063062377004304812296325648033686151578843398794335178699669088513080555000807231722731741763607029421285054041269586787661200479575664202383381532124491284284225024972008433614653110138319795303133870257755874373009018565814171556179068388186085014691012976160739443609713277415413380787681460528339752909776816322354791941559058630687606641259931649921788947298005417457034476854443492106981763936420414530280168188994807689286514760290397898316319752597469864117163385206731928475338035144624666880343435056920271517397050547330783546190655959583655032567769089894671598378804245702146068083414743265558525366413937995082978428108188815701876400005945983383879361893782332912274298026924609034277912319945934660231777674749977630476740991161882159886562115989638254562177078271640700111236027466815040167612090013578604221593341660253148811628969646866987578845758119376083104277740136361548057458693982866250370200754662938118966115144718730138094618786805256974017078018962565492151962850423169597011972607612158306871815051523330611238309824496917400466930781548451018971551818446342170918406713644289410154498670382126399194229131044078588402710798528228586016267010477681268879196649756170770951933623420606269716473185636905338535824774995836438673106503975788700598773458463869147142299434054471314010254244741315396400986555012574811491677552506699157708214622241283657184788586458840566305744735936988592466964145309034635006337591368056739104661174739463714497059588013231603079358166567889774468593244180561435179190907993120403832112070554412956352989985602878454613543754373902478962352112088966273448587180018749021103721012206818318911203833303652799236678415653065385230464444982287085164443709590464416454735175396479753361462383429409767538210898465705714041166801472391488869159203302858098299891682962435926998371648554023689920847163129115382545951453120859022864910828976301904409807221755908706018115564226894114463652253456272510767003457207154035653094968635519897847938956224359805896056779326378007440131533582055543020956543424350734188920899786987003192556705661590539538591011145377886776743891579108632213035543471286652678337505923780316301454815691814089461106204654202573514345119889934364546825381295918174121855531716124382554609869844494549045844117372785664333647203427951289176258488026227781424024537617011141046548582782439923583465679595538005591615218157436605024640331800733991960034028412631209401583015446783882609788033800775765902893199791793104943304488904500352179995065169457799964987480604297455312166980091928767700117123664598926026101628374609670943791354046757693571747188288360292358381022143198308484631531855757858236973701590943943996457257906573136630465916866404859469551883128607735372946570961742785505732709252451693732436480310040660401072787710810736241162579121999065691638117978842120873345795889685781105169786846802363917916017727356758559834411670951239449257044717424092399263841252804879307922065630298267002973585314849091830527814017059145623029466976418036242592273357836979303039218842248857936184856744063203242488726335958943737407459002727940891237395593883221577778375875663307075877351260753487339494804821429176645266820649849895953439278583425233897766837429474241800989462140286318728520925535561419372806479662067707749416294163165557842168141170205399475665419105213809977030132617984592923216736922179491384227285715101139826220866068998353150224176502179313846418384712494319320954584183127913091835997429369042022273912177207797538593217642450958969369648708047797228144639625714723626073304150027687957837369186563156800221499818596000644056899313281009712406421321872115911412969133589805096047402051850924200699925914841964974101358615537362332314366786988348648050009146057253965947611767365334038962535113353574365390065880031337608936742447095762502175138806107233767401225036975032787354935874695751742081804968068898328506490868695711822934654310400049393908348325792244574053006585594317558952739229912249730103297975346342739130033151045242524425499966553118035393693998342986304517938883946515290569850469500436524052555883738055823319048723836895961945624882366314408993801208644983900369247484767829677766627572710201595078439622339163553540203323954028603324794002098517472467781978871898030898805971183197513675671054815397486868998662972113097195305301017140419724868450038562636537621786759430239709124144681635115076620729449460410955877279078724119475642118939954766645021516227669419855966897857630565882250132006520752386597831497824691287814113583385818611772970185935640055471229073302488453334927198317165837505355917410844646075884535702674277799070086966713695384933823903301859124314770237800468543158219904462164438219034486090564268012816504188932606934343011643030357189645636909021172386909146494325929442831954908902623979429977136147319099105164057503105322985897454351479391649643111656944241416228011717184924708577842250431492223879064944291139096832574961108221029290920105012927846469291322051338628450817336704253581256111817703175116277363170714378528304254319737357456129995171330506265479066744767621716349878601421231230617593914630333827767288056460159231018877979372772185853152579120638303364402118158941356162060342949590212544911664833484025291471677996554042816928856572910836778783645930790479282131362188788180639988309976989717749983520540759279415716998483299793092359982200638955328952233675773013115747901581774816210184288050820554771940196252974791828001776646357131859315267625532411946651660170060122576984437175685306527892784304914448409837615296615109256381459457095524390496967657212080547579701639718153771160312721049317756859117397680049714313525674661354129659578299339887275254816380112424332971508372215369232925593526225057828202658439182998078434057670875735537906058377164569575502989693364983865656239587191184834887063314810935221186739862336067566157002434323295875504448677873212741328741592104234266399291865432299428419805349752687105106066531245053718754149383113123368648063551965105726525830492949924827075221331073264237675057579255787652814891879522152213860398604157785187728780356218334676428999131784725047486291468940174825870715460653067435003590110118844717611905486321126126000029423475292642742248553025003328751131673306545189969062104674182578323709213031691457454350902128298356930144008375790892211075682176922683604470558162411389726594001209696989660188278687281903004611788357918742883262300596831655852078339822147281267314481910055470514043788567898922350142281593181839500188194880921096750799641942887106902470562370612641397547487710653036149488050690108186479191716666429387910553957232840596596480072553795828231527404675460457014115835868557631058479100951287016518041960143404089687534820510303826379693172829617045080931030790760728799965910164596869052601908617621859335892765368878017271232894979180272944279042306305204252460756001997352810959255903608806563591277482847423512693544427643322561605737614552661418883942964825585120082264757654037864560354016287490618222787277844503711946766854223363204193910258273082751908219661682399366520624601496604746578186549557672886321841168107422510999671998432631237993885385999320972731196983551197588124885215224011659900485486781026326364289953339383114485860460945409404290122897756911188620184222936878754880654273356391140354370581330279837570258790434163922552696166601333074740984824793500669688433326966464212279952904037791948488905926177117609881889725483788531291096312512601128397138939904234172980080474942501388802716234604878153618543571527298845603257129813257122025040842851063396634855080939285892707871438582696542497075595958659897465606676844127279184230025542860731556591185458015903086654808037416465712736752113559417145939271287111296518602131505343883024535667346539972299359204063299709818607292143002985965279708171979966534379461463587401794205188292911439193812044082343255457937317544254042545558845897934343574370214073872628378822180586813595352576183574857768441727071212424567425344595260979959663336718079454644162274139169703704802386770741910543815068633498877826008969593783797970717399536842095698680127649599610811095560879185558868922570074887973332143299863614804581023903271295877379122020934496393621666396268172306456251526600582180003215118496561123880168675802266467018252810302637163459682148008742023202514162420117513222985490521945378881764227637934223291099092834501805401627836543042128341359433350709735175134969639723885460895831285558250915292665870989072652884017303248092451327817358346208891833813584379218757520772156536816823297836041881174439137077035965758865865948121021796608617135556034236344719199957085046789747011284494296500258773071437406635624983919393057734928774745097875038016773649800051241459794323064816552010489037502484250805908604121469728081304891843651365280973729019238820656636636114566459291775268789947802273960135003903064537646253651559438542246090070111411726748023523239736566780305341512995681409472224760678223643926563436071257539478932785606237987497669963770591490159947525004208025529466772114827204489124029083718390323785366824228361952728999464629250243482839903688923828440008175075967630041999492962188260743421909581430483273917866615675426244725325774730695067627494237342743542010105401459668556828107837577962599967467691233466227105706422304181443374025744425796129831869262366111047055443100821075740281241400568413475258254577920289400219280090011881127822523081732732708755343249805567988162901634347012652878627803892269319772934487924092138206383299306051723400361753551373767835957150164026277089595759336473015704758841245976299561155916430718393147972803319976236519950738527114795174151410246218486521648634917288244024154492324908154274936063915595971098590861906666912556436447214139929849173466094103917089259040522572131699628076916361207712523110227896260297319619811001342186502979396225548386137445166064508326546018199776353661156446309640419071231932126482812790522881787351530988267707789219138918416467352720298192990406981855596235586056450160042160220658915780909769708745160730954066603222334033087573388636940392122260126758454497897861425727768087442010571340984168669801521808291733117407237739341581362610855218851185692517421491205451910093469013319086123708531671281776458891141407768329895830261920046827343967726529356049957095220684309467551737824603712674527261556767821011395199340994221439589789452908889491918271059827784142594879681582000849992149291459679627201225104173909630830462109155335952051684671314453837879852974131138746351708266365156169903187873840835499638978264028920044384645907568366620557549643993825194825196303804345351696145507552012316238959482625535131951525089180322221223357155628208296419244746823725807366247487729969022972901234837479713915271802029818777433201397112402830979824488768991369900007380892781112681663704667617897601495410696241304839446971240374363638630807263803856677227603687789932275245895732522466127573177940787950087641404302024761628300242730066631285486479881983557521320942056780418503765842455501065977135386374101986664231261035822952919165457603556828862780754735449308373842293889117810178032646964843160909409636203580414858570820018251369345543736506816010097049104240016920725662923194542755307524881308656232709738259498599986573910068558853064642409415574557056444973952349673223841424231122638569710232242297007992934996358533460619100484385664095718002620682841998400550339880141921448547318531523760732494947502728889852958862570960131015875910570498286102249565704702996235066164054398488301590047672414058912429077334657539168657891368739139098189816418355683278285246244142331022209966187997490545473780889801561067172844803874650047584726351427154607370143052282284684713983316743428327272665276001467612850068276365943816923027734439893143227983790742820183353419313663487267423844412566671536485791776539772015848822815346424221061796355527455662130538925589109719951756540747362266858910164015413484096914947883649403957355033523593184973792464820776244249056682585154019910120935411528620682557204761283460849045903887609596648425334733223704126830447038718638458446468457619846077708304526952611412342774844814342540258546131155876884974881079261822052910667016051071158659293183811870252851968339451951044266603230855102922955144265057911714824522923388997008155935345670287668956725672983136377972500011216503153626845321474900207432399113973340334571142273974742665008302215830175761208787474905140311806193881388107763727197997098001285881168416905398683553870896135701182380586763248702868811755680305227473900151361542839850368823399747513735637431867314214916197648190878329397273318723049265561047771885296630737188099517006473681999563544852835335071064738711631287503786288453203573063288809641991895974660328439836428434371357896598326783378739696249396757714107057919436083370197203236855009994872052481267660104923657712037558511773443896474626081006055827891891789236786837574653615415742366442995005438239307385933214587654660004281148554159254929064655389095251580429685382146442873753241790250512492098985770322487920914818767579945555660222619190961107140012746615695371173152077868230054261423852358578325932721273503128122213851896875747071994965286092444065046055524096585248544378074710208261606478643530239183104923229185087531464022381132263293494703433665500935841769057809077670158306929175661558899935868226869529484341140691984757643112334063646155372964443823949950502467520942402107440022716412524851527949178958300883284542974214772845304767063973799415437425854495196131567115120500569170842300169943641604153168857728817298507982100742256452460712069180020994583999677524117305505902414936189436585814521632956744874750414710563621106645177807384584219340274314325927676691829152863430415307244221456214955630907350190437110593233755877272759687252030526296962539984879664982880769837203204034098387447927458643142821570301985898264390338059687993256669417961912236324715089555245449347615107741284487239639169070060207056758327070163923830541081980326876002411007273895702314989238228340676515442594871909926590120578512477430388156855768185427610160001830335929807548267177292648330518525232426257187191275209659092459168087342696136263169224542517209453267241308043349866179773742260837910145985484380773634957902634220135142758733589827612350824996090749133233647718232217382648143297699027953226992132908588323150970243336769840902265795760388347380778835762524798366184689400866672932553425701168587780744882897956875436984670254083357986096529014671795491293596272119903681964964666127693654749315790932055898997592781086133017962541233539178750543716460152368903230703434621636924019469792494172685427928068280280047214303518260815937497287181426185496964819768772768857526710810093667204873507528266723756509603854866218314925687772182092280816340511687737784797859693528838389291192337827893608278516630579092780217795426179339875610071302668036102527888175576887885536394096790943992874272149448504032922285297404466269356599337033631554579727710393988441758696877769597934806720429656875193319400426229746125951346656220977283730529732795516847656368962776130428530825278264875179649802835106051246657312507392001354648479111613475133615207646234868315823904202167237066200154510543419730129523261538363583263783867775893876540643720444168130307140126770297995108619554517235364950856914015034909717554101766861307106826931832560762599762180653449908514443792569500074706181707211413995098807032319900576263549283891355690822661739832591542631759565658968089542667079667720999552914645447300703663749776497993299232458594289959515213620729294139891248489865510927473722755661174704273605331734931362557559798742823273311070006983290596783796021313840243424338081045515116020181265349368213321069851591712707346722342348876764661848342090345972977034192874475543522166656198614045324332070064831764224395627833038504691982967450150802877078778351626993285337839908328184870238778299214430216777217312092696658902941933527884219656051766539017916169965283659821505613235710729606708967949845558838196167946359275088032464493597338660742612242761653702583036341040356118756845591749183879121027929496058078261747643519844502729248765711937282929509985967179399077791408919942326494932819578994180737291959404856836626361750552550571259600763930643982020520406727932378210015978063429612503628722127306373584844392070445329516729522253447527129212002930017051009949351945185752821288629172467909615340658396865939618848766597863270409372093301960770246124065018005038894751989298419614560966049398417946214049895038832008577645532188080425140545451107157532800018356775661763086708338286908315664792056876338956162380196030887419341891559491038181405262855880286697732166136083324918886849290722412625431473858929389317987528221074400526698441538385850044543767686799812667366399362473668379575743318594009433096625957136816616770322413254974322676517266857654667726555048241517196670889687515759361293928013005345946003339841572242849926865682052487807942940128094522605484318500722176030665514291624692621204427252948927879007053926866651303356282944883619256625208336847638679112264466612242146054282184183621840099276546233764665259513121532797277131790118301974953031271632582640491515077206459610138925479610685025204725617035816896456619740641897308040088290877138674742931053228063875971858033444504396660900050167867153182915659870377762628776242359083889599605945098665506980718814564918731437330461930432321687362927131166393664222079881863285322133076324313297742658314820356729572011033101034222815648288810518694171215480594213957854834139883401532988713845585432013600806680400597010126954270416820910672774198999383470408019369907306059713847112996719177780612972871655988610573074682601912518799442640621358508895864285872587102815669462462648974513963895034202043154306743059635762837720485720713871910158364991875079109080803059972766462390993696977705518080161231844205749715668630076602071334369781498796144693050220369225103121513125162223584521422858354876855485768377395302381381452825226577495012590240616569301275357026050824043015581133379667867968943072854108176812183671871395447933118349379948387714365168124833902394679938701653099435675370562840440755578751501444380494528092782313385791993515083489541159220878653177432282273286425536057598002966868530156675238024003881618043211696160887944489235247600490971820367160172784130151270087194234732882728578315292170349912335329505772186159232986610370875732912201204686449485951875060907359106889048632499413708846639274094042311723065927017374669746660965261148444682777213928415788105551862959727746579350327094796721321350778765064890436407327930012107073032586753668101380473932638563093858403735238586419240384174106313013089196512944618438875913834913136370479345624242986394376581551313831362840984485715179626556413593631410222901269722506473104977165782411894030589578595618870356788215727094584139548104425521079372829897455652026974672322736423841339796773924189479774327043855899058132966185835107434599472500428623487895328070654618353882312825298672873489265803116831329623783171681174616328734502968377991175831935427795892178159960112071634044351754446311377647054874540237839387481228839302391958014769770543833843503534964694480040532163114487015356733288833466706789740260486358683054636654086050692185625919075985279913412932456213270271245724053890688286095666623037990654856566117831826407344777754139122626983805094155613267412239365165085959367537807126325133056966440211607433931290981205062057459239262171374581353745470020994919697967802377179216372535237500561965647444035182824266075886352962631239579209727284231010768442259425874508916238215985461833777161012887634549633562276493615874652982956878116160156027319948018232098171739318044516982344550421059362308089012558056498238092520157822935079564288824763312201257973839401674056736463723587782194068511336999180378366757822517459646235316912533364103566421353667705013724925282889534095725489567884353560836424743721135053862401161650258486731658496970872374115399877273268123529311884417320091635386784989741306053587722903453571170662134742826109944428520012417205352842113751748134619737382771291188220839375086921277526341992624827692986882032873217419009556034866445795588919470707003936190345439902670779163399912460727014383674376583849245200500815629117861974375254343389759203190706050233349215223943967027204378928573417283521246463549008623097735962425631715116548269513504301581576205103080053845411312435750711249210127949719074267150121979660579429569477456079175057543752372039887210114576993958163774413414681999728272035944387127844693604700740124840272780690576445777894128268339445008789866727921627057723540635028883659788660679682503931880145978755648849418306563004940731043247480856939766757051474145737903290708967230400376548043862771305465316938510521926211619600027316817595972658665549525568043354468534050583020492375882844654107766602421709328149424357536033214145502373230349897496230788169498494510904528509841484084999701152976875973029810610388181761402210248939262687253726013082477888005653230334505596780234256016740229629561903541362299312004260241877427772512144412517949900629784792672542609738230827537086258737334167007134464236308540522988224995824204668223298302871947677587331994687694127457584225313066920953882613142811169309865200103558783763739262523279773360883165235056449992989339402824796110612496105998186867472386916871275407362613358258732837907312415834196264436752925394705242750856130130729773122821516640849831211431319412720929840969535191911287769514451386466522130051717997755780923179767991574195550815831910313718572442336344980369330415086522831911203194223859365861403535873308993920735353272998001443728689314934128501613296490840950331272022033683472339230104252464614137168067241085172036528748006006367898741150990824080801272917284137138774134223185872486937613903762486747208180761455919335431985915058882441698486391676846450304737889848964646553640963660825571405100788387985785727397371740247318533181404709510565818901989485854361098426624994824324759444508233626024199373674669791977435526070731655967499637908837656512409700717967883376352301322160504383735489410315164348015519370498831747247735886840881110583601397809798783254428851321751819315330294091882689152337417925865092547719530138595417185291647107170520258155935311691200032023194653186805384724523629720680737994992709266520448519064121260721817768197546472127255198364488273849949689946029367853730747751328408355940946970420704907919808464993746704650237701330225832967638634227055882469275628629525124613864961111750478425305195838676609909965527009664495621091837233622768841240753343666868384440442166084270835088051893897180270117526442919701594844367163996508930169035923746049340351238013018215629469705894864658606836756768644425226369502686717382559309649906839489389415934939208088068207729329323480732125203794176122432211043360307448973995406715692921314150124218097431334912727581927530319016291327314002588225971373287493546047696254960851365955214581068492436860035534729920127757378460367902998942284517387925771754314867883022126261985548839894088220385904797392884106574101186178955348042307173713337332275612792283937660987484031234418460609106194821489373346398403682262849607395869903257762759096231886354376894038824958355997481217022249925157197917060849198138006444441371780557181616361487995199235625844707261220247956956081086451158182215565749550202707448437677161406285776646709871394895030702820341649353985073719887216562172553393583334953922969651736878739231159336885334500783389717227644974358469142195234411222435955108192051094110614317260055424676582969379930156781470318687936726388524361452840133158807908593742712018588024525129198995629919457262834563027037209122701779403753917746347966281247923650980287478088937178924593327922366143447112247001218300893611634457066606023952643742724271036051118176240587107349262034137042923884142783097823933344081442336134579109185242116115743066650033417636984012426023944360868433691512258176934040189201427778817307050334400953739225387751749750922742426094204372153261207063780524456560880673259108572497959597773566271173931498536605026858845455076722412665132140742467774853800211466980068280426640241751220030842499290702027806199853050970259571936913200893039612393726080519608522184013776771716793436516664151553504304654390678797534736679821051163203111218221084948479319712878071600675197761842474367687446923849509125316296292591253309276011637862083364538498931689568084408501160063458546330698072830896181703803330090198847035151858341970899758164504690911062514198653429331425854684199554729485929865824452534548404623867277357454117966170367657791770333284964135096617227827908591212785951018876366017465265172815616596021164712696713523577582492550463661462232793083877137805451360003784399573599271383885625353491970793423254116912902958823312960650249522571381567513163571423870173868524172314980893803112412459003943644781320755031008466124348370449494855243929953557598335888801550550289655000254236619947682320198015595743197952272020705144120820257833406488655794168834348219047849202047302812223897758249648293279930586298716488011570355055907518977025801305978954738000363440516220121021069208193916437288565650859966872399854951842852896292684688524308543380895557840705078009663566002647921450739792529353629496714391961251361234793755426968280468250159548468609068768158236490613483641710384938554594050195260956501954269914802101656531418777400734264512368446550041504605194540822620104273163709071167674978130661846581768862201389681112586542585464698508492785970610956958536554866273957575494893453259701949594490520108125085233085009519725174401371188799624932799436107088933129462915870118267818677411661160607085548812412656180092602489615826632633275768254241619785932480583226909295629659174802116932951576654031808605578997410059127613062328666159411275230090859869607395403471535591608044803661060897998944839870448307500917592960817358766127955262104647053712469442770249034134769058737304942740879033330718822197637561282432118775388915944327973710628235515126203564585724069012111392600303513830476426723401151997319666583911998299899686199259250112880458357722616264576240407303712092904815105485947495970197130042827738930138508718068712093618834188515805795343809474720365220537908523992631271246671164054224815707812354012313547958578608764861142496612671944359136550700377912135677814643883771963131829270121798910425060249157212889462924122675740723445165244270843941253182510126853923491241903289329559840836091295883918509470810794931363475412040127016233338965514057308999488503127379717053321371959882615221931166445751639823238103076840401614766604313947845806263123739440392561548998113621471896722824041029323268803306277339119779780527505422890736112873133783021987558800013182830177959521118630659620821272632366926765426871273433151980123955169098869634910616055691977432847624162535186794119361449384960110773649507631772351074117193893538575110759231623015772003138386718798887902335186272045105757099549747979757358965248839040103468678880929756824979533642421953692209648171407615788077894795269187364626335840365447813731493229459313912473668004690755695814707913857431656041091763447422099712189273257294006140788123003853756673496692204619065547693834887489625396832093896873654650793717894811132139837831495072544248224214713597714528743281505174266466577657217351337754920667247108605398502415181731635658674801089218635575228115265664551602550998187538678224109028605887815768669135789858823342129431431611293539124866862661297085608140288874293346328456277384570920671689556141521558280600779041817376073469105162450393129487876300569508336129292902721329324991523606280782992874494155525481757754782761755633230071686121904374932475394521668426261104482238386461959579156308258813817290885249645745494338991130773987891895420232201940801501143182267845713387962524567847765945732456312328845885332078475141340030713373273427996273494908162022066136547075429555875429915026817248178096868543243688980107966337874735020877308977624803973850013278474512671682085909289591907074368493718793015615063079739223958209941522599529778977790205857242082062724343647354216696404482625860124615463187376604579079397310399305531281944751357518901306253055621561276298460516925391457654357050974350650919083161254566023739254305190557493974038129538247667145841297669791077716876590277104456758499578393348393976381393786711513777759974724642409891518236906690362767872401990150073716185326447837085287533738413953328929739962620773435079815910527025492730605500601215282037150846923376347935426884559150187615556808345773995535251751936114808183768045496605172293522850061723468823515402324284157577048453910254153019491760651346949506380496288659007062388333629358009148160036366176648271961951318957296548901590025721958191964057549268480585902744505114374268389389852111050223002688616751367398536484588204052455168799902471307089038742039374194831374076096453932081699431642311742280215569256033120845475587873419168550397674002014531317515830808663504606140845265419959162234699914466074651346480155445172618854833922526663495362008650636122914523054388994543109160619209847090054174654951082214879267574422601834835114653476117245175796428273809943452235622086343955348430117447074230249168191004343898538226573226830342927460582550153348464585949757633247760427204735062697955326728089272890445235763452982945084746827024832736192897031529957168987918597431946961088936668759539987466228965928630430191395587995692208691804268579795948911715424557341860286461092038577509399856197001723220026628459002262282280304623712291329837998653156306883042005915541633959528873563628238668772077722501913923804402826672387957148385647981870617016948430585428046769875604041987140885474142871693589666707670639569142226856400893927405553332725554652710666259417152243426239453542492536161376050398005180601690682465383702025125314856217483809782505111769510068024888661773377132267551355301172327738853736874237024598270017508058880470766054665948219762275955202889221252424091752079226129905488974626766641387270281843282793069780671273608244714108155542474311825658279919945652304732889462387118591935467837621058871395636857210177070630959315222044068001759687177174723556078377888778232524105627438845928897588562234536523105861815758056770162890052070090937666717154121187759418755913885159696548603643264535355312257026227891738616981106788991500430973491503923639472603290310467127603701875659833384788732723521618039803744189220857995055527010536117711815409505078879387084109467627610139299428808000343146668141753901738907240730225181352532114569256298639203632049933809784013727364603402277634619327039570495641261843633134491605557866489365567778080977527975499740655489927023179574981258348521563013792881017726675033980848308996163263553916489886411525200720582603010621673280808211891693734451777348399649011219714939328468883727712631136045258346552286343303127398702716490825355376353573612850455088531522857810166801149182080686622725232940456225366035372693403322661926276802556523660291404044247436771013876195311578830271933872655526726552176773971678451053571560615479271368690205013968402190110946687238905279654289833274421606102531921862110124261960027606256822388784143849668437500149897366669733887992191447443943937824208406283705906717363525019911158088803018445428914916349820923332681692420828692247072925402562472946080069659428291703530556015551722667884428479170151411614586271252445675222371507517314505337718230461944921775399249144528989352445176942884102051919868737653960190266083422256010996543581700719204655183008746344532418103868997535578487786517344173944656478793484289962380703078486975830416752705394495869593709419630422261782635192241707741329152820404521090624540352935579507721753629197786595912801964172084771054204115237327398227434635208403255545082930548101446603349919809145834786406426892552763427414927024968199541206673724923035503910883644415752841573715399697758501231429075811398330034383860483461103708848922263018404062437813681469354995802607915178687137095788532780445086572928916611715941751120256422297481033690317316819913001359438422272190792013982606965555678641248256267844714146027580741077777332475053912740595548257086797727412302317569878401095123436644281199175937989796910264321503469670243432866881693185799927644297011126769905292276962969674123493005475806239213137621851756058637976221030491065465761927644389367461709368316367504828877785873005179274516057411207779879918354167216988262512369054534845656253467214365470862478484991525952151459589623817683331016211097029626647892513597385640091924671710336981716752381606996056626772632561660415238217808112564243753952356123560662678759119279674160077055702133282611313328340170245723395450531823378513526369278963125189702863148257872955475169636687027385053621540793096363609957352515381297126662907496295349462930576557220137385778689887587036055898881707690172877459307994143300820337633853765366860374162538157443404946333845013566471271582660987275038306871410776492348116217390834864845370287913018186034405112587738909537566359705158952437590736337557218719971965089096027867940327318597869459462866738409157748199911587502913564154635245057693582818372845582474160695511118397814608120270671309948359555576061822730117490858403585780445756860279905446243866114373005555385155610435433315855493421410737973836313727154113918564718362990140197033341533373700735093983624748100166639210921919792488896211270229958117652882524867743491998658040902178550903369164604503517137606596033401142732357855836851439031533779424915447420202264149691184686208681594991330601671864388598395516320089658236362484036570536421978256927670519191980598715603138875281497173126545769314484384534023005474946637018455922620576406125904677476983856613231043726467226536681561979513773917539313303717525839487411756594428984322031986731701989146481114279528511897786687068244585410345803421523751190873849967325763886016570242090925154688741900577423432481773032845588353559085854919865748870880147046946619547356161222122951984782053494363211506825255489639847850224354985899274790855676118277285895749927004343017362343684966005024349525153317438919516824827278800186351636760140893011366341555671737710284476184213760688214375468633835416541498116376583764467822205454485345470179883863412990204596443875032072181334045103495409950758289350728133592884556864163212455803892920798666298799552336170743054283849286885818403255974843826938778890546960129763429909528113832855180856463023307864014362216850944303351717188170841024803721259288516986427338875947134293787458138857344453736848920549995255162088152326128139352183154799407181237265126352050916680143808577227524433346452955952915103909235963337904638046261814205582898904253413455721850279431197831207570355218383504862283357535071168182008861757792000799593159199934881543195318297819072690265091324189071608237845322760871747032757369147814332500893316811301463886668010326570861010389949518290791752120676714671977361651520490246583546194708289233929058752152955196636237808234825920102692840948596593078873871779951153473257296971382142494589674601964867559511018812675416986958995505193829165468167461664589994579693274557984160305493903952583023440040567044034066012407363668829200903487387366554609085796066996377734731053178183732282199717272206797316831171581661987158177854468617122616862813802721498520551970742064332068311081971241416261546336558485809008690877760840432236224359571435628465239794609979880590445089331137783563125795232920691963000438036673909918739317944415768270325120382260923903001212293091895851874983143894583641823560331166967820310263708209485712922603184923276498469340975324401394899636135371215297919717092736315982148529469152979635511009530409933022087934098190024176701685743608895737350901076141367333879731104368292118613942506558423948430517841619304444844578590841851400235419847661589339408620814651098861414261063011716967854482620274785145444831071857739154366966788109990011441119329777843741213928427187318114506534513507133580117053076920720907106727352269263457197278510897867794514758456562077830497357743320892322258935697756405187631339095046997549540726587702385871040723877256314453657865710356246487936400780773132758859458750227295046944412084679396979408040125425038754172666383384653104446885140238166101393602095184909249134461072843688085412110445703411337185740330171944620599645940476996188542935338248544331616501697454645013871013872126768071962499479738384761046290435281144278394484752343478859759011794370104675994192941216786174992579401076994489582153805746828683088945454134483916819005364797208915516939650953622058100877365341848606253453076340105585898264282468924441140130559920477075396540735862272448969172838015303028539695890979956032169997485953137584822439648085506822732178795591616520085548056567726510138477703329683031031538917507237348661459114435414346978329524845779591819957802505157367025294387836285802796507675044473543814050004517319695309801135182661958362170628270001360036608119228080342165315085683918280266789114597379112581618676819476600289165879893007708031273545866194098769588632513238895718577915516570910845348632133112926537449890843291122564125905928404927629888509029852884391252934028204867113552804998445115531379162500198164519779694365526693226443353042814859118745407592886958331133152699332699079154544828258284852935005809240275816265368518996834776619714077918304486067299553152417643984708169303752591214838669468818347730806477531963529580129545468260099345694828591519400889266098478313114895733421766308475023290882160571175404059064880339776199187825944582758368334163931759232159643026116864447943972563180516182166627573506467792874874443395861294540606118519277026837042958776317861147186362966600327434107802884513527911324674716367481289179505566898372920432459453689141991435498652674758703035471284618720773982604370385045473440129158888275854719154925181017911140679961733181322638310967548533150271137656166738955489613074412406548448344331585158704545221691872055197888603288254353779190246547777429478657400050260485144964762576607885463323463121732552373910561848796419459779365728096330470770420552709656421867585476393557845599286106745950718157380445215917607165518260450525088578820686052339197813300505567356456653638883527697941260842285734893974809699637985490454488109161303468278630284660498812051924881956769449871145647430804848647159803032184389970798580528371913043795790342367429911779328790654418879025064817148156155420904560108348354358573300489748223033206222814269354176854930199798816574317114734764445144550312693256753172839672300173000635502220934623583351505239971210831166889757393184568293528124312902692493593146836159772082894877950511825067135566154779285404822402297265919103462061759213037547621648761311203655218817174244215474694319944670882725714021502922315854512082776240978494522880096231517983087006663803677253779595015321662724715669465860784413156637803888539427849970093358676593646314483679035204967632050341419856986586282143181815466921768037794971696514315171566170275184760966499174497632016875729162440786761672842542614160859872869867236581044125474397428654955180488089377262915064737583065747751851262087297127388640258355982430955288290169001994976521502216923289305570534575505431040602611557857571114279593371686087584115118468885097984432556389271858952487958566731012764015111765411271541207894776745963050378637641410524958316027422564211088289673895475348591008659343509301813794704644031217693467522581620341591604044016965081598417142252352004903515111449897748895899094222643234609992988538085120032728464178629535981781624275813544993799623933812631730241909155694132261351860258955619832122784906109660327084397670731893578546117098532320205620066360160048985467785218552463393447321528091244139043074651667771370700723097631465615899897458328377547077213621300364546940361769112669457261993494013317302674121972296129669078777229356239594966517537660289957396751354230595278421042785205434847194518562424879259791926544376447411892592156308849405700721755402664810300977231951835086850043063261588539661436576965118049685244599542159188434109810555879703641190963023030890496567785341600453670347117300028879202288768981866369484737460584163384218223712155622539548424582094717271070528602616764450314934786516350504644471663132082861312967608687800322586637484046583106921009565650988845101066722907165902111710619606212160291356013233555326611630291157964383774565089030247902453652974591527407012304045031619291318259469044864814454255146947146563138529274280400172228778098920446434459220813322852842770997017327070901850496869915692251261936909069870426856674528998670673295333191505929742793672048820623443264817006261590344613005878031936719206993041632487019898635452208077863129693785059764102156369354097332270807753074716717896782984209303035798290951964610295185036897016201417734713553531937209151551412906346583479781528059560131646039240779469894707873153329845023984667030518141588762583242852809154222425358649504983426099182697708930369327567242835571917586128525364237052675082403228903791489196149590402014239047933718164169931466863082362249697779416765620246627642032537343403252399176292691477513383390278893777555317378777444169292261162078001281558549735489118937531120551802340999282550492969685671874912286778949193671584017510937217782833759250497863829361722642401267048798627291521813744770674864593440365610912497758290935961528412733301819463812502284055954016228527061982426636270865695406956420390313078137603664543384977022658748684213052073516679034980695454143789537610917698844296995904146527193215873875845867226166684882014968808374436085301607745625074465773964868562277585188735314721559681998908707855352028388675422659237728981241634180854269947353454371719926059915771490310425988900661072753471829744730699671845070197702969414126669766795320727408780247834133713848837918859894343977342480736319754765496334444055190244561633930808524576568049883108396071719299970293138947632620405179754538005765361557825375913790260112234543214488430025107980492031240102202815386081012911021123948406199307405830199875953920304411861459147272432208552034787501087014190807532208289826760241779049166661985370761516068846808281147160165271475191068061671768759192103076030819015549138128670323714454303288089766774348520122547568001236411779565016569912457608843214844110542992265135380641132554499544119224017733399912885761158554441703302899905390049521033101393078865191332577966488858990174378194743571590959004408672713158900636582761718265077480852271096779803579363895570970040479008914569590080330453823942806733653891155645808951221679927661575872438621186805421711962120126703678865711429291010863514289574721200258912361465146015150664736198960747402895276016554219379543310718888903280242345669078287451910902327147965421309150065393370990085827107432339596421529839212945133125792907946108961448375065466476322754810735308173391883064503408412844665857453996633915067150055074740697734065372953174009113860073899110705476273857116759561824956250081107500637201708115435138760469279951202778982428087716000625851944024131026008274438711951542302139192104050721069855057383845636009012140816783161198446933048654708599350009677836305059780529636829711312205652536605866466554177911876283234913893734207903504743890379534259360367621894286398708561241710849101909796347510106324690771941345141380495982419419363583140658393412169241662013309090766008090520522289438579694866015969010562432117712892176369631325546106479709937405053229440054040261600510861124845877951871059488078775464745121250835031668780691468951549106531993477947603496380890237308386442114278777662072816156502139890735761734625318490756204364265211283668765132364288253351160461368613610219879795039166912411064198888570120489172293219623523260740873292330745350132665553835413745614582753601096998159553629281774162433897171860517214381697262986069134974021343664925308846184652756576512954314160003877678759088079367202263705696517445855145653252388577248794638613876912605944926048751818691995979202197239687216462014205873467752491959226026952411061877066133458881223335564550011889601803738592861931350974980183057077201036495892282568804899445127894876334883620194578811973522143989059379242520014302470999925535525414377444792641195592595946360860071940983207443413840003383860728542837975449643271297445894925726244461690009602219581589964674507271058575529273459449257030270440144048274013136953322239488171370966616991664507930323792471906666971282886229547794398735795382889936610988379889589229668876129686948452521054315965083572861372116368464466517713183646122594319295413765455743516299842779851254531425233169180808128046166450653539426949767961513348280538351201802847474169454736194290446315658406132437417614391048800746161105603158917957883579664003232716114931417223447938020953567967627006813979845440280757642213101591646914894751490891591590145940068856351312234452692289256645053429978776619936704033110470955240416342317446326425893782930568611035024686203052974601682135231368321180704124043407690264464018481803065864575601426686338512290650551227957347281255645728975469845898124846883850740061895547830019556710864749790301822196503492950011331786030662611351352720957916738412081882697929561923712073252086391878809353232938999916366097493516279443899250565031726916994158690826414848979313708033684312293423960086225554024357450077948899921711134728043074070899429644064973300716012645426226004392219629362799410490611018668645037826886663705891504745412275659489476629126542667513437348066862526611690760650000279289043630481725365764611094990998128365673097608142730024318197844294999470284881628445330304483897729974007875606350471893084855874870775280147348750876192030034349889322790030833456256980095048461644104604512551180094987661880081242605336637523128740872253223432060155460112740822568202454837173720179741398430424732256459492212477314635269898899401436640745910752371263172731892727841922238080937978846366233441706571321698372047761412164150610265526431866325773711524473738586902258238508088154877467700587607455650609845070011740525044738209810899846875729113265866890560559855118860332621614482128312393466710453229619922785697081449632796362371206529789461871441513260942365949767992612830281786011282803365977135224289384615616339767060594973725535290660098930961290631008252992439112775548689877783731281273927346656130286101755416030353338164345825438808321385294489041075933179165193805529891750410903168936100145081453700521528654260489799392244270524686267703104037556516324845518794288908350336647416673803373150593197354779525032487018501563998624059611345839258574222240357320010708687702793206513962977323237045133909748506054967764865132103820041749965452272108661786624300164431369814990861802116115086421756796040085385535973547548973160031192233383566696020590384681715295718778174101470013733476205423923460863169829969255975492977708788351131988739066791397129132526261608450277236228419599859627594927914305094969724470317040623983833552439853744467090220581611629241705088644060302513766090544841690486934320953692617149865743613052974228840435566714935308440783174111935590812580520746478304757082367478756974863967095776067323385096130920387291470629271202422611812560364253398577198198363442867556921399165955752828481190579391854605024115872203092818631720865423822299287669034344182475265106445045730763449494460129730780069351462193698715901553139563610365248237082174269467171255973284873038072978948935414709879130219174451269622858392270215270533114547540501777037588284292218157341590943539057857244871413867321136984771779057711279338572210876379495663207061248876239571026994495724647741334197230745693619759576917275044471964829173610673118225775478762756238519671086370868941312259398759845062564848228221829207815819462235086832436809160917042236693780857729005431609592494323577377394868715895321142126170955657603357992720277764337942353534847793880600396629919704119198890309727253577583942547749644048679946455247773941859624666948186546704570993014059921652952082346659775603939222843323221170980059153809416245217660088541166455176274900717944893036938995962733332093217448505058310326134784650279819940057335764553758123599459586851555330679642817634085850423970616967203992437244603895825117877053804624217463246679643520244421977447347911771542111477163350265891584068228818647544797164499779348793503940114432008247857082658777936914247818653359382866029782968151150139937765945191365310851658341468429130830377938943989731168972398628468447698130953286067367659686847203458982747591196696241138758520193086564310688885968762948501818231268190097268549116501613734732227402708739606275317990496390199509153403617164671075219585636227963860480579740173297374954961908369286107077345789207949082665100397265865085651660255036584470679218362038618271170488486694737065327411210480196524330372466082994932455627024142417966566429794458902883207999041795772105974507590753193849418706620881724019741308826077036411343007359761002915801487525456831502725819597785951999711908219628518703642933498249554379462159409486448096879819585563337146011912595174430407604091497266622510844247107128570371366621665384415403329491468069753594996491170434436332304260563516659532855059078136171492153799475282155167241036312123502023735780947850270690341170612975014485126214109621002436270416687835802091944115245253313837585665809035890519258685054032535866786215982626148554808280878679768913505459196273418218086430553839919597899999362366116261415097350927645820751157484508364055123403658768857657746495829006735769944768047627072609390903431034485065683062820893201061746392052070301517038166649943705757203799933874412315886406493893330166101935061253263458915825888603888589159240566845679415693462479248162572357013330110608091588893231658035621250249420568724477149775075114984794701143711823522202141632670783234320310363908611738100946067202633781064812393560693908548662244302553770142363714563483251777487722247525531019609271269985439102607632935856404140905368541403492154435331417121811191569514343837120907282834688155300566288816977067927998475479658302616013767182853428878945970280550936318386434753693886886776529768046311885064345212054568398048717340950162292926753951009512276506544482149442807839813965969406582423060192897451690151910091227207614570790969199842177729543110429250870717911777361914176099567856133785359383998653885921745382267349243389724191604188204436778300165629311642705659047249116703701486180931712121197068727295034906720163448841860895721813219802736759825146174798964643544100317816409709489614019404124738048168963980738697464062994512308202599108883194094454557287702813536488213965995066490042273949749324120651289329568670030377481013367269176048477265504576689251760039317446946031374002304801589636836331064156084054504357825429480289229100886406243239359836499672325073100130717260289959939238873116588135145334160626001357006929985806687095125252701572534512461363006333039328697649700037753489748943962929566668261424214524490112679556823166596180812579328236449363020824098279577444010379597678089126894452905623668461078116118279487462563508691913661065167408591661449118454581399426848969930641556840255848650351385121949914390973763640088472398327225343852374011812698499340552094629247471644323243415372274486050144708844154927121027678874592741803501269595216382923814024722784459108629686093865280019428877151401924156165344899605389054586308265513787276412168699414046666572502325732702334616192956006915978028396050924315433930993562738054947338808850490242463438929265305469325765449318665132110998412609968923960403575497949920464875355849748808245712887800012473547285992497188963779546526669563025292737952888990018823870210918218468809254819400582704325537077191517848702785356733270376343436807576080881150364768887777747354017373473673996236674040851451673931364529021293842967266320609435315950626220058315784324706228937932448181456798902269676510809005189031697852922732655052781505578951991812494763367392185081965534944137710513819556608195980618865729467021039282716856692704079931760947102959501446033829766469543371038074799619926178805883842223488003547491100244532844991070282529739148723484835326699757277161541695590772618145612060543773885547509024872066913515333589521379881690128168462849430613826618953773780878491837610430779104933456237783712631513953397825565279324434739041181389476583639331970514539668398815138214505541627512577181135111516903910072349719218062758879467856062458820603659542615292541886430952206765849543604135094633844740041099210508398437733225440318022888666450251183169677339773788709385537740427073073748055705618831255014652630048555172055713877073861407225185635906467136804804995672558999311317771909693002540539659309666938297605975396363897477589892009985948634868890040286638096854943298739473121417244905804371496716297408927037491004786804490118138709012799561756062897293560901113189477439607591000620148733059513716333237013320917628308831822367138150932755480125430627095740539440566868681249933646201573559860501792517030182211800875955153268691236760000456126382119311336351361810958383811667366735083012012188419169162406434090520649569620955971963388360297743414981823187855317112051007955539064900507168749249437704680515046836269489433392556216768519562478148840871531041471355230390618075701482952275322304983790961531847447277770870458438844482228751049477395989663849654103269411595919039050234445317037443810226829912650256810957860455728785636526920483205341290866330004794029819443628625617533866412884465255834951756420158579273591561272975244399210396622944538054952528116392471744844035504311378752641078976367373864486862150238440059424927502017444189228777579250573423357806929163229793965385125314497062092010844572587599763188924308806330466374663076962581474713888404904607312922755399134502664201471593670006826741002181959804122679426951948331635990247836533599269743674465418198289076203027787438894300255064205859326807614895004031235885495037961217269204936608968700740604896747670759789591638017111397535614283822797846483200497747073148910515191553524645340083796689215849402476342163970747133028669040207277876113541717086262075318313998808181627376154538031259054773422025990715844212621069817849747163168438806012837037311082938689441022755748270463970115550336547296301182379111280637620151445484220019241318748217373655263819074373362782097884004817674274325166000134934409744241350167108583477869245072221813616671170901252068622009094655182158744696785671408913178443690612715053012653995904249710965678427530217165211756465797443980949442590992615567047467135902803716675646271271503259924795438995224828813421362503304834524724878605639833438530652665128729496688875197335340291465212504357244714514801144807463831694682951073344462233559970087772554732285684859326538775772331768707413916749834885010872465978924563888207270859863291654368810186310978210003132397971376999324624122313604192228411523116829558802950195938198227866584470924803472716366967441335490870746981934364213854159219495542515223955362249934806018011187860114803056332756626594113514966584538735267715083336535019207903549469525670215972286888020887183456172974182976929032730908905006796368969890672964653476940169546376154388641669761589631955481882687366499321334837817612512350749131129188352674595967746778445360830976811232723518487315430218689949426222730472682348541634612096083314281327136883444182113299439368880617475088787185939729616864330460994219732668863588043000858239570033547985837870688950128468016234557348991657494727477698094991652043723862252332182403160456658255093260205910048440261614184430723998095244184663708879459437280565934022469737218145602073744434478788330823598098402746502222850241300923096459373117706583190710195567150396815536816819740011999147224995016140975890749330108276964021827077670878125334950313149779570504340099697458838477084267348799423805142058691895315538640036869229802362135720628056939158591197652507525894133622396599088176224657143507763508109324624630331656518648649000679168369313218031802035935512184717554395636614098412417861028174997565640575966266464287409564599247297357099247731768576900713232144553978756400652750181700201694662577700119503317933212883585290961997510495494347731517807237170156674837826047870062613060097976762102123618878114390979367627118836819365113300755926106185756586406604104644769435455183933870272852936432572389056656252305566147467432619001615854153418191187190343190384444977120324185640661574096184618795874098849882371643222664772190903955341061119986704779922297883863472546670137008404333200309138210168152928988434924540135201667765758127900535129904622803142008522104712938732402185167367740704961401697655540735119639059081841378139016713561700635795809730220534192974542308710707923366002583887201471833396683960641960853944763961704212512161823510191150635179292841485454836113022761861178319242180306850638304782277983648393926416699429462649088343088348099978554265510166746879442894690529096198674540653019038953279240064092354229757464484587756850432883652477855284106401024151549410501949507705115050850541311643932607871328711181184716731442365892197909345929091092773310021458281393145151447196887861455370705642965825733121168465624054875362975332755738399007469650383335318237720589681066194583444927550273967031305755460758701399718871092016055010162632163702727685685589476812159722987644290254776648478454865200981516598427965518065368867623203754768725789056194709835291040922376815634609296181611558794199850207754800825825683983193710066613990783937733370861414040126465123085472620619619783770004201139295583523650140139117648105616532069007072745997203457810458890742411194633380674531401159243298028795501533693389000897490574250072799202183704964564550795723679530091990919773643645396873174110593981960372930386272633712671920208938320380474249052816386826916762913323702799923241521848141285094108748158592007464950135604266378787922070550074030322975630814109901358940162544813953146114138446310545114695154651488037309102843229104811815092337032711940152321282194799906152934022401925149799692558612544884714348829319376943394656104028007721602621412317257050789987393416518176473648779792033258011829510449084695529630206346807361831991316180380569859160369349345764381584956948523865219779450559829519346503019953600008098835971124253623265858541395684667984096297430190682649192283964033719945317615801467401971695866889330788578824347716264104223208545557514909343079241484907293972000028299926797768561287329184850756007305886439089339301104124392364272323377885293955811013346244438623799632360439610035504288108979550886891968490522167246448358955746890476410060021881536972543037673864565340739140296573859149372810880866242221724693948960538147265169439437573592984765816989511031179425726510846421991894883258749539690258105078172589929818243787595739699314546846937953536415953663607919497529226463840158625942839088579699175905009194420437799306113533373408684357241588572482055830856719569226337081640158354310815536180767984317384170894493840399104841980089296002001799758924312654503335234299533073155537550220578894100634795841094408464741997028080114659419331660960683246775970265931143545117054150937613206383214941460569255838734914615606120001553856825892465872060654740431008923076514764463623373329641836421734595291153017391099320479627692998304046686487083724830126984680222873653095274236964320350772376799293684774223151765929225230655133865925598101335994430331512544161229764862509542497541668863194047092947777317764748037333851935631634773434370164177742066465920589081295523421989204660981161763988845042556674156716831374676837839999094136754704451368122469298405686370025042501366976587638972924798339423546788240569629277597662168659884838635803376131623215775330248005743567510865230498171735711496998881008439347379013701855150398814071326341945118443042218371930003640061059187604081756671430417985528336673605280818584115465896108705515556306670145069898080692860203606756889353947328568532720951757399901824929593016507036511148576897829820450443658648195470273041134375216388769835539624936239642907495574928984344585701180334830440476772301585280341463240950647398424233174635621745698693959493149416818651715376668954751549175273381488077716892570263197485435731840637813568911145267269016512592478658437754018398183737291915554064875278764185939798433769820884119136448744978929006017014140670053626129435980720510891900663347016283816452567938429030091342960917297022273644840114015882804530420757241543038806529401123154136133592460492921721575142669288247448051783412534622024056027852974548793824153775965138416015542192955331813672405855716218276185560261578563363874213151424873347290023670620491227049042932441194334529848008535487358368600474966949340944999763757331483257884153869324551927131435466156044004826187616402014297784335664112914928537690047277193499226804849993760696244808270506529738514246264825876243053247472997968659569751120256525510672658809784263543478638943647931636460559961870516394667628193293147018547740202334414630603421616458089205715515810043756686084393978028463743080765832579114585380251146759434740179109243579255073681588258094398085198770231730447361850478598651214351547239595066524938451065759154426477567003200250369064074256058458690412451582811853218694670863190465711864031839443845106116852519980114522442433955841603495279782610672254786756867078589737558370270050830873773428554577314704432338578795934951629417279967443017827473643775986749917867579973699040788018034851564013161470923552620297565587337709081762493597218418348424548233848618078181979089158303463067943226095499784998338495919934937882174466968858967805484423944140193441438599332700925756950604545677713214689159643381976467696998295618390242023261682035063338550285526205810507159896000368524111562250407111707369990261252552002153068063980257556382998066778884731082099293441635280695587381761558780999444286710300638318185924861562950137265880255050763610491286085506740511402630486250925831911766339580568159938814624147373678006285713656383582253303207497717638502004275762614590237887789752774639705616722624775923282972786408302413886247480686730561547655099554159815998925705953032699470371523229425344229165285399256811436514778135537938878178728165441689833255602423382657740009042844227164693938933617177991781014141088873920659858388894774463585350224654106394057782119350750331529138444014962012139080972915704134700854566026152773910511370595703590307129973850543340544569683620212268475373013494454297938203040641033650205030468285997076514488810041558252466789515781628201076130884189148524647058006896974981088014102829918687174492265897309283065465030821431003035607593803547587793981483637816226977396918050496557636328316281994907311338154269567888823570412346898819810705379597606516375768258167750065290314213054653295882120824180294077849550815357366663918665842129864663649778284754480818034217441259406553097453355767494401212146655639839840027554971555013971013014272294015891962334350553731519103030446599048375123262476282712027138397828683735217554217965220742380749787698071980051507474084253909097064698411090880172595125020629375423948247843444911766035803594939959782577977263242727052482841196084346311919017534510058117621539581546332398371433272415926977617647547150512086683668893998142077153758533496625153135721569298632018885335299071322016897349490792421693046022561797347297778493596161362933516964253182835423956792293592991882522709634225013572690559568070296629018395857649975018065408272463964927015858289529522878127783895767554506673049221709682138216640734127555029258516656653367583129701545412251969225861151991077700960464252825741111663477582140610192368072653829739375551799661558594680811754653911561306696293348978587232133062904817304923704794738447080069370761314690667103112605105058602214028982720796187677739873765567902496327157293129898645698558079013942399669567964998928941844330519968702443407227942638772876007976184060982084773418899763051570772957795018077147627321255092537401112890323989332433161862451162726381956148904650854496002655853752162281756367677594584298648397266466098538617353138302047770996928413374020141742204481066867597006595774102818018935960827908359453637298645757294878770369178218712929663350151949163722853548703608635973070953753261795197599360257344639963471440441319336676963053917168213831587130317026064680845120070233354216529653866187651501883798297448386426523330422502226776699974709319058675137602554703756718202669304011267012746836859543325632457109817546579699646141487726590574104633562349697368691705994570101345009800882660692725449199661797770233696535942132509601464291351560691115273738647089489116775784047485481909477770242588393105125859324776164964467820673501714687059357486651676051094318479610505683847468608162150755464673117984980832264662976741484117461382102448285319246073745111471932095406564549907787615785981669341784743738357396305687467172827743987767013541215529762379313882407450898271607584455426595117609789754925678071478402400600748671462600985511962370089645975136148147606932560572871517720002489132526950095299495348209493473458990312659359971915209685471428373000323963228067230055957040459719227252661048980625039052125590522900218302528664266310958650986025959941262665068739314604620900599692974399643462222890056972255788608339416328940370607699120612928120853776994708090663609843305792111277305066570983816192221862026618577145725773763522861889764148232310554643832903121044433961262743340829729339911968793132749377430444839894911116490385883455161515954945394012199544689304642995012079291938724837433298225482352922143098569006614656428226779837382942999724832772142495265735618521743994447924901468134211584971525342757229252268869319669947377310526241738512742582778580148470053878464677535477333921160133119130050921674568603001973391591391069020331865209293687490693992678693205016527274728645720411239691894536154837263583757107348403160679160890262711194578227077300952918522494519585516099700968959274267830385663531634813570398954524745201041784158306015081116812053132803958094272763446719307082198496299700874010091485736896255433413960206411928670856819785703245211474284896710737313533988670753192660948533612175797821468148147584826382043938795159232314519042597178257820046205135529952210935527121422188559994422795365383401764969607014109808116945625956526179121022957209956176256913419162134715567696174119719280614136655878758107069376085034142801542443748661725354723560455015978242847775546625659248677184790357091146460208442335573034145862798035450807962516782293218392020397404115588537753394281207737922971822256913239572611235665472816693005790908505595128706307417402061836665365243076140515689525664577106961702762687564077582480401684155279205355257384913754723840012595639552044094415466731914694997213933153053870798537655316897896817372381406582655905833550924990035392268113303897949520282108701680773335870173673260132472953031935836120978185800010443587800363019784900474605097819829518396612009917286990531483445614084760226858483974809312061103073073989791163708488171216190803086397386199135945148182066176674966475279189458632057692665799607989858641103290554764622416912648846018842213525560720071904356275231770328921456986588213726263789233482223191360691690117703932049064529375342944499841687380610814502527134421930665863824828729573924885044200588614845334143074176884183109110914868542386074094105377998239511921734201100865274709557415611845934187083375433683519506231971920852619980709508600426964349883567281504032727620264434748773019539919736653440899997133131343495995998329596858549519469218545122526630224556798296170989816996117186184128282804654727780406586976407460535345128799075653651076867020579658900788274452156657451117997148516067119405217405267165792054592020163086156896718054826194480231444558787070379150074583295686553747325539813045637927706586064613398573012033204342311183224763015241829277639079053371103122003820008597025207413449901315214109523352457060717454552498554574606415391551224465995904030589664698119651552066983405221949767269081665331943119969502001072033008462710906794859915630513376324019102407384283291447537612038759697858355346205019304325620241398113443081326682356389971544204740452390550600088319546396580066378185356310744344712748484065581492293680395410009083700513221432050921056499909630015676968222245113162388743417842348200260356795026267974629933075510222040154151211650839329787585367107707649028168826809203682102410143442840975784744842248616480102981073195841623993335097471802069723436639651795667625738745842514067491315705408232701453144039271918993940612788192475466334857800253015691916384242113614325104219234200643388162031905521354643874635970882427669691827374891752724787867909226366615049383755453892992586934226442916120278335787242695751442181696844841075731066703525224503718243873399427537564051849764937756223437636635984924420864347220382045242973083219367459662862321932762046532665126192894828056688259655974456135647357439751533590721650300006328402801046445896144775340608697816973307102124124676608482881414964682374944327662010562746330092992234455728986910915259620633008275079767165201379670364564260238441452239993746072409875030052919312894391350428383447280098773750479998031069644529714988163001294086224840636210824698108340494974032546820682943563940128597202308749395493573371547101137761327690458312796630202722931828346130265693676261809596152405049582992046855021129016836582506608006843472284589548856900673489132068758523922696226630272855284801545316067233467466708822336305745372059594973873148535230413953447501185245512527601903203923127378251992622937468342943234685972211002720732751825453156071607965156430378693226487343149901963282134412156262979992591751117519178087792405723849036009900030906858928176366199793851574963323970588341803304927312268574919288536324515404188941530043716169691356175850986526186899041975180466346424596089586322959126064064106403955608951856634734646747287300880046094531702040178891089120909671451199982222197550031495544604695321503403681301214769128536399940391532096683918566961760661008215826424488500421398572969339217600066951616143869898230700481100650014683185580925366238437193504477699925424404623536442117191098422254996345126302744894929853749274289767656519741780764554238786732468184131089866853127083637405413596257902535815662271448769841625385422352016544818335091634129155835398863941265496994567272280503974891058246196113155923981299694463358368269283526000922087319884288646952642027617260328950570403745592435265017921502051941382527276998013698449019560047288372477630441922127397835854145979748619363556483930245966901368772192105789178687835826534261916905558816798359134057636953376765097364174964366576218645540618799101469219144241186583142111508495952022749851025905567180160758104866440957223278386379183513753761264209727481821094877698277578334992085704804218387866136445946300855763475565154911167935049052279438237360310120101526513736240354040034963169695045510915491585007585475088878430294639685007203819644002163954390065765378297509431069384565652633280758714944419693044199307372237775852115772725808542701323562825766913381271566250578864194309727545758206895453509961487843932187568480171762733306542144981984498715971208579456512505383380319803774247335421399939741330384672677564378960609634179987337448435425929496322499602123021914448134810649766602482779763123238141596385054304855154001831733815552503632637320283160562305523962629582177333639091358081306030994255609881637970945588166427174443561237178379428391201259440395560427205539466321592223467934153778156892639817909420013934772703325798043689229591677299147387743458716272520676990037291695277654848930741281147363546928315157996407691768670113426616710221377983119715003037829248951724021172315537232881100797650745372394720742957463621307310896872192997457901897476447824338622839804974353493700594031563358557706307556489714296905434883141680804571318162762904526047887066604163615980417057382674262150571641687015359825000075186667136503949460091161139497901280019248941735779726110130846447859414566909058764575786909135325612332965907713953286392330825835247477868931707177365510267346917096337567257811237280950290924706581968265717615236802927335035461982762389302594885253114334389149795406908897167531375747675852526574232532782826216969693656843465707444819006371310050440065319216813339363096521892061230232533653127788838929256870344241491892177903577325459898754004355847610109949305173274808810599783613646238127511158936890307589628809656852408867485159996328947446870775543513501797143599774603996707005187645067921390322140820923367707959492088721636021538630727153312759657620856136801233892644632332934216211303597323776484332329693702908792187640261087287503179061826820188873177995849962987520705938486617396708743805591509683406101905264988586982742505848568812552865753540061227012432568036469962908944282974479953236509882511824564062868394490610695511997307592668747011735634992926901046330415450599989547571010039696346268581051974466257338587635421814563605036143889012586103787001660756904947680478620501923502046383978657596905130892541948002901661975457739449913655898788887814722868166394277821952417957526113847032013085972937694114364981808570511908233585245243915328009986370865316409557043629526433189069851469673960368445883337435339240906015846377063723801490526467328707873845069946709321126764612632971388087461452507700364510015899996557224670014372804843046583654965614137804433050195150402893337007973501058792932316618406962854193363898122800010756411665101993518748041826280623462837077111804163332895813804707779126861962367070517373943103571935774387642993864562308065407846367269868049637371152603015216560461869594047732892374523498006230242457001334187840594166243552482499650201801153200564349402815606735101838210657882154910684518510110823907754332463859282104961283314451881665060990281851224876347225171897074120913567458283884278875201768655824153970733398629841261226619311225662875196309253169995797348061607457325449484960533031647981627887165009733231053755209408903188241989047399973815083757034641601782623670563515315870664071264077630585405867897779405075432881708821442076583158548732322498167459947967566419550512249780942747287703692023341541908041883879017530480893975456638235186831138325164365881648361149219389199840642922745934506634146324677655255957036237450978910420691255605643369654439317946263473991866223178442493285887522103351568147129251306281929513399168535571707457493591794153866621352700396310797697606079704245964387561401275875741151145632039048795953889659180929291430625566090570374937038374849584508320249887778231888240128115479610789277672496503327412000454121358459269707687182611368929568039660409791080623363440651259269399263911845297309233264517022069575290422224807014617630634040207819447654135120269967519753420881352072020603004061884649051189850650474221711789125289530808356361332418295956650978027121643706155913830391067559667134441737971695366481989392682747233621089523167976514771057029441542448912416916338440937036295051213447582955517372120458059046028690552803434011329978999993844341796276262704516060284698462444282542105470567496598490740321414111820061584180025692174821624505427822526792686781380507241520390251731858484473260394049690463171632538650762358888640095515951069245257309189058632104157253109503299450941774553943806922777575966613480785540404658269837304771601356804230391471004716377354102337804152391403484034554256719780333127500716196409438756707845094690237690969081724114218498778120980137245157006812809133806554812658512973324850226982012331408221844961757378965470489985468624979328932005759061385942497670264658986920387596734954299516864045442353500922504289255145031027393432332877828549782488954882024900675907205283678873781933796112589014581826701857759660379855013785866823672727760255144357940532840890022817121129676303163264776574149410632280611052602468914205189915883260071011270971901325113888029168708034668356481327505891557478999733016798707349253288652502520283187469061278665008756196765062583149923459368788357747950865850936534916976731702437919334028367488967704207504522871156742101659497084556494089987629024328371445226593727433892151223303164068723412368929167099184741260344657052879526331150022661944407095444624718467364326920692806652282597920041830095674672980089837698471418466329189161961025310627456325801201433645303963645015330324904812227934081549505853102128798715999797968553681099110093026002569075029461566680500037122056709106239629766261088820593474932055184059062668208110278177586125434722926709795367890764033447389838641306292253120198477331266614158468565054688385534245312864870848043483680457803672437955636157104002556017820745465993711264607178535057246664281896270971129332013077163659480398359412985780534675387779149118560382606511850550006952011844534798312449246382125011020709992645214407357755079395474264065870443610058736545563295333100488190639226283758025247572406851517072790363306802401280014460967994560293577780202161204351374201286480140549115236762282676430666853671139909205876184566257095432226813221427546648974846721077698705027614221138574285189885916482899523868410884793461123517512662311826208344488713858375607580199523476169810935452962962069625911693691388381793051648451895215322116043505392426663736172036832509261066467345049339635785265648730843554843415874478193434425952293314122966592713400078445978998152175963874943715151780319659860844721201791246897696780873509033248514797168877693533047874852754865265220880254174419541116282197427400661466434811454988350429941036276430131449263724094195991750021239896329310627267272107733426659172100669647273119970833368520015509822363713596433878268724249133710293315269727498412146688503490330261436002150872649685248075605851198737612501205987947804540073563988353843604242240593650927034516437317071991500062439472623937920263494067593464249317753006702550735919336874700259624644603006805585749535079027032762478119934464429903735409692679772133261797084312069277443521241603369619672234358062690712204168307272785940582718315782359728545852316558631338463512055484296202697799108231921280087519811777923158835715793376421679991594569070967255114249205513491508436405711161296279818090621042585278253885048840387330883993242265529367858911212287722940236113982869515279874401990718711819513245391736235605993447055413677809353402347967708291986595394710903966307535788552520441268845086312100986427275812066673994739844434760610770214574862973177409055577385103742343034121134976465216757482363298964081364245921640814454796330605736876045567183433937768619823047559810091715938042863514507035612525586958527858750148722258288499999830549851925595355046784924061587933557158095532426500401255860904901314202704253177474655695699393995164182148337397256823648246883639721713120464126318635516417639514070950679568110761113938723491639070990985994264519903288701415846804988007478866108379169168893282666876228370755701175533299619528077952762871904246921417516550359018159473278922481189270964350009962866668446700083494626124671207252944629244971264746720342301664255468881431559028266076856310461656373533759799996152071203678686158120878767781177668133942404785808269719473563529419966388621583017165563025311803015082803874441068273845098381753442406714838188564834582979347432196420428228591866734951026745952579433409034165797479042299555211375157731279210417706911585328310027892227218108213308264693203647166465915310103090767247358688996477530373793623911886327234602623417517945633007235803236457739479151238030285050658191619970036600018364210849051929079809199546988317791026800553095411055305783319173695026527309427908293005077138814495403557738430729441217607918281988619469025695223958073271276627067652099592176650295343931547846056182418025350039385462181751989236087633369885050467870389673715720531194572908775723299929119637415300550963141901641140792293022913408330709632768961100398557458041507700653540606335133158842524996186201231137556216226356980421216075363287587806546420780012743863156033392653996460689294590589130742912376585634095798885823462043916958144812541045591241648771840229400856411312725501179456596015314959974478666598619660954107764645048322935854875633560612255766428060761996306095461589860295773438396811592835629525592085328091460161627409817769922682390602067622174251909392027374322094465263043967341015269558347130809193972419566672439129091120641566310142397194761967239564148115492501852420387011171043983945730608470692588715656143349230263808133823691601098995272160534840357983918632935511620940181831177266700989560146836573329692738657880278911662857923149470264952360658938608945674697892293265216253761533983419478370635420526203315690625093470558622431119089487042452185788855802837450586541885223633216784031460099371666422509908421872016873817733964056108658371419067966572164346791375319038237517347215669782531569400500469707013923175461120698168471455816837790342443788517502688125046670392648174660389883622514603028633548722150518718570820007548101811448957483279840728445162856510958418077554388818234939329666813382652723057623319973545584672404908247927835637956681425618217026650197839804987169820427508418805750180290422922673711380886606684838498954832268316357941220717293149730020763191056624389313928307401857881306103304715805524774230660755835114583332900116496424703129010097782122826346289721673040938042021165603451278262814661777271862593451768147910513789664283089739959900664377493039380858121119027848443060631751989040130255108742724282166165318153925463962959972957980453886329271112764572378497272879384532902335883336595623875946671244685422172678979834079625259512934625923619437856341365413796985350746994972938324176795548381745322258878928824677028449388095669033416657471567769656037343280537595387739914354323917013229862157005498084648696858319683594129016492459213819450940904946289358353355801788217519355986152448742903325479953675272620078632986046395192913272648216519405984594819356428314287277396584434684274039222818677590134421408520918728117739564751559493861410114372806481366029211247571657251736389692319452202575616694290148017044729691813458376809245382048600827581852741623742763507109851131271369157055372457893445270252766393092009822813038555287024362019206238910926183404831287410808686812812434625866055464557484627727767020467183756290346885070433468516866072078709413234539582358406578698221111373135462476169432340769253388816007267122155308744211805603068289206394004994787130499778679719279419330791139640468735619548095487240579665709545882661409724737685011987978518112542828574684502828751137986646385747537542762912382479596173779259378663324760841726841826618742449636506160392607648417333008255334945827296358852609873020618855484966328593090688275162019674224958181390202763349676115089935480328529339816822577586298088568709030628494936583045830422992535578244562603858531254301086962997508509793787639370041030743555828072584431983939632360338847630896300059710144845918840604431414572714907804008045361007498701573876620406229643552813672733790830133936855294723899455427736040781496392895266225486086877996074855609667861478220727229085082663279868672171454081083972215981658366947476220846230899832821797187410233889290264649204552251179744794949345125718864232559880612056205016015944392676303657910391178619504971761683704003093259726839925788497978560329566503053685628223767861001559914447394264686438708219792309009129085036311246302934870952097478187459960887858146162610452696354306008904453824083144667060562064612374142278666482621920523993670254111945126888091002968298652574352237547393270326420067731528161865424470928478018343765293491932703939858724768836792005253719964086866315288834430610319264622993370361060365921003532249453918892642121951494046779888488842568666121411811232544647352638304167668001036219792900315871354622110129999554419467552745659202052563716961097909185100103168822969738237582777433753619205443043839054801434117014485680865150473739180672316686866588035987543875172604008421775518556164698696880700782846809504385625664762124549900570449387554927928914785208405156425238752197914737548449033502226448285889809405048659856097516879452598465003881395726494870560291681742929176063838163549864856654888230841488439923135120166154433188718439437832524315910002033336306579033351568748719356608383071269645036155026164553194761913595595784507232641620274092797485764847181064223641463786489312615210822683007596413495000119625572183212409196544985420497900234053011958284061576764021812606747045545385533295998953352799523742393814752630514548720835679107529430972611791751090450249059145820543725649999614167517138306025550462378229267757326800913756127613767035517712324417730436558974397972901645938106722494052866697253457377532299089345311809471526358324275542171636684775643218696658542834712419889454257422007592802488793876681810957156373378837279184406160746543536998774715156234008076821691648294435367666239347746446430332565459125058693302216346392456922809938629301618710838247071334189395435127012652648891217557329244727730620676167778817494098160113557030139110829596520209980352065513727318570075486714499988203335524257081913687231180068897129645962074111825983269940708201175753232091012011056454199007010283526453511544182858761322669828613369971241814443088092924601970482607729623751629052806565111694768445363269152932895192578446471354529248106451154867801915621371623280340689127490510738251712331194030362526214015748251461004208497685251044288646724258231937647096210051331453940798737850274456288192968543293446544052634510590073298323279886594618788704837751999719142676476160083668461361581594371829175982175252447445048156065308984593280692271709755302281303072529968148668833797537557686245063192826391181908527767998392270247625988739742437467648871223488273719947667515805734256880654733354720714075052505822647637154950309992462915810636400918745311931421114102750775346507147607618486587164153800666788273584699868399319675390844828000975671975431303017426578076108451219747687214867636300549292933553689739052288973098971224102304491983870625161719873921673091832176137967609931193458958640349694827817207584550656598597062239126588924848268227439866562314211081471716326135882480235736023572684247876269870065357917470722525895404940603634918728537755103403346556947494887143657939150211396530052682541287986708054200377791946169729275020327549137374498994245150954931963133263132168337155031371889668246256159449242482961333916368972424548448023183591101501612421765112913351180489626212724257651095471728818861192107458274825597230673971959793095344829578942258982363723610831929765674966821256385613992006530300251565858003518014116071987307152697894639841591285358995002081567081529426597332535825331557464840862654271557222215550623273058371767849575047511907447735907821736678847851018865942129126120653516777313129619986170298005965795592246405756735773941077468222303907498831370772930506068777771256720615334157568326417926090606765808768353342757347950220237805259789695375199369241671171588000708724198664020797115659962215082170586051945613614655722309637075125565797615681230796055670116055243539195490871386422079369167007325417590815142605718659203759808884108613437032438003405367696267517196311532703659785408986500575737205176812641299731063790530870696614955369484744016583559833072846741251552264294264827442138080899620949000925307032728649772753084953970263167963968279060472571850129161221227137678211887369787542903595860841521885848180101965507328440548303795350798544302478386396399763733041548327425155065607578921459817708971858813570586054960867721632029834602965536523179025742502370210544916587558293065491716054120749861058060178478131298873856799728879279526682156493795160980292872657271605769345234046348301149257722531268413152149824031910314389600525758640750962803352937169129355150003317472734446993814204534427899663232361980524533859980659813056240738902502212461460300926299747428365692638396756802829046137648820731164023781365903517048183431049590204107024672726255546850837841585234630982206543596715029313504166782705851877230074688070196152104232552289776415689604310986193459443642448203123072926307490199805319500246145924711398469598186462840822298229958042650413281173303410523541658857210472493231999904487972195689024896932091786531717059255238635731555119004743519795310592475148049004968536999175689422620075445289255237717806336001659783916561016798383149466265517730496233526625294176204830487197037325605737817432195421987530811161735869823643553950605929597656427766589958162207037601385921882711145340523612794375710841460846901878074719040242473411806016740591287699083944784985136074122502665143346342603486887928353872328481569962210236685296303452592596433187602464032074773758277002707440317417758484799094966603807893839280807020694941146013766512496048307651541923822974871496288227835676910928073237250146649155260038717507956396438609112093491146484761048056827425442654208595771751235425619595808781920835232623077327506371843503826515976068930982542465952350153902513057006220779820184193284376385852871623690686617438773196710163676268757448191592290998428631774482695981923154251703161318193872812206703830386956512392385520607069965660460107786221908923787849563585608860243213132146827347138657906414897954722912760351908728961313314377332435842390303197652363519563976244799648112826203268428735572468763375057382108247336890633466157056926754508365284818428257604601238158738187885793949045484821456947054303199550686877729575614152444348699868989620805366665753029873987751496319824368516312593514978773041802514820099560334958371142790895854768360279942404345162148987939702661203809063874532725276959190158209186435942769302684524847259684767876657180352765470380511417828477986784465721724137171244036611648034342003059244438001461124732473017213216246289102136674510072641781794294942503958610674344055698457387104017057557777148349211063037627136339804162253980756294088404597225566298327227940226782362037557741149476477049701568252065859957110365121871677560254908435408814088039506830112359106646128487760906693464125031153799192017411512567878539263463495272000100251102596130283403969436633979820891455518268720015636651844605086653030583315033182665866294258772679645564536233647212452766933685317631672572199068121205506910202491248537041621025969269567983469440538250766076119842888625937512005091149272077798466142904515076660282921151182014834317761336135584068471129747276006602229573005900125635130377399262625943959797998981317072875730365887873110930765976073083699640769221924483717702412709526436728493159717717549119213362195963443811905026841848333578051422541906865231863627539974774039283299747423956793818844650245779024278930320303741092149191150333771601964091901770145476380512093709012362578241663638529033703863229452909367928210619612998599686911197041388128623610537987020922401206236538392884301201585069762098663406255564465430275645107465951912030865886555455326962558573880520051034221203678385453727461101281387646839234747104734085189159337612528212663900025852496752684311558121850025467009426116828201651217642591497685886111471203132342469750909785732631318211427603268920056977349946140581893835640188142146847776020958365289663529149499924345722252875611668586074587658939224940620684607557376506519196635187570675569931786726266574564261366599336341164978352846210848503433771811089455167067109558482615799792268040433874218166249695732581244964085485106222694561375435425653434028736832334942104202962017077277735256808988316267248154072148898965632423848692233581474331213162100864102753105514973392621621315013450896031372984522391710651594086253170292254511046845000079983537043646744738476251002066213037609949731184824991418348697838485109528295251388188265502113783844222848367248737548625778604140238712316158442468653051422746464919630169135897210162317084552331372566661927925985367328324128283609017525231767590778308812344550521789668738581940293255533953076287062061157433882795238803293984832060422807414631377386322120181924395603492587049429491491862283379207680721521476589619835321440297660240113811435938018833641230142161969459323941647103580081022736256664920153065388321162813087167198072417007451904411353409419140686392852798568261154349521145740207726924884210562592789020428406778257100981504056815669088399233053334987909949078506336586613744089595810369606409413968192937519504245577871717301282099778478871547524896773772266516290588657450690563599423984765091617512477962022109141347120525944598655749480355035085311564348056766335604314918414516451178527044463328703793871614167492339872851764199472660849434828355046994826674885608700097953928509858602481365166595308263387925131755711562033283901110981502300478056821383163172328300840599893553574370137364750508746551222649938753614033687906183292842661307906785389769229164092271196203092355230914660747214645467384897536607952416799671147056312009835677690987641233976084517480167229827339175289170762896491233930428760947537454145790029102945711456288988481449860901515337667606949115122082765602248617654112342733809954405372855789869273258833026143571648233299797284949800364931147439317208054082507881730792003147623079990236985161219281911871274869075034870865786088827181401936998018492145064267844642088940173994542696192663068344665778170419671524446811234640320327847608446968976376538499533719510112586079529955313096828596869705502164193308049829967633609544481079922418704960546831687705141991532851447601779728032516925981523111592697015389304810303725273394938305525237687436030730686966417379359529565652389590678679254465029882049552659305603912363047526736622557170461972024648726399598955891994677988378354929537315907151022757814343240117875904087976437916014032191273279789252507398195052984785866864900974788099535707350168650183431886234460203161189340515365834144039309553548373534922583053282183062685294542975478243856056440178758799385342363565368536549271872587423785075257665090623574616793721427568528074491463631880336896918209285832014755515634734210907990437390083941967866653526997536854672245103962192537786705391790725059061769781037539803502812254046636406658594085912495450685900188876139302443416112177563376084778830869210435987833907100349246940182687802891550468078032267530113570013990645621195345946531019754062855556741972980646283385615486942407258557934269369896642455419707658320153075147883435049720636010740399065426510557903750028377437336293788420765028034073589011458517954941593820935449555741614329996802905341693545086386480223455392471080369294289746369525783579963819364009356670039184973172613145441368775537311994207402719144667697054578492858678492768546801454554547880371769145753927976125551274275053267782840846457945005278791844257623371372891619117816510090185045070543501460882826265417261040801010421632933784013595525275687619509894037870134067664293344894517658553821013170376048602595572984817665537855926259027058532943504777399832771435079500262457972477228817493690202713879584043320427942012509697431585800460339778865652905385692140360431094745533998717512369944606616339298914077013105023856671792146103329979738265956183263185220171810358359110329195006606205932663068198621228366480456345478850287644007013604062082296261015336395730496179881665906097043358661250146371400949446578571863648999038080454602296413767147935532011462617165713996489423379699562606807454718288122297375348976474662862970911051232286519007990901818284891649357926462795306739079440586625381387705112830645511114013168735373596147633463958831407287131322653892545131047273184178849290880990399912313731149414819102769527040553266583955481259338312804030635633676279700485112859692238217815329239033946332058150651942560598596571509947411964492820967222053997280155523618869588898577107279268567856749152495947455794362056623270113909150400759526880521010424370751459450446478459296874889951613232556560848017640429619729064988320747510250942648549170894812965161888364143141165797004470634147979894511257129707444693093637304571173438220242002444971092534388599472868632203961065155749448244259087456728993753405880067838939430010403584912204331764733072951056034425536183695798074007599618051591367963496341254757328862927463715212129192414205306739699164667086248891290423589523417499889498471097915096084333149258638787720229512902723102490627667664677899042362971828744008865835478016874838640126816053014351688282737657936093450139691164180289186656575166061121923990412468540680678313339532026473148129728230320560529016764622688357440238024994299835392466435867765283900491855685325559650205921853660389807915600437664892344890415835733368453562614828941892486936587937519794715418690994261109117183446315673782061946908119553859227232281395565624680615865511887954763488003406969613094927593790705089988705262192574225364419023118951315562075099594200465755054633252856669997253844909794515401555553432092887725542560518538484990172598937979346470945680182046020548149825241641818906208755577715059526486847721868959033481282864074310193444709625660622054254471597714897316453020247318051904821367472172936042484192291891437863343284307249709191300981472414032852646349991203217186061234417909032654679521750998852502504167278256429595776559887441700725291320500575237375599129999740201101871946640832606473471988020699876062142442806926499381512829527609599328910591523954040961730363190290677657254936496564246633746347471998053774060019958931752514178949569159303768214260501611946527646055143756895995089502196968919429490912042996363068291209338481969338082427169023092992242493825836747421819292895012807818906261802413382878572840168843928458366901267586934900700257260472651925539536628341390316373756688318980166682583991075892289848637647855627900506735411711002216605359324662558033230499716503758451036294925353736053650137249573778850380593190023251129548068033823918450421351346694573946452740530662428464546600228691773388206027029012985320975067300326154170394034798342526772987253045590715290443024442621909607738687566907055385847739695638854225140226616849323553815257847086327821408738759915745570405007340897248661249911497244398141062785300104327254384299916327015958477386135925572659093395138483094125058766200323490803438927788634696756164539916341579459666265200457510760423443343486776626224724076666746445316875157924483626869141051499841269887726920880722387149826339159574478881884637585838426908073833158697249455443408118104833599936984723673098528150356206791400181632776226657095779556633722232831364066467877633362509489280325780628478288156509548346591986608498532728422476838363483034662087983969879671520447383901066679996159479851453705434177436115939790211273625239105861104293886337757638690790340989847638344536132880989129730731101561254501437137956424480127486913621460114866707213293689395781824787204510319173795328070743704581174146455460428449975936283453831601355782183116063566385461625926161839556215738634605163262451607087101227665701976878088629546936299229576316153148245722314256461280769406829019639957352581963302565596893346106304032475805222642780710163865944288322993303205280932727456948201134666377646706986636025849750394896166778551792516312017434768262555558052859024516944315688243316021896737599431286854874796821054559876127111636260336615712633368143183509102384424502390061590392008162112581285902668013487731238500831413990252915169218038740932151277174018797312375367025769807777642503771363846661071636833223890923999243962644932175227174081146940485142695226343584443283911004772925250593789560221803713903887551966134520174530619530197374134485171115653251049461848482645686599806700545835444433981529375688667169537664518381057758006108396587820779900859410173335328710657763746008918367660332545206221884639574082342560934226874759200133033951518880087633917292643261813718460142496298696332914638442165505241848948964633518060859422519592399077454572432581015165213381141670867388643034881951973119606198204530691969987110898706832372681238398421190959230781836807554652855330566872187481634498708082460346901630551522548903365328717703797323629462191088731417432590675267477577247194692762819643307198087417803749412599159768576455613108454156689141638078383248214532195771747741526045680094766441043487771981230316170357000589134950883008354432709334064484730067236803709951554769556630683614741910980145818935715329196005723560385520811574945849800052808562713666679454908701553058282729040834470998694167653382516254344936905296346539116846385519814278523513984427091567785938757047468341071935318627279722047046539703796214689611030268213204842818360648953733263931404326929213852565091815870971828409232882194965323089212551602626094029664819223329940088040478000029997836483167005139527832967879665431861090398202123073600479822783579555245321270778998692071273897964167966557590552548640926234914529423774733403138398432346138219256954160831157025187853275171662494150561413434275384683899015547036220405214874757373306296489477466926303563931850225900689527980643719374247789567453618631188082608113656984300489481969181393392378030554538111772277157029797334386891857587358724940180534908010013528045439741625323461600266649219237247239237367469204458514564132517344211867413479516148576734657728353922147715946743037303589884019852946856461271591765668670125457803947404983598521631981210480880741772128332805144158902184921241778839495367881024454731668691089031941582835997333490096652345510146904400276313161684107541541773425743555695637293665125531928081974515846835267594523281402736939939458907972019230914660562696256488023681600183105024967339978224224935578272734129554071889563983794361755770215145250380520034684124562173848134586589512347945970048446851785224445506783546252515657444570170097654026512773716070191181181303606163854836664003002987553892469036073270127582956043219299803366082042541497105109636170735870243021322198730254019392530115315235872113574694960428383284352014140782929977630014631034575914195007270498438194779303031096857261294538081048510826185570734300940060919215870657726754319011215043234927347269866547932126164209371433588989343922121327112683718462399859765716867783676233912195813316646488743240303540204518364291457420949137965431912225797746232516787763312825187527733404175656418543149163618058016503351659102217159659245256842110677056773916192324509838005848926919174899987728827038268414220212655036641579547735076739726200746789487444135929601507078076706368987172161725737921106125497540869525957575367123694448065945580977198994317405433566800174573484742569592024417244771034740987957497899072869125680416809973510354840541561548840241198945551891293199499372318275922793617206121199620455109930772004144626002874605129312361254194171574634404963001220738863977688525058808784430962793455351996576695129196695233964665366742296186144560023564909453372062264364902305826291875119953047973573137236326291294784802202008978055369448307940976910442354397430342363285866049456656917900870900478625685426143726446089713717045129229844363671379185592840367361729764996341235723798765260915961734958285066992974793123667100775084162515058976432958163569194212848422478341545740394191584097321609512456732822061430955677654547040790555198659657010163653868742836708138915685184452907321736134410856983254164749854411607718656109721939190248074188956923368632288274092162156752766540096532917155107519445337299220114470317162242352826317142286408409543777431898388800736854653810872791800005813497688713898040363437897358115014280107365954025549281053187010054189851617504048521916517077439256591094157940175759324659303247714648395590837460010317031195019517927305775317164355004669768521868279753150264314398625998471366864467243256577945805968527662537653813380834543431119682891452966691804192836349678260211465574639816341919355783278028956701949832999948491072834977276039530175373728006403790492911723973255885152852464787625203920199737607813514394175228700138458142541534207826894408148656685295811167778766560714674338599541334652751903360250942033403621352684820337370236118603611527280409189201761488210858703539953933020186836162047161625562821354377114599024230191622800969144705851497577447785884473167174526406657525811216777150611629105614581132235983519498595876107489779615515353817899567026282168754042551247092435279697808121748570911268110865844300550404429030338109769907500492774911652378778020754692807910756007298624519990834102880145646026143742188615815711969033107552816492069393340384152436764658782839901354544163970829142405935075236178453137798739422584132795790547781045703368827979654008953179942705596969345216770143002550659825173358408530704873336376901607170351582515377391402261666089265092390628333358567415193663536628576780850921302863947454474665108933660953995503930365876890581151009367303025817888963187213006476416141968215147201761319705299948205705150618858174722426198210708136440980151405707126715524930812940285863250812477279624979921036696729372214743896298895281863247714187444778532070175659068021684617433362641674940220365606016837368410111004592051328846290974359293684559124702328565615795678796225787608216830439050030691744995236455067822643569049182322924359928020875300883830483924629835692470686587225402690336615775469943906374157425316506175913772402992949970169753772520098232297071858312145785871842404090094225725452381363316731433545443733674986984508292256690956273158642796500544257258794085620242752902480056284997896378388443508122952451954907311380099043671863735057837294210550340506386638107752284735374276547811059137655118045540958836061804661356746789068746064337711932957279592848028195938358550514505580336588888382840904869322605782377273303926696605581747113583491613130365146343269095802175831126614367149766349526111035883288067867860533482949046511925037564823329784520819608388045421122067948610458275841600813642909042264817931953457744011730024861101245573457286632922353154430248511488496183737277944049902666525764722748550952348053123545612138331412792015888122772827131329707356015906395964093850457716333282254911683527786144030196285077509784207219295507291882745801668329507989267947119430798738751108644094733726170590567331500922072515567533520200739906528134883652278992563205428307182113607228338598314371773701181619779051856006090105960492477687373994313055036895400641372324158497481956655773744407976033684120123272534025889709740366419347027960596127185355797014522467077694123688671835168290481795093919500834653085718600909081342502477295702443561071313084208515630059608185437062462619637201619306026147358780070086578413944515607043940909583652799473211285209343656763288648277798654102521306460632079995439881563625319213423252129747589745462730555588787849853260261182037684688887916437684041702887316476199834353865170262378518204501794516651044173409536471429079337477029392137050551201038475764748752556776018321342837742276080558621865814695779695471646283392300234889218447412871190107774798772753025054333839104790561923274303330784187442306310076563289969695972674512532046677107751061210717968422002810667874309923342461522872546716133118018719496479408232434061402457544415990467506488033991745200015395044778640653917776927758727281453192507648700727051901473418560823543507349734802715695349534185809001699186464730986225846713625629312354976121866890138955496791576700682478243328497012805557471187103758943804417040083874358592880345106678555065455367313488583693134537039241510369318541723970230491774204909544236077090968412803576627476976277215716496057414016962507892915984061279144995282405807977991597596590620500804424583746784280065717065972228650888982924913176402478237305128842661445768261965766646588373961400717897670693855202823591657127307070661579793844403351057239023672736480856081032339022269932188775202651492086545509642359646675482178057522284790486467878199556118136840965215304817142661819977602927973380577996441477238983686629903384537626079163878678406046161944127531725083554922151502520753700915800208696279752249135695324297493987092037817053393504486160370403544798742173085569550076592583181103258611949481469051051831178592815764151299880416032259507110838844169094411417060152752685447040320386818054103019566006118127569338969778498615261081711136526182746745898173054618636739953440602849287084478265939549320928759334982453211770815238508931789379117003580638896302214606812552746956091446924700168103578837396178671127889027126631407431549330937417728201927889592501628896187487261002776722030919727696085837250732949203721858750796684768201597591227540295334262556107021478299570292633368511938224982253687915835441173344233187735720365445612602913724702026366357729744507707301654982936334933908921563871310967111410271033310293598263112945060971641575969652018966107365252867232444457816168728618347398582638063903908572334873259236666769408634885454098099556958640102696698659409960191749738157909234447809596113936203877997186211245886020742200705656194323307499816827014720436707716627278422075906205967719988607650603256905319581092294794622916506214995068345090595769548181993671366193168962933938932762122698116808163918999913313829116630041596155698191425265544338287169127566636437385181616533124132547365282620067500992454585162573994132088598908769263881185357228721958418646933979164794159012443863407089850240447294270957597301177403233727107526724099424614679617989688089418963501141162688927766862744589272975601715341724433578626054807127247764358574554739022215729677319907064945253702835073514461143505939054130735233960955664538287827821428538418851187896196762172467864844833389355561965495989127731638875335877308446316094119066607027363149341286333360247591208299739219617257376579687441068362115415523194911445881034490628580367303282219061972831196069974812488974464064555237976156367007175163123976110680052728283081079700913793351829602756766413324150958050532572870510024854542562564227795446809631353018832072342093144951373389891095302321648280393645128846870089698852018950968090005529432485594578766937252226319701959878776800879291712041828464594827021797224461901984161203919427703710368593137937551272099232697179146291492053627116084488499675271127089565483560105201915882571712996832200245557830466995907938922432149901882158424770404728632563359425052210419199476746195868916999251129219515710032713654456316727445184464675123910127762026091766617524837356483544990256077573939317707870343249389805203767613151314739826650380769985145750926937569071146389077837010553320845596866526592316193891366911217446457620414296130083111564108667256902471077761954258198884457770538312272552114379369151951618988694859061709788967911214108994304321510517471064133291943141656015681283132481110096824887189676685072853491943592288434183606381665645866865476544863791127000072395824258803592257006556320452884696512967989724493565051696322634824811411814239104117079509616833752727756668781071701396601148263924782198231569195188102519604619806167559029186479743860880416192264057286123143986642598270370912663160131227099501732173870774737160250051645874333668137960138022517993565351932557153012554904034550079976831190579957249582050639863654355551161532604227542573916488476466229424058902180106099195842428949980026462013805044091825061136433366283131505697001695055105569790416804643032717420360214739111023858148595192256450737979681026051228807948615586652471138076832491080397412963585467379952033277463006091890327003244366906912452381355876215991591050395075003523868709559222009664846754337769903978858879335508805876339260757799366566012232626712218274707015630352320920042821236808951903338587055269538890209568902217062312798220769795123556736894906217913812075078242051776502536003094676053725657465229205638870007766003741028363115094490743431027922875582063066252502311409678982753934253373522626821815403611939715108360085102171822030165736040398595946130266992225858627265812227602168142764073582009014843422800196237277282515305719155152628409551570420797038117036727289186921049856255805619647054961401186532190557616446853451888122751826825350949776817753154365046206397909589048288679426144422734893624686232867158978760085897681092622200924583808152849712162835820723497129992428260446891516588933803050253736664412470332030202099756119619069314778372988010044559557300046629955101091008139717436132310171415434062859562148842498247220607433326849132863338052951703017325375936311132657126146131843442906482074811171845819154991072472457517519223154002606246724901072722169480171978703058441186202670399183862377974301320010423889509265722832264953309988398498307890963578493139248630879240488734747425357642318010821640812932354312755254427093037297797096777131006295544929898810513704946439460296678875240554549435400051220012234309926798104867283216451974070105167413012965034234039097916965430927453007697805241131197935608525757399558343460354631061648623996235759631499956468043725774963146989607691694446550478869270271955752167111603818580588113689541487167846360583753971692132485487924379399598660294786805445438754170145325274002665316378328741363984973139955564359570300664462948675202418508175462542205340875707350776294071418286846254008158195481442280517283066460246868474250885776410473139065899290958277879911260101829600614537344386289866256815737740441254206101363764319316893439058947834221038287489618932440956671367182760987233317293991680035724495313294949547608240972017343001314634968586820782725961598151083610775044881295885553639528080546278916656726281076231922564361686805877626952702510766674188030249473266874083744080366703166660498949606658841902773117955684335630803263456175719489925290200282045409460385686900216044211471518838222107320863263222163118848647238220606938330797314719346338467535033516039043272731263642823908998482244437480102149895726990437267331896253498028265999135330474234289557707279462966059942811605140043146479531302715995122360878114059303097793876833818091633034741403377329896565397711278116269552944161312113179840398960354342508752940213592563459496481393557597192520996464624156950057677789091246879788234687395916797331708512404912507475285488054078047663121807861754309959515073130589507885736993046083232056387145109476333415519235534018334123662081770444797257258777702755139957920140481439529073102604202006022827339439900474906383255953329328235681699541270396657919075837468086146273408491991138930747320029310663761124306016082309508822118616897265936650549497791229625470874704746584723083800021300031582449099972322842046236928248681785413424575274319773921091347527561219602891387872642906525770252940712724759585967622687346676435156574857394695064237221155546197568015190425307592107863569101576548776671142343058938771048821414988809198629762336980130990383924074545510680160546437352090842499427073712149820056901243313484054497635795543798093371838639090850621518544995091309967517915088021063779843171662000781936928891562397498211575201369642264074798115104279567218955700316369061435285961184662824349219555333282633561741038067400780275146855941888745955661821317827124498064773616404955305187472797970114024301256829298422535417825352603357384496084320066735149916289930036921770907207261520523534214625534241476390565274685084847518880178557884666597838358799719726122820976085606595800098692113499104012567532136779744979555886529421277692203796720468509577800464213671935087522655246551608777018791540584671785282222248005326160807010571593520393711188437997638578114227542769018888786864434513759932348991616290219489071687792983220983744965885997664187247476601938563132978953263290696626679208288087531141163139025255083807956257072605206420195868067016977752960600810962322699268020056826855537901758301142637418118650264266070011596029475642892985682065575570466475871701399510189836592747423365520427998320038393082125443154171223825062386758912722755375638225076375685840412926434477042872862781766741931931107563189373213425664293574687383564744079262989645810728028184967390936311672404661130960586780306675202930058520858161292002340724429119293025722309081862405162759627090020369327630629884252626259964200786427480541377552305588718038698298447072319383373035694607666894567130040153081163121878510931990192556275158179468704157096139564510658965889653503292215966905843701658339261138877525275460967997591320041965225392443822925648719033824373840546226885391892490025417219373323156015290551016729871540625836192355258512647642790226842175764665647489414300062450273122017977376554348358700357019263792605390582386373432563442820853679831920295953494540149744634933646901175688606189181504847950921224536711623494463894260017277007259813418429548649851425598210608644666620232689830814050087737634173331143345777331197291984407553071676699034039789030233480694145935732194385772457415721511652196784279535126598504536981493345533795532675748098821553345068076405630207960507449701375920964306149156230820415647155422488335862613308187607137607565789913805977609545390400356140492900587300481821802206742097135585283496293095961810326975904890677669258777476591600575535556195533476303062242479674650095931299414460086691900280419474122520482868552590785591528389626704113914714739347967198603512987593203708151514439391282545365070644515312079440126146018532218699745869181751317413314869641651370744204636099376970270154733071568819267989981349538997244087351321717899946406573076502105237923000314023590010924097423690870529803885674416465927218858039060353653131506949444043642392919186989308827760469461725367486493410649256351548171438966372142775051332221196521803042001507552279359426134472478143958359735741023189425818272264288023764213267745204778719233137447013721264581882756621485764215331698932062077536574701518786776317848666170499028559485847554842301765665258684496698528415082097381166301597805233620456190395824855487017021448282796748583619260352529686525236453376601826766651762681442183380683462734810679056986416898434806423767445745649640744993723671335483786287681411046085851824739475551070871724760793436866238467781910169625737500491913913539457139629881976372405210706968694520260007396535197335848900109190622268437058070830200244447389681770900952096134750166550605465359237115060161859354836818701065643926280311348594626059585786921078070441306268091880529470757605421552134286346600907202745901290430483340891966328524667530097291121518253922217842560496787822315329737161549945132979025045049476274455646614138524523675945552455747420226065020413503015415151711659503156767624019150542114686242535413437042443728480889317330988058940219471733621218289422249356876631235026396618583304907864993816892003135415709531390223194429417331758436972704669983242371962003188098677541656838434141986483366102240893299820908261900069635686755474942063618595955571059430905776204814358378710413986789687772224810150581169228381459198448684851813196386991090438822325544291609396932279229433904896616853243793783690181794600566438768846196362718269066891720865211415494500722624727340813095412645469169869273160412050603461221134257831848860440831406881225238138406650774485742089387273159837378379450916673153711106378518337843643089798760314130328751544051074660935239030985007955846233295047934691472536989022439664955281958621923501479511515918846738399689941890505434784284085238151437755981134500391206990350783928179629160522043105588089025271770181050919407070210153307221397798026145397990220654934185689817608281992162062016645026988743705973571272254409014396510383831672705396093584172860441217271591579012986873275556089391868539132216380250028617617117903387883336039244147926996104869082525633483996119195034062176194898946448300521243649219907191179067488268953473550676005935106477458900720745299954390105714228077720110098775482753623068547399819911212671951332933271446905531888946744626245048185766433163142566477697349174602382373734682757827178483237147257448736415914083406725564182010991579535069838132103668737865727486604984593369339422420106168233823108155146641044394550639961618091915399488248476391581751446113270095965425351572007465926461782152849183387942347325020686553661760671239504538014427449638460285343393544398992502375940418100494501142866415867772657947909416616252082411763654853828365994398196050369395005107597143563301596142426996389227702836964981163865646793902419301719065950224752166393034588402901351321445252710984060698814180227791163175404362575502805621475434618863203521679616148403318416664128754253958980800366614668427488915556401772850492186558290605926181567821245046884118008995592774375800886425914543012555054465913931655132285968447036719496968724160735089187587130422874819145051969623417687900063553970181591334639443748960474021073332782284492310387908764200656156042169644017605690092220119488475359479311747367384197369036102421952119481943751053638980936538194810108606771383959052928413879465062288359821083804708541693358447381819054345761623376749988609230765136321878781976685999122532860134783546647248607026543663195589447038592331902732537140080683157144616822571572051713359849829755458590318124844022679652100268722024825506297248988460796333708066044217949228355808592339121149023062709287381458319330566387460134375901534800754201418772451746427315443149270766330295548008463921923987436098930997894124762401682330283575818934495205701396703477518206915414678962134677361426985190667923870836806595332545999007517752469232649845952308428107334079431900847050652634754619005730203006015268611626642332863178789252971946644709489990928142749643951612457100296689777329755290084938318623803864261814715800612529851971896950307060161810123136001436649764497208356050023149708860790717804047047704662383817604242687211444302407663063786072521614349125918289797549535341741970327247081067770606841462619907834734268370628875085637945807483417093360117089586006741662878546615499958823845540155069283156878621474249921108285287482762839601906167654043423623553385259002951720402583718987176704627695846301276623561418049113583045270120846553288440467202490132665755525492198709980544738579471123281726194266189462462188150538374002210696277445770309502446820645497622112735843971007467377517270937917323346382197201879782371211316799379361401832788231572515925557015648831181649315916315704529869372455255355841289977468160944398120239672026744697464313578062709319159685497844872998402365849295141559888921604318078386018774845756516087973493209081057644031480869952526897474853419233502920956181999975993878783830862298090788191230162219828763900060620724518238477446207257893072517267871103295550544555786194246810674931735539769464563464373018642947140534149855779295422248353108510518313531667914723728488513904574500622223678131243103493568918669520767147906685464611612639790999259030811692201837186956987709659428243436237409885620523431794223646057238102355275217792240626066690935779049338270944986387044831632711456208243889229413619577489338385405413236599808447572904979367604247868866488091832305958053601581163556000172204871211910377633037575848610621512364133913998515356182934727058833977801642019780857042978586777476409327408679434475386896154736141737414790501514964280533660509285667305005098009326014650606391072319158709583139178751358132517552024859672497788657547741186175235891231636401121715967921661812226197772283167480013922542214222997162645196059475987405955189605078518515720930618942529378888026163310469709006822419990251702782657449431680116193601232481863101253982074656190560187691505289196388483527531922709010497942231768866316021434160606402093104681882119164579662523228553492315975557594371878134697387249145331652091196816718370504655935866397651094147680030017781136646282488358989064014231782328138741716803259739927442535280382663308869542724813988825517304404686691735581720760511387824619683522429242196858729763664930965281073457272889278771190397569047245309090815400943645229778153180131766956963308102929523551077230213558486822222003360814681001861685187762993655121145359072291753560844918688552141602379351520251911257610101951327200092614232920557678029909969618262990711955083935749761643886701902937404649838030788749869363497627759914275261155072751527371721949346722940732481665848809178297616896956627537766720145644028046766055599224663775290001824186462884232256419921910317939427334786086250573896391744307975679801632537949208650826142171518942174473547765804359852061956790224299717078884009947986908722561056214755022256944157304058759760104780595924193339369395585437444100763400508860066152334338894990826755494073349349614801725334562172576849336001374942615664804225117753705080397247493067816619760444100515062578038875495401859240926015130683433430882986368714553455315749952183076855837067161165695819330282633553605142161571243964510883155071040318711979602575305055199830079363144254990154465515742041967347609708234196005531467920990305692534300804232939009554998167131563701629782633139498054013531252222761150185019354839219624325763965286857596387337705310282497843900916364060346286134013215025245431689953292598569709516573917104922436033275628431727450091693344917531099945770011571408422558606144617515182465373779342753467317213111217165738870364399354956093177743466281039578254298304190307690965605096993842081445645176610927271456657725238359866196500880440424652758188766970502353137690143845295905932472499955613611465533245758251708743360050414378813124156546245824893853437160110274300266422499510196220792228913888051855368113486511063604752725176111668027654284478001637802898482612317685941170528723711938523037435883434509856251530778531417694705710830360300823961523313141969226464911866245701713027240767844116135936752159687969125299982547676697209715852554025294165188006247318613993663738670386708124546434586605342385828963279369427670731667424526451220644628051315771918660226976907661466091885042299694518804850261801832066774977064217106799036919709247016177682186852461262931329606029306900868250492383227303374001782839026734939867076563945333178592947313696413838858733844377715790207741929621390168779463900754436249400848865580817487650973071972562254487760288575293394311825975921698711903353968587651192970270805855185849292242142920523930774848948809305300518611327278069759263133390025767293986882812486338109798486655461425780669317895339567491578590923702086198488336104317495314339432776513079518383192804675673583787189309369020888533988704705499623532183977140447715605202473279144261149458299865453009592846663427011098108011983837535244159406536993408306054748023183939567409116062304121414694764255034583418312656658837273146081207826606174951620514522289117184743341315409415969655174204407381773699334690611842177537465840961900675886683420276043904349230539253270317844235395563208868529418235553052693411521284174313417321953474180754937982499871325133088370458571609893952218361058177927963611388394716728682237180462093000117927513939082790698840072363301880293102150108953318125344567600399176352279042524151438396807384361133111086904380061308673077114945377670906636835787987370487297490742675738653550718042614126078172234121871282826001016158789712303180833194999321784855972424262685590424652669991401147837966375796518415304630634006177290819798387033882221518002761149375919853403440709402375074311687767313738814424892967292933194790417186609342804093038331100062741942781283645959792772126469381154727150518867503859361980235564265959901347750540753932911297933140492874697585011414003126262864423249512659330639578528569605974989716390387281909627524553467726826167816312149254037305717634484559843522793907517721996730939708727359552578441594728201852225166489020281583178168983829933217978960566309458109964060441128302364928079216884558745344569216887342403576187973369286203371390489866481124985997590812451325142613626305353295119333744730273050385799681138540678363423968913185920166670204649609161791068523303358377503973659368826357223573905762732180545561036462660273685467569307719103500961415137748361199300059367012973061612547790942027163767440096730586927481043629679505023363877007122081513919919612187953179000214861488350844068283403843956797516817677359145290974617598314387430550226112890033110395400344263813417973021713666361121269917546540950823531416151953303044164790237202965837883459222585044270271892894172221328909151307153135775046832259638747566321967338845587511138125859214962490904900674223697122524065187442756724510132927761293052967183512604333811867646903759626708888356235649268061255876693920008835991368073708400215579140641039395738058244509007265732705500980686228898793125846283706427971190049267576750316722559661666572396960334192961569156562381428641303180897363630763870551437634804960348079804698578983348097233312948845957329407211606690911347648765219288849171412175971296039903409353355470415591946799983284540928315680068246391323280855401629873238485839688359085390863440260399031582498753263530218997767577355650184301194230865012055760330268820485535377204124081205105698874891932738478599181808474026183173022603599587001191403261799472955653615731024892610096454914439490442603831222669051106181558533656846013837278682380131834936337155329344293744260724956185262230239516275045613513882614805367565825595373070135881439774820562647609501902484623634359658267746739852496713234688792713391950643979904886114805943221482785343936867219160301503259979058166097510775677173932844741004651189515685544792653976633191405068529822010776779341152405838700068440538226124776732298026065016407279840821261592022136726088090309611550377121240699956604073177177458862902444122079787386555901985682522696198023325296305388815154977608188112990607748582132549451267783348819520727853365811536346883312925500828975578684732103610264528838135827403614644241763053269690913204408284787663489653255670222335313399976210177230543844399818119640950725809871441770698602806353049166464194781657586917621186739034694219294172981691700895008440555717300704968915090156000910527467454998606738486173843874574421311361601737506699946753764864649851316795135294979616997914703028039296034994719378591590123687901518110728280254036172392502678669810697103437781863488128530283915859908519880707988547504484004016363027144668949582892328774831643909828982826299300951884364544905017315730277362401625582411572842304146232222054606129004170004804085131758300408323219784203470009405027333976751603356013865621786555475454429010248479409801101638641173489972895375953115403757786408966336191831760563016328199715341228828951482155288324229248734996924622003945735616931456155971591300478317541524728052675549794820507020077969154683473342277714675001811281927671009234807423938968083378101348684417523619778173795061312249974722471704079233950524605932246866669279354523651099072339985688969048491713650525860727228373524684204482626821465010123964673824107800238692902984369334588964845179958723764879857038117309982968400670039372824266123731103890475692683546482462522540691103194078929520496203819747616198915827949925126468060501931137381989900040263328575535241581121700626310586991109546579317973804516242236872727033940967706802360719809551878856931295096269198974210305175333551213402892789558486970544866858116860534789752907778171358923015645746329891707594529220014736576618205423653414185780359473566056540687678132709718783441102263760419945524939871238065822432205132857338639052452458809901383983081893346608476633784988031172629571106420591331150378803448591513385028157890131175207586116785257761678062903896380234037991763981847783874109301745149044981241287021106137004075663151319287821564312931014751656460865009297080322872809106163962677754890044313226254012885557560732760492009041645147432160689630825534654256097889595790017012903664285483305845632188443146311891718687101755633544958000525749954419943592254457655621231914961990625531111407582049520982146042227961912750803632185851189251024794989691000047684203606916436390010341605300573349608918773722332586888258670779515397438894864376060978596386421007726773700653934701628710229040465016912215328506649677572893569884937742637881656942843206657367950737095153399337935925073054909553278723273794927278812884003639870614828286596159202916699248080406153774534340176903434515843602068648301479295077002681625277333258976204712883147715262909855298830548269581967892499674044552466864469601170672814713037669486778439613262347334350586300111333514419084434588967796093062981196841579618769152187537464145965750654805215314707553896253141998497346267587528911223157451345634866251158118237708998946749942578602827139966671637297264523797347564981680917151365241534025391482216544561117854639872115972486884097060526016179436255768689549463181843049484086730172372038299490171277686853954123891936143734307923102263768298158574092716107560982536160485948887814412710403189455712295615921425194352565039708057163923100335770965209327861084435140400482523033402177721712822327926604351728134308861327319323126416741956951276413924383097989040729011013658162303046919533423461018381258313622813031574150243588556063141150962604126069460057002294129779360152779758477292785671147230051716940420224532455679474810610587851795208768597597159250390479738782562613998863675495509572402163906495727643998470327797570075745853054625603409215370217836241333461611552209113616378322135212391554312351043647376963104733450077814948962839871328761963170454510236639092078625871031437517893620872574083237651557924530766334160452084509402696402564551851631203603144857113725320209373882376752511645121648108194975581454751437857180091121928742881889774713263992537791380554021207279067084496427631883534956328484280208725148173695445617361552262394171789439418021123136610530227151803781062262097068101101802349013218214893203847404722269065547981413313556266343301098497029060363199177139852598536696209378873814000016270360074136889389104146204219592444254817736036444490188197471166943701991916061452709925117750521349076266051093220422484545939820490144536496996060595524840298128731287335664312101225872665570807543044620109910350928752571664335880490436612500536417528839010877665544340039267689932250163141733383871990529242344072367134171398349881630563520616248951529692072523422318983723127023955102002906901626709738275131055459126582138881725962362471876066660262450436695354451698899844086308310786358717592565886902254987522045280594350401300685268960608589426637091345384380031435948692061908992086147781049655206415719982547348359399990350821604316569376278451577872715518960838202491870371411398093616203816056283101783021454224897989421986282834649482875157450188242365426475898381971606166753823989687204133899947172939628613243787754550491589557767853897271923215902957226751778213823685442105094372468548638356222851425918981235535797269180232251470326493818595581965796688878840670959698008100830155391287950530060490730000611788909276958365502714737507177303177795535623517449319764476261648840054157004364209140088705211023060781453766584102308805809140282282538563824746711449260675483997713529229217888921829301351792496270685755628461775059128024453999789039125722060439536405227045091198993590066710263214464428293422362531736876495100194806793696608432717550289461906478635929503001419378358851145346164178866988831793967074712893677248972614172402957447322387322638387360619161597050648540503350236316991020881579537347232950871206563711770332822042419690996807491085520759930615919686133955116083700455978192592639847671543861497642321569391460929606317983971395557419675691174611992728062930025538030704470072555349489741081322500107448252155467308893867785784359650465421563457043398566571767371462142127320842708506062637310168020754058205255310929009533254774831464842360931981909603915812995643808849747665060896529785428337284102302504408093182466116165150488900296452446552809020780051456506647609286540324195255205185591518363674431645549702916860956368484651971096762144279333698671224049834279587101866177503951265781598878307501283515720859236039625827418553108130993721652925524091515226930440957463269210494665122089695818181382623351881775709517662134988331205413196652919344553136483500530276404529621960833228891451413450806411373011269183199906794850272614094158061131254484483466796564777126428902108857780922711867833164478555505204614204814764882488206398963835937492409584156700082090690442656891315569762880065989500105002635649452660627890545578234884444349863977591043989357680975791218297585043583543334712794726306011432843672103735367968479625718468767099804707372889234125727650324708609961092712717616405137592909953437282198848551596352318090699586804230184582073771549836275065790227458294290753815393821052912889328484724767908658936285126104658357768266474876662459357375040331131215139035128278889853625969563320504921984336364611504545674821692720994500394530659397736463082320014845093926430946200274886933900010401727182914906938230634373470450469069057067492806239150654199625633093020814783562646906139687990507405689563388306612770224538766791434462308608995999960434479815136006817825505953536716975209373607541996305779644720973771866598285491094178240135034037907768746625085184648766339992505054580456550811216869077001598544286884870248297327962610330500384381708649734538293483389453946523187372886844548722014717883675532217971267266899028707644126409471641266019200737412097139343679918060903778636443432915916381134498718151530706470999990326056572940985129448291450832412804456905869897357692311986687459756827186333722417011352377565369573564455624200865848473817815368020917296216254315421381432808473576732672952206870931791492648546470720487773121411457243997781228080340978611017862714887801293113274649659082642192288576330891539159400799357082594133829014859764707385997649985634937170529172990207696336585577624705583984189937980153459446197639084492471235429795466921735499000712177105746937284304394444331888109577690936000071084981302750181897606712918890528326244750862117065722273643909306462853902697889022559544418200277026179598149960049401708953376783095266350187580024816101526550489414880545082723613374207170158187293089122370590200465313893204359400922813040879676226003736520512639219775315410096775063553366927007008576428925484700830594946699135724239418113623683645960521501581314457206406424706636586483570681333783074424082867836068528328419695348473426375484865092136589031062093369246202794363132989796085751551638189759793362840673499157887120792512550516783488435218446813523897553434298631716517043543166368427191913556349756732172913798912233875340027189660647877379167087538930672494182472646560579559659498924830729103325671559851938455431716146759465372093656564356246588271847695381565507015308791046579344959058991552267378300569894471185435254892299444231413025913616154005902761164140356997015208384774027248583674835997965971028957199188574377205681430892182615546674521099915902509588637243856957986399456111115970778769492625695114327006566394860130119983159008608261360398536212899731137495082449354851081125575622777561224173360928949954568026015739672610564595984055942621189843590030647339960322203986928364827516761072094716775696332073429494990832484885380456305346356238864449809178315205312107252390972627798784213587223429034442043547931519928314579592648912771201488589251338535616074972214651509163210443183690351092239768921574270168623082619331284907362746556597666726045735383186256367840965438628058230899657769654385159526705017056894064416391353897286206921411498284546921248387783588842067995526513662640616115001971739059722346218457223917278201662268344007874462450972517420146000270442178827244987228245580446558534360442423320528702276566160636914255727849081565852798342409875810736784991525784172712384489341545683841882965940261067485516479129642473181214289958634256312720610814923267809714740099366592525918631203409992973858395242815307403958303544171061724531356792646088344901774887360742841919095916390854623201433267271057522232341786006466769853849715431930149978795215944402417719860287652988449229861859687473192698265641608617120695515956600750212433936931751548912861975243323290750549458146681495607917177501561834456064800968069838087349709699457185933581084116365586285901935650940161752171577021269529567022404203118079542812614944563535522153045253754689228175673246160946285366472310239965385608668784239864440508397574366913762384357084342502114146186558444798805100220808654853574619671915047633652943594257463793489749142270390658538938920968105018445996840851550837929772859611463039417827546147613311700517956666938581314111983225172618137163034911918934639310171116100668150930081937013778731488508660658279172182983343376138854061909683874446386055754352652064912639794962477677598549724554893214857271270338648329360861647479747939883579974749810004658974846138526330662506451574714918913453829929365701984839431599222321407194703720590035350590015382014292728312921157927489325858841016781861146836632794158445843521818745048574990766189717341254267722253327894551262188708175022651528754422777204799815488435024315839850418589901320706416006088196382884197259857550059930498434563084016559313466490301921091680808476183331192531837762072741350296829282503735979325922116186451660120032847800841957274322536910246964165270207056117148480355759730754140961668507079645341111911316635273599134326219161923102027674377874771043798930367199540037002917655777645693025586687987183703714695337298206019133184357039979297528796154608182857995209518370340011345381720073173797747719013123425677664994806659200415986372463177284596574223022198114887296862377625891944991653821953238607389885918535066313286531996289067167376221777267605390463381071254224645993677584010451258321324377416150923342524629349149714796400868964842359643961907004064229814687297623905709975341543552311422242855139325561399966399213511316062696133393379554115403772082722580664033615764587735076454412474266689894618445990956948063560209584508787891944730437442303239066841968421397061189371892715077301927143631907845205116243006122603882027573853115634876214204832385423993839144157206094629069317132501149915173554183539277960777647482650700240314153902451191943722299150144305187219980257727465416551562836115624815600236832690938437265960487248072516530592208854201377007438431862318673145150051477931086047818267107112987967773849883228571334255131583128987267236994743723059860370037975101675230070705199726204256163018452045702886413958718142101664871305387944867465446450276383593506048817999176160677372932882291488799636662708227257942973413271327546400579915425983446400094243269607317120257020988563556037193011360499421212274633448079689301375098734991202111106445124739345680002990246790118670529698805387145705951407098164254963337200675874148885980328035268522028928173433880053072408576619811560033997410273553686516035372718768955226275510792472948103700190174871007681621996237117921035861422540807566586870428428503557957115233666368935206676926997450130188491445317763833294908112546402891579995910861986232341033491891324668407149007129143231287167232954386081301663955138560714672508668089527762664610478658986593859720384260782110700037144507580186128861025757668520157550662260541818399499751545897743515322529164794417145243348782001046634576287276838483922673498849624359039826863543662417734812975729798408528337635684011006686875185137053927373951599006542778373230024246346572727610363659115084689360684978980554418330129456198401359234216425352468026336752519686585186160280979178323321226998249680754054798976622961324534973169804436756323402176770244189949789721417039312277788457305589959283114017781175415184924567099740719079822143969842611959989883247195886404704560651372482365401323069834284570976838236191094503488929036188211035023378166952530925919387008375681284112619110438715512120908762416279850576787285698017372499239979084285188642113935403541237725892616213739834260919421258658462308323820525898971178529478550372825552057214129379463409214049916885555352533230439614306813396068227008650589374799847989532513562978379708169845615569241081554910210100374188397623881090445133755642351992311134972063521126071825601690447727619145540438412804574525767431249099007253056435045009491580410137276264157715048553750582204261007898197373603888577549359387152108442198140542044771327791269116769874696985448628933266732703688102792626692927632974620558226257040866310241821772996413954923068023453762443488470919777501429800730680209506481100453756074965139136218963758303441189351550499581486679579630465196894041705892653200206329794118696679585529303962593094809632730284820324220573542779624958334621331678902555772189470349999197516073441516562211622771685281581707746064611880473269756434037997735522383509396123412979746183029143236439922396676771989320283504993014594537475564508148107303128332336168937427594926600831071505060066780825735205146010133704821431444447909730862951018869320645702812316752220691665790117180717265396110578832233722888335717426631570514247692783995452477763947421928368197943899198412655213530069844871758400162638378987106470023883332739921897217899165594573829229276008071618054354246795409550139581645100469198472838165280000265352464425266646209178896714540890396764826720648651840831634726889204963438778837251767523611702712260257423825672729948107057506584011881137384403282670605373170155036623930911378002424641254745708705851280237999170258428980205822396110168943263774939400294299894095360649273409435272789458818368504780259087455844224808685431622099483079615973218764055141317631084010628519183315485949789519188550363256734364083880314275379863111965961687203072859983500011165856545530089774541811226155955512306127246328560594357946483255520235111936499925194789150534661210307297723450300916048041003442398208609621216785408667492373468311240273082085203015089554047142770112871401175168926689748589834994605863492883592293883431752823373616267607460819324921526085464834136713800363201628453630579044983604464170872526395952596677665366498886004685862997629262321753670264448993191988939047623646789995116840384144095568437819536702500146168770893383497164435976822313966765095216922053623375506939550752485278511050888206771453831270160389244471389593691867227120141315221543869864435355621590297902074920339083086491921423701492414658623124703163169682929181707206499750120126140213038855303264120822646469444788967275838495608871127834769894351470737857351148210544165191684947184762881648001997891948209446268728073928671539259088901182063646109218395685745660185324947567762315347213635307015653088002958148943775996189879992708615601227038037268342310556294152014458130389023476667420285564646705209277469743994258327057130170648732028746278090383755401960681636530595699031105517453591803608869667196972280143442383861107773137968049636397707537085410250667261751981902949834967703179378787623873135752889512669276513497789060703329070627839756237300567133285147641896139710463092688574338835065395535459771249315251504274970537503853220472584042354051886068264544694386875702458989466909706532725619089065640218322265178608205661129964910152324624477050374191868646329301212483698496126192720055798952399408552468367048017224779142843036546777323574084454189945070097737775916606214934571635167312539932022776332142511235134765807977667909822355874361913084843849504832466227698461703475989956798834076109446777336136512824463118901260549159417525671828110082111649936825594845289043870266795259712714771745536806404074584560131634952806858370380902452815492555762961698954327999540793853111350831059072683070841142152655607849208335429541064264729873128651698338529998246677428638478015959187414351068166460660909011790563017111630820897374195574489727156595491621114390870545157533893232378731166598403410612230617340432722814954521026411391527286269103579843821966972179022917032437120590753125670951676386151882006230417953648064299069702900001267596137976351820155774329284311902136455979947250839703199571262761832721976057612122203711107065290623265853437725005465155001671778140407251542854729727507162465449553066330535653340322318597626692783396293497549279700000166092752285177941945525917973710532860063718023561598025960722924306016323364576685589747722952399126806339321392050731413068688767233981904417995145138913799921043301223649738571596106244703556436208613047502814711732831028589834586804694896277975521756031178566094868618276698025619153753574279811466325985547452265391902148992868689316761100500442678375781834602688120975559985320315039972352317994318015077542784273347273410565992455577941362408800910389613787914898296559556908709836839963270810696106520493123304990298633353357972465819005816362761971194249655643529552910427519127454494534674323203060289751764011547577078110871070473890480487893658043612907379932079390243805074902117795734017562103289294794498465213229638201806504546588041625908262864095974504922390575711525140373265499407665939578172194533747084773847888605440811534302057104646240697764741746839856520069016278836472878348458266586896951288366762723195685534670850912677800613208834732884330931010763871589204691496505828070002976560446437176723428783669235809275275103581599607469508320474829776451557652572660103989299136937240937671294581812908595744443010391973617335889264029834180960337394475864834413808585010193883762074024044339404074247382821509518384177595403867911813485409581616214318176211287253824836449585760819991081521445356740472014029115154654885546168892408501837795398592012425228640914922651670154748868024858011067601918701659083382845876622835425234802380094349182695421568557190915155554382964801100693881397699517049626362254920086186695576463562478750197621037019970607692682278326923985212609236722879455590908726416465850864779638578616767507277688111148791238524212353972057694853370384718234583713254648672628186860768501607842269890791016891220828997573196805044092694239093687090778708409329195654036083265342705559809032031919526223727478893338863669620108229209160953466531199633936902837444394775533304245442806118157530571563271678046455365420357558605042286104076630334356798354391566307015464979518954650614490371854385942330778958163656074717262482815771018875544934540083466341551795753587952579919859358526152539588392855285388117741512743745509225479655462991919086404513560388828200008353834294563466259096407045649786367934130792593432852409513840375045405482860718676271287500862310668891662066879484600623785131022378018940713939502908059987247806736662478908098717177034641010513580334398487804679960646389051126149361200139971148265161111425142166204285602169597980114954575865973905277390955087518482674386297015495922249235864996633474798187452011938363442724471843322170467072484729092243787199286361093921842190995455627413828914662464762111573974877836996792994500043156463696658130137768539619757601500837752541766254596695011685911237815640442477829423599799054313303779945936965688316654288635228636531950702000706456839360164842293799639852725426017551542503969001542534335214692099343429784736612663909413654695448410968657204277667200269391549195843696377295365961646927678506565723357291948066633204243908567146655155958292838181140256157154493656695152874876275386858625766687195996325601886389029220390389178075164367075312935447374217726686715815059407816780631802645043473609446155934717553241349975015565384670474343988343312121344130240096303562360431898177133796843132823897819662867587398681701103927449162400794231946187482001942257328553875367932540937952164532463132413966083917593860430397122191347598751612433529807996160351414676467268850405341894819616240287587744439925261479554170306426058574847514667669858542485527650585250069269181483167848259129638389665581043457117670290601050833998099573948445096922580103361243728215674831533379241425278234287202319147817449797237365892781105601266228504047967879557456439145796827263910822452890115982398094363401547312241650585854275658783019599801459542622745468506128965780366502444469768660918454513009633959216140444154676551739116147360709883761820084544573454855864455279718287796507441826984365510428565082511917668163327182081255050389723308610749434603467314842083270876350211150657023179500340033025554355505729215916995604533912104937817629988982290440140771754517822304064365593690062123629032945127131103421547301283932129984290633743526966311018534336779310859567681336118052904248859114625067034151102970648748174063000198900137738780309050444277648965104800495265257098569397380767499052995446729252376991096105795137508462908383904587246037252831599162247380989101830617160234688772549452863277542944468219783819360522843859320926635866443876865087590422533676356235903301251908441719537604344963055257425316219191505810040895704082098128054013219152730491208847380507375637069643902361423355787801565869656490802282049342424411095003852520890189216549698483027348429464886262944256759779232696035049693033585294464689355767374746601346369779786204826142811622218910664846922218627726174184250891035080605821220926785194131229127384500240841910947289107884547672093267991215842317686533357667153109811491937275433428210467761833199908029539338397641282627048014962222894887761408572046049919156410580178821187379635295189249037234221300052680007168959457480579229535599434031146153023398016755905308719872125476509294108630225157958536973214013725330879177905110199830094548454026003336739480657468418874125527411541614519537131032083011193354814810273874533840249281458948943006708189559865900077097162172272235132244348185371710260756925836817219680089399399275178174214725474990552131585936619408919977325351733767275374410974315825516845262816484368081203939768150361178034208595912776968042461137480186799494192973506880067286080703359623611921085927302796006589310913152968506385712735805480746899834016558396123207028177138013564816802690766469957344790352837689272852645053256637089268467084254682489310812930489356600746152678950655151784889637699874233761804426539536805601088497577015240018584290020399899917561234689631339751042658654599474029965367277279535082550278402149621421731931109477104915244381080379576745207754234614938427087570294371319548313802632820465181308823727995695058280075381205923587669496228659199060864474915545216492238291233031095203203494997411820290322005292229485579371730469523714136730149661745161617789426142503126389227469699469283610170247102201060258991375849237740661688803990673499210441073881483105223174174170906440050503872484381555441616186869174285934625391028586727131322849891029577401304951639987716141077995572115593443562453521086790445861623417188758766948899262557516707909493867262508074505297173952553176386910086996593517757195472756880039520587807704363994588221587560173450917487271931769490582547454975486033627035122596397970620536241298936758617491833264580019070728918378079624946868986822066141844638170809032677161429534355924077173843786222858850782317483577345861423442861076136592193518757308826956454328011533949385705091957888704665337275018607606589411653607576767689376386615474401975643987853083710168319246345898417330620060407786071499270047619719580529465942677800124640468686919314871655802169575306314371469331117766274361814637034633922251385850807393040455506398969502417487581203170040460378476100276118449944123666323555400584483931380387493274248991524531334283987909261086851918496178893617717918638624155800055602953938213946021393835701276518933128706232874929137672525911624416679280758845916161229555939050484869724447366032935197401473650233571065910963741213948382336052563834411561999444068204436183714959400804296595312034258521746632566358755071662575924025129968271899174314861917793415181952456287777273143826711462956728011734921375604246074988219630772409067029490256791075387749416324865328342774360502744643269346150753212071939357837827029753315928424457681584013961398847089850357650437874525660644199696808273401488887390522087333531318502370744222037284055510433723778900072060720578097369018924546038063413971368962340446281379126513497517676608200051962681769845872652605242036017030952979694723773736116591088302693424313884094138047199774085942771701363951830498982093173334390150856096429450314929415533177365868738761027396604106662932898044894714274880913100033931574605368511739607299439950649858610816246039606563060593512136031923343929309435625325699514673365403080879693018283650127535039870601928308234593278246778725144746694128198004092001118025090355804012377219853676642235834900366694825927926263995834039545987293135501560258441693697257258950831575310853054886466465409127076290683417247715088396398032735784128947071470911097205935113131443761242937873011313323662172172440456169242829274905702098725431913477257570512420285835597508187179508828905418237445246020726356966494298434284743188197078184430678998949827842804460258516614518875020958926825593541072390438420984941808030470665130008978009650840767711485195437018854501854360331703520406342826942262683435597270057509521777634600540102273671072840256695627938272504333432778118944337152678067283368603890300710727422090724800008168259769008552923842275589747261388261678533076613375364364546490942915436255447954807333780961997045691165919294571678722359603748425974517625079066143572076368593456434682611758084796162344665223854264567081641061965575217157776912185333979082927063532475805020709507247343498792983485415541061988378231389911394963585341743419268311249077647176562731995371864940101142884459431128742832659400616624596829521552338813626307783696858554106895428995630700044066096963778677566752895906696080354160555954443511241154011340778271422383341958165844061423621006340829606744298242217518970284084844455939407018273078165922955260387250779376262588538625122823180615434247860583452332224833340795283291016033789696563665528936254739151137380459112895197958739947991446607761127256725060183780201514470455620999271349494769419869332978078474543754938541155928395826469233743175144043785536380085201493176474684789018678058463537480183757702569543231470276261654624915694749103450053192371253297065980242385030752355792595106064197958561137972934912326707313218218134552828355210740759620497679279995341160034562607721473866606348473391673785994221890108650837258828530326283631953436594039924012033528491462281445983016527926173853527769688218915829179860002538695163897442487888910493424048267729558990275575344842974461837712939567282104355619911007596015592818554735389658451791698608999143312813863156407969824043348235604479948641380394577084759989116154424964372890203261811735968808548225345112908838854820981820860101907211813480564054733221209708046995396045715830108991547923140496285745302250235059116608279859689810235780770608354432924191873653951137670307188133315630867393050217396518873436229475551621648433279043374305868294901564846944776281262624843104174972514465569322678879761996185585636655536843470963654220181803590728377217825645133047135469818074180022416524888953947151218588986358910685292471826481508442629384785292887985442245240205380804205520130766800522555462949130357831720481674114848459272350460645305693337995311341181611796448135953663075979229647131895840136336694854184672208188856314245804271991586468435809359052392755053154118222829973984861811299907523896942747695667306040132253183702466967481200947465829535974997792852949279695128946975148618419428549703624716736144896795930556815960619304701944779593791848444550414236797874221367665199287947441665783337662226963165627219905664070542699989019252808179622833698841811747847382890554290044923656293203426161288813468711551443266975844229658446637725919342073669618595740945398203848027620457239998463911198407876582815202925520423674786075976355486539117323892919592494729531232344356927016159774929540501063107369163271470715081807891404691051866167807487357826602175512218761588410306478637456229626542457017133338280798290575658163180062665176168733634948875151035780971981895732452953031953216254458686930413712756809414736190438294059770990800019942143398849279486494138383966279112473547329857793505246185745782685620972631882849176956442723385832339579708392557539815566850914867262634399418116164819467317895801459732405402302558546444546924442205981964223487703015050623551320674635565375706052311524261912377795164471655604881982164957667896990988059615904107702544347063937877074441473386241973244145988961638492435223948983598525475182710075650546749853245167431393863905632733497464587623339025162538312222800952751552532663781737846782534265726802387526859995151819519135757805060040036809608542307372186290100988409088026479839162615375743338468692516939423682256195224242330045900341916063692779720994188586414161742006407768546522261253533613898495252933078785542949709842981597017267755537914122865036830039822766204404115244481029338928137576353115607663312404700303326312432063685394005857595343975632354572177730974709346019547944951156936477019837032272172713272472226340188646768834299343571716408142974763531409842372306187719248110672904452230438981706572708670281204580834411334265359427905320284060342238799797608793227658938399275236672190866303333996940215551168617518725454453190653697124089967896239383836511519819963507480140673716847270983107705039456038668584119620770279588469290613649457451024353175530687600525015421831174013817442140904552450996832500517984003374221424368061975443327440367838057819741709396508212207081354904952677400579626687688625038336198942381456451333680024460810950710844631854740251900325012992726087426873943184473295678422467134248930051859688973832880396763602779261269545800973259777537693094007136930129510501222339440866523362565453725720158027439877402721971997359974426619044497996627359946329089482801138331991257164734186139535805025196001368740524611467703598180551442875431547601629178389041465594134812912046418317395242491572364148381664915802815201111020447446563520042952487539736048552779406062248643994860831401940383238569746477137063231960934807766804698655452626508123593868154292409839861254350967548370494136876059005722952028436713820647325282519115602879591083305611569768196999948331177972480709370506397589385286116965971260663002731725052464713024279836235495355190232229579021763376544389543816115558159946583825259580016414969387415795855893000134179107090828427922001877461956082571914071637462268065533004415830361085438025201240429721445649094827410042276964943632537125970898090036534385151973694340826210520413979518653790249008920270654694374942025183132674117739814775821096869094952534905759804838524899127787447400231349995116535342023724992753913898388644243256554283612185515775283758060291012991373037639986586159365907277885342105941690657277723843336325974924217815328139560232606647717266242316724991870805260717786396401848837645323155916275958595897416452427021282383987530363158372909786084907970279978787031355990542722876104295553146299541361302406252547158174349174771273299258807317743963603063671712122309699278071195739647294322223635053213231957039132639948053314317611184522352555358877464664549216969377988658479339409830935437414280591706464132118570409827606412783444785863819899173361343749920012979922103418687286738906044937332805979696600932157120927706300769586330507064333403560640586686366498305883533724558503399968373462295838681855615631150451712737078311546353284659659883272235165775414660920785543586438896601312864851066015182013180465109863894810401141805018693801159893859520379763405018766032627306024971097741607016945395824495760301938633454860126333777411669140977859657422271448026411088922399992220692897554008195755838182787491121736449816739849473356633768476624822965609392293585728187311291643711208625520691117084380747186895268932457088250419559517906645285577333861881000052675620060509648447752409953905471373357889452380648765392445783383262727543995882508922618134563310433136043309272878402783901212299502572137724495817822500661673018530630622437646790346589419170995867865681931644560135404182395733254753841433040248988571071821367232749337375628760685291256345635828366299895992508520796822422234093259341317194033482407525949388282332307726670162970122781569156096039539870614271625604945354395717496902409133666641424891871661928004265257344694651212139520458840631958802314560253482003146001524415978675222868073943148270707396700064165101965960127530100668024661777958493196963915428897258664553681091981420810764665116763440988359959419417279217742203277208454881981519439667863094479465566625048965003327689074372831124819080932978273395613762952269588558952861436252892229696397052806528208027587423564289576793757019600089701420069045435771434255268996078279575883710416842650913259697489560563878213264665428008838270471127669960462856139738510544858445630327464121577916344532993202484730393692463571973501430489191445357561399177281793271475126256571248824117084375872577941301567818812562484195374643176257381063872217739760464997517317871234815742943554964296428506318249272123160748816718449241664399363787361885141006085165179663023997382684580607113346705286197370976668366034049773795853059285156609695442356825097749073296135125715569081258081806883172660145908681149698611698227181228720419161891328327710202253272041777331559271675313790653955762864534012429891008978725451395605141873778556335220899826746666853845688810878075277145422248289998301176395147184848668840023064052504122185817592502433457640698061943563272578504574165436230770348975692791460999239958892156952111956390305366909738037253568772299148222475279980544697957826667277740861148200002810555805765237090350960060435557291983336100940134249302703901377479928132325976310293278111499830296929496066675058643820576534743523651994400025701867619551595083502216907566583181447495813173062561433310905919820662541539835845932471393045982230365156243459013330314174277570811783966644027393062975753376597174250930821777117922932580641319979893668325827778029038287556725366578742911194273924539099000274766397153256842146209008078013991595487050191008320170006068662697453493735738565107287844879775723448631581239529193622426079964928666184885372041841374575049924429159950198514082068540923876316897678878603936286366438795134551645480034075789314928038366632401566354937813591757794624473040117965921725093307726984912637150361430269501038184784999811126391612306079285911868029922684833046341509980622374557168027001671073308765655990719540347005457591250830582338447139704544495447622675211606147162527745015065412015524996891225344254495436107472239132045964881169617066160638152133775017966747315424902046761598485129477857868682424210592029606576973877165861835868614922318635831667835426105335582653541797454415859008998186191000110004222004479214627952014291827599671912945231544419293762962189918016987453824960319709713595853269580033359253776231422129977908825756408544228156337036195774124224639212753546901699260701641937530134984996800582776737270809214308069067398846862816148572057002211797563975063773089841602090524077031275086322271905094661007959686987693355829181401226958697664454118064231323605465737551872784058715508417010986241026237246031871530704346756923859812874972331620815671880727266946883320334419443595867748621095140522110696895509963017980261333726439143433628970502347950057677353124004637076211626731200349802361809279957261646270291555319647156425536853189368126720676590272535427665747643509676184621793578725699575151334094710696137705694401146016383752472692167117766623239452245907408090875977279655721231467954291189553874652405128057250770614632460548670257986427608343141998169133742088499379232620255353606294139141390394292387533114237002000564132902319147434294336581348372791414844110224826396835695438870245668055098042505193788448979344087531138378572310318361392734649969984950718379788368046950389631506735380982271459013557560145793083804989868907624583660818017183042354089641907023254091396935261265460706696549042536644229651841019803020228368181047523616916119714260864040209142287784489509117264306847835387102643123384102494056281298590104855818132046640828875254753418996616336676924655959638715665916684653706205717456906431366745758308623047803215386026077183648016702538297089700387404191687640663305899287169095699571105561683745350857278285664032764908384262236284056472073617663572822968361831084663057665468979217896304539142879834699932064847768252568750789909596901172127430770654923118869983625929978024427688525870472626129054101748606936058253762352770129147846647590683292193695459667450897370483700791394283181973811903024357986832591097738775028916453999575394864936454967887817623533843577419259809971006397051365509970623721994169952995783184515663254696040680468882804671565972094244987054113886965502012223518230063116317955053871010619567402179436873374220153722353116471833627878875458738240008498732452515508968679539911264476482091026797180189393813473180230305010058439037166370531958564024273314463942102275471792130832670873694638255889299391188360905327200174712458722898696858741449224649191680818325480072486862788986518725337471325718068320905277167194570827614522441476540016412035051497553893443996599125504408834288208160627242376178744475753997480804879113458416241406695456208148789595186947468058853402584951484584004920524253879208214440874481542491963012158506371531129046213855041425673686678885952923812616347449198407333613789309527780296925876231365184759227601968091217815208122512590742519221008882469349795328010993573264942799041932555575713235890602618559021770759035298353745400822159203243748343054209561376718477322837533075401749021391155494979020828947179470868135284386073860654903179829079089588509980600208666400833375678209114924469027054191827661103354850800577204833634518277202384737387116081771690916228030616072100317083687130263185567703324333994421054102155959015585479856374600629100448017205962877089166124044462930201581158277196988242431695101334352259710766271512382802312016717090439310752808706575003437962496544996297843109162619543157968837338348071049816387640890756397687162062871898279957734201399365444760649100568781931132545256290019176869704938933019144063021409469697978632995385987084716022268147688634993795523084433323785520754524039881934486487306629990809667428016329615156432569973199051460372163315012690529886840198452314800278668982446018882067940819342316971512087232550994631977165619515171006085437941110739662464057782463283382458254038935389715052070039940966225876152517276259431277722422947464359371808832515827628938082881090302037893460999340534088436492303590082765595927115062807284552246150730076336947715875471048385970562732917378661297637246965395229661644778466482021440569845466726351904356486167177011401595262058245758856493857868707743552354018942175422424862440701648338526539094439835233486856859327030370733680272723949830162634646622513847548515797070602935458781349784297061106858095818613136703177599191345577398365185867214036126841014379071911656075045631092575221892322932814150444957857103512758351322727266632527241831988422844422423716002843703551763017008925765861942080618785252986790474846315953651248190489226727166271616248697720323206106263978625919839765706990109987373658870616272002161453783700135955273081565964539246612430168018397885480163441274803270215560911376678706257837904301858643439271086522450562509291448977486445370502157583681568355401425988755735448616556741522751412222038025557603764430485321401352644948424102832403566599639090406760150345491778288888645174738329310756526737524792397110397919347470467406095665112549626636955947929116519270587548427256312936216565078935057624547805498966373791902213963653123797180568704176159800045811737472626242829891251100145718164796978451457422510163894369923208173347229680087497514361347335461429325102479439036269208995367793968112556020877299829000073815814652387744427075963588010242850019092263125025471096824863042196673683087854441410835448471982010641297382762148737451412916090923254286694874784733206998067446860701307703507960527781777306316660470996160813246355253909208104764750942775089047298212964307587884914996974983143003305345453518844149528372026098737093077419778331152555309788008445195061668297055896460169190271622372446156035772244395711645294590285041821132592380006968917966752383482840575448308924722553629762085969190203318331614685096292592848067087070480058639697971076723977467219878021963057683423805747616632600368452706849024556510580943056329021518416462446289285772801721142263522144230430635833337009500646311577476006262242747366197762035888562991768432278616570024702627858504093183736097434093237282917187673643338916739316799685813267579647907514022867425563934353734893770318870791774074435271050760926510364339636677676978264632671601075607130519720369061577288827066876142603496779416852489817166792135829578791060854301274495104723704953923233200388577118282870985074822876901139133457917903565548632832756165200966662592630318897621508988919387750343091439573204530567145618535830186054863817968066221748270819677348256745600241383077042737362643706210298994633522438800695999080187555283099332431616154316193283596392246682366854056689538249655906657744800603263775172462319446883413228088939458744001340875921611402061671356332456970030595605601135066984592766311093480869009063588278307921018364045174245606827668952440497052758609415672587477360564518653062340970345965173875742624350948809264821970748130537734203969578713161357701626487655549570237961546548839487992993136691646912350468278654274145478298797459047739940070368787647661220473686901374054431824716365028075575334020367470601771655243141680123024308300142988666627833476069330623752190220270798705029212290468681618740463835348820692479798713507140800417894222287425959679612710166692314086989115863815598075625443502568279555297707226175034975234961458153314713772060465763713068848464744182432405532440310680161929352289153020062968444249774760138473200622332417061555936833889215134963245852852795453402159400447373042169625839027971064825426673763463583550434126856538158796445208144949566015488268727612056395396815009142070201544843768488610581304677155114500734316494053595019638674639309960293271508190637588963883360269036937299271079806446114111597604657958426606598866727872742336663295143343292311801973027929494592758402932930274910171497206602764908876887674195825797858861485264345243797513236654876769485418513329083649734074365136588173311104299020086647047379258095366806745956700590157150640350738498436993423287929265177614648652354925719440481152904197069724984469515226364663409181000100615402012827179318918393631256005165783838922586298418736733005043194473949544322566601827346934938902779784558842394006462399975444871491730307860219890979520965220593020609273987714200223621529889857302377063367845626773955625318017958177009349437149402743074769696356304553145895309806952555536818080915562465420109469083027611234456863837280098750744183858803353609339178056643539222272998877557665800826887683910538875250726968428708782481046096997648217381607301094086645016980283648952491491062803721937775261841727350109385710499599458449138865157264130629081190939279146551269042732444689107897617490068752277843841050543084092402080373479249244474379500946694256266535534024097611561407480888592221504488730806308664472337399581658332462793041345673242774055164269443952667087846825199838853602512406092289535957527272276002602773974518328670674179432886207772328047303739371240660227601441896680720471358741427252613780731571868387503038104338356224527903159540140795915373180542263086700342988460347314124266459001944302835040153625462293461591326413759298925501365025603690267751320053711060074135923093533937889802071032364160439939759654239437061836164715089340803068686017928374592502419047917643911001356153947409709197672475981795799756486367860085041307326398513063540470522469573533415986453335203732157807224037744609738537479089274271578739079619483559386856404310651531843324284615833253893239279954462302343555902548711009050074504438365322716548886796420795899214783626037369246955660505271333677749175878185871015397696219792669228750184441969745256140538959142937518468225742927347112839868667568551376474573079783066989812103956150266553249597179961369165315276002642510716622719378687292843447359161832568874756422550542853208755570830812474841212652617533530111793608377257418888217514794864972022228956395209162000875593076764190129309120436767678667772462351279154565316804569353659689714803557861660575297944415848648297720182499275548153748209130365215983692161321712693479045124548836700330469195270279433179065242924020850513783513059891277847597133555117004500673429012930309707481840900789890778383561580410381656015892685572308534142704682532861097554460346756072608194251053107403692988326465415998044793268322244284707315858979118388538454732338541556647113561433217157275797639308110904961362324120665947420903038683997016401161430891261146784168545078515122862715767399940782170097729996556477447652633169076723868898466750386918613384034486978553860093505729678240269875036989050380788653637440499681004945162655770074041929351547109393684852667343953191785293225509737083228652788078307070650410382788411518441182453219939278905040295659741420700495349911667830788208974613485071608107610942349056939698450912548021436602429753564850426410635603582657288255706480114115623366238627250321528166237812446610178907791592718688244935491783893736795266977882140597509557356550478090565502230392852427349271125020193536501826246451022506128312450116826914872075173148436957041989449709296476402182984559755988491287805250743249435469627275687629435530661531675980239281404862297679292529478537211172410276177649394072269637265681156454671398870424802133521080044293281578662614219510564030776479524640095544603543946313082207619290599896252477467003404871959427145274619647511409774837954981177560599136349358536614792437805816742137210463374163335045004598911164141501316025686728957361873886288849586144896659407451436288014895327143486216811983979010103146755429045488139152119616546441528690218263868212834622135473062988082556582035933583562675054254922067197044716369845392432922153717454072082477744243804156318496870344280957215636343132205198820259895033866888207155875884749722643957361259487572550133105289420912178061260961733232324581210362319377779112233041708946342245369224284329554151723734692418334560716425068727424461787244321660097507999967587572982341341287131939642134751061655083848423687026539184723518901870311974264767256532919105527291060255588138944330775109593974185506991046680040898896373299327953681931103616615951177995152870535961424710423771410216636159835368483347978011010077722770353441449858756178012195002479979084562840620629109716911253824214985781720784753950769657562084985563225338462470900769313147471830226856906409146705274893993231124683218153222820080815424440804780512627014208165336229633859149040353282131076285928446443655609544147895293435893465028553678740400940626038826328991111346691449187858948657756980167272070956465761706550136573013647754529038807988948724674018929973884033971962138436278180294498947923386966327776615450588534990154757055644321208487323921922194869298592261498057515696040723739442182285307292773690529688015757848557787884248613872639585730569361095178750595497366045462202699851333715641315808175609274855845186996750561895878020125604847765143245429668090325887485237151405544045307948422943233129330201238223529080820835422690326896814733628912314147866747903229598683396941708387002573820128083511457051689441685320909580400745469528176586582193439862971081172401043627450921486041552276758404391386205229969149649444592180252425249594149910834063158535996994306713037059298572763894043762975645581705066145243199984235489559115450906114608518427376949427692131475166337991109460545849219748371595599343421057701659652310305527075797401280367943237880102213974621426762690663959064947676706480965507374777652297843977294776947629776506612260567786351457748242080422207915777548714599116703113306295470915834964350324190896253171418054279915539373901206383503066106501881557417418962830809285851011666614550904990276303230351147592251844529173003516612685297587949670434107073893758416440945763998049964912129328238888483775802284847905442502377782704651109578994760462879815691532930916728499023273341393679931795568399582541635761394071271906402806770650662514552892881403721726165066998727438749364763407570138036874722463264720225230346570649945611097394558650968010499506689135214437275591316927437572860217433881803149737423823426681100327869398289513178908015966944493053739945040661042095291679452163223522600905956261178270288923790933042002020280983797457922297651175635086291664301979235672262771259831966582298093184324373590760439525151874834693170681912259612609041690461073498610297588925725267794660394176575337648998152071175292584940536420814358026379918633109693747190020161287675398114619039990866659804552025604852200174169243014072955059760948797522933356085998897868892384906137789089712072128648271914178655023138296011982499951712692246083856593611040509745557882391087437855184517422116408787187110872351415173418071782781749572004296429829240646132870961002649966686611655199855238522505864475016058244190675196286634794824886810745201752657153820541466856416118066565760635617337902029737627271156985007440125269491209687538705552815643884865763004141933404904142839620113848888946651253713549075249982955773814431961470716363152112341560965572764243628508829336081021502939660579017370897289497962117793107954422935753599681992557811614244030078390972860333104552347087116043983389065653506551393674981830126280612096347278571648346437633097159366833260859403568177549735948693769466424598183847909289277609724172052126350303812575353561850399543264771662784760373725370700598147345695740448210470243061174274472294971903292753397405910325956907317828696274380160560470788660925525113469700220020671758232440069372159428829700997463929861537589695836503389298280295538419418245446664071184412358255105440379216995761090210189109779456467422990236735297891255717248196925568732077084220362616191265813692067577999148024693443364768897637399209130098988426763835299771005954512052214938218399507299363397930398083201037694796529955116128261772132077965725560313759892560845104844726358728710306222304661776042398924012132449629627074722588572561659273398917912668753609329206051605736096629902774873647612148065326759135488310714496497368250924507021442625170142344728234655227602925303887031394557514339027135012736128956613429877391610084585121091923311491407528985784320260345023777447243352332365700330666564543862870860994466559613873118775788549243828808210949080482029156543565823677818464344440056216578544228724332238196157665944016252301982540892461614770815453995863584173940948377215490380546335545465120819078492004276116963219936991226898552142300203188587074096746043231684998158646058087598045311545531192243788977931963111012465519229206411363129907863501891585038829850461901290277946427197553005311238343811435084843116175247037942787818870693316073065240810261710545555378345200339732611892221127002507958275112212231268809493464385384180743541187809388248113090709872578933381530723911274311111308048256399946055506416434867253580600642877404347682507216600226743250146164157142034780030569015852872865899948552879034359338414823611704739918161531545909113420881759662448857291015165881499911409475201577284842901722791134434059980607035044765277698671983308559952672489112918507823750837328527265019815885923270795757472800726005280597679578388883883005682419072921277324946919631759752268167165336886515126370952119553468553280977016210130734294770086867227196673870093797792728404668099325496326868335644932326114059267292182681073502151820985852095482035149654319108261249422373660929427095979980035248999093377392694331905268008656774009615739719950299876758423796838347360599845326678920993492231269164966591192314847806040587484675795656990785527612843484695482374778144825386680083243601336518988501749571049459834486726502081207101625528668196049302407240612451508283260677710175370186769457877033328892323000340072015233794983089627084814316995462314553189868606778141288766858044664633648474841743817988456350423112353615253491063546646857093346768302262416698225985157727713237472635081286902497611057912649950094509545052967159161037830933280801837469069881493295153569640497894724032850173602771262368481738355312682824441140732660499322244938279554796006630625485542786786499919337255359748323060368727088312164605762963797346924724823867124677475346955131073580955693773466569598745211130841061867085386257663573754384704427086440182204644218790699719168639983316541976664955025699878597707802299422718418998918695322124424189864861376654319709692098952986986879067602153192797062019262019171631150187213583549477756993275865019701210460708454064319094923516697335754547154965051806865860469812607427198730356157580126378265676501829488362079698470218162241195671002687880317749191778834303529183892002355544482919903483151340397033170635442198303308397574898961359938066623980125423521737746755802019112532266932180261734888380925368071447599269130268987762662199376379060592056010308624287544028612990943008858838079759284165727680910934193778117102130739251349023156542893134112658603082808668961485471244452886534875605847239692968184352664526023914317662106743175706285469650562178823123633951674625615207069980495129701715797241690337445548108553956397241990072429171850321632937868316223615612431663209957854367967232303420307586598593011284412006522544101730526739469795533766896041653579711520971572381471546931916481634676531173203609099686249509002152911751227625602306901745367094436498593017227287544676549707899866706269856118559647194530966072669436792509339396365406796983282687041454642248777881524075645471545382226444869029663521151142599862950851587615412509682870709934544252852732923180044259702358955257396781905549386294934036731257343509104911432203356606605508277206843526248135336531529751089470422631763958073407198884245838571747140669088470774357061663021824053409250553440019507879667038238467064962913002999100145533635209071864529331281123485945183210557202351027612354647947703802301067195787845799235763592480293223929802665864275414130266925586102750430991321991079419993457671717079109161704792268428876286471572294598061195905348489249972339083136797563693714848325677566977333991737967832170864956729512420202488952888686715721577637172696376639811893316622177714420123171598187014885805305295718039628631765520720090600843605177987848527779572719214252077855956408832264767504397832879899627461159739316451960315524053988375665161184011606775359863540203411900505773352338789610997431323412434169346151186768505628618515207504769682478375856465752590345293323503723143169171476934430400319324943084608634443987323302766702138975018181427824781274630216422091189059698126176533837936795463666196097765789081028300069234315269048905638950175878069990339414750135236707387756904199991672644318404664090111096746517645913408305690777684183746777748938959295850895045782024383582907211942730793405773722559008248536997450094023576963377119008336746912028742310774474979507178744501219731584533704234689152130958099463739252351474988877804294048688689067717050961789710707134013872270957639468929369809290883196356517418817490416906344299652678088655712694389252852746753560618245248227648737764048399366659206909877681505970997934960672508829090706353608489233534922313733646531041070706847084865211208843067308855210758983408693925782782167240238803118968992438378060977325444220843388506441203277043829046955645345978605191809671668902658640079553539610647311304632766625951954893932087798722459857911514561376178127854990763281907799531299534530509977144486661746905801740653606362003750328304278315159937395262545176101828665264707418645036996742227894681745308030985859153423048382501461142915926357754460559710438696246803232053421664727187623428789714006474277607333869369406355793937391155556228996591812310891978515547337433862072094703749850652714553420463962414713671777851522341183983427876476465019579361934640666934854710607733782468473294008734073176608678486055195322343495173017489133167271147782870144679806097951606562021741291355452100571595190290668854461631130679967494858111298299875510025037703069333571439300322711055965755699779312481142785442942558794483945049953497644251361333609091552130237346581250539809671527141089471502888739855477576108506529250824875308982329368321414029068835798967224694112084565509253339561982756845328158094175978226240030881193474296463335653579683972294146352710641880794646286420381405002810406725685309758204322827129969521201441194299345077555514310706160581852811062361609157330329203658156977108926054305009881731658347083461616929121398787339343708399310395926779921481842775176038222838314576340032719548988310818854835496737765843591597453924577709519647964327413760504328373820272618604696310121654987654641274630068598694072659878736637015278258802796886233410049018694230679752275902442890914120589612686588568914398441862191490099553397968656725005394882737882503267364981213155012551747358769257005935089154886384681753810915195111393740854541749222005095952430265750928892758233972598437393092514135856124324549823051422137702716837529863684315537803884291385607684971166710516787806506849004406495088937863372811775261730530844917661295824012725024210264784353424371012955133779656847131587011030182779800647094808026137813450876978634790650566759352234477441008519748179039706600936087525013375744067415125417659741074871306218641155284365103791880054609532171058118219612950523527590906808097315730713581599587444521249021548861075442982773595502418838776903612615280257705755722444027753717812302195497999819992435028096435883311401357250498685927539890039748452676871564226159256629067315073481821992711430847510890414416396988008447787928439200797740657692566197441435233603269815319150079041541141936612593282925907082007997173042847425392042121236014481730686667880960520929373759993147871601048688596223287010061248143360780213434039820809215529226864606676365350907963874062816430960828701134774540493668242627382786002222979076217541975267764922272683237997035599805007821822264100137489780806993059816691773413998487797970798565219164611717617244192860214513327554371825611582322647368834350645600623590078997550904905199698424725543714688919880727537097619829479955182237784502769265463641607211534324482218931696440065874820270405035205465513092380052439567364532423609298546003404233397882749814248781119940634844362608915036565119412261376128322592233783027256013596539340134825085379738124454492464759789649122454348013470438633615109832955421356661080111043076092515932715989117383298480741511209275682873358171974135287873827157069729297430648458611359645362641403323862839788886113102525934297950590934930169108323463762323813443144375716808657207097329728649592209099966320554317076710869824125376582327664361916801895707761049071272573587527263444162668139476334730818664400062412533373875894044337826353033577373374094446657924889482464833967747387871951056140508940854627851107956743784150311325575292149963594279455108247564666360839758771850703697073905549364529082041700488352923608261685767302679128203457955202886426315310619169555420287357767822289370561475623675324618916517609631427718564266784628927537921567326687308773847046612548021360573768420598545891946404646581825282002035590770194419618774656299852775452788471906573333986660648992773027934017184549461773732587001154873823237083616760244492893500484015436208684408180465652973865203461281181724671589759468141682047458304508025105404592805397832702985038283854465543631926526477352400348936130317543209489257424393660612878782568208931186601667339646047893651813540530649491115037334843832931114972512614138170924517471030637777964708981418376785824265773759092125034024698816934803073924091592414989560154838358260233067502861170732073558092571080087503925311563594804611214514201647748866914307831717580118077736824716872740335205709367127393363367016698934905924681797056750769845852398339952672722592871055189559498840261999297081231299733901514003929408497971576596096952734859048320908579201265989493043593545915414811811326105846007393404129298871461596914771874354888334923438397667204609129096586609078829872814880095376036592336986717504259007507452180334587830807790627407844346674724779309930469002730789591212712671301024835245269891666310134410780734291133011080357237387281954724942262247534736319632737152557906434057322260504713596248663571231732837492218510110897043179457935741815729661713394579582568581643346454882999888446509230418256841749498588358282876164474201202205009453373423879684406155596225682909074305717058406864485690383580929362754846433746918139254013755793257891779558620094879931032044716799000034897261598765900381451903830948022024947044754813942285191175753730470019059018180034932365723327101495239915083873794940428192130944291052588463138642650901899359704283036429306199334115780567600752262721574165891651832479565057413609947058565545692081221378048777655990921729805093193319088343121832859458128774091163803152500332485370211150624795804211677666963489670901079751517081103486474721319580013180140251111845562633787420083018009354638331170720861353310247230246948004380014972631889808303786168362991067543247169282990165214644052076105756147517170112913909023537645308394433163676412376066336395845279157799295218000609312951032970651263369916923340161255527648818045687083739963788873259964689016282320216410027764121928695982053644980094020567784708742298471181281072380648454668835222201310730481650985825994008530052493058860117565758845160762630529679487706701901794391024202013590478016317315270637045160312100683687707259721463535035082248206237121441859795455077122009654109457323467488131732162347718002201783183539201073914441982154193118661537829803847083567767366361560814091312163828239083280589627830907444996184403377485453919594335489029517628182083807003395168157144723930603689535552810991039128764678102069105725533624983627916125597122268405119984087452849402847746830988687536816338450247705510807843393960976393099788268594994584654121561148765340446014777642418655461809731079920163362262591166689220841557595095374515446949348415261433937930683091430502422807028203390118620923415998201804944305322247926663806927162026461243553547191580320356116568082475281080018362185940860674872029816446820163322330001246038818599576809360971255401764951529702385112612077383287038499318710937873708327412228659026102269509871620920656476494637906922328838636595481020201240987857450909696783065068440905017660935948780882494940966433986289266246158834036879169396047896316982760527195823191806551314310172615052782391269765257315819215526318956749118450276555759077379538864321185921333708847525407160588710580646375968838448261474602930069550461645279637301230680385676101000867152228030397584421537664573072443476982026115222391685268204480157849502999282849545282977384050656165054946406407716455339224302721790865056506451400223125315046276024246749683522060398470427214093321536408077446679318356241910801465017310411851696457371278031206351737683729760113500546162407589429482708502243735932512845963581508826625248752806768062719041307053090967754013992978535505138751633362912558152728290629400462093509426989897476955581588881451820405457334766219300274859129875819075645901787075401746319653810051349171929918179826144324656245286193351417602628787875162315885753654705652879637759088207285118846245684714745510843403767097662831578016382023509950345801389883270776124471772529355490477057289574591793611385841835671762563554777255870888410263169128023888628802718316355285456296968763476641944736926729567846681362297999062234669099591457989953488907840203879680067050860120615709393860139488984671594113361777472625583760494908811947032136322738517304565763385887564440559688536024868594116780859702299644160821014349779382991031081723305496072692017050007938273544833658593878804121314131527830747195695853981013889765722010313289928937458084631342690575718859694721488846389587244218135192936897654687814878919571540065380863311527561986490348439245313028574495864113111361870560140237379097712078223824687792744091872507444004238102201469674765924690201215728262127815109257013739387873074123592334697908248161534192621946885024895049052627969046701566930610743543840791168870636023750586399348220591259170442931959999961136605174979537017157218868912743025463987988182484859958791008509061759413515237879006938564353269566667447649507724869944855617514327293569291331486702028319830454294889646178367798958242516366482614806615359358871950696238483203891363270489161270685466028949970072077049610648542766164330773944750510343591411608670466761979185003016073615483125948250284591981379536247771219673255612751177988864632751625196636232512792684627054571355672832511091059460544592283731345611933600956424829033071760387779779241579589584955098569458744057078228660133428204178793132174617038503990365292230465133661660363762567627418591586060360448319882017807138791394418691297287978524396358212022777527509852175089352114309200567569535973466024367538695862969982175147498825912379535465973013545913368929421000375513466998078539679980811393180131262046216548579593004678577262388093026725057133748271084985974508835588132623584971069785320323449322859559756882411251365167569491937519517153154134668794927006055407288580119367386813545884070831984702374638116134232799212118027990072359917896609411100559695154970934369069810491777348637384824808544241440437938066656168453824037575049862524013966610735873914652315871371644244500728826789540172926827928973105727001736704614796174198144929854888634362998384021456651481981609136531726076281349142144587287433909075613866615643147312455121805110376244269181459256480568612376689525687284813749682211398410196108137936323405965064015915880447886063306923295243366116221107197936320258255370551292754452758493049595040658024899443872847793253771643087508552708819741966379277194205483463389943798472470875285618667932726823865426760289089847870311233396077849516109646451837514448837709240266925623418446442625852862208223456182939615500763624302696807953483475283512724815390028920655489867111072097566765884619998988603515495394654401686539469099756788966214917530317771894756070384590081909718381597223806395221135764584731316970080357349498661897222238606913825921188853349370926268042686311415729569324837440389996235887303553232607500128896541960210675251456860247787490582943190507524475035386414970354774588204722658458915735763674381395450902637570307656486034753903823311799382524091304593965244022040974911705360815395728658308411218205223708182141323635898251346838890002768544162872316621093452129379578533648543685246659879191484070682953694166807731470843790179378018645593089555855488767150420770041693971369798805827430327334356918999898534684987368259391209151212056796834130938797124089943611271150403940727009200202847873155444851791226466350642791331820892385581106275590923291062766598264245724527012987963237921383705629379023504285540486962682882592646701556551898784466563549916210937387235179180496560634358966068506775165145168004472589322472685930669427065226757453439254792263813027516590079523852747578698864208013517751191676109873109175252877451052933978658036245197303848288684732910465111038689330891167962793434787073195753042091970275218346196998209213980816842306207075920775208980643158568237853181040003118764899094063280196233195272594382523110575338054684169634236132702222663785098372473035987799106054230190330435528994222738857671736077007209002696621198013195269312087472784366654117759974054917365422975889404059124229257944161968941301434405989149264448007885783498519481641915162945535323279791182355355407451919821747932968185774514409548863461168963117226395407808925376389693062047196996847254288216357444486320072404080783534640306858950470566420100804882179525801597886121472113114874956773010444457121401594183673005357289422723003227813817257971311408792480281328420338317618226768322626158413368298621102656733857718272590232057800145074766283058760567667550948519438753908968963867966765949772002399941339500674461438219727248528361729687245911962834650582236714757249513130114250863845411566661051063350518326158308613134406342051932393909989708342995620929571936618017722411979331271594336293207069301144892753773269030668224983986485609742567881111452329827810207826290448347502847224460935446928160477100851734447493870607717240870473377588704806994689840468527497031060165283629663644119645893062164426637621893640045754763068285239611534121754966634985661596009930633723932721460826711013036833504265973131315315759608119355004574241859314739435361260731794076669657127067242358469994526332140013803345639909858857894654769199056814968881195882646173902600912584889223141134458600434391318068196514651489678183616388226887433052307086295926039355541544875106584372464879434467767689746747139268766042474343910746950509598075371608073654872121461349919679368038057036169906687753917286647642271351821376721059921991483730279432015887028575776688315105051963296697411017038600463049855307319521450808614685365343595977171499496022318386717866048041820991045510537875091258809159456901897436562448390207236551566684589534483008349512352791768130734443425606466149427550002302497859126934280559100127721301698064495143613918747749259116199806623527620860329573566215933297877850000897229319383849361308771927472616967645861825607679040036287257836162089791840467934822674986120121286878006933835787674343516127964445436795569283858195696783075055004443969812260282899008731651880168167915462030967262499620363257494265032230083250786894072526863354864775571714957046856573333149335835592097438800469757049483607310249072338569208182022733617164192405468493623529948867704062839155556161955253586575683374788214916969754717288916739497471451939113095015666591150267185464142730686946878736671687792201807829854342797161774897907831708769356562355603565208368205882783644700260117385675229257750247540988153230882056687943549518877720679470163040969768742308403138644892937298356871326731125769922869866302586445216451232972605809885148056797585011593833519671028106001921839106112229717371550877660788204960267408941407683523871537554301857623301543350730815655488599296785323909198124935274250109043470641813150143101508069109102471789262056441653112513133093438053017255803272852371696137056473621269266062636569236789954511258522136387644686603621914027231849075300252129667845029345576600871443503051863981849828034838954745567484355962627995092270308871659847632679159637471731380422610341102822985078739152569472391241294434174491878078060945807304622495187545216701149673619518100946764394487646760803854723173996392579348031802078814284821104856491680502352269750898123417788298957168801432843547485548040326348585392494397711031272153419191180378807182249331017904946729878058943745807428384925658347697490074989361002103231290671334429347498980284630215479885661506438876796422121936058590217413757584028852824801257140231315139136099504121762798616291722183573987300519496744799190296273832864808180048337734907686766237652625420257211499642063552147053554770460767475931853725599401626929491673221423099209511412623640523724513942534520633773378848011171288844183457248377014185481770156125052213121981371769574175634470997979282769177124851748747048015149626036499512036128974716510187017600099213174497307154224467420391116643381290231268476661050162692999834586941756324108244203460762884287102439125340002547503380044351674551807508081367836268727983394528571701228688287205529790758561327627191590058000939725819621279034374711210995584559588447252404854697876653555954408394995494341629493558920386204650033805099754578744192044954793706116806508157810141196403825651048675861826486528453827795271415973225628941878320598957602674820853671683353532094881068285515534933146284928554945032155398116386231287913556473336330412671042735653368556530511293822319219865935898243092309943094241379133062855261001802368489724275263389383831241359641100575087791579308378476133940290148429222968975602381820074806817925807914279044394514466242128818936770678831278852073912323444431116866758112159158300474530044316664832235191279725692917395551030117605395394577320484208114872377020663115174634462842061740286184745491730885722877957146187922896083210770492210080433506060473264393387816364336378822030066286081525960751485165067056519217177227229522285084570710267630706612662980046946532003727588413056678128886400562155157192722760325216968604326188635799504993833265967384241015076676713126083453241366838423435712459069067311641802073020619837600389324163823557073475744341011305550961707832011092210495491999175409205440530907581595131322329322757334711433881988461451666891139514523554273946077791749525703992713832429883674685157272492708586901005192912859834711377897245135669918580383810220441890912891298494538581832118799954635624257953016456247452282347207418251654771984320803061553274771771755259977386652779104150809557299952488039158858882177762228786158725374351566734105161263950139363382916388043971257558361248806389745164582525787390845557269701795213177461228370453680491875246808833669711145105205339381907496307930679921458085368997806859976701634918839574086369925517087010987596926222315342133367166305593052849522943216680131312144500278472540339394674042984119338243357708963538648643853556687282475665631828325907223833971533589121762177473345848563327591094639718857548910689022455759650556568588149217819367119842395677337282381165491803614864623469769246637576237783485610436327541310989324150577576527215672464413750551075925185115274194050310371612338370977864337602711803596991070345056720569555798331679658558284720938548527077698241148984154854516927958350902362366991034574910753221730321725855259718275627241032061356999743404446541340822306366230776358081080380744011725744420901709841131321131810558235822037571257292867902499146170683916564284524984262810627135851067379784775912184281234120910620219162953895732545614956474677310732269827528691506082227266045740467344980790230632527628018261558408800769993517779880223994989699522469438971062463124372061121634927573607887803975976996303371097651548484230411747362417769070261826925671944848009420380313298002926576641038147352019117331229923853720449006316247304626564960901581270734893554752952022591720995788441733252558948149480593101117110256529821014692282942358175618599389992393817897256039673980206423671471595188950321038124977711269676314930734668032341469616271746739385128546367550983181083387279174650095552478601708688616733207009422161875173006959753682741574631440641714249983539273343382839950005124363140337528144252996137187414350896369716806012189596758872603812734301289857211569492139801850561667911834485929653651061140476115458223242835604750701498740932189886428710645640039849590036424561797103739190456130085354901301871386678323062924404697035911331550752933426200974824292241287676198200753518618281506758704519124921922622544196416432384024790832482286461767903328282975432575208028235175240272472620921102397973763657984251001829020885030302022865482594002870107360457300947083915330047166237328780018321364244120420912404448020837001265638652485789884397633700213397986267648217214604445260956565851089733262241026721346303091511550317008924744902465506558782001590660215704282289940200155626597071235191084413004287721500993469541526269826578597071985261544061367861177858893629436883477225965196775816961849149480456028906539437086598327702736957887098003632454077300934124976849007783626100296789701831153960328683005614690025292800668948169226879614281470039177774742408603844068354895477983108253367405540157687035321241890741722669406257104731804579784573477081167487297229564972851918677869753848334367342088908002568966234363808010570617959394750904662367682468005387849099676812230089357422518049464124086293425521681753769111902389342123437077595913729793908062482967054362381924209392351555564416086257179674233468684658413267788697847410429830252016221437966501759851826847904435950528496126429431868175949766923931888148055956788040911619982208168446500050134728162290162783757670908979809913551909330250298412229666069861082011978970273888900330781092007087202713662959393548294834478695962143230505008966248277697587287899504744974009574530986679015292775244196268982518799948368751053115863071642528398829053047685281702577262679872814842284160647773851887362452867507358169343920120557091169528863839107782007671626136798736033579123052124617180470620005194341857258882832768739746737115030163548374042033009258310600896489151400631283080098045366418590345501894791203572494665862642826728851094327044321597289366295665316890148364960285186478207520331691076230365608731621957165845580455957048828897925552552826633974640925651636802320321684124629303001303048811863609289277708182166524871893692782367476117568700758581003086462386331559780241487376387594040985765424264230266134339395824920831133381341064911662140539378907058920220058689897435025278764739264121067111078220417975667778023965580651113105754921575088693755164402355917866975456294803782025401428897536140500556708717982414070448843275975127990699114953889664154031729083402857887031406350948674442788133426593641938039635198371843949432391990526217276028086576796244210050615500137789814980853380598000669920093382333064655236128325442375099713197815345790076691801255841303139029215558296471368184849536129197945332627833524318807807005464141838359162412551463859065371125573544294248388798856933390389571234914169702921779801300405246948141778582325729689561856861350560198935167263521771186854499452098334810440187967847634731940517869159540387928752400121797644579832675069904302403573569194596238098522003772264082386895391000505892246440433571925577009523533054214159153207140766788065290105787939599746863218764591176016087865220318192669561518217228724239777755215675452809054298781013017199099301489820441115115391466419768042140323172857069250946760407096985946209965732686410405452778762902360075240248184354227894146276855812453013241312552900336226139748277388530396894327393725421382301514430413570154346444125811641765709773523976157723691588855614548081661926780089746036401161925977093103573475262998222697155629401446047782371152586165633548008615620754984599206867027262321471304893784236808895661193455735863171238838814272401201591348780398509787920749701088978246645081739649063690546946319617136507907523635775192309268159417021397068754068879090876649846409191520739183401214995833520828592252104394041256010154313667585688986120287619756223732926392360889886967482953763166086837008831902975543402849809679402857609182754013227462125003742534195890412477933190262467683754870715026885272610554636841866026433928715446763106567177011120722410614567979542789483263384991641485719308028924240297073501179857177879593672058560908242557062562081046183177811451217582574143009592985961941313877570910837107434887332991076043445276220377659621776482807595741249586102355939333111667136984352800587379259002061930143861226812926400134560367901328274101442043642523980254987265741848361590204196896340341589684326086719489183583251644401342312447860334988408801053680168137116129734486046590968307433556066780630886762797595565394645029885113152259194588648699682556999588863352800907125879150749075561954491904216001821112672762108983210562512524387786372610519889526229900867053165909451175369030919859404249722396857793481380055037856949662250175994258153226370302245147585532544657898974470086244950596642199268327881292845409703209050915037757931450150600353442043325946546206597504063642007426523992169792362821463710847138427345908215809827791283913438750024965582547369343051542284605700159592000215933673809482303961419056856598058367689097812044777269128257398725616608901402164562060760628493697082520751768956517334814336957548859565800069549463556483715585938261606767497799347051547703244334522789036721993723921077774636425630505824215557753695837949708457777742093967450768520579009100033693633366240916393765736201918448551423772251786210488146968791244414501685607379732932760571755796880860674328443838382601415745488450776369828614221727282293197359977067081499100037494453428859569452379911216490474470398845467969004145372265837708689703141421740114871715890650535685794919872724201069587045883028361446875557885950116736049850715651929073726973425754270301921375428997506946396266765036575334352125516886201540759684324111595994201863404359833423800997578975787629713287931478336050111024294672040093609115222917554076946357599328495900721850006298840829185072610081035108927721909264726609477168959738282998952191645134804455414302221383286509060883010475378820656323057297453826571143727222349990441475489995863124538730058556488091953716031855050530071893528129886909935147332558348740237522992195191015266064446615498855997244298998009412172733149476841763945302877629624305467769893497860161790886458016714398669726272937958805426571510410657305059186966453161440459485372056086635980404650205529654139828963483868727318944823751462128792554405450432555140408486700006985398419349737992465711013079670995344825330976013305307920753608040689036936561599967352960298498339468578455104106597400049272823376540752868114879382879951219562270247640065903425555173171237076273857774652444649846054005590842452834422274039761106380822144749619066607058051615719459644372754066240213729254829723204084365305731144343450989034738881532732252901227195718394863678716747718960876571294996185064145715481425587665211800925911395732176389911787473056242812529522538560635337676391579139230185966746628639966870969191175450746897996424352951373102363770979999489699149009386569013681405917881301906473966524801142801421256384768292247949158513026245622810522537120153718510673270784256642569421629131290460879769527166947074243029592207092347872426413779025523449104352254185318071454718692685531148265177328985589494876492378533586951439754627458318083861879651665783445463257052023909385081030655663733603061500527148675384889187870372202275005709713264230258501414980160459248495671167532903383521405509249828899039376085345096765476794153741555529458629179914700451255457620254057679074304560590636646250840090455279640299927404770163882544670069590519465992851269854315254787938805508458962752432096777407024419746345147175495391873040955290436233251113925650928591151630567921598442765424772621791221624673607257604805223758476575587755026918675825165589096761733581247856725002317416859225410368741918031736222027357096825429966563821453817255598210986952779423742027262467376379551613625821268319026694339389240403217371845225924111620758427691455217963423526354802290613393208574330077443781730810470699171355319469987390054393944240111740751650975156333317518509707438299257151680887967784297178799615149026825880895192792508515031161222316680235867732909765005972447999104854753133913397733880321344506699357971804860672793350498336488656016987322049097703396740503578055823953133550635994047934104136811003017241209478866509233399211381798773960899812057194662278962200673708693019351978532162713770202135224244237194013701400547566804172364173659650206400269552081928132065952995980255589510755671114036479764624852970226717357629171613800657181993144279031187575338983603366266403351417406739480463988828619478958080265430516928968704631459509744030047284115206505635684794030815825430006355890306540651821610200088026132613875564781371733778608322181903816964325836201100165415671554179395793788066477086799655337313873984080242608876653898754811593840507333277659826822729355844701217590729738820139647655487805969556595622521480359310107019964608421097779664694145513274076621720639776355813357916486759628325370850612568125666322260841672274315842786025645870903066222052261271070672688540115100420349651804126648802692471464077825570322582242401467802425396418864576506552874715958288581880269531713745570489521372981269281532028026846806096935323021730268792728758743926076177821381629347331116214686779255217905713959636285319736901645074729251095375910753003911120617937030336455478179201787396718871706286421097143503757173812917315373549095216383926401344267262095667106277913784176240302560911351021610014594079451886432852935880933415830674542884085199914974401018705151760610018213400701472777177605665581980250461913148968300055739569442802376639246215741199498172894410012696217379309334831650677267289584617624764262099364830793139095409576435455499309570415510932128225783294454667317543207264624551635551691405777757501445035078394450614489480973576953961807018541875023330583953006213204519299441020186312913219826354860242876899408001220774780808075338896294347646398741948015882266083077317853722904648690547850969825386779781512006823510741127729475755349897229218782645738642344659926087771802532158523025129979503845753733925686170042121950227305800518869594704192134962567416988441818230369268327852191444374860327103930301656702984566172268166853379424033528953400659518048577160132952596279297952681916561257539451657544261025792498162564545642273828642902773761824180773018247793770417975119598267234778011881898207284240304648111581155990700206903905875823425050568873059854365626466246997946398278372342012943725018243356858252486902140145845861753683808047164740291143441010397433046054167312444726346890278685217808469791864938654605453406458265420149442824969211487598424236961266323117976349281836214662262470364874997669023668763517988373556624478008345850291865767749569959600233345083153408109655892623032065562255275918317396908742121403240603283722130124394238744644161921470658409534044425071686076332892210069365159229902099842567570272714983587878487667576698528549231789094474257268267227784042424042975102077419583739919591571136715342102884086784623142528652402849298204232979063561844125207597627360240373011027118024687696438080499519506310681022204358698013742377627741641501352296073823662114865104800282916318377376999418668200727973684069443968298523236697011260852309391323206618561288097602983889074733948155800926592079163309487845466403711561492645650984141121437948597623167553113986864771727164013099630840101475404986284284798875827129401222122684658732073955778056934253467706140225917597362964403309742587882515082218689166645600642117690151803985926715839354215474338600522538469245532844094463654449977453607139897311052216761957320420426867294795968550132034725233878099481065862869090883399002166153139073702389566944573113624493251778508079552400956033906719059098285329396280199403523709136659057825456942998869197639272255819292943511706537549513864355085612302740386409300644583917809681512698366085733221760512389906746844063303195799701177664602251432582575935170220331195434841462123828746607915496546353501471396121298843035631659347178761067580080304967241631082030515440477637482874119381491551920753515389023725395344712367127010451062638266914424876029423402121192181630466295243589149780944090785602404799719044911298327054447185048735140782150404399132407416624769689762478962353165384530721083823659228756593071682303562777993713738644284303577859771919831523702249346872505611379151740702957551611799312733791244978284029923764683850105925482731387649045671404559027263761277162379205791973338613888860758642133422589846127191669670837935834404260978572867799850073079680673059887607674180364310176431922283534831643534477055037326625496189685451124117524651445082682388771654991708600578357453716553659641292574017484773426597819143792803677974760857612062159006083271850768192174110042168866887740008575648357813393313417338574087167211299779543436022906720373443671783812184668880844594091306143586080508510199583393349363572967971663771077990765051871999616438203658714864002538282427887582893499344640943638766275640237599870500812373189353257265038016787283976367791938449504782701150487125174523030594718943109082286574870324799045850602339483912363927742422166698140290459412921886547024119503878937213858065815970607893481405041481008744924735062703873427335681299013293062131935297812894786519156427877156851158454313727470074250625725551636777448540237729334227990722600102942212613516227647444866977364699745159618698624655625905700635678640780041018240549335001166439699833934056310349029658752249231898382228491330290444656716216649040468229719126623226419692159530470094685648878950284154310899093286566314157222759251584226370666403759511257978793017107775154463707065332882946794329045690752898868978243432812907374366623879397905706210271511372562850768106819782823179237726245201830641490035531051489265505554723984348593442381765733186545997446609037215538315828393544871717520947349871494684715592554383476906762350459049644210472796953812540232938504295161473649295623528765674747996388935214595735181101986340631325130838208253803288612363623209982401894683041291794295887731773977951600045720737509256328764625741626149081907908481504547358452905153523845709424880537236654867617547894635295557246344606813909502487147753994608687509778370219334220550428907971662188263270756020629492270867139734892003485183960187126630462619384972900556183266466739447282713990883877102660611964910497827422195060733282644127497749542323356113058281919424997081790139115019757207684369882003576576663055294464086190267002956226487516499966990235875493153425969994770488355065536025999978752293080388535686639599663404263674132908600536376213268822720924841147396460614355512335881626430748602858413362386393741650729327565068059637670048490377506054604126489360052924067298329237327643968244615393235550996770237135326804466181375816444609447687125894567246817309675753858822949294097459864003562205610774931081669908515913882042789746064740359932123500631599937279514784990207108878081586957867891280350862565298880217227087756925896559178181016154852388455553974284237570743390915445469301200826834481617235630808237254003185429808570467800838277017727014034340100209003040505183082490001802528592016689836898217144813181929845757919758521854944111867209384343588532329420242730319287631191990746735802514063647603014649180226022684358343802535350118519884113137659884783536547428586163627020329885446938467204234855666881153992552133757023430119019711744183505583830518629852448723255059354342629817487139498263318491948333749342698289128824676559867476940458540580081135612369741828148473477518788543178920145085709713835378351947535618940531623976176357667599640921201551567093087310782696635272835332013453654695338080829449067638294391794017612124265295031034426842597335973709525056211711992048206375591406812427680517165906365932440025340008523800512757084877655025700424641592986568619680831388532142358906945798270441763843605994128544972776251481211952237584638229835291503112058671262248984868973342872925780426943749688154283947834104874120527744979153555426055807723993618223248178466293045188418324307867711674013153194931513057039649219397155285911525478472230053390811312910215789379541195571169268364827683071698700405293838726857098074349611495098908842695644501464313776596551238566585102007628143672047961065975724702694585999327781072719720790213365308051847167434990196014753198865142592144539301582854156471439277838141699859339120744889478817116005262773957605120975883066205892257990396989057887405568514145214559852828511437718135163001813061763428366245106625051894932439474097075378503591161580261917222110777597507462461757827668758052418434435579315158862621420933223913395702019222382235929399761822298887412168102854806469006851949573034675184134196746303917210187099048291907948414047864883993800551409954174603312411218409138535914647519573208034753405429638564965539253708253109868369499142412583201195653442604892082166962887548948019022111237055840472287976651134373672943296476368098735579967873192374791842931158582344074131755617049146456468642543279918780843355484608445355325274073118644111577751360243351182910762011484230074529124896503973960546686116426204237705499614337327965140869954838654787225741222234615823776672216990519178086909972263287895496245708516634910563553489214247824817510809153324582680066024022410382050625680742087801610234457514617483901642697725508403201098920147928447783959503616242731723539708715083370854181373021184119060589147686229610357443012759721247274975850964891241719391510455387948516015055352350789465100855047551387150690631492933996246359093656389045171305946015950221706971769891584394493177395929907604080120356528474437732772380520706158501496103037355010992507692336756059950826103015311182325572170691208532990579231090236682725109580401422543198101615929685128104506912013037091595462099190549650350808731869418505225174222137301756466663992825888508181991953261448615160226405906115231436565547247581223218635968028910263370604719528761734585219730484470562578516069182306648044685290372879235378035047481101267364726517828653125148615005120197985364441316249627350541300745623967373376840949461443735218580484727351651511592570828650107955150020138762848228980088132829207866828251258717082998442558270344507250602785356692247180240496390718062962324806502425684493537251059365362150996359407390958313120300344612915358826967522014872022024170165989386520792423984589194127282537734913833385668813743546366442798200333764351012759705269181074182082793853047961114874906378989004792491636509114494035534390274560542535503141056513090283972768803528699945947096715270658621169232122308077384489804082014508974773289237717964760750729638050170259582679273318456200792010301566858435059282192827502386831861036659431133597935170451981975958151827515294213088850785519175991363868248050966863930422659155701792825435702958585355798743821857167772199530490025630664956372732105592660310637349624081789255405142475061981495802974916050447572222995065783871504693921129404737717145589373186844877532112270311218766721327905693449105596752940014228092125925657756299375416833431291965695764049859696384592590884052965205088087291263629900148429357665400380976127859368822693257436550272143523329011104483612816845966380505589831691160732005480588653561935826644081098513211534173537585219309915114863448996683530891385445583029151835246695978356632936188886329106756307363256544911557810710363594509792679250905997112604980299636392808027398323741276326311132326813296954278572971250655910047305223335886248354439289337901963554927598438851174697270198910212048929784362832221168958900175586705088895939548389753502516436442973663746412449247579886397141979453979273257045579162710204006571780899283616386344153374912274296614425428037695152937124743047214247875915464473844256711088007154049796853307549618949971283057339316740866151397382960238587409745590455092110618339558029480536381888901986742070632801567823601497422068593328892997011733827957091843940166773200220460243148736826835238640647099793190704104922454538167883877087539598565775134229297259387950515957398584815267450447028329983959275792010984558579629693170774366358354108165165011783612125591232529396968814091916289166495526469356583865103279884481378461221501658903484105217308785240679276858176256027076086014180946382918643631004331327095888495583290655864325194725393224274294316715593203646481317351843938088912432466046644470084808655708669225551225173224122553558156522030340582512099205388092703511870180095586498194405893635515024513798964555974573632044982471353122800711321860925573634979574865399552498619555444273109278363984751368132549706399808318342162747039939328885252400092731157842101139197206553517193750729322206708983018849306972277349010572045497075267968586208637744751385294099524222353036415750603821982067737952299772557321950737460650154542536032803304741542821987249599624954997367330784624822843289076708486271236279640781091275171780408747376267519494224776552059610384176966744757510304125408260400522185806866563356263294570443075113012450326429943448930645763537531881624803497552321982573917683365276198047427122681847160640290213228728923617238509433040050943508345273208833608765476253300340177877242631983323462176225176807314898001264172215906276536415586745530665557000392469753562358331561582102560797134034679433247780339185360999644108725686294315727046121493740146933625343070364128211216912023341800622372087068564091462887018863601929257113740467134450348838562683653946222552528134766926935999396166826948913866533084098531819002107976290112881304307142354967802161330078373843981262142880840579835302908860765792003485503601593530908480014819524616634848404090344507493268711110912248557352566500544782644457004318108949650066726675656867515477287225937172176742135791691023699899881869956575549551492435107093867143312001052849406094483442290739487797306645834932607586483162260436554070810723266770879558305722704235965779428457898814276859502362267426111617810193082915568997209981022096965140044945155257567893323235976273801021949699318052229303865306259086538972449242858623756679730333421312684643684929377475643920740028870150052858070511477323677227833227629574632938158067724474114117607461476689734631314161192244246915016795967702317061230782937705648061114822183185570934234715831228788777627269046110681709218563294673923068898050196215982162678541421205019940597027888327008020159904646320190508669114236668711948407647864780082043616569059942615928207769119397959840957872635173589018018850098897692513567598496552133739130455049574686682624561246670539420734459720477665653812199699437255500202224638749616160315367345771265536205357087053663016915252643663699596819793832293453334909437866612929416344269400020614815349793870758451916298039789806764188920679525797511597882173127279636533634236483058518273284615015683283715326303952980678667288640856695734959036462033708710044955890462011763785318091873320729806897169443678014568459518958474738125278237981382042850509673028127965754949763909828885983341487912401974729125079107462283303026851548308845301669686561480909121800183396328030896467609717681572459921261379114685415794309197648104898379699872784603790050534624511210438329641324572793144037141045686062628416372615130348408327891857579455976700610536170939739648077784646858860490872205289604618181225314216312916839055321823782361389827392348648926690966033500129885393364733150602703599448050695245981359826976697190181726867008394122942586718632062481960528229273404906535943159646015994486089233031914105234068149608930455259281309140265715232349150573358265626535775770076920789691514604882236366248249679177784925055864057406607042371380648673468119738981320616804083563025493269296426177538270702216675518803665510235743848132295706389130927865410211946681094788336623985193459998053655817048598438178313483951618199040414177264497309166704769655102842493837536687070361071151161008348980167445638800212428937363117453760750049176957550296836174545769760215846246997983676693070169402189868963346930312377733711820992642052184907368866356468505229583795197221825660046817604607935710302152389535858536054548670749494155128202557569830401277099279942236079186168215696653053708849374996633712265977836404453470455758410547445868345852746425269983330904792936831557272311845972703466983930663938365221136732991095805219278871312180726871342210792551542540521858164996764009326360664965006128126424188778830693874350131130721271084854534347820568545682586296764943244146508022057743393568839822546363717857627159693512348881333875712492162909720066102118701276141117085906593162612679273907381520261224380622016277745806954639352750899177081124185636822860492511878433778047541414512974712096917474173677159903911463087181673012143642442425842779933449790593087589872637561456074669480837479489716535579871629919029200838743829946167423634146895971262952873390250543325160686741035512799546294503921723471634539597980070737313100316274463251180816806604767736422751818494754490949049983467690672067573938570749976313373074181091378244265721602113904383274499461723316277084146628216071802636523434466419039292096506977506086234876762097751836986789685388179592761876917143221944302682625025519896387325673587356694728206624291291818197371489969909633830118493318841924011403829661272328532417890790625225592314203526387911627727296671143983730776485113152334193371215866400463678393153936850259533298469884887609700947318830745869364295478013629429344060898662865199978002088889669306253689096712799947704337992114333831247884424259582381028522706568271368552189559852651264026644329351173863698386634924198456634236701735442469968795201432667078147708700022790706106480453952460368865547716018842512237507167496503664740369945242677491871619072110871931708905027712561951866087414078033082224588760025603608283653451488495483680759043926566549670271815704700953758204454760116865498508578415767975732105200604151243053801298803252978672049462697215863311286346603196047079208218310371973512619049401058620341852925883332961949436934659397728702516422642516870177838456301791490269289293053075955552487301057430602018355449890708942631374297810766466299004556651414848278522254398050484695063506463226390179544143139611875649622091747956523893108023841427472243037418826854753704636631401521719178458714774972393051330325194900386316296448595842137368173535137368274084509447900683001687950039403166250895343111201558593922156511890343059712212780609074536558906115463661952480625283074066455376769342167633460088725788291079430979394595407183287530948628244175139595730714234291934802254096330611841722403346384745306681168069493842759574814542596134287922128600800653853851449216685554957400988953782487373208418420870374040109020857243923332941836837820067136021543707612120249127519449174745618400842461940234647054659618753556969310811357707073452639539461898507731093838168882422164118849404661351490624031323484270505501885545470884625207692395037263951155286520565300518648618384317208949393686753738218874256116874364482920882149037867016468951075002839197839255310736610828624238446543872471132627945532512157599787056940519269563789818892490304376980677655593567050062993667079676919738460199746561157177593507223345189203987055926403712675363167344332171076622779198353788541230407110906894781079501906635358373314773400595389593300623123605719980566943147145151473893790033691015041206887967002539465000843660689791604596119550034585090564029420663397031087037709988236907230843361274900007062876967054911798256093651784133834243679461804348153671261177707770663294626628479063839971301234108000809585334758989181914567752083355353822109707808700708741981097074534436527499274453391185879456339068979097411420244809835904945153754980846748521771542912753161938869677649487746298208903297836814376382953055739649416477518992079559447180060399777157546973931871331633969431038315191977160506444801971009266926943954878597300949142102833011574127629819219106896877622022811504656220165218531148537513073438396423562783948049474841615263432138734212974513210132707743431450033671987500313059026566859373814603366696835492892326977195841314460271044582450384618768509883333226933744622139656197665049348373742058193630042417753069665813733732025477886665797660004074207149186964030991424228011383366575421356199275771394888178871657037512498190695791733411356188357224470385444611976798073140748606577485511549572311989988771880391837607997647403426509162644563456482629542702135495900918653310367118346434706963200273283420690410606049791134328046861576923923311187366689173938430016946669962074908637502985887054517385998142785816858081058605033855668817717675194829035015679100566659508602358082223997507701142196991416046657086704754435184271869881258159947809278477698268710515173046605707571672416360051273596706614672394646621539340151595651416113806621293632973380485101637517116547448024106643630452799972553244028283751927573297118928612884323407373626713177102928821759157346803036740053740143143270417583612059590898811975027457161294984502068323497259425278965331081332936376783215790770660118904886775590772905896377535262716193975399248112943976498720710221228543635539987409415019772294989719185598686870622653603564099088846744691831594700793321351595162802778843903307115589120466490612430323894908658645224440312088925999026302429238292230106372218078427361415895978461448772812687026642052410555316422900057024864026922774498636724023268890408737258805102257414237765696966521772319806467426838055077202268537208707305970786361889467149309882489577419772573774806861741653666162472829216145336359620889388789876532699908978843150096553613525969428613665818549262799484696180901722973787667238357180474474504139171266905344466841574516156119265706968211216301852527464308905956455050098576047751930937512126514757558672059893563848644935488252774010917321501883394533218575120829600465238103461209975186155264177794057933734781708316073644941270531426161730589631074130032132512335051030989623185593522013442658532659615224918770872239798867726424072225814214338598125132646452625145144757231277829297260394890840554449875927062368653577764498919044015032521853930218392886266321197026641194917848883114986736822090239459785046400317530192890276985609137218140232311260296679987077142879522983850974537699953919435411841753731886144224059127679933533610057203637108407457660152987300756431665765968669292568988854810897212310758926067883592686184043227689792679149193922987056169766177382688783942436166883628982747073117328404902740290275636237834163254002801297170726987260501777489743466667065085059162370737309935231195981581420897830651219457181033492192317870761172340196699251661729425988834351209723162346851103154886791036980165787110275512457272166132621772509321394388446157326041703961796703200286201179941318345552417998823140667061654591766003081179375097694374772330930280659101326746139226345576305360747786432839665488327614612007984324073474669590739725457803868346788637916079549950243617527665998311022621498646507948680017647519241943417593642909289403917142538647588327219840169000607399166541384954238403839599115231193704894526099488332162035042535312777765001441022174706530211072381890223049519264794933913061488814473650501009285710874251930797891367795669096229452683092929688365481364670841930855605425713190414524164397849852986226371664103778422746160867726028273140367429823316987262210937506943166806585532531434400171301757116803372752584912296398362148593454603896570762453261102624359915971909947029618454094718458003352393943184594637116419970291267892486029649776255076872370625147708715935683469404636748533518856397428740727181338313604814553908560073482562345514724098188855974477734630244560066882666785391851110472130873091824226829464441950002007762257739373961763281904358790985887151402394219585323322276397178470884576685874343127914107738441320016237895905478002818800433190477992071771210534610489426768020117695940724825012515398418041865645272577618240656076381892469689724451778864727883151829682492365670222098201506225672958003794683091383727649194033693787151157571254614774928743057075948541752516369925413073172510759360268715683454564076469459955094791390271768837377154866758478464014911860650375067419985096523221470758156088598085479616009046417081450955273272323468690562735915134892934208252528665732868162378737733890439877567693645599568152434125410145549909612294326508399462847410940264273153692144914965144587030895995977864911361984552232067099809038369362742460371420452418684430536527761002165530582577742985918328152621474679021199127191980194753855049062339632842667668411987011569934856981163258528727273738584162968942379800510930717574881271335166667164543658060994837973444399185851076986711145596577512630587291858431706644578472081010153587448083099204574594801630836070693817682218824395873673403282740000977564919377201857867841799126464235060626086316879912402868402652709198884352003723205035399399979347306914559047736094109269945370359491265306045569834116921800218581360069312120437767597133064570824698871641486741809398349828055731706329013038083009962573868300555990781356414917508193357500944303922823828988312597523966486098046297732563486823586092546789868349180485551883654257657747438041167282322305333990038658008191092912749388485086491386371716117404471404235553687108037955264897019584836264014830808148426320610263214372336764454591599373667199603398569672368633360328290225247176287913297980656706812111977823173217867678834245787005190722650936931932176034462730800291270391610454746704313317272540928521613826354016453617144268137321515539795385819824340610147998562228029062581331507462922609102005256377178135915964733553153263298896139562174134371397078232820493941198744099129421013454726135988097964789750072824719191737682689899929970258764821567515432537326283397768476599929766090719938557924969184620697351473029315744130594687484356359017507230956993709555310158375367880172657005536597108703828288681182320778375499224950607736048392841714097267511515647029289962568212006642594349065104167042786522228422275197210475561127377120538904819216370316724526558292483240988089798084353300792914756721617489561218447426721932356394120338720754351574998931096662016031242657314046087424251614104379120200156307329888384173808298828032802831846703209551444955881437380087342277953594567607754875146993349495415781880115679368275713383986916173106501168181755450187775386872723721025632588277457601366972954729874427704317553544070989527205277341803153364432489797997272796114891061143159750611905866484039508532120756151301164091856030880958442609940110392090876745338117291465151452955472918292971950774882714271145311210782446845554616153295528950463862543815605889051080636917438206879243337690214121838068926518937503314567492940742768922389837868232960621615821186423690823805582735309330666536277051845108508340682710822545114295060093176483546722689904055291839735971063463475868611605774230671143514488167539749074381105789069818316366933290090728905609340228975511650287949015559760651546648567132763948263712631085719969036806519147129004854560993239763472572795976887114646694666623579215917674517054489569586265139454770334744741981373831078836597067568470634097476883754312623515341964637159643380483192283446170114225709245872671034676925947105675969488128560412163546590264815112160767132646150398246312273210656251775311916558510834146038223023809353419828936545305905790083222489782560503926714653858527765653747497494776374188706147407746368862309891929931442539783351287972549041540008580458103871742361212112028732000384745822855682790710954289623984555198056977016998088145355413604443538910715305657121398033167389050888810709628500290454407282436075894935042850066266026152073511722994845322075942134799976438870511084518737898729561387717181521860395732270272582321387926414448305046809939894556895854793792657056750198098194788944604232051687558411432653292411696393414394282475635451139541428619465966398888909294228688668441610908463318996300172277928176266955759622396758773083652994835205690893428883453507273975455332943541339578293414073195927082080123772501727115434110001403785575316692045882401936766436234812243893920338954562099675139828566122585246075496897205979366147092566469750106705646567437316683813614645192391819760975417519959587037895246036978877888041827626486708414136940030979564777997509927587885404247515276924692138792321300946753093801679733250246146395431013186178901728296870267464089990057523476647484140114271530869941724364591843376616521879088064205818620234056638644001499629054102102743508534285218929801243809941104664251336674964967393459310542526176338572938761112439753650182708219770391135106907617516448006919727734547463299625984131041802304349120723153970839636101716705954905204108413401243562117276373116390335526352073681481756485470518967845613427928272003724129274811843903053826223264836490439252844894445535551090161236040653771006258285547070577425369701635226541834730488697199717175217250290653822639398746214192211179602158266990095763913792312589460045662959684418975100796616602967566959473336023204308409181817577194036229567335683216234591876438611369582912207539842174612761558770978491088493683819188733405848920994669614853754444544204743146358182801664115217177234851398558568365586509727526764194382051281456232774252611557912159159697276661349151169112780978015141121720755118455519386661014993867549528958051283213904241074441182914764341707602555490384324831342863192350149157151739954084856095395263088633476384231283998838093642169782047336053525165447891313813943366041675137406109914844727929289412336171608804109291864068205846278993175023491367868036771564003936506608863961506285357508747377199792802731552203144365327346588313916330586655537865147959582991960239392376217875733643964830582308236763055931478168186369790354063850367614610530639678493761875778255323219002626797788496776494734293758973964438951399493108310206249508112840570849449438428994177822256620575102502975160547992053065977165990625676064917789487857635851396200427652499356860761075568468731355062139205504916587176430811298850588482138248370280780377514101392386777429689522714736676492007821527903108083779006969158181184549727531104850221246455824495795944300263773325937296632797123978305549407505849177692123472790493376907650973178004953775744454849661587741916106295006256250517272248490575520439627087248036505729733812259587048504088869805110456156813857324709222014875963931473292336760896704900294209336551278839569472681428346094904038350412605778261261106465734728390624697161218090630399922871375287855591371745137690068755503314441120022319693411302394198042417141452024338154526140694197650166577615381699326958776131664186657633133846787881518866101005422107873954262251876791155724240732415657540367862180333459770057732504015954804477292335668083333592479828956854433986867265208843954501761883335308937661957202662702137013552299440043629881828692746471262768700706098635504866345450652936043566142877007751114763932972598076447936751176345654631999806080310375571342770644761313280368537394613891792181481064691922073270911204577186505176425196666428783827830748363447078775937875510550102314636060238033867172932423381899692916235799543634713208380661632954386025722843411576911282687424982661575961704676922930511764564942132391842860180810484292227303303805286901676554360484585536845244850648516984267331453898619224747780380009006733245302097307391183338618786335279050283589379335767449379853476737242319840812328221250561945066262677113219936255192773511584486973163088902838589498300235277499617979105882764138370536703795606894876867153161231059789448097032395836735391242501221409153856572057783178381708353020489202302978932274671350740924676175283927126312549309015700373855935891689420097384748507195841730743700419176150766059210855457108000617685068562733907852585560084740781887107556996061064512608025648837399442840415710501882065427624288430529510007355706649986352089084722157565864539680155582670403822303900361183650279262233411067383747370025192108240631171835083873195063511053959248981552130226333953131372241235899132110309372685577878798035298909300700108631212667256694641164059129527291050472336803357740973786443565466329102846171970286498766862631398729322398875520417965824008818862757105204524362097489621500153866926902367135818001105838187020441001704926827040747981337571254408964766799665507910804242592591341035080559070717271026330471541455833300115163004398538613107544252951964356559672003452771947676011331643422038542438644090242489963298701733694864136007887481407710218747027831612378995776147268885599598638901577021924051648474571157618400703263655648983446721746259618676628840548603279312510958169810868659063863030684095434486464583171923277989597207271462375933758310004974230751536870989585342397485858257724703574702388707901362047474579734995887116856867744592672829319931986287702684293980374135094712052142856109079297070682274297823381590758736567683077136918542885428707445679144157899736836625562754566156996571668245604498268385659934760104722859299617360520005843796170791497656628566178408601469267463383049205460514568639490844531577047483822018189885774545422483269314886792843925154875022833179640032134717645843146381328368900946767006856003858588182082529532939661301787373609210640531844503748813517509208207538583525895055978569042190900730758473940590935661935088971538938229933506213320925094535727095727387189294076016125955304486894975388191360834812804279454995649533660939790530417423419664601662143183634552302256123211275123949836549497493714665715097358743301178603082485907368853163453486693721069929047792149007918026709359941590309604818117182575205983737222600113664304160572171286891925954103635668196262695495587696231097504258225063866893761084906772579820596241796310716216495098314434860530444961526303423417235366753697169443236558348335386582639724425430010507185119027319250733289120451992830626847752145760378562775498847695035734806405780589868948879268253908231074458297911159950412159962871758045353941277170830246273470619993645757203627306132686718318023975388566084811335338765609422449580898882629785033924609338983592275979278607008721245804382254129543706415357037851813333462133843392191846508863064228133104732018138457842809133536967749783216170811646845313511683588459498444550238667676770149173025527237559580562165728407524608240995195716573210781808615678718901619546502785988120340726896225656206522140263374385376347082861163497436012159923078247491701816699587755335613522466842131959514252271798195703041833279552808581280994817890877034205694935745627917241129179939675029056665064762320435251612761425434680925469430590274015963754844728217950367862289505407376082085280699740867610277231786979519499342216131484086353756154909696982250756360622431258832657355694115601955697644876636180139584239591598260555780587047915308645686639088099574500444907673109043112385993007778609301263194716279725320204475994609177664277218652852287743525559645424505210621428263672732177374586686455279183649299197810467624456743825681171416273830240031164918473941466817447819826041789071399327693909655276284187053192820943161614773451741250963630075356835468135477666898259409077936738789440655575211597697953852847566183307859111001400041549164298555691156670397586433568412436860359664689055176393361489274899809391098422991333777285487822099008186013906280421013028972257745742252569193403946212354803782402839518777937933093581800426902269421961147351146174981141189494836970536931159186349630136072347201083482090555192804324750562507709641919922905210218620510246831486919546736513294016312310870146043542388180296849168767302715597951175984188444388362099946686505671348310773611718224318979106115264903561128321528807370121844129153080187815862161813882961447666304579221220639949157924765867857988602126619034878924796138826374649531092426401038505901550529740714219618922355345970028466722947190444231455168873446175647621398699807488160941391507540344167966454689437027543206129169054302678506105899646872177230920394057484914719015011097138671601537052873171703421612019529203401026512527279166048585393836245983669442634574122944481159083054106048646038902753667767557594090449371503863204884454124623368926345517858368867218718301187602401753565969628692123855643962182226986968947866979784773337620641857450842590590027812661762112153983715126164785444222717795073314905037711176766750223621315269665619771411508488598202149042539677762573704453279400597055454156041851534485531464470774920571157431770491557942228781658379732318519670674189059060723791823564649846609171181445847180911531947235907801773327874774691184756741107811089330441763347044436682435181282709630028680147414989926486758130066438541983878174987883736706000703616663347247975104945760977340898275855936896747013617217480295726846077725172312477898853344383222253277760721632512615073861495671029125929047779778758592775542874105917892809177648455469173502848252184859078097971604104560602632243920119051070677707829018194481553077147605067411303831727118352753508886536735176455022620950158838378962183847999700606554608847187277005167956510489905769027124044481329196508746687536547203377216584197447629362222759059175918989475150944195507167491501323164346233340200850816697940025774142278659452560008463902868726585327067228616220040311407505749513625156436948696195546756997965797382450956329328906906926174638112785283530818853605973784848458126054206487885238616646626507087210149166155915377032942829943730697577779787190725208965753676860133552598263662069552559472138673456996400048256398899766812728174726194122183135535192894209169910993692577440298096181827983071519409454853343278324655945150882596280282393470936566496456751398336111700880809207504773984195600137717297427736404348062543156791146475758570506822232604896988525283207341390900174101705378458741363162453961833231573174002343201729244472565173521010360151070166732690031641693339352525881700260459773887753947453930695753412732611734694122185926956524092303416492281967518766243900511951686032672685734346210400825506908837723017435653871414181514362301519647999851983502649100216315386288715746956457675930744774958440265140773788081033412626340796608958193279355038353046885315818085989575053101773329594444541485711057608837605646331383308347675356780867033442389316857365851164849301229278869817579093909849433530418480626722261574803487676307231650801144114472772504647302886673896242039740678569039739540383469536161972302173340137684254576778190184951523119702642203951902147039092808846238848123308198564512263264796888042644389175190249443990237389773829231271403668513856166203594677046820556761805978085671881787564483734675035299531318573730436994876829760615903423783830894036038179052305446436230147836146338508474806289257382039199621646458386407171027705627651730448319354461233148284987214557832508413962231247977678988914362701028513323548794593600524259539506087628240310750416008836057709745047051265076679206360213567550333318986660260540050549397859294780435870916705214053718085033361363686656403704705894699072024033601622993124219625742750858060816963757388193796740221513249379074433703815385501542958809886299209934318252721299801707199871834472935562245592195718989003461265460327871949327245697772123113054728434627576458453644898490081201291015096760441391585209192880098653859547378290883777464449773123390394570867666302326700854197146347696231867031183516087029266780089111041276217263438399208358968456211670969066183542560736056386282573333112058154620255437850769789365081269793974599704739744043058500154269227130814809565251233915149597173992371934757548710753322039866926088484582295297583981692342298509285844128014105221588712321023540597201848996291538452123501842835793901748616359921538730335668365664366053492483712735725106003744080898114117970445079003887263008280892888516279420041355318705489916665124282936956524861456751965375564148953351336939772786488601480418037067392365694685659822957178230816228008011560687737781098897803697320533493297485645558175507415544507505456322878956438988815907553603391109396138468972362217893780959100831077922597578429844644389799815828410707731692696802720340887088896917947557874160560796893416826584675563745151356954996162121211434743200711246846755874696202891756955215271860526146489014235358206234235985660419077424323328029309332571311405556083855482270305977621826731735872207026501617480875257471356494639816717484632542266050269765955965483011510631102818842975474169074239100888244904111903779981522394652873226820735848621762401279069715537021296517839726096714076431549000942507999124952875860286610917850588753737866363235091518403145239812877542703063039753486248927107172584863464942310173150276377862829034274970741638700569455695035965782376536207683660039355434124147849048696523061462047253825635270323109940312412057367372078870130340928078095596543100796757369547981089843992708361840533332058568910356595235823783040782500373517796142615388542438755388607823723284075009821327520700563532515476930289156366277365612474453026504118664917241158611936412206559079204474379058681836877528477347383121017751396665939612653843663053389724655285845977801009122142364578521714807621032404000871430178240086822292501838159851006453438400906344046633538452178014131332602016389611310046026601597538548117442653526094926409061846553762052353697518661269092699857690664269493786326674223420690371647750591511662665930100659040109652496956898974398969663160593703070356132388505635662280756460799719008892377479818599708873613662408134484901302829339116124123748659876796710726498438326089502309258840265819794510062113897974122940153328866871098701697417229424268495681145094173217808220890071471395179946610223301477964859761438156270007979742978401039370351309383586377626703449110928425533136316252025668655696179907363467923792034034141806262379775164400220124438293678875570346990784478360494805876954682807209279554699028639386944562075295407729694063987510549537352808563604796243937978636616196289655715715207938484559578619526467979696577439451625420845990185517367877886039454065575500922265443870672452923780117204381012830551235744682210945140276201184196280349251612131767061974959094531916751122221013102793438129816221746845615287315158666999163755326758849704349917477293802704426528986500714506025130228609771133910560255414769670374505449160378001888767751841350364928480449464554507374544172841357992540612817502567772079095921319666581736585964352029529447193772645002208198624537244486762858379884228506206377731419636892013004514016529103783266320264495440077863418221316309861103006758337394233074939833198181724561009702502158032052825706475988115374640476085185255078607041211311259536192208194806448142790131412795140612420464500523489225842565058420280382172917732259608808482915547825030792529243690503140521873896027109012069689735643294287395928069578530567828891573493913710793902406225329941696448483663278568235204232432162064186494207214123230770340742393453932406321919629814277485675996325263163089689932522306988349757452998406458849572878151809629899992549759922028479644748476719722403351329437034540516390444097662200884401985000800864369970516169111270022562995870226985766371064938476454154100950664715439090133391999590569808143980478020078617851945496828432205550941434447095724227584200050352645487396377027536203445089551373003770766484269825953894033717471989787369640855267448320460948365849193940309215534418210480947811647028969663735949510586757015605311483355786877058174592000197804856092463213587794155364880919543386475346604469798760400645272637872229470790364485506379581710042617758100802130726943982243243750052634276287937459869880866853090136686028616002313427403146069776261765478957741982330408506246972342284127253458956324487198445228248145577940971424505428979000074699746188615216130388951717705593284334445815267515121745734686031644650068615291297170480745666312347669826561728854088330742892067800180603535485909691564822863179021876794337153834634383861729144545951956093177814550863289355861951550033307686406711521703393521741869118396876024256129687033366471095549018138168576988991217128989447246710673350767112776391338042370362915800337011529417369517551234895951978038932992873913436509969780429624884584409775142456667318454488923024371256970959247107542186258635110117528100239890147573226982352272852986956827021255679412833832881179906441425697718592230889167500593755343755086274269948523084416287174918028282502752816814454772912954767162705201695192050071661892096235565452538033216846565044654113112126369652343703384240686130576649844054267137057523882252943089752030559049409294909350204752810492929864839821940555301445973457473728170927937323636422110133653687361467142500137671281853921232203186875967454642763149500021009127380426436166507086512804727777468280936219878801752735104530857522012775731414234260761325669617130378524164685261989740219500887887723953249565461301877056723798062889415562633313432181615382111502584666111241851003451680970597634615147704023599965297346158042812710775756697983721733013826561173607255571488528003457388148023724819857100718063303135986461946325224999791771455507360613694572267666062909290922892607955340327021235799928585285522181129868373385414791758632670223094990094895342346327894837665899503607708396459771295576133727468527791970335957013485957377674508625725210273110673140889152814147311443059167093717207685773141624661890254357601411496827621265220364153846210312151828542248474233586978168393357442182994589617021621399258620421220070027220437974975168344266466390447983736188352550537899957694397550882813457991379460234441347072974532247561962394583147947835028158870749064495177639600904302382698349636895705117722906128090358405927562897727778129259551116088889280752288748257518740156220805842147778803392537458192414546193600386635466900477056146357056721751864674638174089763740198173944135412794997201844328487571176641874446932922289653944405885749408744970765209608963547261506271293902860505690042260043329257190020571454805752123542216643796099922825964150371776085566709056146294210299727104825509823307456144341394870384264090302905406195757590610734002709688442371371726562421817918671753732623341886649800142804576019850255993142495345533181726110542681035523665049733793762650104566454816538691921781590350441526295613949737554210284913245764280562739277981932651928620418254100554309477450816643057231575177584899207383091568287289537316862037047104132461268206039942962217107941170976122689880423565528684827791458412626081445372617833054934114337207976843285270953471416520295104937413011037810962074079925760972098850146387497769078299338213264096454453437574115694048539847636913144368677837159737861001346478033303356393146909293418498484513341328376060140654834437861846673869540377065798333077789059551307300996453710324543635163270409569051714236557694784070511367630745024868890063137745116899769149542349071589155837141547402570924873695059099962591658987530263439756801211392254278811919868249293330448841730825416462682706539847020876437643682275392522428241557737577696626081168542991695265203923752986320521975803915152696923068874506072393619551282520280184836190582636792934583129799954361891415213655469987492395167021888687134075658797980780964332424591675033892318465001045318689210551678570478308551316539911666298313488644090755844828193054301684272780204356410055785059325551943461650799680944714738398480612581301341743636466508672262198108035925408400536248056979984585179407404872521418173995681541766417813993199729950391308286079476511660345366595274435811801914056872936915509886482603025480714981776201126085054641002182446507142470098299164227862015370547271967494042712508214028807530458625454222591632636077668111155356045288099504473554572680361148450468573997599389474414602907775014269808450746766684487740314860493578870907055234933143245713337069361190474562958641260190150486711126095785565572410628150782393648880517104323254655659092218513715549252591307590559100670205342739298433966892849770583027412232635018230860293623326192221451695672423963879934901886647942717627127227174071070571367450091738140151773600372306543493381201115732412370408300742289041891296900254894369629023574808317189078419416998674255592667583823549947666837997274813048037024012646030501562261967110371276887516485664958055257121372617099621568515361518965331088838561564811861591136305564545302005359541231868931963936287376004676661888858200838924081490987680621150280937426756062127854723340806090043517584004234159651013675408414244196578331148258923774939205953332268808767000844912287163535572534049410374995426827051870727962856816793877592748381184704533417560703777278342645402616975371320825771580833410557408485221289911551679265498513121103465104354270968877831096292515194140261290546594063613904860314738325728884131076297827029009867680788661669784569666328334566850633302059804297023751751074877706516864425892339049971983541534271597543017151854096638715538368109241145412965330334355322022932360045103734091847863158903284367290652460870556468294757430913736693786274352612893228775504737498837237386070548276027950380848330470500733448324816903920359868931022041326116093693293260392967245446634126379513781819423663005051002284138901876274129799183031160833488114019707308840359658263008080236782668194604204977017002966420779889426401964373497676487915577238768573923345581927207918245584548802848755758446798652294054449819184341597443333116859541090961022960712064357966861307470664628251295031737162793575829200857245297610870215272419857991202875875099297316304085480008296612005559546299491880693190783522191950154299584961327744435767757724936194781420066741643120755055327437671963212874781272222252586666268346754869210980389170151202992879556331827975406111581387287673247698860145350638506017779013766623217409108359033274020114823142626443507666829117204660476779937250220814730532728368762738797381215458560359580782951841704691439267768157672565707222801899134720604683931491305924769035359945738272956126752166806567474365306229552499416990159750285612919023062526175194298851202089314196457448757885038052296057668020539305880880037557478288784370236657876003540143102288624986439712312765391628315235563752137319989274360348784303170202231536564506216422222970289110413727244441933668797575793296279537552886443711816852578077891883890561945405611040031868265717456943655035569651758401413068747940120172660819586013565444796326862782373044222983752783996989573847001108081188638100380926369079117886705151367318832928515327759304771062311771715474056723800774976042615545968406070202315211840050135553247035781245951995731240760486377038147597472946624908473956487331977457011461519458490269688915826247584139382902280027823075474495320036582579303987766587005273626384416801657515281452862317868102358012908485749576532476633712353712583461470468000640853021201520760860630339532709910116686575342932671789024557486147608659226535733225679071396744718436199470555187849950179239623216120110358531621950071887707512469204430692056560678608933559856109895549412294756623048276912618067119839221063445571917939589002314622081555370604956822818767992428671034253817823925192549436161071222745719439964700313804637072147712157825359165258551981073592439466352469718694136757725666520605782551903667543894537706809298059984943230227645746490554625263589921020695394884492153657747403160366393235787204126417972447015001906767852950372416104804794208934217223012599737928242242833919701740364847523781531531687367648487140014400058098920742609992995849567411321150933614166254328963296735245354278302828499358582748997230339535310970918361170899283408181354793486202227283839773277457821779193469215693533906554041195973623937851588548607405202902909253924539868409797074961810268490281444011569071439852013952334659675082183580384050207693084705059546821737819042830970186354206348946334773688775348652932229445975255661809606179713488165684832116540933280954537280436607210794746704056668393420811797645202147353556395745642265776564687089111285286667281732263755675306135059346735505692782190604901799962116189130761603128792976730225265807484226480767762853987335163154888929918300878709667019469098281957797860344456425278499752630993270213722745528819258668200291340811508896329217049208997027854415076993158239809124845420354884538302568411981838291309215044484272210719105998460858256014625254045085173626864094986692786244212552283116402076647181022498927105977077658266953641786939917660801205657744813423449490895965356671574605802150886828294512685678508297576315916145504032396072180946090096903106020864864647586164174341241761274245438199219705796793310202795181462391368708831026164390669789453896164759930490138419045061531403649496778826161585881483546843229891699045657910121847795533823050155348835724270608257950255942953434078034220153817953705434270583480448326770142842237260512475612442187223479204271174591051714623761608427740113921392624385629652602690874506916591000151423758201177895098171331143155761222469456086228123100836619713845114650453869010826982732240458928925350695903012050397032641962752656614342913507924447680720592387922876374719739851009259239312824319812285435795206352016249714363610174698830487186150677018188198056482190800945119977888817770616914943574915226156150963894322222493512008351794539721733000901271210612084733413140931886041647698527876186661077240006813878895651016179610735147805204953956989725563598951129643186417552973287528121000461178614208582765649982341736791466658725288601414209023576662256285241401709059241731235058653979798163665497139715233117146740689507615259811202981375584617768839543968886783380656060536459900410991363025983989590321669021059933295217737341263201769220070401693621588088130805367099439967072523916556394296449033071496024926012127817880462462043355086619824972798211217103150358726435545492568312251581854582458650419837415565939230994624128718165480429655593321293575685534867932895212173101017100808183771816339657701324903152397778469456679021105182960193591408647302742194334984292604971292914796638455100267391874849812476161758930382019589035759866744195611134982003077728312499517184839059970721292091001751872542063851165250499091104636996787052166952427829194252238330558873695992167894350092361050277549606672567145571491111629167435702029680010704334408791839718302806187747791337560528059568211874247379083283122916004994142423637131446646916846102775950967297132751141582267895071774349269743107112297676446573239622831083557579454682602572829755907219862998800750960143272221824791303705141558876636644216230708985379037737135532987556550238711035218051848882780396276871166914644110011773632878808719518436978591765353973426738876045905238165999297550434578209543888554349559437983103225531331026307318698171841028505182086868878558765973323430988216507039481633989790195329514674944447876991065059421474190930763032657965973892065849478537410444929698833594856690128961117159847477130557819698415994900308597948956689532969651400520170558997537300769468035322081157396267525130594124394445011904291659223622892729936539580768710956772835813193405438451720641157286450756286603690507015908735430576038993661187595161041581404476151631283270536434074660329957524320557567067189021178329195383868467603267416209474612528987731477653469453325067378386981604988962953059645894324251500989674277632429631290287394404448532579003922806188337369470415565639954848551512969136566793179639433085008231887675125733014049078522218456143494929659714419137472812437340452314697464009861844599380407012112280317663752325394857902191758779201910286988620176920685775770438074354515516924089291952047383663877428103249399894788584891567251530077751444483731675580674343215022677436826340620525102227684988222278694841148422006956433144575110140505685552446780549771271109174567303770918028400832147562316904365472589097730814469225457406873443592160411573637692704776763665751634372592030385274649506433842999970012243607035531280176483884376289972630830977606792298244647982098875699112870062794820749126873350037650372776388067144763259740640885243425252332777932023258567892091200942663299149991720891972192729236721954986071562341595224408618618809281517284173174444996419480976999467315417843520109834588415273522513705542362434715300426462192838969187974832596927830259437726194118710127187270728089472706527711209568723086518332839307512527841371149481791473217172154508067216302920001914664724346555298996506343963481312862036077277224002076964402677340215695049301263007662795048874836642154917926919664008109375239241554419443017867613693855851181613495961638124436443640400674683078707010450268687552302319712890884189893581583181770428041417930479248070762488408683065336724851302126661366703604392993927500307186208330913073792912208171676364874796300670900588971403320873339171810191552202871758726692084228522864097044976829520013209919126144247851807749279414824776830071990263711093992027100188897269980024443744296867900482193528679501375305429570519947153213966511417300885211582415479874500348743862078277325519277752463996708008582427115111920212789419196735556733026988064118575550967883948862979601152433517769665170142070411839064572593483854748778645501993228814010450564385621990265637951122703349173224981785718522343322626827122826544294865511161905257013108920803134091223152494613542355231303552555430873150628991169080010770678589859806792969876165550006755110291963859147643087807767631825892144198489501619073964391793669241970507798852774289615306611804674199567831281695268622992649313223217204057603113197133264055363697411428849331042899250370476442012872326941773658888967127509886776192416805645775082734804922766118512882370332218363865464262455977093014057065868811691231567451467666117704152817186097672027966120594634881369035692791776194940911155467493672126227792199351256914557644020780360687440393089466535791100647946174680674460628969759131633307366869473439699291296245243108134758395224895669961030108184542724991806288421342675760640924890245790999580159085964809218507471710014109321520272303366673863953500984524988277202835261578259881775875319334020869228413331040502154095814172186433461295322411125840703902352865960742112930725595208661274112932439996367852348969404795863753114684309578721437341682071749268762071157823279679896190478059473029403275424900234399400213292702257844181487531596272588229707287287384165667254635489397903505621751439671925314668991704185357788690781186971838323630146721058041591128551487352674113985781129858387556650114342152253593059650893196017582026390185616093251493097635852005994522442625968010789531065862684559230451669323050065213179085577095754406332668557795332492012754848665298623144901127143500237419493940053562320718161457952500040814078017932073750569713956967697982742781057249286877639057041741124929200400324592783161690998654237868725803171152064128785863253033854265961037244940211471117203235152388990767293693660524371059543551907350410766352832746791485133310429147308662330398964543415970431664298836475023613323301900768716271282660611098310424251477779843195269951971637059656807836114321648678062440922745673953640018701764406873821943127474661885238198611223227625022393918052550167619435276015166626766203775929853688490383723983920323984554672383050162867135323318782747045753159896979923885343966602561674052313569436931086436663829122036804488415836503237286190006262458473777611486423476432427855081468493317348012020578900176555535348106560788426268226646873493660497374933660749537702582203885771711271106056734378128396377541571847261098567054349049226170778442406817198523463652219677450482763166475380556118799457635953251642526800273350188051302832797620590010182377097996845513300236776931199111439346761448614547411985028391734417114719674652653817752179881436654738698287210605511466949002700163642128730771010039010411227475730044404789051269902525576069751803803901824205556536099221418917346881661379367655768711502133603761012214493325447029755903876972002278111673444101929912162579794344739145114808274493321896912055795676252881213060800553922298925527913500393925228780276397849836047167292606957014583183584004187367865249999971937699507257486399247021152067754227356094006866496100020578945694328158358969280270427551588021126822007763957329652960457895344850632052174056838139722088622432970975429605023093630434355350667726858575929156349332275029788669271743852597986178443125780968691492635953706927967493944221256698463121123224761316725347740043434089164248878756632342277616767259032139241100577712293647524874397361803234160989364368356255831824216210359179804630287881349764762070702755075975830682057953618134588705749738808322835796069132971653126896233782895358877882274912401810881195764360084953186808022386596020800060593948493735316480472185327602103246161650712605973434620924524623423213251231716141322841073876064075998421931991812324505978297189887585198959199424516623588456484345063136998782314326147766948494881633209804682677374068996261563339600168491861083349025641421547958612967694411376209847635324028553034311964185847259662834963111851562086414177505672320332472881485178105867797833243621150780712386989191670631664339395015239004694959680611975780803431545421616253615645186410133111603874577536522734699012532793020976604664143991088861319021708801892518826457885073021127389229302699600850304745243082972481750188086197812918827374359199117679291756026845561190995510936000250280573343947430364414554696920598931669661645028298133420063843112121349373387239331364862190503011715469789586413533805983051474735876385899198426708841702850795408119141496799086611633342062543557465959968263225395999364771660394497687123500232561896798874359190755470120150294759102979030991324202908382759831944668220789398862079507185866392006127836445389149188247936602828901042422559542827519921603549939452312840815226056830379722452746698090470996306700208080932876545862564400437715909340727102646734956137622774585769862030768361320531994334262675417124008036633651501567044099220348895297749705889284245636460448493225211409523154802646617418617135516664372000825064152818697825572199513247087054697529696811146226983682547260758446052855932192238938510094796514138007703589149537405156519824299246331879911652130719828373121167134795758442079724924198615595043893273028017629268529103316340293528525263662818427533741877724773478828561377083486444831310806524351890047917373843722933963753526877466945730775616667372266115697414519598332905661940265053774248037786512533572913820366851069438008624159176764320843474722511861264970116822595245756529714836043103374201215788010527401113408398821704769326667442843997881957840037514990778935160788027054445293322842073976071183028404296925675509270535908652503969037236555091167669872541458162682616341969829809376674210731951292742708809322159615878143767556675698707063599440341473039213539717651733301472891663125034630728969807802045799246152994829892794396323156810734691621354120825862810387152695061036700871313039549510906191720832538682179156264068201527801969412636182977178539347761237351446349282881738633726226961659020860199189816981818057776903939996912710796472907853203058602406918945282212297288746917914605467138140523019816309527412391902731535995742768393540650777052835154341294254130732621963488937567334595277199400665057192195474049917437119386279893433359178853778885271119991545455961987859715288557037687085255265978935011566643228984903519321589835324751603379003146374781739807578221438923545932267231852735915228488609762927217399294834015546050751194427301752128708810193668465542532660129529834584449880560128261301435071445962305771727594724418380104696759303578022081993602294198585759368918384961325804943293615464412029604479680199545414059425557154864344202400124218452586991046296338351653756451582405610675418630556360835519741933123490961801933366847495734234167591033720251081966748224514538221983148715353071105804873238480818861905704266326950010643172352659194558843086000584296214628552764866655815462137169249310931458811844547887454947769515313851993829539931439172002877462885189424367194519494522178948370897465146832299486762560442164213866728761274986365504439884302874110030549339580461126191728648580454556744798491627547354048032206995518437790329270686890355870563566086583455028712200870834050344245351164180934612067590643182416681954670558009658722926909669381379151109267866098050117320392988779586173656466545486274598222912936609426474968317610551063367062032523586940620223819621204987209305232344164063446743400045888278535296753057756129951696430361856434853975701056131525169245805264095648840268072519067766370768418488620757451857886016354206277217168622931353929254824730222577541521758871495812312014957579443272263069778256996623376562820754357087327258954822062970643087128793241550611452981326472462186023095451730864740329397764266021804382510000583841768165032373871444894586054221368935882687079503255957507234539053254841350190566543241008697590336408124400641155824360933249037023345782948575228890500256676040420247908854142560410784044876988209218632924035445776405717055751003453603043416583009005100306554972101989461384896216440009606541740742897593659368593762970286048914674007916914708085705515162366041568814309053522070941181482643560220558479758368427374500754740330795956464934381326786097827061932138411326326868110644542178944327966378530587456306783712741540764023202317932573394749653968485569905962269084726077200213695851250358494729661245098410069064426033329160324546778677732464393193572344492944088918987270423147626056201817383838980790435783794340008116919965370399796509949960216594386012841487100813384205321450293386646154268830040805121375632092369980021810698539776195419553835350465016667594176413990097300883727618363332022329793070211026567007357913819608952828244273302887201935029486657831276105390017257222369627344178591554753486594353166954448711948267003631452106694945573208288357161084328782220875030126349678675150100744361713161909451754136855361549658365456587306114372255531555858556597992737982507450449919536716122167831782846385842496206359850754944970921997937496458764547870474445954504415516785009777074110423153718284319491547553852719990165255496290852697938456811171715809192377293378334972844949933945566650367754110838988524263212676126690013903979991862922580646479248209484752363670773360071666972564081270936066952488504325234256222475997550827615056643308430823661543509524603510355538336925186407373536749770448366132038947428328041355786453641915197592900244223794855660587910210243293409376797462313790893161580692599759633663047210258278394652392077620696471676714510126799196110478894880789701491863866429463235989787344721626583115729230184162152607130775250043222878010776594475505022686539266724348481455678909815967036938373773337733300603699521098056939954344527280018205282159623978138786350794552321521443524931114848392653257899296748640668520599036197809239307501217834254593570132449064759844488126989804189055098282064367376067748253696708309853672460988613972059632245509229688753438624998164771295504227020063766337808304486856726873166046203557907260139499952615884310820521512932447803959899424537987163296853394275972399705158189836479780720896424843172322637593146806231826441798812413339546153458808313592600920706031639864968531856737239282928742191081587530152618756631457689249229501547215900241304358033147623580182756194765498347064686950403564854167363940766295387969604487936700187469393705192222516639926003045293625398726801042690723069464737146801477525216195110123282661298564818925469206719611981265589109375978654341909958435123724112178420080446822264596041544725756691062789637053340534063009408380697763004865374519917384869100453711455309869341333941810692556247406038285771340127880688454174080631981327015685856299759667974413232545836150662744295723978695352238091261117624411057797921009155874302290035305965764252712872476563273362400997911614100167785257917531630438326796457629653177301760061259557746036443948417705326450893110362518839206388556560417428322492085971497624853150253840191072063888993954693627690418104164580572918246355176434707360943947685522656289906288257141268760244251361509001565454809844865872006832396585761545431939751451706678284937451193332248795628347675917718027544544067563542524755887605279510427385478272666100655159135740801499746306154769866059104778195741095470053212560080420125367897365047244685433784567142480808257380464909313356961923634108613142023489979707019749029005641034037187709353485040223049069158158076815654061622469009606596890694718685576466799828836900740190183795647383894294184425733505674886664153875251392269724318705637439092384978004505883767440928936504671222051598437712866407058353256806669589491266880441896470261156335850714632585055272992473765554804256869942935914353023663985763856658604586091861889267793374500704495376291723428872677273320235083494371756502695430219522990010308790455761619330916760857496109756609481262876380168447658654566146874024260994520175245941121652929206151339789788340600342645264166216837387672465693700257976552566492044096126564433439408138162592119482775842041723507582349636665211302656198940178689300528847422541768873241273203319361638417159228729767313490131740909032093894361954075222616034097967131527179507847428343055570617529140198174770270539862449384050954460191376424925401341948303607224343618233701416035177024910512174994755424473578565899126252402216715035162806986977892992389923004123287789610326237213546694704956282739630059577638916775426233617609611214424571496367381647492474035226510763831015918872679915038134644920945654185949007139113425628597089905821340101270009415252669299073190945598046887516908120942503527961746852713673494641456392728381686227124067455332289777687580269181197038528788554032743562997859518024181676954415025352922974928329040736474137554342785866817740810100230073725527202548064082816386330640376473949026595387080412496258092995210799688754659971855533406655907350869649791108194592867806544843786163656499156772598599232240988135867669053402846301945855746212420083504423910783775940689765014027833086005404000208813873163660675469003101621253952031875979260538578796147625036859004523497308671583568981087344599992429811663351383962660735948648711824144015078335065979292553481665703701829528038198133906042880707127941244241471779064221204459454960795106790453311297332963498212369069668677436594444017380380460757582171164654501596591571147702553338381208055462317209623940324080530183789092278554745333621254196760239909974358648316512895780475420565460777737259307174515607461683611318268804162043324890946626118633092001883464042962563452294591303306251210889907192995604748808086296899771898260972656935767001126471674484339326449672241267112361531889602958410671385277629344809011189779660110187860670904398825854308608895276135070652375796102076471543556357093225562356477123685540340691280732218204787425899190038463481728718743062079580258429081331814084074986502876232213290551360362701819940293375169046258957937329348452154826654236480434830557794969037907434971188722311561927795773195085777089406790493558167436282562446480680433898151143333753424626423346209347306750548701481465695720091522823272050330586315350374095013969104023244576687475927296970052113586734067287135909997227769435296399729410228053771615927049435204472572920634558921142923529689897448952425700940980348210159908687076485697095022350715721068399209716270243685660552319259342674093196516061837530583297232338409771316915492532026453650980564507344896155243257223690315601062399318577567825806477898944879725967271885355982821543587915035389120506683458782342595210518153406888582493386314871026997205696647974407389911446106992875506733095169753382284699580577896882440195204008278798109231811054521192674874706098633827749744145735896466069015706253969862444959497299005346168088162045795035531863890982214464858362003656111628866759089656034044390818830153457808040669183592537584519394133906331412906559889768262526578979696478994490770209763891920195696317156033642206878564898490999727785584163084484293249347507623607258825979656008666688355647843032869000341970254395624626559810126067399243542716925029410129172106566328297731940069940072671343407176347187399167289645212168738859648156302345757030012336685729734427770351848615933641492575544212368748374492827566206393159434477784579735534826891333118911007024352734123976229983184186982471588679864434325415662568218771408374396692521817884125226917913308942865352597173236445313062532723077996911636443706272788000871768269255575824878265140228660536776768474990974384848404908634930532964777226064212231068097025361674072193797715188959524456925514569663981270482609366450415683515318740313871709224181008591041488050741150396008299082050115690183498979898529050581404388279748433026879713994441519553089777229302696681800538854913810188163434146027159681408816192145975317000918570091310667828383884580989765037444542914246113140578888210655043203349133186745469475697850161892313000968625359251797789379310712800207167217306580427708371595739695642792632905199112637364925144468364686317464239690235608310713643928222937151448692956820347149278126192346418726494459706022121803543871541852813132727861360566086154258138684758835247697437628045712506975253575399498300552513459636102402658848296986100378993770362473154023592132584793559227286254985350260302049267025957600176009672473675706108803045120027043966270072007958180714771362780805768879601177051237100530546045726254652512617101215559873174652431879805794122209657699093944067071716501182913492049660238022402293916391598926121923093423268831070169122801010062262298636265034471883555128115761569771983661367730497913191205668181664256012173475239756760396353515327255131494131678438303986564411806892970019385742523805556369658554036037954869852959524708351387894363765815613938083958247077477487826651617378850716110824756271845915570105419712904190898299344174931157003206017501431135620050096249083887603066390573977407255871135506723278722067099611074827429623442253472350170426043070076088412736831379499906736851256553290440091910228825233213456775644914819543129876011823539417736748485265572930187986079524092084236588008879835893976513087962340374041211594435317403492949278322325255706704437947704460334461353703585824134299261938807356345869318387881362366664966529662180247985961363594053134943556958300851764411449460441801977048313355535463412568310818291229201336119367699887603721410796352160385309547201786707762064520433470595430863892843463273638235457393904029821453590448397764980327136536149348563200609249239892457761084836972237035633696204370700802666472447596017613308991791682741398884984466704991098323276714012556723408219935291373010127890598978524362718719526695985245539413386332729624388870867602956606535327040761955072734482213386444158535958335637033126564301585104645903411388205056648712636590136747623302420768478061550899002420823165923177738140168751768227565370565488721777033475043604264240658512393444933930628357893185405474155076732074967025631918821449105848372363895553931422871260808149220587906257831192142859157459233550198015224666446523209561207851937518697848334007904236871123147420329059561669471119100172657360361735007069133261187935195359368630746441976929763076709761173875787861874803686197956034002905246357798097242532019710811057908482448830317685823421516084335989498610964897126941289111404640880451351501612052613003138718851901883638983466560753402701211549730104818312180534799253371348518747944999727250659007711007393243746091823367232659577060514147899568266051073431420948086669289461406837822743003624187353945145800126002516590693543634063454614879761488135400005539862833599744946337412989185759550660835727648583195792713410968646199932838373115563222847944315462006571427191024222296784720676582356770574451873401083359601730342584164644945628236329425776914006550576902259322809736340783326709169364840505428076863804039933673399993618686602132372814533864158854128732064689309168803708001966259697747568161899561363618321687570082723771263202266950301802077968840398822707270632027112538522678840624701135328398086666158414633925736005947204056318422309204272677474676414986747248036925730899462121045308555604631958094907556625475753564804523295850532286048391872636964170916306595731424984027166274399271035735346942716326143882152694179832979054914864304783602462240182829253317168150770754401874818079000413653998110267144600720772726135795790263822166268647026564674247124803454690240843044493944974626103885684316174216803077222931317496499565798293705948857127037018281864763956153460571718473253952719227244866449194340625729963501091919436785291643526700581068238945204010188447116668192249516794900590936465068355943287173913418394454279384980423744672823625436321881212235641359632284915858271815110238914755836424800057147304557294970637007976915198213733515599666561387116673912074758214186891110649266399703270175542385933217782843343778184818827467911681188397545094898694944641951841117184864606833004357350701053164024058124092702628041513496156650755861503949254546200682380343973142251930504481153869745473152847589290068140758215160425842839024886418978569104791565212768450518629954642236396194494902578893733275399733365496694406629812586700711854254201698572071240703244429256532039623305699232487506646175047548814810504793199645677477029288169549030550713775016031778714777932342283630404635814450891634914168334470510523568443518622069734352794056687488856005006692409422483785885023567969592472422399693659278857339282210874885219070188475035985825233956344917050575489670888717041234796701022764027438080534966082704292237427492046345365140988075815934044940104349661346907706545494212077822162124050139304475615412889474634512568770221822583314111614927017837890971318563452310898298426135857505152991316843651472928734150828891729823194612364792712973408929231163553611982042168009914117263681074417262170804739919109744612751864869728368850754596323205607778127347942041632246119516770155962816437377103059798627908465801472877503668240384098886285819185185870173498898168625923303415510106415789160361414747307370615293848500683918691492533373615522157050158101955833643802980295267222221050937542016022231258310327647049091262859532582562741330237996752175753634048201249954739213571630750218727525549515865619438834368693143375944660976277487059543789415215357541716230508550263152252433308699248660440848986680766980723569197913529644366791005165984125735994914769477766860103269201219184258388519839561584138665098330115100563523946056901318404878137329125502250277527256014126850062470806924004746916412418617838316983677769606159313841504258976665420973212369298504986183788223688830126083884004970399756503855028655661537358644738881252810830507152759180859441485500512454867432562353920028798245134939849477878018651699342099491788183846671388523890110787143445892339925401775123556956095524622739161769790941299998004654408727627853067833455455581108299272061937536593922159369441670639498665255466521654979492959925009461671456742106510758948719641331885414070517547167117881837822914651267853771839935928340465836729173848304561542556135259453922181062118103644785622212381147157754025974051253843710847819345590378414437940179166723017056371854368270639857578812869842279290607589231206176614885579076899636385358728033923419087353971885930645172251769923317727571532295143001932869517114055261683918377263987781466246193217870430173021056933468691438408873932731438502753400830158335047404620577580669925972672474749734805936530469826840685960124047957277317621190260139604397979735606162185684037205505136950472354959875264332383035361889707577726044952386829970931005213152514823243897935485716323142020594986163184377952228234331660904706878567955584701692334468024611703199088347656898903485546118786322741689451619652817204798303347588343933244995853103641311277262642921503663209407261490937662531691484779836585669727398864010350330418711627726525084865692065890672466026590822118174923194369605172347540173381076485069647362184803114120922517971399477198998867825474356643131987172697964724796186466523548876874324448649220111655472398356324218847017550803860700907214041328267289989436851503147217012301919592152560280337785141645190903865161236239144814710696777474187525245893076094820557951937607812345178689505288238386801917316472952940955363301602414856990656813165510437265719827904383511863833919684278887892488931137124455121052262627224874103325242338182494951520878546295335486591805775088631539422581418872574359061118793336107417021997974617688770427485733870748511253441395550529101425801756014940243733114048412423556045042448632881506167554531108993742637282253445340763927603456253179671514919621068148289189197337614363670745850305236750294634144765138215476728473039919160189753010182425718105870068034641649769346250021201404269910315708510982285323930244187276813882026259474474252153536187043429202316956201292823423112892517991210641817714061508442097308916009940628009964101378557174072700922223329889119380241378891492599197524339187111359466081730819711970403805038864769900845497537140963400740345674885307968024848779112720851138849342788774770097464688382616257770743806167422818909924038930702575120067377059064412932477300085837810612374123693501490500387519632163565979557486660783643495204001760897444595708917458721631630599365865835718749223702649952848837638340881192304408345621497424216706244239557206801171347385639979868644039653246224367178718700831771279446146783016483173044646830811258813196207703197657446502549650773633783331619576458313868241872656551451062423122771242094834482200945987427313484686185563987991915435103137210931249811133030983597992822842443296099648527436977705213525188445552735877167878748006140070776352410493047011020301685687112711851537091780357027936865694389496953321226500310672371040254092113752232035155020558724434523963937303846130871122807638247875534427824037251790221687745144386773726543535412738398337646558983382744735053176443241918627746129677396314178407826740388414385765444265308223708280989859207627119537703543848517567021398079377080915880176920495006302112428673010230739405878026614208107163524033073275824202413204120553788489368692634330729927157803896481898946289570260040438453181355660855048169866440209734079848586516044289324167645679008938924767312594759798069298883430300112815853861259474367544753993192961313716524288936147591719274308582793159584374693843009713616979768521028403928008535676354783965797226846414974374737247851482063567466342166597190999175572238511803051861499696255772639615619441854632955549637248853585563519575229670948288582276926166605284494401790531599285860351279082343090460499622871850741415045601580902594995010593426278704208132443439413109885030961192320068121871257546419698392673942427140304767151114082664458255048488096291315961309806568577991707776267024683118386751362321442500309073720462983201418759197711107604087532628348283813418530715331377525254826616404279470995521542593421160709893087785215094581176264395223262846156187952014674870321090576772469547385944423321271918091584045440859381011829172387735974606654888074449751812111161204419619121098766431790210664070092292730619536493703111958540310969289583051737890481721696559950524810365900631845184044819921745167604709005915169780828378850718694454047370704095968142737446403967199845465240335661827417811557418331882098886469533305480371696049012016247409069134312852138603425057053662082681882514044668964595944914996318996461246158916826939805298881323230952606966048817052917236053337765197008342568761324627453921849058017610651518868870260415367948967604495460705903728329311954510677406249090603255306858019609560712222884207871460250432843407381005991207779014976288192449914064942138169658763116914509926122216991126121377209348088365532107806320045286118006225253715982510021405228755130880599182680293494847509471802564099171564675189372273822390282959481919393673521136452362737961104610144785380824493087191737423295009705183538739101913690857496488839060958369845251944048508154024361966169450932828770952307865748240023825977982763092502929340297999045898422697130955025041170128124342790756406386676370145025908450965950933247204945609837731526897711737029309285250397606295946559751723628421832811049969802578929820777623133996104297214936375220773266207004870740464040030112487378039880808043024804703677679380329654777306313819666991241082672422163828893008896942264649867530273354266944375889573226575641879281293006307037829583420750095143088514492405993848560781476457253755238810226212413238596149628948750385229563490246617057310915262551732305948627506196319116801305027277846045418020414621704644288517777679611897991435473690964493693197005172132849251204294056668450777256776844402747259614038386561229700411045194072239333918526883630288935219954606135143648018192293046716050354565022700043294254959207367849706890598330806948208817872619111789314130700667906873869242985554991937951346330465792454079571216980027336710295190062681890967923358478993599250085830663173327956653504160066732448675833128578075933660291174294930935390566014520415682795890528837376188325680344643228033279583450287160191178154569033993462960485416147289683130845404864382491325637427400397249595825882884756847530887966839949165793051307686802652234347316539403780583469839194777353678187356937054704626338499242956202169507086126788665608831515358728715063377065436147326420598139752946064816984743045206793469908313724361623604623287106623977154853558042162484593652794558953156235386523076242014853675761854780227859105745994851114413495586566146452262858525837409237856314116679141683659071354926570731390283672777867266030829602118557649725020426205077831494048961459099554734862263305497764618269647706663900300495388315641828472525764787291228762874610450694860806492382828104809955335869994678102347892121454141025379423088935536677005989405933488164482525782363144387695205577791061131287173085226027656474784354191760380781816317175278904065402263711090998368162060146528430535627379863527299660166087589141652846618779480031678736396154158128371945641884679462755892369452416869457942461876834944885568691546968206444846102906872430419677659396104532830728005520989276349296385214062462480972965994219456781997188013414178446986007880936531368622156629655573689220215286895678141301510429344133825035113476894259698840081410144191410290257203905181120857498044299560662285919931154564689850646507612527697298115002882183788713554190311631983510453215543712494286813088836273757121188944532716735615929930806834375830639549360389823411454465422867683970393008031489558297334274290116522693433942622883299641753876843312642439907524184223688130304014574141564694399407165222749680212114446438454577385522054634769113311186168545135508120723322648418672488319825729692319521959294580438185305725568275919665861443756783006080024958488058290201128287889426263212301946784581213293992003487781137600453497218275511757756015164017090429315319271146604970619056885139812268817935194356794307753329310954507076182893453059320350799561418568508014094748671882554027978554867551708289670273313771874527244140149856494462051692975934783027433102897684264584979613984139774303704174101749036215716131267886340472539416131868589753324622217611597112941189907787713640765940862436743429922648745586753521050932051987134528640771669710116885699885004200911328398043495847232600396170421663928600639829307180422306333484076662488927971866458158413436769831416352112068578847510060665598340937588594740359010044721250422993532786930595020837939275447890376267189414776689752756828843356879849053320773696846520876584759974966848562944831057761312563089874162024447101100568132882716176990243138546043533265337619269285993555776883669983152343824037673338326362762269563435789248933964162507640208742179671842496114363480797753165630134859124721932343177867617770943258689516457751331268177659399456127450118810913138155138233285465103573622576068686008511892196008337182616063479018871631737247121610313716375780624747259362388854344798689186831228582669034007188472657643216183741433596025838625550230365023633405230905415604620969066628510296796180346534864016296773548691642460916374026307584059904510107958429488143777684632941179618266434716624129716147530200405874169209032703431042442537940445719991751300558336846819576291927969597075782130654411331932763029552492569432233429116506429145240217088960983711173756245019137168911390365106366272129705608114308287193636914678808055511931595354059271318005829813627075779073718463611025510938639806222160720687282200084384772127159868951713891836775840051933998657956141010222132364838399781919698645395192973508297839978080969631385919366511164281765873511021495195019922468135041607976576657617904144055818745592266592883969818296177034794381651020716300737141032681053891142912632251753988339686779628487509428033181363444821157318095697804730929330110186703847836495403789492025196824526456652531770842784168754282406522885438201604568291098217434502411738588398313509181100919318084776487036998250275245968194513526586948797097217612201342824240508381236579114708745634499595462834113627986452022816076425334243971178126221698642528082799432528482454092911754675700768268785066591508667298185384448576217953103050295721355662441683758914145929490527353094566644180846204396088723886541741897742377360305808370981046273049134161774154058042712621474170771126826259844917368275317514311699377705705221195945906555463393598644036414366662411632764707015840826575802433414558288483437553991671294869204877660008882747077058476110838972624180636087099276618974227787064303742881624977401922542922775121054847217823359538673188258383602982005230088882927092632221067420785893722289441740284611445128436628621586605769258881316449373382930370727284872657332816392403521983538494482657115402509432442582558857001109414099372400546723850591057767953512718519540669865830851807156003878337091870734784458166934389942038045830656921196772318785535880246575659022919526611201082428887183935108857676745669147417980566387009760408102869501929203584373350826585100233064066392942732171848825918538100861031213677056450762386730010949914426429460191994340902649309339171453982043671051016033333074188397374255742216631689236354641345986747083612794665494389262752770397070746051403668366510353040378022620067975744903679446280042003326920282733194383812077573014354837437924164306852148134121231313212320210058910705804054864932860552314984773568866245514235784873313611029721203155214730738185639808064622928468126921728493974197536537171799470706500897682867865765129591884094219088178009449773979981280125001400832010315875060538502001776066863355721994570258420209963721339554310471814454103225588382459482461983752964040428098624229392333639083289956371687888580825302989209047733982189364082238840565519276170775385428963499059654323863035151036521296927719028921394755505360719290999876900876019855186660624346000111987055255362305390884139210954948802561596388986594065458939079056012347686311882613496265272971123328818437692158363164880291527259039023420645214736167760560568537879483528965322382596981014565473955631659943014689057116889461913061658574863404578231750838612199553647476588776382005441759438704213361422172642108776573235659861848585646711422042209012424046679764067159073742676575232847588630856997224878715204556066518048287652989676658717487049838997229820187773929096822665586124185633961521454976342492708416718479284130404796108949654220094230894306257856578883165975107002685669567119423625618806879634316940642020793252780240696459872909549456388321588617375190389912137154872670073236086544809485066649217958373199627186601922412158509680216927323801264208474334552742574047194548552665843311576519762687582278914735352704292914502824314913878690959323352030624399320961267177985727283247002942333916397731345074399156128582777003684037358052664932891890471454307437119173221139992348352252643804527031094150765208192194942575999996471998255860298507098867275585485532301376401072656272579830733748627239718779652468835023571698567833126257056482999719421940039390308250451733501774344772728710685500251989595509942627164296741096697970939263801783256607890753123261738230373564534318534150700824185225368515548782048303130713696130507348480292398667167996091033871378933346123406540613378676356229478960434626234375440041795381361533051722808132098832722516693376409748396587953866584797306676250608352841239532222004492090173060867361272089420032626931085910000860091577543695115450396066961087856198483731393578417658976336888040874829408971474465971982638539991317168907520861983821008874857855429512298218634795888664317215378846979881190284181707632742057624716350756297258751494893394058788260752804165406622742256997036291555787162802702551977250617867577533357274510944305244012748076876445880369190143310306640076746971228752982739509695961292385469082347489977639614934089597816677573831866159908474341840058334301526325365936660902832771237065763130439859318306861216419791268009829792893038410926295337335792397998298896938614413247134300234687215710791819038894715170662595741193907404805570031506980640024967414608782465376669327339214798398595476157181231753454271851289079148451779652308978340426001571846334776923075236143002814191207942441288099708230984530310243073914449265221370319350700073819754361157806868469637500622869470681291901130518329410314068688573255121915890456015873301180700836783317818116547488231824975358111994700875042771775110199978079975636965320666215855402439413925324816541268551179570105089321983849526324101993071008678415677408860303270321544492006032782784238732130398315343647256763004700775014012600964269837356225561812540743903466426153315736818629401667930929493978522884535702141581969606068897560490134586616987326177179643831330627940726194838691784852163588880261535403341312010570167803469077042183105013199347854636512825873828829060611447497128007444347614378257399137588843227525372353160185002632625779131620145980209040421936975063942941567787390499636420075159718835405270085400118623512727961745563634964782888212359840097328017801773801823714537082000668893398421582740341343647877423899063944873324232814111822092126560082800192866676382540826972996092372974989477970123730320189626895270132591968775692704596266024834722104298346498653393727887405628978895816237373478987808085738479884077828742271262438356447667706193042505123269499091946232309865788231129376843527275778587331201295848831806797455609723160749539470433970908695511910860646896567621155617111732873106644194794188268717339494110736710744702015896447863183758641870403005400461618263625457636010697976478600265340398177917928107596885812055113653917867226570187006752683413288554722010513719694170781274348423616443152182144890982806800799175553808399044818347663202896227942281914956693487242751814571181385908482499290674719721664523725193716968586543319928951313442752842698602362427483572632302506054388760123339797547355722232816237344522617900895451243396806082207471632147348762016622865655434253392717120128803281127765610278475780333180936566458521430260990101526514530735707304619378908902764636336897411716739360915039889348079948543268058064189816898863974877918077529211340014736527437803105913800844612456052644259230760851839798769001618564697122651648679507371826379587776761237524464036831193156275593579397652131860392305949850371443891798870439837919033062933872785365910723057763524054894703117913600135868522432307999415408949205792071751562224276830361101805816331589414823300984745610465330414789544780277582381742526777708157338698826026936723297274303228255676467064779502552702744162435231064098241235004183512950354561364728238518799872903149671236329857867564228996137698571417764989485938502971147857774992190840041953045208982271404955122829505446920250732844732337617070197460764592360491579858975875277576366727072470926052374326015749005517784707429307421122940240588246081230297077667005260457392860269898434060872627319645505013837492228891003928483699313345434712986804177907327527085194353023304843124133490713449814357797822897178799504550748376546217616790371450185959080680223672259836581512056818644240035389957964844046201730458599299961457255293895011965945969098498631425642125599675125891572185721693927494408319236244909066627814381433808697381470190846508999667184500722469862931454931529153663564997138591713233513900073166802278762677374979874141922160589493906720717555752453350863195786474224151890188385281934467482056955335819734534755238206403729957322550273007541446155126782335085176144756224974755287608795534998756143064663188657628504453540145777264557529100834930798872007552864505784786605153609878992674554697640684114793789746986532985413288054877598382222736850864663828365972590755054002056322466766540742736376911539129986484752158773569898071970316534611543308034530593042980816220793924400239759131120713440199255253451241659222982834558099075197940390718275126808053847094152224882333352093293278626455250442288261357141925153083797735675510184696311722319201101622119760082699518571396583144381397235190017617677068678934943054895565775997631770796543176359641140449200132010945139988358189063694570303308543850920829828700936332736646089806918777714088098809199267695117259056225646577824119949298009577702338832765240296798870415239222659116999154556981387272499221463454689155447237785097494176837834220428613106338887928022534976361429096347505785188727671648437895091741388992216644991416069786183727872232484148546168304204734683815639948322724289168682640119875207617785524348273818493616652349059869440229901362924815590269950985657985435481134934241686225055158053626984754955101414791320433759471722148745613309899176219979605882734237542103285494039760614963178598202754215728890037693847331560067637346498887553016492062214246409313492369523923320786534593858083239198580240270497744092026576305491025030402573958178464830750519163748798831595806107019061942872104717626010689956531141733879303878406882558629201307804062641536723039221935774959082067395050572352959796201824871730759770253590467442907460278350977937060186212638227622705161066665650299991654739099747657945662541275466922475265763806845757801494056308412763467251649456511904572334780858224856450636867374708822413764207796642197862009872181425492745381081185227155866534116571225450018715874452742637405813862929006487494403774465167902586026715789295915837577040098731468964926525156045182124146672575300605035421822443608596000240957160644092275261842871552786096849291196974629064777727374470826236693257711636216495598849941043218269375913083070921663462938712833408152923872278030276016109789273160185290946791523260763667902846031295155723785503771007781745592920926063667050745949378238320761624732263138338646854349405120427790108598568132431278142282084872408940485954303752710814660869417528261442408333679866018722188197431340210957024829263070534325568417215602640192979911654159052488997504677621959866355899643909360585928215187218700932412030443559263919935176888030352427425211327820291268947765415524314429509333363365096055242925166803542177339282364551545640485075467230403139480164873151749168311110256073041245064954490389683876785433885637787673964715956054294777668107122659407568792931797121614272700592850850443517473672885675766114101499576686445058358721878041427054110323006819141683591916003894623457127785598650370635080453814418099989020534032724856757863144642847454270343004048130047803201395813199724244505428422860484168925128509005596698652343476795424376205527289874575521344896186432986991553803698432911766325095625395113021025028883134010899123227616274594686375799679525489395881359069617646420840385539886862889460171262108738980951995627935167351308179515729364014825286833277819497184605389884930567060258136835940471336730338945828088364597784540841606113577970400631015553465521765518067248478309283742937386608250450296012644942896133474110497076457345947060995464129372385727544124368372239944227237058819066544980083447958174760145746022487194637298389956133716730287694130706602093423161391582959460152219658304252220398447317060317730452873708503357140300037095845500941690974621442851739328158053866929229446131319512849791498145251194970486090738078143411301584885144769376892870018702503254138089486768077024782752550520765863519309627529536978285020811645501045022529697963289984581541376733238420850104823717065729197045613076537979635782918408180551684661008545209399669682628383352224965446065741243177293166009861791873170836016861188302980799318106005995517212590741994353083283450196040674386415519768810057069971780285189637708181897609419544631979616444854445689520713824570266172770794160132755993103473792383806348448821725996129896925267882321979460991637083757125265453709874627554866458416719652140813897240796055283546499899958520981762953174530262433213057068364680365418280427969370899617470814778622368949643684887286233465871634205852149387135738200607659173229775399886368791244761403491904510444926473046238405910829681608581874493069759600555198523944234999067979213336155599768086729744672768684337830381814685307159527196125288350941606955009516200789897516455230582734601421512493717829057146006254391194310390426165138281748559034774655402074964684023432613178890493851294491618599263498468703407313217604243548523025698256600710531380333103808987725450842670489248089098796249798654807066313161821980576085977804315911984176283453131132967388850206613539100128094755035491438118970774757777390178624391420359944017697198429994223327963766796979403909595676828123253458448547621351797933232789508466955105906878705930059418758911509251409063965687138154668376478859713020039499541776012821029855002593378600292472669738990950939537799362395439741839829630359252879856005458745981240572964065531285569485307642107212299199224494478794063769611748537314860185267203776889740150703729033704022138750648530752854239864413951122700213170059697151011901578927278534512056178498133433764802192039230376262590264013201838394944697460589114995563849672500244368073578933859678560151080062284203440610360643542806195872809303782541579128690938147831036037436086549446155218337305186922704571330818733380262402975832671586919313771649581287298053373225497983661122521939667202358114830755217596525699106348933143255623897033234137277919678823660410378211578855581839659677781980037304623898653647300350581424399487798999161964582867687926549760038405027833132110318596001861446369768091168852272947667377796004241087779637403732296544419283217543557874216955330911381357655690627208313746377001732548217402005680381898722438970126380250503721755354294026057665678213433636003949871034956215614759714282356354413183698587174978329628554509458989999817254938756802266597561833287433118684846240891177213967567879172566673905217039253761837304180089209490006947710440716510123942531207638085242627519658838066176595622545571319693984155285133587541917812885309818794050344360952277416273297064168690876266828718882477265615736980951329993821784810188775865053319897647576993789043256842636228425452263904605695074389603660315949008361819636133117333251587213960682815183013510354470720459022182135919318689423397672649856225883124622933925057395442664261237381878477804644623947028033239948405133705758100966333174838442184360877458253685469017418409086327219062056685638144386173392911753660516389146476151373186272506372055556465363000971268176534946896683756153538430965319346454444948740582122331117165214276905915744769926943905720836860550744060801136281153682739453225431986915725691503314179416856508237591124786051769432538954738749074654951711147393551580694596354041780292148800805623340461478216704252730518820353126735791707523108021536327114718439145220090440305877377740097481810575827280834482789259819104361914311243244549401667845915811460886200657822711485573805922325316022292450742158986957677628821364630736468076217035908852483585767608091191027400436044465030890862449729482798119797550874738296857344755668687504036002910218136944618809184289955234754162740565058717592550510083078656631580057953018011974856198368983486454550486070083712380912249252036730560553223007497462449230794372571128801054059683280088877430683723889594863444707509298988106206931067118640836777716662575513697767533158500344967962250225519359205564258348076984237862510249854470566416691523056735224754982606540060043042877775203237105545020134600260440067103275487510222905079877311001822039132420435684796532844013963730083470007656120316894828949738616444389436176384210589958728279512665545171484176259333833940984079394855425937814570333149934194745115576092090141340203500701100637778065487692248605547850892461944371629438198610411035815739018195288348191964848533996055909078391037332171839015018197177613843646815770712662455358927454640806528505547132007591868831973576660508202288882584498757916950334532424382981714503287059415330439325847257243152865651388007096436991530295889019625816562104330641177710116264327783717650710286899061463216028335548484132567842690603582664796075262304478931633180718298542622285728520806831604024638954332909216221061981047250390335510780622600459150062949043395965777886498842599389034389101283819131694113815096607288019513070454863627463987752618821100830905493215010730751555319506347830950032649777393090072077153077842152872723963877950914867220091882735477804893680391995447647601074235557155259863834141196519991545377167565846909972658257204335272479022075843391095780332593874957646104788945418607575706096899510711367148026983627625250637817892477651684246962224951342544285233076205384182717322029434264750531466632516380586734060672174640775270362166434727612476192600948107298730187917942196962080695962277655417377491878730694934486950394450693061382114125869044218509279795053139118666271878654482872917026247283402403894441513349880415360235549119102483864283343177219274923511438621405581349772957994030752176347554439037103209454802605390157153346458819502726336995574461172717357544117926685816835579962983996259251280244312068471812904842350851941492297579242882593847425668139770998400504700933891842785299109227017993241009992922726728581070139643040888929880528777446967431672214995648913775795040777569291398472299037384537307988433162655740213078011594543017479510778349657505141013440393683369137582434370957799717442802024784255880077278076313890236158646871843774089957091846983245285646303913351282075717028420773099500744046051356894411753580330937903474711733588346693220914236361360796540241530747835359979900396367041167165194828155249735695588315065739965661465286834224714845880166359415414415811216206259065574244350941820649318827447277267890004377782075312326890366703733118783309463194472293141629112567248199417888644759295473273697308725735035415198910028656617376787475245670745726546838043291230264555585611183736450760992289119087068064345709281363861366107022763172653710154120244242025407217944569182480679774684972609918806533369487671899334472758694004778781513670191603533407313756905795695783579970842196350846424955645886741060658416417316842744444288820031063489507892600727113944018075483130128312723236164452529808907606555626251368512348153814248074065600503991377307055632895660682827189149028760527224336966326081240708886029264654102477167999034121474403521585976221318309765902854703529673571817353649882080097078245800579093616964345471054673409092496019772096006930044883408740476403885151229993992171338331783833164176354082732913070549620940315561710089133120291702896101563964306090428956085434555770792179607490448188983429791945106124735677614333010347979340091419340110915947276471016043891838808263692185313217479775086833606604947596964916287806488331325902906786758204073846151454493916438181508248481727615670852997121215690714902161106575881143021289108584298925703683062709452387054522408711130726049259709968845779586121882063157718065922027937029294418889699949049995542398259441413923195675652731925718495770009195982189212760656579586918822212564304769036650639449197440149950214499698776419427476590291881280438948043282514110641286987217155663524993666166733486063110181497083318339441474138798634449975931318622661988238796410541108933059224752177594866148814738236340667072256864070889809083328055038003222064351230274166928256329589327357771068460023761583371040942027859816542946329972990525701257720455437112693974406354398516109865978601229305606612846579588886675523721222968426737182950958792887016186084142288796485209420722935186578480325310160252266708774475203887562291338380089738551657666266249955869918779636661663253585244644625155789645473386116515042041562229869153513152463745848856291767589008958284597754135445639123684076616868779657386609960351557358179519492462387977196900036611733633307621714165770409484495309171167729663274917457767329947129478987504249009147101195642352892934842393130625840409503768894519978937533087486456396377757799887678465743049880831773733067556458733322623499694610601570074081326415330671031160828706160862629431127132226851965516145745649528412168801771571963720589932719920767778428793244462274168162959424822544398819585674420677455962573817610343428186429921925138386805104192071781906942570173104100910581276458370080862526778242736007959962022363982575140365966727350002069246050010704984337689499235938996391254309614703947922936169729841156027861344733169800446521652881814193681856543756788425196963806679472180068498047487890247315188209111709090698757188811471057704734632694411807606240820119334198220398771146868404374153119532217539082887833298984549799254429298443146312114914402994550263369310669609119056880840450681711735685360664190590635836991327577154132620984600066898013784299290608814405781945328154879011571734833415419730639263301995901909238727096268556020590727494671080479840312938715476381754681285076767074889143923931704768931919240772409852951746536021627146042384694791379222260644678899393679700587409612458034551642548400664065537816896674305022634628245237817655386429934175581063167760487620688719758250411023103630879485268258212900247495612082631410069403303476791904649040814580660766637093266887651190426682252307150214691490297104303277689599987846558886212279320955312397245685835100085073818008149551543889011060324911569959979214605391608877307093280741038964744052135475408118930410104452810372956668744093037254590204585530957428926829483341854536713284931044085923843156671956446108825489241555587337739667182480719915435944129640284867425147841864690765706059826433135943962552749992276180732963440426100853517617987727338353027139388518088968889134293591779961338717719294922567426270040158939108731081751920089563762912815227293035959618004807447870900612958129510926760418041810526680651851924935905068205883354694264309394566829252813431106581277128177474038863723169921387605393504153003392335313057108719597248718285926095220026491952277246267337231557581744528753271072556734983379004534356830579964830478853392032860134741727954362265598494952022001027464010329170605718608468651383588614676722959161522943946190329401921937438138072138605024693502871356908339079158157252078671035713885359648906727728672558315277211383736586347300605506379950694193070933520350852919355305432435759195117881496434966752525588064070056255353568878057946389460927549324707698805039098929054022054734447192779546683205393986865461228962470434474067110484662692265679784823777080588790931899231306989098163641554420135406982858068891124580289827028421729608149570523567641118802507583376223050296185083191968640824025559475605681591225288465316060644486868908166242750264522249085967456701915783605184493822757727560578628288747320945583750339477954950359687877257278165960657723634574991673050039048813496228742304968192394459873695218608726735860643056039695420271012320696753950392367529469965139634526933075971646891738964488425437686732602315480876218260170198058993655788026991430097940903774026516489772397923605637220611550915300769952572335883931687764379799239532402644878333763702386631587094349565160793645638642671385281119253186586486490614433394331648626877173284769698980766861048661217723366710526110973275986295621996241943208836837147275223154207514974863427396426542241307109702457427398464146049054666886712063187893559988962640143508800919395577019673189322685972792960884295470103095188784335279723343672026224309321865843910559770496342636022584957078597292960573769991793595960167025692211761122122341013038728781293214500945585202343596404882821161849684249880253977873798900020244315384800118430608288595692635163753414387298273532916328997628972667038254119754943433752011143690756012525061100506573223090770955257393934356592675018932978233706091932982743897350416923742771015680498234645051464213797772523066977597214967291462694463422503034414402905108273035899077816494554555126004555397754493173533973867763365044191530583705080098326648018843436913480652692507731358755339344061240381530789409234060861226707551264982068825752285339574703206738672714317889432696746715147813767610172839488161861656635205600268643049258482617756230091049778112464364816895475590463747098124635220521518813553267988317877689525567095709319024520713688612309721370765536743140166964731535516058560419775877755581887463935655499842534787096410714104960678607955667534815079703622077562247196378898853219244584799347932972519172074957404565588245422532827171271597710248036120792544889875338072881516767296266612032878374403561597492186868914919945455231490839053028882901878106920365547002480032166635661044114473013380137781114131389413262812942145242113240094212006571427931365144392647223567617304744128484624815990001420798686747565884863501888427506597965222619777013245893003626297311257272938040519465433080691229159934318018153525662910423507215010525700888270889602424390557431632810136671372746220599328472830581466958620298779773281827216576422553536476765755670796674502938203797603232984300951471840935958663596895181862977449994315204684180394825485973751295497001458591217744307031284129294926317072449368699153966238394883206907061190904762866698325373577146451417324033403841485353854867124664977429065624998862202832236695028450861024212696362919556610106414722128763605158778537055475794830513444125050324015906881461533835935752838353477829477683571540620526392696514944966579396475103815000434581660493521688371153419853062141450221883835654426949305917162143713741072906702789241787933252271675083548814556532059549355594450742419052904610216807776031259551814511262028306199101080039663649785586142798247729597431173800701357032012697314723925019239254086786195468204497041813087501176034828827598626458394919660000518012628373549675150203075265058033534708548615237394839258116099065586199047524298921729376929935675013542568128742343589916502090659867469545792787453551789131480757865857767832556762379677892003778239967825909805642682670332347346199144506993252205068157126326948831721075377924855520682388881408607565293031000919005744435321644160254570067681183177660703400749760217803418155135469317711244213168118437884148718645259067750360816174369504159994710195366561493683292877119286132459723291500709577077058103038631045019403573927638452989923458006351714450405010561399964366023568023595157729348126077407711669198135856971225302496860633210906831821943139874267310893273864651441741838203164112732296168129644750840287580444684592412829404055276510577512437070620834046288692403455511519152100728720425810550795376052736447583002180921777975720674062816657892260033518436258458413397687748723257152416866281848139375348302392276529383778257351477480797537584577450552163253864647052031077638014928600001352743145662727988845574480621784722089696793717629622010469078011459808909454188930321737108184707048412083792054999592174704755447540935763395190082167214902629448444949646065737288953018595987793128870587216519601805425483566313994780231726030875987413899768663964157807234371497927358583658784282877393001826624523133981832174004231595555094332080600062990212452051600472624539834251824957663803794253685789929801360054646764062523777460601659816707886881618407725065742048946657755923454539779107564070298346498065611200157049367699417166494747157628868036376650477694091498295271488449214624617091149842039092831208968049982964766514729766948463527663504022384896983960202798202941857109930273581956861164831039784475821377293887427831752242347844458932866046393885528941049769747875547812067437355672532738150939900759379444427457208488180662518198052510157904824575143201654732347156174930749784706435509385235268968152052599880531771336738051933920408447476756902327896762226380720512227942601763818101879904594792110086753971322716304735199982357861971016580653268264189270767136406354732578243977014683573440760731503257459748776620346287593233309062788376482738478728173643595184944721029008121841138066282056736769708769310811897688473201417346149663119653420473810521580549977911527638935535348337680724709082885263380853385470178495741156152703578704485572602007358322985145203362102995737950035679738303022210140374723820937526483003937090878673776110661780116951107388802562220149080331101021153565152275942015678914163375968158708080109352523774021406101966957714442704380903304820595718520131042542568222584449643348794941726841829003649428838387618142022431716598996486610930563127442325348055608137933464438756746205290967313828248541484335942214633117395193459415996742911085610271744282374857511584662607677929001457110439237990626966443368554342110254532011190109692035964532094327854037229831155949422554472859940285112237726861544048316181732382562198206346565169745622917225713880475716876181418023635484470238714870945130917774125547502451234762106020372125242204019849822509164499056322938049240318191038488167968468222522281495589557414416571272371041841913438746481162970059496639067008341522870397446236665518856795578324401246040666569312264646702408170888797900563489889357305423187465952973122496037424201635381385903181083196677755499101664283227486704700835013657571877004404926232594707379268355564778506905153701680532866491566415600835048458293718190167787363439058022963481938594820162936161978132152582867256950449116858645377444099150242404580651237826304603150748270782416502261136685891924913871808914433186130416587598687363594944026002741608758162124114965355266402233788732280889386647448444610189067686379696056306989791252266166772838526881750217202260630286645977747824764845678468032437642579002508190212480465634374026351716436871177916567395352634232037351880479197508491520148948478348204916785894713268491555244468109735914279554940719606008765421662024697378105214884281929913093988923387739686796260005145334987376227656254389662956264396966201582759351237208476793446126905757125807976696720211162189031148378997481404907640048446315945558304513191028907001831378578594349235633258512412402361466890217196731182203557551436151304367121774880486135341715203993322209618445185191589474102218664963976500428193033990383959313199177661845277863307189915216152534361467637288577186789478043291882092357218579910130522439213866882872561247334042974012390268603410962739362955064900532206030486057408816965812979729100506790506823435420098586986184791995384756973448586598864248943164242155334854286563479764685201177210997068222153498175301204571163611804320924450889346061437288639578512994390085353290108568546295645652320832965276872910634555532299142340236047739534470057488782859998605057328337075829051210725331228405020612656895625817676195272808965354451110458128773742805470673963157491807343494367409226983236581601905195077792937095119457509663080649869395320880665953729776272123361468185388868397817660514325783513089910522821984010232492713949299061688313932199674459431271833066098041702443269155413795626736879483130356417808029895672857345320722692537097075902207480631965151904385291864642097065142659043248150280285910789543299187279821096535622135507040997463265572270612200287330238972927693542366615970951610532795266105879585179709926046547071918287264927333307010249770007117828427294813922700925406322800231550051907602977721814126434089729844351164768252249579215421541409243866437099883737119118480180133402731270651845629121565682294791788397470729297872000922861604550870956636422007432028362820089172899058416640546944017757457198722463129082927729255692966998811196023206520356213460432735264195355466353408335679824893917146974650360811594554495420100242701007278850396055479783496635983480485990670190449274874496839872302331436616262268024701021074107825273369907757719379729885356224364966560750320512088912904731709621560177130293895160199683305778559225851152215906006415922240432793122290347192127359901919691218722345321684097850249714922581587161761457076091571892983738268911205464111584357095261168470710239992216952277876065388356105585881525790684027004622111841796324297795026790626244559219584596291286392342078833297985564886940664042090966454216070496500560162547928057145299278254329018326796532409436131426690173309678456324876853428620585462205072059069561862220746915047203297913235568815160220766243370403684509996122092874086036831546161231764783838152238037248654211726679886708842313407289279113008689582464851579577013202667783986764271780105248379365956123236081952231276619311335254509078715297636769017558481679178368056375039638144134957246015215093759765940128262114384125073520602814013067893485798880662379368935519605455408119749595807248469710789979715327496956897464476784779398542458029004287427623321683433556176626194257435459685912383727046603206127820117218061685296898136595491015012050756162142220224141061835902041900751469642348562172153300533595815468011546819165489134217355699009237064976623229167362522113946482012232792842739015760589497395391865048638852159788469390874740030079116272306601598037265154824154916469416218971328534662025584345248185210113678947598774746844114598144120342915229087094897906085545685047767883274685580213459000047865022724039305336427370758706102902635604571981215484669944924393393241226082220528395670093806462189546897613781587920474894487716247399235782939229780492995717757004564065105529270363798108626263223703089585026055350054373100865201068182225962221107126528738909457577664072827735603303733396141192332047655667825046674633374351611418779253729588158599951847828211766737088252035218350052032767069108469334592353410039547515230858043177981420383134435238438178088201327223641843785504507680825413013584759208070796033369648643362586780087258776602358748393700175584570347436087168791657910154332121763521198028536329896401765573098143192624942984727644350968591736704040275021604411744130595984025180368876446780400217880301721865636006799801439286407846310226378723184117749678260484644496016196880164332054409733081388161904031862150109194626931123340799578889297344085269091090470102629349586834006098727113140720651303635906861367020731346893524458337444699934950802085456277798189590859484157411825007849969072695847515834703750992447133979825531197550515369366312457351656004679004712395376735091618204334165281323079417893135333735387611042632425696222249240546880259621072649685749369963485807590968992878554373651022529370193284896611438641408003685481370533939301900363521822431788128428773870951390245893255202837964813508979108172966790167162741033635685129287729369277426330746075008649438566250215607259571958306778941828961645296593118686032351740003078371605500742058784621761559484631036467250830703268787091390866700879450382421887156254459980867395107784451103481365130966719275898689857417586326976064046222748882438292040174853383306819536154953299781710613570510293398050674086759509807434109691014478406849562595815998882307647925821869376139341107893227398030077112737672142587955721220422307007549711335527777051549484266077756077003317139581577819195318402107260439962426096867887104112591075625139182169698016847783092994853891169072190294824890244877920030031125645626472559789293328351184069294964614800510647349026807289656689478074533536152875511551302704907969001952149125802070218330047284063870942860584690829503493052715598690987512910213108136520194479513159258209901405202444889507851379879923707872161695244250747198370614503609314146203585222754256607751084265068279282958265544612197564292553350563772847057891058975557469491793777352774036994244310772773421697198330029941502009935063147181428708464377070854424290867218135921913911495522110758942967572685564679862566616347767376740672320504005240172905974806735411259159923368574105540648884389808824722634032229540480445153460042118749842086969917747943044818446583550214130527443263619492391973236321087442131278080644640988966307134031128897144125422573697389463661100946504745457407498669613029041408925267925172445772613396159676151302098244422313991478589707466413424676740400580779400351330779067478979414996257723557940191823421324798952966518176414379779321259706895667514545860436847033159778068565226903034682924564569141735081091492848623669823036365994517463233797196072664097359385190227791638444364205396042661855865989217511407274853723528721301151181353126773623361578381641221849756102272907475969600891325550845218048232644922648344862541450250997796836333476929284649459015018693668122277722905541462577372367399836259972763597392138754219925429162994658041736052155135648639554631720300929552441189024316730486204937530516369916371368305870068862018097109609074271679323903685719565972122419871109918918167473438893319992410482475250310613652753927457946851532962511021080684793499884981492733461899059515381029898111262888751124206417593442025590685655379666467167843879335934189968647674239340727902479283695749262336269047919199687810937830197706503685848233243449713611119397832985930385157650032696268700227860519079792410890628974374767501368296702345731400235715478498498488772560896916985888021543643545627041160950848197266224184287987541059099337708926255451998618956436651530880576496114705469723040559059148365036054516699359700590513749228567077085186466541277454372772345093105664510055530611773527613844788073357227138583650090837246527988651761146496010010060441183857874807337827675630842748422142655601507090737858281103951154782216040011369511702673508923073891106089178248831092815259356387823025432807260648151593508405409449302314606843756798528474656971594341493976404880508694333847458883643876946944465646517212587778231885370661275541917252471774904987969807612876277211966556449254990298640938094445193531830702510778979417858777374848296060229998872589908888360231046764359265209963995619489942851912866070133586691614551963216795831638175532754004215157503673663939779374024722422303039836281767720864302543135501769519743485409353952053626035528170235049066546360003430310387575031649167373567167594364097070927551038524890391403499743873003988805774372891270348633385215220857338592886744089283954290482646158739413698698758133912104774372348501797154339170089572512228305748212587872618265230287999581763169223883136083779346277803529515776524426106427380789910626123896090411858434733115259330425044362591924744317544167223814065542971804931147087332790392699021034667495832497358277638061743810915116287368514368103835663397668718681669855047645422308256078859802428170404801657342448347613061438174983678167874327640091271599640922210803514252057800186361848366570951564997091136109954185952143350230461666829902991252241853081520272254338871844142468974480238986400412610703889845099525050634664957355510893832267892743299020814296427507012296640408684573543161235060787877438977922793791777383852867558748166429596849729447020716093026615978834171898030316542022116978283767875716779979734475492087475863672664239008838628875382917775362019980463611631381053832760244444188662158992412117586717881869476418632347331619324665146220923417898692957774371286461901904592671384391814777872439092817394680797186901355002242140435842732807336532227153092739114449418979888635625352351404314713054196288879046576033371407790129801800352989885911692540701701972074684355877302729803543647385250167205441070689888485951002703486452643893020338348692846971182646270425538939881564733075556116725574856203216307491307317572904739745913037551730387274299972349350115685181997672478348402622309926117619237172206187341406252987758143694637263447246808892546641640137385976743334406564482044267758231497923309481022231825705896226985201949571460527751201481093572347679209363906674729928757672327624944975721964957736949070878576405675147699810367823010706427493586915772892844786440908064862668905315015375885732257456016467701313314935418100747321224348805736831937202951130318143686667309494111500322451918361217456140979337736762991691380145589548139814824809398937270534780289264292694068276426227915795923788838056619148910259104857838891042403483918792519148753960574020719475640818639428364845224210469760364293761266908650308995146895010812192777886702255736450196384523749717688198357635383749233510771384666347098220176229969840379448329001131739152187206522273646083678079968269406188932870662986105187714611103075579845089806049165980481779697783428417479755541416352717485748942922730598925072244993583315652065062872498891187086682493484524560079012144502471722673196755748382254139320974367143515470325977647319047252980590866538249265930736875637024295909473666481730935683864118897663453959568453427149462697806875493265933705722305753824494121852277098595622292256868705377625290101414279864236714904022197029523108573668653713038450393027481594218133812320685537135730501930763685024173842118766920184231807637662809924006264621019445897953878119373402660720799922712640666848618503722234863125327898777671696200397117290412835773120538892720779361362509245356493705257637932117615209292094677231740309418054687361011758410177259597780687158488842153652830334942996907431414227234673734717804015185057240502431166064795177129092106983366450523669356264954711726430484561633832824918089734058141675515469755618682997875019860230943362934925842856258137690425624978800300826991393574000404657199383542782832877273066853281644560870879458111588197852028089688084353366279167581489250454812189484067262516295468523497581297581814217954377378709381313568956147675469263592999815466349677676414278746650559453329640342748990479005281229106558533892745320625210582123604355578592556585245378650061407761844754215588297194643072594177384159316246299119467333121346768876110912614095923220771010061208245747894067182604119956327984874622663654246348473235293166138951862003715358753147102180687173637980084561893801789302780830961985327396860886275371218412358816033344483415961879403030947622489316618872390917873944568906791585088187668672470460279295579072517019725507202000555640738588846965405772739062893233555325692192422580747503748559541890548210220073281802088943238989181121206486835813020356812726914949099420433907597416405338317422901914648085531601830927248271822492004376884206896004430056178220449852247518582554198032945957032616636876727872073449221402904065924008766166031923435358544771348908231896193036470165810197317438478561246734189506422323458532671483397561289437458708060443843721851075447449421917195390047756554129467665364417813204053478808811526645026663594602748633973690325309622063628606398093916922522737815130256896920864221737775241536430083720917017845240742829115690415744696073564348436930103473750471246375250092093609006067524553688231150460044809972949474052935458100199937608488005733349012906056376591288398138076966396748483170639773262661816544322087801821396656211657594353299011291337069267845248600386682569629476410876209312816217931997706602548732319462861518099103527008432592638539515616614937373623650294942072550493692411749077470125632598034719248801092084111940784227422142853196670142581300720859158488229567555074819501814629181203367069326770688572138335239597370379496058289747546637816768453408525721959473869705097285913564300943713648420799714993420744513662260368727775492590627433003349292024593524515315063148676587551573928276194096404063067469104458896109391016134173049345061890010727696101846471356552506157214402260887272289199502495031825165818365755401685440144537411764939868469481571867949026353993618165155138165128475588615141367800434246370623402599935647328950464091772861801197207512210230622389475921810811475435417999391387330243205052742255714917140055938065249096371420989641823648939135127482798505638767241778306117452112344372863688482526021315960369689633602436114034330189342269525551532246703287347277412104025559709662374747308231081836392435633903388346444958069647490830874603552255618195081575276292010403177587134232482697861874362666701540700661263563646219611031245379983663079874655062082774305779639509148946377724207585516362726987570329171797102280246046958779168236064682205909481481230875121151625856215807547655453168891965102321889428541316045858371914056314171121733491929006445496039606847496197316552678264013096205986688410692435333006129891221043418666917863112820461569434601774075170963578140010112262000736878852080549169970822951279617734613768437975584819352556109744763574584466464788798075406199313912988512332653858221449436154444605848569721292230292736632599651939997014359234104551584993268765411796580528289146894392715491235974261544445404527740741668306603404417552872176309236399857232519602262923593398343912655625460632184732735858210179234422949162842873045146021544979899069589960129021208053603578528770019024577709272075581915908191774060448386522511269034520115936630415098461230870519966626222188800131987531969267936471304037157839759888802494381618910241887877009645995411728835144475445964656705804692952771290866004620828441573727989563075741111899840441146853677580869702818060521014361747656541746658166028182452339860145780099566771426860787378564045331610552412191960890997766942734677582199060017930341990747424738029957615036416471248063910530693272497072370528440333264827598242468343098175108747210281573039486387493099937737256823049232048764132373361789258668617081823459343722756240196269972229006132473222190238774334801095374943835829053661276047296076122448791347126314945449793659746561395566280470521728286377718254996885731862830487101422275691684924759491179143967080083776134495266675030063683382334633919622961046793214180962348393443514781708251198886956177729478565926338503589509932638535550465804090735016330887532742235805425390437728406440608279912748740176280708559154869817974891085343632648220075518601657042812398661601009207078906757576808416035078177888510236169160411796005007417202276053355055200766881229681322274388367155842964266323693129725223938666777531137337965665448980222585689145176175676288427994855418228606795808291386510388952326622474811045480748368229698363425639692146661512766357962317444552038272431120343889357254930484481884127034482178748850713431374687171197624897698570344748865987960216340122150704223274119387720600192393825644355482928746530146306392506134588626627782630522966293094201418342209876495890751233661876681192409642902531269535957682311697106229089627050742308247343869623531011367536249250894703435214696308330210823915722233265062453068932111707352036632847080739587500236134813425599131061213726470095095916898859385777928010726695854437020971968393258717485297821304676601595468649985616601130458238652370886926677636615461917003541941656830379040097700215682875366056112630576338881433384255429045040271998668865819528286667394319055908550784432121527661015125650413362024971700107029029721344612209442774061356105437136532151875624070640523634739077379960392876809717378558977848729015928949931707898929189199801502109367833665285694691133487858683150546235744726427399833666119537024785016791019800600299561062657102581285695981628218545323207131935491603781562034563130804938430997387720435986864386412632715485402054685677566270500449484909914278032642589428954603110979230744069806037849420455251685280606812889018737859558121306178113366546171254025033598774622908006065589958542127529648462379772674697369972131621335212352410558927213080541132705398244586807656702617240561115993760234026341028562307094228049019661593949392399405886360040871164507688788302539976020682187923171828003894666385368247479880550722924718704564450227950017860790150591906889053904167366680939418696436590095214912447187037126076221643084382346878393636781759067684138940104105947266797405720141413687555674257808020899440570363574540819405813202899768884735016990462761160239469102564269492002083010509771429053821723394788863812697259785942209048019902073053264548130289941717517393454724506264218648988983729986136501226348483815429154097887124910800784580039895518540338359665433639050265249956512029104060216040182544566868325989722962695203868881185393966636697809920646450694073758161221841419076553306721295607974786117686837345601641223283198448478262263892154409117166601750771521453364463560906427718599018639874305534908841807973015445477384826183360864903764924328455921601188185216346322473051763906768423482120931124499795831160851067321324788778418993815578641342692927119014021125299900946981114982335737530082734455658253033359178039952704486178483443215742338263557189215803150868040698362156105027590588286525559842098181564645637100560099448130940275707538063784032620828468944309713468486051057962444473887307054202176120539928298241399964104639846488756439257540867950468410961296344678638790506384785642112212470152835106362759904796799462077348593852763726413400234919692354725424556655855092880349173033960088962615031617670640650013383309448852315312846930334040610680331943443153198666358403860347676708342761498835018946410797865037998124220009270328321285058521928538123716995181028892613102083918857098060400473893043980785822418831847233067480359382103991666792840901331630198503907261819565235355564519853720322107222915704302339809904298315843727258782942153064305886624414476366000205140792734891271694169805606774921750610260930527679932614739146953977721475303498509526072223750692454388507089354141379847109728594132731485344804418512694111397583757614846506906647547034864929709934381148622127045507902465635424095893760547813548899156573756731207214774630147238543572355915644477260219276008152893845515396600662464074252381875853899037364429751487178210478383127654110966632562005019094365829632514113580600907184169588470240289702436242989447338474606258353043724963611667458898046893847387142326741243276710102066297706287971337643135758899691390499307913999233626771449752703033870977888322221891987273788773724038902121025148355540015262184501520121294598018801088624356843423028059592664316797427783578705522594195072983054382637315475089723294547324089764784608331915194167149904335862809872420318807737602795039828583655095894946924839509224534759335996332357219124487696588306162156083158650692611012172104562611764932196643510955378355363802286451889296034517700348832303179947932490953961234740276467561714186937354219444267159181291917821109445878768771478274405461054588607028399282844731732229552160948264056866432496125276923269091285853435659547251173523948981671086319573660480343925222105543584150744541505237059838278522991092035016721799860820460859536445035978478550040018249208184367849281922390058966444310579432905454236350698903622297454550518795931171644870354267561176025085777809450058747333838138261656309693184601687928454444739359935551833471164593965205238148818809769032698594128800108782356034061242752821145521784490476987588611836819806577147002929230157912272958809254554320377209435343592693768357810023109330635801701499268435027371533482321222248881211070783191292700627377243304100265814768068127789614474668592122427978093448895133319039025716035070331838862540037937375130302741516469485247916484413696206896746750767754274777221838691077479372403114177844829228984697282802226596800635639456209242210357534234342791378665817002274161777824268115689508136471632511444833544372845599691664661209478270719410856451810009640417986391570582664384762662157074853031877953152362817436020584140640128075583019427855358871244742225107007088047051638661582059426811523781878567460195284115273236097780611544837167991031140436871334065510904468976531203096476752476400202370908454566741853342800665578532827240656588564122700361645373898137929850559369747528820266342523047140025289583096003422371802048140919668170983175424928671058553584459717615033834843300791024743757453264562842358584326110001342851683442019602962669227555777296390075604194759193971716991688488735987690837470515184761479380884773852188692473382948354915119145445119408275811083369674878215183482600269613662835944554921921639703157694932335693252785941739589413300119497462019323322202692480609211362993938541172972616904191332970804328778093505792690467710625704762719216646040360633655297781628793670729177683106706387414089503073775207814767735612612792216640574493007979956213484894853741486936445045853117711531289693753946655939399170049698712994732550847336826501244633897564281793216933966790856416042802146551956708632486827755904118583703765995630016036691472046822367877720443713941747283272025749339915575141728844434755674146651347762694036118986129986518853691019063982558291944463130174968398687880582608387827755816895403045555954999238297485991432828862969262813282799597647029105422098212016516013280268723937627337175720430034760765315851637140897994840186664007697383601619732519176044861235483397428865816906323294581450796344862737608669436087921671313067484270116466538669152172989795122850919963468881865314742126187575591967757664635242116581964614152659329040727852322113674296570149042614001808554516528640604631963603366864937057387580651402869152441159092847500941750262954210967539197056303782851315185876130533548683192849790933487480564832454903207673410677876429124658788301746177689813363551599599431887633223509315136504318052520113105522083201525028867932756754874043099004428088336347506156829660127248859876732091432353178656766028912314790908603375547862317583248182992709302432353111074507837333673905618368662755026947861196217040403807724778592113034263896223135227446289301674771301393003559164323825993427030840956119962717053363719553524652588314404233609304800318553132372796302313288974329444829533495660855873081579785125713565086405860119772225271386409531111283440175354043095793491987915661290539130535225555770355955557405337643433577240745049874179514725403818877762795228537160600844439368488942791952505583160777487777647327539098166845327338358940325468956463421456148394797086830456573095978533230914466641443216382610280044058354472853947576023972341122878819641296873091364696492472607337437138918172433233390438957659277730004474763196542895203525312512071930833625922475960646096646773189210690843739703479539337240144544938948475372796361424827421413868229298359627138964185401941309491624151914950719961186782541282548898525555147499161165424932593833009992305872440077219423051230883257342571123768973697003696824923449892208122710710728446713076654707636639332797043357329956312384099241750441544958256115011901649489389740602814727818592983911611031473658197990350946104555470947939366878411895786664451092255810006310742063668462618096053215749055642995961268045975643808151477293571227015212174597287423286367917672288804316900736372498011565733842029133098706564875554228482450253640291096720837165338806979863399746550750037901567591683279704813149902137621313536108713204408797286193122848214438678053919633033921330868566499686995292884382147914133688169880961399306605719437712822652683668508816596418158385205247203672308136561166791698150997125822895505822312213185886093342241973311912805705778011218650131739990765747046885990219666083923935823881371980417753271549385717677464230590602215216544092624694248559207646051165887393333756015902901298789496473639469734025683281289076380458918512826366405291928811725253426581043057503884405183038401464121967502951837380740338156041653857506958354213308318588437973189248091258782053516561210126728881839611007888721959339332394889470856697631132084692753666932511189923085804422502873780491498117039543128715853213458832656094399676247101912390619986533629604091964446287421485009858901070800499451894937298289659966235492579350342372099033647347083418830394396210198818173792802021635962674299346172605192063702517482601660371979707599195357891783052794219239099921834408778660826034717152264803848505301987358468599990359625570001039564605522814078545993717100381781565014857039875333298325896406088838560381195831645834096419327930747572085964291461596665781147377001049373981687343729547324270806130968751968954055377889501918833986880897757651960145457167719770394465067102192487476835851643142684550457747033712081023780475435886028943809396436819827212639635317170606398328325725924443717511162977910890260230402221999989419742247916788878453337092043349178631700934379972826473087172997826392442456914182915923026933665126381583691076146923733016674290444521623002385474635674050002312492441493651569508450150119137536768478902662987058972798918195746618382877081192094166226012824731094808325453277569821162992015210800175348619223273536250352525121883952188483851996358285575015799576611120907081637186371369682138370472349303725720919893379700434052360393079040879043307705357084951661178407060014413918940493660957336165995369761086608826442161073097913235381241728322906771408354813442457785754089759129430952150888347192701282919936792908010013421751774939560305155328579042205512593839537038810875520897264223753045017299878284601256817578954489563255107076979083787289027634860870622979410597912239013246347599388781516237916178044597704287542749231782531262249946880264673637881577371374008514815597979410423589254613471907716839890910897885923215797269509112332215179609881330124172943448892392847928128106816372294588110907587100187168184449607766281830517476217174525881872916441068897501924055577869520367606812159075018057488536682777164338344282537696792025288619079096755330859638927473864908515419357684397269283040634722987595699026615794911228721572494748672981035122790405801289328631122579252158925512283598827783557650473464278772259736611637279000481014071842339328688928322096279660184876320389115714755848885393163695413531609668394903740218094742418660972827373771551372481920565119825338742488943236005456221819051938933300616566041152102127027754621605627805729807090447630546814162207121304851211140663904002014438413721628872252356619836463593104671096510823806771411108847872046148079941883446987563936266267157510891689694848585275302152610623459550688591873041485719120453285804731041763670761639017553179589255026525416365731130269764625088805344566262421067830651930842476538680356697470516635099342344398717809908778209542749089013745434731409099860783831659278213567506162193931997163755433279394745271792098207934701665532232180629608840908473864388699931556838553282866433198028497586923813001572306388651778157400157014069294945562658686134748376304462994712425328894990787434165908557723404672845292213773986790670092171619249105249630910342987256656980838634173693595126353314380609975306605549659440493678975271311376487203567503229113263505100176968149089582294571921079952288839458064211153389713819045565520445898882397680877610272980622184750457406409776463272643543234552051738697658047626616603121871523920863197341517098932729980332311691532774812960175930492525802311791382746806567242897714737986042723346606567758398419342391743432434228714910285956128921137290483912030430612643752000964752377912708447115535157290163223990050827419235907422547981606007949233791465367739367583427605880050554224980513956924277539475832022374199019431426259694343905540382131546400426938206403682312514999762024762992685593475338739457658674440212670582423339655108085477212623785037004270689549195569004609567331224474847460738192037909064666834950355944629591460859696948631491892304928821064037492609042201858851097426809349969686269957261669881139240915694846687570475147932265766193673214201105101619405755675781269189151511879287112022918126240743326655614147982111433803823286758167572424138200095823236608110246381513282564597147618224719397314718639475646575689322556834208220686332719808757461630428743780032284804032551133274113498880402966660655835932401368196506615381314046849605289840239697351035463808162562003665856591261358654165616338357999277292211918303243860310543078519343992984260230785464946375576786031675371115400988261347056359764044692360129907448273470417101564188920179070113474798482387574201312681047692307326949893198030910213775113049848975730105788484583645644861345169516078242884448607192322209672387502524547973376189610977341903308859330433158455504806779612053069595711236737993149818404456095813604573408049742566189278069310276121401175718972103376956448838999169027036732868672019955030420149638513421756946341933075075579380769174020192777854041416703819119674758293292787770678723412454126947354387863478537902099280320744393853285777832784085953432181678370909207577570163651004008801915545235525339320756946612416787095478064659584396431991633129635990915491760236701647387512047319273606667185900109074765697609821603196232950943292093095415111750784527267157844644506183841094504173080356671678692709747186267199912392549920422811651350237952168721445745558121757486095669091703604735811910985582136192093129157997777897508532365298666811858393241280629838600817156532661505879991862225796286948715995972871949697664153722147806479998817861330963387489949861344137049974937427090283636898108063160396311199837227544340176488138127812635170253766445510108192672972446210684658194119549181056429550741853970972571493432794800918422547768110289770037473397202989253552522196212842698905301132416654404243388184232413547363416683402681211122575830664637217097458808603907418904719192235580717788849258208020619245241571054433680917953317214621437112312889301913265710610355137960354895398801413374904588238879089322164759446508864933883469108885218106021153481016245815935208863034579940787421956237596954480248241466536062065467096241306524591450459743810320186283960596056755143265775054832790136450599429181816328745700093843319422093887287961736117141142614615334686499876401389844972456419779805947355391462192123001629421599073790435165962970794167322098494310045257305431855986745563178598317959626706844182351754427375045397784306473122766107566726005579500608606047449324167286069648144257320845917334616551071264134298235607637440517530879056472822540177419329036365486373483926744259376229830620998414653304453341127500557051757473280047917800090657011344681656898251558649676710682822071729747168847876947979881708578011950073757618377389360242015031102536573395181641412233223815245961684632921401331171024852797414756709017798292289102249214492352570333753962010942259310173660477518363126255723046484113096008380017279208562181040156426682652299850189322925532066274031565973876957029155550126746453437448439031201466521037216012944359818908585976228300976863662070024987196701842087793628920350329072254261965161689683547295586703243545820714085426260991148209224603518984587544806921590710503516768124166939019196783820324742256599942132527588493420089649033806723418581015764622255972455384053890633941813461928469374206926721890476213013372231022771568690711952250718417267420959482604532891554348306462462685693051886531938512021164351178156424024344723606998798016103543259205796191912658846758017761617961785804923126434285377625130828671864540701443272677054667876214891537658569208026757417320192909006478552148907681917094114456322676447090226700424897704050603876688451674272922484000645198523335838447191899675705217809074080468358806765629430536492258254758194945433942801270569574670173303207100959917361747793046947843412944738358867974161249665121444856730097758229132270031930419307536343378310093362681611377460832815505128161763913423921290787412972643495867078587182173812279745639434864327610895476675939859047627255994661523695467953156603746230596073665101017600072636684434807390196439936753768221740037990865296869848375021371675789921065766978781922488333339430546311728867802905043371105914228181381080730968980246826098817184415203534897256982941734461253402063161128007536686523689848957629893405697233484164169037605428679548002333012332903477265665519416456126847575961898960759361619311943583894551461385606236982111136063659967083122269981519829989666552102710433296493515681395573690216297065327955825791293699134140723385115463786661873043321394898989733249202041909736545701977520282655093133446651648659535946146500982377845817669508695971994395406797193035436483917202223039201139481393955575693880878327700543861607957878736543241789877591836601361446905826719900575891741143440848404752899432989828818982766946144424648649327368877445350449855842576456221371786293550118671480800390137723000095749060769420618720363066383074192027915432572681754266629930206651298542980312742710410750117104389373363261882691962450920603286206810433400283419710918964694042796583095252907364181906921925315951326925270448504967565622159225946259183584990507559965959885000014292522299988982042900113269019434083083243501872032944513573510443696893873863443219417764605296561402977278743720906752251953178622611833280589161414171451616777372417669784718354581779391509943072602888822942260658128364244489323453495159830204215891748731514705773911180133500050564410002658988045915694272931545166258103935585273618071214183575874214755554373854019249750514901389069847778971093791572447706025140370869810388560412735778551521304283018341785857869438514377460421710494402574436658604363197400998434660689490427726808820471260648452268095452281068035440326585906432062042955353418662877641820468262711930265191668065896234844003232787618114157130811078935819086022594965213700004458333986953110859667636460611701535434392804354593437861053736046338097935736323146135458248344005283454473114877823223214736307220236381895888714547402511737556772408790800940762606765468667784782589285348009807779722273562875485812785229568564607029383740656217563171237551438358807306548873314889444197871333753429886189855334546376526297181649683105668553779959125492338921847235924477844820891743598443848209168610155687129615788436683326208191354261386532538152189831326035705199811526344543434749762496864363440711614779837066392170301192643334919977921225304507405885760642718967878740129467283304770680418075809243108475038467148012465079900147919772195719585939730487992390710648029826175052291193965310233070514439804817477882404782555904437392972553926611838772727072650937064911794387244559261665175514901691112652395698180142051228787276471380177198843680916064159518515276686244714831485090957926919066610785614723818302153264238111944046743542314251609052794941260833351461230675956229436274817655932780309957844614823654014785815581837975937205383433793675387455098048278106856387967289463354347190218075080162806551659928750478133339632886745272768715782184708616110162147689339801751943393186139021648399959953638151186053215184863529902489281151270710944090678428037524656298583794613370421399309977328892848164690999533911249865533945716607788829193082028394606760944785679521429064857689089655091966274540770072070105298752752377031542192085287967388991034028017157689668430360770460079145764034887168386704275171212807244251426474286816823355411673110282625486777860493697864414258739517849606280068675751139995745965734688955761090574081408717542180324444350603076557286417699335139536251702406702760734401118574022928916080845067411364021828965242095966451984060716883881643301898772955721499537154753811241460716362056666682378149077288700767398938465836080391485758416004693089614246639132199020471268408603113524124937903189530971219939693828750655577799534035252753522686731255496767939182177500868106722599253982392902908098162128099575589885034000486237103112764406737347463007648442961537464260552919482377193407428784584822153500892828742838639979157821366653816419505011652717091781299655911087466557877349388052294441860678813519694833056689380109385592388151112133220777590126183474738205800452299827843545570522407801233302167050698843844537507572113911151623882707543444920871144988641270988291463668171015007160271529964422961312228058794671315622084518164070182784671450229329422714058482659846138854705781045348709988887107810129376272769683321573540950362610239727117477193755399037778207878601093006471315489780066327702995662079395657007472582224094998496577263548369395508148715823714764962369261704188927552104142731536946873858229806095968545795839683278712129422729336494814489353077898740822154596785577349143622033991436827943011415499850404426336926273840190889257097295282386328403471876942782029057434797126688237913123326168355763974453540734484707674012924971549041515789195102180340127741811910050720490491782943665961398987188685545999457321652553894210895814673029221187835998266045654617429819585114273520170589548476109332108968463344957458703107220123453080206231105132064488672068828316814694381985922421455186837921859192201825412772632212236913514171988866439789069256876000782814421602472532311785582577489064602248644488286657498915560425163939535733528138877707452889851428792417718781728738665891113685524129157015418490376868968992890255715312797790244952553916237787303029010064356347211403268627899060887218836591376692990392553399276619628047658744455110403584802458839048326149283958429959653499722357046319694367090523588882745940195916762201849532511593134962575675100353939234708667320195850780678776729580722660142091786681251567907673012997707478696849826933945246094376121654201600871859010642740385694121765770122382138262237906171347124949099570238461256597669114831334399479117811838850534164998067967645188052690664543021549570977101545479590545097767116645778955398547078615284206528126730088629430943275351691452572225366002611827396992458775188808262923072939916264858066228580619014119089030804249016464438171513330457914608193363676643844528277105406940571127901399509034153647252648470772351614511740787373085706667916893338897796816649568546967862737778354256903995241271116201501793593298796391539705298906739572044027246403065291121573810372771696228737114755902257030934954022490856581699264948312152152337915319990222311029846922246438356745208452321212191204790651589758414851786991928616276759450598365393775485992043607868395471487561807171049297573691549008832212154185983052077014788512435274508480208776865264524988660147489477712079092881415130250913701842596838235052747979281433731357577312714039882164630933550796155194632507635239167645989746223487985891166161037494520059919413649817892084967551719336797996072949858509467068066781456775888105350292654926505446391751331227475228832704144927763304941417590836151859973813473799120440789882100572480887916776622592955837722577196329697198852406008806371335605128464000341332911222173639549182018680875386281988237969997466240285363889543330094404264452494247784110377862729656222242883614372915381118028679816511845157889394350990517217799779611402990950677556651011938402970082137161342665637973458037123303002596931924313035006214297036224454624912901645756482393497328921505014036797029738168731923695012669061994982897081408519389691665376701442438404026774877206106867073669061362901872843378433670284118437633520447499588537047885114306296680869009397376428901827729686821227307601772747176268272447172058357920618652688472992949183218294315062344827330446387819488653829724834915540546402335863909275859379497785410023322698567283429353030197758388058071125061866400604900263239391436003761467936462014535302133807573415340468941443314040194239053222376275610934254660032679524939414911940333240944497792100538940654973184755969752294116430319408388177066421771556090390228355285272544067516263962749850321944142964497871646437252423441000445671712911824976169475273967513527632640968934767830699375343856044693124842003475048751232040391972001433878821141321224088919844937156563040629194453103087079572619557968068917913811591106759433935997479192347862410661848705495104129271802592289979627689329797078531726745793503365046604798577207235588760223879618105194610697083031744048176988601043026721740050755323955676194967961481738440826953895648753619528415571400248478249070706107178290236166619502515785276470358391895851493950777986287171050273622096111074403473645191806971173517333730911679742850334261912017615838932658246310614009667482846583238278954732290996447810806628624563403840516640238314475369325212280431897924551226556265296236197269099380227004012636047898657932540315845834690948574983943016300530873005633443349653298622253344172709916095573601081483408801276797707242142614638225373816647011868575522318021830785839610152012042881176329660701319318699320838000973293001717757113675172116951894979359886665345049259950308666579818048487160793199149506035008506917206448469541907270011477699054507434824877140215043386084001439555919960631736241286764766623274126361984001307376849996982241626405511954134171324104447377922863525075209070102343361092598149187818345332849692666264036206318402720305476759520292850154510633453619373129959387324944327413810982659543801922918822683892737832206805343394007855510896151349112857428180665951438663244683849481003904985016693967175909538349351525145851641813034686571872556029201626444942366262116950931848915339089455994551374439622665758495831145548857042333066840304669331867241636558675024642942989661402091483436570955335497405023095856858952908928328649851939018045996393533807337722129402198199600732974959238722830023035877532188730644353403685907136658765292933250226415495731895659516217222403321848254074747560087000997863224204869697341243793522359944525882477060455388448298755837797414355057420553874209447455566962764801344224101436155729820474329999107877543941806614551406204762951111922168628288924201932748703472168080932492442022360078301439501265242471793257526501374900670719776813574743130791335750940247941969702331971588284943635784975407484701164876471220054897306327607073046702471545065027221079039044491796789133285825377914120957885344163646846757307028719340045975487295082355638559540815950488177946869779441468188853962970243170380550975949817332719677601374921250653208282500086976682523150922286019165037553336578430128096776364534812258453585219072762299899820654033059901488819374391746884750872000584778902589805897411387137820986595122584555054372944461586031562542779888602289962336365265440079366532106583626943085293809151529366653441908710789374624674175470758808786315993835023871711090088742991996416633218298170360636824741837545945443938422692555619382015527277512007891928674871771214457311390439402130165668236666403624223874071836987355655357026895050776131461347786879750659985019574002122077912686354445784914588802321293406304910641929391253260668141675488660489961568052911982660270763666226021439772008133954284259708529755448849709097555387308634351457048755563162852647079843654713442468105934556561871474972982789890481859306316056872434561811789182245744496797645768972708524787836413807042553974187758276798947301356255302097300087151140247194465536949484225306501342740105802476183708203617150863717459052001312339194201729057568498019868350399302986309337774174722367662544059513269048086432478588197568543854619277978889137806406925313918482612973530420935721059783067803234249903195299132762071776817987056166285700168884291868327437423321926109397774404065794809330598517470831136284386122373511144450002167195586203748799502981113177509835744711973906654152226865703457549964267781588356542000537511634459572177264330012888987263811282863072685802921885976301006406068431543155211922241752940431709396603188395888205521095086526527332054180740779336783616667183181310707616515645743817949083830696108794610869640250850721128037830285617614361320924209674154099822726278048462155246389696872458234139562699476840511033049851204845872120432287099771086107853045000594847212718021728575143862549680374710857336201137928988935717744086494529000618456314435605578019227103721252794610906500453216024661056271536419711232393311431519240028792293329836609955189690777837371432732739104875440019691849429323792819503488837773519899047106198912806221493882161988109279203229766060538933785134985938645480565955239937317364158621123745554850004341350768699071382823438635243659758876244895826365004125928174728127159149534179873572816493801123574714225201863041367392223436838443719807294788644579517983320242324526644366232606123147310925715563542756910561518907584919412057682966341262891605049069038933449466095949607725825518523794680364651484375093165332853926889845603118043599339579821922539164828026325232848268976527714006762122062971087115511982210365338395501419107086511582953552126061433368187087253142886029998475247663709131409922457896347510586413646572365329636051926141474218687237205575848394022502347529028533773616686316107089346036675928957130552853829379004414860114635244574332471799905683117719013199827710479334537743914828903891345475173651683324125479064977039095589839861855299956706299602974535913775058522418908670673815292645050075337643686106238528439483755107002965522530232011972652025143396516180159056884241206919508702529890319260879630871346948577376317454745472194434353418591127291638028603315676327671463160681802784052323036379764435127410006423197544446212489332957854350301547215238873351153714525295189803762162824773374578038480519976278468829951825290271914340128008123055209677067776187191424861411371051333725833573358416631529818615944838633645922430984022730165950507086740933340757097092769636132422335574450779097053683347861791482805622378102084026531249529626462698355237016495747532526143795802062676102041388504099273125955097494674532379877537768656356071637424635438466491681390274301829044774180644482283026499263301228989139944398597249777314216351239680498810530619791284666604537963092518204080253193989229184916520023545567874191150883511078032911664283919407307716641315502150530262563743602315541085158024383499585271955529760243413104791452335644770120369484804954073999812818816800178163080336857316935608442758254096191896284927273487456256152311909682247958917992227895195843522799729667718181471359037426852939075740563778919763288556595338153397430061317703815547629868150623338880119000275295659554161610132827763677503573364047732173633184385142234273528382236842764037564651226297174816624968037038118923835042481772229788730996719147372315320061389343818235056567502495395477248640982211258589036889816425476117118202942791669693213228643839778940858999309816231901368669694569667810105408283820015087304836666643060642082909071668569309090847865944863634353089003915120802287240157978151714761320149058334411952510453389623590936045212670914880335786828437728385160069135283874283260758671685225716906791878988181212810937013033123421772353362511023413105385611726960602520692145011624845622089453154666948120080619114983355348188590776966407804212584197266190590383241571392868295221835098016822029055417367770763673598028688319183812043169204538155259678698683035879968482836623415273678266087472015375998404877480254261907071045408951802062313966393957478613575350395824113870540226735124086021489439607628880444464267451376969104277079606753024289982838619720107016930691459185527666574225343261117329084721375067908104437105026038540089708870831396085048318647660126220609157444270766065151020525682461208850786936658426649161167319326476947792241432713146920394365566323754145688972808153907748845455375145120860041626103131037625239634373616350548347701827715169084665004205681908574662900409288156024606366502192645769236826737495309949583952326108783891781823296127612508723884817998765086028197549060001388432865749065759591464055903803944360411331631909104311701822382680404912320756650780417781478287779186765426811213559833791930982785604948149688281998600376705240032967430779214238359409069345383909380487666793774193665425518411608572461234924186065956791156189468969041243608998383341599517333601370298777175924834683606980438333436834624665550250861733737279379979295389749355194650078396646394306103796678507903617770998302763827945981656604609868472808306117285651873145317805001380808869503154493747247261730286066569520331773293295230749613681217361147362661421293766090681435717803652092223248272985284454844349834547550985380615191461676892662643769687886143609674162392010677069733990643850183624361671210163941717568715973503397969797885737455925845843064716480555470230555465325617093058077567076594145455192280793658258004534058744705483876631556731238568153502406819329470350311756743986179413824757335641324624484161610867540155895099302147355329598221127906074180891447185195064606839008738595500103132264951489891125962796416150200280534287466601453462225491704856084811174610481722562676393479964703699971819970362266895284812262622323481757391585663156323338187900257409179566618360151764543811066449089070644710312627771579495483538077846201080976054212720996564090859826326960017056905399916160993581549518236124194861180850905701395321072459981420192495727120676362085644454623281118452194503487092801228443307993844858085961196099544002922266535085787408507673912783547118503307693175952371341299568565939891623077441056070299585644423442572351577448964314427597744002481780200003545184486763825230689912894611179071204256981117675294590153312197021231150043365359357009772610287111631899333638021102385543068333087329632254190325653308981259506221134822671940220747223565515836623563302649963937145885928184658558616758478252147743835045948285461116566881721531183506848840759010701408339356424726325681965335610915981910515310563755586476271848042507542797862224369125876309629391377234387877393780590041994057682811503911377477406831150220622991253281964547228462544030902329018091238845125416297743093107075924047297076489537096529131415603641013812505510826039677392745915629118510051512578958566568576771334015683496154009517320071398576359576887130072121312734465444431087555594663690043652039235742343835224441782368536254029476088220925715393466733833626863512197877899078496081688701375184422650315324250187653496278110868514656932521494992376710417935960766430806590108838149514062054692734861075279704556776506763622564131238436568089577174494758594706079455515267092583476743239252189253149381675455785934118457726551286579353246656207727464409965340671649049888631757049937107552315852164648600643866044267038163376542456928836194005365200290623955869005233216627496579434696851161990968671609708105779289856723375142660656206213741891193476048751249983928763186792038025666124861562713617068452451746530021058138252044115979617829543558758561971170968971217403690282375972855580357889350935254973167326677789895979141032904798839901122724229256948692108537714607008597105714083474266313775386689549462965479278612445349134996861440385486748042345225888670862181392366215578164275367266720029510143298953300561455392742662537236386401970946032526147905523653039488376762057153497442036469601895139993480742545761259443522081362542009983333954465790597919853328222003168447157871776554595560574145442213829805715658519637925509479478499338770212221924423693470575827490443153043383942129868142019725413246228921721965623755251258073348087241115578020545949932815351365582632336622086088780312824684723168844716293864590595282543184342261370940602365330194185988624288023427145096991899439230559196302177072117598820503371591381244474785387884161689693304292406661191106404956811252923692918667660730560868890495198534871817833310902606605837971840916062322561909655904448297781829375091065497155639774182180511378372796596732252273315019527091346702179482709370624716462023136993898556734729535694760670408646817632042336175864503623659210756395538495672188786094938841712333026117880484982323649586545309116821706622878454081915912804633636304616618906160074848690787773197962171914941110856747238521247005654273431209070026803935454800895434777731377372364917747574446285432438359020308577014937330034770303984435026345689109037133723036393693214134852480551223677729133395711688312294822184070123688572795714922375900077222124351080092753923829512382030173371598100721291680789090473166156130979641114548347280963219746690794633296390912132222056646696293318765537451382418521742262124085751951202030567302067979267971160981791545363714274078379673716250618220771071455259388682906572385673740780590267299196358037038354531416063998418538600631825817025929329781812583970622403435890480250758229019222880750003549395835387000116348627795241315779387482597810062789440114527735140965199982850777303810452503742571314312511894291379872583234240177193174533029153609786624995873679551951746872183032130487160002796580806859997570031146691901041434621157419929480610706819223206497463222752217681093196746416771359201704630457556394626133152603934043394136317366678007493537717013378399668003891803970055926035689021276987805256319658514982178739779801933170434561372455902091756974058473606367545546243786123146134613656374202990594255608651388547916185057183763127791053393958143037450943777537638682034991692948406984930218347139417517211836247373281125729314155617679942641216861950796997825837523243219990721207424423145917286260581991472001530484434998918455087860751527371694525703007592489097597061677799529465753163161261347885185437565874605360768981497186065363439802231831449471886929486611914196021004660267647970819742295720071675191898922718103218168975850389094310767213943697472001279918373356086015507345857228549919624508391937957651984225429022980533538580248537188262089128531669551980788722169268409262730779953714992655439362703676387073365181060155273523907752918821672617398979973638128492878493839105542645380238812626028319994957829029848343276605658970431835521349897645557218263777996880381090213538843526261895173018478349421493489164517951592010310481250375194549539087761873842469742923214180788956707415108578441451908882038533745548659115698715491800128069977026263247069175556837539530850919954707651845074434390702601730500849556958032552842306445189410612423522392507923680096858945344054286437928571864434929472659795336342031802076431782874552247527942771334808517066581134565536663865874686773695313654503385966248540543729223677984342617921570224845481208993018106208313389209950724030428795828754368543695361562850736059675365746564308933622271809800772105469504267890081070285609855448250062051283371500789609778163019388404630119314386929700898713246899082862748165263007633996030616552478601050603817860740419699602155151749894439985294348982975897260001381192763854232448889982836600542325659586765515166946229706303192647557973048750452014462663225211275129027811353388908055849562616806515759843065488098202563040328138497689069691076826821255784209489344782959647188197069163499808108559439692966354964719234455702289849438865917696877407199665236331018675558208293600140130863047760941745407455820597625127356656170513819151289471077414742184717324294779903495676744850369732221769956817487526553039892711278528138366280716055006775641172210806738917966577634331548642356947340611781826970664406150144193878771817179726572137330308730423867735843739124426440355654926236197531876791709678428532053851242874317762703090602968231272561155808371461120291852067717512641280015728141099399737863058397416073670197895623486158582639103225571810654975824002533496128943751475978965652680984129236823164014889314644997647524171148809058681439712411632087917303544350341782232026529743223046707803634604870158530315075569174713289089821727010484313923725639147732538042053524390424023587553726664019688624293162329462322775338461348031968376315297896871728278036061556983595294651112365184705092219639408707492631303149473054430951150769906121106170951054452954169948045544728501786817282384902322092251967032646694946053437640453265770724299643126247517797626374747093668360680240092298269867930944706992761302755255115703796580763293454625276428907560396055556540134768237947466444553799557064774041005452095516818428503173378364898803994418649631933799421135028358901899011393010384774583473972190009173328560611879667268829935288773653739414698593640924973645893662801093849262259414190818300367599855612769001413237795541189741867352570088137816781423134094115790406528372336113686552756352049764104705447671525607463143154868844142941070199055763770758426894539840065615328337229040613838564571505611133103322160904430600215572869877469889354818018100143902208918763694667724963100687745873566924727141221518047589295891040118954928615442979643493809689720861676982624155382960986134889896702605070809739233912322294332691284891044353198369362593019360712260634886653652311358572361828660115788835881923915701614303407321701151927759605262118146500969714869057275371674557389802976073765853949995484581380944741013154227789262277290457034392575827946741975501274498699671115133493018437461743179176649814794060820939728589521048987258874104354462865936236392413671845162671374273830993133266212328556683994577430822743209396234170604191816049087173623994458188470775919019431581212921607613178886318319208107287632508043196437004320400518918793184023313449960518255311492567678297057775836686128948597631398555566796023236676113041349785017174949157409055354857027073219019717527873322922056935955635823084365645151083291907237461049481596105662640958039969887812260438588462061091807168760197649486692734941196234517754055741948019415676403676777985436841906988902464379650905249972531901814002359316406803378673644895968840528734747242774021839143623591172556471175617155220204930408204197769274229295600772224451615058352161940272589896246601840821117271830105522484675289711460591116868683258623923887550793688710939420454923747445640060368767529408599340442697909444526282117925299569572073218918776823273892775555617007395210187252601421277062859500899427786900213688676386393360281535901555767572940518785866399196812650391326831130036051971841938812771727434183579273259355792807324665411679786333625001820177737186389314001332466635807327356631245550437934214292814742489289978459068706350632099413025410284035350703308901832982652755092276036596762336730525036070621975048590411470821710334025491993231358939055925225394860215094138032008053604964506659321235177446259214737135392842575155349036251702029617634392843029059355470748647568433226152834148026850499502652224996551350235843858792754390189902514435122958420447055609632178421070401142815133468778743239955608024374222581943310575580130592865902132536119054289432932608549014401260744230690379213822216589727213936061877733261941343952775225206320927531815922854126043163859202528217532564957459990419962799845197775153879419658818524689836024542235383448625094806238922974842858285810631451447225495629472494838252718356921569085143061720545784541938719982804440960514173502783231500127042619703807024910485197505738810190793467998776460621907184624490462540767496292929096000475883982126054325829144395220077393298581412281354228206388159011163701254031577062726488704232596564136522964532669395784310614976211583771592300284291840005669465895451710504825901504377920191716364111143876885351056901207067597452721584719184677890497015633554223504533959836187965656693313336902156759186908665184702318214844214188629120915113532958365245864529154613655361063962766746296632715508484421220962975598441320817190646383109553403028502588729747389754872259809480103534075167980472694978938543000128309267303445012406078244848467035415100110467357310990379498552264826380773197129071928939053236992414597572588524102270403825708289951444494932456078276294620519123964975630495934852933962394962782437714939645832208527251560246073147474672060832829733193267227926252178936079957687517888442231553806225333251388130828702465844488376430440909878492918400162327200191571188939092429822561399726073364591937897128223193918418238340034903889797298610234995464057293427938855069788606179446247559675110436274576517107651674734242103988530913823069413702952187309310611448136922968427554160713027057316995741411467806134182980758879312249221140818762600043609615558059147511344569378502281775744112636648940313998345807170726581715280293695436802755770612858605040495516869926003979865716204380168858727433009307074988891249064998879568200818756281393436376675620814134487447528868923363265391344509133395454578498554873953879236335629477648513352698024128704730285333630412322581592567015289877959619077493887202238662393170114874673964486610404446945628263131274512103877407172013033143105658932162834493048763694296028842041952714384036576501391977673938565182886829025896033017070799733046821899467672382761612380165547229983043815088392614725293428649306140183214424687309083834844344171971218167341384953947132119260393629812016400123158301527314894842060489826945081664873758180689571543892712920507958355868698534706516834227963633107572951275705845374073698809416415536678218119684885385412990070848573641903035686716584486967043415875499488230611413712249229656295134069269849939295137237397823620751619482677157467644674627890990248594039535532334399187102366493346093505855179713923102566551672130276011070094006853744789811240436798186123741296560480506232927951845090172739051806042290236886327416466274902844097606052996021555197129167970828646479160869796145137910624456511877052481336147368451776117477192076133825887633703507456359528869263047503737270716109686407954629690684351632750913782117714290202862357684240565462080774674601566206712294395800856875704054867572639236416738665784146168770239317470514036191000994536547168364081191271148752399321536603786710969113417620577315654663974372455897620143112223213731239360969214983587991543368763137543408917722943396553672074567267182390027273683931872842299215938470338296301633149793417418192517788546127403926824458486058644171901807538805909892512441993401877797469294489718040869561114805242449525535209678837522884516463477064435053368556162447835444304843714475203365569783873062635085422436565353167597619817084491822918243306695325537978757096926587311396514531729091627321667015395664634374660326288962210683012694008719995265217758720008775953529206426948615183596534631293654620703749817575379834817981671869591764611431415756830924320610792011928229388626043942202240878059109690049498914354201880908975066070953738210308439865354778894511609213609482682225907178023614271309611072392913591351846184345408118879185148657616924531706152908816269493913927773287217144910703594257404393637277769839478418933195627910816810309934529535672189871370990922202248045714173990027955166019444253825190670387527915005196954755631380022886748631310780122467177866732240900021687879214373452332952092090441640174116832962207969481571031575806969716687563385075338181594459562675052264760415381998212104349952633747816141625255466098135427593500359151373129404998387465010779918744663462749559711311913866411168614089305468405195879469421271394980942894203817758065226842065444805651681235082527778181160516249653801346698942946338645343598228628713149475517040667783898870880161499679501214817119896973137985046709070236165321879465557810662966391250779915648543094304743450172157995539535074570061830198539507331868361528360307243836775705145800436612755094840550399081269636611309668233538998950530773461344156776343599350938177550263213758743175842555087093940662436259734559356255634653988233401035215004754599525438884526819616007291599947451547535833142047632991587840216077555364476905282264254305009550039203785886867612732829500166424255465850897995658434016042391442003226745594763981778114621580522193247761006573773616931097661300803086120114937170607192285127305324032455929987402206905755470555328168148834695139077258674936251501869552311341218541357401992061461764167421235043806817020263762488578787958561238265392279191674014210010744512842576620331488202241505315301189898490497095356520278012372094519998604877896853988039140421930441963150218422845961276071362255078799184215497888098119020368193000244683168168053426526334273294141514175529170996620713882148611592088138884229455052727891156492594491055713479280247032490892496794749662532927501837553198724328808706094209911623140064989155586420239644913053182029121913393152692064208154549677372244158269727747240037701792337654221225598985106172896773387505897212467550464729973469568652221403158594575734656632056776565410140439938607505084424149879638410275401519674808218521019116386166788244840534505229631149066134187459636060186310776399578756694412115649640154886296113983078720307623846211720092904582712216011815057651298264578915172458442019410260126891607268485377486120392388309298434522917557687664056824487383243540032683765248128527702845400217763946252103320737458684875669893636589135828650823528704662548106318880528784408861457754310087541057581903331262594126805711890666033576021348468807366062356601895839541614943663598412338678074780113907826709247836775211137638842634608474865430714865434047354227686224895745039639590189975091869586566561708667742220047157886974980543635119760975247471476616919236466914203353015476448844784109587296692872194501262741414758292671840727943368001990472278774300222077898284143914620047937667703995803736203506775988624038802883639781042728883424082073597138180933953072695401761179040429812591799450379882547435827737831771580224809802904957367554509097556865642283647314790474094351470971501946440152201176706096278790192407911667344718482822117707627286765087370993648654629751217854728486426185530465003059170010310736184997653775705038407138325930011284633991237051400236636129364092429011083192729641030279476257661769872830794359513960771481572002589474099227182522355004523783229827981044550356161427042985143071563724027462691401783106422145570209617010621113889388484163642195288676621433605163080592401244601569130512284290457598747273091158776937506456908903027643316719915324741136586087483370961286864672677093506300105625928810205392771641640553953192793017298878755824505588399499164406399296838351462840152355662744838573934135653732904406832583908161668190728354490414852233292424020399851124306112361028928748817244523399083258299617603276574187903323454560946537818007823387130486022605552361009833348188631233554526830005955061453289881092834904975200357372301611568037938922032294562334908608204449670790995194595768779500392517160282466929290123713302820957426866277747789714012034603026927259041058087096599943127739295319038824315224286449427217534398031425608345700374802429305731162546557351067338511930759355975761939650344776483078841674368990550578439351190327393238441743381412505444770846236461485919072400387959790271589429119749008587174764581102454049720503103272801481199662154337612222604150719650973936990928434417028623118950715132498977897745933961489954521325645038110917374786328969717457864602584084724794422878565841386628206228098677806085719913206926150543869158911034219425824279273646076147393143641447400605385696850342676512640339303894123815292073771308570610770429310738456780948049255245442976342163558105489638590207147750933613187904827273074969577994368542292603388798988535135110913060218951470034458082125923266894559694244098698625820335349383445459151500442103921999833031592733139577052273893963235431564260375175495925487459986103007273889296462904058039825420263661148263025147925738928096593775347184013996978174753452117809007967281832971141517835177673484793536487012242167905381060058642971487518689102385417283561352038875066331495294912081594358388643500261991026828397404912641490270204123792861407687032940807663914208011941491868149710964108038188980807447557271709531251476192813131443337211081291532562577916825956331919223143151038123945991017779492940060274664423264766917565430713232371967817218397737464839662033422099362207626503559870565771881296797837848752670886337344641408597537631188672678091522720852796646794252371745472350091373778427990335827534041719022911362327033812742563111237301618701212159899390732138683984716314014932201539171878992235059558224674880093901564063246821953913012144750731234485852709574793799724734128102444570676072217356755455567119126951837708600171475198319469482128556191062023600881238246349781651715502771397175625213198167077949450613731427776544089199789218673627450014020087064623889698146634886523818219229178748290465144603184430746206693333000883367424519567969218702598158325830252348497692517177059596666131209076218449972912197890852169849632364541880316713236178991026416361983462593207016662786225312826956184809804714760895810333713442266708418114902901908948959672323398965948779559650676939266323521656305197527365799190770412447705612278686365882161969479626174947583469228757501085230321526140943212755128078481012470864743754958661019103933867282741612208859535268776306705891712857307273968620116758771625909807200819269876287242253148086447977527587904164084885307046778166597895583177711853264051168378930736374915298857679632727759304524129707309861875185244082341375770196003012028041422336616774156287386110756592075533266700459401611312596064536418758082705900971815115728092936346013946599814191115664314366651316894697436443399584755765147744410725450368727227487851660839678693152971226725582105473009450183247105932164394799555739221323846021460634825249783351472360157742132189982535242213026597826465827349141700083470642834245617146377569073538996770084893504177211378658372568596582329769713028652890886526886421700860601628908310959783861492343593155658838239271118122902354823760992952358182076396291596484799772572732332891954251768944983753779856100723657639509763963696998536376702438918450942177730658259892541977232612481643973627637239424104247715484541527845114679038799012941984035813722889766122713697249810676613149303965810536482737944249069404161194686273781543556741076075226559538287174402580874591727972122508965319721305870668799617236035830601618392810417183253593148729297279449792857221452573142480453799656273136582638021028575915598818483105116699137390659247620519178539777819660120623500999476278193838170980128319076781660572554184782647518855672047404272787986464110736449904364266439582127435465341628614399186157628345751175055504038808289081008424679554394788452547765085531543539439149656275618421348260267337847092721427201373685543929679740971345320427774619115517192678479285613159365642732799100420015553122246654979705934039331332174238885221174243743433031956535454541825916548981267088553301087033391765238825107934157777379214547318804606881219578168942373885186899866513123063872237743856935884706192754549531512018702158994350109173172314086043461855597556485836781435652971632138073034447958030470905881431806823670797164104441807461971646448522922819001772062662686973839968163393952992720060089193145595667533475238461582627819533550933884489078686723738614307873569822723421126354769547076326269235711189284027107410199871685479573618654449033646476635718052672209224912273263121961466071513531365013429605826675507575728718501979139787758014402884087729212875549031407577060870726181287810017778554895713628513148101747214471211268001052595587045190659740530623154808183776690131735627480787387904631230559493050349129878810506200348570648543688338335128539637270084345957507066406970693579746830526055282869131022325842069461102811034029223070816219889780993371446366806595861437585912567964775534177517605104703828520555913561381750483334682418802621937898370765830658437923550280089345860557061355669796434080720590804202047444101575526852018438616460182578388508841364144152082220163779707966079499571810955523580040200890815086511374182740967216702376905614046717639665812076065389607099103056917002399692723501895916944474873663050791004025356051117663571556788237075251771810452633912301341296581005921151742576446895402806701031238711109734522034667909291639981634624112311490877891146259629183262714838165791524442148406555195247142163218664416425429999327122068065350729366898116190801900801839527813332546896870272917987448247165005725375979857460102837461630339733437187325936258605139703918537705689410069916018781352463695458307155621157575893910120321254894688714643530355655300140965015097579888544571939867650641804912129828687749522031314840708231367999743308939719859131625684519741395986388504232582443240212657041383989770677535134747140323904749800493809579975949597887004893991014449022750653520776694703743344631997842805371943171934761425371429083214399699691564702506357953136166835169596650112815052776436090649741600132077247092607945825785698679411184684539921591850867283858216539820513402452781606419042368174217292587644715127171729285674958191353805731998778907967635315378990634319203644215632740685317606877161508556060988219051425486741136977713535243036147901400554389831369955821006026043534473351082285731159938880857340191328125614927894705830120371230991718317363993037963191605031326523759911384636762975598829510520368579564381039355318739188439584625093261035002982793636091760463039667567112198455908207564073059141002085652481286857583691055307102195684476998373417066267422990457798113995271715803050431719803368732771744807343987348949718775590671358635763136041337164899058977329935060048973223136989490479255367933993918211540393483923389752021027891534786822398828376310778612047113238354493227080488569982091561494857887679643933217564514877239076392316874790481815118298752331879954609200873021908300226541467903676779148407296360535058357177111511510992842117921001716607812109527766723793684948403253439275952517203360631929486114464623404474712458839332849894734738209664656467923371665926497116260876810557132285921723496959900254759357895646350531584373430160031588417944862529502045052295852610339901881823503605604730875462384317739606458524874806484432159094510051689981814754678091398717980313621360543737515252594856880054985779333209390650206719264461880755729297665921645006613406885177980393702535594068510963100123305801170285533790961859138480851315995665961107348993989474644851296351788715706391638547658497265638175096849649602224917791353945470690662753081541710896502019943390224506171320556739404624756908108476426746143099970323818720883380619166021426093821447136183308431741217601178817999523405202134308674123181742503255397256257810160218630408932759448234739186050418005521835193027222769738224019958050233053265084248086544754108316415801439955641290868194023845081381623207631962374568578764243471730263496313316865032545117496079388318607693829600459146990221459010314402201896525956790615758682637261396148307821583790468599928828546022784923273378976104355069892152138671445311771037018640050945541089301433848396453489796199383703785939238972800948614319132598832196158605660944340114560379773416056982888703442387862046293075373480101159758893036696291827984893568691567415700591449368242222012418113299296452496981784787205164178865093124590757579820357016252785592084828137753892767192706250625159947356944464141021136322197929268042795078463681625512657307330861589708501930861109269007636321782769477544473618901599273317812882921306471585263565734341275109251648533240539264380398683142829420163971567651563364374249982688524641556721281590123741392775770981688029048726094959334815409523792681776757673542931995269929202852821714381263048818934036712274771617590729388709227531590645293996363921141718001030356071982384080405442538906051367638774623585041176567357296046890209284052086842412192323061634827864797742809738866546270205692218954726582792702935558153600090729666989124128363952813954887029510140517039287654614993823361596055247138757771293330265503718301578609170656414807055806417468530053036467381827476094193650603448024548597677128263815886258253867468863175164779341551735139309150012861602500417447143320791404881177833767504399824294237609107839744609329435914807331070828838498228137161803818431609438231841650747954401255563336366841599387559469889267488978594734955385591599012744273518812445705510079908380282697478831144071679846066985996093742875011542004333201210443090331562020576930826942541887038173997941945545244585388144129717724857261728265446147648238544868860644526236010327934832942442597071516178491471645822994279456079070199182139079273503215613310184504421249626843238333570509445999582849877100963301572578548113690614303557465946190490148646850513964738455958053922570262245944755830594244528192603651433749466214360140875648608794059155812892375321740206783338325334724690421136028459488187739589653255506454983869232927741331084294450307256259582867148869080892048738153671029474695851346906370286101884767516465218061200019325760720399030431846159864877441228674470717824812781587087544829750351159981749532709280439152934432524004176110410494429186737116587235505930978615458230887602536779841096424192593958566594304139698047620634783622853119414442257884709984197003208835762770464898819574531976262460641571593633243993005951754148446511225027528179862146778247831444870978019118421320122190759114435222038193541590131531924056708950353199242520169216470081249321522762290072580203448000397785584123286330738135693490699000295490510409237896799093485151820902846717252610936745686841267743300004965345535188497763371224812771892619198457063599237753611052478271641223362261080341063102692229611378859206063303260427595958518347555970422761342924890079416041031896509443151048779192588497774296561828490308521835718386226156564427344358393418581198485179334441998163786730955159858228395767438415931802260320855541785393331989067123908250180553459216849192942686426845020163650525475577024267282045736858980472328619325416975235500619807062861805935414296253107881869267880494929860922922259922075004658746396540684122034128099056202885238839789651052189648315886310541427629003188356331745401822568701195667946994364676785041166821871902272604586643124303568251722732795999921537573911525583939577129897761946444587692056340985858584826370335179696871090023076316081352389557937926517838699119012510245832390700375285380435376059999636829753805655070402900101907532114531330545686672466107430202569150026813462000814090866614216746297240399010467570730934157353350249859491893120790054710929998929914957767373771363432117251115644974790496500901670558874247893045116731634598412218976292744466756449598289206532733355241031081294244846654566781657091786995523302476868238062727943610200547278788058793129908011054090626021342583711522019284256629251999190637234461223229558509767138227441978096292118955098846005169269067558517669883340364227732710003040778331943755435345843198918784594012875244202246918603508566659746337147728377268741779637493815286878788927249383305304905861741820969639350518877043768647469695033519006552157342579404384762818152447787629587392776377623709430399704446447839219405007271424398917536161397843585821082016655928534872128659153565976299986823628333503951220997390028710236839162636425100373941642852375967141083819267700584605482397185850994239870145820781601067812042494434298623695090042959665749931111882490168185020522750232478963286843209341654220894055583621789306969981439028791212051659432044757201948217983246081791674183624565556738163060680555435966910254409133749315237983369943545148986526786532181717512501912570270604407733730197758433885862823638785438933990156452932668635293188449891159331712169064679388124117004524647770728925116734332257178294694270493586920592221591320524617451140114366676380951361774159933797139247528851149000154645820430354691387421241600480486477632032020745111546621564003888284851419379570957217993116114460871806873594498636241415951517845469703982970405575563698860284874707882115910930102699152688492598708140164942323861136597358763831674374346916211691922347126409923258040578876975388036738900746123349460669250146399479371980116855092150321426074778167515366343301862431727152216832015811937388224065769534424163513029868266989772354072821571826553094438528942536998018982219154618744815203529413238091849744902613592958212775923886302284797794294011090511220202782451445844115604779938863246347990601234452701426401110131074847702228324716487957412280419174369751466849467287152706809136968504246249649112244423240919318537291890835774809335337276613328336450543250451185640737047498347509089452012236486242288485072916132522090884843764994921788672235386742260623284957689670399925363152765033003362983340215512944021097698030410547243866298051856298237672017418814540284047454176520434956364785173574702045167848424570949335487814990358529658489475263929913097942207885226759999974768065191385012983021767648887977245032610747823912680154792543938852904566975465190831412262582871884815022844218901233412929744851341277934952456443422509793224617554686683129664970451783840369319790179631643023770063735439732119239812012862574046736214006586019647596799477886394002794604368190765837726706662677419289318994215217129976557479295807334032592538538653669229578061401844885312239377907094876130475908978869248659225301899129210477095481136963764505173774932838744843440578205727546232423186130734941384629856462749365952643480271516336657281172344165058427667948055340229138861887767033530368502759786281762828728196505455996467818681069546777500144042703593644032348087186364592463311662649387588070936519009144001757218375733763254406115645513765893390596837864085954115750694287819061209622646214668731858510663926731802991166039823407073378502323175495752079530291016595195815093477166244938856188900515640446265054557819899846238983400584165724937083802077409302679275188701124814733451363557313821655425024490179266605804648678936918867441129583341647377079702133422824627429707075828791522569871468153489995792499125064696482185026626850184733633511346445236530062372935884493974985808617295590528248091372210509988317198928938459993261428525991420539095865181764644216766059792496883053544053292973669417637051228137570664785660124007897836213144495465090852526250904781955557705324263279835719349000636661008164195827189146552830002327641038775081689916535527355505868828250576954380577351021263371562107412130653529848604717501550834927071829591753665685834426680738617083086070375453637275470884698505903512892587583825993448043926245465504530065397168028620231305547634027763229776740400123571029580742045092772425417104622748190340983724475344146163304976246414955553416472097322453364729727202119672351177324100432284275478075129401096868618635847284320901729145440843323509994728811877480584956991047680798946388528643170682972555984739134329359415727211558179675645271978946765054934515566270936842105201832578658273429392291095896745873492437193743170006309887452466557985457653845964670301465147020148278159009182444131510202181213154069850633325471333166896061811321519566756391079412356395593839549819078098499698368280162382693399610465991517534115924831445860669740977545159609562280895870071022582697381218250340094151675525561663667947036923413269252223398388465738204247586230420103340159426134424890038076224500727399034266680908489176384459897580465745578919271648172951102984720955905719676718452887477277977815078877044935241477986413241643109149117071315189539065836638421443030644368201226248737586457412935858900034583917706126325842181070272213675261734208544779309027299029411666632930558582403495094233426201262809878827412869777231633488737234612728159644966872746341234576568416698697842775009905081816233194190443104179056611650194197680178822103681992398698296815060435186100973873064077060090866358531756358722923343494016984226066027794361976995441805921182650503434769189335759247105262103002394097166912127002121097878339102501174463367772251111172906097765951570760628144896976437330496669896896788172010444239361362071563651740174706159409678807918561905392186734054346687860940087013684022385120519170302608211382948134958165626372073247515673441830616885257352910867870046030313101357242947412525099311019845365026559960413187186123020690659885008111354567173699340855397165518059962320228858287705952552240686981501267144435904697334197937013276829123428941667257294632843365128210193494427709110430535448806344379206350026206769173387116293605582875279539705916981162777191922199471307059961056696605511101379983272959851840307489232003890570300485149075969820168221993178204553436248675267350291055512447904695526388303490293962464200770492973704364671996262596694547300089001367595267828158552942537016544234373421610317509403582692236201066707267115697172884819453832120216009372400239853217398245951218847971323066071007162725428268663923486088205598113873760191733406102397183763233776451740424544471257513817430752828449290447028637809970710284979214555880503645289075907273220704009225663385647957356576829158285207925296364551519598636460359758677884167713841905639339587320668218709808226134392895497922409562804480649453742453962367992759062376156953190361756694450831332094177681241087292865851991107722621994733519523183063866721165014340044372068664812560536973898072555339511468496334221916734326057216565981865588213797147130876877916963106067135191338890391398084075272427758266496219888175270920197697389483820553362759265263734944379025340537446712614474524814183214022601824488251545633577361823301434848030088973978929500201001101690090482300176685691253081211614820635997256706903096972876216864925540444777056978260258519126703054592667225693455047472166643548273110628251666029473717728541957083666073594976821763558204558912018488313562302273088708491140873042300120106927270475808815465998184346636944082803967128262881052095402749780345055729788810965403668826481498387056782522171120328417334342128274502429540004105601732774023774820187178645483909410287597766200352804039571021205831878912255727008080648091317197638972135531757408319795937814725696395731304402743811876067377751510331707621457088740607058044642633772151234202627767665968363353108688870414429755421600915862340468320389897673499007987580734198288798433850062528674322821351586963551270983774450227513399155351053987206834040955247144501639508950984378917406515803831353185762073878789997029369442600506056841369343603731914050655963605277764596984097574452035340951470124904833471682036595846621173994185654219061663227818914829369621873725909226571479711617911721434891561380447563674208853417304112153425695224644165925902395979428102855739753915303170506840280235122111589991407199236835889151965547466557868916723290045536007745140136127199713123441936928324742453948733733930207461334621920831626618942302834267326525142617284484839312438847893255435590058892555295229950494415594906532100713075739752604574873230285174919575956137147815741614196059954627372816037923779856479576576038208775175564013600143646870843743053347070193452640523491924605383290303805255139421377731243234609429744577226234045536386358534977411144657917807893295405808539148076220029718236408070216986108782691839666209405979417496407175550095516782985896423557892212426160461126470435267458260841033660432927014820812541438848741798084485336859741973395875870271828934657837460956530008528917196290964711152016610185738726905869586398316341262290788807694846642714683597202723015690298840825492434620178702854108013293309705872114411621673159016372919729006437824398126556928241540571918191114063516018088021444559206805588680627771863697158956443970090164091715671857564677509908555348901031680823513383825828604506069289257965766372535725887955514061224857892786602848820984550703718672254155230224352314797199711868553789521222825435123262565185693838019393397924098652862852698979843957861814198635000354450699592195763978478298736180827935216768658398043528415178592204095007170432030091147222231450282754513996105862490658728356670743263712319504902778522154305682818274759652204290422278380474790498854402088889040732950601337249635123127522994395171457561832437847932415844241447717052028034251139069846960036654627281650031392126972737597349961492640935257693386769624790739854547705550854692375368104659325218335600038869413421356169623654623544537959358590938962835032867023035623774703493827118842044472489080491005627462171473125738109606898884553732366892812701821825878680449738379771380003572418655397302372001738480170938383925156699176400793454728361191388947618952346504174211584703043943790584975410611200824694288266924370775119299001394334927771990685894983452553378302618456117744318161120542784142811175243929767475045921017912590121666989297074555437737813809498696208861119776056130701582291826078436294963062322583820253935880934139622831681005143001965805950573251945622689602863089500276716208942872197773970464844175989861540689578483549027981422634527279040858712490888964436444996228277645218623376311477652548236670405550146719760544064057372002531889827071238809452847196615493679823884971913863517066257170461142623379694645961276773508701206696335568853688028763972815120252348181759691389599347395688785027535495026440815407396393143085562395836589203783025300368797992519470965106551734375917641938073081568817785516218704570692008780055297610623962771387326896001770460867489404685897404524766546387772632191893813387801250607517417070387946336613960380806036980852490019426333731800920425203272683327507316962072882610386936310372872252473398834048965825135204854802008444291143186866563781740185315698533190787258551504231840011672674275981556351324770256186471617445433340031706102056319038703761490880643877788380324822649520016687430493996704199789384259909594716146074472327279136949003427413187343678563409551203209906537393097578703885180900157200389879240705198464378726567250685837523084024372262425258849755307531136975028646943754222346253287713978824552997379840578398826692861170225224960563429133722449143085661197723373304119741140571526107263492491039331272403788747513264847729274465997894867011644542000623745440188641171135993536038361612644712199913625794339912859630046562413229199298378470668809337578442632472815759650023840796712922221059642403989210774657390015557128505951802515044663119806741367729574675009197517493070400224541178733203410240544063806737314048538268445776309628379045558133933711570076698869141550607351081900132222611859727763179353990925038357735050318798674077821476632237401302981867995027847658047053062157613533356075154628343518184817178937922657329493612622170785946736388561747805654732690518823390656577788595225995710022550744392886820140419505856362444468888513638370662953977740409976263041584886326328609245147587714536202310755048453962272668635353160890620623150290380223478345570259643253639163265913547497386036972195879646825434639767412041530056681072680482919477967592185352672508065638982382619593817478422562300004786707149453716664235779137914919984096120930921609359210895445127552657809512394099016107181713122431561425185836928903918980060995817279722989903865425438450032632377686272832677398985799853455547570412916073432671514701360276031825544793937834547794736888580139787787708225646665032836176291952056668284434091631467750060715149703330366177122780881876474154986363829220873086674319884367563101772692690881742672357537765064985417112175102005698052655032758919016449984786902395040555209013243614730079303708465664198682433499696352687551501408221761179818845813653485757172878620153340568175573314528351675163132310833702523051285387098223910345725300805751684919785144408091142023531305242171763860827274461927171320459955278013409137251487617168347224249592560304471231910424363213075882379858314394688799575051566594463276464337004625416200198864603885813853800260988578356937216307478294598336911362557061500684575925294779252441519653288544366578816236056243132413268825830219717457068286887017377820708272147328211169859356554932484318804128311081007081921578904451011360754442125772125500731560064704752537051399344142500769307430398281555925666264931211201431955834748401165520747597909253706734581265857907799588680615322202304458685921883523075020720890545135520058959395178403463652497426230439933813449313335895826187277608499579696299276544851895482699931140392155975423489739385307907754966861130459967468749185378791011292151730833318888605350769381322487529541267887782047153779585290131927109346014198840003661538970552302774510660527122252232407038149383551731072870439165740239381512577464299467217746969915312160543242643533221699324013362474534079546080577896497893460435883358257438653302082030652270595537606266890137634722633808857742918711565516112493006676641177959898967663886447501229125148641511653317673959673434670091050509693638102078594789244802066556155836832130465800493958325569336016311131170709547117911600663037399072941619877476083813094785513802181056092263008168673233475313905704234950686292183490711490031672737113901019189947297676462771094354493695871276705933440887270280188379079459706734693077839833158378931782845511468639899382071003104587746945991366689606301647913302453329760323015012784331990772831849595414200349479913418420522842720755918569076300274345665466899955180508404797585850077568421687728880767657371891882100124308447136359486033678524175675423059447837155338404526012533782810869682376595814823967032656572502973301663211268163895848628912885238800696320013445913764631996248953531282821080939733549161342966712985048899599096354737608519309101446469758634326107620328979428947466204567193344870487088394867598291364418821991127448047798607767909050685911472379485676272650349574639477582111167053969258599595307990465192999614227946965431731271264889909824530108240764396830873980094452632508207022848856532162836293889350004992679077622712234105476905535573760756223839175950397073093108963915023899972904519012946625478861760689208633767984734877781442350684040943148362724933996051768687347453358117905033760561822820411271278357474782982951642130262985443642052070075345559149711658676649830349332672963762714477725893994712812493239636429757108368316701718718331501139237902921223261112111338049056163669310897521322182977131433946910477651697553641112423512846924198163257477840101554699291992445441139554286757272167568623795546182508698425307791833699926101151441017484667886268719926924572219713594488441391641904008646524430703129987378148771266972982333668085303741847442018514931528260960552473131964233259525105417348329447540616686922320210380105160825536329614084279223728570524098242725867674137872656617425572763527137477395043484245750860685298662260237445653478804581590617038593811383328044871576784366305202204905738072294317190518417092647903188515115609723498284903283926042348723480625394435024813936085842055870709045975331722438749486149395926093523348340203349944004462384154682759095243487462356543805132606328850109781560998941511081180141142102405295304832580484365447901561116072838999051937304113066760374692964169484301716700166843693220385079530693286320921443596154743224959183301679049444782171006453376709828738390897954285777866900645764770724207075683164132186660396330033164859634777510444887896904628389137152806714569751324981059484605984905489494538615436501567972759012375571397581346818871673507376760709601285675660948807730601504649722977051721532724405452550123766250113074838310916257854213434204635025753428065578444063851862760206824713428911382148607072148671246501674777098164811115143191990530683055007320296169455417891340501946077808610905474809862149550082895417054294737441065604329347057924850150558032743036488881494941039171915631997456578940533005555380006352029401164900326681852972619633610770854046024215105915592683123114503254113746215595286074694335953875084295559176436953627554690072304389178951165742286339008897952979631305377529493422050043051685715311866818009174875358698461226738909724182917575394860508968482706341111800192533261117259821532341986688581931107565242849067115123908963349112169887173650608897342625013039127648367934806506047225571413217754753308753721431277867284763045570177286662478720418848540058144179258211017778417609240810059105494349061726618911500314075970607509319644425686573333504833522142501402798111353763709086939913405092084091787975851637794025216645216995251310120223149710575190987790567537045511376344002715999232487364262449060542580853929952805852058595041914644164064465118803362029576495071450821927152994452786641686108279796561952845643531739252600342326616121487393539849443122989842073692346515595171426208143438290664676357829104483462648050040909752260451715884147687602495987222709934510202465161928977951388463663445409593760131315278969983250238576318185833412056157499682610552633261457657293116485136796877090973149185796951675551006281504750287290603444127398663439106867177095874573268226643652048728644967644998494966844720457965350911350792899297519150504040207737701247304353458039897611081597884108852268880139569550187454437011660259950931200731896583335973948908620591181211803972888818965335773187352618029519335699056805780881530077229066093943540224471477721992080974054417979200117895583231910632109573941133087306210115607860024115402338144392137505777072530406597866937924574660536930469594414608712127570799754051078755428869803286647085371785030658947850812174676048346872878304569861503653123469956879473380313342169544581825634496584464255390566317495708613183508434315407207049534465092201776904957286835750484812791627005367546511336109860757617957160160565853448913571429598976842601555968099860518984760274904070623812435852227761777883903432624155314583364284392467125872345584325162197911656393712626466908224805766359396519945052867966419495509438491077791650724753415739290325579811916737917597747357260837989807769683305273895876843525920876943992937557810025397593190251165855941260622939476717787742670188139831902039732356310897476724150660497882467398599532901958506389758729008373001776202273650078016506321845761466928711383587169160240533643759131146743672875937113367700797797472826928611594000140360950090506016945345738175253734338234960189067560344232831185858198387002382441325155444902569139132070779096728994252430692665946196434217226361696699186779035540575071803229767306823386702865701320713971746842171258369867111645472034811927118842056938809984215161696058492972725326461565903447377745840510246689696709156313658710372242452742131376067084784700251857016964359187592763214378129960928882119196839281997139713822155000836125882743413737566749202485078942211041728506810574727049732965135736676313219380271823220002646825872721513041337471825078577092801878212423456593054071898981192882561262682235832903769367287456634382585514720943499093147977044080871440839645660158244379645461720978949214679587878576823629463257781274867524953818858641200490503156106958548072067084574377775926460168558356371759387157987855454727885099506150601724765582833869423795485048255696739713219064121479438909941215087611666417342317417562913656256323082098500807629930999474395418220164625932227705633666800162290683696883778639839595255035402090324223972110277805936878740951639352068518523838717315839797360060746906606845341046745973485294564191003224845578316896139677183007641869671762871840455488174230545871302826816253580949117923074308342108529538313304823286470885031528578574962208651004034567180537679454361620488034350421523780966097413608963074162842325619517557346480749447328025506965535086837105225527698285298298933225166455937948888787774105854533717622768222287762490482619007904123604460670253410416336523424769377788715774269931059013119481564910742766354970119501502623731244469646789675578450546672303859009205491264053780561667200954634870437147168238039301762093182448101469330559683827786278588830902642971143912669325901737493961294810250313595837836289345763778966704031960206116808112306558315759925081811802064613719048295905370909237933777118390853455540762605412159276930160237067806098365654361475368831448588278498331598527094360355073519328390545222804942856696940748846262218858566120472148364731358721788225181859912427204970652543394740088842198081350900738588252130493219172378852919875341842703340578113655155030486342882109412144022353116094030345138544915355055896385815219221507853221581988234872985302901457313476777966546386856328901874675680188436541662076917636148303664435359752092406648364176970038173458234047760856049160284642655262762260130536444794971116950532918229704325622370223090533395075235470288819815326587124449047467998192947907632395511840627576396110232602043863053861205502027852771929554030673764907620584123549073961152690657833244418296816865920488316900397319607018246461510330833964798017563807374747288299204177250816966211985136814673369450365402668309124649220629120744430622082502689550046646010643994396773276663520375695144102615708708959348922459265024689296868939405111260273870219622196525253155374513113673436779593026657259786574817765446702282776221374404927294289532214361494789340925425716661608768588255706519665240591899746378575594224109282095746929635134778251932923393355519340090503469504672223527320945274191331444888557137056358186251367279697286822474341664742747909255301648335458941928422001004301432095500162171108049335899934742799759773676910256360012601150120404301353190908683979272655489626547302928668369820514830892515073273521792979411084791432241248302644089586627055199136731148503017494327211847210426252201375914077922188250304689396776103529679450477759934054489239202146589799530957659464035212399638506421924729468757604639640454096750436712411858632077012104814222421248319940628397414649475338208968992535688208061180991987412212928815759814589352206973389156045357955774267433079521468091452270122196740189142546935989600049657210508744423062323356830621621336671438635396627378513968909869274746961599899817574417930971465127586296749087514995102732241958118770673383427133152426566536807939012809595966940889315891611492967028811155327588669736059443613715758605360311201122864401921930243278875474897655812832602535087601141597699776358360282103651073598822867922596980488732581795690263287470070763059395326744353289227033108705082862744817861970162473634051050456032590348745098395956001992979390962492504309371890984698361390327357519369230448612717139994023035211823765834530790929649086926366973413352611574468495112830817905462996877778188078814909352189215005242962907012712865989055149616616763345297414823753741827520741852321378669541573679795622717685895130762423326013812852284484264941092605970530992600127060394810547104094128166751626950231255251478249954845430728584155858458341667801862813532232192165063275241378871574756915922104873268663871075804797266457309740528935262938965784699640128319304753945360800549082716280759371806264700322115970622051369541332304125101183334263606226196413660574871251144562810441322187688921609095917957720532503813371463444093163249684713236967948973092587109636686309422172363295166002314715599588392087631175659369100305310495763539426291937479148308214565432914373947886688279893131211678338553456553924868751414442175120548886686688406273502140394724313288018509654886535376467258975064181834335475058478865637525386295825953849469440460684318413577728810516462844066841181124904888985006051990584202667425910207412247370887317679581334083290148423045358000383366280979968417570952179008656243141591642348813695555415296967596421228865341660647725848889458029131786997521077117274445734786770782293816368624290902581752122058701392078233344846982891975159421282065292209685407963173282218542604663395788122195120556034172015996960953007631301205231098403820298299611008051355092420167302688391220393673113295243497819857547772483750398998002318571708399346067068942908744156654141653790333751577388344660283198473669929644886258225261121151684868736056894900938080506603818221907277703889080465737804602892314193151060388135408013849245967308916452170138092264069034566882279262741738786584665090236124232347238138380739115531554432899189131969698565768409415424008912445592187272366362346269959586560611589881486261346188325058026882381003830673167594695268542484332658944174287266953791149495719178658820559629029866384720787915815848889391213292728723671708992153399431774815270497388936925413919909288803849379933993061916740210613333453473506506813979508139675666006639702726687689069137907169621846313038890770200324362883512072899570429323584001443934978582074512000665418048948140361683006504107539408900742214324222024287198875198474230228748677302579240546752048648836773480409171420822408748677753532638358865792863599328037715668767569039006635893083334026096827560096664204183023049723140217258562462561887701149392041985518770216067670660727887660147248521177088326805056602912666763053782234510932103906460522133350512274718327750222998725560569323641573114535059679684368595234674192953089180885147547117482752760114101972535961916776866597936102960494162920122483864393587568448725274605715387914851520303616318166633066314253827807052228132513572648493056637762999267712013126820798505200220912025609935382533025247686832589242128883582652933359198999251323921802963766858633647081165347884037589955480756188833477973368182204450122537650494004092127492692815530309090460260198617144804040226590121076498218127941391254724665964716798087576074502354107378261174009825749506787421025462918318492830845873302138603196114333189148457968018009111482855033964785712165185095419152836266619102441781783082568398452354979935262512021451208133592040331041326408715702250148635449334844084882051837535855403338540321606549462861439998575369436703321637704429071361905700155658385521249543144471136843447649381722245902448759332940295341598937410607726334678433973431386653230104141648965947598231578871820020916148523014252902396229374799348271020128438960024991864534107333396107754998846173424363692162204096457430373419001900541031827743291293294327418818443176962835921209762167075883472968592561446987735554627728751925860293715304103826602718991316794496087632025657593904385349056120990014885140646097473199725141271658036334610155334128632795005764387471019454267320680016340620986200227318886034726709574109703739619789464033685661009377472505591955111324184965335389061504929278304372311545291808093152957540440433025979976934940487138264346113862037485987987847593408939558217147679595583014686164694506808991549385477689542159398374107284311732880762548653653995606092901534716949249508090673473722780404486939190365444990254974554522467584606550592126627237195260785273025661024275517563082018734738765805377802439231657883683517316127881852420654139443030987924167349481757062287278602152332431595362572360403211189117910828001296521763413516280250283026717900197151776508117928717761026296478023121023571664773081554042032042715132725951648892098138725728361262228088734328004780812097190946876249483371778666470018279550314715183282378519218769684274353167613346825579705417340598628782313882099974552157562991638403154452793753130041006603837439218204074256951828143388067806948790820314524134631420466225125784661907514003703556915706377661501233164847732604734947757726352713806758778614412038841037328978814395230968137785453777235634371372053642852241509444040344642069280135272506207500764664747398347183953792400066002171371319503481259611182062445081186314357500382444063861211753309200943699522540959436122757188428928112778296295050615879754748667113075246549333594444240924397363675711099321794980067101116366201206173172651393791782777525013142371239585661525387836731931449771042384868844131435030927115397017684983069612959709613379135738816740395471307572199390014028545746801144883022133331109400570788225698619106094032832643998228953486658946786226836890093702856515246508267242663893834066933942341596942791833651813924451329726155891862560030512627115719660602568418581003401745263385562124814099910586832574809205792777893897240374934961195713977740401121291449995005462356119836795050599621458757334614402698945701712160358880015008934979269030582461319683015753835929996924140149436449056336745270190011416615965173043428177404310004661320721411278545909457832917453709969574066656239912317672361119657997911888795959428983957478432991511051557527779613462917440770890056122950917173859921815364750488049446361512314643736354293869775533776878798834575914968678458302490089839962746025491852163421655134683467333714513923129509092486504999522259266555697328853027955729266460330976515048375763022405157640484857769169785087549471222934973324546606345558049151315011082483291128582004628760529418222690099548154011932847774342042521906111372617671667662123288601175802531493428368972135165097371474112779757458910922099425119968706404303507422809103875117146912858126417100789636651869713583650292533061973669875623969579205829173252335672486224949881637187390718535858056399891213456790126194564079124892421732800093588607572340278375884727680103358378841945108759628250233066583122281233562029487425631328199153523112195149348436160807111555161802912917970753953235512640860563091278508319561045937668501428193848106268510937059411899437676773645347764742074198850974176579831032981597010989604623916000519506698116257086170364761801959350270369108479383552416708837046145353534766231910836089644724618713355429180312365620914601561044021043587852592088346783119214466849088700171944085402695078519668233194205281689682004224257602382125858581579091373645682407183517105780841201946974831531177595128153631670942747599789563421157373856933854839814066921938743933049888977211332504257591582794003530005132903091162972285614040257798334645164663869775247452925460810741427161040492869857482951482677212418128340052376325430534364130770264642640034167733663224006346188104766093474685822010221707345506566814938408434753842740244353599679560326879177479415002413533154113029902591515327862047824588319496635407742117001489104098666434341949477019185766687267418291848973462582597793931707137421092946814703552464702416924810988027252924134073049745632598893795641392470600591180346020888913536598677642177747231494146922093863931210104460156042226983074188226378237658917577512655041610617381368304219066196347619847730903756256858959722824963116748991057647275458232730034346433200278130218905251861885677356580613596218936433770643048555047786050504258533983412494281757206674410970283730705693654349732653998104342597252044868784401945304500085078493672148661749960830465374851715874173013548710250890997060925246858617502381325406896385672776605315026919519497288008506489223766614924788050734909299900430210452378653388242067618189366826637408360492320907113825698091664827617593203440613793055654409817654232153967800752293676780566940105907395236196313720725422889424851215238893234093640148185964566349135662828905126173740226082940360225078828983881531224710858923116849269643367827910805715174403991084091127577737992283809667508541628294571693620590242325364154297679424014519720600442095951266538023849307363630733904688338482844626378100902276402601350470883090567313528848939042302524838705815356510352390729534131808639472735158314654670513463392793020631313347662358469201098624053025038088337914217579133533882609791679479438267011900949306730027195451079986110256688813939643619336301071487434623297205718216077328674890318795960654773007589413061079115042175639774352870236949123696240168886639440963955309993324141419690225987390176440048553508410273717059198811719721685428762789857993381524424603336075332082146171966432598346473717084379054981736613661991812410274838769717678422455835970885970048128479401740632499230043310143121223844991866078585441363595856357997847369847578598935675362891557525993083104150469310059630840632687017490865986131703085118784911545368779157491249111740557037556874112340262862094970153420907300726509675452813478035860534203097272355507508282368965485048027763478159520567041806955758949847804757460806430651593523777612286165967418005865617061159630737740184491016916063430038156374310465577925195205735079937522030156090825173369088262673237808219851575722117740952939901044347425897916409925589412070629262211764874838233782938090340856990666885406466195368215365858167499241635169868604114014934906405062587418730827041090039832049795887054604892058871972032953066627413339762555847569729360858761686431337090592887729845686155906615114082294786477171258321773079323507707008566582011933392605822648561655801215332334650016007192305160127965436744528717108416692392082528782781564623345615328373122485668661024866259080115458549070133051045231776941947494167744970609566420615806700077328948569184681359262836435961847028019826831536182016928687211118355703526287496026940807836002852035723304519053106217560000721720179583356545161659025402736711178913131794617974980801577490732104223698419716857186920122663275974435277033003563375575863924458043692775013644626393449216569524647634146910492639861341583467131351368324718914923136942374402200344307887238351139060004570304451240813111090948834752689489280952560640754516113220751129972569760004051462210019170848759421725284851064268735358435782368507156606315409679728248660307527210371016351661160793483893625304447081334174488730633651448074154062782289203682860204981285874268710172289110550164160390039266430551375689970202785879175981541816586582324628848461068246958202262950639811962110310230891723353641372406269245059001715959055454966779448152926995232161025949013628005863418307019304887193996490979793983514203072762210111206449035402930225846168207598589398703406150849873970798643453377440181891214118288917636309086855312388132972612931602983945565737668517703570846445538413718475697725758457689714661614557949651855901914364942946062952703326604518473507049748347059535514852574268537998508303429740636951200375211941770271999027146238428588874615274548635572799107503898703959062455978760907999353791711497512261495980581439413309237592230944800012075849798989086441568653174882096713094854404901643302730349220833791029943516322221723271161363233142515184728857279772354776496819278816559970070534098403751555305390763837668791857497675693517722807292407206986577218885919500353528565034649582360188013248844033858679017443300780481863303226137702554333603049969324934384570290481349288509678901994725261560402647068535832523769129164063163954191814553126421757075468778613356472980119472372462378980503878353368753777806620214533720048884124025515096623700321766826712140616434212471391563335880684072228361003573406745935460655086096635795103180744650853754930088199121181856429915835038415733943692090730137567816064123304590513307354500839258637759735629660458855560974418771322986300236514475800812755661680104990977088790393278367045939507591445663732464175920082715773358279197401516843899497786746090764137724327707866050292166524519839574092546728282837879013049843007610510103393580604854655259716005385387937576460649922954899256900300330122534125734764937503399440007023689736746125543066671684913046545251533368008630487226161445783417212099552943980416269663481280243273034066208017273690549376908818496121236610648052975474195780426969046939489894526548541833608189366498097499075636678527696961330391956729013392500054547729355701704310378730680983327244181389953109725284091154338417994585485688565631408311193743383695686933378875593274607351358120339937100558988544809337021765476604896036176476447007292360375769424995876786925017711459181179616913713297940869295107096867479083908560643487505873200347160663580967926024672077656954587506899069741673315271606485692439333122735139772193956622364552408717202221298547582086261763916211383047756279778806746705085940437229261888852476575203669859246743100436104802782290015608626652369147663415382149674748043041855802770727686996754997618229971663406914001873006946565898226863594311902303591221706035795602685765990034978841181298753437879892954302413085689107303036483089426406264658839131528472448553079145171865105389732191655863437966078925203258919758247274360425908993503043963456793268154097340341764326163550507519465155486273082643430359377835274985995392087992084632650925403767085072858430632726814388387413995848611810959835549076314843012660152679874719445679174643727953756759907035404722127471730345966110793950166862513962753646107163197420985870353899598751224555643074213459628664392063188416180533687329044754288807040770900321070584490398901488761871293029810197532053758868748353019206840444465841204835267196029854513029535716657524566096477358549440975562154115351438633087338671197730534877733061703498634508717672038390888169205150808430863935976594048906296349397562730996542826334619126968903103558898616075911071674767413468159795986409003414212348531265060380367117554991755477125313472246379944366722874281198253367981736195267560932071638056997645499776055695575961371869608327122950232171917063840262128380067167164362658938803434395349555194759016611760044120155451903578415024815080321350839211919729687014141760609024346310070676059281095821261086699706531922443997759352227983806990780657465610105647053115468362878565451452925354499267933989590424308915271796410626408449939168536730014866666646751757463429910442280172939316123470943863801280725361466205433138149123514238654232451170633209260194994305050178280783554588771600252923103087669887019109730590476433278316651285732387756524313827887646044831103826249354578917529677575860954477102559988943281978278874971195505128796703558859484418860482471397039070738753894312792423439553094827754342690934194369797468103840996119867241330060591616529610660074938114220222334929483576048992993625553001313349287242626714716881081697742488441975771381022906336187683126541457177613314795461956277699438187818692764237325925289813451351805744420315030491641330203023414603201869288193258589606332171686935272362931812895067357771762690704628467448066086287018938612786725771214888386684526439795532984797396633516108843224079943141136252707859220039967213702531481707290412231137012487064491044310022856124460891605235676655962090145784094266928750319796808285387769392156467430050425101357555047809591588548337124080679743822991407750336810217756001311077774977505439426150197251925546072034977748266717725167826737424442123925098658666865309117619398583125186225227236170866018707855774719738443316030908032588450070744964550150647028057034292291851745760739992480150168114674428442831324970680822511233328406431300416694359011040790933086953743237338680063786481858038879739110997539735794113669396430903792980091642780637057006566370987066778791689585589456910447215969153776466366190990462324526977121745927395533177504485319782118258404338060174581137210392515307759352797452210060824137123513985557215451042274343066246115644188270534266957859930418332132064616962165972348093140536706215827387763028493578301921960301740556265145585279955869986969282056524854830102035282581711528592178298712932363628125783009823117260844168914745830332522275012479055627319263341941535100108370284658019584706159270795889168038293945842841051512524142227669091939175598941634626338775778028403781148835092034019595469633495278218221103585434873040882650962834776320550195592909194453223047301152516921382972049063455492021545304317629970867002420309338904578379564335507779302499208313001490870603630425533901711782966541541223615866625859235014572749819965965171492763440540977960519036546956061743408074763353958094992758018921236963326176256133915856938307492761535792670596132529420397664298401937226463439960036177483560986771305888736418149228635690154491386967197295062547184582126983804214516232660447863038454348281577731096752987328669950559074667236637694431260002973637247853676748122366933562785391508650082481795147522631832654049800165863165265215955521581944781971294395546315889523913878201282604759225759388496702107076354389809441558934105158695702096299394100459223254822563561602571166531552210381331781416237479937165561254550414032239798330693047218349571341617925603190371813179063122983264819177372906481448309911220916228766046129587379578030578316858953415598784217915885868959973547220649326430083605980509867947475929595184563130092741873225952677785691438365775660118662647182691930560774770878175559214458002717130554870945839760593409793548799640796860885703848160492040976134576883055941317767239486864609373380462355779616600659386622399436659314260872381019826992143818779925533318499247604470297734450571923442596328214714686663987344952769634233851337013896096009501488517485992308555942243171805579410852795822208526725396310198646273611054045484278411985063015951797324878867563614205377770103063155826439815942219927950345492207298122826123206692702204036278088293745762803627667038097107388599416019776454138322212958721651108445406450182636094607617383822307578166052703385681064228047427340384508083184678629120141198417681356955997467051230469784819356555665524515598570643042881172529523868740350565944746174502428995213527754843125908739259856370086367866786307132182688495462537277126335137316299523867909616013781164033801606949364368546069856616925674751163895338928666250875468962636814883322876972783839195291793762594657519780957091479927278673164177581659663957813035285317008714199323084711108454582776473951949481852486379543036204469334513836075433139437883182506780226144637453763476959947516226127209326135675975811784583287147154856791789664342589249117717985124449101924788995572523521152102247151840413165310750498928649356212974410176485963655111407325515018825212726724367451395638741188195788456541387587559545930819910865484207209094937348093733740638578552093770702884857433940248538326009226157247552489235581666742930300896823860811078341365769138721679300800299753662384050245085144372916343145675850659937000202140390384720224070856260151924385891266244398836245483901951391871043104037507190356808628925119546058724064852509629543902823700116306280055393268694427517426539531494307643394117108699380632948523050714083369322402238778789686221917997134902382281854241629323805551601497479287945378387867820327652544330360127215205797803784671116864272786745813981642453089666635340441228210821066446426153845618454872725558430810753844119297009749728390452426338522763001757635738871823296229286237394265002508939316872633351843301872809944163656622573646401863583811513911674929401932626062898088276528954498766141050718395708507824187492013862273540091872865925809698116869093040327376666873048973339741653885936565991643651940731644314383841887536527836186113651223369646031740174603531290256809190499114560676822620551067544872961704986296558141124019124152703851293388449475889121987116014509802697019130424149386094550749387232547390439424696934124112666140477576041253957358508241634117267534039195592211430370342694899138441736301730155829365344839892421078623323798537156159663256394962090592453272569662214292743060609046762179617363676992155377522383309211133253756515034844379897198227707092043521469421838917438287059395067420086656880048127715167010867581521702841486793925801149094153802855542065938429869778987965471187452879473056582274007976703939998022872904540565478181769810288951087838803153773851906132483771305924422351992553298018958928267428408697583354276117937146769093075097461788535601776194880844454233023585959419697645046195142809413733300449141147498406927508238893461399099329683966084011738488211944759080131647324543489923804397435302535544371483164820240973718327873866853785507444139860380627341993184635799113466568623864986639656562607952649089177232220806420205229405204806788939168681437283680838217109016372996585863016254433528049516134283013580012322456693508933634776756364948132640723431383536933304955578589342565928974776280099965663606164940044810832814961041131853086925797634604822523798133751613489792604805093641110679209345663164605018837962329391764752856991067105181154639948352318859277289273698897172905597789977795985182689179974706546607648464651696972559077537430098641673547136139492625194574396331206513871888616791942322049231308673153018290302281717953391593746459746354879149771108067755805061547011570497777953380270595637977164014092996578441127150879514693807246454947321244116159335503683984535113667076061682037123357099964023531004211406703488199081616439869610039262512357483836204402316441826368769321451717716445288815512244284281763065150052805273523781607477949988720648363297655679942014848056560189735596998851380973091897528676291068233938670434648431985545346882242209269953594952590166728826340454949029819782817722958114836747387919116557508586531025771223134205316623965437521176938585866816591687536672096654616760600220551151203659349133175290120882890536170574102185493060797974539626617101548502263004458817394433851704989198853109930141764450623021827984163364563918507884306169584292554145696145147465038545191277145898252659222444736603558419115922032108481155477103732030314763040870014095478336159378063409100219561220846465023307127433586073100700881326535816070358818462441510950829026725317551470346647482735908049316717026577849819536674052791745474718073053646759940775574180564521491888066618566480743336850510229684442719233539392794789764502914685620723094283773588526637944562395112565281694497316566622177307668350493505341767582070048541816621984229671910637116365547516313021235168705944441679735394200096565414895198573113932681198898206147349536891930934461293097938262990102786746837368037302564140960483949417650574510826961844293741596863990449933238446179089555628822476178636330416246401813355081575511683032039711524150744327119080069264616888043246661972857634773300284635991661672673405172281261640381714598509433037719196303485786171983026202838445504060614440646548924392239630413875244763297164502440946138540323591429389643169936363111946551203486665099721214587612836170958515764251625340095031951770856737283335999509929714496046079853252702862813283014994601787442858371023320900889753823437907014246419801224652262948913065885508558104147065557010086767470005112949425261965637466961037088269848405875538488551197546679298568938135625676324481645749691882457084460736484356392769545160194741867875085962913724051386115712576633013411717058341103254559466547573716365903660506789312786434586880525896928563580963841264584160178711628250914466293860398598851825251802286565729640116231786855032023152064761532373884592023850976370130380477002931239016580955478904693216934192312209439901913211567967287307610890068731242736717460129301501760975103646805379324687522545324714291676258628614350191803337175056757573588616140956587130371548006813606368486657210293917902662053776189607952137651595621882401877624949436394088540646095514959911090902532531681230081652071406414796653851916593009841448506414867012357733036546368828147705602751936516742618283723149614627666452105224915069506853268002713300806973074319950693017424944511060485337632754832510879979392086497351739724706251911138859324118179999733251805290797780849084150878512399301115403557717128736897841722278317645735411892015329389960872926142236329909332220482623724573436122948758851189175930364946570600236942926861306976850903536404841421530914899098421621573738097839318503456102471695979725755866968677491345152848940296189204387744095061946650415494949264897770072260846670068190928944950262159042489025004219876135649522383276585848492833707069620965457328577515069897330515474370757889813044196894076859055929609335288388423097927330511878465024969096020425107724686404857547054149844131956783546487163380419655039440599939122751525577427082998305999348084447361933574519064829069347738551692638332689680543313511545695011086372796569837742194558601678487658104198942446737947913171460361631656398901172445541447224021169729343249752346995403649941816145802687787493298363574383415377109902527701964531454374557826474368010959146192256236372676453596952231578399959341603913994980541420613937291495318557613110262577253665273413814875889178238595311235610662059520536145011609988382638482481319049880832212461885729328171662719059421644949409409830752148200184740035385857495736794256720483559625147435571302565908205971544193339005624916223906721914479494262007738261475949683393774742362867687144037840059764108461750398865481922282871421137703919849232483560940560285506342203327337599412881321956998204456239858876631816350286544944313018897591914827496138702325448863927373831984414856487929251013769853993034424195271218501498366792551592728318265034146220689934832844986242380772535584286556160783118631787383910287744188578953384636943004183637065849411764194684929108237125292977662147548388236020850707852250673205461459581728870228111845950311446831618295982098228716501829588135093379366620839694265401384408516358522222364485847061281201174622608051118255707366671996380800493923016951302879849747527961744726467886188441246460102592292351476528994136236968012164122297855698222343766708672125637610940820248035540719262641460157709546702037726618049866099830859414730925693842207468413122369778557704637264284871590363643683278223625883688657424079121899130004300175446819813353598037610353708856143957724812369431743790394210116411337546198092113386539924726052450841019849330962115863935745731849033222818671290094043194618066651394819319693781009884795444370538148316177992047654123786365936603355904729712531457789057334462743287274449543854152193058456707568150834331101021930876462363911131473590767124928020291007054157966218339164031434251980061927808712327814038136202110935934936932214290801389925230180076440216496823902689190401785711744955549774135322052798170264139926405212823801121264315141756387270914621096963329867623275558216243918749460197503866699283254661188239966330580327437753963220452005111981519021211919766236231743405795260590073389911544218690028169686048145214711472632700090812021767355514841504097252331689630403880965445289148527439296776172244471641159474450498403596384290068138955466458274636538087114450354155298426035930728924813297313406531406020684146100946211515449162561529111565279423759028198345007138153997673913986329670708588214189565898599633254325965689928672363576154127432120019012549368826982621954095850426505021548741558621394631251099154752978206504363275672104279133945428868427575783568749340562691980035082211478369021391303653611139381986877206813597550903369658385371128683955144044008576401098858572994795280781352417067144784617730906265976259393307403155414322243461600841565281610528568227244039724490024582911740434710826512622003338494482312612101285540923323011287211113727505895737298955976565125100323505094902591816929267681492843999516063145264671217664308454289790323430193434009969837181364792839137878118797307857921682929377664026114777489977567211424903193634805637431540438029556848388228737694061053733387954353106014712883351479669140227521172238274518461824378124520209366112730043540938737742453416464283553808288736558224910892706570229495046853715129123384121728589167613984617521734013501095013669628318387386272286222866308383366161247289132442277852980176465342718146837943778436036050490720204355126128166305312253008416662191223171324815858777917640724132394354564655355713570944484343607538728776935267929612605915034184706973031978805490464504810296353921927899965978146525952385389121857872335787965631381797322159341549778109669354874656070445584863453773542016764592713596811464097768866995560984059510022660161159604198371616292852207001067635886134649031281591437696632455661266170370559328517997779811277023242056910267114888638295304834023046634136398903723528105838865679856617497373124935638835446365464387898158879254805724611961341364351179330206070196378907446688824191918478980040575945682030201312484021684869871468879629377171908065229203460294315508888439101088408793483171625805616353526534627461054604544693977292897923978859000621864921818069334858415148020545507971282311039101856774612171642010679729232305164554988633744774564271472222944121437695353466501526733625818406882749073121630865553010000483010309592969386419625314901421972660148074248018811891741364194959750723062119016810874578703771452497267762390111398801083423387791595386047560911199526899860654069402965276289845890327781345990636165376330305306601137264541912535932005881843982573183745849333071193607589070376956240696897126373520016153789950214529877714555301126524443941650417991338874127841185023776392523063271187269327948482744091979399986339076347872836672760856729202767942961028208783199339995236519479222163918338250653030770622160054465609811799486098087602201626684076798922177912036154016151235106632702258035529046927256224614351632568651543152434565095780815644691781602989329453012830777492453015040421017105387305435589546883887312064716934163287926526788330411482301431460077856008059697314065314052021290229113035663827155677846268095759022362009961229965502213500253147463270161586472912220898198916611193815111468255201482345597827956276026997015477009356028007929138683456487735536092062556083298489781668962722188721981893024883360314815816862763446534660172354901810101733187309610166454501555807995663185060271300874784363823889916554389227798612526057576202773860916770586287111977761944473797382629354185880755284604965647155337140740496267175548933827623431774186496074146489799633250653078845153372385780714744543571507817702200598914121361265171996137895532933302132550229804483679575184202249993265860417032192435909796219239601979815319735805346438491566486964367516040768039628139440879142271364282441572735454737806333958433186409494655476334957828307318461958748897346414922306147417323868374358156487423508653395833023732156988338494951066131722901334857764508057460098384304804222584249659789500303405122324681591394518421732043561201537995080598563697236226905351001033832694232494612748311685171531407339647974844998866298412856611213968982955731906618642042084715737665906562789031391290279602899662254654936185564603837341476776468705399353379038967211469375744125919163913751174811451472942616787861552862143942918137670186008429707826293119066210114014096931232120605213989108389184500212562230131278558820290329779326467433802487632658033740974451164391956484315775154448154364137079014093073963182194349619129717821391845320369843095889980980972187208623815811559901246274624946093800850848328960501681500487813821182096231394229309188394426297160221563269730801306967483695012601497644981356823258330229631540643157218582460112913986248483988993063885438166619181877831214776972351829566768659365900044273961592335600896854723076891813539615080715425291911667487819772542865517511975418700689141128110939327118886309844696364511861113286138837683178720572448070840293447872077541570503688193693608140171113329906568356278491512873203672315699786821585349804339610307695761815577521543402878411694432173586655028093948908648810044998148601308736630311936878513187803856389696002547067718319063103343222517515118985201311058984805917243260225708143195256120941305880748484576338612545859586436440231301379990117810639101084627809545563808642369368161319352247373572441254122299778151889428189966324257599342486137645395445009035349965214291444692628433889648148600277940518060975987206920685838127078786025726878621257186575175498964498762570418350448383111252650191956597816310935279570896974574218095157321358726642083758817026318248419799145200106330040529927207823220117829295015989049372955685141253088373288937319694976202080526115490762227482064248892218121727347515216483394315991743564320938925680114939041958302496658779628288345336787348337154475585316935738968370641259023634479115948398305463879003065204227510235588803561935665243769764081659413919371728268278645123976153544512246541507298387320366014895622167892381277146002102357879225455100331318088197533607284605695791482651480307649664499911861909715533337316074676242921708897168437600988849215166320769845428106709233129799223325905245058239542416258244650296975014144531838548593367742461322258557236662164755471116858409502251271333075557569954479816751599142666218028786641829503652202762452530339916521609946095002873796796245159044264922117539083684368486836968315690004459643705738123340724694850334267867883568982210800407496362113227467437188121693399717633930626299367960379065368176076242321413590941237694354647160689276492375369578315539569285257857666838112641029614696406076802578786910875197902500650307701843273233620969281912972502291830007864053365828022943327884372021679946123319318134353782603378151207186871291326796813982962936005957331471609616731220236736169483626691438346880776072124567815735950360220118380024791726926290109536611415545253868689036419484899570556453081914572669375400525100031426160069269117727107145975551804964207986354186944896680735227751150993646825127926558788886928809073062479198445492780214307199219670171736480374100726200372726156415213456110426365644749971701675069055954437382340629327355628918120551076028332701209129708578162908864383583753218227110124528352150979603868605660783958333802593747746134422511131198673818428160992188863574865032799887046677489072261146987066435602133645712522705180048642691457364842283387242560504627475283605161291755881140863116705358211161426665645091278026215484466788093325413936722458774651892414761406478641257335451491464535303537760458009677313101279774848479782713830308735199965599648095363240204958154004252976452413758765063166362400582660879918247905121182571195506669802736735530685140688151592872049428252235248863402503015553685370264068544482531902582833964820089247344312276828804193737974184121874361274186708904745669646835159802619761847478580425781600501829974829611673104367549650505822899661293831897049852696179159151467180609054512297624706207077147815603843672823887999927819008882305430094479125837564222402329155021902270641525448771081658444238842012221238977656291240268203313919552727097246257490414902663666985565868940139548337066202748697835195931868449721070409103340982853676239255985407864095501670729933616095186844206455015799133504909001563014645079141916856671594883068128143110024417015175219403209781961235341849735108412485559246364140451586419790291720140687029303861003231495358175441116671087912459821305470599604547072108697545639620108074851901068020198960971750210699442150184953418853762645379936364662500491287537804509064728887122847043151303911488443046915711657320754140989789803988732838097392193511702668321983207913805410679219302130838554427374416545682266183934919949405757884711944367011621826570416439353651671460795889025697158051139951447891317059036797740157262314014847666126125096206433589826132789895649594630032156812298122539795510466370970926285357656474241097672356079143827227048950208045545658049068222552702881089187334038461936570406220204909322422795908101113335242404195001298298835530799018176237239272195143670856574503376442637567240221471082715114799684791940204112495387706275956285285121658271581489645884213571710040387903060102693990176065221870271036142213835693847550583765563699190959066442431271452168109564125642056062640677708013688894421421627511734909423332215321620645563089171347850842931577134657280335642439524013614011545100088130722211324202581726040927003131799884209115307985647664994622992015394286242255924335540258869074443485820246924926617621434741073350937807365052271592849875353860453643296845806911895721086511804275170169503385546517141231351824071465293550978249533220118669900227595602378697652951013256668871548011856471769853143300384984031727017108323079205884294892337780033483096870658876405696171950750082076347638620543301218419038999772640790157212823629775726527561415106353963261457739865786547255131175250933572128059647605918409560151609397893320405295093475490993750356832412204046174689385574229583617850822153678414264017246048934840338238133814360142077676262584914960572605843470853161637750627429187816891573319226851950906246213959361219199171335650132966691006391622143307651150458137733916968260422393656425687143993204563835302544455511891289769384318401591046204878447283356291236684170023471478519711455124524151364068758739300412516875613156344516780339779907383453697337984980460672630549368525408895553785605035469098190724179460909217021210170455752107876398888008518172451216575102619509089801628400165016784875183662873183472658705440311409533944618506204740659037934389164311708128364335808409663270497643646947766006469748377058008228361062585553122266808721852160144714457700779333891122785936549501191151344541508425607952002327113778780487418588495136982497190473096309283340634143964171502067319789361899199452907368477082301215459955152283633039227354845503894087325639718887669930175121015490844460781416842750206854594976447720541716899827722018563756112092221787759274881877450302189884835851189842658514918511182158364383432723491904003867629072838292679213977009376237753626946412590409188263082862059283722178464450367104766458009826086073762326644367993400633731439051539002212252514584543448004874231578455727521305292757330404412573444340430943899400439427826257260339115254843823420124396086768132039450848328135630041741065865917923940215888388342628493978303271505571997095605575973478427053854845947883097994136833164604057613383944544276468636790423741505490942601159348167282936228360219552972942754523648702259511659462177868972194586035430599021887608456775700281934265496492388009417612110688768818244895270501132892185391976748343653439282198257247190313629092005430883085186215567697996210065866315598340713245273754299070616321357348458526105495645285061733163570567158161576091998937110087636626477982514530367463662495348852830869943598169490391686000875564189224113601161752162815591478361155666845641785976894794572762418261560245246479164493079229795375440718445494594526521478499060903497125642784258742258072165203503462689498022215555179231466200723323655144374311711325653064201395868529146579936472162333399412085955133379527125735798281866330611722356408948518759709166908098330452824903217996372004709146970583413133559287400972913021107027449068823418980864721664341991035492691101275686695022232336265774371626630230780064176474982583940481181035586466264401535127010523458007023702377030012452340004911137267030097743342158425021771667167902114254935665364734298406747201417068542620958485380648945729282501909723733043630948658944932302812242557549493070609450696055962801989240698465441705554096889997857080542547278161398347902481928350391769811698182591449624410838642284544187087888770117746805419900106159470892598015839904692852974421651406140217922736120313782715667223329053571111899906086149234226858173420137358328022204185698183693377290766673469663961148746847336383260122689791561258074826960686900634982434782752388382997776689669168268111466848823487690713099546323264216987285512341935385513119257977764272140886056467832292621645944939662872946752159614294363042299458562735476168146547662583637572367959535556553380476689543142346977653939456885315311458472495462080552404150750096712844739202937965727388196575927542517829929937746872181205280523941566628246573160836916002984933874761393203439204958111226301585392035046223361041060366274973016930560817207545459138330569937407499629859874260014596084694890559270352553474814831928585722752634319516045967673906441427203558016845955355670549832901265880054269991768688103585684660265148230221219007942819007357385052243072844862115272609067917134067900427994197463633059944673373216302219396959294593509627487535999310623709630895405026683787346639407103014932900468317711916067996140798380255810124440743514069791858334605873961528105035988868854000708752496153574706077261019660517023797058139406325861217190365082412332768771773705315718061570141484108258677368989619605489485618221715949918675602269393042259769510942981320838841467219184269386744027018279143046022236901675378514346786627796752441644694240301125077290187764860511516536285722445396843763602274448716092827277605546085741744231340146362265478585908487064509829320344502885255490710512195918977263050934282128692544081453122088562818628904436980033484498101013929678842416933678219152356548759161280692450383313257627172197005005030589000507288437099518210560132077984269159550396627947082215163485779924469706094202146150846554578531685765619808057491148065454180660237900145917138028541177818460811242880366969673321867808234718196431968538432635092083402232663801436402408935073983439147261982438705591541405176485395914810904264142266515340416991786281712825841012589120996879190506377282191660464592568222115085535337782262111423517562897501505364128234468575141605751844798102496434255194012199833193022037078706495884738726212287552731116052887805997049358244483828017400481843688830645171861647252190211604705045928020898992810582759601599846171483493242291652493092015150174222891579878095456408084037131288655848315596985594973463497651483069161181413105146855994240305986390076982765755491778774431947224164080949871967330968704780167820735480749060288561592365719317470839821502899679456887919713493599874427325494182213729820972816474350542802132312001856155689480018663957364526353035002666833949229097900298482254250166028964643656112856475761014400738942321594302886844278438193118605676096163905255947886970173219259035949381976877318091608319995529649559861649958477763075913670429784944209960931126430556541189506578458926178311300031941791931032290006268160971927918472733908380458351054275828124450201765971069693517476981383366774053827366033778845357345132946372805802030954972833014637853267434188740559362963061940701651456154346949196567629363646892147545588330869777846963345592112424909867372753853633875031895909453542674005064838807533442113195842958361354015423786294518781093601506622944789134228091493543747880699420369030096999926255138911180984054598027151265406317041117650772615640244674206957785876794542248163509545078449625996986522536072075232705639951198146937369735911784551448391272762837425156384312379806567933994387110972433840586809082401530417872602632535804195989821734800321261198336246660004101202740706370051589481581086385760893919343998439123775662718318437728440316158951878969293783905204971846194425928237696905370458490393213119930756029499652330449036961351973744270987940093058374180987324459786694267156643628014666135841431630036793393416448695379559461191170090154568016324172515839802904274410490294564955524392130308710774866864830184186947022002966255958654252632560263156232581515344478350462425880539425414305211581419125480942239171705776008989278057941502951588683357217620029265250556795678031441290511937736006492199479944261099619487480375425086446467906766455546688643005798439310899072352006940878806087260763516639207493648649043060382229933485794909922402239973349381159313430826030240319139187705888501944634013538107340334689249732039346575739543442520190840675013746184390178797499344935084930414480968674632768728680694064548288485574296150924423648527861715647560538465757070102791821877702833525090075128102758530371886599045478566900001365403823295764949424196443589599334953762852275612077637829079411314817244104633927558429285671314912743803245770552453533280120450332042888436115279821985080115836808103469492166015635979964947746247104759528436644636305619808596348031981270029419020580550638813282311066420825019577597850886903120188900708814370370353396844165655328662340811341489737619394719485831845239825275202252713753368828679512731679059391085651967235729104339036394976380733696818352005217146436135902008560347457424819607891149732064659461585528970914210835133448318698715465673226753408863574232319633301088839464806205552438666194318906088447065792033314476644517218954907958511168008968735141597249257492406734162750732261250369643536430362910214789705662697489363512901162949348852120147612631225729867996791445521153016485117321391299854476680287104312736259102415066715198494273794949074497879047290019665945139460867944645600628783079940435355144003136197310420882762006670389691644606719692014041009542529343109719154987353735410432725744521848899087839054505129334124644766031844662042077428090601427602273241775788608773107269166321192354965793927715442500290914213407664810577975947417223485003776571196293996681015887736101404521819757716239870725565647223438958845792700572415939913569340532527123104111633556599090989835779148971364811892860396294755924141395008955481814625144871728729403998494597951421394583714365913631158194706829956093356826059284687247027314513354046606722690799708416779640105659170014066251701294037457829771568625833911991793789605413297542398196392062685486997788234603885253001130351135319024664912705426265433821406734657759873603613650732035023624027194570219836316120754956115161557121353884634185456257124478067242299932823192008551166880377525336470435454576286121226892368940926328802819721683480515019296149853904255197003027190816476010253820447039620496148476124220316362964819456978607274554407989420040564190990744915521728574318234924299026025565807577612111126381399689484946212608751423393397234327686647069525241060764214115320737899131776503380850798420273352880422433877754804476758949170322196574492999484913959361784420767029330839755053866388449622631805086653839571752881116652434056329471932697179375326152530497715153231788593408609135029569005335616814987057930038386655000774308291200305592404672070867150826975337814642585369179943386454690433508446335133957366171207800723990987237333488286899956164095155912850414804178648980688572476273405675266414626632371360251996552380006004187793737232178922756371585161079182699158539609884395254380114698123630393357362728608922625100257667381703112320543047878797111564744594013540960152404598793321537999946345403065867380513706052823891188464586737853125312370747846144715902071514067996160307192713321622565304892444476423166061204304850181345686655284985729056432426064164902537016187222114024383362640745008420510618539795102827038622148149838474788346674903432020783262541405365348429689419546541679171328329208972351544080533140981742911745861477914377618142446580795564845647126036856788322180556822693513913731644967093839577126395955149295248049765804088891310250190427203061341488017334725502735324293404137354702532302525159733184186857727318387789144523110612631949990090845746429447716357463036617347519812292597464552030732488371340801493950174480522927760278235200631199616208871487118339594378529088392876009877474974117866110538956634604262628308094549675495852085297961492035478594930234220264017229759805563421652778966069802999203580268806263459604512921803395958229789168573838143781034533055698219413930553689899138622146299708259158433900141310386427519096101834657080550579372260775097903378808381064945763485576934451841710792467123644844415043278452595401456228007761690300185324316820644291568761573339833982477131711895154549167988663056842238161223026803886660519972861550548402975232978576836970297049529706157835884408559877736598802628260331169257712373633461313569520462481904686595317623910757697860084065615436282468712843531286459061182073863691913704197719699057908254125243329028625895919215642860862341281050168888179105855560993119231811625251465156617803671262617739073385645891085579842752959501209673880214263222188901102696385870847253727849211710030300087503706883319193408285405099018841451610608951967836252599891272518132722820758822898848415862814026967496263663608215017112776325371055834596583265973529893832630618706635243255513697760515358655067154130899206370993609665947966876495456197548016517762693371369870633852002339543464153554795567443309044852741722876908475936312316326736005501431220460858266935073075184540519137098796943340108991446090779173723269691949382932683972687022733859097281941836905992666855959739911869905958996875798686485612738731221482660532823793234032480558720551317264858743792347389285512175714021543693922407338810684245396331272938011881276587841779487251934100297334582396285768646326395780365934602778573801263513724848577500828652189994530248862187689679821843052678637971312203543060595376574385577389175404465986233348349777833918640169948234258137780694432209537283809575030400895259470228855032771538044349391541721949446449302653021743755129094428576167443260055626819676401287217767776509443074294738800163465326668503112097488523470860834377720159784875604724440727789162337491590825198907687263880559459895030222819254673161292992193560631288025191280714399010683802104328863534953394232757559188369277373189602664164502517555702400616892911403855268603474041768301663806216900182907610734554689405376545344226327335779670067955699607960083437500845405520843067326442671413992907124746894641980050265318271907272041841213307424469878974366462434609960892494239637683353973325115487518149584856454831206033771394021985872685781490021224212781503051366716178681818927305560212213156216468051083711785217553007824159559626083970598309731765241256819675779868611271213462018830070956872964249548712843431439654429153419560644299081826690605286992552997921502002948452887598914232184260242649277769157201114034874407068515500618291598787141637768271349896249270512875115400287764159655426808791798258244492488778796441569476754140122130333530723827610930425468533633823032548078146135894264761126423017390373912007052146741163439194344042139477739792100049913415995467823940649399659886660609487731562978981638443417938459636354077919517339583431476260084031315769995697915821301892837051845761473276296069757183633172652614732846443496205718557363677254174492297331149944077872186175735685059168338108160601044391209107777070454461579590080904343165304941066763554235651402173930739453888110019317551744331557178368980383535236499400566627673096011564724687985668057178502078269079277867877057842891915885107362242594565108910427914275786636986880973941673518741085226830200339268784305404657224660137432871177488950538518434323835574354006891607516568327264088638996834573600892134574517786076155475937932853235351010751272305179032518737936965125422159066374144031725709745758418300186157818770057942569998170607432481224373234178217856782208217811832851675881315801400269425191870057653321932627324466098914180722890467826455494118577077394463365877675013376340547038150337057317897682065974761305471334000325073990104681968279046180487464791483287156495504409251782771056453400314951847942144235494748295804904176434748230437437877843050381251791928110772662408003952761077765388878793369290668876638865406642512455252050025870083490445392128035775810969820855786995437903176463529863503201004152534886856759467151506336151376577934776992046410708517639449786382937362963211402813049437022860144060737255517292456566540658047040616130804085870467019578421693429164991095487356882109090699162686966758289606990754132493379957508791877103242162907970014043944836398411541300701508114311889167514874721362924503511842511710595751472791231367806729600413678991735201068240088695871178546452077527724975378818092693006676307981971552878115387507931056592077091868245193841967658695342886803525444859476350561995840968903263767276237233179200489606575835049253287374077606710762455997528499299500416852474721118761885757585758852036303947977767270522676849512538000504385483935599242276788936937110928481564738188854272843355874795498532785958189395710884085156503486722869887360362287703490930579101882622506720821074865968923992167776952421864088606571471499185061435727993942145863308617319107806997872778764446117467789554752549608405308656349357542618485426213039447856456095021873800637096853137670479401264283966632522676487917969989349660211357775124816109530536084134661918386076386193845304606712907202224276788505502603849203470518711045454260365329024282146380573238225659636916285664537714983752107040625031628877597953481288335805240147706257131362454273030104489716204565565785935994844922282675011852320636943383843819199652389627734392122206465847639394913055593012885609173579791701726521365422127052262888792715981297787252406836146374754081192466604871390753414513258283347231070653927478665634308961195186844587288284731455303163115212050410868912872408304940663365391983261175267688969576291565777083617019971462007695455059551082537445522490468807480034532512857146244301824955219526844498721535595657753579648145999579549272454761158803375497549797468198996202274978160732173025829983300938533750836101486825988136056727587203384285373396901686817018235053362064964984222874894172138528025721376170230420699243224507692628754470375958956770195868316660413010806475983709511149596297021898171369330892430734693468021625499824826013976442458833656556147681259735655303586489541747970885717802944499920545896246174752471491690074105911960460147765599538903840979518761906626750323157111253199519994080310011100021143897810091101799490572279002361076806868243179106407203194899857651533847450851929153727546277198860883936830237284189841270386943146101066482280369198126646090673516331151897678718934222116422778049004543629652662284678434064714849260745902930637579893004088963570362028177928353016242488505287818052631253819829612545398536962226588800443629616105378003138134335463626522541986708696178716051512050151513842924793597926439408737300111781220349321998039580897899360530418129933680771594124636746968635583546024932252111304093994453972003555014178101955810136148486530737183622534547885897801977265862112271018939570721225671506737667299476901473941914662112662675602871328956518794569344112634402580861907621810632849783809055577787698596235665597692007728933658783250654026476257130900552159415858913707215440057766125086658300631945717390450213282661518472434135682742351002645662650751249620802175349980369165549680005886725065813540597616473394549919442456436445427653577567441428450049341322273053625342197784918514328956588554836816152483800883998788147071155892799605831426562013535525604139390678151807015795466990667386369367918398481087447853906941111965234745727980304709993099531495723785199491659683665893767069682392557072972750551339720717664597816849428921648403287794685919780712279937397467719495018966278439090469606429503775817401110760646500688000141257126429230112010647910096818807447408060724495981536627851626555879430878666245541929605687027503758292930024637949201835703736122243133950750501932377268023922626300463270462181961836600185683196684219264026913561917760672506832577872265564526679763931603850315268223422556097772685435521261109306258519520475564696044031884534738601640048943074571239443538809255662725152717608684348924984991697573315115525136793419380305581829308831001827349735909390923866298258793243313348259547842300091438281781881823045636892135847757788102301647023691332056186756095119895901164392369487089096523831264470463840924294953270071395488164628677626680586406229802778343295965073147217898896140494959323223939624771382501902525399533180442487181860295727474364416885980389130674212432004687792756543261946073644326309837595888355395709466537644667034196767532362143563699945208812403157677805437250535405724752347283136964842919659234207975211861918420211164284553385345437867626403133633272673041764452141200408808050762311044128177609023754746606484802470013325666567360143230147087682454372395952877467543717650276511643513340143283672364464136786275505486222753952815184005677850595270138775102367165668864501727428699183416457592116192085005317820967859542267935832123455880965337529312975596107356264217334902002547950477689907867476291589598591272193462056769718911069331900469536907758696705110442570152120978222637504881553017688897227614719364431137982903278457790440105797710375172268851706098295332977653859042343240487849607412313472530123353110832155331800083199155347944313964014991567636254831862682324059879983453134598055317420047537111458669146054902566508059812342543301621665014774220820038984623954223995879672871447946286979678421224703624710208839265988489017729783469554739698875899970963826189767725441109708502542227999911865294284420180255509360398639741955825972475470045058406893145397040128142376337204763975188253628674909099921578417811289107576072205092461869641221104273038604021070651371038008984134409983470588420222831905121910356553134294344752875790334724248779062218659441993474453778735928006155790492632393949109504205855349717172486570739057983201805251932288200573844143218404336234356883779714937540043962754097697964004364867625410108149115407595066651028333950843443589161975203276585361297987168873864978603958865693985921226914417509370750937632342800307157832605080211045715275436776559557390169557730514491101016103745808775792096130080167141983232226092570034494573917704510253972208030846476619740970120640292048594904866718774711555021734878937312097265756299631265540995285869192198099449815673605812277506692745584966063262588116092766744834351301901285620370579081737604769776704211391559978223246011489511150442318964473068057701413913710089885428155297934597470415374951553853699997941465042748447432434551099822062511551523991079340632240175616259553515916191154946179812313284377998020159149192187092934178973046614604892822244515177421991216524899465750080981548250554687705336160640884587495602643198896617228879233205824603285682273438395243597562957399099647208004109307838316926082213013741631110615574427329396344527878182232438125635261789753347461962254921614950183227396978727648170550249839189266672227321078010518198796836928894423236728621707304646605460158311611940155860694986660544194876366469130706128946289345455027464221130483438131163780101935158158134100453808211639437151345737132304581591260334193043281727848302241799610512493890536183851453234455829679721185410114307957050765219653406312339828196733874738895814087296760300676321540108614013936133189593332142097316632540758041666572651909830893309576366355125420270749968337066665747010870127533872524710115962227605938684261258366395667232816700077277950826938637562794280672999751079940916348441051173598359348390990334818564304894940200338437035455211112922786222326230195918654748328488677940244920510364881813981414841369165285564230059423082490830964525206079751976298372525159416071651859938990317476052574339674224861415052648048495235647752008917977959501894199420233224626351448421620911690830878204636385174366072534678214393829983252263852377978514624220585971086316924728968496525598620158187838118081307497466448128103769883538780590196758681796941609454501159240852448442406318339991711095546284307023126744823123018552289578182352416015461022627647553778027695512399839495886776460751399774866983666528565487298043140315106722058887476899758112606338177275265428038829893897419458241366562628158760890102532110157632357006304287686927045205482057333987031550453262867959502110167072305950069527901551987902056326483198177653438976139719572567344088861047662903598559032230458661304409887889688900713367390425688897411718033212839086994615163588599422558781816038318177624987190542534332928653975613438273939247887381818704807354268215283287482995518237360194199165712832947790875019613199295611695513696995191271514861894700485550568739926622681670235462199174426450899327407968153699886131829863091730614508830352159773198950627190449012643662311292439816102653719663984169163020087635648988491190806029435958077454967894709445501116322609278819403666028715816632451206914076296460263363402872380379956394058593488538597090498540155739245017995936634389261993928404262573774816796127357645904832402413372639196840987089306737794215949555964612711839328208371947701952523368632803988303879849922549564344694322585384981572227611603204800439975936420128022903478877918360222132096388072409960679288101612400259004530533478209719413150912004778637331849854113550825017334170553040575237949545257732793689055658609343393569703654629872773482523181115050870064544434744409548952495902661260131282470380049480281115873469148335367892897303914409247342079698188069781576630755826015718367481942238733102408412735126840281310972058938317355107276980442261729964826893586119577833918074364847113829347873043505302863093414874291528711447622918700080601673998981432760329963567605520524619318563369860399430717064731551086009063016504905534981641099628391124467043312930278749640593684880269388806487621855283057011991203974497330019867463024300416526437745841286897316931514070930140102952722991742214623192319692305343956005461579733461483337486655229507033835226363894290721369408632020816812398391830664133113518599457672616192063942130977236650818879143697725457379921682376978637502167514984785154105043216994154544758114093785431206022575909430387192669699030279236107873133344612939272306359040912951210583704285585057637904421342416489479722047424392451570704336984865590013328057532124133347487042986208389901762701517739286206499591096238590296868930253137594153499300406662333716756390300401520842456698023894595954254875612628022241171832279569109132089708092670657382247940875980899341630774795175575620507212481897783781227011719788324798272601185547362470942856235820930589842838350812758268755452244323426683102280962769879008872762788278499082128217908374502038685624258460375352905178192224429348803573835562797700924582258372201156780279924894558543002028222058247902553683034166661486066327241563133600180510387834651624766392208679683519124006515864657080602060806760836620503482661914656082523579834588452711332307587649726072477250769040591611058688855737732591364031010721093410011765130330760315771926326096360455679348393676445055446249802414765296548158760291704949694516502806000260454129804198085503580643510602354261862274863951777254618843334706796921224783974832203191199316997765080377503377034780604872504412286405406509882088754928230098737697593800753956862782417222552831983176592279485564422354131503175205344350502345117256680671844188466894300446634539232113775890020090880944549713361461194184554568902163395736067617730597812898365297000855118773688524887177217468836564759907300062728227219959607819396648685180693268523063991429014782917172474733662760954399877657970055476648546227226726895529156934264188826233014204403148217177750707194613914761541182850344464656735236840491539009194516017673958021370083673629660726694236116230713931568551144666947190181642509324275576982565287620165262625631811392527067499284773167394442763177397527022521949710678355044622349835887825665813402782673490821140706779148996284298370188825603909714318397637844085284934563869643165885743799268812366880390704424961564909912531107092684531570495105708830105257091702715062802309575617887128425035332176452890474331694021294467272768903943406525246524288223580622695133820403209073765065076310473462509484081317769884903580362753064575396373764986844465203941205769357482088952997165787928530012029300747657981743956288897327415460083323534948377422241937035921439135998503468476897549107598062585936097240394506994627131001604223593160674966282339611013126691332717555174744325383983250244979738456024053001586596931217037554987818072657147339669718385108583376437540464586527301843203813847114404595524605666429950875760932653145617966259737930941165528585046997569767169123026919853457243619775272917462756480378304486899680572830993885234890839742495452596155664462423365339914290384788110810016562433237728966793307339478656741096014564015918770868232448050667202099529504443571128768381496362938393366656753919451694932138294701513869555375720297594789617413548321145207342315325337753028127600165971061837598690667408552679523818693009755490146473951096311439506871938401578116653545636335484891219725264505624021008344503020295308244263777309461085921151748455947218352480645824377608347965545304862713867424851082868046764612713228196633093472808846162526655407946273003486902433030010087854003835549162107158875067019140991795293239444779747783379641865649494048358748432767718299724351216673128113743308821030407714858613770953181624685108881818170183213449302455109814517790249272413964354427583929336459322184534200565830813876676388350441048637951758157902157147234574660551968402905748013770898509979269312673986038894343084046361772010579430097372841235838090490948709343431444394018609790608688735366750414723139465005006864516712150642692450975538886215129906854457457362845843493130270682979878358507544404144429099270136553897170239466067128321174500894664311900338593709142907246002244440506454122656766723206406431149052845680219814394873162553215224047575984969389812743806931061629879538218314153780394682480853518272869881290615620725540000430357589812555183086323068783620300512657970066609469301829424333248699771304536211365671335576994384527485932295231266016716145358751466345953421795767706621941367684261091483177304705626216392922318733377059522529157060055721207163073517429916554824661814584572046479450942538403594368938719855037042602408041597371584939177994914996450160042040587860423556208054335534974042985966607876672706825389648038220923223271675743076127528233636626668074663169899841581222344507269790707837133427863409710709426879367755326565676925456614167409774487757892145861701701523100155042737844721669130504285351361323107414264840682277446004476844054605542254719850573359087835794014626450352847191355113825196722765443836536375562463024367499717678921316365442823282327494231846919869976267906904596309767021245311242836719689965062421063516411160941459447535662195641392590739197868670053960787088225827898326723726562727318942189927828071717572988940510159958096903515276251895969921659315896533206082478999245895578219727847997750819624305527605211108619225790331578724869851443518438495864304247425954511085620230597161487949142076457748080645208734767016127061410957392553834955666715755929646704293240925394981404636820244682020173090206633515957386777805003297835832671046032332677134029099301603972139890885479132563917079810394534993921758350493269686715975944667627055810911614666395358407920514130230387125494517733669169662211953552357031796902312083381430131029002002439135127952805210417791264678536760083493772436140153793362333767610565191245767485156136214256965244928274205749761397171420081930186211573927303876144562772261013260647516269595732547312899010897574455406213458783709370410184036579483814770369414482564265841652151919460005966720143139624209176734398727061289567660673367246630608708615293375737686938249546510391296169719144836235581089709434663333334194392343542246326409579161912153789608919569394914300470114252027309727054337758954896267781290423139126673262361060758210730601834889184110504373181734277962775206419262929718356538064443056368267367367026684203393319571147869288596417630147879785022814265432312215821819316604001374344098745958144681067717543029108924563194144088510077641613985490940963269838346005464408980273717906746632172326717066999839276480228086368979162721229249839707156875356179424894044186246705308160300090219595238140929408377494836131902057109788150589136148895999711385011459483321304515614812758203955125672360512648866048592944688318707663747062127450175506606863043818255398984474928332080223777449215928056435142948105339417729569405659643393858665219904912998853793044832353741590987486850134698148010815264756979686200492430316695414074531303781151277431290069529043543467710583303162804004566341482670165870204700078423460870757122883278237372117857078638568037663499150301933623203915161902075491906156595201738028833820926701221395571507215124750636280310339457138267253331406525951340333476538003903627451064537680057979666798830713501756441681980781389868740299125337645239303434209906503711587612548752873725557771434152415259865666388149699730366120305536214199971105433779453143871354072713219611891314394479222453194191965793494054084539275369018770850299272048254238256833402231158291020543868483914383009573871138759413967672993428350885441321009741462134624162013613831493152471712349458486018154942203593828156047126436467998923110829771069018495210746022192906088609166891526762244904481098113928628895184185113522630174829487181883627187302259194982349919876642353865957484503399682955814312331930253542232995852767732473995899947526398859734741539627616186393954185949189138994634334835420223925282966388517483999537709826488809066463301419795568146042512184091400141871886622703908469347389254076312287549930404790450894378242946734627022585067171361607837482206492276582548665287132297501133364636647521791210123427522656267496952952578701297883193436067637067159927913351497751108751576188462987620446578193874783883241979665244005108797801458913229952462231744663094834617415561351384089973963237517869231367440615986826838715921718841950643098436118811350855015311739435769456156843270388232583539664471548733576210066972144176276205299360975449198051497468043169532888772837107389306502095926803544596678536915636482863916148559959155070353562452184884199872816827071157278235415835246562781707233983859958340258966372947752708072694455733351326880157476532626733290171006452162027867254713383474882991204936501113935121670967575529756734183091713747908197619119648643380470471092102059445917933158372755684620948998258203543688196715348987969287155017723104227625873218855432849145681626757901439561285236764222816731088814969861079839884191057537433813295094528474888448330953479059771081301244138641579049998334845336642982137666060833080877963650787188288523337519721551372650892013461156103094156250624108827503324908200353030896129083664263367386848777316322947067498468354489503803148731747590537446877218762985610116215361962171428337626877275690125316844280401500437567149700666928404302921735898408367683861148496524481808649849225100666595697257035052087552427600439656665479517325299624497196557906293492271175372209660193796656995167880401405522312479236581264087979469361388421658309364561937674906292723467734508559785435985969981771890364959109501289820735618136968991320197262619626834072062308913993209122783549965233826097459187239647871946278504147298406215855732562050143082072991137468367428725498985446296327966500201950055700652304476553078596987113185614417883183423178880995329119948792786806634994056247029745687554694624041707331933385749564348530993848806194396371928212225641961887840472551997369218172306966354800566358163422711239753303447675774511644461596865090709521292487872606636804752511188450488284427749129253483664004701548824275511913447313443860054040438977000302542482573364302026935568356913480196154577451473095886029511520758490612413000703857375065517533315528802009940084378522946282147618083520965825302175514649543887797782995477854083357112742985459481969217355613875675967176313380303400584314080568292091917868048482626558423124525745383687775861599088361061994325739704884975301809792700577852399802386495169236461270927843617034250236203500094285015223752149690340923475694652974833389453844888713135355486727452755798885012727589106527476895987739780923232515557883155822846681736929997053125235847795572544541952514032706626873447172207812266698031741203423523373636672646614151543847532787146782826411759216152575337661966089618880767806346037349694558716465506687093824119957336413399704573045427764736765906627804666810845959406242201277630023787965395076387544742903424320144908862148783100373410695067749713383856116379405907198397064697963569356068590049555817377800135477992328243679890503458953483408298367331831879454203528888841318840791162862061019714428049812755327829814453637812024336671379553259701519446022871178691156378049904394893018571582580537556789959993712693082263495496198228619187031486632248233918259707100763586511650982654420721396477712101144164942946241637872734382419564133863324487479423656444315444275692925066551064868647796956041420599429514480364164102572508143102494512836240725149894259401586267325154601540696037044902112229737359770647247974617083285953046341140250904196705579587792171360724009631611554577086128879094290041399996915769707931998060694054718413240937802618991012318493709470878130385445690322833280204728193527732324921599719877024336643361698936362698057319232935713943043759923642400196567744268123784958747518862873488753271461014337142756182682753047034587070761595869072375673649588519891239865552508354524967316681749044103222919461016618639571593037537814883689657667660328844430238239102367076039878336547894917951368054482439798007885852219885093494852762417119824725280913397510544244102815718637988429686934558308574987149706458125790646983158480529543959580827710304893775056930801422840956732981169282752828740017898900026891929878843709302013779123108751191357507620048883007559476728997417082081646387389123184671642970100477216334638713229721302845417432257785926890167175082996494264792305838036230675976789333961589860635087602370127673814327142423606946500291875481500645701181441480515542395245263959829359258424205899089609398647181417295618324164912348625718467934296674451829077582055633638206848793523685175906436413948184525369852569636281263397661701838791197791238441933965019686687587685680141444226500760060785865090102894568655855336693519049414279976374617084707191377788877564435861881273540845272992080366393913020749893927308983890583037638461848900032700187148150312514476998403707525908072018376075551882796576383095553233926820425351416214671871854076015998298344716294088081348336476898138246851736622306801853429483719468430759103209753064576027061524404059253579432639575354158424792545522681790492518285125156673320156565144015819576316701947719029497086520915309299725487414465970109731054477931315923012084504159531290583756195767790676635443168006898639068906512660283798367715396871668807752409447039251140312796500929522717410441012183449402647929227654329101401105807765627571688016428793621036640720915475824981109830749406605848552338419398836581130615105297852418009978812234008217662332604870130012612703034666234259605494852700782135824740192268796382377317792327191635577784250150023390875602120439047212059696013314153031826990500446643522369407695739858266691532246416773584354792598529076683456532127854112454587697345113736315771032020918686706649821029338551681664843448562755460196273560756994023630707043624314502916178085058760558147687291633289315784820391963970765407173561738859498659489261465719858989143275675318812002444764421297407871450893570744741162546251217214651314314173778417795020948006454670236486137157800329199380741858797876033366912965509715418286007908970020008248247072051072406679765433894382900367276707504427808965346199050704973312755335075677142962250707590948966828543322763311890685965297957931953310809475338662203787613485134147471996247575686400986778611861606265031509870469388677870800687386990722971403136171583006954731225450568281148503513054046902386190769609781431516700162961604048008434804967619704312020528723132599258173156955522399672050228236321134480792143975526150879852372943653731934805907037213094493226639059420457024740578101958228191088184482046893274601260274352853494385195609049003879997509749985756311677955743849944658215669076992872717707155157794786140437074378053896414210133345193529239018417420154998019803495548194973830344231442043136474772029627439423876488867093187295404417225655260637399258019667555967914598830063042801860237538210931653228267944292710065775191793644319295777581611817371949081953143369872389512350078697658070372677694306034920986321700149023839442916669614053099332451514019059075618787568604016197955967311332989273655199717988346051800699630651203606288057484343691683609783656671726910280972652092502373441771851968590082075636530795828835365478450435211436316534791248645009923371978683005579698034552265525704440818615765576346585798888795749690899385732479584806383872589924570844589698108642252582846717396381044080489862234677385192805909792040782074102136359403218740022453481436685143276442805647266738420081395098115376560336739651534900127770054033474481611196106347382651334141359820504759355364814367156830182435248507549751551745993042380121172386048914409436584476033425428895865416545316323209405975182332254876980918578301127397176073163140746804347159431093619475153166517085819988411932393374217282663853858264872948543400705717601694688728606751931818268992286336936238798732151242669705367670191141429616252439068531138126423471602027697959473274526922866985226727603852964497856145484818176718995561146957541517156405495067133804955607864329129799748082253962543526311752946854620298708277701907776792930463460182916147599537671854455363234952003359839234295735890503467543421872578804873547577182977794782491809949924685104445119973058886657140913938670057551944759712260894899297439035908753678925962219383916679052148614172968894870061175226502047554379202690816856636921228827153445664829191182748011008750808385529370010542474846852754079856944689915724415347088765501450975747528663944280142066473178384110099626445699805690567834592985223075891484780214630001880851960172242549398152801938620703959803004154153767774566275590110087706723725038171934743103065680226305946133309495751063749972668626041298933669038075205145844010599840983744407778875901115968188411937985335389557373905125170237136923662667053713297143506018689781205633358202303516418883711218130804440010797083476099383051205991672182205525949898372339805671492347825384356695527155995930925576508848850868735307989867134059403213065477417792756312984905075879967144207162950704829298923683014280992443146954778107284738395634191688169235086384562066984532378437547463799017965020302914062964832650984758992925425285117100215199213720065776871351972909852970506957309282338864966786872314060196144907612044047417333700241186178400301600104366751321037375977164696378486551661238527423902884058171762051441585845323658876769434800428927530927153756942540111680385268864118820252639259713649960562264234764590310933693019466546705081255292092336959068010775821738040443187411542930357967404307208064255081712559274138949303912255060706623580966652539691062474674765063508090069502001339422896284909464635833602746313875291929340539988459480917589403588995906388262303086012989744188475919298553383231995877810149238567379822854832187217329792025703953663397218990665319508016035610550713956337773859782679268344850411304210011577186441297455731776810040123108693357063971028148265781105954292264162268062433898910601438024599718336540517137100666232748347269859115650355217854251400116399384659689651514054203534894004617376673464503918755180568360185675597928393313370655024940470072491449742728847700709311572288539278627462849341199818177773615448384503597686218401241513650401115041075009521143181214523568402484742180534342362822405836909510537218568449033617431694920693161784438751873352332177605896222806816654792794120283857131286288651740340007153444231309449868946429057878018953768401045115392390046075975002681571494919259666739946358696606229991058034231237602924840513842665658781997874024158361777640867921816982260152487695574848021103656707985216856808020481139457122225436725168118743354673829031520130510888115398792119378722902163183321501005803822974364636121667089298506596072713460723605049389222041340206335154692033134849423764605280359146218503444553862169566235453929664963637110734083214689602548872170762471541737528781014798116377166185670674132670053638614424862251923612436024465229226605539028114066619897021971083381172437248696557351701456050483017489725133662389783589321759321204525686390052238783363437977265030833912124555768153170947243250989754168378383370537804730356353659787737164315237523282586075053546122843424551299577796910265359684175900830755711892626349336918615778159880596536496360607254849330659142799909518771815666956232114997986815077146362271081864801542074608010283260397484268792113344093839843040626139124197921707055213642055292482954462117321307813834154517160852673788395554425382050537762402914004222177241319359303543577599899133777945147557766659784995315459479075028736119803335671640513754863339726168609992997020334701050391143513359839296421153920877552794696278578501813376170261861781033979576968472057475615382198485163739060901979370570515021885249335162315332713844307475153940851105644605249650635703941017039383187760400408718289868241627756963727766201537554268877141701753541370261936490680538996539949115855809258423722851014024084138941912384052789038588762499588733435957097665941774429289949724846097209391696631266025950270167162303446599673924237543271977205468194887601588175197710659311239157551636467765007144643099745566890232134244638754609491270765855105889093513872448601176504712880526868456225760146395826942173780173300802475282782230803124073479366124805011939186741165652895236337062430747740672672787732298817834516390174635976959258463200645684820422627891197308931491335353946461868328584970009266617565645021368832620024732881307974417905200798413787269266889137747232317445554108579621422415755416100353538061880051771971883569782977402729584994492302665776435680435469012743020620608393293831673250706324808859996927665152041049917368430821545097877937925661073329971367771452902906404227089751968305768289649677133666367989993451817635283847778847840093207759501007013922417995675479095850207195688364337727052362960159761859930704368878676755416982129114735564331231507310950522356527172423522491351326223893700726547130739859415176803596577771142949995764443959810405497569941763889569132738882837092474893221202186299446900616413407227736868186711535036726796615690827632243639820049743197775211377479800994490850478725249966797429481649244125425558479274233701146893935638734168438480013818116412948225264774010935664470511440406152405990670110604487895835228183901584346019719706061459561146218024524285207361306445454949961421873838225869840899236046945237364104381761134808872088142741851566738814271413807160783765182243517197602969300689949320618746032999631122200913641775737574683453046714785296588236089981407690042298272982084123297796005398201782386179976939777841288632554775346397154535976480970618277737166692140063806570380241085528535436568408639638781597517487588013325146020034665617681408015187032475638286644911004272422716406432502752798619297227142747587727319014805093979204295015471145360302033279028082674083969088057046889366310526940784037652309682667949890599416306528629302931185519176986154744776123932617910002068003368078675140603438039232181961405901890067485902758063307309989314614981419874436420594263792928552531048907850503211819924665626816695757834801230984720455289482111938940424273627672475357191146186715200245432350560731988826383282811140392877960856208595381455476682543848706232961611645603607866753254011404176437615093881966928772055197898003760632261504404396218584064418680740978093139514638130136136047042115609999260150923610811522307502089253948367021215637003961978454193427102917839590864511462738950482381911830698830412749544205420767617643353618737003401815068877624194026284590833102819045819700822475905385233862400930345437483255868117509365472666579077762033127267938010862767799580516102192930007138116578136734049129929472572660601753917528130195224165679179238941704591103687817856088968097234391278914231182377800066340745537502102255673374290756673786956255273442687994270314844597367077890028574225067601731154382969201064746315348961025116963264161264041555771677491149301479534275814609657290833552970579528800903605776753076995244485481071317078572965138775393919367919052996245323759183640226750739078177737809232123959556478057794173248862659290300956014298963991637681708213921832966712393173019331655527316092367109728061811477939075848246393058915163827672539775916165114848989280633850232482197202148653096838901293226326478010207344483688335992976112434596947109310847302326861885992671654873626735339562281986820036883292309101575457098803725032679752342488621132673945794918418193651259403707124647024048614113861857692640484288118856497242157181925267281367836797194933596255705266650674724836521385734119911598571745321472524860011790694317936030462077827605049423780344728614633876862434785164175230156309698326452051864247805137098609858791650242511669986585606995654617660166792985558969692486926108485279823065988090114926488646050947564358890002302813718598502013539628353075962052393425294253362764822209586915747320237196663250827617158061950008535916216814320250771268360858888569037352191683681427607430273091599521978271301712208212266783960631438895300378022241530550265355374297900651086532399246529584660884172540668527723158978233784456090975926184004103528497828556121793175172449326427587940993977318360374626310098756837068473575538859358584975357886025167040525026520276189391152175068071866056434132862519896354124560003366674804649705526812632437651836068419410791841128282725960806201519720134005877039293487581560136925162166422784240104028884122898532073014701779339955641098151344394082922491599044733179208757296068234969400714200526695647607712163410873544507114831643574308675401665021721833688963992375198007953383743497584222443100656857080007122825194138966333839255177799727219453283483010550463297920145414243706454106448130277001273078240456081475803819206422064479381862197433350123357136162456781713559358878997999362146151995516286867693539612363497976087740074293272733460267884236801759019401318644733013035328524010094886381014773683518974370775155305082971877330462098958230099767531687083650731589944103518854145620077841545064214955020963496163721169828298197118582450119759552928575942646108204196643390552743711203231635125547664239416051387012445528890959481686565266751147511105701027712255358389911299148327700267920263498937864276677941650778661255612667264721735515430748098401609687719591872050914371952765755529033360015780203975076720964335195356971114664421795980994955661569385092832784880440128735243673239051907620013298933950748053964506319817908448914337059894090520807265672648920690521444824792894596323521867816599120959919088601292965215568726871311090043122605533422515307474628876024534438138118515790128947019837566197868697969536273809290995778385033855352908720062941501324995319464474307870952368561466224334413114228023713060946605515937941212698227148252860947224444301377168914630410844778639993801656763464931586576577495096006493038594671783646439965718904876472864649068897972660734272759038575241788140697495870823303975205573658584221011677421971006052262411637270703162808504490788108781702953313712134494165079317170384272764741280898975152319405624723798835247178476430054569189642924335202671837470166000352704130877527471621625348323744086573995099396686699954241413198040755825316603483478344654081071729090532489232065885329395381639994465308074416425380801898083254792428608382359367948100100719131138383283912640532002897829484697808043477273193090953282768218624747661839336341975272285333923506257815474537482040121253521324572747728066456209105948971560457065788308204813688381617947943621710165448140232817282724927763131775436288369840970103482594042940431800438636771353248790688498733709517188965292862252479351420000124078918626771828174478117491730242001691150742497175666908482836254873412902721369140082332695325250422636350627090820864478476214207777041400807196717007952054551493887014954906004681312140667213003185705389538896777603358931168601117697454658559195068617050778551201523058279894394160776786465152464377765883442514652639273755761138001364285914253495984879307956460036895998450902498336537816482297258030928071795487467219120219116183012114712652221019167930456828235270193210553568658522109442536841390553429462937232620304897315510322388912056564781749715342888850138297631720100302140410903752030395883184253104458327107472800847394498638929776086238610334511156454781215795159793630294102846477468697609236364953964823845266763644265542030896474817452782389463223626180895362310172042074008236716686435611990623710143793991480973296790128960833334283430882542931936476781627811187296451097875231025190281775118741493664554511302278252169103457490818771863113979720616260892090525341364377063517494077263054070984806571726409760419536476093793387037846119457418056520688816872900115137153539487354248843798092533090888627194245749689160881081611476742381420103775566923549166059761671251451697241394017840225941368612131119924350482019909207719210604750326936186168521216667438587827142351679759320749949546526005938784680394472345853083414392338984371458091506143635352388859547130478351686096650190369349864623165459696206883723386265922764784159933242722150919120397115581475921472260860222473815925504380752657124714308844052796035994345027383976249283568889848710702082869468001121230988052647356797114077300692985950542262999119367564397053347703051776927337260069169251825270304443588580032652632940235258290669464766438083405325594061678908009694448013879140043450014588338873712021652569287847534333728791316834442586450580376798566770376257346099805159192841203648616693480266652525305804149979275512403636277526093313523201290389775248639978663520584105794564898488395876872599763372038757438736566400115771330662663688471504241322469229539208032472380011106814519477393216767245038465023046000984262499641017922102300327464589698634374314016375101965484340099445402882437571126961845394733329943094813402217685034118143260291843128318539630481481411438272693777776508613784056161556221970657117587950381543955968040987309326475101785049192149820157933429083347163674850782154281943506185054409446314125601741225353507598060846479882890552020218468709859626421748013928696830789513596071021725349331249726231491164785006997113192842637508076664270548836275038602352299210829835464599179348823599395118935726678148596473837883818926571986278681102497789866713884394058221086067732097296895145112500070431788913081494551849357961553566565952411464220548024810041698027789754269102129131726709879432992075771021016893588552214857927363979022800245012896633795177147993047636845962836639232626155479411504869633876641599540518760265756150100750109902133505158491359679735198215097677813142810614158613853022542521055327674492791919055869692463431012690469862026578420366592886196864245153369696637911317100767461799459182263426247254261492958164264118246215534345595085774062975750208840152753952496795745987308939687573996671030627343862751386054630907005892371623078296944456498518939630536084955489493585720448384566077559237895256184662643632360072049915326421539116726276021479181752308410333640346565499037685173530387436054824575446114065986583994162067996866610244202930299274492059501303673614036405065544871701422528761761597843375104888422620341941033008127005755627335945083489907111183575997867220896510136296203320834346252061872651307197117377874905668067299349589891829127008238271443112539707841277475181108987656881796414130049867537407933498232220677796601153895296608957739133149948569887340016037687585116595714891744430177087391251070892953972834942743429199016110804451039636733866240912521511216611861556636600720234073131353676577755330183182513810040276823680969989413438966839790556025810839528591985050294262299846149453701522748279998194836626497687182150017110600561643796474730247488310917480592820991091110877717421599495995558338168255772414076613861378724186367003314386924855138783291714120317104240625458158989303625140144222689050907849670393091522490052674484906768020258366520741396556994238728249995501322415167816956782687429318431852758492173862517332997818157019589100867389014193110437400472806626443518340722537713862792893813964019450861614059012156534754946558364708019756983706862935265706763731647690911362777141749216323249080346572096255655021784597768645675546216627283278114630774024895990556011778624258357207065598989421589884167488550061670848308809487687366017112825069990972737394129060408688032753041577834402280884998620413993351911879222854689593211739754744807886428331972148059494843922368656875868913555832678099452427824133024810258436918573690605203439444347052617076558490561086447030164747166537939068042164427366315675658134526960225058801404330936382881118110999072590783554157578740014182285924370507246237301048410835093651220271961432566877383826461006288557115197422439911206171404354122961397867452870740831424587928523388861562962611837616254696945986956968896408867392147640648290141098790036659640311896862798490726318423572725463113007376243239578946664781967042823224624271236852944366394837736965587129920351905995416654329616089735806337429776550443102944723596264742272002431312685611050972265923114088966161354907915912496568310348393949522970322120103893954446940258334276195182787334999732725005281364078216986033709715584781435194270159622774576265543310123164657340430947479459673727507172472697068009544493001278354306723303586689475207593776334853773599266381685980659731684433935223898717433627857198011440120979791293042924951100549250644473673650035546932738713035404333002456904113918616984451485224685433570864529095571672118834318650891535264143590170119007335652670920495603536790662481032314053548533861955149850979980704827504754561411046558637046929437828133803797397330869363332719573431678386656132298273780444505725499270461614666746617000661311319832170089776866227743512184501443371315578813587623755191162871800082552732792157931096279740517155062569658262096013324896153639566255966511046440556963082963019641733929772354852671943350733295981532068095907998849692302325986149454657491845780919228487432442007377354269254339997945296141921444168148924295542511532434046819424098694673733815368541059456688229625028750979297905409810907223914344488782966483249623833543522483720124468101971175855900168170021650881778438684461847890418539247772362469441588250439968092281127299602752619344018073302280638838741422370200531323759368151815995755134093360422023810363920704647544834171637796682719461329184325286719080104977934060738276447506413981191074834866078906089243997149584926396938056743242715913614571000989930723228930288075626975807048892809740682774308127929064994700770331168307644194161871648562100075875113552379857955440369468695361619200713907615309303271882193697529967106310030877713559017173271407371178392716018933568846253830547451940390175892902265641213483536665002204690728426610234114968066510142466816347249865424654945578804526358000016406818064749541529345420237365116373069241001258373037548813564763483189704993620315209686960400231878605680994604470196170359097352806424146533946813895218234504595236401496627893653817326977263971636083996677014803659343294287921167470083323773520083430696824228318457162677088110289340161198102073783002290397337861862232172793092794055105778575116267272644649702666702669072786927510209924015951957565079414404366916079896049105375034407501776056176594714383314602159759535922036220260686983673266894060055387636770376599074978937929415182258458235376307756939292552618058910237266485923530642171389672081710950138200283864118345881360136875388021268368264893352887683468288236672185791636958277568963732038363578990312859371609174009376273822663718510811456153755101638908907097362044951578332700561972674136765172375750589280751987353776267100238027700404682530550505414575304734639181309743288417608074479569219175556058787989535629631385770438167163650268705776480347037396565479390611202438483594619131801766383133628713860074489115991164482759547986066930058206368447798421185916323265852469725160147655468823983165630082949532374194734756967463504667197489798503636090813756746248141155917516229522884219501085802865940609795893233412375344341279292075037331712807938181960925460265314218358176699707914038942049517132453118075640314732899190731545549652480515535982224864670862658743551988863857596638622095265733147089410947502399631298788851738916702661358231773743657447481164650536139147409937349373329026619022078395403065741357936368777302394509218620381603595571552502870989289995961508218852772461162898953504816446586309473929243533295657221868763192072766490868458500326172979432433173906737108811354677101417202385815088789096440257386795007456425149273774618412159611052574782290009945704442171137942817648463418330490113506243174299279087321138144721995200419872864165203023780287140296207847688156551030202672081552041359263261335894209186910704352618899388124073568821803901808196385252805988020753160090095771308509058526759603701598650163191367187117378812271440671459121089589560635246812159684912583715471320057327891791682217330502711541807392573024060535179003490596664771757625030363670267997566148342476412082907500105743652072432830759756979917223925010250743988313935743522292911867433676227500163449169513896604497574725098387035213084197848666878830263906743725023130495066266072870579296192112664851166345383570138862710608832571076053339500697995753486184790101748974770611272403116123065937465396492982139293209186846352443301430474559419115344570505696852133465001330870798456889542703865980513817926156792244506978713717347400893407061360098451637968805710598551213448917850571350518180176959937103667767420664742613139442390536561096843024064151519310271751326088864428013094951492830409426603724005935112401804719104786533460940455278613222550136836536500437899763112465587686041715480911205462158240978527864506534242382009768488759718569745769195302075612373325722936088438380118902954405560954382796321926568057028185605042256229012820094795554670392904358697278230486944042853421389314827197346098178507895760642156984779842483816535374084503821581257958898897938050731048734986123389834120197172331269557314560955918330101309351710665890369927192313407970269828098366185802059761058027723760015075136759821830324704146730951053596918458433244597516777939177578987911437175164221638905838835020757298531013494287365297870646128666320133180267224689511536880224496670877385083461741819588904514662568868158738583835957792620376212095159583500087974118394396196025659758250416469910350869940907274578717610983721080224714700776486938881133375244500308591849628232895277903857155665545406866101544161866600738015786824298471374956548709575570891686285695898096559852342131358440668336214941878819083859620598577237639422642694772106999912705045490463291406319986755598059640828013829831239888909630205566189294352277748153551275781896878054660304316382217268408917945157490312268278226396623695402514138914417703116977073437280050035827587874489746054692186450544329590209772829364686043127834450757774717270661984676135235965090014999145774938401624020040864821642003406909315107564398592571012069256356027358465773698673903958974983042213126326491443955420319315240775599063219106812469032347424115897610723914659506679136885868432067855670957378167938025861690040503382338119195905044972116998612855894111820757960324251290727668184683583393622603871567551438347152379567698564207017181602745915955505335728548824767833550941974550706117993124954263258421240397016707996090037875175983804890159740121109136712146344572760037801990651425172060400439559579149888222443964310353795758315815996222298511930679826601283434668836026500329755813144586401300097850714085072972157806800858317053648808960883454734409045168188099214973824475542080781967103292197086711486182190124478753290542224539437471900246777838465220382551657685376347129872773650440680234207522139058297134081345216186569865167526753914602602575562423292009875171228822814066708480277824414608796099282417385306040025812773255579487713340369698261610139034938708523965909293719983091808274908632575881236731748110053992692645505859235587784574351461310575712827201538139471863620513913719477922596503183316083676889875073169650773703792079600486752231716006244951052712242979295251966615228873943890705550992314404432241045408177406604654108196706045409630462455543263324986916840104050329526261133249166761571853921956234413107679798696712979200392307274252050550251611521815903089818947065673616313122247645233068625970356844729278479456642554831141833835591689099676417063599219216068237358332631198799958784023255877449014696215781188989600756619503569056849823348447334334969843196353473518122999464851174567668374862231517266406039594202183690252346038960996206782184134017133648238624222504682017931959388650283575175380937630115518443827594066753077838686630511514873468481327688076072951316916474511492307188799091570314707175802877236291348793439606648647449196721376366633623003495189054699963231528703364761310770079232100233389533146695019387979534856568955569029641550686244525538260665699306599870536918946289897070127691427218447783346049154180167283686801735624361102553405812072820629527942386738302703262827062786925410559248775635159383998289700746594576225474364437694127456862509180207234198893448974829569575375003029690001119099699140691384490733248071936196893875019455344757077691809357220989693281952874920187079511762413309671437098648877290044333493760650573639563220309980839449938353213091073649201791515538020730497208191707615248417062928170708975944370000245151957321570792123608775913637990026547804539820123915242897272272039970710578649014911604740773589206043638507358412839276477344150517626288853446491821324070295224350762242960304026542317674651181338828914056930975605815318762397512648949989838058491791047762260000305192756326880115227485250838023549429324086648641049639482787559559901093479597580218930896044635388065855730155152934354977308923863480736237738007845143068593419150155857933164631957684626406565995921959887001308238252757714889800398742057015152315065513918438478529854781235207948082959965352365980249767773180703895727052448254659022937911576933121746522325462367975304273371613997729663722479545636217965127076721472443298528466436218835978740883787066204240253522251963875208957095228786488727036490365478388968975061448678279598445735146421617616297682233473813969314512062370287438372216887646111808006462875933355864829968913188887260741732955291104801007304489104137676018808651113495535833734104294315092972505581061361372919865462161937713867663552762106498006577563405430835290946982653841621728163315960255007702310161452522945696952003960030221248518384213333286199362980015332458507526863850097772099377371244258871154794798321000414384763321707290431785481245757160318080610429182292282967043811237804581063909340798330362877450215376716786211060321798505773404478797536973369799133450278263335642404011836816229633480419280742861203588539927086438821865352289692028312218979361657370480937850502485873544632280332966818754337210429632913310183989610115343462405796307546843436687193801796506879983797474794204469021298328394051291009368470173814889605375067300844961239785645957558603609619167142060941631332344657152078107136809986956346439561881004745420562216920491627959390487061852195409680696172392200567716629047428216139466641219528473703624104248832999727834153192709575255845947884758351604098126699017331734846260422179768146430229487817470386876864305032843823231322855992387319641546087096662892464147075710400382587645479385207324721410607220566388451180105390735736057838285551910695940180183316291378442663471782569236607978095149450096989369519150963225064893661959141655708777926199150038982467098409379311892916939346818376839307416873280254256868923138872357854849283205583056665350552760709992632064360915193178459985524272417373448232552890403953772331197505453854095329009442405908011604645614282951806632557571646927139994725305427883468292101304411487822343018429639205914321694956787967792755806051896995711620815917407777990450220862298812108524353749934657552518927159169169761658585213485836267109121096614683806206844700626542350681347489906191115833586308012259736050418194304366235761035330771555329375497457584970192204811308888539324909941227524763178887639339435740770575221840620754426102828639624622918501494757880170966247065732878267526390911305948591803126715412537455430275018814466406426385977778160428290437320506038040398515433403184702664920416958421551779621718794386627221866346851334728570334636599748397684424324049535347679988468662144745685530668843422804941611268792456198583787821872151516818535394632534273616375102031662009168020209867564762219796410775856632608665708751214787887863377730952528659133716936910705550402004548432725093392885546117321798270152234196055929523667350634568881839058293253907793694217820727939815543388722531973492254668843802583857649248090258684551322154422930153204226506517099600481281588056097837339041278284926547462117204853939708722145550565581963823109064220926126806795376921434553564395763981068951287935439790931514296196860116412087786823902532065422489767601863095570003043179513968565645621605520225257758366528674844188753455585934971380929660830942421706044912931277686030077194921639900279909911418131483929573864347873241713975846824505203365989245127019335764713957977550169294697691349584114653436066683891865428714739934466027631526055242735023127478773907814932983231673807553936553490182148744362089462211055640619292199538414346656891150682990079796869182911034426146550134732852047106696870993824632910403274431720400717648996938722598709945523984325349042363273935034852125461365890295225989055171809714214574527655067773022028315231897618947789727512042214956017940513887236032055678591364764730496120679785669888109778316309258580695551245339150376913951468897140059274123432929872732935485324068788618569203849951750486266332607485292191468907946875466299326708293856501954158484568507112658223884131376464172150406543613439506510508335611032098026171358899191286727865442166944160747380329292101976091086963599616147697562819685546101199750567757939654927098453917597422588957685747328950954561519172944148107597318129237416715855306826054734569261363298400037908649905469910013667654009667769923508089241568832383892139940336090424712908741628731292221024945898761787347816389949278129553522825340182927914438759790304093168778843979119075729515323605393824104174259021964393663641795254231603373210839805896631419774413235143538821156823288046513990724692197040070778900765640047382335172133249139473042023487729552941514315986271336768169849178929113841356023217337077613071859391632221932858973029398243280674024838861740670615703272921922719470502367631116999989080398400122046621751609183894862183637078056288415534614984486811490726339302355787886809949217233779172995413748960558078338358622196532988061921907556559681287814177292947813434521718801580234454091934814266415752189886488508131068388020621501800629393493698797565042131409407218258626408258076602230880627066756722099226483544283573429080702007464904215742509678453325940562208141887357970097371166968371903577443283211571020714437529049844439414239822835625836893289661458382991102671883625437626308535107032244174513720304193159278602185139022138965438563739114896571605375366332159753358818072668384213524547541106389998154157678262225059602358838053822653529775554164221821140120583338320980919707342753689453909228600334542032357097365828038624179769825070349548670551816926669176589147498917862959352364267542032246916946705060396912086211145302968575075934238343659069072610429697744948558200721076785806875642737595174761967392574784807122677141690444692455570622357069693227821027172014122135530608456254590697583236483900169345057556273759252888251663274380984703697513448677546302452260316605510587162314241245922948044586328064634586214650901541156090864826139715210166904560431579282734393294393774119645603649748558410849940730645596315928961102362347010594354266952427360956077076745378164775308445549552201183711489047400771919964903619656232352058343394258258895675723197201447093640622958835335499584103319515590555109015015081978668601473379164061805065436086721621334585858859508862360079464977260084423663654686663519617658638994735076661673573330302375846860249066063589417114636097394150147927398446415474433314201985522287996118776339325476133651175873480822476072940859260180087153289007232768394913420632599499742612934110491156213557559850848622305443768303246425525153372906076919083645864309439045432984846749461350421752584962945973635431491285067504543386461504129761811736186559741465220339380675126342501106623541092634487852567469042005888999980800165344017366076683679190453230159023803543912510665560051419335877172851409177366919617808598348281591868779226984224371667353044460011491452169770428706722051117652339454767316024570878986515870735195845738392161682952232851903674020428482663437809623366464223085911378977281726081441599794083139888252113349518900399912173993212414223143073116817466785280157387995299537628662212628054513553609154382879036882898538403208771407313987705917145977639340833445359592753394884780091228190538482148080724067879195056709415747999791542614381175923692522294576769015572888210369219064287205080575618955406009694704297908926513929411732311262271911360966154060540808841651151959801353927185924364263117963486370906258829285707957995237821757322293821902750349884751230151243711705400371467517219333621886239859647094526413714651596806083189399535082554453885141058151862148790805976543519534470065450471526437883509405514562183469200925129982661274022586327473079677163574012996344660461075200857598453319630995270153067449767343539213681105668716032226169125670955917558935316838807308980840500809011283753307083151378726882607128942598597096920349701884485991018367713293392743499593692993590906776816940021378858676525728520638012447034044430946016705504266425094394664025623885281984599666458911401340469972247374836905984474961028530625601173793801549950552152044058621435955507063861439625559277616712580260109572750118594009256235721680129457559810624177939522007103359138836952603162679281531812875102524460597971248610234327814874113015643055397357092360785852124158035808298968300138685484602701473156836678594012272352948015881008382761177149229122891139936951814560409762854764639757581303543282872844412317680515592663670820160511386020240389404730571712355375496732845597491865988320731673435951796411916282438159499490168099533860565797959708709615907041464617243361346185618588205094122234848722607169368899696731853618339261479630356494846286938327106294332125202274178106876921836025409501866703814470089192230825272587329750407367944742566306896958841927595063933869937340996861070491869534044518457935961553150910745868254360034884598851237769451304395029895820577106225565038429620876780195778576541873014310669086468134170053234245482284772471063641805641865086399966718139802276267408787251814383531284720947789361981929240540370894407328040314930593358287230486993697329839967229309660688286649794464523250878014448776233568104246492120946624011800858270738281026517926683992274732958829290043884973284271699382512117515236913558793208697155625599599996911408529508956345972967004144408173199277240153932338589475016731114670917900655094160881995445600105896093127017745076370227097787241231910720508898093859152224816311267690110627959385372695286671940356303513355962069775945366384790729973865647313935160551597869511330101496504552347598422411300315828631974459150549780647395751903472089338823831672634166114760742150510721949578933568218949732602300134811948473840473867336691803358389331854671580735296951283265411700066183241440084073586687075284741518906896893468934493904541104980572262054181282493347459823480839185608003968788496543590028560811279184751436236583616723451789118720728253186356882112741710064182356679198216248848664014991183678575490548534683491680120878161570147661886241585240862949731759642721233623909508972978651942825623562869570194358427181341945860454839341181706531741099594452905698955199257513688952109062355468117980406460823357439860370722177425034294344863728214595806511156084560909625835607067144371506721195988187701664066641328523258171935589245293449447878240186556501753292542995462189577311140289243113579692323734730465184773123108382337849697923674117517315658992106590420772736723562939822537039043481925504590139855444752319845104925146837409063175452019593366095043900949079586668431418423675581889673769586251469853356870869999445791769157372398099221989638729020413297519396297238557405546031701800940176922695054610182532505447916519346975368852236823464577823132302939415750489000590261322715782210124203913498714402274950735581011855299542754285430975702263862023140525011268467235926654110406919616325647427782552276523146736478233270049745110693118156552192645350608495091068741804217564274768843898053560644999137564417096808281729349235764612562031553748626754913687150536241838793642527112094763976520538644255400396702859082178887515355211851619099812014744053221920605104051484369579027277231039270801254667604299620537260974554152081513414114528747843429467801141986308849976374243538335637803113831527804747546704926293814289178020237312948245254669301645787205604090755137739915845758503615978240406590009625405200945206628297090870942265429731534054945672565165333862698297572786711428444575136841913205467361774970721627537775669633069946890044264705109318065517369711468345364556768488134525571295049251626010752344218602030169930558629044259889972440812189442259735572087698115233879539089108794678022656783494898211010576297837667305382709082502061178685721314721977399518382684849025039207788472312296725767147428590322126043240778651816611696720436350708323885572441995417210784221180494268327698009577053030508678297800935139695344389478345433159949071071649692926050866965859856904909893821865047064801405934368839166985220216224592923494245259430026654016912368115243875044272955127883021320653062037453166308715233301131377931333466990272247789672701253225364854812712410590803644569472741970592142640185425654171936024746917860911503518303475481311309489487278714063632797057842834425285838116829167349966614525121171318715280038245429021690262571486222386416507928750571175191650456504127191318908221371687711174091717437965812434899290283234765268185309815222797435338137224379182791939425265184733905739460493274026728480791227144250295311750126333162291793479400291447568453979100838214300712562156823912051724159624842269398762260082217918928657095448261240021815851806475003070792172796313696351694382237607763961825518484998729824177194416106725710770788798602057531740792801285213185565184212713122166079425785684140764023831851643759010221398228362152209719485845713693974459000534321992267027296497788299104657297966733565159992156222894339974875773588226059426939291386625426614565363758800260046498414073105803951007758366842058038413934883093613278680701575349079149481684129975482218373981004604406211507465381189016620405230689156649957727020600252536796851796168626658544666155539546031976951139211329589506495044979377166767646070377358324318589801539132662021221289166172614971958503588824937523394976591736862577646323883509594700516284634496711544705883035024287512070360182205913524378663339276821526816836304556228900514482429311330894330258751222545829482732187847438346148617611979432231520273213987921715188543795660857809110961906169866676630671044131045631266924788996809682872327097803409959828071479425477991514150147294231333685552338020423344701971014812902252116484515056758924849189937134334391286574932077762971232015226721404554883069471124251137259169376249243552968607377477364957146351099723560298217186880761593704439787181711329293412289116843249144917951804613716105240564061708543097387543284883482663861571066868436498995295028158103992172784763888161839450056150306680633285815555924146384012754805769729099479743253765713729451681796480144453985819283733607597187627046708167548654476878724996933424498962314732778863583850866761055612871942102312754760617126684016255096218603020513974960805997944652138498766648350502744259979903248616476066968499392214955671013061222597774944633271962951248739679775718256633410409649404734835849914139881283015312219467164513297938154977909646674311155897977433745668568885017809850799718673934822259161815394681691865361762582470551718353502902387570798554321225402305106546897747004348659301125358490551450522409869522178654523526537296173644772349750268640792701422295446836851164976205915411446745813612366337447255547091418564153705974505873780026778241544407454509212750363047893078827901150871298204403130386975474011392670232247771156993677430701435839396599708254499572521716280130834525768355403667097769248917225549141834319739725807380126588366588242056603001249817799404075961695508116222115248850516879516603562240003512377693758618255463568220384924333149641680403364198010737110417692523223646857372156590139778165277525334154703920490154865905691684072951748203232165288271843994192354530010145190514437129130731468162281148491217065790808205268635442510892237493024369590424080408913070900384909366954096149716863297172174645044780278262715219310725024382178748399362689547901797708703051051245997295262626321703529509602463568596412977900884518924889981247145212738826207385425472123859548966460472382251583485037961543806435162059353813683852860616330450013357392247056873830098054880240500241489640986176040076463439975052103758169326426738179533013566291801816987582744211725783594493807253488403192336948610363408930899392791634245483106065735266540065173792013113651156702318501457741039325483885975971697105785225006732667447333302732291874907497888378092046705616064368219637189327023461760947608934406159327053615435530537319351711646609854057947753941557209281937054019120979787491617970338128285798572811840299123721431939210078529205059473733621834027810787579102171259591252850840380119617861224596539259183151470805019561463015297671219712779607042288764802695692711702960800810944688435651983266198341373941990282051849405766562040616474546902988421169363977848471317665161007667994063689486625350388891956355165922747183561294649481223840291364418494370079850528845051167305412027476576909496942358652657797004990325887255824769549142346609192841279053304160544838931674062666283087170717999898724340487409770816076929499338672815150103829851808646770004284274345048380790243571196485759946054953153213282814102022473735426554248641155115065423090221975806831659531860562639349736370961709758679390859834492620715040682501969932052157881756831152914119762763683951421849207896562207438712119285778470521591049026273981499333320970385908108716141915135249004350208527666577873261326052623623239124762640536833358362875540143109625554189682829932516615056338048607076060550282706989659582886354483589584468221697177184348074577893002207993547257397817717563602192360243906168673857353858794819663823458388670372830720380436742382215252082228007352617121960866793055062361198948616051668824848233933177207315407387262360884310425509616693118145724218153065901535746532896180012105414515067954656515897679255767427880781055456340177733347788961455913235929360724287391833103943473664176058061957539304107452572758080927094413484889645765477840076311274912809346893247439536891716548429254436686173101530570529441430825793474039958034401099292606218698965659009229606345072789108877794310866331823923243259277213546025642523522014152873902487457376200053301097982192733714362865125073307288152080208430259177503843739675461335613658584074159442027555123400868641903615833043381534110064044392545365761622700236948089794352614449245944482072202598465892736796711814613557507693791796549884373945264012490751658614821745030481325821653807723643519837814128882334475414903010530728007134123015658201165941925712995070250104492096854095768088404370925764554099736197182465960647490208633545402729777705924100157243107746182715051622050168093076916972671967440937512261242526086181490273832185195439559259336464462931124346514425636335420397534440387886917706815401425616613040942287851602893992289357992043506669512567639468901266472469288762838421506921166651501828897714990786666484488233586491756118358662164600266208356957986812517919722137881763216737561214899416911154437149084359247940253431481122397917034301764525821236601623138959539314467655914133908161543506149468170902958002035359185407332067622036418866061994084632742486155433097735447963936825468298834538512024698857639547106814938698865410397644782111558244851647501830726692969356312539280389227346286812417517547432029065296195512541918761933705643112653110609972116785312191099151019089077129058177351186400954894300143446225542847770012228547888835914068474715372924157890929339836236092430914574846908339923361582787048320385931311057039827361374759774803766180767996532757939006831899890538363497783795085250284884618451764668961149391705679797692961159716613048650732548815729592673750786545042166939464897162203580488847216258020111038625320111325719083760761276879498160754011608094648173259122309528304403357863535278459170452139723682167750320615297612693590513649646969417841933755966072596212302954231575382782322978124657347469769249835059677751074713445794568765435293461768549099695295102503973700761095203440092484533302509702234874511218569155867930779445581512502422335185067833730699420531345895754555379640300302439900928183981660517688818554589940089637803520712975854530306470969104989721799143826477783018714992134009475777709919153202672174045923380242079259523645666813280552355975181440305678660854857567633747594439457644169469013398990638773957958726410372400305473965366385180240271160337559863324241567778117160183074931360142597412630623510477544581051793219609808398158506792791141523387050289998809637433853097255285067274346669047224479948381339594791596789930631120084726919682635907170351361075943721055579421902646115937371768975539915520215912622091519786632636995901441046872706191349480265175610304635216729288673244912551845136816281473028011496492310840141340046224966338492583170786337184021604171172847632277401691538041691119201892892398566378661059625269936215956261507910043093800173073443165752754925500991088407613548901388707049194497556938815129509878085208437043204386853931079407494900667352489721893494979989278527416973080821941166413794333642763898943591859940162784937201385666811837500218200976388252598417107137093880361849599923424988480858206578417588156378654532312086630635038565273324349604403010112648165219090640082248847002444541598369794226667059956591475001529984036018869940795805658613824443113889908080064816886255650620319474589136314435682510820358238970971404657326629088784240393638584132805474351073671185285272609731878142726931850224582785997378202604510959710015379760941271813511658920170208306352000841578603203200491587695173135574970974042568905640411240801033608728498230438990929095569052083457067188388007617544739119592341736881591351639155837065362875130192682724624035909598394057732893742524070854022311006281942513125088540105119446097983029774617464784297969679843543957603002430095309767325168934650855862160798856520494796412204977049799381236144556320423225729713056826560507911226587329117314960689964189410270543195982714643793321708337826486714094164955599915952959437726597622492730966928986132610963830845465715192862770180179693721293098130385401396661564697158330673252566136474716014479418780676178915135771691405080945034434419018229321245374742812951381857876444562544895024283121479277938545035058778506799507026550260401610816804264259354989936489697165057524760654316482259386975301627416202555583022015309634575527971057307494941753101095279234638626581779687549420913219417456828975296950290779673870518706741797236646001306119924159546504942881768686862559799269094556322623546023222631920157850758312774164915205914327867338635328243349024713047348805829879683325993205537923263306037487383382889314531747408677884188473309392097983336802937522160493052669576657057929107239301351082550765938052678298510540924654062589155352829494520843615007896210150395750812328475281747466767326008370516446777335026633631927501003178260105899438532344861489656909542599113975599416257047133589758993105854984210434777212998612647836194016096826183659959343333603811699495200354106898141030052545573040114460770645912789967194194818002111472465137557290571517486713554545417770947701212818680876108547698620418648456038554015962186712665123727956530923287982007191052069307240172640245311558178611610474947877628202396608984064011334465452571834252414136867298544269762595730852614374849537291892929665274844512523465791287143345122831705516182193640045592058289835748496514416018206438815208359406984707136465244470854079622737544404516968540300242951667755872204656583385849755004027754553748329723746833651577597592009025404294022239349183903745131242305155743928271588715677664303170172854484523977712289401312603295950439020257323550349803437195564717092223773618043802418618127160903340633038321762935206146904349609187294509680083895508568798049788184703313783584875525051163305843639102738617592611339732256344637447638504383954038926305746928759834338957298525996452323717093794233412246668592895898495855806858734452276167437582779432741225295827108482252807156693812483596930868153673958218500622860565142500263175563910169108914837963808967442486934630136902246775675762274549558430387567733620836109523823488877856059387225714303104905795095779214602598794686761497620643288139521004189155848827356420489595197940467571591965767792532816163661717096474131788635852798689435460657940610419949071520890219257668563081646929928030849544850443181575943942152911368627476429197101033957884514961266191132261856327065348624984988329628401906669263128222670839666866289540035513171046943865830453927699209739019766605411167151910207776908389701076959325539486715835687484134396436936172158045451046000084183230716321401447456740747894370468494033936993596208466476374883017517922839479217965271187133597589017922225962153183432932855441672921072626739608432312377044298023625377575790085494787546039682127769160795597451880137806171311538471206552898934614508462584566254880119202210020753689711279997170141208196434118256219353006342671236514793543819790780031006639585279079036140594946411949540614415029769625200984509820051723699601478997696267075354546201344811992694401230308696419367401342777065586248224833118487128163391135995057770957831968782285962277399406595149761145621186184600771655749478546610810432433300439249744875143649217411269608282121619879019444462640644240127965702191078489731484727527090685457767248915985315984686660877876194224434613609025635480810209526382934020401735876732368006507771183172443232630844920837965863396390794757181258625928264971857950903709338569593087067474080953324170538839686102765344983020363340204613656901960539231449078802925609786854554529754650710038408667607605721946005600849536072163651416779181435160868153265726715442866364413110494476811256814591625982459905558436855411258286430792427598281605171382882503352992988095283558970792943612429512507086650870066270552593837513969959160336031504496946874120385672411665881083609258919925016543716715768961313240280781227881184270659200795534623728886699196848524755090369405009662248139132918068945469934517282056201926727949547727509431317156761174588337917033043660723519109941641395636010370274306777653998187218150784461829563607575110312256984143082310563441614041777793598627358060543406177084204849915094544630485271644135608852117704556805915359130607450345011859787907269005706983073555278552579148731269850850384594013694519594293801166265149850751761098733487956560111094834363533157171421561741869830872803618317004832703076675268329070122726201165313706343596903353196907865744896590141382954412792911969185949139266275585955491050042511982668611742374208144275445587920629463752551017291592372687681665249731813155176754907306796658550713278973645207790695687689185045863841267443133495809175067463990881538956018866188563626993608927025610093122751737772052491631848274221107908232253810459338438732234033162379464186989018038668216376305907561190310854529717714103951701639005582312234294188986650366530166840277021976174211096835491315136745512829285285226851080697190557046635288688144915900025756672743167143945334028552861039725534909274722090545660771752539229700572840380245528799125742002066124961191712624638340546803626004482830982836948568896639009445768761983076515763671461529701320580845756847378422743007752332116207115974300104872373168917557956965750905709553495771948793033011145133370098055644656546278744057747779134212063820011930791821373835886553117360448225365363217094797271181420368229022437841290677879215752699880477173527657733635248657889132308500386858793213598964752526327317587092602672204915894899005860107107118862010097318192822777964144339640362328951656222129771182639297521469700546807097383836355178566706851073156912170396758851561286159347962650776125264840854474018324888606253665401183687294360966729485099714877705562343674740930628590331057267799948922240309585049868339334573169057089447147853362632749481274582691923852271141361594083351977628849271494695502999179557115489064803944525818781522811478997034832543716803284081956324525539574216842383840599229722076583345362315507348971853956707829498745357455171463987688248514518196541400978738930818045347958876369565008349332843175912079842400676096890927730438384639122898070925746410942022582592737122687848533607486985793956612639857198487439285523094544795021347015095563376580657316511339583276139845234123011458422828323795090460880224159137069641705117198806249111372839113358165135369046015151757936417159116587712744157950008572322631513663838822471785425272243621875879008884147987816276886048270847409257110340767248288013950354720369813802437523687184987533104587115839364914320066673540608647706824850962308892929796540260548745223576868200861728216911950883663002842045803087978053409368961879494278518433741552839431737649046187129718537632814378993074418508146789762010981662987954965891469986533415081987731311375391459793417167146683194446091272397381630128001409260088809847391711223131452760528929671156382804956776280452006863755337138082540890450720637467403018896299366341821272979717981486806431804437839673587857272435620119385971525412111359271886288652167631575645386112942665490729984623196622389750499840587484801113641487944937110730448233369951407763519507204443475132023460232698031049729567623294591806662654388627127925992916153868441334832056952999981450700709912571883488442975448657238965009355761757467863007444056822043209950786420355204908185268157921557121778826348421197932290011657724494809144253360989934077702645218945505649327136381572747181436719709653934867478224444219530042969929893598364986959914125587443246059451090136575357385343800416117633955183969399537478960816022272735272726904437371233138805930747134808503228446358157507693449131603113879387616313650357346806515104182568985271143478418941959138974627597246710936626134913353243110053472788694254931370453102500832119706471160062947269789537984661298112465454055050350692062886610236200944752072077757361639639948760124499007643470956678203180992970002308638482974669801428320452875033668388016331903206424102485922174152811694654909017515030947302960738172459056203481167509999843245451113703582201824080890946072285630502546530813125926491503225677608501451640319494733543304426316114515780778318872193526811908334971395055556036324104791434958901753051092839997850506842140065867935968893561823982376240704753078873103255885197588999339865324071743788805893594737848153316757262250436212793871673142544181336835984951113373154517338348404569272772574379934737430432458185489947588759397267227718633247491213005895846850845186272065547849353081191508890858622953918194534807801897567621327911653049387354056874371494040014782683447501970366526874453496473814500409406966934416808558585075306389172516889146517870529054969617155959783773500983587154080002794810685231681451428220884270626572813146352151452113770890817300995119791561693192534786731892207528250435620491114316482051063619264356042216850203896416392573227261739713049495306990818695833361331793972506166377037066225960560412533158892902558307823958295012706257068298720234620985680882224418672639806759114242835131564322528970120758507361370042737501120079604115112361892440373898577247601785252874761175653210092690707400758443578962055088924723938794973744781972091046289004433378207189960123217520536778689512441699179721274655580601055795712945871057739204371839196971092522803730114293838394284467345724578070566381893361947022643543946151188890493176737214972138128104119385571790429024391764937348625571782156323025080978057611632227165198469707501081207992183023269733355895409750317455992545919868740394059953659581810881863844836263895674830355746962454639909519101729403222229477412896290163681707741804939979245860214942695868884576937052953555866058619684726840405524551433370677263017568203647831153017360041347938627771411356249398451291938850032917794955512700206862970422072298886091688497069938315372398947352121767097750396498973538412507088496407395840947360209502204263787639150858247910651472775393352585631446767632090641239327498367247620289187059261229237367649567991957679858186662785776454109541746560975474285687532143402654003096911453111393962477701268085429003923239431492185092379027100883613909907149852349781965809000143287832292675379449559903034874872421656095281672174071404143855971210876732826278904326886125299661960887876278358235995622181048769350855150063540261884894444395454894369906156830524508250835276568773806455166258020325796933997474539089374324072715549240371034324707090583530446979858811228164469573798794117623489903546621800343413032135537255579899982541328727604515065312122641428917787379293514015330208489474762328329936411525455454178108217028649450335386687959502894946905933560062411831055605086553412687340072291969195713961682020036716076785564337857333055488075248629774617216543893776204130872141187503417698699563095556141410645273449140636032307797383606761400861948215484047942535893658218019202187237411538073829729104861919473150258013596615151593713072337199211500879354274946841127268319312384703744191496537046814837188002137001592227284254406091718733394188261463043522195308844685963842982091474077952968581514353037174040494914671380088690135915640302539605758730981461375176148898686657052917001547750769362451794695914831135677548382071627699991948466184650881964328345881413041145488780757308186593882664464521184054361337722516193627885756069117016261132377822540325761474704096379433209124473012098620029110159728847078612386396599221199593247499270708621901236468718415170487601600880461087811922245359220838433145939023577002123079174315732092852442552036892928281698793016025634561666648297779641108563946098732772476617730416984152164732957074561491118562662747064791949432992796885668673038303049974501830462253862314128251329261030424147529440529938611833121726757842821180013150667475574229592698802213857506675438082389686658493231492329989976789644405297171565330211146485596237591661581688796943756033251225793695970768165814201530458767442466690745339733917967204409074950820716183690682875590157670847063248938009691526473180727549777859161460476753836600070488104478754804301183465456264486034127581324628181703832565344825988310306498330617211397188572689030219677049771244333135581789713231855928126455966255535399850060301920866760928443541955975763504092624567418841967129284654799195978332988173659635879061376174737148339664231263148861586470666875710843056853186592195277364363138799058913252150079306492860631092045545138277061043138399108087841782629768254687840629205414639785189624755006645869223656114240061806776689555691625195063848826041825999697579635574959072635037947979878517773021838825847212129440263305249156304762495746100395507036396033101423610216359809598251904805331866160694011789062765213979107954428900670027009730345582032900766923456611298785342101741625132856963256669304133096734096006268741575144305347431163055826362009902189559611634826525417757751935332698934122135079995834342075313259305809285560062347620583400985417677838155182373531470405318758764813926488644375318292079664504784566447404295311230815545850556658600981119497337804732814828239847953113552248109731415966415109332649367095943711083464348735847084198573459400455816572977501908877827167205748276568740567241053539101009215629299491468523171376792805186547037781119910934873097772638470137352145199305554574213258209240068426312729928816047792227858301635523331329188024066459299698508534041881162789969868495483277605704653217877874225504528899331791702793342256280630516423548899578951197180172520401001827420928942338488779369850602405984422659314703758200016424756031215803270457078394275407294724681577890675694310909679882486456231722200388919101884681126896625631974444397483294860701976752528343168014051011531528542103904525306988452141421878805963310876201463737307017935741413767477298253376723922930635403703363108615978532809224634320248241761620077289626332820337816094501832171918583682815922964797612299616872519580760546545314027435669654150661276858702636190477965364223792342379018446526155459179330076998778018321177349189905998261230780368621449878878393183376034339554774927940718119283150790084948619949185906045081154956249330764007466246981151226035648050252610305089140151744039186143743633537163518340725079977040617790582650229694266718590001070381617804093015419692146483056922694637799887218921914845499001535760320461329542244631519004101837345309354368853600085365133091268988592120893705727211236236822150621534377086415684123429706111967182093415858421307720276478720611028622466448860084060801607155849142053358317331237856844991876549072927418926760895809748908262047249692580077094550034372669482300138661551788469424731395482820704831732927136398913572593995403295479943649254348271601570792457771264602656610862053363000842002419567622243653165834095585961156856685806715499528683337084146962158431666049444447330948257468454910515896969439081546205439699744964078322968698133905665864609156699352645346875784624091774707841563700812242018178472396032559993892557164138413668038268584094857928418503616742082524320660847471085677548600526112895701440049418340913622931818051407171378261464825305856410411825111296087692929497774378296591337848332158991326325106676243852092289809795288706793874246400642537100456477307691151695498398401887272579492488492673495377153870484681266668808486083106761475012753681263375267008690972456868255823862089582462498732063513977443122999418201323329986612840681487066721593702597140204268684695665381623968718719484101899859351438598849850182600622624780338451162497771733281520027582393502904162202351300865224716875608391876658557498207124498400410648352700573835829322494228422230218370647432562227605190430586835195037234293046583484081407981363845326993610115769663024064845629776195129088194327928167559750711122552500175163345781767669404523559244893568668608388652800755696374599210835404750839883709245976931682228159894712853579521174715173840077033696968305804488045635362022298900184474654787663159671841242416313158455270175604608825676747527435075875180423017812058009119232309545895367011073240689881895254728453984816603182759743761540464687492198478226066488106349513051158251444177622370708365985349798571914749290904788946921716573144988921962854154989434602213044318661960298332840708839129611126599830420324686137612710802425349066683433051666073992615527865851879154797231457288788652795516956818352893013978272146167378984722200145733270798406060102439850041448603479186093619057128230821246329599808198611339186478371959437691613354185192789884674024553551142459963422293109042289903785571546866829531767702563307753779510973167560817254821776434341300081557268238786668120790149045903240483703903292873338553011877797203902014036861532922766369979313059999607989957427551306696397040114082479240393385870054181907673618314135550741639526430624398852030858327290284559249350334121686463577274916769705604240815115355059148707897760025548500416136499341926131416130208939905080310033978751995435540644447197582789711382385242732487510401539996571420222384915414397606261275753294228381067194584066398102508483611685875793449005876413855053796890994805823215998382603163505779177797077935117707247844612618260727592595232248696034375819626232646169018608517021022117730538226612469859719563298611311585044853220057098741831615177796123942952215283168202647882542188891253025971401922283773808150960925762219661080676212163275582799016885561282652815919470974234702567750095969555392924401350015265273919921427304007084840695531307310310938990606736869041836563430779021485362538170407052115516767879702532059598924427415925017955955377370811626038361878942399404412709010733395303918980608570174330652063797396897945524691271640825507654357524616476492765018358125472180268619921866880257274647284954139849236620292347413622591709135727618808373844385948568758001976698961404846846555479871658065667065411766539144875472256054701133045974186900031002680410302265120960828771359638778876965309000667593405315224761313833301877662814919383672297277959770129146466141186486244163300739952531527155164113949762596644845921727107396369336209599368567719652583629682914821336926635957741347549170846487269327462382532176181745881120594282384276466768948252591100001142996718147613036333992024921841193108743689782837018481636104705335958340935522517374161641465970403607382447175845081763294578412266123040536688551024553937275197598666730600993105071808362337580367106361334977572376169850660780935269416866115842216032893770966259343986571227468115477872285342711012042538532567550126258078354955808211651274467032761345923025947892667825697197108391884000932525879071443652473484722130529454052574502322472558262198302456931455781039165940173403299588877989698306267681836587487724840833986921222712467432761614723135906070035278735234788050859702922198740597468487188635743546818271271511943855373658023438490456166751966385239463497174535443076733512442661845877302417037758459096408664954292363152472370728739595457088454049137691483663797531178740985829862988261202469538745274883203555892656184665359448652956487510033283451953087810201548470475067623962268415130075555255741204066226798977372610831167211757031703938037487268117508183303052129641398077641576826053538159672288501216792576726398027486305573637034557184147093699431326083188768230331043546803490029069620789308269383831473717146594137259141478758563711044046694773971095320919740045701028104822960564371936057311137054900735944061564538746391530082764115454384504184567768382815115226614133316717308469288628108837890072622821722910439032032083245674295994217097247331758993877998614182861012224104338404738515625780744170574747418700283847466254571835279661607347335068501268812856411607993975800936426872995852950047579879440716787499078385494086362274948606554532171481639839398081051205893969122903383658302401483139496766381096830038183696048261656040486351924215777998791083044990591884806937736183495639380228889963866367847054832650713157300782936269600694175119668762991640184793006830393412519978767236999218575590458556053537105980939361960438873104566203481103586928627651073322851316719670201978525827589634844921974894113710417673510966536995564969559068050783511425383130306354758976848505005508661854633323371759389750705701202927784114118563821743231126477283355992502327916127274253007784986198277032041770033667634817390755194727513842504200577828320744799144871964471096390231586939824485924255680647863907466125650405413882528627629237937874444588719169232501715485473774912456215524148744079573580139837676220921552314209286486318261635929119061515541323926934505510124954245265280294416518162955382742869338640922368086385924600069548478199382787584140678813049817825882689799966710046540494656133660210367577723037761082020136743471079557709446740692563732279658396087544947422379649811844840939660395664669028162077779162371561165417982700637921602212833220825607338177342424733046900787861801012664303237411258706980894414419613315283087661844442297309039470587929508913628640233697703588688138210590987405494762124026672455248198283257680078334731362006968935250917769465737815681296450915131446116201765114747384400373148823275261015016565122390126894367854870637748797660971392510314052519256725863616915837764372569186979165958338024647680959478010452439909479128859706641310865210353216114676745118120598164071033412959176007640349870173675450150655008975740670210358857609414507519740970722573990393072881803219228650147369314751887894257729987411121773468865378284350395348160827029442849854018519010646349794522632477892199055862444508750106874706479528402855174812906176209858881577821565348664504336223619855720001941302945515801105824941697670531540814231443400968370500313844964810364581881214305718492207963871083050702862634937479018071525708943010312581013049717793393388518831438501567599564718459332806235282282250065597026936773765217408696963543400448082995285282486003584839737320425294083399262948182840292073031049200380102773111262360401305721437191569056130992071436071015290461630168924886996945336085514438184873356607584627288455843257809878171547880078852744715814205566976963928316908102890996253148587268494917336633233014980003109101375610668916793518629029750937724338550430778961739945167952177151994421116494345312729934856821219084090426466880949560668975223959277541823232495013580218750427963661857680577563408983912376915217408264707785963260965311820779576847444572803359962879766287741423178145908258326581852923317096836968003669346531478459447812068583336457247853895191468541207776049715153639224746721193815205526051653441418438383624750985268686611368335971442079516323271761814018376350911768174476833631777494426098218146764049476178581829263262661069921069789830324618594985041850212559550252095583092463568636278576273395727829361901850640167471937658443341488817255674539993124948615959584021886947425266729489622482511425601509544157879020593405428906028558709174656343963195750637906805460768318875126663099743338848493458460841887405581903643926924091365578759077670090201153558142571368244784458644470272554531125143008898384431816013952683267277375180459590117068580619922221072302393518348246569588544634463800946344126668449129103391273611971534004813141109712707227730079500026260713886070724084354165671345211208254146216263689848321948365753758207293383275550904579882533696236384195573271617934422998240499536103928405477926597014074014313257208658622919867852279019652914145351555682928603669993118202204488523761089024927245127632212277857807423795068290694908270090093709700318920577249503765127986596733877230760456905617730818281602915595641918450973983363593115169131389184641399441797557847666904593270032365800928621983366956937490265316880217494754419890794556362669714466471374133942214298110434109626509482071161453180169421232117037624302783725577295014928733413783210564193147083611964461070366647413056776239272891363722670879616896821315231325525698390309529796191754146430280584403924552757607860551707102359131001043945858649799753925206476741797034634313699233694478541340032634832623143418838266474448475367892761862688096466420853073184956762139212883425290326366990584366482201629649798637950619003474656772165290391459557530288517182009195081377622209342491247665793545188984671779154868877012709924020662211302847127066049227417442845045265441182483547687442092523072881385126840766537469248809815362709669214272304633890584702285939112580702050293057072239287375814559080653702500512688930290734755825411495777465581858750480794987189863904412836975111597361791125653317533368193358602777566264599059139784008973854056089744834062412346360858704615816205171385030260365225232598985908413689075231941967647596696412115600010409424696989689190302560025350963378921716153365784700800092653307197300253581560286664745123999791102729989421523679972634873309947382635016474370902218340213709162240600477041001586129110963958286123120290127118766470061739945591642269034869276641532812486646739059844565564131094386922305415881920939700917444701305751317818450556409139441012192000561232620956680757629072394200239125757295090548098093004853296833684048866543172400414911334348405774046484854383784912788057820882865398005874995536012481147188944858044302205260732818936226477327957865124851647543377262278062002973690279861013182520060689593707861787950236179162296814351871769908729912393954580146676824330919415395396250212447261200918666809254195957566204225080684357689996080283128731928078806497062515700157938809561756099284724258272886883243684828506881922034775270611023514859680657689064246214899782684538374515057694434558022455492901957730610772304988934778404620106620395559434650692631725902260561211455236752938798207919781299035403899107453394341478016630773728085958604071755397855152172320295306853414807393021668325130874767259254842773418118343878006721346793069584617598020957554200266515345512602638527932027447633367140353748616976610520766770096582538774176340984657030140741995816670530522738075475159770018058838722315928535482225484144529691595767174365016861372047956268212112550978119220969953940137470100461377823100385277692332638903603311748855372842940266265813589343225923765486471575752178529807226987821250112178806342536178127759516612464309796503069004470389148853741710849701483295264281903107613792077686971252000256423858593256812722578392644785150992402485373920538634740915418178353075919504012243101257525068483365985680102573566685761506374241784358872288841523526633929882250784556291924292699863463971525387575328378390387841478419685924066014241750231378388838719525168493982212159417070446655269504882051471190941116628390122570175484378228779210152094165283006701436633388047954449162257184221857345644622076333508546589471826104285246295599831780853151395100082193297423499290512707923736740006931552501816462583063699391303017149186684604114885041864184112515992376662489671313183244249503741723261888377365278616496338485138792513755263198831593965901808797435170900197571461297344434634926243104032887168385575062755663786190193979259461306346890950428045269107975464013231737616196239317518918969570012831065989476138188264286746294521037705546509333405256683594339040231529496178856492599640161837723850500835479056414299978665384509581318284185925562663065388281347792363919775808839188480470951504774248547047259048310692969740682593493916483540194111118658594687047268159770296756339543935272975993794377699465891707450093068840025666502308650499522368325366260606122037248248348973622944206555776074620929049665334932002464928701629304590049606141356884804730807997821729444761106360633279353672825877631951765668667138740384984935242089774309391699036362970566733017369173609675169477816532175211981043721925580910312657191952150142197011749666774971272785438125081334557806144683437362832654968522703003966474701105678271076564396366901584552249320327055924495193957309792391604939699225249326980497335287119321821910033471791471742707080618784021965041130248458518916842097814010668356118362608368796680644038522231441340552445749125524076727937999485694591188438735838780173437461020283199926141868353957107210432888400850273523185032513566857340937751673677751890914906131939716259882504535338527746107051542791526831607421131196073355706499635646196154162150592597257777715180605066604140188153002150784253097271020029915955024628021723937279028831569348288666284398743292396685237208952497432649477000001306958140947463022161280427153292502230651139573678068781037351293894510273966046130257174196911622611955539579731390352481575961412095223865571338744790283576732228528872314543466845548582986218178044315293564928250896418283518060023196311672100375815348752130265838933421476542355589263904673912511174473390375823841738250954047368371767436506024905748379570621557368161868478030943093561141393136908337651130212648642950907640696533231383167280437935052982103697487682155235343286490341914595787078806743226344641480926602340391339952866769762306277338017994247799644187419922138050511309487193918037029965977158465332343183063378149144506617559063645591037895230341254559669348405214028219379260350126240456878868728412417550455239612726969568925536556105038732495889954804377792896699982230447718641673159552622771002453492768368050169936010812436180298607831101015973289318445714761281480892575378166981307190505776951393584013517058571839886366712180190442999558973469947521416134487379920989771961620977783725723715845859412806221901051851889998237565879481675384953212546814586181103788327696485385516004221966552892260304765437280409364023217608231703267425549007279210767766425937606732525035371342821070204386995020036958846430492514584022773689288163498206968559096539599805879564083405624190999329927273834863738225450121326247553731686778222717195003404642972387184819087260648557874244551306992783710366115260211293094425023164541249659598949260037999118270980009249168500845221281115382572002548649605124295064851310518705397604727119883830686288352113032567871281579283967376612615137678626998073048284431174448944391793014154823811056773521335089161072152717506915656376042436775796348216969164555739443928956362529705619869660546708142794303952380052863418628260651924789595665639222447427577609791022243484258651217201245231842869604498484373587874951509659585786581539983955457018733461225636155679432833791514464339015989420229111615072776263317257663583302752013728002864996436627606200704821366111546595854056911881639168284317396179436575778584172240183368555438077588871605813099398618368066995973870830560801088321997616494849172886407961954093623910966286553584712283474410617985185853649559529465505561178440955075861302613111599605677208404050008962581748680057637120431351179901980346194196712918206392492064893924424846493401091782937945734323594382352962486629834592323630255064753450600402386622257666170240634335909452541598943717156896859520272981797591425766587486509180106335326897616483571526765307802215537859586238480351635092889801249306497429831419937347004820020743258685507808301491042808662913970432154354641377921473327568586245253417856312326802411871280101212982704773430894628616059083528046475940171466432134581190869009515114507634741348897680373802138899091643149501357449572891925332015107967490006857416340008690815779942852107321505541594148227584239441460944110791721884263401311595253352090250348737010815585185718388947294276901909026331543028057175250413396093936489172730727349180012772747077198440479646573923087899151309667095481288955334050775013353488681037397649181707949207836386656384824071278935826588841590592282383855227466809541651464911776326191142716456647721726479066185931553912310161398415075911908078641787624082499018221022167825112214215932470549400897903661157174288835997931032008071217878150998493291705127118300260361425147547039814315957290916702704628346091137292857904509483158548191284758791712974961593750283171887572759124920704210687581059388095410477476512095569108487798967595398165686565627077082089569075242503160347880490720765483120223502327949666903468986960250508494758977797285164932649214257978735143989508157727359383165310916776697837415141509753039899395009131123209159487634743432434197506488113808804351983861537172386431598467951506533425318502344104020105934747713124216382040834911348152821218548996796465956149130980333082869090979183329889940981822420500572173735443558369507715429697776978125450548270866822697147212566568456326479466872494240708347227508510110605503890840637146485737049997437205598241670648986150197600409475025768856427914358289497180578983481434289777557394007152247744043750168657111087541233977499009893652761878456389334581638557699678879298456320615701843320992158627811244898162582122323548979505735838340510442732193244296270066248626644894107569039771442207210741548791709592038608258283985208325806620542407874160093178614909369917212998690490250048530220178525540786112600852286825714242249549290244506614520124882457555809809068262731219416704657516128748460491364768665945401770600445267951102616590525789226285747873351469579162308864284458395166519156157750785776704244108652075348543449754484110969399335092121367699880383278954083341674838396480113643121124886415005889961687566786138468558211848439346447707320272078841401113584600058698838562035072632311553586910621757130107739700297394559127075957504809394219372712451175448270559588494333333652937172323508085973497609100947099634013565894611974866371826566239694498367474174079979812721295621869418243690188723092207310195545398446088451971825024450638275944428388457453121851465965436496859889841316740321199704212324302122722591324530058190102812832015590150802981539804912718911279136128862431925804793771188476366004951326602079587272186323441720344887568614688705921750192197468723874217716643430621489849139644749073228661330749036510980765308711476423027652596769383417844161125673672240696439037370813502154593538274693909155514366059261328572486217081727957583407088546359337398016522121547516454146612222001635576076620828402954137597480112742279078772582803873134061600877235337469820992058958048770641682391601369869359141763865293154016149963144147393413214310315624963752469076085226780260215093595827492936770080600860436242039808982361548472290173480726729586301038876061957865420359652779693324950155192119346423171581648823224980410021870522124414316008946228484253787340095931769308559656177411081351656564783538166381487696111193076223376118657531055167771914789175151666458303287129428225835762637622849622728188342352892594505347115465754638441210649686792896263678508281339757668386616449179738649899145934946513801470791320185480755628311962501755621937459508848738257292483582713089841762528189634954413420580310880149529483337631580471252839383502298567457228123192605805061085972648781262982123804861562422038469351305564468347859326494887297965692753842316559769275391537005534221605342361407300453281979459312421915809912302872109320248540063654806950126218341113571947483058707511344915688762399345235395918287012404683244808098626092464788132876900539717838501376439758056923569511182562559629039027136885426545253871308703768168269625755485897099067188168836815131515953878819113925368928633488511532392181275823290847032791157296501888721964015714113487178817796714106817946844631298332307329537523636479124919097276433038603405771227148090938802124614130398980944953137391513996069530119649598794272248060341645614654566676367241991591394780211081823479330427315663400654601887634345074911126124802087123528209015133527002515240766890349118399884064108526150306335549974722692392519152366019507622221172873616809188001809029456455977230775952187453736703701154230107098913825105558492849963005405852379027526115267568181959727472596719297316983646197135469533364294934488683581941208941143683679674242453581048318535373371645263480561092050951243810002815617816165357552563845837687940775229573723076767800823915752624562268216158479999514282590265066588317139897181691277048782610041502615183188042906009730303219421390535400180498753365779677372698541608504439085203559019976740125700795558766915131149521709541085370508464290443732080332670900189910003895970470421437679806956135869560897230555665279302401240381641356007806975894330072157274747394921158087968577193630105201390871343432943345552224112243000036831289863718835478329601193317726033616476604296361065345880090359069532781892392260012425124050012190584679921178799968077950020674047997260752168652725923324844022719996590146569015493964259650413689508720396368560762456534179869283968688896403112185206355632945177739322144838524581702783866563507290254222667055341853852383318446185374685483623314067413419841902908417627380133754591714625280900663632001025643802259717451681961615343145933733489185800179071203457815470164276463002543535477687907985662658024656155055681670604640291302622595624840504903782474551858535915173167476935101921161895107558069355714536360397463639309172339612177197599996700534048811473024265225472959502259898107838486840478657347669199833073802174192950223227233390194791155142263262854527953100072222211398080328505938101982915536141136210061193579690022092599667070855611353969752749502046862277382261771217160970198783245476723848469680707560404608783737421191443459250502809317648024515763595801171418107914898322574336449665945019682936039853313176520404886840696089113220285886387492778326465455158464348787365362969451333181314910784736570111519588900107556387447357673572459316235270080949521695896951529687303637696440808388463972931349254602185921767984715058825818132406667868136079799124636074024561205326314779690191456170324451977996175682474522195603771868882660033374361121700714825477386734438239626910983341874634541383683285595344456329916123349357242810835121501501641348781624193172059088147045448775700933953314423412889528840276665238955049122863503670129247641914164308820328481952785142663899867082711100132773660201655112514884396017852123958743506000349582625676224352853453832402162165151485780445280230622634754387758008018521433095306346835356699574517466699817021901841635585691854975752505522256812931583563138673949517114145218752312472504098021745668468694945610674036880073932511053945340679005339826690837520256341452703538328387732818968855303771317920353933681381701233166500356495808130389103064635079306336997513287724967472537273713145433169950551748891184557023134538338742767447394011722420011727393299312272885594255568636825638540043547931839044396730118490910708054372271475330356863811373728489350148600472499601022378247868342157196323044324982648900817675679959383909605077841925196042242383676205460876246848389520790462361183435355685391077984209455447543925022765060974721094647039010540311566279273937561679957317608432427986442006654347729061945858832266091754232568592661743324692961698809610969513708851725833538261275275425557498240366871818434844899477274769049453108499916999398521794836695564683975234153556229245188650854304590524383016127604851338353118478172204474468186823234882208796755746552048713865146283001422244656838317544964564017333300190847073012219661196415702982712312895536762082257480518139511745262860061409704616451263822508774188208762197468292247097859222952217296677118896136624462204921118184000224432897350636071308050546519523964927195866690289020008235403286579004285370422570503605491019508820875050702976988907892439887550168279359033670453197001174555687986517268649891324697565561433163135749935974683090762469951987935386845022126077615196681962206380166686217846234141084312636362967745917614188204047849880295364330465921576507760244654492036315231391679496328641427364722991004586470572521351274981251757914759988403301660439761066494134481268601891873684373649858600185257712167514355664338660243600209617067030170271449804158297777027611532514262675783409048958121446682555025819264848113114451801502453995781847136853736330419886972648691058479169294923383570020191348894556118186874464734413284493502285014518934006220660595504340866731267630832389826144115489732838761370697748022253805406132755745166012324431410543700944430302830529934925080378233354718332874485900448849000654273046620779972221839344728150406080259896045191448579231601355817238532037170375286052238989533020305022748852341922325402978030670317405603353961279846821791146972779395425478415803041181464067293133623946309965490090711446146552478395632828531859021810619492050418400570589850358444715967052349839749469584364733266042461733680995414850112212402221451096057780048985938859616678840053275873942977433803741564667068073013031661932417003117275196588235430924489508352031981999682293767189906569945923028775949735010078246682961777309162567384289652974401887210264074199448188012126763412915454789575986084624087813565669518744140394469756877185278957472041781495772993645801343977913051611516532990702803973647196694557372953878207232267450260276989073135133082340386016551875991581897430079882398775323672035580225332576072750412153279729414356232504651618124914919331990763003249267118253291773817556394278615495543505649142232114087763400992126410904091654478196615114241168883919133652891710955796073533785200668588686798225106741426897299085658745207122972744818654436116689071876672062781038767082562463541101652243055547611507321968205593426356108876331142403754558666505815323067738105056411015913655009179981000697735732551105067821822174787912861460289814845690137685885304837495735312225726785826421865592794787760597849659202807369165257943505859362014752458807209432041902011415993784318430732384202260635072473642887805644351239322351021706936430658183469918152066515436929082233787806238063883385994528044771623693485347175911229162588801759892097919229050745287735524576536767742809742290015345020120260596766047891768030866374917667952385169391970072885507639996174180412206552316078946486296808698802705715329897274385469241188330699782184274036967610856171296806527082666681224209425018697861075229326981494259881195334796611103778417220179424916877192132168438390643787696271632624815368088206479244459513564768358330692726734741702954094354842979007997013399247522982288103102298729811680882995752492016569446509181699070879246375547823664727714797718622911854828941003617549747458513530892813120111888097501979733835544187230149129810983631381909535216523095504366312517572422418059185970078633027086935770694175895222031343903760406719138096817564469542325933627318478970877569075680490451165535393448622339037015425448342634669025082588433286717491628415796748487246347157327769355781992607897113967403962671327115949420230009959786725621929999129421945976363145186212574882559519994257567022919963186138430930031115930854433809795120068257190579055522753336413236154960767286930286008789697333678376326755098169332765715189306544624414377098184608107948211531241901608000391443065999170692247167647241582704867330473143776979064561200614606220352744652897834971010461032221234397488096359926842300581973600131925457309331819391247261941351970041293461453621266126848883180877387992451373193878995998407190871151161712104875130101223858901976283424616357562015885265649750731108830867253884855036248044877254515571004815257007143824520818614068539542037771797812280417165545447352369169989421600025151020794717159788262942340068142122742137134870369300477954868267460971125743189107503057304332184314646146224730783551521760923924234923723999816232162913589614981166093319664235564671869989986631507627295788810290937075360860016001185739444222519585366942394472560952716059878093051840689484370099880350140305484198907772068007545287287493965913091744105992549230310605813135850964790507287240846777497524901890615805263046348880702046169263136734333594586678967962117217234134995518769325692974111596483557105829017616483359060678786019781230652951100982945110391596782400622768231076360985724477740275968844964444249054126606649462914977715175364693913062944283603981470599371827200019362844054202061015248968322766709370372298439250238420470897655764985057291684808335455271278713122621705989926312983266329566303270878211143048308999318346438684206310647680134652828279698741884045588256668376674645487716654999157552154816368135200528741791084651504341708855795398762654418024187697039101543036858992398843964294522779574627126408082620653174796159983107488949919108402023896245059795931585984484726233021053364537750056030079801894882812216464134292336932586282923163929768443115427800133827622280082439412826408437831334338567163286727250471743704767501600579422283780207764286993101594287155363805685525985776153757704850748779758046988954921346532202342173788810377274534270810965006177225267612947643660747002802543934708600781113023368681214803291080733124435593606618470980563677201924425942390973817695464681458872186198136908551832650754836166431071346016597031756589722319415896472899992293160068410059985198319565987709185237437366174968454965277147454060199405631964814978787773518859595597014356329862103712099414443846071968196836962512132964318326874654225969289225211760700389896253238391425719610983815857380339492604725877264031209624240505861081468752878785838853307279430883979993633575459752054248312004729616664241536897331610858034701847121124593407757894135664011980121628923756768869158474263660939108321302892599964035213968086786806356366053549636978683847685602283602501737953640134079144739222202368438544389448270536460368323174096350302711693201895779001121312330170475990603610973402476417988742889466504055245001633184962819275982381604140721734510912116197611437147464314637314585690766478510377435735104087315991098811733276472222227860586528211817499316152736669455488202523487988607597910678453358632355373376421894576042410208133577526622397717185176958903448753521261447038332704768337411673496628376711659118110712756540500841531190228645257123033581585727755014491650878060479715260137571461998931882021695205330849190523039617382121825511732558330899425274358242712218601285140998066170749646240346002964306414064113599481114379415081422304106898467164237986756414417981599574204484605239087706980174207072047833354738820590896163854498300341124776924337991778890388448709012006747590915108598140270875858609700400116139226256486482218140005280664552676996197636576594229542909163764516867591930109750586977281108855551219072407470845387803639236846999309844879338552563049550726709734871248757587788016260720954406790422997413123855030732659322637162924399638481390932491388643886964637619179322843417767693974793485979970025826031051328724031441435266523095388377373154566617209557364154896938402162251529768930412859560161063472108875733808036465570589818558568482733171013847952477772602509507240565193506358083528862557774174023246632285774354706963944030725314764527371882514305421367617926333702437041718390215715080261217388868135654153332742591747065753503972253822048124902202736490016552564591792457571058109956040036066527147851115903567338115779072463243951148848153812130462905239003032151971774067399302520816783671240671201569978877503725209933452501928829619920892893575390736760694593820841798018710226120732916178249787534403113226041725197301826188974647933650830304182773397970859631864896874492136072959854104431369824817424922627055101187766160200018424255820772095834980924459169817498183602106463101231616232237394829787024527991153293056668818282960983174153138752008850824946971733074127148540749689223983682109443807493987048256112531630324286489218487960913742137408783336077448221892418435400376458233222745160604790349960101076412535009905017556229023133212042590154567869781478299666388112850615953386304944065110140422744746714513393249555961962139194017700903101363770997725527437729268838436960531998739064727974914775594664320567908587005853829136732728920539265694119917599464761094055925541833933605012712948870231011545748500367675809780963223153193014334648775803546774626782162772215050316979672229002232236192952732661615909292976494231907427036515742705099865145377008103235874126953973735270450772801427296580885616790686529216561744589705263310950465556004842026278746657970911064722124769032330918910926175061144626509560566426227179266231030255440810538961218402182522879376323864934563064758240284562992596912941504335359988928896871504216828906623138317111011884003162119827247313755032717857640150570674892273525550040623971004058606644210944951718985162756049157548169266897010998420256722514567381446369619286345133180495092249899958642659255054633370232795735596961388128579428710464800352689745546393356141313203669961727392263008824730193137521609109134879260093321767566946692955234352154811859604415746881752465927407468778829889647460701446922467270072321736643678978114802050632457813765752555350884584022349635990782488865517147250157902789141006576315246744411243175892268095673986525983003597854240704882880256913199017568083380616794670742966333067647036396431821642154392790068219017017396130985068742238809703332154054227079528396898215648844206705342437566271836154859925503380873184101284934691698635619645754711078144961240225538881248081014037193342047333190837979420314882242090974229973857475823518318946657788019682198043183997738513909767119860061901791587160446031362582367967187485195108006184098094586260657742164872066148660933542819289255065545312603381163184135605062883260517034185921001983474007150208425580752845551621120286929303320034886886421639601284055687558477478557285518252841846525251912814896229045756911978625495311035555439074462332931580234511713605152593543156086573679919222554415169475538114473004145096792022134623438339135327678749554261536505575940938312210730639693431611673785278942625332444784403943152274797340340194614834317051364036739328141338467663330105212699176299460095236043687707407677795829043769675828263834876189005178136597998368781236350644011211386215557022464687929012133444554768716483981464454362435203492435259676640832708651724298261464582333991263071608163558243288717220682008488728201103815980219509702183702849605477649257549131302655025723773260992519147414222807711654102880623938538539705781254043774383440494220533502524216385354049376713388706126685555430376678431489091011889885364029583484439938973240671417008826612402878595054390368751651079755575512345154740254441987116136207399216725599140756716426016767555671605885338395802817472455517453750325765581906836478137749287737822461513195869780213712265212087285446827781998025716867800400872513607744680798050621544590073414733872847963392213581786659537108694791726493269932175292680487398564584687124040523292875298027236632345237637242702859391514893911101789414713175117180437015132691932949650522475306911760402733250321558539992789222284634839160372364982395822326709834997173055786683273767342098160678696629464591086167075636852162057783311607020283824532029147527594691722611684316437501680719367616720204185260104552565427996497043050201539929413492817780858032947365918781713456852206972394214868889563524016001416689842694946154481106347032511169780373214248146282461677283536475686996020034345951715310808028322646551256450694758716234887107891235032843323456525245501092970250966347846081433823512664993717052186656826096811961321958658665019742029544503179020805090515021703750625126152190847745892359175891610194998418569268329095128008912369509900175312432323038975986970076400117394965573817590215499871621796281831791087511070578865075096927757200714504697963136532740207814054448236537770721008050992970477825611228248841785678182934196699329153592260584309743241269330010615984265297689966115700359191736572835169708811613688284248150796405321733984914172005363734585644739892464445797245301957115378254239445669008960596675956455592452587106432993378582241116916316744330487704009012513487437462369558701950837879390089538096091183112440021638190993710805822626522601315742972198158705776723334727509383816704213625048919091150561293787531148482709424969050953392310856595398000936655707305755182127697330066320705867520935024632542499011171161001599365149430360603172584276634543088156942551010553614858372954173826828427375559650206364209736611244566556866457195955983510335198244938333933439168813366468558846987288875358187688077518582629862535809392844301841958895502018744418094638542628708709548793386700610965417070316404956141541685489561799179352503119075333081611053401984370505621029390972156543758170541253711704226872659014752867965217031763929926804193824433274408158800325587798563329180086343243758442741534868088066242318895942991649669487567331171024240725163680215709507562754419257818445248853756686921543404126117382016240175672538276625893186849564112123848630771199636608127662367473185286727652771115672103475462142771169509606475404694042916988542906593083607905432952550830681373193223223451732813254344166963309084826339785669479131632801550841334222519687835849776318986489670842034137186728469019339238491582934816952557338252687548879722034516168329673952886987791319448874295273881161881109190445874855134986128858137977362934480866877948433971200193663606517691250148427834808961188383515448180313803886421751018295433419773600333112152753744343020749308441591780027446615414981392741015400944600882050992952785472470698499163931950286505329752760401403329844351215664302056572510470198590243545896864587571929194547438624960501989345170259832634958709042985259796650221996610709280021666058771278616827505638910942955617239430108498381874556942951943549738088449060844123562747462310704301014277007548485497377516351294379579196344704554971556892554202986935609769331354783445901630729021970082872887900660580495839272781039623737906382870175151693865060490281246605613421686279095259753485917214261177198148154772408707651160527802457031602990643781783778380156691010817581194142156123898236674363850359232904108643662568916992860888250730726151139553196356752179585610361557631929581364411065807373594589864305837204701582202651558623033596125720788956559733211041661286632165186944037392127858686824872603513208342465346268064959556947294980073298146203256367358548534213964343009824065806200808564885011000754220470275918934072106696883593590331246286804956462339275890435905069682330892868436891917645899320447217639338069057019003768942773836407514765548014522278062774323998717267370604888662942272626015072177532768967318487004728825181300978897448617270677954410513382519707116403447686950424224880865159716552104058464727832822108713669735626518846890117485233825763020463740914299596057624684706395582353065638035805801420987287127481849269368873696093134797381511615349732458693300944779662672450776514101443722057022479670596877149178555135923253555061873364996194120538916233379856202530810193951172030431441312729880130943732109429720297456700867942712591397443478711773896447778383652573811143657563586942090089827080131663519830258174672661940282444392552081467572918821450087418411047037805250571944172627970507588724579933561448993851305113936878557818338693563125326500730178881448566208090296181582455416966186954996560567377057813756246885774430238703044064334261914936435504885672769673434507135995475991835316675631355733837689367210681673994992223671476874443978220982793274842965308448467314828117019785793637333949729451267581343785820778190191571608836391299711449547870968917980191684772796586741250227633227259301201227968560532775770238731158771887984730466384397003209824110677029334965677065764275142850670624545322512022885699194073217803439287906539131196015447975176364183470618622111083172837083661122831418844350504926731956636983249388802961196539149956954219569850105682200360743171198918142166702649118149248018780743582313151216324468919434539257310967925998613156108851509807614639721134390471884432451462151081132462554322769126565853371196067274342830621878796354227641786897698761708429120343059487207436049558853625301254507314943412182922907989785716392355065238231604464929879805958010831701041309944021328395070116385712618122978877973589537015210838636157386031997872850316712129403954020587041229714308937803867419829375523756562589526566606182381264564912664470821888082737856710660973185607476401312905288351199887975965265090752590085158112001237534403973974674643947120119666156929968641056555448317439966132858289647533928594541622047065481316217449518236838351268150251972798756890416940463311258783865067639576613662586375747185196959412443645380505290491003598511708563297746688447406809704970677422359443575760493325899710162052505758876299299569234950562910817924370905548700793181964032326422079612510402158984956478547066953985190686012288080855641758541304693099165934067967417395707351560634232994887628407500382031404842354678620456499169368230499724174249791212050029578568907183958031426149060004778819375354250666004177037698715340737212903203293442582266225112907885061672887380984504963975751346078401622795030076653780637540893581211421650338951909519718282917443113728155124950875291893236628950904292272746140596674301526078764970880131382634988063299802859768429048277174429116336228694694995858136571497279131308457501014952309520358957497664256893331545398168181321852354451122169042586484539960280748678423607112422837699288232217236879588179926922504644601442196391788937678618764673073944916096550087694372645087313048142911508942261735393044176842529210610415936318074738921840809952479437805471224657743575084448536360907894614581160328594406341220532505226359010638058194706668886285320494016111176783925085128711274234855582833834348486667151029125167333118163043787962344604920180867270541933142834204908874984631504136116436998133644607450326260752750096429083168526984432317939160282194307480193794874613870246275059201104393235924720008424401798304654443627809888802972057142409906616103974074351885155423816418585920721133696250514616607410315858901732865012577254946293347694879796226508726583872785796845948808046336120114663086658479666527590522597647843873450713949946306717960267395901074962655017572718612008555586605321146350802938067135165723025261442633023791929313797127972079229908124574553489647962529993143357879947433979421611935865215491569027493335855395187634732290881881877020529542968790199327535468861980164171690288151850450456923152997590505136910865068751418325996909237656195085750520244142998627558767465367338185643733963913102071146781203334147751269391716520019513706852522999211218470232677345699014681689489654658467491346922291481252198567387934996788458948715158026658457810598790664832440995853425194199190545726041748356858596896452170219821030301668145794410298053319593947317683351436871964997903114029057517145579629678495120542776196683426119176482559464621846970304064147630176038795094744291724952065838409616626760851077211190224544629140617050471425362886136447894804079567207287645957120046152052213521003592508969317539568082901039080355433862307934077410236731793778871608165931023732709769932875992162407600158319039045403187926718007939873946238966618549437146595619362127807655009447459836640092046853795088343722980351597827212410378267336006925270533943725073116133006663683381508151177562537401405212592731332608705307828674654372919099911774730135513540597788294367104106720319878345525839893333664653829526129792829009394649559884549573112399333163222690881258045348976907037359318287357278928614937189371230628051539862105994222771880269469844985570061798081393502832076575620724332852573056269924887401916419302804956971371171740807853913032089452687799973073159704030038501354848444813216235004585808609901898509226932399559287768248392236756720642197187539997522992498380702843075911015590349770717000955889255680635815151991533889435660327123183725780875326924665283030607570443992801701148498585678017814922221176744052029878474841883948658933497168832460081260056332867171723365679590772781619535999885011000699883711680598871577783042839896467320320390696998945710734919622256328771447795852644280031463404599830592942871064591173086098119114753716184061359492763305762564847691314396183072012049108698754327238425343155401270842729435631947669489075150654871821930939383275049137627172345864383522465555880919186706330927657793976088235372813619692543492311571180046476875617474239478375241687680000085209176711701088819607752176968343806756566793570010043054892992021584152059517307894487397314164873156194241902589885052087761137864154236039454203861408884955662022042683111863929410380898242016212680952472801621184515415576510409626896664363699094457549345071767261245051738729428104440973459406973255826174494643872267127633259423808394702162714105179614528843923560323396258343378784395437520543710265902121057660374457660599415764927052031562497140558115952856015526083267752711920505580828946509521591791535589143908838670081914240370593340215020350839241356280921545954288818867634744175228449946751851857905478323500666931021539520700723265191229744935733436605265443806196459770944518579542452646538119502516976909196023352293848626086083785532549936529616599842111536966203977524711261778865940621276165985326837258842072203756973342126344969685565487424062196549439331590169291796393784364400347626787124539530262956068755839785124211119464779720705577450573859329091940106185013508271195842410564314012195984961260102350018689834462882209246050945945154809980277584828249667900898731928808938446385207503791485586188982299987307484832188281964845236257527649033287268570587021878493998276752201912233061997296246955933828911858305029024231576648768050312734536840532270577735379725232731807933699816560518617396631130448349689290961015998146570145224060364581972618305064239871543752585557478968311512945664463008187957894909999423685602258794597678061074303252664891364346735097547750843440172837259473427136485528868655688381844768844474813392675718819659835470177618131706016890441479482097999981502615130730231580965267473381109277549337585136042053528518405860679954912602852708694775987196844612886144773331971491668927461820761622176206759969639956301048889845973244274660976588914966687563914948368342309794176499244844208614191266037425808642010336531993043181717841695062446232125481356563800215100827607246720166262415340115067516533565721517242877328585200804252384107406781360798320135555857572682101825659425692823918355835840663074876680263022836312451490153341559551426505345171166209564267311342543261541918688096578525782492136765933901211173621667476098873082403702231437180822771368543343467437384872715921099700512823682866223445393203421222305943314665070909959773835477568778499892414521327642338144436014181563459043202094139176293364170657341598682154904085985975948328683258367287425823319354345450957528251824103937173989960725843840755933988969554889543090347397536091205386427598228472950560960494633935373798588652118799328111027112897922162634250195580904028562968536162102493275108213051097281428553913714066956217932672496200414288427605391929674102710140245718459918998069260209144647448703827796752096651534532356835404349940037694505851145388151920993445046009710998009218611939116778920597901577658314704986575292372074364535426339834754465052164685716272822538014611984791970678863674764801040766275417324323696462189652557990290362155600358457814599959738552856517547241958441631938341901570514122057498757891967782189254542440247609673870925688224298827853405256508747967116504791089622357453768616083935399345621523227964820873272137903409240530768493757945523373119571166704159039702798171452096730866126314907795015057281121208667723077529871790270330554589186791703177959774422351652933073146927734859806087403670935357652657676272841933991034082318494363861044627108961159539502823944961212132485919787917457919837249370798101108884701164583630693562519213555741659385363705597028486793253210688532934318861336798787691385636345114867858256973068087286309610362990538682413072383646532562485534625950854527436916647080783049981665466379627020171657969308587365350680049753296038390557514515666991620151013945766458485255727399935111515671017141168746418122702448028035252196810489257420071264859450015382999227249452335289118835442295989951321906931361654501251536249803524622598054681490706187753296413536463692317958007642228939188707375549866996454778494065963856963751500196141730432199841755952032900222687803916648343537470333165175899319075980285872373551541231823836359345001400365388265357112547418370715100065333430798555491459760552448465453590382459615294258804211763041116512775893398840118623143721386524865438600434853401369062612706091143657708815251104194054919288119667306236855104643373547865016724161030917569329801277288529003178214568370260360864939441438814374160245982899932268590712596244264303628793999588445075442169607047615079784275843644023290398404835791104546653222994319167851409413254647666251879324837604350879850084448927297861963977804472706808918468155031434123166504621853640678997780262668910902523055002848333931829056835761186308373451449852059873834332567215916872049015460972110977290902503255286858096110499921459123828103630418446841864363483478245237209095143903528425187410953165342536324927667944278801366309261623918872975009809841612004201971725244909313004480445834849776116472354797469271244224136000074169847252369664770334028890892815005943775744447705158202543938810872040448606947292751101438109076588929763868982294856419230196449347066934762125905561032308905840532040394182152641431148501912026287446736200337458345738274753659598217087311100337371935702454917686067918657871943400710468083042788104526621932651596510162783520378541937087417549198498503729286770305798932607294952718512603609185176962503760901516994722101125557674230548798174415206753690381577952003197817358374898199664904616116151917353707293822692861140844466317289502090618277841878847765724785898515626289562079449484159849898244598141690777445481442755280428226307119644270966781228919275197050020621895245860439533428790814850970898012798151140746431506203691653088380253330137166981543120611143878401103885098173992095167605850225896299350771262385513684907985335875949205456605624278893316219701488287993915128658789405975921223958853949724659429018110894350760847800791985776535634234272627986777870350437248270238218061179506927347371460037218004273249343355300690989824264126381299715391139355451786842870678492311823943022081055508834736672093398230782387925200303872307621369423547657009606424853186129696040388621896447139097529677807267732179993124555779079505262136867032508658704827558112608159925195209943967770612657162814744442758074154105420075608978061988730740931934115262282935388302156265986782744249433528369848463828265535134466561089568458586436339643763239641589389367859795780989317750298588097691004941792014658336740904445588303697396322844650892526269029447999860248675507075130076334224455887509576888434053624297586820181374013360146244140075646436477784387151004048718537471273442839063912837445056620799781330899093433456469771357902925134332716620102613783299348247060668562205849361124627346890180960745187551613683623631811252985760990166542708468236877603274433019739758297664605860587418218377989186846979285162315077588815421589110596879443097912752723391028908974646915964814100552417191187357453529385367118700791681988454026432056153964424991407354233781450834908424433845913285929013171011736742310280250015932714352330733771955039035030169543592988432625154323662574899973134019415002379856770465106986910686593103173046820654574724806765335986062750688164062637829872078434204743469085017268429698256567906360958484349307510328130689864425001431608562651426189596448587848023208898640141292410711807535733509116907612014427422931887581111818002401718457209154476685345486213962648356361901037842391467398486145340147427369429359674480287727658549967836033817337913683890451339201493215523488731301179455509482131034365579686895375491163444500563412066696730478243911654327184192158787920208260432306525668346127411615093150558028895211089503287082988634454141929351319899057906183931234055372375197265470187245213767327791690292404619856269732072638930340910178351164081016272846046886356066615255919288901276632547621145045966658044848651378635456227037480219012968415518223963128078245137298788765304051045782653084062478293912879471768298498436224755007664548793758680951390761399670100408431001327646927062035727620161965901184029992132284170241557629514526637625386410713079817418074952883890695132690385905341045354594143386695386397091342491285856230235937868918746596937599821212373289226080390975415984287261445906404915104792558158436389820643192217549389347339018370852493226317689436823256166965885807234317249243788724893767621275241393688145614389739605636009106372775017823322373352284991891433310589719678060734079746627465461078267247284135640314652588035890766999859113144480834027646011958112396046086763343646103114638876925752463363076865177659776946709761347408509712027033507443845436853096498710934710813251288487952443346812981923227922520193117391351625196412046628833020878606939372088133476817915170076516087648139681310029321808490119839309649087474125409552608674877129390409461147952035007123067897050585735590423642975389421121803153531091489983011525347457891645150219433735332267408904009863489102061465032430991469562340686751044614710123843869214726545648627379220497237480942169038146805962293303424156473141574181352443422082736926344133643564295540162807768102715183309635235191160004262303489351683160108581280690371769971945743811961802749575495724341014859389809264885344099243985078461186458061823174858405612317488941950911977001915285612387370042435252670524839216894844384807292449376744267590480105152163377571897707149031439112814993970930895195945353768142751944745571794425195274667212789547364574434409332844878827284389712870370589913952034551636202240292797954254561598240062604936184539248177563998190202760682121155054056256332494409869780915820505246834651201010660839428575179402278653751666866223834233663165248863661484088515644167096166001206205825672553115429078706318863578747960191353193651001970616885175665489146625573648515647654357937383037546641824760988369367875257736280411109779292065577228610533187635858581854720517669367576520811652484048153473190366245262862779071248408590476873117064851060726647788738842022775939367864947366444874839841516998648047620770888119884531295290120030714836573171481994746176400653666447893138053039425687463849205058645717276871100891753997921915582021749018972632019671113899383859861811093431016848645791493473536796446332197451922472352465854606224027692811339952300615751986605094478324957497200146428551225512617258891649817967023439657800334271314538428006816062564577569240648708306105779102710925331511826054771250656476157028991108162987751231829277124230777425142890992343715489887221454874257143972084845178721987344854433626434611867310358538261654372047248780785945789680693832330650080201677229272747242280557006034245618118719458924846980513033429674864312658026007867292018296965519962444376537979984777106219716879632427415347652686562324926582586054329726818820657457555621246679666606728051960271411900171501112690540131722770794883362525113431827195062281300940551829416063680826880904024119352787751926781940378816106889623746819132146599735474493732762371665628440895337261932242622326807859321301023539640136066855955525139609292935046380513312590419484020731278573696775695993638478205346902145833094025399953409465056206628017247130774782435209858300685544153593453978604358328868927890594033423970241046296812496014814877426983672631193978249237562521410236235161200792774256787990768019738389022976764108613528783936590068991639439761552060240868631262683897402382959556411510898799731417793464477962696933185453051069741726334371360726298354889294238466010721391822673133959707869273164921480478684986830770961077723432788191759504996538289193487994572373355393370242075522998667911756392935465985186290710401721482926158183875278194484449871996145085007133134142414318092731607331727315175405393436821750068603225714323957875666372672056588216721323241381525942316835843405080609765535782683736065272211039049783915147421519373477262777634105450582953002746829307122895511937999065479897793033715867413961906498122774106620557701735975306494223767134977086649433922497410556184070134422174013914612581281995978973745843338068775045814563263129163815927645210027840897961091285438908141697278253885154271656293642544957914607128583633824551626350538010276186248755146042378168785054085824528114090480164529957063428659670994366479248130872576300543912352435280884362345353366295826779473309339279755963922493443631259126268795573110285014155892085568574659221980758730470136240737152450624900267027082721027363485485176003355773658330905577791113276352551630244500788097757676131296788421397677071106189252262476555412834479719817261995614164780864771496390949660661470608578534774812426089854379697805547665513434763603071792590498563872782584126708892057197681786449043122743354426049621576774420967706917536074657301662943150348408220683714171778030229160015892692574010998010186572489943956968247658760290070053981381718361151031288132521402856339633672294291333916158856711877360558853902473782445776586234139251884339829303728677386606454913746723859961441558329379186020180367530857588627392532954670627860532157073297486793940209811432205647731075202801049391297090419499445969208294812434649719232476099822562489495145588427649488546130652967056441540161454606730685382162290308722510433238894048914041538311754572293617956927753812831974390282897352430845336979650481594628954887292808837057221167211306471092554543033800802719571605132078327443951086134526754939670663680252453717270122912939784029357584071320015793559205900191958496085232865118795268775238037991190345913731453287461420541291953859417480145091880066367936049049223906894257399421297261747933317958304023791478195281017248010639299737993706460421418772484892141675039780449381767081952325451350685590685555213196573629699292146397076355655042090108864755387063820211908385152743895269644881152195265368980637224681942480958890939195140488482652182842669589621084097424099534912967155574598612335803696948292834304495743582364381680953275236952020292448907630768890899947118736628316410339189168243872662035421878459135694617539026266250283855143566736011055549718520847863062677305746206425750083383562175287351875223104498401379184467293399837074376580014619508588911161221331743617800032948900778847276337088142846022943086826984510457707489865560497650965188591878277570301974005176288170999135476275625466726715401190814128329504400066706478423284090547636561773802166958728004493298599025019174248747681036603541293154491258132728778180892728777412319892955370731889436216352133188527694861767570078727317018448940138291718283467156436708151316277308156497929460193327860143556065464341508594886620049674126110059291989132032738028166983481324045371804778365756916231632284294389587470086385762323131770114819101060234314670235316422185778275975977730846083726993789547984564923789516948396527386126847654617019780243029122644964159151298418535043546855229234945723446336016913242200448892694014450229461516124619010594991906448021916741143950246493528651245545312769811355071056809478025934963309535817757641672410177532605643287309714300696270687181533558362130768379741629612336654666866113161538711857297720947397305714917800609510832454697322360363298252556956913117968488824598113318295887832413856277982050862291557211439187320722055160996998948079658182081361157252110946252118680864962535005042656946913208325143869323706685535728349991579786231725099254353961613579522368448042241165636329725326908095395639685588665512525741261568425439518968899621975703205011075322885683649281073312981213203664638694589966993455901907774508873317073532157807231893354194606592640089006266323939705288332669493863010991759982949250706394905685762250321010421903860398218480192090192319737323932927692436178275923459965337361476524225318713406478620645110509491277194366784570836767446034379004055869424836093567378381930357141800816901543341304251972206413304607457816571723294878906400718723570246886622154774904450474108138118547670882480901113464906095251466690915754383489785289993851828968281816366906673294870832531034504980772191807229315752642669194682885809367640109054882835730351168626604250789976403983602366143700751755947500756299397326731625865728971172091801724585457651867008677243004337070451687549658330079522737840470561709398433982618556917635202393729894859027617069593427246463419503088893122363682456861189813898138842269257483204383012917512054807525195713236141602092445695234073854770066466086153825372603331409782457799762144279727770050679672775276348603273957584850795577784353371741276045998858465093385588054691470421862838049262902912936783985284513104528405840582879054533696211188504371737421039427219348985016657981946359816668717503270996713721548538851307296779908669714854465502759946351951624319802961842231364127942686357460994280948467414652245216954904321345634417651815845981035849809490950888528682343439243588017903576956818345128009338475041705273677021347097511413607003258074906608633724911145735714434792650690538651959928490263510876348364651740713269200374199242115225616405079202184630438316447643289204555501633403391358481311628344931429515547363977967001748310174677400656757176746504990186271636242048966267683324644047196477512337845154516474457744610260982361002715736919758921033478006842147074837776955216311449570227834054767815100568507498382123786256194076038660897989959014908239065055012098900360407403098663351984100939756396260201565894886431288831922531266680369862002228686939129535422698538908762281653243307129013036420257047092150411373126887019727822402903443469091740051329501950788918248395502241722314945154202365977240676119683523256250973021472923786743296652617471095989514953040034090620051471889722055388540952447972393660599298154843183866970652759541312287550688438478597829022160198538419709637463980118184890302601073045531652916045816449106561666433118826157965153145397313863532892480890173146897682207577505519046546495455539141029603255171158137552891461561407657302951349580499511066349334675391982019126030564188245899382689569375943621057922459196824147017232391402302989792031837884100438638185811233763432865803355438740124935639397960025828587646934775131995662445280291108170173405519456124909250686645465594192585616661231361224306340658583082114196781495616284398173358570468475544185038954688523548113543724592448020356152563165643995681360706577619684468821198298338635006411969575402652434216412139025356044031402443141763538824943015651488969298422594254792288496030482657959010605501359357853902939269757571843594098839319721957754600276507722143877499804064874679484343711970777468492317864450406923575816820690160060218429536204626815501165347334806548924138030068928445073571645394183062963259632967689264687858736045603784268106751495265657372813974284450171627746851020878556114459748542061079123345094216887246802909711175572802522266004058817603986589989215599758443139162870828296878479666007885183288556854265962567394507220437052479808665980613322658164394778526168683192781343833997809098633794776552111200383968574634101896357212673520766589863779025872511635592201537718825952679414729292507143953417915721386589461052273876262190019827287041627644315101986193599775377922468594090088918795578678849500956397024893442412635013111654417749996855014705776794334000509113288735781289719802956784592908315160772334763287141514135594376670343090158990556952167669371466214328583611457416688100448107401743726358577538568932320950447416931652118893177501093455494523580659081892981885502213778161842404718583893926230290816561788583828235199533302098382284368519040067708901275492474067845388582308337864813825039145847790594243551073604201568137656388892006128622612446693002134763769861589991572674339653703835589678104307846852629132092115830140340487577255935547990934806845422013473897111888365801550222428501205764834561926632641659489613525951323227409468134076433767017709084836327940688327183680590939529529397488939321478203246825523405461182276372228124832435494541301331620510813929937174676078198324911026391115369307586794470770981704176728929896311129521065518406709844006870874045410802511937217274035804172179337115524771120009247285211981716277365826298653374636926578306950604284151476519024939757477383243418094434496988711068847104887785016237272937755514356311363150030015381244941984975929521297125303596241384940598552039656661144008983316817043331526243108007747918425265533861701735282568626532284803570331454065197325928017651308836161447618633922635541469872909456242287326577905881720882091076700068527168555608709872728560137242743611121278617650423716204329669938228054364030025045358089789988189708537523882879759846699173614038383700028285389643296485213015159666720918696556064642665289885853044354399246438833025372459596555109589990969530657014082878808649031930456810837759561974256400302263170350102171926158348257136510256717146321951445694539306088085387443387102125942219905387528704679289560406897706056148731962201917598169531690942915746726332542571879523307440370780190135166125013057740262250996576139241706817634587171345946346947921197036251603841928489577276821330925314713879223937807486840243985654065935181887066105663752349879142135099700550545507073977092810004781688337420015831616959369793433069084110916716289818295537410586981047259400026727152057674051486014805325106604233182536601597479489360613719944275238143283177316834129482036951965508080406886528257635164158665714693210533494876037792106943274864010752683639350346533693645607419097596641371570569395262317759475813416099757812632186488886267979960782314880400512110898083045778642347548552869510472992519895425508388561592696929299551115891488591473996041813697743696761739177664853145719756448844709391174255788728887411240912050473081392994340142344785632819742965056043060638778819065915000717769627012880146395395128365978821038239787683954913470643071406668379182664769951939262512154062945160370964717613546928949788213262204024068556273165761973659582073849974376493692514190939779132548688635169010789009726089039628621613242974256382064092276304564435314923653137136029774235982047663914682366047751243627763415817215699970540740989903067974260838176863512963169174985705563192025201620099139768159466341096519975821613576897748286352387137775587314061073263601978877788378403821929867676464814262521477280154882221406720473377377311931912318953506181953518676139711598260681415184568127569533437621867870952149176161403845269060456440445401644477878870434974853005122019404003448272057097667235117222515835752099362317111716471182055234667018411232961253439131592469055917573004163024710886537824189133168456804576205111061537213541872482106028133939667085027143158993367904898572121094977401492937315091639331962644003318290024382640701245470278082807131891832875357348430691393484800811567120470393148294677286304923779877056678061983924277647839055594265495446361470027286804388751647321845761231731059257624987508236294379709861184518060734419124725515125953558678211342080884197716749382184015733969935746032911350208061955737502118822994664146724572298458500285928066405937872906556225244023361452576258514035864172722583717775024438560562348133454463069933081402883145910042000680400422431643378697240181377264963403099720180474507583499918528577525391510123577293596293784260414721890834642515265960721185208226938007332016468630833480359607124246702163015835444025131716401171707675470456868716944057554367041942906400259004751815873242021648999172007862659410695777574251596207268555982976600554175398306687898645045696208591053196123772837235006772231834200067182935511701392089650947950759349041533674137605168387281794353063354230670128909142988259415784078673148217909411657389536329744342011007555982761310864490786061819512815435019763440526037422346465572872113704430533385425314075978980966746442709477377275876233834806753271092009839876458829989061004738042258285936267777063283651590123605438777426736694157706227535305883222162772992767266813518788550534503660132241570142653979656869511248011957630361763020365637078389095124458640733485405838919523454472835890163349918996874648416487156044397519217108968885237470778382918946799819375653107211576110041285495452253044907522846739092324296112966646597464386669537301577467024248291737997144301025543145988777746832225170306106840936948096866569195675793119323909267128106198401766123897441833301153638149131445873031731990068478362722048293111662454322719924223129036128271380971463185579501707766036272599571371768603522629248826599853908719118791005127565131033017045625659022987404564236359141582746278694930681342309243584442343658137488676134661740898696591095002354468091823261657111444557806223780126979202874045613153401450900710085516875602637893703757780621399736624874243738311069280695976276452640773363481351319296498082680549662641961274966875442225276691946607439415893753546672393496331092884550412459978124516269220013127863490025868852264667533562648326751008682445486568256277212172433397824236913906927437316895265589612509318170231755092487762053263384991630514428384239824901690761739159970426426422213926246420210973031580672701114179126161655172587154629505012965866139929114761251103462054926838637486713272528404268001485906645613609008244713527066680661123399017576211167510604643259259586881517391312968110209784619231398063198805420831103984488223816473164806296816123898677747064055605752763206652448782940030169126416543762553471406609037060784028180228874949203302367538474071237830943046598040588234227552256732057928510650908794099070121921130223612743150738562096607973778513941847167976845051348232006674770591920958598144382245417280248616159740977838041041930388597057284635120371846089984163092887530462777223689338173850103728707018589407332826171132297612809073762630438706339853606153763812120274102407331405023398074486731874474120207265247768228772473484518293960656173272945404198932802696556961072017272771178814324179667912524593558783507722182013417317740659680780985526159444970631298353814521906987618960203394322247666880894575504865446542477977537368662189015200306881806498683210551493456297347012216859647012034048107558382490209257314542342370765624148918722061134380908456196461875566758780479943038984676620295868683187166250673637133017561393510689723724306264316141999508697367291087766509070790083765815617767666127398489687328577232105084014936771495286030196342368243762186403114708683949385084479604879809671486783781804108892720148089462553008895426123825598622643003857111917947407141618139741788625851394415372541279692583379819982903664269783504190626882438411831575682639487950530742739085457529807023050954578756575952933119601931283329322689284201015739427155741819046247906416855820114782834231385685863588404979878775291627700348093988430993934518194947996386241756432973321861382244440385650216141148862570931006197190125610670909308612453586542230934734541081397293071917658912337300318111737336180590244177833284418193088137713234013150857670946955675472508216097985086300188867985248139644505838022350941773483053646175406848882523988573434277655222102807442941918306082045660296118170686839344421709553171405574876326110159034999007322687497165667781121038005238861681525966171568225464399878499920391187942948569398662283762888985343070277120429613407579430704522276228293402327431957354554683388658222944471676333492892938537086160944392118155350354012201554775851462715143505941563828128031997601308086046786083279819016366349386432655393234050837449979580639139312307605415127454510843706988172995637426935742037038209298291180561213262277589053126085146073403898596749606599517458163837710121522376904537885855148914468821163486223331912522360177770764620530781646955595297433084368563195873047330278835083586802042418623956090702102500465768183788761021440067788668754080004454763011491399855203914506296944209998921762860348960336333871170305629979152833644616617702661740129297615630445736482453397952323089055518420222658325863306985560935970154601289205185156107204658425913538161654612246279979858159559371467683315034943741909418198888716606897329333394185163736182763440219571112249758267069967198573974493915352136061330581991530500541753086669417598884024410702424201013523173958229991646290092663324511921047222696183814280520930829849920001894686637479734281107904348773668735260432995944840019755907760935386580389971696011613177688814158490990126582501679332008325155984943971220250443700456048937284287133118515849167829368789345861572455651332017485219977275049622720720198903716097585878254243854901905312757319520819218924873472523498584191849859987971016021864377863655771836156005601188656117992685774813527852949624574778094547759173003056792142968491284496922427589869397756201140558931880401628441603948051807873399949825104729043376402889781770770445507892786171501324947089688694760506937186521891177077849173193382317085307771403004881666277097876697628849872886919265007733806621782966226146860368358446161250761643511221980897821916318068923039089126357732261104453773906763274209742237261106934634861932195280662074505349414350311161957348679903333260560794860882156633316644400781482796269927840602730522701598983688938483988914657817624240550545020545758271303474531002046250045988237533514520981913051606190440867056852714015628882756548079099333866389996304344875282580222125057220926735668077056002948440093827761093693939848627694696827774368474038226230013544945874929119091384743754659145447729048914070435245711363489042517566078608506557419695887917433857702147719589477997760427571563745174270208680645454740703178649298526712904349268593262565635776058623586184174531256214547237879088175175145414384629709442783374615823308275423479316380523562696685122526309532651106111929300991696040600877880041267181168431068413308978322929683834671831856243642199025549788376862510794241814992238134664460459580643384652735399435745311069431936932439220826344530367664384469981557256921102012423359688339631069316369463470208849105405755100238738876687747504546342795988978785700731660885456175351609104921954262444238301992243499917916816505570081803446111332222349665957981476976068730376206473585861375541867961723300673935994614336548666057486880748944007654675931669690621429849517614446893932653300191268162842003204384064185801336939185609335320166778019604435048936748625804602915312219475930300914470583617030395493815545048099352416810122436885397504794578829291470510291853017128282763148022087372842274668014151314609658271482516914137305564085632082438001392802128907311980407141244875653797540572469024787569665960887836256972009480551233184329283244815159268629260107370495580412030699387159374778906294240001672398987627208350723884673305883207318704992943886756671709369360150970389581723306662132668705665649214516571363072475028152350147496783887649924107058524122181629221347234564055160046839814022258169486308437226145260494175271148883115632083880659304399286329032074149409438217453662235760171058847503503303830394321778700866619151459520063890055450394262505703557307186161900833459749186961225504248620012363548002519818456552853637687322415265736948761308828451620706053101219778383094806971504968369137149874675490493290028881180910669939052807250804231321410039023347353651004919508402803934910428988792491878896076387083719869268474167359713264637119533647898825035309984480067836539662733228224587125516178150783403269965231268329581647659500778538712390460610903414250496043015140935162131516852123476085076597228127997620784294115034282846601878573337698449020166386621138456689285187813887358706969765274918638017913344937885323091098589194475714050207709066118649094227791263387575524158688526232147663538790209231847402927057311770834478219944784164909736987234229905867874323177466343736500540818912055591787654261243755889830870736325293163876408751280688122769774288382696510913833809585999368347160830028164352641887215623805120783514663046044067690859204059775606204930751073914085039548304328183584101552868618606202689745812408100886926084294192803975181391810037711033445981098171996210184617592698773052850976029319212444211979209603082013731330763294875569608814880323000979014258083070834936532973684896304125305627714362005414335547966019684405277731055834467792143536503597357473542488263205087698779374766079470158837021808609917590341710741338702437302344310358608337014415993335570012803183724306159470162334991754917923014398430082355125595566234277480936183854501969775768265280564326125860131348340662828381431765906582055871067344714510504552543058489121389414951883393510852028522191173794819624458901545766360812392069877872634717338666611940368105201157627544878421064945588614861660143440529008778445867748531245003791248285175924010320973820337416262624690094048981078431768880398053379898515512098193989853174494227729418354126179556151875660978886480266475222153877505871789666322862768945907361083937363718558240946739480549593951393889374553046392048457270336535891288770943191279608576629359363811732121541709727198020747067326892145785435175704495123500211558216131539593668291521630604105479300546524714920254499517827443482205335927057594639475641698812067461741036557051800234016190975713567848785765501831813907336702223030624665746963211298097201652220357516030561535388566399550669577454738625535139262949293176206109741770294312156373503816883289572421294368618868645964509525909056990878043574723248712973879593463136934539455695108554886765548330697382197392570871719440327352140114091263733968700919990407543279311193823536846602981881323696968719652278432281614183062262802155136790623111454874606502800682760987061520187053091423815592666244364350309476065039762663839676314131828864924847255311472378630480136332727250064879000664149124453416556760101817842841903662581643962298623994490916068589731577798346420192549590045808608014466539408427719372543738030333430318224383589284689135148565997700871412976365525748490666446278895578133760809298275992631871756808527422695771438256051675165906980881255863765423574836449458860265030975512053656292688448713113674389923843836965532089702869737206899177603185454583096928389680809778072003636105603006729993761396537545628632172839981883254662462692386219079001408396064537469634250343880731874291273110236789662075483887849243952327927924581006740609733418387377362870445068343417797891485561948593729344420129700550073078320318706530394477701347128476241373766149342851581670805082450574726918561821805011883450263135934719030135956904048244904646986909220958036872749805388544383484701478581469336083095154466943095986273307486093828894258497009703343586310587881693063473141645506968796051941592815267106171643184050886947587818096261437884868045355019983354645990785318201483674594618482388273390286372341661462618665915490329365479020656695699714107632306611845061108428458172947266708953009946356173943471525371722107042433862742688350880078079364707831995755152326724546327417820555244108068381183139446724097630873768748429607226377293621372064592033580869988949310466283648503936329989525884867363762561560710979105777638521273052217937668833049184842756339003221265072379354121336989496024653402113486337983563854741738418058176769819431402989437173977274087861963873549094803659125089451176597313382617691362459511038624853843685625267397577858268583905318085851637620765347664473538026503307820741821601351808098260055681159221500902588778239270869116922831352921476375506962088943128556123405993211028288106471438238642419087721147544512612377743884588010617250745357396896781350830760469091996356735821833833894094819494012896633830499167780375870335294976149998204818931324938444374292206418850200354166162182148334156732431079362213247711500780784955980498516933752821643004524734757654553998540265233715868031520759006216004442255348826623913118710633719645656472794099378299818128458703202356171205037852360491493358374918270885458424496006689563127227834108974673869980831497907654352777526926968927084981409589370566796621293045772202379437952001736434813298854086867599000380671774141309407008944814905387728380076259308325783581333095452861250393782474748921384379508127961707120416296262980737032440348419808881333793100061711271344613406180938138417117714783759982232025556243401455684081254250488014495343402444423436821167257111748482021104091344480976726558179066738251097470451116757141770839111899877315099012652965231033908502965104657676903388510164959882313234001328826850928821475464103932097422024572942761546892209003995323054478036815301577389208948570297765562196015151150877882650303445552562964740483840800880485610367081709952163178398851427536762693248548304604360837841228209892672476140318172571286402758538961201071971521482912585338198081545536162847009343648058011831113362251100978602702297494140774583970780932588834988793685595422556810316141058717537920271680238317980635410204668973956685284221660047796090584049750516051359294651975271930627552312072017729907227725090602558823806031019963742518561751809304972937588355512244810124691540590249146397036491376404346012573898329578718166219545610853549923781415018705557315951614313313255179608721635570280967176813903251113847505929202440661078095713422713373443482376316865497312309221755526945900647436332355067633506474388484220045703909138931717393173244914788228063427914682173644572397871132592428632072196671095332784206977530426741482723553229459101433785526194679514476860398238957312717799604133059322421044309098757453738973399871996811526078379701260589459619598236063825583525991517384318607177280693273502452274959279404785847053137614952043983061074833576328534079567402521289849906145193343352224072278361210995403490937438533150928165271588765097720797910185576652472794839956749648675891229776540561969996593840565589540336359806315735442069612283791288418611456852117720224273518655081214613400333625884622604709729356355351010007468401366736077748040466330351188723570484053666041573185221388475531631121467701257076521414543214566058860052773670190782853020569152891244864222468356701159998599943452937341874511249667526583063969816386693561618855947928848778576836240669577651527708971128233387746287332697095022548241213598951138450111411344943002857785315321545674772408390773777513036354693971423971950936466017407175704349074830372952676614212699572832049436091722380484112783925108192533102564518156935015913935412651932585055791203175125844575135562860660974007886071572406042005727264264751256027775621399953680924012337939886563266010277311960442875682148687871093118254613858396426136465187109575813505888131872765390128222245557190556008713601488608533650849984185239896370924412973154310100560396593936718132919296426466135231939452194488503346735848651066749673595498217972975302815534154522933864640809849736749306827095311212603596521490121215876749042190298906862502143050397237378794098884584675564086989716711174105347145277433083898628583517839994654174171884013789879959148941908134773035214648960710087353671205669999907569883078242057798032573616424915484093199765397635061592020539237197148028178738005698449935658120714223597615908856671879780506675023398070370525557700260420623251375883220382270674015648786933368779657260643299555559574665927413683406869106111089427486824382202981953648684973691629215764881431360195309750802274397499922718395693142594256193272278246575626797180676732771295897696208531806918501936817012081266805083954027721173108633716172172261097712830464304814589472109307687893258282673010835294960339531835610543755112776031787423894047979331954988145394338195272821618020136996739788676708392607641096725998157083461813148767306048043338478197155483299340315465603142393066436573785083007165231442971554539107701978042304465330265997844571114592511178737340887615803857265602321310538319133706279319134307668762970076534239794839791165925100180821790891325934897650446517249209593222565306694709890320074676265626246930695474877168053958906756714579160885869068971129145738821279626193379398574083746517149417983256256123996492959416691612239839455796161150154611933885864470014286487366579415641290437872187515554194370995962924768517780091406298704043215815333413172456936764706119836091143845534425491491171817002507870356584486083760481758197028068784389746403791391199424389127329273524151135436529153770813279469310780015263454170267581939163545541774592772799720578363120601278691775615236665345116006887747821372382670886942334055986653183923871894207470014620417229246830741807874983830986596654860050458695874908727458288514015665932909565617314906274520839692199067389085979007622069187268055953572262969040679969138982419410767815871679852890192159989240238979299329510325235523569155479987752049751609286374856811046551019563508093468835311590432766855517960120690445126212115603825639407587003173970703400750896214579722576998663920335443219503432844024377974913230668415512478787707564164391155049891025912940156762481238039817402415974399108817354430744995897774044445957431148202998625358571735369090071269278737420826712131572844323525534799038187139224984237780678676063727155337899886017965710164213330675224906748562369460001232106309777935268620983486281024579822304124339677892855458061920995238827046638465596747925692276661177057704084459730577287372701106890055307476724487050528628726303910295984373697294556345941137560825700842996786568953176871781337093013490721945647192721111373196881837900820612623064198878635844198909458584946984643229665785171139003366295589748573558613677385024061465464355982192058761395784815111887926470760315279151206186173695535469436239802436756722539231653258545385539802115246047787106453868247835492470833508965518593663710420725418396162694899526246286195352085454112657135207800452950260555011687123465386322739623777811266282490659987340608260633408486241231367487564890244441293281670030242337610839052050453471176569515958098205029690215776475356971845318601586431774723667587025841099907405933553371650422917649195606450450027692313131408310452785012004490260506387311956478336607384250700903460995827271429909555023804208281322526009746481034440956766407943970463499547881125444943334345060660341044259583377585608980844943754901734357703991013298650004289765238685834341309494218759645179212495402535280582320176250295407989957514236938510215018520253604685751178055532917943006570558048779486179336217898411989433991572951474663482441064729357353720773471090631675848662673280683448010827256270480315236326592189987128125601928624183561022973908852061082240494109196807219265595254008547363640375056395067726432949722903377600224943543955838562010129948636178101325936696779629165542146209172345783480786220961117194422956432659599401688676116482955410072796603550601279937681443950706769811286479361611312435739162705178088499424991941895367037850912661728829178982465832535413112354389425072970187525625903403764323449714937544923215144489315029592070244109402844475753051902048223199268986397807480764334898566440994169670790424628474534348813091630615625446058442425541406014261887402977274696416054637223289338649635110927126030001372569933861787770461868000143668795786657037833407039429599905638707423101530342859417633391994987330411408657318143335774650598370983991940141618469420645897724516306885288344339015443067006710321696784847787105585091932556238118472689140725978125156466276345160374203717304347973347707388144201053890263064575607964166903074865618523857585971276083183621399711976742373245972063763903688657822877029807469570783805711356281693918028038288933672118572016307719354838562492733566836773225717016585637749439845423677895572177390589665733199070876005581308536570252887041127424420953685146382743022779449098676941119137906398109195225335554926797607062777898098776095795307940300750520097125025159848835985658757881564181353747393598066425608813417932458612507120055751433030493573009511025776187011462632550863633827186191938089582333182138257394210175210521843846140897353811400576598404249165701469500451100960765193472187936180424363863179823172758972295467003964556388970916138804169631304423187679495041947759184352217250660856763472594112070268756858539393388296070259550201426929159378944767479605733269328108042186345207216233846276035755785394085599959498333858139126527851261943033699830988229301655741735810630277057175532507431538048215334310536179457322785890531751457494647568574101104774406583658326827373799327824080759300624203356216471755079067576985297723988870834106159519636695472832050354238555206454140016292055385670492092893220161925085828943553190428285771989942287882217880586693616618558328160243757855268141895614549825122474699354663359478156164439554253712104109432043264946951744498306279072293579353242939538641237306774122878947254239406755683823905909546060183599479926480858650144696055982519268208577268408744385487343105871813159441289721856749620013064411058611299378288988387793577007836635879285442611836425119665204652511813485290075614681790203062902340762804920046285316271893306028727982234875640410966453838605724036213448550386035303910024989560603477076040733826140490429869018069566603494306048995241736556306539693559809170391108242738673633592331314142757798601484027494024511269971795521989747564402095513592376461702122210483273122425602622215617206405195298383550329701901828518916143644915016607546592908561818504016261719442170391972955215860630886454583632891130010105439875310108385526451976043162810051108667943380230416714440157618644205931718289363230468344577326028006318769746825063756039953318322833205623878935169592248842581519536850989868453809205014932449018605595202067594365553400404815877236585609435397513842386606086915277953390586836703275946385640095264032245357632922150790091238511390912634711778975786002111296487952842246561871630970339941461306265183129427591598524794359158226273520171092684942322345347798968068657985219812379963336952355812170809354373069033064983964135843505411194357395393350579619174577204506577578314432386462835644479261904869377236365769292073996834013760442156772670557632889412847472951392453224093580195309802324203326614408990009265627891621306868992484662521716629603004950036611337567057767589160706588345545670569813257011589110147662793113239990662788810648143224469018715999225025424089058664228002381001367594179034576886737896161463073132768995208283698629447180753135407335590204449804076581909187267629247620373626523643201224849192419456160510743265858152200629134939964793158568686585422135256451897558124774213562997432663148454436550212785787774150344840235683575423567172164187482859469026075692692178841923531559120114329812694482340583291032556977532054609474112491967095861814158621636047085860190517740017408726274499909270619685548208325332622073761084729468420147360042315446237062402686929003733581885800456678087431040090036383612007101963990207668465356465702992603641231754351474544873505603675998643679842887956373251377251773535259357696899556195655004945661565445652106942559081542817096681142481176312922826158333526165932754430143300327364346445422368546261915831367484707536977253388543040383472900204537832498958235421859334878286140555136350269209641149289239630326614697379551788945489581092234110059986945162469294860405944031534277742642767022190170371285785540094837669672269039660605337203251932270464087710081864536536821775537128542934634862762842536994557316824455599290795220877834909517018934993730730605187357229892758868988699075496436732886052830956536514885251596707239099399828542359915090060286541536578948916065727886806514151307507490178752405069995503945724335709650112783442064563566804099522890143122264050865733342675321403561475908443996882674115285132276203213819212633506606308419717517237180920262818808658016437039647854588397820385013065704961319225751551220126766622442676423842540936343122846627857774562947660288878038651449487017040358583662222020461835232738504812531518557592737618905930272979530525612830298251118057870315532324451469021498367077470429531351849056835621664261513664172309383881277639951203482182152946482475374840557665549444436706862161912864597190878918545864669270234047071589941158748725479397590469226926038275595914682551921373184317212164376582610007420666963770864662533099853476490259105056048788909127962500396030185793857257473859743758821369191422352075237897398800313769607599963709633029165436618534791494668685436822083665800591716897758547419738055587693043338698958077475415948803919167894466333425487876668088162698108997604039920154710738299614395486484248265146158455074154563142779471222745093436370079170115323588112623638721791670925855231805308448282257803324677343759079273618999832443044665137156621440664895513421391639015247072370957238268511693832993384782817710264195562208959016430442845296253269699052255106050878176761267955861519423006237622282271300870865636586842519467436031419606300530306366654608494666036245710411011265012301377445415260456053651697583173482891029230745918006703341539077933715674990100724534085022579314238547849795664397097293563866180279334848702668895996230025672613128640489101057890344116606559706374135700738118386931589965557527131228630925431478971790184502172156761659464880639850185351769788124731629079060265904322863989386775984148817958917877031195994697112855384678758177932840281954972806148674657880163913960229805257198521696327596664318380851104834179245428384436162478167917131546527123878377307027678271821657374338852076577365569024601361621216142297588039110551615187256726668992395144811624534688896741445420581745012514380726509821347054899753259176603415785058092009372194803833492918453398484535123664987208053928393605117269896104840207684547643610068560357521571586189004421975295883930914293193961510482576122999001552714158862029286885908350688085847987276459410921417146465595316648671735485216747719551558756702648462625836102313647972112535258319017770947001299308717495394964371988722659883465157195432009154005757783089050427436389001871912057510549431177166453011767252040108255523850797559830844768534077187289658346782458697233023508835392734736214716954979634243598639830377642296813034751534435310449110907336607776777282899400428787603383037020321934095725830186063455908630815996120213161724628321351465052316019666224826832006124110435122910145798418746193460241718547116224624520714004299049861849312593455416588131433586008857663800046119198028893124150802235942928366132125506299739662543571810500585169997842352331756744628215580147665985418880682245048720521378762537441270125025790341515962651978850601948125860185311587576823408753161459641738733839373201673132117422061673949117703232592789639139822196644787961971850782662205215391933630798086465806314302695985108308310094326572803298174462714492142073691100287604301249240626770778387615864306553910320495099187458433072004234725772440999527764984797977887767494914332680812605113363212430256000879097677901721182166854182187644232592561672566923647973126649795533674659108962872202593206046902118642996904002332566675484687065137802678779695079030030450146782518604914358254950799139182467281057511647799954941866973745037260867579194396587602076559173260979406433361860700486971334493856945578458655093520641053472721733169925218590674125869704747214681830451392899436155474781874621609261020179358300939169477267435483522288289829198320701595689327585327058516030777616966060434903071830329335633479346047198400776166079425275000633179985829444853632570976257445207515779066085783397181988440922968023016113066153663290787308353719774455670986542309309821397977540473608204779518162715741485275066889524258570648484825541175337989053180495060575067606218189285570569616935455666525228986254832979963599939572892260247899338742762647717603059329862312587948034702411815432215265189830606463006062415229045746358681071272111578069087401035361602341702362683041078962464674756849965069579687206971979367822245201313456671415435522055074320752284520406910381318683687107646987301494847743304927080562951910422506055436999346647005878423825765531703487257269374757513966703626709151374081921952569323144426588010858901061279717550249034392170827556345120151050559949968756010938646577905820950879668271300230113384651835074497323149396329199468212600673694662929345717748996119623601044720846316100551558126753071662042934890319938817106772822439958941758995227155042732961490660383421903801788727072916347838308969968687555522792527836121720775226357753755198922008361129375885586828248592307147066512198599986190495725190608809217383515684999340666710450823580700613027611860374921739704512721063065723174504080347829504521078076304004289032751597160737530853964375820903933130389840160574159371072409412181980630554591165953171076698107092851697498472412895926387686998177232325925490593230307862208208575300600761772745963753399718241329043084081534830770736476488418837988135637661378835924733650526393760108352369321399938821419048333505887114058209429921172167699290270482697622690704960318878296739501489577237567423453682965894504945844098767791192838774051446771579958386262552270829963298346748133428806023248982100148714436972261050042702427130269639839061441959790253292656498051868099709588468971627242139689632491629624739141120667152059205654315588213387051474058898221890590283623846385688131283999857166442738270273350974466937035279813737156786309433380184758112750930302540412089985843529847072447786005541581512723168595549134437930632478080038984603811939713032568551491458650024929137746142848044443049806162989839645732443380413159976372851005435613263777183803752352612457292090214761702677804529316081031965288128132411122633172866025299972624694612089161736042635028201397577997132182106449987374716115850416875924043314005161171086495283169034272858967716658506319052354458346949066920152338394797891889949330061971351226807214034835557551871133196175238925442239000796519146379112265995467943011364314535407644354744554669404848032788846352319687446193162334060163679832865620668317757439862506805589904991282547370500598065732891937029268734226551194985311959547761131084405272401707138885887423700321355894845978064998237725136969876260572548300789976243097789575724753485935039309044954491659944881238265739443880332723641536273477498661854111281472916824752591088081888794283746649929790451910081759549377951610080660253582621995309472224789217048851700868911213641502532033368608377436503957439292371541471542519111603604522514182305986592695225268242935029758022867270165628345977922753066562376710289948790625918717614312674575399090268755123490858801642013797891510439329335683637064126799337141162982665792344762064757410562520753860440343376704457751135510738626709892258617997086499989312394464205541073476142455490913124920098034079860531290317870843150490990129026030220465197866997803872814016916732512504139748844726537745041038487308401085569648791788256190130471639505502890844434147262954166613393018903061113544707128749768661329915018157547967099714275895696161829271018160977526350745181991539387694817901721562822043785469816813972249952932661951057208503070581810846571962667418265637734224437800142597508272978229047940165713906523945709021280661563850976469192110325899131766317884432456897381511763422504274623190719117329284070947925426517064853503899306170003484728714896056613192780734252792262502459721553358069067528710263386110449954262679843513867744730060275783591087863425020269343189596322329778404543324615918774240828122992725717382748999848035831819994317855201780126916616902717032990266370225480572699271961121375595211679050378463943389236368035184534066359491505465938488431088120690345722777547171640828533486330300188655202193646705012804356131953737013756551153606788402060482847955602624749049256290807937555752528099543260518293606894296239150235478890603297295851299534397439910391123864617348315374618652729051368430355488503510837501795923571875685503892327151149734857583419650109545474462520190192281449047138923933494769127166630104667019066474140235725541486140099123537935205190070540772428337496332960305396632764499729482858396475908411989529984481970048051686169657420515013667298983310633761694017969471152002304715838789765433909565795916863865397334559403430361386103117693098931373945211224096767943127392907897755130766557743661407954282816384749710470146244767380581488505145178650729372932266597911536112917516716151288063766076927078391909846077934781088520744204206434498367496502714553244356509426287556822903278975239545107604767361994031553663141963890481901732839141660183228254434487853002502145955737083149149838406806075997042437809439151342877942168369678662498913039105669267085182680307367025931316059635536294025661761870974642850575796317315320181576974109139347882115851643654477923909301669237115905431691237057059568603317892519273205802079429300028927949460418217433933657366899885501575884308963401327543671021442716180719074237671205535113413511290610078642092174117378796198524993613688763614977052391765345671475505713054723813614479592912289540353128851773388008115127159200187739533564944256601639952725751256106989608804361918446635998536274211493180501571711193828658570595722697363124802417481568114843104195837056070715786378426976720795555797002817702172518825659377033882798749318708815248115325890004839862216537285007924084831904629946933258566243800185786753955384234126110440016352530496143175642027393107753800432271188652499224633349793470418795793164705739099530570862049372910968769103483087222099176243372406050000595639790322608592795146618707628816420634278008155395924827328837527077112119770659481756315471345082263724860632835231455850884015908174161888463890973142088553998602154130008690156962187210713536879360969007354548765454857252492945485805134578060797582173086397107147836504991946556517412266206826226542634723312043072065493091098704821247948635907813682762582083589534736582127332799939773002365006053377165097263414274799086484854012277353760206174236671252978992659371810653602845182034141510198694463653468339969951727740555016607896695364122726891662284024577558947600403550253188741184331103469238110770360324404049471875745028733859641533231977660881545684607668386115104250601395416502906860005605169722372683961537020168795247294400424147988354021470232666501164206892990136441020564110529663413710005167393511245869407378221342255958450298818783439432479603548908634194214882846832585765808871819801103856561334303909606509073946376699916724637033025270007817548270279729203095105673916336227343951172447974341353442507051624588461179731269003358332682217297907330251328750377184359401994725163223111835224191976136235564791114257714116855025960613255821024413761762148212019491417367085046854323352099811894004736106354929497206996092532192757218552137641854850942092807710942776643037746263845088191518188988941100721913083057616719451610874695529359726629946890935383259423161938647711139809529495189695555190555223666988639976316861763142276623590321252246908352313405622336753967476456043982762365847090819508834141630907659318535288268956345640684229615253066035773378134138376224523911261708531838347434390525285960881800276150694938149129875083348374854435059697496779462945245684903629041616497027434478538961214501885237049968007249003085262853996118324142914406990644737870056227378464288424085997350977507791869001024779529291131063946803920776468029160313021691725454718932832396826016765056609072008614619831785943041338074521187682302564837438548908147232323445304073806011678958989219606156209558846187910788795527903553301615392975780465958026427671220453292701104434246104593220558404022695227167678825168920706967799411550252756720991448133244910562889815568465712945787351160091016471443304541408245166009455645658588454604551821823772369544054662312065586786539740754043933565574279039949875029810382153258181170904025788631344004090555661679857365702603540628337721791960567864452749601170431338273802654621493460645163639605075393887715603547257592948355874917868709368816829149970465280748088771114744920275127408990295674552139093514189654972047077887542862030115310139746110642590361332767235868734018215050502270342722453934327387548400215633323650931845147921701069555196656545625394890193821351621992053133813747859644798783753926393625830447963948600867576574522195354678509401636842877018754202319767124376752800500112546802068162204842189811254685449242660109866445808036431363099849639761647428942306107288237582621594909560053312590427583983873743309385378944369766352705355956022135605948467394901039110260940023644913829985124819961268887825531762262646242460407909120753182943206746282612841872501541825526371543663341534167396986623068980879667547021670969218802900584527666164063899005881139973798050078388254278347506424178613065232375714710377293783538400633034063773516341540061752019606492539366796393024815958722524914040958806301162167314058703716632501062593104397676615380123175808269073331357318209676746647185912815107056540617672096322332352507810941602966486080285973193568596037777915780091439633089208872989510920500867240139118184461747866038054831556921272440998816062646274966422985117578216521101488954645494442183338429579078377205002359108026087189221469338622819096376380706323941690437168829378097139405971863186277573857809098160335668131074034265511527463772176306627521181090394327281927429395497353143826911414788751082881307784783104965685402509655934423844843630582961668777890239214000526744319405544065593354008890447705317065304746624199222833555589941867517288242340789413148379265062802241139296993009728481544770502528569238971147356460117850330569647264903158523560040755936052653931808312014477850609878240161796895189440730597173578352489484613126577765124907302364987388526152993435254633547092294759043126566457906001253347693774870982144394229653707528115102896155455390513869483627760534307213594425582905268776843724483563942694399163209602864655727648764925053663355818875649628947226353887453106915152539745782545305207092909063342302777758027006638192771317198451016741712706585456946717813257554697155137562068638603406640508468557723754399017509885815949830232963109808034469756192186259180546921020571765457620495435841885229954477660657702723373738127293904985694525268933686404120865839305243066077707414211822086359688367600222283161093438015817875767569552868344421457660132856002650567121290283349439431680279525544992074044754352295071721029921812187928398305718814780464400940394782189289546280403445295205454635565215923564055100980392392106247510557603680553077519822709796570422981988892008731035730371258230739018498645924133622639955889220354181840590606690981242400093466849882333278884700933454633034586458227181101980137593006922264317353917052923701656053473594172625988011064709004638136935439430556499984646698692829697154348649210809043111934283971322800446385124374626007880905507903932609905511282812237703169279911673736367782957139202888839688572918663926342621814894199340880969287822744012787501653659976769276819048567773959327292733442300673349103206608283870963001864183048344148928897083874159572647586982969604826600975383345531397264391697726374688412542961633429539298861903184011837916979164535473295906570800432818379219280439572349725753384747502985261161587792775598716860671002324049117157179568139117596715475515435396475216888493843655674334410664469236548384136666084832585207152402586304203605696729248159391042250166633312399334706957752742851710844280330623638333110428900834787373099267585927502830044690694625428773886679013423997984312054643333636693335309480221304537730064480470539602626263383077722097899348052012838596190961831019671800077132613528973695086208999505300132784903537383544582805595725028648287371782088355291408418915407912924033145013691340001632100570531453491952148084216707443897195164745959398588383341867132300544713507064415639061330518405425850039891594268195778767852915873352793439828742557754425669440764133992979652545184756051250759435939751005771150470071902112640763221906204981098758685723710833868566739025685698742589938687950097782121767338797206689441796625581107242563500321326425662866346705190220560203818408363659975098967361575978014953040791648869570866946435798057510191718827698619265102397108314589905091662597658162014715166976929682011910957898054882352776228018691618318166406097199716903819975012592765421954648709240724078361324138184286401954439812694243284599733120333075491645697781675456512920499384273287763948072572986750304951103415284707018523019924375867672713434333335273549690522207789606569912576097472189050063294056310768448175840162948909412297298114054142895551934925510420846125319993213969909412920494887296435035321804411957651131407911237171864184010125141584849393690430753099102513988672647410727609930906562051382914728199741836345937257287656311445506932439209027278618571944854202313411377387884252712651893716113914538491554857297192853471818883329819482691818846477581879671681130842964126751417917130805168241817812302489192338352388764435592987167492724022406945317833507199230718820996641895653214275374982301393877899153162755552656668175252883277763490656789542680351923887055661153844163445801680064780469001933903796265914152390556262835423235773579983276994536985546341367587593824708877996717946497496870597167008508344582316408391789646435510023466478106000129416941583057865506256533403274612667566121386142114179092003839092822240033090749492825891537855919029839003417385112957360838533838605174131674525995208671235028405455423004959115152192589890621437905227281248770716366463184975063590097105181788546073860617540621820871895786101286245661527068210962078507643090567582737997559474576945325681704170479417822804893423985736962422955467402036731887898707118371873038295801323913982629279993864751242546053008241103759758916000331108669105890754737450882495943316753380297382142363171203978473860797742395192962439843045233677914382194445871366728038399304542306174206870190657896599026100370469412213540701153860708489208693827632921817103444127967549270839272061318745529108388554790748310436243376815759363869618923640768375838196223205862186813852406349714256624768921665620382801537905721454603974441397293747305292988639854839017588325469761728972530852378011523870059928606564786950269488551299568735651525648083730013491955469852188130304607779970383124067406797712275023998495397340755766860240513920003225665247209084984094013067262614809588240567461149819108566797414264565316039841604943156629041779862749127060086975040681985783116566567124461787943253730899147453643853455832663270608456673436682035656014907022399140885699338511654464904726272881780101632054317813594919957706272602260304740142022051924702864367973307622185190078378206394271618712339549511053445341847111034610728585923403821000139927954524035326930339617295756193620219809586981229183962167720396168549600659545523515133260256935742230180244299256018942053853045737270857167688196784456261530575672339961890526231339205333457709686154900756366883691286200967484290333547374317226099475593941919432134153957025425025950181068884663663325693630772225954056069043867174642174406296170117089889114397453061134362674960558985118722560427871020815324525569400193375766956799233598148344269407300504643790511800825593949311395875719264243845716261198277319135458954941084086223447018631543350288298948095672314236260193476000063156951061451696647580952192125069682819082411624852743116721063393972526685616201840865723513928593145040546168703851568496452019662405626646062474049860439793777831659084216911862321421019728222377249936339078532644488114160234629579425712930921160407794418829909726770496987703573983010160714760063022883975322634968473276411134880575337171099218473417561752395369790192362409300378290462811296304308701274998496520476510168219110328776836324506216637753764240279717905213525455181279564594160966652194047349276252815797984821189810299957786577677641451689323244106730179178238542805610295809832383955704654977502080904533916797245092001614628255191999501071676550112296322555622316089247167983516497690664622455091999111373040682942045105966354087290221940485271788577063585494653864962720253606619241400289688959317147292861329700512828447167514167186297667910888767477701146303741523622677164095418369443000674955315333556117308188787412459393856776213968563281421767856188087970481938924729099298771250591480110705138479020562436596799977765176488946043131034753287209852824446071429835955591865356387583757871684364226146762856475121464653768729961907617465021123391538328406328539317582804571841859371169802956178953964786651235189719017272109425539124841897284652727181703840127478293917123834229272981261637416289808277486754465840550723221505508083246037366706135091389695012344325256242622608041198118903781949789812345494955106068323673369990517343014527998678830295603590981729474788490652660236187211452787691749214562075436782622957191153888834749201062557806720479741568764409489971373510345318857320983905218647230907881697527863314865111166587540116024424092151019784956254948617168669565403884753814566099897123767044627832955485061525325216758525053980556514204635527736692305763003345781814236505551016625995421096054946931641119331259105011634232480759451714703972564126543910687972242854027384195840712288752330373563232987143866085810024511486584706504004609270446766547441797074356506320997867029829621061421371446663950284427408278620467933606112125971267617292009218194385286485955537888920356895545891794593471947825419397445246780611934845408889852392409964740055381216182122132839883659117384816835087868123600584002956667427125629549429783621925410174961393917915094240208398949157588878760915370431907872568814391127113647196129614752943713506187909694537759249798823219764169929317962163635889239369398086767154353669226242375214503387929563740679116108984815918388465845979828427554444717995962731376768808584352216104312012892404061481142089873016017547905452673078698607370519686537847076523467704351732355344782675353385031497191563569771782668213215757549135643273315190027947333212203718353824239879739558465789299636275305936476641481432935971852966336055532646702768742454041289516802391556369067438304394206634240271607756944836592731670295987559669940499478839162755573157951237469859230582856762000879784014464372268210388111183627150916228529612296323124374086098217716996586143735153676554682731405081288640986483523093943671085666072224556276673505870222032032281469281522800787844738077999434339336387660120348480207328743187816563898976357937130356839077857033711860677794666992481285819814473520591965704598474911348182122818781655277889012393050458089982918986585363109240392427388656219673085146941865327842906266127498567972046123766046461593531584453197123765738208743606793337000652498504198137950175768833495289828292184402454299597808252959828252096093132065625134858405948704858351767677912970967076930664555483058211922691808901585515026999678361178478348143409458565140769974598087198871033513262631082723228459760293929337916083247882897743283902540447708259182468227839353020811926998436424970983044776915739851765213359439373749748802145719763468100611360960919800538296110512661325820182175326370838368477810802280400295922563616185288905033513126421841831263154382726916402752677445753786824970778995445128969651057996385420573122095901932619323656192011047913242638519250685585697835692744204292954988038100622281662566684899122742512062250932051554823309608158699594986091257293670899206512750208896621916108187914265548811561223388713492279063807440303202845030295638369680746349738580457080761703808932330448942023747086421174085898611841091751117384938639472619731254268609947283769049257985222685361309544077969888035527017517165319033209946073169094260414741346919910246669997840741992750359516726465188933190690716181688012009538914285037844414482668756518160104172944392647589903436538303343439045234735297912505050450427426471168486030880838198796435118375839425552703164765733329723472566381875706345904716949511493634147366562081493446721810743553460246545543369956834987612998705321424341913528815488333225870037393308507627026060046918003169954332304335790663270480276513221698186572768464222195589226215035092485683666132456375064249090467876238691048504619776412398272041257054973791170611404105882508752941339237883111234847627910335951284751224920220426374673374597577496996071367130166336858668670917603699797037956176567073227117699393689780400504780068739008983638073161647161656188854306913301642913061454078570747989313627539251781256052152055085790062650569853616856701347600913091306043579700202843954144785568067969098329210416949893424341177934325040221949039470483906316815533913018823160811583303457527042421780321174930492394722959985031731076304488369823654100844992971284470119802749649998419742566302698614626206336344445950835948049204184304481261446431017528780375415927589569379735222886013096156438655755644092087286018441148134845799662695606828405536821745775472100486601094308884300016655030805228549501007234081693728647566679452839004623531613096535981362752600820407883125857341140200001848554142992699511708735368296527862115665324056883746560506297663843919882106361405392349130089035477048611364348712621249596270094653439783247388770523519364364465281403353569520727604974800943661818038791024234697130002667662321043749836752940004314438590389402133078611943241041612009603039748553863261300926368287171524138909770843722662781481651833439496464521783965686191244387933995177349028921542017078904618789680021365874431445703009176137918529379249221762401837074546405401951423345526191010962911275775215038271755399715679518235356238033042114638771235265313144788927186171873788138913344325610609062456858074365249580556022566241065717833885829677109380182007792711206715809625317808404048176221752237173851649573361415100526259828893702482537129428716398113710726448957654257892085260228874219836069579557483634687769916120922019631191271387074556719630581473868757830672201504460781573261656181604857287625066853785120374552748010702210335841000327224628000539534978677105888154427783627234489605888600063573949147630570620863000549891093838040194645899434832083608689913421771013307960437620891132907119791907982852658894437348981898253408134498538448534596866371461688839505152554594833545766285106925081599503612973899018912660254010374932509525518018025083591375068968156844663992278764908546006042524758997211898687633007911358252477722159824925548589351397740134239022454770124210659883058659142859134977132208917628342225253234664003533422703701928546506513577166889230897190525732724360224003997760901728030683945775468355107391519080276070866868908013596721316218070934217837455992772536804167125477010049458048437212813254863070479359190093262558201304324420927571876797627901523114536328981725297779824373095372487101646852410451854105704076184358513929312915565846466604489120668302922598863208713844700119663299536185084371285985430645091360405738595258305925727430902944135495587415310267730011330831151151124513999406116725215867785712511149774605157142473069633942925137667787198626216935100336899583589837099794285784263153913855143698854719255469282474096941790111825110095051746778241199623203460025590890790526742469394750532974421453759962786190460674259106134204262396584414827733384417842109464113080595008241678602274726480301813786968274297464694473986675708212571392582683620468908280720721755921909093700304820763393185904887990584865351517399206308229103142964736244838241743890475134177811786398467785693613230826565079370308724759369097972116870063290975453273461717541075662481539740452715361307399595395389872824953741773146549519145752965428617981556460434206193214663257150018640155498870000082559566266123345393349268890583715882262316668610241982207326276153698850644820686161723588195255432852126130612031225961571191391546896251159498234711089650845887141926995032465884903742342254255487229719164965257480760510242496609460259990120306120879293064366776221767447263672711203166983391558382085669388929517785150172335815696021712368862467684503245655837705295886993344504601260250526860701714289321692688302144675912277625142849482190600439601324138185945256096986056480264982632196336975418688726411906930487453070353199415539116781872205152121744648051495336451717068778699682862988376661372689125332851324514684033378873870064877116078844826157357302534093510922039581335294189370172748615781733746851959488794440527565469580694694804522642231223213824486416096440426442307215345708486859515733381212066539921334146002959809040275867938944434073050570641155938488891547634345514507691237707850418808817639509277633541341770745166557790105192121019960787004907732052439498057264532908491933771640190673604087795809722374695618479073329732140832314796542356695773357610031440674790867307653731262802527044342167458157558182293290053973916696891223061385272799936455716263366276090979117983003289600291899768748415580378048051427258586583893530566659123424878442825090982446853482811108363782274132286014548975998822883415481574455311553624965263954175798921789255255326958734233785272654488085900435841101625702714031217839228921695852784498593693669699039209763591579560240400566518735989497465651928560655958909651875731896507723991711860794836479347622696001347873023383360002231218567074950529392709112820285151097121364924930651745323066971932931086009308089220521761694147485169544103414636618255002863021847807239746800636502783888426479086691189871323257176631050328903790678936884027000209672686008148704838815131279680023940384966155374469885483738888119061216318408892629573928327763953848219075581387575981156796527998285233501255115558692914731198586086519253105408069455380274730051451998674686819325396835980717329728513476904398315869610128056862284390572884909170280210801403479005331389763541350507082584125109784307714113434404094866590433445178253922583827099109159069554757310994306551332522216918331033825536653016200095408069672842618151960974215499692599934883564287418447647208858903547180395183885186058422044419919481620697813545574951947355719366325719654667884848517985401119903448955541659002828476274113150138695849112083328197963797139558270430619696371780720124790701477814119539376436972739116857673145960778790273754045295658391039950886363481156697519642948949807134291406702785769008238864076937383097195699745596764060397170349738208502720136576905722524484008775441184273072531539602159763428388873502891303432599888739987356140430591697644037165930750555785678681317693397027054604255347092173081074454765462587846832868871542434346963638852360839417693899853431685820047287912432114641058955007072571315383705272695458938909164514295474106608916352430874221240154569946205007655295982768595312596119484021018666949988385161965491031665122694852501573607407257570582453019263458735860055240487064304042219263931672547176883642367162829799745160906870890660865074226362019770089454811256838016781511647440145876688741830703947086055627151702698243842036241179300228106985851763334655204308054237568097254337260915745112069768108539792601879839712853059200458137786526132982136555913278858363098707240495699436709418898883641462667536350632161859867256678725163865801468687144373637607010794701012759567573387610342351951618347322862786727564441955569549197529173248419038455032135220551462987019541299379497212994829501598380911789837325299525708341654716092181254290834545778325168845308066236447524904543944511236640509257306588131851354084958013834012538126076964253590467341718425828590375384923449553497670199794280344284199653850247012044323397038100637757776571479867167677427598738214823657737256060163086306886958860742631561024698004617349331816095269887060232675783176442228861895058514674047157048720512803171603160921902388411099070014315589632751123179635111251673462312799691978682029240969370660045716066816658268784061422254831090457537892987205395392990818699288181155826283650697659780049857142041508925476230178245575687850201366411088724525018757311263631252743992416102100719892439199391145369402124744934607154731279011911044824447825861913604276540678538168683295957294901533179575727693268122620903317964949053430407085348289320428368083296015177620673724505851756651577736326664465333243645736899644094759571473449985187353026754099659338514179128682057510300817089482242496499924125068066911535938859195960886503625370617257322983903606915744764710336167738564799220704518410848706925389042906793628257872949619887522141434856294257403718018759760659769495364712989108783448057108646101956410563258615421339893633745664736217813087503242038969457062557997310420070815084329045858755646072021323454235228997757157192324950202016047838920924869460167596243755655327352375440781618169595355006798658534740992961844339829528243331952717099796273148701404992472965531679420759068398392872887145278670757867210886223275245585217715714665873134435085361975617442822197572485954675305362653100703335749576981241711982928239753763791701862481132752122653396608764417374760373263605778464414072371938267742488309029776266415489333818198375592882584070925484576254881412659921846058869099955107111991947268404409230614218381859019928763341531199248660348204578240962812724112729277348559822465101531422823113303304273037065660991848066731252141069893076255466453464653903010617232979951638017655575034486028460454831187515310149790344299255845649853560199644493378018733771063633009942619700928291659953313340609030739899825671225639451562323111226013819237575477719143785967744957231431525237122139704030304208220275320345430719346209533645891234475583475513791776481915005567522903281273572108465527008578786992755214417474114054188367074337038932921932874289385363787977713605498235366039595341710665480966734256027419846294706318466989448518568767265981498496811983066131301341465410818177234004529245892247591112624004598848304115426808200884082096344072835754660065083837847613089664620298221275037740956185628397125274446112850266591153931388688862920575735920136823107904968837085660199020087863124442989821591896487732851243223663735385071698416671324060908744087855416507340573427448129600020965735266840362615164476579984498262554805758616125020661590398158797704453156074520641912917031928642957474943872207739711471466615937580608292611207728178856614950622211296391542952060268944569422037334416263616909185534559105515963821576515125530220696458169302044340236419798662622799720978910019427337723571832628882751017229668722099508545284621346348564746147809313768950679514443835182958650262004505066519292719226813539191559425400703911890841691204631331460193876446410007649471678400991282921910187956321644351098142459017596787291394324478928283877821216663304752599248220729419666823999206601890563728888568390160588790370224150543371976305200480878004435843435016603991223773170387020534985768110497637619773207593087254570810765200017156675083860869013762741384552302283547431981973585962424461563526204406461587022081632071471950110569756044875692682846489450481926763882516095981690955407149230602797292598238533048646311358526464577706311699217807104935693516456960972473571211853920045295664847394584250905936608972154586234867775872602103645110254943030992862411805340955941842411214007583407936999832668810989165397181905764480784880339914667955285467975616728158955722391399752090167822056945165100001586972694392275642782047201542763207696659356939968172691188509565074296082616236142845548172584358478051855494127530891457544628678509559012231825482097160014938385961697061145205064628440199199939609604095612542641647856682720495573615547219985056055532453872817570196812563397352660195060225627760205882779385221175996471441732115876098810435481756513160858928990895389231512858461567286315222900420496486927972197960738305175778302548494048536570350286567886905674736762733607682206153852799483140530591923739338234484935576433814552923948382475981443863712145970140928262904892623525476117740719803319405352114347178385526458270373749624886787853621501889241591771868119505932349923816899879660114077426989545387998773163524204389292423222635605924134196513935255189202555119451351763986033426979582744413493095602456401561339687071987741423222048605736508054426091958289998481054034214432002726375995650251551284579543436532318708808200243705098713673841078433648230859083343414575333734290600085012970808040199000006101220274681643726020975159984286341400157921902247141645610131966381088591777965415128718909008394947419102076723597197696184850213031868175548724141544081675213380870173740210450828472976233384327791792413363215935722268094597646965996390600948105051139764804343298055566057331497755505471474101171436893061477903697677295548840097907722220693295897191117189627977653471075478438665441325976316963552685105420313229234703664683177923980541854323772996926123306517643498456704629350616793232061775188409369962024636838124277846324669516014275542343629571512841347578454894165265961682412557372508003906259020721890798682248910649281961432591535601232713250318712936400880319839895232443454093107134234263090352195069327663120375602603103437182356638849039681362367831771520858401367793448279927970598476406689926188876778546886617397943394293540882219957074258181404492588790914945996941023789123973417791597619949462251346128930536694669903955999888922204150598314049561851336558238689456076868779965922823170893178322071104931754670006245787134311330638368542015556706615649634245693442957242267452033318619373559647805132994234298633757904997306291541431429004162521291823243396994651774502382007791940205161872137460116726389769557195385221682028719086649286543039631109375433181333171762494211659759690244394537716809806708833775445097221379328720968961629540448966727792416505247862578376120987632037853145098553539316141058251320549459362972516140283935271344783122480983430186830923285937517482861316939613291977408525613327579701313139463947712487895896798657379367801362503104875766994852384251973290434296277432705193218558342189430467367639058663668539999847890788119844447784079010565761182205552008542410467224110460369360563748340010099357347407726698719735859404918699805435430115519451335705904018955108608858044433100187494913581224810994569620454782730610303067115940711941732159891182147781706635855728301925630459187875560116590522602541857271288387391345926470048547327526493441229784486668660586318107502767593703542837117400158361235327213368295907097793101559384673925119268057375023295248066523952009980934381650293604408415245926185885448268026361480581349871537716712814602822701360439293702768093306150617017426213476412886060785071566635913261121587168265558739787659559584215498169575236873861140009635510687850090413869534615405747088984026762102627300563737909454988285055031957011710583648792531084710110091436054546734285441651164269390545479891718015853029609564555142539621249721071891447401973495176741499823989436730977817286702714086797939798731410680296020035939743673219984664118381424667507597171743674803980128261260922938686180836999294718513559860793465692901899441753431032641218751180860100319627317885732868934948289521001923437774836304808600817015476719980874250304655773394858070963133500479456229237894265089711154645943352464291838363458306933401182322710304938866178697223988746586216326179532597090196140707261258085031030811266278730539154239425747586976693344296550146977477988867522277220451112881710354077715885427895894440116976283244392077564320390483955663666348611046444192491447887515950717670760665507295322170818840427551477906166733934611211294617017382401741059182000411474414002148011613307801805893897284672391194467365393243093402903906737066588575161964535918468376576018791543312604287196101472109135597074734573765967059505978772587499077980935341318795160446010326139918206975815863720919277439935966382736030994873518706743295576764599663739873598117416738243976885970037769604003898383462693971701659212938717263416550609046800608828079447332530445006983637069238304433779594513092553416544855220896759079250963782632790937670090100815148282021177711702750627678690901652983446626527067243173170824143215120915742871864388821656631474604884430282731899269629793233923942550590003067319007952841853452481686991731387706832018888366328226250073878329618874115330257288465962873909401756318024480032898049305477644336660639428605210734849297191310631907981552876830097502556382137211507407750277062640405194286070314849061452142192848338649925353971822466999582407085413315813838109794680898935324427214593064325497182983325220424227938032734551085697763712691244611708948369652764751472696141878746079425385089452866536393546230631921938827925539880560682422039202748275181701821842371926801835352352571468491279735232693832473456370040066081139654842773983436060475920378620647082952541382906556150794989386358731149410505219334107449605699434541702261144100255193949346116606757683937887874141793903384707008921752647637034855305340290618305320897980983005976236010527596607148559421572294751163565308858685337221855310878013201878812737539042679892449341654858115759241042401785846686725185632033038812759809142607097372371249644162972674288136751366481198591430835816375019808064526194266860593779088574382285302291208708417706279370262103681390411931226044063165410739524829547862748058341203415762744539996933907864568464893063188039784642307660505856193061057298975539791248118533253843073209628157285486493245805441047840135397128881534281773053131260368543085775073001486531688799959159091949128577364342686464135231153002401873418433651927456062209180726865736584651309096952049109319366582248387752629197117359796282414279207604069127250425914273747959339251198107853997872040887531985392660485698278854526072504133730010231376504166255840796129002089036244276584737702670332951098545424915880068027119095071094872508981731172360744049613853924029158234645891110486672291443446121162907007611247244971437994735165588965682662815483518780400719878318158214901135873902810280481838757685485092132021873375029063917821437909564010153708794184261147687514963376184618521209658833497552077957203091438823470329344588223166485983827089915164791299238141845688850604972999693296158390545579150327103800675634802738118516534781468241748354297517289026116201089015554371111650012048681812333775967708189499282976980884161841809607510209475199527853675771499675765569626906711070535947113332260392316834232195150099748817557886522438171057764149570714890806648290006703944169310360847977715621973737371437673106430288819862123344638902946258633143848292740108415034082784479117192411333590374508358603545383132244024562266492771475288424408245598824745078287624173985025850226890313823853764680604909953241353514515701049115170274864725699986107853876615330519022129312516320837207386367099951208559749044301667299780993285559992218486021215783404794415104794651151199356150493636194948045741794577962182890033809174353919946874750606877217305135731187354696461167287624957060833422891570986331485246236326078744888393943369451916595937848937789282235014836074937984634427677177485202343481209948987156228717084064126925000184433414725758789213008592955709081417455203225000596251902059538836558634486087386180754460516268486043609409411337049977213332859222373805211730818662047821585964579007561766308939065135626708367698830696533771962458354711193855177425468952356390868762683665658177205597223184967177991694051738937640578946784192124530592268251310158113631952648552935352593379794147850812883159111868293191271235500162325149217036314418861958615751524466881912822050843681711548951369286397144509248098819541980808785084546843094268297679486453857668906749260973795833166342068098189818056226922561664163954609330829251409602522515723532219458008784754384481486815067753907769989361362972394239494279942104426506577475769776103362370347278133583593612918672727726700938063316361552690690216177357503368526361101561813335446939192887786307783617503195859294061567641282498001038699837042018700243070603684625326868411527729222837792277319260582828129938499693675745530087841389936471343369903379375326360091534934281894409895332292806814800615440049303759262588192371426414271858003203331542318756263143086881148352441810299851648190795595763221336178094619336921020257916054985689926961077073604464062125766448500532588425908005318125442682671820616106398549169424897354388006532420887568509535360734648291189121863157467449387688100776487059124848697917217846383881253107748532715834183397980105929881351144736602218007037940089687321806729723315294054292661082812645764412302321592899707059257080906420988046972734867052134777078776792424768837608484790045831979227860408067105042274907660234294656781986790610849795911263858949376126018589202428531469253416131711590435146264191987451302306388341955170050191219615994302235150463017627735825123433702524608705150493627864207943406175609171533633280411321659356204463550138207866225513871546049949727594427622357850371552389406672303103868175312834851823868180296177462721987100957034707660039733254169187448695823112375113175882246348991405408065317286842968151733943717042783415695326280818334498317510644023396359135970731560573490763576887675765052905196594698914691727436432470506107569449786774742044899616188981414903384800808377520140051406752475137668933155581042168537070663013763415935149825071666745372453790881688861365683041225328469373305578829222980232280170163051226943245597600478939988602767208619191592930327098983166125745717052881483643549883369266814247437971481973551503123098244026562390915765205531493210882178443603072333370681936824026905782826528015279235683543034553633360125903798225605195668219783610377273949958677336666029907206202645877693467559930101508503704087540443268908749872970307913831971746735075038564278838072713878862729253360796329174080589840944897615028798648538067959069516920941731159360875626989958770040637537568118030422562930760781627850232371647100752019816458098882310512125799609694179709219283164242069238251010947676058905539678289345487765584304344895520004613109804751451913932477468669785717715917208592288124849096619815264700458246885679191265250328041605249397898881242263573159415083672664821687507015839626637023742772935668315282476134949941674455097052364681560963377166823272854754017036714399849097934845008246278442084745191515000897846061953627418979523543183182604277236407866161879745099037598765798667344241823163943505957690664075944452517952570145903808894040315091244876961151339580760874144378273297316559555238354504091806927364639744599475274653954575312366512891706824053276548705363121280864734798270970753600348246472476213397437501910522785449282911622606299541669380776703031794750998685870646987331673420253608339614697829211514962052196159010116112932526199083252071628893811417147627800040114034687776896971303826009306287916573233074103810910364637564312288313706530018814683967507724024797530486621478314434522966152203940718059360771360700722644653843773384279904909504568303068338266314625088159073773602439777542194825515835186013827394425583586064805822547168038780831219063608179621814255396887255591143012583790438278726800929561307539181892147910274518979130750871802774457828438623036052168213480530215195480380008106986341000936121505244336432999322968125323318808679483286619668815529032392656469250738393319933513675032375371061142501006576912533353662511444853869980718157135432253293495597831257217521520815891880912642409539595127020953016887222112760817587393032565443811443243729300800143290980653312457514844758159683401538147400504790291107791795482689213931748485215908285278690319057770063469294668856039487352932938769761596270651500141111157702867801245799332084004181551052190996808319530678772016637665215268745227566739573051626252859155807924509986034129099963653180863558472620855353979759889692408093521371636524546835958474929298350960546659518479771968634749076201286030244414500579052957531576463502237233357560883222376040540601266910842677457111553306282209026991873196211765456005303859467036536050289845106033359223770706826898395622088714818662307764420455223515783220531800222777724441507681930662787834932221376456407059805675474322358819117625207224125932945569161673047592630901402679496464330738915260068807603105010267508875954296996890451598159623374841810951017528453300776854089168761326728652068421923774149680348979412896245420902333533622572124362900986650585894727084016173685822283341307648104269439238404637454268360605563102353052985614366000031034799720191820901827713136208560263023805151758533013145270691128329090440677777804540426725990458289747844456902019017617187819576312567604978445057475539762081345940802043681411412723032765590866362573047236706772184111638658698553315450449909981576548802166684323222088322101392566758872739629416431203476106476027042552003941195437245776947272237560005398520503851886782949001848195124970096893659318548118707904025530982727209032016187388263405852567630208146761403076182183862155784037288586630704283699174014387390533715290017738906428081700160556446518522917559195280640210021731397470802811190486239475875548008125337645670765450996067714449062276438575912403255161874898615722469438628777466397359025147731332061024625060986085091425522547461001203017077208554201871226334163050630051750431262065804682996172358622989058776621738765618486524805158409852925218195976851766216575071298221255270900754076146140752341572515326547633989450444556160554129063196063671079773038647337311137065177950715416749717394130251528170303892747952331840654915150864834124107701945550453461633136250075959303606244865971935408608670381460093806510311151127281528347757093699101637456208841334531145483635591041307249048147556262291823641947135450545140698977325430952811289898491967608071885558894228338272164519441858597360105326515753309229304113024239194890422511968139541149665174007540080930224969764517603287804417108924212009890980065307717227895971319238390600017143495777161976573835816652062933547724318876911749069974998974541772277323075081439246125773893538272883166741773731234957172199910792824460374398327331953221755597407721010044318529512377049710749842673771921433549911510376166513055850809878421156119355131443896248456539527738461567162593869328416537260092435817037869389478543293839136269657610693911008627368655327912318703570467485110903522468962932877690927564817016427543578222423403721733794103933201481003498837879779811744276058324525342992681327875105114231470826804444077175796408765646490006420981936973764343266291362038887292279857980241813138848882635708836208170347683966289486315559485372787549980414837259677449663929277362271950991919253964790700272880784238024590558640944989042987556781703499163530118864448343521809134479123215887279237659576324900583245676535778560304405157102257556288406183752593636070023076353581097505063525120845822199945889607509011694414857439875679655079075267175938068839082063622120281018734048862797678624682997376054637225066440258569183705062194518685014624390361030851432705540381711919271720667035228554345420757658485929875359831700999523117650513074725350480106118697834723133656235678771310750613277518867175649737321806260654930996322509409340592006453221261144396234740504018445740752124774161602920145543432467169206254439541779185886284939280170976471035527496956193718251575932576097077855522412269031880063056377840546966832470652940632787792265041609383253223988200268156490146009934386679940694968036661534933420189762291678920576916082431840394292203800838218252034756848756213464504425311639866084812491552413947681924033147998559047503979907724489557930681622946189493096423301028974384495487573302131367140242393321908159957911033857714394198908253872695417225427784498621978827434121879625966437289385908660319995545662817096918194190675428500137688758892183264588948477098771573975198662377651275426940099606916274355938644645790700599137281460843582928151076528945395792048920955283501841920301326648397848995132119839285588130276603354757984661320239141069756040755115108915676282716065730418114510019599321146101731902923870037814534712731966925303215750846656562136545047211585616258057958820543399339571901019760400988593614628669977568142928692416295408029931875280020979268096587735231304565637660880832786274866358130717212259024992779036257509926594504297759785118617194190825473609496781802908940131710603218337941847058920464737561122654981488860384298142598188515564103844439778048461929277887254820675434977641113589738030171153646287061395363575220998991944491671096909475456207483282588100311202847006220980582008904881606261586955583916984533672188558018104490702305410141202066221659195461315617668723585242653732242655479981666753052247674597208212197358473427135863481299754345589919803877583781851969070822614587547255788720358910020003347979394223358696269686311630495297351917395164615564376393523703311321127469389770665793356046505219865866135323604072187419636201275598963804087051361456587894666731708936845838759796563320636454483594452931951262515381826374845284707641480081946247205282482209265503592873100203139159260936196256750632207844599923434865010086188105915422583701271723306789207274713865619533633340257371830803533825551675735234660268750541676726302497392603311087779863188310653288249790592845263940161508063533008637336029163117053132072362384469764550599912360093235154459353136504423283761848190326051422817497040863351040280019431559938564750883382650337805924692542432385650582290385181629117908120209887086093014006795814676819435540103573662852512267550037613169670613388912131185854882941428881494157021386409493590303673385077688353731130443544847291063978873765690042617418236604337363722849191763663435421743690269120618563744608442117066474476344659774176429823468346148354766929252654432153698408871926238781935106046122269760352256385196966065194742118623195268322107243225285752799151796055615324931982594672580571771251203686939964183016685213441757749315451748930917954174471078833378898473223170061071425752551814286479028207821399154136789272394686305998694217317197477332728816768295404826370761431995743211625074998474823180785625320639449822557797866568112803879737269722462743706262351543812559093551837540662517702532717127791082283944331999499747292818188314360328192544774687167046522560226310727047020575128976183314075384382846634678278479565884728221347710177985405748460678736341526129278154170900880360534143603736266943053547160325947790970816042086045853090935035443517341690861208556449006056882765898493683559242785804781879544561607933391222149435766884053702587645394252832268162433143658187331230137796912037197882065858483323019104220275670821140308115381807449372409407456228638837896805102599148297745623316210311270779066183254522514721129836601236413058177182533435702572781700815144400170673840821883042669762881214871113255176413266987429888536928901354713396226461365499083783406933042103788043569142389329822910933491840607625936405244292229823216741599262486515012771362378484792116757358845684824131363998666912254899593457038125418598608109641649274971538495767637114553003802858625370675140909145337768795516462079123540041855586292184096107822821275050311414874335783397966010814221154978530478371903777424723421741305541597199507621526248486528097856842706835038338593389929778927380231457273411462765821391586291337480352581867069544875506521710720092132937648296951264942268902422857499959350965489820313400674064153093509758793492459515850053226065031977855880981886067400838845407656560862774417864245035441906453353614623165075424234044334546857661262771636433120239535642658451348520583300038617229781212282371584096595463111710168433950450945534519475038217769909417690952118246842366980495411496095250474627386325750228866641427288045584954328932644964215172901023891624452705897358659359228092716293453857586536200995134599963503518543677265094737708024311786837552081535321817607889531058633899224273943106569667510703217295088479130922526899139872952630247757568223453988073042854520417846455777738897025529108270646825305004313132399039540126855629603982003627698321799111346240336812701835523367603321327402735888655885354792366885523639055450291104133006609493073375626606081154706833610274570179457634857538605087512584869521119536744772043419040704071472166967315737534634541381246929558981817645994334961168498974549600402652758789675166681464514800393599332007511362692985587689657653994024750176187186918094157560245544513758192644447330553637686830051825616233833513396494922195305003323015887220598472766646691414813046003486767529249446473253515197790406183558129775118513234141779977194131932471248359906137013617567615621958273316975834213636081314466275495989745617599015393652320868295305463664500030060353314701110710572208575154056163535676612448584071948224653957489982607421744918703617710000311917862691255392542160168849120855297008451169379632697429646286535927999567880824523986610191805488101977060169427479109997167332995410016789863539904196574106894739730868362638031837061567992326700036410261348582942847390963638043853698016391749141423419672334181137724280591050434478343219784806232549054443909671421809321020598897672675060212211680849760086458249504033946049534812711915283783997934868803263651693071339789228708039107880603737119680329935084370927149510087632748429954155976692755597499479235330084116368781063192814970202576667947327164664329991156203054525199341356944305205726377032855971815068015288942871935081071699939331250725434363171177676852239923379340021539753770256589910397878801664927711505080483386137889258246083061595003811492451261282728580316870439333898785592378184651789836892913357020913590921385398653461798808961783445146011460012866865966586645524406540516613312882289812527780858129753945277301593238066136060833419796489315921133586930233267825616095542938010489092189962740426164829819723905422572223531520685951224402849761949077986344411476982599633156175414523560080890828047482733985439113639613413100277262895565006427216304257307616935585730298351285890569586749693378466839870236581923847881354493979614078116813665054439850170108685246059519094633444522214886530872753886987145873388485083056537368961256912228640705809100485417197140039001365622233294424283162042928670078302057530765864138277264828279408955926870467431392505943484695658715128947180854421299698072880331707448738847878578228482753515112861923579076773439239566297393937645160508566399151129731570013254758411898004361737023974877482370108755420092895129049089626848185787340211364928208634120770493348160954285623658163643357283362993699882007054470559583245416606326199259669958338836499240343748655983079670163813004534599864002918758045685337136791961469799459769556748979755757793731191590824751992275434495742153260746571867799127076476708720718237897281795947661383594777853772910325247548671030432256913699890641083646509955397106222049924417861883766414178045506872875791970058532960206572285151089815818806411344963417256556945677822548279919323095171282926307190304779158631178532806917907665224104894844737840913753612251330131786001844314174516822871600236596341409801737262921267097077225563852983894040508184839259099209012744712809381578929715210860818669659650165203680452240127269477465070729359478856708670334674090215914562405595935231832003872442893674219981215129192948473675661469674891939136637326924203553966541628181727494439951032365803915659330488608460334576472056019098465964469962070159545813630599544219048888953521376956524600825212109896780121313853911078957246993196767217981322685255769162108498148498193011064090340063003588533605966925563981854747017704488840430378161389691579467226532489225245423758838826477244021657910905777124936318721895228099168153441394204953104205854073177732754504722993654003276386843799284594721394526729361378367480046943446060649891313062347663610410330094484724957444567281656720052650899097944064725701867272278396116398396270450094144265856454833703841351728820899487009786642498308620518123678306751753193606493595024964391208396776525730108383568205139414249000234378318906805905262906041931048793651347146354090482891394855177945939265728366601908516834386652165838408324585049113000881799758799131309341588795349509126858543251423480085679650327726903100651818369189613496143975852506317844712475540985677123809971901912762363849191329833425053840535795473753866554705345303741715922220667451842038695451138320713416922766695101999882448099671479332597778001060552706307998339986736361211950678311167732449181749731632001638433411738418305180456081137655637136880000730157771045306135735173501645063757628991799581782924785373846313159942283115458288196901525723273528923179152905140196919822415770813888899294380528249454990798460241413700815213076710156939039696021431682159438873897145021940423528945655847017165417697568079320015272713091016219686409803778666534621454999493289781005377956748376535601958585660853217460589317601350802639173594736273422899194327822169326254450587880815879929274620238808868653156116821932190088631275110749558082103705771019649892091038155094303347348552057657149758705326291528939864855984384548175458724058498979878562448265153734300655875704009155173615823756292714814948010962955940491001671850013147181026280118705985197469441608696887658908452691660898207431956038238121943244560231338123608504181723257866539538492402946751347086641439883514073472094193310797938558695314643571105877783369614837032036691178022048564208416175005167593657349232195973439228519181425193718350372838067034893227145309183128631223516379770606708767260028060105384556587295085428607618749956171194965626072693313937771209940393401445467766362466628842473727234977337025168829596644486207808825318234620852154551360561424347843146334820372932113266797762040082667744555173013421972130041843082575872060236444502747301018315817043578416905275765395679476646192152017921529227857605695924468713251628377203191557311945151888462418320524303589387712578581964039721257044697351712176292188691941080199123768317320971318717516989860323506657728366400871691157472741138432057262048627211481954257961167519653731202353733461869108518951553157652060744395483551933488819578985064180904777455226536345371434327231488254520152470373971053058141130748381933586146057321805229965084991493449359249430704965988540989779811424193888325763486903026157280419516418823448907843721868649455563762245026960876445095342402077785170211485006612126556237186329341866951353589693912315700261579265235579946906670661866316351450493589585446661604279686859423484428116969554603365783466050319875615947850550627384152197598132964959824112935142597680581611528185287384903984424949125613697266237274113857449055386930133196944442679143145454730620341781941282381853878367429871689013741756646111503077095741304817662466887824954005846931428302157547239477320195953122832866027500751911450882911187486838911036625820665331759257949097665675118313677176240147902710076451608976041053633297110942338461525206088801475545719931134047068797124695386920331945442137728385975315564648056772015792799400839762045592515648388310194508908162142869228487277230346773089014668695418122069799314849062090728278908661392619837281746059510317293936620776345638066304939080863576637098875785271007338284296234141330097052464578670333520636881828939209232046863047129313761915825236198951673498172203544491712208041187406224945739190307765200020363548811162709431546533476016808602576632416392229199307569089993708760613252971517945999110052863011291886229823318880513322161522504066520268627737999251303209943557758759567166684543031814431172966331192513320272184384468035831165234187355366006595993648098274224579435226456588105018470600460227044365192954418604004445641788294004001010952005350057068827789117815026326997742690201991326752075747592078233513007564696555641784527994462080194695072424967954029639097277200310461527846800958162051495835786937580736537368086113724168985902884064839308706233299891487786795642475097504813927918543136584217890335491249368095527794994353764248690783912244392335297160654393938559237262649579369886842660285313523234011702450206140453622236780117464804551707049008645643644848095272036481667989089668904828661233841480848866970750944661190544010161451404218064917451232407294653642595268322243721525779081855214956492274322644271158942909999843974430872894062224363191708699749244472091176998768154752345645827448278518432661181529717057398013718696424494017922595991827876844532824279687313452583175141964033115983822100535070049249883127721178546040557716457314615231557883751129901001279155470772642968893359234918811055716967086987049072488968855235155267538560243083034237838306098324761328363631527360435603495550967035284841840674459499113012435972837949646827537941063459382903093590846646150929481360634158598367592793385598368931362441595296207184700515265710595889337399472319254416334582924320193027626811328447883171771209566968883422528347131391376068261514130469255423533281001348295241652026333165896317444438589928356257898301757999404006677503434037652788426244627479368168443491996862358784740778825075378151860116403273491652793559070072777739979235187171591758548749005353751425833874669834342911863730370553217838973635236258798993193529770035187065980578008252435881920954422637861382800094774729819811273839548835463985124977552097532737105291093590902624778724710325861515409643559683248410758352009637853506054336196839532090446372964273100395042133128291101916031985906572344131842178603315385877136522498329327151347906746517699239294494339327799567139907179321480253114951797944451741006917009734068770991438136421627513079654243377543523308633565719540685589012860390795026921569941027533465350199586886990668730929226748773759745662990572513220846263232617077902835147067932483757295265318909421250746355106876332590178621625642207747723468441184480036561831312734551766491806342664499193815721943794730265858585563223470435726170632225428567012114511794806923054117327582494994441428298268710400864874689776842006651910532067245803154639852579535737719744529929354639935205236374085780875727401382891976392082326220608927013439806925393756399662971410633466686720384437824490247212455475828863858079457890959202359156381215472213299072576908473652247794592309766356428807155959396619008461110140274294972284198402165410126357973602708811346921138489136389943757085644899313030008402449317752028882816399027450376461535892597341595477215107229270192909712069531793742895271405852229517629260933360509814675854843255882975893968172663498524235075532260746579493408180760159559667228365327963577817810160656022450492599782577987672513607227280050079877887159508753638112578224662999975650678786842857470526105471879256572755518289100031028112881247632714863948365834703617457391983880180377008335440470717360240864244552845536864426215205836622609017749435038011382357702173057498090001170084182436453317873790357045237368204645233414564438935678741016415084051033761473786568160445765692183626595952744732832228739228576874671733422111948449263713116050348658070206194947213338385383863885493247585524516798957633791647623213017217643359902520867582465535965125153435998969859281077040362434672444629761751698068559600640863390949458635842345456594710689629299122302170049988917829420004687360653194501548242549017286680117352098932683560227363899043454471144217267688614279753493975370387864304783986879457930291234059341177402826929113175613453476957537312956637970164821550439972891017756907343912858996750604263389433373857867136096241743196489968850297793060679820116524431574612282653795269059781868847579655616490654623676137603745742578616404026514427116280063539487522007813523999349755951222475104490829854471815656874493498577032556587494231583568033067627564420141497858282429130619655035158169477773764746542295786384317735374337714415639528745457841023721200328863113654423694156456418878037080630549214724886977988444222618186024054429412594710918966002441650149418763182841356504262032046216186424808503197383148707345744950071676788655491419239133360307475725113224283612936051391664941944629860081826891325919457203457020462535274328217495090348304545978749816843578903830883136443275017635904642471338628615627323469334875719010271438666533010100085762800707411395259210717732089957834889831516570734214051827640493151784955633576571407145742156553692930457936842656563519203938425473317850370068722972124538454100541494684526962744260677820871746826721858937703297230339923770853440567994358128826896935428917077545097155034982054206041069210951297178764054323916398433887978639983054373576791509118035953015481269299609014986372012257934781893339466943847031797713912103818105406144235858669319983303381964477136379144321153719751064670304570875480536880593097033922782225544306630603788737409040628549604147016384399448610667963302904751303741055691530432882934222114246782253672520468258629335440465118335785814372244608762918084944120396623751103663744392423160612172531178708856201998335199735674178678120599093092435556495255626520665790958951088581569221275250184534576218093509698369315711100843458641630634158456761807296083013308500732222145737277253118549623268655769752812490061051337223604222414309668636320362577431748466911345311135847509131640340873499531554067726897849642238923628729419733735879132392078740754409145247404470715546929945747137689288272507112161428486572240444617591207875269545521191083666760861590192047771963272703927667305943734551139192596346943770116671346609242135378349953086932950925679449009518767146118150960417584178236488112629424286967420070698163156964440154505685174171900862347616274971560270347553688228717448686726520415027214929964791284762432520874510990820492687794360395201306876760663776606592081683156113641810444481146659976232880474950787521187463954899180711759561092141058450998213689958029336612492955749832725741723279347927503825363942508168982764416250561327519654717918219693065445789891220279241040231015814083280402963866473156194581510758257818183272315211552692618577292627782129071672221206136182068197341231302366020959418921493482443862161565514165339453548074938500611956584356522362030544904340161539474582873741389237504742197812455758313002950316682799189477436534971325980639267819267014194599462916961415570315596476682676464612885465596351734966160358630612810008370598654066323115906680751712500130655760780107117406224127168165814981884131405816476720814732796706718361404252606495316674431801436207106390046576910656890649341958383990920835552508797846394108222559739456839755801434849165374762605873836058620263444156090628395264069209826047069031611895579723251722664910089652746113217933516277005221407500572407358907979291371989197782221645945311924924895887807903344923224772689415347138808927542054171785180579862668703293804398579490061801244994626304923539761876067670666625729153478053526921512562511309457556798288854079613629373841440089623750019359517926264883650016666636100485620817463964879047106593358815651991955190344485783771920301510660737723559285819650621971141688099022811189483839096477731300524750047349145897729486478028759532112445436089255742746235402607319866278928554134988449545967063058733240632145855545965709954584408118027517194287249156047548477197514451589477830855313656115876882319362774128226992699840429906355778028097688607040800535286334437578679392390441699780600058765238143624423371142086492642113520213143060096072769095265436944327650014137312612295230023155523373783644425524228248456804690425985687917618679261429738202791794999299003810334311303368453730597316703970596644341969730067421606822762500853719185854942070692473143918469973675786798062662138800253999748707101424353810942745348616868707408663586406047790341149149268538045422471682355106988036540210848400726641815776893736616052173827833076147026218855982542497160345314517204573057298312775437075389101965320832017945498814548992545021793880812271438110865109875418682273888835726679489435333443306526543579530464696695866088440499812106090936140430938922769694830879952492242040809907686222709617530654552812316357625504002698218931150442366987259275348207199629626515564240475606221815798179004356925020817483973410487485628845808955347635597813339367819039734342597546150163844053302575471630979486150913050118061044398864267500475183305224769796789196934861480694937592974348098949405548331676611679059651334724338639270188524851785673305454373167103116913710596058604445569616519180148250883319855532767028958058176830213602100560618394301091591474548681980459551396940925515426846276932887257154055819298323201875329703459464373722709742644874230736682601116424989902364313178810586810867406601397713374795214892376700971155927090468959775890407176312227841474089675529970630244309879065746272365352572800761160524277226145472502228877765043171342258489846602230853947801154904603233782665925279687184044424459058869355941816188043801572352400311956466933264648738372059773938646374441081382549448686299542497501738499867226948987704548040922336787073763828217410361552951114944616394910186156159658899440513307035072511736256080539049853232816642098105212380960013982770433221829658627227726797919649088383292251634854669372904277594747528746754347360989294898353589144171345432694647777233698867988315112920085360943345403990628834717015144233223244520168097278746926971943535483499207574855525368925779289067844436179118758854102731527717123689771767205809856007368286383217534046298622381287452344606607879269778092022111723709796318792136942256653363721169397106314978832836978332550714646213172904399793457137503438228026858358130545415210458899935438655683379625410478855029482813957350879594043392944069927901262935350978381662313210602766158049839732808970827688700961176591459821848982046572149632723396402488891748000439810246629031332567927649179052542108142039776465410259186204719503572833085939696714753244498582727509256390881778049296928897409660104219571581503336018743648925618501963105557703549004998372363341684000023870824285386208043727844367243965612442977323297253479603896749694707786333003373404253432872302511195461609037505272843936853397568742755914379457358743100015340240708308411056078528113396904557135232007833631841295828109759800833273078218913923939030940846990322242464356628973287550501931589286382569775977758466666955156824028504132506696307576621697542603304412208165087982571542376335301521442404949193807811445325378543468046736519801205208549407110752514748736806771927788177425824509241491677246613360703726486372851809928290638645865398687225506832261596229485526474790291261940572416117199432242570166300589413519159793890836923232772816935290429584590266581057258480162946880428201452890259670529820758610605952710997358825380449644902375568516521955910296853561502412430521264186210618808116978017451717036368458877288926226562656700014147922994096214737012117526786022234942171507231333558467619547428348613323083227707283140081697582367943156064748030283006945522982016620000369520830800813590912028786112169405722272916463307114007717049735711678265863856482765146308985318941737872758845426541166533262690682001886223595968487406384637498338807422753765745736371968171421023853088481219506005314523123093252244404973752207374474515471475876829698431924938306472056318331848497048296799397070138876287032532634237726199317053175244083944521818764990354432722867828983448983194863175015924129165148446064877307043510970821398602833188858845789596008998531959743280878240064088677318788850248516223712180837887027564635764263789697960272351145403469435602374990231192906886047819172321456842711117986331922209084098822865694837669894218491101222201647522611162620251512226495237985707742733966053210700965978338461358821239604105234613725599420592263497132872150712542965081845827777079270405256261231389838188017385094200210622391656286701256952073970076221937680322236490968756655740456659825922752136410419607049288515505156790668146595838189626826921983123310557259136706267483007599241765975743707112341107684431290113667859898459584542082690431200013438507317318294471476039683509726445639870071913080231586134396707397790697360857285297043410055474981056834138274970413275962068242883860591932138419468353482733428159329495045621611881608791165079050283376368756287675345604276243987966312312637238011801823552179531541543475727913986057356738800875368407734528401061929734299485746127031941631378488659465983128763323980379750059949767429162525937704341794953200729778700380056484357716026052230576262475515929826966708393469166874143530436296349124885657557473850806706616772959334002035821197545732608928419858757624212612496007862175274983912241785391389321342109234861953795290774613225198173675419020091620016824331528513870673717418768478621078882373064790322594229430569576061187931114920085608022025466213357210315839884594483973555463776370024731354369234928561565530729875474964382977242955089358753102503690820791956302831589653032293661706442395964028129735001458057912569590940091721371980027009581599200253504218136004703792707652923725418787220837612922799701597570138925261551437949221003580769191506980194742861470078447969493925076977702350540818419560796612230972155184746564767370969876178360638640066868494399153836393195510052097380598648388071055454714103923278902617932226890002544101544713932342756322933469930678772560225644337020160776264454239066273226331762043476600944921242816262388829907038448077318647962153314987764996432330781007063381447625760062563695359446036557047283239613257552629838478018525160924989541985144680484790144503356724478586258951626692754663962098109794140254400465846438049554476108896387165709773616671089257333783199939964998099900881635554948942394453752402652700481528362433461197105809177282290593368300018921204093282700659848143406470091784096839361927888445760934145486759016415286094127271338649997556212371065684976925890596417828027068832105400123077591471569921134730050327571896117359621040804593244150531330012430302331737483110016651167953704686707392905344827981979129840272656892147277168929480271266368566683546279313944998337456402854722484666314784121248492386544600429257957121948213427919665463778863183674444479278016961195784219350425338521421373214382393854746928630465978818886592310957379273629469158170458780182607761051684655920795026316043675004035530426253089219505373544530713384074440582483377806731766289148051553783756243084426964223648560319543287102943839161268546881259129032181934707779426177985361933816655524052049106315244830109021820299508745441475248073918831816274913479323735916599780341799516594306294344905865199565956109343934628305848596107018917358616349596550360336429272996583331009901868557456410309306381132211163065943918510750334395346134344609977959739677729759763611380506172216446691829514588577821597392232846211586389947470048050546546878843508170146344641816951574892446962202938777784358730234185759015938275940043327956076135887907893487264755320642675523556233216598005447009772454083865089229820399958191601504669260448271164877189151741902478860890398591934403771707654475267952198652215696023039278578857715130417050347709911564138110769803339306576089959062341588759774969740633425923651750954341258372667189082531945251012565903354474217322703226906004685171163849688708001104006617407594147341916715019929068250384625294711616628225563279378299703419430295150059112259507939459366993576454134562630096462609183183673766541159209706937105630106261526947336287471159817912903769326225200201022148568976491025583685611005666959150989035751043531802483337244780651474836429152032036022310954148783174268776166999890784911759172678239513269584287555376340272711887877335639503770648154843819501487938106216974187042997223046026444496328265307176589456317774934517780058354786307028447521714967735754999190702436851416301312887979377170416249389314552710666064269688715458751996222568122378312279885328975113223202087644821973192800701402110126505461913030843624758350414420297649482970212097966634646683607227455388926946931720440534894210651108136642462529732963996699269084585817395166494904067317874555910233770367346553885739177574967812846653076370421701970983617692573555067794255520964737702771259500918622362194409229147657406187057388662330788944177191992047134849060044453348973337993839124827706037858891363393547566753560833223534492765853379739893410082571275855074257374879901345564587726401351289793276364739401968644311977703448753548171964515767652453890851656014490848560074311879149078449428849869155939270613026334576411242760548900780486732213703342105801549438872359164634361880445115810555529563787977923376398408327349510994448343683293233345985321006836803869386001400610375738610973180121245711758475165124946914304006498140951016154695530136856299891113600817791994818814148370831022336555108143404475228572796026371684122880014035091573748774222177334717069581947123041418029245832466370774846734085346921426620082542087064601291878226974042506864682299014203271402748121880856300089619762795011242992273130468461218071638339779699661345408444926561260557204509680940674873740239590950267159771010346279037402638353437707119979358768041557152042912918892852639125724411506208738359502177320465435076719514137843672106374536642161137678748892265605254344618179709591215948275748262273963076834618630162053605289139407172209210288009593577798969429847729926753508053791146611825559597012284163727937818919657556545655595050121392002618732557954044684281127571544805230891421993492389134356969767168146433226622298514460265509391976263277912661476938950461308135741733783143299348567132833843127125438878013688088123775951482522789399384037068046132905476614487959074663049688950007314418737007917513511259111914052599849429036184237658642503708667096461866238690537584460919882723149859170063830504980996759256058628373579400522218485109425615737086443040843830901047539790514881051816977098383129318759501541838069281640895194840222883208144930972250717095476538657801845580008871728848205695246524604236206834609479418826204953972176212290223177861336422743993158610325346038852281555039870178165705221311626325748375814765467509271175051114944310336968795603813974041592862258319043271424646650167186459858422384214400856292968606428995260830621745798697980308569009045211126783276602240354575996041693063921211114096581308392592786649567550801659983921761438986433831630822151693368376043187098827389363053084028206694704825700063687069993361410055012475879231588550297937112492062128236694599047393703249352931901139077160724144072745160087516600029765759611309247632371148615085118716360946138136442762770054457261466124633860874391789829810996749681800121508066968877415504396227126007415209559810665387759754620152448576331145533366523563351240313637887589114784428249317525863617029654680659600364548016172918045419006120581522007725521254234821702373786625014153334613994826541911046089861390252520780746589777522237442413998123498240325866196435009429324174054968928957534341803282034731356528966008750968302078910208117864144961311938424503595462903751945103414577722229335916870953774085045641297185260356170649136923528730777198520619273477572551480617283702441246876622558855407304662391449059781503610205163938318266229918327538994602893230690099366339017765025884627504625998516874065620090882566005568542382040465318995631432915834086341176416913104709994041079978574995635217744094629841186238748755403570111984092007608741252515361929611521889216384122673692295535834177456880916521766959379518776777060359360771442012384380908963120998563373898695438958461354683975483302280262224565858621470972504748039740927096920915387330859181510905455955817286256365580635646014931472318599965939600695704679267830648499276157262220447780043205266374647338655707371191978826398566050900918640487660676787175187996219856085026770128060245180649076616375179498086695353460886084253699448356310828333310518675969451167841056188737383933472782544735005669629888990393821425306323924381845994465765396985092637108255475560515921689718668737040254709922535582970242916816105285906770301182972484754064632492456612444676156359205041045391979938351166161629427647390356439686481528076272095668175293583296325772884582417852610727633331608785818899920126426785292144044248728396782481882684277317862380817647474788026376482846760296366507889018683855132479547687147005064639568680033221281391969161905943423959201380099386752635721935432725689813856503243491715438090274418930605648402997408956752163341039540891732067019680501796589119452096400203020503677174291086729702211423674609657382070574460554121456808743345818161098992475081674883208573691219218654046824777536796902978693945744914152803459964890261580292530795756008570132294475469141194875432356414143925505800772391914266216783822766062486995692597032852686325618283975823750935738945317864002546373488593444587678679448026172666924461530135104032728067287223486064915045701313301358761170844553996496257939382496659297223498257809912596574567746908896458637065155095929395483397152284536227400154910420593014152102906467161313185428937075020295812208280418392265592731091068525160317974520647817436883474913090623099357716427149308367513319070684550255720464771851225370092257496255311701110264810806985421478521128764827806174009435472231015155377788269335298102299559490079815396467054131567935804781618843517792144790490633784028693829675287563628688377390997023237383162837282875085273359752508692115035608143468806898674644092432189388388533096880811702700680720516495161432484766316205249393689066667932879005024232568443683473658182469071881163005167033474741064269718874893165734735825955478884302496410880704580003478896757677407068831218630521450387718662433557603585006626165581990664654206032136069038933904989497921661120814201149100100364346100357454850725433811607134271986584885351457995698874489476060447884536640956902970064666581686572960632385142073996740801346956577634468140866677136684124208489430811640676040018611166631173753312333238747592635448993003274552802911857973748373149888725050358071444992483376187460180334300887235283870893224080588125807243386808878401844600936455246949390401087216263810712117939692428726800422727631915486661102466208829502771925866328125905876604485021429531010707020681518371811913192613069274179079796940976764987249128185608258620875084514979970614660788712377823965914537993084121701643849897296580412837127737674972490132361561392130039313431654604022099188634095163140377261071883181657346493094870666024397305096596984597889413209281701435402023964571600502818127196222854923419729228187873446925635236476626496818601109363184528188438161166127636423486534429421450134216667523402737196690570692950839785375915861185641574060402406653614849799846117718777458152433660467988555627027895523898429818007293621530684904290494896877744418355167144316300233507034752262349379770543059453331572120320038841546202908802738666858358356235545767681504826827094051892043481878027776475682082835466199337397067145791698939809617080180821550786926386477288459847544973527561815581119489402767300549463419710085932319126521102977875570216276463404718182955338683854887151478222309294968965334527057318164901325443516997296728428961848547277503612555451960797974959127969156294484208529743094354459636053028945299832125356449712808274428119161913661946973359450161523692304195531751189398873377272568841052147265026175510710082910045219536794920399165870553154617407943686912411440216053046914730428619889800766193040887124128359452356840515347596829744035052781289755344318086011308087059595921697198174979385853042538539658551878212562467312994777445739640649835663172937597421038066276537305382975506417434719648275443524665335501485430797143476598744175175398901635010409594659856379226189436235003257570109219353864107884229582107627887162492728148354529430101314990576729275712516873962637201044482392672134820729595430857391725656097106365617023926920960711305364555460280551061874843108312335630595861267342677052519259591955035657596346764568529081200105583381994920590954749192025210570765344685834315513831771221001781181541879029117165798552842406965467102325178711219613147066283206684978549955956657162596638732889335368428242819558185352581441609395285651070703330299381487712486431328957110132586024146455339501236079357219806113059787383311098434735324332384774701545651938580976465346954742247415278555162051929928921649381469471269728593513266082084489497967175282876434263597389600904456955995149957806188198461806706926132870077524157954562057424326489178996819853305799621162984399893397973836670610285832139919377514087015501856532125668635944144784081914893397567698734162818917140378365787352708008766279320855045144370190651041111963994923280542207745736251198137652223558584897023788965018116290316533587926095302392487847850810418381849844168452929910361922578104524376955220815305934260338745196217285030817695452865567842675452926207346761016825068136717411292716713875342961687989833307082510218090433845980606411351984887912553881785279000734739558613649614123211816556198203488177127019142792692200392290407204585365497491746081673133351614587324517409343124841423609609550242572712023787951449643305958038190832916322550569041112321038981474637531377361748624637606238797694502940427570053352717076077032915063787059892690849607642364945368410164756983786777089051814143212484252612988238392831264947985715067088549492181580341291048968352903819860754712956229355714403910061334585146639808807301302059429516033634077530046360995654499583166676652720233130478014593423751519596079123099576433674454629582206427014173893657591954503897511462726868581839936566767544739435430532970272632090200400589747052394730220980002293254400697818871237426013310356913656573763866187780064230276460499655080200413891994635807607526886672484289435873259302195327435290460107756333773818286845046156922239968626557151282586168122243970704049330903801127176954647098050224688419360231452602072733287575047331341782226529087217807765551148809745589077157307210197392488920923546208470031282886023723822572027189836370802096129759134626589578796568204007782796776355579094880727414247738152597934440973218336682162890752047318139084338327519723000149742562659603225343884512546339537197448907279278675263855291614828489881159504800740525022075749089869828449286334405082519802090601064514722842654353501205458365595305850175802898000320479368487508832893563149866918579375938024491932380609868785589354650339856937612510732779396979274738069157917325614235575894892286753031274552928424378596727177458569381891875923806291900560636677492860963273191135323875513751680920592911191774359940630401387292576941519933885981288315435470164214374027574216021271463749867447715197631497084645099142463833435911408662316963959183586225725504633988493627298358886559764819325473519995694669960244004552180020104042340153600681716191234999287428753499848044653394713318621159169845399288436523368661130591614956553681137464188057370033763806021866926460188595002526162159674490007145403841284289831557489363514861030287440367729832172013654053869587832639102500521082304367194378899841788764499723181258152756294715724826270939887753565226570587130942391135466866397954793832463934048122807166189260821159847066720501040917612379420560216081504668827202289613723341348041808907017846894121480326231000875329176651819187896210656799917208390083004795336039855343642054967934720371270039888647344454961768592792424787612952335945427820844559140584861429432049131342827437859801245465356953796619614133501194456249339045767839585477784401460373209519509312650817546922850748218839485251388680158231854153700712773574045795568158472221273037753830995075009856891827116325666515232341952656251279533202223980792604851051871590624790412242910364521753772419799609454197313739460651891853471710447573388367406626682497823129279458471234959577020630272738219001582940432575611998787014373459794881742755110393296580867425573402999074355977414466824284082439728321921135073391605572211987339885388700745028965633795306989978597859556137852519449961292961465187501484442167429151692095316456010188022758784622956826825833529836881089946599625284577451660899901998658054819271633948562228967264759653764755560447617042675546258921235133322023729199603992796307503844777461406357510661286349985979077732879246504073256022791374226882564763841677294563177234077406105062560669513797418576362027452457880671099348414213139728012824861079306869677487160859076534330215176693240176588517713309100003613772954380400969896092950193615494782602898098608378906080702143160112522897541463528945911888338612246745916153643113764250504643797412822761072240001673914072067413891185088451376189572887590971077455753494854704428299402884531590714788139534083657070280421129629004634799853133570101267484200048262918954635013947128030950856269974010818699167763503391649537090243158916323066483402730499941313599505007213443454420554156831360684244170309350111946352101426157624639886484494498266606347483035117616283808475170968067371547472883441204343194728436634534425304568507164629715275584434456119634265963121419874792325302676420284611721246486565899776694488910121570845350576221051959618875671718238240896043279397750569390559231044735356346387530755565161209276220056509780207608682463714463680573284029053903740974149292570720972360747299926056576260823473909391454769150019289297365332450951987091671702141006474996496173494577091074000369247542231600388150880027574256403424273517090271998958553847234139304500613111403633195064118087607797426231099239466298109364139317202956795434918535675821838031565298775724359283261037009584380833986967722573482988661245623932594087687847333924151034646419515308930145871070682778721143174135656398914630982311196754584121950280327799124701876456173681302207400517112417625183971506543672410461826233333609170062274489329079760668793721561572901698132296826214301750572261917393803927523338646216168233717419338523714796959642126571073431912051820512543620830570569765983148119735951794753813409568372609697982491430994946193763174569042039449344180593646358710738785778306810355704633465009129971139966575454902048043943235404665645639475875286181535683595944517194644673627469528424554132210474006060399738567250506048398550030783608777300475296119553784368780482501990465730072114976660572501703295307793399634043347621478204141250488612805371313383153818193753421396737764558451203929521749665352523858473291542972424430854148853700760651929756524164411584002930513149462075049167965113475547380535299287158488830858653151580161254536715425016273285353952816346953039105054996583551790089253690273815017509600906265442171531692749338665575221971581674199122289684963499839966879541481031141091243896769905694863767820170471920492332787857601800668994100644976456531275303808924322792121245544906929924806368405876995555664800489862560760293297669427049598149202482595650730272329223977964916217228313944786044577513621049517184160874826663294111050149239452709493778726486773372195595998346598753527502838638662222394143338544981874285142572541343307725536408515237569901841358248806500146167884880003408490651542726544433911882458456995717924531191329996340266372844077614109293595389676543136756225564501492055411868464021371721719770106467455232063283631949033244260603382332554679693101540892806030145577701679757869058999932715038491862910213027262827198656297305730982890755877440594187454173295571688544196959779400819516936120481963163192404910199516544408309169005572785628523542809893103654871543366687957144918534112651194485548440024343860249606913512795543840222819686278827644259359873635737234926459653326105191440298505384685205420362342800057037126802648458797630107061080698681847405871765174369840400875983210948575443476183131950350276861124999504312034377832327927072876441123571550746929789856358617528002601207987763862299444516749375424745373032141327350440194665169915003662131416166809713303068437370175467909393091511485887536731808246594575589783331706550747173256713924275848875416844573391563597286051488947157596497695891580103004316138808668709423582195591163145923328390210804507463298116476095194686661577511366869777847445413590605499452764520509004336220467802410090160149388480304388493449578516143776279639295720601404569794341491270820326109154276517497792581401456962263031349323789510540504253316423044170001024596251665526057048726370866360721934545179669078721753314098706744082579258105502213622664331715977300793536386080990100995885227597783224100107672466261136206332130448615068942093795069267711745590283214185442114384327794488709984912404876226102729926888492811624394015694789647063950007067909854532278597713149087633788464967533189971675232327404655266039972989577788033134611357272217548792368997102213541345828200318923264864512048664606064907406512785744510595446073330067271484433818107762592464161212211355066592616157217569714841071537751344220217857041206935908110899148254613808067674539981552900366703492628438895602522562946524601127395835819323239269295992318151711852205572889644307254004656736298712389573424563401501536821459740971337221824513548152891401811867815792429002085515069144553222326343037802119509025461593201834737646476123204170682253706670665419044162436790341890732179075236317811652501416101274277590144665039176279815205433788491330064976429715884108457580202013466827462391105256861383596953893058521071812242417705244732303642878207517717710288543320898217459257022200589514691015004175926479362235208404085619706406362412939847544556208146289808005052528156215701216750134506611260534699881654347606208264289072063044742668780053809732854788992867104036690319967490546302888043584647680672542372954135263929239701732807084529007373433307085559691004028313260464345149115104902754246691367357552835084034324258834622956134029473653798479644343032058151706985499084889585614989097557633547624192199730754515828564245317932242698639756858867854689134435364775309115540089275085501488569618166257983604224396078423045716355795685889952445985536420004485633636016300932246280768669505171962438987990432921233246193594067940720404406802443629345191248145577524595104081462059282313804958330453640169763495516243079354114809739176303529003278063220169680982862136608460797863821577352089197844159593484700445109193077349099076107660309419523614832019907341016496858833315958686562196103569437162039336517421468539659655877985902699188886635078750904809311821343883413332646171212714108404671296991342384655478214680828314339544474969915879794431293041978542592986687831641620917750148425471545357877569002902734962179344844941741643739589410783452356211543075218086135727971257392841548360964429986636918708273807727382858638519765752117729993915879623187581749360790994673445170669657053312197295169971838768717366220244565701911721514388994618802621612215178669827867641353943813071964018929062254333240662487022959255495132214640519660826307927989719023697001776626354350514241074717989189622024439509552627852253761557216515467996623288572456511194247510622740698138297450681378187052620241446508388129610782692292893243100445660303547156240064832892262425630563416012543926553470587592785221883765596136441837966569908384676078221037814304215615467986265823713734370031765836172613063777950783921498621864718668443366296787998445921271500510108687768987715569435053455011210264921232188977986594464649586188876424586785010513968482732902910975401271792146849498070658766550708075443323633723089018104759869307416279153364058491109313089688121085403406245659627461463629462662089086008491567133829484117266027970752078062823616073623583378283747064096599276013961709198265174919025497577182711248145306937749085443088804748367734978628510324424253210770702926146273678354902804443871468708939060630224721568797498396995680715438423056615902499235452473032027755437482193263518260758876655631119798158024248299602987995376656475330598694839705381035688275817811244993495214636131293773620328889001524571514771395922548817724450500756426236376793751789725528288809666851393892359412348818696565593310853222569588939990850013529254298316977994902802883921570487836364716554380664870705869076359906005804297249615940904071139015726999611964848667583611603384273946702362603370398456492141754629731533899720663174037745780648067135516949945323125204715316113831972012464685018274977944433549875107871303421268246776858373874170572301489785100266875222405707298529475919653101739119527548102384828440392770108461213378839331780638071329472609252056902083692765361369066282163664498161136408295917217503569918883041992932074085622523867927374676215646464509078508273271951636011012624695231929134275296153217314683504051245920696724501881213549755146894656196620248823005755866740210768407181065082879361137487624730317370880702680498033813943801623588007362141968855981177210444457497006604311931203144218395665473370976105787106616212001124975194632352331853673578255494949087345789455279491508015034186689900564180257495146607451372692288577741646511715719264023531569613717245940895148505200457524906438058277207428380997854378146377834269264515081720953628408474922825577668394260962009064766506140011584109595391873516890662383453639397094852550409583976873544470588423566212531293228885067356223488703759293024867954484076566782611492638399144691436977885258133052832709324201245700262819770487105966834760336303010316444635225734035382816311646524046595297148825508615805739896646899458081975528835930026033136128183963820390191151361538257484200526320403978204505505444965542913629929334625648978606372604177023218924048210099933122193477912264161121923753922317448383497536828389308409568204430404813999878871317985444691528803535381371384321006643259479835306160477626480240111119552808916014267667635216402945427762117763675085741382324455976426506136855726504933557526686539476009612865048823677755680243528854453561218897171010284231334783306153656503957257011489709495408150227989115412051709814201882152548332317072624036140124368045475116385728181287775414174045552262829098613419296646187558246924798197055327549096950930299023297384549714224067228248301236377263893635906821296598379391778973695616604497210655038077713811629923161692121851251656364400786416571273297456424532921625063238099495782840725000496932958618873288207899677361565757813023300172171425183367675434334609631749337001680880258309671683601736191132044791937857262046131595369030631504251410867730520031389768111828487146126675916595921119459431807317847878032412518623350196164611882077903047778489116363707601214128182628204501077423554913490786257102787866720063234498827541531875940242498400830559127955995991044404526220664066562118220905490959391263637565744047554212536653903782591209790856762364512471650191714571610541877187522683849072760051671407079784887007203778876817482462240456034105085498239663759462653851842593297484241994963766910245280466063689430999026335443758720156787790661459466796026347634553567620502132877983731200170005711873202746175537895681728946209656501358389169696121494680275698078910412317964234822054159366175728274377081858013857656966695884701903556918030008256397623721782913530785592182699142094372641685073319372469535750251075385845463296158191878836900990121487763835514176722516130784494097870834285798570645622376591478417234500695646332026045360754638118583568643893280636506045452354850463178452395644285094004682700877829451894114914773577166020602709671494787038997839112607024046275247757503270552749917064554834378373166643123759029854988630398462378623726856146447105753627646660114055897675364185691492184527757146817259499034466562982450174079088164261389543528103113547834764522031847452237643973857572259719953019622086785452533461249879283459030940408106003086967642242712825082635234625849792283436411261011893953805458176757184704616244138410531916825935074274786914058788602586012961552455211253941677486730942354259030205745884559251282161947484610343634107169909974370435421672207109204736295874668007254464413365451497785824402494401111847680037886597766290688132175345536822491262676300374300588435236358975983564077880097581299682630787703142133351056321283365243524222682286342479431823084642927603495468682729916251334861524369577271626940413595245416080840891721821759731591349167285542659094680910275480304058321168371090359618811286958739873367143426853551594452547905137656222470590317663220342070417123293980504664910783743270506212544709815491925981722390444922555621650413649154692364742316314915608325066526957543644088838955425161891548462546693785792377691635420126679864747784392681208004907728687677570306141706275975837042337272440014659750613756968083682928936876198445112601497352879340865092224579247434902192149649159604295902442750886753432934265456253901285317700252909208362250655149687057521886754556673989983466434449990302477917324220867981698299547547961004901021271035985795658091889774745911342576535814240195690365906909424153392878558579894659097579896604552617117231318596961168791957204326438105430012154122109414606357854245301899804762597564192308995156752255158736931134532779658188569426040513565947329244316313676626653689922614057430946745031882273712614264424586751915255923496378648300203796239809550921762590996707125359803909271140157707464707219833585020809078724463004072342221338494198045682638471225274805443533519910104803346254228308673257845029776111896937812695074717395155069260402186751938884552267506214532120784245068445151107442415335905080546855777489530620263946642407893124284140712650944520851818023119813521697627078059291179417978210750655667903087304580893696153533984417414837696815025991716463638640615280399820515816079847738638952366261653353748628318017263168728802031167043832868620843231706835358216808369113501295006816018269723367862332393545744923920366879585742654074033605910518093634149415347768110773070508360796020791283430347356981482278097131909731206915568563576970267711872834469956876714063143697471379602602809689735005423188160493557689877241371398445307237264182954755941845678844332117078210767034669727924308179174772609956177938355713549424372028938321042733496510787619842510468301245174391083213368889696332638517010223901273983362590852909976585390801010276762674061098217600002048144860843936615152284262258242346512721986145671267810790960437514348033965140303626126977621556714943569647948686318657906509126266635035057458754683422720719791663325800523496771388587982145096571294685031552608343295986622598218815664966847219900338877655677110386084623181957202014857257031415884643560037982127540992334766940236932386571767127741226971154518384299548437287117332316879489966624549781535818918662879476908080494459049424025913642525773552319249662670938279610431893266993347092309163373066334374908195431650033380540948111949052340601381827590621593292614951801838063578624119775323873967147150871235588801510533161413428589818199720491627419224253292416879779745162378586689577089462515565981719324872911510868256617260450815131561476523149412832108866896980194068880523470877178161852834853200634034443585035160980871762598186045385687118605021362035014464924174389210656025966489970131387185851359577971859893423826618642543709590387883584339544060012866120140458847538117239569730050284914631735339961861437243158289341139362123167934246537028556945539690577968915228342775427560186577349912515398024513367886310482155520933637812844908346603614942463164498566861113804587538163677715632930625276317672414223637901334412973668631416154255289539011312549883842845958430022691103817211676777855694571421773692970880898324461265928688512397936440561339363121796552922305123165686763075278624079018943867638466123210526023882053075230312428131920301177471202679771666383681715307306802731430213629379490573114030063143364918040871986851567383496761046202641777042261025008415348921515430380665059945290497016748529214838522201042924657657127297944650737232021668287024626195149596287830846686782724859583423568271378212244282750920681711030970095860064765455678094432304918463168375129483645158988110148097861443461005048400988146348367844300338155523815189144075142879944750583044739586525897418406738409770222531793864443330927902218838648727825223133034317368282541899404121244120903859702868843919707746739204767923788331159591720947192755276251185618446582043489092586532531704419152032641318030198390531772123351791455179523646926740357071093109882283625970378798989683954966659448934297813584382499622289147373879259068270404666275654858967164547019457028164410895817099709400513332629479041042856852163697633050388224634456884570395963208368429624383796278662905261595635829433301277308532946695276896056086107536007087139775303183445171863288192684123447713071768352982376082273689745165226595720060794155269417934570800125451487368463274694548662357377572785973258390660536130496657073468217914647295829178974772486159103454922474048311811997910388752363218444362067878159960413518442714969639944977541425404147398768530326240108804282011239760051799042194627422579847301270605549458363382551144160987968809953709582408981389099208815911072346903316411082197872351027875115599605107380585574085054842999197837960028139615778839199321120458421859681541078316037346985691784431597261113728469833408162555622321220173501755714645068088306684615069782429005612113846162701932364539044473273636278389716608709733304760045171577503463490784204146209720237480399669196765208029341362854560995597102678927616089564232553003542572850250731680975924106467900131255880426102492108341716343609990856085159739878971940029511920472192904476375865489740382113038640963086850728171473317368155092720604832932573952466700812078775806713720536777725957204627803495986191670246041431113669696348035403401286361706290039666767076514249689321430708285572126977676248104674472905268467736868413173384381577875515409610324755223504830045065762458150081608121255562394397946214114700446854930107000991488873233226516616322751048634002851245426291112503511923237812277578481330852957902572022839112539748876467877965517844740989658950393941661594798400404364148573719388261077461119668439950177865570963691529573593370016934300108799526648451103587996972529761372500093113184783807284569974875084428662030527708695096443978163802912752722299284859638973497126793320315021225365764251693828620635431608982379823818944429215841041148758946805990489999391782712333476283120240663667676800306070084683397549710285197716375266930485425807379298823396869947034827096729061802400149794105425268091901379022558769246382082714187452557010505269173297424903458141521594017533281196808479632673883958453901567435256608624023744462357474929692783744749516019425057125379111925929387964006718013831867577748697024302710113409156324701679576928370944910346534878763189955906205942548134919564861067058860894621774114684159670662701620427029392567004436475646908872976118544124214989674523361537584225882359339668292334287645955788823877870050167917097576441253083294789978064718721662632096178793681747299769213564328567687711291484082106471849063089982278392987533539027996074088915449540541498653161340356100498394169353002525683903078792409761139159410073389176865183951971713273858303351283068344748903400614582061976675860801833271478242140464871827859693193944599995636675904031831959198303009964698847819474158742030696597488570470035261368376069517256288615279375216805818967933485448618819774699917575025076594705653621262018996374948141476382858534897309530175457732540449264722759239499474443598175206213361197263412752900600946450620973753798802696415256825492794380258792672251200679964496274731372488610753343688951157521722561758615866112980941201428091692146157248094300276751097998400741667558641141078521732802233577937105231985180239623308714945671695673562953995170092963954651181031271749370386444049531545606259883440650207953355806803838882158863295764834704833537690848117016391299766470425392919360106720910170767521785881142000896777846429490821936247726506159434089792790436378523464763446448607497300941646629596314160247390496608279773578702066207664917615079452004062070892331422499339392399700661570404046717951902605454226329360571121241532295149806486089956930508937589081672978442654038227466647388299357735843181265107583270147242227191426806232397404176598816598832596319840761922626823481003040773575107114998746400480701189059677343690328493695787811673175864798364967753399345996056682448088955734219503298616553297955915263277972709264614265880647754027283356968322380827886237849705125344701597068426086818451603188046980285870318401616751533352806453645916593052962548463982358612528415724121801857041004156448736166069705361241727488671186554269761336066878997513946901759052536400593735533566086390692363989714529065473402344845540655586293600623044692140113763061632367519792825571336451389768038141231246079577544794632184690541833548610122062898396543253063786335829380961499633484845763285641097218014336474391725964186493658708929157855534868299364561414888692882136783188943406329121572791419856598232029915148925044886836458652555240092446091958056041131694025299280131643713826271094626443661736316549059963066943456482956112327329278470612225215989260268545552919577928831443218735853451669440265603047544830616584779466554446767563592693657315238060047852239310059271971674054287381641649331335555070079536085374669211815358551362338376949345660921063814959535107745375143511643142079848234768867098240717222651087515456918598809616955751327543081732088249018038306312902354522131903415238052523977385522830563318861817647959536671410180546047138447054312878613921359792882502394671230797091068928597708469067558623651950242097730312179306788906359371738980260165408799479032083023503206672595997717094321706536577697697363715995947237131576358004359371223304248046344709337429524742777096653781847106777801320732150508589253527525272536394586558677362161857456361088982209483616499556235287416881535413545629345231404378293380236969109166291337808318827847806290008211762568435218650616821898322728814447354776737789176163129780870229393847294403664432322166058569285863678817669750251718388495062170655140043972543788709751572905842510601026016340248146953341221827951464282540580664633211322040633431082880573313982259669656974166639119956934610887956684767059534462005595794003079103252544095819708695309623934392167211617186780852570159658969959039091142002835059667058779801896532334430870141884757447832237113612364005447857039116791433353195870286914871906721802036557635252936712810139685271622105621013806970959398241602589808257443191794616518623895255680798460456324262631415364214824802431181324769873849667631052185777988578819695784627647720608391583984479582378787941794740269601710032201524002722644468974978466414374682571911239637031575453715667925712470908165637444352540942007630728410851989236354875841682744047588029094998133368334982142471978439526993904566925114948940358428461620956788709764037956691938518527478682998169839794210235617802319684376581374664609579214796374790154430083321681462290780512045388920018966351864752837637892627664076462357097406339701844478716166671169973227056544486616815800693763182953183595447683550249781186416535711914533911022308306700050946879422621252388582881116728259667362352186727784765406429449289598055423355581723190334398413852401940750035088591444410216964434598687761153998045294431003626968917013447409439863539970436840646981266965324733134635920181826339614259405262282061463980990708680064605986403195595839490357302861749676845185049726945698677487860472636505582035696671965443654418631419424144356165364794488821370362413300554229505603415781651645559376198261675736290684597018749094308628650506067662464631977519977545652247188361878845950708206116743805450015760334290644229671792299817217540892312087257555096228752576892542978830877427097805894324022173759822618214607067983531970560526943631545185867796229490872056933664571038294099892451621614338409084859304467806261154250174188818649393264271934018532335462119339889273032235096668339325961669667052362753604398939084652787003644799862741328177183306164264315543449096950938430331297704038204164373797836699555152840634126451053718377618620960108533180816141628654903337725322965316196364137534016697004808336246390252393199253489326545619433421392214434637426185164358352834007320764444658341236184872771900623172218224907331668730418938127065094770780578086395606315841832975219860416119787351566227443982833466674898936739494733604404515390432374604322160128936740594630903182982988112011311998640510127503092626460930938736708346138180227894690484790935104579402545513548723918115868078646504091432595752626589147934998223298360537212020052218242736748496139139741336339133688532813894405257981573819103049366920033993729366932876839507858623827136686139036847354402486701414997410839181621099842482784150853914122093725409173936267490064391770318988487232648983114111282835721839271393221403301053739153383318698531028611975863517121411778926810634057904133748467744784576247594066522187995386692703099855158133333124603589153993706850828085129392296565227530655045867655845438736462119464134727377349083067783116996364226693883529544836310119724683650846154870854553775480193286425055155682491344340859926618709834209864707539290830927287666172908700042876541073854413409801916187358607233359475793074853247596467091796385077859874676298199304711473819585905076137121967805632089426259713431681366101565060286614781762096030463239908432400313131993401743223482439958594689579270167677009496010481973611437568936283377165445163606231803817483127171591642438507197422849811613312323248700396204714637686244742732430655476519948579420551298881398713111622465220862125425476127689584041958285786099463911484073846738053650268712072075900995066754760618200494821323095200219897302926049487395050561869666018336593626258335981445083947815431746276893769900732696682604567442058446336148442791751254325868772938050239208757502490394389840025141648821742346388585333339687611263432765205555175751894290149252772707419798958125533583017670168572145806315487825424305623830191951987624542556378863385163549338451571381452911804996004960520550030878260087048182459712560277119814857499483816629694967679048400190492942357933182091753711256759286119570889066820719638045744132198698050009761641171654541649410279671968076547484581364474827747619353168365904276016200952966316732406022664162372828589450871094771423540533886984320871863614114927396680405951995542322943680108863579998750429195615958800717193832005730421046003612212532263356087425002235649356388316116726050982747696063296286335625682208695001156636127320196614410718843212401951050792822943167600496840252915471610317225586489410408542975853621679763745137611358503597781760961613616662033457415478150481198919360165406918821747517877146164160817093374033358012848454205373936718810160097985271292352627533406343349781306269699791732782579557571943715226731277813997461578622129937929511843788853397182040692692042154486220057650416847525489107223472762512222837922102376869664680666164205723229477161409709731476285709574109074175965707564369567538150351917089847446350646570346212782935782611122050784114739424764808834215447494773204323044550649943338919804604597270439555345355751519466827622054754766847287008209828900806352327049125085885770209596996715794118447437567576378084615340611863777504692608011302409667413023860890895585464229244151121099288827523695700546070600996914376920909184543842465018495451878461085037562862608230867449176497505065453422797399317026026452378415724243080810459280767314746088545483020477699697959876250192325654935435562797363748036010599419849731216934402198238800291512480688680505406034234407803352346269054799955497329625942416369182469500347372707044717469114937223414336995402903767478604944241788677692012090045277979531754480292057211441247411226477859305656844440729312480933247446076494530907902749295613629534573602875674974727301652857346156818206415634965799740935552946874870985505425618422843436701146493860703904546978166735900605118142842926731780824478561004133145743537910737530775400449940811023286961636741454983278317594074581129757170663199529173806390923847774037792311697629580512706979157483042759749984519039543615012338732722214708974488770538240924087728453350814392639857584576113282388147467341567240850013876923091614894531135695463966197522657197925994540756053894735971703889835025228772049251238790710388147185373619428262847707353977125935726925171869223085352343150638034868371113787671374606793401151757764393715689208902948564764418169123085821458572092011568923450823532521249515735428070886174929021152255873584672875551748349127613624517010519279267929561743872715086794886912528812082978592934384735397936562768296477416119368886716166681912350463088686163345536705143654783058002122845304139668041307480465537702696966106087322726727272100071237999631473266635282179098701930096536611830189575836743604179220141444767525101591749656118562393314985710471586413352825795110215269624983823148248306791219420928813286780047798958523804261069453182437235315090705636002372702285655995871701127745746848905817132474770133104635264436021044871738169413017670983562924623732808180949675102732802370154033407038885017127420592128349479328108563192211966200676584748660102408023992216269930835025886353247117922655400047795573078694645396966017997410592238505071065282268659288594693131317199157945465461003326917832301314492155966685695478256599381961283571179459833791766900224195101696362877101366787502719518970794605414000012801879947894331474369188828036262799466951618145273253728288572984141996666248514950431076052462563753076643320658247661922561503424123160515652651193556534828900731603703664981519297173779105452286235562626252725632332879487723182582875304642396187146513356908150766317408950219490361871498368824656354821734433123264894143214392385451393279105620444088228919946516431278308748493189134142511670746164006143878541122153344526828395932494991835008361992907725060556690304101411702826496237055180222174903055045073193595608296147044706021399337761379000019486049323112876997116606500700294100965524275537177624052662537972238360767964376039890733086732179517751777878943681221791171111134576693660643190938519860257544495218589360051816471374424483780998887214261341941130934839783186640797714525330726133334571464043337272484339900974726786908649845051441695263368201953984420078046244630522385868602347730244971849848617022332886786989252897601119589823371604330554255683127285485010081898402465093820663007739161304067364978535444148393713225858934406444156185203271356376163554049411759273306323396380077516734683900300296813288612352823412618292748954668341440760746305401648282935605572891356316935735054525648136804912180526854499291415821801250299451724737612362138326946573417287776883818609459433994211177600142571926379237286218434070088894924317222446925412213659792548269215936551287651548700720439809648964482602225735122726877701786157718537817034390615795912517195971383164681848200472315280388855719920801269920982290439095013234319577516810293799653962261326176075906511414540086290281894616979625114567108680686294507657441631952417349123309000882857551659777485081993140022406310183547201470536610548060243809268717797822316928004112818805314032764023363056271661859240803524158559314964314635801295126702240857670262093313341917936986173207443938174354423762341349079128847795438976133199992449048955826939371355719051467194329147959078263146219236448429543424860234210642200695005527496278598460963666509003755090730814773156132499493524816543421545613571000167063227347919132194133716484052686897626525765346433701667682068044105012951248738721607213671058164248750198077126883080110914108867066759289334873659032274948629407123654399950531697319738353852919213014470808808171733428675077793994658061710709359307764971359685726551282605426091125334332698475865267267080360188012140561252513404873863211207108624164634864747588434045922106806371727246564211539250341205279928086262654513290138398682336931093092472747369464492369163181217464121576333047873268267545560064770523287687851126802137360037240194862770155948347211238028363920441007098959446232317165003479596431450411377285688612219526490780542206581455624832198176538629723091278034642298764473498822829821207289233851035250872796749347427791411389821030390660698348628546813658695310499302877025388862510573224494272355961618463183995666345734449741898521098753112545570632148570167136030769955318063059248278878547618549269755821606970333605097243085556653596785538435020224120733108426155205815262988200347048142509288141819447338234794845018373671444349273582964516814671278659065462296573926113127197218971002255165094184473949667158572379043071597846919455294045786945583948772309538249096509308748512143458363668014886290001334164214141833010266561809363397286563076689134829651458950153495701128873465964727043190251532099698201106243805500364510440379612285188184240115277655004883172100624857300388191348625273518209987600996489191129657567246593543943650529094713136348626251755401601876926182121275722145313763377340833372189437033589111188117418826393836418483693639639168504313081368685905988520489025498679213268613514077272413320528817602472925841499063641152115060794599195649410493777656148613243198842046039017371187343254329869319222543140435236560559639007806819626768827882547036622655791267896875508663652182904613874699612324101383053300528234192853763833743438316791566204221004926180831526665772636315698430490636371699026641725520006314953196349751865645800775325976551595852428971595263745635401988227199913096098087501197701575415965085838868831616619121099206709868270777310620371999987583362912044795629982585964752897491941269058062176361441084718902192525437947333028831937779067680944542825026487490713648529851469975718645722449845429229904489308944146378171899888064625413417873278700461535730859955597678011217877314817205207050653640479185069550107139478216394015650982850008395790306361143548310602014950090100180682872287493134040159037856155169492482826351862969670948156617357027155791860256085367740062084406295821530115257705349801158519499822871426450422198015778307642737809749681944307787096133263469538179202685588283770990523101192803623211258724652470681871812061035338976935725325333871044442643461852318204902663891444611071063381198326489741362314881829512551519233586821987904636509673805502666158012938770467088733284370332158776923805091514818813065622644778503518272726828188420112260906507920324218493482321030579546638181826152559465767828045049707482594712316467975528787245343437210709218830557374613417257798264571672499721415363324442980882603591552072329054049026982803113957933366332801872621107761416433419982618293277070354951189630181110648172239560629060691903987955221750740148137662349820267342079570031505566691400963260135542696538768996421396375004041149095952277251465174198174307003903097565931499888899434858463954242689641911988091392051558006656927696618222101467206937870962418247768381701340244514550071845623182086584253694777744610286679090758336765645792472021033302097234172029232312982728155846332344732639435381397405622056798975555587819464043808070553066434076301216831389000576128830620274606902433680935268938388555043610786971535365817164882910292334258192270360025950109352070209374331378478299256008325748492127576946089442366343674269994575267499230562423507637075026388961185140460573590539660498740519514624932126523763428316827806929766375449469530536834405616722891393049276373803775086382902913260046786854192641034402832877733464060450784066319691490617323985640710426440253183257849428932271801454881830841150067171086276466476964309093909506063032923515603765253141349001675475131234000165447850465856140626769143768711869775178950941820740275782721225912188521254770199878041391455656023072942638804870506227274510554246820160938541867873696385114650964993668544601808608593756684720737116040815310338420419978746824291910877166050205732868450579924621673033706104027704579332203311951613948006402735855992889679512609542657807068644835760612846463923254842010328569294423822876255547752431348309738621003021366409700619211903488283266727741277874360914878892116731862575516831573604268052119884294347150469384375083112831051696877608148935211491777746173226472236204860186098998878195031834094907210156338720428040406220077299654136793419621137728487511587874754725591679863345534679871952313066371603876246266084187729298884922976606204906392793317683670086000356680072563904299147863926205518168107848455097055464318595213733413697820207376953046608491912239108645326030175181121258052236227827290945967280389928799855819648347496977775534867848973044177880020353636294699974546960092613799761426268533030622787270041355520645407868936282059758726577733901861318208974496646256372325277958812100579118684432544855547677484965135153359738909730754711173017945048800954025312969297963512947016405436060096694214235428213611454987401937767640515548375474438147084672403573309290397223983664893870443776444248911208011253630719571575667704870754919476310506038062509581516224815437108705677309909640543840114625066339027447174886779724205530619970268428039267640753256451123977819696872296298706524593334300642947172826634545519768914802213451856526798994144748484119017313239470742207332931541504353429255845016923137955230946897374608427020592390595955572371780850010772204397428002255750691659031447367903146624326859946429802822631802988124284274024540081179110256367196810996959435421959255263659109853973398392523657434928111865200009846683215436326221034406135279209735872610614489228700369232876318014379936538690887243329374783262475429690439310203824458069998760158954943438729513170253411707974336654730206176904964432585081640094311127942421722981664781619130920055124912882877393823425784617393364133566298475484298407730266660739637802333068483024518375347989231237211689520558061070692928133399792970295049510810965881132721817890591051798331100182470545029770973868424392111732784057814890076093076443127618354516466876579824233642970614672246878840052618478917177746407665715531597622346266468396695564605457334744135255902223009795091028917363412104867604633830740945654642776376176198457646110828909849893711812590760804804079676381822102081528755580111193809786808321857668842465915007750873009462071984548858445068085980957421930461673112764321925370650582309947561261540877752350668245400000460057569562747074653978942855810218571741930567717946373097790283030344727762599052076165633470370740932812679181202816721660006783840354694183770091151538161902667956444470363029158672751116251335992242792341689153185030005798731844728320871081287392989299855199540771086310618821812593381233377480417727328720906594429016364361606902531698322498321733566957997711238739655360383321980530064544904075877891349239783516551723100236844591714876234092727183992669940306080709650773250872949690166985513526560385709566263058126807003957720727819541234071063029078587155565564107977875952563034997173762820007536306836713333737437192964546403385379172358759535531353483983008392069979199927802009091270212137800365475799621977642167283536314285744277950548640408052600689998204246058554379405133383027360526447729224831788344663284297722103784386594697843881356571890054599135865012525350681676455517355266692035726907791595157829211715490826163793656563905672741486860445334634337595291836321357403399253483908729049749511249029968497391459733940016909062833401059727155033466903628677328991419735679601334988705609759754737851134197573373439013810768972403415590126002651816359465420802992875406532149498498380873402644042234817880795094473832160101045665932707335736647580868922045604978475894922479063651929524893389610286657198970261132237669784792407753219370689154169053570377086277536140980164296866695979187112183674397087830141373794207750024953295874517229342276678546453697686735640996018450103902869084547699164481983251492818724945260370393352316769119859855152451316874580686065838435522457291222414651020824888522333421155902817709746214699015531359905115262821409688522980718698030551708150437125834261521171955528335593228862265087569809699074305580192698039604385195496485811959675359219367996657084444467388358995872080926855079657382585838012379836733340095165515533364527567628226424466297091877673183129629379981931598055050296121513684019873776371874731485618985617696232465990494307374018327488657166967946173279209582105704776023863846101771970807962201437070530243287685224397355719948444198930166413644935529254713336852274953089865957750853945364425053535534782252449168784246527134869787817557916457883915023745127812730537114658361516068889944764792603436941770165522053971502189041487574070123713951467038849024980944353061600187140452786470206713512392354369755445773345068486816257491342057625908501092827494846737557201227093861672361551567908252143516000201175688301253480681084171744540307974755876018317969943114938103545387792931785316562702692987903462775798573712132337342485339964966707361788296010635549075987593811978545401235327744042099227112387677639015047049895911650083180787744844650319172743605961846924725716857243021744307768463671018324344456666538366829149467706840490433609199710748128218617552994237392601487798126342128874691195389353167776176590484642584864005215810438938757042828953429781939924267280958334933291093619552768315718308397217507322652030546318031396436301637647657328005558054655426670954648929098643758008529180587243943514899859894071844867590973690148915149236567442079791429931915242299657705653144989329613351935535822186138175160070563977443641879535491840661104755962177603411110965712778884810175494984163773200691768657269232506406215424190287178929453092204801613884041209116623314234703484138410084353778461606591517156512098905701879916419726782088623794728710824340695742282207873632995991024853850342046536738838179112110504097847825223104823269537846901704214601806141053182001713423981962731162491993752568573521846101510037444309262730046435404518079510530148730651140340007070413099926308513518194262493304703463738195980502009525256096476364608051161287716029090683460924464067288393181152988302270815375051566242268022937026458308041105602970664780650555567240360037775792222560812976840941450248586300537878639433178481568527546989409633738856726218264192892088535447997746955742465832863876711824809013861686092343100758846831566718854654000984626096969658422780555280263634970589353359528568450438013828508212873052358410913008026004477096530540538540743621131804162317836504998721943750393538531049149113249834876654228463139857936821672311790304259125743553376624738606952753363947013954720608283818199113864000738155464032165964165335887849353274467855941216611971061814618090464237390389309022087256368793246920974359259449943192136532952045525657560975181768543101860432548319115329762487967749040616438235182839945831460513230142957270842233705449205954860818056105559085056286724098437549484103502649012725698876040771287969342135091202333967702280788616316242562537188342228174200834413875659992716328492097852054076531357735234848877038366094547596945104211488364197253514272312346339361528773278844173367366904812954885525899800411188507081984313376595376092931058864428509738821827869681642841028342991390311200094651490964612553829405525966406933226241378500798555844783151639852584605036519769813543996214264514375420965615441031987210574900420838310878638123516695032709087279357046140833573450333339867392306190921311352507176633540701715413634375359954623625808872248031499817567076676421541741275049246745951468247602924150604369431115018328813165662090541350043132277972411975846592396318580424899061584539927904292364949214044778258537758271955419902295591552498890850642665585891204434437964776264605708991754823884816997759556597204758187045176465211584967250002132733380659557702821044587400228812230614927015659419122741592448835949580708627639492343773646146818190889167405698391242236938674959100658885836269044006013001384513277496530177016369327728034848543950095225768481321053599941214827049680617570566131564853104779751638722873765619849304197832874508039766472600051295273854194172190063757149020321185962307927990374625111599927812906453521256224863358245000127026608570814665000834732058685381608541982642702425484447929576175420648971250716320579535128963684183893792865989932469009199615312939286338660621545460917724379782664609779944740349330001034424510040244904003060209167831963619611461640594315595630829598959957123795179170557723073199018311507394042099296594385013389732049943773964050242254787608672308957558270438069945623175978296780807636673831502251332496003552800752600986258294566584282634844026476943718817559329212712915575369344730448026182897797371735102101523941861985427313930800752847272597439353181016893342393856424680214381512260308657659418999804177297052001426125519725686067135962045545365193900693182058203243139871397334474142135325372243348250503119362314430361314644558889804191005378953408247315979222398854508922081993968371307181551806247540646012514227402261525297608519269403944159228740852457777861215413854199759638363847608169818436620006913092140494883349491970561041984537382066844647728308568716952784580860315980021805013888227646745566078484504903586298054650888949811053301565528682318905173184839945656239863930228848015923966909465214918517827238483068054223571035069557338217000478322382894504152808657604227253074285575828380140890021529118991362633181414750909518720309541713416085465020228106474217133960106822810883290675883210793896193178096560897432320022507995377216073794025086833789531218108510320049307681689017424104290039827285651016228995198506406936657219111139794414152028973327893794764433942609614498256231155337736149939050239911506144291864627010193007118147119260831103662672652851383830668554572364273068163900709369877695712793368850637981172816024421702708231253140180765621004910044368487237827107219640109035438206153535667290292932726392340471078919277117949395452955663181121882641697396977991317245236125985984994899271146523538296603131000559848107790735076492414619912890683504953250592520570934543466541099590924850944118954178413175353032233660435640056582718607442796768796624331913933219173136092176557503798042446495188391226027733587188808872697627142574037851909430159159541863772052792638283692366480715214236899486584001023298884906570053676403211321898913642934670420032519025062903677823078980520155526768694942851071248817692318075155633261613712995407008173661796961848445177186193462811218332765437934632460748570885995562652134014427031624351140472454747522656110576990549358763438352701636084134643223392221892916388418288722321424993291191850823016311213524757681050651982522727431464013654180101904052680070235054248562882057570231572614777458664137174890224568213180174986019814215619134372376206985060648038831783367827397031438469897625604998179952041664862672499499561081064349540965671998799997081888792551421543420615890832584969842156957244570222660205694456249515518477987856619230438294743631128704130443241313873470062497967369906404636696992667798495788515964364802327713588889303555381663564256125549368596590306160284912208919521129129932391100259101672891370434525461100349769134922615214335073555928739172509768188733856548176834319872199784051051135173614712055044802645090639950462285588208216878383646085938117471342255434591687815552575961395184856265961875344380352738325871760408147950449411981376651114058404306344039267337107539024099947786620885971586027243999726417553029460726409427054742625908460184562335768900892553972510889900106739852262645797858041887982733507070504063614261000787032844304664258159707619847337885054830746161175713947122395560821393813458499669413110777308716414098811535349028598289577310562010031168579284846884475080561707971721798852330906989102247925179933885242753736144945659176926126437703487474826851990754362332063055145357427313410632194990970639200018561594799271430564045434993442204339914392573143093270347092724600525188792618587959564279496688815174233317467266824411818618470158793872002271011721451305458678551694829490954831939326751810160537762783080701952758199304854194084063207633590194887216739960280893450328695083034459229795205109402951888528478949313620154273037328498763911236422545441072577084321293495370643527099500472392264673843934642213892065857674698866059405146850782408853509227748494251803748818287136717613858243974727187414194273916001740842710541438742770027637248558032447220987614448714558422410456624364783059993213724800569546569165642934118245005862504591519268951789550169353936436500568709410756326292540341991457527705917847958808578519622852522785863709750901738652695292971877834200708570598043745170911273263657111294563529770081418180169848082127265240314066744730813146418392209390274902737665881791612087200416009823257564378265594814272907333486246081007825941572163266317438563996690714777237671156934031152688169338620757665154031131794544519034035531859587278662996566985574953342515224841257131822587048963145116361923241694749290289932737684230849868541762795105337775195315156209165601769530644332573876503998963497589725019716633872845564979348129084479987383924706955915834671634542408991182490502958110118110366145986258438512050718084347101719671831109663129154808297173253315799745573788067801152618172884204012164605072726033241120950230129753747810422197878061005206888577963510665497287691111941747925242478472836123527025746881078011319058794027700359105128723562230919464117195424965932746123745553306689532760550984889788155048552309847208838110439921916426860884953280106899607658105885810748222468540160845684762263591906712575179567881038712118638901654598697135450512446861775124629362650493572060904894247059816798497146701069860133503939514673857768690591376948550397976879746940345989496833345019458559219131274782259869243212612903202383302848399424997655846721360800801857761682716785087673628114482624745633763201068705178652846687486617016900665246530686749252750045200566978045797879358892130706453709978307586158730861666469251614208368631716829241354315024865781100702523390181240823609955627760645950743506090212414845282692749201146489737315217032119427475539606391494220981363455068648842152576004422512020024057648097828105595332551051631227400111655606559259071063058571219434876463774740702919894813145771180914087460363722686398527309927053229045105621063112436870328504172295891370214275957166470329131584762398685568146745727373247109735890207710622612963799050259135324478042119109578885760491215763776313073199339639475725900292916770440236717585728543330780124999253901158152367227070577496824541808319648750870655636761346256974391948353677688898902401629206736077484715367191281395217090518181917041631078261199888029460679441308357399426373628997938520585043289919966659151949855091172592338960010417278465618263131864437229175432063330332745767940402167053460697775606794216621149898581730417317920957543668137287807383971923676352111977175469670921705198529838395900065210468013911015054841085686919596643101400974649724929369970255564201096314539302896243920454978055885611947461147436930932760521695382844292805116972104425158108426632917073033186002087695490044890690218459865851967102680866016149443423007147997126895708745038663258372995888703697154033549571329957490069987498890022054711843782456181060818144792488706966376849908538875381777595097509666167561666666452339073427277159597080352646019425450764168361712913820948030357721012815843726099856203547023394978093996274930532448030059973591534086993097966726905891927792057649869748418853385671412952845557673066653895679894493592521032183578602056191609254707882122075620566258433198402080313660062808944153898739797791171326491361882803099187269507743529783095595177314033615000759843161985858555599912322120490855882366815066211034445176473600890548161531116137060654152238880423591737566527529391098878386658544782983243897665076042093121255508073630054877225959024291345617589200782465726184854231178391552649342458860557636185154004032554215285732831115691888486248588131541368115091328697331070302519578203506414237742071212834484592539357663467084235346093928168072668374979735790361802599051304364721541706706214710193298379034694563658320818609010780013693021230446744036815139676716651808884202631363015218615186986292982365955661760833049024825410130744830296270148787107725532011921279955495131156694991026871750511478736055880323327108867611020747669647205740542799621020949678620221471388206065943680959746904459105093843413430041462116426930462016453544668441148101035813324271613300363952580457935446962015908138996011582776601800586830160250636101993350201111253641113264384450695151547693781030211099790317854950870448599578483253560334798331265534377419243002518722213826679804992382358775442812654038001718390150003960502105969821414621288495429036206477219315195239617261101491606069613546962380716684161704802311024941187018017434766093192633823763293193105209148979222519090757738256242436034341721057306904827216665758681205414564448633416284995261907841946822508500893439579172506596227504575964147612013893384351532264326152559152973181291126699332065501147430845738129693924070618285656947032654153717430559667074273647271540792998894368350284397267572248560140056325098021863355515190642589095110609013075305616396254122259591791418023174204078399359480778543853671397818018145071819268456997520001467069963097909388213141416727652814875849805693655830408987242004566968874521569014271297672206779099762410553042641106936589548872608178697558319400887696671573761564051485687950232619497637544011581515307950639741623736988130319305442886180967205148922244237804880620654158206787159279620549298093615560327813724406439502262507152539024737134407976558448689372226031521615572108569008352727155324957652800914641557947363539437483620330644182727106380837778283218077370352292944697147623708226551617241861094606469703933790836431624748632675310985587681099121901740831910080231645771240019571756933722102243821092592814902764592636999079364366824027045227605378129876195273527107856651499251287764272123625766850816742501266341783052820275986353497112804281204184822718240468725959078077010587118859864691515350237455238202483750603368278311799124822473714520387281995918983669292606549790452648571502922984407262291299250236115105998789475080420211891411430662729442088032884051131275346983077242774677500092699988947762068963815927696731456359121812044885655561829421178379615877472695431515126273396058032017840364082810338616386764986162202303953282188362113816161645289054641032152310631625333842432112922701765172123387188585691936943335822902076540621959031055280703901274465255166992404269338564016760131058110333033854678325681153942122285111790697332695461957721850975224139196094362484521071943389027312135875846723956909052028184389872578418053139033264578250915621985050463432801674792962228134243398368058390987142844462627344710290999324342786017281007566013140007911464495033259951524979056213889027984086224812839667267046692628462633386997648065058382602428547840278470797894530487846430997542060813522941787005915578988154433512983004693130092791446326444471280222527859170889868772819726656622462753654494286327210326568536039015512101522976914735968792167220046135387853349127535594751583962198690379869320991485227568112569601623658509070587018199997498763949064473433342486664541711565751965806608301729246723959728537470005888207480527718762764502992105235091041975250759623140323311325893140035326646125537755984798280099315070840846434848407322993399044367275475540509612482907293427318452279976823975671734402042030807845582232158363376447075226871173582153977369254316140249736077687718880581325570132315843937409901435496031110369066318299618060367589602848376939729686249618471675739675187773239082783216029207781920044272058289025051504038134151847351161881590402424513221990784307399105984642635273571035991315887267890334936795980299164079167822862852584829308368584726421761056974160418843994702752852716672965372141232725721956774610093039048886641911533462993569954734938092090518434579454801035838028413004932072503744581751616122133765249303559249968994299650557928710293057111484299087281948736941392978836998619452151378884520910768548637275302695519373624043066475631234103992136935017903587333677667983112546450605808465898827267789829424858161307631301008403760565962164255668969932367942936910715594867163590445597770853577413478335185995884295394493807399266422808668452427633448184685634383987356941347408833479909447192041273056612106810827520123898081139821243822902249153606625022345860370492002355953622124364619012891920854212054785942313498539207205525427136534997135751563080993729345092438162815544848150518814930532679464451284581722044102795626196513505762256735365023498604671686825360508163739472099224763093802961416064082235065937174373772277643648031120377181267279844515989572797399112196644644856524718519244807315365127028106483561677669681358240621636261479023508412922751184763851784104001760706554563220036073336998123749381904490221924013831232717365647000774712390307820705479900648570899922738135320765269298873057048071276210002401245873570219993247255632735330427307203465546071764944944000492475786359985782088231324929501911450808572285313681595917312269669838473628450830546235757957191773777973562867216367676976869816775502107315483896242914870304345732426004839038426904529096915868479382661952840950470307019342862564263083971717260764059661099689704173302118513275279064428685111202716761295623461341459167042288473705154658913763954237931310622350155256631141619980298982248306115381399762827352080362739815917917577668543591069580278327996567737768373301827273790533923877685180129767807539436529787483284961399624013231660851257474420601362489680071846464412850833951765562892498126661712346363021176465352097641240156259750922913140534166194048887840766530097817163348470543251380581582087165120840049166733725070729693996932036015852820995089164813212581512923174542615713879028141113563090331413326964005618985650023172281327123355788843830576164394767194060663167673264474054612450720305702289133934856942027513236435203724426485184039132032919216369805203820907961048768464266176883639522345902314595471007951311094212577438966472484031672793094501776075292049884563207318846725339388840445105048286190937680437313398464944238077331071355714746730998128247127824264930286685032915246534196928866099715040973931743268563895845863945261274158110551454549850456801428529763235060852843642578596443489184234515349545529339694229370323717372059013106092894814790178570718225055428384435851014098105437751721365794079972176735610326807862477056977613293583738045786096868745367907637677674909771284698300619444872691972826358913021785857159116826252510541524059967215821189981300057102822739188998265593072641493421450191384483994512399535951513149823972407442214638575115015164197589741449411119950175117268986119974252183300853638725515038446222093859841771049935769370073515204334224121288437580591916647183270583222387736564535342576496705608776522710541898786397629612669958724557754376691553039973961482081547893968388844208841244260848757588845477109469184100156329681852508843745716253797759345830470069844137899519231700048121026666058406814144839632450797619480423251401187215387853947247814315375257594181489769436966810617151550830102671611430380079635102337585715730576184141510513937489867860494985761222077491298060267604440110320566815926621175813971028957860538252253592706195658948331654032753465519567818874709645274414674079427635187037901648412939129464730773081649851948394501206986861556194944957669677851229254436876050325707581896127460527167578891396436820735100026516393022079851733422149517911647266749868549187920366802662580091520432004102676099649675042515833758037388614559204231751295831338407258233264970719129196256269637047705142226683025993756130949503282999577547215396767724831590679813234109034726077568897630565219019089132374721420184581890688773091673649231386946683406553017826593235546103141997672619643954702115595500349469614437727752934180597444090849976498490772362260021877899337989902616944741846604930481751778274004365907493745627195296058272534603631104637902917198913392545214016489947014046055672673980641080686031158426788967519998629887214929549897791356617895975271284190347064138960663490836819180462227188609836841087235431458717274601872688907899185687798182088667094991470033486261270262488931800668633707239544779465721960099795404597401867586154214124345068910406519830993702360193572121162312448386706600136963748011414135172784759187404771209924445910544411212642534674459135614484127455082433974227102006035437924231571056461819100605617985662229290668216077363820128135607024002881026443986382077285428851213688656342663211825857933908223229605128175994303391060105814900087126087760116712873465820397469937410589938280005863097096996173866491743542302951656535039201849904857080209138059337264361205849037762405539484970378419974032381863431476575020821139257257774956142217440706196148420910552763935155213637059768419447885440330950697211564005077953728128613819118312299762291620562876290854808624924676680477509818754484871932747358027441683893698729744136354200509746042539742243725186834027480368128491113782719605522700159139984027338681201201537938959094391384138802960192159868726926318643270080248497010891511452493184004949802503720070556107543939716618814404544505958002144632164672461517226980114357552942349629871778025027327775977166859888937604315864018075097330018590408690222825946737002620161162928731183164119457607599281114450913659033613511408039923274907427018622090321563009045170877111024746396864898208185044228895694217064495748944843702533821953764631668361033593822133651552871656265142944795591335091122533476708166347617613526195875842748916919252557512265947821912153387659674889457679218314092412525038337432962292395918799128388648340634078554196371826481277281699643944858883293202960334143062271864416133433821900851918921587980174894057705912667164889003953196745068287540616953146113514817758774216001640571557869463995581279238147377170260469721598393464556462730856185285813238351852960891302679468883955311683270344829373411413472337093106921242714150579421060418840445549182595053481326820919175775747995436080965692364300791744167338843032335967411415811974507270893381242457479266024080142690887137883750383852460163923204185759563932118756944260687989182923563858190489455417006504263077755851192495962579787082000528557920578753368737847170465642498989164328181854992124288483567217079238520985257249941128498611160051755779453726982893790830023868843239534739678477631783191023019479294397289303594341090707378066220635198899485895932906269356022977074576429518423890269587418966520759508534474336980607581191670593989379294043068892358969289222943015943222595952174213759177479595401242586395206880545423927767763253536397624975103828802530075410893417044022865037744095857440839095806462269758666791942389669407447202409044376198472371428990437845640584413311589612351279337464271975879213992740211247189067606622161540816715787151662976920088537558700149163964677487700138538586167309889403502543115380776833920961284171090157797148821762507838978781258685951728113697303627769892733810688534817750652780121992377669132356938740552873817575417517521829746993505101665131869480305337919669198174943799779918386419453311728016545214912139485220083936327612243902176566122059331331610535784950249896052504475575791938844340876775486650030115603098174731996832384729173035034343170758597542155954891981436308478044294794363166862547356042754510080529670727242728858671799930785835130298709608182565495683252636868536559182636767494602503477359655174198885885140844557778012926906011764561799208640627849434567370102133329793924588090412145844740676376973686208518545905682832186871306484993036980163096372712485553357457444566854394091798489285129317897292189745421150140665827084206940698403306814703869392487269337232648721451321626618282938922561452150479550255441456018566702822413243781285473517219805626916447560217181793233685095653412685989444116837688468349794616581255553690452842719843799112046083585700064977907451056772192402547481643546616180199955217947093534516379500959003968741892712088150974660725171120866867320719038090935268550848164982923237935354813708982918945478620115950774079671441308336219883518815965936311001425909720234721072493641438771803334952094668428625601650776443949485798672490538226706080047599336604789140280292899857073471889354609993158792465714254267632953990793759214872701105529228273011154796723152505960016769758929088439574651386287186616610988620811996918487674774450011541719594840303591597052264542340355713624050730582107588012516854295437081507229937355089748827327599314230316060404631078067227574824059566096277539163186449683520138183494750976397213006196910630830312918634707335849944260585060669435793190183143981109968837690312484436895334327839185358898152888269888927624590160388858155810615023127415483024899508121064221571107588280732151440308861006140480173212855770688773688796799979842970333128791318103442286798605571948106289121467611589197844362129214341623495131573154687469679810730198168697887652323164973247448337330455292455703804465423819522898151531778852460750922580727542525766485139476806701792694901446114915297944555592800041985518120658652361615952633134769308793897474573578582453792293552523514300421873294779771937760249381578522724727542007103131595343020673162326843860720750844263624138616167063760587743595390457740420004555356129069972890443241459517167726055186777421797969460907725188914523141684888618392271591530000221547690471612673612565512192236351025742332482702502916115474054180911035021443094737953453734387467436815777773030010645968562911338087720210373612747322830556874792481556873266751561352362689715247133560049937137827782648771414254028530536436065623563953136332850613280168272766077374931544966484802227118694576160161316888632903022458612656324393968446077180421029594282544518737718839841159184276086392744310341404463229282092759108336600545976319493212555888014790512322934879518655068995891663461595721679209557564662816938393017130223928377965696047033222661489982421338902567904642555745437176856785318790983507323625726671710091463410922415267978401087573382146769683786116267562220357443730477508645577014809651011000710880701509371380719509297744172859745498033430122089303981126635506357751359832334891245866195405155438683477521347726578840765235043916716463023774655940440616317919778437244087097144831187760732642252012742770711222596437430235464903137831462802095977253052297222930194501415397330613552021277427131873133748123389308778381837339677867934653811409940353601212750937844750763662500607566774155238854436132523381372140658495228116958585568694517440060783254463320983859135838730428261898599668865779261737216551496585904782833308940306730313445102967719177848228561311041610401087725494549831906454405395309041930831030210210314485277054752959901101425848072499561116609278251532285018640997511990248160629520402264951349948195921051387150212385467442996937379133191188252217095650577328628651449936181104300284457340267040294371706168764881130622004374668180131271196714059119606279321671754439385789339357501247361710676899525257454643625454772276776414249453968173658351675624694281167351095135364065324762839542834199614598896780091091520691131408667465854394635823199205324010109517557923761080710383753152651418967013632574642912453405175535849537554666298960624095445217452543267622903819159843963894161670678542733612975197785856923756819234659672696284623960144148768354859297013621149718239067359061463232009086032450452348719844177143564791405763545807902848818066191925154695630471680213423919423237809297203948304298208203928736438117855537186091846936682162462854308576481567535489669128304134769838576198537836797327742263878673392906410807761015969812568251167460620912794691091828572391714444801782181492465391059177635416676774616728979408773476048538847912797499018764732216528831308909250923273829282172948693304419665132419228099438931028907096788321275199999811291513797569975799847658869908544317313703132484427905412526036668169907468106892203657101158976001548783601825020302866813782892923002696017798374195344634189275957731900099601652684126732113386961214265401314413437535838678511445602766356692651947383273120513245635653986136018397936623768917758355813503225323032426320367363585952350411258796955564538137105464195373200908316841189345141278929059557477329415315866447831477968429811128901817220268975299940662473920500652056605426160091594443209243007965053322714716328280087789072298889730328442302349937135295709618527530420280769518841346592285103017090487767100249086440627849136263450091491390241459662675509279538335407250173174528854341884135715952094807537748375354608883416245036608468377417011224432489075158892736485826745556324104390275512890536365971895577185109185724933435129051485464533683283945790162368750900452211982944843929100516664861515959883560416296722819064627507181432239240882076991247619629341157652844970825430268320628206472494866373817607458773427697975472683613682695165434366234595101825574202457761246183733586313562819481461693200591397556882812220834897415694641735525636469723080227990222932811096869201390618081431860914472134047332941111511508376781670836237956882978808274454337963744092049047136570255227013138534805113478564511544030959931805841235162111234874995780238240007204121481154397012387152208692345280563863491541560281668333926190420321369652703192763501418598127807866737753949377706335421661324144183732691799228480011335351054623991065661961688369865570709044802819811804645286945840778626478092814378313278995079014182748941412153698500754560767947984559339200164649777538874169544253688563431698724398309242095144272581569717293732660916624372030406603756644565188018601743969690519256063184110563022026148721587794326215614715813004939463646117042766532795131533191373008715090941953770822807121009277542862345009894033878037758934739944020763967461667142911024739174266204377937216427162142746513082039996918854030888299668856495654067995945137799933925830139091794834262908542779748882641339632086381832549730641223450346769207699721671469328796215385326482004324834128203380482186312970305564179614435219734559309260737787108101129169755422650271576265773871623213310830812750353378807378997933539304063054846986070649743844809463154619154167959640852500954313862133369968654717466383214749863298361733321446890224157697173682947780547341821023221410478698860166651687494103239516521105521539517765785371306254295299957612442559267066223320934702164905283435857628252785277833011077033416128959795291066098965296081673607999433373987349318865429155222481848347703324671972803972884897895025809395115613944580058403814164366113562886807214628719245915648348485109317908569934047554486818615014741809953990535882015581494253145636730492104141323913615346331313886137094426870324648544521368893300788827661407832641490991423231209158698431978445969285478759058834386421573415429972239679983986739813353026053128187973648905676926609664900092042589807798074012233805080146801442181234188873258978763092865490519788377168236424948187251809743055200853196700923877727877407175648616748400206181877215728086959703472836404853710466793234196461780470912946238832954083960408677741894509932632389221892968510360658673086032068506830180348392693273910265306721013952403698228884455240361717321244215618577712042970590541303110871069384158952419910725446494213481505339122709752853707519748437529758176211547335548415674394366022467388768684387620659498322769737464919502090601454482515939600693383680559932625081498518545320959946157533419586886434584511644876006498577057767310543764885869946092078914376687103549708298405082132241438868414870264837740444941088036394425392349435086377104063704513579354130520394939821941413468864278231940676931982325271346700263337458355517190831619592269226989947328626807778250025071426642679971870592555468402197644968630109186397450230202075728975710291780067695308774521158132676354945194126425692113803781430399829313031886665928113465935174690632524722973543423330154615064949928874729224150990641811128460311246975286963162021710169315317982765594831341736461485981112460119973391654196415826639391427916806343313643834053673903988901484534627229588206275523168536216140384583530285494556731393710523631426879919778434785849963024520155497460011329132068960554885167960885899519743585214215255990021652746630818611082202127521887493798785190775924039418858424428455069435257053271666532333787483409975433071648124622360569162524482828264797042685808038399573632306445286067795542028263274706463607497430949040365367141970012318177612690209841585380651423745758150805426321208816095052455697098859903086635299779419433978923617389329906650487943289197046264403339216218112710953483720149833587857348350202518999709734212278492280495850870567871864355979987833855847358733966932715358908786632441740441249798357225301085363456306354524048167073531736394006459805898477547869268659881078604848650337628996813239637240793543131156124522986627835552022963931257936190076379558568605930992405744931575118434566288743837619109095689870941573362601245048117103680576751976797039391289234944862503208796224286605999960594093196588857876402824180482689628627835612009308817784466506490482017640037209162020375198850047996390611831750611093245883981832506643338468169230690210079515564835951051212942268406566525400115425853498141407831358137244088222853756002864521065590007057936308011890020297137123896784337195952907990573853579991533555542136162401604713209605687086614607553340336600126237083297110778249855055561199442688423307072794641936836407041403901099900033535794827290561436180450054707003338114484889429956668574388314930169934140501723595196684780238729060954695324368171262155137837154698674372913893809694160572563620521223138854654524293096292736873052106839131634302742188552984173136842316719676597384506470165592310245152883671137353947168419967627271578788830672386977754154870861604060196250377693880941373721839384300541128335641106577178046448454283231933589149819624547588571617111285226480041855277400999380982032609586457785895365293278659641757316638469190782317671562669530589658327324382418413639699001980236256238543099438697727516118232108142421350493618855626173087860422599894527022931706552226198698030219470459469908188755962800878179820542277140766233823608762995571852728333840332269313468013550812388832552091290554790290743681966232377402390516614071929933896313240700444745823714725880208876469795797774645681420770468602146751579216755679226238289944557589843915994650503548656155782516489755678856236817827494731823484437672374805655134146518101322043688272420173807492332349053051924082770756171842322906875192393966457330846106142966305954473487124461748547401119951324350535647157739887401075142034876799787570576527252712497050020208426815118255188966541351382295487726103413456263783540187361635945989405908079501356379441266992907260645754686001094318102287477323673101855104370816861914595567032456140194151301873567454449021768712360143242558149446443125396990446879365461873836279835364129597812739685270239684667808884841424576271837247678631023756033077695040336184074153627364527766234534350380589278324012504787227162999114226422005817123917424644422888389034459658502658905936504068940068330902090804662573351476972458393203252079140280370705239812119482531174716688517020195201075212433445995599974719060291408222652771752097597711120041521277241246584708096059481598065053311643382218925697184254172181421730753898461465369941381983051337362287178145138329688465514581119379617814399841352081395923222429069655957106141145248947970055094462435338546312567061159850223771487904065981036247439498272767321625151913934192448676504480811998204474989747275149528241297607414884619057987255654205240844441276575291089719757025476367638433973192081654854486005233408686764773492294698937033806275520492074940700424045385160185060409231641414869832014159922709503357216216915356426271514507801163449758608302450331561006347350729311680491727697862438420237121932941783146295830674137180551460253816518971556018413951763047794535091809075448505418166718631548021128441055706889334493495318409321986609854298432632992765340796471545643294755014121676895059300541698791972838811444168372378174035663929388875120797529430864786005021621315923516933863782257149675860301672661703483663775981589857063994312455032705176726053533998171734800368435028613252834698486442596335644415550002791333000322672829645403491794723569857763625963966262234625677085281349993516437429881835324251766854357334870280286157508405279295445784060525881580936609480068612988063442571201007727077837875696658982972305400165197643345481624427432767039345334009482749203765132710121357481159891196900111606939633760577914996317660997885664648781001399430555400289350795984247948836820348578695705111572031328110995213949588406581248813087023683235033329817582987889928127253615073785304787191167770474945201887071697246451268271020306368068544367370429465924761577115644524685207979345802876164320293187033165004948865536326090303909377194690121616683253735393767772935744601316670453241394061516309889639095045322519005036191406572373171719985911106381577290810350609433385283575066175894430459849090475536490013434068001212674128978919564990793181904023295931931517772702942609227777023072073013539112247357724799589529575696912516275183072448108798112113330133562101888733227113343042535583338704774772165265783922531698654372690948504238318925420323540836795048167661897660484264881553709819625328209764776331568295582391498710077661371358995013695713530959581534041353637044191975249267805225081822094134861647191324252033545467147190622520351761250756575104143129817672249244339855170873632144077183884248135319063269402378434772351205690437946023632196940606677081381608705943270944248852679979183192317357033747708810884573884878671916102883214115722383152665727110156327853826138675367020710708375569655469337288416417884866222850728459207237035960709706952322984794467271615528611028209987743088574368251227271208165742666485250612602656239871157341890840110331036218650317594936584258203811919497974506217063895924525283046304565479363104820827514921458947668906997829202698867170412987952890605257080949448585385225664906515672748689752627496806356561075318194163484297764301050643377546225982480463808480973131742424739542445069637566529410093694201371231895514685412621357542302218939933341687831816448160212845700578085945905873666956239999538209725819033675412877172960650158517821706693071631366169970912866748577713805886297723719403797408924664688181067973390340965815352018565325469915386482391767420976560746582379364437779772593539928984232036198756055369574289415008093610269532803219402350886202113722504108980232870166184514460165490819275116331173282300696475225509898681347587982734661722627838085956141421450425387711061213334917568701675879338835798135295827657721978233334083070181667971298603915035226542094064728133095510565605184272559497974431202728468245415414983588602702906969280745605022919155559338911302004518657551968058093436574908276521784965996807434126397067991730707302119243121720884142644423302188880856845747036154387296657018029956337758053777708019624829725667231177811198244341306783227977393716955676084804777107515314409736930242753138543487638604074842310042741142417625313323775182493282568768028844995709452472962387900390121019910411991396746103518978693388965297597616856291829245783632989834442146332205381344608859764995681134778137244089758953176001193910961725101586315386618796774660464156107278775380467325329572115633625199188546026622767767610512134889836935713799837085393017415272498837853092325013360104813517962875718499712081083152921033647530342450056874881453946289560034056269977173525742090500535871791499381393352687603273015711441703996560440326500902806469609691432501362960984788658542966990919822239852678960087990130897603465217856730384285318333628731028717403412617891997982855396148805701878673961250399024141250649361799771819446823879924070410852403180364355675885605352553875854220893463076965444446422812356171781952082126091665839082893354385973960004598334769137970531404647453626766864037802122626550564312736811208276251539147706040641241968661483421816545327603801308141071220762472697247667640976472822219348136705814304835777318298622684471726667668747628448385956630747904782404868614397682686267214577875336336344585893186179773674478348891700866657757773742227314249229037550532349889014946381067435303303866233871024551011015714683184095272179601048513262330018963759353401859229258095295648399701497935938047329478428669910698395790788193122026579296845996372041201955942754714361117501421541565104068527473224885603670951065152317466208036102179417004049411665059760373271595298043123703990518176352942371514710613403683129170370184003538635411787554739933913972595134160310068672516783475029262943050299129122609261107367120085672363889956501855325243934103381407874799832291179187696465561515365373470746257575047961902919247035309363043320884059411507561777006183633316011485104916728750988151613792933507579595005165436865030305843121326243959382798591568143085825140651436842202592433618184732269490569713596594402580222526859319295435879065450485099443491124480398180144318823490419254761265249660558352246491309837180362212426262268017544526273930993350903610360745506217763136831562249297816373993934335399124027013519447063422992973104856511339417214995624656474700533875798018277707482586367321494807613464960709063361081850155206726298066029691611448850369300214898731915637100956559127759120884292679991006209862055841217822152853603997000107361139867154678365847184895081503441032754643948443142097443249362569225810129832409054667688270108504624515355137532438455615866578622169129348601079364861113742529416847584950796909898639803601393699468299330436426421256104689503111934651140119651036629356710551632875713939377237981271474757884395427576858481089285155522659348454246314620470562288067235505586687131599901895096661779058290509361970245569979400042790240115964540908563824401363993658441450547106300804195401112731860620505526574746428685449671944846614832868406371020360467498337088188630117629700088926091034087838299461722718190142535347561024613704033441855363595559888483812586596029120959488804415988446502494741507312886844243640685404394503389901851091687370743471726101637401413817721639049189171375141069618688027448689242069273203983249646778625965159372577513006781725704711662009237614381126516323755225514210576630337594476668998889845631932628782534834666351490315419545893904891888221010665546317408061089684308556037701187437937421276534074663634061310117985631530891784609165971426074120145367612017471973295268102072951421472274847367562843114905790013827895904174613108866454168041643959995874712685639888291410259666992510877670851218994796905748571363852394285129982853735434942866927977420990659279455818681331544091743178055440168116258333980327403118917520002176089370251114068753000019286401783418416786402671518470701281888781723118315109247741165458440070448207024337072276505729788755871802356461301863136284944567464951952593074375721987194103599847563421088812986772494938349355572435485283929943957670145674487515243113733271597723052915015612139552220693228288926795150464553406401092084357134188635831238881890844653381389020367008259869728472352134146167589401809617017476352755141490325494632214440037399690401233426629578998227682324859725967880031923586625934050395497236363426489271617131449638750910084367414019989984464565646551325650432999471597372028449731455169810869438066921330140262900559808216481570465421764535288157902810175251242873975501279711217834649991423634653801056632139895197998756487366177568474030163706562772323210475120105082198794654962687584426626818392612798468406419760436081973048593243514749463393280439168627256188115387113571894407981631299088874956058771780877026139123754674926398340872340168493357606550281732091944694156203926045711848526323431282012770219057349678441097039092196194752913285200708315677909443599232747154275501439049158547575883369100023464739901583165295309568038199021343776728931892349691992850627256424730853915529679924662664840709521038822980822971243130281583136625687687427182778657687970179789858325639110280901164698677613650680273433041975980868326959352527128466584516635744615936207805594350030085087594850295921722673080490344778914249303138132239135977483496780014008034803099964502198452602594676326722697950174282075686679393849997868284230366309705209039324025370393628761120933312768181692909803373612790479671851656986889739031889616073354747019569547529299362992689319714529353679231664577005830227780841487433563693430744994192358471245568971186494215844935351842039381320754354025361916476045122962876378879295327363447928667838698721254613785890817929082096319476287404155022575197651353363851631227231829101316363720984658675191155181678744614879509672487849941477305592436514896750676538251613835983398134064408520163365280881781411841322490930106395434492642945653512770447884381992459862292772844896618124838036621059060704865964659171701769406902730934848509039292558510422210517335557330113731802240524067409789295415064870407089790710699366084343126818968865145935699451751430526163889137198472549265633630698571547710434555142684879755287625499999356746723237596937391563793899069563151072225955900602701518890415088781190948117703648907702289926875049684516498850971509661580598844545528370896434315160411388892444676619740643468428113120769912842090226523303932254619316351941094669424251199040369266093190267573321060463564719302948732233710304400321381470096187823081013878039297489108451856367944048127795997498302335396296512696472456894292235793166135990408003409654488173481786917708382753992836532971736796695312907831510179122269915198344922304243409422090423821994267182630963714553502174884232629418025586126074026111608809330819920561755307074098512335737357019350645076813326109646595458659273406144523048986745193800937790230083020407716778875195236665659299329615442110182590423888325084738598698678305985000777426504944389203989513953233172744681996323067627874746463374849374749374623118519657358214325294873346429779522912130727176480424711690648565578756399567131313407959031653602023433710261004036315776514754734204684136785173538151244093535151851672221692351155029751485844640829403352606619428778139527043765958156075106011020992243890529627275088489846599999319223323073680872289411071735360652094735674141760964761672788975806722432079603066583870323265042205183177643000811156374356993164325401389356701402112013729561044740799470989462080945158841747197206413563216274622113859722433646653983478444535440123982765165608130303108292899423795334528230090760481586750567936005913670505901427096720541168996959558589265530788453004633518322768886675560485210669818774853656904422072252017781341224368029273173722288487131325138527058233321020667986828818806466762341385800810132522405622157377789874224998833389893518523851620569396008317547352327909618800536327422497249361311056765257345270102089671885830395843855740489346013451882890238217864695908733603091728790636586193201070151728662350236219820676661188283183674591225801252505096830598547812695590199966008255445699492032387578652294078741987098150253341253844855160455937393194674924307405218456223820337524720597936682830843570758295319154171526498614305403675503611281085886511110648988205113236042658803246009952237388750005921025798770986319592717238131860224361004464765368223192412399231129519173943754648197537370145062683904511377060256879472697239362657808037585690761309202086151932240407827856437089894312441839156684902537315501336269601978844063894171022863234142986636799513686484491179684125044870881443196388630541157391133525835827741864424016881707029843590186512445279774505194432081855998410512732267898452062374194366849457236068106433861886793220553975840754655409339521336478896728150411934294350997689783954392866318573343966978436012024726341084412465071725981988691529059010894563436858516238903402868705082054637127179482119718170220607927097070000924758036889854457256310628218929257208622299918256022286241027382073514674420611264390613964802187328956031767365202492498377279207052637580351435123711263753084971473901941502447090773261805672611438328368551024547725417470167390999139828852633259235661412205597953014029270449116675470735717973107005894846404983097348153482263050238428285773315190658216199633993323583186799403098903730804522307049863446354812242058225131475198750466217878466542122200306426497166728214527294795013284821144420124127072589758604056060370807820355850248209176414013258615074820780804865917472449781125201910649157192156622434708706572736696511024128056130759832055064748338816243044665850593509657982390842641071878525338977807166408409819089937762759653201364348670186150581182546034756864116063371956791851614717085951272333334740117264666699777613037720073148417825611094574292394925903736265321563167494946097173904230458998920641345462226849701921981747515425638217872820242921519720315300671976997927968254334161175848151313835806728329122607506284032389558855922794680548143267157197042244924035164719762034782946410463911677455657603222588066060040542908334343310223847081712180160525443188113021172301772373651503864808064154189376190298756178184342449867092821139997647121372448463636989889713451568853632388641200056825412023629837301255720152529041182157594372900158610442348783693132719131448376700415465397708704083649649335424223851590544586278166320765809459335212520880517557730526957101421373283861041523734877155585984231305738207496236831011828318136555155225714961958210152535326372376805581930062643147421946379285461068292090600353942607235710571467910943038550029196871093703506128707776394298986719098430294873431051937202976206593048746967217883966720649235478963409158845182454032108151013308942760792886878436623707846340381214319928981379226831036789916141413952624231805256793719395693621060389060728541309545338575651093770519006425499893602356472972265313465542415020910232637994072219304309370118713395139569658989972793667732126167262015937566836765234732349898502625033676158308942472614984821153625186432025167505656813829268553690132308988491512004378929888213854595542405607205629547229255333967954395564112052554705037411099136051604017259534298094556556755918463724747620232348935854105072352484048589709898392514977341074850032875179584068469868697665428604566019315259839180779933816767749132821849546605046899703556821266758230753441908101716434480338497233291355925322047666564378266053206260708495177035831825617915603158758425535169660162122571999712274009628755153262738293654392583344920710925337497973609236058341474855950964128546893947155670441256009169700049097487872651653668094922560707383489994332257462314986861898659428210037319750444992866530995078992454420799174839015370213198595421077390997180261762852756834682303394209717373909775481355363034116507706177770476230385067707760005130763971930202416079515754017040299020824235600083954857192624587356943338724143635347203808530253827489562179462317555798501743862305992178346461545095125365427796654549079495513885714018366616416503361866206576885874278754442819108646135390892350566078420865389827027777397602171865418703610869759186243614161107298844880629160696694013371066950122733439396770085701541701230041981517077913890704815320895939073118074422644794819765191309515313000353533986270917998713416248691679432996384618630075011364208895144513495482185117477630453056647127420176636073311448164737785239935866275996857877753532915108746907610724498927864608750384791096123042343298119592221491683973913189339111543971991107442531612413813369543794330283931645573595167734866063580972804679964564332675366764005267603891361217854721035951944600916877642240674010369862781940203193360332036068408925193030714976309657547852644429453392719835834617677491239036383303793350973858113605901228350261672625920953462194154001471058039580281060021354053129045718054884471584850706953656582301248983679140058772414197237377290331938088804056815029980435533166740106512843947143446452150653689836597075345804381326690511949740724417184725664063913445221247875086942215134473450928992063215132688739746248746192667737797176250070117981120572930249703717341885504944553759449861922781693682058620097997724994681661336101327158950879035884062724151602386789461165507772834793946246436837173953771447063630942646766481429957140222972982631055435838934459216256912405140653197114904485317714977168348156845788151572579849962971818355066006768939717743203629390599934033198904659594957371110101013097239865809560997327719198759227688799517317541456777601555090327948924035416401561772399664457565228524773849548066841162199342203049454209426907561626901759540641996157545533550190628590226482146289525216020605112024096147256605267937271865672518585419842507435920657475281385784358482699186760131089341780015373078941112465017370188996383037072894821985406401440668225570023413464020957940736813924365783576529387495148204897223091690556531275416024789305338464922684727393274962142280399672664784354430798512727194297845681258037431788600947497832480984340431614243805600535081186822563470829167174591937139849700631355956266912779634190737317742568587620454121952459730617203790794006100187124944960669620962608226620412001930945928615474869044324404371760475894551298775815264790268840640016676029077871326879230262406166327573343005175188060467641601006954272078670305159901474573296622461184907724475352588757163197809182830089310558505169603319653818454292271101085374224868992203459562793758147955851691373036654936905921380037560542095726048715033413044338984111551103164885277551625428342006628144258666111226803107748779940838824748251273730969551393085056098773251214335674054214026151146210589656197268458971365372330857946111340705382734011604932310883820900079283280292833164288142917987466144274009126618979476984687462750764431928830266622512140077482737931559608022216024430735530881615758858415217733166801560420739019264151907785776814979991252154751295490935552001326083187025065166849416989706524881828631624554741659618953794645891056423500881912879788114693486580969951588335477656836231913978172449239500659610955266907494478913965723316356788754930928318985854826476925439155255782739252017448675890737175475090463609643505287914749026745151787591812860546998193003073376017544920272750005484360374175874685570471374765053470786277350883882840193972715326185805688614341154974989295741665105221575182935674614360066874833401148844554934032311587764775390927969524794340291978563625006390444153908597742977675239334781425879148819937432861196833712880476145332194258493305516134720011895188372244343306219346613826491297466779764279231383148266163093347622367434789832133507085356163343908080481786062410956999765537669017009561045324424485082649946758159764667078710495595571947228927978936971707502535887853707812504394107200571741668441073552619164060169976309268743225554413039797768165349203173210089098886483130336751241994591879974978977584586724248196581977755313432912287675770352105770846185129760007865330964922401986361855230747289203803017582139275155279210203441080030431704512559036256949506415416226370795078648251180383692394074069146462103751989495391883120625213233139036140842117095680864480260642295351367301639843504535874457332015586030447994441530556716719953923575682541462240308603512238732870944171894816956535054053327554997725218667307933993646308305370620963614775673930576404514671298552702551310680511652506807776119428735021001889490465400060872206212142801699906382038800221629278036518776415451233953688777800242130645467059107726248480456698481538706226533808045951770168510772564442032795798204461303434274136806606188956160205021858541630941714771393717982905049998971412737876986797457326675814757068219784456739639656417124206672798314233311544166563724583473050263465066468680538864725135376270084162960203913549942646192167129292607475961689428966981666566803353384706063828982307187780225650890031971328667627326298796131802042630586530281304528609483537664622271805987619536345459374089910148507297681769687992957868744311287838398559824470757563763128800550332161072538989670829227467762535913308825216253562611652924337142511851020844557399000266365289472926809041445333885030952237316788543493918205906901144004728461868086047846505663464388067852814062133957904505099703544248761274100536573473951728755375562343041756937082726495960616533202861421127487219730993807708733119410136583356840445100897994510424224161131988438064748473988301461642846896635436128584998414728536624497269916409498616074109725319742584663682052494562733311673110144700570401280055721742052828505489334947873305676748116003468784475878126509900792155692249000280106731229532631298184005564314590694023242658054117028964688660038404431943216576810791483264304679843616939007136302905759661881345791698511866830644466524455364598588421841367595504472021280437705146532448457816516161874242765033847040353455242358312213453537451492771034035807952051864952909420429407471048329104059070400864480185936127765874750975683224427302516990634592013066051842723918815127890827592402811157922939702983893118105670728149101501775124422943555610343388387003157962408977217137367877377981789186643608047723820186788030629395492209673243080750770284151201738517935438590692197536727101931075567911731213053896677730592912880352615370730648779987048064378962413015343306350574482104907993691851219080198658204862934273730946648973248627755156507769134609342149736292825186887373334115604437487238706917568355109139874805407575654077210335648578392382393380267997963324036961676148250503949713500240129488733357629839658736966146924555460578376229554906914103957000030460859498119377858924539925347016425089969052939791340670322490439749516922880876658710911445912396454807211308619721750470681625253117564142472244292913994368480342559465451942824225350831667857319587333812820216211567459501142114001251329854232013755356027060021974724881359929944924616660790499812672591445340057930102998930330834119634718501202267281889507565328402244719815175467535752246798547061271069551262617863464349809646809988087553981719303203822914912669965896860102599003016083871934985999347418718970656779848459219211557775668495176511877667132708517503444124172129276284623462655151928187579403449774783774810836797152058074314397649659090222707970290338539572055403488662705933394021247791069745231139914147545327482370661726902714716480201162685465429715093932852336060301092843494153215301085254671955439173865646201861740557050664098272414115792458011624580097138279615533777208601877940323565671043071218812565750182914035171711908888914817324948977651194232638687332480529372400279458070654606966114867500044454336456019383479226183842819517225859199443542535617417674913282602633018928704799954235516934775587974259131890720551821640004349243576011306679534908152471226642672371155559235999747778087931302776754211174786996063571769809900831535228504895332494141345381680158487712066258977503240092255704985304784273421298318442263331555730812105159250935976709141607721065873067718507920129044622463426015113511733158641363996502995012547615953877795793225655451776510751222141497083176997660560017116359866687765938098974448596966486344395933324123950133485426920316499325357899017783912660747102742896476206964184551138544963453921257285417916216747354801732858432696948917265296939852163865283338898951701732727666762117571401416005343882501857559687556459116433484819340898413122161125572853726101796265060617146113078994624884644481549928451800497784568172523818654345674434381898305899627282523268440857469255309584123885660721215116756702494798205872499960784239127586891896586238060252472405448994028320534553322310792631169193502999176472979761987782179868302225780201085721158911106939409146273885004206562579627725596210100541144140018179481385442111826808837242491978136130012531891906118401720771891546524606191635428979748931288266104682788780212859441116578781616082813667839024170085059445516936207031435151045393161598261764600236101193940864199714969092847960197784468464498367869803528843572334479119308194911905993684022918202906941198435820058945571067724452562633021852876692066636640877159883139982324957033171203415116053119180431680078770899823360501634803803061633290669011099078545293026930776260604645694655255382794386052744247629334978601912264610733333909047642522033012919489619530441813730077544660817414906781155336738066379040044079085247751577099512928856608545341573111354087349562364832795816568476257042147011204892593298430718762383064425105978833278921592587625510524355170439385319018536832222333091354957436625526776828431524842557803290862303190115395012527069886429184383047466783052741051262771142440350968212930105656064219874239487311567069281007164033594002361853958664000731460099598250509843149770030042232397452851307481732554684923388149383081051034077540967047951355150510839925918138503195158919528259810511180833469382106202840431437746725369134957071169105762359200223605109158978505638863547178745740291712521267613269682541235522928322505289097813649806814138721652030509207027882435891115033308926963577142324949622798310165101102591528771927846361403541731083387903816367001073123966896284100836714817440110688460610291857509057050139159363156355888802080822705113654665075036486232105292097254947298092313060518452684503194803128305335415254126245030710455821116741315917822620419310828627676730501318034761795429855685623758598513944458059585590291143131293188967947854369707365471861659646179904897558397816105328957673540926586445391412221264120953648906994447872015134971239042526871525630698386810437997497365037525617258819590636763841701612169371856235055112035695455918604537162075239174826048285429418923297505084885213289552090417439347660057671611538142326991099888517743326022981399913778116259293790058599023812177746463710733916730954395789293527608410327919780076329862160964200021076332306291146458261583997183168229635638325465084845439275036101707800201341725398014950365131377463094140437675650346256386118387596635924440545624341317938153839172757803441498388768093060392725796963221170800227332484211588926346664446034507956787770676237639375087691479195478175833050316527558771608192876657614098176421630515081782400918329247787861621285610761950248607284946312966320374733197305401337445706769548004004100830858100652509488678205353614044248879012576573623386329551647659991766449342285171856313088228058951194825181011224622371537563579225986000202130428540276802042158644207922696846112104179229134859640087750018137205777173672273968117590665128629569773484575447521296315513910941944427919896485065321411497048598941431598135172020616496503626639664267252639274449212066498349118681821034321445639389772981889348717707567647929065363043469065721363242742159452477086902843922266320963278006042727862953776289973161076119047306525158922243122893968054469519949070592645847765331131619350119955515417623082641225384690174077531520713635246943720320106463261455187163267066715640559299437167809535864766273010292953357537893523531903558406721460088947858216010371654198285946752510123131112731975129720574461969770905207646435704742406776644952057647338557847578225096434397071796794964758152608915337538745772220396395024920498851880936770106402944135800039519127417618420827239429152044776689248654564399504838405502444815922769431070530724767810022309519836172235052623516658506091943231850307173001600105870699248756165662202477626918667403777943683250044315295059385367858811331874769537773843373010876903637739636140923092259663607953231733810761609923325393845438367628899983737201178101051905426277481912926440137280392657712281447302363319387225467590901064315380132358022794272198098025895735077850711312742620992532020174760395219672626724096784940515137526260448186707656647935863689658894811195933651823273408510484490396555853939588768153232609104259016013982262646740231515710942254219819633650953778082627911551060932543586490066131699350573279168329385987814056792379996499274046868856379799596672989609495522567588685768662315350556330723753633348353897934908815332352404418016623446456090432639748768547980594342436144184720640117661546821764864084741571055141764208891227711465529486835965037755978894364564035454756561280380705673693782438936261005400520163874665483259704524954679747993687430437884878251486309992934109460856600709156911799242264330912962432931157739911259488937542415398075468477419268900692835575837215303331329694779655681424336408099622450582415697133506470184310842668891139451063960820066143328244878511757017764705278762673009873611622477232795825020785653894361575821684821016409470808766992967658541982507381973528691104836670048318006848680653255693004469002566406719598964048953219669957910425775671603966367698379420717733232112019466904674423023662206076238636335504548192712836331702257655994325589987779905699242660929593758989406338216597333705561862020186900822549250844114586166570979990747473288215238842534312042158128957908169396144089843374771845826680267998641994229742491905501129346818885607974029224158945401193630470884337653272955853463091558488000935281890581462768497156569120522614072258848220663761536529915484841549345782552044701639793107254036282939601059245030360322386458151955733028680792975584004999772681245092147341210579863415648906833587264041314254562182220512674233666271442561097631035326772684494414037817291595240926439052610093907267158637808902869517776163848525765566851616502676491835149061298435383148996363394162719328237972276857997946370519342794956596509674104467533199143024585235997923231352285761399162222039652695174473580602424692233542241361250879649753165150100824757225152578583201686135067267449031240914323312523571650991337669907579480440014111393627020847407239560735721096357828781602093379886760548234353213549223693658984555022262858820742866976119691624036841617112147193800833185912150932527859506759577298584356036289061489604709330171178237194427189444416173996646495436914218471943790303995709404564187728936376338143960126391648406799457047229857880368702852301660521242831224515610683843550842693290320101289836427600650217641753715597627128285255222379486717277315041491803813868188896715938369733513887234898822787629638607487549647496301454174850759216135215375878432808759957942144380339544710224805960602855771572221447020826769362941058112011539272376127477399349134088791826091722168783612904492999836153901964756971337445552706655929736429130094729061751847706936983553012609677686504051721275238261804766005991908011485388112556517896960175434209877858023171566054008944332572141558133416029415142854670761717574157517453781831121611629412153646964484916321464634634304597139275071814166192006297652919399971100604791010202976716691453957636234012824998661357856829683103025782250788091714581318223989658595081922952754916912884469255115953096223474691180179555868899505979298069653584806839695329904448158060564323702324157439427826240031991763212170691698658250188157041315447926533770313798524630478102187788540407302225391248955496034150180354388813951535034608165655430345063356892639486126049663064206678456298285028852186480403160555467598488757553016822454172542605247707313785954737383100351838190327115267441210288264809872223465292676876114702855913668258734146939859761111853723579095540070011794451938642512162129398626797623750663703130768463545508787478784357144367611187063419089841050929019516359841547157946958918571937268321009901034498625486187356000359105612404946319201859168211126146528484774892288498245731707350256739988159778546064466070142561252926408532308800390013349829095239639853508200460173046279877975795110982968331472753630059813553050930147638759815963641222219787134068727673935472386243399324484169298986155380681107372452674769206771138458095866999251081746969098163576900548080664675591160575436847229787338508572281651697970171463045142453761028524394007897274414409538120274397541739408950943147238957352919983573196533314264996036152263290478811215752305906289720691200324125195680184682705983563995427692599492982899148479629003558624709016380145802837328083285256509962401181221311306441459892880198580216285967928133814163215805455096309947583555197841100928038989922920032141808020614620071485558094185703785145747028978105790190893590377539432158741541122254923039506655849183682510351323875189328850101858179126748339949346515825155717112809549672225603955232915602017464871155102371903691692912016861761550493961422559942797641919975476611889470025403494080799736987630902763228432183750705398855906676077326780791640780039956188705738407441925152782764752993974686894525831969044717215341727316319845093443742792476394690284151931111465715838964212442340412527051635946943341814514352524014828194605384187373304026054093429422365870292806220373242555250412218676644781271770811445842688256183440898658176093740400816435309512297367426554126563220251249561789555621676477636207469260003160358916038561229578493676708188197458642051467861781470255863027708752976097389467733973341032698852371813671701134880602091840181198258861263920559757623707408970763628378642225300726459421943201399883151019045703469910835829786098834494980279740677050924459587257338424944620768152104160058216666470428954129716930470051505845274277996018428628616204458961579671571030356000959569291187644016031847730821485407396476673093790999735988605377934809938434012898336335180422054204273019995413009355295494597912537278562125410043267171713221055548591656691176617325871974013284150089162571043134397885065321087537320308454665139051657977738450487432222610412219265549803971388988864296882264482330220795549713739869451167758175015702042493465345468898801597510098826342727440903050466495709600071127215256804749601631504009082652949882279926324634018566297425088357207049431307888776682781204345801165569665357168138090698431205374522222006112771032694973715640474644583634589983135110760740087706506350884945389399043080606657691989071697364138318529057453400757424735106783286393462131343110555300580168784952703302865699110242273673759316336864772662001590840700567639036424023580680165905236189454540161385574124379352003567643180555873765722607840764812848268873353470394622889607035473902759270537034313716893491268454012421916096263360586961361854507154731646357962891432891961152664928571409289791529972857661169184761016356157545218514902401599721964458283128462634631158978352363324321378357505035032289602981169173422065652796247735702871549970003084218198670776483434193563009299282952265937584661117335106673907919009776232481302028679396839656535741301425421011309548520203691709707838505263941605216972481672624499330427536364162652920848047274566420479469864441697347089248220706234980177557248824417170275170682301192492713537249409809118219279252059852202133294020764163952771993093402854107307081228448780546649483622345375137203226136449322176967368858822595331722729437921542894011014579930255473908501367933196254785487602227518379655396022768783682637734656043606671542129670310199601813873102889387416844834318881968647942732954463562107307045196102624200780700144579957616429484171033005371959958994773820385806087861375928297951623133085080073342872372705569893340919182721392389423995928662057665637470030732199041712757732601757367095618338811156135880237906087577359474906805413656747868240100728350333340854478387180963582175033246821520197593738444269691928536568935670395811732635082478099132253626467918504082752042473500730743090589891330035860287364704620161024909736622226089826992414289218415088140346644582618036120948120772898588689367300600261026237099543583155119089047648375862772107291040949964992088330533006102207527491251359716055272328993831663579415458193444971145262001161207952896213085456974736782045059816039380577960762615414294556488156357643416976163104343866481228631122380724246696180387835665399180531120565688995829476600225051369804749958221696205656138459799048777943889507747746279222904073152251250229217364828162732868879349060244100545933068310802099205189619969919448250249842862645617864111937777185598966749785680289298444273075286517895510981722113664487194085041706769724712130257425490186567496537057543264773587193030909684022352808793531771572177208428042155989884006051887140596225806522029447762413682911211114931990655042016278459081106578849506434506241189421569999910503560108879858420110177842636031084530230292533432664386806318429012057009982379989577675415438994876949582396644999904380797339191809145074889512263301417547280065940560262209967673881042181307493002355589041661500343407139193673877111018570431982269111835800116999751146570251499852881201423555654754814250276676486681169856902727268749605704965632349967985941703279864941566664119549109445108135775003614185116321945725225612743553263986751584109144939671269625763879847231845083065835644913809972710970113269712070145398292405972896212245020790274021301905502143032274515430571744486410236252133270474910930644885588267254947646928255288316765610361080215813812303604088820440839838122827659856229664875561172737846655013954683549026322152331255509085659500610298543956113906502493160352968467335823502245075028035388774622755272055737380293118928997883698915347142314300185863664732116213789747038523962098427689332050688239528744573352735422646798722707461626208198681302202745309693674256959780162321325378277645040471848786789169773757961085132612588578163402890550510604849612140380749656894431282454274823676041807168588312444850435298362775488343359582771945192712476787440602885415282747658537428251656209555863262653031761246144200109908706065303773025225487005193635626737560728517452606901809485785052950474590800416633443022032104538161943873226090597283652362283638808510705757134704963008797822057429328257502792937235239640172179762649599247654807993467453499038561200741921246568214553792872207036430652388148897318525636891145053164377623350704956037103403894107058412190715784701015439393634918953033786319875993587658102823910850090501196177257876259612300430646650666366682133236349841136632712389158645591638547439437222900348273758810492952709149300834611039406984620013550778506124158326326444148251809639473522864454785609886883521476285646795247517489348736200516137733374092401104339880487605488970699330248110457740989370747825871294724018894155159144884649867367607487714774969555148314422061841549773022706355834926290082064784337246934713943941542086001637021408364699829729900332699582198788584950026429841894655030440703710368549107036547766385185335650740992508098095869982247819136690792595611153774225133803354451999260157531988260166517367077646810684161566164127281720736373329695276911666860921504373188628719726810452026439630204091997288730050801871794964470438641334606427060195642958676454096129275756048735578715675884952160457573709532935014996689531444670125110242852878798560577222200483613816241156738326760417694477785505759296534129623954986923243451555238517447558590518855528305350147887139583484725986953696973483354126375696674763887638737309212710591698180821841496412553940260600336971559923598839641942597138197027602190993538619458100350936877027923547049790609547022253260742946200805656701050577069324334247941330642833691402781942068796559920915443087160476649097843450824976426079499109514456517105768270624388236101734145055378766814053373182610510245226175127938888172867436163040564165453830394148880115876211400926780793443435749966247825097179840409868378465580732070545714842053648998471999974002068571813706855230864297786132380995880519863254251484523037706604145254804076882739537957748609238798220411019072729128836399532104260389226149681165724857587695762583921129839840321592645369180209349082888864607113521731357731552366602911253023042535554006502893674359953065949528864805490220803324903497900934112017288719828066799211665679042864988574505045602245351268791298029066221146395487932861425901017279676257678820843734962281659113036222302581491581982800244460197124517887167078737823776306669994839985334937635673845390807711530819255680177339369625588185172515512036215803514453571761725500006493013173979804937405574540827758233394448951297463495076089094044146462130762250144403921618814815924144380934654691714781885633455303472603588551858179784253660872264007080342279727869188854456243348750804182831565726208688772192653403729435346610724947355458221676251598125003829654872846814684659331837087374123860708491532682371608639497706875489249801550240064562334956689809145941334604366159885648621543525557923603113221747146282749606087680277190097835923796843115299768421102145907487599863984494291361195178448029076475464320094812421886262765374861269333295829528819159161044807907841403882139173151000181614361304687143879936957773489488088835522078161888217505431945381062887173995467604103181462041681202906703110278318904907011348673157517209921352504832174850922284135189644267091303481906199296121245522768673980266611135093925835264274863671150415064656277915964300838430257970118394923013128429621748950112136447580185316382598768418816912955389418304222082418415017907951999378929013510554380307952483933776456394686120074974429374617182921438719458407248767027107953709233266818119413844227851782538252064449351446011121786456270360643788555008189411750441893681555368948014734413272358348276775723171496524652408774638161862622508349222850366005005684322423644937723814378218642496156909493928995219890530094913434477611766074500998433818294065153751618965946357361049670612500783210736105692805496351006907572978856112973983974142609247976764639452596668205374966127144428617081700555346775805381873826592593870990759109672013402478845504164235113342136921732205755190224822207399298387819391914423463850615337495708467472236913863384775401704280284390675309776001365206762878507990112758046527403155218232881906450882308271478318053180325704061709390062264365603146728011617042955177499049267174259401676033703965384479322369746393172709931600976294030161568705035611353433799162645254477458972521445258566736890427306571355835352037603013998907985329133696663572303744319754199869255669798236778905771164673645343135856519709215540155923860975308654760106407273339261448432601190822824222243466209066300314631805727300912221096564696443294236442512585703607606933375098994077275796243721505845241607760980585016103492397167586078698933258651783056902971881842981081217074010041965160513472586061237990161209669618546565582511181499232991379520503156285044107089162251435240275768778176401020042605370448750313328676257823150923113101391174270528075831291693094789721537879165245699595737546668653871484528735997727187126305812626124615507612971320465482135187143913095794960459340678269326011792961031697690875975035492446717733569165564831400299895009209351234823589553652390672667695902472307674459820295561180394186776035687752377005261929980973350301092237209866953503672261799016855404158631736692181203717687243571729318450740675141777758589244051482446643917051430130746502263189661187011373747770958331006276029006818178866195348033081850455295382220619010069585340216446383953011532710964574943676349439931566158575386648290291735318912288032241933199877921838066282974251866828681074919169757561223108592322605585735114307795575739982531205528765523021131977033743592732884599539720823810268056773538164292989241747651310230563206530789034572764687190626473070260498933934340996606996653388775739882922351856581497029246966521355755118380391848211580037529608773484503654301397044922029773793637560001934790085158136170139433825022651974103955451925629548411787546912657861304297972123244556985418326606463040716466795833432801805897395284408643149651336873749567718693715278520912958305519232466905993118247670440288077001891338326508570767441704050863431538929092950451741006995214304141540898232039952483060595533610920586491335855125496036058399643265732509249688819726290064166689234012073954916920231348444805668591949113097749892266688218991747784663595089745185713299346112228721424859146483635761770184964732978021477618055789457668187663429291541242010860540734539471435020232882890538466468216339980423763422103811473038103936050506037872161940307076724665208774614095285889566838227368753763967404653439463790993356469290901536092006122286811004169273307676011985275153017523402512505471178606363461489464961705380531752817888960143512880704354162367824535475203634162504140412619872419312565033871675728830440214872798432107518049448007628483693207676853869555667229782006135865819075402020797942568153803847433460072889732417120611952971448943170993563508302663111686114535014140107143007688431867241760330422988160115417085781203888840749386134201340054187478129539934819091807044351990719013216540343486557565429767468486117169255963224261257356202129146448296253962013294017520841990342877919994379730456464542325771838216460261526405529604486412991108187626196651199637510591365594838346783614919906235018206114146903090746926641427805111422243516693611765033678538350842152565257556874451777283307576666373777444001735658201491499617856561094254101282068504462446863093048710041400967207531848077013039826504785230309969928059648439536289641642753648849272328042907250368429893565048540950105384461665564095688236992555554337462265446368887824373846185472049196223829828167717676073010407370053559284490294139318709886055902608886519269426990256628235457435805806788127722109542667390159570901631599599207489878798259109223523323783169217313735560789494253866265625532990305774935266998789627986271381299010509678468676275957932818937340444807859531776462497755870261525775246627402383251446882103885354401484153776952787272953450001178296037009940471839438477437582000459945870120641003583666630962338215019472786301721821348536229691947909225554092246677532939618520276407287098892219958102415353150581881458953730760105296331305018277673314915567488654069126630933700249789150634995016563390294427859429303631239015196678620905524392846124153218392524667575991990742041943371800790050786377639396551791392702112871202667773754354822211265890787460325566240669333443107873219755534613363439952672984534930399180462463505943467371389999020129105287561438911224756731842489077563185134083222402585510811818495091547170047434491130808442768258334126629512148813099738157999590359057354432569170846298511835962862995466578556072632461757576593663468555242235050948304936352385610919109491369654372147555906271335678821811279225974144909280087089210383150655943576318616219484196699455470645524626742496628130890021958487078977290910107342268495031259566609511729851615594703816061624050345955088827739384085819676316441210889817177064164556359674305683108835350953698758993550492635853755720429096708131329746528844624269675488927930817871588079723864914351811237461502339028380391007176902046299170810426714968581096280906074914793394990727242955321888455869936171882483520564497036026367180488833129389593471953209428034078851781824690122377986657243601372149460564489953665909637482941578847546991437201079994469602792673858238667460788717336370220071818963618717027815060311753774942360447371290289837479606857315690473956054526097533205722517442851864592817141760151402208754557797310903656489384064956265132590630821970416088093158898347997481049956616758346906119957539419842911073934211279127268646796286333994440277184516576965355665460089449251377774214213106365107609213998991832922075582341510163020865314224258520057231731891380929280579724721564466094180485570780250274367930988374400426426260311538470129063421391408269881057122712612681229606156922364012914435687022229653727339180898848593507629986802443526728772717710478823936515437975800849911268329423101839419904878593093845686164685895685781375912756196339623846079419822525345895698223811282667796397526897422285085507376422115666001795329063093373573368617921546289711350700372863368872318092656385849400098815747576307289929200029917168082856572194570360318020243255778486992375381562375677273106080815461485229887175310163573923567502121431450061820408212499086545194412630519801897613585825540789526851443160222696331747041346773424359527368442404266041825117468444626825464163043277600609582064735901455202378013701485189272101284162495603601282439484698766412048023812024484369482489021217041993308019281643658103088248835998630346718239252893908609021810973789050210686014593662972543062583653176698838847583348692364864153069653666553817266240250892125054576768746068466836754303035697415346166076452166209089290281265600691185692908087479458815759315241640051153487156941873509957091027929744291162020696664389864363492998329964911611054374778958972639436366236595026178199617821814434548537651086620985743535171569094946620274949494581437761873147183502987991430078441079544997962183167331763319887878473202983400490118844193101735210281513090006118691023479675329501099934997234268028357653951253514593330462079340367333709814828023492730614188373627672112973300604440514918328738324352973769861341951357759846908042439309015124498037097946333862720749655895371728588839410827957095812443876794271343941777769441648070182477477409991136811709147961303324349847484901425055687343052604075425037422352400124024782644117897902910838494965695214017641248991653512667901216693523850421310324803140873223220234660199744999764411491636660269694030095396903992191736246773143947177617493291821391065555881892623256928939003115782594676219271874623153149049022070159245441213226666276924981596599112309769103891749758464689903302504473347941974438044640169416941490740447156213524439472456243274515451773558769333399607242201866587701237488121079510426216009266287833699971087871491250672047819339263568001148248183427977323348651641675080021658553850793618273820462390802823529188663067543366815503068982696682569738850513122492037212348662354345668743627250305798731442263353099365781982872163887478917023689967020828329940308758203733681353187378811094248914931885345869882729310530930240228019047454162165452981224393032623488121318912823531136705950733661011034724365170169635878372293166956839624899850651373356668156690455184239725174629579261961667255292435640857973016139439277510552360148773538712921645700657755119974166657810188838070914436745119834683710962617009199516658059222208914646054471602669372525572124975509399423012189650533941072490755845358498831683568159141792276176723433520009978320573593002865426554364728655901105459950430692540999088188837393549119816078386271599002255800772632792403667654791863198453262364954721601605991911374141417913587613445772958655046282180007591552210405167293181100173168385207844083919749197333238879149139590748120117095107623855836897588233948931009806833578336746956739420736810402005386417181776652637313012783337839849135074906513786789215180584785427463594791611786151107754320777447612559111498382796837713321454857191017441264826412116514299318681562421057685622752173205392499378125153000792970091776727304153676936606987431014053833332087299487926985308670831173669622611965422899941712026115700412378969208949624728245901518472614319439416459871555406759331170463243401967173432367700886654569438480314419837558267986044675359511944283549075218428003478885182577829767991274669072731887128929999965463524894184688970477316669647922055022095057014823621393054742180289194399052393911238840089742089706720532249293307396331726171366471264284026124337214160387431298040949161456223941219077101335934535365649204314389694346044837026015606014549852367057721911156652206474169365603602646681234768947853348634484750057094597862883549273775310257079008238162541369184910832313493726475789764944172528055187615859573454522426040890413200943955753691300394990105183479575157787772174756718852153227562875599664647319203294482882721384944673968029874553978840178566713207323291057575664131341806529026397749612203286902168028991889261063663983877945177999993942595585283732156442266620621805212572309165836483844545736063269131947463385161097904908334766704153381896630646434844547600218272267386617293722632843479067287574433288077347230616297653002828215953416276611261892046529012106369411773233607297339558117647280495494037978902039227903592190464118372370840129641833915005536550358470398717755198373614269841663907292830846482448475362297621272810382565684878392686547092418473947268884296332878769612469961814695026723435792840836785058995914700448183579623051981872996393788396238420786631733036530236411806187431025201052559587183734451676914633233106624404002168130050801858572765049785797457825436926079170181224969521714080856837293731442146580245206908811505296205712234895288124012218976697817227300452344890792862554739730311349677700233952938166900521943392494346242614465545666316582387513058447461632402706396742178245773551368155123073860285506440808243479818374805013149570155816040193284171126690429073363460428992171256651886716984126936431391164639517229949731354187786305656485682700500011585988767487184254490483736222728903544274009280007033064508461971656763985452670938663807374499944236902813443206063240771053107314740939851580853053869152408219652894821139771464662013653150454783930909255665224655178230315867419955099061155647390992276676539057295555656205908536252703789430527679708613626854901966734087385264086313716247505155281677261077767608759951713382074613171489669182448566116256836796411706707832127228192942445785643882433276771214784304623578290010827853499665240235816536959645228621833835565437966947677387729340008122390711780782210973295993189562489550122161139678244999561964477496351352692372820971306974271212669973691676420574513963188808193661054384163524197051893101764518889076212389755500800469129677542504866812667996013954195285746251293181497503303192498573145488507796979063615508406637717138296982566630648220316797493614024954274949066309696645828586284063237313310957259796272451074100596241691235169583672903527267762155621601143715728868211610734318639965042082248001662794989763795965674765876053167822962898521772960595182059360889462890532048297463770966718596206750534618215549839567792647206842983664982897910003653151871645731617673672840232921836321527629544238991293246995959261102162805699842591376390970748164455465382291862508312353662194412681665673346612936918330010152193014937310195221893347443759092733728679858342243649368366059993490705248824890092031245501531593087163757708720789116549205267693355753323826600197628569830886232639030825323232153873581535453119623952613030965162131687334180836622175785785050885531873921263214090777974600775469636777557247653317108172121226379653374191687086746677823871029073436163048327075019580979880790109415789708854134110637739713580190865118125495817541714277508187080698675088640900964764762918503529249789420056120191247539906825953848183904160308235483890668753757977701155080921998731724648614562828662233785990380282592735016670704844340522085547912392086147250881090309828045502973812762002846062509399599740746875592301157920229787957896363986822862219051910056677217427130977201574129076063120606793390951140353794500359548724955667941678051363649908198510698855824800273712304831257617827589288104514881422356051438890137243452187458253120614306074307515892424824506472916683632399980929284021661673397364207428256567964038870317729903250305188746223896836125391025572478615163870574404522771024026532403939898758355275074527868345121461219838782399438179282005967485956626467890724551100876933803237715978831599983763188027246025902722491996097598752324798365636439174088334069728323360343238316871832036161976424613207546574189792478502056688258736331480337034918420434411464898810628284724604478869326849608445771606999913584455201979271105092053505736957950512298127215009248922273434174999400370636068281755502284395515560588720573965818604334797725460505180172819969607919192219242321095404786632788533242123118171119308039879698508038869105907074907024852293633828270400266084653459645365996756587260693536790420483655287691739984853007917818034351602210245185367727510743752487896151615284803883315662989155990324356446391148296991405909744863629740928538674728800672410707758584596049044681255101613122933238271107975266424981945774136319496068091026314928173473854746318850996092166707515532278943517755719198672007692086103081834153974252930039668745937172319544859100460110809130137285539310820999977576476594202080045047880010889934233971420687750740730819734644690881767609159568697747532701314884775723174426113023344188131705169642693950168954289471957431995284676706476203237532072292574561534654952763505335875459618137306943163681704957995316114641097686650476355403983769675416583067246540222153905194931145454875061140597287390854717123729606949847884464627358275048694690789180032685436518130294714731619446541224375996623017970380928939125277833384363075894457954877931790370132618754273147304620176303063922658875946333738772052721933470320737419042490953635330736785728848001861637441019150144647765413472110515723595111649998728368679132051013041545484624987876170419221757062857727109488357945151188572030555479354634588429726601980848576192286258423227067765007881276298116479355743332791161325955869181576663474053387181862584397775577245605493839086975510170726677493645626814094716749412636887742942892418531911934003619505221361990561111388537932277741432254862452550592825360466638529673180753349726632565839527810014603849559800742746622096951972981990466455897848496760363368136914281872504348895854528572096847407425334313090791127098368371554201713529931590356636032776210916400447149154983013837868559770088861921562556779857527718135738577574967296256402135655313858711805443063868055770622791700650675093881747004031301785989913519013849039463165922640944220115303875557681058662340742724164967110777499520611150603509146378483249951641717594542539371589075451915226608547832075308746950549953981236357462141569943285102245882739707566557734320311080088433403015244960575100166713923572377126756275279392785108047634046599481951123408891928735810565259089243524505380836611103635227849049503938449254421115624123534138513174872570855965356491472799636103082471907263165401959811532091005462163966599089610073027790219561476080933274518572386118805941019698801229115983950003294959161693185058819304884684083680911717453687225771270587796497510901869213266801639332795955645833615472934193468900141372418675045066645722560700987845140340160335494767125153084037037127213770147981947463738800897445449776254808147313648455420332869272291010524381083243285044316342310915242425315766088980518238081365262696458381849729861015601333903954669763256516975746468367795796294472249949764708820788828038675746412289679469588324257789625947554130002590063303429110131283539522799170829964596056826120725384279685640043718483527481762028859289793495952420016747728537707733495275836878399845532454290894369227670891999796206319394801845568645128284233849153630690123720559493803680087547349900536920382614893226924273701340441651933918361785367784991306133761932333897337320232707072442770351315646625614355862223305239160579214360533133319675912081896002597659878305402492531236950108811816860312846265661839254271019461742721971481867805978620999515487158520867858272277157188613856211826127196604316065073059402114238331211851234664663108532528209178612304309678655000060887661531188780055298831312097211602636840647914818633561876506107595772417178832257978054769823071771691603486333825816982068714237306109003306404474642721934250995082576351485874260234063263160487523730643022796225030961792939821714805763582865917724555401776185527349744216048344517094107956627976547273378995768093370790095462190023585450713945759792762780503556783467036225410372344700679602011301076863663865577197859729660938697551558232487190585088815008807182073819863050953906264443536508171505071863471552139051942853354679375346186726634717534122318567644520062640437011979522979485353539770616029785968709712186760670043877548159290703291334662280480493870547389589528546628126052887449118856819832228455914155364597510197381300421971444943881747724329181414975622370023011286200965387237554575155501682553480296766947590056217124632277958551955146156227193076519565325564073530425543976588190280546967209036263003509687533421921548673153720710462958701020774212825166925192841827393174141284036589274559763231652110336855192170821596231962428342654383812218258481319187164550646048696903834050300274689577779586138114996745637392222528670265918099173119028011936341298598501343315671593450704616265700475389777253022548868642149793246281839410019490991439646669724816186079898350822981534772083573284137603660739685367732595488295951259235878173290787024691421680814413414677770848767170269337934778755392761439225586680460492824591524650253513296124731492246558204220162880797564261125864806886220535847562576026369271962416095444185894133405604623510413308419529241919604341417625226384501569136805500745657013585658284941056972807761085856590028026444378627284452106943819458909688026749700529771568519669121820183672627627262348126176616282578311134951675952532543622803039232122925949191067395561303598033501928710819381856848946593013755718617530518793279497773443860119246461527693537155924316146638584198298012417104966365979756167340047401428922021756875718815320607130532969523973655495784498696425481817476328047903727397459215939682391785265806806780713595662972070418619344224183616118109818248122350389807538927960131723353201499518453891519319058792821177189208398823597117720727151999444302264142621086013599022032804411301424187592798123313797149868038714556263485068011506214979167611374209447589488824976027466790555081520045650737396251258396129571866640888492367483843546842390839997332438996304851123352500388141050628952670366665465468560763964783806198577178045546684095895417426786513760071361969728036395284271887297111813289348909559753558170558511812442746165360872830973456313601333282323828119853216407979630568651110387060708436563917455089979493417783188192430409702309195111462901390177502576513737932851012515707847600743680499114541151500016671529459991971516993611335330264328306549114579343356934215305111724281969925609110917358851724794833558002856088052451566973894925994069276977975412894182607960785401493277167546984191343568975635946041410403507543124646944417229157968587970416520911241544787962204533255330023807703119912669972948477726482727840851476367043170166984997476860289257141360887853954098141651924082566979308412949238658854211621852133941548282994355270807253699447472938640850069139436254908402063124044719476392059503878748358286067057365124106043029282164837481238022594551127727615930846516191014030600102514762449125552383063536929929501288519938492694939340305616984926755116933529563544901348597494166313188807423844071144858572464051905788242254228948639564549822246448646528861314645340123248650568458244106506122280281165289588087730627990831404199670878793486157257109077442897634146499927767456910502065218235214248989230933052252360151119112036610205992949769757472163892198074338830619829278314878888171198951196233344526335472015255149010540493839706374015098695610789960438298795423348528351273560947618077719387986139051143584112186662052984978241412509590039413198400557737778847810971854824355639736627702765940670988854748947593003281388973216651018458759530409614999890192313864406297241141816827960223751470244590165551016327575767617489767201442540017708742652688016328887484899223994323027361948909489360727975317225119446065170861878981380619506931295612760299891748266588001215983724065569708456777973591001283130848660513961838504996031325318953638660379989406787866256947560020089056011902730110879984112292707098818370654039018069476161160716218545412803941621727783612741445360595595705872110114487449051701493249043348949893890979887235365863194156426386871571229977254094427344898918666059113356884570901455100623944286499086480040783971933862509522546130117398000736108355349439565111889442915536720577003181799338384734385966571464845903160523735573464623133229909860485992881701332540602397054841056621729100007457428473587757963714029640338627187649209283662055342860704444388602796252962680955675264659616394732371180870928405565866753135485660327056357684657036184470945991039695830463051857197881690813453074753622639724178804051091743658913191209668470352784336737942856849568851086610062765198853635036400677265017291271760412323539374162847869971890497758065993492151787554877643184935497895866082717003769340330771467643143485504539866355995838871608034634736689426304469704360572221544598002509130543807460967873413149382526594043101261949426096184890924920406052440819710943811144307380881864431177855060185254728900997981742098575141418144390358395671607335374754960441884492019269573014092099023578060781332037858282706465213049153974270076242987325591149956175717546538636640124022439153621850678336250580614070586931024383962643366632654745631807875069277585489330477725792774401707909489866846355145800379762146852978932355789023448579562401604475913014613089611865415901867967163521409915666116730544885870609069072953859294912960909219596764459203600544961503209127470134314470473550586016373788619926153051036187488658769695346409329439458806907955534706554031243191705073197211461542135312761272950476318426818816752768714876520411528668830072845166927747930160869096569849105736480448247022076118040512837026326279815376936170897893640107544583448360164927082843714435909728870284455704756530959076222976364227318801300509451206255671712799082471459253132504399021381827608453818427333335418593665626598794908233298080863955784082184541434057330191685788836659336243186860808700726232445607202221933040171883129010949666050428429974931079296452800988382332155106021172736331768781952934874576283117897541537737387746891431406561113951690919659017806779097277691288621490416330794797595041158030942516101340518089244505865758585541658780941933627411062976679783721660807669134667315391800199477518866075136069198878464445061381373711263558024439317032651687726643957922861976549085333972064235645219357386339431432272882106910659550933569651945877401077380353640703687967515140610101899851826948129340779753389563584293106688967324384438084236265240138509486319449287679390942302142529786592194320332589668254321559844962816214325075645991084071620314048898902816070825334165248724973782402782693929806304695766900220780358393482236655472300511689118291320541945270971668987993302650349014833303992543439620171712325833252112380189828715125996545630824703118482655593041869901574292255009482734134878586186836453173208340035553681968648809273279538440626112063137600122789729939353219098637393259200191995031157203902171374416086218061229694171656951964943230260125500486733047959910062915395640202504313220295153973367348884744060433407765331063347815272473028934629820410057497935716983074710700720268033666434147319668323583958519637485641659050790053794363897280932509469553625246517100590844602603090069466141741640123333904355575391308580476809603375343721078705048725853532410148024053794356599450166386588470109634403942072669331278411291178785247124576466458801317235650569897609772702056424376681458690277677031123742735719238470814601496729162270805445619446382497051751193167519534354790865883656834837132679781416035561673077190497352746986363957166440986987589788463705973944095050170760257518387185558288904492197536611099506816019278757678592682021291121355241421440179737386258578909329385519625630616696392575464574494659380394597332518034744893916647276919683062978118342105056869446935201994593905845642328608783672737990435991573151619363911754071750002632500929375889757387894513374978143872436556044862809181886644248490564424685364777725170052948143500081639726232140741940010155743774246716958415744337626798793380801795100947200123656020930283910986987379456240434499812066561685767371087749045140853993759881796066231493715364590635157077483300251266993276782375012980359109281052282948994869729484815167329358255654348169743198119863565371779778620938032893260452905431734733164397210366937067707903868394533145782049179012683171700736544039180630217628330405271841149326089138737245327031931919929842791470345875065949913202990493410742547335953193472732552032729525027503344412786829760414851674502628875256589999959508156071299434292390186769982209416504450331550187477703646533301137096735990792889624377286530089163919843695364851519288528369280759766474941238359118025406123570396466681459762987900675509103432163350303595576396856714968444480857602799409192773788219427360713268264779847609639900239555788333515666040780219042186812852283364830387946515019501241242604586087709332655311980034117323540586264743469854986532913285059386489184094793544745132108412855819369836190296623648004141191345018430140101704927908586811260210150154553054183085436289510120989380316783105093353687343959317525581493346401808515756499690991184062920949753971058336336364415411644313702480903950842341349008785895597300084679541859390879134292790890056735332056766624887354529153983147384566704772926765065481311360021689284400752620810582577569542894642535354845043209312325536547966537069832201533078599839815539325544770002352586134886197033917793665720973907818322265902927212540628014994763741040526601681587137019018253758851328195866184330014153791819415872787544407847730765767368148474699063899885552517059576200650542525676495406839512409465820365808729411995694371913866423527091242168990491577744491201381166923591081529781678639920558426092700083797080580281982346377486246123879633051019907175494328711839031162576221283422205381711595336837948687272959427805834940160618797789577384237593135476108509646516743212015554993283535329692903857976298760632685681201411856130466944669299819264470541598522577358096078599272348272898435607475506411579052471602139403430814515169572538183194822273171968034245963021107729653042129815196772384895670283482746116675556299764067650156594696186164910008364024210551028708794940563771983249779190492306965835009750783957926646448013082791565395331316103826013053960627731609200679224034792833265127435828084939535436351945165089151847245274882741929696146283080451713301839371557172812943583839006329689473028297664127671877371676886115015343126262525690068039476400999369721358390846818260180466959203132780357054052643899426274180360105217883617805020919490210926785004482312297954689310340101380585008003530353263521294660422451931195574023612169589662240803237593917565501155768159087487602971908785446468162659923710146296475454652226364082968978619941053990896970648359280104897528480247022729960138222137163689980777855518667576786229372010111899979299939553117409060530777185292388740257776327951595541153539224911154861938686807332157574025152143803379966571608370145388080321251812658718853489475652428163827060618875148453124078270094757264448463421515028792506241481820998666632341664918483135475280430202696095139420400195656368144396247775328309826371943020495984817047715225749696861769755720869821570807822396830908402658026594782709760340959886452714430961999632441625327910869785600167846423600460160244511622671280455919204969128483589240842010764065248736569942641767826109584542109431212223780996049708253029735634786602137008700108635008004339109852326309067011945045779173232186847595919137790587413572857321942217351994969108137786934031602992584925737495932042048648324034809064068748916462345764978053875259092435478083494613699756611622861231002640874369610662313744101344413617797800629813499346962601846417659367056035307611924498621675646691503277280668809978112410133848383085797042367006275761565147237837744844007346022268241906388754435884506015148745751502415730557329256410485600732467046384699915369965654320590205741772940613138122430616746235619586644555228329074756594438118481722336666527167539920417419901151970698582563303985102602561205343487187600257355128041137821056226499084852696781073831651011584397271839060616898818410598947902095524674351742632466091531478570835479550331981875798491295158367590195838393637150638105591533855459333968919182690273614608451359458355532336232042498415884654196193747616460377524474212843872559063518915207068128830494185426337323632807866306979172208980999287233591568152424467094408662869093135892268941532629132427144513604877145696591300050728514746373959975726615444825690567423570769875900097516606770110252531743230527446521605863954979551948154272505835515565823976558060160022746765565332751612221623726669101633791916685503127493906020374890291031022318889491494986584037756446254152360120051830409909489137951277136789209700911626242059482297414187656111214132722301700735712320049615474287422988738940521642741204147266007279841806503676516353345181549405467190763042674156308910889511141835867148091902209395946151031076535406935861970168161494450383925582303224566432633745984268670548870482400466459747082205113451776117862440573548125651883507598733369069190481938580899584849947814897429545011674640865813670870278002931955434475621015273278581446132619777268965078402802045424655975774193247625617208852932171381751647452082799485836182631093544574493002183486949853470024273387451794545846229192142703457139106322759632707310387975838318753876341015029266022183608574721447896216422133945660707378641970921226603553649529115932126198461215941287900479413876719099349844117241298209652115253706101495683820103002070127868314324507886393325519973536734170801476870796785400974330086617798407619407055326065129214860786825742136009952283060689187141894181011095973237455609828981992257911516908242882553591295395252974775457336985658726836974346359265611908668541210860816366092517992650428344926472962787501281248349225262293552087650604357002094120595970312636473548578680245735941821574032600158353741125612510884464864725731540028658989036797022006992668493908515025868992720443318999779550714301780808687787076993517560135860377613024464370166031055495380936680583401357126349251209658890188304835853135528635844925515075977972486665745408408907486494624436921108231920241755894014505613479490179407382622253044494879915024992448038896294310650542996758374627885631696311781030757439619272176927363350748469794234140018814369415907057646560968589967787430774544609138166846395733866093427755236391796922673781684099270472885089010228995190935435573338658712452408732297914092075477220246845062429269637247383790778283896746201205202565275081112760601632509757437034173149727770914667754314165720000706992533888268461982715098604475045963458481694832213056116264769249230250670848851332639869200426668603220318442712367266615074401060190993690929758415402016002696509416633915806684815822302449820523818712298328936149041261528759113247543145374721884973963350001146335875913398083647264766627633787104669723677042418836206668941596753194785407072211513757698929872677180594829773611921279006125759426917006938311234608321298907961300382512847622880905809696525037013081550574568671829166922972542073347421206439698938914518102154616384259983061452047284196958352872622599065737442148644118476070395819017904188361949455546604205527830256045080595871239482834166086098895327572331648146437627286124072758517932823535201332629068758165966642086725041986996229201689883278074556610406055403220569185755314015865039029234826073738385615816146625742737496624557203601950323953798665760897434911219302672648185232299914348305313399611933861172792860561551352860724591655319163034470609380153959222854491169897175433227561585016897633207590199334272441874201119609740328421478956731989698934307362237570256493419304941245352696336721688589720723996716461703113705585295495811313146296570197127488981546834122839587990860671811472714308172991025238334867496799251559040748751597281375636915680054758981112321149060720460145814382182991244541236364308828383615805389264546166989653091384702423675544925257708336735842451362007233074238356220957686282427441910151730734024236108800672314527949949893513568724573223948122432064645746523545586779780115178471274249440993988054802857742494054000419020947514207222312145106129949464836359544904538950988613438393326801049908262671825803347082106045806464153515148124626828836411981945862657220884307695679907207875264010090099779361311984646673216743474862608335036657229639472608206409467820961850891515365558975684549072630050698381119308164931628962417895071076825090039403472160176265879402681007006145830422471083864045712488631406818115028411013201031670807519988732241631027143798322819586914309111840706551157491389294846149637023352755142950864746365355009715472394709525158826757607381643662532122655071331162278640537848560791549233779200014427112621254202322702852854120517533194276239362375565374327214691414411104121191039723866371290808714949176716346125224462212704133381833131886692981166087800441770510302344176463379406498040986598708540740631824519271512485333816000196156133444463264850928814266725695979624489514886523644085496406116524976250388637797021996150686884724609520501064692679323191044965129210707790049141076234787938228044870781904096057590851614584638452769711924312666386729657058488584073060509900129971781426640861849844676318069381462355915572707785006537639846111388475311334659908395948423135760668554564994379526115065607515347673852542948174699522188778149193325133185785883677885624315910497561825883656835882415274348915557927445660411537199323441220127237434266749965720783323396116219745683152417350192572463996874013165170610134380416919694158215646561663265985675075482375726515953943872905114768790859640495200157054735973739249816662424211372735996411886913223764560912674783071335530804299370859509001055526573943037021018922269313674171544265536831784505467840062600719804496814399219338775189267987294375855275224840754568586292531809448116239801020226386300937150034167710028046164238765530922384638587489664282341118114300764970462384339047878547889782276733549431534247484778954032919628297913027552035645180342909207721498098209128994746459458339204057203634453887058479098360665112902787943129337010243262184438365573229017115528320099307634191165514841924970683367331393041636352381731937209560146531187433609736951259007345307184114969266137953646814126511205488350653319498659906599387735266481332650115420158750669183731580970048229916189360054737668628772404225682096112975431557195587557258971051213231310080668988364938157110088558949504394708216436926920164560398561401201821280493746294843012331650338644380897019866090696539501669850325696001118204078582603129366236821236776559978154268826393387618995107469054449522300541970481262901082403927873083275590556159777392594897394839269512804507882539159286261694279836536703065996156919114975973129155512233087191092880372243489776572103028711561581448351641600231030855497200487023953239658443616766013124042938409861945581194874173810185844652791475368972682281618565419950684153812681533163665817805001105536255512762316396332740860583118122605203876969226557490928417421666524485041609708391399922482583912018397381837364058259146161940297550910123846949371577789028314742949723732215753740218023313736861559734975971383890249862296585818693370561924456914693310086825989730145803932836770198775293599539020623073943854270968725022933457605644759151034632837185436497833419587347247882184423005261430157529848809542273533951557434688824849900392538341181229161713904134539138031707327523333498225297602636435603746006302144928802321403025094634179958098458768733950786985855000535450212185624170189169435918066105193164701755128532973086642016695932983682457480228668040872358783362864668717776185044151459707843922342791442775645999745071942916653766574725165840634509391072885849810851102407769706908075950402474896862374357629311045753144549552438328294055105309770182306821685505460273952739839520697652760452514237463890632462816648077300170100671980136564618605769700300760565986574252929067679163042309804225879609354561266973187048884808912152903162978773723561025830698479472607665856200028005696593441311939101998182049322954261554739309861479577185472737913582073700092409733112919224583102155938975419122391881605783064156428960542669698361081844765521694692168214158460614458470166808469006718952905661928233321031521893151025169723812324668223796307495867550917459918266980796575052497059454319219902668263012954758726170647116820319750837420477043258706044323457120134042571110929240534062973298832286550006016872923920340810479579695982055480667533556346927973944777367969920042501960481520210938521957992510097880240400290095657191250079169865596914784145464014335347772070685769835885407245708179823259038785310447969918274962700826938295229779076611171258028519907219989488672089518266649093841817253831087272484694461666142446115924970084983099572754740005355333095818041182412689548904730623755538461436016520392607429931303897536280590541722482223703605099143175289610671873279018755248865885737114758560806915397646721136841374063092461485195969037687265787006697463727112911089826886352227012554476037848644683626447142638423964850748500774540949107340341300040621874653656419281821346347129121574122733024673374382875596802423775620138931227206096894290445748549920775492434098760441538483896164157126497027341019700160786633854859684663043388930911296677338611924005133729358222431600492148873684365238463408876239657921632166677426501965328031972743924073979246339387218442453763337102394540880713620308185135850616300945618182212956491502035385557790437140608773456053857079338838575083592952306357025417659725920032053253635946043868720153169874012299412546987798285848108074848270655927089781940071263146111563718229720499695999810008927492236107229848536703409070558807511091180190768293866006353891920544518481839065317562897605531296656916040259040368975074453130122793657388876319384106312474853227410806920655555920610064018857447088056516499483992097608403393863806389577375585617745762308351154151274649161508230875748716696729261113169364008775540426589074430696365224291983819540415889854713101651966544756726298761145358385296821794669287376444726432050092941495257904059758745773805846369722932451383077598480783644530336111285757960877459140903508834414283099677955740996376194194868438346972534085935872035613415304676637038331575504750669802507974701206318605352055301219254546626332778108119109592675287058912129927559009171220009417330295519306582578158200231546386548142219184998393030039495096369947424453813627083622166398077952302481512236856988124541699207835364852451500180958494452301040054528832303373510553576624131989883755110237996993922574291349665507230933220468509609270636261807970291668106774574125300799700748242501290447054062149618576847227083341796496476294252366707648021010852680153935077172095938056340862547639894770610252085582690139953499414646370319802390065397830104406922355723652685962359970419918082306634305463646139378758356519446008487038966337584433761333508996243263074685982692001901681628466722039405136498503481944626279640999171029397458173243753497204904963862017428160628607093701005190177397674767480905179435453954255195002593179614372325608023753650785972602808877279236058334374750742225667379848299268791954873242624791962178182171144858892244006640933968314856093737880123038819826099590711872016226066987920505150641267396365961923802226701855257338973933937030210962094601547146995228168124072619212085612479377777244393483060459030384648617734132114268913071935690868099501009774716835085523495485745948221316420068903115995955379657118087504212486692025363666804935875190536307345352190482653938172871249550992868166158981276197341728461605665994843053110779031879527585841901460376610057123420237929754779708975043860664290226627890168207260175475179679058756601691079552710749980102330259961267993118266564382576591028269876603111125708352271698082579340385462159146734341327814812530708169447142719566046294708833414381352760838131232332501930979010483342984192642992844204587853862628638194049196144319256806018720238964264340790315289589168715218028335376583885788092220808321559241981503207030238954222195902888661600792743630354254503102709986566620384641252476721958492082325971998258860340659642188830720584483000810647350366206888397663804815615480280223550476387130816622930040703441872946824336487557346239974149602938020903892725091306008192181818688545426498852417007429063955825919473802058803120144432553450247616539422125709324291218185958442817235287222145414448636411441480008555498139913838240280841502636856310487360249838046260594711652097898809892157177573576731890065255300784236752372849416455730765007266245523692569510283625640026206237478359535717963885415018802444244081712086331812185275894242747549843385214610318671790816787725615074785614277113941277489155897538378257464788617456142259745621753128911475775304747349917582259026850980166011800330867055291457230987654280189128049304969021011775622224106471518028913665860711818473142603023642935904155249701965158347953695158425310164471251151006837987986549462849902588840050906255272255559956680801936848035022095546756687241780089314571936645837898414550781046588162813631316298353578553870899800180622132495927555886654115484771754513336808028277758724638504015012242301739198645144690050951389947179043637667101122781339067398939318244036384860568904413040095778602433365818409889707066133524634097517398826082050326332654706145645422583134724138384897080218361861196790867056587397194115215002186321828130167414520434264491957096215874422567434065439677445568938938031246506729288397851512616177629687752931988236283384904914466473342109688260888483834171697313993514041829723117689824502243555657511799263823534019980152663803311683291223816983919725854106664236678640234521720370432492994043938661443777808960578091458115223162714701313667739101510717546960425514252468308837488030802391507858105496523408550229004073132607107733647675830428597491151402698714201892279159066833745851452862815781262784770970486004245856956245214649045986374758583337583710606383278649781105207501621379235764661053580422344534730855560964892879810594221167689749838136539993767605370267274733891760966234883499182121619846848654529288276612749739349691829579492529899408553756288058182175851689063430262181092239235448293161374004661965851136661417126921311154184304514828836668689612685547285161447520775943453543667948609727323290887963815509412177050245984832270509430392588511899326316259005300132023155023220873090683959358344738931151867662969621148305161581602498779568207836650829018154723027554990630114808842927993679044360910059351584033181974305819805040024503497463835953133394560888014439173568110745679319952641214790571389781145945167709974653284714038777679328209908926453370966769527500570076825465956429942480827318579953286435130489317900156775613235734870980697894828229705076603678272347877066231016649541507968250455226206747317070574165660794589932511941145606554630107882104680772632557565165418188460605782165081247678422136580967031412214480292352034217561917962532437761251717053635298412258205611559310338098241277903990759548670129221804618760000289193955158045573562846462373112538128361216019346044447791675060236962789258988604827954165908970596089118223397934872401749555527576127955612392149904070393843031980019430579202805479793263712502125479740252219509254175217413389806608897902599405862215003562661642425545528441825822095033198126308318789047583931197972337108758969312189139886536636540015202740003542631895519633217223222360825754745717896443573106695831349318659079747837702595797676154030068859214291474106126627185909622489486044485683266514917204572112948731002110419535379091609426189973500052844195113046138062233972205930457110398299754587857393175093092663212920830246857443879630239345797078847986304525747078269182408443121730010837598863318490813052991887373064196146127018997603422121567441091840730411759594252829979345848829572902629587739138638217720181655142513335727596438690503283960038910943303259461281663477452323251363852935300897557328821856319816116852526340334066730631313150373065465579746235057055009768941505514090953774247803207039378367258999491477756467419828882813259804401925913736046215114969514599224327326809941639125836664773031835769217540833339704480076161296592200129940434655643062446371579484260721483052708655969624258573463467740928287185717376859216208097809071711849353693921968861160617381428393277417421305175775000322314279835124617596756234484455196998608957857833786504266845919018159648796669114339978176095275693786871055859810694623249996318679699312028934745508820819840630739199161335872216777421336448818708458767523505320376527214127971904895137581231799611289783726409027717550856147770048245945433222429318838861755383763242288037980561469483690098827188458610229619527634496792102968297010467084542905161155624583563084676001748979245196255380659515702725108786399409272541715327910809928988728040027838045717207647294261393155701387739227813854510613912898767419832818971931159023887490573385719773358417101752904928297719954845471358683281571983164746376062365854003032663796067897404658381342704527175907877413004309919540322313605141915415828770502936027040791092899071961690238623820485663199216870858087631265467436922801657831992578083199823145105810704458777621292927278510922030516296849189278684143499624133531696125255798554721379082067994576919297631400828372040931250692296684544635573801898014468722738484514108710087278221399033088588031173920889712654274298373613899022661475850326553104715206963405333119761910234766728396243122034239203063233113945691918840243801824766737992722609013440491897733737924228695339462240036391686187613027879117673555904678931139093686153991746353366339571821978109485516575952458467231272862744500725486257007109351374062793055252046877720984459922937642596033387500294979805138483364680970746623013354102007048229745840200275718531237578343355577017086289314351047112166194469376617876716191674426996963616007538359431654705178361931454026176274184738325556317437508587721941906883365137288917460668343883193142441272246789228838527137931152943714045764216274236906629644981674581138074458937291051846903530392807128956530179686521541190656949026476490901135319827747007829599996576126602081338644172890966818546486521043019542636456106345417122820508449324333402525058379107633218875537959108061951287155555234940740684602227267292484352518584794875952809349097786223594761782304237741572329302407900958464094014542214274975511056429433291436021059303052898505786513492636029894543193238717365876786070260973188521337289477644963015668675847578858808613338279145326737118201682895603537753724069038361776076424550978487750215564371257626221910751210619894692269452783622427725648443017963475580506012683444472974656179874423928665485907473836986588079300846999819838896713142348327069435088240975222174375860698082633591694587747477655722880331963723581005922169495795634091922299734695727902354053642226731847477745954213493512585464237593234283622075632019527835058095342997042847714683670148095850901790010219440061238434515254801535706197864805549253211783931602832038404671188593392407135637797217067102657345734843911164160494459507379484943799339114108956699001070819618435657922182532350889413182741550833857090973660411870066585615287980722171085067914512725885291651900636539640939284848453908151367054710980955320483890673978375874338680693850616443665463791506706091176915877014948279150226127984821347047572892772084349850165469308272036776345276265648914190695395998584320626810294909035830967050740864762966207275420423202252485361237904391150317762967286629148950029595136507943249753602268300642582391460913919357859165682386827656094624066551860477977169132745395034164819525590862369256395476008278839886475411514920436669706287816531777920374235494310894176544775412628087700381559818181862339880826944378079874918312068850331509424927680932748694792096080548891785156601812001682912674314641604656010288013463672059309339759166809891671272150302074624542387494001863092968214143370734649813919724775048417867891336700887977958833374652766846540038818213231510659691904903152332875421986419874873879291982629562805148784156552199962744796750880043266430035857165078716718102033350428379587610219301744831515567162630119863033831489818381732288089021451127503051311365979243093603528772091530152502767143181642852633586692889704239564056004217865363139560593428375594578682700293836500336316080564951090265829802730754211692551942573418860547012530792265964269186531818842635222099071686662644750228588561808011209769444420108500746050021642252992629728321223889680304529775905658151379341317643614840675466408741517753749289434782756739825071823779302461777009516964896496042292345770468987055120241113561088815603940322352002399624731658740878435605280797475459816862850405286265007412763673461460820494196723756681667391748013190357229586702402465342526926476838505925578600301509963100084392096794695461419124789201965307415317974456873433284209000041945069537636253195772238632769784767092112160224411942992611237554979429156436640486735904415200925025561364721861267382883367794869330005113809609442359404354413066893060544140955027440300650540761670307513155016861333283265414739538731546434613068153637619644481163276641053330836084682218482377106763136866268243112170809386113468641962131818858333470414018987569421785976517241634433958046075199490399318111060194403130683354996710265503286148292723197156474486244415703557642432049717155029322217260612898469791627027040707813498587005839595817176844021496039879159209260670037276452198055232754910881440286635984909962077733910800448706314538919171283900015565034329622312841132525419983769783272809790092686077650708508524506146804777267904108819859250379674657978560324805223897093223916051435100332609317669205300460575464209200666698378547617028179556786771153850447181062971334673062836712110352357171178970407797312284590629892488686010971994434388290329911865540394448050293128432171529096890202694828537559303343182169029339995586684201316742377357819947793587575039442114723099004872619002234011879259295887885812364050880029696447110472863876409663302365145538702136449637650565939873972267355359602302727320155002227091831936806892261718055891518644080488328201927177574723482830056212116962584682019212619668682269466832152489940151676846046075737538746638148356194095540714401445942826205744535547668468147291019113348815898583935273983082158889153714490622086346180873326400054222018813688529220533885167249109367283140785014512955279418259627325341773071811640853322050142268330276903668408551007547367630724296488362941324929234289237254399633447384257306005631850295514614244818574585090806887435613931524977920382071091044193614865578004041234374190663315823582904166047138807918140037334227393361805665987791837215086806104034180732937290721875912486017897517732581700374555980157053798026519489194233563185433565293202766449121869530486677277629804238457691994127901220800543526058568206964700851588635669817471742660158187209970080941666226350076127300016236401081322094763733329966567301798942279508249848010555370173946637153016797293522062873948869717649057871441084717977922111486701422394354769158001115343556656961143329634342206869198827976318751934687561577321644845447088182385906420911087231352113680504280076969687748104672088917778750054755032989592982615634758854261005842349852986923386383317022116595476618939145593311141216288639954412339990879007889689602189808286365974342239073633479800394151056907980451248508338169569676856837810001080767466610377959392237481934356577010330151237358686677290465300104492123870249402499621474191956317200047745298149738310543560039786264329318025863357461563661832916090778435186927359465518087218351020395624610086751594807310659332361254360232429758463337793452955269292714541232877496847238721202191005081662972348541718351304790425678308037914464804274080668656036567325035308417370638150788050447551473733807049298635200307603420796926370421648759540715357470893364487555795396590151013088504907120847812946630806419987749612286286790051392676010114884973569361105125242907131532293959258493478627542213653259860492343534716247952926115278088778000855491112684761942594965118779008799503880533595998110098281004657708668079989101757596185098906000827122996747587952626851847461729113308112046922218230044707768224329478302907147789743680985871786998630683255228471250122565596831850988847814632034624574958856498483838272475096489599062883941620149106487485929043497065538369869099232400876985892626325842694431326486625192228314788883664488020871661359974175140184415568108983422487858422145735267650118043470348743813411911408211223140767284287547142721461736397319223621435782633567587196724204989789831173416448389135864559885614767912167875507582294384222027443576450799226986986188226292823454930773442082917231887950913874816132546757537747391259330553859154992486535965775144893803428883149573731726983153443945638199863808176929961557845410073858913891619491059732666379826910491401903577484065772960676766671467055707278173883937537197075856861004016759035756783364862398470296186731208404642685483441149385212906623408351274352355525826268603269406332386582701208646507888342138865431132613802549329264018801811098840781170052998192335922051595638001095827692164035187178139240808469861924563618420303830444153271138791907808125293319911474012653022535186872661532644739482080773316711640430105628982203685287022152341815266382874768433715906313893485718167866509818939961749105950384622299106040344529089428463945983098486774422545193385568381563990697650465639425052249072639318588229703589031274313710550448470031903274448761559717053958907630917559292777749085705401157288583408277475730123712147157176871893827198477853401978814349480135454736986919579045581826913764630462445761221511766117470621426539929077557687285146085450544364713744187093054659367288978462485733973950065219614981634006768219707427047811161389873455745949604151584296944071443249973914974994472727266513173917818203513897287714576142525542789078871797241561687449077294995449155357590558042631372555667579255498498564690749676408639069948885961949811286791626613249679411673293501655726667731457381102568436522981617024872122096261815578763267288933939386325183181260475033261377150526942459053184703917593911105594846846783269907244055092028131022505405193813533485822211548290132834325742792545974557487673137620380696455758100300440982905487576596775540166217320637246286073726555036561230782823632818826295120633746282286076451510875583788201107532800110683020620257274600512961872870183059327339994408161496149662249713781256119603763636453496283648479845517978251847171195023337343244336197667655542198132569611144622170809059361308051098620759179997788380257720747954739816358614494580898700704121132013654403369526343360693601063064868792821978783591367480320947270156446772126964621144127998584729217725971055459144379378137178361715723501459067843100861163511599873948741776452495538458310344199468185291741464319346846243953263049458264084375317369618599497326522214260623487258241469873617986011776503335124739005600231244422051813436915569469886273982813449160454812469248015941317962607797691854459799892619489830022791444666018052370196829930562561707097394203848288199194654163102200391208072640166952074407525516875868465652664464351993296983730456719349404359396448237287774147068405277189210804681839378254944646005074805200502767763888096984105718880432870564409982352347954332382284334418206741831861909450247426889865070232251041836567459980384899019630521546280118170858630419693743520997043710827952526365809271091498865176166746130062786338107956827612512125822751646351415053284856093495768227494762582679057219103914916491447537997773607666759676693876026413617381245175580349201304330310669708816263917339048932032765136487276961954382552676524967771012456097273160174047332809371966652525131678979030224144615493583524272228537949706396237952318804874124349196249540201250639216755800825030914443659515165044645076553947828722220243464087602602454278543742787349997417413240405626581191518268877344961881581648698635044712711288150522825388205268937623341588445028251769873023362574469450320714390540608397588977910235998807665138865434636241950130231489732204630805382179613899219724656237087095506960168579891219863390489728604003524291747541029127750694126268485641523210611445453247011903919003939876010585485491282626373444167722553398062261856759269326438584843105188584328941660763256518005352873774729201410792960014134195936952045996114080231838654956047261956504679879510680710562323680874903850837202090765147828350172505636326908937426892054587322862794593530551956181814545346642596156714279393704061125320719526136980587511430191924929796010194780433155325075013139645465371203903743253780457435638685145565911236089404832439231167750821064639329685556289914613608428749384940815119375728424299885099792459494553550821474803856402980206679318791207984482822074027687681811237096370001027567460045576263163436849723191414251513739988595464616409319902827473536479777320273317206743208830295136314361653651466453880675947378569746015595521828257711920123158244184033032266191652326101793600943454457900899397478199896315004973883439442344039164681253216039853131964839677314711094346758784032071310673217265485808546171576064286592024767705114465195455883667715007054670619580166715759949166337088535900063296633848027443448776329506274893593380499228117810494716847269099595462242751855202867189922083473576939230340217239801300435224192934768468900254877660569356160867806413092609061969260486653950907063711298690849813244184516168633043958519662775255188897561114501888249688690291544849682808075513174230543386141547136283877900117916652704180371545412670151580647344505770106973572281819748704299728975578585723879424842264766166491144317050212984880733074548438392352083703477459447143557799451280117884280679824281591306913904170769341619539657096351931575734748330818988296172833709512137827292664821637866097619575980254903244566713948523774261710328260861213614735717231835190848972126519799991583322167090679841561887008416436328186809537542651445087195822141027284795207124272987055716996051754855995898742706649667440257246603967599316503699553848167532285396518735322564683259239776168299271359048971034337867982120322269693395389359114916544332174077953835573309978941933965379529661439243694329948053669607376532410963925078246879343066236188734642676975468860690476870147927913289080964756003601555716044820450950891526151164155064972404754222286077730866093520007227233984405634030152229213535572586332190034327728295093379832168503360242793868190728923620863949351482188986910203671184452167047242102396648027322208301757770795377136360305312120801483574024085987604837469748593741589770922842979377845844198213108441966112754445431367080242463518248988551284229854766580350461933293931405414468406532744559092574562150217312755422072210070381458316499777008017349608245551450825411954279531972268690833561092251871164817080053552745593157187478476064553828350269515420946583224725235816897010798694372380013720325443539589241566624232467159079874634288169546042267183605815986761145567632875591507173964539401112040432786118755886825722127861970714931046365721711584950645618268247448032573749199008048499442903561513359417644934549656917499638759955354224617988821172548862755293432023405901661056733905353666654080955931285351151736833416604699768208023506551983830243163801600430895406566898851014075150473487972094137964884221460343972616124747346974897933704596454794383726744487713492647811204484242721551868406384114783629593288890954210558675534979111178084563422153387587815034584001900785123807769070068871916853100458041069111986538978739354923811630325090798631635018774279887014968244696159338281038380113666414522546228993977191821946776062522750133685638561922414780736367363582370820899331243189987708397184388978661605217297359134035819444792311776905519217752858362769995650488709299847266132704188447855408342247772513159525865865092343547643643994320551235889101123555543336679040472252441069643654897042254353095174124739471771622486512183138169741584077500404069968185006613988857965639103785918951525404504168706255234197527350437382249808731457797176668396367115930014059803455370027272036643451998412902714148469973611017598392343699831995878783997333864536417084859060821973159309389566405069415304187506935964550124355479634052258854836594131066592634096700480001810187323003965458347862589727444642013048079490755485611112547194398796535722575094521191200653462895988048939048456877745767378339257292360864396112239923912080269035726629538452466243071305982396165682417551690116291159927258827453965382337574862685524890252514574604771480577271867923221283573538748225931911919165679156578268990516668658014763168303190719739657698414095735797792121815510606650575762162631560304272521326958726773883736986858497250509610767402733605359007739301722542787073315155879866792305193224561036003979047388074597044456847919876819857074210354201011504954228412916910636627505146394515134006767156946804632405893465285617297972629967107082600308772031839366552991074136088847504629675283367792266955697387955575646549353857390063777593273811713668726976250766958335591336225829597010983948660279282005579732435942161225845618523728330524372779438016118958516896576634493176981497981581154987893882565903726489540235219450479526002027309768072554984552150016710123346337888793435355759951700410470609244040211964589733401949275176425693158902531587328620256482837943148877606098665627163311316567781480945375290408295247339682064301343153228383759603201024582455335654637610545865063539916418703502540487646180832059417524343370869145269040924850133312272134825242740731908071958506623026856442906302024114312665478626010494215149190075571835022115898461630346272752964637312968505833407436722114681847932805050667859049067747692107029505429094953921941386151851910418588499962579928263058969645580408954412751979942386033940648779323684920183340146378149521806044036937475270048876954574267058347567558789634587891715323053943921436162371772287348023282682274718636032849089525842035638434069328381473826807160930516492784633760205045196521526078144267556302178132980894957016140738017201229459552679665207050202335275064690863530480040492628259953001041409489560170181477142382144028179046671731513207111741486875943299893094005775914992098224609591238307742331477585560727277228037656245785914753603342808882373573829453141681013725534779563065198541990167732042125253757380252511648951282251117896285660111400656207190134740418816803095354675703493363379853742942879575155209428364039517944175943691150058204043720216287766151397690347837500399726958147834321495019440936722510264447692461667047310239977870686891967167220035498774285257138917234357852778893475616363604571004703105629831434046932525023902289030143638088283569202479990869849129174282876578800178122651290794950429552737970397124204693436519692418480239102218361470514526722636243289648535008689605033319996308486147592842721143374281712390223652048278908051771638270757877768960355065921000970302809046565677646995547258805377816487402275470463179524067227530970366895640160650887029439357878781200919718423196251891909564323317520079017429343987847494257835190131107301523805232413745424820054469525561825921252276287097643583888929048574885475082814058845022591366091640988379397894136483569400367697025343136813023238637314122306929595531381700698880125880286460922398620119996678148564326453471386168925654659873321399935040251369150101455464211260503579126791183658391611775163395039323971516510728397822397526140666111907925917756329438824919462098157838977676881851053520682038518934976473668247240504745085523463266596466446859854213210595320898308949913638445225309970966744339183629161278307656213916210771624448879389554679077702131720752630007874905843351282303564530928034114286212844019658355617712673077261143850944015414156901853376920881514524838161183853258913403181949852910510295032807558091488661074971763100624437453777002108353462897999040910877507955690341083920947219638230429408530811233936964622572828159972241615325980274126586395722914300265757660449936987188735799174749689272238026581205227121159828088143565655305649987317697253340526085214076592908273511301343386464210763183189373107325237055079951992005101995013515565185052961445563795443132770663014623227851124688292517121652877035608085515210931887569463658564660494125378707795048554982755049155629862617565426001183632543540884914649836548955082218567523646239273206430685110066843966784673741978955531354482159061648699891119087856768994883759791923608996694261772906969558253716493953944016799694811779938291840762902797153373754584900597905970445536859916219927931505828195268130493076871628730347089027833168756450925310095403903144786008571794958500640862911922161186708124233992465573154276005742733146328533066798893813888186542317089609773141524703575241538260859453680628209138382045826293048459831619110629643456441992733745267758554666167062864105846859980121092908494191773530836358492584919306546170535663250311553943334604738292234069183961723191357780924346335106075683730034149037352387357698655506419591635240175437881125450441929025461941146508465192759872638532185868200175545396888939594561134774775845417686135198600647749178174192407056935422168919197832047923541086745194212516146481712982522885450357795951808556135813201339283435886582634933489801331505357376723738243034736410373882447076003343534204904344448996697184845057082598855488863417491570462575199432734744409983394517508228541669691319621397657447740153789785633163878841056694599761020223018996032709779683726847350323435088839874830555765435074171057439941138438948500915187584561682994983553667152374162563499921832441216646309209600688781599957047772266665897988762426349277048986679250735378048688249605251312865782856232870440072065578769658996312700976344162895123689975034040166899336045365463510423327952963802935078574059352615216200977372031396831440372615766413699026189270025260429673769119272141051367445571054754646301934651026068956323456433583530966355365501145260492283918906873137450430312029755123033885544791372843177171092423656822456049316460333681208683802917627368474500005049735868529340042072472103606226188598734579686921626196614117059415530669012095557028137511283789525282017734807084309111514963897748598631448500583815227117813460482294324672172898418175617352130101469066737255328631088116459662195858278624858587995809098493400430086655771470108885761482913177901837933508690794078819455104854486704669783397645207829572642308525241654831266817091745643775612732338022039775280303634581009659550839830380506405827447431174663550140012757145598341850323241220417982036154059890917228180476728215684971242450923615583950086273944231653048790902226107312495247847007494805177226199852566438428913008000986533038746855730004846909650663429771567896436843281399419106773597946121580933304745063642457160917775696961970175254316689264169976779742474598400570550130340585668582816050590897461418159001004714714236086354858015058325288472888796271528335109038063571640705765224473595556677969703535895185407561190073937793473855031345441567746610089070367408390129325334635539299747179771978682808927805872289432117573624448816649135701931898002809909577075043199161091499814695870013644374631653369784386197094560097268679393722912255993531756731575708510887345583011698224152963191941852135315418111187337620204566969586093498891105098464588922623239848626455338284953966999152833282253152507448230766393241258487829004649620898322582333071290008545843130296864806536116665504481614862147135040000466072995610348975103227966099480365855765730687761427275258438915551597339726463312244288690887777309465913548004645242845886206851182768427607053687989216411623671439313900274094352371496903643306459023260960849133012872060635465873313220737095710351777648491897889930529918646822830938366048314696426213186518277442493337076989408247009744305878210628693558395263671805313009575689352651756767773858067717392086619443854543788722500588224652448068352400282548576949201421118160754448960435485674335522270810322947995129843641476000525644004490109559857303251916845678624124895741239630275893389268391677103979448681762897791812411610397854726710157604893108518023200011053859417660182440169418978038302789080475540397102614269523644209797067335212417991572974645097907297478048163087692006181248169418947510117794474454561646003201746640311933089656489455876312902234731358112351642231098446738468284916142636808464776826396312763552828786486211907524621394396578269833138191465036464439585176744828280147903756910045958810547853102458115969789883943256507180873876444424304212842330673885398363170634562021826340765288155057336790960946496114990486408485984982744015118266078500896240873466834359342185604775776235755176318326294388002864587028741559977390672579220645258224953002345288229033977341428192048969972606063176901258213079635002017517649815308152597086876908865359047168891925239034006148622443438324443467001846714869730806348384384044642003835594610638854664543216705147518018999820416131367330311816048710214336398642834390815029882603726747256191405356793765106359468556065169669591348265422402776353697948897953551151869896092922789870689284335846772675357985913811842125753641724473563691575882684989960111846829798382055242970506962480358106420870270274546125793861408375830308422192656901089534032969901769636337146267238810373326920209533923364449636838421382297608554294645039227540810817546381795663976824560905916700324550557520896242920801185318023450341326721387067209122486735407109832653580883626112252842289542172321344502977836103843217922091320570263620601308011376735279643381074259868179034675568935441998211877278174736846994469221684978189147738715050755233802913508980267901045928121920023934250209217781899255962875388610164629768916109756862559531439198886313172909751232424312026613086062531897792967950875624191082409987716978013321425372614051713042597038605518620760397919401846225028658497114211462532500967287708803976937903808107265274840552513500503405982010971678775582770762577467226845363686995110471982945337844057257410955561841496690759802490907236216464951783297544573097170263111968066442965368903758750512658489999718808970414148181055646147213460297923610614130423359620634389301660592009734286309448275762693633194954472068437635365880694761178554037240351158969912167668970437184417523017645374019507825319770286121369396444259075467218344198627963233985242296820687458845298422759985571510211863491321280558984797145367437927862564177675790628199590061127479952779200232958216422982097840903454002120846872691529569642449073543851799605614451235208089851322755647998250119124288043780208227977541863649079608923408770705589500492782012910221913462346595295645505245392809190247197162672829949336692254426351780035797362681718530873974858478460827700112979796788625956583582900058296559604269274824945514880572026812892105592449381716410313715679819914156823276293499820730911922331125822393958644678139673936578018291101443347999882198328857190637141054721104355874477187201246224650053635168394058361526481072697126243270221871719632080522735813561238755708580041095681437806244854553576400923833978821216061096772019496956940923708016887602560913812464889212243095355135699636076759048550264400380845365300985884188508750535521094432290807766213218930191240429302973950215488105866361513061151832725781668508675263791600723408184917564749037127794429313560284816290119817220405006672743080275335869407325559015700581110785642618016129229858537962805644453021885165686968057099072221936102401644945305179169527759772092019611231712954524928146053214446638264076493094478559036505842499253354625458882633978068106857989417977593190697124175584148630556750556127089012970945210594046428603263266232571443930504858880045623386722025629521929606553541813606967711513416830364994386608435089071675856871056539798089002824538770941290124228835233987839307746103184673242126657052884936411686492851855581307293498205611687251914597088791694826649170055985429180297030433262677865971723401114401340699954200198296580687280025028827448433205550834999007102669050987183761930392351574552844181419454752841869123143518727457485417793727520486910264698334522843274115783644878708417014189804548151496227040002119927480602729089873508087420569303493360753005782200930786335670771088533213421005344753074707755806998803107068788892804927328520911974256049049322178044147537949796860650477951439492985296885853395383526469589013251842507065379424545697122247871299345967307286279867879854980260646499653326637489033525894941549074094370227013893549627108989275501802939746087698565632649525286793548406375741230032485505281709405124645894523399540789981073922417795406046210932826292450172928453950401239892489465833421279356942582559338528905974843017909676623378340050997628273394383156305361350199198619078071129120199051655634863038045938117723794559245883041324469024325942860770878878852231693445875130558347513818183635879264736860436475660470099776573182972692654545404267783642360849663009077033205656810458971967660380340937130706139449689853132875653337538708769315587511843541837846319594606984639228848415341852912545576915923165612127482217818098237125654704955926164172652614105573178552464288485407784650793405773069451068120701976523821661045724718697865086910903194209675045983819777799797331458125460523788637848377261560808290614603340835995111512777623336394534603108496770960379663519196584833834839834637107117483416287648026872401370925181091623672705847921084807976624860028610552966876652189472542530977803704401038463937279427823921861970738783838569730815465848469101501830796454546506878572949468266681571826337038041985867073532479907534092630736902256115141978240584390839529164995100788248264894845610667513697072488484685849432678153715659169342901363597649214217127301505007336440332737735984910994374111439984309283146057893524704874731989039574715741897279418591989561639087044327221291272057983025412707361863791346186737190547911151140601370484911323145765212403512763644923808087741624516959743343380886658011207284241349206098763753226704066566147420314667830647839457440449421826242369537453985019076288343139860206462305682767598843740339474232147666289777945059157353025984552523953550267740014823897085971019714962240376906490387893527425613936708171493881002890357053864536894263022209679665099208694491461287896714919879211128454811686091084481645706555183220995493191060210108722588950909308213382199818834044297387480671944059486342178472398558335075352801869168401954931107752848429463839997986634345148660080635286867915624026556505168211974544994948306704464920245187543927869481025466677382538996374459901086345865537140720561115477445914611753269336151851488449652910783565092933355827406134848364123400763751731787496230022264603571394612831075717400614711977042100142213625313523769084545885021995101535637344201181983547281349765174892182506765266491421628075103332088091905447400547869506268015155203538594874205955370063025745245573994835880743968064090193686040255622128685629274715251513459678792796947266563597732678290037984910463752436154049715873053446543336083640785748267784627798323671496211207114917648914640877134290936045771357980803167934269231482026132484001986311598377251371644559409376352320259486147597623650180095249877543989356248105903347912167745860695832174120066256574120651883945329737992900176264003809915014039086432332021138295640050900867871499909708158423146634629049036567322742588398712883501608112133626921640882292473095544284385290876972887506009124753089539640205565335858906000010426066001414366959993661586126994738720835434283300552279124192232122343362115466867418701751011768506257047847693236348057620684362169369280743755594481405805680895304853616822153039703276826795864403412741263583426237235910292127423744216309746504424617584436863702185705034079249371516308166105109292415572273604821592557263012982140293704463756911905328235913601050784621627094019426788549597361373341567903182816642710685233906057506551813963861463330618227572409641619178080561283066090041646410200363271887029408565272880837094888454335838118658229840273033717229771453129224079189533115996807660247027610907732727181488813896293849857194994606056561808035620772297522352938665593275329645754484359744681962433824675897804512408702502362003520679794057905600608595869742133090953083268002289869524537778657309816951455406918194936284931456838953764458345303882163100543021392599399414034737229144991413334865727043230731296912044083990066151587295767476072154424878852891094669656462620835509826205696133132955947081635904534166822628784300408209358729857886646065169179669926092733255867722985680912867880584413649202873983155016264747793409514710192319723015019077040237010642945139622704466290735685473537772126360500509261607660996463992897450680016613767279047149150123395823451552815937814947497956410022162818495889038333487614040135596707133789865703866457208752060146337088712047853450710357326681866424789474464734951024865925615208321807469361870026053735221803619543853669415799632868823786594853476103321635550347139094358203788954471943739649524911401267646354734928798846546315901513126937647993118755251415388774820375013972111384953000012713691743169155244015878630624623106358439509250268373482695461408451865905898775413642002611116801609273627211695331835210538196307502005355005361769925608961524045964045535364743113285153510310511717411713970680736360227088641604438963493813779167489414496870876236584578281228374478679258035078962495123573606037974180460782079194357300063627225554027097964706988235143523441805475845992946543902524893678190402504224630726762654486443916923147457726054880818603656941640449063133512232146659932677593975783906745798257819498381163027844735482168168045562347757382717446679258947290373267286501134730486491681745187815112343094878774957224728639000745545545619415731806621957897358336996183419845910040639546079788449221410228124700786007634365341139173610689508028871001938553906067170354681578596625421384654291154290402072935846746630422751723866974529780800368764999713721315795533062043545075273307566401918090383062635644331098256231054455340369952683221765728347622389809099863036209943467427143503823633228925014514319570549289957922933008557575581707971504019562952573540207647240670080159853582342575431334639115348772028872168771876142603450703429350660339768898957039776542279091310208774978315838876136909890826865509267798203688616395972609933861909126937054491680769449904870843307744897372634084692997894740291099857983210578720608283412632370082169499893482594731543363405666155040095980071210733739610304725285906503793430222215351274348293067513826666094159125833691678613406997572718266465056880755552805432089039579231366248416876196289178542574979809625345321339789770499381285075519583029372101495744158075162787906179234941775261872444383521257907506462965776676572461462189392349048463558015632149869215922549935789499149453095558999506981850329849564872372811953801871058587927341559688160089448323323405229307014079841803296719419284001751350694739758704013599003651048237534086498060009349425698208003744654017972387127636615364338810856325293181687811152888447073985341121510746157000995334902388423229596117308929571131699570096243973646995760702833201313636557276848354674495632753578556539261634803656833330659254094403592446372710293938424859208938604425480110336475637755480710872772878212163779359206932251459171910932436215174821451754805668230699355093606733220648921501662770636767384542560060932973360400756388944934288378042021931715012376916491840255460090788099046652723970441988311536661864960748339829328141801573799406811637727477372231772632471366899476505706970301264268309577068294481587347133949503477847028054715138733606304244246680342734469502067454557674933930345667558176684627075258010241359927107642324898487389622148317653475486472867334658754312712067761590786199950895071832973937454355479385895168868360705877074888093899980839678268821564092920836897465946031747253472551720606003286051297962176001606528276365539352842307977305752384812951835441078025192083363353373026203494916084790532660099732209014746763486420069341411609741503643970655242011536391503268272119262979642637353611209096358720520196558313982744420071387352449237678901439182539429199176038609295355224912513886700091608401838604647505451536600371793811545575495023984772436731356922865731564647793574586427447342381801016327741983232808342232701049059722336449583385600940297334915061498340684451977542311470430684856500338486369253545852976358313000913965949713627761630589094163720944050006048103459119397817610059544194107013580473272911075231289941702359796776345289923949356773438369719315549286177431507811038540326111895769303117946024032007599763795492385007084765205744677834166739792007169261481312143842108133499657143366647805826396928449031806196708971166626954380983154698684733722223588078967828366004394042301193669793006150389767540560819722520397640134792779890727899389083232626718602955808107659191126949636964028749232772740834553015579333894815261567716806243278054434340210881364501442815904017488315224654986938578172836384301434415881419165895993770017255193247214854832290621890445454399251414077037398640977828138730150858543256992817995520715647083553363181422153484593821402201187111559512048456645324012357118645385776951486680397207476012718785950086618776050772594913895927824711721914754535721694445284616040193777467045961964134955733720665259900753785088575766298492309400651883977121509828174659107691319073189914609232544187440675694195776501427217653201945479331436337423857852910646638711635569764782579541326903119784058895786013443767569224230467223995701372672877107899825224152555311214210059014815620183524904378214742183581053927671724298660942511157613379699667277734163630586268673286284725510251674667373311905349036382840271916807064732481042090445162980182796595059128273345125582088595899290576846876862045722969296492297739234908772446531389462997878579362349024351826026000536802352151795277452821050694582640830238640075263007446019943245559154458666195163140630314610596716082267504918869377268298108852992940688681473291558509125714773982122174119690734169819130703307799790995309355024682739526216049816275063120506165274281980026154301426392321646277184579594049705096119730045810276166199228914353016768563937861541692643031018386088073518077016285536237351156362993207973899023074258025405739983482049805000220106174288349812948075081595228642781831721203696436282457050514290238513184185511200839234589923719094942743342305895864705218425478442426967153894706023062275498734278906499967338319715375051306780074356394106587905488159979999708210940271983738687869408480500883413786046565866001503997574034131204106104893661052371551499387833330878562103864395196880396680662092466065412338982135708425037357750839799574707718725484332822473886480982116305640696473717883172055695163171555372719311239900226587812705923725239665752553077901798078826586499250860760894476514055936036935741552328669002053099819042219411813531276175570907365888008855509935140048083560034528073989501434142009071365244437818293166649574866086021489324906789549168651895581506039023799544749913187511022897789223442469494841862819078764817690410856163674202953691142071560609517802900527715606927596769332997412875318966886643969487942454455980730150543729560987863259593443745749025569178115402025459782031341957449978192656243283009027793057890718688109368271526608966379049446907580696057905045266212129399286288606937009668674176943874796502902008047393809173464075413559339846259435771729056367807749408530465668791935290513146953589198256713316960544141020151325833114379854340008788024679952120494966315386988904049675856153033700091276622389157897492004348320835140069645822561055014029886301941028293383994739817859520408058125984466670277905296351216983956417719192581003297638403331385669672914776861801087714347107092240726673446387867669798037989250457013158493446037085424607383693117964284682144115174273050949262628020331012758164003365818114632692523682996088755589219836911159702044295371625968343793713737256225438384077363628158997689381912900277401041477735056609549670830288546897105890643762348047499227157952685348833094364277422733978331174797680306763780901127079180137826596437380171762131183385860079336305834134892031944098441656293996675402350949780884717290582738053741231124134216837689415385736726258579123868784115986629914043765315960556252032590554955662688801486410963510113092654790210665235100030230710776781762632339564801226373824903400908563100628742258315885048568085004175379621654564972447831512944330808017899538557660507435597736742397603052095400240980599139454798558885182969711024831383373935543605191690454875204450336632730967693564074842984742963841937804544053177056335485746348837233377633471481160284514983451869742578190855929524009956008149770200642013708803108937130976201027210254443152723402584602619152771009587785809915721261800952303599114798186897174055369576264369771310649639304263559746569008272608217539932668781586131999425210879272187626878629998691946225384466399214139759247649133438917959750850487848304291616419189944026471770366550608615131952373350123550962647965400496967956143332390305770310052749782007342966986026150902363078046571058309641307643209763812980139799104274179110789953839058949154042689513434756794838643626154264777001114344657445682988407327708228137999834848952615974223361885207916435870050316656816556890602354840116180852971495974839702627464914375644959072017971776859466916900350189308310398695898814014487533353004270765479640165044923181954312326301594350501534198670779510704590719631597307520944229964981023143320925105929250198423286541664084283672931936966729466959738996393608710080813482128769275130399655234948402246577910819252145923566265015951498549484765291151180652093343901962941362821824969411812536513247766596019361151264269507616073381000593757235528571715456905328491387658903680095231475729533043499629691835318749046503591366667463172833340805532012899015751686349371171064731357317402773053639030830955754622998628833725327877050089483955756558434096620311496714089388014050331796561005936372290481691872421405858608767242178732977239943838337876188660374529570997332539818658120224375689358866701368151868444169886644400415165992194902839539892102502034015253100972056684237225041813698215803748097569514707596142083634023397593839903586861430923425030692918161336645467299981833372881549501198800848240077381429006145045400424411930493401598557024794775298573683838963463920026019658308031619165019931434363296603950271440252736009654918472446511949503295805496244558997000349033304221080073889587493235572226682238883952800365010528266607352917066932348861984822312018461273118565303392741493349944545082585024509219940847061947234915999502112980933166274742999156453029199508914273113001539545695590636643239414087330282568972096893798475577432775503225238288624205684303489161181145000030231147074981103556382946125332584434379078394758735953722263390752165208241191244481876115219105855584192945397378342773893844110341491593367918213734371662706588050586361030008679088438504185064310960611029266386262877734054709947139218967626722160574529625372867359741095718652677848290100652477934199295239061392824996264493980961242316896428469236161061686814380287647869141973672778515617617871416881665503527249019213256528995563271405473089241994204977553599824402161006525799739869919023667231130294477872818731168957158474270583122974196375892148741991604648750148174271527184589383650755169317949344186329564157545170951667658282659563092292575143941517972848659812645582310672528327956202857410065414197892613574827281548962187090591569456307841120455606531311719408177709253593481480282035246428922301280888978901248999676208946743178690703459627083428290057083172785931641896465816366805123966790020064136771790235298422814027866383639355561452897961903746773510854629409831004306313504109987271610929777999078575784564620885818464232995237948449240398038911266094705650810777680300692041778818040927160226440660018459364416167021027827443965920624537388756634300243802527449683813210375476474443654120438679894934770763064840334227774672503370119119952311223655656210477374575869958344912315956929169320745792217412953194076267821105271625589260692590153993834179484618386798234128489826510157926789107282745459479182344774115593300347760779263538210631234840404750805258539679687467407080513914520704335991112103937305324852374838703838715902867314410360241678954946706092702949016391169385696196912892425896858036726516477502801892492035177969033159353122416012848488610785823200295664086614758086707963831970254107161465019737677096988326679814472271074240492355457513290787820085953835231602099888347061625744203538715868145821500465979882930699879014526534023849092693545937158225868243185206104241882117271337392964248316467808129610343113380503028407124923870606297118520960369165639063838603344381604115490809871192461880280179433841003935335330957364589261753541246801388543661778569022039453574715114305109296496916116487257420099220072224315365977632499908966353883519446911626079513136736878405619225083792560114724857497675176176424738260102623803510549069007344461131329999193949633859717652348525391300373250943197118646806367459857133962157374105786201948580240168966802684269841332767558443606287387144670717152776639845789946961439630222312093976070123073502165233464560615432992864927955987292542117300780142753933890856984584488670667005142634650883160251717743613438868632851836294984929629623319715142188842915852969797566867699551060492768878280009168137347321533437057687228998784080890260224241630691045894693103615937835536894850623204316517420902610023836706504361566631632340775868179789934149495310281231057654309695626749199413648777395806051194540623258249860887701244866800038759789810097097210032221084576478545956924251500069474412345113985843413952234687157870713802894921468680200403679196655412499140860904962333202383545064242273913334732562190678549894547641842959857977537442384461696133314565103793741860667326270912810948627523756950499634626424710272317463106301552391173078273777864198203059699417248829330419147333992343371706808804692098665992174777253985481986750200347939729813615482508536311807135620195626619828603619676331910007936333201917153874014174316932850038823101496346397152055155905105634299843585053478059883506288109052860907096317669720215483303931224288636399584403526680197156537259432725153175018846307029713695055459663830081738449516940471112279365106469071132957635871240779837409148732899878704731137407185838470324497831569355398099614507513884624284611849073628444722856218892660014223357105652228899934910047431536258364551081232037482939033314489242613280688615576264085025455207316903766375005179868698135350833946139833932986844262541789751405430047129512221888553998235314587643958321533450384485752910248702123021226464167035291659871515463105260113836619780492913359930565693702836240615698551866234003968158184167522747134482448551909681303615627650161762862252073684062834795017665482965163565206918810088199794918111275294537215246393889699545404629992167571151690497148702971872253641513355187570890068036325813760205201697094988383410339876064619208415527952975469348595929037762325939323141239542014033002816006134310542153042482771836399826454588437214563487848182743803290215642756365035718824816599234844347228826102553090431756275355458059045425311474901243285025285520577288785731994986910836417597740641560046145504933587007321620778072466329800524320106215782970679070506546367516867862726793344183721867283123091392930681589545540289762524382700517875608770986927324527886606703026035986927272578799005025429045776334091908877706425366121583630492067794996851882533110833337792699902519049481890285168279002908631094134703821545266761741998777194537572066518297293500742519183801851503775898898849146402040512542299016601916477244489145848539727883620406958487203036417342751247160308314944054167004073697102214173678543448657214392548732989904403592288826864012827903461797885752927408132982065747842816599016438248530501061818909515995242230521598250145887318514070762551165384108276021654320379383293438519560645016079173179763989117008591486552955773180928323165178231094147656947558343859069725667576740297456088989171498431098214129121952621966950549743703494366284143354805149550680097380821190528721490327146058420188485804787944787635744749634315034947434083535960280141139796600245756398863007609540531196978790542939508001660404108647704444168662875798065873366206728811629710156847118676560215681235825219323684528253990072266737412115679244162649567851420693697429123638767492425034544824075617076249270296749326509016104176552961969804321794180448021629796140356716598764823901098356759835710340526714580884423651821850381754332652060686904071428912123561490735568203974476101006439040693392415999291173612986158818893785194641761138425506155702484527966023740141932625244400718481387701623226684553437086987691948396235568752975850993323174523385113957144728131219946134618197545304807622246509717134539109327624865735599863746386171338178194287042882526808061909463354498441357147718938228390678961944670657421118836760754605948626453744341685662941031356951724722605808763450989376874315755450019598682583203721638601756133907849480550326557703979568386067194657616362098508021653233715266349964030450903802641980220130955381244363100389436442345692824075843690970415928342200621419057369426846739689474779659214611214015574009262499940365751662454668147964310693169553906927526383616235253132837996711707332700826350033755916933650084421432605205781897498395748578790630532790194698230369160591354140914205091552541084377744157687292263011456269272716790203154017590209469853175139031573262307259824044594988795795804067464668958441746791119587977710885264308107098174362451447589181562488634683906669564023217625263969881231000772909286780572531923473029720454585851873579277932020150417024566527903105218482667627548306014680160415664062316988841522685106154542131373117841293719600795929253859101633920511128232494321162990810646128760655791934940252809652216009853335836369998540756710416749254801246731307724107494038032312754876965424936771597765410108435340198163716568998542484125813661124249642184111808608079495152370251913037655936957460239818420735915131430310882130192371055584490038084657724137198786185797295880522775514491232409588345725092515383177234884628224621688753590989133395211124537678555404396312158386063334915096892833958072364208652492233017366444697312962979402895044841398263030601854519662882310864652660607711506721550278517622394158265856403268638662491869665873334991056652745896806949350901927857178348155184286175677694346946784103895643464727642024888205948916879524716906932417967955733213359988247610263512368673486942824314434162874578215800269155980697715252473789902531652430316057300177836023454748780555251509314050442140022171976384155239607293419373447533341853126665080807802843760279267012922587387926054167314656388685613271973327940675347626306161247527412048104846619373398748006886649454876909007300575694245780235213087657306648313684580156140222192180147347380911263699187827134495991871429498178234714267450098149608605172334754333096579109538922495000192810296501138728376723386785143531068802571297101756300981074834980801811995471136594603592881507629030532059121595666927929935967638928457969069219158313424401725886681674525548475635413000584127882237344427148047573421756430956683694317424040724601332354845164861927489736623247192704373404976841722213242623890701266867195356165757256009594609648728666488434063622619746301936704730739163488718001620857287042681318651158965478707233470206999112436510760051701446550307407406830445521399240913668438142608565327572046341548973928888189231586843205255419282596413718901904730419025600732252685233514103269430384470075294530157645726111528708978694104829602543065446679218209048366500193646317569370468351487840745816078952766976147160586913054371214390655868686549222130517224970000341530317886768155884828959084676175101277585256261029639106852163239083139891583743803368090571875956014111887810052224199404105937010641597580749446232795922610486165503288229304202263671365518381991276078662949176606734831143867889202779360120729994497660897291631713487444402514164925746686797586267305672536451046570716316288966761390245145611879325977518178902243077287290012684040210594319183912137250678521014354061350764325902434338358415486910119719666842917543981859531538715583916996246044790537700031899712683553790984321176191697951519417366649811746499701786434473621758044373582416234439825008341142113916469173856389502791374767452019277190194853174152964168820388472989789675043281940168390557473049852301085357477532888492593757245838624386105106909055579468213985399450840798423368341669303243572717764765501720467440793880410347135776458708803751317615173128400926179700865721653823705802602426883126685413881412195559283807567444786620603521707987974078660028776887342906594494805382568513245146799767289943137262166368663550814250882676480595686953171405943229187386704507805302860435888556029211268080057545376956205074728199016944875850768628941936369014211935256323910870509027280130565676731813192159376417898708434075641901698024140532974153148122526583682325326852084131815969122053109636272757938855700103144139575443394609940334372326873203782006189557413662029941749760111989646648248310863830880245600141225405081779347106802081665797253713613056484091180588152343066649822625533846513767884857726573732405126211582807175105791644554922583999235564002562884672310768563023595644415781291124293874550630580505160139495860009241817734860667588414028407892244500116993544998138033447324962621158911889741878679130694949588666136790438349014160123026714789668379974240749793285794464900583816970770728620425995790960044129289227081695895737089666728612373846832237008270640843793906787038148322024178164257062651662035133219986317838249672594640966467480962228095970251822986897852492607290480914363029547905283985041858909730091191542015584107577784433007399930362804925702015274311705193422625870905472833934718828820703825542797818047472609998492337371823168793439818267314873023716499685715364412572060909146838036106893565409868209855748916211076245824173459661857258529810839413061418364246928680819195555575127716707721462417388836822927059593566696199690212567002657872179777032163667496386822485821938338918850522288946799586952517444522578775007882719921796359406659080715207237996547515056937412489287797463646258384447586873351421184138564292039228559280784336270911317034432875593181110793064944094541599731297918380918514658987974842909995517187159977525715965611246413433278550666694395995860737295275304439926034339700846157855354345290208115126032436961260439451255034531992151241997727553481879216234701363951469556260707573669652170430710163037699467863625347840634103426888317949152582468840605724556052974961331274435383629588020915965775173488030150245579128334026134886249385958686009104120333712949943337612092077977322895935329715653359099319134985629920946664430658056957363342254889675247876766516569934491163802532598052756123283077181980587247907659410911647911233835734235986076166961329716564862372587513064029267970428609433206782076273573598889122690995299524056444622621412908971388168428091484555918692194823960179871879483463024940209495381640456637856264969774294868946952513072646328015677984811340615191441305159144558721251116526940468568640111212100479903924875020394626112573368134595962394744388871291491541189090286648040140828755047953959256725939521272702273723182197735563384642253805011092568268721312439056662692701023400392287370632051661631632680152283461824599911295131138529554951915150285502811278213706780413829031117581393481953111599701246123089729191762822649483121421413249749517756465082521077401164963124061978085265676331749050316221287006828066879347662730931336149326998869379371524186206346172718762971993413873927898613582744172472150284519347689040045418027022672921356288630241742894776769367620736990208897403186598395079937420911280003436134776388491543614403157851019523222895363016809033758058435398274053267789846684434585189532167940680040863801576600371649787248576069208126802332311331676954342653451554719715917230208385837582839038151251276788229273532192820970732628687632072734410611496201421986424503133886560912855254350998917855965683932476454027281867758804064777462111673796723429723478498971931667757133606101762079522928322965759518501329268194662389985215106216546222737638312979982302207729661949545433048055791010564321246982337237295469844746293339582679818097753580069395863218240418919432156518055133347996048954439630350070559417678637941753552470840694077446085424811763158170587178501835470707504766988055081477858074782113727306156395444351355352995230530930003086087464648618559031966395131568800472897022196645187794776350751273348948898788709066133336448160399334834788008977831317922340694246303489548622771161163000628526474490060409315813337278993359201010220888289061614127903892540263803974554081047187798364290013724206320628631296655273653621989934069126745537029419244988567797821137949455938623908804923313750811448837264899762091494950381231278928738631457644105819181154079317340722243585393318627117054550260114975772479708180489368580423589431421068428024749086130877537607253911960498687999121391316012333177197890909618764431039727782125136549383852750213757353066950228473407387339009311224460909166936042350309455869452142809702077988338207279705092265977961376450904647811173307939264736673901832019201911475842430173555910256976698092123163141119451281232740683765966706090474505986009184626217870307558517975632940431610356203224132428204462882030347164330771171833356996992008796891553791322393150526648782396645641905144234970066520587382221896464237417882883677938219302587257513535125749899887264003476152855092793905622172898224075023406599854814663677330824885135601841222016849999975641649422809212567765009398902387506975404653259760065145749202298406148609411174585073865344430549184939178036219535704029114011134709385897846048715248410159143403120460993725747478389891223229364053216402484348544678046646188943814567484438313905508225799391570818489319134066533070485794666970161803663785603651524281456377801460032200358791238998136380830240200958031260587586368482269822205367153051183114691186888899410803181119729155895587956124597920317063183827003135384487411111856175392587230623624832600276022902939316152436928895045119794502742799350891066650827357239816728563868396929746094961708061132788988780881636304081131583176164006405084287314375708607321933752516830123316631130034156050985299742166192779884785528061037126121150715425295881102301651868064428194038378915534725356815669981488713684468297212439922588711130878264680542976773890906978907344458359139247602748716069055416674274945416774582691516673902517783505995300474335626261490691876199901775409039743203732850966640398433807956792430974296232509855488956996884905944019335335102665321988242223811758951709614302683438579622370511650914739882109792394042589860204408100483669504888564533633867104760447746650100065192562487132004167356141598453887083186652650266607306463836433676244642485264344531524752686814825679118910165991017076659272405691803429034609488724791252851937972932203294584029803097775718501910046008339530722559638894569792203601713690388918280635659175751077518817999976065936530654471012962358859580552273078840910110636626938042633294033782907443988010663775367641474423655796218989512293061426462683304944495010740869737289789190564169265361333436669228041162781921226780535177823697652348818882196364057139021333778953033428980732600268911543250049913179280992628019541736610691382942094593422532644899236597219342883876315438731853983596559125340848800244055154401626240281410260647614354003121139083788384838763856054716723767618013492569928075303931407889667281824561372768744302342748515216201386550462379222022566968749158467345014976679853562938282479289139463797158097076410941003949066084140411041882681697411199787283563649938777207432496394690276132066474822669277848204745103663312165789266297032095523032812824290674177177387518802632763515247254964644533294445466446111822185111497067614653324148713112881849609426425368353832347808917541849972484124951078499090909682201057560347777921097665070582568535011840318471623334193621916785796515511944677118944427535401219361061578019293248672813841392637163808899360162576281086532414885571641904788219794815551052616076609367910043840277619483993639423924132075338497747114650727054835614695601468416764466744490438860095317262769208356318225625638251697504827155765554894150690753236830270548711371086159143786982571681707372491901032884151859894406825601571211846087198535744530526541370945499179082876056833182933170897428121613517147330925837188188017489559930586942176815689064779690842215023275471563465233177161644742224668724813994300149898317515659864933596973649212281618821405216937514193247320301231163143984865186308524978902040905835130286438131858738063341151657155970616588716762980721474191297443744455743186545407474756281044674448629110972371925065559349454743573814727291530089853365270088216347890360690444604989222271241088353367995267006953126000339995811641229515041997746656823818219722983807397024368472702793064416160721257546323351572219499907960722516298045426889467941042426418298253296053416854465016382663121246018052786739905484841422978317618503834924657948056421167837351641421594768694323361105725510966627056533462412913689763208563056989591161557887794927430562012395518729600193868670491628992738476678698472055541341163393958852806547860161480239196841251665237329117967491482486452057816041428045363514629748152025242097831456704898987469267125227606770157475001929497993886668456132445539598516684899240573347600725847703309947454062584078282402630081239503272470230634989281308591569266153256920725869138393563897188991725847357731481313343767344466213937781478908751104986758147793866832988482116694976732478823312416917227379704973711832637762958584899858252646266689368560953176627646834926952814151311211833343987790723220673857505702507678519246625333991277749125068499719299719846282276981458782862246540929941232356546502372669863211198814086726302015641691236540130149377796262324448063347538269841567670349022484411388504425480539285346304678548472036150467392148204592166047343392791877533367452380967027553889224711158719878189664649696500793464588634406125431863754747599263228497938376237698415246939802440918643672955141696712847668597287342745064900576240929723464898970927529175807336176844471670594855908491547740587454886350798521095429609590052791652431383338705988088893224561008780899233361238027347304198659789645175075644635724634535451701821060686804956076681873208396536314739404946484902946243150149613865282989411207087283019481725444832388034064505446532987959261486236961974261620500089332708054994560160184267914515625737047149669966753150126432907776039074708817074846105659011916134246238161734703253056321341758402077625409369337560533955705425090366358818857076337722914069266494689995648521097897182501952563781958604964854211791726735573948386896325364283330461502087798199133837973998851926736157558133794663009530507690344817290126548656770388619854214790913523040127435339040665260449137499899273406545069353950933441824305932053888841894388526330909286850662099198135978755510081676028211247444797948789196490169456126299062915916457258793272850914879198763676487910717693358563153967798524428117905653781384508861817861254674695747239001171071744696003476399611421985206121148567699765862456935707322754332194183926854142346774041080782395178281073247831613380668650853799023493580810703743253913752453880931620834074899910964913941482767397750967991995413836201730680614297593943815527218838131298384257344667828757536240393081171041992263937755465460385171908356535487900126942035898513474149837411678419956317629312225649141284589257346728430201433203028901453456931795202790908366077725041987752264299552210942254311248669451550772504629002464701766034173245170404563421679239807541177498033526809613942406528714838037356061889997368864075874878225174311590071262141420834665087512900515250108418936454311273921486210307208420439599522671973157290015271434924363621029312932508015339002207940872204457145298837265789532887715150729738369315497638508588416038755410598016281283658227866914812736479331600973893308414811118315673183129633246859577415165573236303597878608170646558404288912879538826130141424433605434014783677111113788483125923419404110733631918647268350213892606536450636770428020994637058181413926291740479716940426471903633480073482871518097518132525623364882763839448822061819507094611835123604271169735557016215977077411700124096269138011123462726799986312544375144296911246055983660066876221677839646823675599132764431197309468000440118837353848187178788985993782815407138676020461654128697073205712865472925702713742786757956082491045842393502515156698296450587935109038443022189377437389562198050224941914231954108980415741553800839891787830146178088381566754568760212490488282187175945181102679664004155764642712679008654000710340052061981877675097286513692074835000062043230053789331174645686792660410805336187269180848266060625931416935983913559647852510942063893626146059484782085223439596932283840126645339439457286152309708370994123451036344603366273119099667372590485354660957418529206467640283978635179265882480244106822570167428121906056244949054264963189271565743151491114072606301320565853176122704300255758724049706215044611971213520097878701282209724288796411196050005972340109975882419432573524969231838370200846186332550285748101076743769694895824984693477529124202380801209232740300730375150400859210059300641041332202718262464021648870524747906415295430156863442783161338439522926345244094532739900659973128650761133576265766868622456591440797909635540594417890110072321171189396744933096606510672499239225677172465369275976434409133899554469924789208881706372875822973057744353505990074212425599780433948539286155804498346510684533760536204636230153608555265599940184161736780551577488914900833356266116189532524062920369902488447442184745003166648162424953090471757997925617306539908451318631239169047508721931387806076009074845351787949414945725987211584170906504587768126197489595944561688069069185002560672146412356939801379238477973246947456032883189951977501249888091441356630171324820052160911349225592249790201431317775684894712268723827572951804134291371315927596598406935462843180579386474117484722961732823357313589873992623822193088751205261026596479193729698371585036430555609025913558407535171778659429452509858765568429013807919575852515568226440442519373064163822846790345349760181416117633947100067027340475432308946392355015763191079662821081758025547878684891944870152937658947788884074086127877350143281325198291946810389656119000974625474158469036589859258878767766888089842057394874234113113267437585268895984940715300319949178320415505519551507534893097093745166761015830767109846586636841800011869104241065348986587638258474606733167630863887794651721632468601366439263057170817237334915049225350330369971897022770886201220745043966877394673121540334594770235007104007166739378190093712247664165650782645324103640290936535094073033392160694212034868695010102118396785959029924033219612186375748731207119537452266811152032799837707754221008991653731715936247127269070547164842786459133912710304014939423437060852480577986828607072846770959314608077098457530714247305741262807780259427707468380659501746715746947062905578711375952680034903199752154831384646702666979647615151179185543289219911607498090290821048505884235262471138658170267094912182509197136038933266276784727029330555404650438131557873259500244811709516302625361031399417123903950077153192718030528067408842418841130763133270788382787466038488001845441661740574687477929095693245117395763773103522570528946061584262607695101609956079533787175451236230305614768127918757624634481186271988727137663814100811021447906878570916446433543537313541216591776938505817246704447036265867779331320754049055964320653191701561945870943046615677788701570195087351024963637975997669857800942360153034590577354205511464671633262093043386198485128644752633812967876574575037460981403419425439675015407508999449557040833015919398602003761637146290712582096499742120846592702805136092979174928645303472554729585031826500480310619122745104787233032399709717518693389390481482795457246641427459215240210382099949718599406484111763044153034860678404046476428033548852978137224536438580115054293064550401143099532562450873239813117333381021635661509721467122285905920040679809681029519714103604984994667510440853131018528928230474436587644121852705708852342988414079657090685821212147361747142147700160453515189911681708312905784917270385558691442174697972861986865360577699717558821724786518024555140105939066435687920529342597960585567460260754741204100916449941129056592972148117567292304033929633216273253136385890041564014764447803732938821092429048558569809967174185085742941654108345368642908093701594906878880812458664688451237698989780898738408558287268150475868274321173941191656826734900820902351467740229063600498253526087178545805676977719396586812566009816110041553541830490830650839451544166734457778674113601797453914566357473618660032597514547258522705791000045507906979506011852842326966744598638821360564631658907361815586809792174153345444221635063342355733587790554556950480198570419691412517622112678095991691259419577972707288574694573113067776633964308006874149146346880675586744844057041256790139561488372731757748871420106197645900539324169484240864513432206829103209811695582681304516406587587421616591254341531030610077417770378380029165076251001110145842523093744043101285322621285860547082853042280330711440940254504624626163160336191008911545147777629965088082473895330426120484748294758595385241232506833322276535609661077572730377463128889845403086143185074644755221448129290547246133464406244472957661775907498743061821657744151264125343288707106547084220431057142322343803068988717922980323125714671784056214970260903575494839324272807228428840993851791289301689508581648016765629646780715889650738173569443902595979714651820957553879077351302503667988009697844289961805458060570393750902387343987114024592389816228379991747848408023495912785098442804107890238323351709045304325621906310554518089411811304125919815117513808989153271465711617334371288701883804306021828602856883324005865851916185094848910320802136865410708257421797330486222674302481167816762640156080410546244103964184699899168123755602820462136956287497066341387151704340788617459988409579896965114959369619017655086854544094645473681958429375638223682643804895141542101372810817762005115637463322315749857739694688669655790295460976619172283010768932353420919795012106684872976242689176080875506219256651596043004385544490724630324574115377224419151110863210567495601444505902219692755532397082058873260587339198070258076525632979587511525025867801831804051380115532239675709161336357569865374861907654446918352104836464280956090551398853596287029309400722621555430382119485865129300583329090779757296779784044073015812618014521120608490881030302032568309351088818570422549698258547602578839185572362293867808969837766259511961354149205391491816974794168995259315701937679095691900388285521174897076697416767946103279881870196742701936907256734417886565308471880095532827518779427973708665795168202155476844122658519919490927379438471997205705886689416570034714583448316562881899566895875000559126028289460221876829308702679696289889225300931207772205036527089784088096422961255884868552845015012669458220391414605690830519860216822712933288400352559232294738261844825748813112309158233375692083600361978618978482717090416112291005374761092003709552257205994446856339423599181562691524078396275824393375270096289180100430170058168058659963573767762137274403420676284430651584163532050383661222924972098813664426530529423257288972125422384013481530076352939024927193183262880425763322935451218716329449152606714827470892129063807461809735193248989301621374021853506788567208525842384349983579634691411782792791092656770702972661576606637405231623666895959792267548594635130880475240204542532862464364764074044461795115605642853992339267328048601993094394511049436029433518520527293640918887754057191999344964569876285926508219369833978491073806874565264141128151270818467487903989872206756738055250680284241504008490626425223599153309419188471951247182090967360578484677104317086158905928145048414809625022209519987573808922659831833521004023367125876842185359181447625154155575552270891834463148846690848035418030076162475787847141696270012647711679418387719717599502415091942273021442576362638009988276860059991975769579569658735688370907700816640169154761242437736761430011739022740245587084995425087791204579334647128523351874593735859417755691419757042678178911282016225517616803095247117348127451666527270861757771212577620430449001310142911686345745357290256394962570055815984937951273605566245723617085589645045658815278483643618769898124937653587963588285028870523996748207888661095215584757795817578695357365666015514942071022637819429402320452674897912909087656764367614532189927526477324659722762566143441620253269195888388101046994778336249893174994573441979311210134556824549990112784392121355410008323250414002609132355389506824357409976646699800278015919936218315085898864465259246673604702890465537131766727063888393502807325769241157865419486362041769484701012009085782203971668185362974785010666245545713102143434601782482964238426363507072568770478822858999271801281258482508055432657555650051347003525078874263827272865624373858199892172724079934015816273986510610823979976360941773778407817829849444195792836642932933941448172300387437828945281245219517544147482215461388169009938665620549973970472856019502850186221675270068900366621662148182188395075447287791394250308996060226104986369270090338408781346375056126084341268308957236653594209955509571608960516705000720151662110213436113340678258194599663238016458992536461990964723221083688536353255046505915126358223530868884255549922218690697050610401708442814169780767080267872737011958211535763983306836559392691812583878728105212073102250672717533378537125714749623675118024292555901297902964599785868106078931099747509513307353286667302011288832288397224253015784956512896565337692042204811065687102407857745840748412650490199883601122623792526115002345497758254835949000730591544455338961439707974470113973253940856216170337451033755691502355516055218922356512225816536055917172915788075160189573656632191139281433281548585106358674328554453374794126420913746649654921750313725087272967960122420611434117831724935069252865372331542571390492018076619509268354535971917633892052689954225235759040696628371035301397823372772081499007870927724402200326475472261024084624226923895454791458741984412609132101177990539048902111158183238081648867335886778686679216409039912235105123485059885713359347699002763935726324562792368691894419243608679696970951337542747704134060842344069671573298639248353297056040596199627871634623825727936551768374662215167857229750817317534730951874809489371491786906228285514916628314812174392370896038362316067676430711704155831438002380743480251716157976933119291155099291679263462535198882848650962084781912817279042163391454478559205683849124324289058478157661729438187478564162096086302972441298022406083714209932786190712232233392909213205841866194701148865814890118680828552712743785593933007065679010329649003001402997186264118554852717585002666444932912527049059034863007061948623481875532700050271064268751371013378399328860191716501625334786009753328232481230554505098386698981386939946343082967000712257630587999650543086964761792718142723265621431050237163115544143578812173138090203946365007527865123657845932159817625691294115553806853226547027412053580802172929214630119888670658009430609559426176694151540885018531865531203436972721273981983205880670232678408950869274371021961354299097411578518606823538551685289664640843656353112913417560312889436448629787043874898872482842158714910367690367236694973398733320167341784234961535522915741684727672489205562214628665708929317483470393922598326631613948047669616379854550835643879417112845256788331435689699513619078413925126055577957246447700629856974018689170605727096397982120416563606961473961388365812325964445924328523863667577806007817720136362826077647028944911992037717537939255364175419328121213550436115238308995622411732234819609479332674416610337051141985258843216971773567652584530758521881188382964823315018890427562099404030364272959464186415594744450697677841629868467574117320758242789056368157996696207146503204708012584187135931421009782527516910037897204612870403938138950153393529612312212847268567712005858400422269214675180568367036545895912747197506549756297260031827068278493562370772765080025958342429146967128177642922281148773192478077074107598734198362192216753961265983450688733135806399254086429417769123991518503459792539828020554598622329480739678655355164305599884792065349171470014583239799554408499332711084994443717472093663079883348114878603325970205860661329388139350754303159113353587615983647985533402194885339975688876481046163116330964880281549588896132140717495884611568760788636724268498220982065013833867059645776452804690661172572291917099528104045034488874259855451856365391701175765925485048904952496861241775564216275363028829778028071391659400017868334655668946739089405497557039702027068637483125140125503423598539931834865830227171168088634822059636442331590823567259704452154627438517671348097161564960010467452791221854630249458527982712679022443602782401624935283614140518772764103566125861740863206795193410133355810416960595008722164644969956656270857924126079383509538340908803610824220675336216484068988664823824828632735492025100369594644140875784353818720726335732755268302183283317942040012091390803680080402629649938592302077162470467191253614784319954778707276401528029236735524020248663016915552318183427514408771268501557579876480285709828301174921453831561879278831203005958837414587484546676580503175549560126570966684686164009685404240491733225770941238810147483035815698846984096507277934089465759220593233992263940840988515341746093533574040251953805273684052582037865865566442779108495711418167967842320508251366355916458797542313869498571559073751480398771140194800321761677298567814668348983833384388936248966234915418067737761553906296188674081487988189539521421260453452508272950253199245626526158501667892496667547244499484667474530019598390019748019209976317383978123667248572488126961619899363940295574523710719942119474150762883701945179101475263751248055345575143500759079058104715418713857221113133301070606091126091728875883564776294261089777190095151404736467504282559553344429033926550458202219286013578500825094637993374732354059530169632590017015960172177305198348571767823133272150176879866581877026912889069697080027771973834577045018190739378895881445832059565662048463916437871719094510580743416908599853423563793521636109586078179060714384906475973357185009449496910495289240793483378794248869702557150326285158973744723869186224790807498916101894536752338868211756026036750453139436221103430371192011472670571987568082213475815575988979167591559080046270928459460052413345346286158384874734152132376447452543929596479396995725462468928086572787432125529884077345263036533839657816077088243125764452618954543948791568334772906178003099988813160600016214400728955708632200027236671904056414977486778546273225566141880116787720730606689685335688176935064965005883631034846587173173225772421727333144102032654866903975790282176598111463021248755004503825687512992448694621465649224236710726959145533341859182376673083633165530891157496309869271901124781570461251607700700776856441532491562139955777870759308310260795417693400852201517273487048111747691223996445770199044032481122880266219860380793427575252114102327401659838467931439668476195462489408593333705595730818972116229877527786666502826622727544615645174115781955747484126319605275016092145117165653400926177239450721375424626236615069467229584649065088504051220260880480853802586743608815059202434990510543308177338011531305237096617806912148202576340180911829120067840964017705014592681093630770412976185247209823787741887102028892664041500951231178055495677872486798361375555496362372111860290568470846951714643672018043262152808359876779350789467497031396573850329094722645936528284215935595414571643522415979340038987193817778895875581149209430042245901167413081128988436400153660511781853697819906252639909870854247920926817435999925680302060825931514445896902462960016727012750559124895203709773309025301873013491581047572794419083852435665326954831058374189877736356308079897874963674248718623912290527423372894110896633013689885026492248983731360684346313462864987091877978763831314848995397849693683983981443569563021135865993448080229791465421733166732881099717533926186965340005627255545603635351988773594161428809745677533565817668156944572418463436810934837185077911347236993738114316172642378135313560039443111473530669241580935108615408275594728823850798324721550041682847905505323127968910814049467691609285971194984194764990719821485301845839384839314416666154345850228990507029971738095176217319271615854277900210408377311751313104626494749730707569518401883405822726011281791952719472082668230008656318681605358415823789738486648774530540605023912455378954756363500301860754820618138060657452104392932527058033439819001455514773090265427580009976259618902080524133184169619093744573324471097925750411906384276972739564749796362088287553019708053335941584893042783645224579335396699326391670002694269195887400267766997047752860710052740554697805488044012399738792583038657548633790396515699752316942409375912116916012766319204201120746948546472055470471932516369497319496802717724152984790548019703647529571293749188967369412268715592359184115281606692938449474813584057155541819231363021238633919480560319005686393993558343527484888678208297355219222403287330530985319851044238256108267196676090009163952728716895288718482443411322289396224836289008468148171046922321841060327736332725022670779870885492024656656440680834565754738040350710246816588075988966793583872525728656253400738175225110657486347853256655829583752062477694685747927237969030460819805279936003662427540146110207728200288952630137248840435069428051998803704526383409677388857975145153598777877780695279551840840910803185940961535610488586734293901357672866525103969833578820948946766657647651451923610399090667295182315380853213210853715240977926591884583800895056515355616542970795408616161859005675927332570769426534459553365297734863288110521702677930341448225324886383624085503712341658599440054145004310445880051603547163459729141838003219513687584513560391851605275103298516514740171748969361069744870721077577472051625455088292533962435758064401995835325971046632753397419042622314757588507074620717896159928442198624963365826173272968876457072431729029961504626042352757732918053878305802345085266768527939105518070662943001389038671785496717584601361114482088396501413282343889292291964197924934500391694863578466951830979446211146131173503307511150060207227395911542204011585668490191597940818739504668771310739867118257563009847390703448178208416972648603630324600138496529325077784571325003476480594704866654831629447816210046875792660172440710860239248021109297093258816894169786884971361652197628309442040651645676474946868432807388769681796517192446238835523438180397648076036263724852470209493504950759279679553013486515492710776214436165113574580361329749282378844554731242635107987552287943224509419516273724076081031437561560908191078784268856725682387583614592703913007848103555275059413342336389791033981090812001703535491620692138778968513733558099799782208969845868580756059928027687165595607703027479150264742340687554729345697736180471700046880778078778916717260882878427285532720716357408081214047475068877183778104733100228099545451502743006815546760628427747116843889319719758357513184113622567596728166972853278324072496862144016394999497090204240977987916478685356164063762680044480996154532714172825733303061044779693777636160402181104077078620714694084975120146331238251209093653636404022910246169750244605092183243025674650489480901734740545855671169094469097517506305235557752299732522149950479166289475907927918892234186638413676783623623054105581768820434836687661137270551208171146479208481649374558984042631915921267827196348335711065977488196285751578601971234040745588992501891119979440072046312744321405827445774666595616400730202417934872533205388471841014079836805626067764062970240060462051570463567958970589569416535330591306244702593061410562669107009173732009045187055061269771806854268410251928902719108073594059177562030460668016156205039232085213799497826001399875533700065508995260254766397059575779772923515827262497251470764801141558922168786304314105852954330113048008126332828674414791049923333619189834649056127442343745924866735281716691440356000063618410228649944945586950001606668504615377640729986364941519293640883583747836684429935777427061117520847371001819831646313871887816667009114361592140770064951983353168993395692794528578340353349199263766901160397206912556586405668911980329700310305560994085202618976479729576074699387702109027733519720396449678690221902283183332934823775838361659686319764851060589800860773093122731372062370899769928637196678178653102576710300101780752481814536062246791065965469285422879430242218164456486924601016905324772936820458646135938505813533409641048578477796266085588760336371244808299164851085696834566153583545461930478989921019520710360913689943815657771015778312932399327742595592029844999431877749927043940744192335326081747589759566613794521658099249367372134764709340701239021150210100866403919595519481978366092101561542817259929336316366200284459147936470878529290426931043248731375194186916633215113170878078052716607361272749350689111648876488763391472373590366632885910258310425448080876799277456937914082007997741793467314635848550280126790824469224124459435714991476408457268695084645750409418413771447581100557877929266379094309257125838463682001544064457713134567712227903096505397204193975957111177585399992140301345270904899410204495905945364018917158514863828049113406960069147726181289380928098356412968225290998342599639823868043337411139886667574271640341676686815101337684277569441384711738906861918142453327923783661521412640164152716995248976717578209637329936496431923877167623158717525408194297702613984982188735585773478196482188966735340369686407884990699487484981961231340789024554609520019150409937112626910147558386871646652856690327177338621936280364837321861380612272782196191262818953311012744147427798818887002622456344100419687513989754928741292626450071137567758164407934014656556005656651093195064214780824744206720504741695834282500176913096884533080685757532780583990498400086917592290884208716590868744413603331441621531812699684531725996855835269577254326629183333853083901308539978645703243264755387942591563623921387447311947347281763279424706703117975687450514774819138878268048828888614584709278028297872036151332076277443670213337173156657810672400080976987318998140990559231281865210173488132621078937284836355009728113274725326520153679507300306637265187560610792575750643138339170753781394127803883163448270538523799266968877514248989414002102693067412251034383920157217659040726572817872242905786581291410462724393821911802817981349061689795733388058915625628903898701041031905083458626105193370432710020266038003921057195590350963407453447958442696543871707268128917816029274292257130741550928834598590786562235157118877209443427211807627200562666184476806112121584665012119104213209863964109569360277125506047995153012256278453424495010974406438804370552408989697120887221939504226650374605856965784047193275381455435247486917031690662017942116836120035979849415781893974438925176656357628872353326175621914346542815774390670952773290758055960164662409906224430576952277840052806426625353703485346574863208267392259822024455961250028180436351184972459006269590674822733025623273616373648970355474665418149188759210065063553493882895493389848328289734792189983058067402154010336626732345132154330574276726206511095545322013355170508290668669495667072472827888691579806231437911268800072301171901348206070319989314098571577071040587596368265468187717842109956601874394688460726664484208282018289317090173829447494050648794213487996995273284643322034641610009641478717411403273487955108076613352764542699395392851673976423378120488580461408028138732700590388133772966982965408138923170032573493887969442903830026831520562387854531046748418621228055263849678153475189289690394368832814471199613743727152844017060188891079146920755611847686719492156620631802520524012109371208772154560979554073293842703257931680797111801818144896723550672840557110866177124606853805341840718879610701677622128622474242567422663846884244616303291758314074826014212646791885512371759951707680064263769552326591971694718595478793158435567674799178117535660860161260416563663952679218658048012284269841957211410200348416244236985005927591193914812291102674139256214269486888784403135847384691968664927400582499919892050257189720431016189672394498288366419164479812543803210795434815428721361169375297758031284867003210294331607616806047633648371268062376117192295136613577393531572805997474963544654076880291848994979392961784871920852296888864024266664821339805381065547607067748238210409921045838731585556482425778191456968477143437892598291457378673309474846805903091172855694586533278217608028522355137448067630600145882105832926342254964975768924328729559547652777322776364783453541638079102231997371056296906818190816917439757444297461134481290227018868465057947784190528129919608540072369139251559939007363985271078273998197031533444644688943232492630196542644665233473671681283981645255247994716877673417091800699826060068922411983786531711054443598177032932408603894776684723158634428527064797429108526808573822652192748202028558916877241379506141850912595311733955656235983828285104059314635731359977470043193631400715335428214767193639469856725872065721923304015766978261082578234987754602078158837408441126103088011479072066036565647527509684124189545297707622359033375850564056469938291518340368814405725422169755738388906583593384242630728524884879009070436021619331134742312014546181216200297336085907229490411271658492564896733246357838177180906940898328452773771602855193679320209963814531624460209002311374499672551933907796590084538584394663467065943979642656782346384174263885906739712529651344323918684725633604310212490432021251440586259729679809241911145712056504383026795923906382932017068631763026178977706348326213041116960645889827371826829236945658722082226681965260729196142698005977991387726239891734167524582398837908788810851853531848685828367541512486361775627252100072859449503995253898885024486416988474750269439053658229932828925518724252736782913258511826343908958995697071154132317528904301507885089059523288225618038127998969555098299842592244846879524787344947049828895467618523961611816996220727925301441612482189902081510420846743314335094946930166151273576697009197213796363991122050294738044834940910640629700699003652219599207087047165756345133465731315005253364324698947681068664798411265601612397189388090549992918572135649657580855305993543414882173116987225354173372639539293304713108883865985441264792737232022665078575115266510722167544753474956082122043822512429089658842596306962477008899583568177903342960452410236593392508053387666225142383825239042450878497565397385336036977698953760348849001111722439030077707610396612252228090122497288575929805646560360527674557791449155569139028669222503215539612132389841251343934520305467749735680962823699224774265092879535849878477400126111569305724272409886589709917032610230098977028629254943575992708180478169158057152557164352979204073633043936201034463915391032923218764823165266813533381640143372496412352030665944445008587125470672516474409473648028000770973299410033346052932422475653034114493683844300176370587380592296700860942639933428224065886989626806988966852476918909921220312555285391461114204984103875297648306380471733356832703708214111894940450655660640793831252468653982522468842086596941907080552022183811337152724082150844123160391695776720766364734923252931386545236068475584885350063862691283433051017048339447847802949261106117423722812125021164134578408368192513112880771856727094615608383574191315945977216249291034560158071166504882478256121273310244490523401205757498871333377511538323994754205934268353539326810573287850567423626637155876422650161586506694685106206073162006045090425375609035855540571056032073310452403218910085865944618961795858729617868937488408259015631637933858159352885608456458963821706345632234165549033915822001767555322644575460365236074928447340403368109926255420818803611888753861793599064261529544163470319077389593637791899373205449737582649611728189050018429529775821611233231359331030997684349308842753663766164628791738946271283341163911983277364337740967835494766699607215515499117785523851452907495379305155988994770760891737250119554124333939259598660962557866306252811464897463952447561764102898547471785540061000470197969370082764237266942203879043495607767715460846517262867775346112194628170640704086852668637195817329466800999787463421002188516062438671782221214044182789985840055708998236994314754195860608671176279832732332614098100420607623784852466415681036300785486135671930850154138976672084170115497798086866348379453748580953586267680049134392337064723936947707851480798867251310783622720391746515142324684325789460436510179075946618651143243343858091955301862063583595088855965493019642324527517031327572986416716088260299090931428462721120928649906312245286827262441545151479996692645575122974350184745641016826261972401025921462728374038602849944900326255762566638505241425071755940482622229194224565715930441855725791042891582518647951165034007070776962010565378275783056339094744109760712645025733958867938283791173892925542462321821853137507504988719211527121853851960562961529685626926077170430905746304793984755330221879586222929971213321216086388281821613893014014359379175762208784248150539778320009391340150667271826070759038415138374037480976712326349795581074183093303334790412664585495005524453448649183736683334193110327007080468377538263588389680001958081605990629545232452462643758482220805589505789371560529369789420354594021275096958198893627177210257534825126610347641589015731740476344320337307452494110003235538545887151944654710520066084571683335308128862351225680182749964356486064745589725631363718986323758761464889997653313170014909555221692439116131301161278653633262591150439923029410520423898144556486729982813658450522231774842635060510124284719984997275477073417739824305352085555612225649163466624808848154297501203663715008047204786475674480842800135690491237257120159489429746809117604373415247046302504438742880790273736894510449041069031234087981100178641447351583662794750408478585708545551008339061620757331721629905283755537940797391139790770162060864560248660824128449408415089239588632220631894505957490429405485686060183048871119574745971457885027715627820019383190877134062973423044119414807544098845278581561944001792762569765819909387433890018061047140467604918019588043968486950903003964682724774217086775061135993286550440580956220905304710819970996593956312335357595051858510835928270718165121138192830001059893427376766419896076894636970153490198413092489980444925164432896699382169530983223802328310365802937707533419747892081190820316204576995257678967251979875260511781518553474805089180503924198791240012358202389484202594194458150331034799391175894460066581577670167547163780027327608175674207057595553398333262674236974072609533974996507947657304558520244309801639414898779446119699994873484577335288513625742094759482251782276092455593194616992496815384824801519625059494966266597440884620386247421302424211942836997784116367013188154664416435183825201102524325107153596535896728848375784633483041400031408650262760329001850268953185582098274261272190932113205088494232392137447676197770810597251074301516563218067263312311683539937169722362441938102922206778420483127540328816432925926975204645294889575503145307878518509630997898718288969364029748535934054513869921081531721527413434375834762613574332463400533462069347293482226243633942909925001751064405283430355364602377464405399209808451309230167096360073729337527456348284947103129007743459047650832214406106976514847801754208910115515772977091291543469663988654499234817544114561163785534680148690367266468901688937584318795594831888235584027160080285997838288856519808384930186813522255195466915706909162254246046925845353938938883384603199607117827135349638964802779129029512097547678751339058872963638037666335382019590158314313328274589152479552220806760253808579569086943187405502158544645619307329504458443651768900594428727286914948102800286218310356226534707096048353786721968538931190392832488261849462496821269131886145684586971466901276170904933878703416047558758968747466678237952134584634641337437134787165383550209340111348239984064696172152626547668073922233184212100721250955332171372480706717802515237222450797541494578756567694879401739587311251686954357124233128530119165461520257272774038957660306797523299957470319407360581563184641027408339312532289080008189594136928475819088708134704523504249423937798484447306344941304955766747354957024010087968101532062599014703084688851609932791128506648569651298723862083556964202178497029634700459172122622027771286638519926238383801680554424522457547349179863115491833589081865175480805741005717359582208815839178124679067604672115237778296347080876439736127013003693146387622679085686288524919485493351846686364104980418527753532414972363225368482768640738474658168098386991753749642290135301966862561874235884260450480759959035435861184575855841634761145694381904808628961867535653530861768122940536662490464546965543576002356533628194640700955553761834584242538802231572929654051656260586705181587958387707022462710903497072355514820040200170424263758936835605165279208577091625642011880889897174441364076300553431721999506996948572883948775188345888094854131284099108261089733342501599675405266952477957900900294151131950914657446454366857030182033977040851697109922274648804482390129809352706974209741384630999419909197811016673244655101425448870840947495680740529275921454183255954559493318643484148747856949391603176768532567719729541801781747297042498912737158225255651753181050235814868261651780784601876727989060211751789926919546863985183711460242372434427311747123015360092435504642941093890476511593607791638653495078180049593251146506891738764572251290075519115023024570509058824569464353913309765147484391098168164309654411985055445246391931133273096558586815573652453534448056065399917975688281481626900058754599275235934834263724568137140751196762794389739045658610708762665683031053357621671494401021520326889020272156347424698548332124793324245134792426340191538633474890216275247279920744447739392568784728319258127687118505434000595950471120414091713860918248323028392330726853734347415539146555264882243571810682587498391150267636264344040203210646155351355895086066577765323622609976107144907003814306680968079915766791421857487736608973390926738599538620098996769405748296898156085092599526067266050213486730380088330153811628823414354348467798649582656928554036093190603560813535779786371463397988291926050815948535557519344653246473729936569730148084093348421685456957639500683428066241180748385011107907709254653759036321863035530910918332144405104018387341592479123556054911725189428862884240994164372042109969468600462696092618486715201788075353284510088227832977814631380834583752255997058362443942133460973605066713673295709361854399949151962113556980598767954234862291506218506525588075701734917473905853196692238398872437863510548800947582300440644911690627238821592678131777525098447354371144543558343187487163228921949336792909638747414340426082595084628573312668171659780855141825742796304703209196496737049079802273184646517400618295180878121180090182827784275334716448800338813369157679849355680057514612441293468439666032469485490006222363822446782100340618188592763723921646187994615423146232137081693152539711293165983419373923327636542755895021005647285776570224360976494982505062191244572349373046677750077630042780133742631329650251118251668655312356068150642083548090984477693839162199347018060574901467007089517952102782143160837261087792504300153667979255492816812137132741149888441808916327906903172875784483118619937704778245712387830646681757964952198416336760598243043962235798753302049377473905615796660092750256783674299408075628332521547186865517831486439640265887047368329037805839749005136409279403255969318303934032771324250315433740243206336538905756051308628284161057186159611777513930954825270716446640218619323054020917401269566242044865657374115405369580327312388811173380633419107513121008507149627858913242794543646270811668925057555906236208729757816982746770568938782067896628609719810345117825285334346793115712647635349005317509517792062402662033627235894591967816880276982847640574751187656612837527908213516138003014612678440797484689560370458957734351931707537367377595511842067929553393741209398961063608387502929163804588239248562469333845007525935165908868880511296849808403823070137663016034537488513609015104409886572219182104174716676190413269215567646815153353312196653798744279435009424891432287670977930027625558517527170878446156154967673985326128198515309732305776211900738584999098735530354930854789391064721949341737878651011227829745619817900175687680374311082380760624005373736468527318715968593732815073474664314023372204176857693558671277298606649967792581093337925531015074994365234833666066732694728141767246414695972629094818284877050487046911817870827336926712338362739961833064040782846963089410057803840045568949211804613359616837913623165413395005881460818112187172021456635161730717193484517230271149574500629316275358752717055669538197327061439885555113896023300172554863138553151154103759612743496856557090823050131470618206688351196117024361728441363014822420796094944503374463482311408476947117403767881730369228413584706460634670253166673818180854935990392495626801651361392467749385210891028019728253396568161792909161681565307665161745648799218410653075071384246278817157670399532147068803282900377439586736332272116166121199977355032469479658517387367684716575094345924417778469283843520562371241128355403876486466840230979788667061947989245702397883406626864154299633452093499031168113034696741133710688896176519200042443414007585719634629974556422205594475454657205773309405931420808447970685808850803422616156960857767678582022116839071145098020509333628338169667353824866722049103320871873172176268994039280625324089919772191799136985580119045220051804766812648231923983520701948556542533116313940354882913982106571351111489626480526434455415429034242968779992084944274109769409876391619053653855248281182370883400376080129155661239022004921473979418251106777778235887755221014681265499124412102148251075536526342403656626044541939620330154437767510088711707055594629445135299241839766062737400410163557802477396369974211850694246487262088287544198101055857870030003309329275643520714410479318361931191074784035311903437559352064602216239283359400132211124234052806064946458490993328163410263101996562948764896828273232585774621637879133017474067047594603168922692019484948939773999093259380470277417791001232652337773343206760168882939743916758466280841741967300682675757922903804216319371019435224626638575794503410443949231782858786615771615049776626481319610933340108694732126800018247630173458769773297222801694644135284578502058331376672239217348964266646347347579396668602256534794487041887481914017531092658085401228987163370771785925032963385194911047109611404589157967851875991157413450026821125058354281792351338385251853769074084831427549931108245140843478095186995219847458069843855617795083033348500509297635809567932276194249873631376384933035113188660029418586137509383287523404992109389499943093181096633398889333176537468144051287289651961762391599284751042022118582202776590842147365057582076742979518286164185122882123777916622259091380299266341003885401827791650657596790545495192157082273854725365796960700077438792464430422474093728442327018361367783558013596947218142191533699030710577125475855121527425984948722163861465855171803719682674727172840138946924185588973803909050515055069033457309155698078370209466514604719660861276739392119590136220974439782467157354954768577636793601937412550721218836006638664165186792472826212900956365955056932863874694873459080520951680138944268302557194969107239662160246469283947972455999545265735886517358459774038082066106641512357608411327620061288446581378297677164629218034631331584414233210027381890367200826682606094382099600003333246952223682093943627447045001674108470882706613995963987484043534826559498018670258463511507898884140248159860856832410032303625504203098021376083819462150663267316885509494677013473604648316610954169706839524767038643874664277360117208821863664499528582262463088255302289574081635247702675732581836967784134648092054486803061927237387237153629880651186137955298992317637182501147356266268077897180404027116095069233323782532022784411493468289095692153135542799269051295693954471088956940592196066457233361967553769720538222930865106189493825170838445147444290483773362287954383154088197698274201899548391731907241330990800173558015467726096627883050263806580421151658110419578614974689096730368051507972939481385692431449962327586225876183499814317834414258080054643939661245883139031093657951303681430988958787126471811281243320880170545920570131867482281059556572936243861030858994350976524452348660304167944785027665603358779908984438488526224612349452580950126836520363915921691379833316631848514669526296057989944471962083982494016232808468847097205731907062567456481713520690665379209343435953260454690459974695931807695367789546173836441610860662454779599151226671332746196503302219022832617363847768930833591731402330477690098928177301506485567307932257917908433520995046374689781106194556456737451231501290198444502475636124898596827573265306437900436103574670456609312942852723524674191523227660403545257373403751387929978875500689010660823174738064972794121767312034994347298381742337551201370583666791485769890410951488655393264388976782449041205715235565180626378122324011978646784717983448090460799285140377292734334086109882966278359671259764749054945423556836325155146246875994463611236982326455681101698315299428859751979351321745041965847563088628339134921748739170334763633103931379319285184993545891782620991056140512352560389864134450931057981903978938473026826192675294565653270571683102534567309197827602087592499502054850724848600459281161270920380139947531638304085711464241429646702763907344948001148761831893125735598768254206142778459464722741195326395125983905040209669492765050392961796123661389287778270131145458499446180637464930973848559262216141745330166556884437062644015577864576441374174065757290854895085867716976690353964996225332248766964739108231418979916071832320366692942237621745551546977408265247797106140898779998946569129350183358214454194332974146461885963008260934956679638083850277194712394889229024016619882097621996646073179783012240526785925007671683824666732530875553994388525794730845792866130836102432099112223529418840040953835222740810137566968397987968105966493101236988661648879238927678621768671570769713080329714432359543312716544275257610005000033990189203020025731504187327794771272312841753863260985540119900655190228601603793403592746798644305725574431876986967959752073607655847064437732978226110569671512844652070749812849505408889370422147843165727935956590331520151843276164481213099355519594636204349386683983045132469347611735195430013039010535670704051328119796529203716669667203138356895363693079275716386168285257281908898040198152147748013738458612335471736406619125670020991946560160081870532123810399276996615388355224344418871138008991479774787279551473309141635377343027379832091988355351227854099636716202038301586139258453263268370051809918139660841614068096358215816331287803405157034525715377992491466707083556613089237517694381102871285518151922047005328647542197801358952511167980420782950799671247479099886937766727731169226680499821233541173809538551070979731358086638977509976666517486514321220451534143091453579171972218773430282911638702643415970017641018771229524800090551353949931420721391380009063425835498784611894593286118009240641288114633055735824893429549245392618780743871033238026701755914672223479059801683368724824148228509397164906309643999385228420559174906056057352106028783095786783797127600256200735511817754636332450231830202914727007626540444464541914027128287736153067935713393949836281476310672606878467859918958329269950718970935490970619154042409582713194985663252736912998558378208758364007807372416107092513715727641470437955074135714788800287892881922477205018609863255586896456996974521520317701634573894874818381644420873410624585446102419971694467963490170947699409470674866677421844642797951847070943384912642681788724493901591932460453566445337978279297249030922505014631964717715035515152487240369970529789200499592618420695920572755990564765036540173630341713060177086827497757998762835314074374299611206227595151082803331930544665566698632631843609423027543096161119347503811106030521570084923793119656361091966118892212604539282801523697662770102800165116900586473902507867102185515909910297823827379296886663836811818341446414336722441142080930889104219544325086303579336012567629797196177894091367930443367922504669298505614457821334190504603287586995982138521738334419681620793113717762996416462149925027487012239593814922937237509864482603392028195407393897083974047261841964587705061743801746685330867637544059333222772950388479807622183964071193496343027296599137027716596908730597688659657999143906534412876737778655936518067865066998180123872101461118339166193543897286336405754876575787719977621026496736648863737133482989668426175311814884843828829691329247292004395773389613098823415143704939557740044209590872481570868838624126003963194168706600041378020490544292104892005190622776078392112843962449463473150488799549597846836024084431325570278909441346972759412113369234785628593372000025404559350076998888482313578113071124531061662517109394510187256322226562641553248696711745064940718887539210754210587640987520080659157998122440578046797760139585371344271590670096642242919825332404358661806213323784225331845938968824418818152046576719613019366042467645541623236870386016406072066075677348285231268458379554074259795412557951443584382125968371644385092146065504408966351233343364159418050068423980500922150354496607606229460854965763460048344635144540985376567899073696446456000988457635312404049501840496687667031484180596388915750867489506785022265645314169133492983831237853628356106582454627188886369509175640935411947197321601906620031491084352127705290598909458920159280009054961835930038256446510984249149999819896274110066907231886035598718072321499330793375633088984183202802225560640967003508972650880321928448951389047075767221526604161042207675036044284516682575777153675992739424132843562405883309816841545482209186789249530929355634806675125882422078965251517456445443082019010841915168549776643415324877051972221557030828143447287217698077348748751573859581019492870446656885375546419951123672958560969304070956386520381301373976077639098084577278432381397785632960759491160340813163364650756796585932494345198073941853792312669663539317381518601649951864598387850149826007454055061217477148061921619528651551379591535914427808660335391207487687364937235830912619639285877679999997084833657920816466971131002167090638785326886315475581160724617609273569132126257045993749625127388383435600924839204376128033208236989533775017835177888787412397236135207699517712583213071033082542006633822683193318940083569230291262277995572260429781858988616887161121144888576810194965608905178386848383314366606853986982467678105429065768141854155352713856805629603094682287180771355209947193670244235754803662937287817952995801893082674094784022833334637449747555032296490689387915352668410911137428543876068857952865819268266166415447719671989782347718912376474315389009570623676563769283355717747091721300329774761438199483338373661798505044284738951998851814431400399249493222481600988610999583584817642409532107488872474341447604908048372120236903364989442428206225024844215631584965784760065707094767823073260843518559487694429358121078199115300278180108616248100103040038576176776533638937929525440289891248663444873706847663622200916714547197047012090236673484134923735578338039952869696176797893135289871883016375362170145103946032338125940445686458329690706333685913974088598771432922877835342176617802073859012796204613859516025881979466456370716638327011256778228717341105769133008216000264611374796498074227905242042329355011024140671925688022916838927635705392761805047004037029491353286790677428013182226782203750270593842239660492402866474366561764180377690980616146482267840789609469649703865502149741682731919404964986877917159417540665571875546248067158255442439744392121181837951014591160828823219889330438977153638429662477619442962905119624993287237841021410802332691198741818160125040024921521413677838395150507698306775167081453886778930041844340322485229826412090708909814928520764622187767385038207492970780288514685962445479889817195392957237203595145868045562238295312329292946627028607270329913596212962460022941059755191689675499697909996169932059617798239849668282717491581137012454723457161204305772951004705477895564281645263441885216920924109387479391954474471078515510727970664323001978746280316666299612741288778732391752661604449965795215544571412879220780962213934512734828559973827805958149220336636967429677597895491152916153055493121486623994111620869751709557903838816384236563584990654778481737095145984142921673775229210147355118872961170083485584234870434399027021645498679637122172840715932625690723865098455596048258683356687225810817434384475060066758621609845206598726509564911094424958354095761264711749878148772779896156446195742474743624366365437263594252664807084187859420522005451883204949052606636042533983766014911605717596493837051777127619799505439864468892394542672063611125299520302274400900642738211575670918406091705493002358709776255062140834837632606344711210204280811616108051039472338322878290807987906822736269145039042680273357171813240922537618390073613754272965743798391186202813071067745743827707277822076599538794308500862507106455288034730822351669795231271160024873981060118124496887739507519960238607093950723331052923869413626882660324911476860090386271632503609127709571223570154701637784955268260966487427474386896268351587395991614967212112241270575594681774911898105536741983131219691902597423143727986603947563968251512428313136242943960179766788632102752307897694459527898994097367437055460558550218179441919317315397865027171842102967332744925076482769678944683825663712247307523485075460895368400409838958718655662109475005473647950587724180256709561971463446234131867369424246758902100516337408659113120362582199837727555427062036216261977529168498040774453797208393597507379966775518705608657706892954270381706077932712422719673487633681133953290237963222162730361144199372360715059697479849274928559343688700770141102973134280761235532586991791119740362760915059592309043741045474804469612041820597260465379148663710278307520940180787276885299495224688987969849814460325822199611805238689280336775007126824277268795561345037570417061763132510603154960095257060681705911174950437139389847935971155328728212703010682685628274167035729470285615154709023578619345236060509188382991573863739267372878213609250015265570256965581024346847808886619130865195657583155277044236474104689324402574168847752242574558800091149193133173079895758706277118788614091692898863756815272020830577283521270206920620475741187795826608553046410539543676098512740320517013824449164233841937358464336766270500388660238213907575239395080792514795925212307535545079080280280964602177947178718624724135076411124745906046911654779393640680414591260121406367220953018299086451248031485163990969557076842766560405864097849246824311933402211002618221607867131638320928486489825722511137215274278949115577266433832756151197558966184925910103954118333165749595262112956757392787530706541795577302562461418046109288119398690443898741194415818108036110969734746079439908875666573585489577101448909785768464845851041219440764920156739120673887758106030386180766128522236396208648471699281822184567072949346044837532645580308511955288660024663198655811228359959420024218974819709447514025907657010068182809178181093384188025235939704415909949324169971683209402045905967082739440499045327981394637407973192664938579025048254164567148664376219700316503399487832965571461666230923159117496934682875599746375365958116476465441968059612871577403928953157795071865347990961216660862962565850195309581430431065433508993797690679504914453314505529270335609393987835570331467083268702217112203403956601558850555623556912915227563186779303000644381421298267948727563028482177680978707708232039165461337317843855208955076549391746771557854616914120784218110968692341246083763024609555313934589796761057484130030367728914951286528971806044483026555069758090663904374774200834153056701554215996927690079447059679666815940717645693448152652498131074421406334331124337035294022021462693364112228135157259440896511531536341092807955162313680272629585095707757428872253772743807961890445206304881901512412157204538923737042555463570082352534403113480251423885427685374870253304629591407586895149938547870028951116162436047520219369168799467603687958976390909970083099456795538351111348440070004316398568797268067805450361739271285451202105686380030598075264592413757562265320397838113992617588417960919832958961363443818852610435409089989905439416872039855108377458704310882701698079213176427035358307842731741989246200484667740720046455357447960339288150845980733253862074441877724011416359582942859298173385400427521961045783790133531750621855281353702427286234696632974654915430650038505514960103120604092917661969538859069373961791670605341164689460039838420439945830511626982546260143057632580909090793189226625454988663303409694658217248651912229760344856130744094212921342012125865135958923683828421591854918508308455907787108253226295055947471472920008939980679370394695097477907435233227762320049136606895489632156863276473790509667217915952911393361478946031233925992055684500666968556090403011732398639731143772898607427705494120144637277885366189335308661054336403624845725182240649677146531528047791339220680291793540190712971136184641731127208925764907298554917470364288905323000671382276060607872803462517531292538617370922881267340742124461962020828192604059411496188982289528892827971846509163474329982844019181140937631993705474571947397387311452820480467637412397393062536989741739954421556325457202195800479013734145787666575469682942887396350306248848653214691666243112155200765349218810598738735381778020691853317705302241281362288360642757221897355517422619554522863367802673142207815697915315332113219622646094078467235827213402581512989772752046002675540939510263612439005001113724124180090066399767845168948208151271276408026367663888079859208864928671156014118188364588714612238504046563171837376350935278997651653212162768237527143615986969191106409379537042713424302524874829013908666937074443821078245950025739494656842211549839319829009725380658319584885676823407363182816976407405154621643728901533152080224197088218054160183244004575804947618572124730102555896611016724678269588738522350323157220366730161486400394156582578988760119644083666549804098198951293052060911672983480371271518363969433698913513165389082798883778777672172635312553167054693299485809606935126180016618052385080510331773498705022923939343661028409607676410510301900354107330568368158856230842023200736662078356371914266407993861339031762489517713637937401140944428915929101430962653005063577913548020015716802617457592857588105378053981775978989752427283252239956248399567002982168433611124812372377412663570152226247875469648460233067555789428955440749140926080769379188498586648736261241665532111452468406558489998523663702604255127462708746817265725562271382586354854963559111872085201901721351654509647382043559218949467128287645784542213680799862625339993712440617845018554959313243358810572480158729387624543122763521007905621364225864703849676991758475110320287298163713402368113523193115563819450895082562423464487623560048195923102047721244576952040750849861590453738623633043307910014590342664507076174883203165239983683717138662407863969283095228077258559467066141969605119300120754293018263943621225556419169076481926808711481434894809602209941234245934423796289025286305289206767275691387857048704439692091550903923277019075390712861990957612137218798549419012091714561474255294310112491054861811455893235613552443484416735375995703483226676245308348421254872091386466355489623021126653882660602718503847494744137579082576798234365419532703810820985008131566477434186965141649360689199043429315601791369319935037550964143211933102864107419302341841125359486941154487364033330603459582429768494721528238532026810587911036849929784027758161077446133981294441594698831062236801700761493048075231732136420296920975553049670353228967973366160234748457607975606940350141063638939309013988302662189146759303066877069834211969664841009654827636750711991353654762269446624585256714476024566954507999673352769987075364334511250779543118003170352814038654324697788680497775237878456572584208230623224409137031295106618830589812594260833288903739177467507704030190032336077870943198989053051475810128992989050431442298080096086905655076958193614971900934957868600896964103933241605277171287390922263850562907606211365683875471846927680903674005703653323726773693426274041356928279186389853632220944899401087653071689992895846047962212399083576538992903099518967223888190877861289830967815346217079489074837134421355031920121091838906211375945981813625196617495601020714853385451926846768958528192683948617116557417363052457980520050194764533379591193239714294108325602566140641466020168391075540270474071696053786265160035231532210969739837516774279785471992547039757608731249996591312084103404970464393292535784384218153927867918995174781365547297432623072312758333348678229278901659339875139865619054755163306524583392391077039537357449289043088591489717529125554331905323029416125361652102584376035342955511193728303539250843576960402894162253787666253691478307319043009326663236828355727726778248181791510033210887562146352577748439632020433034143721585987321455708531373418716503233570825121916077335906430402015289118467173759203184218682722716738664852078365452950133141518004132882305211456901472420457381911233081709616131217796567250371692782070973435123003385914583647228927826379365499080883397170941459050198868856713869647319306138263850994860432115029623991989856697843059045830667064319413338577248354189117528898443803085312864048323657196147910877706543482314108737396835396988096653840881946597818219689097039236801525247714707825253252389082801560407923667256422267902870669997671534506312990984472537771068585693421994238735714693555049025075165437647404047272240692177350696335904637712399824038695306314690283425847080573641359517329257905486055508943102503430814641240189878248159691963539387913986468036412840423841635288813565982869489882717140969012587907406511595125202382060494248902834840552532015796358545604739838986412622297142069964212469506942565919834250896337891718599451231117411555363034984028643493585090895051189519234481179042594994010132777194879739110310809625743115153630585870078472886077404679653179832677479596950393597871874267464708697129345009696760696551597249400602469086673799943210144723682061780439795565331628823454530605148825532947132927284721998681258754177461591901145962164305747690245308418875497218691265905011163567304462427575100990931834618856130270951777061474564254347919004414988736089472176881781401382652312224889440500017677711366512979265690142693396835984466974617841624639220949413085410016348458958095184088043469167293573825652040558334517950130015323338082509705310913629691692991866588611057653362470005262638987249722918927708445850973762951669665238303415736858368103718273332350318414537254381849275882928941064170297784887611751746357796025299714990359719273119285081602933474400414176602973382209295530838412067007420648133504390764998643323958575255558118347298019485353043400866480486573553007052718021818054115580021500206591307730524758636851049660868519062400269844698349329123950403502504421920463039671323864025388104809019307355495972447581866674398482026124769896138532866409983613472520682776308041248742556478819378621174626768778333575210154998973494141710597393577733780031272092515568082307304684707301535946667276415003657933609406653592169373040552798154364262073529756003926184327676113882204934010864192799954674750026863687722055520871046861452043285085923829526858164185487646421608486419887948115796983312213024448317417233734938784919335326077657087399315357701072722001096030062781343728524509152209620666364284800906285443067622016853901223082747446843473685735750266560537843517872143804671926415719583741713602179626952344608799063800498152913652643221675180963116475873502304040871894015494193692386819555008925106572509880631451269999941184974972792638621902070179846239280484690047785760865204525793742964931052941069778611185035105208396061401105286596548571193337648879848088632857129170845584912723654325231761071742606006815240947469029514125350692682733298030145195701711360356292076685734209736808302138895327943855424500030064627704247062476195803663030435574907857428927680790681275678511873665999995048046668207957808256389488432591414282519999925427321539638013614981520490368252540121791505882824994066110141825763400679971961889746742105658927369944665248614329688311396616152866189352327961899738350228986850003254715848670923999708475620145995209651747803949700923873663172015993205849513045814652706272290123059909708097198259205279539760692986583173117397867900306148414855792022172302071696848386289185520122923228824274390855470154917171027152593301911643315405441935163059487702777050359245531297240337286144331126688032348948620312263435517315483447827114348445961351011352825508487250161735768765437634450530232232128390427412592910760266347783171926849568880651741079726610732064543018635701199410927301573784364882790070087232845253851503707797726759829491133622644372651355969748962307269648467522152171954020328982820314958925771747611069837104048547865902467744186982454292053865484095686511882821503279675967604565034062193315432457821862138004292271824673886625661068773198677675473176659476374980173278660444922395760822222152327558608425910130269521097887851817080613028857003318866458631665549282058242994073087537419273419175841785280896588067359948625269671046244291251957201468288449163205236132381306607625230778926632795426279211977983742688891875123516889457141452260572981128029484199834481148470309639806296401833578553253742264104228015900217288106284731544706145826053567427595894679346109475044672193907810602213403823992479517734176726665881991131299250014908308952000328268834214306282685161018421307623601599068673689122712165823258110418022738434411635945828926993340822415773744533322615501919340835946360009173220336884593046269653099324674212708599179830294953467489250179843855806748708938681963470442287624133241524359017876906725922413454347653986700597480485408076722416395159035799164640954186679687727931757885956811849375116932565340934616256556601508626639316495505981653942912038291972473165476974239681233155382013947383911523727836660067755214582687786964146960349141651085979504242065556548877735300227291208526970653707331373052629318425704522765442333673324214375449625903666343429870142020144274377476936606583597036728034877749521917593555244924097512699639272567460705485462776065366997418950153067525186656590915361474510659562281688671220245799493972920400813281342889647463423617401748486645422850454009970257930483477793805818085504705007109575420990950898269008910116662057328846444481222365571222610947384717218951200919163712581606440625521869737677143718431287868157633417434627069589251114694835243974046540873206110863385809837224652973942352458341311347030256858791455939951915529994321468881570294137119204195953486739257279897235212465800767865733079670284328224569736026985302319571750501568193796989271554744448463851231955215694328433819000648821968928529305595381258119422193179607969105863593018889781382185108297993731721602900925109169397455029619948126709304176777868545202340583881142324031417621826278356707083279191435795478321747081321414743818637677739144659369453352266193990157118918357752604003940400955537321235647597567276192080793628045387405489553729267085265092254677491912716372428447760696405139739072271766403388719217400345427093835575267339152817200839009872145295958935541260213004307932062709557313668244682463909606762884792720748291921919446725619538374585013865762399627225281133316076308432044049541352526138962976577651316981087836173050916805021773543878755372494247417455577861754306781249792720713153234960711592607163607247606352026746008166027162471452795300351543513415518257495778552599461654969851973672062160411808669438490860778045235502770145576549396472571349609151999915938542939446836338188797278083270408193233029521762163392237686100199949381072324899253295000901194887949650382131739809759515660543313341671112625738135943360633763260136824881444983237983050433377524151948971279319984763378104715505866558028935165451053624678066764148028503472474146623156950866487081203427902782926234863155848071674184664892147745029813077621187910703514500748842499907699144299059102000851101310256247401908701826366832763695084183145724671779483429495563812128004416773395455247695600128571585626856768130279738319481896559204508357487961044472110262791962709731117615843803716762263966789395349236131452351474045486480152481883600382053857321618942647741216259040136480358354810417851599400787614252562973975144329413307738813001132423337007979188312043942360138625632916877437046584029841343065597216688404259512766261884775179023580152313966171489551795193194101492337751653431485417085240226448928674580512218684985002820082970425897051129620147962589994914155484371339888692473786465484699793663100923733150479387908848557481537388135917367151133356623499073820547292047944498684268769238766321394378303551729503507078405024633846407866391132711963219698106823253289440543109921874989072507757210000219893136929898312573657586424770439504172199581677774728711251628995232953422489531852797040327878136238703648865932798140722130444747197311513666037139626520481232698714503008468789849040622632642029400334099419141640550808402011566605010486055188401314026004218442279484918410045866819312277374248984161374771006627784840163378221624591465135696494619320553195721411345175478401185585343259731212522396665935342218003976702908477040485803818680410381773107399389606488636994332372557686604926988279709256113654869258584085584784657341038440789372856290883795353887247375967969938112244661352206885736244949312408202209074535763815511463536928798500494926848544919863872496926425145526272436593890755978463958615086160745030257753503602108302927791363532120205589215199690873925302636659445200627073632405051892700677687760306183812353826640034197519317281051903669601485665000465803567472277757950426492798715420773523919923542869368461970414638845946706581701596970178019821165785382694368043921411793655680988874699050145937364327735043048904668876991953686361634824913226354012375783441247808228617773311135782031131378866684523544122050609036571452750506962334905447566348900483982635742338113818982970725660900938120033836149341951933222464850400866301738793237085153471803646475111117940135379488241422040848055432984426385948620637543222258615183627662444056711396577094602162199359009971642723042288577294222106142847875828329174199180500749995699394748421635551236438169389384607796771964662128197792700288202778053450587319058049685398679023946893072654630469405133493936676356954982902687207216916471877189475660558826251508963412033018256250138171635654733613166414849227489648725527081158743054676946935411056001044434777262990851753025034002049512813807158594799943947253198654528469871613583925397850443716817836602231096363160915606897296427139829095137760630955733941491538425917193019960682869383671308289302544972484844207312962434089116134032959481745612450905116747832673402566072824638561512452596775652017862417418013466170827080464799858506902690090084196453956365048010488250751451879585750345632930903697561654527960215769146553135399106370762843573753151246670032245761210036216254642534146330795445170213222828282270011350869120869571319350809997739328511504221187062219960748004676690045692998844520757980850540537165664302436920061437597537550715374638394519524834130978242459843274503005751573951146372572693730216877377296910229052593670027861846513184506655404641244403401386655747077120425962829950817069090601630880505117679839561803658590859691835020174715995228149256520696624989349022534138453581800934647653469189065463200191614685297028811032153946621153421273356506530530456901481657182317493361437409136801405065233558749274121521879474331666398535957199638386456137913148700263528055666231193690871297510373295796210783236210459503422978096105436901616688337113688309374821395075973145409732946677351085353849098591472042488957852000993718053520604255763542150373430659812743629470385588738986922340611694005780541043272618019829615893462606746659478484082497477273579933496120576368495959020642671159594406770913723244549293761382084921966780608176327070525027444577338573628916949801589260851370901252129758569695701779519781517391495358193330591328730167219685758227234443515062920183712098499102255614079330006458022147187927150053994049876142563980773653636861268701676098167534805269113744998837875250613127879516412842516424523953275763493423020993709771078766398099570596749508221831779659776188303582309250672423387990362537078521731931628508967889022614666982667757900580969432544431955210374153038271018969547739566508160605721655763374147285282809204661624631804110674985867276488628129487066966952314828593339350822483077352007354417750173509666955607836223025767459971549752879594553426002072685985572346127112551228680110265140012361638498292371819425480931228776487154262213378090575407956282799366759010658451869181905009062547617497672889326154671820844225750391823615694320357728780808694982139188765746244470443003123459687914287656790309903333535885241794073594420939550345570736002998268698875367221519647571321029524942471087217324049267112309358159457330376982288983793696401402731120052431021666386355635549441237870538813324605721242118652135153422861358516486084108696474339840230842561212509913903215212391953239602861872311576235937077981641542887294906741415642848914780949043428847508766658491087081815665841495470872318527457586568829003330508758800413310228419432519150389336107296992884928946236226887689530903053751191422099043928336637025247471731739669947979910430450507055185625643573054342031394995275492498596925197740467623937639766942715020712883539027921274631370045523821444076284578894435020361149742157191581008545187986911763227293120369449536589911586611134344385344351175875990944905567118777139791673397599750675425828520637884588807132787802498665253696003512765415138775943240242988542638449544341703947687517704542916203272859470076240774890130287968430436998046648093983405229734936401135217891530221685596719310880459552102949924749883150930795745212621997350643999870039133295176482592173870073181988961416802874955694958815319357757587315651577629300192343841872348071915401373736705904892843123478561723742551411133298637194753623383855571303280046250856651598175415284542970234978130780016052525026205843089407355808880985941452332548007117791311722014895233890416509213226458921053496168188849235532038312955989073134415852800240876135811768261718014813295142092492212724295856339856521446651156282303773016891814091656220249789481725807651349270173187022574510798563975191017934709679714178743758681246639133889785031464668342550576112522658057918312716933215665614726264135387052856711780354376804524062180019851574237228156594505838676052177846322290253107774730486186403587725776063277443139818323559022794261878884799219881985434946674669689911354781575794046120206287431965206784606250412242919058109190660127170626618941240425377390461326906924390388423310917772028430786107352052401345498191772544799955213383078463030100357294487799904545745764787910386646858035964690262054915086123666401158667277118143078581590016701800755033860741624058403489808937368850412674212176911382501976819322277610747098726696892319163494571899874371036875958486702078466462844716781713823024576872662944773110667812380404987300285500115813162959714538673479474089698199851217368394989127795300071398373774603015324319676034709445300157897579097851764466534720333669385195792177468550981125031574416637462182839036914214155325892845552039480325024990885458074141970684831604977915377899499050619207555267964041699252256396514053983371911960406989545986936051428007959603182414530270230543087989860641469568390554327780089977208671104723908951992921415337862904797896037326552057334513013427510905405373736924390552583234074789265696076872004358443940140881275051606239378160890268820488524126564671647422368770664258283664289108574816044931359734596887982207468908064386794516467694794577765501223737759630750372040280309990398798127903342481500759021234451240177060625220641283251025877684543461908316943259560890651273284874569971197510673639259040935352173454514778112223932567471031111393635633910443200892915147509200742585745322916507428393644401154984818798415541845532278289777067313107253874096611362217022239576914055435398751007636176817393133571997642599316991345538903614720302572476767941535606437155465057004006547978081517706378898380349968409833827736095985893396868520745666354337231825722935700563339497217229279865876198812601756107879429611106175282578836137135263759188269571693726898285720352103455328114042159204862971093096133878348226239702787000255228116104102282550968898949141697088052588123138016706991894587098652929661403856302716185930109843881332712405486324080594072122671684880385335923700987250431472049400245762444268307451520496242630909768594579446414218576080355800838543172985211180169751481180273491191867010539690679663328588728411665118004190630955328079574286312151720312192544342552007094146383191943387430727213131832855538882360950959639838636473471151345935496738846795467542018780083190865162209279421129428779555209143561109012037981468471558506909101476702516711306864559471788432560456260933581377170751675673426530046476689147841117039419965427685464169689124895447953208259785833792367165432308381286510142071296766625586025347389899342962874351031315460180360121387734652993568519010733013516555953301798872941589812002599393921687362614892551583798807425464410458392938853026233924103748027666994391836750269809661993372998056640671244837027468241079109776092961687704784994249203936444625280698691000288978019939360707122989457478372674086553574728809112308288065177326941463221464724843721629528783986573958233674713473231788080570095683877212697368977923219175659830817188138375974870996520638813037948403182305654897171479291001824995123666968277906705139395538082801638858364561937244190224122289579969352845661545928791228029489924354212139368388782553732809972900442657332102652997803651066279206859134659572187452178552314063285294429045920383427175815323802002043933354031846820022676535430325546715833461490452198612229585598823526975253644795922433782497232976824449548705232859460953672416432685072634422517904439438207664256264034510949101591531545161574039165507348743683089535081709221300698738058762983745631115980238651366629585481611538451433737190856802211101306887048779586152541995823445485483076298407655223362262311072204508890529744322821374638269934449077159221349780038077018938549993481221021514283528398422332025176630531359596520414465109769657852563569773710207710988543616001959488670748232542037360455134429513033124925739249057051435182686581053950865309223739465660710897493708459195868422757834897465399040586904243488885341454629952428067842396727676105216310983578169127389450660943437296887255130013919693595559466445553577493206699655997396724630644815886277941485707340998910321016236523728880863562163989277130066528816251677612718790186172259036405351888323866631982301491662423465714156950735426756626304543088165430072578722185085782459369551276121600735515371432728276597551421850155819976170208000256180816661658215209084167665724086041770913982258308018170428248371260092052500343699035838501610157926021955983310171513870412712943864440111674130986313977904737823857485850959525259141317580843475559558641360620691248688616178379266905676893285330576512228454174667079537669006583683928775280479383511575896812901566133293651886525644904756460860043230669717940416532014921522304214011875848049093376118329620523472297925309636387632462095023168077907288055680607751366614297755016573699238377875922547264608647481712564143074021058032282012921328073244517428937042327252309372111864478571790967594498897590134886197081190921066004091290637953890129840712222543751769711260094253414499617302300446786872532949504910159579836313144812765527290212106104068716670443940778926612364757618639376963185981637764580146774726834672740904947993200548247332474972532298509611897187539236321107898237838609359823818076988677959175441593286695620912958320459802704675358934273577740740544017848376292058063143202705287064347191105031748260752936431164279322889578246154443508536874832471486730334746531451687635557624591546726232567746224208468859337026603545377612240277761532067256024954708579726609282868510454178552889249354676508394447035358067910646125610844070938459242307802235542886340331264267345424434519574860640744722768099212314506856375641708918424622187386450215755606988681031847361559872024790409516189597153722618060007859394634140218745007641933363345991119759789139797567855346736889150556263127563920857788963126575817403952810892756625307701269947573775900703164239031547881114775085512173832814292870359561583875217203209909867154209428116424628544067103772543154834415183110297035415761298803660545255130874901711252495644377297881862537844685591856019155372091304983187175805063958906467343656781374534681059312896026420279698006878141338284682352422910461644178111960547129848880014900334309531665610358541708718971135372305411528972996025752810434972657856573775252143991139118125443651272445733136151305732721495424701263184448878931743208294060272496095831466631258219623195147033347467053387922020690309966615741550111386873392428005384351698518881327139005031382702466340622299164079174380194051766916671856022456843368151403952867344405026637088991322910075268744012122075357247408901994800806025158300529171834813020233091246645451428683234335882858552074538384888090617840151782074760246432918597366663628545224067204924067691770939144728252422900740994353933736524792435418593755045953392383808280010331588123959572518925351639821169913722431472980840709141927508146638790034913864078082743493503740733852607858731873473915154937096461363564556026736659656465339057638913078267652029093119477237899101722599266624794633818799967264923480232508240990293125575109561297767246212613736634714030001523118269140621446518710592841541691606013640284196059329492721740551782164697459499776805815012088882988324681983992030819015351400153198998168756116838108837204005072220239931073070672241908759050238206156036174744075280669463374383355083939124615676329512313079352683581435962205790885943168912502876487113620847295817336092022734915679519149805702463812458097767347529042207544322540632494868090437494192482901342655013954780363894122569637781548899253738403588133844729715771076485031712102663281747186239971829840758743940210833518102891739309889435122626750128313034035798080242597644050748664943749233250373561941805092663184779559387096319723103072203666979341045537671957534796816663702612644761074140726191124167991922140823244964140038795663628627402890188914620969809131382480892502555317836707077755469142507726812223625257014208479088832943099893422024343532277062772827936879610255499969123075705739104846889250898522821912885937908623668344633257200582476227687408993320730628335150058394273189538294460457586427907277120333833323505188353203828864201338522089435267581074163640602363406362612188262461663939723437569853062651001020380842068493302765474210765179537223778092555046903681898779600273271613576722318506480798765322009609736529807636693742553974917218847501627791730104622872952911914830663565803415863358280784030926714408576832278626164574609939733146587709007344941117460186223708822486231870571296271034612654501105325730682920008289534692952730967672979705600962739570063263152869509407691925087626723637481661158143632388055311919717014057685144413779419107262147051360098358554066752430639193527261976662541617001958096706342531127532211400893755274218776832423038789679112078362389705905413410947890079466393737451212155371784650087991911829186650064769551813997179904057256711215942677763526055652921966514185054436695399538181869004888183603933549737767932391659941877496141683364036358735275383072971179697442996460554380975647031642733334775332162884695092852589597506910380313336234011348149070322529550792038670032124034491509410554308773705150385367769256491161878956900847983754319498351541994731964472546573929048943854864892816804595624251084009441985711952938001919695186975227739480590184284703258239802242332213601008861599516694041226230717941186587856142721931632805457004393827586434749648696508471515440925009255256427023280019305953707311291460471084430236151722364075575392925127121104740121846035543945618447350944524219311781191038565863610199277259749609332529141433844179392100127542194108451525982680225715334736023493783132743552035978152871007438809476072476951752105390985903755141840730208828974359821855357615918525258787893068446739344072843760865759103756449431321850958692372570532506959927017406919020123281146210898465380365011480080320167732021678856025461490547657043227505835711281852911170619925328639575209745871465377950931582425869761566103076205408655030902175797449029163508888722613143497678582447544074892644894587983553428702875038237487483518728240550213521923739862592208488187693450595226885149604550360533908187274992708981118578564359042766110324853966049304279279460946324921356516558584646553895563871115044954524879320237980982938333324134693777022539226838493917109614871635672680070819901012676537713141342551117328415934996754098628534477661204740534813769129964397203471036778528465112707148788674641875155780073681956983938299513476470559966272700237147844257895351136012122023896256290751510493975693852946993147153436929981933272226663244451491459345496617328260243772934876183159216845474737769868960794703912008397822511752181064534578225589344213452283788277768829260968904822563602058831842188416068664293726883374775076654608485009340981706567715412866472459842067917175635678771578044941666094074357967185712161876379638620965113973054461500542604542196042533757525049414945560911874926406373898265139090650734558705307711126548699510098180616593881831570789493753533825488481701594037654245647024922327011306604808347735057744479895975269422702018629334044489061031529761904986185079282583305461649138571811889066038567996480116675846802398219456512585001895734875256442658732600050920687331575646421716947645656546643960345378399715473492989455252748874893469189785725647601457077758746284588205549579421420696408552219556675394340065228693524834444320992114575385646688531531034494065499289565880817989397703757163233052037955931029952440553180976299407398083040314069507053938823318588422470868052593635366128304566651507442545753941028820267885695454679890749913528473320853822745080101029494754767129849879958293165860036108270732555836548650893375555122022367972167218080229416035954718338963964377906896497545745159893350775232205202122248865700163871534607476096323784743778571951393645203391888414022723250185550731139169668619553059288478535343345834202247360622612411906463994486196121289724268768910700153025450463771612776927203344663029407172385171702428063436101690199268888872857397629950803605889687653908992876591692563963998269057216676311853357257381901357701467890170873236027607053054847999505166124655885802484650452227336156862650178758133416108019108762824389698263986839894660393424442177574718903822320238569484937871527114682486736416662103917214788996175104933749285659399909126882463481446072420978651171255854639243592678066448414670308226676631649017859478743585595710625627302512592817820130418145595560411768277093511313796059347387374550382820989186112550593174158291864838861363606007120297864890338936228676117224031884171763253985301219077758949290242095739258625702905342566981158879734872276520794528727482922045050277282373997127617288077019599568756276541891097984103716200724621313332740536850457846664573714935053956603249570880296812431996646928988365904449190805884046771384174914424336979489223432407616727404836945123591854425726843576885030485509194219302966379752048850263447086781117835554759133817962651834926661344715773492344074878851921855384852094953467258644682220577310726327862553151469341258393708035108341546955619940471446891324524685198422117912243227783092407922396362680773008527090554790423857392630257784040408152349818336229933416627768302051163009204511174028947253472340955144803676221079105162964371867089587720031292340486168931669648332987346446809171267504374658705689751829162607160053778816040270520992255455240766225617652343435286292431391165679025914380675023738339025106936603331515341474688411829737114613047063992866498595823950321242270608167449840744749521378741140019948828634074794517841816261729162212581658138473963792851741846659794912280431079164572939064275049868006791422086664099218588776197513267209717789494436439762932508085345411300107598487680206717408891270477243350814848134047218444799559524857137665277426242272087082218361478941483989533986052444414764699462690496319788162102912419431843571225311324543017867029831051082664591728686541745140952447025231002824026554396268959850067883445137134984437597591942244438187039536620787432395552373151513281240388221066619561006976336489009289066046382780439235810343558728089645004705706453697737316939116977589362326465636798680262247715179695168341659111013798180512932838800075812060511911589136863069713383369707029709773053970838103760024268310899740169209971597329010302861488957994299901390009752370146140125996973400862367988519467623217833226879374605897969439243554245487938403342802563848268662081507145323634203911285600212364924569914548353786330781614683030065235369517446540980953310361523547851117738502893795923163049314568786843339932694027929180597374079214321579605906067022590441321636276500516595078842753954187479267479805850494067283805267230176556588465733740364344411745343104213847483143121790379912375610777759441888298333879893921817926621692294510300117781210950300842323437191241287340331281107161808702952485529245433510001145043496507263427292270659278012833786385483344365145954124264589183732323607818661389669838843995282003932688767096955536221440836560061854069918198392246130509329830732603111488939163238878044099858216568012231118023856923388908444567541231968592817927953366495577395589644630153300144389183552196016440423972582373862897208271603841156339313749892609840504957051328368724467914924323920762837486343009099250185236825104426913214151500726045784220559006203077578808079123957990179532534251716586566014546524528843572297107171849542689028763994364014030704363620721946585755348790625080402975399767685620450205346213136956053533896191705393859282771456078043357120441938860797073578923533035476927427713659955556781187171410171138126681135566500414342994489629391500913901245750367167928215392057238624504786906670067699623478243552039274276335240370174477757707937840850205397418254761512946767758533189202769666712943372194568562255157684807682520520325658502358240157112640460926316941013358817155287437069212233530781071246972089549990306414638991102482770980346237771060104852942393580068847180230818864387999468960756900440678752260545490991254924227112900706747539737752425840256058740937494649840802555810265066998548759450822227880632512142036272909080840790903440974431460756379408097334767528164360154892368794745361486237758544834114929005308137115226250560603233986489398876099289961948538926204162543650051189684474976389901636073636467881040465048858307510741253010969291827756716620821136505688303618074268274894383999336068549406274108758732677117799285908194830178434092158705410035096776461181262268839648168557250028114394726472802100936690276848455099411983729826089681809151893877491513384446913060720581478934955272010808801105344983425136514075165964300386450504621504914830219773479330257463405361711413326458225995663879632818884118064177660818453639151054644204893969417361219675676044895603549465371836900004190319769795180642425410189446519046091443335621598237440270549584660197418446312140882559325038838835131224867925091437043468997218746965364608845311853768402144624616782646726029609983969425020497413595164192828134167332314489497781406651636247169516388786486895417905805596938344113098081879906875922461775293761480363190073299634287079154681030606880325212413339483583310938034816477207245435587340083471404264391394822123237877145435810856176908034273336811800746553254650384591935903612887027455554523802020449201968043436467118687467482646634736081938864998088529046385663903470765342024903909258216604196951461174915917627162618419661039026596133496598269744835695783944794959773457520060784210091780378684252998603352962286651783823298629975596033246749603112228085891924129870992425293479011011278248834271763819530818068753819221984259886040018886570238395316767722760069315618114610022896199748886172681489610010442446093576273598812027122956023176045132497229854412188044570036703693740413393675037114214868621836649847706057087747925024626598412426311597214673017507042273079447023143512423433446067893531409836135401562706239051191226796628840004885227201298934817364882132777953684269407477061457594369165998976670474618023346350038723920961131755582287940267647159037991367888163128259437213838975071306096058512334505698615472948454238143998774250338687240842022118836631349890883594896845909456788099397862718909939777471511249871180388573376892302409971135312949870217095041278925092906650493414887346713587937549023463324479419679587147753135109514208865784500083018421282540378305736167316087944832443389207080749098904290995911801356359397154748125247882351789292783856497415467297699844561616766441101332594039710446418862955222485638163086397542134012389086306196030215363061922317318784452592256817216220585555093585588139878154909201909293230919766641449966337676870189767549886441100378403901786847520478550774123271739527560580106638433369943184966548502003832351300499139955441225964784474324575993417660100188081490877635403684597464456592345325066979495717560126755820828452295442268370198505286034997582049182257493299005744528359913955265034465727151343838713154249180901125883563086474740602705480790594729184314162098840399293150730797033489656135402060816668707396001836157168972795023431803892210443380387774291345972573876816866664097471748994434936144982218214100847186172836973314097449404609066354070232417271998281070686716363575522940567538830960548472022000252634667653165922755639091360213245445608737281044629546811757089665323700131526174843724758736041015312865508986931223303461310705439203340118951598028732585157400568536933587522189563290106738419420848237251545763011949393572643493196092292332399922492074505735021555613899465349657863307067517036926500538004522654373612573885878653565899663545427692482811766217701512397657174919332098210486564157652926513105138027004108722032929930483402662738268405334781671981566540433939675693603468332052631395343986215028887169360567040057624976826375968964637675287612249501786678249638796894407120905184668025687510282684243114100223601881400955862404110054840425702231267061755602982621468159893489707859343809404718575084367024341815918447108540184549554124942835085203060700582991169548616494396870572622314041671984171130175967823578987744935941682074729143106637755260459600696390185299273607865719587954113337137934974271671946439189206615733426274986379089443631564703814548235417287620405517917596658435585839431111902449049700249886155057115624929875409204559103819636343871765313568271617312938176120148941887457839932721297633014826317065475718833024905388913085138850012389241180521380760250883047400925421024941433603895698708734577409613357743034148813265315494969334804117649026021069868331171804528124587052721900006668678479226397634030524854947967683126820282576512672308458047193256038707343205658324745927825467747416175930160718167418969578566835112895255862611199963783266548897449380592542460866301161830740013541681460263800020173265616541584256569966740559532571145356250069191554711184364340895736309584902554170186016351791599987752655642911778807962886115432766379673331083146458897065387461087962930176621766935620483230371670614776521323816645729575742944512692061101233851798901899701989036303212346022164660844965595553783703644150028188877352769104004465563437987627597917468545778688037341608745399415711172174836144259639000706621735854990113767724949915007663117105800218121498618849102155577036621334606634681924309914782586745846526830465472930705431790507125321507878854904333884997614053532923816920985626672618122787921375652361405913946344806786012978437717840806832667969598260346554766075370646400650805152014607163516657399667064987265550968847796708116098415967619047181321154612881314928056401643400817920259719218678897861134594304531913930928495503275089915530249568840357564417866688000150829410217170262295941591577391874958989720931587655680259454786080124569503412099197630574199013593249499191442999840632571422744750212742146449068530300250248197495903626843693106534348235313976232684597977037307145555486339699673448111136547443058063257844976964207594936562236951847002868451452899114391193015237632826882918039378009165193999724642748864197112716210769362351537976634426336848464515169426437466777115017533192620122783748941331535926949220302007252193030353457512687932681806076311607882955056318623185304813743814529507181169365675699071885399480694024220857605111775362671929977373396719485212803845916722526709331232364453589188959854342550710493463770276187182967945286787227545543654613841143861607019076380268687301631292333797862942005048018722476706565292092596775154381103954655525892697409186305400386056298390673797234305160968147665688984917092914236370853413000647200641242181191831756285688695366924691986493275584411965581486181017069635607501747530491957283497517784186759127832593262826562032187804850519403170583948734391907270418524171131752367562815291468791535711017383449538061714416016475086328825209804739625048198584914112852273919239388739434950138187693522332745820738199293679522879019609711954622946722671413212206354381786715297037127214881726459131163712788346865203653032719873491978888821802001401904741765862394605982409548327158993512944545750687080870601720161680900427642041506143326333863417857954843537911334863994028467669847766455718472655170379533802216034317270908358873556309615500387803925508054016690122194064350200161133152452312239242345443256527577382071159618007459910358486186277698501498920853952931153850373535913062082767280100654762065211131215150810858017878341577100827526334365325822571144723089713061270430767908682805270561349246671666986708993500165293716239542610265374960390395975409652723849289077612583123647597881613704619745915875177062879429811741066546119215289460777715723348382285988394946553289867987238881500264412747233775133168290698878759679883482787365797458580882384828540056105266290984327613668892048447171665333036807399861526973970717314143979200025110589253926252586684647056888859621109106708016224328163203724972301551280107204437403067759130964488008857608972455156233961284497644898130755631979779665944244996018309381216162814198286604442424602159606598881751314735047016575777104487180010025602296797145588023639371889215048533641324021206633723055425846312385870553381130479935280005183155312432131796058295499988526479969383050621666200258245004361756400701778856829241894335870896613989347314868593409067900425186079466658725730644170245428065045423833346772948991390594922559304395088035855778690491064597385777781239990799214780986029722029088815206961856302223101333231842660724756715189627086497042628814010583001047179629189501288568019925014503002753855159468596577308215287348614976645289283867600768273055149065681761099281773009332701815591080986801508692271683894297328401660986674047826284093127218880485466506552196300928747080434507656939674894344585926958144406837756607980485099864037091385087352175897793794573977807098985117444054977845043630013136787962793386728906845120155254566015681626292623424077153387665486858908633740348680015273697853224995210862758970660637995299628101466457619222466494890168226295949752481918001135998445585576550543134199493457400206231235289535371035147351639700161266821514691832618085957421287942300080600609300510911700144484023567664954360199334715957801090035701467000381852343166808461938038571984280685883754624752983758016461923263436421788774511801547988834372972164039069278925267998952922095258555083728699587319593699243505954811046161137220366472582743177521259358115383512838040745518891104378914174556662251143851503108765240315566169770807501809964817321236354489490258380076856547351353764540719980986344611057719903644254016342969579241992813616640193279003443109423614105783569187014807078180690976724104641598099807190087395964221842024788029982688648815582455788010812426001884797281428655760109695529681357265623039032243268915630810565749404460850842990362828239542564171390427643209226960968147693202476906130327096258734449333347495449196629811939446720812816011108704968436762253802503924965673508215776296226253099292545574780905895586958307627201484725474596667041475690856058394458162542936962595028373676876263600732904766908275994133515257593139569750058055213825484511982920645110017497810398735640967422599433329715857776419313559850951855333373807072337701791838589323541240841386915112723022786041164222344546119641814832806714470606153973196549578685240360966545818836492752028438311393062082852311444774919195740250783404486258126464392277149237180239099218644368408860406697400007819768646957567451087478861799226270171597641925610622285375995508424799500576323494181955835232042370675725557712115408975752775739047696388150867892545158759214670577305751991412311813816365188675940336758917487063762945601929722524062386615898776505108953375517285232082839461160774955219596795255173143046465510800461712063867972321978092848651167037259866097227305225944639291993463451012844396062499053750028248333517189872326057805187727255161095720169317070848112701431615766346325384698320850457591507644521415351961002654727958880947305164635826228686374223742530834201694201109074669112636106589045455581369492348728838116105908114737191918269692155110069779356761593263797096483432643069465767153698711314294939522967324910154800827936805554728070588243280952155229431717257618298806091400769587369848585993136480839794117369653770424458782556551588876179496224884619559444456132547143527516557076132112959937158565162135497495854575224314352268679694824051613073809043524874379013863021071379269905682573630165332109933749065810267666571053712177881152655307148440423025510552876783058803943425011603536960602943636678442102269100731301461295115271707994758941228997830423236397074418782674688033278127211577117818194198412743400117517994733672411817392160701070018726012932988356793945528507751140930775632362368839879513088933890071633033266383990489730861182463571018199756578317285998954859667436676541643268508543457678959157917096370536768631071129477641734811676808607300419414067032396292817310208383066767687892294369678942276212749945879255971131331215068693468743298171281211399859670074070214020344373860414052479002004027587878445662571933072706028419911245966013460533968855157733985186938850841512168841230723841172908216247759281072849421539865584392164024878770240619882380040798978088846257787326301712311551866736031206777183037556874394941370401429712041892166879138148977106983651394146427581926271080332344425953892487936070928041266737973673245187305134782281608883474268070863733111737566376217275554548228397420682981737357254863247652166057661591515729176123238213256976417121948909606901027378590533248961744592173234626883139143118101730540224097524660213131303680265710793159131740005632875747201249831722105174491457924531922189692592348771834021009444876475462129845400647256992774533676529410722082540386921873252039957425527094299913795576871242369964049388507072027390741004592553984026169060450883800404930335438200675480890162168555293423010554292309438634041356388022768465515543133561468462095811941203273423833387189545078049001611227517483645742330163116200036959719817009020977065838235082326630828183101336166935592850838388775417903645035753553033381190158526796943597479302976179292273982107052598331645462733876858417426156076301659873517239650659522281358048140259881948708747643475260972893797605189783519364105152596310776450131807438072796782661845067507937674677360642710611511222558309188802959665161509154556158388955106663463889727520169773953880634670551934500850482267708446635321960821271430766823087180187508331340165140372718694362001863221588827021387828674378921228969943415110071827094816841833228233736770563372453350228335397625384318085382470194134167630444181144345575848468613022584326780182536827420829357966260162460183282399969640570077790368216837740651810499409345301080366911467305564693932586778263301181867265126512704919336346357577297853645195072749143825318821423018402661964356063375985338751260561202589776855501077145307707956801832477371523635715236083473902452724960506296139702331842609477826991687796714772438758133490122723369372201095948438437441114211531688762714483312814268220014467849960954116154168763498901084739635078415831899545962961275559306584408358751035176943559154146150423894223839612483090520277256994221964790955328129340991547888754386746452194071946899354315512870433463840573144633215892008945608399431756057044440599979582369130153633687603192380113874951175140715380449312883313542261017830433280122863943592086564094838501435142548005028299956606485322220473252789624263836639807858293855190797319887231549149184154944046361440200399713009114485008292259718800784933109425577488152653700008129214258547510311163359308393117122078172067883082264856449569557878622142901699618631671154596050377139410197137003322296752402415827493956153902748690587982631516685263764295825842043517151219888549046598282833741267682803652520210333853644602495347819765529993131593239021917182463793273516610564974549920277444584014087049531685220872795780300596688798116675519154171443470726609754083230532060145108811719740667588247052399343903736535776462972276452197043579733096781810473301356859436147455437283482514234808714544779404914469713333181980812562338586209439483141638293053857154588595585364339404149474017298702075834411395477106589147738172251245730930262944536535422111105491132487039884842393591906874845058245984664536602386855447684025955726084324694362183891639318433776248484525303826347054828746480841362583246898932765734655899391861097734497670178720677843228354236487134633447696025786696336182700553826143321404803246680299164682501260252960660039897194779728773343026214012558466109531145089847113132919172426813545168952726374823259776299059398398835115254942448044675914921376637501589393945902815736821290366585281226376150402092840605361499336554238380770568842720721022409944240966016643162744774513848528808491205990313207303451411290526856335602281341620089693898310705373650001308638868650452499567358151042064451254607833829932946047367084633870713163211778397957468976911051071540642183421469563052514498255526012767663894036674681209879044989058064635293392996136450188515446559772520860584944132741798801430094603069100075814433781202750039316171919346158170221850421733610257048279010960776261000261267669157061656693454785599087255175914487155030096914854348478937858355548018350543234325811753000606693488175581399802706494546120505571533759972396575441571945313488580745510042248860778604113145976187880810405585534629830147740320872769888634300215890824225019551797621746756612818447335660319660924150428662578612786428741370732301687088113069167660537324641493014706888134133661744214704564953311143835841612190708624734964794346098633251121369390600162696202134532686293873473095387164502183768719000133837506588516899363120864535285834655821255196077447392283147171212091232350147299743712093696535473429110751565219139815586251385736247139194930551242954524038518878551820098136362717263034028444242359781088240159745938808123305172105500781214263718279199719647573696177038997326839147475511509185448366504058479801009169487837464165694819199087027649421870175305535897538591428294841501879282099766576090751461913809606844850943733890454566012360791625045415801978576641815853491789615384447793083873323891919887828517963589952466049762951823498555107445867634888033849733303253493829457481443820243167642426329302700696678927704109491310871288543389169752820165710541133802377207244156969832933928566060529183582502694225412841606429730582287422130297667251566383547535823637376356886162730818912814128313395773807064946020369355955020115004389025103978189654764749815142500894397719520287006905963757369357539330174629436123803662009402275233686085173663646414826071100871270066569826731606537164866370721113422179453238825388777346596542236482288130022935934570983773568497221947929321008491424554318499717978167288252592550083132701614694665635243730769617678331824859781527478029712986430029462881850080414902085628680422000569909504524538746739907985097274296704286820995982336029002072111943668276011234162062816801091495867899629992915290190617288034483739866738302929628598555808513262185883072297524013661780068040711827472190339805532799745772349260170120652779299548751670487403641148236098957669797176988374362460927796365005283102730734365714874790327537031491679286996523568208579332102868700641306665556748980706825322685008331475514611126012554781341769402954301338964273494379231077546929111693359367061334231557259243794890425824452927762336491452104022926612698859888487150513199578871796617743942285166621054720933988049401689642516747497643203931441505409137247058726221704382870137277442550371384909034479237369521478637984813633198599545725250103834523743427505859913709733253994780166457362826911331405532838539707189874912843094741682532987896740014336444710962857941755833195924950353146355541023456931691274252887252899765617750862684413113937829926322184054998894930529453147400432418350927691364048191065917722679028107246366489579997211242128381161703292121325080381806301409335370844333938552541418660705774435367388779686530346293476796196968780468286099105980978480094721350993154462879158176544715678203835996184608812088343261727917134059558126952063602623033529505166387079393126735878857060176092043079576966232382148136468607935279037079332955107303637342396679543881029439404764199412438162256452679086928695724869543185619179942121829120437424539206489776658561412815974050187139993562006329904485989881571146045033508115695566234477581762353909234977223868994406117937072760845232394163671179633755375589947411558990774253149709299508723365965012956613149877518897277198664306210415205350567531696510434476105002953758520147698560256876849807186152727578341376598029467651070767790544372262297172335531193035527336503324133761182263598806169753045735977475178330356698652975783308979272555329522091317270608312252258051561877781220844840466704699638124793287124773148084264872358333067922266165830607721479556645015231714477352678855688977479049546342304057176404600321238417277263189150474028747714831108347354914740221375171639415729710017203501738559922216463810454216299162298414592253162284367388618865294229431420297209390686096203795000462513741489004028698671632849552820166834020589035006399636699736512510134545363085887896393941720929737453767646518994108341259564590597710557306611404311930983495262614326863594481521516492105477171326654160960666106195150332540599610447159087805855489189624578975777878804273595787131953324779778452610678047667159976238834964632150868560847287061654118923255400115344821617689561600305854731689681035807825495472919527188357442355876816686044138232437648185890990730348002034120551215290026233377769091848087390922523806300419002396190773015721221582086749583837114739657202489376280887049007816744338230997320706272044336548870562088262922193396032375955264618059743309126894664277509481762597583634491114447056144065037100913254096911237922792031863474562490812650067806034798980107880538490549490924195386751919947072042852958833449749440314271091564170673221680023467998286500425919921297803971523691295238546713329137964968929471922196696162625613393981207841705765770868320431032961448218653052825537415538403741725756934093027184572032325934014405529495988593431081551292223812669924020618545993672884631080399993998396890986009022008391502975002356692993181335259039398050964428765738943132637836330567379649661193909719706833640737331841364417947855798029382199095042348395782319204378717487799404201646837706695641197590618635576410983671655921710210140195924504444624520516005602856035783579184676807568454683101984103541154453696380849883018417453853433057365438546048938545014445938276476548042181963856633498428416636742147584161291442252638253528497703483036341007800998559902903296771106704940031038486257896697071650567863797760130861698320843088624148021614965951672889655542195403328152593889940965959147757414596609798385699601616698006455829295375751733252336019296707610938963299355896086970404770012659807382589060665542441683400813455840167391759078405499034440101458390349301428329783046303638844526938289576875613189623945026621532173951682011915727532148353839934723139714401444254644105295558586676784611267612077740195501918850223596670172169017874227010449094934865795253531273515968630383890930078012649073592858625977506126041579076483070194153982897059262786544152595410640409427784197301795493262844485726007627855709241071401871484650551663650190380070469895402050769214407317323662809151530825611589370812013254768675245537534560879922830892628975554167124404053921329018392053876166613864332552982989601560215364787756391528875441743807831556567941639627585266464123586095945023818564305784014081895984163761862651639279700125209565089512646105878131897329443799986414347336971276752299426488397433132022129647186143753626023703851886257379727402328484836918544382166309328151170534187916224600340648810955049445887910781429131472910017631748643392961030911052088932890198861769731773604926070963209052226410899793630043294897221799000031044096014202256914269216911565963080798925722943552472482208366298464294824502992774968908391651730680676620254452931028355208063351467753067441806769025795453809582384637555911257179527467596251926822608562884984090175022426020368922879316438025210589237086840757108376149366676564590415080824687837010466696824530111176606572852188708415232582534795349717091787343578985694457704675027426667310458410353965305042356345021313130097014886000766917329148239323588620707647566961798271360784466597358444735446545060261785199808801061346899164457289387642552504532619326799259935396342053343877601419577643523237313536577043353413343254411457794909785241080014719337502509209278778497707595682490078642133889223606934175867115618959963497734445936378894219252001117585477092241099375511170560693825032030739635483256070882818006843487225656823524516596721000385632358452121564114878383139766777295552271248644633197092896321216815366863554218443419331862139805177037961309011094659234318808133742041414077162326312144763561736823655282538008508020857883587602203940885293461692859316473452797809393318662706843593014757787246988217166833378475129894745602846692112607503887828583658894802473510554983365490849748600611250368726083385489551166365905886483092035922179209906770272837221649907491335624533525100638856144837667457815876024902072604270997130478518777887620042102337698289552013370944378077144546491769635468266886781433882799616794620580810916967316495248872800469507682023421954739141962287149772013521067021309615305608755791543864769728028728695147648266483554134657720595561029215896262107135564610308059351147361694880621356030136009338633190010476284933922751438764974723724846828918329172636137979395745968945974240728311042374721219738642735500594888165192149878921637920696697126673346401763286507638603588683266002690983910610193754363601645965415651425810283704259135530618781742729061290266936558079093926558005657251133289818595778205339027078208838154036872501949125904827964921839910171712131161959910031348566083983417177172132536352521245385347862991866063331298211394315555932341294094398191142054577354048432860704734032894281569966453675177274274513711413209848590448564952623064821694297621489363365781305840105161656680723203237483788018773130202507644597976065558786589495030025659171680303426512880061925590154189591665294817212152155049566666666563262135348670418006015774139174877338249280000356409864925717551303634685257130118910841589416306586254214932881694787855693901869143485410211500662090636917690953025309951969582883752174272966529843065880855691553122172031955486457300083517896795592023611816635700303367137172284617384978637087415631643083439879610817706894818593637978164189963073461237181450832836459759020910917175376647972694788071770688654857509889069472537166656372347236191683203831488136208419371817482284554059001615799272417544488083232003270808735980855119938091796922199398162485585796476318088442350756363439230205400752232682655914943258199427713057736217901226049912319818766068985165922221943037941536476030046790893734519203344816328781683223891604795765405798500277148213753456667056165262126263284216036806288695680036627579259734006674185399048536234752749678586649278521093404879985544493937217375738752788909407685121982320271699118140819786246632737555697132094803725775463434614946051724004574793584173654221808389186575604213615313073443453036272464342440586924199966225011244772749846533894454590389824364577713042595995830084895907145418762265039171489763365668489881318317653248986919627189145865133533600152145800349816405610055030945041019976618694031780793730244530595726990296260128806789939566496090702484860630822777452107483306793097234799751408377162645976360883037738201386460005884011668803920716198860207113853977209810314314228109738602095522463445184295719300847981260593866195123939913793369447973941239009215923438065030167620926294379652714855306029193258577348014061194288955139513264786096136435598921279783299573502622392358143874151776697834997712521709180345599238309604298223776570657806211767136816850282854060183936349477143758399409060791827833180264783966702360208223942192652548711747941397923089657285927137684844214254985930829055702005629364385200066252368340341339780752829687334990437654762190134180288922062077004005193182261230403742928680584923916018895293566576946461393608605231523368415552849704035870536236148536317795503754387868960638442763195952174889437548721223310615882588283508417815447940628213450084865059807062720604677116173233907277941031030522026292314731808465425190314252246835067307096025687851799195940402716410321377822251195110181775879294833111692083749361158082017505571792245396609067188905330398155164234164070731729907044189566462375082562863840180116201555071521805033037929069302427288572420677030658459186740225770456262110926465836904152255599387501316304976526844918184153759713332134925761561348989891212710651515765361708598194594420087114438782225980026245723932357505350033986249903941768571536090183168705437114379189614504140036067931618368332062260949232588866495183822065035456503720483996915825596266608281414075967698107724494471298009789886032582164213783977465593921204748284831443310745283675406620702165028570401481914780314850894667848279070621389441188308467430017402221634996236499907272467554318569785703136423712867144477356263356098099723849118332496243102232316340029611816609491888060917203007396827923068720992151383522844260975795298078998315115639046808350021536531051064167095504344899944827438859219168927217872205036956895117725369549195528763680850590602809793318363412002255341084310306455577879469651350855854115647925341064121605133964932355492766194776167001935427958011212567971902313403330251549342143431860429535206004938447099740840314708292339986152693050377156037701224464514190490290011456327427941790305855479145591785076302775788568472596098501227162899664476962563052011525703579874189903194409183424289040573522838888075085223080012202296100920035301674253299297715126421216697256401941335811560434611917034512459546271149021443248576622820845483096803473140821667302231015725953857696215396676166326134297908676346960545410842980480613919216162727753867076160638269178497525800140142034264903591224330499599542284952613797270664798014427214449353016051140196228343951256372451878536408994749466883121268853111425846626573529509914761114219567289206536823267916965384684085798425725551860352620773988318884040296152029075178449708827719454511167806237594545691827112355100332853667486306046869173316981385915272564157326256599506706346800698321060163535720152446347441654420078841276548238679701124271079225918886414938244389991788532314391215562884748530763017491140824599555348593768906890326078790645786267058235180002120800809710757223887080241885397002732205744435894053995677941270364207162652531472011760292117750600762496294037822786821630015539872442680591925094196665442554793418731299368457509179648864735070837388121296354668943942895402998522726480894260656129434705582431024360210372923325739564606296723818936101325631152484983607864590922388023007304468455008794196608982664866210219175706957397478018762527350335213403409613475036860279752622459815381994469745172764783320871546888573536941425631747177252206307862375794320249305048660285818175757933321837989648178754140654494943127680222857512535249958746287714205158784534587975605058945954626237814680771318957886516960274733169039890820113352588039938761795305095170691387036640778095251574891913664824733297662877758369619243585996889607631358087524778821967137061652520974047947931219777688672285265219730658720958206061310594774165323002257693205963094675997276465064628409307768932221489736164481611129883818340868374776013678976750442200410409647833694666560789802323066451712633437297035720977377705529721074599849141448192449261260289851393921870750268179630988518379627086767867433957407934567671010975029520859391798847644899220095324879727557606059946173733637226457605989432650564352929642011401655589502339125905014128855800812786640445499657431565071499782705583230749039269146283620639046483029748661825229063535798904169369332275914119882122901776481210016209079249249693865288695464134783907005045342556725240023906126254588474124328473556599359653220940974587845983154640888698802422046446472691147036972632800847217196972795334072325618849856876111281711281836631255598642255186114393798028638622823556486387684892844676055364782675398469158661803529038293103415144713956292132968701920282334002697021471453504174964442311192416190945281167961993415861868016977757016983867911443935863545158098455766642982606145144263650453385032963545468103261742473814688896437818531079455544954966122365680044103764699209184420765033774729544241616142762815842635623952676599968359518157486873328025908506761830049722272885168867595069352822047000828781609222642881635845822201023183153041096594726263264069092670891455606553397856664219501475350971596576949413123674663419548405607131850583784939368125307596394688343114590169141726175172808449444199079147187573156369397645257942733713157679950124352537303544708563129482341179605265924538711965196601104752000550320961814489024722198340141471260345986373090107683745397427829723465762825722019433112146101574042084372859199737798495753068818753187744524138638795977642061635470963615207146165522437262228605373248468603154589493332077082378598253889012651454023040778691787758350174107311689332392122235688810377710370610377906819656778853309645772946273032133212430590088094334718208926411909317481069536240407908252230611571003839134547011067245244028322252647345023670912233630078139866733045853141784662537554835036892787603205335965643852960884172203573560599250748403489533663251124739749380314660341633969023684489018128904098185219583996516370264120968978926124661393804637025709045931062403384587506798779904780733614705638595308727531254192618001500010126576873250216164124023280368605130560097163849993443033218098468600221284974853825533098296779470983189515323923116780841778403128786153517130875203585160004821969043751556302358483194442172253184612945683031935522624871748816834583891785779780009879344792627271649129144414276727914612710298190428581182711551728508296328910093560754701316266127135222566719278752798990909889623273426112081344891266704620350152725223371298571847758339376002319841998360830597611408269332718226107615066321459647953417141163145846805452262600668948251978286620277661838770255289008685490778425598743832528138397788346369977685935118414389122536729167831968758167160297233075682542054360215525560781281023417411164972160165690129538870574002034725965555865208569099948711183545587514280328121635918018880234894953065489170898120882277927642768499805913798441971368372330462046062988160681148932982313988700499344448360536823828199198581686036179464975988180382659188619378039136177105672526015588959569277730720963702230124113415823988151135361699472523164316636374363457579057296200273352372635912996989435752150975660812143318732318188303354833363734026757002218208664836155890475510146483192254808944943696669116399957925384940733846204534023437549063936819361850826369636388733717670259970373607721888169540028352065426876753238512011969393751072039274237682503072711432282006959256795854507982964381289222099189238434342456843280750118499763578394554835976242621434082280295304502398931816728272565874141109731322971462114186501132836837448794509027262409349944194463739903121588077596327050892878724302691498111956537640584698035237359374041166024812979806696930342882782874625909900130660578150772348909132429617125551694597327308560413586654170019035939647957029386882763527933487696874555356921776302260901067214960322096391452235024619811863354330806258738303594623372780060545783871220741248389356293199891740242416247087822384202394137560714816247692261225901145378225067359907860613076159849071872863577463820211250541767593059583504097803086902555152669655622182980244784110206453071556548445880863266595112663304604098553748953432223912699706589239755109928066178179076308257593151845829353285608255878257348926753006839011197319696262591284939447897878724566238159083076778116574318444971630296550268652049775280703393772736916320196680734411087159967164675101315225697596188184282382648104921644812943128770547336961023482208408158733898106990063280281819855184037343693388309638451351848106495973704628708181300302588486691238851392536377332309767005248736704014722180416041402617090913603759798426479436188647875990670060723432029661301702303603290497553740390245443478260549160427944450613620605063968913941410110891847805579257271908554172359262386970596975759356688588057768737796727751588517193441758052305694873782585085755967229684395671411607349767181294273228553856322770606121502589985004664470089579048629448896154055553167678632981513692954965415991103062302417734741053622303258602768362807574828500271992940906664177759793673045063448661469177707080110493742981066741075192115735039576158090268917713219583726754470060704817700567391567361826030867413912435579264617190308007507640371030090798498144679303270293003565624641709406959351395136892890449110768309617429549541201275444079510445500264908775952374217869890111400364348792337739171479699558911011798886996928376718470100217678347470205472569648253336531989763228334414238090031774274053726536313397152744464467517814758399372398565972107879836083816836399549685996951184686923940611060517651948504433322761946838398026256882461678918510844051970977121762684081371759713769690925454736731704767287375306569830883678298551303992590769126807015847715174371272437900116122311164400284499989344523256898793754027534743136155898567265076140491133078909060112937827828675410028266034400925254862861705813022186536891477184846553281996007340826633177290332716121824356647652127128001235762473643864359146494728765266048413579167639730634768189605501146388000302760073156135049227168704316846963852807846215682134753719750876099591118945045732790732098695192492201442624980086288824625317866572337233210374813643784271878263508564495773464448888652655907900251816168691124724367112625042392984350398883492421359428474235374773772274188761590692729231446821882954352643355216154440373365460676909113713531689636754993915880501805598705031552426091754238277177932754297711184604996506443940134442906422007950950695258356066527888249932089206375957946285825199401059379554536875174645177996120488043294925132441699930978178652517925652904061910288184781303625242695822824166438535578187450382019676859642907655133334218522381294159851846096188838848500913693193854880871993775662133337382186632960665689149260092502003888881120677950821853227552825207048749403381918225371816487222929435014137968231915310213326566030964852710118746787754050582622760893314886536019936536618566703232691728075959335903380763745261548272691482423256221914663253097467481749086951236536952510171018175294438428278288050917783587474723833512299430160642201964601411733571780426448108368380782232900936256458016216034042277931074379400894475789440406762431322661729118893578345000625459325710160650334489412436434661559915181866978546496693262460234733733487969563348550412619186011916777697269597000711769105205098001563697299561829102489461559408098125639928561287290674963906952375997717268868880420178690503817169182186801102327363270785230110996539044704154081184957143197755507180565618351001916429651866139362771382432021439168110555053303771807888797184098630316705303786178410533251896049339533258898862996717265407031535494904156789560541814501431242203143791195972441831525253861660250487476923386106609633675412940703248397545754711483247292936888738617325259732601531648279260252590873887153373161318036766146055183190322770925229703397582077211898596197319957251880429408395148492265561372130644915736224702301611158887745380150475279174836014053432960008034677382972588385660956355688021407116456008775908424151342787745086089920788222111255809992305239826856432212922569597529633598517773908943689725350123972364230680105631770966897052930299859987201680444035227502460761419119952992293620816718209581991603085196307523922072627980900046224485505145312457532592170394306550614983109678468498037472859384329981089089759023496787556416233335127279983334944106452415013961623354131797363243913768912590731324782974455779329453899111772235156231689336136327263592440772909693032049580002637671043059124441731956012684182219935207375212213843299202969668053308287332939891729270070836241752559297073300883282066403114550841301388122461782584001057325453836940468696407481649664977984450865124478313113089863141781831342940693989096571248572881810413443539683763287006503710972510956518425836116833335053620158310942693197967015377171429806344473638180251565486861603221524641451983950501883482907098736985575108379267098025781305798142665451800201066476778195906008489540902319274279771876232422480975955563932194552860382143949958555488146729164787868937551664460852470523166338978767121892283568292362386949125420674304653952108338784946335436634050064400959803705820724624435350815590271752295953756406224599071842408680460193952722360821346117484270184944530528801869126342291667107733298655861080208243878442752957751453746529027337711555398661308977178036884256439686779745096955705560906941870640979172887421705446047645558488569047742273499082704966645771839407901414142405333206902259079159941519709897883374976906185938270384687753418218448576676190247966488075095987781933293069016681724243715697982892977598138264720973528039084728634857657912632293263081315578369037756797353263003640005857364113085297608015057079774689364841527010584257244163793799648329268863984197689031079271069058138568793804775605010643883520257938708508617518571059479320369484866292671555858856933861631633119669873548641612136717146927666307982067980759582039349619262993586192660873270252283891412978109348786883368894724075041225330800572423895342814777476216351398581021555076783296606140202392244027933826923387285561113591779694409764952468079530295623365540223334762156206312521473474632651715166289342705773004625601717806328363896772276649751184596835972459654646255296659507999672735809707840589708485458848271459931972640179967809255782574704933355983746390785631667335824408358131996014448275443592932943646460616928235998428381319428373635616523952224780347663022093029261596310537161319276584051427057856815727672755278783757471070502862013091054557816492005327205521812592584479647158391629991438818738737680214562521868469444438683837763282797011902327023708844272528044763251173894601264433355603332995465373891083406168424938151634076599351234119951704796745230901429458194528518526456208000283338290535447023033736062144044674951812520042973616756802824586631048025608234483535517812072518568205319314055795949766488276899049299372149426915907203005599334956758318586382703174110080813561465714328434888632179683378284066608375485136384710419512547742589359584274265997810824859163912320518014486291527359763889134061832545593691872069924844974251215954058985607638631790961395088668893311299371034417126693598738050298848081495343031487377818343482373023641455312012348944195730821041159045765890955471564191730108959284797116372439342571199240454713265802493728734687600358465980536568134495270665174288997530008519573417213428086149776170870826636588500906320159400070206863313576040188521973816058668299654183796972137236757277585128384761329753974239990022742329930591195233962326990903247382031505305113595983294767444913442402348953290791781761548271306799687374576113744903795087826356541751911272972978862170574145750548886594499414800157572635077214911761402941692664087111051855857448974516707240783695048227371348207462179667252395455878222497051356075273863553753304486231626135641722355413722226140056172083664598017042909388757689302131993258423918923892068873737166101559924379139526635147388945781994466830923226381911041142595733272725706656482227069198388112691577659046051346925800091801785312939530608715433820272545309923128475316838614893256216750842345079013599862178749686791245866715665415428436036515112197549730025027052424725690316790768514483967137269351308548253179990014695589649491247142738717211350508603276685153379772925311197500650754387505122312639063746140733931038319436068957439645950360535505112632438247063683747302719127196389711426506959472564704299447664175003138425305119675249444275889179863533874516685787857044743695571006772659343490656339255015338691495142523898178438694174982359273850665596398622699156532013405129513247957206128078425239282246639186121525240896511933873554639572277902909325959040794542171289595323637370524582010052789573459264994708483585026678672946438474361150993766964915582962340175531240591120824761684027488872341882354793276514294089400121972204298884354880368589483962433659915080046545652215616415640518152304141318324148283747753167160651013351130094188813533761646385743360687193128496167987730863789675221846461211454528203796346874204114706882908896364554151154354385187002424823355494201283353795239416798670098204184880674828585391324209184475669414555755713016571534013735176821759437560530088909060541695692024325540167740694312092726362559504773698710702079612553728049626713846826748812407300070865871581780828119908607485530002462991942589897807735305929001959467370107699065138774703500831431280937121860312251614936710870801267141690938148838365356036739781615881636139982800338043601047281665467080223712324902063495590517991606615257792906523395916991512793881268554710214647616891035204387432873152049326017901353761302841672638416841813411011949511904916133651085686716496688185943064202211566699637283538057384428433240854438617268242831431278136068271028980946180835144880841376276559335321818022629403269740774284424604828610936433130460376438546638437805402449763328394814548369298232186882131751776184251910539491039187656273422496582687384056604156546637879679983921392721039349987010492677913206883881235180352845733921486960310844418058824300602175678056977131835023030519608028610246787408670897199300715211660289286707898618626807162528241258371498798803116355132637960788150852265605060161626452124866474683392812390251774503449363685515277885764430272460334964077195105339187025980847895230751947963272768805019862886453542220667766490925957875832206735425049949869289903527365301966340495964668368376414809594783296130834005514153395679460250396014938330385906953366650554300412946449376839187036303032059099450115725428277045649911726281574041923293942009567101460351804069914638236609973449723264497468090815394390663696134785687354412699278940757529276640776279169342713023504049716360950325409163773336979246262334219246403744041690100308007339865111257138968646551395971124402471094585185648339014828138024413150847153951061959159398098410990717673656858506120803619193210652811670888831425731601756842749412922859902263984128913810735857918168824547974104203563245502661294850762416125960456826031591695166327274514599707802820824023752851395850427735908524061514353343996661750710679868113392063509482412509580218876717923981717239278795949608875412990457865211655933216301079757798402469118725006085545111545448586319108381435031179501536914844223989530594936116051197477416898295438193782550168585638161413807796785763005336062349555932406793587398993939698513605753725522414508044383288667749126415896771865260684455814511514642703676318765189767949329093405821687302717758858250717291574289039156520172592100640464707086732938300037426546920091555403377349475159846377638256813039000544112896049846814725819260173499057141435503669499770505574584867309926406910468550408075431356793268581516489972784577094996566374781603286748361073522289339981503539923453880853901115987843324251797336261073763118271175244025351673466786971580344744970160814873780634082230579701970190478106772735193652132285514188292819146023609348249517516204243004396161955142313566990441351957330034503444650735209517636944829754724839319114413995127199963944155046086996716829523523639746670121449852955578035828896448771653419042490202388838340213412673432796996803148261142441352977332574562694086330920619899603944604674904600743430736148076063121771847659089081380577601928210341380993911429975758058618292179335218500138364889443171044123912699837098102772747594793257312449949028689948487260311258856610159521122944797978313164759691513143680248443292481791670692166290150611614851816417650243846396416642908227100372244268651393097106927558186325928609489096785819801609022615420152205635531039306605362490706250974123485626977832702328180822262523023980058853043337642171919473296508638816742218340465677042360248459343680438554265116196541539110048030282245702941349689817649941720977226002987237943998428291112920769910598958669379519748501798125714875853033718181211568354346486278042328178306883873775204905073324210130150675958517113075035393481076452621214213353732820879551853340798539518131313272253134477170948023128252016734542956467520523074332393386450437452526112291548797278484330964083463555580749836148789489680621043356256392100558768483029184399706356775393149260739385037302202003618700777973501213175178265664143122284752200195662653904488429424380958810433409981244257066972118151998180574654421596137432344265446896937465421123589590456845729843987948444848736817539721263402765478393387046391443925655201629476043343103375356131147679055632143311831365364368388219670386146510371963699485761375256937125330347689548540855381812295505277374287867521488647809791979919328463343484421831220321050007323196112412139839988052585856558324051191560764842670732490111435303957920700146909277877681453205585954750815650980774836876936834136527175618024535525117348270362728749760665948109891672243992789276384830644085951818993398956981437541132036117781435377364174313147829685654477618366111146608742870754684504348221250532626151214103335034059200687997248647385332894056046770726788296819459017478533053450167753033267574956490502534878692319884675590780508476794302713192789503553759576999080551616345084384662362859111093726097059464066933986303572537326401992015789320858287782963197641279968955848554398438697165925887862482978163713063399677341759620311619278496786537980064786484970476725994357371855689904396631594613608552376430018189383737896517680262490014138068283398323422505881230129181327949290431291168000377348925997629853730805414807113280667093610259565495416480080206469494031934377652199584090904071934542168100242365171144453632669714786562429838666901061251946762925909285513705814225912848671784624024189302657869781261468842197208630527922288922872952093378569106943685741432820910272396503818714354907013104534202264660253488612076893528790604460494475026958754603161611293368371446107069929235488513713088677045177292761891732820098659341734924843328803745895462139420377383195323269795325329936578203509894192782505386483091388507256077341893692046400046266915073371009862064017181925268420053236838899201754283868731768977594077246298665885757273545587892117768647387460033001349828771006957957622803427812305480784315100629732692996532388067545309257059856134563275769668542725335741503458359450467370930395463963042460481864815713715467909506844295426074659028229208519759719384413795732413188108168068862160095930156122016403714025072406805486518786050276367216760222464434888217174824454597493591606976490485448910396821160640652402870516818914133581942603483572516379019306787269134189281024726669931060805505118415043787261735022500355733444447543683324327956353399819316311638974676826579414017134872244553886531888809175269853178635006336223765029499964180495300574226873516686200493261864877608456795223823387649787794626868014298007582173914583848242219447366503829226106728235008307710818025370336037297140584113187101303395971478691335478718370053997250013060456247166186100669473997544744499948893410631951851752557067899389597156903784397017942025115453036785433334585345676117515204508317438745860951285319278078748449899083492981065479524760180869379221469165710196861171617164286839001191088378248459657805762999803974080116867270065588044384337119933853631694170375110788837240678121875017117752441263680258678584306322241152781800319343913296870432481488543659605788908472320955759264101877036401908285887840783420529657882963104986410838305258972981649993185051885139392427618775515569577956509544338347433036388691986337302988706406440026040842701786226822912664808931342519479292861161681494643971831119264554469381202455812017977581846780560176920273033639911716358974196621515062561006617107830346206413681791059655272631909278444211773518815618422321213397108914907287735826378035369305502686104353961258226936216828024544256198381261393932484842161044461509510234534324932211265236259930379363139788302385046633984675065595880278147879428566977997225707025745578156802989548940833929035640074111215337105592590629163148587014517225702169990367754200651539087258331119922361608855712599710354969610107269368388932920813181363616685108169452101714926940685240516337654241601663862330820014689296486929751823064772398044828259958044112193135260481857036464926519892496220902629668649099760339962507265760962134893191947047830800081433492462429314562447817709474926524987303555893348751457993482665248970915414142792073733279808801469499869396181778119864347549741231326504029957113881150304050066770452970229390632659093260335920464189883469612713768397750888138939018305768521843158796272741999344852868364403451175422722415221021743587661287335830403493802106252829999598373762668528816423750950581870566504316029724089925871575069675683554910722787926671190221663694091192315274506551191422142867152590804714035876147383376158059877765768134367444619392420214099428813031634117467113729970194379037979243760583437437662287541008625895577700558985231055402466237485479841203544127160184242870262261571032899566150704046589679715918412589148961469241764728537913186403434736188046907938472958486429416213300993073895759860320148499742472248804785466670921216538823481013953544123141453398480278868329745011214100843503909957081371310810817575507378474623398304030002057234784620308732934188887838989340123203346693834642119328689636996793001876365387569866814770159887753111026409842252878897890667789791148464342668489942353686556630605434079857817502652763160742074076538285393352013453499647916156433359766007451082031366959409637873062394591548927973165252298070013503200956438704458994079420783465595990670885248257702189801572356791807289720151591370088519820009093332149612135671324785814329607047428074758821350069377417994380177424849517033385077728664823034019181587008450638877432762596680729934245956700236665708194379190164676519593657862317847698862164026745657225099410543702702085095896572824766444447922373305839234953776846318985131084907157991003322470061569366278001602624116206624971445988180664236741471106361483693076811346705134804817887620639321207785346303729176657629530610911109053780390521498525946591643845065929324294883199776235324576576838375499330361916556376958077195483500740568216679489452851246252933597043244761504900568725033373498467314005740448190311854693642484135017004315208832304647292969270851522057751108086971747963268864463131199843402458324489089574384726684027435991281202978871110432776693177650613752084134648253743713999221678491663149974365741985594478803076869771131179448254318286810364727168547721884555675761580006798625573024520610675876583481900766552053663326198779527235378643355958371227168797264610576768928830263440424484163954219887208182855582556332790885039470237559876289973800092587227562882364803589454412481558413308541875254007300922323776001052867712619730862373846327998812741177087332398013868979272615005227760196270586539213152291438499188316804757524047131460125872847741727045372493498598115937514986595599037210229903749127463564727241886503887074719415493481642218081997319705374534348118488017520782486425186149871533962449382982618379642152254707286058746237582469423492642843047109913662817225603400006173412847162466375285289867798028203277609857149590283634067346000156789402571266798689530725904481128387445855389765965592192905892827452233034617848464536582831547833068432774098015954104463825293273866649292283573231218791991530327360960102016013394187813548087816749812975090026482369623796971693843382889928121580225004167504861085908846714760935766940419358487040526484420216436228230111931009801103394395445607005070763457298168831820168738986075165642581371170632472241990512907152828805159627010894283310341458921117797710104781158960226794796959510206009999700009614971456911740640948064717194264849569659912342205794824798469274670073672237323232821042824548934287580527614311783622600200514244926848154567680729897414065483421434210405751665209972961192806868256428096978190372252953413148041635502339685849859209415510103920813947745011631541011348272520927490396179097073383631640388899043126113295307344002359789991713579289458651870741181692645315358271696426651409429127213794684923156184248143549977217473866645581714279833998683837890131603880131234161075095940724174056427341728185636947811172438448466534732763820498182568528704148758462917499101683349633428859486059542909569207829854802840030783016137107056679368622752542524180260243820236655711810517121157410761440922766976807060561752561529492544945174171798357126039429666531151504289733820557384508614153713410475900976421034265912924034492329052650063619242456635561222626592224042008724073209040046811807321956226301781899192270910985172837360477103580160650504100478634262725404922782716905912324652447398421090743294504098241316395595048339372872391289569750501887437660675879463196553813713298070068309627556164877848880434087446548622092106179026951968456629596713329933324668709255343949350988911452450034162007365616518724167897632900844842191145333330830161645231628725513760270059342483199999138567907047962815084997934610729022819573755345835017971108804298219919163895678479002211521777955292698279945642474502034469412249500862170605023602571367526347569659808424744744477723718914445100390827084919887748283670738422709073732662247673710940904643570483010689017445518825034807177085143952606113281063155129506286997436512371078854200267731653830652237985928267940698178924508586479488799084954430604102038461416295085953343943538554936239046017544222589491536912530652619119562254782585895175518490169134636266214521485826593715872809300514197673957212271842828965541366244226452988113806447886041983129895283677167222667255844189245551361774962096481407313613009629121539492162309645162313564742491553114277222416945041245963030116566456010629433733453755569237895435661836734625243436790194815260152739033370906662882383152618588482991341589245405380191994848957488970578777393805429726950046669768353813850514174810214119904479202635839145494327086354956616023491534374007281868037674567133521017811522957581838541234921118933504502002025424917960585823256831686041006696400150884415546749509744193218946415100527661360422803775793941953900623978957408692017650605320360052119349004424921700602848061955194298563564238443160646221678008714114132965433668618060993094576715230947551271886166789507123111694205958985694604828799813527834923576865839479783429137113205840479820946109945570915843097202834469546052860759367149938818305021769410914204012532321008536615547895146579882576229810180942928465676998907388966652595669738192380624804436194243513463939106806377171650821197424827344339508693897028584803985815867106911951794019870111938651308648578858009841021986033102794604787588102313608815524246841942851549656794329237561705000482591732810808990071969050179344093069282487622722822606207006076375513211114396429694349015957969551361637440217510572945046000161145554744718622013645902862632093916656669481180747360707536045949652823341362425460213603407388435530917614345677422193557675855669727062428259315201042817053636374439374203756186197368228424381707441416382051639262843309931975810349143335035176334425687092634328632129004394480384904792609747844381359615063827301375827540655176104587543398823873849292077588959178310764968322702770444971611936918068477623271632874152995031759237383917282898179774837874597550371367886523220185743022070800248268277373800744457275645240197056266432896227370613843157015223951943006812289611484475947014633074815291687757159330103168244538081685191935336690178630504462098079112055352659964240121135106413395256409786143193386911935674156421309147460374396874989387171885758465951874391398428180936706511389815861608182748329358835704765238780323886300019379348677232748734998818590772079100782607582013019735859903433586306912257060309055583275747166212749241602842983415347279035859160603919992370044243715273977742539592820691391262933111419805014415881782579865222532175474925463638355267377298755872431422170598120214447639180742629363949353373436471195297533834503742411194998743425182592165949232211313811197070073272616242326283063447267212539517253627747353841981054435545226872982019598090859853805264992227075879935685614920959985824381116011230985498837160970978458835329162142970542036572577051182324082667002643925052617131141055529117598024371180203906018226142931204248987625965605608148310933213042208523745681528693696675890795103666023706704507423352558925703635447578784740252137387539512577428283718766266503738160012965475951929399305548446642393494959415319393122446899049233158113213234651384883228353919450626525910511818314449662071514282640430047049885471337133015706724189928104010053669834682132594478549429026314955385406595200332263361595697050672506852839330547493558409771395435203258192737657984972087310286277415897073513666801576694681415708557725124966718461691789145879934812456462154695675215435922316787553435042211969038694979808108287732631883886584207461567489022330376673153236549231052093859534917407682682066807478969277426209021636087859099800776311320715579026827836715184865444533385748132366953148061801738697413014979203724597895987501183106490828976135356209695327387807471469821165313185855067915140134896057827861818918812954325906290932437094801368792621054480337537153057566978001197779245604280960709898234749746309834085011648236278024505951792563046612359819779437810580008777250126452488776337377693635095547736902033245107788409026983681057393946498692512863544720233318148667214710228890320646257903132967431033561224223919679647826066184744378357891445392160340976343381614936109708239877315711116799771706649605466482828774775634428998278247644460146697191189842996151896568702970560403186522917176243373722178505904535336643799817142473313809977299673348539630802336601651349804249156828246508595574654679584815217415368626772673801703848515836793068095518165429672272435738943443053027088952567895128290297266770369810415715894712366432339166496393040559733259139469573249155702275614921925307400731253519996601242871934147094544720168671844260556558406448005525320664733220057006529859741624827011410601578281583774111130025568923348083876672632873139678982131760537538912446709408567651010576944417431671231080722542963719669005015746189564135214488363923307480441014961409766503767547507092064543226252984665264272054110308709477987603502241538936643177444676917227027318415866788526391034205515579740709119872851257914770210557431624718097525366199266158973548530658387473530647425714357410292011730881223198245921775755456590868898744994017236672085389203080289241645590117604741552778474337369606100257293212808514433735075265835995757259387212879507755028760473850007070044277655355081824492004184246971469210756206516332148544846599841324263366895994126588300326620855172147048654172419381541271155551415052085820981083212984030769353741476298942881000618096391950157380135994817600496164014259063942875940097778208597193691397183779081734926392016497518699772579527463154197069031503066783213011373843275242821547643973543532231759722692717602100058736288304367640353296952054474564069358412119553300651485883278284323693876822208369110603802995589445804058349526096381897655761050608906284308986637613733209401579162094529681768360324811663236875585610881572295927253733732207093400352018392725595299683663910785567175552130833035773387706824647807975007273340679303117682187612655778667022490920888405866352541164464724958073658349896792973494218034277259064125173305785313604526450677018374525693742903627455930503079664403685270499720886904903066917778396280683595811453677281159977653899043376263032391914653202852600270983667501521753262726203573165651253860058787822000374046978500948978828168033578802329381148219256506095841610168380104973113924481107747721418103769489248422736377452996802366111856467751698989255788738053432993763887558630783906653870920172090316467213321970089159392447113763446331348030566776274089137427256052830165020400223942835226332615704744324197136702355074602867501164774067670840747267488573709969264576964061132539732990256296670150224890710256555508632676290972006769792619716709343092367668455603644338330819033449273517305700575277268389516902288714585893263108948622489338510942337285365810599508303094811205647878923430938624173341369389829474629260327255014124444848545711395485169175964496721305707943873363563483687997628322805009433430395629784725622006855669881780049871850932272315370763617345417109145148762869350997756807553633792598311647415727379740487612047937536303158321273813911550792151077029308848081317822668051888427812930724691114276263336749009251909757584927494205473758225115681005361689414584969996714022093119185828113817470944326488805827948916983850683047641581490472600298358447155384410475631410047178743070416051608948281400978437740515427972575868645126478933352229889909294990595991046395743691621150626154716771866997692700502201619729947167828662818051759256546934070486185134435309329784592041830594847647259021900386243703303917829270633730601656170311524442847060156159421019609178935219217093413573716866585217190802352361680886941959502987288385023328571452681587072464557286023372701916831358900206357278817438429338011451702040133542914214232514599048136031184110565802946125822504918441862564245280626244101787787224303655461268602846947259711849406584884608262446454864004396196589861870199613112443953945659714820297729135611884201532923722970257146622407513627691397724215163356839549606302367563000389835857598982884585272283035180416459146680408852299649827995801783581003472213806878611643246664198909741602185224261326093173468968391739602565497339268361389916169547484505532580612163939074321801173981810094484073650724137690191581382277819137646823469333260164328325405787686779517895202036610650497238822423224441404607352485213932568329914927978256386753528538831816852015088881365474019197648398219662448434769515409982728492651784878086292536782282825513120802357003719755558163540622691694895489113906917697919958920130264395929355800390195201578663051013956452266644838805870415787811591558705190787701491189591773035446012967310554547060774396610507681997073726692533186381241355397829630009814183443970795016627886386488310771889735718364020768795874519262466425619501410691867298854594846293009769968206830736188612025759469698981314382952648314192476447497689732862992029066264681445136155559867239406428377671408455476274849654300571358813501138761842416357303913367448591268910071208925810144248260729707066185174252101738416879037441016961870205802754977350622746212293987569936228730482537688017792556636813256119072980093163337110756314115642980022758543279650092724022198907248039068727872176724606081507883461478955915020190019741146636931035967667790913256948921976564804150339895068957378200316618047461326546777069772855770580969127500408854726846441383975637040717460385273260732120416864396660554163033178239434822103938635330541305856958849845269759635408776808437199799139849525195790480787684816815599167801361747981873696647953458747679066535921369093592586885215295103592379551587967964904887948934723638553277806553860951310194251286671068042322372094945139545379418262128547577952412805324509826404228806884096949675907167445796038319600401285943812847551310231915584304109160318727131836643562592984271254559600750164362543569682256119440493548391927238323828447988080603011604561873209731644196498149339072496214735549382702207910128874184279443393572873986596932600076373765995722128866408308480797295947086979942864998513157467475907366481068002681188345684582243140981263006255260091131290482227260525007996597836820807447856449909845999713026477900527597271419355790857641346882858261073383678283983798493298449745212534456446263043667078254051034527115709708509040622419949114149243460685410138754724581999244323131971117290395547171768098867792266731470678868271382891723036986258453652164148244700117829731001022235799062504805583039789141060184015620209829249488285456777584244326540271699692905162974712554403511102648753945455065451328059899883429024377587411210949378324495130595571196058370427567445791039378559634545594466064889934829508971259806592615508629154690968815804732930478051707645584181170019726477932419485862645059166468439498443622848408029832770273571536424660992321601193270128341310574679404116797113672373527347553735911001685344463841381892944913737226856672817775126285478454692922445444503567024649764649826596532901025359369801129779185098349068094481976974563921379867892035349059497002034696980154029462599955982976866985111885562074614290695767133747602064435668198646360193068302318341671641777453264590748239266478374262670233719841013401988791428710645973665477962191780387470322520374456281073096722129950884473778066471910958845951165184662344878713463572676273384244066291651484342846278656173960349434714740303704846471325337533187300036317225350591904953115960974846196735104561094259779572861612677318048358907123818095650564377730136087431261605834906827101114296436376727550127872012327976813598025507512648687210844329089184231134868519489836644382334310707099114161374596274902333647216161538069535519319581943321623425405800004729914519123804642737719601899495088272343442087332868645903276714558343809674495817957010231501926735152933222364426375599376275671941734719557669895467989349102750736622931732245831842685633016130487428991195235289077050871917901194033798059544721756364782192358549451830216164222389775691343206775509649783081710516650283465813595357506705707676334350510737666918612448224368148204977252725056239277703361172937961936471107051450578776257325603225166666440333301403631930532517161895822747679173163182200852523636585415225583676840983812757007347238849414305562607856383431655091395277547354506497601539041702197846634755486773961456579983065433143890499500894452820528110248339728693601333458420269604026631225117409463482854291691301548619746502879609832218039905496391392153682779811557179238973863738650834634039506270863459641737981953317493320755010278267390449974141655415321037666358092878217913561577835264493385498070135912621589312146661920135223624562642799947967951753328188209790135051782541568192910892136319992784919854952510633236298167202128048186150724599926177120520546416649215928159829770258144926550375230765215566436136388609731224863051822356107234310922408077290156306349659644563910551082617691969155355541902912766220755709974891819960329712531983730698199307998948496691197499393524931540071517663619064475217332138453651752099733957102808928951434952685978245553476253757753813109613878088628266286497093698915565535996422523380947178913869551423275574512364964184998521487571433810218380889427825167561511876539869577902900143777117369161708090435355061293284265090843896705451743568185758573417181878852121743688263588561415808099406532311128694386862512370496403842982455483226306972786148948962531196519464873736621322389049060775202751525775891977462961145332303902562611189940686916166424191821736635519459421140349808431458551130618238539189571697196939413955144123655356174165693844186438275301720230292508738834389698689467513158372882426713389614163168735826180816237819151971272290714221517848466711211394072106501624818568922703213058129190197815257070022619975031977658849351218041489735320050612064905828885006568879335670980456587661885990230123952030941544308068338242995207706456311584000144829026054130171720264244357939346551054943788433418499048882301287502235450619716109117228346868798393831059990348693219860415854903066869331780775481092850968180903049827248150531295450883345790863782268390811824069840969418318369190042379159092169170148630144653904368448072523139423210451630511876146673619439894897923857080468557480625152756393908642590338856926080403850137359912945802531426540785637867879409010071004056985127974678317102518183484048735419154029522577549488116218288325640436714011273628548280070272660185716179270029175088239063210610124800827756839493568819774486424513169163622966408197298055601280228668371570824821415915076714963311072677569786337424930344919921399902208099679467788309523971257042588127301991409006500492052411256684765081513802729613640711122857606893199395938223124919717518774935808959966377339630260690176925107185926656804259507371077791937299944690109531473661571532679333161915722984855465538594368494688873085388705962497995945860583067110898009162985705095258953760477284063357177929005816228968638127413511319947046149076879795951701099510473169966640000382149677745991553001372625594624093916389374936832685554310239873145641682615517170554340697210495250128837666354144715241671114315339743441895055226293513800602111230661636681238689285202939119122752572389735395017205507988987898764629662283826195705530865335925519617596164880172474642191589765118449367519835741175708738681391168205701282478521055758008242350413501487046667871229804644325086226760327639773484129103141832946414829719040831091054137876549734481793422089303349425442321474246064838224318248338065677364413785929986161129861827698383916811881059057994020375083531855251424446277697906664999015722216884090131506187170977577786419546243448276032207121200652440890947857733970003222405584925265565398411383589325464809523591409335578727396858527269027806576962380846219868006777789800226821837297765896265935070407686080967647545063393622453900048192202469442421604106225380520479545529187342809355958938590383153478574796579658172251886108041023695426172837741200869707118182139982658408427813916541162023396023054805679617354806585149357036671622138063105445101904665949529690528748443174053136907358251106207441356736864432915761837768754715336342367419176743569030704784538759099146720192794731451374815857500161895539631186408873159472498977477752427701627742802549083394147217113958970217635893004866860716279138099558525935069353087114180284262304432147289315479747846283010391768600956381651383418103294871148199710343982747030067578951635080058430268544764265025011302768354395302598078086118576503639187700436954152309334552201409663310028267238655802232534049094527723846036007391035173158291863942561446479176479957863968212861685031989750023342583028950617178675724355976704387737995367646206660422628099889091876111183521331966100478384252543296873545807353869915998355329507442794638206734906827963589019392715377210110994071088989479806449177870766541558306182200518224045223172509725822934118675035282763463648935704919504083683269227918783027870629626690724741416201928862239985999676481473206538389571611947722857059725296563416514160061605228281657685259781188987767550834604745084848580042965659985599482030641303500967975183633547436208121354491280793392978284489425311812918327554863833730168369858576585558881101534999369218731373865403491318742045727956933664048527190454640276570580776301492856325206333698073660138659935290940760112646039193467778395449005132349382047975558408537683080131374593650878715956936298547680313095264390206995246621276970544234953434308065972608006043108143963011233623990000552099021531933781005387198783778432629804437183443999618380029262995067349436229399467395749902569474978208911561984844462579278914018916600499043617567001188047691617653256079813706827203888785124022519806445917674918505916981852452499847915437426208783634700849673426841441870926889198994127737867840283075715716017197079730838496758647447721768194351581553744450932635321782328852956115063952749196245671372654781670078458488615675672658946221800585673192363543371072404809470997938862739209777471813048004799506986427312245128902953942020487867477764093972639533138728692080797833839178642886941050827915420520191276723482852113466787472735130195586859639202406594444020895097802010153347952550147096781881561485183044747869301182418057076591455701987217149177197904813998928450006883835930466794407846192085572452450483600653899967376489696990964117405155867729784177769841840775818201649314548818370619220955390354451673701205055382152657035388261078836209884505995911115948856295913641611546318900644917492645218748634416506880286329290341887512850975428013056812239990848065259845989401696451121104498368239449176943600039783814812516578862460187770635153650073976166024141000952169641671756506035409426079177876281465419040130661385897976319281621035352618213487285686091940905266509609768747893509996244507656476580004633508289510988088611299646055710263992582450795552963001272187588399114883545675529687757996927878411890011431980421617133437179004278356343722567344276942822428324659269160025320463574611426089948219813846033308790486162387376219603170361714155203535455686274310995936723086235682004601196596909557697172659628147609745382183447541824171222713106060121639437393156184561641442963429419246131965355520652809086416234213988402223446193105059183306342734133350790507495374281719643830556080713359801028254425802519688246162297265734203818777969274624020166095709183192467489668945167149542356909804713399217382848988225156057916461307933919006167060910679711736801514816834348077631956411569101965632494866089854777285785368598603245012696583583055947174433822104588221475418762598536265108376272248905376583066136729644172165181114158475537279673811201889251633841507786514486868226114490907508247030272717085661457890322100608019696134121440449217226521357585584527483681352353848307388127491984929513171998312597766616286273579293175588895959881160713579847071529292699573372709220817948373547215893266363686184018237948821532212187142127600076473149167101525890973361860042258847366415447815022094357681542659490676863900288441941040257703364252207390852723386922922266688870048552145194898559350742193776412893373185816836757289900540148314857605320357815089465223827277558141822148277371983213724147704038176852552464647799518291481765077268459252091390499702149388472910310624300699167486972563773928990034662028460420380745001321919073731408841586047211543632383056382966916333075077364948045050532425837762500822010841653071687816788428365298781204016653347095086255495084524162351717438646078362525826723540901709876470128351070817673764424289437285140773892081425147940506410740631996843362020251815090540525217483323366020451403986901438064971296444649174130717031197915195677868942083638637328425259653304322347923234621918322300230154364974865383386126880316251468360023754246510413215821536990329098713408407886896260849360085087776302985550264527674524520018163627663033949962267333204578678121810651554199497318280992008974727377967092367836819779642904263990849025765000484769173215293599720370156968251136247583163539648632658876696571547037549552920246969187227938656002550517328757685698240909554014295521027632770607046769078617302479932060295472451869964418388660308116643857587629776818448926211958969335330969966479877852495247314497221087524881427203098762026650156288653519883612605794880978718317626895915526295820318160520776442645739264228329521779038615794907364307936846836998428416828563030803430450464349171886981020831485602456019057898778804382512326351312578816914120375263045507057896412624126957036358846502679167085395185199943317281136454538157598716860607373952987169589488186746582701228490292913904622813038729142662628812774214970933637418647007844324372388330892633165204857024038190168996174656271123835351310271731711806797235276756973471850638441492063592124041018360806066813309687135736359958744480123612548357243670100254940029697991067278777041825052723583470936361384265912783849185503779172624999898991718960433742492014690108568658360080142084277642853237115022558183950824284626131318659330248869352742200093765240743311071622783868418180047374785835380110515082152183421752838005206280572482530174342759397932091835723527160801880776238258716908174601804826657564358940600517279487311052337807156453440447638806467237405707903320468642037262638660274930714117981013116394305065154542045191356646168804218477118883652569807086179250438963002829890996607374346654119782674056510781863702694088337128689785187896716904757346756206683641037904086712477498247847434585613778933859299447718538554887292758720826704105791007529016030420676591528090699703860922890578848830367209168111908093769905635179907649715359433279370675043342010678484008757530354071251287817334087544771248853606609893355615565711909471482570439025649487807558121464118532953644282119112753243732460230047570785375667381765921289301458139581665850182324553637772034578440344448689052705997197393491217649469455915836673516303658516392798153398833831532922617344449106513830613277236174112610237430515411047766143448959048265856501753414034055577625822090497037625384513006599967641629541813076389328513274977950781033862945864186987307997632712004921116521247544026912595233596345785361929868868631698367871479764826307933603707226622771172841390325986992987241385042516329898788344143474431316162064481885825500890852178573231685469788124181224128947632222525284746149039283278591009040151692934843791236866159176393734053229788657153803079975797248478619452297539802466942557765237513611910459973153340412823074935355858941830868160423324408330244246008603410720105353769636770170208293024634721675845683159267323072718883912973579728002205401542084218483310079928053041276745625490508260619717244073245439579275718027259058599675622975175097066927743191611849111060893401211159288597663925529252971833366073928823581139582418401056376620636554009013537119936538831156992110914839766556878670924861679478550709204558215711508151335663010795256270172172847087978629533935462378970774708518785174813180720043408037659244724719936849841895853561958794822375915719055134520679398172246909781187205928945671576330381387214858075220174426854951963248506346513723008884937771556517418357538765461821558825357091087026772574751867914428111088442714170267526530222162935664212614616666035912528704022624630238987135321974733000607235508633687942599614431656676550983664287074646422520375689121275421043065897955081996688369109744700205970055512078730683504798716045323636351690212239745048646296124430660419799096768081793088013852481359857447757513080019017759450262480079294476440284383781051545713946017021679327321549737297059971699090209082083135076786547630819327230262209166962276228824432566196798278626089462903297778734654543378307893634260333149608369804693561093719737942981136674189383569026848779455144017691475371811563984367513758791163459836878760066417553339337261479505677916351649275313023328465408154432910754379560431730724249143195073868268054715223039528061326929613068438216281341652839558430938569886526408749769684057593556569263214015994650591354899995501797123387286714055300788587627234409113083420405827668394587207682813654024136113578613136783733413928680826135311292194071017734150862601577718320399283017428925693742780976442244956284298078186712792009373084598075951527248650415454133733935166027286167453398838372930939876628985316542471803335015169752495647801968115181680352597053328155284110029278569608158824085473114218774262277673801633750228633127470922872127859546873798822803916690392389083781383267616090640311724020309585946200943079459434638059678816822245687627291890265029337241699758389330610662227666302853141796857703337924437375993353665124274455901766942974284614931587974851872597210376125345445921748556423310296946837031335470790313868699552688691891543215126096119297353945035162065318602689694782965630562996852098948491188273214044553885583106691467602937120291659381441208012835755594500945095039224594185579545429029756190658191144751437110485908828464697215736147563971347518561686759188529352335040420444996809777006703021595716049006118967511355722333489240660246689706524019857737549663695300384176893180043869057173797610855119930750617360041740842787850453442402362766551783308733535161698718709746568456832980880512596942187705106442479751074965539933046816749088144188030132666600493656718563745753693436823724234335844938347381093669549872268266269794128750500499586014140389476033783546083299511790817058689825749611443655118931152283622489630800405573262554791649611692989638932265819289299200464455847459486359056129039258989927359585471520661465796841718655032221112394237153635120651931781162821079606786927530936992480344362943749771066427525252775360053107389927587786541877140248118187066761294693322512765513673765300012387321986693186999011658346110055808491925905675014339972095684850045908534462691407946695052875329205037718291357511437918872136797183690974257195776297103954139058121642978615991444230737130779046957736023512050730149094424970873587058614629067414837596704887084862425918627908230155984645673573011392953264117077040654088333207469209668363207227716940635465961242172352124843314870801296023399844894476555945317625412000548294249528512988946766359062794702048998403365505518614774537881685250946900814148594119372310671529994442735226995547751098107026567171564932738275422299604096126964522052076513651329377880153134595035250765638665737880579625385598491248866380636902716228009280772005509583368240340411852967965506708103109474094402436412760125342729296757318659675295749822926106950829675593030783186991101142051093411069256787754266733895670066832904517574785360283705021124419147154642414769699502444246152325228388917712567456229842877583261658848631331194459822006417637229395575088883986717655264942955511774057059687850821770012299768541198016987872637331502284420070506057498703362501425256837944770481985188361767331801279085801882622722956611679733329546146075030156552322701234522112585813963096102909718280339900636835287617602653296752689712662473674973838655073605832012303787241921834739790485796879186457715825851359587741946784482076022878239612956821240763912489237451688802165311264802392290565975951542164042421672945576256275787387764256517792523543191745499903902420927677776637505041996184644557565509625129283094936924425387535126835377242396717707922152623187932252875421635251420270910449634997168575842751048167900418299410462558558516420448509012710757381102991994802585726732819181552008497170314300855742518675020683597583450861773252856728207431687614123762656497624787349461231845289242345580839600837394200720365588694807537391500761334492962378115431611112023211229409812372180040562738957719855033293714857159991422251044559703164750744208733521596331116908212718495609258901669420324245785819281220886397200423283229081440272082701319693231391461662753697405863792593167936534512322678874570625117145346469418420053461893707370681282743498784947440710655951933879736150416520267146966818303347944167352472939644963517637984363226684857953942498635964887249072273615896905821136678621630539792253291274004404273894979539923696339237852108721627802972198171488858931899016959089795160468200127385348285986256205644649317226396305972993874475752706822024856042477266869771624854929806429601643620891537933956861278767067762619683988834559518227630733862842243048644767938501908373026327568901999579729069544206573830023372441938006502717852223393027832378889749861007891943764810418500205466810275483471713923002697063277452758958382695854547715282559859992146130119586305176117666331422566615306343944108877113805058132893540305048979420551224922175871767512694687626066521411986560728144463266444823291477837728470517157197154062292300958775433874066668672411733162049211210840247378410652722004448256007239180390628168016242556603239054357043456161772100714289212308083897050837966091096177250985334106164479850322397352787567353608083053222122369375272733457648002388974647044546912080999765027816925774930292304836562897822135343683861503557811870010127103749668948665853124336203539072310940570631723131357038217556020343409883240704804392642525432220126200829095321602597962723829566440621134394825241407028190268880317362444618316459037201887937698547442172934301448702576668186835380361967738636138467289287758857592424081880261764254165967055322708318614810633969704789553630284372010020940513227350270454536211911621370971186208640782670599485534477889762393585343434740990033200197914176388939562174690788899981593442998220102242779921121260726397201884878008672623119306267173817048470537178783400591236582197323964689665951867864989089986474642788325978079098304530109460223095122576926416964056370842789574058854159647022712329272120283899619224615955656243827969192808688902229564226914270937587976546691815902899400493389492979949413006815827280107888455588151604925345766773255974583380843740842629155123730978366895271485479554913711767391639952382715159816180708160031263854053359308883930813067314373373845623903362449062677160161565405261782175256255437750493924572979627804463533262688708339371043426724792024707834279682836949100600043346274273423762674821294113218904116497577928350262756261520140372566284282136117951573841240135759185019223363472443581137470601487524348951831806677991135602068983564138851232648663712811360453320104560397501587356514904667851775596598541361859483234421648507980902963595542040513733670364956086766635452024661210694287063176586851674872710779735828156195913885153703846568080254368536186459131494438153865815845322825596733683452562729582872588034172588625764722517646367977642205448598736520312970995850398746731646894858309108229091989296785064213781685009274281664044024626137001005446386656636668679134298289208068557367098196172752180967597297638499632359551114637491855331885914077132407979620212172607297951447415532403590128531602876017301797803198593943438769515652833223441393951091425289298372599485945110575291394017968929720561941977069714295203351325012142975089932923774120315140098658760222996510986222830803856431157180639039543668315429048488816801426733745202498752206582769129541599908889694505083990124922706668149310343505471058098184158147360400843096523269647865768550788319486822829363567014344575038448084031251098455958088026175377334462485433547056415561431364114945237349692200412714604765894114949096105156798353227974691293011210863152456706021288312999301335427121795479408924474058091062514078018088684300971634112460752705631141179114906465690659097478741803720196987350289542339404149580781769230664046418109536945446310527141062912461424319442492082120713213106739265507086842962617806405163798869737474659197247495650318976233456738123370403092307466756737564251315307658865019275157480969678651481882458625029370202015103477666719164161914319128321653738960853232949145462015757385366308691415367151032782171810554900486913589097819442906183467996979647926733120927472382704108655335721536266363047355500506063871774903714454456221049232082389195407645809265716334404724142630141463399494490539354269422897437059350507111561155763375625046615944255175724480595486509719279322056963421471422887299193381674881501929351466193089596833338480316127466149273091961470962733484553899459339078587441368482203006977725403012367386376411872435230839086819160273788053943014874689461665746284147754318220119736546167242156438988733069669149959209627171905461506445148788844908954990529902877380077008232794644822302402453662234250864057540456114339379803888675281960629650910655672727179407246357330020336142370128335162445320181822286194386405922125858362118209528908694351328678106043149458100975048101221014976624283464743242072487906812860084411621171484466041964631840694967918403856832961762934648195055897920204486681339389052543037291095542315430264275919225865153076733815706272922378260951156886013735484937108740699386505125568594193246969023023426049073101309915250619912594242055369841961175945764907474263786624488727681083078229366767681264245779668156303479643054646599717736509699637316110824379088517217524590168807677736232983543830869873345367700203662193818753002458119428483591901421758239150082668955608402599651900015831821014453451044022807594571826409421914594487508486411374520298730236079826281645108737159848238687991914545787229522352526284473049206039669639816308769874736949994875741640122551113291929142563781608383433177414496391628839317183154394427647663688679446282676500148818685857984097975831765888191541840726155766673428754622759726042259833886464864310129837551665850064387492243898945299621433037806880111050598155888028049829477935909998877551437549811509075338265885579483988148272143015151718590185221430345655116738122001851330826173938373730886499583607371055125670086699712693277702432072397092283666162878248017788557685856007967505886516850511375127038574895447606804204462756437496588899811858574590879400369103181148566035557259225919916207180419783874163253274589175151876150000621403489940378395692562687577813371610905253159903410231098085708296432538882454231923801421460133017054123675193091803417800835324667557927273729490389115808655406255296387283940496069118281589862058431476957852425493895299580728234298824785062857969758558463800594086114494726504790151429338613444775189321334180255263734351685656646342458506540396521161771509080170777257395197558607076634019181972502122753268224144066701996493528879597867828038986245727837403351744190663911253348908723558481598302924386291377563143287939391650281464166968373455493532288651496352177911437580590898967978040919388996569880722538964634553227978195807482974626645072003035969880055462777757252086157716541078644302797726462234130101064353481081716841135119838575445916139839667383527721880031735184586306776671424915910433744367226653768858089715977681686135283294324620048202422883666947961051319024607256425899992732926705517814680870451562552857936237600820268898643556398716296642194536794834910199255907026946707152447408856002697861995804791296895460231233021416864366482662266817448792532256824226737859979683225611056986006639313956855336571416409016784237804985092143898796163409447051842068018678371747516999050206846722148371807057887674915352759838340185680143323594650516591721535888253472473069952407766998043678795787639344542426518166556743260925096363778591490995940946626586540921358023624747010780127956328128395056150220635599403818615469790223888943203368575173146222181290172050545905328385536314970687374826801399542453307718128345138550999015571735863926236175190319281639801122579417532622775630016930387072352695437043644461986167149841128595894868043286208244737660789865644403012085093025313666254144015064892972236535286482244979761783664957955284160328536441123570632314564128516640359703338063202217228060372312747666110712590271934228939384447774468679335316930318054001387066638869817169648037444081605719156176882957540249908010363489517239667500605364875964689823089324346218868018610762655168369273051068542001514296824711216013287321062126265071152811477124442566200521489325339597644533112496107519328688295021848885792551908854331149851816091776572221192083805749037817646595943029083764995829995120383051313183668371983602941770217749612102183658838831953993585462911218210145653157741093159507706017488714464760755221708368368412346005812324202994655417449083216120933542237973604305516219972295887671987241580754289100231649836537994403976917493729802899530455199362553877728698466515558718326131614650480739568139504949495674830880272352334084055303717308621742670337093363524247786235986650849527583669231844346704192803868629652534611388500828859986002949361799035534642588421139234453664893215384211521381254857421428320460907839281506531088566736057743019069167718308256231127496960628683190249382413954353052689462108811105448945129917144703560470838011311473612744634894529956536849647852918028662310915869989636504725332309703742428703642483666834039658786769777557550885650402649082272241784746383896261038261574859466447454064824884755220058446230206699497858695429125196787209332944693822694976040926554502743938249525899807849601779639909751886336991720540298000840399325807683593176878420077018092418469724855572951992129155960420128552880988312353119542279997487929889138926879003536818291147342733352592243612956925484840409726485704234262618715931166712205933891928288265327821727713639881534975065425500561569629493569263035752659385212223283741232987742699215886560613336345979499230283597312155761822969246897805537576278227950686846881238258254664235135972582004169118019124544053569931092711915054630704419212311399143722634533256755737927026387170285615413536992556482554745385727001356345012360451688793460769241133548931541609160936329901638615092439083533316095539352399981298139886300740776460082226343635351437475304254382772278041720736795650490365854950154841128370034963250689869712697558443226810998932600134074768592774738595423856580788702373291554792912355964842685576740488753587541895007585184701011731547618976025196661464490767517116467131471247091679586943242014712660073701572394800572747330150454459078642971482088799624435746976483740474872224055707220088360180047592181642733506908915224696601567424312289250049544204012422751584602202302394448693477641091103541121561821907382777112060939686618495225999326387071824618585766638573095191303312447319267771277882431013573768378310243778111525632595455249909523992077441090286326038835227188966039108013195470948503290966724864826832427071669007529923431706653398295590619388666834325967305614630472788001108516753550767200842288125970876595487744644706606672491742117251096907192874133900284633136201783855673518591973010600989624658254907145141755892514916779509937408834438405428832620884227195957150030210947228315246720494784147319325447965198822380219844396127691541889403255317141127649831770277335167149491925094164148537741205377137637186255308153083430400910862507319113114599819812243818122605452650713522459265062905197197841909026096582217043615299561343607108986357544097447463206532651780539364826756492719874554163720696589276541149503032919423549892282411754847752379842039901012931566510380056665854343908038237434536497172566975203916276735103162146757881185248753375881681736893235323840224453847163739462019685928805019334409151405381662175477780091755414455994779106748179164597104298812994293012434800614314375469221369176373072372744299254472526427088816942837697525108933426792481911331033471836067752238287356165151123675553320753764754168480715415091324940459369560250319661027592398586386922330083273450466432279705057928809379496107628227000670975523825910088775231659576784001231592074071010136300155516829635887954161956312639774397707065391987889834179213678346559467231517012908361299638956932061163191684898320536378255608121938553464290185351363727971122330160174405475325154819855438987154883876480357154308081402730702923097651359298941256155980341463538335570054936078725715612639171205984892350749157329588357530284533207696823026074350295713151397511712706400550631352828689449860815719552043461304334587246224213829358190890381216185279017311982867769372008006428299506867163719456480258227709515334263692075518897520308847051896657671215492396074457920070845422242090480527885171985987205643909886541543809844828884697368041000684910583141992062178828058875390682969961148728105345527369736455467952937935644882777911156054406108037887908164643709473472150890179356146779399186677732167179835154855915992848810976377386811757743604833746818448488150618149865281042012973947850226136730871899302294395494265048704916236232177370549141901759276298988961184226689150096611869878945861996022746833138294235413099875227656768413776883892755451379842979339476324956477257419167151649254152105214632766307860725288378351569103976611814823083188455631305812117671661029266746330405577402691718963628005210221673718729936003501580327547880971798856306948647555102854969931980619000506199526457148204714434435496881134417614499956983353023853713479581210355460550040466158300822700036795437311690457297276146775676370537198695794427192375186828186440653668541932366311334812049881873490728714991374988248090450393227131231289897661387733827186452050882456828188809254459002611960285522567292168932954572572244544851381329752559637451248519375404150059571311034909948340496230741461738573690247582675310907404022739495075306485927020187325029436454068957986250539480128046665204444260487452795967426465798746461290159884407691837570623065522198774944807172672902803146780702432375633900257421721843443422755471687950887969985489115690148869770788310793806684818740261834941412148602316381191007232427718164543089415797896484374601936993520980552865040805199767483526729908856563742057336688444250125890959381042222185514286266474252255676703184243725773923323325330893891525126851785183682421913921354970385099561509723274977629674865128289827923874598698277785511774711899465945404262440404741388273165112514564265127815864438826257894091927685310804592456176042320572856708684832119811377025713083684449665788698592536140770035003092071222322093841354489912401324139364157065369534807548205590073753217945100722357423024821136251658297252695665820879392813860209962979179376545128659324376021472508176129427962148790401196260116669690821089561147305543722859022041236329918347757410174706777545879588133059744563497523045012424317752372205148930263567708729085128926140909843212558802345982638033780944371238531021680934164490668727686651139310351879677824365904757870152423175511777853933018112116369586746980547054629664437751735005399117309097305434335407940521564507659843347685913584886562443370453967202143742423690104473689656922399744955003111243125168111033443703549157409582098533371900601052555194839945251857136578557189729884630144709408998828838885506254903839088023777408776347566468110673509766664940763843314263872370523399876334748614154284964293393620006377390384183354964892698660516318554747470181977454671982559825375324349095779027798171307715898099798702294698631682058178780224950833892675903859253473213576799544295099534882598432542705630201551159911620253907634698858048159648843766228221938477031903345402444191592337524805264397415635085338396366910664087197647784174707199202922044656445847020893337230049472691422591785885697944348652132221289411925762889254435349718244112175876944921993445097670524864247559389958571779121213780246320506549354660677544277863204099465131113390327335570336662926022639189251111955497912402847086805239930277433690601055711120502726411616890427980193490527509273027619251316090638465617115641161173548420251032884095592513027765108472896140436746394008683742208984936759668654686075588452669730186742287798110723760030297778014937383911791081836367780843964609222087791560722180271475359922026731834388065734585201310478259828757494908205097281474916594851124393962887327930133761592407154781124286081637465210612265917404589408667556131725530953762853809192274392394451112253921550688560590616676610501941319202396306988597048031853100807529468094900478094253325568278781924267546006328535025787577707180665958074777897179844612227943606631228302440034343334385834453824491804342212285684618388262163742889872039492269380390266913464925045818238485520186612707431093515923274499892215790957670953522948340200460196763140178128030511238493708212312842108837039623229915293566171641283585512887624548250860677394609586782413109584018038818674261483949316902678896134634823011899359650695591809145492381312524930683583356028060905686734886178530786324530193893609096647518776510507923963599047036676131777267327819904255674355714564373932106354348039686660219263064121259629358703585843953917624663429540512638498865668080816617689424554107457095169376908001290719875002218737179693142228378000428284014057302658447696143890747721864164201210974480897805315035640030913938885555446448284532384448540376472241888259681015358157843457802206875390170829923995172409066220380135867406180201143369697473262903635514570189903065934743078545770883168635217080820987711994393280929902224511193347891489183404308704091072151444698260296525721881709866122565280112364908337121120339268724448290011052654670139171810404978019416185574192572600859149613550296553485829272285544526472500800750098842684972739090604342616101455318129821421261219532731079880578147578905424113493649175789453984911275183678551192333949841522241960399951552746058049861481499758553013979502786422780078378317903646229644972933220412148352843663160338912067143611462502937457379969352221564203217746171619137983558018036820377362403598265863394495180757500256976701726990813450886519666592631165741221439591427410401555542160735074663697579574486164064598187329370987569964280822448554327255626141592169758243434270653445658649012769736289871369254200013797569641206790630757818786393554257740583200060349263218098203109595730697030991345812258510989916818902979617208756277086335253162091947066703671846764531359472411796470462137966853925458382138346949716813594281969005978639117442462963161227026766567388122422248288617828320969106158069097774823659763089368344976462910874470118788972285256048211108240124182114231699534231252504811546196118623320309778024690156951056679042889652002717280034063430757224474179755033189252810693059321136782640799309399507236493513831790819551926430411473053594939077971568351674053942949944298938063885361779762388680824164703118143447982477815198460387216666082211299888403377130230341125635835074230603825265847751762640520250034538574711649108546787192210059761829862596252638889731662728133567565043978555676412449465064239122811168361142397866916686493148775736392674781121471641787543997287309563171635871639658198761409346916865764360397080953558792233029382558086594743662508384065734212574786913744650902542372730826438699201365838926353340253962395661378385667739004845937214959295147606001315129713187035016209491557612929087492891086592489731733614934156760005006986809728610178628292351358515622736459046195362817675482565776306740268328104751336782799292056182135897617730960122993743161714816009605634584008251548071257714444781419801058609258011041656573850293994722526198924522714753708193943402078810233457424688786076127646679911058927361878815710114594175075090512474401820558004576333727443258403977413111822217258529166144444614460595658915642226395781288767938241751947557224457168442334146311879216861677444150666948974793856739880048293363297196604716688586849084159122822261214759613217444512667352413184590478707815370718980065116648949834412101229341730383088258151924397365832007532531363653721597959897641261588218596918172235053806273080586601464319864795789532103886853356671299280841937691302982618806936571895423967079508306982888023474266549328772519705325528583652484895234570236141096531044262356377068315721273203656965907519302429485769586755002473228759145121291297414413075804926691844560143351939076341476364756602409692374079791832667755318112712379404329168407012284998651612530793990354100278556524285013686898218909379750739319986675053237048281760464147543904618477062767610593798489408041563633502578961049392724663612661649913864581257875338509417913355193051194993610716844319828482516038937670545392694883144578348938782780509724822766706237093035474519633595800676464309543325545698527314911926459481573040933873475400484812473954536918468551763230138768331928522727774221952983328406845159620975032872917097880363630062714908218586156718880099489213621611373690851978150714580551948824934634216670493864073056060762116323672663034649773833744292736656520905752673886414833288305602831206992820671809829240545209555459461101796078784012053829589112049610042271388153611660127184356880515020967942474273973042723825849369024865557767587018290370595410676218094234868278952441590195933160870680349706671888317407720228669098138303772348812144429358714590958230007808454871456699492036337890004347779997158362166561117096082306742338249918999866631796684589723593528238418785052974875484135355290307290471142935116262304937215703832209643255497184638864956575456030577999562566776159303638293459845910141209965058012054042045773814431739371614029337772181842287718272978911788730798028570950034891936744490693305135278829159259726296581515253973310423851671611627452761831288999417112212197040490223047031010413904925456390454871647748907333736667217338569432881714722833056933778306497318257870391629524722453302981016093843469943956821114089818053848325790142862216183630912484624588226716026631142897409864126452560171302646556274758621697262664595415896466333043417266725279499138898952202325642865427542805848970522685955221372005080370214814056568919617603516185481508379905733442106967139618011521033458051290713091825580475979452884628826623669413271205010355964156973267271525812867815767485060664691162675320218896745704039227092775796651051767216070298047599428534735906176820868405185424997271113693086905583522113600101565005336044185985154281049554542125870084888274363042099049835587167613569487376651914809962467294543307944829363384035739630701759458879057777096416354436334286479396560784146809578675674178538936504013663346091644708852696903130923509552583424029433769213899235153091352927780528270391862833233430863114087902883530384555398165948940288146152469792553442862624126382707333637724073733936610022254535621032348342233689700381144373164450290959878228886529145562051320956704957012418137364671440143196577741154719906567003702542644546519479428633008501304372466816703142402693260782602824671883981825381830909625450592333071540797204785310891896105753051171860791649984050260250763853073094343291708897392904368045142867474741096210770761559472163180361869247017998430031333787181865716979191958568877862727032675569448558250324912426368784321068193303166468649835423453287394890774662524996042904160661730210003573982743427425001466979194053667542156043055017290481550208384869057316995787244742787917118984371855285686334477912055824760551703706258081761544160850926672817600450923347965328985984454002071699344406099232285856348484794978560362246234841192159099601625526656679613081182795693878860415115659262448742096994507429210838247961380491281064212094978232713422096298056965960461368778018879245751833662334745628212071747498328046950235624250711242382831979968606272940230402146784363052540468418474716811675597018170519365857220401336795955322202027823288867409475813900812130006788220925247888262074821436530160400746321364121457888161268989996671472571602718274110846601490359250634736884511246670838246667487191785066314952614066910594228024797729094952720178461595731407889272984117019712035913001430299061481500361078615320504880141798394189458026377114699307155482704949744169129378481173243676842728347301185579125935257713670600143739489057562148953656855505842081053072543993013118089951185185624326306403171895560891974822684840022791958312020492529472550919409874126027490974430106988241780953982806675154290219578183896077165217224471805663202594359131889414889881392035140933043303269560927285887522238374870294735864814180416987365530516429977871809208729967975166622048423575587113793122102643679617163402993410969239973429075867205968442592478934548896434369145151678042011452090689852988608427902053132546598270751920999060768177674515503703673718387971205035975494127347790645067404532058657346527360224491463288848886304615534504720656627075239541535559256574310971566587566710635342588612525356056907535194939705957352591237542041996182000405061532823730986522861913694772846621555226924726658877061810278420272423292921709646099430405919236262552524349680364968079075084612527409531095122098422724104576194264054268587564652128164697941446742676787133019076089145645753665796001899103937270558581747118185790414692606761778233813757175379171417531727813975955002857318591648335120401952732546833653371331971464718558729360820291865170595716506400325019868186029008169142167713836078463785133610937367221244239817990772638064770842750325228801367808362466258541005337329621784794612618853037835577487816111863947748938813831064186208442763143876557978306583248988166050166024678920921675142925719268342520560229698863038589541331191134141589483307864732778808337735409693050122026862171883160402638428723257052599384835513369150070172486913972452196110460590392118212297214764583652203776425624445970740608608068674600876581252205918195099698709192451098316993264784722310806877693136590234677863840295030024527793006628229065016928331620112933514068401643018385107651762374672783451248779227064738401562806163306765816461984279382069303723400730813466210752098794566892733901223449125079070739897885208197013190992588965609540994191548243165366503368567508263318286487911480924731872415498803797900376308748801097274842281082203739265326745727249526792259891872230084619260028191304655490229840246244988480333040340515335350194188786770411996167443416490613768173593191995914694642067571285335774000566266382238254438929201159983311600083706885797301220274836627659353350122579505287842771796495765905074330316914884387682580963130086987242322381474344295841668634818149532591264429912059809151611637171143862161312028250527269221782309523298930417539285504343881744127384636534257822334453821225290662931307056441448492841795912474041808041394924864331227678428278247314625646934401132426224991206493217375756424224343650258859442476630757050448621134644029906365667002803434045170190596714823173591744956381671458365270231345807714387540520753851072923085552326732311297251147982359632326552331562817914880631247315048808578842141926449170290559054429224219442730673311841977519120044987331033343109072747762574580351014030241215346437122695879708041850202116208592553828230510510648761555305762506144969567787613999054227860521456289181845329133955740273731342899315666447209107077753391069862942739133927819560891451700472135001554635011124722115797738789084694018754737241582045395480421618346453915416978500192372020171545067811819500874959481295621458168360395185048621445521863316412307766697777347703032259165613719357560903018828405022151823650448441910414123579502506662587922351934004008428958771247964566956729248198156034016387379444052068031681385818480790108618141582602913486311886333441342416577556782757820046353566380342256046173534753712886428191493954330068586945943958066149798164027873695282216356078024113337268663307708073802168683658391382858246909002579163154975477259800412899610406246346212178371785607424412869757124721198221823054063747877145558828802501288158361597792466090632901661714526530310329725730515378787323507003675362950158696232565420394482636068619040490600456183144379712792315708898486147306960790412718030270093651931365006743969215412444840441373773615098150221065922196325228592600541637990079570550876385199764746384158424054216173993747353519569945409934628578756958517941082642641855023830125764854449271252679643574496630427561415404874422486027634608554314295698056967919339864885031282372756333088997531882758046212051703405999185701432350745563932555704355170777326388455861785852995179662702899153243919288204133165903790193959977768933507431256327360198288815133810734736878241199808780216114460706923018917757706354894318311817572551436181712740038924212988979185624330793388372598257433013466939409760727550715430409667798309853977944265975150956841780349220318902259761587139731485944373753300813570486842075660000589343913526370336757737137906433030037517958105987126793860548374527151890975466017572253566732815236948921954328049656713885364811981777594992521658465797796992571616187666944087730052727196444948412860213742696667217104092407884673211462245469678828567861390799035511925827304593682284095300085088939490935045105079978836059334747362971388669255942671965911087709120120232526064437227631094915408202015732245967989169082565156740969095671434486740633715137093106433974822330653327588783898872270666702041070533640636209377765402003220356536270030552257835515475300942698315790647185232936590856812958539647635327572323527769421806789121880767072128016425946067806529883676234062944518918575426745716343701915751211744413697389144771342393141465388277547606209602736576060297418919379816518805734077385603149833719631027402286180950400413516811990766584806634257117790013797080700090714894577617155422365763526430957320800887445020735085911690942794359208494304987005238278270141157355687294137127465336416070822027694128955700197879229961049104611538489858167117007947436601697603845668931695707993233103493470401848015266682157659221694274323849445977799178649512264861900686449476580443130701561753354944547706174052185058325819573374544824751217355444347348297934173164785788952957921405538445658581076682605895880463842008945334461269907088643573711155024058085669556106120252812624260532142547489143527869795508928776977109853634742193600057634561126574118115424006959474695730247140672746757717831347371837121350314621661374605148947048443432776226079553853749122008258464923786261986071887246723033007373023601324573048096842570171828626461218898599485806516389842307174155232560632933652424461213554124925813881961440995507115629634303290135811707048194042023628641853193872515802532904566326673035754902933275322590483684952971382061900207608630624033702496706675987508555498275427856733923280222235384286291109650783711958692301384285474531016243002751063074254785823526783619161767109083506356122781068665890526083099376499925317705843754624761421266381264824313342066372008113689612032591709275508086187470198708861539253717720732226580444962815835807891391063938752495982153324640321971628379374734375897408579367820265342236851618157514379732853495335932674835826807023911026852863340527872807099768054742279668530341116483913332150998385081287232491563194119388207406085434455692172583684726309044423070064906332043233187070217969421850786738358196185158668437566877020173406965028053021314145155302642667751726869256239443678529819555779197451133766369196033865386068043423617897120537407560535296581364315829301373500981820005864363277179024721132935045032719020044289270122589830450541249877639496965434731279035896201292616393477079954177684330468104252046190111552741832146170586397420069766346787533175093082668750865776726530870707968980340275168939213470420754768382675930771826066146765900111172419431255403237550751460838658142473634479950001733962257198519886243790577210032575197700770808035992132568236961439508746164351081014118930031652157995104251936437506535895453647819685104414646548231682811679020010776496875316087613315873525265625956673648259933820893749188780920727704699613722011818336164668240569524396804840727451464266871579434628821828379045171164334752382332354502975742015589446168869205673421996946746878465519430987654824662264731371218068059968614462823793198864484765331660440112598010150676467452064988347585109034095217189991885977281825616305218921680374165829084539318291439160462688335571318831230141526924230670180642611080335490965983982958609407664029292495211304444228557700615895806716809172892215644260843282123013428770940517818797388231104010560900943993355304201507104810330085260770599771744060617965687315008441072426333525700303851429378330313142507490563223939836996679393279377651874558505167499562455590591183888610254984355631547948140731636367847438159871675554810953928910053882531750702925427515660367681301601220049761249355216796575661461377609220700396419692650828300125736059836342880218162843701496568544718652263167909584203380207883961652803344316059569517446301457890592614800447856323118582313688180350192906392679646363078819496001228689682634198092483910410682674756391012297514583104843585184571990553647018201203058476116056807635651070181420453851092497373623148247485792619789734711755861663043105459253352305184036300710165463810037182045048255150469465474178983316571498501985471681326984722682340572912309522660138043113388177914503018496292451181634736928778315273299178408885264782627126320525271913282818192219862940783031174430800394104358607640256394950830593292229278263666298674207683359364656269819344775634878574807142706946796034647958562090681164250014442447715146529647523787953795956529334734959227219630565848972820269830315321362932371500386325181280897047835414025016502116213961217779451697994973538149110477558803056258351030236640951770770397159915840881712472978008852423368045380599885889907241259222437128477254820010835840109829267505601458914560148401893994904743170434551156502888962113458556734439158394284041706069937328246241784421786577908949298055852354937746234631304225172923197390919609882860425847859670598893756591518523507658682839919984509518277405425075553433649923071397581368039312858190193976396773415313418162739699377785728634041231815866111634660635924207944376247468297770804175182170927128905281633206276072462313771854359168273930940229354391825136025179778934997688422268746586383272227487919028540953332061386423539909554159250050836088354418801745578439202168399955713659933092867074317849437323070371541181048328405260647217394645632697190287383151399316421378434183705891755910528879673139508021354137561240488517999763904308804785460821653128054469051785125065789801570553352917755688664236970618522072026895642170899814341369314218094179996832670191385156452156418148676986482534360851725769623251458086397077300393654185842778258408610031303861605989265749250948673286651583384831001009463096098023467197472446491541861168514154029954039929986802578624615783145507081400578605333667800681326138222952858795302114222964856269298366905629881763851660856350660565425615292314746925293463519824821048018470064587967193913432763549646856297323287610388590638382873837092578197190871073264572320351861551588450405204661601879376879532420679365950682907029433410607008533179049667731743358135412429589826729647210398782221193107144721801469537837596951110160829448571340010110222746157361588802732475299390414897738053811914939398436594390555925706639040645844013450232186471187862845583628509168961967984655850925656369986155766957202311853669841518521038291600068873716048351698701682688359892940376637083055322196727426092278759195172481596232266007355655043498362467136415996557450145908395360434266071008957153821539356723621724817711433464580743817197853215240728694350525237624688011940628301712616138744091916675102238560980167297055727865570483116423959580547229019741195274142025131281985213898088544913691027551211731561455815031737560257755737638026348908134558639594358857907943713432259233757409074639613404527992568484414526076053684420144258940996390235522086890058994103769699436230997255506752460198463554369789292304069392303132530367623727642354401949627278916763827520282287574971337621529339957769058772737310377217626419281704262943496422559597768378278158100286099564407989156182667694114663010838883934922448982069951665528906260541897662871231252302350575434728940804611133815087452231874464854036414543125454430388165343411212401097622072422359647611363159441569297914546626288195956639203145920415861677525344277529714401125892807168016094439924355354378609342162581060639495930295360951807256945453556717393622876321498202173089196426882611921180557022531914010518163290281683595150436228603925522730935809896128152040843073650384210414880631131531323796022627268731167950514997707153677752806205088828245797800389141218389736656868926973407217312369857913193447432185159921808269485755183561290528098843735763183604508322034437547143525376992266611639632825680943773994806921724387183840153360691145294458852631680470286051042279220394269978898283718935221803970741447921257922707272735707460048058612209640767328392578244917890282055321698991880111558893650630535620186415425175014663554646207779789354945278788196336744577296766638525884935523730774559728872027274021585956349836482679122921187906752713279944937262005872315964774858285700927631070156575727526677524715114784793442784814456606809679900693706844740042901108507800036490341366355431395406179090885130627928795095011056229572180639359279615718008625560309194162167445090839595152909104842976352224360254458860348684526419418801294695247769519603101189709641374210648448260792363798535541409437847839370244868218372253396217573358246529401181099313461070859271484694467222828466372231297600435347294255783578801396212138042542598747934283633594908362609732149229020588753606819896572347716114423483445907808062370116766421711440068353458290553474330170754898846355072412940548818943530521124007310348864628778139562129576589513102290090634497347160216835017434964503430490355755495748131831609212035119752273717720570060297858414469011487443123155443938170543794380456371783934415605428471360098295288684363143916269773031618161133994521815218085223582050524638208807341425391233917285698400155414692456166132887005836203067868311432820623923744503194358447201608379861963658433015242797286928499206586336278125276852522342782263840505705960081150245824920595131028093450705271899847746717818979919329730520870004354606201017801416165358384962175640654343619575233443305592246560238461408010897065029387498532045826938510258186872627562581298974002907518154111863993731320208685358288067812483810177311424057275665719703464579140062238843045792935508580947438075425812053838264266868272956320295585597734807482696636740316269933914555693535253415654195479460327160739439990064943737920202740380542145708050203951311068321167990058889600098747966485965055056899490936509257591690979643669224688769884554135005327506431922988364086457296717359098802552144493601918751827182964555306000564608975229210294348405819343391280930124335639597430519770687648660653730389677510549275939713211924474552917082363682144427096926489292649395276612832952368493900727751521788600735447517702206746721336259609716477503454856804100902045394763954587118320903766169338262962076769557283447286135458364524444228898392135156103705553603807137135368325916626576311272584771015484927570930038982646623590645278100806342646913393986305709607194867831965291720220768942934900074921838966603446583860106946000062871254568550597805615483259275159383677730130435162735693245684912079876760972016278618797346574870312181137526633480905490310845118562889884392783590063905645325739769936510925945868113780901352892634697080152785810677190101027993594079928629034991399316486960087222077445932954190843024918469414629077589933764806024799301833711864574201628655794030402116704880379818177105837691262224691003019407598660519746223143780468052702094975384818552771639125452777284128462518315827870612539977938896299236821345893792219105826693273421835182278491919679180230464633301824050395039527372715108001912102985783281602157714222501667479266373298600608747336977147786085138329557092707641311228153358801515317517021653785368880461187069216174374297762882267766394952975109825667358673534229472349345155438152270469698982864790369204484880920366644665360542766531817395183782322882182363080240478781793132985688516591941292406955666067389573901670705317842891475685937562911066833871087324297394854745320735814194722799258351061297954823429273099525131307464522043987905276522992030136063437797989262489203528782111916246330629132984459691012053859541780758359158029967128703666486028967981119565222183262170526105662952381265110761805380528484533536181078234138463873427520882969359900008581853724796770484634745996631214573000311381825947167990221845979762951555992176777600388033754570960819918124541266985690678582175806532043049631534363890982126085176768163938261768836380145488058287895260068839498869697997679536886891052509382563862554565369717269097344218882839696889553310365777014464622327664245439255297324377523493229502422994501351005442678236332274211404411358693855804456245596757923867040696793384603054121936575399205854773360263776267122632660002864286936677622102769142362113657649448734771951664718863338919384886337061992551151990612520228561499034327555212506726434513179937739125349273090811279550749684116889623494067681864024022629024668827097576772841386205765342850323695818337696472583778125398496053831333417186075059417374073385010851043216077438572019823686374372883445648198439987562969671830335522728286010666186657276816003397176549983088526781994790083333516633738455504239581364683604180476489910588055279244493388620888931897958445844789379983108706360323622391482799071709019620173607065491809967053073696149820840091584017227854243871573504831247652050326396687241944328342145072130062118529785252076199399642631914626130681063679003750299252243059219244348029343670128071097045367435318925630816341006685260617163137122383496480661396185982339620801682423475878234122347408430079649875110596596329425164363777935085438894419020837868534920894925719149048340774071687196161678212229407751319848855467750777568307699063698711908163501125743561265379318499294526244212689103991817456472886313503952266216181848391333235544084391075092912500304942012081815553731430087007488089334918069453025418552463060626907646819728712575574051601535646288564817143727335983529473721584439961568441314192239188075835961421677097049136999066554173128412080755058953733740998256935784920654694947013525719989524937540163749402393789150700966020842426817740189639478707620717030329579631170934495186683068000206202286064544812804819678455239630727498248381323646683297346173180246795120378852210032715607821205809647816097697550274858351072261944495632289182524461761940510479236153212881026015917378381278724142687783985576672393033567704647524390549849596301078177529467590955950265012667190147605471951642423731355874006051505905656001401799580308304938595311016547199282487948588702861774463342401981165350332250020276199071105073272825219478489216927326565859442235409444577112643474527810588142744845058838265899370237180382054432562992449183668802542801297328423396055105919599155454057860503209796294275118004001536127196982696912347692336970375203082796917720901390229206447162269561294991170781712298172923751992060028233250107610126989478951976481750146588639177030791826826214946726954815139529323342145763175913124465195252450293695902241062507840141795912873759428508527988505684689522882572155215267407789696781867665865722235195336312205933168481904424947879265389644510935542257281342029427312326422614426328828426324787198690486447183865235350665728592278700437282378040040561678281426123122250725925230697993997805819600364055759390367735666505824788252519032367318286728558347655632965809993586626522545264324434480425209012586168549256940484663582459771494868836938754139633215517040773474516544661703216416548546172867330858762956793277920485878771337562345588978349208171391585191995419240364589893713935005905180354800317990347786437340953102523314709887578206021153706357868454737319337253649812367284945475410186982765586331053242812139505978920253364192058125046209245355183966249274789398203744747873990759618145687784600941477591801015669246878423150906686107695339298251973021014020059615202968280355885003695881830925449605363684843448881829665822611262416202268249950068029162267583492016850408244234132251200687346957239990299158507587515494542336669126009042662498096632249170711812890674242573774413696373058872498281300773284642731829433979377817085302224260378569966885956028863992911941919192762801531546258255589539148306384150047030283191760225635588131838576702072623250807435400636289043806586272895330801608702740968203439350818915379781986360760736852395369483878262280970102201480971560792156195077755771649267139195730895400335473715984643001090040134289376357425906685664960999968495809851246440612314006708038056459635305130004212208498045751078242603392711445017893545634134930677403251554127481477038467574174728926113331294827282897065590061439522847390281745686976930678410107043724658169281752468252262377260447292327173667757435542301722659586237855798470575705898010039037156811996639661143207739664794148596868788287405317773831378354138647216554326463759879338162417607404787452233553809938517508279947623626890563383867474815321538051714058162639075449328673836873683543928668091139769662168330591412333727609507282098894458451136646204202665021781855602427577750123765194568471020960504794689853989800178364072684426264140956770407759554160308660269282415111713426651758126163155509035379338559982075972250229408512248204532944718542434875367551027029110142511551675196889457302023874049689469231042763063553574348768273230952916807307620213892070096330288672741279647567410841825433289768977688558581278151026233910275779560837912495928091269715525728619182358771784117407076819812475599687857883472043625252289731313355533627165596171129125685546185498674492368685889660163857804239047140757239633672989951797087553064427193120265320742008635240691578924685985495812623815406634576299450885728344327532772439051748649959239427025012077208464740244380317894895386923362184197528286877221059193135868364818304225712402074246879581931810663324990250181676298345862625695815474415392080984096129081580879219176848949689351604443135684884331376838306438846339529834411151827400383440861077089775196925181271788288031473732419925438927248539075546161404768973801158845958703598197793063340353597177681684137317566025154991724523615114097711417776381665165996793610455037796325005314758767415816204577253286283731368531925626361745793999678011460076897963962548886160437778282357568061403264931142659878656089369644459530781160659266767223796001380889427125643162725375854829161099567348204470778294274774271888884988290909581620711276574172498509935796309490604918194382039095116420481299947064005949733985331596482820162372962194441036289671106977362585931860125480450382458528375439760823608422587717955042111977841279376436374305284669097171789328730124179771291174899256392668169203197781035099929014056252319579108317251492522394353830409971684101009653895168106277613609877786179938558970399862582093215339915358998992410016262078257178176187620542724834412216886211068076437994773361629878987610666601372409024798073935437472916744773638468593818098302775077803106139174540605777662030308739241067912403716863479205536906610640197561486015068404894221026420864367688184162935353311430845582796024730790581264060160347431596948079833683174488591329429892891457688943204688466682019646061960460917914734219028029110959925047626289757361145368184708619638176159073568919676059101639872653432164508294630841067195313788871993315952656056337327103977263876979148405605652139886757367241647069831397639045036184140567324571242708202906627191752243089355111680283750756009556124518471747596003675293776135177052975646674364865933696088787622693049436356609116814380996060030468967592060883350946435646122539980175155723895763424874073791066177947110472455634180988589746284209532298224393359778024617491864613432882858016669377689253032784281271772460262224226823009757180644198405242770866603812781769375547346530071766968986849281517782241166305447590675765707262409146448241356834489855701054051237353168282909012478333611418793314224061351409524912934453550975265669663502281862780968277063251081569902607835078538872211370260693734077336413505213216810020770481437401272211101636326250825691251761947556473446045868459791907593638875160986845079060540813324433758583965633859238975236903634631429001692849404871620715771158788697824762075096541141304139394738615290753513835003490077263561788411498165064377295085301635779639317319563376353999167370577808452062894891789867917474469140018836629921962716086311915210247694053838574059021182460834254952597924566271730041547419447883751501922108416162913199980287359006815602036770645423087774141802587631702918571761686565398494306348879738753423831950833331898167893623168817827329531369206177422387242600399482076246397786284393517549157104781695849003339263462821370040559126337738204380608875265202401250677171327789772716956477177742917484066924590924719549629605637404430676685477263852468879489417678067972773645088681858630366929009690764337165157701833427134582796493789138567904559609593899501830610235589993800592637951514618115897983640978670258485756140842477676111825802452884946427897424910002715327943712069874559391245092677656917975384858168750397352947623275874571920829481875402400425988210402213717903212327864458300986963577409357966736578894518173485153628574888504758452279354523856975557982752972665749844488764686713507712332348125364385340728032391636300425225886064906127035790223369115742382965763296338615248207773729649005236209550226675300144617945342478843402618624256275309504567178379973161689413782144789024109331721885869446969249561816145148137821511455693605078417187973597450208470750243873145902753964836325215175061928074864444205981882640998299915582822841651648207300211079036989492206163482287012059375384558204834647668665326283456310206726336916263772853723338876220528837982245514562079691788104226713490356958614362865290896220441877530365859338690856199703429573183209204105636382985715247894383633198971487152577073244693124668167934666724688698077133591816761116125355451234731005401811212928273726733956347674178472593826957867066663816382008982470927794528139043096003719873483434624602884663414490166132840591148038551346893974319841622087343761578272941259313547600059936303159385557161875712665129772212098425545230907695669545855228860897763302289748547750418677517078803501471512374359428392477549560177980401084956041741611059567637790642033474926503345591313147279156054338323053515937961236432634512185028870798224466046642070373223507691259250538812191418909676802078068771728334361575962451879415543224388038800693932648830175887550379403569150537215993469223291711973413491380311101178878178749125973991217562528346781545633711108912245235430480581840066184607444999096990773094409366998985148012575541982676103051376601733941403059997612852393044763228246243695716883984708952300158416928819192655567834998900488361521136883491471083971662441219288950536713665388180552225710008657363971532087338076990952824474629398215995749781592540007480594291228539425572390880272612971030577005800999562337477502208905480693905284095586533428946642471767266164049214039407380787502198599827741115174094292156902388783880616696890625013194447576266093530104418533741593729352680513324565413832286320574270834692102623024798548162793679559190709881116761055055681262813123863829345447285448504414527776650818455334573073552014602423571304194638450335629541892244493105707774141894571071102948168809779628719754454547950390089849527584996311263205538676235361598491138278343123866793035897794556412481484846600876302231844115613619172169794750120370295933474716582907495707303666613398872646008497858069970472068471493726971089022328643703603057237042894510872674914534263391531709517145746063392935470986274815729802678203391338485056550091211694805432867127369524951131827041380347621640106781707268038633938780641776019771499459770256189463469982582212546214821629169150235766168641173383523466807734186929781446954007049257688749927640484915900524671024459134183685434860316742315719916935871915855216504137344347353546506471588156508129890031777324268411888724150677836402677889779544758715151761271074868061169912876773027033314157269248743647221428375424829446383472859932459999920459022694633610218497688000582020260838466054354530067703879844078437595592942872390321269049870900805791189068990105989572159174319077040901453224182655301734208131576870869050848728485144330633506683538439434095000766389953947243108931284568049855288870295406449696341389459915065195239508419312455495469332941406127742779213839095245014011431733330905146089853039316524855397216635871319167146910699174910528948229490224476592889601225240271655381101182117257725081917414962195549682558494793309451556192963255095023469326509041435795569907360880419421537008325333872032419337680066724456300991020975206612769646799841312143534499559665746355582849159475092734926853990421372346609412667146181816377933895068647128196177280918471532415845312419558798229224275495317813698003924067056052326672049938498451238830757014931262321634276662846295476171083732534364970768919533047377465351150435464779655900589937518940047116218833584400483186427743238156538728273646207059131869507905188124736932065790471971883886242808963141929637540653381251551212686573151715591893341633022026639280437288828598453407604368006261948470821897726511058145974724490283222696094556555844530523490728116051137438235152672895606962547388351387746895297052096513202702105910122606269258381174501578154448557386439667477160652673177425386932378903895865414551632911686403668843861045835792172619405324511555772309867219617963569673952702856084812193471838912949407926728243050842211235454362756829043397499439122082094897380994232556145219097654229897240027364320525177596196943571722099038304037126122496232712635527314579062808480720359166137187230372025264023126032902757938588270817998558489371477409592049712240772414923953901158795649572582305960358468192195585288632845988629532148801934746831861078887911095126267252937474852982522995046704728550178822490551509331358703462979757390307577447591275701031398122053675439097621992590261644575149272116641591714590682101582681171459091219066634661950453030755773854786520372151376625051290825444137527858349597909826067145970243641445385671113521506230949938762144641017695447195667219097477405019045541135270933561037844249946244893121895427170339525631526131710769287981640935666027787781718806469289564465652779944894983738569460077007122656098629109127728182335128097437464607394720335441619229362225280740258194989994367439422576717942116257268525651133307607253319414733536534845221295579488921557564997409751443512961354827625789600385524567127316758919686913246634903958397990488928436361169094533424711764454792020500434943346366150582544256408929368595643293563196882192822539720267376851809723219782186882708636980353836057927591445097001838129905495098482594316790659635353828329446636053469743971366622978605259933801430037958156176184196983886742210842454676257070131605717048615057022990729615912506653002328321700215689262513372572356681353568597558075592190606937152850808410877452506405931277848066416181519008812676070215437190822300667265610644898472687194773113507506182499484592491785163043000324456822034274436589324821212795980411266997541126626156783373188118098736006859029017287014982767978441253805242568988110034022008867423669623955623273430108056049444529640993806507860274283711647240438697149228990333717821298653596392577603404606350212648162706988179640215427099269800028584358563758245085725923232412763583738605432705541281367851566764361315594470538479654636204832496128943764920492977977761056626203516478115066931393060006619095115878716793034047369009991129067880004810829620441233473053037265020062420397317369212280911306773825732088317520235210357741825036721928138132421546228910001813319850915018201378604068910651701548428595927612775654681658558933382041831591788740956755172056479700700948788731219907601418868302548185088843983728076961577208551583115061982192057240903127884325830298971030817167299345176392214316771187517212372251935885466159660674509257658372629563860187801323720101116827886850304604151618058014228730071780347534756761202076428294020761929755523978621738489880766800536286386652169370531642087169089046903714975504602865452118830478210242114395639609629526769695874275305297246046149925995565414679941635233498201990793088231419649814029664801292688631646248110006186121644425355014585183578115854409926157482058673348612794756221732042267993591633294154917142077407278977169205939486582378055786107765194513310689844767152644209925960839000808275094247148479482071147235765861936420624722515335431661306938891184881750934043736774907854709451731417540898347401105277004139304164271463713072139163081948246442066524525550892122223604339287939234860005321280762348041545630563491582240963542165907739022610367762454283024501878328903518285991385018887907486571629401782869685454635460368271260854550643589173075501803596866900863711824822644404350137932735290103300849386574633571403578834426341753093102510981881296909139352814500571667455639574840827963609135227468713847708076334426446704937162383196650911780870863889237809942736257519668457674332748694040326812950700632622748609996541689077949217055062461973847948794164314634368590709199971648964593421844841758002942527195132259763390396867677646505077306158284837739654646332588623195998369470104747905822385616423386191238647881391933888558870517099698312746415624621552989409192821117995943382418024013496395755295777756685578067308471757401652475642621712304232019748198364226864489436332228686594778695407193783199863669681305207443989256377753352789243144654503015173065766740730074006493438392661323342324731452693431122226579198958968310763213382388972852116720443819717914599408678954066707115070482700540748799131264822729052624420645843120224519632832544569422786858068105589131805759083909152375100897874635165470066267238992165860095649807818233915004792200933145488923692591721503821014256958256960820477584858758133047217916238925370167258899090492312441458429046279359790092594824561664027946684283330952997039205645784897580470441936656512943597306647787184974285778501703882355905088820884476470359715065924699802075131799736271052154739406243510495847980928752040300924966335414715241421170001457602806732927172955331844619473061782650905491604749038318709226149981197278908110865889340101137662599176978673152682882391984708036092280373036201758481046885666995366819955526129595524470889010419130618338356563062876006716028385156836985956301953246895438803498925826622472288598416411370153960024616363725716666324379351397253548038359004266767917388019201530747857002733164152167049143958584797472335765773934071247346964682177827348361003727316882703165219449874656170409527144908292069041825757030791385729961583489810928187195661683160536222894590344044743143547451174512819389524596803124723594882341636652531850143189195227751998482969947902527428139958609525190234370150268844065929734052113096431600873287094556870842059207178440224043691325629962962650716930774476513560685596254342444683623325031946508299405643688952584160429687577042217075082806302444915044139925807730081624481859183688558903305754280510607916343609736592161319805284245790623743050582598329537299386284487368102941746639732606018604222857960203926576156603861195272166837894218641168532545902206470115228158153600210761412497217584040370050185490681128664592565628359408116873484037685777930830815044092321526300684471699376586060323699333922561026932778589395056376183040721115516073312249141221655859162573542937001486985275479832670855993967803939414784564416434907838415722525749648059307761955077294683933574809373998387087607413616106959572168099760349714210745470285558100701524312003259808779226038968922642090110110429231930717989463278275728620045848680387990259385448058217341582949087695635682882650317609042694592387331125631627243323547876265363066746131409654431957294279036712259590368803401348566030069402512551267095813547589345282719664846835176301499765372707503414193761996917193025430689594672247322100492571076837862716973124840080470351560344991236950449645754923822919890443311523451674495720504493583174897162796229768152237883065620215133851401044782843691319672237226811126952602161877905643460279945850394968813351699309465929953617226304865190105868339349508012110615215782772737063202285110702075731136038344004068443938363276585985625312470042140978697993743394283012640840872625651930211654708859754937352926822378023271501866767529316370412363993204687690838554008558712046747177066290435727999171268518641424771731095959869962734087560027675492661341237671141423752975647583933428514426575134041108022794462356277572430582492380512192781856800483075131462448314283700415232406906415185375242467164593133132936648655843557323915500452745314705893539533390109885359028293649395648839009976526888444985480186594281914317983030531154946236646834596699811085135030150207385878479265079966792567034531699869345055323860323005075229004791734280006198722660084185017045146346149190385452048081356068409272258169769246233462797921079627479279167220722750392372239248979405688705439389787306825905073062894103854898543305651020157157065755107884440756771679382723475268757088823151684809441985784378087395801522612422777199294038602540726599480629061196116017003810091607012353965495899776491626459031865047932088609825786022107129918188639507819146047597528656846867936745590188237498552581389491202184460553074223592641683284367841444793787618721096617208056426384015219995735698062353605409324081460691820463680461090826428838047598239912543471616155075177395863691346287786685346875816560396377314659498006421787870597277366525702337967459577740089297475514402084092991282182834278890380599092170475696256530460016330856044737858348732036210998689334319781231567778442335329187108647723617384185105906803149477149909601620873464969272470150386497892702145241459444953310664090118000226534362382598047503268470738275711688352780088219064787621755818266878080213647324872048359735086568113816515028328167794545289699065925746807218748855622051075541762171827759481384363054861792969515577845532603897537568781506560259384962808841904471299207575116276253087565751430817199814800137708341111082456451517824298812899205445996683904493452518988186889248261143978310449043212501629306764554023910745852490280539425133073055406084699759617839653916775577737656706102081806093045747457436878828060551537219776865832314587122919800803349134189693154252222555484454424698225686691372185713555539514092872769089468997118290626387501299545033385285004781702953902383368061669782585113177292023398004097163111697343293707693217202586755778236437695284481931255567735890966160014216333191444519282048956209164345281945476399626286410204930409107434254901012857038572330933210986935738962150418500261712423160791538976151963332403597546857765217175334601588774420934439968148239793445239610939755826590927654232007420417165049609226629896092280154706379044707996745041931074090309517130291636298276517297337029646374084232286964433153459065056385231396213831956747680296982357202137968175094683804625883909884230470618145530850349142949662875483335826356332079268940586215815802447684767593374850091105239100015811457226582888914234865357185649204068040281733915784892916048122367901751139266968802387361104958965717220430128005816528100393192782397559364449731153601516824050979349684477569754161620884146252978783837571682006491438836388910418245707917295999882498746611761614187018578912079480835501047274707105352552019969751611793069659393016241286163867401736178286236647343645864347995587533451103196213671106136993822618909391835918441526159923022620009248918523568831251463581752828005489027027370884753768572568068056469801218948437991110325578063906149518453967258757933877078864393996569938688688132607992961630296377058099375060373713955110963330792970313165428860649495165263667752164895439892414923028628927883826305295193625065488779729256292495974271695201424067794064406073276339174954232442937100147595302715309133440553368164009517065827412684086602148630732018935330397522390893606000178971874682883116843769062253060486204996634293542597127852089677152780914265828398407465643360889023370139157844152257489178393889940208179003848171631321586962702588432587309398524613474424480014517686652509871088211204039684624210048234556013204304090206324546543166697523257687644100049282141979798266301146330765920865628077927734501567233451506189553133266360169294447434009411709944771311512042902175679157797562609448563773205555566319351765318522358268988137637703859088745011588544019944779725145881468717936468224368427010913381190118486980849016652622486294793982597657374434349333493590216953647708685617950768086366389384959927432875789045184858082969220685226178610331146901099789438999977208934831874955746293825686038065446780211761710052104736478627551077007812430272029892855165315539688962239928899668500504689976653532305373501153219251936545609057818868566349818444018511033510302375022567112461969996959719250242554735134941291981494007561773879288696316754081193457649143364618169890156476247200869280182026815605705067351945779836178928389610464330865830494726128196867872086568286103577594975644192002236900153135775962737775862138382520267813261325470846590096322338203877281382749661986691552571627904251809253147977584430221843430395339605920841962746400196864988431467912096210364151880852501388514146233876680527800962038344699996261808912907637628724767623383616413611652992019175432771009198118411922229167175987247905579331118116125713875824094134010460512212257768099857546170623396942436448034234070467181568997112355150067061722864221133455030912219017558689363903608264210469467819870209633627813997122086145030521683912322990416355786079366748686280111733721606897480148100009903081980428954296124910677255021152189171282057300092241711716412341028794080504127662878349160994405822820540500462220430195610746976561155535444007943026681983500118089641726112839977366245292138129037669564695802743166066524313076496229209255017651170986592687708228146031412694373874379298691442402593305762513359624898808932642014574104922750860363688660906023888045746148835215458204252956376124105543561367273607226998827835046782225770556814634125543650514811502131539398345169968073583903495731766193294619173254256343896923689630385056238471121855200405949313350264128975553762535508158618914795829590982994872746527331237338967023952649747651055638219044140684356945428608002754436054599817552733962876325337221287915535677876768899094117625872935482584991747085625960358539784311050834773694472376135630170145637362791632057086697240746248211057365690262587914613480503572328239066945095928640817057135855054476719197077616287739118895598382789777552733662896989754996380269916961105037628815649652347291027701929454611260711852267243700384713030340238405202311663939775338583760661933198992162509887490538855467840626939286406566677514855414752168882714649718628451797241119728938269964150897035544197410475055282713949366226574863104268602044841383294149165057091956981733373937457510900606005437611270043799085034835296055547643703938288740031054834306244583588665927440140825750294765194820998133006919552996439023681879180499205942348847397434645985258505319040992906399089457254724695257266871314966467352976944092948513689557417463524925546388645272457492082225473905868405661763414530501226859684075435548105384346153989431142905182351133436965345454912323154887479416834324044833356122388341790140301011398100654605663754388092546925459403098450029276947397726254418231753909718948911095493745626503042975637484273109187235561119268396658172576375358155858065303005416210377158420604348468287890067752519365711765371793187432204207440014308564994991762542045572203286866752290745721231265541167710179713205905484121388915475623851352606473761026959827880165439748439726781216917967752896254232945084153812826605602391090446674856766145969309441792352928749527582256661941380264370141809878802284461421021744755561594370750474957789258422447435671597351793792016120220957591899146183392717631550424373632516424880586733735779987225405879109631158062128340635466988278172676956213787484154903341882898761754808879507194781934718570667984127093655412932454003121286411144189858650318235169780076563021658645096117061081029914718393500899472568137684464825089303058836632407041468960359611001145761710779945447186571340895116534067970847412240609068807389894391736856591485986856198382165906458290328652462664728393581694562946242830680936876142099235850755676070231835847934777770057828129176090989911809069578336085461294407428414028719756709050153299220807140983102901148226006612904452367946001538440573665897554465539789696744728685493398892048377007442357465277451153821113698775557319059602382088153696757701460119725560952231866727318540144469801104079351196857817278504624578857913645085010632906851187123077200626596711228157570580677590146456050192165069836381303369531296594061725040997857187033342251543284471706137104973478165199634718433465807468162941193501108447884514506029173024736566692102808143268818945569304992846635373145280715323574051079277405497270742145651330776897296274127993342448003064942973041876414953877213243102999161625485393125761487003922685524042282888241095190826461921224470004562596495943481685162952511342855544685895062220508036425862686853018288611732487536471235859795404993527114787678417578188786295633263131705692056375438132827053537408185723854961462846943038194768779907512797317062666092577823547142388102640392334987952187517409295424687651666440111288878039198648893142628780595667056816104967623704450946988671155755691328425526331138650377745899458499597707578756334516470402318240790584764914312500883312233987761070561166544436628110732643153444830908175649019807530649123646515833394191630078066267838209797419680144846481538586204613934861886754560978560584244660042585328532576444342604330915457638532759290466739600066678912733690903499222105874949074417371594398656365376236807237383205953439942458167778195106327501803805465639312823351510241582518449781126125803766454023747464141633087604218776214864005267123375409302210902106964277909117204134595624514772477445182837993665202364426935846283495851438676954617987434182876091761811557334401063637226332360765018764486100135114029709364200422379445194664692134155825220511822850448837928223463046555826469815221811969970714802862818946853703935860207211664811589708784963718459788919895500285962214120777605686483880831845923813903374859848654141471929668458596183785491096660892093481493277276806040788648674109779723727564026567088224351208260144136185185386639739504648892453434894203670588184472063031088076923042459761742289717234581049714570794885126402912655706031471820999684300985994382674874190690333208204115855278417316157954933792805665568860876670746026855971251467051367796743852513277747278743854643458336607868065379507772597736069073917013014980609081030678077837817262571591616448979700704975765322486632079375479370351491256109633180411816016030048944965156527805075730571583891116933033437043268930824081423249913673828999722858130183276119058804028445136131344922126056797798978117919915036256041716547234557831146022571772411764712756345923162384450055054289619616974556870612286403966115237278728514872381181942240713225853343737643933898239290805097304059646211709875604440344189937808334891166245188814423367104594839080053557444505205734973906783161869088158055935600688464700071902218834710236286082307731181503214800953194469373729712668840122660957332066123502006630837762169302082573155010867404195036772400174871999732659065634631970012048938584484112197382758652810804576664544694542947896074313469710458024684831786816615476206132802462213609404103574800527625219215075916443047636173853308130404271875997362333892227208929966992390701561058234866480497582973813321550876637069495613676287688114035652892901880274846320250287133253701217620178816352859871294036782427807294414514053420787154966335949016238317531778244307161542790724887700001706115596707635669634875275193723736123441397465426474857014239977161754649775652311126603430701655258133621322281364527577062412629832678615339541312559873302767025773146446814728630919876122426131943111975795094484668937836358930389500170315614713890548547850978373273437401459188257887067816463350686586854672174366346170273854067611297533472428022982322931228365264939021855279783882884312827813310082249009126640076635673363892430783090368256321120615615236627509466911193732064406798471060023321064546043178644229486529786946062122608618223234060128095859321752087229182577649547158300638206482258431086489536116412962886622355622294438913645880792749373021414045403665646235727523686183850233334207377493456753550420944460767765630271675317519051701606128203516832146201177964429511569924391433793704079813224581042472857743138824826060131552773293198256032512017179244773651044667415605893847023148620536888091643834426071893887964810145719879913786145830668745435443193057270769748060500584118568263771432149388814520743199514202933231500534709423303434644133743485518726518469989921189326555119722342716057321759829536187539127549414036560539236531049661685843221619704445093950227844050100732576505085055697416695859340697405685169357621191626419826256727198527927841366435550555224084286161348239700660906848089219442848784102876338863067384080618840486397682288094705645493200994091800978492736999496023779547846222738425542018481245029627123260926760146122229240096722919424723159450602286979648260831241159406576833670484967581451485440675055604175175745438939958709657847778334454027538295418444726605179583412958539089301199514860321099359169711102268627449484210078774223138773151765730676741838138658219452266894652196559171370778182059720762606638456643293787834694901750263891596867076777930331026771328846174297513416514388350171614935053553436705914726386108639361747462231402542317071561937646428791471536191700944487435828920237084880882270968508588000085872188797851845123351680982969681964590572533465208447866775185972276844562853744481958463494703150305794294977242989424225709039683734026557715079914824139041202156177138937134328532941383090741890799038405820416719393786545963956855642055490212586951853821926615270401757280339626934434598690381397255666701026389466562717836959406371695307096224773897816159533220719890469114533351549849988306899617667634598625356740196007366258572126515599500707099652554424449889179491855938684140740767384471478663568502595555300371602393845594595392984463818528202352440046807982251663130187271798551017160975187787852775711113676126973488222914948570676465735233234310977047197902410769018041342277594663749363755085393832035861548490751883735553067974340348019750424063209945877044242443776952583057791486756687584155725408948802622159311191825048157141302758354596406277465230724679755048694547799352916003622729299294819484748387288958912935257086562458718375256225143691970613497882805131269863173859114220715343583192721033209572554446749309048223164903021843995703725954672599238417944216567108628243198944613199168794156970162072146657319057760076530456180624205712527526514388984215228448364000928921990848253019030989226955886482091231427194749641093517626703531317532865686791987592739874685669610390054141105146468356134963490838218599238813644358531861831968676701984224020400164684094080485207168507444364808228581653705788087340005209720630235597070743753372969100187757337174008468463729611982322280754020231297219369707750384537368266578477363132045806030569255452217657065494187103402504285723391986641415565373015909090372305321515986403517699447530934767160572036350524718636545668949052839616149166216747288183697658039483793507536081315394710594424717510851097538433649577414260946510691574862770738008830561894256250374946039060022668112414916666767375002290220111213174828777857487556820612379215147206723585256087868762301077191694755472858114724963945404204421869481656121873905976550158158558410955878118054571620026782224107853445213372175043893518234542210357052953793501801427570218417939489791423448874027122968059539014117989011827674770076623654979070910750972086000154523650465034282901393884136794148250630036103352865938593096144583825212525071616991279083522547307619940917401489535279207444217500641322505887560012326538046587191797128601572279339049765889012292135238701481350570913997938976107072422139794421935795417900066603117045438008253890349330352707964251700275267443715568009100095017828388312044033674577516746368741074809518038711424562846467243932873143530044364845269815064326674584597536568231791541090235970502343337786058404231838163900732243942594145276671294036671715089817954649735798547325726229836158274724430488722726638962372640157060101267287778068578814651418491466278186022775358131724492776509675276605781131323975470486042694257600576110436048090425262381085057360408883479134492476152922767273004748304072383207151105071752964015326766747778900235391312561786077975616910287268977971244013495596201524261531386194453131039697340616336149267597388860892009931820343275956340869292931138974076683274944091351093885052777825663482792600858635752799353983000676126131901992976146214261572792864164658280195328531526577212275673405201529107677093231346047739097226248295870187641196714759619052285712936461374511103893964778483277187931038885371510742735168770326204919704704053092713499668603111104628899194021308023497778697357638593294428760138040916338536999729344184757235928637221490367075746539340371187403539106464613984508037704297091380676782060742181476848590774439391925694212628919716876736903601073094543010534371367669859209543624316735591315376070260698022863995816414560502963720877123862253140918964240501934046747188067747866854051551314381488281614867643813196020658859228837760728091550690034620434717570009171545448386599535360631762368355905491398869620040377875213095200919456897938405994643919881103340757480212194371615860674737084186160896210422114755219344404810714372192061937670667937488719386122638682205748692888450437724133328644343050256986538929018959278486835638421999351469496101732064808364863659595241045684988798164655204317038742304248697104965449934177974486069984718137523313591513572194565589115524612858296193706889238059957465775546028216771159503566632965420780497874079856603081585411391789719807628304595504912823415865107502555017621767938427796767328080138218889322395322627614418595350056256499803775785803255891371980418186418887866827585194665423344328826326088164565026181596088466397015688713727405314974541402190720339161961211102648651262051327117499987765203303077122753572752079135345695226805715475632984672015113973111692748404258197776706812712071419703407222289233578622895599315870252735529124997107541992669836081913069365482080544681852559683851838906349112177258871665628315099510760264215932558068594626887541867899573961964279693914714830030117613425223480078918231349214053335964286972352322894226754979456387463031887663258821526825064485091706773022975101140684540152860080375748589521069354543227411633228616936564137221502548558113078852366928814354219872846726995262416378497940459271758956001253466065536470795303159880721265791027551459060922818674454489382275906065622838466377607645739266329116084677280002503874736699889989279251729588022269835559997805277314046574481764808518411820289861935148540141552003502649467110786623124777144939664241071730336511395105630973446521223124324713882783315051430493803899277257768785108663288013249285266446431928763837673597241482449232717217293765009947230536034746562269018759632730439558687598724264359841244904548223818838288927992753103965798130693926238251628116105385993991164438265846878522443777476365148537389823834625185054070300619339163531754626878377390992360420895445864047027457074003093409052688345887479138244450341363075345784092869174146918048630259912037316363048762219507973275207143707864662670135333695141809259973411752920609867242905868896905996996229510613972090130543932888324008440629277905942359658113545780130564882959975317919432975917987758672947238835529008923103127136983564723932939159479450520005575898946652550760581647901695375100138639705362961053363865193106416465859806429569255919323931926631596565744944960220885408588013444661024786024896521386281901086231341902019261176297284250588341655046836321851528828939631375234661451263333838373959893308916528228620475302241827643082925199980434373516081076913780548339317421813901602984673892466161589861713316045520302101979243718650499413157733022030541431446045930111773452547430471181803150805319002361500589637775427632573149066885598204814117489148116706752593518824899669698237163535616263009757032165633681722657577275202289810371120570422891961921896178118633196594003731662189132606966997904411054630834093383504887091677790752560690957419054190247947878690776008435330181878591503160038905201798650353403316357794472181894488607015816499746280241165346821121542115292063748627641751167968640721679195565767801240159832368209337071811160370946625911712023565912104591241965849309961407226066804798896081260629769180266122922671931653878526064046306423847394075316552366570125977624408204624584718815104444272035208937360747259375673688015721439649308322138601924929618711189460529543635518583161633419118655196900063592583904325802032213800825121033578768075337638818030235642863103271830583384952986003454943046933670155030234138003981187938985640205657945286428876139462473259224655764010603632578614052405312275465492626271681000982708261218818933510921147841932484215276116233340182898165187093624636101865274973148348293442670864793368581914587559678836352422634766827749910550318764222302983232690406401703523118753317747563430219896440987154049275550168348524824440734294394811622606568050409731647425226673711837737754858131304977713451139926876849683179867781647229264962377567320444081931334769630215993411453047920971760679290654492870884817490759372343967385196060697674180714616455628302737606279014865778938604398648878044068166609146876935943248453999714035441466667307646888331230946195967144133011557014572346870008837188641346250270788260889611304300997670860517226467917034202513547551238963241509632283302375574093510332110955509596780656791470150628055748343292272145183548277388000163425725792036342483151814859578484711127859283127857030813086440374268313528934918255629012303590683450151244890408158671631490425630724518718083964834942987676706637861816648432286821903322632275862340026778764034166837150696945937649721588001461227664499792471554021752830274681579480790902515437314983182178648839440891818703698363074140856395072888651025200825155978739349254455180546997421745662175470707899375329792804477874335586057330115311815242313671346078716209862929298504838431432697504719791959064506698583479835352359638737874433256698367735205288421996713702184104657651369275444632949048000504176620446364414900921795421627561112035073367407128802525190074574653365249609745252764554590650856492474335611973191862016643798019905256268804719820131248052666413138254196821195248324774314052957357843724714015160010008662383255656497969782521455580065421508392318810094525144742464255126506108685167455295061333026508442785750172095847773809175221722902464362512386398789505839186457042059266257349960667597529573921968052767767169069534742972829699759783289391033164803808476437626924264809964031441136281128938358469460959677449287562383434935978644238883354949458889888209046745473028675348087844109345909277288429666582462363332178325116465130781597238481016215482639116028164543973520999808345173071410965831392960814894751176795697479316572667393879804601643224768464004761043104435813084889632203144417170856226381011715328314094943482768442428181149388803299352687452798290347758861248622353299114791018176037069786522612572523533466315433088941825716067764212907211185059489272591394028228845961008161530746709902901791469394326655791435191298067959903172764907279188110751198133843381750999119505736721043597645077624302438494196778604059908813803079971273093040284005321300475749546752390069652511321911150716995821146262671123989799527368058610226536919166383800132043735147652798092358979300239407767777770726673084130495580202710101188353528792229556586251719361970379928113995353800820190722373743424500638840015078434588803173032402954616646144807338716874586580335340963467092044361348023644676930154716144890937409074720427078016563052253693814971854606880358323641437812753232529624974322247780021364311577515245651984060537732721825121122459981055997441424572929815014267897895875929301154324898315084171769291456573365556925238253044548423945126011076677587620645812295420747581706772612785894782018349924104493054259646195847752586271231852323250828484753041751064303295529759010052401484100360362110908334189714809670272000821270340884680847294630636651845419732229435507877367038571197355023515781262234127901846238969216595611924048224273622898685619036927562841495942270106155375707646324299915868156574357809129572397521093698969919514321428316381565866082634424134368048878436207892051791359688403433293718307040538957742794323964401340785634475051069616758294213561774771336635009626177156228882748592784568969798508187903247452400455198953787527092714978299778359614760727017188692567928105045457370935724488798989423315743155502780411812659848260819587753266071734578743056482248559675592677351488579890195904435052034337405470780488138816874219172279128062369300995998351343114098587146956403218160154516189519066222208663753281346362877450342639951943998027987443737185686092224582252585006668062818403443787392140522889465837411287139643185956489827579934262090956475866888175112294741681785036739204455455552261304260066581482365493359460945063085624061404922566268734105637712312676339486230635706874447471840502652203061980241799668716261834892901612204709064705408782896800936028683646222134028936751830763209320542587753157860827849792315560624496035773879496708737860003331668538162128720797611411596628262571410227384172693582400694187691870948567991626447794706132839892207166876287678644221610937491240307773110093083993226361282703886703375961964953202385689165057167381042831789243878135729018680766669587734836544806223707168709327429554548180651827639639140956905457130164962606402410561743227101204841534070791179346421508271726115373425788793268862737107561161449903478071825823722284561297658317042873024282025330413342500549006410801001898066793877366333511247750283595049255939235211544949240936031543829926860429913586871827884603718443550504011076033075027586322605949703704377022462055121009259710883315161619881754812118413530505700172672470120241354842863097808024749935881231287333899542073960477984564957100852107661913056986061236251335320771983105277059256185386373290212491148441981082934934980622143961571784381190472050109352249120321963509404224885833788153881104825396235990245215357737717812008005043976802744956586045733268701375084736155665573389278269734222120694497033593922889931591502155197528222538985013123196228798563129145139086313253963994295060615245547624703455817777038898978763295464764250759781753738630229410190991753006934087732795446399154630324964719507774201455921534099362793084856157330195102511377064389139110200789966492263691218310772423306053288650395223789158155364658401483010342797730132194702771095706855408036447698802432548905540362201470771022638803051903277144737853902690151327775092501732116791340971377321058514896542636320648039611348103204039640973279052578409807289378172341989854712990256279216632930616710044753948290968695473487411879398144082725522036041065778793007246307192364990809610646709094603941038575565635406398662486636410405118478438223069144428370777802979938587967784230778603844744221363234874291121993553239416233680113283787807720633098745521797354885138687191859080654203692509103507834587103150899531017040919797564861887801108138720434735013715414327739842293998295759550406269305553528871532844320430331244737685230981103031619235798283885983182143430789520049003052654694455662790602646944696368457128518066020987741304855150129444376895144920478345619376888426444097708289188212505734530239309460834602036317806371066238667653853232151828276695290548390779016578217414476440307537014994788964029067813590632495106773260624920481059921345937211308714644260424022338472824355447619481958823562327889332066190875062643535707488186225015643024208649905813125463694599948718431793356737813156704477171306042351004260027644545980647516437148561992822150226539674238010217232149642503533128569096521407413982564072914351189990709349712836098688601775040731014002680482513551835747733481108064395423710939655177193652781987114600578401486864435044141046353496353640421079887841086811558225266788224155938034786160299585948842372944417902884825423207109749535222073321089046099667014188958482966073021380124104741237825025612011020305932580441200210198859517295567300191171714130787159265256783217641314345204621904134783031384480007549819383132773100545733867027250711441381124604633654949519213029094939476404924775611185148115446376349524401388121753767755692064432369052801185009655106627555639363439993946623973960568594391276756208071919954776350647721342705224926223586060343555136430109782053216662062848927725313798206671090106342101496140265980750972181074966269126195486161012385049710814119572518476896940165789904247581470018452083166090492453454803549769026381669858958479494326536222923591487752527113684316759127615020678152820656395116217154015287358655663260923387346307014650484893003458870751125269235347640707228211582398656972294327520209612628860430354179353031187337070086586219094233604243724322723739974012763539727488547410176463412345827094615584914925506407826789995333672104241952849177508174373674805384646615402961553955545230210092007796744561458100886749101078019510308135828421274569870669799410895906767305264908201161283297479653721805229194652387521412881087712497367685366253124012345233261003141216538034289904667011766940861715414446864602085466574014837640141951545083879613278380294451248099403477013436298731551936658469122916540472064764395345690357071537580436891348427137798225468131621121260789342867556416914731956539222699933012901053725019589469038789345480243297785816472438900831591728974360052913992792333548139433550103582888778027448536410914683170294970061226639394394639153703600875186014964031030253319702930475686253843371169811585602248191876525591117192145420679576237326392158064679612904264994860118489595270703538314914124029484903053981161273389751056541342754936647309335512139115833117518737076865594197522111577027068408995187596918999692374624679385277466068552063780260111866119181438608036911520526392012535487629398707412748883159543571058127896493309838823198353183106966852898599461587339760800790462356370571656750592835564609691983081002385153018967952393566094085803399506428723465418411790403848592436274306586866677889163392361153366008754570676084942935771199717609927140917417351774516513201588984861141895123307701894851675031724373862452791692204064902066694469247401000888353634061236930005850995319534847506668514371276504844467386518924344979386121648860399439542931704781074560878753208272251713271253400162974554298886908978009357506859187187212251771043917930020041793279390561132244166690528836867570204385800584865826231091578701948622888216062558829541850014802733294954766392969737710641956907834592171497217768951111569216769500054340494986433718843384489555842445051768175383340011279692552730890884225104676233711819175041636666583301666841424780565768794700449859308178169649150276825175753747116468422931061860005333687315300592210595808937978175114156642498663252287360042686060008234509337587043841295328350346278393975537677312040615168589205726845971339095751630981519102141486124587650224276662177119578462061822604768161250197971152926489486195318867226793846763977412437450802928269594024420375007260377487219780459571867260987070620390334880615034435959769240961231986324759245760228005304344354928979496112057623288874231805724375636309684087808680859311111635552608579528373976316881700919411679521812118612999354993734761613882840793416206151681820240410666326246810509983110036856477571013423388509825645206551252164522144397607029808086467077822067650825671379074462695863993036550021361981382712376793956845262965724280743766841664892534440652394750844082790339890164784735652826094943065829241835842427663195351997747901718556342289469146678034382059622565398746114951212793754167030554568888977926644679750608552919891380949322289940187360536014051903561194458860919040932580351430210648350157725487736010342479678440871543126316507582791807477486368956574189594364645161756937424513825177500296381929168726829087217424923269020497600618736519618156953127585943448875893320682083464011415012031321484808364584256230442931040352423602154442263126001551123699386075857817915078910746228315814843416371629824337481958752059734716279077776375482596015449449082843861793018863442556029851861489694639097120234443132490581901921912925601802549433581320483639206828721003116605178394953397174097575107303850198703141530886723758518496456703489538350397872900345386347446118123819682024486009229663567772426328831735172325504102414977928968567532458836274091063431572655409411365615632638737271576689462630349927144929117763927657366642034722301723155380499879312576645152867315455309986682402328337247548263729996687181496313104911660834331327185154398400688416896112701799385108660799155525513914176577877399677490590560297362152156926341461829070930770177378256748893590322830166629914943336027732530334213923794413872613469063587411834972617000628080152234490320138213975970614683536413727672884182402360902353883480666668819809890388263957360228659519484307335703463605166318389079020025563181297238270389691706096141257482180705640665403633037307969178895440141344051524997091262916331735649782559882063760351375008450621423970853367046450071212402668641369730726111514349982650007307158645877462781882666323419355917167526937375458465235504137055808604081543605754482282414842216955097494416468280738150210802255818294024618555448853090995420419338744434267504547554140287671638560047557660329508595583782259781647870050654853448947382363796578309446201527062155683402766433950303998321866406838265933527618313440736033549771603713660800637377250565400739448722677690819205414328518495836346707302930571954862207389133317647470912206292927525732415019557770084018218826353213607600925397864572229498904627798392139680067794017905601009714549563620647393311292280537738664959624790822607222285505717654018513055031329117153503546932518203727954046146762390991851689805552265976600591270249634267528224304837612662317567559798023973986217830170668425630843805110728359390250362216050392764932924722625769510522807850241894449295139287650505860303915145245284053993261047734814568334485191594567548844081907206100083032685779951690819186617211864809056203108035489460053274410769071046091031289235939387597206092922447740394965052448616231951104181907855888549425155477297077744548285288565762724678394126052461246232344689671713094177356136931683843933224400322549689683906207986948938672851492514642364797842604341133490704931335154405109741848842513249320495936274885817696687450624527856472479800566780801858027716137649743674099139799800762631666700234964791114687253129996563274095240487158514322977955353600680767801558322192664515383639233411859783424309849444264129439214595910746222159617174581437379985976555701218230764601166371715376829448380011987902339811532146315171311389863716101494753768243894539539305902552947208512504452407800474690865824043745295441893636721462633926407037504897985651897137645760795406503600399434182119980288056765843288421909515181635702930138651859798317931676022460950795617651162609620456880945451868995276763694674092435471094650441697250923671495686983510882171709174302512555237019479435679705673560324898307612489535235408381356492085789617515220313532154838862364575004723812230786880630269931396191696886955529918948569816518217562220145658038945406904044582916191581593906714371591487665305841870407596011766635128656892095807808030731901348253972076793132010168954597456527379593859540049195397863125011436736242724865908689853636697811613915629461949601329126916530235014316218112640812061788164842661882339027893108860259554184026687809119010147555105430367683433248287425334727913500368833720515448066380852608827232368228536090964388275007133815777988791824870872321450606305135525299851125638077566548593580473280257810315175103262108925652291361078936881462404563984835671667031179829523343729760055125112391839304859410807379946237650332146470018296667864181073332500836708266831024886169416005279476647479912516242479548870967908408788123170725033474066326126453057653332308320678066172584983650262555197451612769753667887668685199176771444361703063398541430704866485902478625718648278308860778450680097822122397014637669040132358772549692389831704874565256291565730911402601801628352815785606611526917823156269828200479135409605910315480323560989874497166650588709980468283507780368978276503633255754530680996300102816644807056375656402835708590710156843140836688145783882434605092459221257196091887844754153852959631648545506297703513770031432190269962115015082911880471768636547716003517240447276416531376093951797676981915235400411807731174628908157967116814971196897117917220845745083917765098741291172121624300998887535485881861088980061208129016872107416080558524656964351832602448693240606191141307172922636091302543994658460101920857748291428192907093403126631231016194591812891840287774525260265800059510392768284571619691808944566257676789567986370607180840700064504935853031543120353273379144763711483151180930323901747642585849306641694426958130524796905420247500898182804829046885779342863188354956575337056958018906669098070369171543148710597039659221996505850949060743015692996753926139069044309788989079866115478077148916540117857291384180722524521275084912868989694679151857452920234493779750589499906975313391338654672695193881520366801673839875826834306676263550301651791091013638154862591956333781384230154887938440883903073237345924598531647428620908399892616594088828729755917291885146390031989120853354975576784683797964549667158150107369437433889367588888891143047794612725887691191507543347584163218481334179356902475597400320973690000960440528203788749923325311254698627751369270952954444312054098967775172017906064384780596531686830332279731559380182731001756356929484326596114672587498071891185910345837311218519701526791955615612032751036417462290249074672964714570129601933309636706118762307104682497654962140305139562561199725509503076478229153382732227153238889371295503948739238801581609353681945517602651363940052793960989313186614081800821184255555026660534631602348588063841592722512497270346932834086849135101031693325230332682896261203206136645173633896599417000794761424195671272610577514288365685460299151898562169629840862095397259923676582231207398676854980951509125278257244731927783667226315675238695494085340634553733216528690365278667670835671893396716520836097748945309093081876882478649220241268431128751364122656095813400562399151863173688881699687629839714248518285630197086805974285402251756734117189543050457806783420492814265450978231762370854705012569334648258604401974913996434835943187767688520426440305833858471414224208399733408594610682626769406398638349632045553280413125151114062550595843521391876260226602314608438711121303059643280701598761620217003509591783796705684513393525755159864538996296846635617480063260911112944986379059957312358205855122984929621445249959560636871219774567780722864161027335469147214882120460436987519960017172284399460033753375516963418755987884037293298614439163290490008591370984905399680852735675458188579528128366709630500287452648538122840000361414794946443034585952259852430008357438456027991442725111829525478153789520787839843289521921500010479970225719416334726492376423752734524313086784045871600719146500681180205562824537148899259756034012973111142002987461075339071584400145913458160734952038089383183235223930394832661469893723820313889304733147588216925559083667299847521892700157808405655643423209237008323670668692452026655726862391539282454061523841722126579564481966433285544937390054535050046902552684891843588741305034194558270194644617983604310854074417743889417494728138059452721632233145776184305543126420435262478771114295706157013573896968876033912352503948475029914534323749803359648603269394492591286825888020401599600555923448456558910292390350700501819428420848072845327201400880654485095435958027668199378655018660928608986459801642739967094701914573060805136438120407411519175097067950281151537733652341912749412597067736194983583688836073422658905769990634279125335702716437526730970548755013411712958489199603799845291739618116598692003619877128533952925992732672181523871119676359799487300089786422418543561029481168745456327090079187219105261473982274806478368080274786353072252156332144028383058282157068098485805723349408667570276197032327023993288315413824896304994483639963227617642305852143449096017673414021744208265612829465387794440305318939893361405944308433136683977466635060840353250364865067818033652975271131356414324060159675296758091470121522022220273980247208246233677661188235171796136663364976441263231629215760542602920839129753397492657862500709047072783870631177882878099274216186226726506944850905416253901547291126587584149230896836512649176739228679344098086210831049809298833429883679570264481140880198381030582111860890179675499117137110695272634247316741299014631894328736174875828213981183942574481719537372325473725877953508444393939505412758518469634629556992804564032735109418646487568076134015789372303259402611155487734565983137570386962130318111123128419582260579016562767004242738228143345871744615145741529000944549052893133210955260207686643316494002773009948207257146691848979638161429773395214824271217808573080912862819005956461013344234844730291356212371179169726877008890445660634207086506552792111636559896067014613087709956129482443522888607911717299379617414553466148307826521073295077476169403824403262537043093962366505902427358002207836117424093104073704569319486488764875241968841369561541281070283736643381769398549185219299291524790784871256419207938371972793265341738401142193494655654469890064021332297106311443086669515748771894121911606123649243948862844808269767061507676802938628934266715553215148861081460422198316903445557398770846016192917601952498961121741448058084114310192174551231510652642587315311513338571185218075120238879036001783172359730391030391315658896536344360800540133437779543347619353499309919485750034286889783181755990459316236043834777288936021629276885673115764218773965545964907543138292411706082898739028146438580585252264344929222539180190219517576084904256094584485219320382079030374903307656401020144161183074999374983096062410827126074712745246436257114760989677791158377595484186293318158106557963233709598187092784817688946597145384206639351161668819717323979996728962873958988530393530677730512587116600870488562645188474083425037506414179218820224436616063032742834846381941110850322366299707401552476210046651053449224809127486420899071855050064493678652259608736512537145441356547603071784545583521066048577936369492922970719244811918387811496535240684549324229417088932848101610166639980904994279120476198792167275503435236195513734763003768655899226977159398235214417936228830841578303483910187009028445204914747457240532088976946374034059394821170793268774035056198417930959386434560797217108195642271255095229253095946512281732777755996669924036437599406583757504652145995474094644022605726375290005029498217829994393708928126244793809480896920942927256756381035998095532847124481121395234667126920307159212675501246566805125562074292165300123397687610590322643338670832462839605717189113986093911091368424781990844951969795931268544038777366950049638762637543349244237114746349054537370497826414767889203943818086663096091762238096738482520297238682497560494272648523219984540028665086116007528573651091794043358540059573939888607089669825128078899197829362553423463841373555597421055468015933298945627202488210420516562129482309643494211241594997483233321884157923167857628118757350372084195752559179926334609267354577863347604491962127062335689349930362028447918834681244995871091241049560312329695682990374602514944721251947474097547711869067969967797357833421415819655477635623961610058236598129773088532379764824890564548417103955858573102068055932112609245940687397785417251080337372011426108478377579881848462128106702686373807629862346871955726482487110696305093679566108764431033666960177170849485832794817360588343345719146928206055215139070962535095699972120777737422706715725356232517335349171243568326999605157262044767186541223496767495709935919852730079596294289316478472102677659322934829997732297798624628507746235104813351886309468017952918815081576694068352799107275896679229457710593871491103041214173439743311862917866183771962941892250359226169000470762611578204453183597899741227910966599647639595604879095229142385296219000928942214535134084734142414633271638869346216317218205739049883350164824992459410236466358062436838648958090909079053991412388775585750835467112459193603001692148348295579971170911090837628439074587944693135612524319043314720834335701443172041607056575531561093158835658497052498318760392424418030743095066396680500183838907891178268436866730894905778072942168078861295230148341710704077767226504512314653795857243982746952289284034283074549336899652780822860626835844635671685881313147068558409741138032313996636177891597538275060355921689087721366841446083971613189916375628118935954210929471214791995498949472361499255622659956864953304966567502124833984903493629641999515396316007381237715740562769026781044621272806127783293491638200558457113284798703208224838451493843676419000398163537503410457418010888549303531345986579901166745690953429923988361358764497075745170314310772836771313724309472578449729228364973339541891610386970335093289420384742160875112272399047105938120961716521028019290167637917242817580544391740377816799744557840964715382539273783767267217701813984006442024135741647701058524726138668517738311146419398664503010224147744252821826478648396451840328200709647141992444742853129797046484665166061018567914431196298234225878131905959666206908712218896849292265264562181797178348248010319230711448398927585877804727127553549547350308890322743875244072535044439531177513113719938618199203354708705826511043284975870973656933318917280216576736851475531600776087510621095387207648925565343760085477431018101339773141546143251596883925128145321003159918114815888524248892343216077387667532196062663474430505949646434029786209517157544211410192031133501629332569646435627180876408129168656362686538539825214330554853884951127365217384563609594241936232210636083835059543549196491911829674728719504994633792792764896198097343384557351140357275594881561433088443778477881813209418949416711786179606784373562336987615270334107130736404741096530739111546538436805444101023308685310543289885968186519836762969819303525579508021042140142606519384309460947143499256747927725125012230320163016558565098196130427371583947237370287058369167205843353243717500153851142951383850272240573397113256279415713241661648181124722175678342989209120177130305776508790361618894052214984384473845932412824347479227387302499642263559141226297032015538508094994134057741228966847829109117679608042552725479544768416390448311051574738989675202162653629062719435489340573511929053304353431563996567148434739818868194504948399900894333490462957158193730590127943824508344282027570752223639316002395143500523857255990936992296239009601949594295322490763144363453772914092915116499196613976568607381992699725466805856023951151124031997804504651548100519434178141448451046298276173546160447962972732920435129103763449447168255355630595490390090395610788144623073374396897255220064564327709898681531410411907047086565848751371107729951672787409553599400914891522168016744023898218383577518382083764474833009144021200317023719912603357562127554520966147241181551497182006238732052626198999947236684288158201989000197353207405159622295349224646522686602171943032211317251602394098943621999786585630190319592189712923374099403543428566904435283470930873579558106358641180100034962333199959521125217225563820155567450871005340109388409964953769274458740612143751280817310456738746474462582102792972846941837590340685881645379760066564335323781627823023744092946615976348077800628720546020054332197800141626838940572991613262341495950924142570757337258410943682107588258909663906743018456062802166185333341583883141580896243378635103611227665973074253856645979719780627804037481291549203010338267181053514538653587634087502764774175546755129785684778649598928025021315174056020751357375400149784886664710568246473295015005600682062368663850825108881204493252192514885170432765543335840664147589064008170151130896975010601898461393060825095149968210193711569588630071796014677642760874494489256765941106369964294033277081098559801865950740789159509121979300442669403662125499048979345343516492370087616259066230590703543604355117826923913446411719772309320949618284408972393719637412572712410876858389682987307217642535190451687326905653265446761211109799413517102223059855960900103765370997948726176703906749560816485143237432384478210199094292403353379827738250499905596179832588396772205304596978783041054905544698399147630789477215012505773665655438345239981821683889866702013677410255077017858763603103281523185837920160108318290892038842733689252671146523631334120896533244776897035825532148910032839479624058334680609982733766654153572353127343890344953845811275903411630822700054747858968923020823195091911194014830689278853885652832276983255436275843390473791332994493468844346796004659701674442927446076904578367690423766047585131294826748972911213749473388343332914174785869852030037489749090860314597021040685613931348347956279933202831634969314426297502442813495068467080399402613128682867269968920027636388386832377313124342638911492985162485370579194618823860797997003498532172239688275083423557835873519656903466748707496587525200841769023916053191287806957982154701998427598856413285878391340647781720054424530702494364920259457848035385575243218730465856303868622288059765039041091736861277329469930403616242080568465258796631237675898343299422190520327683821994210143523794410089223874613475134517877220706440369302727741884088298983334546880676240848239602881887803832612549239076263485316459117182034674512503937053522809639545729160230429072190932659413158803478040995941950150698059793894340036400498513896421768435648141844490938086003832285397676802802633990584687322961515866421725395254184187302365064720591184008646953560588953610915133217693579445005262250350051964565341470312869163016399000868851449260582846877167988182329562574741909141291144924494214510566362915500694381137112262204084048490361066767169632755555032867705977363397644406636402196237083823208035491327052698511394248382358063913226437622784658866536956158608797027633783970201623804372674750542207204321031680097324603673827704961412979673224213303000187113499644924567400280727452004532525621941901171050770476847912714310128780458282285616179035182843367187109084103420393167981178093303307587075003832140027740869865438100105176851696837942930086196712758538495591863334023930611154790731359043733403569131690076817729893812056280309018130260950625070409708195740086703052151435261408870836612116688477748626173275632582445570325073179288014069423886902361346895446082000710986398362949518366045686631193270549877983196240576399530228185616101633288279651054745141902270416135645809770811271259589909321617240035871753440102992569806056623473145143603738451498051073745934374278475122150763954790355707015613042050159985612440569823528537626009434635945088464432582748616226452930709850536869892914525979745701811728277789837201484098796211753797241891929715317686986761191853538914465915771966557634796801192459299376487046001089959344795312527888092453185071549254167709718669014306167713521195584449770603377282042429769417074630407704321888079771327565341393229494322278428030431251923723953899137395526417726103705305867371192416848421798680718151199359422959375582835789279275864221409731994332684596650953975888135893253452980730648769612242896215177034799810340548962781733588578459128280765802235940068142140105148291948260547821644306357053885085693529851970422008083719094532619052061900265808858985467531970910165598840361768061468957748518252598421516124213520903071577451095188902593198073407351081721952785110237039965983545349788108417158830230055787525133300614059444583750070986007464200634323283662756566958471310278499658318825892861863824265438713354237598452376698482291375561478586858907214575288052432804118623912474468777283158951887002720031320682049513080582852700852436833310838703354680218621735930207509768685714054279024971160001260251600131278141666482219955790456631501201137576867701308705581005973295703758411627679996653768820870700282246488648326293610359912307320740507476630102053089409649532590467488173194664673166563591507601338240280118585649300578831161777188270418574514431680760536556936499624869822023743275005257482901160576116541598454642420341695843272704887125937948563348867950075150378528676532059227247724085967349486530730818280101996164922815548353460181820887561199732133452853438766188089614793503923271674063569454411107398055784519384575044533594585551166214370408131037988137785477211168340538188299445147659452365171919431703897166390977860074625457731707448781920146878114401150313423034492924067599506473844105875296722467089803009671388579894538871200517871123041568602599366909618221403070140990753816393206709738236959825917098933489462529234290682879329719982162246873824284679684432156088428019469463830505099283605962673720577765975733421128631235364283880399345639908930312175591242967583002256730019974228910471322704691914007099015284297656470883897514504458401699188783662625894762660442517811756453234839583811289931834982195371949608614106221122583918240645180502433837234652681792720588408569585686876128141455406952812277252384984010927519990043007331088301495809652623891651093003806222295684576593635716421757359246292887090262496791561008670792690028995576062872716378181330908383521160172712571070296561077813140579301054712886112824821011037835207048866312190158580956354138402228561912851207951253531888847346978583058477499293911944951762907621856376900600674548837752941265868538850485769713317927572212820019767614592476574976480440610414037018993257363177409244172668521012868917679935571124073667968278525084190750780197053023329248099531750750930187837266069529032444645310609473856986768490480731688531782881212202740331026858383423952760102678473082054976791498932908725133619049722067588729944462228807706858970612091178514776174632796515066643136756835540372186396109542200193562221048040035927957504330205828557749432235445998169498887016155833789539851813833222093462884129041037767922393730025851585849253466220899758873011465584839912005807564308970647125860899259174852791163803336496967911666543660066563728245972906872693066076601645121393669106858506070945169054419260618947357315231988871079968105268323068652156346476638052009334120162369121020704702944839349505282144768493187191168901866457727948671428081012609933147849951591962284668853356760375443795540901822650121301207026382228595741126771042051679291921812907898184091025474399112876794181040612300188351325363547025763415508241380793877667394927780528075412462372063336648559629321173402089383782764091809593739024371855270575317141592347240469498307740127037342421712610993116241954101772005461106444039938290090608976374440663249529699253964774266536179950832188215622847372289844412500237331293455802330330610552302140122410875957978550634083276689062115104880146165203051564858604769217389319377290327192468969080684766718573962001813462049848681239272623153861668392220531516763831283270183302013205694881420682721119912233164359947992600301677434632053256482998001601383353975989479463940710564495739768677090253268227477217175853797431029555697203813656015717328060088715044639343930199144025270292883116896209602848973613736773695661865659049079215604003022715036124968353854014170039883255909128740872653282504861379189640696283930841171018287630544392636597080306551141944109792476350118432729007098811091889684464580050079839883487799131153425248668405955257426589079727808421212284956403018134621252277359431411595414851100462537482379690320560865171656352876976450786699476840447682508364271291610121010754833457904840088612924860608011670603117534794164520310231408888390000146351888942349593372314545849720095791324866917126391786636444836214368114514212318566523180429497700273445225564684654285825321325095110068571949185554236218263100377143771671044271853851758803739059323027687025317756496945176047144222717611021440986303721136515534283580992579767418176540695678643502389826069826342551042319600185916313769548668875250404825895677300426140076356080644067487582791944207381828059601753333739958967311331445263828389757540601672290593297061570998454711822052736205804947057070183872001918230550130955659284615496689582604415748193443594317301331937160580162327800279088133012084268531000164640134631857131238628950843797405280284819704585712169043095003366269021923041836093208933197446435520512299559194293241952253196819496266298062173659896118928530347503251823351615257499734961226104262495245315353112775825677678517452199775346875771752595276212216632219762051926161428985986429462479259833239253438084791876700222827910421080665056886632247618491252514075421739118986357098976666142863491458003593845151088315172798111352353104861457136201057933276607166287986948665938925518022662827930531381025682049217415356290905799053857154569770872412229690772641651159934711960904459358394580825727433239503456079753143376205105434375198776423410011882461706303157966425627971686174961097783766449093119885763250745205526064303649894270157991347956453979439916507256420898026464120661235837085734899292714927942035859425126112030358271065050182509466268469724349500463191557662445657543252112296037570419924326961554220026232617899332746335356846393417106796980014570406917169237674742992767565825661702309112848132995232303344636691043945022308209364672186381715652879505421250921198721754392716300263128392433094715134036015759896284373779266717291394140848735505034329722892235546724193407835047264915913144843487001784999127460337819363158275269235174801544198142325835366563387100869086753707359383677073525548922643118941784130601136763346614386702473597798124924994959933329454858344397192193624181987949865776537092569192164778529456755284063929376943459004037797575226869174073774921621808026164141077903571365201918787179602132602659413146211330580823505878055945055641392901114242710005866627141050446123206846291266427242261195314043890308211151970093804896332619796494322245878177114886376216577272157359797863534156571330662439762571423277793380167173082574988328653900936036185609747619053626433977943316984648446587983787496577390336865336535369025695450942347507043105386090115576241406299367475268375822732332290473699493080243820937365682171159609721138247137349312273259136474085837938393370653156699592002413989351820223219656757374986951958462104027670737094020404054968179968741029863848592977398014248112109222565579194626028534519781126312510611085907695880035006551047709440707132945627851341682326350310322855427292175257719151163920428870294849916353431661873061888970232141641844058805979934769658217318210383207950247020894104291139931425610443316216288842277690804148948870467088703640405730378698640820829230581391925751376733717003293104821220566419500635640374868522683886653312841598008267843665198289590280214951392744791146326689779563069328324851939147838271883220569047731976408076396676756607627337951113273878843060284269588411491143521005809940652497804194101573494234114124648243035782093710284643205692268210325243495584808358733983111823881860926680155761779476920361171393679552885670334041624361189905195122546885923538243184431690299301783468084876965776044086841003921235227124292075205819446114613610426397287723515216120508740933806205569303006885401691463606625518214599805782625880499619019493046779101863522150491633699260760192715229657326945675287980234839378149486590506175934682243913003347957295623263342378668947308241866148935239272819784214930368403283167284619000669872662461509227249812686168694398457892014276946850619359836684269383027618838966894592645790467706611907116555352095902390491869214468615535740334787498913076476301296529443718342383738495415675672628037700353350492259115254777348213999673532417351971702013799333441216530132472203518084041433605436140470351569084913428168549505982530757153156768459290984574927636354159612471184075497251406398656147298646244683076118752913359569467665217739494361831956957762193092795467716506607095928316709973242719598534628108724151937682799012440780423759093384314363218953398093962116489429531427094200347489553640814788194244076010010778944869377077387913113595628405430070870994058933281036872923180578447744022448918453821073884950831119595753322375605920663666096115113933019984000033962162485528376816092516252326113936548712327571912645935686756631739007010165322861651167627631065011459553565325970635064514764990391808414252250796051000150306769733692260233477741522858330880068620215547591071191279369637152126052992839117544517467940024984702043834833616378581683997779701487640105451874526162295727343877318803977573655885070507917506634228239426915963301709275058418035110175824026802694717719559714565176092497980144614536200102926074351660845212175506731209357679237701782302409778924609107873804902427855974235730280633055963408486743258285357433004856998909174442476836708205183338483023960723142595509334128264331778061084724791875245536453234312989884474686280409824606222162943626945249235269719882826556886049492816031653189493272642451034212301282839679286188389353477586358064091305997016556300476007154940030645419282113207634229397271564771773879996280043023597632390766073006675862472600044727776072952079349367372558298570082021740616522191377205733573514205018990207305411054269850018642515756554136852746078382768882823476619443502198568510098771104052573597225145472400228104510108115691808373663476838290621795451424916385625015855710158766673866085774502126023605618643515481144139082945890203803844523177351707882449425233959956576047805873223522562560704716123104008181534526714167233790174304566952534764342064154185970553366764222228635933766155219864176837178921974238264313419526790658063137045739383863076297836756410491184465731342837086578696612921489249102404564253160221343657847304758824854476237577903028206823755218128597821534073342715101095928235135048230973943296517931667587482352216631151660248941764378088949359539506574813059089172406722370780272501425250066055845305343598689523875491068223114346507029380029031186697041533767184856125407135436671138977275969284802332842197321339256237110665172123837151669954429718267441638265326761942356376187868727987423441830156693803973074951732913606626306936791301951306215538821156115544820089595629066706316058871760926329973589122722710183946122763653115842123535486979086975673692511484876612054577243544312628002738128824331725834948539938876404516787054552385030734136249721112837526372488624308359300877250808511723133957150781268742479859554384061373193854383610664925927554065722879642834659862157344463033772553935716384867674875855639131723664085642991697720172958647763690555215137027737467685918879375024445001018764173400697462461319390628092501911909082460196811885051815017214350114796521370815490712202975541878547028032143169249470145797318460349875379018664605356890629744810886376079641226628687036935460364914235369945217174036853636465601565384218539492078173556894645989097645363760003130158588822755894819785632757933467310091049589812637828287902526954898474696307938877359339508162325989766432977661524396590883722629254958747368438793273691770996218063898717127835059865198434244103589852779435699496938883909156357055562468060765064888887520899822786354197061414472616088346954661658379534945950345073130355540411720157802814440255216219824033984772860074845999222713520200109236154449733773609643381182136964235593181859724361361671758588253230350224985032853834472996535932051106020039347641818469618748926391692254056898862235815738030893852520249366970684157712071483124149305652136467750606838098999629227189124853043693297360506672015790691881087072283370718543985980020470252702415032570286090946455246870538699129925219317376541317625668434707605609277499851194181138767201397956584041334880961625553081662243824272394870566797343241358126083146038991618450527914727443450913822153576008925337274715488580040876227039778449282058367286452802435038127519081315052716891742931669610455720746279943975715312570808030953271265386943436934310664866268202288499824560197467296072667083014717942146147226781712851427525425323698673322325267938081820861586223518942130244732757400976817577939246827085080487338426516129809131733323142120126414932763816910964614527364036940225310550180318136322147751620958621840790542859098276900577021972490502922088522589576245763045007728170533400587415560005978395028452359695992693443063891580498502310264330594191461369673793920333132378737772799917742488621031724919036775129062105756029401589341074848040796926675426613894132677069207887041066336035729740832085004185417144850371589418224564497057796846329901734957194459298098566348445086686972946694710593504993114453742830849845838265039208030477665287790076268326594615454824323712100485392062324880418536242899272550554355192676668558607974042614380523311731820842906188015636513870914188500657607937127814761309528437449741203016065659797076215079075983888913766039328568832295133656636676493209819815211032847255264937792958899337498672787344760658684473527400566095940135545366227474176095266628562246234510528428185279491600504770820146869132379795687779918498265242231006870869798126158837863499051407385695082916142631702740229175041501734626544129544577300180838464430380706023282495961179060988407321040472471135212785404244072839830038592825112815934277612179199539329393648727955749079317571717409281997097454185370927173252814222235879215392580163335936138857244410499520047431403630072340176034891701114181028990248776954687614897964564687234216298796106931317215550760662166786724821364228874129323484067188894046546514538062690123123621716148801075285719248317640246251055558236110132417944967330634798936446994756605555294653712701687481441054938028083818201895445053705672293901483028349615087264729380058623521570455476482336183837219502956897147608140828665929285581928712742761118460559662712994982986030780694212857149577384363170428544413720990576457552929667800445041456023612043424472088228314304576679675558348460672951084689406787466650395781558425565095663325785826386000612725779331978506034199243553790650760760563004535358829730451529736480809889943045113256053643276984682388459841280317195447419482337722832831128407985546842680099568405878752926820978779938820207514569514180348946365544771155945091910102038287283803980650965382333032070117312460911960043133016325448106929303317345993472942421919691653112590227819127233805550308471018969480057343735743133761925615735501560912966399048005524911373787489684266591814668720407775288776719552205019472390290298961830362750832933979620382847730735190696195574199597052008833846568310234665461363962888565526153861236373718552540629109212297039484672583724458942407729047000621100965161614189314453548812667946896784467630559119869682272419053609251905282342021476400216336402171202673884439715982613657815224750399871034326086009947691633548558229249299808743693680889475661607961443114270665843990349322606579181768557945520519986229422059409982743491171925138228786971590262992145375109564445996383750060854558047376112924827241720029467989263003560703448402104267552957490519720480084427397867881820595815695580933184801161675963823251657680016910994529039985282659994055760440581866684664757827262103917143550261133751512120820531754363072961218058118806775441655937250995219059601178887128438272216373117064228203630290770855346926754508849336944205090998321330588258549462653591355771080156650140360034143389101221404277772402722043522609231041465806660266587195178056241455650290888361473568967903401931004823490662441600409895251421160793066711800707107268607688198426863620407101746035803501235167914240217548093835410439016932267963190432653848282313161634718201137765525647089176202679101587224097402976572334753800578333051489253035196442694734050306370816123077372270055198917849259624990716950972524241167667374726544563472582578310927372596828922911984488310187682359430012707936996892651315282058867408257276175555528387564322019416077956676525080409066307856085345182556510961424690331023535342880035742642603978028286593768048562599462419268755827723233632953840219133343950687219961508402822466558070642598469502764386435422422097413660515653080885948184425466017307402931718620469799135260371019978672592876258837302032189516497434193713405451238708642541821192786904078261285973954189833712035360742456386114096874819121001304256442350621553643625798157335450019744740962566407000214690062672332777250801112864078460103093753650146854804231751783344826087523854768519107793487071503375571313216746576404652736628539455287727693231981003469385521152579892902197098984701935031758118284320182135941170422954779219680385897308575191038351340697706602564809849910833710820306630225105065262105482562601711927983286144724242564873773249088174570983579476685606193282167189406091032265229244774371498185288983167266732790157574293656346876804953185466900170120006747484086347945806242790627133490095472816770615362483292770891871836004930849185194237793877878762053862782740310361354277327489079853707650118482369341923599576775831919667820700418405174808541243648292400523765665789175522992009109728850295322118122889668971767372163071367839493636214685531633323015698648233078032283163297860775403942928568991268157425058829415451506617640163180194556944762665396681916700171646273132601826447557943637198334994791756182412048085972540528541246413539652927149212252732739641002264056732559447033454586452446326372948163244484180505648685594754880197010330727567692315205376197180269667880296892579634017899030576212515744258310560251056561864122156684403715684104140747635326592931376274167762618867428667529322103101492964336176262647478791210236267097366705932232176228646379367402788466801283463821471687329311099607541100180738697689854116826658329399080186147637651370586447823378673740804626197963893537027934407652204969004587800130930371452095791951309778226000087151290427812972485806181705104640425692461242000900997889214109152574201165100318735421314184183518416734224587335520785870093794550318696674794271432248433914319652739068875641949118743809778785575514702110184714251669087123632558468824709890066041021122298931350412776321655075826125148674072612058797587732860556523033702286292971007257475687944941814175183986303684947113384466399585724297727161192201385385657216227248255883566006953386890210363381371547609619099016441972061558283059222475620026031247144540914888416392462199639701415975064171221323426705270623888625994994577372570149542606790190033249986454399086864141195654104410279001384313153406554743079491219958942284059611437663753238819241310505696522226146875507658045427082438685804388454651428268631235529432438544978779142258501590802751262997853174073328824918451397533752272190584880918677559695585783647171155919990404886853260668403619676957113782491970549909514964778098008602250502215087960526361273034678090592268198631773101937223272299340159211951097305354575539617944785537015370488703079403295295410684414738806678358955224438015980576658671918482197255144749035548745550683074150461687288717268003444804023689712312889073877790198986106741872716764283927398550575647173286454896144400909289215472918951062701636609161205531805295582379420990642765942320421518304443300245351762018656631944461573954431015576279467672236751573776466948611735679155930918239851212862098605191810099928754718431533504067550264446494377585460776677884117897547496761053019386829106164673879409621563984330587848400773138316197429193182848884822405827328722643410626143079347948246655907617269828849133221177695316622638698815425194037517115973377102709767686597513611858055266960716503603627002310421234725216904809350044110282566555648794159908207893383669963626838253863090659053715110448739745966062366631271024548059732601540608641471520819295160440584111313903163703349884680977426970497777126620797709690612657253206610715350064782261853540643990584481103541301897673538538834580821617178554324893329275971615137093792202430978286880370675187600686004753404824425103376738436312651042626926062381690328245517634247254630908688494469888038291642889541025808797368655376252236278436658906111609481828704524205946312193915284993728513587401999706501268611001460945668371937479093991096161466020343082671118556991724038904222879174438620202472242569501955090433125926334435038474432286747713572061646742327620032211310604747477306292414095248786532699246537015590373896286055503400387520657402164882762065720788756472479723169673746393413230389633687776107039504294121951168960877801360564634747723926418886502069358854257925673926210608169068762915254467462764528944052855646071838770467726650808001396650358989871811269412891523312341144931606404371193557183658190329097254980189757743449505024825740625921226668578738276861566630761985051828491545898506191152520473538980646880283349978202050830831602620321588309440941173363719627948450254380412134870524652525352810375485813324985108756690357774393097089860036074065735150488850391602136906619513151045629355615588989075742771383135147364393737260329259950837899192568955887504486674526275933051092872329848660632906807183773689880089051734880865523801556546614322670672457641390735748521850131536193174721498065237062451479524460692563789788924214395327128169579455113696241121615263546127264171852559027949988827704688855362648305117057686160710162787810326924269358210879386228509983754249709050433378370929699819590148254983479526288220905080341883218751996389638830721039778316288107267727608243290355065630198423508397677162494784643018139902037353176401514629417163037507668797335755798938519325553050238631182759234902669290978621221195529925432211510145622406833917392875894903810294232435766927453429579825945119402722272788310658006686690734229297232149902056486051591430506148171496899125704079258187657969501384510643054399175237622453188160603464992164674569497597427100464363252697826643418555554392016363569588509447113928298060968062988079836729647887650146175492261294346471631810198265291995135432265288609465560737730213740537554026363459154114988627645735727827492510268385386227228362569790868759254939549436008410029842626490119117939003611290245350115220494332612732493661071080467321179520049220484776641309037994594305673783728526061370562169850292168350928586074312260420307688972221456765412187644321233946582297013134064073602019973348219173366322031827605630942376211139085256049887449434715480351425263898350557770183040881655629081728890539274573980436877779995053590215998926632368490650234498689046460650849330010959588496937325647750343836737577239163146993555202498607784230870789745642739115069928321959615858918565856142069856860438087344043209886226691147723339266805246060649289694648920679630102723670152559509140336702710815542726856699236036112376382349866116424012402394812898687339018682019733274249771107251236579299673802220947914307136670759033328485763232866279053930895371129597424007196357773341919175193729286694290604962931093694462477444293708823391609474227132429885291432415702810743808897575969362480466847587896682112860772792660740613833033618527880259921866858161426522630124214578271058856639244176478928527315746927645303557740668383857171395511889575104765464976911377060646587590079463282114154658176811015338728219200971264489479239820162533321531612106166474931496289230413925725210503938711213581071737243943592816519563382959482557095573801729908474934433774161108776122528582062560725614462928590083625463286944774525508870071760445300902182516326630106889665725406158492905041305077613947204186813958708010194337564709984322734356899331284805566498677209142354289908936671919336961718486412666801663141317451416182702213209388352869631664762632284475274220450522888246264492202963048439938533417990096916681934013312487152582688779970669006897033929843256957553207173930448037112738704232685746203268722478818833901294691100808101753996018379448448550869752830166644676903699791723791823049635521407975162270007878892020975104261253581007827964804028506337343256404245965164324643607761060653887248670310258655550392929031088919550225251160623098284934920184927789375007936498048746219510453085776524178123389419711998678103660818423197336992220338865290426176718179760666332457275161126932969171721769905336793131685457274497840835402500238476387293622028549184927625592073910082414970503637087243617258781289309742619880766860874673683066379927766543493572941686202325517943652229962122699036368250179752185684827785514057574948344706714049727768756187533682668828882020398988589649262502976768858445143059241890413683634403193145662523641576609517938122192681863209009724379713997870227482405575087675202411196232435935193157218960887569448184314158852247007197397860423131671526517948815471101807682394111254537897308120561172226357728063840605126001041316046431012004742556986834956342681931651756595326368817648409598475772934260633499454728022806209814016408214072793642006432292950793465147424142879836514201370328734677591657101211450630809835978996700896730724492770693575569439116643488562328591914998436697988617304917143154100667954424214877561349216950310441098968406373809984818508143222431030400425716342727885208398140630146246660275984669505262905222089098973196078136468653904366611183100502231283831798229910653203664773208013008459350542040884146170995314331767181617537663932063096866978997088843882326561280763023349334016668559535283327879163578120242500650213667405634643214457690655217722894882687664130435709008603017896408835065442258676574547280223590259024103098221682191166729195091177125988796602887463254495630346736450975738510799639602484571958438266049037970001938496562964043227073159210183752749553526039551101572986591098154385668960627289543884235405104726929137464927117848374355568095435214096857613862216908889319641189509164420243843928862622276292480951746068975953345982336696972661155396679012325677989123726033203173589706800419877478248244897120498352201078902046232847616420223640093407127672704944442352764510688979819429919239074208718509581691010736775413708945879130235570109253877358952662550246179688019928626314116461399555882988562415179939388067444941202745456219104355757258354877662405359828304976583536732381541745423822204635372049025341466653822967187321345813440991674095168912683900523211061873276495633412345081969268049036704392731982058685685100654517226395266814264775736313821700318981830732861572579644220980507983690590952219300936736073984568089639780515199044760533195838229899770952569676545895515487525433744972888031218970612881185335870091041026849665924317156993719477906214662065460950981238991821136737826537713866161871882663145667438485865733780530373125437593899047257293243700258414530231577155883014681849599615051684805403136538822353687901906276896250084798455874642684053525230232237940206442857902445735243512083104804417695293997901862196858632337867802872892405491335079158717697470310454331163773621102773980680672087231296395024399464110173743364649688853145442270129477108927031692652823441413863881092990251705676639906468211581431545629893580286673347117638567361465017174623605302860304914096882878792572767560432860826120402677745723197123346088320267644148232901099223751690232455394803110839343306682198212025309334251164298228939621957452009218584079745685537983939638567459327196863791586069068914411703416349990733849184378118245566967327881628404385277022504639140065346457333081216071192235248351270412509734115705946795038518989095031364418435263209822258787215137519303583746534542684070644315837314137833687771094820030732469223369576936916855423837169034720879993235590598824995633525286619821480891040825883322120831159536859167537983436276306251394616035520204638997051997285112082370166829914880556258249251423028681394507443833771526805990647451507138626525616802175707586436321616497252202163259051012654208346411030651463592536291296761569305797635620181223441533540242165296788785186117890880965463917523088240533670492723828053523266389144775570098066294570321395239566769718305875149782235289502252701151936625206537429224826225795649615538549854881192654801848093240237291715115899861577181054631690040231901431861491833484076863056833715274708122379774100571229228207507581520128752921908576045443903822573053453892206759178977596734186892622926263964167391757523279887911610884223237403976720193258403738370407785995883680440288475282408770720523405470619624073209092542523282747859418391652470130633974398269997124557946535670740373621819445459333096607218621704138113224897388545326332649409056721930792646202182122314975748263290423247293639622352934098997014893484811273135593648942909514873058362372397284883217461685027290002604549682979838646697481372044090471657977539718302262615898156667680421327779481049684028756735524839085031307400972249981968632165044946212849305774346590171504963811594812980945664623754062342871375471374287453704186131345644711570009447348585400176490994638785493828184365658191661477439823820080990001346877365172813710488338163384461893575552379992311667019673216552559995401734338586971915911413500982591614184131481670304941911440091710620316948612001895690072965304890670252781177219289603567177781682443268572864759367862274704508358958245012336546742646707943116662705210883740274300820732098138178378216707793733863167177116986212709461649029816819236340982916935980313182254701878140685345484794576379842516276570019991619440066764833671128205215331060563600218160520995221252468721285725875722266878502321380012097963534102178882663196384076860724074937562160665589337730867711124123305744087395031134924711598261650512117270252295789561316155883625066065353787318270690243209168495201589683324358746080011359724872201769093121985210623559895192171709352648722699570973898879189735361392265468995807799830255538875020986662570882249846259121748290164390496975038086122242659648275234972388667304549021103831131131926579845229003005511244971594015101197403585202209613081943521990501712388142534059738372745313096102381957102680932331501637894601228056535430514399365399093048596896288584457505078564421033878839778442674028155101009131000079255744467899969949460113607418044636639205657586741494268676437023559137076650453843253081384102059710465677453987760935220971612305280648412560966229208933307759719869203387366299226665741901725432296519348727532561242980458757426599495455684230756158081936440790927953945576808113065694035813247034083841035911684026729928309223256971141902255438565953440209413418174145536063203268167886617316148205310594506821481468915385933531452670106690136151949339961154326175856777116247277707077725012902506728468302071053595767847531874543359332422694727169945656753283591089840270640240489791333330685778442124547101070767008626066358308919180188737752363682894701776829757657391058751120864206337947567822479509067023910083954133986172138488361039423832757512882201707561166990805429697474493603996133673311169916609700227872267870549729632027168718311701422380434396383141567075784860188918962675027224989553258805067535680288664776690735940132767972357133067376514329418114715692578966162347462254083536010783272055840358713662152032448428215533187319956228272110352759121601692080795214234396911219328561377736019480112669036711224056021959898556069039839361622801752000590964812713689589448707775760518939231308551944637107923372542290535519980519013124566706321937033261550415928765688614218582269992068721107764301612190387114052359194212080201347055944584603377434310003659412009393092765051192470430081259024297662083130196287604359242551192842542000748204046144346409715359979543015145938421218575395349471386931746486736360684152154538370748857759906167975648117700527156431252927831916908610947345313334765995765904764854538308728547028396600334504916049999404507158899095993803120151685330213718124174704357734440708791645657764266881044745713293751584684724703697616896894384110058053722940175358907002625708712303324512383389785201496178811753679298008130269868418278475583231757060204122091260474655941768822925317009236690660468902366282968171768449636730205282578761032340781075244404460661645353534641379486717142953340795469211341289873168360999754035910855792554220532234677024753552611967781768782777622721247886587992598128812965325584379330462331748666307825002259758232389365606403994315409003395921922955078544716339124943233295894285227717380277252418841650092198603476540358134734456058703330319999038510403089492007688827273292954899245249978238658038511731087263235694445316088247123896070906860267484733312168656790989114712420811696202334032046848183362083890786376508707774894653895525740568065531576324213914346868486668372677054084136360072748853936331994973246548765289934610061799725890250958717961726373648377907536686025265455251554406534715997489339255500585575090771185405087003743831557215630399708612082738906739826915075052034105358826139976289839118757305963618811665541301541423954907847154246801539614195957807609124617845393262253463334190636307639964234482047133333713664088156475850019409643595339249644220063961497237312007726769762821753155379699814113411186433578745955642242258854903772699121164310601957287392263736007505699088526765525868518760663195726065933018399381268704729894418172072466299955748441479753941418933662138957922983263296697506209035862851077704586695557742281794894789818717940041002615767025144310761567955095238110052702025567475383125513388511503618499467794499725191989668580944525322387709738954599366212955350654789348763683783330633014935967173008863423685737421169809176236448623311571894509750942486742972781466138066292089041174724376525876744142702524518828460553618750688017401333752742830054842859218870265142712609774746253428393488344436074588473969056890063166381334916326463958467756919629994494383464453975714615753562091969547753388503551072386708743972682407880015260971861155991937460068911446291951610507304358417744634158415522903767359814856208667158039197781805376623418907522169768835224610732841769655300760196289557315467758690467753902342245822425726367735157487984976756735702926544574918073070225192979958741672909069013947646878022390654613397494144224197252528788156666312155338940446878333490171656979227865093201207262595122933756491377815059914481755747493808518722615209715046468279470341069862008678180574111054603094361652209095345365984768460325132817794764217604647418739237978760317174223176489507309793720453792568999025339597754642067043822877637334703653386968058285062853509477454008705678402384144113445386239536603065631527576574869932001074558327324247910312030690225835219430892912561538761789397927867915492769703293355960344131035425383517923329621561635226645504288434669389471519335973246704119998705127886033625952628320004954695250012990211324954451578501961417237005633065678579502329543631298300067349533412286139472560674351640190288703919894976416570671982481259473928454706945527878955892578891993141083860808917981227472566929972915206670747715126615998592390818773115325275427963353813514511916039581717390993327625336187768646032880168954394542877916040770168667166001989214703047718110083551033851631350580721957660425203850200012693165037903283851135232964499099088299520972876921796446363762640478040942813625304724536313722318776011373013258675703004838017475024475477380712041146535919138423689833695272451336412914508979130298119199772137859404341668414043759716453254587876876866876033042829143519489272069111588827445971290171455672169859180667666419295652611661947085678754980429683732143247464297600351836713295525433653686838527222326211721434946347065746088480008556541811794349269132299313988866432511687096165557536241364582956157198270202731161050951737315290519290716449162728938839453406297653595106074053202490739669014486177425204433015636839559344490179109125786149843779300305236423057599995730460834773312688489558782426001263753926673722446163574217101861194845269991657615341576047089572340409362040242713611898417553885492983169709584233119221088932614661120813607606877901250678004863508364229364821158925409255431691541341822187980240026081781778579232841033895742319262260480911205032808691571754913034355633511796765671807225889878508340620303851739045425543506928795478151453968894943797009218613923691926935481947874959385298586037785423231662104437418817421859517209361327138794811459674730805105569983726353611200185138222205102425763852269150747196594317829346819433988686625021014507289418179950759831106027218957030512577765730747752782752749513827951358061904682511019324675160306246141044396833470957448656125178976435849252152291951993059596882208093750358072612673086856349526788051322673277107144174102418092009871310391201780329186161685803144267810877448971357704565306644788124401089170819916325549985536440275420041941696100614332919147244327169938871179564185591444122067319628105864965407711710958647920753185170833652612280294652809982626642753532086366546794295502898853131741757441031648354695319986241840711029729626428672907814463130072040505721085374848867532167289532145717410865209301046779316630825359502792877403743082171406012983207311280527771721350985005178543313176684583368797866702672255559224847740948132871984025723727173640733578468740520087772330214688288695696848417636240182388988046934456154114170206705466788082431765348412379650798631022856448139758381768208099027811847645485046477402279075488337536871953486223645136919983549230359284008242306568994275490757686373064353080487226144223964260547067212061309530788597804410800696659384776451136320022186622392955196316378389149467031514151970604671030618819212413120820764632398977197262466029324062436826043555741718354766536019882467809754480586145690316246877043327048203925227490824196558050587933392299646617303922911426023537738382454426069688863597814008276462743286116503580410634518302760073127302765901351456577524114396475102350550924092743133999170525537974276260614010290769497608541258957571261861452276710767579990382514114060998125028043183912732408502265754299854068695923613888875637007195668257359580943745325809657141736215882822485916303687131563943146342166065894581321095276135897121596372907874762301575731765543283146991348647202712600961724219909968278794646940959827081165310564309716412685226414276753937915667007095222433748708224313029333318572896369009829833173445415016923614887581475935870484285791985048375536178491574967126776963379344494703564650810669089385578717759632552022229168331461808856358294122415628702364159947269393108054620653662998527523672328309717252413506306860122879638358082941747260847594018322418703588300921967407183475425465667743319337852030319193525402316903464222756289808611443910686623734809823027564905699158981232063621798952986029577020831892332571700192813160421243297513823253122530340506131478017878458863403594182958022249880307684182813422289862105646431686508021224638051665835684192600541786522441569145795716437898753715808767037777448245819004889809715946230878321994962092633827638698688766370393174181100004647984723770969315587166966519113532262963624587732045003378536499315312348692846519604748132146400983496289088591977679627213728821108905302570482549151074861335044004884084195265013662992352869862169990133254149408474622915447407535526310171054728711076587125107405158112683708370832108766852867422601629407362567318907194294976385862537768487292629367733341935996053380965572419991515177938613627395884987300076879890478991852674568028139253408148961030965365345621612413353358402967145686913242572212742451842962060346169740593362600671480194665827405686159005464427159759540547421827253138192794888166543238854339550678387618753432663372358574472165571181962264040447684426488114100136560863358512763323641350934826275168888293846681452542703826889097246301918398098233389783896533508550957163085308684025274564664581594137375755995852666300773240913852159785550504261073128087699297773927552511581252011572025133156476163298515828193677226723188616264021174664112588433534541857794808249458559748704146133773611996436737823423283960727346535491647020081209993220314914055833641629092034394225236442193036358513056113964881177552290161665071231121252466103300271421191512954848075577066533227366439866993364762507723236700789587771754484297287972284579759030422514717384216144645465166352721555709866922304044958986772621716845140238590715956565505757916628535591443907147199595021072935079565169755941539432504524454744781862032628226563841405732641550408723641599749821652387001773780459782097229756553850962819681495143178355398182733404184314630562233911053417820488853535032257613401434809862757542270449473562761424521040708553670998619372266977351694990803570469135722382453454037743926858104307411589551796167224687916899109905027671335767297181253900105045472795953185952155026459929751182096698655165918616379668775815644418842685869727363651254741860830416994724064000404443727392561942914880339071319897305447820799338485139779310639670723460333605928790070273837217128362071011803677910801388765718686059809862581657465965603508572601866454888907086879425298456484087857736312330948379325447361090834372721250265821582696125559667629909176229112898722903884957620289624959009648740301892783740259712160578249343247246468508671887862333823933749342458796434807154864524350174459440665990517880840194427642242932493293099827670235993928295814619472045667097937949235967761539090645363847818060079765700444346161876001976336373991996540587048446937734305209514593809538293995908057726812260863961381289677544333036756705474201311836431521844270494947154534388199114830774613880156532614194412245699737501016707833418998140944241309093317781714032542697282003720318141313542828434658600218342038840037526511242067757322840430201883858593058816233096687915002409095837960900381088765633187065980011360593667145047817697947497762755798878576794819412236344925738397491588806435248157072518319135954027189593489421305032928646243195347803228022916764389558750365855698004623787479752482755566788291499003725038323561756138453323811014249538904034050483302764820740539125647878767380751887544792354429994347849798135931887170201724830650294775322726635474424018949640920656426535528072246504379707481211474662485480742966611621116712914050614887125320271236067975210537238566648842369246043593580274481906002278793997437728320344057646526594922742453112375675770360248458791173520609751732214320066367974403143250369651730230011862882607444812955580228523751883014666006016595606581903799434249779987730704711580547316270658695342985160839622313701054147201462094861142786245343959547147100525727854091728023850783416100855593603523243921277747824081860925714130602337102718842572020042048119427007493314720900683793924808714215670058577381270993963197930599354086174635021409422783705689161256293255826871163679378639488869340989712318115682286723682059287893838687486979891266820589664160654290730611316270753166776687780647601813105607856665082849559046467302563799624360323892916324144223240194759599793520952889912730323516917355858483438048425809127506492982917434608440006801067174294475308149744092752049264645293195600628531392543424992366216824348774364563651766976290822000045326570874965292151685923800570196450087027088261079263005742516440090929564520642438463797388890156636511042108292685986595570557095511391918004946876730390301312116893250211260718396287165211833569433070894464674020533677868207265717778941089650650359448674971212695231685088999558626593862321749664053409822318707787581470233362062270199830213118216772929435819752625765916015856659317296496669656038812886605348380946367352676787813430743525785144048000806238579976265203953004838917367027107324415372078517363749918482009418519790847983113002744405957314011185690571390274891722226209877732633871714893422953201964828421204767224216575887063250136837886990132018914980317527039228720254549647330888229919242834649499900150603139271955114099369788650881515822109302153849128619919767869382435157980882578792763815161253095000164565269468102201194982804621111363573634095580307947303697491293756626462335029050119781904128222034323781233312451528337229898533560201939487059013264715740688898890449645765674228632690521994857122043279918395446899634307687262002841213575076981054006264018989005975510692272984798689265959268942074701300180464727384348942005077346876924478307441350367811839081914615050449299739079313380951333252016321121383577857320449558036125650211826965165250536248130900095753438362042947746297137919400693191462770238919010670848476939790223455053531928795521735743621621024395782919629925625368703172527538816253226190764579921268925847601336824055481324963420259070720747159773597279699588804420039727710946251223034175204367224420633149031108671502285568389847064206887982306292650242806623607936923095947128164543601481974665259517793131810669508682074995425050685914494502067879411110149088390379824531058862721136485903851456329478951360299983490751898509585895795681734199679865818880967121014680685237406548067745596890525587158588803720772656491247354238127006071101762171640796505060738203587153319367689571885757892053290790364105876428348028173084571783028695273113653329337148470213348887242452681134299304324649057553734183251662908799571161221624546970684447307722827323329190641379756970821829791345640043522159083450637239880613395465107953762377183744711539104572502604452435210012022138480357190230995830492216959540390648443295302220153563530571880048596641117728271133925671708313121965920831870160300886518802917446250346365676226725408669433858929142158437747654729033639743600329810183727990877050224727530606058236456509292102772525294640995129667076953520331888949620459626856641195871367536166561716159425037560779804436211439486104716887246878335947378147831074578262928986740693584323494139115452820850642353541270914129397084160428056628588517013964629639145399439250785133727022643562944138054246129656945031749152912237396765924080806393778387263990876911386651521088575556269824488854395819635614353813826969598839651944059682366565554599928440483591504849585464161590075441642605756904222669202485475397068232721174354744035799563784851812923599278713128787830415206735827303207096421012893594473900321260859113274883835673401469384321178171531909925027953339061504302852700691189720069704832175125767677837271233193810625624819600668209510942968939742378630217550119025006184700474341852080048474925939236698423960008174677966014039251264859030097058934105245000272517051021098393000197980546523123408153117739316307098909458127648423308774433711324224402044096480887716269900261464935499016539339764681692977246972055028700764219403296848131280510664130991202378841902128406058774153880465942674831232936474631236772738635667431312818309659091578040311550814409556347130594045632636050199574508336797033893688133470216911328729609599813344473358143372294293714736796735307415858332459548671434443817434609182658374057451751255434268353949014225366552851877363779797844396218470710069018254629047185506743993212325522044854410372806746727651565240868951886932999825220706078318601545050865121432771420645939911658117656334427561756334934216758377875916343371142464486984392173019434142265439708779809063371477143859288653085708511869377170586333170618322171741549846075333419254376234420632154019478808473352614871540099721829608751175560529864471590879428552320990189633136896058056086460205311091433496528646565135493870223225700573196466713466028534315406748550440170392780769520559211459264001761185228009685501487220972301964601475625931176402276596404589176963253705862684626888708517624139126842375741984128134619624324863220549522350586314744353301133641736154692959329119599509599033497244755001288455617518326326425077689330526677515081822992783724225632795670814089365374436272976811737959141674373164593031933327517537260728506343959144024969549908587867756662781369788604119383045453025659379811489926174223685847912334268653622828247375667958293699184214046479978209067454789164784361807961684851484799102656882279197479881348828080399412787627246537368071235002400930551189510966746191120853197052585806003744460415113730565504365412104226286962562887633115411824621856792886107724575752878099396050107366170384078123304174173704985922943806654056967759230596194258728008833683399977196201183543050495057546942400433485721111805390346311988270975812007384697470726893717793103690637803999835078431320464757390781423980458119182034638036354805485887258672075286646827744277008260055055493220981225905320504404243783632567859782677793725579847005578770233976858673179355330935102101071199452915371246024063025668179397488052749079893217816234722057841745578788589842820269680971112004323765546879250971814047245000617783476199402564512176068960900988017799341922615058694014227208108023468913937951747389119652008744399657591501203013686819516138681334512450301227661643307171650135771486712316645420903181017132150667095518871222152868127833977238963341722214853677352762214397071954501977989493522357993090512842423436097410464860176705232591036424353302953425734690282323065751399224138813543785448884960175364404474355480170984192618752704369547933517995245045249981893824505175851308937141124847255046369405055658849267004047870717556572865175556724471375546723745124443078864209874924470282875870606175577294148873730931873727872859877412537376498298267146583684282591570383279037322486130744487647476069176414155803489520688969412368180029773180730260079567983646675709832748029864481498602277841222072207661754795846309823560980530089443506199181930478749659210830659291941014908288745723169818883565382013494306518963297789124721031350058342686997366181167065547355980144701330145997840071731275582014525434423116823915775548412450867191730514238905608026838628810813840604770689334845798806138900313568447744103409411367511920066578220057957542348180380952068446664692806681026783717700103858201120909726696911793919943055404405588400587728669469366730663118257786891264885763001410318374885634886710674437843446323772608261465401056142365834742737616360118129922985049417305921626844269164190100560178928631452087192521082135201326497980593729985560197247254254293640843811647242592338512017596240086601775105359963222689158432816856716142314335457226787847744396214761417611684500328137844733087406232132620325797341426686890801506992311230028018373089015283674888424188323564315994667450646595368874705597013932971745656760050277172392107061847957919094341897549404413992894677866288880091940368899395654884978067865884953633148096844311674239193937273200611092405471562644969000347757846864000423061340713442155954835763525529421632544440598647923331039220846504047194489068522955959028406132850162301533267886236706471394708840389532192199784818419330103952215463067038819551173376896423852249595269335964068132874188389866614211163053955311624262798788249180643800975800710508236985593074330954321514687097702089497326102281321913877796453948510752591798223905929179729232047118752874590932082176525489005673917010425763597474514728075460888105587516860043257620050403679424451381035788169533436495040417298558621603311639713712123928459046752193052285913725535410258130608170251341771420467205727717634921659078746124436996521280009375950459824404399954374344378607035322370645679741401663796557465949013193817194372797497853094450424961698571684774530134083517739042937850527849529343060010605361861367968814582754788193124671253602425125959659534477184404394217233702907201595599605226086749167036637078071077760067812921375343146471911578038534626332314955010882219433317943155781297289325228663980672111161867813882884802744346585954500559235382462202157343472759292917202587032057057772517485771275586767834165254000451236866482062927879931929426654961990623769532017310452064066824990211559903255934893024814918596156369458383314115472442862752950889966726798683335562602084758050229582242846297051427768283949384771942083800374551225906696804240936558013996139638209024766628352682679284763404145249251280969633931357896848424854933764052981628415686769202982003298465855804669164172252790712121114621813012587150147868918768758304993995084882451975045488135455522303982084071812378173159679123685021574361395306405009906870060848275632284138333049032032000967831200479766718492749226145674061080595429368875031589698937658410231990020037754688668282658751826929808080647192422693190398038169537359608401889349331578557591191934673137172666602894633786793326679043979098664951646877424889758814090731574593773386033530032593500878874989545368476106941897956294005033455827178608885581156108975527682614139373754360356920127704556396235126292845191277826145818228476296292738394635719371895855108206831153973685246168496412552105364396414653154642620036029490661500133640766779702416331225855096809315558566768340056087277137523454272723875910250401461639691524078996746868521422433516974383799430136186064776238887426459460393301923234579618223522602114083629595198098294897626527708765820938213211974850029425826425292975979786810883358242222927576053821476878847587638752565509324439454135222039842325305518159349810771042497619515664622735283096512985407811008808674610267461958506210711897418484450576601816153120361363672250007586446240395174267835222961042160443076868707252417875055749142276027098687050493876531317646508194285650608176780179256910528281005957441013913301941280705857193341722506602312577326029614865459350027774804043877110558875594789737476962267681739447869033114133726291218837303725622222119368361464247067659151830945625994991709265004316304102780344402128275353247784744172539897395680099134765427952804822588239931368347455532821133847232391498451352155083370939998144085714890951008571244621605976256866671953037440628783136954792302310455730471410296565656828488323628065962726611825161522030454186672233220653444413109933475622456064089404113909457803515789453419653935503877912494853852348094595741234498752130878076599117123383180621286187733824733068040308840814584226708462479760739362666396894069077031781439782562639582796665280838119721206626914237710204438934603424946040005983977004661684027247861012837269896703589311753634621643611226609690201877313400799739559322273380829360367446949388900163556949814881865087609443694917656165746185264148403416439040867493829935949335619176878379706908935950231821699269495572309799365102062739355067235849538897593216245923759828236867448906223897251395471180770096552563797706423605240872376693263804257505071705330925007339067218953387489036453273036799425945143892450093721088353021518676468464018260955340471707205833730054961253557673711743015386044180668838683965679349038883493907279924589639246476736025527555482659664235989978159101428921684448779896369604139077742190351237165383187217214123980189118909791051654407478516338097853886954705838892993193927233642410740038257081998735401164658211621849052503829069157243506954992619004477269127863347246544594179340013771407254096438505078129833138604004441851727225389710190443033604594172628803207076718936553574472419596032437279865043076852601015544605729019085831055774520964239531036325226235212202574658451843511772635221701892981948684929634295762432602235190353671025294464623808763602793462339869547115151801523538972080799879703042151173611472050317797249951908688443879261256512780002902535479148497512652351347174376810747423045761947771682654263140655412162523358704764718989756090113286473784697857899946279050130315000515452780941843710887746010948825303672424365963456114834950676361570985365763134333959807235486366121294944033705844197912971253247486375394992016362160816995134130021747695392191261543813137709209456945423354967793346231015671905218563138477073117541457817507686614142533352355982364602616598479132126217109324811932075304887691896666539862237852818173726938908093671251901217029653857590675168457386399810727292446661213438311006819026956185328152890484013386447668541137483249234214722854550204317875789069735624042098460568313440033823815773682697208084182205051782221377093437748696720962691898764357483485208936261569913769964866390233221371351620771995772434686089544919436713485309693400305183968447026511724707841819043785288736202803361273559872671009639869887550900000311179367217096169003305093026773014351785200004203256876677566205242683125297307248940556308291356096384483805100763837089000016087443975400497914120407402557139833734712190289442945526318128823715535818518027821325648021410992322304681081697347312500087577768263693506709165004861563505099003804860905689605452603209693433190073899139094435831927101674361771596278280604942210646707576641249721727333416872082620656300963671390705923137034208287542956684579736911888817889596111069559250344985698243641303977827722725999326653631608200746481743136746530088153261683950868655990935151738196252309929950256344052846316829331229379277027217271584724952577487445812996164425091445075546543549650897356877785028188480584865341511664973035573771211484755932673680673075023435169927727214980940943225424040708556435321563246817601611877373487480681464256268792395166017281717958233796849238869060931537138200345422065918884440009641983185009366360240181188468169350295952775635031223433043963115607547232281238654073029445462545415563074670017684704630002424096672271969202047640545374108918424969272174934524589000559550829276303560000288442290880400257830195538405921102769988628731313308293359353341493102188043910443562505718586059212919979683856422913476608144070837141799768867047766593952629452458395652131683749970387537043290648823125116631522665299339744163184738802809605354883976331763093849210160004858768418354061796447731759857616570767838888328402185057005010388663262081408930863660615888825765080758798449292490465643343766830374989812264363989079252952900079430179610636205325666130414949148507521390201865199246722957089234929560282471098009903667564771941206219093758110239302694026676786408746310217840352504446914388389579472517766974296824913147556277782686287364888710846655611094083646319292013954837869047806696695518566994714096313628677779360809225152907667916745953296521003858373368876562675525170310781721010674438778732716763502193042692466388540764188244745611177756051468110155118148364837684117072031197497216277109734433042985241735119195539193714764448789301464768583051134043849446391053183132085404253873550693196383902138263388397036116212720735727472983867247044790012972818273557397914596485580390132937819407856626191595032918038195527610103554699460417820866146408009127271888121113696751670897456670191544796943206411438645612083247483228772221646889079159395675866070243028998332341883832833424017563847053322809439662902051998156333252525912834657230544416263538152111504331160871412178434838863693376023058565505188119002736127930444183207849853089312434102572644268887613247274360002525178056348723870285414385491017575075792414076439952819133239504879740742867825067876873942523456524134508132949743563589490342195305206511671465570004159251020976180563892721452982535839843660141820221531255851744082919022434448320574581252976032329060251440850777105107860601002901579673799955982756836926817535980893744615736213184103238851114619490041148967378647971403447908339397359804398720405437834919037705343703284065498551990837147367639976016815791918679310326781230244687154789956088880950882339520320556613840718004327771817908267792864001507919234500040421517480109402511416767432876188871950022279765857438870035639840284677641380248881594216790563243542659245284737553286003771064674797215759726164615961064954044362968011534558552003715650335159156621256045105760706104505056445375337352195227127749839349614267606306923357724683998297260803086361602810471990556515349142624800444043994287807629101523472254259383391212016577425409919072558883401580367649032016904410228120289405242621855395098672803566968793149646568266698581167244047666688482057839409009218362300897706857353508846573286711049168790282460162027786663637988123146502325955856157194990447917225226466030859344949017222137323263570017594593775794008183592315304911324188889206982704251443882842510583020224598730069744967082079878693282010643193389198516059673611695099069720400951743313403895105442282867250427627727280213567992617794948755120991814554015546940651559836499767737316061803128036485147182088660231078519770391228483482594299658193963056817386335592836981054213995847332788811715282058709626298164704243966816284336964534098980631950683266084025694056855202802582859436831962903457794655486331434480854905811804169043870775572095167057045470922032490780914777046642944246369868440563558087635013559465674123206385226480640639537892749896206813606653036647194136127466176175303675092313055055556389268602002089661324136758281758327952048477011511908270252265946226919291282094811991508514282138707032637792564264327790457639472677295109051911112591287660988642195487482163892558876050646639894681039369015871575914817470017271030548447592535595406546478373915600325665049902704165141654325249272836622395273022034066654693053088354385960895665232518943121345281689311037573711880118269514665498403047310944921765897554039994299989576886433887996829771781205769518572482794012075137844575062672099393177229187890638579755099936855411115389252036924977050700810890333654080992919993346492023082156616711193439994890635179321199911356465479151740938222912196625320810796800751689952659768623753144619813355392724138731092376786093985227716557095609014283084353309816086235770261224158283094527097252924889204153926671029117052713548322619303106395535312377117742930033074729540014480708285517590066642652337592564820037292163911894485908287696293887675774040437306828951348213275028231850195109846269234130739467061923678278918753596583706057498519733215691053899528704959267189990690320061061024665811192212496726567009611790239642448083695139539735232618047063897058181058240496110520452693522936210133586494649161690826834230822030118272441598438090481127213826939676258097348551925193076719230593937195743100724166739997395936742597231206346148028159560880979086154728460956921967412758485598829508711302972679630376943455554137970433368309795756501912453394525657737458565713948836247042739953558809417177471512733715426694894655706957245504211508508747695651627718824745611594983816796324923179786621224254806973686919214795457541289801419836153667138912284597243599248032936137545061228346380464302366328559943453239242855169847014925933998149242634949218226456138448512621865186037282622174222227408549851064598307603135960093547739625382982042998887816085649634271328221975670436977476927099168345903736884709384889709661340368169013166197261985932848562316019128378727095985090270282586535019494923069981227667960301536873676217966455061736828285852548112499833716877937976276988999775186024412942154141764548524310299716368933002035522525341070562611365437200390498609198503258214246532633886234963186102359279358431634663334327925998916948869689599533769110075355840169638549008476564170084047176924280995200715923306202576814483727227089663090236383288796577516813797525691580479053859234715133168998878123803943577517142919503462488200427503429673707767398145466986680451215274316343268505206994126193195168738981239162707518001599736383124725385387396819890475361423465552772715278923907089193500744834581508108414205711377696035200509980057082519207178590820368303674248789073803530069416707514254080075655999636798527818876073438120356094369645036611639193249439246063337519091511203603151528023386144013391139767485482534579116724443612130497881000447990981370278571711468832999802554625184949724088779806949972416090810146575707593022074514497147020558624479440646347193512366389395225825006244461773809628149332533124509296223216892992285624086626527674936165719394725225588249123268794584233433985478279111031902650432759565452426974342558024433903362298743540695305749013572900436817873746154686965292578607322660172649072356781772902695319903568012917620011454093438147569379996803592724479382558823242378423684711475861849819262498368265773016368558394639687714107494213546480126650646538492802274361624462200470971903384909653911010148639361516046997489792761612880340073613291197485764671805367400968875702899146152440118158210930383904625366461982353170337121451807876044984234749245407376069036717983775916299127203668395313057750979397712910623405112048994283984723837631621616404215190756876663819843033775813157541554289566224381038024895060530888284313975832317911870448761308562118678864818978327496335250325396378065932790408000787082711557313136664340209747203951707311662717717457075507540877104170294870455028124390410282961815784661422854810181877135591280589793682621622404194366679583450219198348020898198569041531390932570211629370216453233906193074669827289048068268416189055681736706289433782961501458550546645859971438835151850131414644817476302657559964246888365756144018185507386128178335919876860456174387289194905752695412393953511821806347756462278543898661534345718906779464973483876178107769755097630526656620695975681070158511877855376688311527849562245052989113934660816473738405989423097964341189956154890892612594335147074749013660257673106146093260152159976628812935450038845897551957031501718480940367569444507236327339485582660279591002354398804591797443263042165385470727659997106521561991511454574590917723430868592611558087462006005654505792758595855085910330448046120914342093401516691216840464953089603361164296978193601537863023300883338237928362563659312725940371129134768102373886266657508796739709780439885830714547823079406797238821665074027540171098537980482267854633527147924096015197582881187206439090169909621731901716008615047095915079554421243926506595649564740089316687492415382316169423376049499377775004692559368546973784274945227432924836908420724069529884949496418410204539770049246044724245882706271074280201051568674165928239117982469722071225106274004778249973455074553023434437110327339688454406008529678845728454379810003339477177999316557451730186327403439250521566746946034358245108528600634121776255641594313035404777108497245748369146935388216067227176935749249916027011609235612891749901833525494663196759115135912208562985107092158054399149826336553224302665402826667607084527256309885963244302797869858822206478641365517304053767381253766736128048519603251264599160755711196919226823259211850500922290136549448875038682491356210199756133753298604374019149664588241533885979211017860300524514531013317308426435369947628318509014911905081687762186361065755954292988697448833086972406772845628465540934802829833983614598921972669110586498807761558628389839334392839722033981975200791890344304989565639856166582228399573989469313440406942300849083330235320008044685673858972997259320479970886493012857178750146491763982828133427392037186908199116531997032500839968701916605709050902454100215274444158156314360581744389846720227508858486343725521495762766019602472017128976476534799228526348181400751512586526565004897141789923837703200118063957456246332493543408630803898995133884523080175322376848825090643953537942116031588865276805042191812734586919889201309536088645477291646706216642277508558530634783146425718134773267730027902962907938086438824578896974288422193119413160117273895305099199634566452896351434024172077890936156135038211253983698715003463255417935005248914621082362510712243306585293851957488568643693276480441084617344586458508789419103390425759826845377668337230947330391440554391012074269895970643665396970001593640045656723164384484978666094985275590894151447982029542226843341616047762081511465254012263856566336549958929043693317624776101228858181717051155308276206269814825603793197681304154457422877975619368926935677737485430684976100988341833030164746915300002721715467601189839184744256107441977896636699267345865577781354562828508930965154186159608731658559531037084679130933726800939004757363542976906704142618775040019610110135492405590796697299697579407492846529098806015432764745170775262981678658551497432391815773572994905839956005989932314814310711689348572093502898150028506873776010410029737370506410056068246550929555727652946065144896286314425710704906714168014600789091497638223947293257434855291306927224556675551486731131305506810523159594070296114499037891663243499943979242456373456144306292590801086405532149682550373619923719543534069494342409494363102614238091414387837967153773480797164498908430011796120798113035175414298520799518959680129727147807072566745162456690705136609172070360504530996260418168508903446916561265415200820084433193217784925251655002115257682786143511184291603352591617871230319906027303309219158793271083164493578949426632481685525397489745210420759322080632595155646760453984536551647421600198541059893179572130517721347885616233111695711447104573005623959544355337947358143271561222402397322283711653677494900302550516708252883037563858980772075894854870260012448329971617984796550640400677083965418861210494208050055599687320981992885401369200972414306076899351988765941334602164096977248631476779993830317521179303692493371663103603659500872042814476450549497659466267393504146392138215972277202322510864940077569745355351423295661499004449884274916159633640327389194068014337542464755881207263488679765416326364927528162341444738310550945541514649975821184120131986516202221294473295379021069148730262764345528230113777317965403397439735148614634519610809453571873366523241782719686901474680349787012349860287102515077928702537450346229544501595544895580901316164564463471478924503310554309420942887596874317659180973720459360631707351484687304962551670138510893215284451664621643255971957881338951873614574154790247883141499360614080253936506971351645939707994123520867672277663609455904930515586873175990423950746064557418157545687294963269188513427293305967180181399127257757900229322119800158219901896893447777688663827054135698291806988037353916900629527397474192669195282819405144599916447198907571770773655639478880894106436759537127702973214876500504408356394428792236110629529783497260424028742459221891332913285853049015444015071716688823286929352366895748892723815268650075761405696841415326461859722866702332243709600869209819450858654679379019984202858937101655830422290106981142525205455420986117781823543480808901750752624026426745206135565199735550033736812930225074188555732136153704150267171497316398803382298466467730599677363588350153155026310826278132902896168435234100668368994855981663069573288675035022364861822678586308080712165210981318425206504499680934189247154486414414968139708748483436918088850512935884215790088373650207780668779796275379403604151625932093602053237196789617075583154129175683342924510374482226637289043957629483764952601066423274578943722961974896828784831814140277864350423750327866526765844709310096975737985828599247323954219342756151631658344265200705492435816264834306152033858808976785270200981535460912635155619376177146313085243931262286494932601879511794362544990415953049316921644616777237795217873975596556649098654992637560176761833832655793553165016877859458472584372375063136179355167502366845090519352021789711952552100324502290254326830557241283603347611343380545236375590967890313207867883677997845212015223824700630961566264784028333163112505911537744508976730274891456640617625775234159105920384186483954422362335190373969552779873376716844485707962170060132349298898372724091171759396429826220879453135149475403122486863167883083544624504894536076473183588438721308273938745639466288584661384948554471688883539677291849000040155462869245553476478117242980264809486483737530062469347719175451466656927827867559609001394238618290020930951929184077839711324535462559484437336179862952167883170585895661667974247743474669920070418272297925758441670518633078836385097179104658513873191532026336546707838392030365242989403923298977345741790766547099801759242197436465874022964442602856485902096849385586755410373857986172065684441940440157144320384072606334741511060064434512914391809991580211449936713378620992739083237314963858940054653092459920899389501341499136628375482160867351877267942567379679122021933222159810133195464259596192281801190115485360540974476822092431193396290973300581239836117242627922425878545382495572591863352115645095265647785146779100942300704959451265414777454674743163460266134642412790320576073728339301306101206819147191635128994499085912250414622150208464019225864740508390833001403685092794063274356371844448593094716626336313682743741787588378909254003783608832819877995563871134796684941805055603422192086931622735937497244834958496626225395165385209186651846948121636322379998328752925940404311683130336316270706000205166794174095852625992885924003358252268138709470616410012539149934840765164040237631857191544100049694321325426594334178085777543233159911489955119131357080386693147985291608708434815193697602373840341135744328839977214803142098169507722395138664535868821011611653115742888804701829628505316238565259856380621037530422157716781817881763905737510861870941370920216675039769488188640624432060298035482618849480447295037210351072640725918009112777753679466404703567216317015377274152109644425403502172706340526705828547485050623751100779547888283907081309723538234962773577368958064235895522845329510420048655589052319912050236142182551272573142316232554713259086014010516735148665989400688693508463630786136115865173882613134618275516125376375358918352062894733902923902306153373392456307638209395428701688228776997170436594771421638501279604203272816641625036328188176007247329294441000906349345507166831734668056423759706160235759310373410359265131026966193057435569374761551418767480372940235433956296738272741618544637282111048864693819700023588869551360546242287317367434047817298738898017798681944556163551163019663985232491497974887809425347559304179660577206184665461525792949576285534300268115035904001047164154568115860783972066239440043879226110601733406529446650944883992482425135409511672796133032226970927203699227265926125421725674961210020476445840458065680043063185481800134968014570512189230526691240449145822770205049744562319237066645366969775922718204305910168240736013650344135594253373963736751203770217349009691488045778843079793650632588377122787427310690119275411947574828749631351796401741935737933561738753848815114797946819963287002562814217080812714589088937637405094616564421848159106700554264302755533141343006314787146011966453207852469718918156676843681146715903404837970211469926505967597141678461359877105717397880941565963932430833032607475182080794586685495196292050505386486761301874838596939880339513978006786671776425919401954934592710802356878145067270901839559753820118255290181877097820132081064147163047622523051309195148740451874362603895138154950601724688786383321549834462685869023839227162581779168724338386454086831015683890611388078385268168807977085058700547357117104318567771276189739940626032288691953801515202388361016942611200644740323865662411391103565033849701835111550714946964477044815599807932111267123190351199554998963417047982550032717828738187337419212228841171970661472982492563286057141350175613536012405589158021462555822827101066017317341114934016350404473323216182449851049926776075542890316649516281202231862769277768459746810012702783043640199572168316963652307905080273690023959394055156674899150507266960420967359056381046692872051694704431628132377793300792752178484539898376014895967226757404497842234454164307797538058717401344608760718009845083374622311563889742639497013882699192811043731085585941319592621404915044802472950001267596684066779996332290859356474247471986034656304360544581369771033752316779762719972215242714906744446237214642826867232788644929445518169421205866990307242798366604861460115820612255686769777612665925762337697352479540801243460966647029889745153244756959403832543804150893104551898490530573886560582053223505347069094270040016574476167601951491638002399764677658596153316817807721706822166288796807830677631768879718343830495928131296759460499822788877087690750204942559182691917991217555955724225564933919969269836224522258632337553561075347155489732865996852112562807580194759591294572571129924496002519550160176106343423073810095537451206368934219404085654284099502599320596270471927099995104606987535221997022492110096077347541059965760209053458520831728168754184116896334200752095965517475640501902930610286081205005265542256613438468342336360498359958496090161778192459708228361175317884300425518273264350323892797280039428644585049688289631555472664595113229655890693062847526067497595686706646662178373167862304611913215761359096465473247541006575387127992467510108855615175622197817591882831974745275136730769649219464451843962406872736000307186726690471053856005785848578856810248703171063773961802298894266067400355836425971297791781773221031594358545116612617997845755562563184837420225195505293704867703313261226680829629086059901752363790318641072424952709534927809285708695266736351018789284147597635489857542577995256042684487594048544184192440772647883210714962959677232560082251077456874337500354709991611795917366084401975590067398709749831926129247884052033257188863356335687418173928449823299272212331123763260325414860688508447833853205180966236121046241520539915704579318224268809346551266241180853236549496494073665265154348813888369831423148442061519002671845724110691812573314134323255662893805964052953199012554628054679125833118979925976224295307284757502608092210683722250760644340742664731689871906118063662051331317840910675282990176182884856208616283128638463158381048738069312625407845090258533147639933108701029189016921319027460021598899852201451825628605833087847293752586588245847438200001806269992628465526694763063209245735875645245150929134778393308930013594537163587620905063374054447620508491972950259492080811132582373132905586597186877330201828514478828180690064968220369043075358208790767274270967318612746979711077345136968512230219319330765524247346167093496182428919116392140947702666225175257253889461714979537437478475027271222125555248648243883927647037166988067174637101055145489092800496176473317754547177088066419161493736512488549199867259292130827507925188029358543845785810803252826026162757511434051101170484309025593359137124417044731807899410948498957827328281976489561389015348946840989437211368075480472523347284917969237847581948961689982067487745117264280070763712932986076479029453477325214830672518082900700492715511655015105939903799716947569821203848302759391366602969907802662259390072713222460303948566881465445552799161707946154157976374656440667588030112303692033578409225160469465446442789746769739056798158832954619195254821969630643724556770098824871807218842771729044063332864393105804610485330458280403679432037083824180197656068957861550460174187671588015973754789564422233936388968337509423968505876401964380693540368515417986165340199419728499798526362241532895882319787660443966444895230474747733727086607490740641390010403317723971013036649749913440706996982786739298722228770370936835252801405691745700326277869200416631317178758036639982815887289508317783192786174916445471015933472523934437462422329671051931158699513533082743919147829359478809403376215550827100034729429781667006511509015601242528184413650936090922362845699892254502373765318190091644818992157629743249586566554960797580673550760159362445591244016015739891372466443511516895241424941278510754151233962576268462557802863702764457922295931497798136768930251170682125387713956387863691964941676255978922942333124287366559859806966913515280775913160333284361298212239625557236198753677229972394367012887716574643162573420369750219911121539736049298799347435655929099291796895795661981965106466544798315208652416973389677711731411502560016641354680247284658552897184650375163361414119360347881484481840936184369592239488378166751227132201581132969687450010850656925560706959323106028919601818814576380311976514277023205443083194630394728108268313640132075535499539667638737386169012244904906883570232103476116248109991976503133881207046000267234906885520679753981644726122353710920283574202716127574101685862810873615632809426619847435150918225120750956566786523145028259803444967468234354216540672387713050524489782222529081124344357694196715453720455636340567512021680270811144978535487810751553434296270509205472852511982257221009757765563561994599825941556346266950987157797529931127685474742212094244116130659522478532473014379891471631322184808165344998014092571465378266689975755233955053657609684993555327034121095104500199411539359324612687507078754311702598888923404636128390610271130530902839233020033774527016477591270699705864023611843482782443565317005902732099089596036988733011523093766639991297557507955024761537343134693619361310170263557838067132132544857008453922458193494487599988026170547321855031002422910970627458539550061826114309456625498284592531656014678062253839593611061079812554628360298817690192491902553489653224250985444757825893530940825379159016785114655648239962384804908552702863010202336358290470583610926153114057845598310814807296240697526739371816958163200506233895169741510164361284166961868473952352385173762292623450037662019518906476310546359729852331163959389021728430734803585253557482359509228662331734089300025889267721456915041533839710614549017826800712350842309119490120169502690720666034802366428902712689091630601796808711786404004195845361331978961970523093658096411030788641058231254423294506211107566173589172673201868321780355058473983989501151144530796859511890989122397357875917688367974895502260215886201896413659194668721971406863763172776221866592028232028933138483204038032775769003287249554319006032846892078007878249485514596343826461693162340721008196716559551777451413932542397943975759527806816163210444048047039546512733227376500307584456138240055341983983343159499111196202899966471260357053318811194377936451374825825583132052638801983378745561407544677177741454189468050181284860992513344943962640159465593047614148657843179605667851863477725955343445513906273726461203350656404058392391650229976482087521473744458043165976154790340896294209969200077013301678755142320152993756215585457165565380737510041871057902012837331929702078074852028154076304105080784545672722045498856011508915512630873170648668447084507172188242801638254740118612952666065187788629205673140324485376429767775923652639053865346473290269192463718279644556644225781281956328487588914317025706965725860362127149458817905224330141131742697301042462704172872650076993197278378891041815809561212367951253775867251854817162252973089305914033266977937560116855891311524118928399443197921138392066711732915528720812674182416961222102754061005441115317608513779151234831551995134299502920388981900024057338295922425494562326567062114004838210793907189538381321548526222642782380251842961772911984438709971328835670662716658974013600647903551065803235562631233511795561190206875965404312200584586703632556612817502553064280084040133446258621295668251080172344738933423133843760998011348495932463741605691879349836890035626094413881906485414647396511390138305329039077679555432378000805363092003915954055126689210753565033303716054904285888426729857034476594391181513735219307182290984249765154515357820025100931155193655430813654942849126183016033662355697532283981645740007000195053323558065464745896893885537157998286002403174671879358113681489479290709512214730579595193314278476003566257846223927986824413264072306177765513964644533986616676691570543483084117849909323218119033961611725944915542945163361466082425531755849918917119249483499427183694781759891961904585105609287101464128429462859207605437528318308183547743716411441581176096960437343515962040886523067442271347048248547463260466160834854320068776370288082905372080362044037954045719226774403999447322956844358425274822538236675265855828031661182074698800332932792356325476708027852888760728495929571411189809983022141714294963248700466542819464570183828590999123860976700836896840777479094308437540934271152136392122503060900837047176922606509388942266882853867521562666004480598912276336708876990924495803509576490355027150109035070216212108774734845039698694736111796280711078168452617006097839074815520495722645658414160174606762976881688819455050398426441342697054081523144500682418747004972210946232205341946121695564818562661062223533339425275392553343975012163298404104717268802232471482304913716164486877015588609670702497021812900263100950064808855086343316124899714538983341198568209020681519170829758557591155198139225128681262561510289813752173000826260660450377201455552988163441425521693488944032402527710036210565284008845892365721708036640812997991785903212610902848281248055946868871235697796713698101347149467956855850709967121788265487563810379954198937559283968339800211817847619989843600076063645205873781530486063953836124822895686819853434447422694951963906829698032468756171189785686676609840537986235007174839433426279029019741722861033802212459280881606890210417360754272660709260405392493010251761220759475208842286607094055004983096542841560295575284990278053262851596710907019298733510425215147130222946407759781707411169883331313870871850902971715349966527451444739281391505639370422350467209324680271188212290480732084235182707419502839689533935160379490676039465541991835311431933027387536909734429267922603244429630315095702186297300015478771974152578410928797239666727038082073711117495803463171338635744343978082541436692427306739284903716129214038854768409699372723835103461743184233992999798172913934121328590435780976154047115309320390855656816381625043056599545165594407505549631270703375224314070060550675405217892808665473234170755034678126808940882300278720936369718587936170513500845708301146308864756458687191973596671795398107802663680569052941736138956055482977587452207619895452771915809267593758661184921929567667103410877335715064376229834345242818548248921947218562242366508675202328680462931217034154463061242073816818501490703837990861424472167299284507617181045665200967183969332520402214187990310444476033308294254561512883746005969956966810655026215453259064869523588499598067776186883978954888931260219315427810086469333758183122501883606784474686166256574571219064510014050353851728141074961647851860257658208411590818252184291494532734864489293966492874542605005247140459659058570949939857704122641087273735829836225776780712308379145616696615093651204912651167845895302894572830215863714080377326196735199503477051655339478072695920969572819522683333134430059406738173214785780909469662594333175791810062266638346157985057782373965943892664116902774756327996623521197556782242788545458312020156861175672895053183363786299176141858250951813135465287409106890927722985291223885780866352013576081229636481445040336618224011335548614280445107995417983414592458617724012969796674446397258012372948444587692204097904221628794324192875523740517392551458346830336897551100891394271683716798630559865336718092883838381160968530048071759220521369146305810658212836161053071338773410373411835081753758996627718014750304283329365886689449957192904557986269266544148843471979469616192335822549577871301891655173993734580780019555029372479384786699779179406219364357539319466331392947104719842564758927838833282236632022852275222245949778218400142413671537183145275826455985172939068712426243318136712806009670014770416614248462679716292641193942246102984468879664047244440177678501296542002787275419354367780848343014890061025535938599628729360017571657974206587978667695719716876719161605736390438763813520442825516515059239200032370359162675047276718995727383551759498326251752302429467278425358598209759523477711917140185664061531012903385394042757546060356119693321941643448444175813488068093466704559522130767951530832791185671221746021798716548423224211684420373750469207122672333838848937018462905481847568104137040148453086820371051571770776522129946266381184233101510879191141647172770910617911641490913791042225312528080163002030506313213054047057422263311943656768624237750340556473569542243311292667756451699736720356008157199418795567829936470486115486626367379651465192778688125833247923123109382399832758512329992174061668384752362012098795037094698257050108035673043606692231653468083965902229513738311109042717667757901673035092067476327585935552687067122230278811740245808887066823486363395433890052254962005619408285383159056993686309697383941696990138284757121604614183825066644751119763510785828399840211049362572232689256970014471396398474692393873699369895314023768031919016441417228432924648985259253697211896282321031487806099104165686296386361098649192973927613599922254063437036555978266648257691036503464571958418685364661063831484158727247680971989497076176812315166297334425671626479421940293504343405180810802248137122473458113121929616478155032796309612608527376357266316039677290392135474345491005388999788090928481094922664544210071437241850533194546164061760596736768794892419583828349776642408691922822482200568446633189508431016105846864451136227730278901701135725470865723931342214181820698374485037314777396258176511013593363912633553633648479845593775569514523612988404125702886864930844543847904669671447712409551806216838505304994206477980481451169412971698106059298891622893936487866742269599108199164946297773577155346317515261296050332754988703866347552489565550851765413239555111302071664662257576534001060038651595782250385548742590976801678278435329351406935179884498838878605875095909601247893201792522220760153937776908412290708831779240732222360920691058071796837194241707221738464648897512925320958182575643967754991131561132263512886792369777559567417385709416404520963512708856728925358122780463013951162023400643078420944876087652216752409362183240335744839063201740307196206645854146486087606457795957254804507416388406882848819782095347105649529797612395126802519366940213117621392473458522394486090574874750508621784083962156433470360634141882760307487465295265112632959353702148930222755777642939805793668389650614701938145133788719533172850573196644344890226924081532589646312983748527543420995528198431149064885262761095417950295484572132776291017121494038761182035617611769495900025204861338920437522021512862332963589735200308358836903158779156489678012814085093401778088127013403214445600889653387070794196082060646034281967224588450395732966846575281587965426257955881910747444548923508425341179534201339162127684083043754168794102909237016326846007881707045482707155662049052093984771106365111895775497738726594766582799661064912998043835585660722218362560724453868733286243622115164806190326847220712077199857957251583687433292605310827229772623162333418501270302453097360247160521948380109376947710821557069539273335190898139270808150238122884959458446177172533746352989612238371758247563533093156674608904431934247225963920553029562192484016414587402112884167798391404226712225860168412518407756583621533245764992370501965298219698559294280267295340081830289536682518621754768588863953458904488194769362329072067782769905603433802869077081789151048823933062208349026923092016423376654038078394558054136399208047882361934163352322366207398984408113224257904862536490860416890828318729192330680658512065703975017552738957075429108746277921498424260883253484640442407497796617201573805101500753978051050885292011717397939552920616639319143668871483788630964846447603146820176809469614200446828387863008201381940656732609340293175200533289619549014144987785576137037322904169523308779173878084461530655510828963019964010872415549898549161754567428358062910357722893219241405852778985293731907607235760013518270145990970765929166063763324753695435290440625323377333052450531010856879230942529962036424617447406028467533818003786538544716706894187049643863560976100406113462028708633605934469606481391333003115414207945432004795226835702710263800197914369637210952496112171682476226620212417293726896814569409832087324846951543646326254948108291357221553849367191508913193629844582999763831809293529850253951899962366659933673927884760648299753275816945112981418989371257650202932437073880441816929602063501836906276455365475317940976682857793262900641737104667976845958037995681241525342746571274514255232677191389721110087287208685706781346496396124633985801092967249953638538997342644037605071322946361016914581052295736199934570220440041911923783443973241948375825854135207522473832529112816685255389403786421162492663964236609037458005697686412803808011697355171161336697351765723572785514162495976467835102036458826201141174638485131970114569000474242247978046594063287569036898534645715413403559403877280908881888099926203593597196267752769692416523862505070751240282101914226573013758157013372042739678508262843087260949688473413095529023610964760560399187128984471179578007524164114642573328043462887352322850974208156969444292386760186038854483208322409891812803790749352415465774954885734128115838927649144023468992444992188002731903125984472757920079943663251511534592466168651665841210297312005806326218278772208960969411546214755352970404523661525780469254504360237050493855597059951795494286846638469388580956234916665964027763752924649432674954499400343239467971004002889743924792404947363123579633655113920259729773692981063231030123184777258929182998227865858286806938804975105498578853694799396693024066859836500929545368696708739482427820752342541986579643073254658684758332913296573053700124887443788965964420628390064992537854651718772367848289987614148151515113771520407188375189779219712495385158016927174363169570280530411088139194934982940175907428584960341064727257703550081174738491417986675565570525054916687410220661419957469273751730475586363205476331232687108023632030203986044568181619724347241692686767748104558941750182013079157888760671301090516633456516002548901541860427868527508770717670669889550714602783133766780518802853075210572538569897542027136383826523181270890620021477598151371113542877770339285303415416136656701037021037091968545445975994345713396187146981117410671220941445259133922979853058909243117446014511536682376355976708778096148328700327956952037838520361659070053419940933915222751128988191156009929492000154631432214806406275980715479313448898247236854832073113807441569351138713367552015791071489644635371960972812568433497698276050674932579497941211896506241593730762093067538047684254959662544402860208516278479019587297396304008593330243627312593503895774040822042077209072974096591104030475563764323999351909300643482897405195929654603396929776577189868031906796564889011881806249905496088479939542477304434965241923502190699726741989140122974271428054588018668867683833912927062700062110460798907987936399512821381509596551315959724320092757210526425642750488140463502582081094442148239744548431830247242148516921293751466191668402423859353295107483958302315967591855300712701852059187680654914947013164062300699028758696264886030712134497478034178158879703566720067098335670000147530537563319372350888434306002790581603959149708232287326661655133944895941157439790905027235952086989574449646378048500604043329353769484544618070320909008668944640330018089480333028577985480611499931317907424286493000471542416224718234655196502889214514211161750595050667990388053856359043621561654417184449942582429520211566460647571289342419560885350701818677111645333141560320019648491466085728129205059814944919680102549841531485657852613260583416960038614660929705990542432587179556283448532087004493832804757383160408631088589764078806666037316582106441734154688907432069187355859462997142999434374098486369765283123173513349517410929944257822978303343290087882718032676868087217475408994933863887363409103240637455954151342611658550836836471543838207378805993312374088012046450767929432215978335449060212575443985087063785119294964615045709236906227859572594500300838794038652509287192236882814320970155612594125957143016760671426343237127205678054397736165645459361293817676408244606269128206730758122532944035425469648964991563672158172566702883376181812464472548159803973268065505811195317120310260947894274346657087102852885105078167306465088999613871286503404128245734691133171555544487242951332273440316042884980978328227430310051806026548218675765575479617248183090685746475934443516299467141755172244646614741029866769825034447823120716994214614289004620212615255404723694929780331112929245132537565116003696714982546257606541524299260962815922643637299200436280490289165255820500793496955869814576867526428492089142249377356926087627611275367609226075172660181844861173326871460887642110322236969070954587053265085669134638288421352797255790955748923311941001217161236135313360257839815104398421751527929788787108782387345368126826040213169417526203724792398729705840470094614037819758042488497881697295612818804509465032460126134549912865275061162271141450336163159991255311895722408971748335610256889943294303172622866809576747717546031903033349231783474780264070141108882125343608853532818890285840424173699430076451537770487882814786542801183339069915798056137790874755669919862842914581422301052253428781483007419476808549260871504781266060038729653588388818757912487568244368432413918582053893860326879610500679796525471432369051505606945400727663463545008436747359533323718634231571925032542091179288810871002141388815238976837753324555161013667715064140242850187606100567915744559713201433994560289740669602619594226154343767413437370121166607605676511441740047939818361613656861037320937548116590658240567298354392473657860745792694908336146740893397443345822835972335192746698198272881693910560224562566554579193389152248003647932119724113968282367651768407297406246298133967105486192671596797104919293300709806474449983536771928659782142172376911686831574961365612582543212665548837532330526610840135150780139556235788643067052349879039033815944597840705721816599508547584236006229083198900056557367916493171937391763435960338105034771440907336592807282412206952829753375940285444340016809739915630602774089066080152186880604808979577087984501173833743949006300933853049394185943503330857260762254367612683356973498787589383638711760292397247680611272614008581447728386110108321729637198239609839521415058801245805765358141208662731654364771379204126172697463357762744625333059376011412030030961891036618588601848544243863718661430660339369566383247548043124282212244148481383841330389562104592119952774670195571848047227108372422378995722154973305542778886953961914614171397878223043271718284616349860823838738154197037291885179450747277472380264632490887138326070855992813211535702068122200699327863932910449228522379173211510128520690762188382687085652131541081616872907011556807587671905643261692216171810447215265033862281335402154971581184915112182393197163294278810008372378601956323843355178647255562006363436499357516885462325614313186306541772451188098136710427179800565589930379767208870887351763019309913103276232102234587137963115411658375364813026233225204244524287099482785680206344227619462190974874353325994174453355590018117316003534934765977684695029569494720179033868370581812040459829707895433764184116024831577475219093135925191722027716130157191567790617808618735995303710812709621689934916815006819991502655258909388741342472533436405898713857754770684699727445621257236194532772941972301037415413799369805400924403833022542455630716519280279893437623084370081431291049614799316676241045587383271286510974985095707718771698583119697850304746246624670472342246922341730388723241601470074122610985441225089101463713729727407539212711789759778524543793116289645984078801847937485764793830750843011161022825514562741248407037082334749635588618850069008265712063884010226653811987326309144069164639975846035948727268049651356260595200129220753460536900049723498126219312940189829384871159779669014557030348682287636976140136669706621964202823851695372103713818189296303561370867978663073277668970801682819881325171235895356836244909529091941432171249691779055340807590696412140933252392401969986475442829158766064652414169561222844430894307516426498308604589063448422562109241250165708341614567383560058731160615333883032304385811661025898358511407346268164219083187366420454217555904814515082663592728001148636282436758803861682142985911403074608473211202946897779415253210364722542104144467600772847870244200604314377285949948161224111347768580066504671178471121023623285959291428962013133633720997007000794699577531202594933988302860471493258871352169004610719712965650906533146352949419961418910119436621730538391663665265836767267066583478269931304182704002142593325560229844452982575621811965093682172267974475217831683001120337381142759343557790860323905620033400277791358328120919430307778386149169491941794202184816282373095317625421306656649088541763532710266508109250402795061266249082554898059771885358647850905686970576744985294007350907814706535728392098367924571570445722255184919423081366509897581347277693962190465671675723491053861075582868498202009762588610546696039099473535243418169230769118866843262062005311858925591645494329055082473646398452438508955695644189368312275678297871642645694774451665030774608313781062433195060331637236474430681243411311472739947072520511833688936282991340403538255788563938213092197404116692897154896265941815352722287493887899634038353641014083158924296512202674681839756280099763314084096191788813801856415248746534468488797887517366487399184541967914621184154227696420090679885153421919015009332780362354107009484614587907296200296316623371006295802465309151230614461586044103433358931795549758542459249367055433839032874251239611162842976871345417734434730998855065008418662149241448555574768801988621135926798047282630892034880776614500460582419866710664037507387037141878306825578291454483448619949154574336871795467260723164040747802924496234311319954937371761636343014072531037178024411724103289014342140183772209625970080443255660150177142202697466999952053654822841443276265296878993791941350555397998084638756403563475020153138956185976024209698134678351815194438847327761899788159796610206683317327870247987680859579237213313844121848313070571304689673719415119838994322020999580647007416919616390567829679542879363607518921648546630089400433739722436644514949059597433969962436619888820144899918302764011873988215051303317834612679000269782043625973961569063789085423505094535670906664812038915926028791171118056296111479911018832543908118134263556906088694253924148302993295977814653829984899832762088593786382651673218957952469522783337846873591293519406978447861457368157575437106325119071557587521161593518206662318867212926261606933044154091287150340661891202518621107279729730260905044346508120115199742989138319580717280503882609586253864758293312779788520081246861999525470143879454148981265140707615547801041072726383790281147019426267311621362053663516214396166196695085695012620474840974732234480405282915216755735547942176359138481269817650530132793066830369146838930920121477401785967797227867157592926193995300674744301169526480091438154907259400137675737208417205142776022415707129314843431832760587002219659236654991738101481403652695894992151843309502818196077996015782970485098313940985075577486055191635136993504558841122596640675330901308310544576613377643389203182540680622885849225479280742646636309726104564581080384409934607090396554829273074317873982845309356640160265689631038013113850080281522309506580974675397069317785503963248361750562961650521871324660401794949572671990378473442769101432067500458182065514017640116509799147121947495424095476129125268865679645006672652795590884306570917578824925696293464878112291894916835842195383290682261162884696368993089539907748708752025824551743353526659370529535327353209864960628767875293717897616068076695073604210026655738591874244659402282714137767548877025253460475217733874914874497276906932302188539610107726269079429598039376645658344409792354893409312671009401125035590887266532709185985273011908785171802227084425163451611585177778432015213524103653697193130530711961175875610487778508900930779577258798026673062030391785237459355861296142689856625294557887891988917816335757913302132589028077133602428160240954908476089661935515150576037109741764237526878975789359738890531809079854724115955692579131832782997364868911305481533677639345206749496649093146687346589606683370043419631732951172059099468613281334257169345287548076133683049974448118073416465919689229889742799481253010285047365649239685051279629550803160554857890956963860883403012823152613717046404019806665410767908878393761605075305976090461134263498156099422812176920214603708834608279262464371843262772313683924160336275821872145179749101231298787893107107446948403444141887784613311141559005963061243179620808919223339947360866537588052474687663335266857851937047248486533864635661287466463288309655993287223508695674812041739028668733120925683766698984301297828385758276557577897487749879722860243257901984586264305128066723036781240179951025016232841317230498228503716786747800780235331370648442551853999213603382473218164964824205009470949581443276198393559978968831422596487179049323607347767992711564336435406243014948177027373015985704230054822291857302023244400892210434269912565834540701562164903319018673138611558136379415558078084167023290264460727612177413965913090418930778732196157208912243261873028423605004231910332017852485651554230071412990602174698944247659652180114206685913228706824067994733962473776690935957390963839314585698221768713840329875493409921471092984546439489970942348981058009969907389747528491365169299479095463980954773023382678995076254591555758711183609178242074146755867644878476114553697013817021072438778686488249155230491434097018641080348986419845971166211598328447781921347921979892352358557098180616583977644222839829998930943393661472531179975831611425344760560709144449883076883803531342090214921615086509304081527438410816514297580897090128791742312778069647844755283752999974659277270777608699193125356214708477518655112998391777191217254443229223738850007741514074854597268366119210857022327766255323745255742411652625269763358118729196707513188388418196754789759878684513332423758282210724106193826134170859417243580015665307813173642551752810731343508207997528254387224449187669276767647343869059163732948812482237733589630458395920651219399314470906645402944642408178415347495201737735593599748661873579922888527942952410328909590792769591014009604367521084295055607696157469151168168683545701951134989338103207153094799037455129486235989505538417183485590021085654056190912365871965055207301924507200384438722375943110643294840294715930155193215685720533194868525562350776995596326822229834166070472221609743717739995647194654044412858313543055263119932488763331712946068993409624640061154162784913140020819369186457570385383168987471609941440384999828869282341576358828158410547384540025343756286470852706617981819160568171557417224500010771740360214908849595191186001693718513027218377325890146458699335884324148016290830689719692151089975330875777950674751702818116814893770353668096984675554189396441361489909457394459173775669389293250115104105741786195599771695515315486996036025562506525476647394161200950643548956193091685268761648376214147928645085638108597255616470822499873065253055514835452749094235539838654738632169033544550963534412390027541785441635162982377095652019356389509029900805625166755544222443023710650616432954800259726927901213069969314700527662913718884171214772765114401690335409618674713390093975426648792834330171225057348995116490915871670211444869675405817266210907128502663114656426611419575902943850212880995235890688657885788035364871572416369063766693654044401444799374604598600224217187944482942874184735897964726576099119691923695924445015220961162850624168431704079581696922365071529502086730380328554778222983339017669767713916397998456966397187548271368990770236739454101443888172463667450939756650539920642751598882324812242847543701448424906056893802319184813855944271568725318185671595582499872800179199479427214003133279799591442228873333129421858156307879817976847085529826561405885899871606426469988457141192649035293077799487609720611744475945479200516091857171823555186566094690049837576985871974822535200690125010304751117700758073576137848927282515685337839790561867306516368607183543067983841484046091018045344581526350567945834769224609083591611932448929918237828257455120223616339393504416637934043542502095067119014973730083910925788852544008921093338244423440798866438711536512388388798857356707558429645166129545178559429200263998628594157330578627049251891748755854413957200561031064691500034597365109078306547550961028045606604176868558314385746297247837887867280921469464742373568307712056725075482715007063094720930634223646235061573841824080904881741062926127854735751491651594661840960851082793647609110755698783014130044027343642963240013055085324869335117561318212861212574922474580160518454711930178049101467938770072741877552074424898640317637848776562080916818453886302965069254205142901423243851192396017698501703459179941462151310926426756240711869022668422659040401182292815710053377538809714890444596053108405192518799999806329744460422689225386829769355606470389857240070882047855233749724191443656310452448800348340325374165628983458203264765974781487996540601714060794138056444798048869896779548369714331158524167913621992442246639443798603339189291921312042602872057773194665376670777200170637283138245643939346741918688067074859696305161812613924607732402619876422008173129867301550735317157810747252081207518207633603306005252444452593370721087070212166034108695677720497165047402552237675573098639294137268867353640087209982947719077013061134249709148937377312206684406926790046250829805268269037437078738939085971889230299688965195040731099322897335258702292366900633891060244392093446473179022104120580806807879759281737324018416072253664871281119371008750420387231670077628241069232563557089121785878537929498127466238296488231832715911537691556432687386465228054218227585231250757264006202556006958925711672553418420812192917694445434849378438683278348098731773204256760320816908505016002774350509023664315888631295771166059807261789884350640571338266090226555594337000932027853213442906526604247701953465218482598582879649269329114257111952346491960022519370260083777341792911540990715972050164606042820076479633244790278872684995282533668825652565772265157229467514077049470895911723317550020910091514280032779896941346929974008322136563150425271167745522173993481277886318104206433953532052692235176480556648762504944608596265312883484875480493261504372824335220747301851982376707218964295127024503954134941043864349270167111059963873512180844878080829026509750657284457762339932130129957140720045338490382985803968695821620604297766649539819705355856951899731470513666958971931622783174697113643475003725418620927053645929674717502626402025937687636105667598688852899205379031555312891789642772310032647633209851120009318756026674123046585308074273377960742649367210042202307929440228858373184930055154624790102269523664456771721338493697260542410141912828164971942732264261153524848353491856300790427277479512302659042527316528012403310337553644742494209392225488804774176038406401279813514582021012718243331003830578374386685901875997190537196774458888491801012069153889939481209424813453945645417631966853813698534159020786223402842100231714788297141203155238911076901717693007173578357007490847690543602828726018439069765993840666743324631865580244124657323845670012958251082197595501161584009426512728575401830120076055628972000853679474737763952748964562769930124550631526436950725623854921502669424572047269325587600418478087908885436709150567598947237140716599816545714626417158989095677108716248594056568199568090398847574875495490282376864813505058962058586900756440589505144869997999642545319053954788401320610429841066443954450904489507871235450676461809103588421965319049342353680979574020989844439565440428719723545314229845643856182263981903953461944176582178352259063102516817050583386929351341701547969008446766697712659278544869965776735688557272182322668808309649872660461053898956846992263410473610931389420694104129422591506146722041380655760035440894418555819589470597250448818474282561361522501545411777526850182564359521667461723181872259702953605129234773624516202791591551314324257332300258810339458665149855877298930659774062122743871510240715603272036996961906436990489274729820414946559536667889659839529587477150211240935941339820748946231712280276214491636852145331545169197818131641648049669311021174570097268012801471200749954160793398841070371487137850353648856917274178581920553333709910938556210701094161692464702688553728663905465312254489794402310455701524119846744290510429442609869935862799781320050942037485337236127924265860861677894759171090911361701080914972367866863321513937878322502219055635775030558574476606338171318939804351151712479359901507305876209125316923886285550456348007687601360361366525888713993442400775895745371286565108299574879203569836019218164093604460582973797515564485639888675797428443988398933430638627258093443006059272851977414297293907039153633686682625073639096059412485844833051806738971012165565055691068995926046090313692070423005257166136581430368236159273330595262742538984111186572706718886798421622637599809549906423647096946839167973776882137362537150400323604008470824881521124874168342363387635700859775609371131111582188477514216613322428834929081449776437283210685378006170233963190157524553065774057513729775270618487915420517804706980021632387441408733409288780102345310242061857025160039638514565799266196266723401412851478958081706768888981621038907558323970067283255860441678440578525625135284327389019267948556939476385541689746169240235589385743516998151362670377105702823399136819597727132893211958221066959796262427258853557509575079409224181504783109830728795958644488000557863122792406347388004241163315426605147455743806342689243329234662755769462529114048295212113444472054835432754062139115323979847020398205430135047022158150925409991453581309400302191510019902349812464487827530556847759929327730230678558136385474596347580960589145600104206564096586955062462339777673873275869519344485085149932766725268184725485250256677189486461877367077308941175453094710888593847377118890801980384590243102027846230363840545272498936740080242672325348710483019406910293320639818456290401138504610538762189459473724014989206495769262261984622404905042715139150273495570869730755476982367491325673238358688257470215058811126795092303765668616384334068818927887712472623182210958905765703477564430017312943308178625850719718957584121877443332045828593731029545822029348871556818986897377992236105461302557421823053711718022735577828109792297179114615443524768073875932813067864363413140921082868067108655676912204872934865580147524168989212448297581384677050669370650270733728458869177082188008492603571634183285932858387828731313315651505936971157992402197519727608116342888582683666495525713568808308215999276648616233096203690905002204701064617743761939061973455614744818223593293342604259568519960881747844218490919019328775997349584926173284028221190601757950754909733058805406588973229187016527594639780329560355620382477961572192005793254318788876516994379767385638635998500129397940450832606413892913869957403238768879387594715187752433105158394317080180371042499096671743418872056964573222041630515750383721818068753407285684722344809461981243497945884269540027198035411438952762460381309269653904177583764250890333533215462212621695554298357971711023882238104632044434034585155469101262396081428809758319896394426166238777305546746054992596862443303286541596006348195591307257687776626010815102500449001711537734089603205477432444175617756400354053242934922348171194317897081723843128343684658347758642444107485374537081771948425554319940457984369963945451417748817082538753341754038966225595471142324151909779411457319182917004133170644873208169217857579662636036613616572238404960214271267370205252362282997219656175077664173295669281087142125534737037217614396322640981293237076924083819691568532931775428899573096520969990795480314240369734251499753599013822925132822136185515331716647697252926144568455283901811090035082691229940346675528470190815322164869490640637475000438265975871032728200805744630378276099359891215033256094097555752840769942817992317246335377963935581796744498280928972262539746393278943849704374228435674378344593277110613197755422796541989348353360474606533261024422678147713503773328911965762856818812182836582766028340712722644828684452713010995462209941649800205261835767208983512268041977878303335697044041699605176381091231786128069586367583047340506388349035925062346798588546454826278167667203860588813984634133131793788060304894437636585848196536720532002888090031291584739969139159766061879752675669298172962844550346418215287979340856720845729051082379425954985500404431439250257105794223091648849491670066397149509806197479441156749087267314734293500065157010597108234785151014717372831355374917941532539811239931016298038911598898584067677346485115516173711772920305608322533430559454073030150920028657247572706348123350835906948665542494565459537908095887970816590692649177125117763650753308540285415892589576054054667956872434409436188996846622367340382087271084868947385119830173318443446822375904418346963019942400246732493340807886855418668887274520500601893642065886583058241112574096297689346577348792170966131675274076538998959599411936405057637662104374033825660897766256182095610039300541085876845618654335519308917490495106839588311510292399413367194488201472338266266584254487223097941960511410766779613936643808269547637888807595995154413452675433913461738684876643813374912936068921040002815798508215461007436082035222600672025020640661247981695852639644729793256741106958888147232002707316136613972726374916738042689760441469500294269842245959421445174680803566151269588458919608425702625083083950250674841778655712156346279922303829238954947556647228980688754311792021868126061307307775521801585498847724513097199691161961254523644442286345333897053402231365953489867528934462297577961056996194922250900881744711293229714876620577385477310943805535656594521489248810359222954969227810841347194539592536942269449379729416234609079192100024300658865720010850902918000639730807893871601061863920071653848821672579637602472875598919598060610274054267393340132234678600606753074167140449589745340157929195222980127928233161773201202654452531039477624722263059293154415981375947043863659280814254985228336861083778187616562079961406564560698688644102334611834016763830128560938501546094499519806495832973772093906543967825174235410795845899024922525660832537312522576077140917193724571283138338316895498466663326212396044545194344504489222445966130038226191093721260749555829242775993094965291128792649556215961530006390649718049875108049857121309011948487243438696880470741840237454143979305287657003266114742600953289161874585495518597007638778488674342935086179721199558390324729405156814239056475801207818203891570187302346876349839100135438885455706171410563864394328212303402862943004468683480166404223659370396709131913420367678677608451086521777545517651437575268874165614630681578795496377126542982017554570953886748270832664233588444458811163384486393371489222975578929528802684720835768901782541293486827308076968483578848418359894005524727853493886434530050863790453993416231738830149367277147963077113242131510916960292884207129730205385555130906072760930938867626882638152001276280394490397274336653981946608069667851944184044723722481685603636273833570610742511660127543869078045288371327639012000991920603814904915035415829033368183277084029884285069843937919321660993670358197843954491703695227408245379769172583056076134894121870634163255147358913226865977630424355876678236755416496140940618133838075700621552911809933074777675678603362336840173640969515861734283940144616367646003893202781433732491023157475146583352271304694186379193484339027248067963236805950167417939292027494591278967950976374829178347335941428721388907869475346018421797040718111878858518488160061238687266252478576710609941414380840336313841923732485741046518382630929144128730110330476117419836804458484621562353032065194438485093731322720790410782781032402143506583965649287897510533098257052207045665793662415863666982365809790879135823776754711736098517828194551491607960019655264738708444941104965730941674450587895938317332043921260388578822910749077962702170348471241445282668942409774385567744517286402401236822473054678971675125889503593780567715359448349959449149669870127029887163241250241739909587273909275195301541363160310035172181412218311382156330917671213663116390245638051432658509053266646642839285183781445952453737707792623607893912368529778714109858238203395673241296031330906395301486056165167851956421075779195252774240267371166475859592952890182959506340257738667152967525944027754297859173220577133619927528061749728445864277495903654853352878873230135230325502490561386015498038191857094565726927039335688762402469664182699831717335813179674823480574246737286774667575926667567930841567402793064382843115860167108683516707216329942973287789551399546592589872350181578073926591811307004523596494228024782657344513315636017120824363019312020987636622448203065725083161251687439130484431040616696548199304072086912094530882891486620225638563646196845328555725598058463348418612844593745366906513188638815170303909511873009044068212738141209336509315240259011588476010302015061503009920007621902696300127650860977081874049990853627586192055525393250164694525624781429803745231641724912803248646708241773715732079051511804503993650095059081714831373254475951492877083778664206287373048019079040770810921757092420751797427119193871727370965953903754409957263803804456794287170264534570252444012774061491153059702680151312123564321913328376851275792189658296402848734396030734320538914319769768323927584639803834612128375235424455711661617449962605213292484839157662357073827402138455724495287288713641488304786101859810805225109952265110665439872538623957266643873305128140178650911910009190814223437726709231927244331638915408338090343567274302547257767985940979627397242935263582218460254238299502589006213457895235771900681478560716399918700966823347486168142966244352038053850560012975476105123176592984491500555657663979901759838106588933751526518060332630424614766461685562765676581727763191162040056804903346848197145630032624717923240250178597541870083532115525927609607250550392425254081719968865715657015564153183507411385912790893102716029952340160510236469674218361311929389363183896457270251487220485383133828244819457642804327556544396364356033671865124030472322173055565842649816497994589042871308550902353138271283257942325010172719236328342078911092998789311817109323466905682333050827081734223596336150934826285296328974429155474345717435888766636575567044555496237016324449143847457442891591430408561682152693032086684898364232550466854041710684261864512313412026212447260072808419985187332771899095761051166086662074195989730177342761754748703368396451587360217402056468200254712790627544427703986853213169919308581939728227529259968918140028689569162479504292940683453678792459892815242236820514561158333811022409018589971951050146167997271100336689186315037686440957984078059438736990331476510610116931705227166700029859186002080312183405141046771962220001797720515061390691866475547642591866612753375055453676530963836477630275335349440217222626170447752844908925670058328217496783365504573508755615541071727872499072915399495417910478780386546993572262438993784196137941872681445953872867338599325875050535794059237220161394534183297429701555212692004392047706096848191450175152217542204779594222343547117135044936245188151713983424553285905209154612644518284247755816560288129794344988339128904767190867968862464582188781538266454199447424827694403426764194884569080018073116435510223250416538547207710180314910884024716554175461940236641130278035410565152181422462488007285800519996152601761995046386835322885487291525577262177531507142345910198864546451953649479340821359785769818542829248956214836377499839971307016390467384305935767697776334284885199653588091264633752966985213416189306765002558830600889607283336468446549300133555633107271939422314958410651153159230391354348150402198602710561341209808063240660751363846799717467030324749737365378062812296282336479671530235947673571992919380481232464161677632744767819333740128087677770180129423832764637579414200246929048922968828505279432200177799215684464186440826223750878540452429417129296163863729011443924911103621585588889782067603155038885444687373218464985546795010503878239514085515846858204777635949618818300405944075532389383066583494048219531621111938371137917841650354998013061765993848034471903255422490745895630668747030376319468533276825382115226609421778782898306378561619813518115437050276495813858818710915220430725366078778704894151899699906901340635386054047210600735765286450874307108319662224118858842034118661084943828879999713654066416516607586647119399165659217751048218570254890615734526442683212845989621605721020394155125683827159971544529677336976649151305673497937609588940231061750002057961746045576818048810193403388937323137124945163668308254477717946490829331499291577408987586110424902532343463625962234072904416643927155106714988176987925267621435553637645334389858843403763263719382943180984490588875623012554798953703606050216343269208332056322377063329217747341737471682687936289434640466222273464993528231839156295136505906247342683074022998055450461845919355440343304418844568905782573654016173231853803298758843768219434393114845990627533707800106390381101472354714332908147778297524614980407230400947171010000293383262156615082263173664350168836905500501612311090858118645668495957965139768061262987501388585708031842163894028217826397108395297399238390198412495216806634587190822846672655535503814769575290547916087777302189818732708803842571618998500877680968732286383815773980400258654527657779277701233368753725537553497144562625623072307984361716024641439432509300309634146816984517191241155378281231792556411142739307370225799339729135464147016351374194346995201004100563497778830352817160669371974785460108807431683613921819559735461643465507935073169955874335294358110477598323610952608189041324936390951770952099879797254491562754984717612625596127500742225888882957251678983913489407859482133861411210236186424842312099502504534596856010863395543155892513969037403612831121502722441273431781606951547594969860014881778128806509970979258863254263802256111766869295788382485911495991680414836560383565292316026410190393755768884561184593973488876824295231255310256435062343173605636309923091498260477034938249708530777345190990285817482099613235794054945197638565741698338343657057927365476903207696310995121734173920929396837422762436966827730979357389261509317112965426454045436774476940433680198804712139971388617624299329874493109870097759632948674505208686984565280382844389433092557290432718917660581113675632445186043335747972897073928859901411688279071405716077825263646541939780739507739757775193035403853980775223355794007785943589568169927088135196458154976148954430319666769199516462725939170751409285353507047299542386997745644872158921557704650348334237627650351758782950755038624562442609377275764667327061091218613181200930358719457803101153035467757934434601261385120335393397923261896998176012078835975454396122433401824742640073477495973671607505445020918128796992518942971678466463497248219260890941688676645783509478851341017107843273254560547287553336909505748420035353750423830457205061816915493936130837098491614494537719871185855144719430229218121467244580019808292503969843340307562681448706101144701747060292439544146907478993467418686057110494328202558544319017841088353551545302562764346562405534914206362525791751757091080708756832795438249088014696668350510054796940308531992784922407784211031461157525320774140057649899422151920894665140036577501160200443179214610862134192928785121029917420155897035453647822764143619966820531722898644167543903607490717606492580160935107247549614267802875560144010317018421513444855703085578945662425728751941496633568854171930309261136997193785430909478009095100570537688263345965073748876666202050323149426110384007585235759827397319439590004481142476953197268179712961566660457969030305652778189802236167466653067415993891107797760353051794707301233920103718773945777014980619111291526545675571207396519409480380674132893272742735020559743658215421550572157218677606069872629394374479651744903426075052705507271944061817942813030739120104105348765660915903559882201310938465919522728580583274240739517735833161220296039253636099684394345105677762266404997247458634829974598462478499649428168619399264466736640747980750662906466558178575329482251640679534504320757582587024400730535434300281469946991582580214554760810313774334344703939322804163181535017132525334619138985726993466706044975049973309223375282372022508116823260234300726895758944515289918935627777209606841352209387015573599525362946039554284270245756352202122824711242548435933084609164263163848298512111826246718313147458629419764185130917916099294851122112568938141321619575476938043522980052649698301916264931364453015812597590198263518186330725290144000904441488651168539074735973270621661327149255945123194748536936859332529261413677477442152113242520160684385141240292073377962406661176725680993365298735925769831623705147311020485423667858149650405011759498117266405930197887014302955225819342628859877054959897820641506963119737994927019162577231137989068690578962169786238570010391734152593154405624774693682646557102191743033956987037109389784144674564773981785962476813884508541294522170278377364816999981661584967315423899863891508182685802680555541165078257847374446634262220705789945222078772808651488150131932483753608717908770186414887929466648319415054836787015760160735842725215427858387620160635361187372746428311737168154351564334412250463824472119168650428057592506880382839253792822990294824847591220753117400631884723795845717150372143473471785564372655191108491267119891924611680578359117202048469905178437295218101380719193937481059811284247818780988372825207126239951233380429861945566219177360362520933042354643860358295267136664190287401320158655691278443267068340541664442259392201090762833185005774187187361476303124742210964515429517478113408675013716404690542394170485407291490060833941921600741569902112620757584804154874221792456779163411871274255894274499840546662233737188561402374409601108412373072622435186504559660169126176059829125895390868391003420204619932765640000996888711904651648445092670845010038130734984356660298784410930745926844992044259728205155798615118849769399053944443547548653961636098835950613438256298121803802796568143454192180387118640697371526068942389770778479603039742081621834588133190114167484611736492798262262745958053615300895512975760787105790896130130387556418588910972846683208440619604004169208450754889634974311581906644830233231509750629243634558885333306558477630803747124999713942976357450800241723006072218709941460082168245170270884340760084877449410720101065540390758383230190692687133733608711191672974365460590696300959919234706800401480456362523953796812589622699120333098630524833025234660657209139093827566240913813365613564340852121894110573228554858959899552949119495108086824151940106919580106255690833445849362214030789939251356293187782112782112566757816603234794128240030091209970314725780797935482688972615756642546881785516724181587038900676351761521456652739625452118972405760237774539657665624819256147747793830918159963483582362826987511507384866589600117269500470558379314972299898752993964605327973373232812688817206139779110247280491655003927209613194813687027708801349352229832449352591244327358899691084427081439863478079313058368939278234424765356412652234159155538235245740920164917118799311765868457464890544080843004416997711749877576477470148811044038090366231889136945002542223758470184628986643224217556275990184613317870878240334177107893621350147616843519718857041621353960922822692308580708648179506363976965139213239534079984658812379292840590754065574698171644913329027656774118458965659069790247742901002150872248153834569567560505043590389607647789775445698630078830173245549906148143400988486124937489920286589331506519588155955350361756159996377549324213588846061024402924090153653619980734755853393691836270800415959913699165895517811736868599910622593097250759847052470556340687944013031025589910913631757945731727481223790958229855726569262623813509452985068890580768516487785608424863944948263532204127304390507783789797923062935915082838521095442129444122475053500895052675236125408818758665846549893856528241539658223426790884375879241491916311473369026496366800556863865351969301538454003617043289757886632463587782755140439886145400411612586134889323447935212289333111292151490417365247824248423551498073085393934374637146101382031579225778270558848774850858756696591150534687019401098038596451535179044447848235423090000964852750781981641949621922502313648771938364993263725096762221121171870846995629877137909920314420432122680949836810359155079531389938568606012271862843760038802426727797877179832006045652423111083542081416458872471058451367320245865492360343351023026921135238275937162681672832186319977053741565597076077116091205350121260084388786544148050809642997432234266801233464175836692954575601766033254182688883431377804696104023887342574492984401034090060911636903254857143360882175852216712065356340759514412316058032453832416105958791248931157612382643957208103528497088601605445069845054086380942705257829306253851512951133009520474976352918381214049110526078600818116454851776766229232164772254983841081025947987939396374484503121432923250313794285173333454365089263372422153874539641766672276613913888410316854809513769685487622584292633697062290181835671643265998665366661631241909351806714084218132676968331767129921135040464378734387946859850578827649129359388723207396046249869246744478925992609406555857511605647897674617392031615782501967050121185701130644103650225508109369811495207209434248413136651951147534818335275036928817647933261554406916666481590159782313513248356873891129641577032474263265730526530371154465226270307404872472607535777002166630120489582889724273416353603965993218682520622891329315540720151205745908291457090915027263739356140516752523030172779595600027884882082485736070547456373353490544064979949960642060701613988755792540261208484730959643108579716190870621231648438377905874084965372302518832549013050279580314953690255801721511253869315094752008623842772259269503908499984607230495675373785754344517497408944304102824910516584480813510257479175399660109860840608789344564437206022216435920520529757902997231013186586880644760796468138989995228512414666033604081242770894395861534187617109212261047609380610491288187457382085033529181528788722146541134338763758648224542054724455397524627838151921963454193111105433005001868809292900791939898895681809661022895183655030513952622631385291419863839984761401336030155613447861416010216533103505105653875456185452503185152236347741901955368347536858526335905800760895362284455210407756105335215846760543868708694480165558436666577491256744251765289838928266601180486553142511273605126596692264631860837968199058423634071717348449299133386005925847035948858902652689983549601695651289830653472046809830219504909545840595633889893178782404450025744845370186356107948389805575461117657712333275121526044152223335199995715660083686587578653525020657144820605737194505908467146764037934018813284514072640074897053408875945786983014610051054522184493821328499762303680493510950692166245223807167149154606969705726815375520025619621953701903741207674200107177024076516528121461666485868635012546460611228744156090958198664881941226377223011471249923180527732416683509398074241882220594588864707998412505063560046709168352104280261844999348526796501819585628801923871853641662633176714971905328986522113987763039105039676679728808514211890896347360704902320802435111032637018127442486849583812726600727061117928908043656536890905138229833203753015120052899821323769950984757213729975214472810276985012028390642997632558921820339069341054623871848287961659111150273414755228916556187225890687940349247824695588552521035552787109030030214288297467022271506434568118454152114089941857934717073427150202115573151760104083514448962892756770617850242247358723005260941298674594414503019207997626312650291905580476866543303613870477630726890456663273154376192197533944385089832240906040656123456520149719708731163004955421821627765429005252764988675285710338414516051707739721535091244629924706048021134737950802438629445859874723391075314237359348257323701720316678363753529349269331168797422359507016880591876054492374175069986617117322695579562426296802095943603394034577858739450872799984901080178124460936538090200259184085573565690260311273970910892953074646021393387280005736040905198758836135853273155224912363341591727118097952386619833666352537229986988167665752620165247129933498501133761755521363910886221550841562264835203714642503978374793180650618091730370192117354865932738154488622258907583958745004708881587134768348427771228047332670787026436132560166963120434900293720900749060396560719902812715508122880189866181861235503316258789328641001900503816127449980789047076335495345741334160758577225134228935170820952573762497942096886435452716034898261327072108796460803092814015059083446902404183952061366559322392414688713547775197273013505579547958830757464529812310855056355894832371427663191476187622218061345885511511014018120729986844739055353464991539332650994408772817885193547748577664113211756406084215666233790692647416797113457424278015180794219206842905066180693011656388807993378257595094496734878753387236426785884893486306400843328699539530577916379189016191681863908886245328245061830918136793947767391168781454652203059574741605987495652275535096846241859678862036257094604650240626641433579496747416102740473385260364522216640663756447619207593145064355815662234439848459130069349050144499416941397591194133925395160156142948950977786488105426422436693768597811082358742895438029441510203865588863698271681932424354235889808314104813010385692311107235872396577048265126355608436516482754518507385665049773377962279382033403898680793726000055599713099234723992726834976939603834619536068766651011227839548503437636927624382013856263084164126519954542043498193804951061724416814092594974906217071692671926017806972107753894529029218551009643059770222995180470503621778925032130412946287150775754758480956820322257911530316720697788152579290371794814004155418402344785200999330093367736688139938743801397958938433299469067566017784284894284962370029448165882801434668393302944008145539291236036020867737757327544081281333216910708958295702446912609851867292125274813903204052507649218244430804054944735166193495168455423947167625622316813531686661751319961891241300473472817265624800318713395708994569418528177717110724454029503113762907664735333166119888217724405272440123511236503495505186923129628913441461624906873394795333105378553081045586460044362967463537778092444656971699246050272814029224281889144305272406848088205451335776870992180198661689588411371029536831648555972997564812989196557251880890126271704994135457372350454953436970544790060932604362354214566308618345212779401016397499349685446261506531250498069819540403689835504312577676550325813151959458553130479744438444607406520686254117702238297276991125066562647406061804649809752329508066110292099356971144802975597736372114395225001501138432162934531292139631399855531315410214149830809984776778606646784951232387845936688762081392342854504047191430284322114949139237556105948954028154857364039811471669891171367323793098746949037768754345826071004522833681301709495564228791301403701580269790610956053037137838779078064893130308031402003126388528283025458256961315863011480863802971758720195182306527784489377189050837796765423988057281969622080916727504252925319022219289956354715973904746923510581865811505924369438094435698812004477305835916512738202078712823304880296346421345472923575910945666751439351979540484236372275489690211671629094672922796031966978353660868369303697980368397717673871136107404152364973195934901547902372245961748025622059725331914134537914318938087607978216065226442282862999535403940639921935839722755561487085895048143281215234511190241506654734803984859709369791393285011036038592962272770156980445891684699975908969991366821548772244971628322251448666516038747038208313510154192317287231233446714137697161666163807889626982739094573776682563200207949030683287173948509347004700123394311885458353680198959259848847830675142689484590240953418890501370501594143261396122112353545756440420503937832125981570719842889064580052238481486665138562351930899589136597171034248985839397386171127927749501611971771365951660520186555465734790614453170113480783891141077641605909571133212134655659386456313750687874754380699659480952549366146926400554964045471623133246375521675292385375376426562246250621268182473446624605862419644328879861446537338404856970502628106780619699759082609349551790970240844289699274641062323289648371321798584347103685829505207809448030037466703589565520128403894272110957034400241852586821413516241393030020455893496819054133417913844191420079724735931348489290529874979818750238733322885690938656335135586115813174469157031109702233414949280316705538448336085481192103242536296463915629222726614244947881844579708513607469974540823413175702368379260133349677749689654409961084485041048118948722174842315302064994564175176283077977125676352081486843515484090371135958768396185453401235338259109977244073660112609274565249916064435940818308278307071126229406076228637835034212991862980941947494342725948900931460906772818820447131562934146217494342915712866892128949639461192398275108299075367968918761895450272925745816699407739479984078027890636772306820258468208737205138247643610684205012156361911867011069888929640218625548592556803873450330181091958367092756304018223226461013858699402017484219827920608433407464536010178201385542280752445122129170883999612413883598365145481015316072804723592578258330920072128872913796798237729207911124779499657727151495568268722074306552533220495428392693968915227335034294982591611104260260606484595281934587353146031953909053423018814083160612664047010733976955839544681301316353565540004054291925957171336383999847946593624743025887232671039433128516531128900009069953199377470099038042064132479674731186573137197242087362998879075010172203598900974740243546884976383902738990438279692820242508781778308364873223864736187392872946648761006352506630669191936752891241748779905648320025227307691953533012631726311905980424326617460996718305787088665491657971888200049224255269507739334435363419223542283496927529189584921520236251031142161998701727592234874491989578975442776481032172202181295863734605896831254115225843313005897283189743024079559618163896008657375876096988606913226077660144550754445842846571862846509255048149099462827532661218865977978673855603962401362563133728509342794966591584290647074455238355951589897668380979791207163210049238458875313630996331350512489021444228539630402542288259805770141677586571002161681145126449137386250623107061009807104760776533691905616619923477682628928761200277805652096523962380091159856187666446050811428725409152806187405090233567182773263557220467880407607256618981576899618331503530028796667682504604580675689846821853679498343091515530989155963232510202442204897978889612604794769167580898675133284469064598842074125958680610636658387695425086053828457010786329038916786728671685921744516110447958855355794737391324234030349069570261078403462600473380918106102806539732156415646116427004455757254617848092292558921750426029596114200639982752906203340675957967394489982850801286096586452867317089049900170361902169507746145395582256145267686357761582952278394082591664746702946844636488949711141789217875908372534271229030109144281073526065316660963379837358086308643399332282479106944794485003666567953026606285692504822344864741282961628074035268437078019529218756535132844433641066533915206730670106339115927554147627432324704645740118115287200866384806878224767092105196442201853714617040072808105344059701923856193005493255432011909527766012496446043857015549326303912441708533514081567528012213552494288115604759979567033503167674655906710475509673008767247813988122372764464568842284565234436606110769651163849736992919854517267818851162293905233213904688993523066124790502193096307687049969559696325188560397841911996186349687207541924399584795884030731266616391535398775149846931534943148838362348998364565058709384917484934240976631716833516428372102295748636875603872206376366161793610778072659010117539395082317262927093049283642730739674484953894504567897621930500312128934947790215765890162754260684418199218244141230844841455350628853305707385647425108672767375417310744915018127235190836371140778519842985772383492562564537221872714467972052818043458766194107866979724903688137229978869616364452018560257675550257362352605026198888297483661233120848980320349695256292986620881440483168131540193823803239322452707956631320572459636472475685630941639422094254338699825360285502994589459161567957993423508341578232870187680204009084614001256960201645322519473754482050353517391055532831304886877403885165766296713697275626121173876587805265064926961693473680342456723988769174233854404842738449161896815832437008376120360083201782690467032068084213138513194578986324476397981308159961495650438094917570540876027470207859690220198306148826361822066991986536346680768789248804116309259963561470220544485344054974768329690320409712464085395567651808929484023833115805416254142440930499978495114826525028966221556466075025767130351107150755426299685015640300112150531290376354584379669421569531085274604152006015832630751104297039956929863944170015560028344078516620150532672216554906892146714309534268849379622934431806512270038088423812783948906041468791517933277621523743420406068823919389983782033882088491351678701981747069913257981013773747940039866336561019843556164588629009914382371519865816347832842364606204607590278495392044020989170917471201578361475672168024134389260391932803733425791847108890063509270717434386020795216077317910662092336807936552843800946505282256343624794446565899310133662676995190981821638412549563297976616455612257868128087059337724802947270263910616823716234523377291715338372793272194443436394001404198830249993354263652258700370239182070158037161872359372620438571016237021394747964214349422780818938404472884953174018627479807704110058080539291466833357417847319910368729954636518954777537516131655400961072313946006421202711124501340212091619842909632910602293746459552783878293632136926863589925339466604654173224367002280579747525274754007881624206890809372439122648885474331158368404484471582844722799616665320210597080900577526133393859034465932793125206061829610350503573349019706678779824371779664193555662708077230511507701684676375970339515275692070068982973830345000431282299000062594705475519063526648055150833670323472574235266191816275553304904526359557663253356812008448713560692204675408254971115696840465145157637413004548493014911625084654702497919317242236174217739601557394155502479659589406099553546180385214210477034203110484275946021590528946499336043688972210312965660179915031878379447540448723792693265807592521964961651147934841441241689267758233061243167154312895645555334584073210670662067144788597822208772882469277250018893833373389795151592662847923490529432189293865500900964649495142764354887796266508747084844676562716696321150441770309702226044778556505922468250523818274651814248957854658232372102468026341931031913897623643412635069517746261873670136002700477540024386638646083220386970532512688094544052773173021325580967603772420452949311061243579610575588557263164094543189878845770078045066551190961425443548771744883705613011032238480321237335187296035998112956579332718233460471736215668323630999313808168691160523591384327095664127374121433276917621480130467544499156892238915268059504553289576851506280897801749166576931220310372177186972106434602251012980165361383253609980382610421434653049507233691460732585150977495785491390062447594852487680189924349869897392461491649895781838684600569303303480293221618593393738016488905981180028978210080450242457683230212638893791430069250739472438633601563694887176029709006882774806661003037849954149946076680577048090912024180949911296796192408934156595347212987219106415722098057856163182287627198972673549269991815390878295220631370726236072868745034290813181983573867853686147339446474459837800700280140236482810725152741937955470738979723975672368435582117354609294436532982875808139508107563604946418567552300972234826548285538777801545681039459516937242879360515283325992961304360897041933450120224560831841851831415459955907924504348875592527524632272558942625355158280855723694034843960611596068247851367691042850707724433223123134959782722869215734634387944938850091674435695311702425205092188575821326946535712728546232643773491961945100577956520492826780084685487420949503444015782680735360296653364224574889197733269336919815271154801981250065106330736732780879443501610103441911443808007540794044909223303565746849881508575071421374109302847723905423615039509884191037494433368186534722140477440494107733843553098099499148788157800888972885081585958293042539958712298101671849380923219529047955963909915804101382038130569713438760387042386528220972305909215011310388941778044264622714214899541442604840952365289036272397659422092635027874080611613142506664543378664065463367510618791687999216943604108956858984615387798490349489415909444268992078215220008983087415858836748910926997660274145987256186881479937103885189096602729401470216970884564272365082328069453652961419810675936031203710277795543183249746290767433464641064849626602462298381769908086566935631898343503487319502600248443703785595062620721585238969622592563897029642683516680543241657608934090391490781027608382923663715436724054334900958287926196461187773091818165800725379101599799092176154506342775027036615997805886143155172726077789830843252468626387459793964448469320579499109321933194840715931362609515261809164117674925108493817849691408793854135294636494328959527813309893862762634960644942695332965722300007272922415993585278058007273490902956643838467462981326834879025216865490090275436154437853084534088796249029196663623129704075490390293523530916297345585262865929944678139707660637631049953677164944159972453390269305546809713085258393944908897015544083825268011901667276763499265949887195971360875454273557984274027828366362334687775362927880953712334975616708620009885511864690507604005398431252821153718884166606151690957906899094088856895335556128565585149592275424169151548707019191644625891329052329670970095030670248501091107589742308280510880031022210172637300937453219049649908059615308328505092947728039382717918120158385541612086860008152618919676270990459581150359125047061245813918814130887063936504779537066653251519438088702389037658010058003551512279140787706311455773671650916781944820755216393700116077673342004153874467846072469240338232152977651877607192841767633618603151107176305346045984445929342666131199070057744721618239038294979715104677611611104753494667969363809486084655090341234636985394513993776563482378429788186154162533438325120796956676506395474868251205215027446773353964101329232097231584529880821716564141346681995015156097959693041650571826053026292323259726660079600842274171606337262004505556860563653812700420449081107068692909426136970417676495405305430826455512743789479014450525833214095333459765390695563187530921326905333622078830231668002841631548762799042912743690715752949408556176314964451115797278358292159001863016158000047534154626993614301720380157890248644224878594540418947719309033412291610262015080935127522007270953097404924331866138802088456600835349209027596459303269957562773978107903514286522093553769534919566405583192103277311655040616563982900372228196707075401421479933380040778360888598355906700827411089049450516232743821175544901980415498785306903523618198588469277554157379980427000017765386585651106627054869491736063077028238496422296585065484406258337896453801272203202853145802194629262194879340608614607879707938923743566432924374332577907951257119527875693054857974773087363410270644568330325300091978397507460291527258743947891362727481177961835115026126965901965775499481432995445046839859301962932790873512113267812245648474658379434249008311518300240185138681269388593437414423132276359498071710051967783062386632301347037184584435491663496522887418244227737945300031288444852576785828254303092210101269505693298498489145154070335614811276949811758776474901432963962802770640409607283948035632744287813395818701500652058648241182333875477547104891778693734782251571017554904831557553294810472600391695830571726139431447237882794170485565173431759375680713913777948097588405238661822765672057520878255522858427358503653617505922863235413379611198770439423116649461722110084165952471819164767030388837180880720044557016431130018705248078001197743256791660021640732464794984263115299181856407065917766987186683001844288114092491738575748146901088261388993531280822209838220005509967506688293184388983917829042723184993482230370029344642365349908874617242524816820043346122759676647198009702438895086670997128649993208055846786275493356735587853622263017193991740444903154660370721820150142447528476362162819464673326390413291301577230574745098199460613439690068048042645078560497617768583699071703682212664305221319300439586411356384676861966462471357659209219173463153986743932264075754737528941830577099671602332515893748778162878151554614615101590893876272079988425398913394891055938404091942430385761839337369196930199238966943776043760728412410119468587757775096864857211147462438072353868066410462458888367498471163144544533168191115829638895356656348482923409961850245253329059330274594484541025224252080003907216831177261553754595949455038807156505127629342858703722748918801536632660561336591706636342414236356937948613738398756582325075064009256026549565995586976707340000938825932205193635330822707629526762781885446588381551529989050687409346566977361350176829275349683629531078982911644723162908680885540474043316769558981123586977268834702312209477455707216935807041726690767955900887985514337604333400700497138124767400441748869645322807376324762991990095529317722405824795176385884183735053884697711247241697904373237291557591256340721883587566425178477544115368988182045251127398551284998717725972039865386507825203216215520692488618163837208598687261173108828372999179017208804463697774906892424596768989338381521235500465087427927440561774264332089912297367829293407339691012288730508168111708712604471937371956916444055495416634058707659318363869863539199381135670657045716906509763692443572275986366806265711136322144558851878119558804736592790281782456228970030920448268377401162070007496106600208029143522240451889548884529807420816322310627555240634618219313747298352728588645408749705906748943423437769387910786034467544301589105810425847745895616222817997501078374611520297395945276626131898267362673579982196341890365195524888367656881386539263086325846428972787854439597932775195454041328566974734521483043426986008282443465006588764472696426163746247546365062780137050645271773416989121193520045029160088470917827073221007442940250980589383703803132702962955764817530603956151277548107665213502470151641739916882828291247045639476303088447556245419471714426464188269751015243456675600861877990401043669070951465348078918915395567316501184161570451425835080498925907744564957426566461096302199263240255387370490541641646258243150952229590718659040725970047088108531133730862439499802841499413416252639625417088296127051363483239478345525330176865439380885899287613352911195396149578699142042442713874685140238173366256444041463659116635211930472237483373707909890870863297313367684573380667198306232187985756794832342560975266853233591908272577019422015771834104983129690314466466707868442676140711342329046299856798697561025593511804619740361396169693208194167661251258850700749288486574381244525345168319688798849973816634530504273242943985783270681280533311363209245897348862017744574559715963579038018256569118223543770526452679956921346132019503687762567138190774325956621016585203703965295594812417129785812041378095875179796123188379459607853373779372842245113476753267562893336153328921296283244783788700541256862034633030562067977935186958032440930306427778931462879163629815337362489865386463607247319207798636299813642377699629053673278919443084297547636403973587256982922238474188372198961492235465987508117306204093697865654570622651571449006741836693306861597878102424774140619015979944819982492788607932873087820443144126405146113314120122378259925562803303845171510506604558958397481385364824174320525250141165316832831380097326593614907460729246463303796423027595536405491592042552832936555327068914334247649120815341723983235611736696788828515007348558362324011649752475493179399120197620047321387180996694567545993241386375178777084953868014797496794698851925291068911429102591759920400544768802268986859256524390446035245440612011362274091233667513872249772526789246682206454196497405959225271040169411173478724305261990991501790702910086867652214741213822662208190188398943273455291813277516727330301899361633233573363946507525309978192061177294627657755001954237975436786298549306445994724263066356425509169298917749458484170978217959572922293487181070318670156482758653773033028987310943784534325104990612411788481908183060148834143449642538593982441650259395083900353803349883697555978123644927783224380839858894456880422556956720653960320373852557384484710419970710631395851622043638969164900233453663597577910100893462244818309842843681089494021674778033670900338662928214243729043346514101476788582134500992102365407051092206299256254145177233176606020192095868515546843008047214238804929137253302716818730487649513900347766011662942875165409996783797786899055190375186347562091452306131979459072504764105201944560120298445650362105395155107530426241270981000855269608284565250606755413799964702616856108072483824519086441541363628479248516171020711392880612947634849585083109788081537349246858038986433164173154976269245443868834420189755275838601348498210963287245679088107018363939993289175500620566059449902698939274619998613531425341109582058734018912563936176091896885524570309505101347576401380090781999381523316211564045309242018465379377508704799102972317698773544512034453843514279668198761638102170936576343577208038192736482364761723735673029861724096049285651456219349238921535214960641114184010004488653823537325238535853882032305602378115620495455069218579519915056857050086467566434634683611484922967417513088860365135845931455521330273731542383699540949247107938370889941228646636672428914879402226092641058851236951429390791483974774435204973332659032131925462365188883517320421558272793217309119235906063422374226410231377022093915763809052883045897743996515722848744845698571526763018610184024541408070234348727300893301543101808738181814704150765643028927258091317498418184227177724728559485719928574074539200414863237964110513339504277725141917021109298449310080115781942021893429881297941700938373414193201263319536528053698677421285695325542326787533084687814551609389232726262494340860924350339993836669669323060977910133123195049706095102647100457604188875159068578656198679845838609333912690954196592948245273889289955943658464929710389734180432450253128641198871697485175812163784106926598698558549979806314103951077337717141752158845633659393420206907155942948930214669060708579841045366880236605629249754714558795232906308088909511873049995959072880683431358526492954119152876722717848680796182232781871942369377255730357957493744537711253858275882324785201526538087104077766742728327584270948664821585918363237248078644238232037856010644715168831853668982167903636162024335962213204765964406246382413514112840635301447728325590644742306154985310655740112983069482475965165815340790711985422242025713800312878228066438895030042333519302737343101367268556409457100602642465773324083605290011367927130260237646532549265046387490427563894125414463681061735559370003975158619629599420777763423936218004750765471340344136177613323651403791616743260829842210238317189133632753688466949803612392299038510497183793202754350450437030061504260726295119693420154773649703907172811825160103344658057752676621177142466002040166200968535043218172630922021288009727051836652325608332459815157522562667721753858670253045964693573660056607948957975330193305759223837770175397453295816655521290251689697862109728597632954687603414911340615955979593766517137805461702102851454950816672625279092243146441434970765801874933048904177208752880077914098758124537238295905522488548325268932313202018773091995094891840480801501321099706996979200471623760515682881515588284394712937928872111550459529013768552589864093871972323025914377355970381055668175907588773283869918502082104856421396023667646996198409378894032198299278604782147941272264788996349079018501242308503201924659406465885171885156025167351247688238270999607298046885096889604771093150885574480518585854858927995655038619784467041124148062269428770226778935532155269759098539923677557733401371459807639145847486978587921898742681019484336800147575320664691100849475336697512597590909117261299646621680037713068890460888898929461674606893419557558128017808267751670608163567457392160280112098239104108957428012777480057612123436913503488745825200210569467473924651998679782320169858563260389710677248365381657390984126051492064331512002083831525630912640558935536620740614843931652926389268923785489993744688567053941943380173964897044737548795887479204999075622078831853092447474931908969252857934047423463164148935605057702790637894971938403529257628931633955022785282814119691346941151468826563081122787030507267555095199026029271714848103361297496686923893015233254276454501421935538568463230603616585195407819550271390909621617406304150333902074272608501573344396493779192864547010129741616848279686120963740663975346144696622556074349037884816457039400060449683943761969867467202432063079605905207448646040618835162843383887503470700374489738911026522736448626365993926654301799451459230470784386267826901463582355952252264407734674246344547468740809129769583620183480210052491830838431452845689220546460217386285092012516720283599304912268598518454644513899528574659946632189723935091964743943803958575195289822304081429226278127570721824785815558735679226190907329580945308085469226204764817544769272376266354950634813731774193059204636764377548958769889222425303081967096053777346556582298930810067815436672843020893232488861176316299221141391240506203986175774957178132684500444567138680543405394694891822795715095078683664927599994456581170622483712726899821422496966312019509952069844684025237557027052238038322349956648402280159593850905229888852878829786794195425765362970537277772343237183075707961903858743188606644168740132348575719875020819874785618097867769541052208626635082766265333214251893093198812663074361682432312462656735582434137917471464062297519134901636109119789633743845752387235506162649039797887706399484074961959418128357763867713953945329240341802195138216222041583918355999908585974209745068818930598182720214740561067540012280525859869985910107565219333124822465590916488668118364534575082955228955066011567443088654189938077719838560569560773580862642272511206779468134762671064235617763321709368357696523550208090022301400487747645341499014933402799895780616706126435294683868687666386282119596781145456831564860756980577184432406665607230786984163054782264526215684888138027890545069653932134975301161785864487762800863051536867177758805364494705988984654403211169094326739557441329149526277881028005997045300372511876198373692589960920272131370176944857153853927687077801639682239664555212252786559180084564386741160468696069613507948296847060178294514313206055374588107466775089972647428101245302534240587512352649657643946712616985603765010380646146125446906959815038915257959471615815875176532638985020255171895774244236800707807658274464415570981291742965288946851513973007604841075826509441808896251447627139634109101546478840537102257914329823097312436792774153307280804819752980943942969546440860390869113568145201362256049986562390791254691357171072770165147496028529656346815314369447048965694501603263609276552565362446746612805269564164739543432993727206916660017841273710599674334324550744350032439998687825744199666217714353250494598353288971552963447518028298800107005934031188306871724241059952394505722614432696684172604559452499339308761019201664443278835665565422250383504886585058628778774972461330263205704169532385010216259586363991500580278211803897649038394851501690497798972655634570290258831061428827547970372344033446126169892264089588128496918265409082754981221263948040734243414841999214243064175038025177361002744995985315521348029255533391826050844495165973733731940745602313467791703946683553859422984599948957952513884254132517192378212362919658851974794104053789882457912042769354035001603054961546171039442383409091282113227474024157741642582205140123339927202897325276192673137686231261608043538071437517362469132766314412333441251546470341406994678532371446330535745132652365799005330790536893173260098047043749517451933039982422651431818103708633251952348508911973238030588384992467650131716918060424194684130090368284549987375113513936982003306478436537184402003572324656737781027567023647415698254972992838819532000061183705740576091661535657336303202815746425172447624650240032696206204826940112178942381273106132878324420875937866661496931739669254516532726294623815726300466477117473088682572427599400374095005536496901512434549290511952306204576234823982070574014478138975997111394834646871750973979768851761301318283086007537806535683591969812489101256067090450793688727094828521109746648569368649878402900382640149256593639556554364501025602429968313863331918000894291421274023381027545016123167166930907970538366852113276519680576849191892568665211560954545790376756204364574785765185560294187461802909738883738060843626555635353622163250022462027467135369274850829092530898731350265118175038949534059470388174805737769811764733459890152464060171374990803587802769849506503786711321701182002821630112555081070074602396973691449451149851369484998002059496234034604375200950178525036467343294120920174664560799565598937407948731497491567710953420994375332724736933053924975702987571627297780965352096883823159488818475088848597484374234598617604326652699236792552461860706001492876435230067524496496104984313377352352501772954770681388421021781330397084244774674426889269205147621460849613802452171780863665507493230732197562337448476714606968945333126839972916964208934114883836034696471884441589074192264242249646627116095296069347014705081402574189693118607696386348994086481060745047349447759273219988704136621157882841427985269066987990954409585418262621447960481745788270441730367368822557348758148017144391775243408820653312246655051721854178466692057175462127045151024566352905244994331256796043662693032190863709319085136809872650505061221206971884669045542223184181511042771698420914983831309280391274072779958945108270889845127570887668825015240044126527598023122763362381797333703438010451958255241759673637265422609740343399078607252588881601475859375398056488779202755096100273957334150875515516148968048018936177002046789993603922002843749401204376219975623264083574862755003484636452774236875339879765429451624428548117132284312010766811757203292257795885144697501800754239056623729132067739303704776600599996793634350876597463079000387590323309337681914239090284787369996238245534390595161585754644263863916913569431470576820068765393558681742301832134747461561890439012877883070348505706699271567704704371877298085764293838692319651290261491244478681751522202194120358748107972730428200113624989797113560805059068721082027001450124472884965391996463138515234212922996025526686808443708215095680581684332237986875547752989475766406658991496224475050156181644302374536781409868766047909784870895926030142738255550599293567069688230845515769723311521699728257053404287294695710479410707692381765738546622536713825520055827437736371040546915225280729329810666799163844341416730368750667913008674596885253686223750684166551540841791524886744944417910286609100374872811416996065814764595464844309574150011235736594938769939495141273094229470987030315566012025917565384531591987912618850614197144215743762904954159574299981419779831911960356917452840472111787813971858945908590958855376892395462965789157739286434480873434479571390110395568425899984536589923306507853591574666921413832835756778069590381123225742948867549385184915350102084822678388839639893045230189585570881265684615295128004484663917275665860687986689875803092207884132489429516969756889341056225931485278574541072909279284364257798458127622546042529712852581464444985548730355557712513249048953239491421242560896149126062821806801639314754792009450586289284686127699498305440253269916148495880823452355126900611545942868228964746880000447321699904660726843073874937913313197642841657799987347959788637245784919741386882658890058256333361394183544776415935212786764345129993363500980908612206429214603541434329533071975308484600048549050456755068071670759418543228799756197078758269001467888536162180957703182366834992774224088831929722405316149349798819089924000244167244625597912422699708585755866276639602520755336510217690610690962063624823354889445118913693378461028684917297111816550711668038920670298067515759553618779865490136877637475890476371393651038655235793965381712133852600342416369962624678966897449609335822526442271493398013449953416873854950614209883839709316653560553668893776732420138202201079599447848447407591495104511435392803958069213851473703168566105755488711960970230610465445510338605912084008158442891406325436706752212508206336747415657470401254383634001693481494759838464234237930123618118830759001852199155330913930908690760304494335508337484456036167927132428888395625792968470263791661308161916991801200757236857481574396730807752534355713993189276760787564428518410255592030668802264389784610091937766342022023964894087776123823887880101754772815210121499442910343643124182947449759223451946292408236990192334206620197294674856923347642497600658581843786032230861503715101700653284528288114002887172840130719558520806281470089184615910333671719516730775437473746501765777502567575102783490128114685304240139200700709439940452328944030830024482887164865073399817299656923957119589406879165543873645380758685881265376321513679888487117407464186816682733234767875181307840504651415470078323302037127640138999173889599317583489757927487664533882434982072642008618533946939224508422426171829789924465500390608785489791586208662956145274501047571402536752699291574951277374351552199512597639512168074760227174329255079345011946728710885134652825480585239434548706096589830432712293289775569534637690213597290497508426329523526084776560316784442013336255303309765650465742588337327099796508894485170760328037935448249574074494415324024097829967128847569921962072375780879720632206922879036677303916166245562040439679330585195271993788672060455773435891544245760957409925744247325755948197774466026124803028890794338648479275303778732742471269265748570118098953036708585808720668856421523191685824612126430401599580270658097733280205518657307679171130097895665613390321702223984831771284639256573536417254317363733604562205721281319154442161014048342284516854571849184852170755086945386401343376794933143271965908351953762053670774724378154832015794836287059940607371016654256790121406102976107733366950104084110987634903769486280418946903334271710771838104263629903045095433992882721809283599881488631710748138627013425591588830496728164009731360928182114913126555130689744277210522416427353949703385273593442554928886516087647826735967148472491790489813224272668418753095888277831629013712827342942644613346159450561047614985664162582551374655092012719399593241948311458634465536851342210847091817556332340319997573926001450266501423603898207152676421320474679552954568384988655816043475671552155276764082691657142823785641575141550024268617374245907624444832801705945861286034607308556425193262794537875517789030170085799289855135863620073212170309488505560865479621583843066670702015353195303900385827041981097737647166917884919978118754024615817462246912557212592038247934805475529420069513162351100802080875816122618741081808226353701729988869066266798583270550564223665491465103521597745010551621489389745310915594242887617415538862387473978026636387354075207487925959389078768854653269302049819708510512504455464531537143168586458355047281578261882560248290381761721965896499740331509022050970647615017286896125424412940295755876201598693519246222746475845949133779918750264038889866118593043418641201743131206643057547830840733555790795132718106632357518389491571887056234829136401740148654214565248223601137143823149838334996913631541824753527441748257667970598136957734501392591652425447465297450142683012555392490631478994322184915509742948476230011510720581727757985777548716606598777868760277074998264013395333135084434680958843808912723178882634110491605552431039456824371066446898277879676877680467549693494083486426023519982803084699357498364217969594604351896633506475241465948270899528976465594061189943910700715411713896171328006608219072521566451237851078813040810488244520285523230272554588532807567332860702336920711857306402399605882977132207364786699758166981692103013942509576180920774121608372815585972415032329958772873705936839519407752539187521072233128969090809707890822341574550078163487910221259915198982272729188257073970373673496621018685952857887617898199693275025556287869035269778950817867231024672009530274030411135470112321975188105883052369844318265179683306168864662570128384352969229507138584980843811273722764403891455625361332304909884202320436038987588496435108982711995022918725749641996018123566164855438138373152169080547162312673604321573074771590048648150079469478912845824412734883069394591885407439823146466180393172566049672566521396945160775395302205878158570950252875034805160798830577922797941642923726909084539155718857187667815014263693295770560363123655149356483198305451550536555955242828583928822171472709431405605945104830094234069987319603508342858028056934491011377464493723322378021286611577508768775937056046004117305228710864716807972426033641868080508520472699033748875552320224163807571719373318279678227029649451999129095418619891641731151269842764928722202116244230823997718517166591362540812000060018587833309540772328640796057208597018390756096317574856492834556202083082812480409879430179021375397712315524138347159516385869692489663050436241331621547952212737309627959683800522903279244489103005837143906106212145069525734325969683008097446697887095444348580474215324990174251655619353280385277252915833490382781524977416629277236448864661778401822785170459822928752219564515411293197440064870754170052831163467897105893111374719172668354043735589421228544160128887177986726956991898732231827506732490079476658229085057262157710497043975873439611168703044878037512453720187949243781391420551739628679759447935960088403463516526154969666161230301186459104847028906610929011328487827996416245736252232976049526976720005421133364796426928534171424534086649504545396990693350942232611671166037679274695950647203840725776970170322127325335008263636529128750533767759292895421563513585196938924216191703485878696175760492572340017738684741310636656193335442252211183786842982884911907290076309332907292902277262286970739857783616742150093828174057444274997289989115575795822101899187300300699930407406598217973013880656726113082887761528361510816285921178120042593315496801366970214335827443576625157629465728429848154059420303063239648385137223296031361473909257857652011233375866216560754016210764026849172042387658243577584929975802725222955085613493316081657739697525227893115329032298195510759147921140999422677543204452116959417944222475673477888797895144838725202827601882309923548337893635713685514433803697772343010378286841493638154740146280256039377319913060847526864388987614738099562148513437590254741221321519186861594377405536354524997562421196459355324856057327529574131475083190525309300026700507670883494527918233238191644953944355332482254144721774387873133178114082081596941427713683894768275461774077317102156661024134994579708648832386737847376422469950006885372252035683595402488054142825527050520838048705313021009652240034508799452105142808637636002464341493553342114023342029748059355933479176086114254039695575397869249548587835873753581184566759370686416906711178592661414085314862516356542242978501702737280265676750980345391284024226023605137254985502344964531132991478610067125640537580904821955976803100848946172073287552084693964644414421809649088526926252511281861483915039008845133147843558152225639420805003281883941551740634142432141852354611895957373976465962283165895306375658548055123013966278747866558583546017348263820447459719210056734950836369857446245022306744721317597203747336353093852328929258975428613095045415891236808107443804223022024073584807553615274111667128297809633747940639336403809213441359547061761793352510767939998082727104129740297061710494262309191337786449601242777464793317793886981268171631191513008764936280686452110450392754446623096329873759846796669494464998030815914049643059019839447634426361482552443504769571634580040819768269857789518539692383423766917621143715885196160961713097791085771606276540252141649392396700483127572398517469890793755925270497478594464004185385668962310344485465403039998425537314747977820162072327542653600672475100967940840297994391743498827668030365646329225302776390330960129549412861942295474127784483445102767989913051791920234660194528234172155386062876359838125882768628235700266588392287073763184256567421775562137799852266952409986720193704088237001952425635225981682151182152678360664235872849889068075051223826464525935167752695020035668443351411336092427540930404971126195477215537858045722817303329070657697364818336722972170133076890359193115386013993467730319365482018909839985198886749715980301377505433198791534821622400085487270998159002954494164258280054721772071171249690140948029189600234757190883278818987893087974871861258898821271094891610399516807464617591153091614444598308759111562399229417693911580786842026224132465326267434839823614174474456515396464991361131386490577294220228524319650293582268164844182707159283114491113003035434448433793319512417694892539140305273671125889632905363219726549969958065856408424947985607219189435608392937258217337505449542002729510212946794326444964599695034905946649821706324514862995068525558649072806821156196662132879957912527669348514316254283060849348764744538606019327370716984605626488560859694955307054152165550705913790097438493679895029229764807099356770668952750149042683807608418620051982432196163690918776874955790979235623036345066783123781393171054315265457954103654732044349939384290004466858799411833209671646991270537944371885809031109570409201071472171325405518724208094589909510718840755947426465031253918852168752656204119241062154234693229420163070242078861775968959211210663957655484375212038051163128349735892741149626212339979671085391199063572362031607783991600484417819260593126967288864133007745988068323391249732330895342427431060335550404316898116760377249198989934621403013397245825421636979522047583972726613022218907671907855835809695443369923020319129614051248349327069647316272095678408039768327155284960392816701606447764539799720174697314787301805096845167977314552861741197702084194804114379718227511215236686780011016812106259388098710985604517388252754868619358651277816326913099816873869385617697372544502435184651707059792166769904463032688658032273576062289312229042484400396101630072700418206483049205445239678954493379234983640633803229868070300894632967072047446050808976951574362362431399452824929049045925547331075793316414161041513617172138535526493952539910207513728365299612364939500517599860127711575678535358697017627869960383108390955771293323772094200502915669490246798183231997474218759279252573672427952261668058116905008865368380536090078509211221707774925224657442888280636591090567112609532365793375048132400018791239376975472783816550480083687067954036064415529565694993409004642976446660433582347105857306880910877510496146845174417585076058882034370055774981898862675190637241555776324120299872715695051238354660368791274490851544718247889157305385593077254322989339503664090295378539776706140225221696747806148663907448760230368811455525506033356540728132763654820629237706606618301627896138830421375821458940858126132076136651158299978877356593744030178384714168248260005144315194454885193775523872936512400723881292123253801280941422333162455095981307750286983786343444160331866920924342748148018281830867469246027522366749109592525740864054939550476132989844118968159947899753018801589160444590655464547613962072926622411592466493657303566440752051478657462392039044961715185940948628963907497699727317685170934067577910351753422442161572657278313977257149175745297197483226295923719963063037840431415152410797796907359450068593536126795422546855584458260191211725834691384420401313062939675122156604206674612364112659053955031955011519447217681598994669380214517308616539113980557650575936188571335373318025137357457670201772204778392553517666715263489415500594263182367933336754753618867683202551434971587497311144176914703993837982887723752477161049328379225469596310158966005412128553886706668937466737216132434202656344744975481439689259384069409860976021732788088834476758437666168240168136626458041071888851081378936462343703521127725779692558918892407737358671328285602469561020495304659536148200292182575194927956752220082435205532613377393533600470531686989651784019119388793114279538758328512568451927499876656730689720684267911838146826344671618821374470058801666824875073941146638693187572578330263567898719995936289719831761590447782210682107628726600643548443492808904656986921626356667008611406722962022180926707211878265539064793597903438261518109822131377671624826588763249839516898731516150273021633857831116009396713223208613274572408408904227098092951253069610057051884497264382220021053336682183863201508983794382225515656713691546336436028242435264444764506007105249008402234406522825711773762800463689239589111004648432723655512280419206868367686528686972742797674231144978090223831417900859193191271895136697358701903665890068065136213193526564202635096087940102071965473567125532519189209817633480140642052152954464675633425052118057750060645110872755557791378460869047902890460597189561878203862160475753282418107155443161215541737273070348056805269924311197026162990502267008260316263041218986449248550670437838654193084163219860933572368209492126580430262669041963087943794645838733057097052815066294481503322748295819770942776190204202436696984822761486895156863048115482312905957986667798808910533820329600527969310055062721372379684168932069240598949477214520641095819515625040657549423654856715017897755709661334815896878844689469355357890966113998645387695205685593265935231537904551615098875112188949277429207982080193657000556001610607169805079838250874332154456561775507316146329259468402677212390025147883155556325639523956456694654179608151204133161731790164340253264983335837968689446828586515894453800529403290038395431926534225340023540301263010633771591848737776812659688239968766067280933743375491129777865857090980925812211825852499889060494881333906899353345808976122115217803099243393534274814856431354654106805284305211443654496481152717504479480058707424964657635131422461485761863737318031683590575570335776222431317651793027380382356138967134378951527754311477534802146875590691354480494314796812846043533580992341316772787082822340904915965235213299343608744025136901825745954221743590876993747290133523649809055010833109079544780869156210978013060532451621498415760691563876664473583603156517290787626748619847959956869368165362594909923822720267699395540641957281026911785998991473376803516607966994312020527008553366403498320842814668625849925250468881402111835191732273344708419726639633175290872388039077953072714546647343088783065216525156737377928587463606632252742026348457993800570419932139053338441980940815687755886627894806040558099107098400477763329248677019626087236466195999320045420533154551026444476807333313463568404107413967606295712026593905731062850301933184387505546756743065618663765686535821349327296126986521947618191546383130836353713894873545508790913254834827990504639427536277058422270624866116484457821329602505502576594416037557961652327272836453643517251456068892648027122695860623227943548882843896893035279160712832882894010916026322442297577131432584087963398946913263641767937501502289348016481249902882743238235633025971522107401406508683584409128545682156948742695911598861732264256568405759417572796498105283599207592567230312100046058527823546284437805659682892336817678871500282390895380160453938494713853568499138227238629031738272095373405701221869664916689035986989848769048644087415200333794192352428460366551470338612665635252432430905504422090042608029647367024018713562607781928956866836782209709205318972845278689071653929781435618593224817299186779983983160477215910400028842094009146247700679885684753370075226667560123277006956813663629830859434665457550277745877563476825214160697595393421458158280230163079195102278241471181052816446058698269268180297205303819263904386575106521598835078276062248856672617347142197122867613313474631257660727660147054201288082039019841005924018874165999976023770675133788823218694555336433858734232889038447268014923178114683373662940341017706329302623513697343614386224446247516725932348044077323799458457773858587914584347150212682757707809836133230864371904313353219087907447841637110235809514749313945674747927175318720185422246935293835699428707422825026051674298418945662295954934657585387704615025836721911979296951788757402406250199821929335739722715031828974799202707017078757743509228017197011831524555194166844103868681104407678447381271344053291918015919354859493405524768830016943766262289709510295164148175444699654245114282404509961345080998220285369915538700176069804595240848493982859698330674266873394487456687636851263473919261339522868882706352871540763355218467452365848015347302243618511041781068205308368289293712359108304692162845931476686396136692504625818650968085443981487985581289631716219077479668077652593327779568789608124567402530078924734347717028704766839997466455582069959886763765491565604875865229444856478071252420513787688200633792780445890599758929846628584807940874654644787249208911643327873987045365087827204012143674092655532815016965380601263976288877244653998627145510034646885830057375753430898492482559500565484863000008521230750299555610484581493782140495115934177214118991561274016972023650196924173569047700324396705668954952754057725932702191226618059606248917806343225465439359379738982088353882297298952678023929413837997361635438255153372039520407193125701753041070231684272877772722880651178951375047807323549395097407389391077982519941521839613694694303350506941652580877782343420550004436797638162273454740320592634344476163764373098424556552244549305819971331373388807656227350943009136185500497686460024727454424513029480579806155576500458947181704048300519643814113266487559658890275288174195482649768454802173441329389172266229018178895487290766573351370761940276834614877873000764655537958812380907326626885066824705010031442890879369153095238642853832861049283601486167409244565310232655396732839503151650148217803707395559275322951222459654904699659376126537122163755252303213135535927919580047278960810683678482840255326008840744621344051152147385179291242968517358002955505139820788530329593510731761349949022510641533236589976349949106987584692179549027828713086926378983088680223039119150766243377540335869730642662537410317623617443894736144313141657775270515968381538422300873776183543212068262133471816697130136248969890276160262917438907444112267826365658765449399743070666561286591277755358943577469378640456181629888077958533946956192171750535675766154198347711253327774667708701439532459090094358680174260800259387327697996100230940479855104738496403685242465725138629129735930749067425912625226918414579171523401145907538847789914547596915474806535749091783609229046904905455151458487919045700373234886608598140464004947643431874132022931262550873031284929348121399526114200340520081985086740151536660133805957946459259267826269026601296914125204371623751661111960151366664189732792404128457929713532905726253193879224813815232338474486758462821805396581844905243390937702681149858591331094750189048624610205964608656123681769599609717668709486623735740183414337234730536334289508002300891004385470181802697477363220487232284692418374489500317382278813775378530427742809255716975343771281434478041562305998082628613427562717714567946009861637104858360127402935587044120158206787470857796917794072696674012507617510557695247537429697144487409734592839149898363702287887576316553086526746980662560499332507151319397545307102630366613161808234697158224393041483450169637994116457519576174108870383279910580384486307292623759763813209885951683478163680473156570265069960449883671672913364283875795626156568795844638285042206194265546571308273014822892587816610677933388206430682190456170436385263554457927875890821055669162364977790494945238179970080083156860349076766977734972855093843403769473874466629758775621226830814389035109884141525358859689587518904488650886915935519303862144483426286452350046891364279716849359670737370736910708642004263499365251771403869352481193233534489925349577345682242002614039400976161239313275390207755603173893298203636919901593882791143214459683743217297362923711252749773318120535926053626329071402279328235161951788511793722773516738465323321917584752776456208013511346782268451251902208052531521583860465531520029945020717387815640738672675717200025498371661552168055743314933669924570429300855600180608254024877547758478590777376969206395700137253410920481227461962673629312297063871458981387068846059610257501386271705316778278534579828567349401679208579190240840818498672510979068931207412665435650869515036491387451772090430164086112038315116445482262505070696720652842094651991419778493540756265924066229242718992162295847267012263184569733754372603764273063996940094833761501488256765353495815472755995205779602967700238968165722460318200021458660047901180031046368192251527710543181299194990258800861304328335849759513370805334979466895517594663604771360933299422779525494813036705978047506153420552881626799052459405449298965488050060929569139158097864711475310549099983883356758246550126189361900786839137404173232832666148436255615540383911239709081787555595512881249136086985749618135323362395698213231498976813885443636855334270775597754307446665024549399401471567829469324872878827488189469976831505391392535390023308537540637266707280529789402737777255657280438453923436354501477031832179294892179942583319458985280983828067771083494259187005222735930969572605704654774631334426580730675509874032745634078038214481032802832000015629178790945584846520009989498148599894225025839132150724924988503788152099959287470135264664788920717025951892360906585146590865757696122257301110213281152544309884300335633172196703059865614250314046911061002855994346423885075604490699086135265293528198271928432484913339547446372851506999303482004622419027316497721357771297539278268627935611308896155208278165260091616397675781850050327327049360017860818926420493404233056519151178130148049980347404732161628573228362313649773129037429975515617337125730369064204010607476879317613929993137794749469836175070075515394921283096539810066609839564178927882624343834717434706362372818384576553068838362357762945475957511529197836093798650755846842283940391590128475178982739010352449357750888524443099942233620569819068004517676464673290477330507881862463869109013738295153066544280394558664386982608379043094635233990968564812874406083233892935893132843825948705534456185212214462543427705195205531366681078215206525289513251116916423528357815996728826651893495904614555911889462474141658849321339530896126107772895605991335200401962059334203806577062434394676525010476607375214878580004642585852390450709614943042524487432641769188720022237935131937959130139412503189845138017392170467057973246802528447549230846136162223923770996860048355839622111498167320428370873309569531063177648293468980691195266756631735466086852086207959664974268619112375290338847382218312238590728835016643887392992909200510707016202379915073869027687760159215802824580720109749805299683415702043881001961041396498903267096867840091458468865646864610705691772033455195887440715105246640711404739856695609527303601231058189238494330265412095459655150960065674051194129661930958066955517369423164958658283194356294705473896229538119186377264221395039684521990178137724668538103418197542335364397122672313466578944720364721580234363017760371904604250389331478191518172588826061086804777711584475800509113886069389945950776048937936677731350749988905863949092723127017568949163991512566539883344589672031710027349918528090909702849163463176987306833796751534156383238527701107855578537976108237918336760940454399603614027486172421487474190223377341312192844956001543595245681722888789279740808626091189534274659826842213918370067308401216659339184740035209864752079338606712429627636870206918001618635854233933897696330692756169762537323048858486734431022043220563628774044076427645918379279083549671023837965043422548850095611217214750256088221074469223057073327776191519816858047756779581710541228967333040649365671528233006627966775981505477891084280414820479585446009487265735645404131699451604416835998557260973102336710685925864167813896816349705732280342997023455374108636748001380399524348860097317533588929111694640737831525245195711415828621229202806612699531980197845804034131561101542157360462454665716255936531367844729795387165464372549959724296014377984663556091946430803371954521980016222587637495334009207805718131973306257321661609422457572784426835871321327234110715310928393466517390652534022490584155995192450984082412760463311685387551925943284961813252344908632408349347833131837023647372936567045121123798596492077104379423098001444280925412730769032034713469215420653193719049172092034234316899075116320213147717634197498563117483214509409878927480300717913132887615694871113142272827194976863379097321529453619475900097701174652121135836890103448169629040940585165316154241416069988094567673760236364424129333122298092077432312650032620454563979202645303156809278781545702542012040397440006649877813594392954921897118990144417705467343150181336023709189066302586181342138516706184503217588666025593686350842237929421928268353717388723908305856128576617859259720791932248209271103707087290975893786528474616786666334961282222325276021611381691844012202043696054649179377771440719222516235799239807757173656313887562187618679922208761581513114162071868302032677773831294691156100894418638127576873770355204496799559391738429611119951376375078419947016036880718676947581312688957222227479138688670106963435971553117137485417869061893261383031491992564210398450398202611310404838903265531492026702655369304270116963166460523801732844193355053210641512085357860913976555456167054955135926242962245806767777460328717643351513471028986919736425034057639300111208935972254269522652975889118546399400691052558565839005423558353490911049958445207473311885943739853865486965443555692562794175003427021965388626148393116735873772902886499935785987768821980866870370715040484332755693185437425629884638867440261824450007115620762753513473176204649085429877878398178960402767776756753930302201283258759212055364558021280129376066479640815023890393255939845479279828541638050824027160454995030917197489226884058783585104334192187896424043081331258822006455837470089733399636517881320212255015495134710765643185135231998476894221404291646696864455541435749997530608181336692481954845858197697827789916430025989714896340137845809106293123680241508697328987512311955737321100456775582339737468484176005291806374683780711309812508424103331869515381998952726295435385675949557096689375357991204019136008550593948666805565912547523284402066645738598822101637821933973286929706233057247529502971594897196435696234956521077077025149564323654145566564109961234243492907915586442295473036804794389373699169363807715958913145139671550433769445272280203955786867897730403668478596733680801522277353137450722036816924856513973214153076745079613402002045783058096505385604945806569077856978319857501206244612822562823526336884336899609995861290766587130048482684961411829088255825451198703192590032659748170068352436378942458868292519762943463964156970996007241734871761670827303232164016002221329201037570324873408608681041445503652854164106394034323024680928170670741665357721847842886543631560106975989695240370857721502684295127998235794387552498894115099017262766128768374135711695961190233834388183829622461618018496485697857483624996087671799393257727250761324842438663239728821542155175749593303920192113208544076758462872509662968628249136247128068085154213805195432465967212778675091068908573396936010589604704684436743270143692246382241655666961912288377386876391693752058296300381883133160576557635479655411112147064124363257541752835733597493879437373178341230583142483056753337414833685236141942915604049846934930506051491196645483987825655979640175636717757479728356282934924142120128448769355081197663978266877867837118187212264169089895443818603170507076818234434476174482087820827154459475543653619907936268105756659538554464609866509064935751050219281828790059629840441447918144996204717046898656503350048386385209465935832170611473813587689776952361696115386272518047037292243922383601970645337766587344244548545583456607210256802484344182406744771426091586614847734109772849443633852710465778135794360187920141757280110874709593543793156710149309293545384184711835597367871280187504324647605037360676394815214498618998636444300119358615202217737694133540571685404909254541368612431259913462448917695818390496809980518676941509446183474602954876131862583939946147231812216326830932089025741169287590818808971387134674538293960445650100750779946232607331767572065490207952668148480183480354014630608368074094200878989448523533425599119179487319990832191482255463942457649857461113429469461555851329253139531771623698553302200929044933231980833783629037257934996392997866336532530502267560773797125497538974272251757065188767831409859483244691681611902526501328928969423950027004214919651640362207377487193380450809832251210015829125115862804982673324655329698370400092980236224290500248298425808376833863267579379016312850673758602253975176680373190586550679804544215411179516706995203612850789334781063793808871916703491421372350971700644721844630478362730334245142957293922447001342250988132606213847732270125373510396100887773038264905480609632740937135972368942364270217498203566987667323718191238361676366218596961469691844624248308719452492913322261640660322664602704027391824787352698252791565632563018320763603893518646275420591367569008285984526658716834724896550624421520010024718265775084642471733104772426445044022684808209249130384947406791915858733867503443890830552151514546555960422722973401644089739651567300150864752332209462186867545453434200910922137062272066878387459181708232897337262409541489337152850974033672336906366857657662568787978213759032701206082390658767145871479334869059944001518618274365902971217922778998403327129513245838538642613934397805770348868870854945703918964320388393690111164749306380487108561774060258530923625551592865427652327188819190801973753772259895444671210355514550962474075436999772085692648909014407343949994079522697362902400436273327431179182990224122068047216973908093835398421932307654535534651498711751778206742313723012337742971264411875482942707787551717613062272137127603403461644741857562389827748493764091590287838975845463550235235579765547667876565108691680419773087849915652567938928720622747107237318639681317360781145758082559790855353097360128933941855870404907583114771617885105505316962220880132737435861573652007789681838961082303895042487667102984392609874179880532554799847871162463137477882525293417306248148651431316058345626888516947317546590426596490261801622458524234792606884786797423334411451708780608744597348388035017633027698765310426957075887234554316896888495469210463290318489369138968020306838916747615112543807294864246656962527415485486980221290211706164992784515632190547760133835824971712379923312872054399269928026165556551195373494565607038459564438816857434630215800627860428553139881796186934792524176609394448270365726537193169280663245542821028532416412255984541066658765320002611309594547606020754239725465455671096819105369439238321653446944745169658386504680140257030718278843072944407486000829594422941623884153020853171154051819820890393022716294389802153050123280905230716757083783899333972851108376188844666618638699760909816413807134105722215508144503329510871437328765621399585494056653684964919988414933153840536693066008114797895884875285112461305701911973224145966191864690625558091768597986871448758292278574068576761915012198105631937211702370593624102298982796542315501850013259254570678545917336917362909124554653205877932679111337384151449495260936932691097956848447838285034457513066168964297060175759679891926441917591388218944027471660457565140602408555688989468481593376651101399675301376666897263295032274655798114438378127096107494253727631637553690745478224873386942850955522787612771918863465893742556220379343672877334648313056126941357266448447324842348933249935420708189440531677716368424217033636626991715857131606002766824234629138420207449896104685194958269393051082953856852596121147929003509427472998290507622756007796255158962507548004584323873307675575786673359766900932237629279224270782761949104169244628334503958026623231099244475289629535681063266048331036444896371257719739614275882514381912001719179691127190601803480711329734665339924685642131119358780340315253352712331631117487056926857358101032444778906380002245610708423792848667898652243145413033597471342928754778171673952666088708906364165939274850538995366700822571255418110642326734361246053700828109926574842005636196544772753878441450112921331481483715738451723808944534145930729069227833192234503345963097061459173701315122099839278848579365816895589964955192305065989276950554435106717947561502306073478401862784745348265527120886208607883041395739269569275515616233290986100287132392507870252198988121616136421878482601373166499259872723722714355038869849127055573633508300711099500521200682615966354799609430341698305413930918927592953609844885612229505903968044011801295997617721108533446493030568327063561160808151002145922643969278058689110915263458490709690133841812718551095117363334434726575928990748051392611263242848439068297937017128115509206850004797013442208020237871358566027787841884640108020530743556267518141277913280751123268152029417703659019474384683135473120318522242264956721583525248143973971090785731320464696307088878882422902766300086344848000452142858074316858670298314101725316135805333259125235956312176457685513365279595256064433689646749519442567000216303268668190371871746136065383189834692540457412020310226990193020049750521499492064660015926080531440839550820064692813619380674220912474398962945869228392693525471933262143073569741345547235986812807451808325895222124557623474622331307861055752458761102672024196315777112160202286022979717050533522932454443814536571177490193951888974129087644032282911372040053082214657930910194484984789534638352575292737431478354840464755250480194450692056152312729501439452325879317971719718664138999985574465402601320163576452848284806140340835787133596007335080424432103702087961370100797761370228748485595434347843223164096222692407978030192140701657224859282853356388030848320849646500249992144300872714882340344322806938622871504207162679845427137528521790031192325202377876955536216526169112604588831753509131086250041131540464795975801579026199275609587723085254008884020550082499875940118843826973128594786251879875333259528837752599858728151051368499829785312234654424124785118080235335556373824862896664704940883755147979685795680293575442494988239035593681230438356387263657380254251720110332763572345708708930874099667263825745016970889443361201794217049081366668469641671912560973766991311173445594695120733739978365946152133484753398904879825758485962783841826859840178176050855042565348441753432931094874352679127714840298479096616459803098814439062402338948773165596873730693893390964360301893534192512742560959926844893446753707836393218756358036136149044561581031105323031928169227241334333487073284713345357512748019881209795038794230757930229441639466269101811788405048246425610319345408630064038754355133211728447423038803170697793468194039130050459927309675577549063992979450320051920716003985411617797940223227169088045680074386656605150146441146344507222947567501480827213606098360203894371454170736576950365395141179499648147098773940554321695604194365226290182392360678255508957930891686746448293596214814632520950228093323540184814339354074989183275690980554768219177678766135067608512003550262438011197874214744291319203730767628026429569048367786120497225535121193341613523328977935438822880648598010142778756511195702050016996610563275881928659447901582362630538215804512946698137943335734261558984153158627572381832740859363976559519631448485909326461050616297606784384084704573193230445271025231954063586653138692125146773005915759946666703178021936594213830230920235050447746486168829150545711149476262850300606821600777108373267325541676553933749964332531137829285029762718378082215070405744025952232470291542757601894326612083313084230802734240813158142079578478486282874379467671484798935145791088854693365414016945563760171066684191451737058192986915938426775750071575233232728713246418709293084763887546066844912749602766144745046034711040526446434530298500398605825680930271122734195954004844486464788443670404422164874981572832044169995231329647042315528746549413572069958463846156278603472463102171550112819274676256337394753412381229801849127425135369620707617161333134009788539546862456181772395096497051094185349195745037606399190133874111712071969667842710560765443137445874396655811254196237687098679373639747976914719501830590658912126184360631585956365281342472069935508760137252940928646132963760736611892283129362914519955125871222380847165899476238625970290194298339566970417196001647082666770968921852883768898576194023149213624266164631288683198900914354098709753042299639748433817809182494763124937197994443626816184353236760922271177105356882731427588953589457972438606459300821075758537160368035538548943133215205404622114559605287707526140772357453332113674289747761328596129814458901859327554307143256548499804509678578373631924134179772516451111082180883535968822404615567694008075822913143966263201022910020762004953851975910855274426000030075453613234888050164771208614423565244260540377884057206663608316766548928713769690691918257409811056547304087017187522217878413357859385731143785283615708953771097208638422436076156616056895280445164102282488253782098997727575978157851604315506301071326389732277824625729163612559590471037852532259313812438219539982795641179157077714266093959179470081782603950941695684540931631380584236474026410180484236774643851328520384290692301712044119951406783057174592232268949771508712343156433406165775901472345841028188473167428508355032362612029721217969907179935440022809842103564408669927468022568147242417559616748454539387834298926281892059066230108551588885309932268588459051659764150602933797658924730468865151934844909916969423127666557254329753323364458592538336593625155440704588204769359686192565503162561359682595168943226867484297969121558678811644593010678235277443234766134101132805159784687577329834089983974392617468431124323760215667119908894811469082640162300293672715594521062803892974624469928894754829421508341490980144557952359628519422113761945219334369459900454922829384543228191321291981892929879052781537806562953035603361183994131144172141884543506060364249051331391605637946097422125377520263480956484302062197529725144954377256328688135929258143850100499465421931431906608202940089781778940254540442563979581504822313947423241153520865488609940569875193458844507850850089827184536400105622252999640794753824425683690824228137142342488598654931954651218924738495937522813275799661112137527232921032262342786960012441180561379373030562052939624506070029914032264479612660383981980777171100915034058196277985633973985101343176538014326929002758904983009739811321551152284540433779205380036852907083197041943809016619191228394411580423567729503239236629300519273700776655745437131083368439558101453051684667916401681255166239407909173525411134951270255907820280868684796747775165561200797248399762830994375590925739803797363757568379400135558618941588250383701469774487336435728397624080969063055679225312946430566696392928439639429188206728203668425013390390204049451067741268306162351109267026213301942089519690232749180639726574548784493780264190087820252979937288339497303288874437316428893831368763380998647367568588329516992542066144700862467374856662184775722602446422350633287341771311362271356021059062801896850583087171396184176722091378992294468741179419777138869827426716639198686052957263233106874016565865800036439344335768063348826515214958511803834728753041945413513384627201975520448130512938954893245886548501822921676166288536986184811203491039950816715568046665115349093593158473192759558493992364735973687530627726887229840710425836636515374197293937489182549037268265912632649553776405121993221036034498658746332142210964648231566147109157492830759299993537439635747307280406591104891241213603953259657391870504372436920061351378958631769352720562641689072692005981756801649227028196657742908722929612570540920711813178519260471811222518415945438882873692484783701415042506943696456248980468321006677755748171223655324560431230497523486198167767392400714750496083536066415285658869902276887344930265404449839040658309044990557007526191662080121037730541005436946659446790551399542321736688642264511322659806868222214066106619750498138312062063330457779529346800968048644155790887844865933375522364212768407420035564418328948091904580550785903679094658133362582041677730644593611317965492053837550909299859017452322357557740806889246939533894086131231831705605159047929842148391152719861755598669018900452854924552461293495073136105884372331043427453125771647106471113205043353698333417846121217718380606709623656133326311257693003625473647159970258325466999274860758132968695478630246400486274742992595283396734716974114747117660479386992745493034297913078372984438843810919323682693589337724379940618561084066747991978150450063757877958619168444772881058956175480892287226907456624753624032704816501116320456556402425116812878135845015432733273669969607141948414555921756191225235122881376132800931910503876538463617136544855443599859377843325270298113648458674108238239560214677927200575158743432621838518777308550241435083641896262480461675140834554803959186224572384885016209231336839542541192395310729390986879015991826990324193103766791073416469134898512926288025604598160576841180211975177896768103126342011137687333622624758495658977027260461834410026731103344524426712000112065973792351782812664884518384058073449348878812487508235953551734680209249749696409766577386690018351684502623159069333271262824692984541722301945375008136251046978236400013047320508287181948878855708468412114392980630653214278553841379782087580408615161819390398501109008106539632055107743362544664762741801458163519853874864866527744433358570693504569279980566980564295537469926528160563166612764799207639286581986651000835729084165401496057139938200903620546138005872204873383637625497150940551354705093981055476323994847844366955823329917377235861558640402106264669304351612397935160144492650870922535148860366752021637082329149138197849875319319555314976124438357846350026139255034407378541202392127212873464648783407250201091065311742709786723572330221544325886273576037778124570230138461401297112999716980224482746554833621005044803696277884385341870709319971410059282802037345660532857691527473371538030601493665196740341876170426184432539175762821732423936535178241982149930593865520634020967561886167129725811225880994148922078019635813961565946186600956897728274494985258380719354992027000054104793570566815361304143840291463060184509729588852131749325026076829851603290534202642411180411181142420290055092687860300299389284429124352396343000035505370900430141997559544611341605304334798470636806587529395982785266943208172709329519460496444674162247279750470162026960866871342611441406041785542324536088542547241437221665027959282101320902617543237952749670617315457249028714086402677264736493053184546283696109867952952095814646570131684842436138093400819259550200119064076016979914846714531924789007587231868304400071765382288238539612205927309222354337589214016181936753849247582494421002224722952075141913821612739469072498756448637528975479828571694926243421607284981650129064752163031315192266124939685862095534600123872896097288219343393686497731478418388054390950646752828356563810808709674207237648683083518707755808861291855231932683526239745042756806782955723521660976049440579813288844640934815553303924176515077466250943452540573026109411148875043823050418932630610227816686391903092438034268878446764604378455936497691567970363126234562607683408098616005620599311871717628944061688525760998987914966521207858054742504721142470762431332860093280039296529100354666034064420994670851759075591136178854711859862403223079443400392961400273213451636018875023801204665042722140278564446941855613062142785453343899196492037410904348748012438620548009852559841546418570795356896004527623488941654064933181768026275900432343328484517865375118763897619173437432392252758825554810574907666824910421510837738129614000732005893920126694324149334793596967584887004068310348143790641133180524797463090274590109004775158036088824148531960456322292872662919008356650619724319602656739224001353841063100279705909786602157419063513146244393513600922326804432674191837409175041892757070540158685122974417387889698781926431023639268605552697849410532715149713374916735170150115830481100417741273763219201331929955374306460216751991962375207500137567426483885201554786878926698544893832841150261067668670136865578090926858218254355589683831127407923758684957967405821956611234623688345327265429831926148872340529407645536562515180347856241968983457601204934970878855352271922015045105361302988113192531798476597326223205196687960272530588430917724010970348816204232452075416937325791491957224544011025261365729514866360822014225133788656452471701880668073651062770107682771430887004103581177376382085318904256868792964881842043020659017660288139311336191791393865546052730661890048304335731475278512645565888804788663838948587005025039929381725417924346962305793922970179739112262721365030493060322069274746742892328536140630967472626246716207287970580590067800030981780251011085084748178987780496507613073452928352420065237086691812489604134727232352377340576225012463016306130931097313368165416136374218846751832162531964466192499183164429813174210095632107590182950905278304085545660463001211504026764324311947685428390877049621141144518472666490090317221991332106921297884229989129746102756150751984890768055548564925297028024055216787427680186330235028415009317782858678990712162400876386575694676552345392724880601261357491116817441901615837988361848180171040744542598320755434652373336065793778691537166664224229888116482875956010649129325417236763176158141140861605861707563576218122676217566853447118124296000131315615817724370393984826657982919961036933114928467008825368012998602218050255385809297067639574300097519790433974203105184330737507491138319282070479237977727740315800934391565568290251441948153666016409232604191229532648899354858863098524212399385554569389468468560583766592607195283506996818724036715087489116163775641996538734077985255653109288369808044212904654350293026452491606344645022407059485072460810888978832233664518793244224624556476411488634588575153172166293748563143143322627486367521379010846858347869494378616919036178908085316206512293272285315532898860402405583961331394714484557118158051377092984298420234161044662122488167143935232094135229069547454994336277277030834756154021379677016594883635688622890498957231614997956137222109767285728690975012851069867736575258743705940649356328247969068149658649717092784672920347062712455977085248748136404693356392938896633054471876855815711548323787853561816290180411354840841126882719774754324698294265723136104732229625811813535382815379248370880169744430914965951759372311970639325665297427381324288679426649778252537278354379143279159742230818825680243670382692489183411813077684390285024494888364822333531092809859588801644949999336241650556672051080032572794304824875557917612805835908711029296534038997033324284603385595902584329949750034330828392804421405030423816893619509850838463392414867412792264398144528570182481778528266889018003273169289224855443902578786172960780384981406615026906360160431022190294129363378339088433949691187400816422385081682261398451974422593599897407230276116505086680074782820368707348106978906094634406981216558281747976680201418535895893361097529512791533542465371306019922836802157222675854884856629016232316497027935712723410689103836440639991573317574246779622442918631387781993246428628702701520874698541650178495328500761464426520711910091209826773616918973251128998631583183744763362029620951553755091375753998108639192863716515192013919205095942707453508376884320859231704794856550407671097630163560188645711899945061369864032888912244510419116003484051066688256499251454219442610678358111083904889292112775697006132181075894939600153706852698437523538939863136186576272494076987687811897651383617179392303106943375901203412199234638673676202910724216546611256366237566857485152061752272086504070764454282610824925461947867847760689499064580434457537802846161177371948975805977929747149792190990583812615069708429470674370943893026824449176615153816917291151436803367877097644770023664960980692456710787466052170516808400011954679180882953978041338472696325985171142035578078210223980523544254426793016955115570859852120373971434561566776528321671199045650658010215622570118598696808798610608760582655103774201037129530441543591674657470796826874257032320421198016063684117414832193895852225220861932184409113329764666308561310051238644991019513544934251073472869689772804138068984824673228273083526555220473859264922126334963653295626765192000252271066978910494076583258186644483342498775986744556790861131104349204645389443751675605343160885015733157469565377031810891750729304559851590196353894369791331011304292143313941415577776417173782433065390275628489733363567274590267879349850795173594788163356816224630451298752719841349664265739182614920238034089702324701908140136407325598037815722637092279054793081823353430141038310849881341782954832049096504705930172796822653895128501844401195924263819400669176219730726276594132128621619698104662432136020436283190012167554364160256798766015498683428264872686012552676753802097776646087998851447892974908664074513764289016857790298477466664444599592525148994738606660274258260049411659974369175324450349337472292652946241731450191306173038571829194883525447727058854511401210715936571740078975333109806929930929972986004643863807635310910880705556505055110077069697903923861502432420079032197361441616704887081948122322789022798352821118167006853664113306115438460613736970098837822024664795841254445736707369013122755227321168140448460071239484532163548110921385277959018134882534226092708311281151790658249460416367387103187812068969335685991774320165018103412829640835116633646060693068559369626693387855809032924283767579878460141115657490060491583730168227793364270040590243483627690180935385684415994073509977319182412066982272854225236841449659495481497012294457905535097268560914230680209673182224060299287175546792570534193430490300586682057376234751859942541699489646074564272441106854172341167513837332440608963113537678014666943863712714050471878688716169841951800953612358324203719003289456060768229167694026460329448517786087147075489140475744176758379918514817330112885317907981098996412565870717282430012340690419454282203174735127414029943012328531376624938830514910671326296381556081404019730233301516016969900914557230335234395408159040898891840148918147772516090644302314422988995038325573035002482612806230052356685778106330965948634267507682588079032072355584014544922406339757862669148489603047177995856070763478999380786691527472892169191071906477413197315806911437545252045667737955548578647840326669406035736738027642712671152876489767137633102685674969376147134102469634057520168863118217111306040227589022612723771828241231085413557800787389548094033886324259503145157788849399498678290552642953848633014083067686353248330726314799642412929654358430649264624913361005686638588738509300811640795900088069073009980772347755156582160108434193978907524116488295025733158138062371076001048510887895439459199351491076962327843319404661007157697601981225145634878366296405144379375031659197538160550578668942384697545839169224412095187732486961817034559359767064698511276855085451909994984817142712356663689105284026635884457085317691691812009707890226975752290533213035864967312355658684517332455834937238656441567807676072636508246409362834885142818485255248425869115958449013397212151256683495082091142040623874977626505207963806769410414681814593258792733131321039236824469248602534963845035815169085483136893337224826550766105351445195076405459741889441730733746667247178537349967828006518769576626252858310687435134759076274524556902827293574092875958565355863266092040190926907340948217841146137605914348936602991153729331215817312249095780101485573529695071180074780924903316620850186241553572812266901814019279357367588501320101207803377651799654526955270520680489120185090777946457970275519730202663809548647562789634551810848960402387200336413049459606206110767378477144643794133613766985553471273947140093017521885929969132835894415790164811569222608695037605761333443448708895166516856074120390633520192178769195309423990236293523062315815264454730698714582290784481118911530933560855033107486179396853582610474034634379816042880494056093845270637382622342891992330262466627029751192722200438643422737246337538876914707690929637541236601243743810734654322427870650553254769709606681159451998870443692063709010871187169962018346287253116858089443097120026792198324391855328365620019836780627204906024016378298737796453856658997696173503017808202797939152282247132858485268405604547845800932884224450384208824594931501140480043905336084115677211359833854156149337123402849706170225283802400341517057299376379531266102812908613542863560930810325789275161932630274872189255253292944246330135388118538806013296237640033554325873360382482504092636115048749385665596857921340725568398292551923557552474778167431037271493053531377245704534088661467709298801563122898267569224932793025562162227758425110589021665814071256614985546193561692902867443510260815324268315219827429414895321221280830110367426271249635845592078154083947979386797446397855175884764812524911658592403004628678637836156030792103475334521320565072126709645107476700164934596988237409870853488990062617028613087959316117710637236561228642492879904807762773379551130294513253064045816832045786256267786849883528372645300884847583992077144969687389723074043650966262135525667361945072437907341605471272591814717007565719325150593453943634403765753467150971731319974941562957728465094105471505547600704613305574767152303552378154859858622432980557524653137356832545607236977924071277550807363917905711215715734837782380071693121118313693448278377065492006387988638255567599630777261386083083320629002338988136311044508771494783072382637783789759440074608736615654209840337191091762806885565589876859903226411835634466243515578064008727731222933808422508312488816398925699068920506682968882577168023612235727443552929139366051931464781712720743623205431790230770040975825304150317164018094438284607131629830858855894466158341743526289981381210803052310724570898296982102850086424297468802765608228272379079465968737607976156112412435023673618690932919930134211875234649209774804821095597171671191017484413646004530867258083425565281379147396982106007907404489812744159605511665775943944083381470082126311156840168780139688605323825681396469627406540435034166734059411485866079770259792175517436746276077219324366732691691956846186239960778871060963395994834731267177559769364255836759799970282336811588654375775876256029282108470465071273992628507809451906223815734772514173717968059562443395778176316568033554495480723394694546467732139857060495480245949446171478759815849566162827026414240818192041974912580535402360053767806046092435228517591886779534196159416814383916616304461717178899609772955678196953726684830023129980932930928918563548801967744892314848897740035424077958187832493406902668835275144503896371398706496623933574906227890476439765967345600254364362604715549554773415591847770036626734723448534693111297856583387349356582048067122360435352980319324650909832496666047582147379866426813590572473256850412623404705258279507917548169121631515091209693488042818264548465564865876439918541195242641397809721243396868401832165232396980820328794537769026168644462329890590356737837140431075265849257369001397658341232310605189728992983898338016766352151037240393346229687334057045278306002273402899462424387732234636373987117852410234313116910297103578590706345393516633768905800344035164103304256534008399025397353720023374587857823516097361025166916253062088128829810343143198982782533249105105203136704668578812613151245500181427841154176002923403492339803696416231090472395040063254443255773676413389454440518517058717128869213469223214563640735526898290183137790591567003982884438664975360241785897675887340459833670325173968525810327044955399154873025286831582418733754238244455848145624571235719521275423765868897374140746596625964706631615111721377725861599832601503343544081734540219129412358218733941380889754802644237446436251725668487560275327173284715118064380968815835747920218583445351492268548268581368501022082024850510687438941990632688136833492936042513987638860645149196364122228767221407230244259342526229144398623391201871305105638329086004824671653280874293772601729373864578957740431342945790557416586545863601783489730000107931277797234084988021944418353862077403676747529742948837152451136788235852651533076738778878023032444575242062861618093461626793659873796063442469084612429019237614821338591568298237434252845469954304465600237185334816812982233794774884524847116546169992003211822726405357830743972813515984378057827445876781581778785368951655157901300299894996641196789219476713520789942332484972072528878153997408346568798626983178846426072590348301894156411365312049025951945308458372364180856760434284271309423890357783495736019139875172398261420834299396868703740770256203404566629993087075843073017220789854279254413384491128441638727561598814579975845225939112383282614183049072834261002317555435997198884155606794555808845110592078038533693992185009754452969405236183507006882011766522431258728023384207719173906304486323381975225410303534210962832830932264750398941847161736937262177213104092315440307037560774772758366905430941838045245664938412923955647367332470092314542555284363222357805351182718762597717327619892639071495660181122930489899502356819046023016193321052455206749174127128759805936844732325672774258621579825039800687655761979110911940796531014320072365973731627731324761103401125575560264286148686962307139316761818325298851629947264969799124726464112184009601353312928946575453885983097011373996916222407820933301660515664759098996106757727815710939601089340753679348070819260622871255940442385353429786851009349037568026026211527111807118177009375820212477363298052620926622276001205133248978031136423233595599767505132833917003877479898650335681416190613882058273541427930329613496436357389934545550070686826954722237535658192829780180228247927329718830346843023459388328512930284495363733991025156714625194198444542837763026790470625944151086615529130130672569531930069175494827211418827013499870546231751718526494543981523049562269550988572856756525504381855801426310767411486469053129830647033300925531743645716508063411090381511713085913091802486326753410904588453567123465879609163776573115966103012487014239442651480190555487153433841697471214335322717832131235393812485484537040838872864429384539105263000802672522865233417434324189210045484321715634371718558027287629326060319545300157122613474845344904881713337114236890304316322354191203000004168563051140558227617056645495584912223522624250355072184880730982214582495266566806368154667446824961449071700009764299208245660426286970357564454181098589449272361696387729307392581332546167697617955440603690821621071420655324578916622503473190045952605204837638842248821809148483732507074721119144620620848736562510343186493268256947428422070983355094245384530621809505956816302974646153807180409633802088991287919961752436432673179690052092614570758319146791318066718913579215327413726781130829061520028550223247709230706008977144459107233140420134592321665758472614614416669152037554905588373660861006646275023311973598173758552401955105798628955417584213027012332565141914408204587151451044167404102799671507487125901787293113023932187502688817958170791618973228402731815439172477519850024478540491959862383256406062838735962395950124924501392244973867927084762966281795801377001813937042171602671560812411609826875308067017362305618885373915021055363604584471846965114307412419518872103163404323188774096438821217359515350883785193012861049779607146918870017105151694278743258360240228297273809776222696813806145331184220388217842760764054488611663000904510695313016812402089685148086785489433291272117526515773865268702143303277772271687899949308536263889494417208569849235933134605914686810883663691933278499949832478481595009323530045808417364170774729452712148671646002665458980395671720002616259109651982671933389091287546313356679529931665899623803888669474789521312098798975489656575113046796470316646675660381048075175078380405921823381819707218954672696298221730425988802836788310428509495669241526240252673423119278655413233117237866594266372738211239766841751030212783731133585701399594837134339556215606928280354268560988003335868660906478076165327955954507139001250305807405526021234634011487173847784540167738145820182477463523545840138186425438208257304019807122298380100752213927077879145757032498516920727299574774539313046144634168287470913431829723072925631078399705067788675792563008214352815760081833538526136037946260052735479223863036948628199549381371231843359897120865767536042612485199880678280674854761853685420042036225831377854768466416687041105257523255010931247750813986986807858413740407165599759981278629368790236163147679422061858495381181785169527658626972018370769547437452786877267206131603600536012443882895591825278807848073416263866351884195905832910034914463893723891305282221587750662666329491993478665017758133980530208809781431820910588968570821889896427406019600897567076564928084392524708671505414804912861443656831232062942667992208550667339403337176706035649032445058002810874105467507257807018025314516220661078709097830455322037138136288622427675261901915632991884440669846219036047250604716727931306330808463673479882596915132846393265323468043607887498087680608142824573154545210788096750225362407388161864397550412881872037781764660430636458186285070538791486929364697591678341881674908073085230138793453336943327463792588862515779323392535359330474681590558946978309734296144863079572100704331606704596191280281188072973432173143891579743538154401007029266670935491065046824093929327073739120651484484477094683760597483791116614833655212828322572099396873026674001542158835237534731460806381866290781261534969093412155986454870131296510566362399454982314996365525992228890863444619419473357586200090147953038307398860344224768629835384088445119174652232389938898402469913152088211571601833552087819753758304466340916125033835464534823801440063744849246897167579521191818919385926144873401363210642187497593323520344692676099752393943847714982595776698832284016087062092045630795744637909832225742454756606147690718730513068915150015486339240471396564807411193439443040978474307697405924848395020938252153379259482658182372004853933867619926303694011106868817034039999450107101204817652736301097602476106570539468523942096445093995410555462251121684672046496037897112657543964880567469437902838048666478169297521754165886606547615178157681035370560498382687797342374818605782942503015921136711017265843814017033523312677087713634238642236114533237594318101030451325273563739268178608325929317323502781506702784050426710669314481448976719410109222320761435737089759208006246581164895817981348809740937249203630549484867209269161478220762510373381975646505434602185975171294047549499848453536161443371243434808374942049264584467431283159455130541553389263152427452773371965355128134749723503271256651449853720896644299029242775329668104424085358115559154080512935512205140445229048909673815593552290116178488161162527538928050968945101186480776023675679084113603257923435318950204847178121561035003654024618496956750500960415428985283221504537383860813395505150287970795924987442968057562248409107241886781983021771624685012609354590957460343071866856509834616226867877175071423868157502944568660457762509683985810902187642416449094660636072135931619960200427773848724309143349247736733915101595210558477965102843572081057144078940738868421028189918026639146944458384630068313862805119081031363761605923855551423513487437115314755525048635411732088744167175181559838549656002850361126802710432774025383544378736259652696246183938832473777816596848493920915482009231983602155888457779836767396491044478202402814885601642596312003600785772513219388761647933679469907802572821871647725702169721004828086925633171980819176885875186832982631983386043948047628019517411857403946693611042467192945142084217067165466016660967433082752502727449446172815291107530429085377577779273535991452158317295320163027584144136040694202217983988194433769001279835911195534152464560701621340952879307827254315347643066672556633814214027192363289818328425088482698123533785974323478414784593517329368497581587501010069538206038493889027862348813722512158086735585372863225810123187216808822562758048412604189967267978392979121530960539350619363626810922528550925750939279908261642597393827873050287899579067644906417339169606127820977931492262846201699798896792214066546621872336284235304371085526616154798132959903229070054605707266493033195372209923415375515631210163592060478487710654108597698671567360105476053148087130379820959330724865435647483246083050915182110196694601126355867687504479941222620897696740763735824944849430297991217796361059691192570881351385767547810029152632119733833657417443532429060991236609154074514179415813969539174278657118643712619616602057118801862424825858035995255504073573238029202777898189796400589708964565817345052183780234003897157534133718418760240844608014988474221958297223639189606663677927971802617207165913715680164418768499292527355031457304586096369245751839731285975195029307830055308921072505864392837863955946556148154340441622818364323594794094467395019102556254596356644928690014246786283298656405829215179369552035238425945535822364864158307765539891706148228165691334145436274892321272489278817213611233375678507007149880287050479598618854745127479996307168378794684053552713150152056262854281231912929742108066707359202117515433112678797355596292237002019236719381766244377796080664764751127707792829617411483082472329721608496859705721904256116704227920679031812776601137196729010016720831316900607778546414616274364618908664248655099988170851343103721383452874562563674729801871528147820630825166761787629791240156451535408033705764790635488870453576078697590672498605154400878610064702677425256137366343735821320832950301705232363855565385627777130594902379947438212147424085999835158500939084359933559466317927021741346160674762997748451120162576899771104201070255384326922055721922889388361458589473176677037207548019025782954243759787449666290470189239129417906679851558474575067007847087493308134869692761713075326959881140738078044594819350274045111506749505983040404063786798051407054369394788132091803599071807393861936731031307058637048464293356018482642157843536275578449750447816545800064056826077576990887092586487634332302281463104165055623148153579086507619589680902178121329317790831453539587649224184783711267816363670626266660666089761261686406475042390304626661330149373314232951390444852191632988761983119538304292926444047536142615993378065192982272708561774971776133154284599736596070596926950259711326736390930467926647402062251403989689773634961026887448398604437284601213176381741851588791156676087229366974291407779306583461781277914882462465932187538883664548107994127534826448282032137241476633326455356629082864536234660714808006821027169066069880370475436501761958113848493835585063870220557095389120452201620267708720342077575958971926425020798721046265714714420703945808347379452739520517446040897067268442862475273531054572033462286230305943202631358353202277424787194315322208116751024353489540123526935501430068069010611217003100094720929462699831862240882681484803472842580444746902155451522598819869752499581550212331062802335861060816711742424956671398402279843702367296255954168076283738566275429807798828652538568051559291571684723128469415288993800313477219928586730623276082809151973710644319881965767211753739665656985975218922783876823907881661395273157748889914722437869937937265333278955924905366501199639748963445321745871634065031982311877179435452862947708056067498410422147754505082498596782462466887820548002535247436227075104609731259717002303983296448812628694069944142224288270416411849462730336209986365715637957164735999300548409125945510273729867861439502931547779310071430163573961094768381151364041513207043554844357564524999012723912791891681452864425743443358401802348779685458405107995006232557303666880989777756516379379885038197520664050611234273313469388286005935454298737760802069049425952434280279250762865872400163996556215417300422800375007993755267943203777409156484658991115397761531570781707446237686821364241549968104438965462795783988701798395712110573958217037182665590519097044924531507940858064959216580287791959306207172961183753893758337844265080600316194589274137873028001512948578777423804235737553204955470233734570095357607358519533772134634120383565325894043307240370947347293031853857523891618982635659800779649789830313212839368944100259528577678224801983525691665250430069235475411181727307713498967632678120359790863261761970225613291427292081725075894252475567114868782008306887608281620927673061333471902925564225742106468850887897304675640575161413922490929183770699698102500258754138448723603316159155783733600723950286938558835169093686577406316986384437921301576267284453176756026928958185494732430915871550565598881996108777982599842103903712362397287197551365776628231535309229945763163954666896152832611169390636077922888144791072183483126081073590464661456769311134324398154939914305487924682350482865891778271473869616428987202785676639537531267093579123649509833222376499592031890984471770969241051684522652490467099064388997938779979122729566503518045952173653342965674122978109070415067185489615844028855116783619441394221601488414239209315423518850665215202948709980810002549401432159484264897864315273474137764046274998176336492331402243624682570964867917998823394184936040282961168915180660122917588865962396415750993064377716512166930696163763198591436407534442476888146181605347840860212362714711360441957245955158116066711876082971812345688608721468322622527612142204925609891717486406330425759935677177386013538263658923176640237324283726763026695842987847343612779222760623326299768484378851715452115928273105067327403183662408054071622231365641547954593386299918473887258849274324753963080743541952484210461378646119517599469037078895334769995424221829124194404908268561165916353238289060651072314416486789859676289596229202742787953537260092833013206634789518600504999560394539488094652836057990425635417691891456168775741046242334025092088500701723845545087613623436539436750646571583331440328139475838968135510375980552495756346470147404995930928281720926053109760253998121892006220169757181116990932249280826204260237879997418046700070354634246000744146084956085418911307331462484135782404559276889545785035434797475190262682418588169311179613057303109727230430137358059876891874980550085088838127166442279502150172326809993849848478033234386217700345508739953113817590871598928340563059082706497957945842846936712796543947637766121487581859491689284420917947608226018395351216880853121281613852988578661661549357263824735036895381213499431573974200628420456978258336255272869278414837506825443335247525858843943461410045891956453947243405750903668284956991263729802036435940215535967683324940258181315222525308237457168935261079351497411953144125720317244001446226534201670773712426930892190456127425641052973330336326283474052042613272967442649607295596385205173982225973585197980643555043312350173261969972076527809436090069461593212305537550659780356731056346971482833261887895447849888207190758616303858618337156507276804856239102704469191938405521927454910452215946371362562645291556236413224241158986228952152057254065199125632110388408509718074167131839537121412422561553175858550355988170247051843610643081078596697945172749217125320801208390043536167329884273707843570189629645222278295623912955734083856244226832992316527199414843907817657120373315522482032235004154679550993916594298767430119957964573065754996240344431541185551430231294897259339613156594805367086213585839793375860505212211548052663923669549456413815914044794236808590973133009936214119477448072446450337573798162777161973128768630416190072105911964984083334178695387761780496357520150998961310991239757803721059080085065637461141010880613068206949397874947638241657886395572271628249432104216418996481368729370115393496087150153497057024285860258262849989455944949072544118663296095266141380066775920369334260094181076471931670137924839623610747936156115938028727344135468929183782557090093243863370110738391968185587685942654095324517794671567813063687184031621508358074467259678909980503955370038710192613466485614901864833645327943601476143105026082336710411788195654314897801847148317371619567118271572023505265151834017640396910247275438102717966918190300260156839144938653515001151766620504881014767212825577395873452274605260678779639126560592123249204987978595193461602301647687160619965763895034297662604924014265468765350697639708637378880620465240927362556211404520742660957943369783892200698824896101488022343083119523406954590913355135180420002653569571369494708517845997749962223464477065364536410251646914143602268639771941662386917419904988560021782797553490183264387699437846137046760981351791350888181966689945679885377287602317238549061201681482063132600985966824202644033198163570821644496412239311448276373568195768955522662833034941989550166476934759130370615525466049277813802968924588373406791053066336081009996182994510570982801558158161635257501075014939077747895298275783001681270013637645425567083029167721567242040238565641396259221854795557296072366985197386472669167518074223437174462978305973393517138295177732417142617160236326801162147146678492427917300962456806599028591119027482578317761424902198431259206586413547534771852498652733442016403190918736861271014401224724968455939061347451788505026583578300996013127650597508659310546557514311128666300521111381889655984131505848588784322098120608572473885987375694845076170177305648450260398827151851826297335490297344313416740108047040483913482318530484339831705896340938292433983120512350603603822750005164227594457720773759161797614293086654548258957038194635710028866669216434018740548000220970007093888476190946787693342284959580384833504492359248132824408361491344493573770047281340842019826603717924399809497916604355209351297747486627606230964763866693216108974905167341566999658127840428331720643711802275942673689105412286423115011425205537566591510271511923464125835924071220766781360824557191968270777295574121877087867530612806313742104734391848265848372770200260634560205958907307970961365120636217197021553124219697078698812597140951096133263500398860088453237273211517057371794965093738737423705948132288836581692916816566863346379154165645646625679194711063038211125852072859626472026864526313563763603702004560045880054818559814907831128587453234774069903423077301712722369604040343900408220010662462751015283685140469063854995263549435147020117436243534331414813785820901085010837748183319328356175748947477542485864324897188628185117658657562687140851415938636491246326497472909488127782518904043235826200030786930982360866470765572959651271600282007892081178697126242448523413739807746238802878565464974737989147943535182192273537651387871810057424404010575561159841036608798636099313968496971166342471070011133889729518778534312283402650932230451208506979098460681353337060579806202216312521866857946300159075215244019249983718333093191467297378355637275626007941075165424518134838750087379762187882760991417935423030513571452613090358714382678410554062836777539330087750472748069411175142416735643143203354428808164354596346746292800450328288998025611180486805364444499942519311607146099494880450488298420774664677796838592071931593002093279451272345345918226599196795125853691213781636293894421680357333198439332415637425890600266911170283018223993210208138321995686630245483384585476739355733698656692473159787098718042792029001295687695042046598084799974623824464368956677571854223509976670938569179849617830977549398749746132282493941547357527375898729930374800259570098039550713700164351305213094819502086480805005415716289031581832948203461681677426009739111076898747962357901295554634385904740804130630308806513907824920447175262461710402247154957396278178936543905756779749727861194498559569304806405171138793328402977351254519990094919041523800246590517817484633846188786034441916119901350323788095881283973939472519395576516905566983976402169038227013815160105356872713684214071501758693797868262205163882979173420376545980212710150679755069164882766083951696199651331130597776033727975866950603430067790569215096661622279367695107843617208553944746266382858620341744916503880329729955783002236458121504688741718463996985847250593757432390640220560090163876710923341116542203041334997938867784898042021661255505042571518294389134856267944709611150903190846503223428079036108462164488551670959178300061717254667655707389401715467001355904807557608836518365573868553904090243849559231215191901838527024149699217815724705501244397254091335486685064596983738480517931125350448098224770199860019607962414405491475141396189815773705003947052928582483437636282654669692916949471783502436481535159470774164303087545214142805283427750926356244699058470518650358888226311010774285642838378838439707171404317431407603921726227456710363823480289710201963021563852480615738706703804367901458515831806508576649055359348109941557384344774066837385709552317775468803147375037569492654753371575523917378114916615002930514018492175948793189646033434303995219203645980573117473277752658588235144974764930613401183540035974622861624025986019737477449222560744861056406356318895334384123646212156566649503275221739724631096632011764826447549153451431838677250795342655058309483698228963910775396663883223222797376753482717344632933287734073783815050515655030883857693390710606840897696158481077124598790114471321071347304193088438267963854151999870636560472924754443564396093535459242095765391798581455244421743988698222052140034836093809319703484024861699732324646704249819794265505210873514539767043748819580138699369446231412892662626037761023098598235405928257077478675623163595473519075693764459466776869837636929714504418788293046293350324717255873416710567806293271854192350974511219043147425143307069785906810131594210988116353072128791731038560655690571467930847525420351573171420500546807855118419808797794555216021846149637302135264756059186622247233165855989768888735901475774519149101276096172847119359844603792518180125449627866371968136989418431674111571290884347431190500208274210631226607712674534058355999059233280893479637013785792704628656837447824809156612909475952405678614359233911749674651807762904621414877642056536528296227273058814024305925040785888842139547790933281103877747901016873690078934744040430948077433869224251633410493609341041261119831540587121918391194022549553347121962122594679869331087794223761725518987484819089133094997574599874864575352618593940692606593646259803369481312108295663574263440455916143366654394603927164068417503486565441576183454010154742063036429341754753204732939909833524065260861389098343669549342611696330953616892915161735495156297921374167600733644275228861973625292761497448525206463314532729026521163306762728178668728215589224401991419619241199575714144357496502540550834210439456365338983440840637033154481081236673746841683864303627373594686884253202357360439092088713455446552492659220927941898437346267241104491427540440213145099300755971053210836618207085050722088771778635150090386858297812488460618298311686764438959064491270635327725651623814670760065447785771670810499933359709434154417623248969324394757317413264110499580229598333527985205274617060816909613662340478025347868124434852569307208980481855697009122419252400076268949997387513179172722335622204212754100029105943971570866125544236710681813020000986055135554996768096170919100127809663351108811050707413406043095474685940296046874389675447794524488625290372252778720432468682269878317118309230708895002002237460473891712669320022564524546745470348334887433423536529109336317242698595569749636044324943667772787775011475488732803161055823694095266950323355296534225478219427952259494564862801124082982691101399789835363317526782778134970495456456283804751017326315661738440378314910981029599058573822963414786623518917559045754731780760276765679896386490687761856366629733184562802273862418853645190566394137411984905974018829057232266742766586970874752324125817235521849658067552615838455374813937672890711113137077167756429031000931332880859458570539874099991344459800108565209658668949011098883636112376133132017546621311255372621922345325507353736172748701006482730821654779598222158989348919325299089084131771470998183032707999324852742495184925405954876958302078953313918324293846404185568405385360232141534655398032376199767504035251742642904991404019301147741065032275936552388411215701760098691460893307218820271527088991304917341162730692478114641118626765285408480800832448623217349781624131302941460753983751528620122520746333008736923001402137719428979862201337522004446295387284234137303549859844003856653280242250203838486899063511233238325350798642755283638614951889321786228137236996571438623877641942625150036275041509397146841396590156939027920008863423623536526917909138054909144492427356449223879473597937636017124074000712293346760392988593151673845908310124400510610276102866440654803381554602058154933727776639110124314109194980560552621070242138762621553240912950129600190344465370924503510263637784709289255626478722192119388325073706606388782699562576485031264600583930162564567648439045940211105385599279620498805019433834751445857027467109693781090629245455220705226949242144918159574478544851216424631596464939273003807567112585355926362727667521121334391382969693022282015718056739706552524205416407400366644425701131590413615464673016577453053328949095799299431052561657554868244264362485254262852601961618311499711725779069360840036510867885099567320051702033912066392188616531701995736860188497772268007061751196335027120927249684082493822610844584571840894831322710160218145159381444119890668118609912724002465084408819395926701009178558500287896493420549959661711434966324412003348388157124876856989568701791175423032117958453464936555153061512461890279369275434219187868005263887883454387902787532390670937309767133311525475288353972781029344948749049747815849204254117139313342600905435933005114931452925777626243373330460543777502455508146930767368239774067127041906418283906961269937017918565074637192031046897246496310592230505880045891209117370098840885957535307743641757416976855126798324777883060126249200478968114020773299839846628131199381003963236388992971975810792913356438174901880924530131729960644499362230302589312569737994015222343812086541832550087846288250228328769031395019186836091900566950029794723872387017041000973943326675902611724662912512376252225865032868562199129167781946203632274796906558332025379508952720852732175377557365341264166219940148366905901117324289379694776908846067224176187520019442576126560681578725200061215584613508937625725436577540506665617436102978940259219158372113761185133148481093925734047538984049741743263169859475505410919281203039522245132065222692685616328708822883868000335363165004155979242279734456834993441937265542152688814279830534641730594154133861529762614850267858512020317680294509900934516886839993696263366809150270635535520094681225444824006267145443471283315653185816533620529407831877436528198553817252040263612904375279996035317320207642195679247182077181258496479079118884334476934762668295194030822398972486951186265366027029880787183023178821634462229237442590209100730046306840937121857863881385641628500523407383620604405474774206650877683663041539600136250057323897728997325239528958096253231395973891934955866933678176761253258928313556301614152733692871059432522267326178903152416740507902175883830369754646848600851111877974402413580960013496484793230072188362274019370265858653727456905409566369324223604186030461805467761195233875751478602757074607599071855009568508178443265708557817571525082037871099603762652530709883070100357412654881393674282163371717257702451966829319853670655312182247862771754332459344678571213170991456207386590520151245551300638022353332047426642107131860973464602641825447437114277639085332885855227119054560995474804141338858782304823646941674454289363281789740224799669833910853384661750665294663965786372174338144915109773000742898239549692182471616662666342410189157469324387287191016730494621144885470453374673931582887125762130634889523558212147911050654642677675069561953314122331802918902170050513354101596977530214443064470666386720431587107635118315336224336558751564562532070077192414749051024169637163949037255574567926081951560752303214642831492495069741524428388506333724178091244646319889658127107410895280071084156291470757790103579915791412313045143331129376718949821394729861458454798341424127322828040084491482586579345115059014128163887914357361015666643129308226334355698848796109825683960577153399641208251783321156573288306826631680750348017742249371674205145178687358632043007438765835285990840269890961944791559839700306590421684322452774820902949113790353062642680955447534654216871782215995468271056597238326028142503743891800091295893786598076649917868612314882021648689462356478138507491791672972114925414443978139365392319377642555693074981590514294692188428106739274614824208730254095415657545551082352683179962111365791452404723394318965588530234442456178566539437459828938590565751810945065031860737132015264461963477746742010627936932384567525216536167526572813009731378006589429468837422883766871751043137376920618258418939484193919817743137940153844603772596216103627858709523871165491560540703467074739236274065586009852326273973041733146277174114173146994829303937064324297312450599983474337575583538793832583262229529379456683102264020012204213188496218470240013475681364555149032030437308526447460098735909483333642017402219817185865621481218939405507826274662578777008896949539520595507124431179505710655423125917937299187775803073582641420242059780814773654676889005717122497491137157841270961827751080539419720310518431958466866649345963890977961803468859999033800383333065210813941343331371757052409583169559584949588997811486532228212336245341711406499154647727311329690104902504333141592834242935623906960915425082658213914567716341270418314285208454217865294706805440571133666730541699985810101564077095793736593387834837539579788012553921284620840531780036544210343449566169399761749182584885213353497426955308657177567133333525979653298177031336607317192723344482568628385836155778823485650289319332986749322148524430991653986549165354826434319268962824772534026887157340634982078093128589532817379366792542712155841223452892657132288725783577111191912967912758577811473421451931794376996176110858942220026124549713614500839409376634053064590134238483824888151777376341350683927318268140215580207859998441296835086837338170587311209723968102976854075006533374835942166303406248678477617212385290630354247722681945276164287245653445523852201097298519443096686842047228598095997299334856831476677854885681873334759432475961728428526517030973075781765027605255262539931311282083737132106449420949938672930668932416684910224679771235357475008150350718848687055174099083572345561313456816477147527585711730923987149876779405088317010859995929583521753765930363096237696348846773028457836422187680343997603772120308684687168455259011610695276848746741536020963889026219744309479356273074725504494084621029053887992525334805969847462812846547810128958568329340526337344169652680932152005880724461972232371679278412226576805409123494231066605818117361585906075877177942385983773244068143541055684712579071279502605788256903729639740671447399040708990039945943869334457986747434528314167134973777816837603256561691291043380569133009606882321704561608422820724831545586855943522142074138588523535486848610291031691840182898034691712987909123340678446213882385071286229160331361684916546622996695934512427482129575785340527641060103889103450589375055454371191671777750994877183311422210206679009824966454773338005920941696118163742036311831994368220461172482837017025427668881654432263946146399116845214767960245882381463965864855128049670278606763568311803874461232665084279142875197012147479785765473761705885026671862527423378662831980666473659952036558763359668001686674291480022703990891996584078777798963586784796182328278485813998980982142070968703152735033184052632526809972540330798701115343808282786742929998491734753706569650823225738294001924257552276810617373204770370711723223083312625455436353257514712482022431571118067777277228458815196052523431053851223129563949344852852146095829107534022903879363626635499274054257775476279361001416470278777759954414488521873869763560387185252111000841438562376518423036900787242661452739564620571257931203618107444392715476619875552815389673032642169562807891532135820296439439993129135407183612427229910186181704751666647182265177160461709470812434710658325109223798894883526981053674317193869662639665133261432177271960250621166683869766084446503847949856122618043424055503333301790782288724144789364186942532558719456902332591212204753228063273836302254847259501604217789159560919051603825027247016013666173126385722572047703349764034085356250302950156233077955564947009053247666940043924516977510104716315641685081988934038111360945835138897845298739179786606007617207500192908759425329233687759572863484495243806096205154929673368216378992180844855786636246949096575985033423136488425659594265269258296520692264250137292452196316666473123636189757696401560690228978341906508586015460806206484606327870349213885901254741480973242754826971018277574545105860671604693950572674248477142725197818862839954735807860539011968144635057842963891831413188766617713259709631101258066002571710717020277330631898389452031144954370051746374228389417405779248039598981337846221322422778234719645207477976692359346139127850781091866031285804972868662892524583352143708074727327713842864504514927184714259235851818497108999070905654507859483023546103689137536628514367221188912536841574006472280934328379239248147990173855414858837269304159949450493749126068118763010038529348375859291264120051069875184102132471083292371898975141923062022963501921119885160990019502619317471928235652276531779352989605717525704995154211749416352675356531476218270562105515540666437441141143465693955095455039112041592489821738020074766552050494914172721354521564808314711953687620321066149008143685705177328334398085316377311437788604737101552537341361060674052515496303160807089475694308785392957150765867130930365805109840692129525180665595323134079104050737634231205566826169288374940246558953777158253366163690207457527761929591391819583408718012892396948491130235520550731427412564415274820566032535729252361361680606831042269353903423183485770553546401895937111693291957219001016906001116444879326548038605838451990040743257284863753312663384815392217742910221296773060658217090364020866952031394289669967893906351863454069124115524179979551317084970978574197889051679728252049249463281053800134198856418866160697135053575916150764926538553303763622021984627356226056523692330540390978541129893888886076026566197751017035452010590555842520109879273758055401837580376949726274568859776846529276335567679409722687094003390400814456895732291804899034450631275809886284552849881339402451834601703388558467379706061959784473232947385726206845073708494276045200716826748898402300253614015938722122413828493120488612588351966137321658353028201477368280531138127642905811038606467963483179915062051783043612798519077006799413894324853144033578789848219460848350963953523139605896483211123177489985768280256691784172482419543406378034256173391044230632697727122498762093125061439377624091069197803791427649827343304069002966403159641483305177940443909951110815246026480974479394573917751217142937048115944426281513411478022272262178996812958862922553610955167974718797250248391981045037928105292631134367852936951512137084740557870331038950397527904533071488647825305587753050846995732620286089536471040104307182801040707599758606272511082394912390016690723834240263834374637384296633791213954070365550005999981306905441187293171297954067256212838513487973087688213419491401437037875429931674954038981668754500519186877937022723920093725398372958501332249161309211092039711780819553935752194246911067809665734657399007309376797802892894253349370457466675245091187598000547060501079447348138611402313227527604757798278034159505334903861486129671278705340250132516853186523515876113196031249244535607497295692377518119757847852891837653773623649837162535158410448420741456205471932945261300241050168480074299532822965424654420852691322144749522267217410441895806189612996212921305000693422085507361553642518772923000778476967891994298070852293759462193460603846422710691050736689068505710786825899589570790316898210320894342958454474935450894587267957270744291598859298238765359122964521826070898535776168628764120642906236496983740598157349170768914651209108342807159779135895319433700482406049830118169400353279866845954081820410654101673054210323617251403556167317642373932637270442244533894877527641260318943503379342056090594990938960040821970935845650672798253251832976837344614747779088608356727653171040664047773453763672593361621762178170216186338300061991767050737429500693856898286591074671486970350013886177775071110976713513327974560810817704140479263083327759666150435584571734384993525913381229814376626540517266829937460520878539663744949900464909410157908812160686055209570230952172416527292689269892961574773398188345661631310543369877448885193065450080556243426118893797701275354431503616553333483818264237296337926312967107359834954172541626890078769372990849068576293011443642296492432923977732440610776094203865719657012562200085800882641210285784234404818872465133642083152013468574773715377654093301160507715933514594786568435385232023851911611025492647308134505936619878114816307643428125248659229670142512150254001911282980297195513927853375156882234578114756975572970922037435141215606225686698724671540823902650351858140378297427293193619789920911149508409928281064815843529970004066412700287364095128398987447179381987375050854630854784282258131817973530016995452733517840249075469512967774693411804267624219345015496096560318881597496432005482042225743980826305383558656246006956328544014162431968653202152942621528774533625979829935444154696185752549964455659298000521718677135251251218258291915058507611741845494754709536400008867908000800385761786631999381836636731405475593828354168825613839411937855226733367167272970885285067665137602442261468353419153933776863395911733699820094910346892444761402826859217435652476278059525511803852750249596582019212158111036733765503353682037668174785562218693888217256548398812152000310896087250851647555666618484171486485320985365171435922196954447781125196474299428766665341489068398787261623349657633747485125884219748088402190894440717689243853396641224030967445593515133189593708021466168878422082416642684722570122585351988859553421766846652990532401683921879046790047501736503916350454967023370860045142680459905917595075674967242504902104455768031596759432242453116194365276793106053099054766924318100295298540918833659102904752919776747917555780341125146907586586203006246632660292336868603427799457249608398518465125464754270591855880980986191954350762394696423482409926233972538633030873324948987653518433606077530698676311297753534824571934638364362023919322464112938838228885111652017014002774372718573846177374337407029832900005610846818626790529300271683356087989792514721180099447342006829837457693759968962286217408564404735353459932015606950202079922817283151577469161986840431707201113232357560475785923833219839675814486369345824460822935874963189836413180938462734383658094670736261959031663229461220072470724467920902835822890510108083643455802084197933220101307790281940064343191908523432129897130901440712848087476909637600526055845977117175773299844434994154890219862375386273815544346503157002569823740908627430796030646285198197949883792164221299423787568618471762371773183801524339675546231427138342315545765456964266078644573673195604553310637372365292111898219516784764849304352871625070617072370210198528126395387289432145200343890272408973626477834992917853975735804120684759858993628046733480655519069060633928500235911537693330793971885215433275010449603215610438044611257968120158580269357038550702497052007949555997845044688790135167279149159204317978026576776818736186616427123729545974015690027076930865595035130885115512501342589969828745197182033149761497964421619906003555928542368739012542391678312373584091335467121036743773528057638415259505772033093244845428506895294083337715070229746184734260426459282866665759482737680462733216982646009721230045117837872646316793701615342142328515953688553411427801253679344890101841600474203330797009373151775246094999581656955930984078523230538688944017942600562340899233497290722449040088019859418276098614378809545060943508383380722480922127744390297509282268989403117474795838822814369890568509572863448293462579753230919260420980140331352626147785871805366416220031993638930449958311084153863011597627731030848674450933409159360833849969419044613050900982742630139414910294065479268124509636052479296816484400014623305205564597096394336226676527289449431705016619367103110015632051225599386471269953761584355585325971322095412144270348914579093663170161357646793580378612093417196051186669749510503890585887777930073513907778614485055847645773051887412030202695110794157940337307608885493673971184199686544447694720953160365455314122538812080419426758888676255262057524282003831522907366998934561377027768333652272706769825267182252311875461756858116862557182736424945760673573162426597125566207346823888876027473616387987147644958998217891913121599987538968351620991268148077394629276050939149431358372085083040563748129823169617010618774076849359388580325584741373504118460893949697515500541033060069358418592031404147879833521888480412776267290337399719592145367076300899772684257671145506690394648839087007642446886314236731075489178331568878562015915237694813195929110252120520146922121437665641212130139994594573509485911538602713674939501980022032303824508567350671111589732853110495326996287366221715506561722245655735133420063200143721868973092117117620913544261234621953338399730831210927856265497081735372660733320281700053656210456945807123192002266518679927372423693621075231709581425627777365512249671633528096571762317301987637393163480580818552454272653544795980637525915256631695461552010831817387734904582761754288075850673255199408108798778326179583162192657896221207707916892036803429852200531356666934445175888635302617501536100062254043030735619953588439389803865803818191051557768998363822283862217515131064317508802966698206706001701305415257954114833800998064359856087011307980419622334239720254149127951217877867863716351896256735337028428933086167544601375508245095442104560187419076812164550227949226161897927424212095757700159559585818351094396817399091630382936155382942941951754943010226148002766848500494467343817966638762282250333075276554116186738054706255515263745873628771830303751573734425562648477551655258854235887626471722356675958253531522833693025207708055471760681323698432852123061016740318168468167482967975673755692218648750430681215372141968441260588861547738808608418552426867342182998117570039047822977523339083980296635240693290022917812548040497582369268579345085501673663765445454242781583676073028239907364384153726716196913285387655161554334952419452605415500231509264100872649229831120841968797794335425808508220870096560109846927840582805923096209386161952469008248695111457163819948092679146827161078659966940877477143718114870290659063671898708474134166311065438472367585879252338847979057121705349214219926155717445705986822406137295440524221806227726671266467794535584141468510064316858737177490008610661988539274047814224023451458340963408472347042387342103541969881295080030112022477173909266752353610212915597379387605675909562689542206786896047224760843692901091029036886016299171401623528129842625822941536150740854991782050154591563410515163302047027159507436531403788044003510969185709951096043680923770259030696557064846630922200416622772826936956303520616586648759189479250110217032847166285990637048503417872526829273539109613187421307581154751060606035088510485177551757095913122674767994876705654676215484055071026161924867435648361990886466307305879061665671208192172864216161923757435542289033083449686085426940058057774749012692587821726931583956093086345380032965120792916423952762315416347804171631555291341392090320729154951871314862645523102239010789964264629260242804112019561049015111043269204073656402254983843327191392051123874119782306864946858019944270578993881324329886766042488646999978911075938946001294897340860708617763721708052147326178994736823422534277339709552360224380932466947105081061509396002379336899673741233028920979342834851304012754013122144812453184147399794799466908336608268700910450370450191388355256994793604761095320965864235093464944390669662087694211980729851754191350889344237679549978142750938123667801916851827657624384705871763779968701713988046971873908590804999927860587004220817473545603461818860565496484852682645275682805341469757485942474991657331149175242087214236691784088632927557979278587262664009288374980058176192122594251317896054679145320692038991203516306002918484535856767013130867868802681690533641505264874555067779835563586341630431091268994361988527048237595443125296666761435362739688390234436332521256009917999428182928667009112646084447037286172898581032723552161229722251192475987500683428773806741969944798780718254236884106362608902624416677678931661696464897776142560829542496766185504075428937057908978686175732838997417232548899707271978406735995331336443629167912424490154288930542552774997920541390000136017024488847704401857737747374674812098551050257411922212057099344081557633153876108470762578004003780864543915052135583834849679703951890402237610415740357211955987513231199541370437929527830895774492343992901202075432581310632569658115749212074141500109624623291114748525735290656413089055119894721006031839681061598507394014167250751953127647173356935002603884472256416014107046290870737321342586288597903169081203031041484414054702896445384827143365738865175960010259870977117124519098474133227807711466080918833905241779843788425816939755815589815548384034061228268106051000817540875569898135035230875848279317226877935128763524392300843770838071349771295742332861114292922618859261901449553695141578631542555697195246031794407780453591294339325440351006306679149717047077972170604966310627852235269178160885540068353347335840743118701250352724026958192860865729092351277274445651744055782363368962524882765516546694909470446478976438817150737948510347220324711300335132254754366847224104774446781609848078491459068311178542714512385115018830307034289604494692745267670655918300759633839559786043542844296475463466447321014844741411203178749104698768380534017337757843555264830104640147984039339271167518519540890207707168423785468069126439465111198880707873483151106091635192055229996538721855350509119677659259668615957683101606321885499543352569646787704274938472863941787709630456432744200998937858608287286995511460017511777712665376190062113242917565248186825826630013472756511887100925697428746407153186702092819298474951015168918506341479753650547531043821118483231539144183635543089351080235625343601711911005192432158218886110728068760569571972382745919111110975260842996369370241752913257001956974653718751119883233449697712634777932088962177830214589414394300299177595725359684436109515838438653617195877764025084901748186563776559398209405450207866179044400997642777883472246430296680178991588974204144501102463492611941214925348294605014828708376481833349885072099609443664901186546220456724024530070947867075852528322912758486449431520246960778501148676065399903226138190410373141758736365580765456087565025992911982893199200935051354122849690186167673713002053635723854277365496671529036780303710319188001906951653219887421534279866585108017056439916364680140824538733817183238781544062019503781206385934225221730771261497007450300560281996962767903096667222458804313517092944525901125474721857118363821588069688761783749439353424274210073484460170317348769908752747717642386462891545910892652612189727922549575443566067252554534124142642643278810718677324827139347311945692869659819006732735000811788765308939319360547789600846689752138926668651298172058795323372645438245294353902348370175815780937711429740895188616127928741029493680590645350505086556686172770550124571719838175407699613893814949841417293126013196301273534511859893843159479190047718144838170131656081818560201630718457343745101202146109907035281547660241877125184604146693012185632719178582032147966042539604122022039542336490988960401429458270615695827110022494752003365805982276052890144881378729392525002462118750473489715940432860368334482174794182437242593221343220260269315494786307117955421984662253245455609885946972750982131256275341122929922561980975884503781591076282761284486255899211508327673374203062940858175064376147833479115108908524440599894633140507887032447712895103747242650066545125990574298305263474208399184043605059555428246186324822193239002418953001419830258192782567847295097268634244179544205960704116576748935268178432413858119291207935889424015529849817149577436972826839953099743571276216996502306065952714654369649314416284612158702659352333181056018561463149153653227340962194920528640727317842927391537786939579027960593623165268619707421704444739279811264591307645749704787958036589401948656228063250123096906728094070465229135248886017999475300914055784708266682486230600454083397581767649717286652358199860518358079586631915790833325898761684693193223368101132792659856723967060146901159803707614416105575753890000725961600939095748839462626437621290646029811300033453729092451643165697680182802011684451554781585240833907371763963563916135106115973269171472818741403193034057343163626978347573109543364346848136041750261772500393154185333317025234493490702772067465679445115423400333901069467873287694684018449683765236793713274622211807230400106106305602433366467945527642877056811763398798485148868012072202923007046797834438465503187763964127879083868238154189163347860580365146276866358437239938344924340233831575409919493045021197983324199192119143951104962541064562329223133212121502447946560670325995178264475331477415494247494981788848604576608799037169679376798427376232568862162084355664325839442347479106951117581834223599283022425533167689876203672681752243021922553730069164311813484183622781262508928552867074042164872740170931382365300349500843432564560889235677811698164797403880514757315648153537120590721299594413816116522384492098605415288336505836730597043770855448584514654315331435104061674101425715623760636078774117983214786824908295746338023676780574953308270635513253858770650828980080659732426998018004177326340295216509955361970468915947563116171503681255588419790472184783251976061775199863543434149900018861299527164054743055459307248238134085750715569737361754242354142773618084444225259995936628736589290343355532967108870250317381949996680029017001966399171490382778337340642042615233371800773236238793754529228858489414692452534713352820555049275600658337810688561974917714391746117789373395278654058027746918139467457001187057917675714437473428729561756688264169547044796397330885367002285516174830338240174281834110701919774765660117143216781790409175044729809371533450398490283629836971256659930635394336031707262564445013567800043464093572397586530724263499750727670855844298497524791671863742324762609190643775262488369658216823541514488229040592100646599406614149134511295224273531725955202296970089886801790819440816436994040807121559416996498298682314601873047570140921171884398942353625952282772110199459386394347866691693738904277301063426104113089167617695020016485871996176245233834569360951917738138096961825118791857428907513184649751257018952376075086572348315815297241319995697079396477343049803624273568726445244531520141648596095632994788120952021828184098473480380397700155228167761041400544128466963276931413047895950016449752281444522172869061810834900625964669910697673718976029297446538232849220806846006331875420583035700027911500179687636290162363527542615216014367723649817447515129005139513920379783574990674452682512394914811332654728749957953865948020735222441931052515495618489386515080852705393739810485235183348506174996244171859718988253829564539482365187436117863211700170610628327059346122121687793976251440828940205546367963791446804567489074434263894312422747216466217431702009217809782239619830172817063026562812944010127964729883310542756058039995796817252110777011157088813521606434046446022578899301728826719329491799387463904940300151198162456674005009702288776356956387287057339528973738435321355917171866042676916887049164296173882182909844274108094764508912204319027561784233095554178225291456790103106645599450321595075333281263254032638084635306052665494947720605272355717952274849640289569891386846922797160098140932676499927868405161783510557354949923944508657197491498557945869082168892139127019722814184827280295766200607243856026092673759885679655501792592639727681008815320245949784140769519475532951218288087744397785259118636194898193036366453579744020902054632998350851186690518874273516151046043621992693508465532779116678007061791809603911742718052919528654953011226716070872839642591833806822268614761984083852148331276269617430809301723447889775210804856271063806472805373082321229495066029975346412410952798097834720594811103896202085492636270105261118612483388881505165411563433111003439254454128836841839064469577341834003701164302122219207287592605590843503334403863244603153861044421122060170174381168751516286598829041887421495199273109580087742705157545098680286368400366604398029896127667460522903926088615328929990893334288598808794111767699217040159333510380683633553365519957458592132346940917023998161316326339397164066418634007893112819202634284937520732662958763151820824307147930229515495685408411136978943097720848971863425744390811852663449734395551159601652794292244863083104755017462508906500608609006506228539971484861257512629079411607051783873592179104401390234453554008341192289320443466392330374516296684254050517720814511294618200417454767782934712599759966998435222505857079288093653062373529267100179909794057272042666452131193902738196460664690524015011285824601250328307233297817658239558488510318227299103616565819738219582617803234710919292158869652651915644849394148239767211176825552543387170940008658569016112772493004627118659851929192629573716632323915728688892688837966451622179060160134462434213186469504270856009386532006361495893374915218844309362759786810461868924929123046011550977779625660246650683961117620280080139774260777626468377820497558774963283305333157681373887206844589978578133155781093031164541508417366027743436704793619403578152153988748757799485280962636376545527036834128227572251799483167751871224358878578262516853452246503363439433884658529221114797738664476889898209557647567165664470756909044141272250290310522709588888411842135386682190270925307885509673177452542490995012701754955549363607097114363987762120516541570566730593414359042985482823740469743757714146154543013666649301699449846616202752194286007713526473134509403714786289163861263746382349727032031522390371811949553035675232867333624324779061420720829131233830920867433006444258064157504659282323013271122859053154777183497176657575238109870206232723880855365616733608389170269384185586739026413540479110005666681639133620739133629223600443373726588155819883883065618057849549565848674292971080706807403216243591045326442937906154563983381334838538763768405383516447905889874778041809234436844520110807489235938136847101949471952200890412305169133482540328790830403809452156097867796045307041703162923692897623314280704742186549504748793869580869920752952502836573176058421349969259745699272732072329943940364339847754727025994506429260226975376341991990731846080704795531737813239965547232946526958633331793502900301335436896316351074855355702056640128429790109453438787858079226176042787428254252219043599650026380415344838891318129399971659818870538966168493908969854026654032851047043462298195743334471547814875784433371206253978490500902170930535630463017151902720897472251837721672650055369195089023909518840923422020975444213402061324102206886331357861946212968922465550429131149510950359166038975053866620821298401509527587268689445123147818140645184332238370042052794533285730847184011023612331206251495563621642125265347955052277360398454148574763588494041747766095757417957415226101867592585326556753246817595272907108610707767067716247923492320106692632799257616377901167403883681646104849095774257634940688552824215693915749920962772788968376714232575414147045154710843186217568051847625268432321536605097048861033965416995027464556838627206818604316149395031953038658223915975485362578929799263696202118638380004671961578184165952685350944033686372112485396612964206198001293958559393592254729264728276381490009020002549911706406469880802149290242106068232573545923316990217477688081942655463863002878182348328548474622526138490091437545089621791663767984939045344073473999457132590718781805174745542731895488719732913332261489206001208898479676181622611849642104383317003178997432041687375290499448486656380730153660885082579313070543850829819817070345821576964319030397216351426850317976684644039141040994077046735803392286372982613252311704812175386381188045577434500090009111193514690419864955876196529593725093004980207832484446031348779320575140460672341143434645948702698977536313341539477467744232752367892790618002278535509261807880245633318908573174691612035296568349285986189834202046606706617379844508681012480015085624111747359995691527465747727817670567334821916063270449753267686349557231997543496459422782620571482562983509792306070582013117662538815098463629044410148294221681032900735834066687779450918777989916174693568170755167801410947530490743500807185707396784037981863156229750435517848954281905476694914914397453018898847540390934348312623277317391926835088026726631647203677693023456187247482872383210032658264450404804103555891068357671668806476582987479976364647101680875674924311644802951713589376301572314347007205573478872071405411622840932159654831620427355552639382435879070828658628546801703954491672569589550183674537498382233303520983681406993943772731455082958513295315652652545611594096909900172415411289065386350469155514385948008444133674387664375871865018982270454083927107405265329375734215119882969437623257805914544693110943768044527133808749562579706755894249697015574816873748016286911595534082203989753583344014865143095732276641390898865840381189236221832106830185274001197534096224292610975280680790172266995943643840348962305549269606155479289624191927515247493448136585508273912424258091654004388672265009628455003097039784046158857542211663727419659580604765194299040030168943264962401908590987398063004426799688398167121805928500841235247072654509677666911746782902634121766846194210785577279465421181144219332847397462634743421691388588491343381029145626484340702833577596854272311221969140730834478397710795688489379298981238183519132678601094634200178300238114846491741922523117844310521246742084447855227885756804036064077819365004294593389926910557816512305681654589345411670383279444722103044479986674057738064396194652476247444975241166838491867003845715653832383565611317106987147150226408248208679185433246092236170789228282069421711579487676102019705458243550288351281045232289341687266627579564153905537169642148857065263372240484488782395075947882141501834096989137241822321982097174496229662481396280839755510338475599166773290276075157055885062456293534862507029767782485064252673972569736759112778609590497705071165168560502245253121652761341102308824674299136811686185438605607582617597572557500257276900564276283981090795505576053222852066652682547312177233049110816388547774133394566477657349044696510140326824380086598257187754443313883176261645329107319536116823217831819065203184696959823201514811918767879338460543458386873175264401469117605823259357149671131555033929390099487602074122110888790383949521917412875929009206130925529483949603061588316305784435275337742741467029299481117278441520648603637128498710188780096556928423261658987453868660929352449762094518771953785591763405834618946816246516021692041284796864852484242496421704269082511515462179266442879800893368126239052574257162874957285225142678351210599821290149611995567224382553211339149697326598505493973557679013509734242319802384315875756186536607410993075406350605320309930870138005769889335969636965437149428349287666239162860526775472635712047401934290853052894999481038981838855410880011326939833866924866786675768485473664497206427101058612912347097713210769792367843557795226198388166570593273803112464059010366684324363465629026318224472652300041639591644037209834899358214981213396857153781167147484262271422765894002795084049636045538353916212615160484041187416211986173701350867847535744087671037038585745732532237428530940347731440589725308951469358847862732992079642257409817400728419043003153031217791036326950947884292514128337937248878117955953411558776290855925169742445892197110356187543341675615195695801135497553019186366713725240205125727491301529183894014734000417032298254942692594435341258095286729709134002083331063059627271736103807942105306519267587376281587596043202427219170717773718635312962072534666871409503642487072426757353064622892591111885766588960299454888214256563066886919020782444101291597488668988797667114578456426248277469360897853462422443864129151683784913727200760630688883796833561719383284910474313843741359314497640090449375387408074387805277911858938494167538373379820415227585105424722227226957098913970988648615415746648618071085167682515503040629682445662068077566931950731395871366844489368828604512643452200367173766100338426775114358602489103953721514388923646356892815423958670783369886168377464647655819365469542084237003246894984280836702113799777513200169132533050204753414841041838018896172152974840456436539818170167551338377554016795685241856914434034864679133792151152283272059150531308864666166938272458486535798264253214260483594159595067369497148013485666624523975620554873924025103626435064762363432067873127895507131838010413894577842550744282632207341876917920800634158720320896277550024371787121706448811063879521298150642102567897168228613719527564351718710019678168987887102414370330359686959900052561145990699809914858831387726588483688302903074846972679779461746218817922763422351113698998909675307432258019616160226761257820816883252592164795463822128859284153622309339389986057355678116375746079412496926674662324414222578325443687854734994170176627695732339818657339398833785687311973585420859567476215121313525771998895979329989648129461957412646255857079288372875659160643651916561330750614979791486062050435806451887858417571322444580576269806474631988825880817050992225779314334215936730414483170841182289595622892478881454342424166675020946602795458526564801732678046521777539334530448515838817553069190867294415416003928422345584249481644161958932398912871325363931448887995870829300124601452601572421934406530535142729756872302240589323669110164600034924906693356463916375772122706917810569086841344019215939110549722257698704543629958255378214125298936290503087412353380955094300220210430740608898011295227819712835454377636725266863056544854677358271450455834380712445083010818339465889190473287550532973452949377322433675152984208797986128758522541158102024168605075066513382714231113143633552332536773659121879483546525890387660800882852704901964844680102631016121261727078211425003172263956737979993876506639647704989988496587914384617241640015706643223499487871223203186481037984958526924664860818815885655875813533628934100583968351102720060072578610440899183173741750698287856854715731480186129962296103315118923091480466786543842677739285136048636994355094563162786441330173326640919240912565454050836951744467653775056417288373030367402152540747918529853722777224741594521080037670685985826941968366122386855090965216765669634585555955121481303082974785977741506036339205025596972471649807120717376296490021327794673598453297328306791953374943676762838322893472840701233326317662378695996209050692800906297930330072978445919940149158464296436504617187026888451678074211797971651403297685667174053293892501381768978346627967829430171909978555931067370153265727672223315902539017571045342671120260839197711840462103039990122383906423296858762488867835410240437970083642629722608374398731762605229808780830832400447616803923329579993567598851378013261748607970104992502644096026521819389167518131868665301812575522537094193970632011784146659142711968680968672958905854726835551201807424940207099842554069991086185537961392549942730852120074693520203355198841362225924757111390485512449920076178231327378076045869559632272534760343762906079062880455091637008137132620068561345362284623599303924526703762507761982312255074880834053452939972669888747151140704354141942383752414840528785391499145164283877367246485492647763389221013507997275301508422728548827451631014548555887184236715147414944200129319417696956432197265294694877217326084822392643969540051004623029689259646259339467207448027854067193088367783964112256757239940365276270927463498879109250199711293293644081421347197015955408325385382814208403009019415960056911856162020818625074042995002520933338848956331238673110239610012584339392354954406015855551157218353285007972272179108378157126069554251167004452276346330209470584460000340304415704372701430963180189152534877059919470195984121295836179614045616287043768558859740586334193672728203907294617854569142764109921767067832084329979628516419959059830053144238394001227913875525565362152871944962772756607011612644082469652145927070156358668862051956985561770412123567943087449958723420028471446149559665269702358736006473658031090199864982579606382206746361869690534548349571757525251392706686469077592148355415560458431243097674301183660659962482296824948124878180516786683390827707296356762011959991296122753226533602274687811459934088068315512369119325263279687046837241882779465778559560745345793723069038534828493953975566722655932535919236780818335676041296192463999601735748146153079178376387943177497385621732479187950635891567082544700709917857913163443045636221028820105254421056554744296404517132579769169814435463921446857231831331931213925354720841677891840494907386599988430954505279960833798012882543941892443032773405325624266063644452077364871233990935989533423826161944581432620720453628236642421491579028693076541776543567088413726122676155835074718021225503380724389011235509570205853691784325461371127342573461777988044695296514982794591950600173200098187971402111527484726126051745003327220595597055243589287966433388906111134712024760583142980204652284636628434673156488640708465281189821138912292005868946711117835831615146381495803009810803838376668439783671749328435807423860239622959893035022780116697076763390867910580148611289987985473777637975341948723761902255155517899673661779904664219690881361012337649316580998878971604926441618160332668752099753101242757106822705435907494311493849515098468747501451428250618383245566577813520006647819289079836085682273735002280826301304028393109804837179408216577935151248017596835087219640036814261150030267199132571087058655518909910845804058143399263855402455368052464492812616150997713947871737234352331064203917794564967865356623938446093092168992929989640706628585339431497065526753734893504723734042668341996002375761711447356024536788255441965388610596684504142188720689502118055052116660348844544800099800646804858091320772209016934732181924822865662419972436542999448560385044720658466040837857761758710670219591051829210620621575848376892276775921815727010781451542121026353778068723793509007426556987257046387608864584851771355886576406558876743704049533841621277363183974551052672922491917697494611471352833334026251045848883135872779911505309627856021082529099666353730480628737714440069041687992083101061829843488951424028536281824495766056970433139164134422924707084146731343038118751817832916824409733801725885708106589878017192174125886034794471818977293027189300129196618302788387996312561565435567942756668343591003530589316708020289489965331851526133993932203043497093430422034111368810013033574272152541335849970357522062553088252093714694723086983614079655536879187496179184139336173358516906829049592885647676927172389079209445389847437990654793632045398239252205814644047288244868113310436778125009656741022694700765755748465182060591544323830354580334885044474345763590846875650108707300129194631164404373289512165969213285434152062500011771858216349379013271562360869272799071736160029105864460048468164680630027508230307689902931693195258631001614360555792117523040028952515352055025632606381890929632128666821787100616898591796476365818657933950732635037873980026675186814512857933699781924856360359110049570777255554675953837580438322618794836133538237494963422282209222118757493114833070480475697427047726566416717301248433229029717645304326625565503590201690988236247365061688990877048688065355532294933731051767150740481459854568168998326755042616867113878997927369611244108049611646013005788470236147235906507840341019732625749126687899279598211793809389682259562619023402793926272095693559698791723495092533592564490949292860361055604259552744644659235153324255637602819827964475237423085404348057986878487930198746039799089169156670346050088024103928958396577636819728626344256994121659879459424922182962591624634181977082420025229609706725856092969634490064506540880726430298414637150177687227228820942902776386523272398947086191237082638523568403200376814420296867305865913959438683838636185375933299609908599373448946282549771480760958475026539923412099271077782481027203477300755621926684401483974407844213314195055826301215854326124491444987861382034681376441730431965985823236349969599868058734604522264437057415578016020090275220800119436812758278009948231743526841808976993852689479586453543151672607705926885978186419639077843070596011420682980884260796707993436931233773394168696661936741008975811551856209948861682950622998392546319939924773094694260937711042488857126296629270754454173889998429314575284416602681130832704814546072688130982508425644788285277560034115338735548701339145856966414409648400472815241135563807882072845192380357562860174761082873413774808877377943975399059730440506493680754015986365355790909195637592950961408705606237235011966814198608510130864910787593145046149085921001574183683641418288936286135727350876177930772420518447248835079384348358813191653900945582351611499755261152124186413670273160055855752808780570030785558846543053545185249144719715793163787409429183658496945154606392808730532036920352913539541351709947133516211168100750627092754024266310457971218069053844833641179170643036218104493928086947903103889288687865646954576482102677933711604237230318242212081417147421524533995809450538525230405383938429908988709497345819345999598130450711006483540705515902181250402574106052679421264968087090279092750719577413681661663483729017806510862698553183323703540294689947608166588693213966126777257072418398818395646332934973184280836620472902209526215974698782261407952696561868974185620413843400142550653720101412519117155250597130821956789044556609657564948192475545170234452356902481560984870099234871701190864432241121113902922247170497368777401463148857729442017130389746971524028384755848006977741011222717584425880836626886442359037528436564691413074334462344654631045863577657564328549367497618233593542085620210214669993129931084051482646331022586711622234077182518981786519484275604653712901133368252156406644888980043560774671311347464227498436746034201126736636021515542622149280748715762455491560422514220540071198388671471217805689986932841417048455108457207631124641052856672786803317758367657372881174293955242467166005420527950569548405545035070573194914340024355204757781134446292151334021473095914068242750477321559280496039501551946569852284712968548482711946270724876346542611049248886949542968149037829019627296348419567018954582518602729016296328068379801131102915176104643975916706492818404280364641630128513405165054356650057617085677407290707239603251570565176744602210512066448347427602306826294601671332830971535009539404695145521367708933736538471112587269070402261728648806974836795647186053427836413769392723996264120384552049888581255494392578826627275049523743720535353440022149049635659972830219032560035187211212400351299233098423729676115964399832227918221168778607854362724093447408877497597986657147405370996377434371103365009500160069331388125453055252864653947311933842222984777902103176521942775720175492412818987356653926868387995550337337490308333152143013006404591010920178601317301183581901764339255086207295072657753788927069144107455471124672645816113184895521076227920794179792382924497279527702790694210070099393040231797000028684066467585845491889981792607720408870908311232689401493159794663787326998528613996593004721917983217932859271270016973596623849078831846262878206625477628752769197873427628158116912779187976476516458703018524355063117915233990185098444674971942990842974884006085143738330518274281133435709676961556039812463456356638065948170828343516443257954897260942538196447021278827744560494318905734425551726094614254374409850857326780334588444726064638716657302956246946382117189095677501624102404981871002127061726678240398162792658633130992177448044161788602033132546362265701553807387450607874679863848489680030558881488286870617068118621193914987890455569775290581081814306138881187663221168214355485647335916064965470130142817274116741737871122425409317461634331845897182138539260651438225708585444894588175300365252601996623035590120484337045205888346760642492905898172509137225225819885798537362198324205490973101670157235686469615230152632987934356203781478388481449197242385282395097886026291997547682577530146864689913138630669598681747485956365888230629367339525477482139155333332251060420152693879687052794101245013212864112289185152569951985225721749675818634219698895272905702143091890351900441871175414327256090494873088565591487499362937070691030451073376416529780164761808531449199874486211555667282224634446100838708177000172465713103163151677870116145484468530365129973632309393378385642974054723075262394249282062812644719159973134529181440355509401777988530652693031689391422361349041383046804167194057676874067324774657149245088142669121598242901553486717414060514029784108514388648283371420344154540181833735524209694825448047215482445903411958204885831293098369512028902065507382578651084923893681217314468462179676629745790612169281095221791966025993112023802502799580425991605257075365279180406313516591994174592218623490274728845013967118639050089199808139991024380305095138502021410443599554126505152508165673475720281632927596313303045431537380182195098926147509662696305384034870547259325339640462035932927349482001628531749460186217147632253617707296038096137637087210071198628702101823750834801658900680920947950433210677339438397381639786066042850283208301305234369914399898445057566360369242488797916061932313951322540282926780766951311736424386646451864476907650533058882143129020225173233912506387270009403448449666252668209702138879857717032452769548119911054761414199382613443845401583425039797337902466988946237291082184869326562265420879330613978928449913144296777185449595221615931566882558550502787504160561628427926758281490573024283021604388421030852411413934058820791985443867376520674940170834372217965741591481631099177418452872280128757656490575536439690059426238539538738154602302584805820924627923840719662705818519591386903533667120159012830130575544403716690397067302819559640030465928285726202071876179860946244389732368204647474823767854172147559388699251146340997308768933845380354284850775809283117563555347438725943877483235852791160627914003263628480883132855129347253779376435470738838378944662898919565531887408419850431949567628709869857036930572430104068708018346416171616390426525009000522073399520420007596592474685543706658339724592229732861900669176750927933773444170068622256626862126128377941056376015403937984155137576925076278435844253223923286341574531304305433659396283286256734864083867805189870354608690590695097443484648052297958143585443252232202465099774994386263075691835630569391999800383084407587107136747227947166605056353824670996570263336743779639706037041641658506022242864897921335419790145122094142523164552095677292099819161578814987015028379287475507073412341955346085003863573990926971809228351036441315640805382287638795982146812486717457724753977451218620680817314080125082036713433171474802483936267552640782492759823571051217245975096747024303541885308276593709480923283307076932463965578130046948975915943497400630338984692565620671536538486331130523894467263033319822323948748452034488453231601877789667250213601003382032376839889747300983558402117328351106252556920209881212409375409922452686341318134572102312118719623167372270705927327490486544013004869488715014260313415823000983804728492232782738632615967802861424578708173242131893851143773071684918030015752948803188063459467339403777048652817871747900004970519708188397616810054322368189339545483011648823792134219037580138382485189775505939374415796076936621618431580220038772754761374784652816459233911997155039014884228673930287797144975266151446389765041852962790844449932602277844576807336437357458651767184051534310706069050323080044639898588731888532777858103565618841334182682977939198135762998435694000333860160784520657589160270009219848763543829347144381622991567953596271096315367659003632953508019128124910445351145288387576755284227362318749941259634164688194664011044345457915050230199165861671679359615762181880622835303465936967422323849337170902990748075274199987880698212732026087195587961054092906900060595050623701737288984032469147718664035376591463362263743909467455499907673174840840423577728797557835442034637877867723127034723765915466916867568450637652611716241440857132499858182594234603272978597368565961993374673987859245395645838658565539065408603591630095884817321823650278638493335261074089315704806730071700602308127599318352392380296534121840433705311427681377647554788084148594810493162935580454909103918310493361538550084770652859735004817629998158149283987129135066246681586275464121647672987840959620897064930963441805881723224062938458130560940743955469185673050089300497559239725420457092368455621066290814575573897968254921086296408012457953477276178384394643772444320683721781225740456025914669990884252785923054097482944342374323049514981809505481533730270642934299400552245309363717885325472904835130363093466832564288592535851051869737907108403452203363677352740924825267627537460137057871747436265438398678950962860914756836484222020884035430798869007230315026510702068428070301044678483789832196001436892734738414197412477836326212339871687128686972571406233232542112530820011131867990500480248267908444336367587012165975793235328318781134204957989002284830088165343366004652404401375294861467744163888439503065710040031293930383276008648966545791001808291961415750564970715658160065601160641375791242898235414089558596913204688595854995671893121896365401674787258308633296118566329413473471000933615571617689550956802559225384749330312900150019168239418578989865766315351800905435323956573015971851387815611115090012338057659846896447260619152091481710565740458605220812651872329356527611760719607275197017757320624197115379891499796094028600078387866620704670758918696824899409835661133950886355702649639719529194628057328029445468005694955192923577653654334315380466512753301073836376320257283132383274965170915079976484693391471076333303001448739463197798543635248809011186109359237187467263043726143524130907562053653891581139371346701501859997486557404857068461914385907712574706023113554462652171303091672015283494213962110561588717503317886067454740220618272440934299948561831295161304774481642495493286642101202115798006871186841393823915242686923977405860004240588986416225774513426338584051950562892858515270659313732957231627240750238581586403560476327829454478260781403424886080003989630145988578591628768297665130718561640523754540379063377361807793342945026045169208238422261869717968567041942054940849636599147589175201391066110179816084574372282125308878260449362878916437561036044817329808844786221436990867818209616380954260281151950336112011858326411070420530089800191259781591799675016768878344446763156247779159046235558215565827037374583624165424241688442798775543440374281859228175818463318581013166106718008135692651007277430699846597418653680998333493900776216590591063915674425339810289088705821468304008818134163827611880127042154838739280070439805813628104533747200409286126396666712870244582158300312895962582554460084960027178734786654369381167840565864972925531933146765298111116262018064827231884264044568463720291291410155994604831830157745439908078962356446615266098666827200868209245490686910943500125513040106586465406798306409080240911945216235330509217855545154359640597779239188006730980193369078418727115739459248607136234861008859587840584323552013585450553375561758359611528313473096342206744897605762444557942523584356627414746929709866252081311654129205205326739566124105830478424987402047368368367972732980502574178123947436541171288168619464163694775088957712794830175379432798494730167796000376155804352988414313487526221248378999461409918711716390109465211995695928009500832511372730376668671607984137581381134514014418891848567439161959651681708156327646450790363341694262741158577859313280775240148431205459123095937897971500833560856881537133991851147831302096187996581433181585435632293935640910852690446292718431827013746842938097021192953959902420535194770040102150889954270175776113374198682487171804478764914864890223964871865710322615398525911745118581773488823666200775020896530521085552936796350393922341742865536396451924735945371385297098029074027351800829956747293247851406150750723135999139157723282341946419476961761485595089103428740441715628874879370415009316023193542938561362016005444641780975788134182370546455512210513842444233286427237469242667536776813480514298387562045172685204119915000413851994927173483963692661839230787620937752225979595919141612735974069266745769766669968582720847342247541432662181454118986567854502470285948765370369038335366845583433498635668037924198245082551901673660540630082282316789865844738655391816613869700034371944827703639130180478821202133789931284190978906141883937675625043118909835861461218165394162826186869158907236926862583291306279343858242672931194273758877254984310662797793933932209250091105914544414814650798974563277624342913856314020762197734179503131626518321267971073540964222744519096675310396690975374574045588508989072418976024225917486212039327360243443253624584498951894042933609136024000136559904364465240563182911385700540570343827643808663296850541206751631732093938912335123738650185276776825875846469044687980427530595831316217658846738709255483254875109913551982005537331717133133349810794411447193284732193739491904365174056728717445101451631282921112120693878293683116110554616086021170584089731683550023211061672973302459525823481085017168447426124467172355313360764197992534356690724321721434926594922844767011470498763245473398910983280762347555077813012857546235729976380312902225481078365534492460633030030975104034905781742320828677611213812733303131181001200277517790986206556243108071619080585836005816696251207887825734387995224002777544680071339844257240496459674853733174098483071083556096478679187541804496736468677654285154791319131623443857755425317172129138714836977731375184431965325049809897508514824496723945597758915050346844682125753986766082159688294863116206932877754445576602083221643839446973186112682850704129715219829987032322813678259768266733288311098358368702178470337199869160320210576745748040005612403900128284231487588466428322507080330472503622373383298961344488820221193325160939131836092836865334290762187431439406671940220149574670290312016881891891953079535237073902617791175176419072332225659228240161049009143049902756963853682865013956754158219941572645999528344162769223383440340230977526032825200478282524124455079874353847755244552048874760030491177193084680640495294288451859386701102204891246769600518802401639582892269390539727608197166482350632652815651839990256283461628175693050900597749706247570920345757561041919648560494309386087167239553533750148759015900240218102979424493086973774969659484595980133951042910923339027264540348277741593872096061544463292606608612885952542680358042074262913576237325261736898251781401284292678724700404986694741635654329285755545675052546142223044806113009337782038168401990410160837909556487887986594306546999725182504648682618226431015024027064423459449658592909449698606849472327578129016070801252836956453284674516162199935160147946689380352410217864841445833410380077617405475367596777039680992805293204958201457070061818701973809815017280709026521030651891026566716479741117879441458405007775888294448047192607793717054147226943928962013418846520112367386646425026252044045222335329566899424487043607672495655492864485434003105445036946903286803706237682088815208697422168889161691156421307137377292480106089825047432623624784205795349332286037176655742799924819186008682054282704625315232054820351343850274256767788933013698732639604884315831148772962876965293614968789659051098922820411336647615125837979237131609926133341650758989472898089358978085482584316769837087001385439053388420932401432163931661712801833614625522025442098887040930225480441621133948625725460555417914361634042804456878028538803777827890934122577258201039637736269867272322756938483083756242092989015484058158672702465858565955510660021169506674335710518556804007851594772109139477503821305279917860167434433612356019071142513876460120968850083541201059967640739897118039479674314359962025915372117707489078594037289763152375845493059719014838674014150827719500564673524093833790635220438457168255454159508052905180464579304431692460556459731544422020297567376715015766478577455958985329387504056387192628182173250511875204530056174362177797582805917120843881667035441611485146188865921631714670005961420133372944601948186603703202309038184281416826854463900319590406136645814255623251688127126620410779926051401714154862158860703345337285302877276908689300910540382735360488942874000097455186865343445271804009838894426323420074881628893324102752029600470890739827011289427085622668785791753228908414158682965729165663175629137915897847881128235860579327358128416661343263169910793315846789251989120203258279596557279413858208282098220022828279094502967709494690146337727250750682301177342846692437401124358022615519497272567716884591093673785419995227888541515921980369180217660123532998616467190884053280928811649318760238595766805716424439953611146882702482603683589267242921029437187840941294440084214887111189560504220656018141806056324967483079722283935186248761233419852023973876529593522635014101501992357422101875638884522971597587038466868417708420847878520212562822873616199533434212344891537774482666108309569822471708766796860170294190105025994988108672775246549033567050383868986132738607733580912199890950111807299583650686518651499427080936902476789985383601044879878046795689770372632858020597864592514001542884617911467456668539331479114657806545813844256684077077372603975981143337820470568098078389145173639314964967170896514678607757281048113148389741987955557189871224918241899360316434465540456437346629839411628324789506865027250348689998222666309596318392984740083954812412294725492291194252053305929103818336400813536742424052889059167458409204596668076068679918996856061953134779652636272677116251137153723105902783808587874082932628554680004969805031447227764899957782481445885594433093886061730030560107487933432069112731310929020971693819025487173941435029347812766872846177284497016225707281998199214728504927758087147981753324907107216375946457659146647046418379040622653477054440723377736592571926462910450028787443070353806661671862134386407032589741952094000809491250175387535727661912319063909252317515517663652623795950589518295952530775150868259763359415583777161789201598136842705775133308373058916939931666263770519339479456808912877903766564048319429377621222012051358670847668403504699339790349357963270260697762043626774955376222055044653711094995890883390323726204519431691846752302611809192445086071005876627001032164879203498373300354651438222485027704829609074492971281126898918429545689735071933935483708188103168774081741018270418801682196781503318447517443975696916169817425381184778064986416568490494636761001117955201021469971835124418542796184738139931233062650782902740110858515335498177519039941183312687543786732676788338818116363678348772662874889565882418152792472342102298593577236229401296141376509531898467446878639977686691467302801038601376307415214423740982489777520942129149357713768833600718935059876942403166910456903187299057725899461533148193426699252668963206419389121930832832689515949620219800291829780915272048622347405882104938062578721189186192662406346544243655077085188178372465128678435919333676729466317015120344636510573759267759346120362995858851027693137255048387432625466163117007751718365854226325777521013112668668217769295646307388155654828521099484273698012377666678279812270605061544690771746988236824175552176600283069988067223981552880573482970342141233800937827449442482945778611375579054021547871239206622372631658339774061484837117998191328747807376081664439353634251812752454267568441501281539553226081386132060101016533082765481598649589063488761567572099340450994675078712651030816627650831831229747526339321213447095325674889845643850945261201825839337045821861892979041469207648201532523734632426358477912547791918350082112739398795887412499227379071675037984084662629718153294829263389683612978880912044806410389713705130956379152607776867346596000215125897817212286783621439990936681200674632511617212818420184441830881802225001681973109289762532742903568275917272208119856021032340083849111214419730073643045854027594379983360706221674800247071234609620430475921243986441780276034026529919893039383782911554812854513151607707043697542067060721091207950049614284231323834269114526810961264018343600050075487231170980609595839268934311691202216277448700722193453045352290703833257505083830988573824994843545456726570405835871802354193657915547337972969727623541654209039372895098624993254834565299164379453899674097723091748352828470937069739127318469731008437267686426896099378380025337814299148852221488595607941823539694809444000973919193922488055449568470157902991086894021569654828924074185875174284402478018775191635888185334034027458703141332722590090894259269308651955746162560360189435514635509278969961060255969560595512831251832997202573576064775883822277875588625314234729328917675162879808244724071775747972763507172539028263329665013325725530639449053124221359610469107448650690393437977194940104312646024700934940670225819691262264399949683861256517963219636015754919180099671483416045303333636640258770783792869431590969273286299769835737478031545393102972241054447868699330510167271002607164473163928907500421345097957847138309935608175000235512550182308815454375670063521087031111932632787479391111632162991462657634184424594446664927631246321207538979988494397435586050975837941679123309291419883568551681267867681599076552048437963253521737256471410226049222587127506111280344138671077495209478365504453338167417415107753983143994772821821340379362553830136748696235482863155755338903544121476595992129623643265141314043983487480895766286681419413493899481486996106138262202592895626011459810424144373772965302446239012671301042024174040882294281266849808765727750959239761404736181931175144217172325889381536003737082031356134462410366201435523409889766186214699716597586601531949426756398635920806711396659337800227699073043277679792323158145158615177636718564762969061863325483751475808886783222736219005305540560038123786460242754291669332426270066855368176663038447036277780325355715676463998357469089366909859979932500460770430779238310610831928411109421159920054890209161443064995811808680706277177985515648985139560999200074961072094444715784074918914549002234309038166796116515620201713362441576911064288013795617930499903645714422810792747052460182696595765407540705412063740079489058526075024934582427496244965815041028524515886055825245382958613340252746174870681915046326562478225154871952558768190418322741298602900415347590668472649290425338903696492311132268751171924474203189323322567417176682557460581444397792116455700650041434908965461569089154133644026831060190228941267161493775866055758449458582920474253269973178758221315680374869079851494515340913550871286205497533289413654853290333360023120358366170396783320418447121942026790807127857702384256152562272699856057590930733340958633529602405588239264801254562043061290112291581239983010136939690847210008264797971279950796491095888227858134928263314664295483868404734805814427210023646828986966954743989116499479579753194694092741032137004726085713579238825618951656160767214984651549085319450854236419682382137217182503407203581623030475910264750763111047590624706235606699866419928698732845835306407887860105157303112201955210355141757483463914816929099424040948425577268224248923601211203040658856514300734210121334593154255976340255893347199190569270865120665146721778783049376810732166822539791429914309272464602613333967439587093322545249980318883776132056804341834800583331058414668593694302389255272052137015162327003215266118708441516148498984965072182285818552858808981183908407389329978327013949986738318233377427678105406150037882427555005632084663159397222271232510906726852823403808020691646049879931511662668653568218360742863049412525769148398733448842189277358517836782285391142326626276141038433759062497607421830601289457021787466502035916426287760100346583405723193077282261159801657792533137262904041324327270585166072095102621739070032431548074272263286857763799595995797660408441243379080334076251600814957027818316991858982366776177837435652160762072559449359809466546355855494193723080606741336312919380885896377610902477073794850133532381793603810112444860100134254058095904848893029206906757492333473414726333919473927109215624465518810131446438872190208062882164685949533001563387248711878665658008578925592126499790550212147576526151728780779987064824008676225794512125652290455127794445817412662964454040633298717717232541545834599910073832390538684483534348314253738887013738858941382862277482100489389685049269809728836333638149799695926862322576145381897807557570782680893520067086634960309152500550897212856723870194139772377515968969910326560360125263821446593702556165008649080674318661193877781891743734629270765583903179061335394159591873719714991135655015043824442697509607378778202138650380110478929722666713251907631487064595077846107062789153282543722963977857957252540313043885971529529462618315162357895087076538205405464637214418646924356887879920369003871062250706967596405621848689225354126716189769332873322146859636300687157014129654425623462726071003548123819173473919927671620428767282527565271922545275675039319137904988806203281567847760501988452873980398175134465254249062249539505733882915957772986656178754792412539102573307143272271078257615249575999232211829838600813674709409057698152771947260713692335877377718085078480840551281474108280650635535782859424207609679600794497512689426162746338437620808145043506231302354033489279472216952643125598180241576969051054734709628267234854147316888378734409096500708893631471026065444056161814026292748774253743913712569562488711295654491673634203424951211583013167384476582322272017022472001020842025081858828792307018551488208852894635379293291931511017128292217367931868663458523696023430171010364785261526241715865095324892544184586675827739027672788690381861988453436585066901258982113089846025293693791683697010123000655109720126044265425101224647260468223061326532187804812242259263829970153619935955330222156266081010009399457844019138752153447953318917864941111961002487828924759664470494708721693120886853389754979393477496359701816968735406598518304835033768080378981487430571727168435662017331592098916345910869929988428766710367393937911798319878990442816888153422861458876906345376739283970924904774201024999457232640930844123368749370882672705607876651697712201758623920309047540655496058247248414757142147511411183083219586745245033689286103747512361994016611082513267678465831401655087747351350447458905861139664548524714659196122466681346027903568291923060654725234511749168018687101827666785921012212247271693888922110349033232381568535040812576619423677672815123335350799192204183715231220601474647158288680052066305694249652253929534895737100555675585497425060223216816538392677776518034618513548002127601416189572064036699661568974424469327068968954234079171135108917836304186323596889123043795431206588671646976160116334548924607287833452230034111508883189566072207588093469259265179516617800622058035335916258499761168412925292599792962432304038137609485396214269725577640999554975719701563033042299331266142066882484232514844752062270927752604273738099770959266848508738209566057451793891629512411591611487179950303208632509301399976277029950197269322767862489803318536231513516907362394462526528209085358752094394743163982442545272459411539317514628391795836410202978242112580344184856409247973707577951083253136067166937712858768965711202576261593992054695458318098281342050184929827277762819642646752936266062666463590546700222654177346641008128860987705061171265293434722708572397922328223160218761850012584121747361967734661904478198273803874635729198197670628588278741657207813157540849789123985958939940988132253065298350961556550449450732039767512864511391534178103281203658090356231204426362384044613021960014078786377781724322809918519518127377833136696334137313338904747182785245926056803218657196450159457555594596389714005446990915551944153162346239140521795534098181440687000583978837293914914782972424067501375586572438927301424790068797650101019711825686195880040650064175251059602550377888642244472168773235685673537779068036658785411726061047343362093228342381926576002875105417072905359481582076919402409974586137669125101867921944037079383716049766756514688207780716640681718069393614595083656276584531010366570258670295923621758398464497443611965848730775972019963679090081124644387946008533604929829989475003600197269328928593710928333383709418436876935789878439140017695680809171334438194314368645779358232667937358595835637782232323530369935804754853198368570986932773086839032773888049361862737225675109405300196515111315352694773957707883446005952343360409839916786695927978825173403740468245337911273002064953031367638201476700893839334454861244988206031926355994965949776314972700417099835654690381855506590094915504438906494362022213605484600960932622123810886152490961122826806600539646609300735314542385963010394801464134180090038257918063119033785193669469721712273824662916480095035943905064808165890765560217135591475121709066921917736393195000053504920199671358951549468276801390423402349434025831435684984252236762195287390617455980374264947409155658997487447379479275259417426572928590771639032191160581199834361206060484711992485896324660879577625002649766176729202111112138790212597937978300393915155251560976108083857780407425298838435053646048589144327435198224786021218167498224305642381520253909724989601447139269739085874638486891242423605093967789133264941088027357380069017600187511959272769778441003278624814377496944509423589026126534504313140521731411519600256580209652754305953634986286018124711656206469314922465746457158386164876447648549401516732809053254985642467030570568844109946343458009936640311484287792505005875915009443896406803100479749489400417382802474335169650912236419498447063036015127090453988436668866472383527477501235674062787370221805968444446628469697628121855041340678532340050635475784383338240419084522479709631737444561668009033218840527911313363373174116667813470711146505244070137809829319156441466358964484996860344823338883137128690747987946655060416807946897619706991327860858243447595946304853968979585241965699996683893451628695636906087156276102701762173444731184935864130715103008551796476223401079043596694867628519489613069273423431545919760024745562504742209240706475882688871866160810619998560381004748255731003724511540643568395724048567782356934009205030458119575896802089381792377753970787899331787300149709945457785403010823577253530393733864695508377864533173306401579447484050667889785315570311562868938504776961917603760337548445407812518528543064109035773711212795585751125771419632628216179044853277484237099801892438293659955998920183248798737140828131482975073351204803948316135035191214388166174286592191671616053331015997418134157209236219285493753549454207843483366814774343057613084216703456324658175421409719887992692827020302024764420385788837925947223293612470017793191232874483329489130103627628521600151304185262799153085763091366767892578817387454559064058275500952670760518064498744535271627366116316192018750739127831761457384600344783653383047464703573842947927570969803135764522014597359954685697743700977239201392184115974150421049561902791443550173227225548890551616722460101404150287333093111753143761017237088110497046697443118993941480098272116206566726400579875470763165548172945056955278908739358518622925308480000200732974414995185014407599399422348835632394648856253196676154677917610585619727579103032475274616449036097910206758292769706416444548006992210829680949979957951791651545054304458975412613477261966256123763698804268310358810420202114518417095374543341092949762948968260036473807229268921662617339035085352524990951573009516126219991278126592402881914858989376858991886811107278409262311473821485795393950187249992457542048004173723705522720904874163044603174770694953411825594842865366303487874035330687856643539840831901709526434158442792183294245616402766986577051004824693831587595405703122984131857590575016162279510972073347957027799882469984235950654811483792367551453100891549390151597378381549120665306305636951649345975513986510955314823308399030627169529206392356240910440130956344004714288227510233400619965138812806112710389987910367108541877429787745700792473444848127607538726605988440701342296299558156116118766176873262563992748402913117780277027834446173973325147644233043180671933391813184250803523072769577455363276794408326772351674999818373462068296634272851982903477986416721508801733947222702136394991856952528614883212475849971414156761209449794754331918674545450353846300756771700206826122341834248471278679683781436598924475758532641356707376191786718541099360111171340004314518752324246027411163686272234591328785946549417736118943651069601842749011006340174299200830073698830548537370243881768050685866219052799369235978575171527383025205657467602359435850310581314549330769955698874981075922059128126648990546134106080946430032214915791422007193451356082457018350065404816133510436324984986568557560165576913820996023580751468693147593432731946123173720652266318770191993497105017098287788178187972045063746754118880832225082105233516526699020183682017934915291927362706293874121578034975262233749254915553735302812040003462897527120374112801414272766549414692510999057697196408113214261018816773741325495909764125795773150331510653003273473379222612867277677466087165900552564433168148818131538605567271498109607081380776657798370792524793518473068385715473783363744299832706335750582583624183874756367036082368958211536623551513610647179079316330970658745554324435710553063527699715909788316805381181144253858272918100591293101831918037152391305437810479204171218457085269549079063713240917103792538199571111766876345192207158957634515545945518047840751080367438846666003820268843838649168527045594554860934455871713574245484013359304168765551724793391829858334165834579808155282539019511370943412144925240950620112234351873701925129252073411622258955658833618939138543818773383188976653834519735168171592550140586247508093072490562441360534164402605507721033903338954448658874809675793684923863559698442216536989672799559549621097225808240147805101350165436418538801693829872271975435915223865712808424873761527579441934337395906534264507178974027910353163811492095995884769411168725493754458839879405374264534315784926732806749126139335960331464823627175272572957345858219157350067224556705513405125772504848776708828826723845284522223067775734018447184414534613870656219555346620710756323617706588569832066394676547451218484679039956514064065718652689482430585804226207671438211359971657521627895275655509131842314063850201434407653370530000332444415341610483808061656939905163455357878779661941205412855745100450789346857950935434069414850774987943216970148783073565234105579915244393173559472480736296779298780093159641462496092343169949052555759751230657419567433706760369393942796380714875635413599430184741206850342418890157847817305872647010339612374678292562252128502047360991141657609248235581075128250795782890051055138594618165895524080136630012009892311460516402052054342684141168177628830079879777298641019125447028272302556692198162660443626585953333439499242515344485185946885311228280411064785637788130127758283779074113361247166424956620891411326145530684596343331564785699298897665163913027203516736618925912685608322875491428781245128484851663904073174881719972138261447037358504153417578092889083112334986187946419554021947213132725135304918845620698170813511022851216885544346811958725188400286012815037538183190364308641864790864545447565679259853881247834564624138776699754483176020191811179324652826707078805413654165828577771171087717703349429331079524728750833503374930379041236329325407903254186549998752368935974505662970703157375197051573184029760611410834557617043761918275312192933220243083640577504969462798764397114327015816595309876159475358819148152015177378023193053987873351168229469902549517707196800656480749597588529998574293611293376826682214033580089894019436216423441010435646140779287751012068257086392426010206899599582970929763216727782438903317111811044107750098538422361999471026063252290218663818963969340222790681193184315454287425064315973236387486829118554291211703337715709797221055815468260637184612643196837128959155047137172165451135306055741136702770944756305675644352693973610755274696927843751867576413529113494648639836233260591135022233353000399900128306663466973482159372279076453979139618540225554171746517734008372221261850839135067630172165790171816338603681172318078223751751310741317721160249642893025307718604422678850308754846837141113768632185146401336250634430481745402905965417995524787353468074824616403646500438334414329857303540072138750693770532858246623509377806076272837714358376928343078627674750939150108344162576171772139288151891003972159440678827805136728376854329259662247635951236682466558541105340754022260505412147347271735463322115154035238968008573434155213698991239709577721490046509224594166815695314518038199281683164850912286708996168926812427487585554866071294339503881879784991067748056509670890299809482347334978865398720866848166062822189699446504933280290739038406501933965680263620141593515741993825691919465315373578686146578128105709876876057390864529288719190264951295537663467287974818650521183571376014463726975566266397389640645048182261603938981604569134371181898624809036423706206741234886853192282241394613587820766915385039169634193441983186529269781654277348579318142547082327918432910534826254226285743624369291218013393487316739939667323095040903340243306955438677684289190326265069769134854095202137389536103600834155445738033666943856201154259245398773414647214727444091859506935058818663151789332222896138722449191451389133457269445283247848974534669526202659732501495118661156479555714902151871508546741357001983712039033013543874727892708676462552228211777566001127259142904477124817060007169229561516819548460402602878657864466569283955989694628239416732638924033554315861372213999033984077638245998189862768282065617781578063688868858844466905770098387248194238585619307944889995500491958113685183565983342008785645981070768639437915488317316297868168293572357308203429820963165596678730928060097935755071788711312426320481413351745166777053347482029488319839307613855604476548164262189416040253094093856170585923420680486951327789154933120691871694972539825925206206520239644680961472719613625913066085359533585334346052650670612247070155609482223129372985857352720722545783376380685590719739152743600820257651575764983443376663178882842468167725103993008986391785431413858273340318373551501135770892983994194135531490058336384418818869682771667490103266644051103355825688163455970267416221900515234186527582145081304741605758042974837825130878000061649124888560510767008271795760808950947068729914781512172487620037055090902237813622229873975518099374985512181299391446650933049802844562994206358095601700221867203521514453854774604730516628211555952416414852596995011246585115408529063036942472893611259753160303016167717748609158381286511173078013766812058207383159036689080077322627362271058338194577438457031781162346282658530869118203295338358458069816151854363001993494958560098868390961126817273635126860180439796042982827384178972744832770033596460990443251944612030735401102884452908226081987896464804550963684806978376844577562641786481707786795566087459271036882441257844670163664502593797145130799061902854995968566491215898266880218520179955282211096796953354063936026092360052048742395592579364875960830517609143060446486899751105593792014416519115813943773124372512471168149706147770530990247274014099525616175862358007987417468145078946062068097220780124293752316009406214006745906447152004577343737196273925914817637195981030477352801386529742700885517045801843178545341836191906758503322692892962324698084644143071635785016439587997363338320605796029177539374087387535386833562576355757225276598308203508092130273242497677245910533189236939031754382756390062684368676784611362199785804914387335081583617373998208576738628768683691145789525011128271253509348530331638384364718306128140564187679867961000013089875363475427860105387539469349679005910082588775206762533217039388440725227763162590379020387820847687124924958438167510728092631984104041247480482730959536769807425515908712260360798832592988863994674211567950782248985598316177121939170251088895135979095864649049088285076436413221702689611354123508869476117738605420747350520187518735416722791465799017889853562978418542639066208733304889266591239967244004898339742218605618104461704881732112488721255957936680637844706857900743872652965063619534250013258078371269858168751947486025854318063525059677215867446725186476985481747638918739148521106104042232341041024000401954697837341379746926481600593030100246861343955789215656870299685008859819200063947708082021604867139516735988738804673302590253786615558481937733561752401261122891176720612418868272699938299442573334658131010925082475975191261913180740762104437206430903458818714116174359238267036660151005857735248985218190023124835536580724698868832474242393453453560218851164350075943351810510654409772133414809831476635050264292069169444147033712205684228856379367657086747295340845475196543846970585961275390252286931310867696817045623844635327534837265201551000038652440597346212175465968739565915956792259531262017012532836824496756452060894763787837676991697178108155928741246649768305999538871903873731700655541744163763358748437174075975490630002887612501233677137369879290271988684968528995209592488007060222023764950565135982466659278030785878909607356192588444157634354071129691325909440100918640755772184829069857926754875941870952576624014050802241836362324625012345188335936984014913266851608554353164809396523281079243536249376614088411276321441656150370599849397840661422118076037972773768255142879256642301681133722626387502849682606607162718897630220037471341516662667543485701033677849637779742071461407160591126691977481731592759032672638525762414960514078766673681248439940553340731022700570827761683756609223242606010383805191401363323520250271348266333533700130921687618985533368591777800114739229372497613971489699770611262636221235199845202151587236142701448209588069255719278592089843996118732767517133043639198248932762776830139075429282382387357357608632942318965582554672404296849155021611193700764511784503941682598345418111347467026602416491065171560591842755074729598104960151396782687284195095103593794700896880017471912693771102077977365660552845744545817909618623813580834932136294649582518832289922820887609336238752163269466221661871826877719896362281505869878027013983038778381802688218109671421294563647983749747521883231353198327821851387793751086901591337109460152432721486533102697106915269802704574761898209049452158737689693784509179071138623172357151551470196813261352999874117197338643930174391114255963883657577429730941660769146567824040498957788102804206125924608376948301200336991866887498356345932565441641205158745220469148027983648812662060141046594700033654035961841323832936967728684430242725839834369233685318341014584964321716196760854212129010542820005935777287819036226772265278821851696337544171041441387444461942445125822883850933611547723398208951400246455245680395656255478018797684349799950857209112453820097822777549385764377199960163391287288643413132035093930683051026745449131746077221407318862762674169264956260529120189218478508012089008460287725847490385857016187244661039680626785326081782599520979698988128082655983431606078398103315816654339376475729044813328321351434218356370470156001964065613937285877905570981495410699939420904608676538867876253352079442174141674757029592157890964554790912564034120020055075375085013261959844274646492585330711924789125619258813123273961071579902733232223333906479930043317273210822147623245656215525994033440725926453582478074994499274042658816057665136093945927883591759994733086342190344315262612314716532618169447550116079502231123196842838654389150580278361626080120385486741163413477214534090673962830737220357513959373916981823097658285200585739562107837857633206902166106707873814836916998719629178564297582454322532574311917995798304563706040602113960788408358777781542133115052049906808979426309945894040969502012571520402748606491132107347714151219346978603819517898038139786852640351129159839783309174067863980505118723414298761861603128138270056213211738097534221494025186830017694036854954680877974128543806893861816929316770382273982483729594284056589542189560126854912536400434605854286016646954059539308997095359519101103069428765960434981560390805577725532248392139625010703171498676941805104453925327222061988525754730088529002628923693619696208666035947081648324844124597496920182506611538361702358654701554122507984004602640200398995156100086135470985453170097978790041981448502102288587154361522655867738202282557563241197159084281802015008463877921535747793341574047538026505889576353215984147714288466792004123397848957870378876682605207041390626636183783119504935559116435379876795696818281086001286916717306447944030036482564472235967530195980824203946753378267206240978769025981131917592019015709996973131726855803611111741850475001111035446243889707080621265166879928457758326948918766398399826173391132854436402783378610460772843708425813988865084631527058804751982454894306543341675986651554478499378449796909514462048386941608392911665828493300425462801072273340346207697593124822416002413387259552558966399507421634867830391860120465705282774914010281682896548105781776402356057220925445806185484948408105698172707917527407923503512589863325317078008898528017729794497918269075160134250615265307511296611251843249135408235685419832034440228176065959547383316922524149285510165097986637834288666174331897312635477554252212312466214359685350118467953439281303667058066219364530392851713453041092277393633770252102444126273370325744622194848078634366025142715054314026197164105881055161959310147439973787297578212465889084627527114635201915141092106951114751979148244791255667995793652370336921343122442377567920237958840209130487913309341563822493974528282153054296734119786383662395729251798002451301391451992772916816693579433572520173345294618781310697960066479479242985408714414895206132755080337993176801701190236360931669693165062406925176381328549857612456080594213660616154697339373365890520605503375634377681185259931189935703245803621071474310785053895238183265733613832069803242618615895930566059972320508116735879786542294342373123184930292685098673288449624342851339043263499645422721092249524978194246730807829363137131663875441454740139900154064768021154102313423514715844130827118678209996788927341576461169853907591279486367592374980124034334689259095495779670873235181701643818534948867253478007318711914577849524755917347398332078234604011903338356049656355938508725003402976292952271939065916072859647037726673725494225743612907759476380307577632309836427886879534987927867922217939280700713567573353622537905785800097786374357790277850948585007678860795448112016148052414718862137697025247800468629710135326123965929619565577966948823493833365291635958791779232777019892610379483736869072677427780282178689491540770847104567862995942359399593720963350281995158146625214031591235464203876400749201931376359313683860858549462193931645333242134737160818696602308435969650975090282460430950303146280847912918984905387957008476364618055684339834710533760823851448610636001376996886230202869355996048028402990488519372525060841079398388629703958658275572482548363120118834382395922541768857024498884738115980292793785631597964272212044338850315469010937517382330598290440094390083441940820064577676446563118737398094540130508051541677795099868472314612402765092302839276448644633930422612022467555669989171126040270750312148841056344843778130759393561076089759537844622015190118272902165920700301005334119007626260182483136239872003740550158965876105185900404516665605566619420099232524659129088500036296796203831641960540504603436637387549464693104988097205886033573231613648364707336643981581812598432298915199195951630787960591578187349131795251768003377088280897677359081116584790228617406297363774109264663180690110049351867370162318188161558829467643022467788163668335843295073482494995248238750122873876507588234907316104054172538776896617106599083126802932442806999401152686959152854167951432402256519657360662938165570505856201787979020676219673484516054104870601593617249252432336430303550460877103138334689282612503720448742191849037722884124632722536883413347310937630297130279311280960562498946567460529122700270899269260767321009879093717121141773583771976037412319811562859005419838823612262462842946145505371157931507350422461778525550040959019406347674582374081000046574497175936344934704158599721444089035917561615394280949012627979465375278545066503409374459859156894482094216322024084003090900571595051928388077044502704445743671382394332998902204252381722142124573441371745622964379980668370029220281354137581426324789006682401194859829922611859905567936600589855148133677486466597630220489523756077459764279783342675253560658783820892814011973167421226407343161112860216465215741622790150656951726474909408272847477976255442623682119229701125797742005218148718595147664042065055165430449982138340806226791070294941256976293572867519253318558432031069845274823101451686521655254853792792217116791253943669978963658863396174780787689948575056957520466109065930165216569469884728954737611239556281952583874721763002208230021752077543992403239283205585795560294377971733191476835219179365888660639741336160849680534226624392123049394638322776305682073737626318561177184160805864517663213062340314392724711648995824523524059899089125579312765273995883933595349237796424304023205950166821407769674944932500750192695544768681365796641107600994786766047539049846013751846918100231143093945344964535616390324884198537959359019593357112500990197701704533008698260000377643116737104312734367503993018225244098874470713777882777480723076868670194613927787788614791255149395683860392213529412690023379986675544442987339732336603838157819018411737708337027459897067278739022479985766114836989590453607439693604264464033175946258256501273850720755125126689346070323570864249017288481541688848009169348458842372939931107204865829695931591666839026826913676554748666655280289837790313782338513592774028478988437297892793301941919562053880442860826481649430239095937328712953934921597552312245530038210840426225898447462701661423084511436214213289217426450736515907579227041038804961928640555196056411661036133247130708199601010158585411642788196368168096530027127308287971092435212251592447111317184101141593495439203851926885663467825960963562962357280580250233138918739958904593042378001319202673839211171883260127579939725970801910747019920246808106136721228329372997845309014753624431017782201380030911424084317081816116125953818297135406584924752293331828377233044064768471233655231949634758193344140343120728622639678642337897391995080303931233939276426808294950322276941409255320827363670024503154339489076642616762826953476159871403723771175612944943693715410877044452998276647056440150068417209924044676436615822403017753602763229366019319294575178377383366465148126189873805999673311215277996677516426076827507025389379123528687791824209083652910059896118163069329123616034550346717556157777094936353898416670648855768623584517028201555332869547131877222937306747481432552707536159182718362706124403848535767886276908702611015525493382133663936786075874821863734187636109964527432221659520364756601301767376341034708021550891182061181491683454291316787870634984137010511289367118649068141428928598538921816949279844305890287762081113486443678282599027513517984601269372610898804254543896082416945991066677359183020322585009275306719922375836834042392861352383422122930673405502852561785734282184010253507347461274936015623768209982596997612883524970540762247835354887003756697878315037925230796735997586320107509835434335514811326752198263826197778189790932076969827798163908375061787789879199485082788677099158363869387243506519932823551648692005169308690162805512043559714264427526960274750662126330000929056546742152996651681761763906066340836175333322386418401043877563503144453501740425430599748211131311914294890252306260283741766627387054058768099232730958831633122227057746773902719118617969766431941274247434854789952268095143081245806881997958564660530817127667582480145173532240581982610997518387435416997398386569360541049241531953397860287819239280982358051504165616590232983653941202810737348662935786453702557843176846098475047651996481793267272776399858006091591718324909961864902582008797928515824404786654970523976849429828839235963482496428029153500672804544046744629257003418719017746444950938094329907568485471809876327449144039171184812663892551863238195645207366815509680927129309138813371192142215946541040049942205460982775206707117338558364883818749890682841113871925487071777625183451759284448319007668870409264954719685246453132110711409879761155771412945165293494142161426901260812403027251740827403299451968205982887629125223496308684829376575773780701563203823835052907843878718186149879906619522152564871125875225230594992636229954590546142506468673000885630314823263611215322910359280285511973071054090986084661205016926173510336962235810507437468667321079614061488069933812224517844307169498641206495915654061341217092908874021882540020474569472533209518630703560819287408842986546454130624467035030867111620897447285690129051184717587116578890863737340854861267026117226918708526940213727441876648217891579070774207714503529109436343136573224332857497835319478176407582080068952195089246228352061054167886475474492271494253350209741891947526525435711600434445759929533564128942860516202213891625657798827026534211314184543158990182742355631414009333560438445527016334586973714096059134722805686588111574698184825056525831369555289734620125785044638583422161888133654876931345639767106023670984931558527475284791602268272028246966459777457010528680611970619953904627448923307292650315323325601145603634891607981020050810384284990606330637959669691710792110218824764553829343695892536295120512712600628123221135293920284299501736983933799107812110604499830537182528532475800072912718143644076497652662156998430839952963567790816606695068495731837357449062513075744599238087715491752967378276808582693719614398704249756344079645341709286531177020328896358362131366266007902498613420796742454948033126644884212644936062513862039139712214314658470891995480313366774384023793946322898603485693333831892604791474089553404882815328604486955481927948638240665023490580604218994628113657292602403217890612216259220647908243870377836494709451194906907139484108601391223690554883492007636584713269700492267169983565563438773095986848983808825889203418293501088277771136848293167922318218497802762129254098166243892213569258352008972941642115737906788156834707775505402127732246637178215778045536530721777228036852056666124523352318885914843514479527671720937527085325977267393014186040097038000454626887325858121900631994189940807684793629924083919624296732852236019434431463634091329047264509931129102977010191056521561718817404680880282696652327799762069637528249571151962083913608231634338597303026875008168866991771130984829506664133861185943911445782552174740093811800912088604912761428588559666076074688832410489028729647679830080782259591574373502693931690504180708423086557878386200555202045764020767397038401663656059535831537877165005412507351251019857263673321086485947261673362402396894030906866497094075440080214432294414313764645155046656468403368422560191846757505357576446459832407704663387338571488155459947631866389876492814486208496947631494089102381368899751372713125532739754887703915158427115555670701557811385532435958482754322665425602260022525961166895263324874127597377715836050189202332073144687270715350967521208317312821820855326486344271615393246842728549218565056060798525958277518719621654226077470966683581163293117972263517933001624788132128126924072694000078071043493262420414653910000993153418898150490471345960066715259795710616389439393641940415539592440962934632260494197482667343572536449899338033420868469871739795617035434323838049796588733263778863259538881528550803618282659681775697655606567184086201432375338043304072002098442129263661107731633606128061017862511606789135894991903450780427144941086783298740741440561060964036828429284228456025807153942869098771518794246035938360131075685441746381203166677649962972795818312354408007682138865848785898230339115927978660293849800400973373047904512398572351888874638933891473963177130482201098444255974826351704520011700558236733597819011204733022762078910208048165936510787560056935931606838619590193511475695875245231501273824387195402238576028775285979311034675885386030786768231327527724625337970464876398251484444037978938813758386528811791107645802666206838528674341875000501379810289637798454931972405787810524344311389398827685071057769349968695735908586475258021963698439658369115916800065217051812618087656709879675775828209260957428902645610544035810878285433013853883170083141371996229500947086962453225889009379397805538304989196158927049183591844684490088647843814068285147783441627153635162964242872636792069966854886445516197045060545351866861923240609414512574489723295129368706448624475821174896155918780026800789357445356560890929301872831766131257335816899184799015969635533087336312135877996059660087005921860340547974783759375722268647711306273594390887332772354564801415619842867741753986394475927433203252349226482496664675662406572196158167725692233338565629301543268103759864597358312763193989248594885306715392936267565541304383743996169615942001963048654663248001255456419403539807916409489912749298318751017750367026397869719202196612804788055497137603449656835553833743761346899592303223295320303110611205929776296787103799160784002874393781258822746588266712516033648449781500244437024760796205257326156669165565571226204770955012593745109784363903039464481548648082153704458922042132258241690846757083821164182505512310797000655861057632570774141055216876204808615287567521896114317344616483415534474564441362365847043835756998242736813648975024203504721171335048397473069550550333689506966834466206270237568079631396792669923793825014322881586772135193764174526144458182849936036403492950566632843833309148581389602364999443022681710789303129113083823289535725629995348206940711901638786961862959600349736409087068331884110501790685010808035547338803734051769047154001556567960434825408738049005985892804169287498235839833103391242431897945960688246141802555506379120182851207850346816734107413150181753987905206931923545158814861380456432994146991638488910946693526941700060263610150035926360208981135496640906967842341801288031040356996375696121543149453638484980591663397044275456118534079219238570866025227929287928176941676973155043102800626611839159885023651895453727807187549852942885788268062808617155011611857466093417318708021060196413558767549910646442174717852532563758082993591511331613626397249372355916775449344012024443202935592134072717581530571855252810391502652944876891508544561815394382923378793701287975091999839888017105616586313067416243055428329848387240510729918489996752510258103530536640747635182023955581401348784412806903064782466986680132964553653293376825442889436281757590003231439639872659719580486513607435331559846678670401718278514578886801112435689172602703520969468382513796179736261121247189445935730593016591469767573419101595480410261370739824591878368523112080690268511503264607192861022397269195694042665506792755373963030363235112717274682192491094065195432979212278930627036903792272167536453708662580031032939280600839285020251174279242790096440300724740307733604769679264516407329374770268202190879872673773898992070371001780305393854787006409736553967331839884303213470606176571276713883801079232585983820147172982052518138875889803595466096336784336459391804289836112364212596601736539693272832048645132811511927196351409268094242915003732689647646314780126397706429444723882796238136775083392690965404871323276839992405432731474269283575406989352325797719720797150288036070277356025023449123749232977922722648392599240917524217611350742037238465025699831427750702610006510165755876504124815028832654547040593685280040842632610844424059390639416531057877188091133645661270131379121941201771956911877452678283518630134986113073360203289783073731059586046022267578684817363447432289503702372230964290457372873657935348950947684168272483364861004703576222456759907264282872605622392207251602349485402260494168913477426112316376409831584789453306953039291433051467890327382225416941228533843003198161353576489692129234237257502054333387930170068725540292649093379673675083498272772781413478303803070370562526850422486044479412412185089378436848042296552475943712810647920229086709169113878020420618802689539902210840667783922899634282476673703932731721402612995069807576474544933750962353812588505611581150521416170749566611184841577999327008339927121743212994356337806151397713468157828096064843081713172993743912433751606699135334168650295460489654067880171075159294896540652040122962347382042133479622815518712746571445443334297038009356706886306579046852552072027726367879268950678137389454440748728620052253932422750527399176886076178203315537605259112173993925031513142552140873801833287893371727167531850225404911714979768690871627493878290694460897380590669775334791838669751667317397227098592691451038186065461348149098092275002054804603267727709573363502232353594989848658197452676442892700784248293382552782488416105877007727566025942051508205388979115802518671629240693867615368836765005663579244168661291394799979951192919649212471949071499885940729761070535487824527948953008338225688372731463728581970097475236434958230922020825545910504043650144619306802693940198310245721911681964285666121461024029533479291380554743081224753659049438872791493262043897742635235822507107502196627448728037361147759016955981980945604483281504847713973356529896448669944782140645243849571733590139762140191668880217681341994923180149381888482731696090023798455967332001035844902360584069634592988024644101022039884714753272106416361194304720987066681486774480004732344661847455999477470596707209269011713137407433899869506647758552419128842404978463950586229918756202677203910811865869734530628788261054196367410426573807447403088958163488166357037875812583686516869678160761835809945030547928597517167435029311669939773984623474553750102616215764925142304620980085188082308026079416744082703853114211746775605772214799283082341444158080493856422365286985042340467558869100277938403668496725508078041458015234210614701332449334084259514669823870257322166111489240205054243236455607339160091009199349930542951807236860933317472802704374188779115079107020159941124380249643891564848500871277762304840704175443238641399765718023257864009856955897203685207155648056623639116714022604003954165131250836490866276550318379218107974899035759826657110834024832405005610375220794011274916094966281130198198657130836386340155084473054147815347623246443314058389391242213134194120567092029651416445163380086703876765788098127369259547838806348749039151280248767140701060918975910442355097327269161100247066872225459540737770116194149754368414101199396919709453438654371461568440622766115455920128104324542895651659659572849539147893983032476564049463839105921777125273157144693072309002493827335047570135316036256095066722653057625458518352378628748857373869802017258906339899758760612115143991927898356622595490491178743887667981014583803014663724049221544212163810308654050990795926323994054133702569094121242433448991483560703196932741056186088733589938094838354797036644642602394840525859819735185440328358354963217425403330825458462952575047700136968201859692095499612899766055556667530064215449290024655434626212934492165128475545507466074447774868932757889114111466628610024286418889126945974017063911388233752079457738918036263576228549677566012878322357334478115141744089441644078544368908900536543325906565584643706344806839184208210184047999489577364314315735019409322296791737549339198522731714376173115693082580258698847570151310579946289845089319905126850501400999347556942457796259528916946767981716099681357558434575793176742508129701126209823471537782918721380132427064229864820689639089096353459504242603079431249125946856956528344798286957690905498049225343137227604727017365120099625307313742807208561159640995050804866707623788641601426199240897438293506435089311124892079121338241082271229459724453639089611059779847795811119180043645713910856588991698352085642320432365137059568377533927495113970743877513278035536717800038373307996879858555103632483393432630794189013633731892357704057468859085221955013054152232269369446351318986078825779904337803877761919850538528961356913860588757501474078352632107974384056435631702388818233669282358904098220049398312419334210041239746364218755417803003571382999245774111034342786763794920439598546782474995284276238997113837972378022934568550445307282330885302130807229961352177434279547138178657513794547602918560823094565691387111752216840701717555661996763328224308154575748896880459973165606989974571688970660149467513780532663925729408067366527337917932129464081009841515543530875246367669059119712109331321772366155233168891347205160651674180766686152480853727392760456827469556551782689193448340294034125604652620596055637552373362946940246381816229723164422162862554167256685383894660997595776832263093278745078610132753791463447825169824619864345933435851430743993955061479892059682504588250998101408262073440050246717023715906963428804295470281603965895734028267879386005502643068762097610902854272461184851943389221248777998589917871574580588749679893495828026825454249526295890509343896316916947708227858659742169430900333465032967199854012161446775061971410052613550225725084015943625513183934761690370906326640061165179798512855847335963215175229651024735040122904267435896098192370382337474260984086293056144823139737904789164651057646261069266163975953159067632070614763309976410981780609161322649104634905022371321964391398782500340683356851009867050113800139164654284287779430085688089324849360583273424737732554678822225666097693750849994801152790811966682604696972002450700102275403229436274252869629117181105670639464057218053206408108163342397038883204312146622493719375686123214550913357215635718342313614480931192204244655215653111639045108841483193662501376496604755025719639654068936753754006709296474254365191057470752944976116883901182369776210909135353666547371591629629931035650455886054841421737659143468878629880078000757121891897417315589859449269214323191921514390242102937227979207245128206076048769637456971643013301625208040448847420758838976475567817076983907414240618551674821350656602115620955113876250295836951991610729129262420230273481724523165651841818798588146031023729878136971527571737778949826535188756772324369073785661896603232815240273566409128951827440224992373356289892541789878442535721534941762503501726141638265424546423306883922275515602453802977411367362046058601892053946346604601457331218493678803930011805812197233408840728263511162991154787726198666603901304442372182247938975745390626951151627372870521215219588974418901716302763201561053893742976838717058551391432035940961236313492812927744155502011288130715247730085054259242362951267447404774366950018121613488087438429511293070682529611850587719027100727469982735249454320058160515157950716388717388816946717820092843122476720282376975061467519530654380385915496857347398864946438148668046200606472863616078963227720207557046309689617009071145609880209523430725530657556869903735610376216551766769648113697783549066909920653749843154528203618237714531560093389001408938392801488711357816938862896730091084516512894537776588506779130029105506388337210990131813592643992648541366797485231384822197258904091590026812112061292619167898898970910200164221076901774795798316169692536233933097279179833425729659334675886933812370162832706133514871851109444098267861334251487000573722749305659354339114443821120031535155396175508663823188393991362247340944791399384410991019503733374897047247942505433006829447902248043993603934725703161813635333596818943771733017519620281618622037731163614568092599184314228788946710668557925477677665197123476955195063676409191214749597752420332004554818011420618227515642782251627419542022128367417374354532557553088862399515555981703554792432433274973611047089796475785282815683361852433567758641640992138461554891368999029357754595618711324494528416325957483911314782424764963236995696415855241042642434991294216564641938685119440725563601047705324954928152485310697730881037118677855795590956708693632806750998790892400615838471409816718489246990881839765756375893445349162717034338804671493386221289364444775054944962759384346951972953871054754406212012077099799855469740744486730714184182699786991813080595186519487782139284665963526492395906425160919748250643872675846041352711219766349081992447960448146418794807659713209506261558228550693845263952726019669283083281148403857960243069370580151864053616070206849125480896893090385610663678899559532644710787711690296396166513048205650007569811240032990288393935235479660498965750490392483177755513540632153245977009846634840327808491991029380315625869268162116754698244161666625912416033155007361338406441210551400209532525977023570619512591097751982995344954350254629686908162717937706232963380910586991768738206378455180291879982399352859032516336637453197317328821327230731625636539031593792110781111051754235915913302729756390745146784916706940295201480224986889887148978860144910558682045699294410509941323761246950330151642174872685062737777905528297599350154398766011065748985216849979328277512284473857249876273478812432516060537392767757936105846523863320453822908481485656468881196932400312966051437956717697215994035981854122122678732660846828505467327441314806861062293051882445820871398611136182792675064378089057101639429036375450129789009470947607206777806432129618150351586433248557778800165983004698954592786569253003332908861346792130554238710012649141255387751820325012857203974733196289443411382697457513331842683712114736921019402440228968771570653687187547746017915011108150931687531740438482301703564426261357562106537619838082562179490912914586131650397805880674974621326848322691573915579045247323267861228590399576231321299762355315397597491262301545152803822967931309861818047580366436999414584505823067736910506632958442960639189641118213970386636931564320058864817149860352569674884008730813763651588186883103602629820363538197775364958641721167180405433931371969448310156976235198228910895139998532452556550912486555893398138138788945018121247439902796912381006147220466687355934704912067597752342403755571762315600581444895670161415816767933566269361390045097756518666133141484765341514711929427943801463128354347024114329505021729941044986861892431152177480128556705204577692202864644209842369123807895687137696276820324427980270819051372731682418396940647819383551166335071045820525180905013454494334628967319551171767389229171648634472801774624277639465638356122045838057985064040450284314237576599262270190165020527554677077607107605865505671311581739024534164706775721975240768959991245590894531162421489286191913532504360507759756571903975816792629054198304838105181130046829014014994755312831507212753705764430881720983132864882600695005312412413918463403800824854348275403908541338878779431023980177135422117575273798213625379625158906609765859067808454601424418073772224137848232124172029056440868669871764154182777399194050140077236876428288452352846721870554481827317156708991143333952221567943280632689317359792766717336660492171408957110871082608284794504002552931965799602409411945437552315542226866513203482609908297089279578347781113661274279310832647580965040859170905812582190986406937327949376030344576246445990064908127590465733666500909704537806610651546755366493333895694028547463501541413302922652817478745897459135830452468890777597841227037475800693469262125980851467756516342636070782749597153605001806831383203944549396566838147917114749504408579844779861022916011030359916778912757629538297047029984738101546312176830595025629572775295399386938534366007882525468353330492658079175491520107822821460255993386322417865738612977820832467882209462189317408872930088436728417126421048896423725376285628656367728628743991636439095765612097581822817048755678373374241410234688659869875602268114012302769127447647898872288688562085851850488499664939980180077795056997978662418896420801247466893124106382566209876664676178440814891608591551632590254482203345819377500684203473463123378617432302853327370912988359124304266102279303743486393856715881107408795219874113476674463697918092579120784858086716355434993997485078282181694816806455094733849315484890557283840055370198040792350323797910975491999314318670608987422791433815802510259226205457077151359481704399894161654177376830009532117480451931389134266674790967123579883920793454110137254530659923233846731745252536822345297344988381523127122290953415138670323286815529640676540825885622120852015533032241182419199257093663863009311520432069491049124232232042201059698951263547866952703984939215629002060447156770758152393926415200901343257261306473686319938965788970025337758606023346286079190376033831503037312105471030865222317947150554849724400574553001113708857369195958253363362294123438644365463951510990615458334610723659522024153525082737519430942855451428668473332798040515085534882902976744569142388158833080250243295571528863472443632966003025184516020220064896872585760016810753950024452859080574848338634408434097651675214021999269989352415853991787013736580621984998968940765453789364982221048960038410848007592150650093666069894040737723126326525425993470481574610294534513836756222154925918467666774188624132443969149878577715773388622916053389941747377904635420349993571572540068742005676507735535403746435005645123290477666837318273075619631593925762982671333542935137302638755149341855765648379698254493794944497052349279148723212650944526855181998919507451723533160854273273329995659080398928509273778345815756576173142329365865177041816627132364312918325428665424570269574742550063443754154768454252699470413410340135077521855122069039655889529602471260741507885852985691133950473328951335890495377798148405384120422121549639932690229438381358834415984328031430313019303272140199046287627166462265217916592228329667845919157742164118637564470920855580124948154208463382955739946191147485052278220006233107019029947065012463857108576131600797403305354930983437324274627302742693581092542443649299499035785696227026539326374734476191400347773385172593537372763795616003461338806956068842963952532455805828189761296357599367587093477179356783251561531767244153779057235470594886101952327825042744500905252468646764195318640813743309903685776260310929541216166041050908073025436884752565496976350497297449546224497866259245747099566150248252879831122210223811209088244649891539167400096849149035053064579906203089723592548431877620330555641522170286046240703725329341597432737999507716635036846797596339504735699679005455918552188946262668698094002157998000248103043121131285391811050027525568111731881595837446164893934985073945000375920416657831518632670524022045808043288022032530437657247884506944933894250740524398062570495928698633061969397754631278836693890142251127006575369378044072121811414405697236991850581269542873398833115822991838491460147739521347089019159113738903778383502018477337508739306228809173033503675867124027038659419951082780962943745795026842147359844593871605547957099125236825827211692283534496113671849594764269408702259643489201475097602929324592174517908662125912778463703576320109019410613762247083781039539449006547962271894489425969057132746574784421563357663330243182387043795826133820000304973406145196347930866532430085032787471411833650415952373412005661520389323642338478210727903749978369275718189965966005076590223929164623199333037358168472166459866250344112587832866941626604874810704996817847413579121042310748133915792116244106312137033953464136182152455852779059592929433187433190341068486195657913586990687275346959247188387077705944093305459541096552403745066347107162341569309712132791088261397244231703823514931494544747252708474457754028241000187624191469651955930579889762245374900874535374213505128804942786593350288976053727245378029600929679208041006618420549150889161811065501672286372938305578510227849061416796022861050804438340796445295263661425227726461966395694788811498625203258841797626314799467115431295130792700722257128367755604021274747748935836799156533783483496535805901396029962539675143187619991576482408092273224721048304552701086598087050804371720972798024472341349575832478655562329015734639742672416623355537206352016604098921649829671583688705418631048974359182422841411650961064143090094981540358068448782371840741815422521566184135576908175525765749391889301806948661209539896584252468294515855781145452547527134614855522957635064018443484107043821293735185204547173964417340888000588709832235978229546933145022537117129095406452102129465129233696023636331618080929489391220229394826588259416013428672552568898494972238898374916204510137542092725209738572609753496530066094381510759393226063629860341668989657770039544900199367320635242092417320623170439480765994764556137758560330534965088862987860625674843001555979500353514112071834141256419658986136655655189065859817056769636962873560396458433024360929068866369886257574009528589509694182745823270926860226875936743774657552222787215759251714040969838698932833546231245044545628263965968817055898451837910044611599753241258537465336004826501892334211344226066236495035033295089250184844327498200412403632896438720554410472901594748152133225494642128865324494086803435479260707985562296111108946156799201618704661095975472700482462690806298603512693641463439933300066953157044506670370847542388902005516906277612020061442771998075861432800437949959411321230886378925459540305532853320608642037547632023463871084839784671002344594119631577564035700325480016395434959209865095366091650519987845179209745524991371933725370700210817866210547125576286204652745614461419406726392903360189199294621604519527204013897598950215700657488298731912291410946232785764391165277914940452750985025795551839008541231819371990082826285728826010250614316560929142348669523172873833103975979809348814061897892938954561041649990658210639780771923624967306467099292193310959673504079253755117130715012452164700870250096087174195838558425331177608339547843084051280014280603340443517299427071054589916651186268388985763479719172920474617945308540945374093612948969497325156045268075144896652117228191228716621134081132450736246615880963779449518122730379410005837467227900374137226440516286875417813070301777638841997106653923323076558840057018697650382104678083809239973776772434486107272213566127673473323743868978488485418855233718548670720603228173827132185691889864397682312543003166823351697276835400267976695863356633056465518537336881482675358068273283337639785704675656197114529669626014415218300679131046520671184651489176957330616180793294670025610519209806945405505194827382921375342346821309146680966311788049737803465145607339986586868273509968646012968907190764077185716331350388762665001011719698383298866908930970141989529812937177078653387073648744841161797837494905864139512908580742332362436749461292770802991450940457988951276274476760758702899550757055082832301265441541424388903774614380325049229136149790619604534046983499488190355987312948340237026796264418914490616107660910066070187211494794102434571257988761903852214550810976916299243108150269733576685593316710260781644591734181193870520037331743167355042631060824989809085144347232111337874822565837461859886898885022558298511337207626720818151462329557725820214132361726396364059552775895920622009791331164637781349557563535106134395119429141649741281097605672327596390418185425656940566401817878298405710975868959315121108646640117944219044198192776016070043657212189472056530426437970934137227122085666713644871231139996718336754562558983185746314933251717570622785309357639371089443311167547201538917962165466024637814104510742245974529863235316853439228796989076277857126566088709645906729992921283894529803788634027981611886745077382122178466220202627557269462110309159291001149706292396943780751479819472486145067546319245715794638469594017586395834514576317546088831244967447210459646309441675246232222308815981638279325065463618169393130301755831583033310629349492699063667214901480307985265931736161537262792249735817981460042148891821224102851639700180636827796418894753975230099895879207536754226874629628016231585993849624618905061398202684573884778467210954713773647996706270722762219570506117594016543933802555577394829619551017213565987591179642351942362432156376970112131023715244574264365965555308839869115881873805740931115483209335061525526176516555013341283111854160532960227992743946263758519776003305395224782185492189956097662687539327064609046755620458862732796075772418227664809876581351722738071251198524817689310576400472674798381417534189602367040481227459984373350020283066927671125751101731631931746226254882322911040332494852765514735107302237584439939538114185694435861403502192201365858308191154681278396461117589131925860670358030560289464645376580518232702116358732164205253249726187478706145825970740280846025020059157399944898388304254007689743885179364335243280988333268941601891161484640584128242795772592499978375385586807395096425185925375710951091111359610532209826201520814091293239634755358226022708918214015891513653957475170082463930070736393793388431840071525678421814976933005838540441984845851640120708907370160332117841222364758537672445541536557615318073721874809011793302163453459097272561448469131732126412709936710898790287609607507825502609354389707915170612738713324544286876719153744688622018490037730886890863438777641937763730357759527552828408815545547218645975002312115787803845865013891160431202050083513074810575986764042238153916799867067498495103773830371069981605676450033704052564633187120959379171189624614894403986393088535514077066872211417967742067446785425571979228496976299201728153206022553608883225717240593578660245615854077786455679471431898734583879395365898706322776361455277860624929848108370585018897148720711036900480080883768310415189365950384220521499043821963901160812697502100403612429391125377104378175224847733768998573922955159209096129022452707407939279378798041189043563384100727688315596154438840725001537592729689235893882626909887665451260894492637640451534549784252037045364504283881300205595289167995345504593139207250474377457423328153046135692308612732384802966817884257357869387137963380846548419208773362693610760405251282238337035271654826465039069379321607229925533011871331645932853549623853516472058950291072228015751130621475735955425038157435342564517996402547127713380727532199378933759414579473115676942374545478358946416153593419736198756292246146799175899326556249240906633584725202221562877996416491164271585618825093900417531145351597292782889172116728975347280993954730921180216423902171842211450313123186590856241131293292837610027493644318629664828237596423640528480419287807947282835441960682527096628622118696297152437792698864713355428138757174962221739974019099885683737752999754534952643857637691728588462542063418076593524242307335460167953592819870075677865418047993793234763516669306132291180281296016907939454265182881441931207123388139563109224073017229749406289357908173698453222061768018668971373507058521666662366096778132941056526959952766886053953489614568203741101860446952978581251192404867842104247066788694764086331097457413713010526681425489437496598795101594724745124563426403521715922464208589083328128020206449733282316122615786911242726831854749052023492600154121663599781781809297177825954103441893640175846660630435806191291924980515465455375185117298492523124384718160837732370651763257649030190018465644007654014060059637272598024421232850811758038466009431132042164089769720403418419404367349862332292269724197065840085626726451038244660405319813304814258738642535261165260625971080489285503231498443140399457689941289060336379963498243160846015375729349955970916904848345168269320441794660367106378510546221829585375667314869055868320111144202886854230868599129584614949344299290355600642194815209701511627154245001300149100754196705456369696769916828426920184381422749136733158532682521888879091575314119676630308220309097046304758693842051867631172711536191961934900372753057801151370220957557396736102008981032801748414183468405186556532960677745075549884585003554905267359930955432407436113849552981169224621789066930246090783029868797905968353542174635841958415231744474775317344868720212515214385251934355574860773489459767768296343687478917174895178131052412549876763270579508522195701823972348449400241536978474349766222672005686957236333194991181060223143032083683380533045861030241660748824780970090346242174592149639448128451810107501911967900311298096088903544587597186878114767381212272352596073295839622806960324375667655151233916962661408243809116172676494150645650467825016984349298530356725655639070562839417718428999254621427327860541498668192170133012391532722434172518268190651555923118354530181768392918732539513525088948363978566138598521265069932089682352481615258600848747657375869576512989359999091130342338902487740006795907421302294631292789744182776906094751504062008555053163062113732419807232024879124081478941217740081126466441441621494276128890391335398352873391573424566124081664806511872340085463515131867406300485861889019325114001893651517579775293903752458439519577933435232874758083228368487624948430374333824583951676074757810539049340899006813225762749534552200098772427449408329096109947633361810585824189847965510207725361863222376678049950387712391787780774602095394846031934924168958161993470591077154166660002116769599302770107128814224374014768455031793340599872944162225946400083049527605374046101837671852247871043993983909804375024380856899586842555823226660565098651905997034831316134468536432142586664928618582260640944736185731023794563782899668346060899750419061826997486133358849717223723276639810720541439732190880421811200045879837530357502041701480198504637763741934410741346026291093527427659541618808854911444080260590112313055233474803182009583702887349007321127413109828174094385648099294814396688566495775474186924040983530931288611059725143878174735279407806586819917934924839131644964414648150246555730836430435842996307038057769485272508077063498217939533353080753390597356170421740159631273359875919393397438735156302466227113594075784855585666725200989936568746585011766144920510618426577697010775599367123793735289876387005398216635980007874234488527120158859013652252802573228291922890321103563576277454788683165723793736661785676817572470561178324149317501181816767320943262961769085600392802339240980190197536522488077936607430974228783707958488584891197871446654672032680877702387407310247908024454071203016392379011474915204465174089794339803442618002064044695607310568348702405788264655574112889902225262661363185012132028424811718558161098636933006244749847872306669934272931376696164534288608509113490384637132422666800369060282188801868223995622650308101870964798758089144589215183928161184862724899970053309340427706367575976782613433119510016015940421330347824264554806127583353522325986273092499311364921179880123802210213481727459338644051600012976497143508179320629064317011483573887270102377808139816324979330931260842691581555389294451931060143166261615986225139973307992997436584726664176252052835946241732244804157657780469151629172885701136891630973311323530797447858020141100131114356198550609980758517878318022851595945155521227948911581854609463681705288285435615005039884408299102593115923182422164877531053943334456563873171578059206160493664250948522148765103672700555334865696589596581655121834213734274560202244397168881612411258968919327374516615834900504319984441267342217874253828220982470400686206405830311438101529435558257418234540649183823249216937702721346487963097221522256879547902978843570831473998595975414104864567188227739436942789326826157966668981639106148574628274105266783862565748935570962294277243591103581975898030968084449701968972898953198194359660728065431940361707937273412571352941796254596580032664329676753231536447046619528642775705780071335787898646679617160712751125958175306233692135194392786239915271484581827382413016877123852812454415101011032515069508423773452140821104370806571781657828137097432268385027545374768625386284714059659368978775172645498458981153921968612722888125589690508090791652058219344922260480072075326394874212888530199018567328669938226777508847924947994923321049150169073299285735557541627486903097904465890724369281338657946553660877427445871751272547001448766465799624889127319846857734740859179731660540461700048281528107886348193954269116377666556727960943690580931851517473707548549637918099713371259990727752586349489035687446743786276213302648625172616883368573778933404622127216575952254849805287574012423352252219081186943592181407965549956170012709590566029348511697195284718862262695444173092946918161151371409188810486207185163887282590486137067849747608968988755218162917952265546045602840885130420334499269450242508966225903238932263207611933207509873449333877817867547941898972391962318140498747200913561290126835667882925212148868504826431607909984026434549134193727483387770700027113850131599567652176444954799932449502209161279619698436753646809607286812544049917078981290209995365643041728409378051057474056288259119680193978871245229603691156332293757071195940298821058182466615171580208891082614913717767814714001719670807790307705822468794489248432067645610559780090698654616342300597349153765122984192039884311642741124080895946326712344944691496696132092221579948191499277495427462323983187789313367042232806352849224606111966643191365179123938073426200950781552230273025074122885713811279072002756621789841590469048826313945673751384754028326470177578135567824804832089414786751658987501755517350937992799481299209631631260412928241130148962849208405105525280581167822105786606720417824173255211302190903364255597656833573467006187653955884397990726938010572658248287565973217358069040830074660447383232466902528607786093086065896365434795678283227673964913527049441734094808111054093690966615518363811332895209944143923352734451258404539891225994709856895343350594009232385108975724847255328502759040015687634317628990614008579145874531251344153458616007328405063054204208124448625954197939270934259036404229189647420076664312500143438124413522904271660091781822297268209542753671370384018898770297487294504875791125092453816536532118541871176807440633142665558015160121816807457695484062820414309503079022724353354748317289631443205434199768372809540345395932190171132592479816378854448703836180165063524357299888626527963052852933539187009172967437475290279984831983160487382568685998248736650833878500229439212201249647111291035426150077757256082376308107358862579382550137449486186279995123354802045622952880731662990278322314272650288939246607341845998575745928946617777192270252453295436258103745527455727922480972176046090563484383339802984879845742774702370236818774505032766421461160578868202808805328040467991416246343852875764997059870216549390772895147872423801363720191119514090870108956587596188469654072340028395194133559213572134066754639757308271262182142745111534164454474890915003892863087327306141421978697262459976651387233917526297203247209185052559492282328161018090957779146886478148726005940250796693065164565701795586364490108932515040579194586347711125547563433739621998068415777221025459441532576127589547618657815915885744741403336473637625671686229536956771076774059107892945907241355473370959246370800573106706157325045244133696105265356000089400192858681457302982418411026246247573075040358823125302182992390648695984233270235763727230031824180629449329251652897755154455347493974924893104410252711619101649395960185696579615770587779350954767237557529323606552008784043736646879033161330856118602950358173045581475381411012561622995242676788067590644879834825370713898564480934256484743237556508937759006144248870728449508827918359967192125375478022510806867927311117770942191552747659756569803616189122891183842245272399300640387658644320965997801356840613124082031983601626193348949423419946205493645773023393285256006858263184734531908385092273791008716928726637867522458184903474997325389073001877531655123856570813530652166688411338397793955334919288862101004473301018377697215180425943495395650300423055009077955354507860537682399046317808800542266438957095531598714725317916462227886188696567952976397387740707005427906380102833980612730575530163372143011513190999447831980455794002704007676289271881473614886126347171288423428199355677345303936374068466697936950264394605717480667191469144682500262118751139335376066902340122076291505930546403200935318207132852338253137744863792242128422795835212669484490072977179459812482362330037283087560752615285916430008884317943182536401649762565031267129857212078015646520610070367997369261970199248503846480569437487336785569641425450271908893046137713243215255198144516868069300111990086306964152400136197423054173965495498017751485431099605276797345195342900115597571469745408177315517823558888872213469124361255294713004072398396204291161143623029504691705224807189388300408376918495362089139334007265446910743231908797904898517488804299648412821959984241048444794809658583954405778413099897158603339412877698107161435207887468242335591954181985880361996968792141102974788398929434517082690036237124168528941289652442017740795963336157025919487949976816638377545496465732087151683697197536100568479791175288282992413735596551610641184018859431012860555193762697263601593282894939746061967823366770619927070269774105480704773136264960639326236071727581336735591525050750915075913190173326580815712475222522809881250377116551772178265025515554239142299658646643601604682437550108912234117603278806493567136609119712590340793251730770166274771969490769106478295289693361984136162432478365360924630584874906499096306422521435344113860611781433150107916204337072943589255039422095630964401179040716388573673896830154475888949612606788741809879503677991035294961303673115591799777761069773310669971791488552840084743447970069500604149007340641914386449820474869984099595898098845371152860041852128563290844968008071081983680941081095795299269694371310913879243770063425721900453195993912562996175662060899682551000994744753833740854397154063410927537957709042914379861508884693546653711468345841129249852171095591934393556630707118973780674932741644776741433415844181812101563879521699460751659974585026813678345565158336383181766209153849905237647814368902664257908412284161332292264664869438884586766024780799380959804571934996115681422454736344248284479680993461720515070832406887422710996321757068532173157101553222276684943808147997869861312978355703760652564455846889445507975948165964703718496355110242040802811532020791300809347443339079597537599649782802471025904399038790812295809375561556706969210089733114549144856001622025316549516356092611306466925805560648840726049616926691523501325289546149747267839654441046743921179582111128331140482541254134691784861751677552126807483341944139045868145644638219860521280277338659477251546210404802974612104152821970788571130185873196980657548376089931761236773165146967018608554020135636800000025481585850851648910494212513833738450404345633498690479089556100671698874245458191880906070623700524186859105701760599278719374776414070196539190058141685437515452776750983385450010936862044155465748737194929871604608843031112912714884357863303560635958423940832018932468312695655545224492266872410788455808279520316059152265568774247930122986473404930766426275616495678308785438658817067578217804159206023159920503060088228989134024087272420311081415088813588468632813418557551230242554016604909049421475650874316351288982113699886047386764474182144424485749045460475125739217198976378876752287170321562724904213726516419756457381081057685550545164905196108658990083177984663077514036251540309011909588477851002950088584209012025852724712845433023097102716493129392303653352196076120063039994442893368957859607529619394142185410544174551724951184959209495337451387541759961614592697865569711742207458412385606712615740190602832339568798357271562572575171044644621521585321208063066999640424196936415393445166206400079287831086869210527193628258958637788580108818875358536196833765044642416132371406736825518173618600247424710193883274303387033534453478154201982535993478021070426911482674365367422967208106322341892591212891162565409097385381538885369036536717538531142859910132236288763256563109574952738894472381080372385326816407708380832767180347421394585644925959923986823445926778283278908052622986468642171892029886724480047134881193406192475550178145156148229297823113838628546006392055828656922752652818641583061799263054810618687900414895539144919282006112719191294201385489864033488733665012442668541080288491768936565583632806952294693920230156078426367315881308221612471098791737292497706098246542796921882121567213924599572570282169939666131688596880543647518486910700581179786095824652105717365299771755734056212683792834287301987357697983469923191103983340128127342119645699813192750283194338838826155187133501750823956429166510237672719283462220095420424706924709113278053229949485177547361149992762454011904762721633657458670267352310627405864738743090944799662337399401924439784665834899870796568304080446541187446975722249674197226495958015624114230608731641019314396856185927303337288163973443119825395432562466743269130509320270639349803040324750271512697274940810853713561467709469181533387901417987421396137660048444385483074548978447630531634152920829392825173774607893648719942833978806662655865577896883164894346092606069329879101804646549730615179239700649179837439466686607397239012807275169434354126276679445035250181986757630199788673659530997272220173868423868427813634193280795521985013794379804984280831480843413610342737908108264898776404429279447331385376646160753447809635968907971174293568333702391759286495800156418339488430435467809207810430831952416345311598138705489435896788102065277275173366249726357646550129077936028998288588122758049172587238340356928019746661420281823061239533262624410483133195177286506507730525815643691203042591278574608624954615523315685293103269068862515689099442598646099487421273594021441269066663973815509243917314673509284930026064903299771461095939396129877329163997724407882664450446567987447098751203326648256778234831529754884344215918491064037691488019281072392787022815558921381617466466695204471004776007284770572557439341377253901672986772849090935830300586262769373731271674373015814448275957300550912651647594045255967115017173993931829616966661621005400567018978824178188580420697525669639208304082899228096650076105809252868193573649024598799049891848882831555238422080249767770944298348366806436049417035875588070214959639879604402478735818127021028083008657622181285234124718539671315693354811916808267193304611258000431066294394389595215229695953833728161492750555324627232516314890236750769103322912204248233492167534783554930999194519075235686135841288227884708631822255276264953337348863448379887970987161722189607494354359689881095221379712994640910776808242894850575054687012393820595412892669193262509480381328010658354426424741201055169501319317438716461253972394647701213230343087136291959508935631133161033535563121121488211948893862664392765307188110587734428637774739965527779008668429363444385885759394198013347325541249407587832309297707125613951153057675638253128892907973336067769296984753955413084114078077851418922388581007486066386529877650836879869145786124867626381477687650343457200951248313484610532594569986483127849383904458822507729072123414474163266116040738000239676433035372581098560573541431523325092672971137523654009145245528551741999336651405258661409243405564351093700671599443173338049056259911746795438831338895720992192506196188583881875976282305136984763906047092295046057976865786833519712586117169286947777299973206439226333321406938935686712236880981119903989509781627675607061871684405019271575285919431370225442292347893243576558663742180958034586055637203584817661330490180114297614112972374290347372887830925452772435655170757866694887804855339723852692906936015719563788507048128257441304603055492969878004006847141048133306558492861602704234231979868916462609261960493442152275220285414719513035827734709033686689079328140632714633566130587653616776419467956028371689621097655181953795142449691091374142759770537917041111543411484652270915009951142949832186267596596988390126423745888908635357065349593886192549044667712184843196802122141470974631121909195650758904937138478850575143035955674088705813604417711861004500631352051112995789261272441039357473277603526817945842843769668150195486373200749405214082641114490421713799241953076842169187289709686252840613882009413165909688895382073831822748429457904658447817245523964669490175813800059258502879798060913144423381698473628226810204824782350992640868072286921162106936927714599410266011911496002035757793653400670939969120140250695014842747402935405046812395174640460819019541052396216951093507919416235414483335693682472113932330225475513734239400589363992297391266910505137349882122651126063258827791298055810699829555182377673499977936791146379887240240183311967095180363523822078632421119370635863700139707810535612331629093122504946765600823787167467893905763380707642830158631587059821476709513259458428921553825196875926233110231500570085501918318540099654129505042321496520713052688001768038236914999087811465196566769879692065547354520048342556138512084215065693788259305636609823959849845709144575049796158282231901077232151345668387710245031362415612988798482050811977213232913369596919198709372160563593375941266861571897380115756424039641764841775345665974639116950169764050993178066449707837840505862158185145436812756729672687523114786263895490290552065083972968739736085816424364255922824227108769757459957701824908272266427686044527078708348947858493688745517618005000065318140577733099946814870471689477742234850287667829058582627612585856439269422262608824287007559186054856728133080072043397835003767062490143611920776165731444205894971998558482110198032582855006188579052438532235731045139340812427517116517844913652549028274950493497811521413622360136560090222669526506376637575592114797344507667882650814562431530178179216592469791253516147602005402907483389612625148092358629803460359671857827354883138248777250062941284954144719330510714817296442186672616457173637853268577962845698760970467931135914584652214265888506460677841615086699934581409509277792441365402554556913282405130939538527941188201018041122062982827807123330821064627085951524680039123500048484109740798894752963729286185889968660387885625034438373940581374365059266645729509065831162649832004785729511334207562270441176675117847180478757992530014941766773269847382775315342568068140726068699840825377162097358482401607190701375166918836664718192532273035694336268956297170994827719607862546320647763556813267736401970673984962406288930036232960803806806101073437542499938021790443394162087051601454684733551560920171623530082442029088877909354498111676335524437802191976631808625243522596922459334886519037741707336466814508516099793461302082648303580721046569259029474754034284470083626599983809950850037055999089155453181520539601806041947962444737821818524949387428357348584165897844200803722439539661941605353611985676274233186333861556507500294738907000410159997661648862333498809688298759526397150541500808957941069391898609247117526276677511569340158353047872265292835891617880041374200479743036790952242320731753890393858010094312970260817419852974843491306919197096513557286551869322557778922930054008250082455516874191976824353952037134008444835956098835208329614351764303894797311477353790520948063032035823258657645455726172400125059203833188407285301501435214003895631730138175786534402522113120503131671108192696173003614197828038407549133553630121888611688813685066509495806557961540153340712267682020660440730551109665265096163997917537235161150277685283724225223663011067144369981575049875800932644110471319080830835704919859249016154489864295380704825910408654213635430811606138602528697281057722578937961892995945326114877782112622715757821596510197799198956771574038209555012613208378310162489177342628884425901638660318001555204084784530230449615354348101681032487719529648916401531834903705198748983541810442837717185912940961556500225898396033375955540006707969038123641690057912140057931248893430654443348443093824782530671392264987915747183831224170119595293629489586261285844214664267972776023690233230516356439750826760222561165580989707745584307304812854170553359572044332069224421262923231564758613191976154489946904894799484263368999211573549747188412376094267404072212671074330256093725083215190585106919825705627176980693833048070801592250870230635018044873595567004422409257837749296239461002867586608722720848635353630907952055418381973437665142080861834403975428388634333852737609565732260343038422031783601462699252578583607258999301743569772707836762053539111764163858842018104232399962182537170431013628321115299860468536868808750727030696906637928874833499849976753220765310834696737090484396384716471055169824379236289379714036943999939082445848826794277983241894823276465646063782864508407987271595879584500232421254784437424591860540541194390119236287966934111853086895533695559369714424615639323305177903374002324218301580093333525117010364234879244711497123820332256297040579529308103651230787935335774978968381609984020415768779716079321869176826419426382749181430831272758263211705965821427338482757609295427399882260731335533378827971184074612611065757323169533538825589707917561021485733375473352812419578545061938802226597009887268328378034799910776693027751361404358826775320177431511507470125549060502773806485220923834993441661465615148905206520770981572718088953514314097852773868186270684811383882110545449800019358874869611712518055492041714688537882297309588390173917626806178570563520033162185392375368738059252035322512124057154065246911946036696044126828890446149210373750182072062560341887910270381663019624447677007033890527245085565906492367674735910579891035764575802571467642398328855347757864051284962850602081331492074310297081810604699215594727085264105140903062748799142293239347319333374581654225833581330848928054919350490578358165301438791885926493420527986502048969153976351068633788083505881109390801112703692936151437418296794691313591340806283801848824627720902936439172495582126799092660126853781936303237142691393615847011145376698875399309923994401299607088454956910547137229799194117789570684103050677669751094680608255814187389936862388548751711119051411230317468943164352425267249749264857620743562019157360584031296312783218006545564279637176428814805557504391004158213587127202173410359177500870924651956930949888167415942288175727110630101432064616387568383418002838932191632737993200283529985676745202382209034902886309516347870942759030470624197947996943772429896725142758879927300786820399091790659349636232831445941639273408832214577691723763299917284551957538344019687911532902239234958101292647526248776170575140332415053923647042985480589313021746925677126222508001735009674069542491641891079188569726512329517742932722148630514625146197613666704676345926934399851816185876178660436511927230377172084880954961748199861764092141075001971860417047322763837602524297424124757932011584707307602947357012564861997146768513554306662821756023789213084462987465575040265353168337678696704200022308526481400222989908266452799187151610425259666946775110571183470158800951209038952147575284450845913967164262943230412035361826391763807340834768298939808071078314683191770233023903638840063760321491717464499801464414933070191809999132067330835370848638472026724875233124848144016600782371914509301081069295960111288638557635515410587389084238626981430054408569953135317780433922753321546465751802175728210678332573986418048375188905671002757673411867910395879404552483284375092246404569602718653047870941545534693977359944537964578031562944089244379725238347778239452051894322141083224445171284549689399882718355231692824761030733998713621526442050286968032899956125782544075780785396569367384909623245444897236135733000582421183076024652647225805941242175170643616491793896981088846095572395087387998719739627846416558030002061678823576030861306458092470771614810521438955385203726841080821647559428508921423169039838221654214056082797981988655097240918890539050782399967186608775504433735400354613668577045751161132509835057078459128369724594959755997063154853878031677439387704769200921891183479821240351572407114677722740236334973331622139186842983380895561646805364629093562964940682515786525744643132148821655578685579296888677874308816920050107579521897003429770042633145257561109556769986617812624994143972229313318995182434157012498008208429112380824645457598668602453624446590221724878038273064778158158678648780330731563088428966553923413565061217403435716244525822527364533817078299938364692603214120915306093529999261630107289668687057579868558109435976429365728140967878345720186341911440272748737289005785784973946073164757393308284804137631074727078771642740595580346633085539663594424032076269655810708156536422643877098820524782634451293228235699493969245223039317364276232955719545419317024755692212534212228843413094822604768593294499989182481968958745291287942909388102543875236307163120547606323125107530367694202843102200288212206729408076933817256501579172384318993693691379018735131284167345360632268942161029047187799191023924924565768355224547921930722901883865397818362327456311359189733898040597289713358533004688850507612163840579794812047641167316673367492790326683430670556772005189198041761508820722872122134072240839592978800206325392024366960324815901486866798238258859593127349274937140255107881168352697715467711554303209428234855562753845057236594003765308518903152767618482291085865812720220828872598600509355533543877763088417996497898956681219113475175764428936898843462724539254751819701091123006569325870111428936159621248943591165853229430787943969021056082443951145626260079888890030856121262650446273242280006098560381124447961708849471907642048588871072227813786884557845197409863533898180186976460089668229684606750349100741932327517446982675174261868358907677273842207075481977811698882578077270393435865282071432735401964201638572133796996551387384813210171456975907566593607055823687279786550233447970111206534249871181697127775869339856754189177412554492144522341480631439447889031536396964623160398035886951478672847097341061287729858458773190744516517124630572152559017311016031683739378419534511311231563180741631870705840564738516622097167450473005658795539945092245341610414224104030251715565435069965788600468542256674949148343482651596019318255610710472223298528079948741208092769494950368659426824947808793048239413310299895831542444842070960775484537628129217314450210514565592964559485483782266758153973562572344025882668511383188838679397235909390276342039154822140213423035122097729750582015869020919272848355790095179252425604909596795144580608165597819547644097220281631345948986656792746351599257433887246144281169192507628159635543325740206857390402838618463132892998756224503460298501180336128270348743452769957055296669472559987507537297806926576758527272049054515131358481226136549065709950403907110859937439877960918008610988111345680274639200850963561719419310388390834762144954633756429034335297038278225813931318469221080683473811917796125781241746889919807656617120127304109898378980713883792114993972164058225195342703053021323749860178786344025686473141556877548666184498361270900498230463965506860599124179614987322722337283624566407894206166569468492443204078036922393310665037610297500352948794964060397619178001033272013576438295889054678561243793489879390311439346051163455501150896770067398017341364506372672948275789204783913966748701433850515755971626736336260846392551649767558231937755902035713313136558477828300426790666035832343227555815414409602342466687003516192858918731912566443108805659633470337997550189105693053727434288275746831719032063305933471171658861964321657472739462126457661360438718398575739760093195019702414738635945146439628856973071935018833870970143670332296931445428414622195058426017471897525617687579842125680992144768500895947554464586142985694251593036206909495643894976687699187418944357477645071613523595459057166186010046854244253419966081675114458289092507055252974555104672000122509543533348941943648445106068550196324056166460680483888288885652636934321638995578898399365909904295698450185388610433563970522622789209193137829618193446283325745962653680744195382501147035848459660715577648590519562480226054589685434213306702336260345249501343307390221750607674779202490008540206106178571679197027260008651844006495470420792626506488130491609251151641640613473898286887693634716125801704160824276392348527530994745940454621189237707389679442566033791556190336222532751382476170131195805670501966259263427733447289325758569722139903155973924981111267396195218813506069179837495104448998587785685195459553714252742794346534368619854128942014379236971243028747483490337133595830052565763675021664091862004308035726995051559058751739575820869168109180008184495138806344946526780728442752287106944694492498294236084173621482404852674429632697897144788044660436023921696654161418188477436588434504597235572562110660133418957716582544609472669634096545144953973692334607607609548649574320051655419592972176991943199590076872943161205579889617917138344557379093949294546814802572688281455070695800612893706971871343838875636593977846736732952045468211043562389503889337571421882961779799296057583414291365730617847546911257080600964890590723510930097944197358321630221466072972225561180085357758649214143092832873131649263757603721800912477445839586225711332413283315119872204614114622849531083666269553433546391703868914022639555452460426533886056770439000815262097812575441250699409606895328377174080394638790170466184938927185308913572645228840941902252036732197173409880963996564356154183655441411697496302802057763753910526713619575722501316136909521947179204698651382052809932193747412363333733529609273056095209393362288866306731824071239461782854482627085297085764331160961426902140952991643173571429626415188875322398072622904558985422525031673848045777831058541771218721619701298573872598150364849198818878302915738602140692767779565716465589950148610361091189855491579044716217948130559546747730740756344201775433478621663066612342668187619344149658608369566221620298566497766921569815970010847351650874988838813245181828617020660200242275055645719833411754981619452972249450908779697477426783057455729972924489042836164531831866740309111745697985865915540581993706472223821665088083412072063007673777996051804034357057001353194254429950462569009281887872183336969677674798922532138766648049391313743775256380936953761275634860458432419157682882028568592024684045530334418078148421162413392769114402720981612300664092760353382488923182963096599371436508589672048320197630876368682200035576496698269670018493809924761732004191893781974116383228235610008006115993954349611478923808939051054501884887254800352017221217371824074557196650544626448521124679558586176830311486609324025656566622557226919980478324006689023787996044240937678817764283873967423372773873558237285467476441172304533953496542316528154161484589295988934118567194884151729565245480241995584967373613364034401789514945053995139271110255275893674674045097032383345809152599101348583124397250557190570859365918708811357644308442145817345549548606928569570499280605007013232762244269915813922548156055629274808001613497705603357041161277871131768857560812624405892918280485960798821049321667547906670301719034045091243748814403370007342443397219944910847378104781983005714212589363231006858594283065847805377996454213546086797393532834137899440103684914530586644589955523466666828192424752766473881126050106995074696592624559867432636898844672245551726916921331702733795214275761963170884379130235603732328533483829467259645555583776248818957177052014258837637472452672977236440858733378843877509978866588195683170102723497747616080517665261160922493134278267699317873913268232130254250302045247070800454031376958346548491622529238910147448850541693626861131005967876744611644255525034814767221824231605008863498020322008452032393142833666020513105895755913100041245836384701763706169611952549341170268842730032170979334967817807911638275676079781388183914420486414057541811312314505631022682191236601142785140191461913229860890757898795190966042161648598714299527700269535769597024023125099242599331757161329413478795900751575776515560804224810522241177848444861837194869621932853251180553522493232355220967701748088099068185864817341408649002045561772912556769598907260631253046918313074708932312171942238670031855854953957508361552683502777684305896302853907675907935589309875615530145449182304065401488382926398089364741091322861142124219578888176166466787917170696461897919154783173102834422545882217935223364705365826163419192331911066392965205983728023571334779956922144559244972069469012629562732375792776858930120824723158939272623568194855685170478025860775124860599618319554838765911830005728477550119514595879613967825627879118493161162259579490232376140363022542324071220474356717287230535353967838927414710716795915806785723767576692090973152701011901356421874427500381615933031684263705902133444286876282275312508165303482028268153172226283539392189725694756132592116520573178010448222681737675718260355757303092097206458553314040380485439077931461008156252710229793612088609390509697218080643312545707459373566173184703199301615656916458378312046907796074218322995070192969963671671039891680857378040218914806632388995620403631506274644650633490338587152834728420861639645660657439098272778346002310348811182014731604547426369978259021864045283196608331363585669796552283532267186238794480488271162334937510958098172923420913046496341032221477586295980345254540418809409963034117839379156819009230005316599265443721964688184533670356308903029612820307695459906052499856362951169420010891850926209538312642710395327405839811434467483491304355687327831696181395114789282511821580627442083910645647015593298117377158230903382877925960872793257611992763373146846518031880102339496336950340689068381599571891116544271486648360858564238700233753008862988812080182712728955897707609121708233675360574159452955177270754223323924541521006799095078260607839193422535144856588589735910053846362905081577725252732875192162460572531316065872567773980310685104214452093071732470479852722086761085842439921035447853964101451681137089418702288890800683571291915801850555869873644175609939485821599804164236887548797100258687050471541281371475957228720489266188003906759000790296283511398567093300135874314003538904874565848994837283847578853355182326597946039208752900951953840767522218855151869829972820874471150145848628334352391105819032898308334492678820876093328319386484961433623497516756030237561347472034222870630793334763352600627314226388598496421069563802701127558376067046037844435186514436765642213965960789049906429464965929192301449763312022771547151836459941485711356986647411867822119056870367123466353131024271153880827109425138874683837008551572797368580487324969164802792102365714128010593422204088672916257809391266565450313606237701711522996178907683925482682576947830899173139781871090459414376983399095464484797228052038635713929100236914592002687117083201751176345416716938799678001459111916582453315425979375299683631673742947266539822904002927349469315562921341569716932064022921451511492813778818250233216141094519882135130697127042482308840593258874165149333723065912600711492220037306105708165738889956137328958773153436685186312786062419427943814653278644305289744162719618436340216351362449053675698899807366387377831392440657811747278964504480509732315571413118255159267882973638601192594976477567186499474965502023390853945436939111248218907863718593620277075085661424540500654003329853961443547947730655648380763031006520518530989836035025232376514002891603644765614269334756827598023524267920571029431024577186182629316260688505640231480617970001655600957189520418654092336141514830781277884983641734141357452530538650104225760742023852506964137036863501212682007446206699060078610197799966960400121064870300673963432414214550403135823703480954699370776498200605164665612439440420938018420522489428954418725798723169518954449505913568134054708997925600642761644321876719571781344410655230325786184598143015254657484212520700994240798354302058072318563420003196587650181612092618595153882279869433480817775574136192798692790023944763059067915907355862835658030499615512275414505454676587055575601600743161709808117651227845954624474547911899220136420347448137567519154603353596932019965197190309049104810788010018533120251880386854446255829939399668785611866834042184179911823970974171068827951100803582137977907142452499586586395393503540937184135569539456271831943160108619751853901423229903013466081364903302314368306592874400095464079379880925075988941175246634285094338484530600733637926082687726197212011048043473843583378242425732567686428496589046414850981593511130086467261083627306885955978414216339086948722139029316638270002881882817599068509575444047565721190336365001568872140616376953932726971807523507616307394884712054483656182281845076253247991595312358680459986491031395540970550250722215837177388669681172482093799058389894049353925914631291828433493429750228731704121045960666819482256210404532095339408780763332262959163064672905321201572022839634004863425844483026393668441765063380502251750743808906165162287901988912660491760834260243281328576424273187809001852107878121458696756572629351392712350380318273165139242223527666049853601281294619605509620628260269617250459001754184282529970511251917163467061238984657519762512052983067475734566571828805260793761324085101716455186372802659132799379952832867589547450342605520259608222982013394441142827535954354612292793982175766748633766359205995932441951160460389323799734073562644746764240912433895913226612194808435034077033851374130236603696441224779746517565895919250820139728756598523825006688032959081550511311191640391495584947743535509945478231941121449380596070138735275437778219449530445098179014771849085334580735230339626615891266431533689266565782629328060151079572621651724895089447831159010597849386475552411794132036056811313269823856989670682088301559009852661487408259226263646765985870938812118698697984704741995773773931988232082544338653332439842255208776328037271491491778416323244795613443953523997506621356621492320164635596763905297938165947819522064566038709795485054549804360308862595376876793236143299699229535808412588002307400625244368825842014680916422546702705163694254175504629934590944000852242290421211567951706518845638327966280386651312065907028787984684808381812668812539024734160860414036538085093335438294892787873822584658871184161032114105037989465300297609190879707542662251777522860549045894977019198525038093218206440144774433857320049314530549111619152189317586420991959115877661657572457832233973110536362531893085178333186469858697715452704898274334277517229486896845354466611350882798497675014924851396657930411042314375402872505611634026712341331838939931829734138053418845118712620634150351508849454829366027461614200207032946253399531846947596240833207059652805118530591930080873616814419713804624115454811444878091012859735069243027446886438183961830330761054677260126985937135727262889290526155407136454517796156536579024253147485996853466660941188517449120791831634467793341638554569393056828069619816189421326827363198450991114846347619748274930445876753516951277475345530659483375344893927088982368172893316505517498333262615217568188902501234096679302400046808032032851446269281849250392220699260047234980247657615238048534424653097344362297202562920763442256154956696866105786697991454434881375261069023773710950344974573206754806086669975608126059010510465769427485387828571333416055485344377865769936097086198250837411926934938516066687428993310167210136709986480409646580120140126780052722506114469462000075212374179633752047067391046769888935126671445585935463676325797770678582159105325679844666400361804184791250162467510068061454660602312489144440301908527064260171177436815343736036128488824498567902881534194903540788510999499674662373468831467356747511673370583495843879371678870336991488405670463416652788415219077509386155781586521971643488262216572997583159235384833680607373550086520248554024656868299398378833450129508860299217991669750327194347866064673809419358318096544571663098924156441597518365603783155511395785192024071134182939545092592719584397683374789322497481522066900187687344785343067981760972764782585459186266923837065426950070027404703362559862023865141494707473607009291233731959233975554230803568336993513934650827971814944316229816926362100910891094902843636823399083095688683099634639588057929037036836525929017736807984308582774106087430714752498887405899749428519412450625516806786936271762887874331492689768965220498091989245467467990357869497756605268538276334970284092155144955591711590921911092080250072694525066308612385584908851335392586671652996584399754700304937814415667237718102036954432436870318043950917967206392903599703079321937914020370064034162873566781580833309279258874381130950545034829569301056544498590516196725551156736559154744197590655111147751938826613286213495604161615103182402529819368973637239159677966731934392875297965766426416696564472775780751341544708048339754718581960923977868186876455553631337667009060936249339389035322273518956548267068220212339497056378915456344602422372224250931875477676310320873819738920489349341923857919707225853695848166167374539299346771950020762361603781409603559809420528239631176798781560339326453821142044499115730839633707350728743357858326467239295086057678606176908838700239217478941994951618047864329063678919518724904670864914686875857688807662886714011517098140219259779371144864690137420892891431527081032991596177712456135723953491723742896656132513593457108679532095848373371909336018137521052328944844191542849693576513936616004128922120751295001329404067569018005274224177771872163694750352886198959845285873885415613415714944497523882249269498768256714506148877127637747546652105554512297667096900288986967290797809879159107722800704336330424437959057430410983061775693337441071773170854054942557463757797965101052245504033402282201826888160706203516704208099461343430024653404615957524487197885384098755262150310091967349679444706408656715777495329892474829369603503693964016877081485981343593043751452052863390971872077516090683512018341736727425539853699112166934714448385848523831718596306924370282638692225685861631951468004990845191254035551422832921756077583817845707473900631916358751054290395513695783947024500911871287701726144925637936419499185682669659870642367625659148844961888024129984698427911948767992071909479358937936499202705645778440558472244158203548016429087089141151824176989975015268067093435131400739451336947095691029934247820815331626373940569550745837004069965508948369842531012071877100845447861987770303215516875078923603096556101759225319043744518671695299954231395556261601926471600879414236712936930121127530467991854826519278690700045479555487921846686213333997874209878498288265954259124779361435637685519414480089786148960298353929584273886675180378020818363675757127387251993575475495832729224183935031693858693080760853837230068288003826937303619986252700928164016740644475144518573306149677944481011650639704021354492505114632551423765511347370037381475167808623449240148026141202887077183532011932980781153489632312703589425428501799596184793437553276844846228578213116536310581785916088703389145631955669386437603236774879241439268302476309547652583696088221459704061458581258784726434754157288600465897914677856770313142630738034259675233204529599398552524780391416516182234606192421390884795375686603868735203032881956485477740294595648134373388512381529828086084938930707936920039424073527152505135086726687221275718491906999509313997717220011582324401024569869121008906129345219780773246672965825720927690658575856768207193863462171487644842197788309946688871300092827446223135377333648626141916263944346904204276793822832074141491356363963128502145268204264690516390120787445292824541881096443923220925252500982289700061128160064718395075534846952878786883474255508204995410964114819503117770117122839971439834659260347711999860213737665541043809271255912010033053234523348149496059091657233730303507322393559648067374277288725109759796869869109232237481699036197113294822897375383734151009138126658906857790733022196837919137110444489671252453035473824243049571754835726011037706953057284991973433515536427742810011469579951084064756946517658661916413783146942161079081930952408922811728703087201278652390565349352752840978342475246518573575791459418790827975795255722872196311882535373461698519509343497614136526801888781412915541894856882615080765833023044419691150228197805371966419981896946975947455097276499909298454189150981387927746112302921283058588687679838252001312287899709530980529005637226183511130616256453852842069791878069319854914270072822381754209780572337185771576149784516599150418116746928954806741994354682953952717015842834734454375176260801475588007019314167726836817841740556690418587716988851847459740497346505995146667520714997092962189272273489251365571655592441008141482310611275464110379105878795929365405391962683450234413736382793675523509542942393185955370134372477874901943463783726673876776156454416418121767680473277160705265519008693482077734037871643325509969390500320238387602881011295363569422566943324720660932250517492379005514496990704057604619626803029734371392194786788615677970574017021044798291097082699591531925052505144237817884780065526406927038370954189477632566083199999444834777243699583365663695883300914920788700836505527130595335401074527391471841335500753209585964592073674742458854134887202508295691696984222459950197912134237600750003344308644423466076524161961837823959102500442414651758414017471691891109445904869432188425490691182815517276460179649925811487230732027907854530863161403090990117835696496682522245424010549791795490429279455522309600458178073325047284672623283943586108584047954005365271120593161746073359029745530545609522154618623738726675896179878252994010889823402632627439228989492480412381573060669092769119127225753883272849529672862593696114759151571466396363260863514822483550960166370720023425192148799747240873670291864480602105380552600041081205420635143789188627300009360582554269871394515002469723093229456639170758868382406343666108431752088624765783755765645220138800873662274092905034342399853080594011227578024657512581307736478226814909667210731220888971359783353820569755972525213835542936968716137189773656753295147385174957245789255236638673747989558995901033301177830383944204649122565086714092634016557304149424319437099830678568465073220358460568169489917473735793495940384536184868117529518776040752174894994255228037381057985297783145097197369660623208524158241882072087875029393017088929250309046071802495777507650674016878412712735838752018816655092859636777942016051392807357624932505707794495983641811367857039702124917447527790235349171788980638392137680342624243028619488202755846673001871530382597760590052402872332913562472904756572674832642693845757436744537201680203737920158502277520837269871606451295678329927355386968686748963537196312685194187081253662373191958747806797898138419059555930209542146680163981658085270135393546674336787001601353010620620377877011511872125961943624441512016841578046021830405172659325346921662818030093462617866341736762537568339008446386343833881452144733679664234585674114982550738480033631121396174952175670033746447360483850671123289150881371927524517395927257675599936566731863240488494217259183327472041001037444367926666970245313156779349584450521535928483250322707345750022105399347414880104166303494809125863757540037520195185582001139654658271552653775150382933969345793369815692391725969278355287992720476429083879611140785309821277900847905211816223942192254996335094388473466270722875359053372960233943838498519037130676124356310515710056963242199853050092276833740700769014370792150681764835393816400626019250948370981877489839525979904492975659725422403977071624758484951462347357921666915907719722854468318832017772620694002678841701323743320120255012376371596153742820542303483349104860902232659405971136208044648299150637896424446983648840692782136367080305369688015324879808199257900541550792838782138385500176144504881996037571239124034609174262670494563284220649789595699037396563889280193484672499636694235360605515270693244481954270932080954485236968646055338110682718403214020945707676552643571761209276037430065191470979273537349872421882980567508225240636084771702460266602120060253582683706821964196557511572292219246064947745009684964224789706350133721007095180804942017390279804497989904724670610759086014398637579990251197925679334298194608663066218903656581255191492232432061902664803244044936461503361676819119232282260191446961923973047302961678984998868666931376817774337168108169207585386516108008117645736675059581485161873302424939918864093125689957043437650076150823181111129326992449169211928073300034997660003872173001369422535521126531154484047245623272701999332394503358732436265769340731062324743126375493104111992554496734817205076065516519662163464935534911294528216209495837604870085509980443285711997252687026316111144829513275080926252182098938876788805313033788799031558134069781201915167762420255554655754113083894841997728179455674829911352699905126863113646412309638187020459088232389341590180685282619909544981559122526007427586983098896954638274259450316887398526797885520638599762992930954067929497930356899926869150643030978786122349379517720391684892354676607247092986006494026491551824882170055671050918871927762040270178554797378919659705169393731056060792477173674157465623343494853175625576218928026782605772986557785768665855017990179361901424215770253177605409326739872869725387456526181245762098891459974186828752202328583241021181123691540375088469051423788180352009500901135368041494602049882608905528039315640502673995760399485096381474648775343661176240813991618071144068391423104278659574018483655109728388374570925950459324705555315344341273936267252766697690181653858361420751864749739245714766215754671443941523710652907449349208298689570219255218671161255245815433064647815368292161591409630565801947783981313981719253114527323905128298082007939610392602762359557472698501875792218888035615438900272071800467486136750300074866957824103366407484603084818715186233889779271070737871947261748529711203067583214131957463574562666027321363791000128666647841547513921941381440565710519600897092619279668877114958306241349112436968062970470214094816776458577132405609685656404819428888482019695753098511106548236618148547877212755329162391170362656787302990100118707192861756806835540564717984700134596664890911115705296194305456999755191279937752710122118611050832565104603332773645131974607955680191059734818715044062081661703386499674053462147624950010469097578299388033718311123369266857214651979456616921150336110591144416746062021995772149405159962683801481658207244700664984987498141658422076806222491011262039695551343669611445641611209175017272621508375616975055485369133937526433635487381235361378213334922287376897979162858036816138432259097023646961049840297146644549205505686577136802925589091096699510823365122897340476489587996386187578049498528621298757834239349801001156825926626166623541759051145883839536855402600654897083146082375004767990018089503065323405188149336117779068217584760998935073988363422352275168807658129199708326405550170544241086069387660377656384978086227197470107820361278240801327124059028237632046575096552515329969848908072954014782641909196030880980475303759710295742519009616700955744151871101278199223332308086397459695102039020844730394294317894657377857724953383564529803224346163314554527429129822838866146223969983504731278635070636845329220808985296708864130488553063698934865166120950049616508043751380533055865073657501930283349204860117972358894837377604187987542980374266756183649646028705853005235928144439766768180087851267562736750636332705558030906289893961891786041323638926377270147739721769474998141431472016859297256726908511648371984165851616925875812473024414235827779112607759151322118226146383124079633736950269792463842137955987608983204373030938771453854645281018116383049046197831250725727637402564984902355132065031261302137218329610667803509985329092269600549613062827953116006552803218501627260808117781683395206612935454559071074600853372325224231845306337628650455405973040585057272005462974533871229085956578539288659004276432320655057158927085810176978380553471252361732640297593266093719399936689149321525775223898854610183796303815926855307636714490486100433868849605527532404586776872484607965206246059845502416364417289777745912207809256434342089829720714646066807905221647621974062333935846310714725272467999004419896270334397259873372340535933761480674423979396493054465499627173170085942038084334906187424035783262064887941183852176876157802300656868998465855203692197158450353102003130173868538871297228385147656362731221316178674264242515717016525618191356199287008705056569029761807227306775576534341312384967333873321368526755438527130148175165005768707418438674424365032287643548002669510238947306079268096954263173244179739561717763675700885767225358976777301176796180937106949927137782206644439210045433273396642200280230425715282874665030060580209292359531989489837099303823386722597210278549716009043726546920566372843327363599796546100158154864552204018283565634996698851178285650388254688504605832498698727764938614271132179546626211171133720487764490228745667979279629567700785921898817523727774869825709258431303053275650661899617000293559855941241243922082414375996658040137030325981825275480439664589308442514253376617065866979999027683116450880640666040170337552191679899590145132353821818968296627302664500864290272865898277551722086571812882796755439201282723977493539414775394704292145082220489427932320648561690244082579251183964723979841674925211721820913706564213804845565705756822083886575181359703229676874220865605919235124904736593897069477071238798703306254712079044166799162927142457109097238062271040429471767453742831251577805820938222287884467007132405859539800252639451928306922023680505080954971450393737113393421129926897931166220178853071306653026100489950130692877051160091742109853148706834492624366713140064432282688974185369858658323519419401400945034972298193508550064295400682859556699840509886157144567524877051343218145444727448922554619656914411745570401905370264637443420466205592580788314504422364408319504602178647669956268853487718407082380457903564658645911154451922238618850034589294423837867278765037322563126438258882793672296175809814796854307583821340678313025231955572824674982408133955962700187825849224480084160372257026556788248491192521471885087544439866062359555265183384404467104854562305731961871770504795388968475812382852295595825444883273348692194566078520011278177953604058000506118432109197884849195779326970044449355608496631669106725257294362776007819999395747471605531351152748256861490679449433624912475890658711779888680574809201512545603054173559962983717263499023930979496467314266004039655785139394144611041236532813919013586721246261524077272530040777910238783656998665019695557326313867008521736956237237246667523590939457222662058547552018923724885692399565587288923758759808941373825974210648124642141226806221173200262338373337690950887777462101122027033506593488980410673711116928930934810950875666786718328871213069770787797223826629123208740725500202831973095392594114754664733368607779543550912842651598006608580353761134527776058749424822408363685140840139917832395989842108675983060466074507704674435635478103745991460189112846552641809562766741100764409375361919978212264731626351556689405406395243699802430793811805781139013451381112006178511281171746252216063470974591040642800017009276279865625449606173696016796473400040110590805692467491275266892958679797284185559037847562865105621851033804369848146322862524952354335539374526569589709665593497422794728253877747995182344901335083436116456420057803931323742844878688478946559822632998863418489918198349284447593267101480160790245171458054138013806623583815671503201033902638150449816652141490425012712134518111733753895563800514653581882110372724378248946828450307201886527031419426780553944347644954197544455599437420060010602625174836766528864514608733747577654355221827788447291694931494320564056332457748180162054261592191784873719542651279547134448778622000622495251098452707020409380466515314049256933570707755564440419328246231557094388444444235284317979263041651817186225116209193682984951435393532720482894562962850712253483142382831785277091469038177089294738790248901156709203194622403068452694953727079037696128423394520466907782120301407968176103777577151106040941009619529776149087894115808367773411112259672517630764907094027542941587948219128887740256996684566846144077331331585134361193323418311830510006580068752486938743501181120997386830030990595027189984601916687161282698661510146142380395809548535690400800938465827434403947337007594633588335831235335888406450391521322907266526490343527661130352898657239275839697119003137204773076540841483368467930404836093326015914220788008023503056363322191030262370816471215877232199017601668774753672076122619632901516889319181526589728255162477178624767896854782683082440876521233317529858741376340360760902109723722263627696742118535991515476377920827619638590555426647580421387167174475991879270525673958221802044475345001763983143322970634257054288363617926598023816332295085335775941891027455567251058837579172018937587184421977664723001152972757375839206657848217703906017415770507219719658071133559288597279392875419913881139072436376667544722650260058349164617711039830261705578053552772504201632609065850799827782158527213671758478607557326805092737768653301367270427200334662350778665908652524123040380782225966002362324586503808177315472080769642384566861275705093865887247705977930296728307464332201844600302709817399875752443385132172245551229136827963995623565114628148400305790302934884946533141133507137323116034323967478483717211308254669146718913403831449710145847727721707426153881068652234928673610482427860528337005308046728357716413245585393756266998948204464503877635180457734510489032901628888274766694709477273063637054926778656326242708519303493198661417471437449018196488176086297896467513416622401438645052723098344051640194989976763216842332303711834183885466893561075091925579297502464318248914943661369974084772229228463807387088230156455349450308731916077556866829002948489694058580480240680091294630400301714672894251299891112291113556516617680768300610181551138890832565577038801834503273272611243962740258169824655985965261676858216570358365823848728628914130069437378050945132369723615472150479329726217763105038508751703957164219958445162654515542582457128367093019672159365022129720070995384465546416006884305058318222598588155060495955390336548974046239692298095274279405519324479060725314841930561311264464031729358004607215129410191038163360437466312147301642944733576174180995539710603159986261315595089360621723769301858256409392619385033415121166736328480251558238667600453504248501484151517064708098936713048730045233674509910024238770087894968856590449136411014508714229975371072068616196031129079269408709061846530469469388380832451294105321012954603032329257547334166270143064034067915281349401867430338372702453369742529100628925992617746695002671837024757641675951685752416278264834764809257091820883591562146505527319328342744362887954137712425445226919680035556167920898522211141665004648433263951496771814333184101722545500944516211084666025421057299672508428691550562245305590105517297726805440793890700518379091957098221206313218834699591446713115497244006370534387140772070882077981362258530516942736556568766513659679914817751855357682620820242755038919334693305280097183892509215720843567976626226596898920335691380445600818832595615103795975876011033080700493203461275620657768736650675408977699250551423432507962551758935249025642265512826722415489645045040629860367159735669131338522757932243030853968868881042144788007028145211933961482710344571298687526318367463092418986880574069117476155707926447745036414789235300536344368568443828510920414065024930009540583141746810920841926981535343993000082984619938890320895718221252332301950596840785006313401021503677972151431224999535067812945533213949266576253057903728562302747279614294781965744366607642654798620081157546020715418656785905964462457394645020445827691680245165401554244624793951592572103291497144299595536120304112694478082252978173875072030589892642015819560303342211434255376173439770537208851265280031365347088925006672324610265708038244027475964549672380899463915056475618988462034377140687508516482256018370574914319619458813464095423612468490497061345502188740024298139083245264902532256139169532904830727515396510557117407659149995272583070029339090630632640630625851141852799225238278744084661886942699643379371981592332487223923289108432117447336408078993056416698416084041800672471758050883628571396430603585597709932734093191210516365532788353629939238564250735996086852139584690160943157620422742879300800458001839315643572153096891087105989136975729724357377929879353514901497640339633947924503068607848477090127467097595923332072999320664033585882229561227891329406420803392368831350202784045837556288672651202894756850009304999392798698021444335035794556738206401524466485697723616870192693457630845969190657948631944270478573073495489044168983345972688011718919191332753929956404215979932922426125199660940925714136892251888841578938995601096060942655347964012627961685370580817728505751562227420103592007255093540591941057263669597157556320368919139785936309917907024539553096130396360254310465076779552032703423363534978808290952109774927973072261353998375308088337617543191406797386172529250314612408756473898125367143548218684315584946467664118688997706510075398059870039307697273469797268235412573167530596686514686455157868122342167830121938153376101176133789183300562447334869263496238360145393338451505145746437932301539438267823920269467698315470663679747947465741144073839327407357030642924694357147401151707626188394399360370621069763689743795115988637866457755768997611061689389290095293015459830005354617671731673375091804081427794926491829440521670266829038601258916432169861422354870235593004429942421112007955559097939193196699908500774350423742036586646938838974408646061945792653417534366425086795767649170123384537492532561782213516403272303726661211627163718741415136140291732175870496929163408209968682593978866566995939680251518269039926487578323018031356881113275200346884207691681723465486648548549324888905418591550994854494892888947419749446316233936130939409731270293369956224498850151303117014932291370403303591002169220187842639287375297703598216484896635382970426465188240073019168915718490368889359194263000798490525131309333254920123880010781041411902307598788709733556347678687680280124859587876824082083233186603689769351034643601428216652600908565543328449952093637853561235565703435016170444381930680590779052851336393683766793437709904427069804453193625453920259962671922582205569777603253241234371091572343769591069925240529006838047060102284913895201435233980965615265079509223336347336559801821135546448985382952209837305182339859359974864257562383530783586062198015926869812597232638015551232667790525282329480209112701432772167283433287807641349759526044309473694853588902628025485309404288796763693439995637719333074171881919497772306775553147248882938517259851557204534056853943738635415762721139240471083020559026831704989868964214002012133439864562733809256623924057466944506815115671671796174249300326378081442451223853191456568356408479545944295451870285119385619502571105825178573160368981821744411565705818842130276871807689669711735328533288875616182857294956298902777997032456520289143316389428483717395628004155134885397699520638349708321237169930586890079162575763407688577183231915449821265215391257596916198929392197817129649592964597124134485534217938711005048033611166932149439348032876298623763850373906343106241971640085934987080702417578456929774683992912369220797748791456732208896568842048518230826929490103427150477272544838225657617114956968937283773737485539561867564134107226139534937621871727229476504312698222960197989610246190860346137182081157555983744364620661302471202418453554720218128643136408913208318074030244583650964676113571283681188452335971927801793059480046019437968520467741664981496177236825354472195790258533844253650102752594146281480091993164688293886796933068098359433350872216620634976159816725160459902484116776583223839171790079727348895536688168103257755805760092718143924497251610120158233632995102267346594080186540749615352064373529069324185958625562142999476062227331061983407207781153368944885293601282315891045267240668811544421801785115834574500656627203826581165035438506672792795867142981814447993468832274364195140989698341246037170841133770168087350539756174075850793492364662323335755152872076376751697737736854600884899998421925239633179007255427414743626013626565740106064935546925913229372914289430080803384348436051199977134203247770651048300953886157198845822691869535373983265365458498218936526778689312589444591899409541165651228170496159246468721500350861955836391581236397552616391933643415324496837139887836751513585619532072908469501727249837459785859921895542311015480077319823020765316870807657774211790502350035163759750990590560450921221720026990374018093973314385416182513308276680028257320903179895588889262701202783645262144293207807487424286549142167417144583868231324815920769085697927932786448668517179507015171533219848389871472379524779204070759608372627510577217814460078856433798413054877357894573594187827914954191773852740834030375115434503920622785447916698177866601369955273143625420150199023553299784352236978753565113491022923014595107156057160547844412824923887765598627310719756442960179388908010777177452750188161144425896450339335778007917769869977136992802086958818663712163778937579551660724242862917879371288601115083320112196265075400380928995681493039014891040255785591549050135405562685784178009132562982037199972303483506322732761678062585124069460612011627151541774410335436584758989318750354113310526417735191187015143864458644152477008301248906976152184926611057158579229589202188416926030905520942909123890072166280669148943574234313893307925242662163259801662042622301990017808164457598098601047701249610546458140606129939257718294315761559564104699399937967682128461048511625411105633069416656306881415455952267205902687369166051329737198119235537158290506133913014117139986446679899076908243982393124854569333818256598899379374661078210055841273660941203433113314919907405575170777321000798426245438541059646798875845581104626609074334310694677517634749700502071383810831940101166759179428951830139023205021726742207353756706319201881687634335283004414049691315286863013469227376547658271909246036460664414200066072451041932668548071442799040214840085498975098261852408777806012345858635608211701368654520178301220847813504398388230834186378447365679039869965911779458919749613113803736734069358354839089367782940273996863816334817971762842721592021982136547201789154220332809401379779652748331496640982535375244014428719825043917765550025526315167291891581845398145992168603714554303385154021171401818725197374457924950033999464785366724425109575983832758784180781742084444077347110101121270051410559875386592297362010679953822824022278577043735469234064480397089084731478595683277400563852658020640179236062103134726395383196055933688436083225610297465400087796601220292047895786955448618613959611521056120253539972184709004719176149028946118841424569943252481728554501000609546307529177890340194982123844750262400232147402119865715361654896772386936967065561163808163621427566198906891607190402024257839391584011368344815860276587698562234093940729741864982418958777481056341139880720675468323254531429077147419749474700882695317191707685033399811751024589578313246255521765717323860283751554782301898315334361505309774063586881024382713424017226824164373530293188803231466489780140529442296308280887525031633954780246887025343754206900886538480798948006907736650482335668476885060004666127497987402428372952212351187693484428708360118912219350542626997617554203034074274906864234822283876420034999970514765877843889348800172379224307173818091448699858447881735729082080446357800584111942454933241399403485080973266403211747730945982578755412998033250306773617749258110365969020561874472559002722938456440100556576194379642964742628453034657955324819185356470851035158958649055049671826133864144268945192997494991355427743047227749663751304397708861710091903700506473891902491548152152671389076574497290268316605769110323016954265116549192097149993048653561432565793274968797508951635137000658261590626513280003559523559506542821127437567537951888421989717471981112526734004928326276436814735099458742353926089759926578638999948368630685894227749619607057077970953506750450861855815043801288485609364221513697907718820279421830907143731852720109422667825696525733421295800891639669069154213841756182579413520863612442614676349532797035691269521666751616378542593883946479049352419990682543978102961362502528316260272178247023796781727369339621380794576620970514654358445065669140951587096112512527726296620692702008603079033428557038799793698056416391387288441340340406534031437388986076837883698927947729109823931031812318767003866276964497985828406398222033353882757030596873989783518859512441319085953191996925723942577898393483370613219958830602424383334238640273897272741284114215903478830704857912147288421310036264582038874615756852865671693122429393808677607058979552488198157820002452684348530163433471136342030533565391123885906690337507864752019699755139300409086720915948359512970753292094553851824700625513820593800421069049118795484898034160200355535676063341022447890057372352730483439943305327794372427209794110522790603261986360775234697879278451940657594558371071206125790267845160418930966748679427404604586817078944848143519714677824522607001469519268490278564399487258605829693609254814755875739641250487660357825122154424693466743642116221342092777313397736655777483985553123114398531382900857866597059058900882751429658535423420634669085960499731529648482543974433330765213109121093501588401958023549208642136573584475418459276971773338035336226287726359221055102971450439761719246288151508388624031507226706543301311387800670460454903458608076611628101334306315435679211889558618188468077547779230599518441830119524391403176967409783285860913702812455197089631200164030754086733256359587646862323326711343444188860720530472506274662785839693945273189092550718802121550514481102777241247070873361390094037520878492659823044301574493698850392791269351764515768013869801854788750195784232230929022925177988472065302190899327609387186766376360395626803570904300242438827011817998235257440877116716408622751374092590889332276072121658189530120887043442184661158520946126685820937933401617752939476508391902188042856178872330788509670522946374112044760577939742293348356013099894226582427188692303201331910307784271643371873397587743484629403400024689772293832803360158374342741408642289755730501923180825378882583200101519780892958393350666935676833058837481928234769636444768255487468751979391880948280107057587554707905259166251498797589650716705184982565938520294647357814339388784660563664901349030723611274138474609972071639349275035906053011435723327152858589369311361864987250926375159776861805762221243352030856164997048371681637734896040202181420333636776626603179257594825031394041171610519275624226161007805545990921985114811385292604249790472945664891359644916254717725873646343137961294573443030950258795240822559343093261111322787207231364251112256658872949310900829137118209728163270767808798693624119147928304051476025897742452390106621148454487015760347055798148061565391178245892552017401797215758386824012121172037874254124295887770051684214654803816544896679164333168487470851348174420446393574293894498953010753927460352219737861279250217987786174630211426963911865723370568667961580011820677804833228443940834749473017461150252748020009062385462305263412600724651210496953908020225755375887131722336201933291030076374628108013267659913607235398528466300599627170360021142947205896877216621075358080292271327615636610585928154809894288711231454030997348691466597765632290672350111027705053828119222108055457359885697189346303199523854830189179191600804610495938506764090100320189119100779989736717856263696234353068555698137480742757376689540820231850659802672831762378776208598109617748076661400541827320001472337326570906728298634694981598467531175632556938030860821462523849572168472138329647408676311750127507409592795045020762996271641776754989781118176398495153144048782142482736210122016023185534743577743506764785946011203390906927771174923297253573502712061897821506929963852454076011870649434115722913197039519043549782375539204247974918958563793970356645906602291048137807472103142002019161563025589923089791807897670558607779444523427604004524411567484702519407039829896546392966837235813396426541878559596222456126758612380943989306751259238305366695339916955060218574994626572289174468530032715104855404555742300619483974449420073661800407256365508535652974704555032803358479773155453824255085458645356935186292255107543616554881718964099023305861693356533761630421443421450282131708062392210950229669970527151967395310566830119178312237075510624968196300621178799714653423683095608678354053877369908396625243905199555558294466573973207607079662997362996011564261641205745650129036791368262824294326135029703049502618381045141285751357366197418655931596586809040905442218160359983367313105649427415783883914133520842812705940152655482011085139489363167695475799349262502989679180322941882624156848015371477604110339026769881548091887958538580919892623427937329059661873404723751409247214399943546398204374315102448749755711721499065215897972263851335093826770809890620840958246679063098017608959167096360495939119522198881379624929145378882097103477373363008958304476384992482767704990161648383257159955882310805402566567319005012064735259098669093339307804426475825508881854933550578602598516208331014900662617300776058852618905291185409164264227687369903368380718394325873607541370055885215079831821139089584126064294381952104793019957488658654198351095615759896047869277757046752027193129106653027149902306244301082744696618285433632438682407276401131084017899625814673720298206314004200312278087977648605379938000967867584938139532208661642016080248266810747178900858663192556044245215997172395506304217461119032120559132585865883385117447500581302015919318178139640168992060345160443724684963810571412383527809788969188546811269003180437056735357565945899788013140009193001780564991876958555928145875732627493793235112629138948320410455886590125959961911957615171448348778037773469466947331720115672327113453773793933432313024492489130137561421053287819167303299842914528559716904210664306598900731429627499797035698701767343848320986856401037983971925659444952306300872225840318820205795010719594450434372589667624943513420198070805922400648423621996623136217209991636549548146226085358567843779093970646455468390276732999113193934601519479442293598301899058945971570674311114373030103377335083515905479304510095227848222710246015119751972544615633198140725284642128964258093149196089483205362387430771232172348253592530851293279011094061103977356844473842996908941666131418962542507034597539296275865581578427678701469844520015032155344460271820791080603873742112800946291859040533514587925758271893960641876183995214602149086008213597511932103666830822673325751894668553943563698143661501456064556651758084107794529815083565792144784591677569323665904123332081785617111211635190441685969694989018527224846825085293815208403798577338464630968021917122841496470186890312381931274881738968806185782454821521995351072168310065522767714913267799165520513075307451886529634913430841812523307200665191370569769754472184088753800625943488616633852460209928399625790028815605151375836149205265062816488629033854970279200983392809888187869162950785610911151167848471124060297496405053633153632888499292920146057407658046273283494796843798474171407739382633687432457465128328031516306569137109128860061702485901923308294347402012414186413220418281639539690309820613988898672320816636948371382462966237086874169875657012603971024520954835004259918669443414729509333017005193485904168618562440946535234457354488517785762815987018367426742609132906820856346200934150209268230208448415767770071912287268392615725928619790570709963228455207042823142774376063916171996676830957118304506986891510075319998366550972088351249625373093198617277845539483148523861284926429097478938127891718833526425994665157071599300629058942827204980761720564880948813210165012713759201374304506217596391744218275249614508747857566882219314810828947139454916381222094076609642780190543831079412562982171016088515527888210944439190517050533686658191100332181889941044352859609828812433567637863541607889407400227447268943640712429024196342011322073037916145971495857980155424974717536761790814047515388788442339766545407390942168028015995180371727354023890778565198235660168657350553241247453424188123024763856981019155675228934973042993396947335005799943961797080822885311120592256932224414239055755073232813321324055171823885279398854850587140810174586635394216611971265789132331680773730602227981346587752610683307580866759978047086822089239380872016388565421026813679308598174905360710525845527588839063691116265237337209570521824610198521820370199386218131918602533927282135276797632295078485565846006778289684262987614908179550975053082892855818477775124179111828132692260454816908920642599366007156408356863793440608741067701564796625940651352015908610036513336303369851984070809632870003810425115091193203170874956560193759437916820389703438825573530804538158244808749487830476838758748368379977898431498961530824661887090137917316492999948153466219050378892806579213996207051455066291428605339663468789666378699690238442609922365219199485445985890241748290695131986832843473078635601589154491943243256789843220325152823225911733363696843276961542970703249572280370131115536639040841217098382157535999621476203112793681764430671752588772664934286936156430218459749205085996144783352130303265464512837678475576302818483020602761403340737247212755937270277027223753319696180000246877532613062066908749003995950717507312272227430741558594928119018483965669934325343345366201645808678270724095267233820165227724017606497063655973964923228427123061506749984116795090472839810606264065756154442133244284169394107781377271135825899486988250432572780238068403044032668400539483569536954234611388544461397098621466382402892003743233902610124213625406691509796546178845289123397561931205989173545000295751512200790046153718550526999413845542873187393133110628724200881163713845888092402928869219415044193909887564353255193006069350245229048162349218856989339917534050832490111982225422187089034944925507667853027795620572126613764056699798797633269804319276104224903394560826190752391930459564029212803435092165171428148691434620631210826059172071216584510963637737062849405103357292479696174149459580666076308848032518882731232907890134548647805040471252139666070645467853804909510702950686153847911716631293892212214171830459083318148731238928666531897649324923894872430348358640780872679865388096362471280341196430565496307947079577578761478792535630459261452091224510355018485870319004468230606795344705577350294944824928796299841411693743703166969729923492466755269342334720308146095886399043223516610063006332687303850057510160505696901691018485954284842007018160691512504669822891536525350786555929324167039191904094814971006800586849983571686173307940895348547392189094744812559137942142076959779485032103072562347811706922504548384376802337914062460938238216421643279777790050586375420432784550814881817663973328915579798809374124456946106602799487274206639563604913045081363839932562157148050153841497345630930386538607669170032760775255782665089975350949821578550422929789837994364829084190123070700725760722893358512580953989663582937565731071386188878625285176440698171737255739595469267804215556948707498234675137807772867439568866866812818368125835054126051522562021517881147781551977178564596893440460506653136423107889709292800241772246883458826369139655259030340033874976777337069744885363577839877465914670241841989293282812507758859954306647625326599661362241755550469824500657741963446543222748547001442646989610370922102572080463957903102847677791553435257337209859896525112967409726312886959244461297918257212573123881417150552341715723114524359252260911566335905757941728592189488366028676451216655308052120801355541155056383419028282374970644331353003602208648559015974598050420627029416939317813232728241999044215424592063017674098486109350188539727726754860773297808877391901572388200944586398869122983779202557207171683402265091403361557688848721468492257029594740440114867783132222490643311649617425442364930987727884882287741368599367457948266461395143892518543498629775249831949620644160017927738846394958553045378827464151373809909029771208508525960031034907925269069071814109544037522280389550914111647668415534474454585470579761673084040014727498979315591325957899032463435547572777541074261743167221125178990491582684192363964049844570826344800650785805065193828942048799724931437933182356599160207389353128769387981172086605873521365381953200505876429459545443742799488241432528164468526573220320352930090283238206621942022158535724883142657610062716558869814713286467471447873965665604647189736683072974013468079973270927848680672234922190287293104542359587558715173421722945377551947961150276294855010501494192822128530857896921872224673460497413984075288982626669260175935833578906120936339246546560501191937400832321169508895392478958362597855680444205480349922320333942717038062602410273147886688777008131573301009487526855590132113389423226581948673170352504578539353784983731781586353177606027077503223352020075344742859150630652296025579852270924157899446453722333961020492979122906369381187329747974898973985170907320317476172570566145022314729552341365664873777865941880046330907736911464537142076308029820203589318494409024500712522781794619655660065008128387033627775786790112137407903557923437529425110541332306157260715219743727357630773690339792653678326046406467754542532854943059614169636919381413488271604842399825299931514120723138154864486408039719878460123897151819133507858127956550925447295922719251612016324303081890491380246672841832876494074788573319748657717205060605614716013349961073271361304990200574336697419639469412116555141208185093343512809665630286947680149213350908551583404495546816964021243014506590902233123361207918382849677151004924159874977856791150463046248962696757787743395390141501888208976114287514354991203063819967601749838745261404882158447987848533304441106153268665509804944158625443957929784105087144984385279952182519259196476875086206453712431239249861693030676467451108779839187197270713753251365805067400104531119751688370174561494124876772093241134370347886325820319902178865297829411459473346448448468077695812686171978742102479797675974180543343219370545250569350187470027663085880349413969849971181653025648341141624593504079415886601305858639744727923091855479621088462099189771482973390989227336434255815078658303095442648466859804750428856558751611332209943505185452573441357357430452129606145961898192966506160640454851361826374940022731080484500398017515363980523911317622783769873041512658498472969674871751281458781591558769454336969699306550174711623093235893803211302208977851867644297704405916938428505378774647159830765142692954920376310001465001616352734667332571376341933928316993556812005250338192405069248918646450823251468028640324709217595361396680965710856905001441951735763611571083947691112150995913701501056320689244858566837994875521902755861085615052280626670565829869433595231717060294128858936222918177626979290721217647817791285370553449193177523929663820075890443725399017343268855973571060800016160133189223185932990083982881589508855390051034249188542764307296519245198527867624769978677942752596326722895463715138553015415577124953586243036130258307766761940547718692972313880055339568599232092853000235769191366530433498134164090361378523760307221799336160010809167926613829969169979694918780015471697936824113444290781872636448119945387012234666181210858062170151778655582265887383077468675632972924426353803142245668921404014995400069603005713652871154220713062784707798754439458143590613634272096583004057441127660539521419113796486269815007252864548594893762599948203653633692382928868240113506541479707780263323934125513548972960672951450059140778212094889467001473509993984752299104230287846461047653422026730707104282608228896575448630335701948935245087524406768251340999390342594292671772851300173022439158634519769444562322950931436937456944584991749808540838082018967849039973744855744002477086303591816645227857981799966281462944110908071840045818474027556944729578333902260290903874478700406869007787044422218123728008192228423876835630058911813429445635975928233822319306240560070249691268283178259562782858828080905167715709194677064984246841391445985734349626866303598326697643283077154582015617916747728809608425171144645805179910186971714731199315538567492600480630024856420018688564518052280654479621092132915751668825295381883602192225388112355972118059901561580779493352443647479623604416507082991390524628856262239995240698456463673754335500840850132267055995018619633687116643074839360948412325303630937458137703833727049007365351002407973749079097906853935582022202449949295779883297753751344393528872722276709955041606263365801534509411107356791536929601440887492895521505819756224855922005780146303671036718908468734469307288575936973171619863333067653790909567260380032386319386119932539924402837940232483988866368555531922292935204189748294618820062904425228505422639936535943406984195015888860209846058372193142982606696887932737066710828874127939957391919342961353277159025594569961844133116949096247289662348743143248774174705258301913378266235810811942706545618955121879357306252271698820575431488241687105158752095480069448711333159060349939391575417213403033625145102161785044884111805365465313181485726227742770576939284578618628689104946256240361156362994463739851098354021764752055720690548641816384400130541468536751692155630321243806654977237862751246528532413105445648690639087900083864396097420431269162735978459787328641000940319762430729787231320863355255466763443294027250439018289669127422755069777278336572022995568194702471122800874822940150121027804607570318885466320424407041908900522516366446735857431370968380849900341959319108761100104476242344545620641995222700572198556527768218191294343644971163175505572731543723880164135917062413701438873821323431667727499527215155225363650348838051083792561477828168182493425321655401549881081306125879273645648062522421435011530240555863510781183171451332499814404287137738946662407229862871890573887016433023843912648097442738310622279677517425153112546427425663539274527152304283640323826184138204631758681500532123840791703351585280394254857781815523645475318383515097223588286802876977646902686231417457466448296751045899322524576439855104412039868083279674187754499354845108179969313916007469049310110544803634823372549634050396870542295264380923005084779294926682132001006557047387147082144303137893429380670220619961556098922740214438576453402668594201155270716526113525081517012809521648717620941258442423344493755210387259909432558769802905523978049131676079599016327385003259706445110724972518951502217739192757884819660889003424486618884237350544547957329037078656205272531043843219764488154460956392422420522839668887879669996862671941380286101233299423144638257427520193536512840500986587340118228120380809664768539262218737140301085285046966398681238191963969619389019061124069045042208413353850359721042732372873380007718653797904215810826581301737592339324952721690010267713591217734492628311663322390685683247321543990912591769534982189137334184101828772530598597489767170970921310890730895153309687453984150129930952664687392688230762629247018802993164775224368593950216929941162677345738923772961584182138628045079916400013903331403631238698210914297010088674651396199087864859659261253926170062885083699778440937704127263324253849025090746121906323239722795064377789272450068194548141491309852354647289976489330559921943230049291925964686639532855990013492349569056158778259423410323541121559793638862875906398909447725867332760443894121671895395714948582211980543747802976962930408921281987329722822585350674672123906878048858211291702058451515623615824999648454630594114977700968597249946786368939087902891151325288439680320607651318508138600343564372102215902296861717435279574927429092735612603808432582396042832786782979433126808325093830829680570662835748411652392854320843416441117899880590062995548673418207332602132832100270269090103850820208017633946973398559380689382525911262377526505348927643809112564134737624274236449495064127660971488588742340281269108584164438311132264836939968071820403922857906754163315657556330199452156980581715262347263568127665031097063991875380758435554182819953677589956681748782349235651831895882228376936498819207339166399944905812220776895591405902630879548526111214447601731177491269659964935894734080956287083837958834822215333661468936306154263121650018649719540515774557542870560201991609403739568098941597032342567854987906864817997889912699156190330098394585964209945302088896140701363996996330670443639509707403853743849287167297700824575427331161495280107452105400530565692721503449746719791279911922289612881056034380416334727097034546750095517384977221082885438312430078212652720458362460652100489693529841355834891401920507059258000330583263580403119260223225546219204218301416920551922639867054756731692373353004679765417729485940676071905401016760194145985194566899208174948012580142612592113262296685402527788635989844644502938416856006328564938436523141552128627695995414149041205878943169305053503295439043601121923153278478808498811443894722119991658912679973511115284744276417368894125890208850898765695822125518247799882160449457954365428214195077022299130720081471950103584004790094054329711322675741092472799317513519203965019455016909598949461286502901805797462744140430452218662254819806165811136433775888405359826273034818215183989099522692736261023890609844551760967892001927267875287777931345562705707763066663078765241261407108923088754363941670425680842889173006151159525240800798602693134995072945536038685076926382143563883946840828343455331035950645573666315379353936738727493836448422914556624912730926036895615034833874256006816940908805226584781001019322071101494593130210582326931914301399284118244317304509378094504735675323715172581141968963723851487275091762749940624306054598284272863389566152707007702997779883318149926444606703826410203207288937300773553029560001420638542318230611369093444737213613951267437189304572695840773609669093021213936719660607873784768161689534720895877386802727892921418224584845104978947303270664879035285059250862156905629051876276958282054476171264682219103031229376922572719159192685264334606629854320654824627094776140550189762184552063140829102938005552035412150366400571256110874277032550950204977380812624642213205598368168022580408014349716587882708045223996858499762969839330784945228148478017166984398318510534066859904768132358100490448409952684731407136222395647396754873416549910907251927721275754468960191594242443827453694254881687734253975686624503419322363257186846441110002743281137949343077071556833601697144958555324503415999786384256060565730158332912364590265296524664914679093727491694188604144146661375336609515475474226499190809434568053463409192720663878320596597047544268767448616089108341579449491070811863658563829962292903477720466465976754283409241143189391148799405763907314127499165100571007880302060852768388051699055258118289830628884755700083731804345286762099045879932066714411054325529859586317027569068334246641460204760137710084727855306055259937058335993044817361560107456280076657015715632445691024227841227321815721377640611177468500651405092785857684834346993642127967990017236676849779484932074475445662200799348251574621206060786458821225292851732597916943748822547131211354061439823146644711423138810329407456348009905170295112817389868158419396586989998263514267741746445682263011262407668320073980228302679768533413375383613512992162065930282842931302571741833218279117233533268960569842448800673030964766637648168529464622133701123001606670220701426471827912514450320328698884016270773198420150804288736074453367887757424834260410459680333304094808151179295123654638805845279308976106359874732164058683838740057124530388966141638608675744837189767894685408916825844244062625520299626081148464695391819912814227553719344288057463607720498110697365975081428775677709055826906652161178798787154146194618125233951632259140339655246439649813854418117266432870180989327543368390106156892720033981430410055347369789758757477505637122589994731729887787692944039712514787041393295570474450072175373359148359394963632026614632442894879449679367797400013562252550178873297570588577310280073716028282691110167904225789247322680667535542271329085331085327665463844529209995670606429190356774185092641820584469245565259585928211913417462665374565999458040998653640390737013036114747476289957891370847172324565569358464562690230777394149916931992270071696688198178395923726902735294112426127111149654224367711331300177091831684887229863265987883875191882478179724869245613777548099040027372720943936729431447231768376596954184021172953754126065394574990111440735289157604695126455760788646164510680588136175778545357879867882725528841045820143714184178148503430010252421260168674356325693068789727025099102226284773815070594250738318512703760172671249463003638119097574460061119556222795479566073626810258838423154753048460188759794923604653840554087834452080970373051166838977594786373119438191415092793194091567357838093726221584566821306397791348807817801330820389464329798307069276066807911919699288422828406309389876368432327843351326746095411897313305043478556799304712980253287387750057289902605633152564156088401876487020987974535907379316824070743503175862200002934591614106921345006923170904632257694675807368553228135948766036361906492969339685596207343647468817028186384073049159935765922975053319664169896614467554885559209245995051910802793246233941606509041065594891501565323087729518332291006634823616778936258271889542539493636273140626486159357875082247744740684933978902915654553782384001175862726825266566863777005705633655869466536436603973050023663817813151150834445556956610411243054558864757683411017996463199423369948006014281645635386519208128692606244123511585168783853637891826019588261522225341373982570884815871533387948756670834495190586358370920280358731617864601654127677287177006547263963017072072807729548065450576193638524090510447755094259024659025173950173353276315369804126753930100924130194948823471796390463281347254301499174263547717921675961856109103303780659597262004006931138800846625744940947226524301377207292419763856524542619767159988535047613567055651927895135370012512619190562521884335946875304880814809693665283450043500341357128905214445645114767255769046529521694660995316248904579615985606210063800205764256169458888391590033633827154199718366436424894754311088543737769214888321364427224694398957859971405409208400919144130078188197325744871601825780646345191457881211969053840910740135614365388834823124738441336943396580383652262818672244004920497665829662476960189738086155452127087767668904876908172229126193619645423419904289857249991663693279395287544604058374840015610194312776621039676067330521738040644151176590668690443912472656422748713750754829543796501908855563859488762454087364363394572374794144315712530591992403072236202960789009935684568813998336394458363306829261010834077708392710394437043301250753348885977134598183572522876257591007734398654769819821473641177826822750331653871424904885261360159735576829042048913071800882716930967304412893867616191567945693565001668646465771761016838002024175290091138043777675303817534696530773790476762561386373492423437224695300287471240445234731622468402012583400697848455116118104662755829101452416300323306834261646255253038364382155781290922233487704209424938495112210718454171578897321214543401706864053168488627474892605674917128094842415899628718119669796654163544057614538778842968112838017023561925162795421374622024138557332468539450602688033409518089676623085910176228279633889814023729644427655377708688149426558656751165804807757479004619065058546605009639609623831948052697808106350027094455870431199859003891944950490710350804679641652882221286652282096571777072860139169231679260472512587993604066759983479867225538583702319718643813255161431296411401897532013266373995271525332801474237528926830959971017637214730221033549459744703251669412453364109531410572441142429268698524145683747323832467749368391240162536846257416407233526703225336584518871432934778174230824751617373379465413721637655251524110661078739279208091145446742968500057375380165841199706642335525494064129745906165262842189817060113174753842482989821406721993225544409950605882639516954912184946979404658652320833835288546625682094151266562178923505449214565723915407129435703183680857263164530445497863875191879295908586541622805899701466647559996444758908176413774365566228381945436321887046364994142000880809424186711449878091278156381616152616335110827446159232632574214528985730079086764110473905509911046422170156212727005774597616146609224544803377970608552084087127551230571681776607928899979304433796586489615710829811060027512376560473887297762562404446296267916880052009451160793430151146660492730592469259884316801705571556076923825201732224288204330008966403165466028894327352306181034590573213105809490676906001763910305283973598772466251243285843874814932308065068015558304174640928673315247781711344063744383340212389859628129076203027502694794555614104708509765719242447849938459466386811873875479828728257075335462515964817070451936183205315907606201776476074700518085412362929267613068116941311642855232177728343911493816225049041750884143073469783693445281088215248614124087215672145682994480628784738630745820394714817197230369528941378433858069594531130182957681290938374041411497893491852817715035075425850059785265202236154811439599018307870278773212207942269804895961004756324399821539040921378739514628708561588782919835120525757905276387075717360023709747304917746273562868996366800761633012141451095249901204136411727608007729858335566115865274448775020643534971692984298679382964024985847396542236277179809912242028905677730331667888631310800303449340294041136859112402403893302386888261412735572966531922942206004174783025466633507794417836254426626274645661180183246942834788983972931595131882909035219049208168513202496849833967983161981077989469583186525532757422993339505233829551127878940218802315488416352583519768830172178806672185455335744832420788454998479871457493849369606741687167828669765753622224289045399473692623569189791142285523264948619226488718673340878535259423913514382267143459105748898257673337058444254957774993471168330338671715870012650919788379319083367483331497785147873343205256328132608971296218989954916374846366354913572662699561436250147374803776050149003421493507626806632444760396797067802736891825685604121671907875530487869478125715076643414373683924117509627103906040168310980262798317479275621315663120111625140968284347645969833722738962779576745156652573071028129662256237880710344325640638165326140802865087996497542809824817221482124207865333772041826006065650173491805520964031941206780320248229018472212727307042305327811066106066349519293398786141684072714133900040289360507753310557970849723298153203875576243649935719151172059568085295479749327169039212280815089869136383721865587823306260698791086038962471173755545047233009108233703389836065168643054695360534593850730174250058988298348427896606812501736229516241973535949439004556214071129442444130095415403813933589631359836784918463341599076222028035997202360665772187065315331036994109903635490998705276043420283706919837836954565361966516112729827404236507427869570117241045631620532963086226111626487813521503733285058995546074252027063271225564962776800896685433075542220489938542892840967331740863823524672165695091671288574299925145351433025640975380287056870482641559763051215099983403673656098387068994816533585185129725612695317831433884230669237868843718633518177220042963723259888926141348007887899887761530134459492615872356051082477673229360147762492658706777924962830476634259431889832767920760039767497743163721714913323234656757541438471075313503124078810460127151678981700228948001756987110160123873022646963974744713585996386193518781242938338370821063604006584710850785855038812941626810298327692267316559407793128645444305204225044165884660143715844065223100595293561358416527248074071449542694434439898765941113856824745834124748752681032420219546042550823626636249450364110858164044240733936846598407019754957652772668799792172332089946562442233963893905104921506572828772933593930530936851516793265410156080279254312206925097645799096213788294549867477992749809369421709637569950630388840000687084365798543016098255203363448903798022737084655662068229612950074596012435894632865362720272792051456476291640967253549149026276793615300665490311494773549548110630093383874339657487257160793828847645380058095997221480458787401316232755255412075675319204711562485870408719921988990950087675390223105057687282120031115421088919156238013341494746529917686520228500358120555800628524256009148310766156667322527211019992069702413059589095743273327106274575921459492383501186085279350619327576889409086305383526537719030996298075776524027074408845253863816328345651787378329584345052478791948583168384566394050476385141469964414247878544470950518642582022946853341819278481094445792748224129279847303207485471865415587478018965203596841301814854630014800751576323325597182124272949465071254118614427102991026487889638717590891114103419545400519812883570907448341151554811227444946319496527899218505818409030718637778872452754323451591556181363974906682018876334731731296076098973775088626762673622066203455499733349921243854463193348965736063412026618216598284922284917502225116421477527420679621757167809707936697168117836720293531789910186694261984978063978072908630839435391543521655671077168386776768703717977781900417268031440906672599677143778950206946218220294346873842889215221452894697233699193780554797933954101230876480337565358529856518264048455644961627543847758448100129101950725786376204237095891269077895886910393883768715797373136327977711666573126224803613250202487930844261394354821367875704025315413010975193385148963492366242218268673199759791372163259299467072979803701367407849546238430236390342271163661857170869906751872862874055949005121578076005595393264917636676650767563315077998039796375879447789006019501276581929457496265638784705095589423969978708108032222209426194168132341013332945104491177185588858938680267127034752638759457683989783497048810089953363938200675204896869924669303841392658303332907023882622649752621045193656777446091245746489306372004780861875608179751970131132119889530663514308739432922891011157062690347590641829626132069319243635316277993353103897900090248926468355329286549549504523717641872271215632498650084405088852391008815926144464411024407127971039099590449086750931655270593780591673631848259260094929914280818710198092099693798872800013669612825174443352910288200829017585695731525446852894212273109477658134733097617022823881307131073425578123964750943744638385488936080547187322162195409066397035201149990257762357998243574234260514683533881296794290395761427924470696016099989460474926166684066833884159317522530403202778654476480485693947856792128236213418834011016306205033277580078600890624023212489225553836546408105823162801365242925468182106966958238799524755542350309785546340268697283293337257199687188898799324834008635227499066716504480378260194435109328083823939708829669332081922922797429996413189959957900564513235017069633843893870291714949062968796700062058253038166091510469866488840038581721929029467462138724432539532033386688269981090308139500607223608004415249199261412606723034671241256582319508147058340003222397927574544838105434246233919390480733976983308439360687715135890059277536682719343299532926378070620271473203126927889328201645191620057063542110819621317461380274995419920154544161369015217227521554979434402003430345864638222056215766893458087888806689526935470193778612184775802423092934882921198671471365551643271044186543446649372970892215206100370998897896511363834354686135957597109237050311013493742256153757406627985891247315394897253717313482049578879571452932118881584287675772803275626833871379621368665886152634441074005858539579650700798780681591727324541478994485185559488439267458581693827971193918022147464721720556697516041756542127806448537980673707586455485205131085742245893758166236888487173618648210889846968808588195012440883947608235204795003662143287270626739538940467210858618027094315567539576985843756521215649145074528191926236041664740174061580015473384725041204980511945275738654289556575989654459776472911828839490830943610068267496733046108534693572974868990201821765600930789672480393184275472647112030211984867381970998071072645721715950918620333002199941448467812330561369262104033354211273684343433022151517717960539366967043780078692095535433045450313610121327804187076259265522729443344493788217564003618461170569728710342596771449935345087405426482488522690545975496096957488139514786194140603009541264854755739526015964086439897155783650995055053191679618560349000991984520543606630710196883075879998700118429215634615694425286702600129346958254379307988304104518300704686158980886825832448007510958216623218364769341390183030875326430013030971946392731366958852830015104045701213422441536015915160910383637761406913100281032009204428340914224078603316765332289515775032861870713977283711665897405353004461940345015631580280545156081125754613729105455912287699616711868553154123965118796921147754843748170027722105696487657093804749863356381065716296898494145452911636579773447114360157251700407454367677723571872048333124062377862523759176565650402260419056937642636566620889716245557380523933296528287257193371834548311348987673529040629373746751980718046595469568232218614485442150202698492007263032955903022251284956444495085965461985566827877869937290664334779761189757986533938688713173555488555310401035896847552051295612366189562147629480368806819126909290663334670927763386946808403128982093386939228523874834457868919622701018055327747897295386875182183676485069230279741907861642196021172532092159851990391450336403517016431164048301603123300222103028088999903519481242786412676906578992683575783908170671188231591927252664766162382958154730481148510656658134690843228656225467230153875455132944758161108212328078941108979610455684118159092653828877265014770846799078001807050677843241950003827324419837049079650665240285745250686406321186039142447887710261644160859908092839867770300875760631370871696011118933889434703820715475738212552362147261988248961857251325723351765117035769549285063891033985403210139474990821357695468333948150146428800667590752238538155466112751269876671090279001062023564432247603651485544248409119679438934830628894862494132082082599848764951155205891392986395186312329586061988302254507907446981816588977258335575140427941624304777816898289479758221027165956032340695258253041717595210125724232997818157962034065220033416529406576938070324098451655088332139046249287139709242195785543068843293688710357320377844854013486216455870820296778823726811355050593930935346491653799856801679999098300215694670011834036162502581126701374102601785831554171934693591520741094389934131833367631805129113467052640959497182561574810331080917394920915771421747141623850262922060079734088340219702914455806435978241501033544349296936578042538875934717287367626851245877019872412041824531702565393830002616332124279427018544009961049672370028872316811495854979241128523922071834810157217853889684606966535709236400634793339847935483460657704410759909635976671835589066261301431549180179267834293000646393166594446091528237273196488900006077215354477794535251672501128605688111762726340318348961131907235820643079544255864206292669647444529936161370209832278697138995684181364188151094042225935365247725272221671768266917376018497390132016205892684559068604910816220366482994074954194977471372901009167457546070017702051901175580525243216200582361626225333821866601769395661992850958373891908556461775622976656703511519306816643482749002154485547486762961646351358670389106842287047870973062791444094092876136052831300776278370257454988344116370601547387985494829309791677041296639442509203135841173983068263656269269634500961179563173824159118731156814498651958321883594140552499107637227723983864349778634129067063559522177909463792890386354800039167730733531929318717463927229749316924481383668828451193557802607122507221155498017757504352447548266183394700446393177981997494776281454300912649292925074824884305226955340683112375959356239391442725798464101572315455213639345131046586684362243328157410601582120939726394275696952277331251586364499030709105467017238925172376705360875318914887061934333184171126700585290424003870383738545250213758013136751157887016290322812282409332313199134749857038690732852947934201106903827787744453400500401126905083185733121058084589830122295082893135602020491842424477779679785599392395695948469136927319431488278807482034144014224089439199014013678048913018314611761173308551822429313107400517420409902353585906153286711831534394123863923001107200585352561674382951464344783423161196928858828535457238679153240630234231176972509685168475139530558626539326374640767702639244859028965407393411177840489038597092663619000126163735330427843077933392074897061968985117677707439952478139437319690020933435345750866569126659166634645531091624523166014754891904403899698584083597123755716693594792716383850393981335506698076932848223518080205911662006944627460761182242092702508448619269338865769925226137365213177797697545247518949044558978699702582697817699539537263552781106932578804762287670660599689195299707838396875401778850145462397671823410707219464171022289865441921101097329113678588168503185835787027440123716103384364791089190082817301807805933471085165769474217076024182011250897602478695521611481433355128297618208773338859280865695428295729819455552932688910747325204771396476022691949618119769828433027868818177309499106509440989545753860668181628089497019923803540967176891045606381582895821564253745482096244491823853236775762814678243942321948262424259487959991974413889232594539648045448793968380695849973003549737253037538299271643345444267218776371679425499960363072918711111292791202228388220333139870371938424927578013542222171724637074140967017893490056170260109188772784178692840931290197740565445924303933684623302716926435588337996604852534509437049425448895723008310860570374186717046859094963009474220507175294995807621385517486140483852753273924319817780965096379733242819617492224814994956197428894824204983671226064534358002075888707882041136071114152894541366479324230141927367930034792216254197285522884781727763957223462539095153205446526219594327286720552550784964365014616853633200866081836430754776081813127042929183892931485482925121511801638511533100596317505259526238388670667971610422140380607787259227675039488693211403144285899170597348788774305827626285694143868857693824638411385990664842817190596831130894985126731566245587559554484268534199946985780119286352597277815919726907320651271737178242312896031211752066689081822389754623627439037553865893533149546401891464820974440776826206772046235096233295699970714563929948616842678991932021125000014923228266368877036087414967711655816028228375515588468792806377977076844747798783350378892751031734848211886673555895724250771899720425241341525553829240884175753440212658367232138447457247426365810934367488227523626063166242339177961613503854394963450735104092617902549279023496899830851213945877345525796529961954215144811916804871162281718434101690235828369282199730460957025350676591519947709602328452270472714876093096447415278859274346885013077887269470623005789238403968812736230623952983029422668567411589806575078533257942154636246214934726854357170768959902922174139992501467349340567109609475335404686123374884266279050848635674661366477102183084128386196752416504865980616158450603556044875691055783877327635082161449081849768558525756070159295384533955408163387161574403628526437653087264296964120733008864086393060431573074057384004396797802785194862446068795285194698829977836907608152775117630313163907761093132458715407938711338938527509367445542686488977016259725412579867694663724825024099242146672452001972584180770223907473784820045849100934423964651551447488723163680346323435633468135364963188529538657538407887787451749016519119171203563437470027963750361166161623859676583648458560810997468131632054686834594883466475568048047546982651004120531846367118364946502207681668286162472286800131928322237605259497791636028239816197396935359143729081404644595930412569674930165168625629037620891136883971906823959180903006343706560411154173048108586642136131957842337508736367152034449556320042151046370722484277587407291462248659121534794873614437948880680959853175833720263286585474579261284083079753394547757750450690726771387618067896074738265272522439544454298562937754385408795299474768095715856621103734421070402186854602060377569628208405939649637654972240356989943495283727588054916739070573192796472207047489833044808312784910004555581842423499594336997849368556313950835119374693463994172583784231537430917856291793142159998253523945076249707893085519719267634882187664796865403892256612801612020341332452162917936252919075644950922001283528600824416065324035659813821078758465338159666739557686386701070870306477942695806372278491208941397294254493812631078299735560897803886865165208649699174042531847976795961862576898874830174757975051744392662692017256111684407032230308913602432847297856148763600844576309814762225836056121225684915854885035747974132314131083066218835237305041421184830217348882068826659787841978950862395589947303019369421520222719403595863780347539081979363349577972109715937551859881144361186469000839603909162736088893414439507576935524811695506802461185770365831462848799721950842428091041807643818513270760631485785913001080554950696290236183842696197782255463416192096697086704404118858519464983276877381328187898689677220388406207132871769647511612894392797612093978346640944687374824578148241979197158711053254285245709855837593924817969147028155071006871068731745797380749724209371288608903152938882025751381157654604427845631806487110857057038666894621186036926870394091325759922697413357329461243726216080540626883848765036677312514071488697717521476911424444721181158277880274340156655544661519717365793205188703860659821819076839151477393774039361900544857300800149979875909793739790613108403590718044615823465499057942996112774255537318068877719497412422797185948257803883302435131319799596283669953172093304715026709834094546339246154052993018001471363241756852863439087812401160459487954750037539028924494855648982077105468781974076732740063612651369292732382540839899836523152934920905081161997463765270515706327584383941328616371184752366039635201695054973748694025891936629360453292116562879924945564829765830410774200363557351032483059753820880937976289934726275010874861957252145126106669439777033918501288614818775215516947261334545340167855288007297693397398718316047505427535092202389279516917885044250049943424872615982631845570690363055513502478320562874120354847753246437507075199085204082066103059594361925186948297737660962766200770716066246492499688079387790024239739390925768357015059082574579340089671677342066254549150249675770051091145528037757361407412260926997534003994483267934533435671452694165619027744745259254270025277462706999986902258799475506272828917812174493841621020098596744478672506298593318647548038584658080663391315633364396237041844672400891718765441042815512960496088118771689446379603410555224074456537612348430629508985166344465348369576840725097171931441053983218357840921642865888565708619356176877512493579143840489172915011665624995524641273952078120161285852231038363789274184975097661829845215364148751456397426355169527132504771974063192244341003416311721955011087289801238791099765833683480152291771454520164168489493390671492019094458193187221222694383337469911839406274469082868153513601128702482497716613719319091010346115369848078910797401921807683936541750509479284088343471665447748658389697804504150025091199957356420592172283127825885860162071605925351044017830768602827060750045929574566845455798795295444403647744396181704234435773743964478291153368878860162474434207202884662436652765114840632448013831742233693048176373907536298238673957206738612519702770615650838926055223739153836317186761621861868697303035993490856089780684959882820520605906012080614590533589079814477418383965093192942047233802801233755225412694781676322793656513768704617191800361301189858847713024788394214006021145414117788523007811597769720482688653791065771161325768258043791747548274898916035107433526639518174078627441031259372876323714408182205468438307573877416762950812296324114914269081688358573612537831712936528787107731854182910160821793547372602661302415065637682411097572869570690881252970831744423864651320984481064728867129451383740085380661231891592879762444265680583541068188346647883846096686136424008388127178529806098635285901520010681446964179464485907219046995495214201823760993621771721056184617986157766695583616150888549370592789902311222409995041768062316034789065952469649906703635708718534083568507055962327600913712909118775843561379029880416118700425005176713969906201153410463486815787230143498275807922316942826956851688284923689181735459752961353039291709467066668568273626373232380384687560914007958897545077202731118130634131489626715277533997962782308792538288827594339188513558377120396375427348270937603333676700290129985746149442237161677360931805858192787644685751450326550639674109066583494431241224603227027228068975508873637635577396283895537755987076797688777361015932043259573463140392520530964951672338839786916295912528211492805929650301765215614760969623625002724126142549419613494920481282895708567505480167178704025372455597535591276605056283064496296628581709599457550149879298112860490521587885057099645315397536639187810619542194048563410658534335387928499565880121310924080680540431054289066746324080864552377013470363786371918967983388026430797008657262947566417269265262525180642864375518863726425948413878589934491485709662631481973589922362938126330179544448446706791983625599420411949924905422112239051405045634208109759008565596666558174405129268649216120620501432581799695656116360577975426904278307509886579968377885180222599221506406956248158582154283640070856083844872698045413923388244046585836218685409094403308452981577956901024003087159864366856908979231623103782816831785835523298215036130610553696700899108466301416584528625916922015300051174777288946489567512645798461748040979584617903356609397177755657085280421767403261040952189005851039279091199986809559203861722305747577303335386121468118613017087434239148077580231702951343537763914086321214374079958545446603303014631062101688566312489466323540350939434260105430109803720803952453726040149292875356781932912089467792095478365557544216013676021186226417379282016343771331226042971504174874827640411867327485851963566954137798389853971993013688598415768493231247806438958799324470447276594814394700343681669716379243897650783327806663710298724663804428916301210214199436947220583630447562761708368747537023884970554498503504102031525272691703502420052775850591365716525426814737498376008490238345242362397226281212957241689380466837190825813590920801102011912126611472475940563655160120557428754808742732905148412714437143879584000473878129317751504258074984891003770453380701833009501545718234595148709211244221288195151750037786810139876347937732522627087043221627675117674748974730712175292865356823169307097644559985012321646044842608745894857603797584212139463788054483891683079935439633651965751198895409647184138950213699508951906390366170793177794941574280117694267117201372216288908100720869315047306407177781333172359063851183433076741073704157101162747162168266751634356077618402880657188231350469775462804056606076904461788350628442477473238013167557984731966227831670455231927739621819124813270776460265842295625760716733829398252963290611058139403675816920175895229771908825517151539786620560674543916585097839230388479051527438198180963067319513195734531130278672968324864099963369107444487685407689263460243592219343021032101854429413045017233305999214147928881282989656444658324297759166123000789435252776036510555097010463111609285717307432156351415863853884348630527818184321626135477170211273730954525953535415084836036665369935079923120546358638026428953902075193547549060717863218992995963607791071749116310415367152228048612696504578968233436045833582693051129629481806060151410960884215920627305319004908376013615309431364276826945039745301039934352173546565484238739809540084883096191082724424882281018781619579725832760482161875552180469429167260507393981207900761347788774364004332665374600179139914614575462544190387470341990544118027960900298343670994689086204441784993578941480137919486576477252536612209519773944329132060094586417865468060225803134615490414751624114914379977865502356156016910553171059945741711067094461569555398256158041969948295771002441344891491766839939144135454564935583846531357888569308666037046527592043642835610307425757757096391850573349432532416162479385337547235110891202828783298248995761447601955561161205863972710920823391226241373314973199538533786172356051943086624092558635685267900860403356532769747460870275444971745938284284827555337515271842684258447704808904358107344738646058650343152444235178827029871484817850885509116019748264963372414569768021053517292370705673776271801093173578051728086914676488602467316002262571761569602921594220605443217398966409327158727310754996334512244065007151671684121139804502892742633852046800681181675974152856116416090070098306850310938926127051177687239202872728026873799490267216439903676522166951929548022016115042619229905089734122023059109737421979871373555242819497038270313022281398348739317814387458381785722174793427118767131605584349364792812570082493977511291726431877782932343243496448141484605484370639099176603824962411664209975805355591763709909768115697020261004192231139849317215775756728615351582433270730435491848544358746189876308341276496857841579322520378158706282833271327626392613618010338214749718646953997977205850585578082724883742177785241867579860408144096695740489065864395410363080909658651335824296209543350381576111319633831113903625313159599403198708528231462839241919734270182419765014712370308546806315921494231911101520537175526354235696009768225092169857727829382872098148758896948320491782717441850272624865387137284139409207653491573450749629007579069275876876280930350302937493221064129573657125955059323151502430800740686485710827993741233028241457293810383537743020884446676728106175450898643881281286986041489342019743142693275377730137102163688034542268102605021637491275069719669691152414387537926093972464983337581673298448328076625285280804764488059995865130548191654405646129028179511629844638407764599955128781875384349018167582623669586146149706751063199337421672698384884039893545472850052599391093733430388805871892599521503625085532327791476570073987063722875854278742678810237528011060764966979925743315188426640844380019624417650427266022862086297653134074680839263594930023508996479195226322183395865396046955006227983004650770300378073978126827353599501478038713365970487525210274688784603363108884072780471795189672615675693048327752567703059701423762615636061733978536580444585979539830509316042736585132138636618664962737331011575903127586971802634164328413369793608072133145431425665135842735141611532973121467252552422949637313383411150096821904523433319568334746438426109877124844847499265449864739868421272463622013346877065686620724599914637620575004991010709657112889521770485505678943298179785283165820761204233941085729635716325222967860529336987509277447434544069075502713031695562594348136692808511259442715655051033140096440696854033662328666500888559379031695568146625000112714871429777271699581191918498933120272343858632686690371655550628372159382886934327065801052892158362614620163635173199697642962617097719494476099680027542172425282560675598534073231729066169677698081490678474439971692034738560401459896686329938837526959214396955540741824181375274841119896943357779552666008557593565751927957383956332365907451682911557137893634507681649701263325513266845721251157044775178255728627440157060399665879971583548338396704434522315384192822404274001505586473053129445167228278373334076469900249016586302484905514439788380939214364161080845786892301078251659110508186047046603777819706141358169393975809661970014780958319053730471242190010462036938589281548706012243622133970129739235922017037231674882999105362614907305466625146873061075579439541976878883153793463306536605379643443478238980875478108258223704750178946999349107217807251840121493258224482948017933465530863481119966405547234336330813365815750307086216558924557619445111451085167456500630846865438327530966786255799155619563965256701322155936294997030440263715426049160408190097859427841290053271017359761490607363667739634702647532832806292365528674845490978000771170171814761493336095840338536631767528281588679122206956345479085395645716565754376676555302200824428973917514059649355858357826855248787411169657710998930054290814285292502339992784618302959602817010118723548509378357875973828283222702435490903456145863176959680376761642982974901642260865553573880424485661792954992107246384028417404599236454192826887325164439232088380294757624572467348227948940828814745632713934423697534375143308580860444233691360498196832481191668131755062729092993092837686613780491072534652901764628732814010998193552712266577941012053304334052680008065120943223502072321776559398828337223784189013909923522884732130346645611735188557383517078741433829792256509402117292493670924716982376403175456185083120610115078272998628212839449085985235414409327522244482065704845065773624399564896923165235874134925738030115109899399314072945578106110914850355947944144033950011253517396882628246532747550224833940998474398568274677790528119592730328910608812227198921232050749444248464053004023604450672145378183459220924675544867148122638364068837886702823727587023603923147762710900017345952843453670974392244550537319279974955380045518246541877430114714868051635291128149935857866978519764506366411367528807429304143381860945419432625049127966468298633406575204632495440188300877623951008318242636063231328115224127386240211041483026469227785447258217905203195039407211268933719143532275334494169897269692942221892871598100394691157030957906953099349186017651311555001456250252515902549214336589355476941144252916916712792808994400052667781554263599442245347459152618182449723259673402162255171448589148406878477233872729535096602165296077358134965716413723199599415357758482749074117928521958227937936120512104915505880579064047118418180750063583915676216539417455720222904731883861425907296443479723616368796891455006683615818601891240739274119902913454067182668117389952530162948704590994614492233083114178741421766749177851289450756461432204576197826678526873960758135731923940177352888241920198571613252634879009602744793607815565890685645685716431391135530857469254761578137589287630034824296758073317695105326065152012651986366612318063459417051091775820532772850989946881037758987803735017364261293685781729957450396567072380762231177270525310788609765417505523869281507007329786752729641841721531787240753256802522309436022365852079062155388911936597443312294978455467311233525208387951093993454711253817200847315759158207460396313824903433869749634429825007801536369109673341725889770455235341046327750086289737600168440909571641870487136529520653231262501180174725616984093961103675627430591259463428743939885071617950315633010370509601159577615395176210704634219377367940574118918809920811758122024726845864288634372217646123284504548346129196219098103588362600267872691171348097850816966427550081409245627589398075589761831903807956538525262251855302967147188590501519300524877175214410252931000603990154526762428804088917235012890537145045206395894522877725272365726049227188763508280353719476868315850340986399282077525541325401779570096260639688688461012268502552852301081883023479156002540121931603699151979488504931317062072245707142362185203235764573100284329677646273118087267438787081543978558323175580609912470576178066454164952184405556464578692753032576462301336962872600996218289486694852562745637309708679491229674722864018067737734060582437979639891911788013877856732855605833799872964487665340757311655510411494239469994923994523244404822538108707688864153774663799236162281496043476326286242337067968833055654826074521137786849144004623222939301053382820194635878781078146195974691828006647208392389895362736236355316107777101662161199730090939584768766789572204142627552882403664981328385632687938495982658657854492337163952096920597200658535559623564857101202894285990391339129609766943138751892166269797557587219354476139637218295352029046977213867174098289958109487939555044001078214045513983552917621175297729319028501606693640445311787314569431760876031277284196548612266515106819426629178563274496937928053464958627609729678923970070497641101762778480441501465714111519057101816544841305494537893775355774145702073141649761900027175631339698661868084653302467561075457359998111906998289148007443770034559356092889380261554262093985704496126631212579448071301658155385504657941073222179480035645157155104902113178967022368222775278485134292122635580366155325465334468131845939408243598137525729620273476025705318434189598963533703524827158745698647144551860407097937047994777043200216101008460670083230912843163003923968057292152935806862199031266665097685180328620923616201397251964974787198255165243632464322772557279105479687888447498657026834174700313175820191770509248996061126006419525520414516231326203147880638398076919036523692753243510824799810008825459484977546111816301002135490297755606785626226632048547838471801772843252087313435389833648399492308198387677066590329552493377123902409369072824514537637416411779197190723890185904454342405556045709719033565865518550200183615131187936801743227335909921272207726882318440682090575081451786143659168405066060973687719069652365542349164900776367950214921642481548260433010512872212881524075758520585132329536512595394973304901370665202833848847608262171802896473380476156270723103057827830023534533544626543146924458572345776374179606499218691910090683037807461532765869089164164658309344572450947291926576089562911851769811160832661751448473063313528691581785590761980420832681516563315548624693981004813002832388465147907143985403724026990510191254241801843570604596930685641622115292705648314768176190530585091730196481442609820589733213451747679083869972206657766191787831788683980672802649342475005559607480276996057630521063137785381888513506725901282157112046060871242326018478476678433274902031376560074113371692409500631528582491384177964540532144984893036585987762979004962910033049495896891588264235508943650308689393961866019399622837424564890680126353798181916074241537017447164654979958248014816756443801825121833557416499683990100356850444713687796383440773189121576897753820681299937599151131333417151454981670548908280878188215445883854231871418961295745439382380645980593900509926895951065661546715811244724754258476424371627707279337881326087223882270979725030755685205595187142720391352293913519489358916264043661537449459324176936026266967664742303912850459381501180333163456555418692965876976225673132405664227622424826629031502239920971216569493599350285489138717026450195792650604159545447103866795252644740192201902740700761544197588139651977854993955944820840852969112162824481550090269794485455394639015140566969123446142640013437040123214193002348382687446919225626389240544919468003181405262188946721946214930075342914734249871709577895416229214648833518420743882174395139450041947356153499381473048543979587915079946538521057984677721416993010356446127348472626988675091039221994517999945668122628653574121344024925610230863667743977501152942081115769511387170017876750140210895869023743050303284730582827536680924729401074858194906749633981205283651415804081585915982740176161376698767298648150856985842873103655374021311167179570710676503709729811471871648004779001712601029313402655589202673824655026689765576217563054895084737765248474466671745181375724495254701910489781118688638647869620633495896119599210950763942649336484890699335448176325258585470578642517270081598992374779515663433900941626956864606902636465713137609887951967302679756817514031144454176620317958129285072238823945003837288490806296872973275735827779097378231052166813360421954758733149211195015258770824313338568625956219247087858786552247281647553901420575439552357941565341194027364752219140087292264930825825002071756536354676030775250005054175405338492768352189177244203092987860822759663192365987119367312322949199222483111883654409733799173899912154267634327659791594842506719471735484579243447222591591527737746370247913849783589970215001934534795841715117106395901794015326527272849745944859312273594194499200782466748281729798648064484432913168305839026889205014057024266554699784530878878613107118568144808858275502722232031356196248961638552110011856768916411125751224171067978984173012118640040890922136922964573753262481266717693409302416036096568265539963990691145168784414487478634866186712725172780109623943022137517414200872941503336880370117364148725744933521596249653228225764591288245923202971064655937644632721059915083233187209414515717349620133551156016116981546474371521695179001426038652701553613635633993979263901070447747387689253935581645058994627054778486137158664299489732760179574514402820185478557062963087590396314282036834506046047007566252490863719780319365951770509005221619480108579483583047142760996236080026280354053413413912258060628290896120285752144998450506628938490545867665172400753530806484046376849743110636164852528654416483826813805170509799507614918423864557173414074859238174063205934700024637396185381192957017928580904801726727171561207167000609146249682053163045940729897731112890763906380171265888430478153653671604825478921962899748962657822504485568482998724702337290308318541641778063280595618954599204643294048259528414342996269294664208967738839902101238809014520617570647983284842265947939398654951511869746419515075868196225479957648675749894744410692520813416835401444813292361502290367192113372666007962682693291121823879612931131427367585420812621152034246715014884730400447497243515637748499142006606592563353549260634403258481832068138772404589590435323360262977511182078677801691119990682620878524560685065079692807066213847249521973108608255974615981798689152607761068595823511367247189761843163288340524855753877988862064090682550561124037048207185457623262119820201483493841696156668014549517430066042826184984837143609910056457270199707882808310775832533836647278269550941793698422425248013613824114333074981467524056510379080984760812804557487796942633695671706063606792291387875778098717658261434843529804939447871285200567237492431185933047650195740069911216318251758002104275799901740828803410593542615537871596664707618737476489350256725648835845139160527785720818379235328790333543232049764143899372466198502384116681894057017062360461964066335518530920641440265396699769668051338377813451695880519300809267345417241712692021789092544833820014908546375647136939921793800685354037730440473605878026411120792843419012254041635187227192381196724527425267785540853443834742153531965954577058603278624685254284174068165237269754046361673225624172206763656646124385149822584549711344466132080054278250179173540802683609295503271422206038611311706034784268620017732396043165083823490285192071951556145455314966655669640080151609359163548392772406617988960138082604140022943076519940735899133979228646662155322097513642817884187296677526331991464028093377099663431115496593360298556608203843959546232838824438941590649652397892787849151509780015671556047037457574436619081105671062627583375473614248083520952197493008967396737811811415386323288172765576379904054930649081003808039691949993695118389743567182810182900728925807178985437450732289328805753757444462408885340763461903338176534808697719686721255186670070211769525642101168971881599888117769520895191526781542719894887563129857432179841576292553148745290749326336253485954136938506798417833506354408785000030386169051438752694192661200131200309093868367264409366521099132657349173840729627794320758528257359813318497768039152637927659154432454915456496308492270869998344358652283674277449276992404091652161875630409004060828236744596559967445735884939848048021695502095412637347301654147009840667113688528861339323244803464790850522158800597653579983514463181929289286865953582597862807898515159608289072588470203055413718104536193678362442106102073744750792097586401676977495423534040491368355923717420615278895747970270125942669016282288888948266670344171992586207092684975512353444335082077963422123054264551656022443072926339036435015761842871498230303160125432761263989008334324241628887270732056925131074261781948491079974324002331398187505107267487911282616354522633379336086476106122845496600990242021448320581246560859710477890922212596420233268810850830931066502697573286724660369487467107478062872857016413403099881983150036416483528597835062428404013292041861510416256101689219928499976830466869530753210223406487888631812021651831622799434972556052810761625459306574663618296033776582767183905508378280257484264836761834694736411007373799309145562460034721226522306090245666486042919198283001172106235255654450649171086056870423978140967867371860745749989646104801364609713223992574414355795155265966268677551601179632584795067685550334405425409572249959249085401555864134620613024507909035076634830462710380779045896650446495108025861614410674432908350455852069553458564331067602694585748450003307766383726404809557760062881166506220179994455910727432861704658170388589816071643558969446524950560826504066180570874349699545004795331115711468740023233181015515047209130764257287808419350874898048088874481113192383761469076060468841684792895596912835309118953242609343628476979504739433489247569384471450378365935046721118815448256565527413344564693174099051723934453160445974541896013293391870843634815928783193010370608580063294209813792232670725351857424373399200408924670272929231979627246602365204922162167166634217734714935557899599274780500572319530590572320728899997339701129752949660731349360952187452067007801116687096675663492449201457966999826611833551373169272141816600158066352774324140590080288292902680026010835661954106082657572246247967418026415026522392363806261208670362046543470990376160154162295864181179106111818541098769779267314850935164677716485229958074633067273570598008506081812223899399633283517758768802591812159678740685481990263415912343266185736824607620057285645808436239035268067798808253435896425055484297210285758067109465099589660307775190782276590989091124718992158290598215960442820116965154513036824529116184930417893194101183929142211940409001261372023085188493492755520125083561306571194959338931163135316215315217209855875237930311028827088566918906168140847130057666766177670796890872080769079099497281663234917778544405205978658744328537908351487751781977022032805208034982180697034295758340945583226906121258368858612395596362432094549527839067249271030862205527885113952847975192446473458565669663758331940752272552404716613598523776845563740328599376716761895873074523178218022060501782743694613865522901656842043728229237549348643304410602044883539028083841372897975550938496825085014554026062687641770790501116674550772591676819407727408145373439582027866916412714041418346268943598773014928784532934462514500413056407785500569409770692881104115411507226067606718546043868703037549416837606806018467617957307916056322357461176443062019780969456189577916121174514095742565827570725689423998454884054319294161377863981445012556044702402778511107162558897572127837002830725660809300602474456724014909463072920241948575730178196684685772052602491922442315579383784421167950437829882762137602135338552927283580747746055661706424740537607095648790217267858422314102600407113228036982045390228271271159446534351841851264994324158132788472668128044714576331826074028845872211036407621181928064441988890837226893666748043775824076860416644388914665300051072072517818103251104535563361573836627060561210208242031558257499669782242414799911649334351749146967051744361536605862584220884192133806988451785733250929588874693868374783532306932715108692363731869482273067910950843513546901607738206590196575077975008650463049945650242620206747568942583657617163174639685587348826123706332339917705089313804957963372419964455038478152872284863271303373735636675569264358996435645898041874677276780011103610183817378972814216101138557739185236675593658122716070748299867617159483048863339257000147165857151887541123582383372596542147772105144281076113016194742819205042327035029359354855352264573890862815955859256464415323806168180630588566017322828288597138699157305064335987208452129273741241920799593350319471949193466803143334266331763662444806792606491281484530051276806949599658574281978579663538729590024535401020971086238131292076370663695728127539021267863809589325389336425552552855415045353034011746513556192584450679310757994644332443726434189388772767377113466223459691668338402332581716640500005161809598047315590696009553172628380975863227781562720113222739947895702078043466318546111887255225330531750343462204028803687088816937016551489204472767879949853460393319483693487808243532398448432419418638307287412016424437958081829535884393521988634148973682874724977980868205975623998412975553053032607027303624172255772649338189233232221272718143715969323659945376538098030056203530128908887305545510713921305859016654892413515653825467446631943466776159239069908816319107775540918330905275294409956971486870625464906080113913766913727125306881513325599906742711664485076820221116088284976657044194381747693859824903728754571520651117152146101175458707696978910151929548769416595535650040132327481512213716395571148376302640453616525735397251107628200067236224168022949943615996619043895202900068496683607599076826016948178898063994201658272718967265285746436092151354155937052871754323423214261501218148187751680607084389029306897609354221372256387903760903952383423289934481368875887720461085107802016505072608615093463269594228597076938558373443423707375746147592000940441870397008717234158946785468846296855905329179970081576209786127804976490372695151965698503972102687763590023348840628846704763241466800481571591784881023317423250022289332778994820244432450246710090147722205997229972524346024906664567647006992248121497008018985671637153829734773943578041341969637283518829582268288227182298243546760461940818509188538972763518407766366913168414332415428229441915842071633419179026969796336636650723475713963338479590636034041719966726569594290538216385252040664281536392507048827909902020132289231509121676696530552866184718245236359639367113142278057684777497444686089333838467424138305336949821890448688637838908579826784364589877451788391336308514194028358217909661533813348750954974007576745601803599867811327817482732390541120434949500058236732569142348265361051845793499640003872281420408234728152764763669394404413858705175732408955550393810260978445887282971813088117140482646740178684354162495843663065066021044755827938839839099800677457814355351309415537517831185405272916814019896235225467961851456825331454737040537271969033433272687470340494750625349545987058570241022195151338622861820054653911830148562845579791096808952123569864725388785237338420151669764556142980983440104206507077044647665269319095578473072617870475240920351916677079185730761612937444075842521424086970032732974313258815480498516779060785057698811196905954704960032505640602700365960127574503149014637886937711762802269066512141508159725916626027120399271040522955991385922538195705807152128322752918399889342674072052325982827904730371008644396011247839780287462484417046928207930456041235407633022725603441883440841416072491266634257464089399210617582481789619926531306932196098539374141387186836720775139056504062887147761020292794672394410168719063536255910627047093230849045222842781581452470088583088454669336686404867599848870458262207104236220895850165854312529620970297843808558266977779486816348442569266374961667820945352184268504272035696334192421824173037851661783414007911396564624950829973839697332876367601972394567265913828625931275931597375182345462483661988176060164304918025189796998271168973878332407298123445412784644905298011110418982031724332021341689850288298813054340843473680293995800889931010388578641478650280995703869412179861334039577700591388050728965986461236730099208928441928755192981755978689098407069332707903659576405222882717296137147837584282286703216183189392894994313075365610083268144042037850529199782481531399521524864597871817347021717840948833180632736151583428451405336813935585772376763778748276697270612030315708703338670608286186431795318779563344255314751889516921778135875214596228790817407703168114670591920571452622540683442615872958234292129834483806519656277210190570577097266410200236019323304067003885340070078785952285818957059039453879327807059526688645008609509519755591916770184657720123058930596976952009785527218860862558991420996753080926929385813776494147508731399568275135647120950097797875565545699242478136263804766691708860383370414573546023019923936147962352047873489584049326361593053115836227128695439008997736801808844588133509351958612176123011934721476897436180987201503592838122294692187648009184028106293443705385683489803895742259060520621207550786296222732789341381125818784486732476361732214082694251146866509562491572865482647122474009184569894961173509148058253066707236127126930994793801929919416421376329708680027145887340079692562415319328965577065928241251208846196876741823987053709009033111457353398357901211803165515611242102101952861235162364757271044694162103644594218789547263226763301532001382812797731909840264948865148367211418915791199488868397855179611273544668289413879553917701702483983346879085486864096058612353342324765364565141755100714749236003412805255281788865017780442565051149216000946982361338541950587570054264158679667693780387046230865166214113721503982597509925562958741670658073804468448083999014843400588048761897650111492905162702563684244439787298152897160470549972661242968799957497955360385680649477208899459947277290043782780176403645569367186274993201411841752006005673057863717656605094480154719039217812315554131840231590564428506474001150994879353045542856945516682714678579307223026032940567848416276638956785966922621313255506428743000304396329475209991885392927575189777416098795689640762015188871174668555094723233662104438979093203168518800129932465037353521649078650621409828119210195137627764728705039919034021101352140800906536986334765059160858974628152919097102727979503630125089719568683815136945195767133554291759592934630125954856414889758371784178736371716673481735482074195565345527236600534740736069234450068472660909498283763412294798209254693900491559255427102636898564635365345004646492047584849924323133351513520826817925125985273936917041613398636120982906429053374906074091127263544807332477559780260114264085725387847910279582307943950124621171936083426805191100518568135338372400968844221095701213232483343063574496505139120829503928733716331626580117725594102479080036247134100167291800994599662766101084202032764856115770464953593463463073217642951047267718230007273473057243361671868794922122471476391081374306159746090890527420882953547118682274284474251123018579603106894223683821265210819521590449198628494064393355245988009441146368172370641572475880097302378804812560244232062176986235238773983178644507844405280292987326391645717594720403030079045801368416260395777078298553084594297254277704642386977731245768444514829805151376104951553997304123842206206752737288971497115954217049730491922813528891252186824566653939377946495500588608094830556028747457056405020807855140622388613201562806521056098174142603835470619430497076598403785600348594297728420217354793473060425685642839620988917613954994600648584266560630780920887007831001683095695450180941283614358571590823626718601652506705971101543514937203310190858187112971295386833077071906850241557351421619725910061897990343694895693464958302404432637918959623850853625766969855962727062342690560476020880846316994793212538632727132728669114141948427077223418690214089158378140885398063479959548149192497689812150477768918176287276091253650560071631611026229388552487369088011938527611411102320889103914542395454561045599895946738743632243835309227751239618025435514719874046638886013782458551776393874167308116236568504938549986858911770424165639325242891051511287303755548132093570139031757331710654748874136880853219601506065057723865202951182565261072844774689994146004055304485181802939370999218461917712149461136678399486335092660086873560811956093506870671823080912887747434161171360518876988576228045992654960659200622057600986066702285848927340745036168024557446844113473049143243219507796028930797066375593051225481754460813486185096428492936814186829312201993632772787813463571981665589629376409456136278295011123422777611668485177674061173076586445561743850829092066577091760207809433547027913693762906649787605607938123437834494998054337946544397238266031120310282106557589610787910955826958067982749030915324421911135737179670538547078016391585808079663814106401840889866433687372769304437418966887619858328651773130710660351717774217370789458536423342593856428726296386021899825326437831681695411042664999615336781435786255617163205574476157257226572651305962697272081340964889973624780055658125236425633019114473235336409593885540693085436658577456667533858362151783721934465941424654320736125018693778602655788104067618815574195266328936269618756743272266209584883045075163407530974076771696457706430102100675526233395752031554624779777716700598804685666638434411022248631893264683129025663434213479945455770261570862086890534997424763600141590384439441299893363540576704345649153712967221853772399355627855485202486783780137882604732597205533951065309703949705572897226106159872136822520389071845004767384823194156121514741805295226841356606028427296564865100607084618374530368400608852868404601634908576251057826499938974695543060808643895309632872957693573203249380754384367087145350360854496747525739686562464708942819224541053750587499523689740698824238408624653196005923864609180457745941567333874782397364024278477939685939462091991508516500856480354709132535390864440509691486971310348805695679902101197136643661587607937896644607313547667225091759317940330069593733950841805208749991547670901780664615230922975949784730351445910534741483083571938389844931847855783170935958911547820728656940011447063791692288067804786960059835860550300507828045006057197584983912991440425747098038843628530134273576904319492385535445219006882765429513917742990847188675379076326529132631825939468653668838341395773592604220892496065181937275776601918860703428767585922209951553132869611606712336895886717913573169297552052484030456752994811762117286790236429685925140412070417806423041495090842595063374067229555665064867671579473397824586618303468361313842247562224929186594285207222583536295077446406548010863449355598413373631894693086688008362362997516280801938687389355506391872372031059562150104587920626732475686288274157552122687151377389323859763665274626218202038248653389876839594136725187461555031454855725615680452845252689894668220503630458067706241613241867194689642420348592279035074301889370881230559341534141429993287699916960049864357352870967014280761207764448402133286526607940073402583060703645060289973815288689021653636012623699297729143121882433975474174419868115560371852484136925993632534064633330507691253527450760879024487692522064160703178928352442866789924494967915705685144877725048645332868195353788507049031813957714242576330202396922953101315645569414196341445844958324484546095612472396435320609191129707467576696803736719861827844820523616852103815424127552535913847307010851136939083422019786438140909851257448669904867778017814219526638572216174037765317130277462805124143929559683911590085262549139093056085706923911661426567928954100252217931828293046892098204924430955767328913997569345867807731917753997396091726605353269737216830964883327016620913989695947725914714552459202374209071336245043747705588825558167394029498579681895562550411037393730887304091974601324150775453943250216838042857288721505648118983040813281320819048418163051636741822131093847633543730555215110273669757453339849397618980546366014582420474590145360038547032734758778108033410569549412220343241949104372745265898825225810556234430311448413738626406504401211511839525286229619511792173134598751187387312277810074674553744219996174900310884061995342029176745891800933579711469925784010702767724121311929237414750125387100351927243894810862688123291279843958444018320772618841670933769654567918535738506730706445364506690654062177553756137416530264832161422193589286507868186630859040531625745002518897350406433608293938668227158270903434852775823439816296952141997967178874222074975722228588531520363374490521758081358926280060051870553410166981653119203017109341542164657151027592566238569993478223544958093127835831371120575476834654779885646258582459016991303335152599649617622489854939379821453659282166678464757812955182689562585375930012461893859816763240448844247715259151284688073823481871746396858589469060559073940774562802325174895036081268071776648233234118161007910216974834242172413500979308206302229093386922057968602961402980659372410113084942825483829718768802501961895583433464655383413050895161857357890164487571466585532124506446037639007537997987139619408644882020666704159941361548609656718872751447396935177289308644636456831362599117429203217454800626736875588741973856692538324981336445562263844336959632889569199625803158906127365032118753192420293142645686918673502128959693596757761798915775346813174485673131866835813751763996712763140180815610673200332487184398218584958756815267658920013159601640659968516699271303477311012943782600239810636780504470451402517084315444102215188111593734450667735326134641781170378549832417630065098895752544420905365301201343368415885608894402620199018990441455816763258499123326131825846355781124124619623702641946756847162948521022440729312597099234805440563850341883767257164132696453107394960329015926242446739835470471875552304637163031500368443248989589165539393291324685171978510446948175743147496171451001342006609778342930962061806224707225547856023192945785139475999216795086209432514243998168840178528603286458748241832465937499833082293866384927238734748995707417602864818294328358863060623112961859808606897060500633370942217290100949189536975050927063088926345173407769414625023540576723885370846064632385472876676529624205805758042302549725130345504370927114254413613807917482699452229750081083265405307348411210451696427469803065261634463751398588378304684010898403931219229168431808671098717890631034846644702302453198588473214317723180006532630212628033086121642243441839137005930848308916935823583321170824916099020609243951531211861338286587514196325731360303200595898798226288051303886224476745278227545471782274497663216086308485226521307468081524372216013968592695431270284723151251635165643917254590410683690162834878302871474932466873310632303509190621979677161061991640815646446651759956607478699958851057888967007283523863454102802210899581057472493018327602707266989129397529627273268469116239988091197793862727456203640492281979665712441737574421836427247210288593120024212835043198651419325803314130844834406164683051023932014858883219498484666602872593765497978853518781111731162302718797492652208242079686481972094059972792964797175451663266781468266684735209147623290802109715805839760915547509589413962346942516358058148051693514943465546447832787558361344234942391603038268353607980849458780699454065717858809394071698540048463510163373202695338106203443667759222654985890884456402163595268569940944465181253350815726054940469233195960340197933606527828112715813714793710276700556197965377136270729318353349318967241179853786038622158594963902316378134245948532958499669433889726709383351550130594270171221089919288051438433963052326682798125149202968616742928266405683740636179321553725215486581464445359923511753570546559432684473560782615414673035773036027759795265260689428165466248476384161319981597893276994707283100343213611877735489099010617917925795616684765241517076835297118238558764872737933802099883653380193824906408630700421413157362291050617582684690845901863536903251243045086812923595464820520678350028614978072652808460153435358582398969041457849533247402908804187822639511505355383632636763373468075079400635671323610188373015495460464678037097373875382192952124978367414064242853601859585936003947183803903266145090006850389211090417059675206555955222367569921521835819968851154081350410529570284950221131456052290125673857435000502315343034272563200228015341715752873917980025347403269970109028930289323744965922614514888618660265496493271815725860380852554645352568927056693790527770696561388101491066162125693766267969557599211934783251508763168230216045070416745268666818749977678889495885110484415373971424773213371772439168058526154458530695501812270503207000577717537487558860676696000533043891516906769379088683157869584340405423952074103172256245589901706635606403306852839336895546823407732486414956582012720851377922313908734503531040394137599421158353914478968974697396062328442653455032262661262970606955030755738771073024285026107392659892735300524562048516804903149363451082977332720753795928880867829430044508125818707590253847991145076626154309817133718458695129312654520285121666732205994919399951208432254265781268622868971548974776577547923085850046918859105205519687526450246982262731083482119043429857917394065522096438266939041869068705750552325737595924777913767654826749367297816963002270851663127189280359398158145127004108321131397223210311777168778771499031040090653640326248326690977047628456493247963397696301984523213642206657738245692987417432558928867177881793388602613506934394413649985088530492856198664109407160405127289668447214784957246234806596536174536966236438348496712845972963562484580326637955645858958185976583264325824838132023105580102263132578624701406016663384040729327585458268366503771827602555993117950304282807283471776895775914197028784446233367791175817277327136461753502108701730904879045755491482825295921435637652477706561724778843362197958323305265068485856816930162084229325719605332723931651357599254681164872395434885169385864109193572880043087965959605607612165413568169853395718912993027640643353832457405812045063716977468183361136037911300251905984616147439421169586006235083972863561689001447595791107096356740476644061180391220196250113862921735895448013923709048349708499579205295780057468416789250877076842287394893737336489880069108619790103364800903626418313015222344384718174572402251734541341555326031567894758716926536970152276421116707916547749800050394181907752645050071998146161935949612612864722166483300359801311931281470179184425831660215185330829120757368697143387709571691021400731823531540375091554042539826795003466909924249364752630099127016952285751089433324251639669233907924153246781057946029373093582881615653757552429025986077444736458896009880537264787319685244749196020887480048540033067751267487026918082056828571707663167286501736885677850816403507658899755788244957691120758854796248085978976002751597136112946000629785086227074668300380722076710265485856374551553427574751779667561067848853081045306281556332806231624117349999426811008143903914411642589567135663644835253691835749866310083874561538704020895134090588864849018891179724576004721376310426301752966099081080772390991292814723093927503446020972871085086710064740660790336574385012789944565643955068505955085716417897625063589025908061790331323724780686299038496123887887029597820033640863626596720452656501492405511014173076455145019795488506001487623271796351814734019005935538895644871383589315734023705485790839760457329350316893280011646123727132924673072896665068768014623227349014292905545652183852239037839656571081897839666057540150696971761234512148311774097378748548418590072248084247172634502883106996573338309578097074981792972982000702364706661147554636580785142730721039252512722451241618695441733620680316565755598610491175641075879433586442301181357771052916385746809048775007408061856990976583184893704606352278079380560555625366074083319340205984565250876634930877728979046723396325316778469841403835304472798129240124070970811280966500013185601617548552292028354712890801032365758010222836963437657308184963349521896478426184204415378793592654215239174548966435996934026494523596517560683870351878094270211427501959277758091440883754904955973543649865215299707695095788276058516963006109440562590329270403847915195502622480675042051250027431982693872368100578209823337716876914604201486060553538815079483234978570888385660118446651865455511760110648269231542979002304106497531880553895882035384088871896348035561006075048118165619162252385149152062691137705744074772483731513093650192573583459551828418541546113546271113729243645103387698826019536774970565022648756228313060196617366349823087542547563916597167463042350433606141827201818413858337585970078920122522466430616570183011653753573965137893694485112348422505358948491474329314391767065530724519783441448852204520391746810843526254906731980971353300344795888363256917548894871156751323902653079871390897533707766147757488221104505403244518787906471269819426578101587684670693606722370849081366499339189261785617966359656880625819754945702937256329811096842224625434307590790960149266067394597361318491380614618968073251241309025734341770410323679723745229178533411163417691299193882452504863980893749046809988792384875735084368323538574158609511089300401061777672939766503524288666278397032474667228043249907081922317389828866732605008090937278163132371905999322195838441340765971471875966927277574334505707310031102072564144985557206523862922276097661206331397467719965041395217013580056498192024429324704266863432799073385048709808576374894230002936160124025636779609399984255147242977258017996661854170010421430309194818349045936328174834586484362520162891553259656871551813011373931124103892631811932081502803037477454018656951654150985841168517418998152438116985140039687971983695362979149262435227000980059844443353030724671141841553765637907198974103296093481014872993114039789432810986075862619407199456501306634714520219040565953146045263718420673649902581858375756380353710304153992715739124435046396986195607632924226921657374669036173475284089190852783534226833256669204968902063676148353607014370259969369881220230330716221507910002011521377664427053132967344178890910357773318198979431055977855103381370984004160501195172003278617815051997420772798463512482366974465784378360200323343441065715966044478882563923265969648719049087563555042393019382065118390944301483861744465697492338538725465150906704721980524561792404759997769804402011962641455385762848898273094292291525410165734133573111141730573815959539697022887719062902871005411856643865486477085875649613823224442406251916650208840460815763669617153429830943873024356978684926253735526115532195161266491551216768788901961347421898444709037521485948407454146715485984381140525288976899869401261859388918428929476478368892652640483345564231552245760297720696325325988825536532535312915934092620511453118987539256951402929688475774546125371544039421198728127072052216957464041355732939804235250752039822419233063617275972014597493545280127398701985955979990354208582823554572943270638457685442716750847788615803373406597391978409280379077288222970132329688167710342588957974705896265698601114817373922644651324175215368710396090179538384271886727019049248615806258592234555527443762639066492641027786125302195688793350152832598788546808057272660155694294756063552167013243537795658716321484201557204534413190154915070306985374080825062401081888128296949526338079885930867907299407215620292710653872411566603607361778362752729421762113639273971811048066971644027447211690887738886210406858901080543465480367575016863786641680786489735016169919102098989917874251243804524889837609995240255020647593698578767673090615895380664747776527995239655426285734906931854083074387545129343762679824791378039465364882863150025290898190807768587250939028345679338868956607744013143942013981870296446323348676530182561247914309626621006532791114111320899079925185628196929826795299494252414063318049327563097425921750510995305823248206163023788860633755380036076769566477020540807238604448501350388978776598588455976233167438855906076106829370209967370641406265628896477198145626912933743007294070517210464695968751674298971284278024862303487456487467941719782659865489362728035589397453940395366369840516889104380771968756625800295238894325149424753837318463010094157892516989345002700750854810790256036026062900591385660316803858247359760902170673030992372626494055303557640249865618158688028068259129907034390831794752766233650567015201613021218789147150845982499230175596606314503280117691368890831967379142072328372999611625163798875322796859021486025683110374047395085658040263485356395245870326423687167208477402340215246896762774491890013026780013155073480117560596980143180157143629411682354647665800324358615646920227503046120495739536281418319488268258752399956409146193639537847767716242400299396954590459150228803742392468717862769775636977052901821928959028488438945651321694135241549969835697442405579827298634969850317551368712986330133923492445903479840741718988935300360051702059472751079091815119603326606437883442554290073558208222696111361365692555450647612299401383235935893006207111718204130130237426288606179498969196936968567972075422050655082695105515775949682308527428302875617930460397473136431877746593166594650752528436769451850862899176698745981777113846579398905127525481604498963738733259198675921373805996892268383470783057229721343869588042840108877418280380352079804626727468148880025802773030516630227100413016871065442657345094126715130631533101686063134929456903838035562056690482411331328614892721923182905961153708319689757652253464478124136634696845632334413141965254162044053611749860568519054034045257045785683033458747158070875125086590199832409318767363920705322487909343420880015627500656687088865253686843297005966764522895592346117939086030214557479149828153610259934099435310106470089499531223655690225685692453920332876544704623125810765825665373539737842922184173735208907890201004859558854580455941217348947864056387688345577414302465255950969446674345734533123632459076067327997248817699608221291006868786132826789785750640666255360211119434317945153673759040055598964720505917329198992405007911055787756733356728815310655081261259467758407554428115374915384581802564761739425334120276030023295555467550628402872450656676510808711006469065397364781207027487940020619555777595148093658370898518009160833659528235140812438587269079548165970341137407189647093372011068149595369645471508751564279272234000882179504133617519876862260953167561739701678900453400498532538314169842475252698774439161313614349701626179357867437744263071081198252709373918568127226205480397267478558124245714147774392255849275540630112153126880941676785131365064960088630151213639498538049593885985970042227322651553235681475219647857065019813499660004832030391574530581609722767283768842954059756873452467248494019158821608102088514207610419121119871289574376047978085592058159596903033233671347438540842462846902662123680211577874451979995322873054948366079635102972162097688604429793884903728757865866220891961742992624735884051314359449484758271791854864406802585514268446608494478864211963835642055575222895081359076514753528106070080708981492197661410685175353542941449273352004666087475259373253150898417319529866427965161201757399814618625399218266625495071802898963862587531310342225861280001406991853555661842215622542278762269585012943172661691116089459200422740560992072413563527356860749887931970477811758467016883069805397453518843948017463729171831272296443259791978037106700546814358595092034296363960093118858684264213022832365988318002536547020476896371156475490613673462900685557991629793001487882332387423799778090022927984335203276698045083263168776024923127029868723820967923726057155709641789362318513642866953968503771452437494625753999265023227872366348532656898441609233016104454626946434572037291914248075311064879990177960637130366848668472862801250701741092076251298520025176843803945649706824027755822150091217519593980082713809112721448276965249477465292983213881001776473685167814560606648594329951397790869673194215603265518785300764672438682825121779395375990180772656488929141344925690454652558073941311308665494125076159599501005239622132872983847497011418533155095185946438902347170146984615542583937526663028193484151129547521717137917548681047626942746524581512625819299494388373643083790271287692123680894284368260637760700135335233434861529822220882176716494363523086478801051769353791939458091177062395346723381821622394086545127466830567670682666465675185750867244072285274949343913434193569348614384047934510756258875406346500632444427294705849125070998056136969252558359666742951974654936190705963530245150279525672342219200186303033438699519966367206426291467015804975029255437241715253734803332431213494244499725544330142020777784334733082909568860492005957989636772998905815470153369902032859136894449868564683936873678390546793093198853558863597007866611988822243605842354566677732783991037177494554439637075972394134378444288316568353869564045711142009032284002455285592986577750036939611819561682243213506705876450494928290234144068680741962842764142547920762001432387203341538612753221528441385992642968735947580012569491902607754301928463162722668776116872275796349628585010060480133372607050685436431183903503388995549524014008390990365731882099726949555007915708809345311660907913732324969345029787272365855664332975151224713371253415979500809548890776607087106013103089074490092849770512681720069612346934483733736192581885753359195071485461000774543966346929074608975570229892081581073013427878028387735423902740762384669094347623371714332884831603960985418318585921212984172413955456738751489092493015683848625898217835336199667242310359704098348280420420312796509471459789741835339443237638775298888139137171612522366377135929554668092325238399217682030128033826895358159408813986465790275795197592197185988476631830558762929719541681362428254315411683300527896611941197662780286662975072054389132773408299341976179703702220906890399340025258735517748980486178294690341165859060678808582237556936762449031686758897452942362417705794910841173395881764240413323990012194567391170476966770257465831898804721228499632202176168603702167257656488935667548154495767619003998300109209801046027872089862996413930772525365978726577803924656112943416906051717773398365721037457995149211983287158477334991234003009277580455840232882965419173183361785466749778106791319257801721815267504936313927995627212687360406934788348379118139858425236604797778499070182161779736562072545336745589788591132750605976067970071305834134853323405086883461822845996819980153025084516754253196538715665210892496767799653582974354899853696056150443322292017388537709265605858771870846028029133526158199423800713531255100671698150568064799700468022145540091769406780387238980576664129409606143982792041628962456197687724063532876887651677651071824505333566706417643323256311549548358922842590452313537911225818195279848448405976577905015976251096034479035587530996807332991362048197259157212553428956403318538331695374138415881365555790740186412839598062519840096412815541672812011697781943443582935511359276989783205973212244249155929049024443186407832698235106130965413098479745097768693749255521993518718027706007996515300578512736833898648437753040419839327996849676094970209215484445392369338063855061006258622100857657889940334632717800115043700207841909830936206628206913827874221363036018093816957629452793010637110678928224808159658215683716535537066064921019930250990456775403213785312151390605707270688668476411702951694908799827757399746789607846840424614754016964807542036949866345498615512232006565287701471021923583393111167057114330855713598881026139202360214277502999594397032457963330255601220372228022349483444451366935013226115089146335965259822070400065444971097188681075340459808134969160314553680469636736023733580969474451528869991042008317054739950100479124860227092460242804025015874832953840644028234306515311370032298285198166494251420896207568485482325758765431168143684490187495978488990254427843169706382854215941791074400920457348112291252573572427355103273246343099578399747616493463917798327857566472526729991977672316666824259818850004799148416630796028602388873153394075882062900624543427798618969295609023199264003981181149617340499678642831776935238688432059618203657578510846904603804408009374008124990250032692459779928149944351063037712778865375717813150220674789966259818234799019859994269273044087152758408539617051753255753829199409583309886298559831148143431642897504311216431378478379329107539846031710452536500820371553273935572296383637531026204538982819563115200619751747817839383630983288018822908523748363863538700987932403519421919887802683899845886916161443025518585374343927601403518681898724759333547269524773839734819517368054877462914761825582696321842992323137952375330371095553664484420960417974653164677415422873321137338110247647842853556749140670848014163193640901795624567507904585622911600070289298907538881718745332505405547347727859217350138566745006120685666069067483101890499954677085886682974476707602569803580311973544418774886772707721683663848494136431643487280367434100436073894109327413681478380477839555421428665271816764766135964971221570096447544521382096584310361551476908314891481745773952711254073637521058648190350354816555752820754717392365952227059900279587635553076131674462794340118891952904805771069371423509944631402172282425608835642284435681634493442450657854128813034851546716329368131295476024291995187225817835860138720394843691440083123989428187445451733024970246509710303031614822039782478669863850656854017627689596155485921353555411427377898362851372754806501842694112886856557772340859126589746649816806462674620571686663000067542433679908175437283664325168860573159362664047139689747327666143446620312290660019682119553907811344332397795835616743015399966157709549719931924015780345345782856606478526857842767269763633535525157022810580117177796084835106798019248184201685108459456364660107391658318223441348866927761125740239527282168437911251909687998456260548593790532142294643368942404274433352290141794626816870768696553205933055340000787343324482938921211799819820222997503553163228328416430538296757577556026471550054131698852715123865773980093380294373159714852414981050694407774338089096478137798918539265237567582502481025411466466948182821778126697158647123910612214093980923231343255873945784482817806986759540899163617049439144705317393381313474263626626917383354642400529504671869977437885850333211597764235761888263440931945635380129069115558264758486359697270134581639293639602982415423214799739067993345761836506150912194305714068126986398015256016768880309430670184173835718550383387646139508570115762235358738238222689349754087060054029390427866240476340314222102740437333880835028252296976255563514619021153076028893136469439210956463532402326954976390220935864596847793396301686068730130930790912230508412945392407252792646222194483717426694064188720745394652581205942425423399113956395523194829038725472598887483391345472852583095023809343618198089037364290073944432535423134429778470983033541331258046258624059575533579679773923357965652840026703823855709543661605891546145225693389981289768870534577762008889079146924530456229318793024387424120342278473033559571676942261101353148950313191654448953505080228564099036924400457215454099051011076844711726327929498575701740703372156245349572536615739832644748725928399569457369695059292172157050235773612607771167451076877536994880397927478692704159996446863906959818207960342370404945725495274237751149509786916050193725541385984745942609185684002782623297039772734692852972916793936172656248945784433986541107508419752663491418402140772880151084082156045846326556115496973542362570050900397000584281659591054090497879240788614308737506149296861517215934472916136259583319132487124279407594817001569100604563786394333191092274029175975891643176483408062913359191523646543409001360778734044510827489890635846897175843697698611389937326557727914359000509272425610878787839839193257933375825459718217349970657352807997334208415410616649400373223065129658801132626429283928129371797448399157777266469450623967638112214002131771950269382327315522086313442927578619152076439238926182200011996778846000717587713389196450083263324329776882003738137964352169169614263576169887894393080762478670106637100084279417139948614837541228583458373736517357346272758386752464223078631540600810169844235351573684244843453537642454884938954529555674893239177308680293803338996352717301727074509153234939389568111098531079173414716602390642387427450031024470733539400174350238610969719830609284055727783209709617090528295581395819085370214555950048155411955544961795630854642489615609958790414154700695728120223039000610305512883013047713098643502701711437025732364504720123563727988816887042238465354243728514037366114384202634363748737784122766706709743855394032739477845273819937161338513741056946224261450082366454230207482186972977080511511218926630320610467171295025170828119492722113816005640592213832775825949585389524463972658032613761374543251169420367443197993755232175500027173407708262441619343234864088580327117967968106380215053535761733662231174986583606834804683982591420007578210282540872520316053751335974477353518646108327873085279213104092729089090100069486230611465318661427928345408251366789180110075066915233511085247965494296536413648622230565175370176762268816184266602117055758597847827305752510760595150002230988136815793511435327240897737310688294517322752267513993812514367210434331128835894553190997499510746639734467418313997408096140199082563155122864814165890192961715907019590200704703469699713219607284653930893789022447574182168162612167614139415582165374108384926870429834945951400205417855947183575410580225957022046223840404155758090450818887384817964680470505272304022149057425749016388307244476630093111319332817294791918927405457884630227116291795930699920261523632429928491445767473231737354979481978924498619065361420282917634205341093574007607925258724444692999354580090797983688472283460130720416523911665396022643752905126859111277756364688660386637100723892080803088059087057307569547669500448976568424384206484856199102118389353291527631570972491262644002146014940845824684473250798490082843809571896156699185706173638587004745815268586799980602796140035830675912305340659104134701095745524896759782496793761581122573748004915682843290518415493918159056826280468981409812894850020972923937980511044817845897442585940306891774226394622942263006518715791558475249731641882398124243467610050316445315774661466911927745952841665884547058087235968808316538469538447415672606366485771273976599700715846289952482263253762310117186878104599042263731704623935845814394658507859201377553090673514449900462994174545051495218599074063202711694407628037972818161204275411435538677049935236882273634355176563501591759117999899078998544077619165831031635036764341763081360284564119935034270661123087785093210101155431755076725540095825544881329468336040129499317594077324953042603941398213368895257349917688978883749485843127472728763214254757073066907425880346968893059098027857197013521663784795619613903172046474234975379483411958056840672309155084923942215120198108687620349159161730742481102790139911684641537760911569804718450533140054102518360315934405699196744847456751164378921481725067930713604979921366968052786153020308471661166543074733587631202574912815621922445559940514487700398757250431739548909921023627091215823057330891392619317954991439226830153881581318751469663680668495231676941673434423664820790346443513533262757958908957303603162729259185551913937328535964702488250006178809629860275031574396032133896571967224917793901563236038524528554370459495565819235209073588306512150011353747911714035488567467751454134626340978849456725405398318319051007693159377865391247826200236100921106748915602692622699662301153529073930572367355863290403634670892211203354381623005548490825963263959533984635975670327230240166771609460068351289823304888131050866048929854538284371904897326670456492220229713371565840585137205812799717687969118731412946894332817702939549841452904108291928049496836522651111035118855353161887355055449642303886972294293238429804036992991187536791289517941728762840641576566289663205090905733444845951338730795974508712937393673850134513834553846551567273086407038633138977092281379564414521514216791830330865986162501557343823723427998119939313921090129781925265098103902620429551763453092649198125211718773305107254548159947641052372921551199803979456222455445915486729163740137523991708764262902322940168960319403060668356836405919143415333906129448671260798695089088732423683831721232255258244702956453989430349455950592835278259994809568768176141984248811868991809078818759351800287761319401210835962118957664999548275260271951397972841163765240938477833267946870022529325347319631799137707928712342452720554560653290504700232537013869305833938620784650769453522451881017408512040505739345179544567552697296113820254921251282294514815413541313756887689182626163700807647366837389888239949100065194238582588779559033908513014017408936517563208350970149318963782515251848281648472786256761637166908987371479087957052485123391105564395495679076503535142795070898644962531984447971342881786654402105827326110060481489815088118417793332974611047502036839334802267330348390280446075427287570476950345129260566149383784992689542072798591548362154740270112642537217598158161782615257306376874750584818116149757101322432839911123124977189389489178668567327300556945634243750136226184672890711150042186627722534975956339700699745402605172614625800355047972801554880598679498949220267528133351509117766361490054579401262863500045608690396721628731241237358885301327497826116723324485338057123323067664349634335225376475728528860006615130808425521939098866265992819553991461178899696581462218742007828727775530719268358227189155775443396819971205744487348789217984988006198579551930800717469719109836489102430849237672126094629949213593342256916673174857079612391357588902789111749782005918630666497578272275660314383639040271952739162532272017639857690047807728696281654932130923276399364161017824601792901877617835393700652324160597321026182332941623439847021445258518527767587174713870863921647478461455795184525189882424275921070600881580356625093698747869781876746217810898340568084417592552716716630518500350947856262208238157815665283390010000845882137009621315726937571005464167936633490994241722157093216527384785466203695587255046843259904317957139671167668939903600705402398797737830965301996018545518018697310924106209779577627683059594813027220708005391811938258830808061275957501863964153673096091534144540462284945783168764535897779477850007162049806430072172000482032254565703648824264427854484400055921359972698754120695445935306406182233942289765639411528606930577471493153108076259427296840444363392311692019080710012201589657111474408189134223793288864015807851134120376549947173990318911421788733465850734028580538963923631089705615196742383403191551300087101495628769222816886946149368553887208004898953501692014187224996551094562916850240050502098711441309431876504961641579542745558401990394301028671235307166173608754954920581982056719843937889767074844053977483844411628145769560899284339082539613869964497204649210826944392785911231075890552403079313311816716381386961428003731988662495307911820237642494738551579554416296631546961910505066407604142629729217328511895806191044627107390235880756958163550933180325810271197068566565049478970739983335881391568375446716058201167579751298728063917235627659641612321875042629937200149342751405983506391664160413234269390897113004913379634374875191941336358933322268775301558626751103284528043521120055735539714803962204854382366878058942443764606317292375002880398066289910894770853569408613416975517995923153370797047641857537459401022378350538747835203599598202464125623640983039399578890596449466095062987891970360849790585960473681488643247420365491917858315874936586150987585927197988915286443357071487388040659969280708445115101718532137038218101330002858590504109634397127901534110997991210606785007745788550549143838519795873187360770376468247584885750644390762107823384167950233902516107527638517483787721995721923077200375549774421846867256104984966739216448270250559701470965154687079751626172770992048953135107325428391532145249945024270831112406365817772735663414622538075831415068444117769782754231100469588783488859180799802947076295830324382509242920719208177769790054447078711180659555769109056779481057543195728872853412651141681262261069094118808962717828043538534758866821045045361516146107745101710837081587419167945325498071068140366123242102632147009303850212975667757623514828319508983788889247188096060630170052017740202998809212559693676996179452111266617069779902179877189991982418901241817080817651944806715583232934812051355379383434465926972018488910280064540597137075265267093845406036780072872880233915509049873107785434330245161579901319683424779817771894051366872242693002588282250623787628597802880091607818010030066167938658873323254763475226078682242424926617053092284181142326766133693706087777408613799739385749909780052003947853114023906247885949103972231936730273357490111527973730740300631946297071981337203666178362881314735345410651630920749614817138532726263245938225691906691339629841647433998910940825769744172272532161503502734522741901798451451008111120887265235894044133133409006509807529154345978297703651582299168599324362101839641679968389615503827444429491165237314302382259345009688757689512231667321226181537602388326445451472878585869064095109205183068044479539462221115908199950092620394178420338850025486952301919023234227195915696307365686236983046337084224316932981139071209986571031749186058236785130209203531521402295092447174828900475999933944463546757641087446521496313990359474913067003781838240384765153716633247044596607246264915201644835411262240013121019216542033143873519066923164152355988708235372713181531333205036717519475446984693748959243168250518740041130378290758588330827849951151078752000405990478483465534059093001970406006557880836839259406971050460202890116688593538270151125769566034663821995121303230971145611221882581957253604583552510991078321320110767356249732763040920878986169893433777045972566686634657383630281093246871475235432648549841165765904271666695232171736220287503597412682499509279950536335337145221333714797816016433818212675348165444865101056219702713393423401867236685725960330187489439290676487018695610049377934079902928629481817770281897900220255768141626382165224766072698709948819251709172593010325379924905010127940896666656012445688845111823578748124911109582034646800365263232368555771680657687238226413177122700953232504642793555957662742251609648874526880262456556759416680993786604998691103606421099322555727908448677498541784717973598694860716720586449799586616636754926295277884193363470802975817270842960097115138738724479481466674822912955774114324021491004921978457886929556052430779400211554787968025637399413810100428533042538430266441156573575234639333097864036735040778697737042314577473117591651035644261578712590469729562087254990664073248859984711322846892621356821956324220448655986413868282085089715830213484892322864112752884964570975617859593243437566966719235413498990438398016512562156170835340552617271521576439261715827949814241285761815946244882619888295491657753571660725630539739836510029145674032812841783404022390161976229759457598988907121020440745988620830399385058076843759041942597848208771322171026668129143866022652521496687762147689266642490890000445031196942328412637209678116225504647711865646026114926921153025363314440597372914819755528887658100880548777606937979498964756314484751596948770843255378931858656146268863114394042690671767272507080465856554055652544125288055700298817183277582102292267613730408276745929814308328377298967478152360296147681432375003847576105705980472635803821364670452174285987302298096901019040842798520763761793002424334087046423011484961901271825927744244110775565263433036928994679931018912760426237808122074416817723705687883431784782992387398780897589860618567300921493790587390140035535704599369598515065149681241481551289700309699101014952282869886180711557693204864189989266654928622626920815353425770779245516230451124804668047110854440085919094900787686011034339908759417259360953635528303783801010471871662616840180882304982704441982768883149382488710077159780709456634138200385826924200019073163151242639150308374539957685150258786355835441856540050049320214147367725620639456103051920119886940931317747001800729491864822355161958745756852049602173226217075640798103181108931773770125452505882283078410271058182087011620333577843185180966364176832591127754328095753828228415776904878447897825356195245049803675669205021261398574895041137006280774686621292164774547610052745119831274424495807479705131382089895382648047381673751273330874561919618057975581550320988111484699373064211143413378877250438163337082511188749423366396279605996493228777206616917096881360234141222693460021169760529186042021007688254559752244657920787544010423614769160234419965919121838398132731671664049716592121332997638838790538790918688435097176237119048001352778517341998511495283616057694862156012596191510379351610905409077031575583930622093799881158957564584702038897411916487947018531385772439189659921173173453707806879329633132158205436919248484899709470716665303858758291040251673786238238884905380716085556429062567098160544542498051493772214944811880647628724938882155017348014037562410469808716083617980314707266964942969793255231850443849281692421523950214805912909234054833070520215953922282314979121478110287999508524096739868339140734025553120398367929633492126838975823300974019893597682123943828248302377265033161185255391220307508576185531689168420872221115386130517389966214551686087523119313800459339438807293255874847009712112778978955114291326451952330436903021298789068166871330645313317658816820467884923534019662701465328449472163151625256360309977751847105126793702529246749273344991817364013759971186946461142391273111701069904633075063774792114607219674087477564757327901986116583333384625598619126373171743425060354901712414159703310863362573871468514717367889790728475705401608196801702022060284416262750389432941922995842097155987476412102021663423196510216823127510226229098454938801467999166506110706417221244537135240668811357229203198361718523674359297390462026972109468131501648448494599038794292327731056349729795923685036614182262735545652905631977011535087008210606161318066317334859144654278554120902790592582953147282295103514256960927121503270432033353956578902324653640020678936569456558982236443028012936755072769326100705510178117480511139114697841601488592070280090973204248487571865171134625273323567471339086129031913397623419755804022960666318382690281357991623108925585856234209869967862126146812862123470851928797595489886555679798512941419321797414530249473575794733820057415691408909416953130578002738527734750961180110148176428277593154701916357408625466213273394559077856864475223826632344154756527633307978081876230906405189919359988690870864630407954177157710815082043869340713639464614276056356879919399313885501070093159996395056374292607240366648457503264830298669044174261548407754225945964443404013485328684563675367066342014045979642516740349166089425145625106372873342597994221070818697964303979641525373114926490613974878949552494989308203252566692043113927897584951491411320162871646632712010542360256163687474640008659763954360211688017230780095415209030190172101416908993580438110825816335405794239136999907547704785551222022067029084297068679847088642033406814245325909852449201115039493632980718116298158245846571327689076239454341355752074652760124915602205201579102570994949599229116049245847901242226754235093541515356943839245712823400700573055143039032426885139830968044525657198029089944493110656659324533427756681015238874769192784863750274180459788928772277263053921601918661137249370568707201473552493616954710974603536115503244058360203694720789715622657892392832527142847227962035870306825001832483907666956803948218020799753085241697832731072202566458820014751079343089119655023608518241308316440300409707061013832052409855287141451991527684920161485531832911193548350557101260157485141460937456540232435580740961669994723005051140224293053238273465659993348253118766783483026567976856890264394467234755937208749253421467511212341952983677335914295146443004656751358152128115166048178113909196447805015589851426172014466619530200053057830749874720519710878073689588766087074166649596885665714529773226193728652847751290266763541763189417665106747313951319167053578572162477821850780594497386842953420250605428600156499181716306065037880372387729260744833130488520676052336099520874226753661473576720543099817670827229108977156646834018448353350617505329651515344204433993212009323463136956162799669220282643211249122711154865197856608382213438123911635599700879992997033448379773028222899376841397528462942694779192367174962179420971815082813267632376844200735524376300087753725503078249381197036674325912354159671331595111148379144054072069073617318873590569971006430536993337621233720885203856325095997552048303083072135132863790165396663822235414267389078471786794658524610688037315581679568437534520701419172542963414046767028793073594193842615605106002552209979586263957437016235559031312976380580497120367714344467921229566362554728233094830836028692760158952993797315379381466648741608203263751569186769440766857428810106824512789609888485896113881406368264924641425195429076513558727372318525686275994667562034836659856751809749555813364982829553650616457370130515824807216989486783565932031235503280807906601544767353496387769862948440120046218829904393124955377625597665724546214433092262180782030720464500314333360905770170556303713901590792214783322253627785426907900120207956580204768951763340458370715620570220628236434400570240241544826208396866310350694321332433930189515599070440742671816546398382453350298491116534823154690199281052627589105573359311564438130374327526449170197741687761111642832100054309397382479540259935774513021704063386633298568695200941411023363938962652983891454377547674227452485146056847319238337063319391027032385229934095554101775386051719967543100764520521802920795749664348528660573272775129353573366735641347909289725794310538008533291938633619610806095947807356819489486135407633308925910465670780803532064387342032732777074307234581252466406978239316587960609173797497544329427560156260451953506903833520131445041175961345656010981688818832246302299733432704761765549869110944374052296842363020534002469040642889380548487390544702933468168772029671722050257018438669884827663873090797544696226002448732957024510785970708964297907205194843912028449206594956510933110884253448662599467516452179062583133560238893125287684897247600403003025670813453989002934034391099710954399836880658441390022971257357439234491004249197157886509827704240057600481105467343653734235203482561095809750403571575487962254524380574047839682836643557469958028389814738374749175966876099649068133643477858025803653648936549226671502449622484204708658522776741591415046725735775239771392008776305101052343806555480515617344487466261400305726700249280788092827359822860281052625941523482612340875194160984156000005319621695574259562037487471084989244903821116076699066189170227951597160806485137964895178816484099069305287339005021957199743245548505416786301073478687840367981161733208613766718720022326046896196793452067842101483263650293554946358114102616510022560871757758891900801502460780316628343117882284860325362453654922922618512884791138430349195141297836764847427342429269633810453394890312069451455690732001373978201152380910748562298840999752426936739851775509419344401366476384660625352367738131097669835771611948820302781087410736128227101315409675795618468978352898193410943962347978507551169986223069505519455128974359169244775627634186332108569913715116073122451086056910934345053677596218123230199864488479250846835566645462686775611674700368388754714872808545608001440883822863742224211201509872326991673218188253145619619013717115700608677662720183823190196085656069444510787801312894590956757130065360668688094573645943521812518132782139812106837897528761352026271711757246264744924804247220027613428565732298189411969385295534104469795818479440225814016532412517082970345144825410116587392256145082770739556587438285867436411758033930173645585990537274207974000203298980892838734306207151220361442308760564648710888636491742848686564535911101218089180418593369666757757616098914452607668338047007689017711705368855339789604769764936937234610153291895420294781001414422007466423015144055504205844455189098078990207828374295582323424227403200216722432729693497778133099263370701727240472005466553778461933660162723045179363930638218267381703645255873749567153802222211503679088599068609556472328464758521374912030054379183508516725682078277704215530089285389794854321933380457847630240567694208826136297816368651501824349707570396774471658786247096313057528165405056812581274086660570374881194750702600456924463437776294918773993932346589826569894057205498327972838925092536581113759713789371181278140324252258348582332195865781511104701827349709835779123455837977958599579816796578267801071027733695591248083282209131218961531137443645485911464908352535590044241206844486315838307279812163170716866716852162448900947132227370884903261138969310679458747307552544487034883685978456922902682856807557599839226643576428280418496519124519839071786925604585831108971247096134084063702482848619566417287701265907543582468372134325013025644247733401197156897268659492866294529028989609051385854285708037799936476728410320199761818433371483993192675135067695236047534345798629779585002660595539251435899925955057506794930862964076557912845795615077858493107235220555090467850828478630394321148881930277556877928053470083823183668880908015771948389826051377360155120850056186317446762856671350549107002832319588322679128045999927048502712927404091935160617465229357969030349944104967434431561032837386189292677298080057322741913634256918619523193480002013727675478483323116547048030831876649827511267188219827276125391893677844092572456235499075556829999030646401001055358571023802475744026098541421009205248084108033014149314283190626771013363883545671008189166038899958657237883355803611394965210305664658803399837437706506378632540351720805501808227003325727955968529505467963081050553080855272859745110213390248497925913797682471247061342351699864122221017600301151405980105485545076435853775502638365162979392231535365210250577425089704076650836222854972557554626410341194191962016140724968811435215355788973384704053488113592833529331569803577024373037708000757542217753317051572602209666244701494082903719183677070655905758156218772784353472912395129461158081510050019862164661367024533873018730362923984505689073989750311742236796216522617340379515156365365201855242067585702070556681965551614378729110580207858093621179792426311493157479550299036721131751535212378290035037644671721832185288354046286305117383294606222015236469260167112653984276287007873709141454255584727787345447711464508331918471478375777262903206158103686670143149480268143729752754731081348677424805640467809836414799172723040485536647097683396974907710640325364026459229863339686911087502181919926591693410177632384560648412119159900680681926100650900633219316710907639865242250027705008739611255029851623882806709266459020755216698701596683327150780037803339460193086121460707878003087176586063720411651180247336656501643057630633751517007575213881417422408399919605837742726522852621704384463630458574979854579617269491274696142207811403732297759675927062458344193414699799920430674265294485813822223888701254333278961344475221193115038141113928634443896336962404000315651192226828571040512344339889167807976952981230718343822782349566094797784525311433473807990035150158853653133431086114760641538912706895599412691630253274791289678707684369986606714356606449389919390693954145114575827267801162480283396777435608323275682864895831378748745274665702389398936641032737366363148461600784657209782884769289703727953958177099531830641947606887952420919409766335153337623431954251576382191938641119472515086102908200743830769686227672035349149226129196607626924027418404334322676739083672052338140892068578743457911853355411174211563114622315100281086776157669878806564662947352729874218084870902065394330856660544048452754605926879804826056802267077529210463629034468250879908804461685439524997838975490037936239735017228782928081065970362634453187931163616538577219062906829837933254030313685840063129478590221283334005165240702055609891884555930843291910798116105147639881529349633651380639156485142439060990118172463632739910015875399880869568167784834239298247334335382814379843955973582562098419796175965609689668759588695864413443047161959901360326719512655531697550959173858728931088117796182644074746319598745732466468138539874973042436391312803234241978777209906328101608504716644482091918498325112990693404359970538656573556386974228470438826828165142256979857146433610048521277983106071966385707576464262021618391557421029576276935012448853812906642712989500444252232302843178058112197067719291105022688212554597514480879947278519241016117880126978307184790486925385991104990675070426380807828303646739099691572890554651261320989625767732637257811924029473466448697669888833792308158704358253551530980052886373400722564518045178627215449181452308785620049963043661705298202456848250741912676709927530350955897291654606660768262359860787259715867066235516762410774050606043595730803380294103186627567854579050542237194736364125516454768230413534198667814848307249133648955774149258801168132344151950698156607963921716589384951234046376661635929674092896483711409833034487295887298954194537069857878371347819417476507830972332802038881971079805149894604770085287721619687190853590001081920469331372887837174747995748391318926622329886854162274007721643139022421726454015903524318871412740089946254412156302687572754030153353377250660903301325433405060191130018511582647098049711391852243822629463625449831740505943002856110868633983581938132127784130053399306770828006816639450600530880701056470305012090311137566230893463630792558428737171874509859899616810082694767342397930847635604283645911240920437127271525845184130626663182301538295069928495009954709519412750269491831017447122303471847283385885666917290357721278060144454808481122136105624920451168478123209877311561901231223532227027096766655574697757776110126243387843729636756345400628871893676321061612856039683526060726777645831627490857281829780892122834430023305695816610479688959239978049575255874105201096933523509719831363882992350290395749109236909486263820610537103285735157691225208408992314115111880547264996278424038124505187918223602793650312690584595258019208138502964658758364464299004374080394110379705461164095792935725430718075544240034566465309472164884264896638387294065859949666200417353151835692121351613668244224674257864024357454448866205889261078356283737849121282839373194995922489528230849161387819116480206515543328873935375944357804469436467636139514061650056471143463974995515003130063855951043775317585507563675258515936586621919090686253637667825645649188049975324484089315204471413127307906058346070780427315813595995423049093007138456651649311046672402667689051001772483251903230611435372755305316592558196885797170940720999058791549588921594539057349535986929866888648148441931283157411485961968504053804268928086684133104614656187866657664721341156384541524062973552877949829724855884643750785654769397669921786999616639614497411946736374294093350074715562810213729192989751993388230453092596485969825298123111509624175779488762547239732324350912676906963150687297132352703276701416411208560438250532590868511121154713901916476255452869555545630382492935270125625907053101766803337161608175830715205136076611467981288835698720265332478518981631928152909740150693411996485518457739710749740845507754198742117231864857221318428597958256433690903584583462903177280549241277494907740210941639789832532002036363548138121891223402254968983923743319754473582539440938780882394668872212412166651128954904021509416456407060418786231782573629384476157851277854521204508884300842819168221366324618834118888321878182660218189695374627163537518909357701223873607359129009615576123193421505752710854038981117830334007114968436343129302864068586766534767803692693151098467971067730103852586838395684133402551447666144274001303890421136631051106862075582987328211108135978468010534328533899331491205313935907984120904168285438961524068214395924852782902840196784274349925634297452882542470358908128944976679153184890921412662790756634463823103926702335117052026674466458141361576731452615087041300963598540893954608699349449007543306827472144362031072985011864379658400353733008540140040851420361620372179104691053214488583230261968073982957000765018870163432391520159085291510721398280618132445315136007019739104760777625883665455108203580091617487081542330986932169481004411451764674981030323719463586721216876968791470144296180153372072197316108994813858323643930482975187876009304187466194081091384480495669094956826592192415979328718350340415461630891884726437121229615224924688311517751390508964799871841022607746620414537480497690703365560606403277571617614113098052449592503036900575327464211303415172113804494765011454501267541275105012971200482784053278715525772426363625648859899652126637207887870073638941726886804516899589799737591070130666593975588429519631148503048930659596208437726558463051328196059278421959367349430221026504039990422835126198884661953750015431529076978695032095679941330285125799341584639441551666441419741492795940929993598793059008961733843031277196823718260887315869049953283655245933272121035968528214298750133603155775779133025124857472460193847592518254142649695525549917133125459929183409595952662568754722406594922910173415257960850497046988437756779079836885491436187102202027206911167884544206020563526490183189609278716640732365151869101033989566192187287353676979979675574795024761427719242036328813161718536352093138424859443133684931232562029122170003332028537239643623510910720329836362820642951323406633574852177974698000704604895617956447069527148469379745055349786643219697167037419001192408394368421769333982212294860310572859443081556394979823216927847654726080918974126822130874385343029766708878543927764467934241935594135505627969697098793054277964900335497025508858076398933462724635185164169416391415031855849719886616830992167592641411458996749971428427797097605978547614151205557390178946831851822871533416483224212752882812678847920215066245830907812909328895457017277763482408324819015753610702868866414093061969988772096442816828393006386480604719814754165524547153681299873018386802502852946349107812681432717356854947433836656360369980192902533688636837012171320438299173702740305765519184848123239153614358909489565328110009202373015305626393126736797976296370643604398088026322740277915621291763923157455145742128935815195321334401310562315322485513949811789662417602584761335682473732929831270302410247067488818734640635662536567825329444993897598283903246995193228370119243717071160663740447841533017661412654830017581179328283396018343955910928001764772741184155092991743364107502722635462608997882957588523828730357917766745870338426023416225360218807798369969802334010278839998924283266845072123251608906450619027572407193026892061150610704791017316755174330180428574929863284742791313772196787453428401027638535558821304983936015546960397707613294507331430435585138963378359844188587493635442217795380014724237171471492807849153783968148812218977418266383305661647189108374327103940239265629106190114006651665422448809531153004835543400713423116825276140324959003625096284208804273394854346188717098270466544544363120459187391975808628968434497534570771090520523371261737281961569365878156076532360562034906575797986685856242225664356331493142166256520591021014460682834945327211356519894406576758645604919759024894038635804470161363816700505203897463991680640506691378501513186895592310733224985893964941319640352480496241663972487578948112999165725145653322710340369072793560797877891618632962770443422973474294185317450584599839274337644175049907221585742206316331771252218469276754781383455724442910355039072453708965977441942945706792422111553522093868846084768869312245885235962796461510847777639193117535027083668814042234852951579277650448909730704156094726772007515261483372813557812269680124306191245994741934109553826838066603277406105990484450150975914980207403952006840956280869160174342115052548630940252452149029022847683063100273348854290565359818718495652983643502989381166412873806890049844581155567078568188857079590720894913552187029898491864578159749875413454442218530477095471731942312469051642337093864572123220334528749586468341406230735134050743890007163601194382188775310930916233320181581443966290174101597454995203988597565863782497172046880894703210919068983594498962287842400507026110598813671747203010557508118687397373490618527371104105098918310465157586576882580021982269138615903771701209936246305203181633241405996610771803227995321278577093644795196213992641924173988958723244952115204144400656178509229000093813848891340880509160175819994940061079393342309752853272042031403053087101407533565947119259347109112559263211339139183516839301846040771904523124075519487987361850388061236462862728101552819623721274320698001485405992187270309195104205828647717187322729572198684020326121480315349206740311567571437430335322477546877326621597995232425933627959599789321668948306257740923409125537422720353019924586275371873602927723559712940183114567781173960317634676001352293995524397151363063310459166271284820533674154692797648906034272116966829726761496594178466598745262459598146822995325907645662965394886099006090830608658791775161542441785592710695131788792443337258268794264489702460351699894291948088412720616690962282360019432699772011496345029057759779046135041451426486346446170820136784681745256690919296637967893607817203883452269240987131638101092388020661601810876604384844549014043752517815260537657309778756230025561059306858278442612711058657768446571141361705734529281599294189218163446270915713278283850245224321150059083813892009289622955808629119678217848538113576655616379280303068250098346770437240407901223327418180180110156979360063874250569840854967589740976697459801735456154657058063717780984296411710985900005631601160309723752336043278191911514997957557286657724098462073981216357575009861459273258828755772080221802541601736115500740913034957923098174934645148897801497942724921593875292731146993437759036762880465405105156198647330059798410933047884206981437864031219097239066241457848579470488738148042391222834562654906980923355967791776349224814526949515444041426744859555898148012402760965197414645985151858284208791909207849197136220397662190440626679554948046107822114900287316902482719784771190514324395355992045504621285073839880005152559424123729213517719027609143930232392872833702737461044860224296439276250223172809405712172964078406475469571815460795087050164214441886365569090851328590071751939571575954293965409186309706467904437213504870923232856541463580369781459506731275948883031220932022840875964317439975752915163495712660843097991138627005548578025868722222692044854086175102040957046123344610529706327783344405197548566465552639843707633710182876840915011798498980357784295559341474264147998146501402742622102218304770462198577231991307109179263414514800322854830378574819541191709182499434945973171694921654744140584378502209316791352876377929699699840311023347701933389869535758577002911703818261111297417470164079484356902316810385507022697728723158241468507050530720511320601474145448385173988185296035944934080536542101411869756450226454704308399749067065049404385408755048245925479942797041072871433507089359876030419328938073210357959845506915051265914297379386217456274763632205165697667924436628526628467669222101195532826996703082646189066744333803746986219144294937482293322976425335084694191914844852926519700763985939627356326346177856643112739043810063318964891277433182059432491409079086749991348735558543648934947588861244864157292228734815255902829681364836074298936402435590332649786044245446466924075883172544916797617415455083147966475275500946916986734744736792237104640880361963812318053514315516185322652592548347335794203141593065463602626373364883325501180780934776303324937532063699697100494761047354467536201432210775924551877709854477094080873148825768377633005721699560393755735325223329090055171132497132071760709510050170108478169502015669248814386231081644942112328423948448923065213172037938333970677172869676228741678840430136109777437639602074062960470738050923410479597803690869182386548180435211142034573975544467643989756762151262020376954470680631548015600593066033163022818119696491693802917342170311669208898344887248272467766533076358693105896517135314399035019707575726083677073109541316503276157041490843094298005711172308095612868251513856596261973533552966427387595267072293449774661840514826936155846004939618527221558969742028476404708596009651053853389307648522795164803864295373801197292142834451824194004591774910954597661085037684106137451323498124111517466669707745796752031511949800584121211633565375335960739095436122743623480213206790148875628228369888027251002079967297511689884623674974009196668362740913681780324940190105070559464066141580189342341914428758091316892063986123127535837295379062158266926993397853350453579348255635974508489118524735262969802206577904348400381650963526721869495549309111048488254103854925117436442318004607630928911040897964956831497799493261889138950046932600995815955085218192958698290055221362037237883050902633471233266152017540956461379003335353436649812556394352586811795658992745037911437815898489440719673336815488898564189977837496808239665212372869581907673126001643584685253718523848028717912207269880136521029445627339746894542833142912417345800556181123177894663867931668954532105991974762546526278078021201474106081678295990985129662126524680968890689697106217433427238117140567750475614235020558661561887713476089472883721426861033094218396558541656714135238192545754868830541390057066929448005914017811116306764172593001651741747860809648357054012367345063902103815895619723253630304110203771549694692309681323689789279721814185462997389662268345004693279942353278878341227000877607718259994607393503783997655296415674896099200734273990809670570571768244188552772626779816537815288841574508319072636884019513220096832793846767259172732683644545595883539565820099855633482881499861889213124989086907420060846856544217791905030703491060295480373838364445307232058386975226139335379442209077081363116294777251626284145388698963619721332542499108889853022030455726458059067843540360316561807522956127446238953441561286409689914073403923256959977958563939500107887624303269171690337441902689598688912699476405594492700430062746538092409741556130212040120898868160639845844226711928991521442274278620445056152904488925141006363996534642132177506853697388972437504898728280274027049351158306438818200360181558310806875728959869349281151572000466864346792106144006472047227685173420415372606270674746792395048985778247189916578566131288990484741681936853097497412136912139240628000007697387702534405684915815445629227505480742913614951554845983160135118351435254747828768248084229084532624461207389737140331744241038057868418830791306493729863562290208230122650335704404870867843025684115856016309645155800087281840748208627696476595145250608811891130151893811985992468539191089883213014170122799272843030643563135316151456209425273096519998538161951612719085744684689156370294416300812506224505848337459632662945911223283939991113964449267320803318750191327457377909065258324915624054739304368145761932494195212653176698419363969195071005943845407855125802889297807685084016154013974712820372928730501971081770078149620386385714452958444245699976255211640048533955401940184864296693249274882183906144834309618099730355084904848061565722588939790417764742476620287858634605066549421692820632805664781712736620167974354783446670033890547727144808040856695257465838260864893380983316087012980461435104951990514798267024982469051617069571701019632160245211108248396913498265766135038445774584435614219667983119348709663387727225288109072385469058247640831511099765029278640280545218978461531966996451778173870906021420134558074588200909549015368943570222005331490927524525844663994188716950308970725340379493309547875049491178851923900921357644849001083594537063510482188795647549213500213232840138510585509904284757667590556669793145740783126536194494982196048874353951673595253777102735962965035911357189952994798826813498302388109658753549264016655375885412181425640984219502532392152739591931060263154920797707284227976398289229394570385524635960748401338460030918037632985264763100208843709515560427889718214511316543830687104173753977866068267858086486991449869982652345980603753335723459824246645088535520385335221914990069925082066505625575655546893477843884280023699328416024959847434031809497544306574599320133424246003387080198073494548228058648175528938257062371404276090701051145962258024490529677695275138761948843134017393515388476886571939453470625305893260926655769033824687156168338924350430967071989900390420248270931987786147009150737022475189148511754037269094760432495763532209634609701015154957746409871590372826631145845515253798934736305836202995235595120700144590205900734179778530537478850720165900709205825159853158980363983326692974144341626722212431230041490371758999912502329117864760543724112679663806873256055608208757094194764172760050820609240245774580535423812666949365764327473002256684821805187836205085962711576600419051365221381646340727774702058612988946243301489709446001258776271281861623522507997200914628438550193632255646334325045607729843569368855804795392619664541991280249438370643512188712087627568792655235515391400119346604649278586407522878988336107765733617970915320315684609119725031946703093370378936016353572269615928781072918756342002992192529633860029831698687164874378121780725889990760342964058055973944817681423978209831552552474144063896710410805482153547743186923484144796377526028958699828606465620231147862525827899111035514382068868122508429068413781143437006605514911636233800752202238380908218901248599589590982113303122153667782077626423245714586442097573013871696924365444753037417433290538795383730460181791370441240830054061495249421549828490929556029869026926809923905925013250336423530434436521936479041595034840565362583050053417325331148066963079009794764611175850508066122306331830774481497674288457344164834268146885904772185889268591725437336055332633987784039304203526605166476341256640341204103750189709486416584530051313616264373927690877288010077621651239341995799669217386353062301804329357458427633076073335512358089070582954851688918539756805072764180025386399275838255883376876321149573317419871739930126925586541766925867516048951988736215239213990744945659064217992108792597637508931833814510813252220147139077143271022814626257289659593229764617287904235258277391307764518131419564691556294241283905113305330100503311536456302853610369316806697775535572172188209733549856720299304116995493767785962826479746466557563875261722702248542532851025147810293663854914213322388105639639842181338747040936390870305482579714474599014031066746397064763246342272932502336618237587084793342006013587134115165853608107607929916764976890527046728235111163078678214021222476050068663416783528910228793684467087682454491773369784700745085040688158048183034950626206447753468478242246512993268337169569925552909379020084373837001550141027669625052144529846267841779846814489678073135490123557529895480143072610161438491546404234966483597195136082419359761737691838087177946966073913416309079168327218953221902368702013867205047277228574221277170090104574948448795826237918511258709151081297804306674572371629964440739081971664327370785557022832181189873346079932851107226894309879582342917321948037539411494355034576042844530177892699532856693299201222043535311338666015857389289335794715834970858526354220092628921968300904600513054607957364269646549246262586822930956717229749815336807286755151909488256417840875187991876688829217036856843796109283915866569952632919615581693000870664395209121907692204340701180895755674254419661102361560327665332580092803233297112013486401327888773999546043525196594514581898045520352367628384561507789091088760292537761054621194857927219111426211693550271674091606724908304312311041165350471663743373162194706375270735199069644782832403526204289454707649463711006735287610898124276997396131837762885013796461887665116555356068271333489359142856397983520164695472404516201324573138305186371419181713000224900214341436231936087246372924944416823649378384497582944729012963616459875120181020309632632013930939319569606232744923879003352468209531641046858633477482051772946383937653383499734134705628106779678257652534658334407061736929331609750901357049456412726467507448684094714959121990289685119507750079768422375854748075314326677403692237556461753287600019842202095319680606353500608714340214317244025823468089810292225984998039052798898147995491264570931815223394579916866052813707139353668552605065732524578700359190864085873883757354612665876010080384291997327147342224803307328871594799453365701361480893460918759158257068094796758480625567423496885851773451234953010642298808045811244948993336460590818444095222495446251305574670865455183416624499995638024410520422382122706451933897536407861275356243005662279677229113049838264731213024959663098648470151761022906947605220652540641376315269627616275788421963669247483339110305798395776181055903489909485172016340226042479454998174596559195242738810887020466608516738773626129819948542562414030912640817664128275610231654270930344269357598858105437928273313685896216874055700821740508519210797057932792117911889120221128133124082927015269580535926350375928071755909009986811864041046999304976271492817506055027632594402781002676404099358795488435070554064077728538723903987878518869898935920646311596919438767514716029618902947717235709713245598846449143629042011755318263654660599170444656435420438039992600871933149351721560408083509139580095683461916134138008484187488074584782271434083264077828632860741762279332092865427775912642914266021087457753926816025583935547791428384939489260950231512315026975052450727924809130402456691777385353527634444772991132579031727311315940702281225970712885610805821148521935221031392119792258132547287346131447990799066913955702122128111515268957545415047928872232482288004547774147484646251686663140788750982330477931393076138759193531429799969346965325312921032893458431257252437497792915285441936239329237552150859493887117138884261527135100137773108038947422275825003457635350369838917672354789302816449054263575225676233780760483229349027802981200869187488682406383210079317353445489672725215882232528667132502017337172695399455308103853252386106966063655380643384636056133616255647091845896002074030125188484914101171772790987229955638455534939308356757122378565456458992791042956761335877320942661365597094255955267257533920627192979672391335445881974351015273423604590338653419411435297620051170009275792481971911886420891210551890083626783073677150313362626310799390574469323491998371499424112255825345099889031393361014134292053062337641757147839021840975122953130266015025363062682205352271930384403813424525900774803734429415961732500817974011852361645230125060250273033864520594631605909736787082072660757135617764028238233827917223754700753178491000054862934465827765762836323280926302935960555206705415472633447777969624408122574381671525355675136687423360454704641814944303167673047764974260956758110094382989324291419478552071514991956052468744923696775810648723538813299253169802145414868471363380625778901655905169158460756914829764773713392741495006097229458491922750680761799437227161674417452844617681947256415217921841590858953456279702618990410865326808881169165702855034421203700063458662991931051785122244899064509699016636823315954263289131098577470347591252006084689276863057512294212701212051864507446691661549713783274783518338799398152745447572420780765757309925369068167040138066841469878870821646983367195577665966939329711898620869958985978394402853638363830444767648358579856019560688642250751274130843102759833609265644182756144455685871993300161208464263139066702138505139606713173377832672127740646792623848146884068203250863612684895569030367025120276922268472801524004041415668541527714029055469263625437693884931611665754401635892167530647873868110040355906618739719699972926343684621385086711703900962989188913438137505141978073336725935063486505234035751740739410891254320356644755279110971258747038794021962044787655445852921700242759791769739175860217634656866126750333499801644287983390506661803939399863528924443090983182212538643477502475406160660913591993876778127438988942291556252066429244362799035218522140824635221544864863035312439080292458361994144495563811991946473711216834794020237606990248570117538744065116906113438971811810538577415956323121155263579162830912195460445792983241640300813771187019085796949569781850231902137313137226642766985105482877668841677846368085821393081565061604780065025622584681400678053974761245480451010372750638061128362595430779537342421177458585383449765990665353044861263605899013259467497073257668492841153307432690382279225207882223684757929541337864198855140245115920368652851808991892146598465490016367241850607212996118107320437331528713245931782062075569540487789263709238472159597699655379524584777292944557610002496747001522021485512834006694461839801691348841213133501281599367667087029331262718318999313322264198422623127299510401632697934355227740493248890156003112882613923041806309356703028234084710301067516376928373449557630483806167238028614441418723014399024690402027543800712392995247943362228948017368136176589726541224247436525164005700276787879464387604006357167042559752088511169606508524750750575921262776910980157489285256192336714975425880099103847327317003931726168242300808512333429068260048702637888687766997011516171485071991209271828773125276410556927159962527471033451180174889030194873521167199364757217071860315879967367825026502006936667509098661090070507306046509684870389726142604569196131013984816034842606147347439322587683040369933569677278795446634195290929752761582018207483677434987516967845760912332797146115185298199593331716521043983464896384363709098689299992412802592802278985578983214457166830834871378321108256455185651330222547630098855238998624032565588693456811523024996631446087743261201348271697448666388515705329657715704435237801787456944781504443734284620926654560255414200381659613790286168881917432026285295466748529438636275161340460979289139132139068396882762962533684783551098749691623440301315821819485782965898771340384265967721036301143354530322384476779457272084520238404183216015710586292303507847078173359665034589785929879805185673597833863175160892024453869224264093284800536826258482340716230128657246703321533045696105458628563709158223760607509696411986596737272583908674061290933033759644096070128133515253238911387437345385568916421405350625463474423084038720870539585473138868154999977933702363316767905654534437096971405500454746989846126708245934890083424802258126741639829547844815645942332559679327890213058975263661180498852238182146317429987820177877620419012522753912761039285421085029818278058564617999136192632390719215487728750763054221107171976985751454608843830852060956863328688384319165916822484429236480473904403483453530590958111926376899843180085094960043824161823189161888365511674578859497066802096360654673762700206992087495987366872396736520380297019803755420667165998633727611447429734222929715259701853571853334783971333621956048637469048618942336814704642612081964183584054418112775954814893462367375568536463225640832091129878939762944513687771317497339530945039121427201577393031830079194680378796029725829311004183254505981440682712705551018631323463651213276266938327377298174217688952815037366930834849208049928354792938339326244639302317838030503773411694855865063886629256896038047728883354729853698762758204778109131782328637392582175521356942365710651567274813497429349922254150138468557510802003753672620674472913718604348027621557767000676700033993731177042812827795161189167261287686650901938903711038460821800625715173227206474664086038600158015751940200313877816062601621123787037467820356023418341017158380216771260632034230113489234517138404890891353174843925816964314185848727116373882577110902711500629241214434048622827353768569668313463176461202834215506302169233687885641716731343760599264510931683533056644775809263239482732677550372150454882314704522155037770478068895004795235721160425805151421221449311737023190572778608709871200931308549388747693960090523573595409160785167352361915392682528437542963561616664540173333013524687090250262483693410723668993159570009191487914097231374230145433435533421756512457086058012262835929471496407901577617843168688017435784814726837497942864847409121773889096899908143968319463271465833904359909319847269357511370999128437070174329196273399766597714522634514300728369848337787310296027255590449515753514383340118632225804185798419572382665205181369073427118798642176951861574668934043729676204792844047415979823701243676496329391490609403750347678753459859506992201783728033363191856296419895740441064140751274065351115900252268149941368160697018505815931381420182508279068986827079973503550713777397160259015637518711443136741610194517583893945973606464703888589317737964339602413610744773131804223643368799773540907471732564027918776525217233685519467318589038658842045265122823052821740277964238259743013422722215780683869598496115445701444542972930157012743026486827454589897971279487661326989315711643171173037822362598927132421830831282644175123012109117002939678678171502606595261623572731742243474254561196010595890836499518933976733403629057630199607743316055169849396098806173270574179832882351078081843735744313203619576208467895301947892210317121385622981450322390512197516124813270855459351910774335222288014299469253372310323275422974555995801304825328767703257819706292667040132478486591445799404467317251240821962349996154396101032923481755445487218113682169397056294017250542513956381192726890649422826857940593586948060782717760398121545590163757404500610526762174221269402908053482596123424817962034302372217461285761273956749816384006863536767004172659135487862593562765171973655687776537996949998163586152794609881677400958863216350182643947998627149101623735272041403762777094559426406532121475757579262463855735260913874749016870319222461714131548670076580177065965906283311857755197659774270725502152122820714959907805623408492278343021868820957484473579388521127496619528442488583989883257103792030952539133399785858531481064130031028209345585117989320133938868775750737385949892388978685943440605922600874843576700404912311277585781388270898507118386912256158725653734485585732196947458331408601490829683168595352710286582209107104683592287584099596139239826340441728575096421136342064468543049996564192910573642498557665367909150505552751090775938724821188243689550813466911970324795448790082114647662258218620102095264206509110108793315180019258617503131103571033642934556935984301771429786503003415706754153869779212046903852235775909050137361211128204377965876075300018090311532921403414273794567199612385266027752701953905454000432998105289840519253828372335860132805910386684000461785220478329740843653333765855189837440121074429760141766887479475356243679549406295699659863567986610974379097609691182910255696105742284767665532736363590755458026158997076998921755496094580674536981552731083822868766593412387831739246965611102169865810619286325631508730912651592459058644504188427317495320659834478552934267830372196236524150493849232292220476163332341968613930022289960129020134655508953828174654797048359312731813078268961352071315503256668810545287575472536917209859548553796553814488294460049897184398946489605100336253488893927255909017610362969729345220308862834669153721211384903340168224713229188524244726769413709983174494100035005835202203224559626302886682102176226174804030534336583670187817588687699241541638555881371820992018142878156531371953788989961183086427640792460858599936762416000582016999152510808858044851441496763783275731892539529752123653071382643189822185628789142969625378253625560746656494142728471517628767730982581817908334372109503981362290377186599983568408686772727662630931584086343404623452069732070032928674371374363997971458697268418428144243638929127055733858042875210461119161819586916986142860645700510460136176784914145614986710399234853832041630909095433013117523944599457282180346713436062843828100751214908763069662456228322539383856058989762984638939541869322884595425066658259255309162464351755083033256435566440657848342596494823321638146103326954508574091946427708127548161122781608140543695592349639209366059337365986803126560601383345363817649725754143844942221926611636499909308894100508769465838192565297276992178617087554528195641718452073411501733091206918126681352529365180789863927150174861502406523287391999541237040921747937823509839986965023251027201299077933849629247292639013541504592532764288151435989237066191616406004668629357684119218854032471614762393056085166977845847171521188875511059300773348002263180163319249363959080381400612264379908657652655173691866688358059566513262342465487185739723274919340397070832516061945006956195518305616971927147385471367810919093738019593034832197930572128545923177179893253721843898892936934175820953548425982694252931838939975873602480535134697211566089342547893009248071239043178778143648239186447414397639650343455677265684610750102543607041037406577878133467773497274904357467011536383495422684704443069976004791091303910681404353950048316880840702546146379235482492278617058902980331728636348970259072594254183598747557129177453636638809371771443690187311201351398414026414070319937744044934918934966351116147251377747920498610457486347428891972964077207683267609339554173415369573069321746038326010548697278002593489350317101571187037149178259321007397438882737700369456315796953404556782453502772187682309022503330059431000588366139569834647591059916308492396527465731963828441317666955794486988212246653482421805390106961254968262601824053258530140735836588141745758209824859416233688168269339875212674363778544130373876713485288485982610733995080995210349171610175506215813084961184079460900181666130827520395738575680657188660351998757803578262457748620969325231336625853134563359111327652337745516958203448411422052053450633033351165237713138878746264930336078091159884166852916053037072859688631560023518267780052829770079290245336512452212106502959935399605186319269739019557013256988894237864350375128479476975321308168803491636883882756859469923103120790649065160165545156450871797363008509160355312305473489277162791844198228712845705010453361760215619803352717572381842190812477701495511816991109092119802327488522370801304141701289875276748154189042848312422441844051713044295210410464460684826806278088080055032925668296128530057897225323816970675960257654451752007360835440954753160552219915414368308809460849265111022699830227329870754635840281811550784891396175024001764866411874890681562897072012972757137407937898705379517645084823996997466731964958941435682306269739712381726365977517762943011408365493197593082752989046748290929667469924534451252441260636974659113663936819948057816357861716009764660227906954361420704399367775813440512994349614998168788591735697674464583339309166408570924235870969600839632273267110165326502960975308601727065051336284156829485589478316769962343576060748424063979642272524546213044349548654574805828668123856585152323077540508394931031810120592485067282428665208236592899987130018505906240176222176827400540866803653512163431061982827652796421052088127702456488371450871567364189548910086227272488455050011816069569670849377071840898488798586547842977305347169518944007982352480589762624974764790566594884509638699619579607040593275547214949875854764720888887398891417824939038474901486014662414699839544368516419380102412993390215847006311012246867691427947995490921841229989026226374052398741478718647023539354288519659505916426746012372573303356339417356891004528703557215392728379546251844852370611709086998514357444173629096311343165285150513538755393477537934785769369820606469720719593384687930243851018460106129789240755377913917991349933608099928971959655996051361989057737505686288885417365656356433440718854586056926528751541553786477330444297905426147650052859800875060101582138142468300751608623138540218968898404050233911026378633528792744263896524277465262053618230588665523868023398038744313063932566811500682057361561658558014865196861657477925957825817919596381529730152103606852514192251688096365474127331342407750322622131269930198083750562715127117286674919371116089170999837642113689293755992524070293195320850545662878301660333581433433157828254117577471124426698967753525799672499914642327606309949935502036688001545840417302636743937470296530855824566837789236460383575051994112886626585270199734614339150896863520306477320389124902744718330125749299881782043727349064871013392701101541780692348226587640593975239818829424786364847200401968932053610176150835700072179643632530875195545447577884535314075703366077810932780123110347918611865543583180159576390067138450745790843474210026263814820141446501316137247802945659811900093366732940323536050945122466118880403484345629175297381366986416745522720608059683149815056768666901930544206644644086548608321588217675455050150120774792486690978234805248207458743825585830587791013994238977331083429210648101570645562008525740506426546586305557848408971540100530953230647252799915950933846116626282035790568217463278359068982861716547533585168034258341114999050157814114154979124087272463095604207499842247820205764558942327111024186412950845425507067925500388938407762466039141352768366957938885640289396082547041039901943218914383399615601287437981007726940610716934653628595561532391971812674134888024987539647708920432265297240716213237813067965311178029630292053021439854003083986186284944726587023326973008925601097494572866966185225481627104000071967840343369586596450227945728002989940356065055084279368513703244542237075959226560586806542985030925643664080550384756336685544299976076103333762615706184311320784472207943524907029913439377752512399480343877186521038625087512233991451878344544227326324182750416820375841020881909876970558765898409635879039495745665139027062919193561172464714114051595055044431264695730217150584308484616979873622730005033250880027518168841887230865426045368346822430723369177644720038219116597851447655174488397673529780706201390485196258601812250492993301597786263733694602463778965992669115399458492163377294620666170840830340530018585479042864648392318726206281368056471810708555248363687204307796610039486031805883722059260999423693455606213155523739497732136328560463782483929275080376863670960795984185675689664094939322804301555961442521703097856104831138051758033886163863835980975090958586141633456854195040834565278171725014123635792939829832059546601751622235868925231232829337930858385912709929190060482220190060244807735941271966188211236355220170415653862235478642225378493256966072500013107745416130435363337469076940720517277336741350813851476843657172844867318447931884009489027387171735088027878327841155716421101791056068645728092728367985530930747023940850057372096793050356897936711788955475418194352608435731994108230608253872635089478737209561631423497660991928364739235607687512347325280546767473570654443353288095675083089635844328127934971913280544348914941788014573135603184322406820794221923979541405918086548460973930749648392763005476300716227799026061981267319201293592870529130371472394330047801017808632489416991979195360094065335674644136598969168197380713913972587634193216185644750922876168383279829728943898890885596144037012930168872409479261811430423351065670375187276784011748179350375609031190006911078618033591877772775113377246384506002169343797123776144378991694821288995632118362542147393059566834232098652040018545309611553541747523806259646343588558463121774694608520015758352665435438405313759725259181782704715319480240089285125584632944298378640516661653422681021782746548673349590973455565008675722440415830814119084838920854529497739010515990793105047528402201409487725504476162249335961278795062290545549391990760913923067641910487298814182421473895593092940748626187480504918554706315802929200633408440497452525603821202407837388494153966427158366116767542107385079577186718610170380199189253403617875249602891633011586034148156471720882511307135639433102667034659138827407922729252598466971819628591555945058264743612508324811110584473332928191203351518326961025956351756119877607537600260577285334058261185211715165971417652286090797519751083520454261371093862099039250399314692262012985955874915102342747824342714077003550651625485309966948737699203199312708682329341638755476329721753054161301179428968203248322697531912793047010454614458276678589890668730617409403818474540797954881038964198885172099939692762257510464184306602873211087005896791399324797378318983316822790238080394666675991065385284267090576827269492515524101660643107165475579573604155773234850079924103426692016585869090385480752988469102375366030998441628596039217477754496072160651642952924905840805275931968982565204274727305234468375059830824508185045483113731707139947671447891691979979799067920486265019528711705575365472178362005526486775423212171353453653491838263196492091630940821209798240191615857834992692919056283047349397639000886585718751765871675076570690242858308421757545361766426052618882301064464812877822139826454755306075165673041668823104700669717587880901266153780717091777365173649888594335793906911067392092695193564327579564651636201109131977524691169841355101291903346982515291707073603972864617991951298050039954598186468456374744699128704348967832733050373463258921765558222177808806149068162462739657358402689063980714658606139246254083149583250424730047174015585065351572235866123532677358045008986058236498775391606640490056169328532295377408370998618611438117868099060373067703286970466020545589437379007763209231532350678394473098052461547905381841683659561014208718312878366665532039038222430405868725427345393536648591309527571281634918828316517498490680798259271491540462749510185548554976023746522213673396868804973955201116374303169453644829913382979284614649254873556987808699427146649323612991626042021208720427219359005687059822807437028563792151560230050731433383760867731400137602133829448251319912755766514505550673868582173352896761190097757234108173401428635837790942942869582321530100611060664460146138694643824875229928540802664382095854694333581451746982688817837638143226759412853029205140756202483114523805931517816489593877401473956622029274543703442592164681339229601568658622658508727903260688825738155290961661949903980311872683914015825701415648825294781375445566563275785265046001576556183002577091612056207723186495368989137376573949054667920361535054210246767334571393082417400528427000905729367194274441707576024623398361316280872282894837448635992733536861379842782969282775953902290791699584573565371065439940701333328356516885799939106027303947432911760838684728633489598180885724709370741097261173271760455890326487093288012769509971402491086114628314847568767874910019009252593523704816976290685060927711851727830233385857932165215444290128351176943458067255390390139767370309827958205363541591579412168029955807995648875590824897312848393463216508182313560249122579912104436940590051063356314498694016091687029806600163369461545384851454907301102367513958662652203488406296269071821264787604408612415354536692817373519999134496035917211955943122133660183536232743098568235413665612117664836581119610413118365697000270968374658712362554478525480786869902204241143055783144237989249614840763583086183769908747102316898221339376662216888603842272272054870593978752686518308332112898122652218704189301481905716308483031739447559809137884985585344026545299634126216861634657644942878788986955079941473146088848870637032733077647293485167336698621231133041317784390633653284301743576642796086416042772240173831557256832945595222987008999290341083649242223655198598031654041212059743608399619194801419779039794360363516394500616780392296160432052830320009817229033631675443953806641743300623138883566187867274049823422661421795952651122881240091342056933235600243250945378627421959523392536869938452353551285024417647388938935335761643624656595161330074520205875949165907636021884106051867050603810730916336269276442839280278262775163327462109949330928610192559618315377424559038234471880021150769167059234376978970012582726864595105506094301023455255586449626964232392803058452802633624125901487636660963209966785565494067698533578477754270755343355337486344061094002925099437439066524417901331325489765439786505885426907126487452180622189669990595548811878988198699477530010451459032650795250604436860861587537889697630679147787058640910187217814609219018488390233076138542448263020775976248728134181540025367205852944094923149819931245436697303502549254199638028290936460023598056222580459111353214411277439101641752349886969756274495259901350092398910992400775636352249143412488371456041110699903573976955606510298758181533332469639155159331334629301822655312608865279443817786048778620752568062091157032700259450556977871522633769359819628254766882362194613745527600079479899257493606450261216568110045428382023693565028084259921449189646415336879842519838722295963656196793565427801136681178842046400472168692050655359962037683739861739971906615293105436003275359526861526904880979726923981592597248197555780022713902397423911286175000395476474206353535806518197449484426449557954960982848840518559175722768992508657924198224115534496838509225538235915377627293011814763279917540734548117249931921539244608255002318330066090313528358167866777902849782659323040431190946830763809765931850813520896593595837721346635307342535047691204327720834912906182423053156821354054342692798920690178714388519806871019908838882464055382567110158526091418891887374432662198776220497059166893879073752216796838737114433438187720997330668101573488729515266001470602489088732368003412634689547680261029294535288756509759807519665312922636178048626180785936085693540112290003002034057609345832346187108659422137192115674771873895566981537053542732282669304741970275414038731619457678303242638508281498711781738179449932014194758032835884638196434111416614407027333520888523798588138684461412745991622976967933974248024496343076992062730904779508651192629624528827336527081634669585786667427817037216390242324166902436961567667829766368862658440495745095638558601199105766802895216486866315746065049275608065305640284156617314574866626031832252189272895067349004866248460880749426134120200256556027296087395651135705256734024672960302730515825981154733189687353919871502557782692153117782624662831594256505486293936725102205152276645769199338823005286550840919593031275333009337854839522562949013652218876291317323108186067115920451118716582324372636355418565596477207010150275341219652581486151042150260179554059564318548161823958196608212107510186066532036962150905128227307730299874472355452556259836317581937884293286136295447299541264019358887414336602283266802834742503242914055034905025679089092479397495133035709803012502253913532496088075146043494729152679499425690953836872280846945527371661220661765790349313169579524978808419280878419569000209364993110334729811914474726451087435735651145425014025665918718401076597681789223033602540712266045748407102433551727013045080932289820494656056089341034022645599177491172992921037889184513204135670126497081980988341030785487828500934376686347470896261274941586332708708479174282716154335215420037468530047410280081160432650211450316816784867999492494096495225494196376242237619632921050538189189059583277372966121312558082183163739061827144310931203727644430805722664412462964318270948954398577734917676961715693616291601689173380989912305062023811517989820751761271538113689509149927291087543108297308765568933196715960631571044464917292367834679091292667591278339098820013697925921045507406104348308309652776532894863100227184888828603826873992369855923238985959744808053718361407178158891416282678905805823227845280365445117865442913849073616490191718111567114951642522150896258735236598837889042760343433028245432495527957845213808727946495818819336927588966016542360283004017624834253990227809650679680628048490771233321960975484163120261282904399341315488372091041210068770229232580804757828479709695567884351741046187326220744674702797400018526935929137190386383773210420474483605421259394866594707469672030791928987720905233102320521102178019337046301817824856128575381687842633291433806145786673464705012694866891693942199097610742351509181449468418382847580338559384186549808729234123204366305760604955093895932530915615330106286415369735610369730042833179932286409547348997469167984244090931286078240050917676636239457557868470358760878490057926768104182747143920776565279521602378023053869453581935078105163824182483043051024226701131128720467137595242444161658858675716408759666375182979431840899265580485284751904413666823677555539316465945417243483579355237377430089844033115281331583416480116160315422598736698650108662296058192113358194187079809537405141093357197797907008689155665669190637919417545525451951004241634916888698345840191863334152124240403225618417106987364217303965498811841707683823734118733157332633158179224520817836248620862377326483830290314948994748827017983737982194408781738479021017256921475178053326317670892893291923220421045408034449317381832712188419867632037697391154728711192631037606369364987990470529545899814719821278058796192536148875850633767382361741013524584309999721731976506085592326909019751670165497936776746886578983009615933524369665630970904431974049174148999111534569245147458750056801393206427527189657646335348702641360101277786222935261749664074263482219475016067538189745709750770617048970440250873465635635233749897189029208705858744635863610795605881735218839031349545398478306591608351773067328512003222623981802076947170295642054292662555635541862485177978517619343219810564095542356257384523345105374573818874037421146068834219826635128104000729124702797463386677318180697326111134346681869415543789543578346657772671735785383275216414451410706839093377826669122198859017330770742227677777834725566414080690208539825838332951658785978770199951798228478468500325280808514774956186315641372778287903907065488954945881785532844612126346453043893408917680845482754919750052427851585636509945752285917585709854995533541856835217078082026355281423160662864799001270453800522132162490667219935868525538035078071359961969905570059038851820496001168990726757180604165412234014959166271736582254302804839607402434529023146914670179433997731235479748992040055167190217110647498901154780415903803653246190960241530077004022950676614539820585050869480539256268089739436638769867608853653429472548196522411894356904816556746214069633255245693833098475607687960256437113036255614972452256180045800354079412629027639882228181963369182018059481716897438270342973271762612637897603482729261946704881616504080031388464596136160273049469966178106865298916894942247811891541174899746404727621584864690619040886493804626976146215775633376613976144550866526679118462919488559182030164240339286457744910813778726466277366766564280430455011419198040804910507789149865412255183623534974579538791706105024989701145803440764763215382817499967945477428787089116999277056600128390326047698664737535591773308532427504187499566815507879285869666658884215428673944917759113566305748104400621531156791129647381301266163553133204363972023210279682499567374086506750061199142907749795492040539345313071157669655943379978469574771680159115889234325492557590948000844710336140529815747344693679269676190589150485710684104669181013211876398105358646544562978147461610930200832832653739477639241910231414362982726790879218925845789881448617270768444099412878289431302356135568437381401689932285058973185680526140944451163944146885370330988363041169363100809520148113697724982310145247101020749525566392858173525065397681674987125059278545272206129257099234456823402709032733828500910231465258928129945682665980140806366686360382767052670755509189279793318169565825020642021398976186549314853462478222504950922999887596489819835822147365433988494599531749455287967698822839799827903395064833642126568241298513114999940696314503805244579779384857125082194383218627519535548130153286137911591855390782200652898031759233796102971743058258023246167281601224688005828260718225581102071334412889249125188425044717006416773327656580389844274402088143636586819690997003669134366278048477096214928270891097559726965764197242994814404162247381280040279730953429335887561101406513234036010485993301435566941924677948155491654832632751976990036897122516953235598049189424286057412013424015663082596458698799458620783681947741919086019444808910858995181290319151566344081269801961074828947187681210776576631143408305568423045947074475820875785772323484631572218004678718154627857246231943895818732539632419512444308746265854750160700006600897590466371612843844963843303785754316247227753846178743609508801482794981331327468068053320040861568865485482890391866724194436527870172386717075157685789597319117202663575112850356434442343338984038037318857794691792231838783395239596631110368887375243592590091567803763445584083836504190507105935776002995590021160753301038414141630670117625854893805610421566814547337857250568823567137621286357987732667593133557507213992985514662140740467687183891238226782048556211753284158676010405688788422325817775373977404760218024046998115578171651457400802524371007391905337469510324416431485875012494884931917671237501472189016922526372000270793630486221629730531953484650079488537915999435321111546876046166735896441894488883683636874542492871275463371560716093952972418438698347116166083937016022080734394305449399366826116270512122174874383889183244868345949957640960710384997994100167327342247142244072544018157138560496851337174562199097374480723778909877336814317982127684933572657801431883148651721706382157606946403940461985283071332832462656753171682578836601311921027411958843048669161048907211625819409021577122131177135051141444726765074167570753041839473799636540556487077815825204250627437409501648626956257835754882825394670111162432552685543439389590901464365718679484832527771546955572360974089365701681417489055863395465819049056467046157935815566022672386424541696703252909838386134307041076860805080036357004907029681784224141173889097742271746861268956003395979930296090161439230738290404908320502827619806963909956699991683147561830557865017984772290157980328815663708004827870514019350602626767810394560869962670285008925376038908017583533513660966448488846068120413557590254508539138320097021240738574280957646762846885824987068849012197860724351759469316289763676732948450903966515552223549827027366769702282545209930352476338303093432157649444707757933134063579197213959477393139881817113235705703796564760713246762771601777755140584646532232932298986907478713029083242166513295663036502554084946927633778907028786461381706360378530354449014795985291322065988190650061743544068083213393975250051320582695728113073736004803449764830871610847583679830268362973778393624945121497449369571675631193727150769618174392013510524692563655362733236972811226063477163349083608807952427839305606215923114272229256334619362409563660394540761086765127291632007102058740236437033121117215827972897243994870649339415969547866281144416801485177228871965175357374991378734606891460007244159709093616789307550461435331226354161452439763525777600500294948446297957037863394641268470907870259442390532920432075760742743207056469439498172748651047447094709455145611145154231076909316798590353336630500957705035352489949008184080164455321315213317241429606870852924382380121358312967186346842946287396229547232103103535910019402020717824551992640325087874996856850379012928815773415948664721704087044141925214474841840552762623817306297509512520761563646715519116995210526175941597168297788911913306951451219147844567177008533744094447768708680778408287504168587225285781969511024724747440854068285988654701051091779512540725394051716007985925989862322536996250607005731392736102098426833556289997070609328128813143959271408448820546977680681843330930053486587048443443167899292691486187943744660156709732195259561032494288144679645746960683726696751160360319900649914847236135321100335712191363195442635586551095465999307111984944731173524473844893661605781647243997362434320896238437111667455840784452122117804614654847692336853304905023588132893464105504299277313237887813648569342392083701365107541833762383916153063692825188005201358135449178602146905450204295465315124065838225518806748010921431337078326740387519166709132907566121698062775851693654909703778027190162539860864357709971340145311806240780608930975371765912314765082293730094383765604744238655921159784297697202040804131997958600784627451205118154261089708924620522322582944726854897025715995593098857504936128129252275933926086903480451355621515034276098503271581042003599698039199686919711709418984588857474406499147077401419963925467911240147338187566518324905949885681937271152741557924310326364701497392487985857590218400721860044583262960905118496274951864230661627717592247413076668651007572686260278283950839473604488516672576113848464587731902318197762001386457443308931823653445729884394009553885771061796386873205921347918830064253279074171233525297098254833958881981811944731175358128554347372279339874464744962643591732624853183035678302248382367013944146888523481936513757968369627349054430906114050405396717694529172726578553482654656442023783510157230132243151920892427712693609239228400565017506145549901664053700343376211526501530778228776807769076137070874266601021690591877251391490495915194301930019122245511150136819338147721898905797783045994121440554573898111603457816518923542787672026520068902058583995588828949704744631479802712835553609742280030349087780811560507009943766033009390521328980458665941369681480749392674729496332255852269724292027751847927414054501194224631018538582362994122678666996900655503763250314243637968909934313800959284407105642643078595579762826739113750785067972387007741946238592240562133735001326018595526245964505437873162458557817435165882837278626243524872443349133370920236073105414323203733435245549719545997519796807108188656988473286567420834438321957591967841729693894594951901869741331566799952165490710600478181605151841377094489656356230779284789903213027876211451770760024713611361843434004876822346291113571552529430431684169204468322319229178097579201486859234355490196794452579576213500099428140329282865148473609979623540883567641038861927346702403263804675460361060959527656784782548859681152007426660571226479335885761536975096522750518384916168283125895739333059767994209418359844442425347395706473117699511786826557145468297966071190012865890838278118688346453100299870794845097549646528297404774514270598263079263476827124918527910316770261508215203378043739791211858499860220419873305042677142198663845829378448025106058678835875350594489037702372522459965454240854924228433342127412420443302795393371257528870210810083410715288666467534482487415609815840926692366275249699529215810548074076253847168686593571364074206006293770686355716645867864309526664641268735606378406534994413796396795445480629956788909921242373393793244931551463299892621123072024306691153647479834594997086743843679531696189872279453381088132067721887453535052461430962318987617933386360825932865824099113666490148653492771711566716559906729289255284142284807730461665659604305704356890359226787343997275486507402043367446309821406918068002493567208439088986418829142018848752852458002563943068550647426203647480176561318515985241621508091930200251557331499550930054153289962106973442186081917475295492287534713242764221565489560760022800251966284853856420284824097949479399334098803638450060197215782115983796555850175287585582534010676266039553692755027043578338623884987656118580661400997365168293547318687548708143027372724720657445237948794178506523190367873408051181408776960847761777460078093261761710612826500612947224103099103756450492095278304410106507866764859208217539477484564173778139710568245590517656341904037984799417224887366134292732333058250657941866073420245412282630162512566697556935357100494137287355197837470254884121199715345067528452532217729108775571355100996209543085483150699634772890056007538747493902483461192180184699713478354428852728030963425182788494947927457653027693872788150723929025045856589746569266876656405196941850084312759550429072186094902402554807895783188019731742624350978271820147145469827381575992698354006470387139810202033583690598761353478448820997883679605743325607713745702764722987787211707940402995295893555602072000973158527883185870565952268752736274312130691331561708507475010279896199280773675774071473822686818627516484480836027354120604175900012907313472596016008865278755227141394295585588280149740513485119115728011571235336709757128957764290665112997389006460879548873429615079387525335256772255556956351658713200297947607122722338408775396490026424938509919767151848145029696345277502104579554362230502424898147191991693923961542131960410260774327945705406803385748604679156301411755253844155284886949775184522520510515452373409274977230948151583359176083022636715814911445768891435533065778285368813291848912315264363638696111965043074838725509779372696592972799505372594105133507824133768138901544152299716642652595975297294297056689537589860743317954019155160574796593933815379289904751734321643648804862444332820835343633476245373596406711962995215588933610172152738310921214573426749072376415658653109556925020289529185363275116348536193831074595158813596792496880550306875657281022961270484137432638644944096135802964586121203499180788125616057490557120475325602573790069582093553859705784296717985712758944285087295309102553629320136511873425309428909411762737021207632077725449401313421022110139304195395411574530991826207425316750701096797545704233208672904593452324389730573718749577778281596428206859348497676434835795120862809355023832782252177471412333120331278720011455537343820292696339424211859403060965760311248042467653328048405386666623505514858580769636928646362761185755654972541165746167182616035149797055872464317225924159485588005779144888809901482027298031521849479705508759931620924525621451530778778736289683678012946841699607415642953074562329666518666070552227768248223570588444050793318090242835187895064131484954683243401902222744100730057669389978162879499621415461281339619718550804720682680379126845141832800758548222405470284931481750781690509821137282966071577314696969438450674440958239993048432925722381918988529211801308531993061472419352136415707035441162797221656625906959477002155488261797606677394426284688088455030845647282161264365289396951086278007154045440779252608321380584100333172945221894892476387857139511681939866432869155163303678725421795260777395487292061619285362559330023307454378064291298377410779277092613131666417553880425370905058386141797815498325165338582787309897722900592072813326954923862805786918181774839364575576646388477509737768291566906512877248533349226785967921676513841068130465955794940391731823419617720143394716866752152024692294242284265704024619915052773967376972622367892143229544169295700256516801965873065207496202646670043870693010048088497846096557838154992365525760411609178782645917556112848215299550110764443987530060075563147243906525324627564860482456438877138968960138764407424676062976134055126740712216792557397128291356062941061422804766835124992965642183166004194073003490612078527819040438194539076814996848966145358173148097836690262839848173717430858496652261519259507573965407450181515542589942532887743723231086556404363167579214756618667814252852260909767269568110877887189876038615659902081904542196413536652637228953585786780376329838001957016991243180884365703350141257042033569397827724064233435717456675818201227769164376032537384588478635105187923740282643759372447103873149562626208764527064984000186335204099779612341132227117863123658314978447985817450810239957894090071210210104029026652085932850913431098664321081539511516360751163579841188511667177934755102155246545139146295643225081633999576622182576108384102186909238543429299601807545173041442378906281834190905597332196330080521643864304173639643600518019900478716368572997846755350925262995799034741347111107286800861556585360766758374548145401375049550191961417823133288597116096452659219507656323603238108649699813540018230542700732727038836067812672381720890986638955814888270381822329005889305584256669419537846720366485094573909022859565396397064461866123016413986214230180509888782601715703716778932314840402060609356826562340701711305316730165744541106418310470332766891202184281105906890043205588402739644908105040487276614123770123954348691158153154393047151836545886683494534547925254130120536034668553556458140149716054186228134117605083249652300860698579119193141654892297722442338231750213487788827689163337570055444468041892269137228982698664547902127686682062156024802938976961325042779616334438397291343292472140116316444661865725408753339006565220519337771598190206914599357367070775778263347156154794470070344602720156637335294320375824789843463595229659842354649318001572321815917329128988134508342655859282946514346715811835776125198025181437663721453504444625402224692513253871870893388005280757364242646269480876797780936275172465861739580765231073422000497544787294065851599199432190378575293868610537302723557436301276120670617309022382535475561125052608534390776944043962465363598841473300722464982446162740016759138662826446631145356353641890912425160008039375221558658509024565711654653801527651678366604096424241745786771406108835549868766124590320281937899853472748315686890624053097810713658540474667773416027264654945464778845014766242597135964231980790620940522743295179124643240721893677043706735894708972897664733367130364577311841296944701431919951403291903320121296483512549784530982968268316723447055233094566355180684927529527337866479917720470735674525781769493992918876894004927850983171421599862593145795889607777313711388872971646801936309017052695686246172002354546480415593765202747390473902499993577414568310332713894359470068654103523767571744529629150956919526606217730251940933085691530096605256010955467741712004635036511475486674751012706322094727211750607840322628346157294074814683548428171489947124842836288802148903125481341261106957927071595395214564737940693605855621708689566059952337913958683293412250815162940753852593622016036405003288266138604535879043316283314948486141011557857868344386232853256434421856389401289485882352547169464911349835684515283933561178210780151741716365835059228113240909548571518096461181237484598417898223453486824258436250316733534707429579406509333594111681283210589271835098777510392177333037762892664541587073008294220719516662371486095356771886481382984713808121815625845825393513065508874680391023791470229181010327980964647006209528664390939242157344120821300275931396961872874613930274387697995914569419229522246398720741554624384848946174755703629590308035743106551321041206123146164707521493123857309535578788808630921941400463587412285513217143669075156686194717671712815115340605840029599012451199349686173654767541790737265866515034503305632637211763582825286312835047116792889148929249398038284302599750305137596683546053523977183125312411081653826972602322621002994894941734372875803058235716981110979118097345696497223712346690594203341981210365670842298641051526939543315921023293376961449817330156237020241877184305394158872900947816150854514636922464568614911406851418465024283908767023212220990827022769887812446226605682947694356730118143053073844235862382899485682812549284192324372121458813688311237373205291371833529222005543961433479988593011506139263856366542506864885255490135520886331372379341810060976830406581716137202011669969724585567908574644531421179887854842534386249034532643134691652799826033587727542545993139065949729243900841689598533233244504471766729890595750230686883444441222321605800675056361803411363461947313879925974321931295556666526891086261651088331600904649811746633553839045660448431827403389236947328655414893978253695551997152476514907480888911619503869312235031264520949928037029170859937090738692263862266316458786769216383167131500519680706103911994539382449021353527643233181438008751926486856635335318527364786242916244130887078947723863548053335022254360814405510802933448722389593799718170479820362662828466415334521283467323776322827900021698400181117299128820096552473391359992195300327459369879068799922694195849531014061089786364674133963627019044806550083215354003681720126532283513231894184908008784863852090696208547763355160555206444070452475864824826773929031073970328820387197750025620022455032070947570405981589347313742303013852891343115879494116192227992486662441713197059926669542435087625140593575309081950435068422809679601739097780039363052125976184174029857856031859974953348577331638380108051716057236310562093967035488977210320799765035250730978115073359895326006607039414214466275257535512813819115738987003245989891558805416709121908928762891473163339478029191119877059182125121878633202549540443978559363481251146368610392189987005251332301144954816519761013974007918184246963899182155520562412176332814339403942198456693087490086150682734870546964317174266314607768498824454956607197961847195478618467488339233854987000710074101919083710315016745416628281229594655877070916784494466932831795260372479552217698655861739794635674069072235660402351245840846195414110866752713797824904902588692439844601469437298246676744229934315477996855301486905607694881484160154892023696697375536066222936226688589620065667465944751112388577318845642622137250225478118459502459095483205643075055916937224989667427583636061882839953212135396542442841389873850404586715789763971349168582361575854948075955178167184506167515769090848931209338247292978106682322454854717319666408086319323303682557651828227318540103454171930148778140029099123032461204541659615818100937070382023363054915217633490424776440959805411553629701852059328673761715500180675501827165134712881241497015409983091383427178159278445661604192393882578079507279844933884927985986776060486263165909936873119387880756333228228260002210047783093594036350442610230535837908392440664171908443453333075941036285858936284290431719229827529511159298195514873620128867565188194633540107671923100972281940435314892018174107167179720314600180730398165881829036502471087956540665647675587412191007574525097875177466465416036048625220380783078057612718791688577787340165567065644593464771307339891431608909315850483837141707351871038597198369900490592929241718083017760422278107607088820195776069654140300603871685873210238874591149530758888837385887416128133234342953417909603815663324608249251412461209478493253321080571123422093437036322029025064761222280034005787688969169738871203847307517307731855507913624059198458251834194227156048152788826799336277159102882403315661360782736098088968995320264101846576630568894622175695664592266332078915376155888995486326168967075922481648119424287739261103549315446239997674642424125189622664055669270368367729294482894851607970514923005311437421285528265894093130485963858619695068399756249283400596327964159983981836522017384712998695240386368179420946734583917016551131601739609205062650977619718827854238891971150210925930557823968450212668719247588580801795597300136254076088228788243902760756995006070125609896076821998630308032788427319378657745692474909319317407343229485462591201618953959971966576217903259140099074496489552296182082063147368647248493525761477664503573574300082382934740504974271469696910758988837645774754754831821254145739997743236082311970419780471420456995633468198587557165223221505039646534429349149094994406315611084257688162313787078778398749789889941875800344266457482681867088640188744688870828875487611463892362325465146764427376404546993466048701354321735007725390339830797594919811465615097092058794076971176470486889985455344020844706128154448814402386259440937829546229915414439167563845749109162696475875768211818574907699114559941511982899189479848331402537820430301296094758502093928502036304017404412460492049838694338407812558599007687307642134911765478866085750753968464854732579431944749324968845595945095975182453340051591174848716404669275740544323037898226022038889309011241258547128626372383168581533001860283095361932697672693438410958422901594145449185856800629583063682257212610361568471761732295839649076810645754490185516516196372907613198182882164938904497032254966054124110847114207692571488799736589015352810958513642041122015099552158296446369597671276306157398706487056669565325264056825540798699583939290489817739327693855996387789959692057121279387181399659059965682448345777721728987487997503452462216600989078602058863840756316695709220934826159233108688133017013279864965132578020158513082497067540088656365343301408449894488351733156702309587080303628013830089117266497652634537980725312949708699625168430395127725396764802254153975811025076682886279695380954926039658077449665469180881393212259906224415583049008963336274174561284570039394718458150270902473466652393880105706465548166665757858867930859432713887873558653495381607425273336017147267496344357936008455036181812413972935305451258940499383642777083902099611029177932352474339598514979650045336364706017810009904831587453848113388517367240392692203109085148941336628501447087737218399249009215496268963805894929612024254928369094400901889138078781566168123851282791917068360693518544741919339108433630094313543392293746203698618427571959003853003746244400746375216936461739443674321939186369161755628570070970180234333220824773229221369845772274010428232772535786661829547351459886505713050939348847230770038521913657182795934992914189433141731204299404438279608569198101685724827901308683816954826644816688951446764877535441440885177612891765083016701897641945604270221496201375799780155196919544967914652717264157824756716531983745661232139194727893883283861879804829866923233631099999903393447048626926583791292354125692443665763653014497860914563524669225232519945865021912756285747684412782617210198383055048913464544384813786318617402240179420185067078612878180957291632080816047428582487644969800838750773476803198487711597013940380151054115871520207581488505890657821296153554175176173607761664319869014253476992894728270222837820904276153272491525918304158082388719305087256520604964355981650314158577439133645300917083141917165008212664810793205353300315968505516031722839248669904659512039602069442364173227641911443033540277383618719993347895915725410765645812106523365916414005159867087405580785302524443842869994120400706660665347503298104423185673920466546945249022277533833022567484483796657089585900709172796894213982948815029400033196693330578568337027125064275408377184544578032667249482871058348790124733958186226297883445991039871473396493998629230842186334887768010270533332969715662887322064568480658798070303112909883709097647838349420278515267593839207830226154526256022134369373815139874532891527164860818226140604186989211593138972911738494108272811545445301426207249773476259274206392161150765400730118547219838377918002542155702079974829294643793512444293018800605714615140232186684871281145645863406418634305563648169358298592525646331801697781571461107920094845134609493289741463852887968066570375980842462017371531300130908241221138952675841817737353985906702606102708212065680673346922332626296377339943921550033037765727027778867032617443920058070608473837599309411680448130032690338306717800778533184678306529521187066018527730180117827304956052665992154106736173811160246879102897156331665290120296724583158071741168878510185810012606481096347889559010120675957888671965390730620956261396263714524195060076655156428530178622384630636836243975308765410704000941226989629482454735350891520499348712088971877710729666811303208196533009481232701935563652117358355508764744411273542594516634644343032732672025915757052721913427314096819502154351513583773956592283314393393170462352937835539846977083318412925225402896267021414112696547041583567397772870242057644447402518927223583571856731686105162856727705730672675176524490057141355552178670409235628630600947812885476355632975972041686735557248730564144125763984414440735544255596862887914552755500232895562253279491619868543715722962826068093551755104354181268033824594365700776349090067818151913285982716903750095632498204188055431889602526729801205465608010972391557303281754163732340316264329184700821444064247332692580247041837351416314808303833953124628529331152810476959711284754329686653879425387331109611038765944233328994845707878568216626170883039083989944340756535064890352155126042094860694262327205495083492596503315795216760655798025128140694607039703533228213520841395437826485292934209783281061240408161508489762061496445012453264276738500931696596263078343426865643889733076406214088317524728328951441405746153595854642096773675742060925234266099491907123955505012791499025243594975484581337892811977629960484984253341764906659210553363693184700593493318905321236288800769004430012260861720080677377619041931721004844398534587506847744646239730293186310908845968376040352548767582436054605934825025638123335288366589963342014981823629477321265406830041456811498302777751047353242705556695747038808483811899468525527039057308009541426057283019856862291212411189984757428178230334436682205070338380838381612858693522714269380077540955752528857229721759404398337098474047626407585510553354224472629876004812760604495649669708793382517824574386817968447471913770552149175119640036707245868336242184880296381770115458604592878205496122989347150455771196863019896920174196800079610959435658101292134024094315642802140378196521637100495077518915871635596540618082204504613642288084283701417035475100827362366191474792292696859481025260992290195867850839270728109382991991297754229309192232982887665484189199208786763902481775882331180974487409487648104576200829270479361425260350401299507640918659801492948878566852234807176830418347736617551512441434940322664965763309514941999255206358463068136971020496023711088874164690536527021355928949979799017606561718378250133484594253040941496368982431156838071095864433363030861291437701363235441102154931530064706920204299982347229886542499206718280812421392067830108646622586774509744430856641832793087875568338128251191774175154615147314313914482917976508116509410340850865922646290143927757246235144863630449956039039184942776680862325238464459534247031479369277045703875538990616322734563125140630764421343699457067121940015745728594943878555681584933381140891261363155901785007648246552946610857654002063244239647856184182324533935729156735358985390542764828841208119182985159207281334728720061101765266006301182478627038336257592370834484627062651413873405988297165409993969347252533185731342638740666810080279683303918393195977121329516212184624810602767225551681138823274288873361686788046529774383393085887706950607458055513889875601816578037907648557328305490260686180718675649444848672383481892961955836149019025476349526817162117466185588699298366205228583019750363475756972780909918719379705261464861483875067200991912366315868939431245228463694779397289820317719196031157374922588662078127751710660695004496459909557742375210743785920795711371808699503857352555625982891679467779245153583597551008293602786394673863458511698074105180050037277267925562625236466390746804982313117622727830460141209427931151605782802303068460234583519811284320741463080230157235954410664456178518081061181842792275548666987012134928690185819963483194835263588563758032536033636559127173416638570301555142163163830493106014426131056962758276977433990504147643417689851141324816011955574983207053391472609989678324447658685146069025052778816300614971117224119443584339088244315679223634306118041496969431331991638082767924451993039493418087133794610481623428315549386955491309878972381153024574915945727734490209890506146375426851456886694553005641213968831319906028932693114919834972182309609672627822923484205929220306773225776790144495944326262350990665618425903802031839314369071595949463441341326013203242218232177091155782071553105694389108748114907767027055028190492485240288936943939316958370031332340875660096062279524348119507989079458084829529731795554994378213727029029930433732567132356607817885758201040918938706616417851926431107264444360412262045883256237780872413031181240257353093101421090171464558088873318981803382432004821523283868251597453811113385641553172556746729859859026242687404187606999690054691068032315700036567386003131266265021594179989271253256289629990292674247280467975233749161486516078943766944076851119687524204028777871394328186997437113014258805176870117275604199369291135470986718653440567509088413601623928080949497401627807763676527957627029342196705294833869621426222465840358318830370844511978338873813703995965831814727863469643873022192543065639036371715860367553892535531812645444619208615406337920457132735306757733657125577498825690751623924423009107653747576336005239029107810791388200199146498519638103834039858532728535856715428588561662405069041388148294826302344757052044926108621153878628320515101495975993239997674558802592192930747638173914384968875485606037557043490779666079965294894845942453806535303569846343300070574827853138006377589044718690132910127582087037882145362694997964694233876227992158995400876334622939821901120288932734352957693670125846778812421796207935092731076526111266065180945898520946856068397158881155625465002775784512953983796109004995741395829168074883704162074892578015091283182179770152743599215813235935223530673194060289779556686636150722879744277798655676140920161496290975061953226751300663757127496895612370616759677984650581814537254281414063012867937826164051478331819468638121443737173476002812460826744580172933127879754277949721571807555629189315625071649559993880066582195566328436399770678556343502499072689043667335749760566090313330528919861026554043940282127239908039947466812310396258115292589364814626757725501720252956504796869598960877654736976872030996591167299700079757658811715159558891873541615199369320583647142208744284827574092938270849326479331240924245117236181751798809607728820979349939828971322510268735296045834298619440829974323283772309673334278492066235768344869621004019949913851550778895465695675937607006963354190973733417361378896747064286081151661717262074976834428088938829317717927670102863546114121842410002316057006289611513703116322780545424942525530778483330393712059104561453219965288791202736538636538913876182646472795711014455531485861158361548663361092030500005525282333688263435177980697740643681218239430983850111586408401339689105053281509450026727314136241936252986998778389788971312781920775012713054339047276175649171893532634642319431313503175515396560004146956229165351657570753446101436150350913794974215937048565124228071751617992057118586487249833344518103572909948291812167283930586300233196976305185104082960311734564810201318105325137838051977760819450620020990765785789687932671403697269154578102275426508684457297460030244127255766770704699402998393343846262153432251269433902453876066036005561401094023441016572887414370107640613855719793759871123226585270271284407139637072754993399223190414390690631936686802416959604933395371468272994850953435054322846615900255621964422253241689267353829511696959994973901768196602876969654786448991943960969105418549695613908012684326105634454909792825093690650713516141173634413168755975672372957931480314391379386121696087200783144088092369477679114384660343141374238296686580890495370831477371984225168792735749135383866330794579601080100470957029875520873997943680699131324212377182580435562731437954412921349533956209775676574279392777028605433280197896351552785328530386531579166247114815990234619033597998183934187353806023851654291446541248345763862761350671565750835408622180533100535586798491049940234329775152380050955126642820771839166099275633212439436834095872213493069150824844028128498373040231495057235486199760602110768171841557099644635465183989514384550976460406999873504477096351305586653773333487411712940091001498098367115660506137690843462449040772741868275754630123561869851403684406189512243540768653115708501984780042451606002032834828100677472038324358991538905889265811215417552318626199660449252868756889553336256660091686936964501937117459011673126673649790477412512308822101213319900817025373691170231338323136028349800840546896215036575519220190156135741623400986154721232014173198454387366139295698936212173811117943728468297270336838228850071127564141411102242643656225315667401874722227218773694051848067628422915276516396464763113428995760664545599902096245756794859697797352306972418403280704830281929755945607659547913005744592108929957838444284420572864996925431372360678618561074883543530332477258319005934931369385559082988217892662330836714653695669025945354463418316947583881874896613589477483526566088206639800893255748950834099846071273535624809083463575356119010194879526168292414688396854411555564670405339918552224528845792866027189180167049682374032625740724735159644060424382299309795008289571075558721556500018881195459073667461342106654488694840492821276776207840797403183974434162236075200022078938288867401733758531663184676112476997598126996697528184480054833271469115305742416142224635122634525065142835988426655208865387149631915295512849019397273567942648949752877975622985424409820695555998324065898739123356295489353623225343212406514099109579477895450366178377812679343016943035249341116992595224069802621604571665279308195044604471458384478204486175151170752164777849628062670551664086783873482619665180818732821700073580346354722555290964969236483234718925532949109866975778629807289588550771876528996431121873951168709918535702908424803780351794008554260449009517876472267175383841433223910987659136107692787842927570402835666945417320838628568196602236886038674947192212898001191732953167036168520805262198152410550427963634031028420690331734284218924365696806628699389062823273712081460114468890600699215315006528984916162361146353536956572271809899720027510615780923689665962025532149114184583560365666661790161524818558657956038660860324368339017502768296978143913254740790441207978438418047379687516759279251593211383462029468034381629582721786723423904795470249667296073035202085377993647995313186113516525446631371584528609475899191610645919381550850706937414285061607801602808054741873638506773466757716870010055813147158467449293875626165931551068928945614196778905235472680686023535938809277936773835792367957883322042225585332820723848198945990037369644153966108248550880570202577990300760742447398565567016038411062756121180279805456198073307110599427459050159685635007725747359124566804585629440302722382743411419974641086824240169628626418302985288834079978600932501006662109728186840704811712695485451120693167135384884326861288230663053316259284116812079755497291390870855211848360899026639052064984801686273338110209261867492290603075694825842626139688209113555744714868062323832546954183608511227511566897569780368873454292177260878982629385849556340068060871045346228439015603969152191195726371970327251607569654193580190307825367841719765983519493931917597605548540523169790193262072995123889427988132130648479091344005396503743865181945136044434697978956874712883424699644208612505847250269976441146223676649556559904179800250616140296405713680318158491395644894581723107096557067196395249665421820757172539510567601546339394918739049103880259615279904019124347646856563111635065282678237664300712702496312274383040133139380846154386237614867124148107884853731138463241175510330590588731574531549541188951334474518844354422346523257841571376100573535368110564411387345955624708242780599381373069293548084402839294267210759990786626569872562801559359510053242990898161109733267267759306792293413511972107411911498118926274644563286061433933265967029994990005727181414518677656102050409777671195994807160347718971608377468491383426357035398770055062150514000749645510258201606155621972923790619328022112717850280465628242962782877161065372604432259573566420454971064974450676990548253366171823054405565629504250150443425874456243021659135320519063932024192879417768510030182448841243230037920766989767707999177306611265630780329022979299580751625174047939507917116308564519312034910669464710903387843496922626836844178542252045198448632925418169311712421172556492326608403669491402257957979817790485497584072004395912249918189568419998250460681229590756129957657423946350656118918237743952489161311766403723711096826652830683581878494762272763398307671270217841210993955352294504511685395577025329195633615243382101890174264324218790379359401890294579936899125246903172824887080458236960699027780092905805348819331089133918890833791530781881860032096395975397918377424670160888784602230033178139132283673281973854921644596684598394808727094427695990031926956292471575397462272593133822338736572847555364650816351140835034665795324001134663454428923203072729355000715432453760202214140528949682428529360266699627157484781139253083709144389057085783072165325764171894148491328916396663137726712932420449388147206513803873406736371893585535958135688792425243552922297330753907884680772052010135144129406715956044824283116202892589904993340253685687380420195098751275539131553218790020398857142792082519980729863726437305017464680181732472720191692797701607781765958827279774978458289573582384120913279404078219359152687084128037105834864205662495372143206093233567545105994724016811853495483304119416187103663413264002418311934490190313215110256886127521873707129698594851263872836761667083421779895524727969322798693682602314320175954087916832841475209111828768928032256599792841314065569175178301728818129380631946940786799739193801145572539104953852589330654752034992220882195229808699019709430928934719524745426412130071324467415793453554875353342363998335202647611234065252876368087204519389282112593818019193282526807108354297587678034446070482280111055997951182867135803580467988334470336757454281177102548036013103326377543954040709638489362748489338445065990338030750290904088063810887087256421734906850001690367251010851958288926595824765491058034867237697629561597826462836070694812782787015718150498523999656666010732832114429892233716961370608585199775465270271989461403511984063365503066081938064591439026587417258620415675309265392173391357205062624228718520530056437420683001246725735471402261886202354124494148750571949446272342043211423494501573710788624750458347543814177263129663526444473257439129662953778995597492213483610212506124637766385679017468734541796138649074447650823727144696220785391711484351200049325965945379533969588066904530236914295316100131725238752303321674780430159804663212218275154677315427514496817669981720286465608863743463256278323840231549119222465157498350603658150481029571407208240639483151832298210629040258741906662500183751901967844323234564198473308065153281352624786868644322886410012430761479316632110213568001126110034445460726808591201796039336530212761712551150530358474896622208127164421486818385095835851690940039756535327626443058308194469450114812667909788032674683697993135009611936622050146933896035057960297630313375250523282275389373376860477154672577923125188820426488435315878576660876348061396427689023848140895312763695312900357247513223049331200808466349076500832161982162252756003544057028805642998040662557834167363387404228312498703966784916099220878558142616298524181304192459945958907225960324528762775623818379380998726622285135933929024698431861430770739093279898768043195624629279532369313981091537012293401044833329857758299300265174474232648791428435427058807251562873967613320751228083734302453532660257899483749756270643548100433531237426013460501110960067977933385567264165575602586761030865314245580421249339413786373162859537439506709086591851342705860963850734046831801830397449774158372641020107809821735336930167022198430948453302190474287145566775961451160097805331249876711168032304220909005169022197178795692633407522161836310856848361711719232906261268276494400155793569939278012421010660209133593880287372378863319381126268626383550172869352413479058744491304674994522769798551034466628321329293072988523850949878072240457757025199423312844064591900323757618133539795024370008066149148957268464321079591802339551992795531964531210808424496076354077109930800956298403371433783774784829642754119312814810965834137987083052208671874679112520110947471113396561423176897718991074782772493813436064397979449608537851630106654040352094989510465484806497253827021637585690747562446926489906948656402140893619616794189135901980911562609168701728241960540802444140935421109697348879889944907845999114197538197608737185868108110348988946858360823491601588253226450797256002427789790679248841866022280185843077847588245213996882883588115653648910399025773955563468168010186454507624990102712010030874016941040159666538624750004813830794586595272600410232130888142074036081923845455942629570811863767435608380360692322459768297852969725376255725719154671143887540890352789360005819744907592855585943987452028407318722415459787070166044037154364662927357547043971555142128525733240966115261466814373856260750568587800498366663904308305037102291001763028285809986083923942492544525281596159794362142584344257579289365175311795987705427135181466774504674386862363437154788318148145291225302282983987994211022981742539259289826849011118916446589472616172451097003378521958481529149696295333807910492297447435839834569750249743725788634910949455800056458860741798448476150481473116074242548064985019381740157972169202893620363523322101582364904374848795568251802297878109172063296911677845324143871723859566238344419426734319640410053095948406244843035934047615960938899202807263619172823654597150013284066112907014208104289572196732886268508613733024139242118860980491141263170973972765477460716275846882555003806760993129100224947859408336404349744739760631886471169232130516906639883889460750704433006829310594647123988286518025739254682965052518926714072139607757515253133753243462193465644072733521340328420459882725786882490691715450414242730697548599587257466916060322435117238852336787342404705103736596886440891602943929472404971840544926656484038319395019802889917340858202328934295617633384667623604089198573055660100922701830237208777232822120980179091832665979487302886609555791934899430958733631109804685340721957635867461305224329375562297681935894307492748064630380848438848538826738510353492108746198349034249430583222197734787979987914171544476226327591364623766790886990505941520126282335214854329397598984667440160469398750614967229709716960885669637719231560683130074384850791498255243834920220893519747751821678791420358591216473160947845844616635486408342856358878653409940275999981846751847950291215793414528902501226225535907295037848020324969225757948213335871999854690160458153935232593463639169958221470319341412387313324598460390558348931951678463222066643930044888367642762374774545066533596148641681733643363578213250708139554289455171821087920672903788434438894839814734718290001904030082607960102362522506740435419131661786170771459316887284576889258305318238489548423201949149030042116032846911086205574142729763040029063107151519360782892472038220643113687128889374993251841977046607213137386113847015009573270592066030831329026716779500607291367087593843849509721151448509094940461703214104602619489122500411543589598642899447490282212242482851970056370390226637223668665245975761895378985588521935410920191248068634031507214625908168891479251567797566626371617268790935245964008501812513481304273430323527634097538149738827002697349803242848746253974921405975831034906054080649821394805330698683136105212067817867926235446616448782082190635140439479186441966162865998227650206456499146844412232279798379809931994156115855494857823460723912775140561527425974558570603801382972479611525757386638441354544257256387141389785868089353005362904811798968654061538102306778042149900255951156256651102246688838818415000560084848748707734034726630557226731905106880054919895333296438381013691785855442970739044921779324307078867002448008939497237573823355482257171993649044792453771646269665640935960517302899569069055630924674271831580905743249385449841830946777689620830152028458523431033513891857564801186016840804895190356675857549982777895171616085054587933676941451324056689079580901569225725669951393737843206999580915265340827294832058668404585962853959587986744226702927570116111387354909770218326035278419305877786827722203765206906448741125898796745081903911033434035580197439791325669829643706487605541596774291261772196191613913095575692378934331444214554644122379682790181444227964674927691920105205008710633561317626902676888076259776329058063575591831864192412113511504963714328848849323908461850881874805990918224828805884732011641457815641455554590903107117525770983692284389924911534498010627481376380664348605618997490112900633142627126273802082378632056071057907484314187376002281709968948704979335990242906731427296667827535280485538318578934922480264152133297169278770585528235826753586059781748988503223536232263302714153209117961641848584175994856314369750838457439815281231061224571123570321222553035967391622769872315396790061920026987603833952068517316181187341971150155609967989510341235536001319323378630265888457396069213151975766590382168851284243932758295270828468796137556802914293486355794884321570590014994083396543192421127739285726583703469765969627124118235041522625416801546460819318216240215995375527294843103024119257918339381780578722988447822164226472652497094108479990999878023768729412841270156045787225337275839125675960092951203370655826618146668907278806964851501231120770496444145871034345933008377401515897314815399474290267356266143050880616687776159786307243473561715602487109833808396188817593973976804960100279650551964084057194162800247521172562053549681691969474254931856665498411191951973199687220931185241332132322128999982754021826578753113341245973852709860782475148001765566600964945933754067914423007221601347858285130858926260609619668783839088900416944313061531103359439195818100056396469891680894710891510054382619538418574210248087249694923615879323272037252106710369698565240157499735380679117664018826115104347964622238842744274364459083693622029802523406781228135447396652747622705162128656821056280930026621888379745143668997000703049130321572869053690536083512017831082049087102706917800626089616871490885965955770537593918256382658494030849130580634167567467298993807750791812590128135705966467861508511302693793844926839194095656889554215402382762227239155845583138738298631969013770317713622628659804853546032342452749900838282985478612897229875043766156532748602631932251954608070656642775298400565352954239817563418397465183042989916081037372828555879804239946105088251871933764237103935877510587814859494189958139314938471784855475415738580411817432522082153134012178334925571087122528088011823629212240512926779283062628121107569607370690479704565313250113926879863850194336941177300173811055033695716722087186458730009854299016494448681717000663880321673501118574911399671061695690235470609345628780710722817664798875907643000340109743452006238352322751607199797077102973376207744950471678609280017513891059653828598372753711261495469198105176551166913841099707235130448012132936755734411176831270908039001208559738134950056087147757467806735771925641676637916511490052006190392454539962847252624727196762164257033675145946836436066074794320542977000268003331461835329081841491790635496901358050275321003319075985355841470674286652184371259367906580555860525284629780384256858088363750968731979316638089258350993318067420020931179326374263123233962439493150417621162112236579021404103375656806697018767977818199116578379014623715204100719946257882640905251126769342888014147914779265512123411808624741462581446420437939958251314044366876808521122968650385214024771898998858649663969089933616907849802323059722247777686179572192526623034261883344057468720877714155390091678770887517677536461069692277527228639165794189227215232209566680489865406246686266573060746408517977917111932397670852336087125482762801291025513618945687320833993759526866020255637718970423966876390661225178072513012515473617545537220460804005000157898502262665057863062850011555251277265052006617706392515046564590568749077771868256667280866702571749628645024851258100020925964295122478789548072322834121099801282991559499748848880239447838856300548348733705840165184389541182512108310016987468356702934066012442925067878451480718903767510508596860915309829278696316214910749921123693661718128571816416416099065612510668096410348492760921374368157515213737228511174156959145421006349872248883644897772689623628460432553806680290042958561350077107422290113121660668706425789792934445962837777641371373581090044952073267948879056994394146962112988893180367813624955997557829470344566721704135915251478126163015546637135988208025580038873281112929679416108720631477451893682390469011683075670621553070239200412330207323151862080103302294130199164420393816939908781650719479081701293576911590519938310860752736391834143514715593784124390725270306646945399657752316876595158294396604578852136963602217104808020974438728094172765191468130513829129896289496134828521561067998385903170517210764157251642268213776507176056930452948927061514713366814307002205162807375079217743226620310732679664731604878320291174226006694417697424976380494416299557187269790632987979629002642201093053913934779187086554207234314062876560985540197698030435145692312034989225558823266521219185666072147865898497107956905771059916629733862115425048382486388491080911885720429541469081910305141196978297221751685958320764797516727662851781253273111829090604665232516345495013298337950958351879396510200209269387067363356304139315243571595008148595326278646545415729146752436319237991136004989420038186502133933661528048511148507623764891035686839799774803565443420116246872401736304831310029966508889974750868609217655878829603363496720238108098944119990218017717440772630121534347843550749996306776753330028900734895339911927660249920498671856464157143637002011564953355275274655951457404564811272678519642205694908063307183320460090094062188683099995122786556109886758372696489405478639859244713298330296259832796197947574680017796005403736748142157834827373709661226053380830086980680803874151916814965926556959973396196072081629798330749806251911307065888424806644693301753253923653113289931282598842070040604279657380873881384468431308766978217638008776297483608072295636783830550438302220891100756921469712380013234092293815759851624855218601483254829363684993967281006762424199062750024931280753717061677654582727615203647527167309321086959566593102344775109139354934533086415623896481388003942588403763842560648315954485338291034532754292267961610245860791869112135069348925754456848964677048165627788812265341118282134278925488685101307077050080127954195918549718038298063020407330589947036678802375222157293760291184071955828812015927348474843342586621979040252338670908064672140965973793490175325247917406036584320652450312365349323173305894053229373295008979422752455729723000953762466295593891492877365419213010268733061282644194518277737801727264810359224373578850202671182419106178217692020488439143654976177956881430050333270341511625467981477815069964241707205521758631213392102882661581059608955479747956308531587152394502529919541241701936988964388926010467841995165859101005737748267805280688427986639231281849473934144466427297155215256104013477741662479065289228606625702308117914894031361277762390796590545453345237925232350621525352893151644868866276230863309299612251114176401555074264108404489379154444853998047577340529517575841121785556882284508938352983884383655366629131362063082785143207277438165593203828728764899277828566387003000950803761651839031836692175454902129826404337654181467876723283611883835087566153825685183943008796223627545354650969143378957759366910164123884990234622633789907409264083905002305015278643875751337855573830410155592120272012165735959113401795433094347868909338414312274573487849726236585284470007015697714228313336715793902994484965925646876921236740940088369587086645150757839637360019156178966381370895620824590695623035390322971694529610743191796206202150344843996385606995622563912770418442835750093937745002391356454300079631918649075045813759417940604482008255088164155928452284267279144729870816943601287482088367625407399576857026528200219347904014270256694905322393486341763813114757429537472795413091859277145238401120320551899887348902050616639949327890767085262144284868741707824035356126489407363015134434683518218437322638408568652053115888604327263113163588324898904123508425341649020440703734782030441343479241918455281324858496701413747933373290424858071599070417644056084257839097519560495473290622734328579164962085448768809562344578845369552720756787543541461778421270125555716175093569501740812874884411322024685448581205569961620301200437714656413405573035299767780482125763355179268051332813900475649957840478548804655495337029341651105007198393585650552813216249825849064191566600289316857325561750374016215526346762669517985514373411757749178787916668447746765639578385803231004212330911368061861310645440029609554710575714787430941531591672168188418174770154045609019655732627308239121966421945478713022864666092712949903923457257358421971065957434737680738759835162083781949703515493106137851401083588761261433249611248478539290441996237310289734956560774000176721896204758895619821818921595360907302896874611130389247359901533768198887149784821247837011174217376689028195816564336158019868828296321019404464178374797555357519847680838009993351585222290693674187301963492356056421786043166436750254145233373329268077984018563438279923469507545361010550520846184779468287912325752894793226549099961899725536569148744714833522453845261574669337505998345468618818542067891045000251512430479843102227322645781540112639266137842188285710924087222857944595383066811239047003402266412432474920324661341295849335047425260341924898339422619139525574072190974215864284576180340083385592016801296945437891683413114033045033069317095168376995496273805846528876914935887251016615285876140836418601982111481354671691387447903274789755493135907272242453261140557240697087639735893165183688537572532263523969870940372923137968864736606997965721286846162057284727794856539954960751935559707171866398512126751915874292208120211890150491546513234283176828326850972020396891861904510184499093989094620222230161947355126452924356813304229029480560704607959053341130241073193376398837306847756344935336923962804346690207402503345804126591090927275894297569390480044949983687264784795853984017258546934453963797314914917756759446836435209202672681199466918249015549511697269073186848032849472258564045653637422315802328099982818039199699418885904350546768613059671782086894402765210884140076442135564177297482439071202180602307116530190418614185930540126149857317459513225151188286763423903287815407472324632269494340803946207286419743717093926888831823155088089637055560063102400508823192226943582302964885920658927584098479132035322092797348552087865429235959254636383623873380754908760588255739074592007465752366939505129633231785175531186562863738490789652435928320047336842506552529406100715023821881436271952950322035329605274307576710162187722449430972694568388697376814446468616841244398897822725597589201389705949659626931142267492496911234262982437461285234529324804970716805119033739245514268730000176729120991468765677212622166404677822620706915695324127003552292000532837735277018836082912111314569116800229382088929325474409447671140110819125561865779018060711641194403723804677917597522084580733359650759785328698644003827070200073610931807591722798140613278126923757156220483918226781241710869741714392119347048532413891462715221879542617994116738042734892254382004995334255532842871773693067621078354112913589225979804386533975915717758696773471072880938428662543245439117976951291877102617272830737085203137283394391433379383253756981501655009774739030768698623444419688441688067965660001388697569580905894825347258775260289603226894723796990114051325261831568702580205613886431965556463432217349507333963289496610222261446259408384350633609582623418118913996879660143384893276915491801171408001010895192488885195566902237747744042214731198648264467006529658118766362926208617841198620046145785515265620673093847522820248422558043538363326623683749094935845140865470152036591469678203545460283298296296321576270769271949232242643123668702685741347236422395236477620321214020559001927230162956427809467135378524921906339003607288759413714781300554480526102522257860039509988914054265830213919411502511625964014985302327047724586650476061360043984986355127146535628485751106613214350328489515906492081735968567345090005331817763138097516680425426214349096002020133782015718678880727599768810158982053368142847957908989817598846179196108956970018907415751073524841764841725605586938655217392380042502052638749336630794107657449627222654566991200764019282693110376185764945585907331437773328574642305933108325605357965306483685191926247104072331524108502989610369645617377477305995686725160685383863482503012385659041954531706113130887847812224404380303250382620291138203926443778010263865564294094680450461858970981590008669372420647652890889766679626003357972027596478542441228261802607677592600777375824679871987899614992216811355444144307360349444881974845282064242954685186433118550425867807995376822538150893287345578017872003811829155341090686831005918277452616265659461122260147728676670151757894563385770211591156919889367385701684526358748385304279261579824314658769782267873045000524568620797687698695150980539757357109070015799091554083527856316420295913589626361355100378039998658659214426297844206598467950446395721510951333519850442116396336217160989216947289432258767057657649275434635140161079280055979693971116377921235130936938107757749883012466623119923472623055388674492584117463955797903044447881937499608983068628170594849391114477567558232312767532582728877856543158731931150465850542101500405243410002629604389237961096260594899050314244562724755532560113072905575354356203328839808115824609454165893934629751999619621046607560959357520331557617486441586998475679409717224655281200995668654061331733316581861678283410175763075705344753095598927164473955884573670919537910926196711216703300057913667790846518540699037172939912806819308002413689759545652980221223499159147666670434046480633465798664547188178243835269869668377593886542928229766949043438347371957742377816943702080226991818392416246979902815379984424770558993353727464205186122771491371877498093200804813900933517268463900548088708755596674958859232356675871031387214136695214584226185575514782825721823176984458773046100014737308016839512654712301477060708619212594273945474769698097484892747259061878504936984562947747566614277129401594621085783187979013202659481853778857858918329267237754721316160701727299547373357434221139804597539585960305698393227907215627799858943522145654527412743063056695493718385623947106955862710837446588501533395210545396670210201844486343307441022961354299971307025317871274594686930756060806007697950307113069275522606515248870763322327486061830135846897084311322267223771286656336912604171507867319779156711361959910212866738838118064318778470940230864626241308595336931970842993609785719175093325263603790388774109984836853623593724861223263403485087203050308363792552528429596380856495556273634045859521523269472699544012613252119562401502436192035639780145411160025048949823191008736581473728119547223669245500710124095095648829130041929169796569315136317506476741821697386445699390767822285274370876361827195931721394868243741593490088567352712475451917746514012909210920731900781016414461726328918466045523275305339263679428222435947421296143618193850200535214678480223102509460080528493659710881934872898648665704063950647104938081768900336328260904932786303958715974450893875771813029047878146335931387541117099387853911390035584498864979422889841031484857508504726625566942209596467899154568457429594274984831391341024913880447991374609412442166063882556789671723528471318010144701032708403960758300338464750777712260830793850824496754599730427531074988207103690505510409374951586561642845572690309352318546302191672145398301529242429867256305182186092520041214269700225751704263263242810163716961511195984814387575085924673617475470467453393914337592629880238554952184077393540790603565766565991073875181463347752020255108677228416668902429248729100799808093448307112914571528779417515328426432705456251080637734909643051463112662105220522086626526914613839022516098525008439827393100336287227660884855612909041167289630352319464583234955194009791667468296678756245096740069363392628631289572310774571634998153318739885897264619129509179987588550149749027842574590127839909174930558787084052612763046699437492496807420584244145655356157211154423815643032282773931434232372491646040738929691999171413544021787508602797099216050717135653409458810010136072500265063885810488446677237830459600583105690578989566659498146478167733251714545302880417271998176244612791107785171905321558034090581514140706312307005517188065019945880280055198766551640495040172054792213648845394218009328263303917871808469393487640618338590039463940540292228237623641842980135394933192172713486761501483816812370420269549581954630036733522330543071013092537133355499509203716807618425716331218241165777865671230041018586020996545570445128355023458278766520297209415129343913976057993891487061415038404043610891064790019214535351400345830950381450660817148567135497413905466131760422348923721482451472532044854707067558904357395523015628280326173825211903022293852001178031247102021026947341688309525058533587943355337776766798319829239137907847558056322081035161728111305975309261475515829809923153034351816019275670265554244671547698065266164071848418201417100310316358162114068544499809790116534694781310392027526427981046557557158802221488150943076292489538078472087920033023809239524303317502043330039817668998890440206463655827948012831878195880916610615688216949794434824786685051871794330602980512444174905868043199387590805540186114382297723624968344079250230081119671010702574387522985732792301754475162764705805250318842025676150960791431993423286930770951328396874687049467203609177882074193373205302217419381678388275571246812624022021264039544755487583480212816138272707709296283685088970734662778721421278590624943568512159057703920877024762494151163870357721966776895560474398645054594429743862512952554345286688503762554617868847124995940866429546994876139188649215086549061082923222295261646354223392644218821641673283323426429105577549713970490266722319254068425344150881245453766110419270371857032777647555214832772715074214799214411536028035499422428242927282649843727933899642604490753812012602862353548238721965667048959672356464014205593201442600673341750800554613113506656277589312618973953909490349848986925043452031733694086807938599716114228927038574808483954012391694625281269168797661662234871670052356054324773809775309337258205549558797877139760598091805531087959991466392054526925460856688296811743446270630835414575678452500458470515572074591347789493667315563852665443270962476158634323301526847214187984299459714219501129773639914382717608135075549770761667048548954258907219050060819499175654869726112964002731333728352953516450901378426956562871766436407018539368972989612374828483068215702320291219043249810225166860467434779857133801704582983076975429654999433979773740608893321985406707030970994992635518707628136742191851889640504194180372819529177288746387147219236818222848542753277410173206710541109564069505587654212953757754289542503014398874743528593790985796804227864848257917244035935810940655655888280174433733240165193261260035199488597592658270205982078538784853904261959389118831244025780760370360834504147098693927758163216460468179706677809946018574256666755813530532947200581446201976052213710598597605856344011714487498527609607475497484548862468060386936860786733778567465450371275116844064587685892836641784406060038836771918141457123411211089486710553418808535679351731477842667339926664647171619307651079880313272781329041561527251890013297560760848148540600469420595819678044484808833176238270030751274753288190899616907450570876804854882046806133031683821576175556309956168914555950422475657645809916568801965101968320558602963894349049057459961121743259998626985155794868123594242412428964774206235734518501739785356562186247488302215487320688693065386377810353795411951355878121617471801153442559903402966657181011657191317786171134125453528546026656323999159231211465196744103791087363307874006068529061115678760437143224837070447109284863356082683399566587499528186023653023648153634530259347778903687342343697264133196753185142679115839892155570491262043624488434754805424086726826131730804344454184386835483565584559550185640991124712762343692149367680649956659128150748151292291295615221454508640171459335083561363429065056038844387417626573162779025056083374932078515040816372236902693278283306241413485446954771337225640222249400861858286893531512623942096527042157529796460505218681844880753706106705854452361007695961022787207270624253734593018869830852370735490094237596699077790056861504273014818435077514297081035096975921682140462139205261173043577093010099349186254627164729928065124490915317478119332208729400628987391593024665104070313657623973501279475142089056269768021661219530957952654234039912063444682057522072339015502379783612406902645150211421486835812640295259126113513781312410458639436755617955330124845488346258268429426620895084761984289088594653693872667379755007551956103802432792660724936243355325253527676626743484023677595383703525116912165512157320704504972978139203011659273456450907789093745042787453574153547207502012141004149227967519496077692494473021588706020025684848188313024526958605476774973846701169301953866059149440974759599189043382194265995736032865017740157372702148797413874884351311260893115111093311158556353832349017057148010400326554182393908309873754667526152718385757323309920266618461375218303085143422740376219584905936394197540612787966262698909043453142780408172298584737307387199525829854918095953120246592711117124602926830860408027246351575929922738721551448536414219881479658443575693310340704613174824477958925800259844510395496750020054463415752833481666864906944823032779146207936293783399970443952866522629508564446001487839308134395765881599661218999807044588442446987293157628225546232997506736405896285774437387584721866387146660972051160893669237512507761039526097184121342594371704310323122594079744573705400810936277832132910877759883094778588724892034726315523326693210929711611944539815243464319490649637253531100818536742378767781565818913492190753257519689886535240445910753093541094705055539178084615534264600487371992637426657039969984320457980370259865994697857876888418741634666844941788608905650871528269903815227066152379105588263340124111210675225231280549560005821320389051980458072862547867897051614558322441319060500654360086754862629151339115665685359047555946979497051607157994903071702117755676351434941603062665364744748800903303361392205159668674894698193171359679915754227035941064479955972460988863433416810974581384154439858539306969180298986094339665917933160199311098610724943182762110113209509323383915344734295754991733345475299314147352227957124114556020344306900109055336626166825623540890285502920232797715941477102321403634431016817145968000196548176013018933329134191522244433011011718339180139386084711995249571436748064245546533986411432412459486019974431430028252223994328999415480726687011141343108223649840115203626082607230433978300903052767336736146418520303916279795579012899205143623211710797238961462747906848514538085346803702742732328189740270872462390864887357173745964327396622795056790695165113313391374358296923188798276577375521316031975366262745914991300431007414090027968596778391589245258679791852141154415377055178080914802722481280269790703415588075342822765119389628616543207412635601325236120628999383275758310002266266508568965185695225706875733887719938301024267946732175391776930166204569566097304883220699915141192560884288622683317907254481430896517962337356850314819525261244202860371510022806000142747071023440537837316260501558935542385639506817569584441070918600074544790169693623637862306865821232566361096193741788476428734012009392773507237925292689702134330564055079576081457122832247669025444531528334634753836051080508276743005122239712741703537474828396321693319710138154023256801887481598508527423929833997491928448857293963355060667596267998824581786267474509322695177145854079210181715988260492995278841470974304721706933328435386346283285800180265423711704254718438636504751420863312576451612762276439740846982463585123035671488813129125485925915588169236429493238869294443874508972860402710070245426810513170687645945495605911755015220734363369568085165942223237682983929029983350065527609153309965594778433664797546295630630248174588183811034465442786462787851685432994215476024581507614226643677985375732956785138438475873427707229517861851103487117364437802561188865147288824997800742583494289661061876577010654152407850567753313871990589441274045456561558123876317520255033508024949852388741818733583741203529836588454679347556610801168637947204334042489049196584944195544783386215511581828355374720126466981036954753398572634701151769308868871568957194999215180012929401486421100213735826542921512835920986078508542181566422882130491601423698461883146481781317856150442810553483329126059321385507119930639499322982158586598556205424476128980726155515712595190793774672326796222932871903307772770559168706710317573991084890999171754096710141845247510036930077618942041582667985688977042954037177870045075417414156348374164402310493795568723911286298701795688043247637612805882769505215197509465306836052621996320859480686370761872630313789628797502462720680855654114994116329887327603556687290179231903735495243108373602336446300469795042976971570836464315450670960136419260909892340838719361384152593510763496125407059875232564131453541497325121234117491895150278049774888480366008437752587524254542041109184537912757742612596634879053340092829645861597359233131545285552525548173381694905314384993092546126202013929743987073120548240910671087544989545184335304509682250593050807386565451247070060211623205038926596857255231950488337060569764468174410804055513344709928538687227999386386781996560956443282300967499856528776194561943459703499431054818913885875734365080320598689518046554114938429112073592417828981146252020258960560553954476529682135371580100185662934660084956763349244789788283149312159590259476286212865290779856064166855592467142718281245175914017154562120593366371062578215824848970402965610427527150554142057674636844779836076816225503801859628480235505135811892615681091211687398548477531719811761110920304786017726356095776779451910996781753216283921096084951182671756864852764857611685589115220015099981701934963606265742739149164228727829394455941991992892808961690190007201250435999774508513486745769370471118887413877659768082654365890763830447276888404877997120402527732515985500922066998710673847112818601388427766379229102851262976283644691400881093054925777629310406570030773795620875745626089285854662063370868211228975739281559283037784827160841041443487462725928948060091660860279875185525914797451790743865783736465511574364794690591364596288116166192617379323221647493296595373818560459684159004577175891603202031605829910772664535431623114412389872348460248377003234375921645742278778563496510142643369229784144295515426553657696896270451181431599695964190250076063136602644364542903766425607997591449411190045338220893432878885515841522946459087128698497202960159019539411734206867856270401463878919248150547140651091797240432220476922186781438651827332984245628519010127905011571800245217001458687614493149994111855069234228281642763169811968008465438177633316119271663588477233358026567855521831892232546497300300472831103873809719552720711215765434353776998461628363160735662745902073813190425347345029093759778540723116321600086493829880053975927567001330751044233016829803120353641474480463666203306082729278993439243178929936352873772154356253828870717391496656760944091977829905077675772135320412620579042774935864269978171724519031839104569754304284173901309308413466107608260109437852549935289962844609785179828555602866454914919655521605849958523310272286977548033924264372432496020332276613549602798658191406792188499774210616169983520766498813824544183646788009947691066334004199793399226146106298148146271672825317170690153826795119552939873668207449099062775189997689381505494380138510787339803591175855107851709985720939574372516624342424545623767341002134799857136731508951317313881444213133942847712766704198652721803523820488940222917404039218206166106689151387181919287622516194728900450325696110710669832716144462287659341629778705561241010307565618120050780761445718728383144838606577430210714299378136422501395838243215562453921896372716542602452776420055982955044779818067733804959706320649291810679557870244735346310508560653033104230479598564890505111980864031377518422066409432335030338691281468053524419125221367946429655488461902333328836819716885384788968280875338879950486305144160086118371447128079272504778337635691706636597881757744433904966201946046069450426416478054592628007478743938273343090228350748366893930631995804207203244941221065235069685794291596570072771614147115725747925565031268310256527656892390880748273114410146040792965646443752704356899011390198358007357285666119314592213992666117220356385758820686504942937098487414618592921377098581778647949347403757467073909956756812620870596342156095656233966294799064619485878524302454411187853083730026212823282439150165124717496784064095193376551885448307372964234453885851935578304749084591510915810613923577139340810638418563018312092594235882607948068914041041191392065331081743446443492104778328378076516323453563792549390747267687226470557897482987801122082902126394143911258394329020451564216892190157621407311266099157606717573471222514197326866017839417906063805863041176263890565712517548794528554997092357511967236615758784650011539713591576341439076602402623022923632460021880105520424757730191724025354095285381942011313447296564359003838913481756438375988640921374706516488449946153999192906523024614744913520848345553738131445620927224038275431975695082933218397032642818420475074777590510529775431900185843116110901029943868200206475134139473748016683682871532747785022221456213504301159472968296915844036090417015665270929822319368569263708898326348816665715065659976933629658752797828159905991284021791851853823336646534861799601906670908335251153869698233916677322200993119939999770277135663367259260385214212752297551376729982308910096867372741848823531179660932220256770504809180535818936822391987087709706201401644589944445469846976035102715883104899849079471657630963637772555026482279367338049312492524654484865428581350614770674839323115826754230742886944622967495127390902946559806326853474645328566521279948728854955248505110209356331745476374211451933143130195249767359968475617942550621968945193907404494098230500351299047332931967662595199965651300432522547841473098812270094774848272150859268866608624952332820950204387145048399571342208006593010448384516480588133787249061191031718181692184647340250637548464394108393051100621318915924517891147913685928143199355087101410482642458776153252048320667261617746745067837260709094614599745733565405053031181792759717830356597591360156425935323305040099886685245070403815216773143108446928651918873416007705799067662050060948604367364273196713596940306503908733251382965828178265503182767892245992783973643867184304543563241603194231737665436527706562938019373846941774313174328610628996246415062516819119036517660447826749129604366527436749679944158159153498907741739260926401590674735936243107777353246965738927681624748846052719548921300952646616788131299753963311381436670872222889809482380653781835438010088206220214560562364973781131719744985179887276462116585745291451717866670105539031120008666133981657048674951200425171109621921323338344373784632277723272142453108314766613597785412300305613597871347561324547810222002119422377109833467836452508146338725661997770028523810521131265107417548067572567409021397377061747858391530368774645468601316024224778174585006388051380895189300985861829553584904066145275234203057892505926741834423982682897983900520947675803409859718400615923612764964983558329546608836692487025049764921171899072604773387861959683279810809922455408060904649910762872269428116199057527706147429132285768350586004418846193490833631280867960269676650025143845955767439052185808333244712938891498535681648316834431605716104759905789011332075528395895223125625709325440149422454285679574926657613749958071348151736499447567697185629257556888024238264635256132001581388195057993823291296044785123491969324759996555107213603923612068691959170996899026562896686901093365654589365100363720056485853680812583427106726272321564332488604871836924415163734813078176194945932755019322624148571381261148016274248294108497410598576548854436210263114694942813227072832428010959853111714060364268209710596055580002427881306695971014117147182684223355513495112045289752266770184791615593229661414905009482015924581714423029612632776717977681436014268190865083553693942727306574683109750143560185333414081415093215221670010218755748626041427199064651254639352805296538039574129294024305211462563755149883516409037595733834063516188484911104021514168652783915657880308542853657520887921081953508652527636959199332323667634220630159672071800747195101297584428830667761906681025128062876909719937605597629135761959709192001024171635141644336374174419636067395737857842024778191910487322213336257604897074365071932009591138387852730438170678663025272634510453095132536199039220035588494046491572372137117304510315821598473850499944267767181641955161800635804376102692395621972904703331009136643891059051459290349877227647108301887729922472894877829599470421601219789988661622257969463144161496832083948834265078855208307453254777028662247769242772005294455479529882309922636644784249274128535675083702785299649543277679508909832769965743794980693013872066023375736995786438061990649593743406700049474656312523841841995002696410755820301019912140619504247451625020797036807549925567517630510842277289447564739514453368574686735706460714409608376238300074290181241682018806020737798051904287513008040031391525362272697094392009263120460448673907743577510254773644765507020410141797436621010132881660191889485500461726255614106542537730120993557268931268277423077759218425771051501601426347664618201640470414767827563608424327160232139584873889996800324394507105829344829560613771844612537415235214763505215093282578273885804049031683646366496424036799153106306089139722157055715351083490177874793715021924498117401021965574888203626089688638282814377890911970032759513632375743529281789036279023572134794824479904205058033008107990294899670740930375433807547501446333969935972927682137263347935610891663797260780067347589183320365432204241886076728352171605087475950594501366644292868124895887936535636863288838814890190643930234080715446723070300333861112062229481453462384344271042844684716939720399873140926089844406429134837746257941662593255991633648088123726552847303853087031979038757950813342008477772093577272570699270542411310931182570470824550697264807658569463737565859645834873796611708536770931962013938669331762961292390945409286374766468281737536459106675177541095831604589203256532957161215116069352375213903244387772919299185636284769962384550545108657768716165871777969709366948399781802105725772163798137609062099926064681329896323605702851182357770243614149017937335762091308717715905015847603406473246544793936215825628107006791048855352944650327545957511347068440113531351079350193702806931964440019201800926841507702277407464515100827533248359826870963969818507917283763073118759656163896655897131025624944930175906225371189944410834350905386049200533368586656981751042918284227116599300469965378767934580039559449488991478962222266637977048273503689021917862600748430560942330852519894193039303023169308859456770910101504081540331269625133761176295602344772540408584849240124761772000916177772043696288555941510067111275269692356580627202248988503491046693517755174066191894314914214434627292811078584612723756985280837304346280511283333774334333349240837881019472171744764745815478629528955676970612205223986853216137135079538897284330692483703186271292718320962213806329754871807222697102589891105906099860747243712418044884100712422977949812859886649533797563836365948026949956498266330838441501591991667499679164695840554953661818406356310060181603138735349967325676146738802253315702208850009884737407531104199453355740476747970901229696213930720015584035930604329966026053287736139830285810027002801452731385291274953721445003930535328350194687798440783162722615458384398778084971774189498530458118854456918186495759638576271460330106232248935361183529104984734065855613613528941095483490575118031486189308813702916737136376034303896724654107933579882712473728027236109296813824694524331328872188495485006047391029854560831063206134003436057201575797397316897534029271144940659574893264151705329657308300925156843953214769954798888998156992438463045757327275579386675568984563702583286811823546853218898634890215957665253977780640301706611709625560838978912549759658967002142498181468507615669809386971749349829142611775711231266777005954488355729679388586938328481641439192232965560319529624015136729828612040263265519429566088488751180975374130122427491186037860449910675706319019028896863771876490489832368122505249614097451908447342533919333906376057321608262145027968245273587163976916328839156303801145734578783942643975209013386313028682511832847879016114974206502985322012108400345144748069003230580152782927848113459089843234936325808442391589046631244428195278030705674847063368788391967803852223439288766609906163069449663253504882838882825956121275471095944511155836910490426420996892806491726403010840886009149708334006941757455687457810423127327171289349798587568705123881379449791777814361472429867157348204986721770593270357182657852429643003232146057605125570993987100165364383783267877042152341483714980291271817003178755227347414395874033761490111749584016110267181934798836639032126954289331574687439599349668669753246964066078082976570024798358358084548439819779397190178456353927774883613994055238916983262156292224480785036481240936713469831561737797681918042638411194409186005099030746022071597623009234251241820117074245767532789135262505158303485581683818118598145461458972729263780265152409612149357237424589106902168637783497784373153045421454651418778548771270239059998357530317665628525892368186702799250957292530993397181633801752291235012738772364071061418262346995192819404003270159616518405734687427444893394199270354048174922536099580291366109684612063498956483772100292339782114214916985446057696742988432009865790595742720154091380947171213895121369498308554194618705219911166541630521641151438112204456586950497935661928354702986652643904602277977209370094007080115293596334010550985271860669915534175098945640180598979669034711800994966912744632242037741447463527300910296615801150871333863085286461119027169636450696513276724669079054538862302204115426482124674513436614188636304556585094494636789617921398219881198503785228456460159680552094005227108866417257715718308166328588088083783127060115424196645794731343694570442395019550336854905240539377530150279771771794176045336537248962749295148632437875257962901863948295966139511312669978780911572445986141251204360838722626110951265889956923545244908993024013427941917403312993714498774593766733213987212477826079250315278112619896962143086216127352884485420671448172518466952843540223167020757752777062440703016232578189627104514944037479406896557773417870833658504394289801418559061633746273453053734048386574351370473157536485421141583040735375468971936675784500231263318359934861240573832865653747258115007701381374479794173540369805828003620487585600504751377607824584288047097213239588186241767053546018425794686263169804932761024649646720185649890619217436866039160748033274619987374552177581760557790979754549540108988136440701247429638303412101800459414684356903177020537094552894180023085970242972913022277997884662503295683426585128947098366555206012200902011091719925306323011309202814027582148784385533942389927979040610421702501942305116521171852298079323941367404225787722727637458184304029455216729444198350779790959969952356586935378517190614174955823640643220711932699877630494399193138011467446225802111950372869760519573718237025809129752604999360620740803667005000794933723146966467604884200641804538341900495338228872072284154445135807003763979594338331641843384817502519483938519548697440074544134716629043172505980276124510577641214700873513240468355220934749358684470219256650786873603598559251383226615071304351532435385813452240790668688262441304332097777123997161229014694835306766118786533237949710554507815313740312011083886582841393814581583014375441248350106450866130172468903724407761729346644357428128685142725266492113224578548155159468128220773008618279749680921167782742418893192325295174631345836403691837235735973746115895836051936073588016452099808270701944260214577297834583938825442251390865132130487507949706090146257939700156723268828051005348121941426614594671531254717135546291386581167435596497457527822425388255259855452503797423405058223449545817592986100259050891132099209622448353923269931249875949723002096310799158057449965399011618759138474175046357939679618257917312783525933832375242165640904895072249510665757208119999524531795009896540910772076398125230473883634098590036331759615064556399263905608649939740461305244165270118459731127075225044970361338092143933782978578703819456706017547472275604275642131248088483952876656503329783436243210064081019530814253472732997967010750753135177851169885419503190012527156561710207841473029606067669247711557721852573149671082898464650172689985799591935953772970675230658026848528526187363106456072309201099795736219501187553571373453716742874443387075495344714727880145286553307001577348247220462777613586916292397183905776433709488453923202753595271037159656640001259632358102176584277203795093060399246488127295590389021439389002163547205879937513429932967339870872570335032113538967223759152929010866631627621384073902265091809323849281760457018000314321116253426407917753665656218890627250103708796584993000400907841327115764015529147817716324830274331121340835831609238018802390940651000050602246706675333828642049041093554845184771790404976352247834484459528992583640875176473289484444457567839614501113444231833133943919465294798864660541096697558640302619524575311429716137741398385490156372412774168569788974841696404541314699160870544041682392167933970084989441063722217904376981138822414240279609329430589355255893997006121567848985949333413192064750658071300488985612973434747894546507177308320933639319404847101960707896124714423909429597004485940525848660874974972947296776896258872533805941757379314813743803982963631114330322095253566117681561480755120748158087836651402309535576820471028604053134969721670247060338278581325464983481552908334946164433750989435823465709039959630657803183194231581557578015674984113309034411026016768555561844618735698947127803124180981316646410341376765295292513928919829004413878289934100026255624647686686887486641852673452827441181483994356248964600615841801323949998361321512095496117330936477070705811379581404953623527604599872962409400038359511480542017803036631464287441400713096435810356076797678514584575914655999342431506818638871922129676835569337008488421184506698942270815533268530122035932579370658040887181849544821428289614801935630795343631367718698208147235620069899096036733004699880409152309086518206066795250964810929208744453852073234223543495373270317495286262494286731163137324601763411468851596633699556920771253595799636295334882631261564893607135732002029040951399780322311718734059141111663599093527472304029457413770994155858441507283819952264041020697988030214438524886636808246105804301834058944351858514118377170449565842782833180973509924123261231093886599445114939302061106992535813835806126273949964978886491975377073807086604150718405392952806720305283152665944698492354804852721488884778166467294016158068052516176193339882079517448310701172878448554876573145915951549577274526521261177208721129282702159228054925710639609478812465791622725199750534830069979077301567837147286699327324122276302992079264742481713763156392010021712928536812338866017209721795073051447783744378050665687984873743594103635698518000362239257935015472796528011396199844883423870177300559262601354558065193337390284218810207401252326626543178223070446888985033892098003340019073964594277027236697543694456844023469966306309123701611510739005463657001274002537853978326099273484922463017348849536127269799029772980303118018496514193334722986826328605100372381946436513571210507252459621994217924483873793109606027311417410356309837031616470104529255888218113071339642208328979161382279724386030777485229988936148797308547997498074816947495468806777509742381216560230141697844223523226350008326201802424353026740571378877426640317070190879026943606290512857952268939169920589494916832800818660399861869690900742813733456570038648992037354191881554058033726429873118976991536922169972725374762916568544931495055618431183851986934888799082423664495966450331058732667754193015552598615005617956703747060888187327602256198870809381712116823224677893036880824457353740465871997032862794584481918271296205378943613040426815274835937501622973424345422243554767225546139892484789225611536347691536966701151854747203295431856168029079070900723926229739446976314860631667989078929495675897885556352123433562968471362378117501665100975763735949612702433310844050127107361848243975766386275801321595000240181057502159560905833140280408536229831470858782492770239110414929635640813112289212161340867974273583661542998889681608013614519982261627017353862292581320502012312779765764080196757375808783285868197006380499536239391989685176696534666504800261359374322024981715355083078600412039253031296013840327993592637720035318777133273196062539148844631893026506871490408485934351487632091102345715678920439338645854577277249637806918318006065280375959192627168666758367733642269523586395403242770490069311866861441324501883679878122289217815902224202112105359297694859737085589661865532920496762068605617727001560944346194412714784239280294676870417110487129855535851235328213923053704885320628980456109854379749848664022321486633511098067408566448941516553928387572415810071737017483022384777992044063678812164226225044652838221730129145198254218618046973390098457351660269268391427866168417908208942966155845288609557396441381508592868542048378155642442784258372466210353329273273040039232062114015710982531639765358160425955791054178730261028210769075757705929222006816332869283624965297843010685338678445891735331358707233434029684731680884963449522442077945848567208853199435360117406874652570900314445817700004574768034463492042095081400276241665640188048829475772750575904123352997092483196027419620848399864726377986403370939057442620414517917937944457521348108850348807966785584880954428900044382504271746399066549806853307830168761815504865785063668544786054263028270688771260796494876770924473286658174058400048555362671050466076266854003124756596133767041857920005544333650288230666969187673812015795080093266546747727609224431490579054350599113892127757932012079738624689439504443744054805537615128203665652234688604327849689989570418541670968430773803499500644437120909064998471177363193114612242446851083991302096867471648283100170468397169937827006587700523969131971430490937754235518876652915711354956416860693448956150684735211957965840762136925310076120162719537256229739577713266996551069011260996745180869191485560296914371538301850120980888784986247899624339225752153502616852762450786619117130276172757045280285657232027203027903731641764166350654319255574988850169618016273416497393462200351632824632418730300483518665603458580589267635010147638659008860153888753000134013779905380262367434793481682012848787990687073159771601543986624023751612578634346607201256189937512290119316866689848705941196025792679713525264390080927113065232035830222851275914073492428215102618551038483840842753194744215177695339353398622699238501916585813666246994720698443027472088675487111797441224526416845131492219200554453797855555411324050102261505627103535436989202954997902868109411885115098075216958434950322661436073758724580876782098938095312537243284978908209121828891834908227966275995817014390735272013321186446995349155807285912334925920669352628800496362946410804318429965223697063302127790858598465578767591286771299994428670201922937529683774735711062764086533355162656908216306408831612542013887498691837920191910050110446342153966238042628802086668589334688044682183634265676000897960810266860155580816692009378965714217223466845459344983949369577322695898111464047275717286303194821050777242841310959475609677131929103792062955681009973375701369523937992403163970160013890286817240525108359336831794138353688472798448931068556615441250200122617675846744173211081053554248282942957619705509776704562570638731704409329552604833400344140505724455804874993175535330711019146491890523975660036505896932307449266282258829613842187453087101459297822115019639247724440060514609932914724001587172882050489432587329704756351217866522541301639577920586182632916365537038879463591475383993014595219866872255682313889433579570862246025005430727682756560764315102180538490874012048179490654679914596311744184117303321730590228067659087009072160008768061955768485651095192207629213871265182085735717048699301416271887312059015774972523408964642892738166678722844531726216714463832860189365667176364556974396566333474429259305039228327382371063590009061797095235527083666052532842199309402433241180369423657959534762528328764544554698398017699521756350007416801274701033517411254740409860633461428527331956753650886850131154499216091456197833925065093548488536790167123484965039741464424845767772664825024806550666415848709261439828836824796232125107479070177359448365178464130392859102246979923724144847702137884158820727231570800017112897431501414315731561563561865927250233675489155430393530392419157715148056391581662997452365021617430146799500379570624983437648002937558777254167808369915144479692097973552991932545240862768874875971114253286010300288587286329424604955302247742331925157541994578571896519344623609067641618777814933002415958575643068790240265540651284810106762177359906608580522816617910165437456842588357591122132485578942206307347097387511206770224153397492764521574744168589979192771665181170866539675138399856236929694301173332960448029378685418721656047876451718086814391177381407548703702301054197754707588925774617092595853749762425896548789661095659604132630096085119245687164272880652814051710059159970201494378511205705054099206908511821544283804874565955292839135967564508672265178035330451874389554933151651034206294194556865698136986979197867591779808969467681266246396640834579701207021961809807037397913360346184861437469898467052905296699666375479776316311317749741408414546346829205285788837108595010414674810887871523212998733291632421970125599727089081921614149061946700846396554264821387849935672799452513241728442614855185661003339573148932959693866724969731879884837360754165250660706696111291926748337019471733261507114641627164676125342705164748440833846674591682471407756129936739807555980796813893844739709404061866563045411441714269003262552768604535905364795985255697652642694908705554805701038589205288022851765577720947617700116952568104444878907926815412079637800618374551961053158581133790408165992851116163167830284506693921546178446308523771480246669892081763356248570134646960919950661283433159761006240157471943355525985325661079533255765450163836996983557557087195856156560482370786593447780077961635879954149109456387050760175953399920677016601995487876711985103519031959817806676972640702384483729632611010283868407108878487625450861989543017296901263794178675735729347874493131613200505969647991065506506080412220932216714168682849662852912012706377216038172029352729970084294609584341070878823930383925996558483691057791440500844036974079278372275330998814035682516137477077800727546327306932443694538945646374430712888140033457258305548529942919151870014838337766281703201891468842672646431944906120104247858034707743562394624509349402177435521119091759904563614444359124370510980364584752670107393395979192900036619765457781915721465451528756758534836064240612235832200044116137321901029001370834675385321001712276876033883769834977546419925645135572628441921848133131186582481505392305974794768379934345181762039878904421784674992904651735695757452346161999948333286231307029760294692606347176826983532332544564802100703754198839196245508990347751146941702100681765576917309974206041176589208124090293906186575049100451051910401516206007161321812365760910293701079583201906097566362649895140953463513133082139642892190347119854227968975325401921528931941464713257062508003675418913322988019133178116014666443425747621165136795737615795293556157209115565582397396525825180988337702557467373867622599467549519544215106056343406776317697323852291117571821193836294828307250578846792478431645534469494583252136331427269415359940254124410653265145996273119066710869797380578762944456161294976344103796221002358213100520967862076125017301759114239222412767288936955270061390659643403042012377946501577425021488564318526968803775143177620508304106389411693882861876724569480455888976258676958124629073267827544596757815562979411736590029151752954244903895842038637015971233121590012792321364709989478975876404621030099309585141992456406692438195837337605287154256182505548660927552460501013127051078509509278493697326599885389816501490120416621968542399091914889145466175245405946449146231820686996324151591370491934186499617282071187644170910767221334158877783398409877397766028718387030165800091138633535565501595394191738821536620674992458166567544084059857454358432466926534410863619811983025055291896412629180315209401719141980234302637145552470977986263893720061949779896334632716899881069159683451936220305378747968145507722869429609520386468441410296464104935001709710314884301717011769977782319707579503248754902267221237071338261982897532461699438115174433960924452402335618691305422778051466730442915859728153857595855263169423299586832087868205504187876318259670301801845036339295813094593028087345639076076807304733895879792109922459090818908761200242544455797893334944311864340432493992102022718950257017288058256371006623412655759886311017708944325906711048651503061375786325456781747288455444438922539706458993880954955475616183081177216212947128876676757003598313656087010063631150070060009222503692349500620518386981794673438437932104458497584460218057818203884013359995285945573133917127525770813569823141804953986109812426280257670362198014433674945757121592144818664188764897235488015033665026184213550075554749537136242102743479117698958620564470987514267582219978208093314819980017635731111418008018900275997991272720196195007433149801388172192405064421647185360173421565421328934990579136543304659938589593214421901919484103642835985150719742456327627607356347492290511556011020130633111878481762665868174378451478311281831833264471053705463747988019568161668244529700790730787135819996620501463974816495834302134576657662448837152657251680221123951578930494059026859635766455547511209352410054883718301134267001065965170615348257108960567543014557046889445067607978793748822164990388695387384186698244028191921732711203700777032559893618493812583287055771983725001601630333264655765298151593323337604317834436076908405649227785252452912104552469276754735763692252128075525955727819267062942853241294677930860479130118312737101930876465042756098333875326789929582041437115009286734360529691244216959342211956260444700154992387665379597615598298848573903028261179884166242210262494673939907193941165468352765510197595735012906500388798736621510074523459233999370344306437604815653043333893001457150931832963899071421251624741954936403511644545033603960031235832441409594450628748807486507117699057401944193764722226284936145005045523579047379575537202023449158808542866006318976763447146739653044855174823914026631038641275606435645308808335086003643958434711750146422550473989315704533973409034845502655968237762851250534347364157372994032074395597142961001401672269645055303220345674676010443814961950924985971438761160894504934300193274991878641794056340488985478605687698997430579754522422349372601932056105596244661891625479694194069077343177725152963436598549258166005341315756902500671516981040841286685066461087780149968726396371860617988776877096248124060738171184515554684055466028553464990227846042992441498975678470980096885523858153161979571653452262378342180208157076582189830561089731574042489263384673016991323737565996092227760383474850642748755427276133167663274779281885034636229016871787032289406719177077609013999647246388839665148009424139838153408614938220426543622653272126072115497740834539211093500904613750835380300051680987860951511105954543382834108541204833413895736913772227568912451529845422450449498425827066501860520029967857832542781284457126950232097002970198163888384967994220947154019628822751864560954408360664136787071428909313371565898865113135544801328030132028835949880230884442308441734313217499037353029261205452190532757004436560998475033306346711546095024059226279184055703391234326430725926283171529132175312195139834798897544033743356595874998549449263578815265817620765671351631096931444350892461565195264112656024653546344898386130152478359520942835217097931557008817439168599563043958085064529269881026852600530073572368589064877518216058704878099920079759466542773360635300360460457282843107745202014662963880586560650976684343731122301667567028345390327616459018597609928812487050299014014927221621286503811994546936461714465834768215670318237892294133739287387943194859760326374852571833519139766703321245900641871020352929807474282114470999721959596080570510318059512141019365831773382598424280485903618956081348717949237588556833199562999446357945963887456812492908197686794519449834163873651558936321913118911211697813209365967069602990118749360177338521400249397917735950072926155758368161168376420738325257502530401536121662525597330269329482910557479740818027364898453262829899898356588621345477411461804784107311364776251122061929232928778313316677091412669718162248495026284700246875109581265426512901198130738324050035158795496181863587413038222360993807068594157092456953645062133216687162556090942937942962493908757638771186981288075934620561463120830985406717179514959340513581856994181656365618493984422673354012558359820733473829062170891472534299205085432068921619569088884908383207216607412991143420382980120033653037288525800690901626487276929783559673568369185338511094253907510000008420603141364294877937331479217144584129720544103325976859972350767322645821169548382500169598963901404977518738245181280414040571645309191409247389644659376362905300260417402854090519299097844643223518726282111549443173797796366393349759743629598236470015534124222188854743748433913086024808965829195382447002882762286572399486710611878153340609627020265994545201126329698674451153528860562201963932728930790060261023500766132353328515444529267412359775996687716569715748266795955980841169680396535136113621529575388186783892759121486142821425162276402966398295061231485749633230021257737242021868668172215374378080426729104134865478160470140377111759599168444320733188625743446060195369058859358706713934788274369704741142048117747054769846673921146532717860828162283815226269723824828145834157905411030085916864599980753761608846349548629127968066047647212796511002768775529551456216308723888585575257568157716354539113676645006914650650686634486768170796700256135230925968386789028368804992673948829730202975705683267462320115453160723619964484427869193086879014638008185044405299621007271070797767171264723511534977753485813356041175777248927741801028525030370646208365126350694857246265032307034215267288719580877718038498642864857575035501605907395591968186282259710045357037320977649152535397151840472588383629344942604323263613325998376913643093729822363087501744752964080585542407667134585247048460223028488578686209777379058659920870241780242883180552413201727866487201246342809242736052797421926577016703324541915273659909737215162447347762248375291031388891241957364498765379235460095241777589821003350236988312111926792585724239907522207011844250424468254090074315043495658620107463953600293376562292789015546265345428916156500813704117416370160128717184890805281570408037761978973967026180650455400885853316540889913975552961466260636670057223444872762665343304061937442405481332199734450700588737715537009831393999374616431882933326672019919091888929991329240909075607151790908364871081465692955166335117722724620670541852428392071074358097968606961554733909202107331071071323062278791077010207064563973745673656562519493217298206530230405924449457596902060390563765820895471757372927117382112119812602397787686769479611208862850939623185017162921902541602449995880467426642180814715214584300966434605729571811845790647067251396987406604623856413460679735015953702594607092381183628960532388382887018263595091961602470299146055854405058097869440267793702674302605807925038383939804482855447215486745222911254088186365147135744396095097344656874441230948386538941688912946549444220908765367392865700466136284555856086173564876799548176021195790746720243728529888463944733832813161715856318259674072942227227281357278852602757203221932725064797678805491108830248310769466477833904214060898325382109271448893085616011580774118090061253087763333220780691459593683967805809223608182671412915703222307050331555119272457852145152935376666969228400914223366248531819492823696421007900040243227512532327447204786387603488865541032397484575333751990985503324673892243401136612301761720641081839044271996878624402000277529294143898453517627206316318481180846685462163008812679338649995434438792382780395326117339665870216880342855851586155687774689516687131103429314824347240317231442736726532003405378700733615260494598085650312164394721275505859281561520813597421600881881338031957339082329041688011899491262837466228068373104266136469582924483899103539830224233207844865025874923742923455330551202660528374084658768832600633963988567502975300997510223052059964855112469045198758776409823010110376543592572637150544968280652367984565895689206687920142931887586300599301778912015445169709074291982524569760436456986858672566217540649776301461925054023139398581938473004887577336954636180913364943655391123794432586383387726625901279307871747146225809458292788000693555275559831281537501154568973679530385492376001238814328719838680096124158014666603003785218186286914122871988371403787939127108172689155828154818860132255169112142078997583127999323800675133319645468420968258533266911039214838350007478051535477400309849795970141386830434834429356923761756184981899486789323521060002260779765180298361701458492443592210556020618952369119204499099543559048030846314531669315295288665190773753945802710080214121788070715184288296183792999741411141857773607992311699117489418045657859083816651214830431453240112809366215463757258048653437970340743403907574730044216448237541296266702877654107630092367615067486993249522283230050480343399403181315045898252087767364596681209295106915469380263282398739839231726634369133125818805957658418986550575779569721935129330669064793291173630398421509805492923572419416322699316193564595957267479898223808284964207656729361044564323731868290867157080933249011590384597756563773003650045351763123398836614161528231782098038593315871130754651176462367104904770254839520319680874195598589080776725139307502111084541405482506830220134993653390602347848410323788404968440768902918635209540091429647479517749922520725786553003058452824503605743134010061883824048539064726166759971747678364918751955918795576911246715446323112125663066717127638801483610183621148175016201877544818268499753088255401452039678588710397530415773448655955493296350366041854181539870609555843215610092542181896638389916893525881691460768676086497346187195700793505251240186406993497317933380248315915259644112422608591489883215624819075832576411267181189562092642587243782923370992259551934594455431187214247120929214590253871420288724286705677607690187902255487737907069687214968200467020079376533440191094113794090745375459022342443235799327334463722319746301858323725412792321138936799059021881048666608668809741770126115798019131531984307379270352245831254464077401908224974006013414674984608063300872148146130866814690138222208363262491777538001582160234171395676613255797230490053024170013441642160877953570274724652720949882207207884413810994495254632785062466224149304918771304679879982942833801895671867666124218586495531270972345298739518879734506773353320843520225797680049815973827648635995160657970607765749622428519977349105063329233259790104409919668539277003595345638549628137620738430441282971413794721424451090869132128954712884905020097171791781358541623688339248745302131700992214596872211208879283979033745132783140412760816882881299842397164296425823500686374095981182854225042044067135186044745033979707125888788382117193262747495440820938994301012893887537525966313033364659166583780343975914848845022411106512182697931753336648852417254665054664130298359669561037011594651520139958571441374966042763315987762403690481717923369435675602624804330828613515964892166543738429511791450350899277329624740976845396616980189200256457289096291994904570273100355757776161548368550877034284617012844614536093070022892735201498596787041458150371450311833274363958197905436865026808732830463148706609028069033783004978508410872908222447773682908631465969255313294260451109470743279352049452601575649054955168120843754821739576890079797233441188747705876275018595736694253838846006712450509910447968821691894769795319485815418104031181471694818244191429678466916829560823084517485277440453269436589178081414725601923405083558126536566124893028806858453744515664810587747930998178930077542336012428857445522817877493884089634722361614996371163272824072014454300423579481651122276626298846502812288109374194174669634365528653274824861624784386418820220863246604160684406999835198925241343919672015753830015093035416103901759934089580211788501804288046452514143617927647624323576753850076654187348739190268352913367705401539828623703035276508844964104654018042175938477313710578595547785084773961723754626269715368657850141017928695941457869330572673476650307904924802741506649836420610378545452697349576677410912562891100396262310056409659471997822613317648483607359273571096429666812302091788088893593840889273823227061372923119835776298449742155284825499027511170572517525617396951991096305301232152333765278530671779510494674332034321981819391989877689694685776992740169913916839486869436198380808800886435805239405039686582636758388931873668492174175588730488688520910732938566764658261712111367313784066400698826444637381149730730174842417290571765132392779368935072973001309264776032439759844785513939188260044957859990541151194803620577335475194088880027858168074124800039148990013851157274152608706733816481276051865646718500959301995667755014030936806350363125011953659334809647883074148314717889157359654089091432998934488000341746087078999150745898678657149656009412788205206335230034702423198694236906733518355495333373946587913642354033808094278055817223023222833360441387141992207403883466103023990465924030651908019125170656068183180836395198675415228423008234468338233658657071384103881887693507229149005233700148276790245414078654998663295622409485667356442997499986881941470548468319872880545095285432251838880494090155555566147031299921385373862064476063294461506566443280625404001332783012685084945647129309479314744220539419510759780165044447541580812829491500560903338001453944761112904662958906662923541240408585068899011049779494006041729312882178905533777887085754858338394655231805215955181756186815420844037430049469485417115730072233027797562475927964568069930123350194034166812933848642098146852326427959322528028756555342362914278030723113647013031291296573172693582055950450477471133547763716707619343578329282912192871915874602024421908424390651316859642658903393177907615681811012251120159400308652739881672372010372848385333194697356208972327890549457889706861043353603574773568689747353331526775716765876392741046064031983406973815539130132700483388580655898858111400704889578649308604573803681683862906464966717406623753181798409060005901232658145190727877656633037240387778682763406522878666801300218984455335316473145392323976694318608401367399993803911175789686455791417301073954530918033865309839930100119679152857027097376734051832255314593910924563354687376573026166597143000465911101804517042283195907009081519064024907545808259269704623288183015712614743380974492042011987882490896977290912599443638966469819402043752913486600117632707389508065758850935412089087423471803541158346569539062561824108531788836496981917571922886976892756852823083198004580026784713881982681084144518044688547042947025597537930119816740797895159036766480774103158375555055228359809644367342883986681753796466309304740077053067812857932073394946646168598707602019366129438311897734015786241422327075323519533599150937612369778301597402955620139070289608333310435590380273501201967605448418172268079736769998569604710655372857893489912255756835986823937149073193218052834167192966358447313196645274086198863400580336680172780302759368378787393075549459473060836736361328213730560415008622495728576888050811806765455958815736898409912627852185537389759511658311762435310743962991066610424369423495368222855137856137184769023499033118243874332537255884129939186267178277125652626822081950794398292315971230065485797263261385800361850033081859509523494865039420460944458250813345113154642717499548792064583934047135010299715412921511987513845470069159662797996309464435009717366290995600827506116301512718852539892921158290832665756700878948598834267288887481435658445371268682980410419405178100987958848658932298602761513673445346851584238494808336523090464126783975858667103499031692597842381606876973829406044094807798557192053680874219093768171103211535059172260826909977913988994078805107196707617109063854092517588326629264903437802477938702387503313723854282594895441613093455937422520708818889373312471762733063912287290168118383969386821470543665032920422951189560509015001672908261388050255184637444535827640638026620187926397420237231374752067641048741989098092030169797440392632538907996880090686587780702244147567830717205137500738214985440430838686897055465096353921432452616100977475205955275707747123850053223925292193436695903635588078755012219452081210569651990615948787035661070357766413753785939638459624958158456607920978840528078422741650533912870461543371491622374222037670122422901564971602525949370089627099613215201257562396565385954400080609506065813816106187618858165448244383326317425106577381686113562344993622331578604240804025080554237568476345188255340928991461874022293998172747586993450744487741828223544196281307997183482473920362320460685018234894887485802285742321186083877229844553614681054480515217301856011948227122382401563056418994920108640433811033576886773922540500710915123840030450977214544447697648945052921725878437274334598141103413247230520951520747119270104124467861704853435858739332715676025528160421082814536769062014131699428102850348016206705381805875547597387500621210955388731169896325905822173807667816569824851605960934383292552652634751742414148075795287251931462926633710135263655189849614110316595060604436586268888781896889260849274164989299025346770153682905360257359018080211429823736591994105848747029659533903415378923068088503400424188953915882010705454514664409188260825405105538716469491575259340697239964260704189773315239174122857598874304945602277297844149199926036565869086802050083037401708595333795473429069756809824762920449726007045968993303662005302607849474218836619736969717700917161710548111374562826547215142380889917281696139650454096375379043642542512226641747999636564370121388444585400500281777249477773594518119253411447847820120695008190961717959147403276141728594861154027865856530009291640819148385826693393621439984038503513985853130198708072440643337396053110243647852575574607819874722212937030884981844959886405914359113839652038939000289253003461172312206033924406369295665994277452658429794090118126276695370925199962196107769147899591422656649214535320518921747849548989358928306320637045884151684403539408784070443401553637789499549888835928245441616542414408992868009623669881849816578877021173913498727675916803874391411521416960817855844426767045185086529596046699491501427059462580313714358403889579130047259180514690067979448101226858331026399472720964882724427806887813009598271519062251742243890640850850616724448417380495093960344116890880382498776809149538073227705744002081332628807856059227284923892859223901915121333367658031965822442444876772695747396106836354459102983557099943725342468020484138125663558316502729631643572137149096731448261142787359243441559620923515973604983039116105534179706950671106241461007470901585188057414440567257830228672556430566909295966609884912815237224433186153679180619410972381031346010901014417179932864501874384791803643447371856230634080007729319024952205099484213540986279841858288295660539095685297032980734410546742045600265145824592840054475456626244661413888478087036928742479762233022775039140672250221007070606055051818200455649767606376491411346187305911456097063794734583121246436618045424442046270170329300882709497183273803015479745159289433417638695895134979401898172696625250565608975223614697842585574011927408432147340084133708099569420096136893072255184854153761549418126761545148731690225745718819601302809836520757289609052843471158371287011631165803695274680086889095357347556030372540937019127676524941437230250591173558567353234556892836965632876774088824972782479546273326472009493809611834790990938396736073981199923438796473996182729636978135826606670104442992316616090097375719109264852103305703164980092269130652392658917189619735599042876652739436267664361956522758012562241886065615338258602549536917655622113593695808449757281508984115250605825664337991007407824958572433261197877858969736738827079887757700450267804027667364206169513881111217400817061314850634563715249294757693255353912367686280995052032851862820802092191765393697753673376453543425888669149463907065215957888070196237171662487511563347921037912076975389677042673732107362543494737969962756934884030565548506337309062737035052297352487383248402020443023831063275297493470867458953208575677567677610404950033250405643193018371981893938343849722097490596188758306818725353228246412142101152301128696766427243084840799519027264163209243265055820212364590851613674767572125708843477357771203654948185224024008762085635461749684216887377490574103315239081983721667461423266149729162084901177969878844479629697756682827415126933421011282224596913004209167932933364705431197205162765312805508127650178502526632932245385732415967680251091120164859752913508258620884119861307525543312238261781754040664733833995758696236429085718752435621138707466874577735353348063771141528208729604756553098006463266698026531315245245156237363368228046649051076522899693396499462946255901326483863179698013049012661460056702204343004638761219473744976652307043141169247614100260938048130130985079493253363567120641374960350739298569709588716827928976318674624650457031602835671226637591209954304295297440680268052513238373210398931391683965963448015909676827092179506500111552787257277590463917616427889723025746919753111186936557244482627413739703998584439843201547881624693687779846115494736617555673484265459802189325828263030301850258746324278714387141716303968998278280145680396206174441655213832499298347662717593704351092289691492834719260893684080629236969034837382005298401497147011259380483297748556926678882835599210102194082733357212310327874287684251476529979466303783046792699291090578041364001163364378821016913515566196279220240560717014821682235179604200726232340674137300017191296784383960824519210146062722192556287693825627980344747290781798251253871949255074535598611779458370751167870471684894959714125882049276808990352061984050913395823925830868752987163727338467460218401064199409172038117531760053207881547864288170443493877662955202051879173618209644064528586835823042601474342214680542517272394743980872298472453093786068914823170588325660269788842118740526367030803886488543793365746892282267346112986546322821184210811316217312881525193066914301357018197890477885364108370848439868846449339366620817112744516500254739431864562465299471128550945067906981077528334115801809350101588975351097989080324877278980683459643875373272059566813889664794932196229515827047145296688722848980006005498162670877783746109356130263777800707282401640392594711281414103594497222467039122950540396488460533180084040472885989293144254203141934728100393129658635823849000422774430497189727241380494719836194430200795563734901266174658570315909635605054148884005155334026157386250939563060915855815073188618430660600314856830478657915263636487045068155448979170931783667670315295721394003438054392196316198259174467214252125659468958819636723768637156919141056072923429699175215881883517948354822562475125068371975954076655276369300118665871138225603589099270074218150603620514902796414216486868513260306576350037787350514966753243462439434843720343595722686899610835689302691738885767432486457980792165920835055091779859740137837846605560786198802050363302425041363706281711263903380528473841559546412782285601074319037593749009997551770166224638228791017540371336376041769290567404723346687328384422722859141916486608571950096583758727241527930729335442951065854536275349298402384154850737161625119723945935649342101350906887890741754849624030376258796827034281025871818573973264153604200251667533170173655416096744551685545353577014718748426367626981116193380445673599826577352844614682773334394047459128414277597804979010534103014277138721595010501088597681465512857286491619984182648071320618292504030947026426275530870387212212935730345350262337325435984806930469816007628374186991333154835523560255441998114803535732259619945801556479606515712559136635547885213402440319309213965741315149461854026086472641593420257730432896564575314830394999005375900321375359547285159491801721692753510679155757189671448132570768077274898578550990943400454355485193701227563458055713432148496329674771914139508435913540539602012056852941681751324857855406416358648899397842467250887700522076560006071128423940175877684503663193092534507076221871782857251673816518885525731547226352848922050833096036660351646080758452078284648015742037754343530657662530759774159865273068749719883654756197943267570391362392985600489218746298099753937227197608078428562634332481639602480860067260098696660821436281731078716091171558102380926305156370210226191109376601741225507036259310921404532925818574264062833100219771373649104355372355142607690421968869673985755946921795669174893200488035371539609532437084373202150840663203871725509597606207685901515112407715342504584758208250642173432729004933648872282782127978382731433994847802129189052629904289142649169456076331554689316866963023075101301444683416067437508755857753514171022942974370035520422089713355051448235316466645141458502932392833448095159077410929636772496023397975444649285842374150287514471859098687537440668400399434371386104649824368868999685090805410598349511494841100348462260588855462056210295590731626486693221545595924059146765152711892155278763871600924485892233389294705048920867036337472187616821997533580625607018125112084166585428766426751536450817456051531823114801589984722640050199395726198905107308325026493268183597243225625258545853428608824598609033179226847558957068851536363590537294012224088916658497723516790326016572908015796286614237990648657422340305285091834351383685379758778702058229367750291763676708558476767447806747786990227722463840965314506355817691739392106200484536047078982350151720777181068389175350949601852769319100131239280802604037012632662792735770798534097688734376144045618705982748822941090299612902798330251216788513401056625657494631884996102704260449230381287517306178444599918638453218347879187660079170844712744229598193440017664032647433763155699122317919786666697919172171864338720522343704237171414159692235506614628613165495392248287893550711149968842781175088326972762760582636858658619326782753020352326211353365478292070449505019456368693863494041339728580778120163916225110856055580267280439542687981648365304009820316809981895924826551296867322306133984203425270220607611057254886342770394509076156856335869412891035839708689130031779225716446927331816685361111659710486884507073090292786273598231600249149041988542781993078404605627185448008855346813408446893726916841823810727007698379855105769289918256034124213490822810871311004278131529683804831090132291671582904256602340290888756897583843530408897570838125650800745913952693059793470450312582665809752149715932799670638907902499748498900561094457396324833513741130321534958220665452422371578963291337888177307762371705857718634089866580354563252239798852723423942319730862975257646518929492815053457420864642170387017464255452916842933503516159591952736798848976725467153281525243543966805146282315684886722214731826401222468513652653790536618817052479415050838322291681184041354153277688616297090145314629062071004447250988836035144829879543943034726243019308230116160833607301977779854969607277838240397492076746428557394948884351169045469566758478561400378833255559489351800131830466688129125043459347885889442241114262378303617296192456880802270458570548717081230512380509335930585431958498019152905768656991205298297205946670047501585862526870909418790891622538085706739447411478299151850590740703921854132074783727352279002671799521204569214853013237165358104258129271983488827620384190638740964625827345189522687796031033478026690138662084799661116150780826924959010757968548255980357373579391055796895419793892458948564990278203203016424982035824041519481685302909024363606530639953091563267269498455671180839144298143605385792495028451303789814383316711366264338562115009310945356128243107953813179836279348850042164295316344866236347067386136920913592683356053546756543681132111161004377881254797780060702770803171035054421076745352785342782994820366173036292011519418833847025119036258706846644795670815335860069631192829437962915346011833590146183535178544190553052348750219392372232681041234486642840495918210739495309043072587344060658296660003649614917246667321588722721380969206322327235160150452106531175449543460809098331349996710136671530639419778088167467714665254339637074983888341965765449001788679170453947613374922922546713093045553911882315514793933304055891957140876423294811073534987642021662599876346458033202166824163401895786850223928642635619977834350295878703633244648212693192287872048309410147324713988685955507818675042371435172871475991236916900506825172871673873105093752853403101730150926442775427037912549609064161449740445976729236797705504121725269059477825669075970922941356384790282697702591186390621648058963732748912353006605614959877978101114230392199424015828744591060160830226231220630466318748528136532846441223181868031946368688785577293329614746828219003760581237231596469661586995705257340460999721661886557844834680210059351816046643813052788746748093530484311547394288205005778004527041431356178264542066535705096435365511945964230032565781648003557998396074246640370182953565462447241341388047344813074996454049746031820313141213920230919518945732540534606891192918441737333953460149947620546213870025612685862643529456110545256999022603799035278947954237768535258659657324257478202638447191296906774983446520645271791763962783266285759475115538094136386657046367920910741298917870580995063277366159976087705427414359287326385602486708581294118748841062266142358495063210758373467624810607237087379038460365423102085209695251909265238078636806606185762569466349625355507114331152056639092583112851960786972950484880575307899932825093628690263277467885520487272144413908014581023753095535747821303382072950781784068443853491828415965891258037223815980423210156490029666817108045033486714340286822336913536210127442027360157955376640535286769630291639003044385861283248505734651687894614484006519070434718957742705966414005222890759804986286177592427201671134698827755985232582777058089830501863764739793558167449441417089844782266105935886219777243868308257081945571535182175529264569234341458370267812124329581690586931383678717841771496094038590008710040853444315846292578459885097429353539954709469481636324449813736346197801134052170666562799802302412879857154424609354244308221355979703091094935423321069287135989346203945417643257292712768060531158306969512204015355257514869987640213571752821397400963172108077577560849627199129224247531328432749974432540871052903020308130348760118339913477156179719902488078386621327266753712956214333659331818784668813434283725214921658566168783852546570570190066357506646152475464081787984405045918111867888080706249108950742274971600309176459860719291514244349984339183400920453649160617766536821763688727110741360476360208891711870606676961068701122424050896307758313099154236773794887733647202071819977142174178358276745291962868035408012651867906567368086879645282462185779540054453052045682054352461741206330008080223219216112122105322191905408803797251234682161846651546085713114108280735462415398455119022311201011445935670737588305827275020392020143988223258293239258412862283857588381376743432216276067524349237545711564203698963406980307634712988659080505589516277743276407095464686060889080230765003609341965741201205359316076737228997814516355362004761562593152403892306622916141931058242484543561308430484092365205519815597578963993122898895353914646382064946443386023555200704825415053772355053853485882698038245127281437088181567710346232860180529477337799578409153355398433191696238858541541730563100176608796650335074720424679288741800216825057515577867378471936238713357523224281606345953319812692175586457147225158447172910235274677123737065078298550511432155363600169719447929727798750518835015781178623344474697843705931304816335165115787595672232359131315717188031113983218954576839121891820049728779669829072105575162511400599427110957675828980162847882723303863536729583170761106195947574356764252398573362059413834244497583660892246778378503957418301625727923610253034827072836118359997160008146282338290696614276000636070086067661356543850199955299717657090303000370716636012118923198854542849043507678247645549430213392822323040897778975615230750012943395576252895696212972268841221611809118544651126721902651458158612956702222157918970585164858897232548721988190286499449445313710675976510795990483957028560643556262610941065649734581442052807563004616543205091182673151664650365391045213009774015914597867483290815004517095411954474580092939272122684124314221856166272810578325385595178636410621762068116401271669371417481387535550385129061805772611336271800582882848256890363826747075146866575049802365138908986820473541122659533553629218364290365106029640112246665813224483632481292761810834716772218143584272377036210836273568359740401837732730951962815178796140063662100403109481962006819785031160810963618438333834544734111583801358563807605314831196461445687998441095800301370126444724999957566217697904163127339678282512336558709086214539242614782297527205099724513925200753585959300445794426077475764162052762878149266243582897515987256333762409958849769517255817462528275140926239960247656416487692278697089455143926488599593518443956351395325831645113943620665700832233666765418820129286957031931755582305014637520598108865933979129289247234341478668382414550766966901852941528750868566836956205811694747580658758256378304324495179584293966592943178685012418809217339014086013339729298859795597294759054847082307998444838192633113402328425098462803153289820288282315916146725201216554741142798914044613148778938311355437790149183805336563462549393474374162899871406010101715832207736633888524184966180133985728557002966892151249748055527451067383232287553527492706871303495735364784988739289454032609938078558007389807461877696317453470087521430881994252895890693981871170605850556698517664026132961474307758555962009684104897334645552915975468379895006072535237645352112406558208288814900998099096957805121218693510446229794868535094069832114385203609094493296075642622737954458040058544473034196348066547245237023982244636585094838314496875564841119071012925946630562916152395269699839266363854932390220732726742776643733490564650546619973664059115033573615825852607986151207227595228131448701333113716198687790779248366810404749203685894030778705282585399977367500581931253941203626805902149092628785643255758216596415055067655109872195277916246176451820086131522856017747387309944466344597084858006944450981578563829211251438729461470188938431450562830304142557877927124071426857844466909928202439225204450143321240812276514180005056006580650787726067045000463204570613945028420783757965947975288222567737620316690318218810215596729385839574629860083219583170337917099608924605956407179793593622980537879711566104913485673777344499664157257523653112937868231200491366550022950269259784793557607369999909440154538214782135636035596419709879787919432916599202981824803243352731949692683483990550983075044267892289369852279421698556169303000118104333425248264113175236467063311175958112389448877873514948397003632289569600387097844420088976874677243428284125726979631667123095388024829896906820588544515074499072990725211695009958564566061420769873638925496673450295012779267752116639748831756510247214685887558462319901158377500047129687719844277175088138661935293848805400495754859368252885597280065275233982642579214688595427041469402621188286969671289274720891089088015804924137212844357048712812423309175028629814084874676253296864893603489314077751484610252805740472292022362339155651833362987064235827148540650267398545446240027569064328530155402521835824754994843270329168304121531928461472060523695915638182607839927803788195012642245226645861796022283321414546416520586294614177345352908059718228047816652185954806211067467796884229986507991863792541575069023505061397719248097442348094451811344845050594418326155603683816279572563927555064380957461152617175022159392024157516640693983297111837846544614724221113204535828023272602085652995849332386339262481704960722938588390362541398869133541130960975126723672122104060793758600556216430524156721353877101959765484056300356184167473786269784374352133461127688668052940471913887497376792723920027189557235037244656881003684927630669580454259584206559393292284247422738931258135480219718120137533115374086189242167412246710800095327012821450546210693812159887142488379821349228695345165554453695513447384825223722818538215964617162201748248776283309821369180513195025858775690933321230432925884602632144493144123332142679888256793475227325022027102258389618885627924203786140914198066259781626911396033435396481896372915388084378333476016538571495459676270823364810532680839507289196396387123113365375548489965538511281471919440691535378848305054037165731540891046000928792506347057415199063247941668491688220217551267692012192947903294864559011380053703352141362972683660606873335999702510275937475408998016589550910438419786493400904774555457649450740775786096514399165717170282601872320041221977038414313788607481307834092362165017394554751315660482358300197478542782847107787925723866922019245991848222997670049115930308013570854129879006230852157051943477378085724706658747242371130610930526463186644207255142657263911015301510386850690903273907497393234576201356331124348278179362425625611785795747080965740552413004559897105576289821272072614313363570085087255681483992709433083601583529443608013585280102487039684544885182363820628117146511775993325430303654768188661985393733164923670670851157927616232339137191977002526961540235002969996318762380614750852509907740228839435834814099121345872312752147324942985100745471306448647884689930922688030529047314898450309858666952881831280346471846652759540113746882595141549927132441927596339998393695434956952667737114974271813416055029474142471772057566855219071098260214398907652336242122602511574573769151527626858316911705255938046186864798861980553916657604872555238433228173866218275432727938492001885704990414323080066440089575568864832763432964758050912381016112964508197067324843771119397257112016584192245631894240596527140686580016500580008896709419896646780135067717499749737451416016467184241116046249661861562942038467923492462806282085976317663090314250238351082493428779886013675784393724775190604280155914992569003565491052526114874613870495864070238294038364516581955163111595237193831913433975847207390465369412103699581781634311892940869462739923204385577872820983113578026887608718166227089671538226419536534667566356632365510509405021556811352703505921221337392392543357790108826989964804731550257296487866842554131812838226637648031426764301926078549577983153700819307840898076483925000220607652953104006252420176116959513284686209267549078655505396362410911138329829482824991969760071339675456375451105632180266453606953451002793438011749809064325131715217560416753799561789981712723242854087232254885985260617143927523104832302203563545953702731423454318575385429901299778061931074942375223524151429192083407291822231377872177078595802643777221023568990247561754645442125625800900214131622499685433765567946272474127294771769483777108893007639016294506932900178220976681047550347477999684160827116273174805465159011430611787338947230853002277258824975826698595332775834207171891178354131437987512210119718347897680534055783075429099959295703875113309251073900300196120804766365254738063309332849801920961549521470593289494472857703869140123313369410490457513078585267754901933637561814837861230449913698549674924078362281533136343778223956619650728141652834670232881587189443629085648612900425165635664659096267408050038401421452540936448498653816315764927272028407406510090275825060110574304068270665597621402212963640334046393644899311387202948808957082376372217496837564352190133453696239875417634271081681796613916708681003566389075064809516460954681225103259118218400464124464260918036177543177902349627769821629229277967940092206817222614662949950720293479152240853555214002223694420112795199460474013979352487669910303625695169286476279781485167681613180391062138953667926260693431614193198975349650238701817448722027146693164187171510593259211895192226847779649188156563626825916421763224587892529651944587352929746764302002560561737785935465674155462996386345098598349452609314778195719915873703489800205336878350763472582612102082326960973091058216925650247344420888629753410238093346579984625486332096287863273912552261049579680594319158078155259323638145661310208986589858680717785345757754344810156845595922428834964969096210213977114124073726194790916244740851608657910321137798328665720091108010503319539048482261218953027643005736453059293756703687361060228822014847528765500766955864398510401276574969164950495788633715746404489767495610834079639413349539493435646833147997759918233413893223725664921225289443958829414510017074537461428361205297664174017704281278291664736697522425042777287073975748396226271391963049929238466074902401774572773948587383394203949252398892483189376392814220943679509041353651456206603100105323977824032039790719732593247495066940616862298828659601688845127819201298426221289876855341702749833525489503812340541345199093194091284013629525255786586073261681872950001071234828442772315840102944746929405922255045487995697073350410538534445794866012385752091770650932500687247777480233307834543121952972628815984753277204289726444106904995716673951069371939773034716949262571143481712119683955615236711543573579945925700564284838620139273522042214520902354840199380681034009182001832505678076277784531049562871050205248886172048890806001865054878978984444281541716794780213789016759580935560497435743741103702774471949976213277633962895263044738669282623536687968235017288246882697405760279839757959236605413435139471042568743358736373860116817209975276907212364147894553201448674137741778015989098666175494129801177054776182294519464231192060189182101899652769449914802447525285206776116910420356465237695016400216277296734694080477769410851122134141301610503315118025832866607196852372435646979714020758779225499305086580742039974083046625961271993548648341836560534626376303679957052241956834760804051044219424976824262926090693176200800261832477311451664525963792523663911328601764249213631015872477154824289327531677911380860511131354813317535401637459533998288636375599249233792473154466553695630383237338729509278328699726439011124885974562026694152457358969544378926573499584914128882820079661154598504048426421146663381504189741062786691328391848001696299118018154769445959037699770880175500732968279302451276532515997498436143433925637243470252839480349567592382465497862334925031747514878477640085023741126091093973386174526991742083328683069690580031504783397965905421720092603739998424147076093678887043452864715605226877066245401519837691172405436955728862645296943420250602260666934588882206815548825852199843874626683460661035332049239436743436550259790950437840315293754616317751742836292338671695752710296646703571854251205978029915243874842673105813467598271642207214921742554093849856984149335825941416687880800245559211664625115319442709049640701805284436460927220995641809355194553244903185979355874421505686804618423075234293032129817439503584389915939458268562953332538235662877392557215598281045219586466035179487467250065339699239497549291158105847608532323463563329493695246738813958728371877487239490670256688998888110773769621893398292003997954543334028307537425875658859453353778286601895505485135995856650354920469621967379740004601931596609884339714259123328569850659321256845557443620789295876364919821887426520242214612391172371122317930289120928900264621415164786373148625099703057073931241118314833679891501241910437945693531090252192092751813048595113627775078365439410306498833233983439401163018589814228816324487397095328508530975949304565248060720542712016874374018621000271870604898590277494932987678222324638441326860020534783378739470109535959898183916328883457972683439640105110634340184724838140599222442085432029464673811151694460040812148444563289011100373856088371375072970750142029534192431582694751308469561516618489117998940821462192707438567928807845772441399236931185668025109119596286930053910540954368705695405189254018953935948074491004890187450748011224155690191235876553137521517165739058775091373421236902239636292508392674205281101137708390973675848076653555788797145771281494336805068447099508951026402297445857784574377509790896888376321632391015678520492970900421567511731752559728596213262458657042424289135731206596500355060506801197521161156938090636307598993574420899335911772088328425265083275347602953834135181203567920011649900367763266727678146971917453843900038090149052463840666227809605815184734427714105578988749287082793381010452915841312226379129554657419839435904782000610293003022676692619323683022645755265907166493069021150904597035512434720060370389262547890232215210193861245225756368858439094214422721697140025785693332152505895470952238772452390608303566161562062169667877612987154161181252082255264627278332169663619942808067322942762510172585603668179727910740205285803152752252907416745588743106225814315396092458190182844980783084626467715189927504893481399739556844015869684409032573818948722793593843655524787869617824790141621401411431598826921966387790778401628039811084960153650369886352678433959141419960652784153791325482968432747923842873180244698968989533057709925629785121770528710342660315866867736025730206819029137616964246682624488974162442194776025152373022321118760179159148734787106176391883909933882250749894944852775908285630593351778136839689460934174950754579157599673875950776631438235165798721754907262217871656964366227472218272371364395778862597833652097469275756583298816235311512833491872926905900225059952783300734722263871084831744259614582743763202130745955928139082319430526461082609068080138067988639863156298052835837877620555014404580080209904791344688727357487781405675687810812421459545654777829881763513765989795389055803768780333460185218827883223110371335336678600212421825046572477394183760614073021013574068825863027040575666827735764280475155750261638334649512607275049708670846823888396986382406139343970550747433671957958965088421877371599285882402372080687432281442723131772644252083671347184380952119340527495934385003225122190641184491598111761113483527660659897353948462867509011115784864941676635210651565141286371972844417152910723080034926008498286555296371653029554923376495646091221858341136268555790499821610703629511380746073301196202326871159945620319259716654904200980177147462870846555833482948356818657805787201534995119836664294698595480455026479819273012527689159025425108999402610135542056250476108176176830361997244898353436076028541653539185645064653734918543107533223857709962721722902183588175855893079934200962642235053120400379798641722863384382865053776770727702138973450099701109615632265344552422649157354284044260267436427972755783782128464562810202036180799273944993051765050926485925510033191952259754984259813819680766372238893698756411467561350636440683445126337719729782758888281491484642808792378878167217619895039883134208057128667511198830489760280207971018633965961097819334689226469453226543081964920993551880808356598881929267351399453934657959102200871355454525550227738108007748364876141582973060605817590374693474734390750754707550480186364160673572042975959905542065507373508894460315588071874564402139657708169701080983516280744290789034158059365143262916347357198333098644910960357790884934379121892139795999207887664859385080405013666317822339131509500959670041491367204556048413149002373731531378568989533507303811685994257896657403468501081825755464351844511255267840488636029886867920940732820295415435109747646930593789642382165811348657924998784262486969762106663239320831440012113349709340933746122575818047622440333075092298025984278669706082492662199091993046158693584228466862702176446833369418811738682366466526936357946700061547076582478917959150872780221182081761285555990244390870707276557083583156468679615671456647165612595779691418737851572617178714446264385110071103118009152726205548464133248538385679484817902829505477056000534223170776803282627508964760597432105032131706634918282096189862894596340690322304514683368152366023159267901296475204662930880679856963579304904171818046706777502602743516891044095978666375430080965037023092625840506547100740232748492235374806723180161243135092744391929699114334450205232014854195540649925136529166445209390879977152746522711279274736625187564233183099289843111994539918853201175276616219563963484672228758915298212249118227214307741324395243043648204273489166280747211397676880402434582560320583375022711606627700701871869581969335770995363815996270900965180251693944053723811358272045338638888396417693568555662389582243048476973637458310503881942340881890915687593094839908065715148184505425771919660840207044503811890065285744399821932426628613275298430615791032179850479119961149177794528384930263896515247766816321780568827571474382105396047271976785043680361190929806603805468037455978934073224426097278705435928340933279918400277554643749121912383525569043563780253918261564230167737857137320623329973205835923940299227497131758063076317493464549395955433341808637164708797087537283458029900656116273625443318939312051832007529974482032180532016744439572242372886584303099509077406864977272769869042957340629474830696039328015236541479727994450470897651340728992947778951983276682240559650416907367992146814852269793745863095751922789283997382271679163787511678944625834465593372406770039967056092145023220621850147796005972341483989064080490550867831814514658342447855846909577828210633180769771547352915526797206724563674426678910837254995680549592232838389757267960108538024561877100385335448081317843082459805139686854452660203663585531609285441600185578729833398701940724691688623725472598166199322141096948390878488742261958454481552682067968474898548941209169987564638609122143908792779083481715016762442580662308217407676592854230763327444069743707673621700497037372129634788702905751864161877879433396276422375284133818423190564303625681015226778362581404051932631531717020010382425189448897688024256402678585861170830521856024916225235354743273295288300839656143639612776886111523222137218352103831147227562463170251511023953243282888102279443520792685413329336804303345717090792769494144004447687673090491955787749279248592518094174785988286977687777059961136329508496786303852384488810677416429457241254383062590558666199349408323198906162041996981382652048281056036548429562428062795787513480782291720310545938183189738363061800528287569292916576601712058270103671807191291445044440494531844309651584185173155913826019870752623148855257691214145033529966146485332358436775284982898388621702984498131265151869516276881063650265391412147441236225923030609309483390383400274325686554948831081075586527566844862341185707436179346933752251926517742864878029744961634532841056496307152708351847311577099736945268760731118750144968441890171068768994927948020804494282444244316023822119541241844131114100567748330873361722817733701231776962854982023910928628815143616133157888426829839434609952249350141703099911634247503905752897328543282166398409827062166231742287720856579717382773172753233656340718759201655134304031800407761312238242394615964217614470946467763098176739510044879022628954299966023386425500772577667799999304226577609406125150934835684967798046352328923559109605214014128409755992657683552238076892087796415181196327953431859400541297320051380622520019586662831169562004594187602365365232303212692616842820663931814206031281345053342677648321904417366963648943259142040751561249780598945114068290503709480247650936783134238252787727444322698845408010864247079957475805404284105536926993422728150824929745402289959299002833608482237851967588276638338873500500709984931802961001787031554476681607693434695173263211829184423339402820633069179012182000782573492499396760459058900686310943279876281046103752470183810750272894012991640470518708084952670853059016303444795214167422453040777561047428943139536429262432854217587663704448461177691248736965227390927443586263417087964982631939136707212970027923691124880103977547898098946853939675085419430179142941058276203137480426397125641724598914696444843715061943102797338545611137914305968931796919689535627843454191867874078090849698585725089640760825773345398541626437369630821205348463681134908881756386020830013517486642126181472277967821226528223182357229889136118942905509461837728895063578780630140632757724737059284291818840769434634346484470786240152378821356008940892325003026980554728062530591890475980360753821392481407291281893930327098950554865861781878495880528052015960136765344003618772653964560332852799053012507215138518969968564161760027026127819564057494046368522138941831919833729868138597166115291173789273103348240095497240184045403808719630676347158677808589540366632221160374866842869295033295300711698931434111532907779706004836539483823786895081466904370433983691959088974952098870312754349305576793553748217153916418615755014033967720012221551198472706455042663596402478507379327091433927362234156668335413175115543147047331643030823174771310112781853643842842112178123913792835515093527722195581374212845032800864424064260346497692178551328692823726466089722324537452436314707102337532320808670055971635444291785466963718770351145944864556004363928566766937370613703488183831502542834737787523026887008298233095507446099390248713959166798824355457476298660255801017225846937375070214942129206943241514561851240996846765309346288529912770591963834211765403798250295141124690700552514039830092345118859727685253129246703689130646833043229823216874583296577615567779245795304743301145534490465105259739610010081906533020396768142975809625769830350373470053911185220875883382174894487696940327736426425349623819297669503308857518369591373688610451944723229711246833669437402635020953832815132735967576972061920204305829212052119312646192178940014275426217001906877748118119391041439534747143255701754509263972608815662117007980905214342477729492740738059091271309191812443920016201341277724113325560268464129882539463266215831300958789283632969413756209770779879175823785463519478197305416936785545355887162545957255379286675697370533878333116673333652634097219635648822305114906146885370851768017592255136949635120781076110039923598071268124118586899818231952459589945204402162779953335676570722932059705573403480160972661523353772825216956431521466863942152038200791839105445810846295820223293083661701531603010952262943229246319502417722894773375246959995645164613243075818172624503197197703485792702809626233534213284438524450169201648722797560599624911638827004383979972753308270957967418648032558073566738519667308305609420851031835988192959578224712418875971251873270306648698270861730717386612623887621218250982511166525068239694513816393224027087869712043239581258622379196779840158622300166923140253794775696058413556899596929858341701635858629616331254879701034478719882755294403104825956170243436956845249159121467054014804613508660920076719472289568492906036584114871239242635075410064274187597198357491955866928508262722390388173520394130292822926707069508530569466085333439802030850127259371827530864159671691183402592569038122077711234992032583693636427854632600916098244014198789528660142912852139312374165982122142512486891401822789175550370676544157945092818505860936560190213177210340873758693847496123822236264321561149777992412982696327625397566540680068670478499345139977058640100312235308644670701136257169738184169916214011560290514970757910731139836584010028457993045322103489527663539121056437417934705524001230278373958212570378288027881224631087648342578659759877829790290715040434791544257321641028187994471599954178676475557155096422131221990816761870316786023039266473859754164681911896373335732379691070258557392453079583420899594129149261922590299603500670950244245326356166887908943593651950322974129161477705413610447193762921830651438539403554713584368663355882570816363698856152699711888384181970007499822056529620645145264534984078799752075969465128635819606375288164989931010133715257244983401045176076363370196228046351428457978154589027259461170069704743973614960028978080019323141223465124986775290620366744313124176474418345278408375150060069109513627763790504914958328822910798843080864280652108362438428133509915624200028790024583318888197998882326458237701730003092672891071402342815887867156078788101446930907427425488694873997900122286302097664546485725045290561519698523936048379614377751930705602954073162727059766296034868570844079513101833982109036132129450080869023522361525107632808315176544899639124110830238451780061417532627135036288021061863161027923615160374490208642106894212619740788184658794825020318846846419845702198594984338493654675398512226691232862703817853746328420199438582892463353276335577591260046560753480021348670479908306308647781376529316674138899314511837965025921871129090037286657859202481989289062366722902678027164457743740575414063141206432561799643971737299411679399897396646417060811163014412374351965124281191133143136895162713798430208074834808060090075173706116590865348697425873152863507229424229855421742631367040647130775479193977826326968300117295334088619612587744569599900087144697406379385951035811463888153306565171850528422022116353661661187498537191135762773261071738777166635713560660386629211852506458668256689592286396721969321350035300248561696333779227163450637533939438420285369370443385231965251118363915136922350424177926979862859277229555392686125156041378886966566703901723134243601089012391786929222094230478951461530629348094772900473127993408426529005283184638376478700092978131919434449201938013495060864188089110929987809486728257081834309513115639307611395168552552335333826272024678297100222766245346155273424199338733928166403770378132452058092213722994215096871430529683829784307712058308821177953913280174017593805825195325174903003743102645124415216297284651360957246900025746547107094556706844435223866825809327131522205819442451694833073384058926622960976722839304858911561626154920268310265045782665665464850794187748864719631110904541692722237897280324728290643826867123541113466629112937565510417166945469448795434626806542472787072254875587247110478229487122887597539440164146269310256427081444953370148422198937794899898945363722561797463132918751348362754169183705042775524573279843561209276145882951441460262897722891307379988285648839591878827119624341122036824607248505079501567420832203766862687555780149796204449750030736475538686225671158081879751938408065371315670003281853610541632403547176741222108031151572831128417731530496137155719784410264696656483249639034293862374385820935188351532793791743544480389504905485073932834434105724885935081491745645161230720426207535479804006265399804942286139935112461779488926025379839947457025181454447338749515995691799195195765704366702967354584618261169438398205084148345663056695403348260342930054836461115631164886345919594187108738822629394873930325786121989541256102567668881527747039781141501229592803988857279302756243785557910997846168688231845361216714429274973768220869059670925995582015622028705438721957896884024481963608689867788257224352469748689964261337301714707030484328555680317338763296877637435674211638454489166942353132134069147149458587489059169054030760645428769873036320625542012225303596062557440997009601821003273471190334437872209026942736136557255781364050901768869548036903058667711532444265027236246112883077876604722033706301741618061065266821696530621892584488214884959552694038367112804774924179170937034994694825743021357060926902541272568821340003983649678450694179134259463376077616707937572587442362874995301725243888823512789707493985763075246328187319546345632147977512745286637703879821121616970979579974587951772134361313990752184299783672675980999295297514999982481676608281437326843378142016400808180231079622865697840712401561340398363263064632292724950166571789532805165935767928701784896704684205915550140097393989503234258072519688225171712641842185367177525976069612407034098653425250659603346367813867352354669841900753665678122501876697723968192676835214046496266709838163417915131498758790427385062986671918349041349006406450485792430837576716411039740574740879746032991585551447584172409605923060564648130097197443640561336293755775569612486421622883127069334064924057927818294040646187865043378767766006244902804771439626902683104449174467350100864391701369955555593567427854640683639831888950098803929004152478505699372622348036689015961277981360088360021904598866293760298249716123250973238310059167453828132124569028513585025599340247702691446432903796600740831511269164714611380541404282419979710371106211841124210870087802466904750869181195459132422861257787567820291225484710254267871559971451384885606692444894715160866251717984240441654137413840778772780251119290503250009116781469298444985928102121675551156342557433675764663676479870078174170606632257536356440750508094101022005170406478620085640138533793011710655775316405547535768895563005969608771715575666927354801847319676585662277018254288970025149927726070188729415057361578325829324339868072148143898257252393319213659828894857176151523015741682544918993134692357245418465120525550695903959247662763704561393563326385936216921029842292991637794996429480945579408984953577422326005670204677418588010566188088623680919617993460975700874419170406292747312661059227098810250014279460180131100209922519557895190295663811963896896333317998234843208754489371608426538373206186858161559318933933545808746065357092496436528755067119653484291721923332351209663907128103494117188964822036553054725723164232103788049370951735412133868973913103003136627823609155290564181254606556418064593107975489218151984180990169852201860894248952220000158326023074712753286312616160103282387467928677930255159688777489919821829758800390222193201431836727688830010560344030915841537327079440614159972774660495375520196087362304187450572241922200283625734351679779445202561204778059855979749454951211389244516989952085869615998130851685674999522586380463041830924365282838104647360295592654146201809685354890281141153934741591447126485825163773828922822106049847710264695948882433457596953421355728131878232109971004724554759605072621920226365721793112087494653018094589032902477923588978267867653203075823354902116200390709635027706544346083386026051101177316248638792779486537245377903630728592484459434329575997147788193903079480407692756435303819703271538735794453239008491489588343626919906278455871894028019353247365449826283380235743581609946861295361061119110575449222728436454343474116055055285011089057419755650879933792606111798580126604020753014534471887722782749299498929416388593624458306773139389521271813516054759416580133527054514286841022963656655428701526751838963654268917049746129468164786719096353740266158221284658753121086574894960796364805716698107793466661611178605650528651060820259949770186743696295698696963354909587014374376539644183148528254810185535209300524671050445459594472123973072698286641446769803423676784945936351637764934127768289165678549539165797553370549422278604818992497514815723578663431967182808455100237702838931126144347612798711482282280542791495242174236345765117109409766297012879743476751033818575884367403451429672417402144478684583284775152221779051973190687107601822699553495233457047762757013850314424020984873959764685589572250865286042660586256049675043083862761094573789999034869365921522507426073901648347759880693984051565364000111000434079153633295925411183443468879334835668367222083004424557900183842528554865456463665484640595787807995807712689131214087424202062718943043036029442112622808466360818818407423193886894346683735324884163539882048165181747714074238341250861749777284489589604413255779652864659281690518000395505365145763341340818567984438381409358943863679405591880055832921268125514240912942665497829812972940181179296913688721404771741363709374463983703569071616449816614653638529260664708585191188655244977527200692761261961850649104141578523293534124214755007076090406267691211717926179665210583522408741204472131007526946662593839625178837932532323595255132349370195863940236131268239248259510440531050486560483302280051800202086046153631956048805642699559994965095037882329384218076995103811063606463996607206909572995534496907691438780981472280047782366130084133291181166677570482164007993664195790043680283750705154085054270144400975575973060747347869153622489699513944197730638272017727497495589572059109032611903816761526938464718294844698999620263493041961743233016349701636936825128500294729719758027054245236204681454323257157893242127029836453906611965278580639275673557501793448259280300416409208589351699562653098578547711721579104811064086411814717963048612729719325322790815376264066432484730933516405799565763571121661988531067605030580393650959240915675503457454254777538046023192398688239313215113386773032827014921265959763617455344010685290905366401588067508507875212811353758010413250044993300814694705077513902486499612388850798446706945704717364992748967699198289468918180738861392567403662829006384984657586661233117893057095709849750597420171297662775604280967300247323454127399303942307703038394082582562929403069990253915056045656074091467961075632787922707444632326897418195396585372997534244194395020554163239181576819015563779824931377879948731764863043895024581778062988813890408971241934025077571539067529061270322008835752392860846194385577454334991184879253511772616450777087360287820532610683737409981931526903611152369746415325408441465493055753320272669513982991701359826364555164572207270018702635832891984054943081281749950295388782787234797266789129357347735358609680797084462507633486569855623303103413681849609017807287912508111322391384496765429890387300854381798911257206304947304626694273850449144008291614982566641165724498629982117723660292141098956975883045257426060822347250595988821284185727729248858579391718788076906007458958853218125272897935788405400444419643204072608112827533185862797183854724645046741253931647817953101232098066516678946269304040741932034760380272083454455735071135615747083738818735035998251264089456833268465736977842467966343707832141682551583370275791000473902094144980110877174945592207453006535491743314688601694875488136067428379619440516245805900592160040444447356861327578706176635357876215351535965265072016261611905177177132967824071796360926698114270323997859368574029982524935967766577354784522503857756672565325760280122493903652037655723949898638746881548404208464898130646190740840842231057651424921256662242253807382577462962232160524919680438467602307456277632052790728135749639395067557027571186859949680977249891818372522626736860605908615800685752486108612737751788573788716022683290670259781687051869771787612587661620313606028251851885097040251370160677529901199235756943559843518451543066988341077141386391660550972548922507566762037085930063162682655105879316175563929880904344240161932626777751879971392008901265139694726511814115356868590583757980269021422424111576831708179278498753012332646554368486486151998579006599373744208950741616997363164594963517670907137603320879530938377794037520686456875084314445610302215074405228586406717067026907593933847626133161678183389919867928917342502439637269448997430711997412141476355124050722539395963396336794431606644557447544770706603751505356248187234839754009975007400888853169657293157359728662827577840408469247579936099259177999539176437988822608975714738070955346819537183433284267501467790166774559011843509232801421363806777492059347531492348072107632114856733122478780192985543394167478260243467413435988672640895870323834573306302238967952883363581954783948037747621309614574817419053003866903500901071908951018173827946063638227752558029619181175199709308665776451555113869573397453373339993577246604406417019044431398920447779588161919992870294667839952076037150205946309829960072047296983613005278553936468222071766790647166666675000223779225135589242811734673558278290891297631716310631910466065309060813510200629212938134824493212715114417206999270837463943216028646533491741630818720523819374357773158490187761944183886475532826819533659306414601668303536523318144458290351859514773053721280625950326142577144656964495310961355931560921600937602228126419880148016889375306460864031018127214268800923768963144404175536605994479763395581191666485970219953942129995821588350510060385806076503849650724120481836164521359105948526278111561258842302755568238770848009939197757237875158806564484696145097002386346167270310782760606026665363553825878354065079339121189451460858312047379901172368507498320771036415432239653468862341857772849356854674673863324764105395633032013170467995701633401226305217585785079524537665448562105999669558496550334535728540714820599109306987466180895082108505852400644565580462131904282891922939687692226962527076124924736930313492545200089860884475349030880773968960622271117525504959286452153748696711371401766122218841362147702172245085374988476106893038179030627196519275368806416482029793879419176775672574815856874079414583653809884207220646750711675456921502159681099114735460092690493109700447869675400744090929065062249471683486300799645703657413711040738465800593123835643156473453335708900284916520327684098470768308924629587214513975879828867723282277299044938506219689158222434639161952963971696523910284517336509837396767188114477321528708578403522124483045644692148104048768572452161415234564684771821426173968694824366700039903774044267235243280593849987632843019151831712117526555855859541333059117559233140258140286580686419360114080209892708014879937072670984655018069704130299023158330562606141752812687958579570386653790395663122293029326927547667573657870888582057008096012714390276558115051164169039042861149905411699175902013473916487446230279338059330878851568407819443253282528892869997531886650512818816109279196462153284784899164477741351412495284340150637943891477437759526013084610706499419913679200298485605404678586689410897514003565540423312735718326813212686724456315175546665371307519563514257105636723420801084076021878185609268798426993541773156339333838155226257488483275478770121166669606336004219065013140802831206889739613427838674334936995157054797670195379855497561147042277000711459144982465521825458705991518395661194445938615836429005132770226919711259404724492249460486828058973953473943042814815340698378978256333856996560901870272941505675043997652892019111756915649218001627959982617857549954515494380000662345789010916930499699690371087473003656207062052981709133893704149845312697799733295688873993705523544947588703118827580519847884163377461255650638877013812047858222505082702148135706796256710392554938113580095875432782801974342702394713699461035672473439586067821164275386430813763006463341598458361512694419109682968125907662095943221698791550820440182812936381994691528511697139176703776344731166179250155232214017024530062840999600988937621965450195548577798460120514981730528212081730581677584411561726077090851782706187592169685393756645342425485874670586745703138778694521812885905106914728917201712709486852924484662277203438035615351031168129469254462491491782152186518081548277586395968582403272491335823146896907106695655551404254184316001824240044524826139039129896551677967916973639648815741288337635796651170435420884742566605076968763126276092115549517225535615091639637391981064029321745929994795538113979747222859908242688654457233310904725541286392805904926071461000416587341184814245203257424802542466869616892715606322585848649512416981984852031648569246436850669833226690379979551048423425606958010884899240503385792085191966014147816770892134423231819154984185764045800934520128566414814840831528170164475026161544702581877029914057200922120695506526677654094593287385242422047848016535063037965168316474929670914057682284323516777733652979932677388313159315343409275200699411461130777527433824403047286169879003134042647643382749385891137885522233860690191021742803009380639730170452479992521081031383100099595361101451892092051376141283523999895291904731396165053665769645654026671118276403145568346070606370582844776616264050516775557756747840228340060338298766577023378845000705306741710024901944517099172937162186359183850685174469541021597940293850456187129125002647189618346698267607291422732322139812792362562655036709859592041627379968588939269295283115744151159429072731383931177989134116445033805710519326930657032553861675576828803939320777965819137276785957937057365612076817889249772715484105235486439590314885800234732060797852339510929588950086160360569752881451705508412648302866528931167007263936436617141916704166626795396302512787808328079917211226620674453027832152736530500128460967148837265188051298015993321676210231481602351935482608838033273446670155295584378682372300887717174279272197947783356552844632818880371507588096664246434456879680361342373614716582549462423049124165809217497023545225680640357200115883964178116224431201486368623726517618220009609067220496706753613390846209335920486169431207257141192778440051701767288535824851664923025512109831256216128727757438342282647982911799689097864627369282558726462192672802387005256651491195220874623156639483331121008497865628903235702781750890473619938583176599722020387434360765307975582608345280355483153238986106362199807390733975987428077068674772787496773119830857959680390821686799921634001693023059341848036266646426838363714164525969080160689560218649504617201633940450549724750713707463567520866552068105861101247770938711597960059783377405209486329323325416047175307730913168549747884993115743641120926828259995147136229286520386831292915775147935040025760166611239178667305855791898387601084848659998377971568741467708614458062739384709056428633006256239742302585020699992005062718634493833873779934870934886904240438717913564551343345284257701435998714071172377745129951895837809064996476058177546188669408164641320525481672767756569447612871077366672361130705131741667581500115875613195480267752683996723684989101434219012157975683029289303622554452365243420049062498543914631968380518839879614700265534881825110429345162612016254300328463864885551345247891516501736347785459540082313096262694573601717815876896408386687465575872043641046617416904782334653407694608152044089019062277001981642290536739980451170259855696225983763841179967858448819632479384303081576119060659533124330588326743157471881452706936764248088133322547114804400649068195143528256210882505032791870848695332971482489547064244934367440345741191446546475720108234412774342333918977482216393104771472705171138445667044195989361009782527757932064962422819030803003218877824738770833734061931628982489413815963146056276914693670387458106829229465035118130258572863740123604575484185413100393815836655740881525924453256020490407709172448157098405108787470702616900620305353697654341070658994609712856965757158133240040039378489949591911416833721982245985986801731245590321226475176283013188307584812405596439953695855756481263361878219098131950197271178432358092321933830116018950208385690685472682243884545741757314202841364576728306025799870083207277040330985156974218229089448239479929540909342683908905596609321094957408259299412934603682363104734002664273372945488483044839841399437618305451875437823640426047085577766065461704217753029386452579237656996143251949285781416416494426793938232099117795891359718767737128866009959793262986605689469984418022075402244497293424649902801833266554811878435253999291773033613139882535724868909569873351823797507295644434047892095423162663322300794906137856677251150851788968954519734606173047342737835597032039475293705923576536861192945160286591589226110444707764276838030317360163142579751407502105235711809797600760167562683991428649835273366788961990442872689205626668013726955735138475856303973250173278809649987706398769017815730760471609453087738671658075899118365324497357663982750895927948016684912233813400475440875636974942827076112094301381779043440181097862030982024045183460989284933607797804668138265497794267523250867181450977088133913737012934153223248249133543335920956945509677454521471434323232969692747167362352652375671947663174408797964173984668162348607179064816337788666283148828512858116126029694125837140302895228610101175583591433029724370108500836984082612012634940957207434975102652674563280199724622688513388763300148220032060896857489215343177376056831804716119930777374249423724714304050207040095456772037407622735224131508190661973410655197626626678204549849294159934526799380412071956633325163120585502743040278285910183035836068960592475829397781282807124091391082963039250600641781912310718331890413437355579361098263776162825023462745866388727933946319056151349625111360561904925466048761198526642641112952357448871645556685518547189994442373043619976232131112557853814560121438773712005696554702337021139925471999719343242741964873355361536569527192562496397085741263448402476142595345057508570303874955224494581341520256247419243666866118635474091280143789987777042760075016626433967851858049734271330932534080591361471052325808424098262521826277665698412929480159060926671220606341659970261908745995701532464382099572046091374437637907528412776899402515219524102617667783988761011372844682255069850948721648346518926811122246469240730837472741828502336569246333185584425873002295052043296174710568442841216742005435656925146636566427020364304159394013983692823312613155774440912170075016502300943632162721785596390673328959504370355044445757944044496507563074759811000797549636824184672151807686472370136680829628108577989937246677189734625412346107271191812794197443494770958584043597571568856746613205529870492163718984562052534955551125461970996478052212460768672476155459370785661463555929265598276125011844797663371444644847260730777361381717626670788816286325552163730506685825091312980190191152277278051408282441284164715884715997748786646030351388769723208897954405699611848921838883193174788979469762773263945853960908596141982770675008117153095682873124409288085131768474451840485619351847713714849943884960706243121958892576519466152948183959268977259145956073112947254938190619268504832561133639440981391880958181241405504511683279843330183999311074116638646008633675211352100330888445116488423961006905311782584939790108676326805268974965625988814899773335384032499577564859539489799077461795687681147597169252570318473193615713365518077990135304804313177860744792031275665091249249808839604965763160853586572428855152151502690297404624261906680468293820092697886100976596900247413595921080385221492611177805516753841307803325560072053204681123684637826202827197060992514548558667909363485462517151734848342230490857617919918254985540473419861383787410896048097931342900959558986807037609976150489930730397349066910831494794009237202579047073589035731291054932299450618916200967854336823929681502309453193394768532598185705408931674895028931001498844896069516910050236592139581905831717614042634022147795709037782965061703720352139951723074741633517131310471087527779226639812529644785009795195526501095953982153415331493693967324361059629618412455477490974446258385567854647605055755422308572580048005395962323362773215789078284602060821100345818859035044204846691427114858170405452020337449911462379911371298452216241118043981785308652752383205259788565051170731960089059616631007383787388549456758588036553094484257215896911730859549783075200955970463469665220860622617916436868713474345478332631064283720399409024931955115279919796821766233575266524841555169564163015889179225338949924485673290266988442674318348888405160810258553902249392471945810773542536780780036889918996512321909254880805900897460874366388958148498915955523017555419240003206318747782735961914656918558166813942294692741945847579637409920670515054439266624548149849025976010526899630614440357213796478536552061751724675727919884941654147552406641882725680503860213180953820943894287264209527890211323069179759393899253870885668659253540698243544904004360508392782407679265889406334763880719296748741548309185069558130664679544288716437822804388273536904475339491029299040429223842577409378927618468885166877167374117925633041167281932508463320139662875129022578175936508425851281178454748812596626599737341317200443426984110578945381877774906811661217847404651542068348800819163525528380760633068889592509991158938554896925645682101265492290669532854371346192550218923790786365953549685544303641201168388362403245021774742017584118346625254333499228765427643816493078559498179347654178092697053460825986806624732000135215625158102167331106111531707348524316369683775406182650594478663758531535082340998685093427284843207408246145427636576095611671753763084767318092896477424192707475404159183441369041595835915581450041169152527481039293372991239151760945055044327224126099605823285319642512420084040783746010449511174094292928074724508674114954565084800882620050574423617405777296186047364327397673891701345188608791092085343329856467221130251359205278609123588241584832854715958461260582881981229730805031865038186287633038536009218246387449818294042911953830113317383748640235140568993606623347884599425534722716736780978540668237643757194710004951235290616907158876815858127243652218866266721514309568825022615519242654100763415326387193385593638851764985225185481079756262346801955971915923326822306873862934033122659480905479001741755233166096648573749476916516272765136187001739690928058877440950657642436119476549186915152341345368720202995864646661762614954371590918759664071618911242363515099541403491741292564959953528907512727363595179632285508240187328062111285773730164812909922584982518586193730387407389881595599527719602631083720937962470620582918259797211505539945537822001412279875659496320787942904131847907354607800459697717487954748789633768981729655386472674783026094937389535102083893378698243597089871657565286219926401219493003750195472551886527480085616375266049990348292983351095245011424473042660295880818378316241466050722066197175155839877300652809056867635547470703322199313732411077099087460399610038907252118189359995442375724789400983066984680785789109296330632528152049377026161928256024643296682074572426057195755484223446270090547441277576418292906548796116374321005499862319070127713421275410579328287199689823976141505100633036249491859464189980624210118296323932247953679910807388824795684316449251009168697784686580550283668131801661038749381762498421417591930841031629082418026728467917961111301682034341946753898398399041923810107327915213254129612383311446510457897515005543461352138380010766389161931414598092621683443218255179428031617952652497257199299383157224484504667606040443998376265460701077132781438406977980234005099374622400398155282512653587497495044360367287039838921038702641905868028319586351148341783543559076714583902590655541774356361526417620139314647877017023239535319119963966749197167872888732759883374242075597641730872276837099357778036965286597073072005810792738936648441674259690382223377508523518591297762867885899188039891115647722815441968248355996025566754118532101083342483782378026117853476223027723290760002539119310778190468833763039390374399051000068639245673173195900468954283888209807403784425598941104677737698087949994940396107741828803829560726522242053659261092593155546793684309062734727216215613170711633040595737404606085867727963844133571544593913468524555296692384042821182410779741678549109859948655145186880078210010543192438029601140487520559789908214184679280746185908509122374248074595245447467674209999027384459138275059066223837456477296856553728602538325735811648544833586359611774273214814512968969594514838377146362962650537694667208809706342521605212756448399819002537525052505429141569335129195777457307257003442265331986443981585692775885577808294550207225315901334604654184216753989932630968095775583757335392585573888853240967999567105331934595314098714292715049535706996190560604655240000783319398973184089838483255067468931319926382819162078633824489485703831388946552288896907596760292887469739424681363746397774025884773595525578481635071275573090223667471703969036543333067467073708201116310060483020533535791576940285619170600663132011785838951914614603203959285836793606000054096464922760931430926069954646042310164782566539477064545643247164389084339003652334960441188075292172389700837528294620681227336042842662794943253911663320984546010039942778383198389274896762508915643538851218560977613709552086825155891200730777958506990695218472878209454175476555542362814697251523452721996939366641484888354441482331135085154229385437267109185362429384565941772129984991588106001154284585692882301277563357665949720959053601731591245042179479705564489782454279684493988240705278281976907017736233772991230977135291194684630264156494997950418231098424862043274791495193060000947162890518298574190497537313898397424979948305660085964442830590725642319547053032226548879546346311070067215076974414838830827534232470530046197361383802914429648975508976378521209970074962474116799914474367240405982273019404605158702076390278280568194727141661798085572858110182470757952691713401181941522892958709422111406005123023993586128789425600028998618049289123166645152434679353262061119357820960246752527493248991655413724699506156586923830123634958351264890253141387346186949504451335646142355503345216801901919056847997220406817692694565558633355871361900663964145763975926182990813115289003725158286612293299597389318177212970447065736357422643551717458381389781970142082041729023320011913179735753771059854493450555469241191852804002393444795635761297005901315639917660829764168572226485850694021264740261308807744900429726355166999865567806958021858301376813694712431245612187209771803827176846921609345695448395454432407962299472999114514432582601606839972143280169128068005520403025111683768393682683761772669590174159045561244891640859048690726714282144847469528974318604239699886103222001202053263962588877905027425721290367247361339899614839464630843912183636622506621946656414128440671533677242266502451161581905876978153314121445959836276708651122255268906900773529680738230924916803630754347326282978320694098717607043256418761009159617319397704715847137856082364711822240955444567353440823377504738599723096464854052118461192110349131419931029398643238428348997718830603410605874501443484723045445318683574424280213778046728441168746376350458742226809656019784100745792530915138752963077474492473557229640065323141216268512290052044270426585855366447581839874718765348633811699507107647750924660885043365221742726254652431391618731829773428813438967171187180852504297383447574153655597783015641117602511727933288685403833361964335003581540889145818876811713424810848912045118506143335807924784134759048026127049529382084403860700842763390785836988263685717137084571325445449315129559785859796133767292746201014123498198865516860107377500979435242831390784870178811804942852681321357559843808116277352991788848050550652548190178829940994790042305114146009036466671595280182844959443557073174680312812518726765429378680513301236379275983496206281283791582224299495138296858631423518345661291161491279756455335682067137906855841181614280221273280843413330321467487050826750068785360668597034117388799386805604024705880479229284359221510297718301729317101242534961051803122630684732149481701992398098247386958794283622143445982572459711149750444685297464318059700737100685054922250353268618217311801850903372292203307319146772274002646947513437117373973496455623334593388364582341643157218490208735226102434028009646578583544748422831226750023418252755827720480406867212283471485111552989358803935900747886168856228216822629706739392487366315665324534510288045588045622601568281565969171841456660166740464066313168973228401978218236138685337549788078461927008040072257724770783508120096762606722925610631094680885110254259302923591967390702697664869321430671425982884578725100359381792083882201997572529274923170374628604421529849791490945381492963343421388795012849480596604611306917199264114079376498674090021974561618709068499708813752077557932520410836412156459174143231625169815790490339542825081382733111167615287853931607938110414743482954893933711647630838959602822387207546944092637065429932792452350326164076699571170214060808744695693414887606821670682791235133909662921506520373759175392190454993256521488060950002433176117221986299635958486739655817910423690788023980520738473345686492748555925311503564856977008308581792053563360243008476689173301510594577725483591513835555293647832875556207319698715616787073120094118361575427950407497499993442357660673446727161392153724430675941915067387150207186750629350738846542033171286805581415607303831184389537746900387631170403893741359847568970904032981820606818617786989758660489841743647488043277933313783214106858237317077453286189473184756510755568743712930112003545791904216647402702102802642146242633497825887007447546027862239882710460069134515391510633119925294763737133921344505950028563520530491214089846494001764902647813102275239601996080278901749107998135782218923741850543720014834642582391389811451940614691128496365890114926567934992959944510346527703670482308354497081311368411566258691240453975055264912692817153491224346105588322981861656873962699095263956455026377500200917068035617812916952902713155437803009368550596223924024578718668742658792561332878641047813802735224234637667789309936929107881549020505841153241661114168838584127751634900495178149219140706837199165043205264320096578976331469947049343764030765571255999588896657003385701875593997518430514144703747024946569900079189007610955693314724454504565189567522204255211061911311389155338057031014545754315499660379649998616497385418214394352501999742202099882135784131781875752811633682784964755011186140365638256018957928435597984787694087528251599192450725744819847971895814604787229943653989813112268994831949010669522865462977386312699971815515426314230092407831430338593525084363180456430023031997061630562692610841861767072586838876396176096417243032578626081014905974825325087919745256942916245754532491286647462538083873941224339453361148103109690333381265097358994942738865505600698432819368615113456904717516595496916370799396634560013809501021629415779766512942596069780680265863412669397081981426392644512243014453037626313425272739584754290086271456904804448173250472763887595678264052678869882208691649646496300711485825375660170225795869561048940650332384533310066757099910324074780936507015751144144527764292121446355001592376486283209082744371023554512501092985546713894740469843378897251011893905003746899772794558211344795495168185091875696133304739518075947199183160306927152195298797870319747414093330132172710118112978126154523477435654724163408411080887079006800028902344087597908908618453457885180913597398901875517225843749198094967248759451681244080629203779505725593301565881830401670615926101523306674425244393171576446345772427381118910672242709146019069204979750772965955823062523381091081709711456725782277746097988559683455440577220866569028541767831794435526982719873312230606366461074388534430710282122176294007987354038258376267403458500407265593663351443773546253050485102211426639379733074742012915837864438740547243789905159633030507672987836533769822333792175076984881405806056318682626976451916864442949740314543407270611552571322004631822629995364211831483395956525534869118548108465269560801563541333573851995078502617339576402266707432441968138946763901834469640931303479578784445050340808738025869822666083992941459920076653114754060897006591048133067758323853502219106815321189643506452143960655078475148628273100317573718477494830626162043657265220054792352247681842733680885326714929454215036761505670496529798267888022174044974281818283789196742219785114283467785316989686512283727952111288577310858094919525610990926207378586632719627581865267949377338773384862240567179082818436140770267633440463317156580713789465155321648543882860223204248192978632916616890192603125308316381547855721464100110652949415177527419680438095041790968952030009180417060553684856474342049310062445031981351800502811414464091139800356992166092911417067746962880710527587085285357931431123935008564719545466459036372518303108429804640107486008446035295026787904073217162905002164997153619974660093697977789683988790622949704752862544226929529809936327937716289706549753599698366198033120309828029326142219342858529122862154917423074778288154638178147584599988351336612214531738402496951228206672026071536433366056751677376935343239367905847082127082400418751457880926894082503750521300285347006752976288960226462964512463159793605251698845121319092683047200094346877304227418529548048242821704648196096526359954793082906006233058938310733825534190928291564350099526014383311619573702872619391694182925108107860254754211152284448932041574580803304100640265425916842581935149657404236666524029623315232102399915142528567771257784109873681198993103894935010148735247555559014197352970090751554242673237379014072815004701586969790085223585483964758808155126300021709087210599037896332652473266853158937375767146801612635967075225400349714618873099899471428483778173546343497844557643316538530888698821744931486178075733505556956707125688625068147771231733457335078589008280048135482717368798485974944436393164744997993784460154213149533027518519260676439485924147298980401804097005075170267438306880896377329215425620366218431524929595296304936583046952654831699348362316557695233244245362175697405958699422312088998672869724844685293493304935261848745508039593785729374724096431870891593946965811737195601137004657033184350047986747228291901353838983423992461553349173210702181348934860939773960282760360069902180238999095893978193122849647145889152368146610370126902075347239945327401937351610309209544645157582234246720409316929142453180367099871544531728200436476189500425231835032551752683131546600939398572889526968455211397205002415426432384084559189612735619761645576209889961271868387869410749514326307707245816656305429223757335060594677322422937239842670495872047600222992535936287466647483351464454387018882419980367848492864188549931954120532871003769751442465995029174724530165884429584796756787053197727800878958710994789034331628827065584814949243464017108522042060076525597628961207415973624439130321755206715984263645055544031222598329053523200915604627814506752779258398299675479764075831059771271450105177989551785073027258932623419766937840361704763873002354635165275768350981404624328431286772583261980191412446832172294023241572503173238241378748803971836317008055032715534953940282580531443700276703438405823829060042669495518105327034117647933072573344752098605498403057723086083036284669740182105855418838031590940016296854512333494090266061502775582985258327961390910606304046546663104411025703236897960876692085582788786992880763901686223829964618170171028247569506051297538553951330455991637063329106956966574438018267260520037483664282161132237649372856534486194906884288818366540114521240628377652404443624369091826077629472227447702899843172763865530956039216841339351717402689382422817555366723186303278835327633519222953792117303156166379256841178542747643478384245705906995080209314094186775276256345369017622735612969571844066048915564251448665611883179342411952831086802694199242404056167615395826495743941821421035722057221307128291184935257457843376907460151819813773940771706301500961531152980562918608016832793363914062333660954209784311402786185362440958496245483780935558436199757951058925785018145954205598671893273138326648985957037753691135944807422625048857110249050433937605287177784185919911380399194595566471467844675837605374519729406548352362640491767819499299563473802016276804783886498716535924022960771280027439781298939078057729367312780366118710449829587691309996881509176030805443705555856466037777437355991738490976175894150867874406612873300526301770353606432127656234750678507064343047706174521929099968206550280346824610732770047332169853321925289603942194417965405069853071725269468118860149370151378041912985557812411136117532070822440780732313059507425806885188629522067336852177027493815046757182294598906768099938736625451947588772527940501654798282020793014242978030046900334527555707732615859608479353553358572855156778546750279246108297324180837056291767841047684829199829382027665173873961867844671997265432264550187172313347847803265904787629065647197315221844681029229816133109524330863376776136742555135884279031008232120975560136698401111482880337474972123509789016734774920670778667514776979258710764793211597231525013088461574391162053452275571758856739731782206717717129777972406662688293853710374184205410206532968637567964557348052971975966396959957223961373479215225597358982430516180169148785068965920890023816867379379490665822598421450633620634806041830464696720603304369153721082111794949343757412919571321115021718109838425008450590002716989075701593780731934482394782314857712701038358006450331565298305678631045953852617245628966042810744055744318707433719380907422994741460021807174927503332811444806811631479086060763673569392814928574162318542362201214737536661098834496525053727370140035409937081829120765410308072775079433651263087501645544506906497735291747043348521171599281996722025359769284691668713923074088183629868653850637065128984948713812128496200717703142341279978809194494708901153170534433321002419559956028999508179735768352792300751880295680408686737369474718903036118152470401857309981273632192620936619342604114590027644502046826055743458586045257169805022184264799045505142466454406169822641478109555049344352551978121568018567885182167937385156546763893909923837450832899518540853769353852012331404907981198388786599391655145109504923721581448509771218238850642254878991850008626629534759158478893590476784497247466460100360885941226451908848153782760062309919772736985502863509924043958173643954169208577493491964605510274325072154133005591015305850499565404057186231290461377015435820356759408244217635714683673011679475811391767541818664791504503015084433543211723133442461552390198800285055334031779011405878325805881170351098481356364305611847134374959075924542454268103768755564750397516153560708638356410955835775289738258283441535756026569928361670530760559389363320025852512035087387270148597593890702776279485346977127221300625763763164182400219668099300289685013862636298194777508489262034540696084696497080812906705246219172555810853155708966570078518420001262624634852100045053938205337401012965817494516882159315008019186555436963802734577163663162052995762360587396090962241664124863104932836804870834886797378063968706545426901561618849645216685252911503157965919593849603110212812032093296989440547484073990815408933293647309711493830785581743872276453980485539872557288845206493298718176076700593129337911661512416339254806754462244685050833137096203632516247497745418606731570688823941694041369773234529848340371238265188689163112503202408023117536689606521530732825894211822789694706852311549896120422035521537960118695641579397936509843120601553646196178818647732881397605763492720551033223908047210923580903059952085792747909138817643561885018878001649294219740958180149535818245087876671755004893159751694060484227601353659136293783763300572756268508154369604146080931264137616901120714115661287512577080845288572881750865332232529176166096545595594086407096156248951025013945804581458983089251741886662642512946334242589674570490332042397566837110409796371630520043956152301676846173791458166906051108562799243454063481049431053375771281304353415894559551789970507886093230343860750033866488582347527926490911243297212973090970557290068232757744211557905095736677278894335755931618952937738869413049641553882579101222918214620215043552586501709156038431631290502344919881134241671910669983008162462797267488152987316697330062005307887997641059376019777745982790895938322236121433702304085697825457424732851689310612417805563284032446683316001508066422080067713507047498117692769288864105201535132908609087521949550833270387021337234474255354585444577636926388371676219083047527468498228359275228999066050043044760401569875851585366195247449379984898249412384880584545001958911508885446797951035809247460348556732598085677447535113109399522350771001548037647818672018335726897743834653181550229432029456374298466880417588288404205231541682140463538052026617963956208492921466267527068783196592878383971093311056681628414936358495518498959240095443460866449401739376808596108882328001250255245183967356278549404324265114862143478115445656712331716575611554085567908397408745441895942617195595720891310567067312296830429729266239499851232316915219317258514393318227940577555568909738639633882442674181014253116958418762959607089418250252975377803612294083258506411241699596025666454685292950122317710612866366073508315702753923444429317658465677911550555380934116141627468305613336740177989556667532766350269821434809462155509068695978159420735815299831169436105397807957797485404125610247275561936945568930812897615665989509006383434342791991030653425754987518468459675980892932547293314955923140677576633052792863943496628755150219072359415575884478969410494224297908942032232184878528007644236477196838593246978118392191818946902078381280480292918810992522305144969065937758707066585586722297782294438538671465097572027510890562823217724602420522191303246160858075376029619219827062005830932907435309460462780843383271381063470273688145742297843853692191420601797252930901232469409110456123366422902603381863668312690727761321240163930487754264964745299600560723779123450695387940958116984227042067903315300973088921832656727112307529131540519153308670884288706258866949237265245346197289839788771045927371975726765459156378565284363595537168802977654304512204327066431574756040525983555031176438471769062072483470829214662858832551236318222365936945601911916662215518118835103226001119254019613312662219851123269218431124789994495617656113503622546705321060311930787493998563808724587963246370785173983030253605189583013369096240717787726642300522484902523533278048291057925465337334517074891478674919661997066854324528990663040891038023779958490761173215745110920409976796968303061833290428968521306173608109798813495350777633380336764991933074318836719331737638162211503962124291632683027715797327157603567497268706825867564587800777750479297353481927898347484901676993975965076178323166009010154559547683475921917477377183178638102899907538633195760502276733685842626205864277914953451329700026482299530589570514165903332259062044103546084125746489986662528693598046563604705639327638829174715756505022604084895968514849140802727716455658252204445609429365801195517527592213549283549653641710671984861031501740050737754067749245887971090062714210290958045052347043519365720210388107766039669926218723528454881598292328695074652314980742254721728625270882789542874616995574231309465369035322011706690173292944153635978526803002429463342437382343772207012809528373763684784487044622401144967898909227581977594044048297315971968730647844608787893897648723779974894105392270883375289715172138922628407252906841052229088209566442500054689273682638674459002119342771193993760492233094163272114349880713014965283214398866312336517332401600975067197852527174136768337134328253847645217046260362328752576637107279942566626568145224884917936956720176032843503989369916549618440439175037398763938906338089840932478492801343855532496330371760286771795636295889790777311463743626481626276391875722139903819401014057287799515112351852109282577232412106737037349627381086739765509053357601245066733263989115038930317263131732426793807901860231425197887119314316358721944171256328350081544780649755241989203467558017292971720821552289684757299812638469312894962239680359962117500533215579875471806955019210864028464342789513123092922846421812231450629312171851790947424956054293837672640511152064350606235382428819148136273673447640153921429559625262162914274049373253043526428204360897158159241203586445308524577568542792609469340318952581061372617370479765265397156833968382305714457513877196901916048649869808542659443643755220439021422558717153966836545994781706622162922056906229912456724679730865313608246242123624995782766511519550350931340221042190790182622151108305372951959712053074603370590654246894905653481437205573845574190004911290954410037654451099342212561361061912142458699269889723978083698822901737687553550597169871564535848962386802124110375387176927074951277172529949974933170936927848172463861945949709953162005861428904661927695324333916919446970641755907455938385863185451453153059107415917924244754686524856081205833232808070734858408653036305492575431870836023935459938516326587630554488750948942951816630386099268680598800006329017300020001044795305545506149673688676346409796423478713095545316429919136407571572527381371826500318768608316765509625845364523212979725644101353191556521187387830915047338082017540347105960385361592388673155154190116594873345678106570282962736582363223506358899129200628742537399302150057780539099740695771494880073486558595181425036891491067077147195017754125051590834214450004758931330849802811466727259069943294360140908004595270114830192018588795472416664309021719566888080542019894923734189936050815487105882895953063302248976447172614555406735976447450435159619300497660096226389551324279064777360346305721524966889624069827328372850519373660167164222467087121326317001211034744992715406094018667123039617425601680201369909769879205623023287100610624294153485641480483296103142821177823583267102057164797755316697124300328151987978838360288129214142765758735823342990609346168162892503801699819028961223503425862763669910905491122087940307703030210206934281077954503720466033629958258237112741153315186131958197251566765102776569818589366263010891562466110092710080390608788369232243455582990868580904614552451919358497873111829082888872203151398687458441267561710108633116835586920210236990121668656054356879140403769698385091334718734950127763773464938684654182196323019207649149127178178211557913445653481435316895530556741795785889589335384932062323761951897149680947320001805105422714398014098635141152946185945582947469730307676100213952875129577280264065297004542294740016927794342060725650906705667647020553307559689218730605361484206577049762221561495425351045170419895251762221046067812622466732311605426093440021080113455682011967028923640033160141990502616670994223374789034820426809130186769237904777364608223167590630804579635803138425924320397965863574029127896962503227356191675480851320505342299738727252364834648606529555180339206756926230052207876656178101320492968645278836996023488504219573263175071102642677139930181190625695853064284972797584216012340616691246810213384361807918028460145478797274109338518807566981413523214651104013762283618389341987688252399137534643462936912267341217526314627559633816197294947000510071738321610337985154753699639672606979443696726343838392163752956519771290860001156862866889546497428565529440846016616995888513687452547440276783058597963206885845479822565817817562569463872034695983361850204270342874727568491533699007741044790952484589615090293245155499247510752230377650385157719738665677816185667350015867612300902934254055999673451937628609415255363828181391379297396923705748318393380000942579889993008369789084887733956373851040779207398672836499921342801247135314696282367720704898975750166005745973230406795891699768531993333796296357210829628894935115644254834068453636656077900966956798178270567353691435351233323720370502241727663465695294140188665321118366552633111846404851359203419321016129655476289832043060283328855787043532909070724371478784620555323435452008814120964345733479045497291072172495792630056602746301403484138891308365923331672024916055074803204837837153562963729903614730143178939163078263298179063315576286953088607413365194171509948143376565867033786696439611421967971902400056632025663549526112055808264704726234035020689706597157328788782735164385217195200190779277355959664220568504723105064635546568598881746032354100314145057286587659400393224291184821902915089934747348510733078469974449663880425523485676708604030022386305912009752390071820765668607398362657448444235445745785973872623519270183525163228015620121738131116782957259184633218273674604255458509467592480717088309291914410792182055233698799699424877469676438558825817342929036769662063596002312019209110036022776415210999158034818576923542199174658328887538524941729269676377428552329594153519810505843121672987611977577208449638526922490028937944484053206124880334067361646579432839132095903976535868703553891864520555631320289041864925168380598031977223493328381406161389869329880273509159099647676153572790008236044539221942928068911946906629928520425050839748924447573114696803897188422837980934664765624967428514164077784111450414285270060428149554177898810688248297788171093078087482700408066265641603699032957041860388088258796502406455687184138299050983415379974235151569203873813636677844622425509139252715022437435991749567031664777898013517993491910426437978185717818307943087361700321024003829072158872286519243809848828457252745020879196381771539306983126749414596864969728693643568380796248405161191693702193606118121105578300364599767966695284641952785524536776516852126483388402645432647065399957213339437220160612068586105526583164461716356306724540407621249981024692271524141010489133745312917312135890112201754702698290071205407410896244538411756065048120037800924640507034143722648785487477707735757661537735946423309750481924406233350721408424951499546743422363326490059883991080668208950953518161954976047548754947093341713722012938352650404460803629177952724538361054876287727985095500691494072028287260356720245757362473987649776536138139515828643646830593504242454382842854082556033220584984513423113529206591152848552960233699420625818670580782323661815969837246285764078838633724490439891196710028223340503577039091675617881938175739408782599881173964382727140241518834909374474562194997819705469567315130426089395795068707669070140633441510141273153447917368698498247508209802529953637025648520354667163985618442461133640723501837240109507330863503042095408641739544607290155790907725206411393866934774941236280624492581432020241559203472168704199114724842699366627158873086323682956616269762601849320136960074336948593863046627282859918942270825139841054590717193835973211937795654858160523080985419511270427827334546073238441816832568273852564005470026268449609435009530684214558911408033333820185082716755467137730953189162234233765090310616517984642923196776222079236298508783630472559013206168226215809007107325058804520217540544371857347324570514487688036431692914065964070455222850373465320031575875934276302728891684136875405045696322968651488644660837370835125133499912297509934834814877725492450087892348064043188975693455982061863995084817438921096166246903371731661350847166457136941461031504961251209716850066052757619704994053771816320279733106385747323497958731459385087911255439611811033516050975486966381057287976795595943766267941170356979755202773348135552526070646433466823790506586344508932446528946434437483389968913378676515566460721574888144618293769393517019638211576372050740803980927052421530109903313129315520043298464536426781610332608687820866644849565443314957364613004077864499875538090427652129664071825764169673203741133162766561257519090127368609490681696052150943121479383785616672104001520635645543090265050568899941017411706742033764531897708428945117505784671596897184411967888970671603958306621588689679786430276882396306741736158202792785674469302844533955641361236632561745576363748520214426695516523725272437020554422916710302698530849634530693072781144694446031214181036315203082516109192473815654769755267782547675872744051698940519523713555551922076020974517717262268294105961722866144527805056177802601174238409492504869314451798260561687914444013685497026813067598133881542306848711567186624447627359862744354883048910857670483564946407267802826884156557950167695639965397269876990549267894046926705363624387304420445056638757869101449674691696043740113542503830413845690722921996169299410902918012482801056841713896817313016265906991359575280743145542847011473577357920037946283839915591182719232410518903213902476232411025038993539334347578267965064195034094285770666717692644555521272299030953192738813681661701314954539247657682156311313776590388137592562983784624961198836061026462012174554256231943836044687278448089798847193165002085031118789826398068544902455743463379910522072181641609975150777583690332208563823777633385775730352982867423893107409482375401235818702781864794603895588235174943819940387831842955549168788564678665582095621318685131810662350435168338463756718771396563096110437462671001997205407987017446377033477592721346327997446624318669082970368233178867909998010210930846574441513878160024337199971474577092281044448663035915140285541644062040375327111157562020596850916767811268355752283994133515866042518209219576885172972736367742101067163056288441452289820428305376885987533263289959571539708220700728509519118748514846911949898242849404919945789858504583194294675862125436268282887784225102447060137747313962204250029823929231552409658353208395303271392019057953372591169271316405461991556671204129434258374436526193547518276256122846321821092772888235733720599795932719594482233344671446060588261201936025330528664735204105188624866338863230993229608014944217693097568264751138269696526005838688146442284860037823859033125207862124715684662851013680357044740342501922727658304815453680782865985739549319456785661125163048272479161844245281383923052505533173137161234846504399893373126025341644130447660024624497062181703036367936945341913966776507620184815370298247213358934947804857958984611996810187946414654229305452648053022045397862444119706863740393813372417033992618995781069007825024538133102956608887647198153058582104890150067163757875555538262084583769523895059167285314052661408998553089576381981830789534364437550590841464191890975485264662188006147641805027514832858003119098028765304410625870622527217484559144002391873304822428761699530715651044582241963828574173600263193299241476196355002970531055152448794866615080603543054481486529386449799463304595564228436462214158537735394216389621844358377146121659360387100145860246389245670104430660966863465197236598844413969653300127506664959249942085373321738109769156945402697079178389892737512713480131611119369644968314668578889338269238650413397507020164989718441091342408500458291967717285338390674504051534840906767412142435901919233018858963449191319043047745736039514088458787552903270406852654359414089500477941140538876006646851322745719365004063180818555425965774049473468764855718723327517364984943637892303822116221574549496608396924685067367944874365769721267924596192021164132211180848336531104305081793986065447234259501008359314950116107855609469863967411515488765105501991694842933234868871374354788833112841925594078456944517501423861197397732347475389230078271331874947660420990642539069393481171340924737366646307399741815298085733555098946181528873234627774025022815378395027084999832469723145746847575488226584787931810210464696732120391842161273628835837294499373106306721562769027607688105893644718899937897793051559655097604247966317582395971210984960964002562138116499236442980907225597700786813394037016852127167835808656488663518254338235446316822678623224137093911437171849550205896982527112894051962568246898115964585621920112128086334907355751997541493349125220628455473780215772077698443467531102277620266721257543179463788544012229347481615971389183597332984901183841243460747730730141866058817684629274558974240677151152923147603701474120342949825399529477991937164273503177938801479796287716899703980398570258892104605565559921949815484883425732980982680154669559593404726486938523011923182808467752709119228585638358905958922516888062534345885753940652295012902307981743033937617966904784957028039384031128804642964447040263519869784528876719262894492265779361827456962468153173005299018088031407787054730155607996139966734973052623269789794695806364137155691936741244000262229631859255313515103188655404522611654873257101731626322183777360380130195484629033748682357849692233797705066710250294908816330424861023189087227561456982436728259154047252043856588250408938970591368013156013306592168350420156529317498450999814898140096294481044575135352971899836748859222654528254359215925754517386464521837491898057046489701044736795800731295952315900025300186102690480845446936759696121078811136751647293793676634464236120092771861675286958544236567653327517603950883364815391501692331025217719549239484580659509563298238134158214529645648291775981604521477141331959541055233562745626403608159744067886207595318778967510622398075494608439011530012815790638910084223904933203831462017883665187894578066790991873527182032945513334631037209053160797863222172934516839156641070128676282149681852486811072794268681069871256505103289906915980877945115519544030442389287505457191463965292482981213395484337347863715533906828528332127780062362008645007005519313850444432999592794831198138551495515530922122096628579286175911587656008833006011304937155366812792463431903996000384745393153942143879707083097380838421752273988341241247756459616288092367809458444833067462161732301001477240193515214309316295762885585092438358952279929516661053712443718767635114413906094819827412817340080116961073248665576138049524250399301141318160617579328006180819419975547608760786493403008098545452251890730365834387198436878986315023174373435178466513430657537039563759535683878000245015896966017549383135473025976775581427744551937515488581225573968336504401033297667861981110267030041764576720468298314675338660880135054588128121274103322474638607258781352992293016971811202700210021178216257039992065111434793394835427439152510801083207215847835257953859631651434747260235001324875919510572868014828781816551755851753959145936043473306897803524957326581707796162982164440383292853957736811454910195070836263719470211001027685991216032072376813937777727515143499432987213934094307398247988737655163345979410208034800708650265147231948453285647925020396095352353845603027113189045029352459513449118954679457607745642294221628451362531058561769590592981776978915400357103258457195898201405844297304437922195763995055493578714024861745277080541332757051250301398739800334801283338493961079962889270978898009519248426093035718356444575935392019934197243744825345335546793478606519689205096809982832036266905949337371489049829294853489944024320105937805904537486385863003343070417244085371841655340410772406913791332532351308851762256015093021655966811674824924562343527974237981890246756773227143728153276810658040127642823343326144480535685582554518631321330924954975336960495150201875566550461358982894292063572247055655027634769748284335992451296760939248137720591944951495163562836599267666777918815026849666747983139031749974354187470444284668916700019050825118852755591237610393668628370160888101777528367607551525731899449591741341177840948524946844329392675356193282374951210280993648960530145179991896064322341463860031517711706945481287675348379802350287196117955232369324108456197012313208325340808878496746007683122108526488899441973643182782070422064760758734767475606156886655293257150668351287193858767999740635244055203015887605307861399560318602929007771040362157930880907343758429246684370188781847111785613302970818899069784713863546048954060601538700855324026258914294508059234864690130539725513549871939665209348588520494900061981637428563325751479196323715821766455536350765093969984110064131044326522977522292002916306533546306780135764878739963622073932264901550875609360208944129281357994299591437328565166543354912404958686702420519152430728161553097079415202157200958599477544205368143668825807781164464396929796626847763531473154926162260339803166679454056955959567657091645121253009070266476017408455552163825695596110151232878991247261299540585867018240110421690928651749890109952229178871708006225070154634275924721486536473492109938648906366490280017521194827629079914575939742585834967655089473826001616431071880724865349566278788841285159789063618515311853472464331087798664145692201311052846695045228596958801978805309320339378636018981198638288667115381524828192785300129161407106669494212104372698301742246908513646920503347248350919963856600549094308477185900670186693960700884652631247301395733277714207264665978787554723997822528847174181394039688186945266610603292113135732099577515467169302452639190034802403164273417578464470828075271295284638076451963702911348887229420079694883536584988196501684250725927895542355527676779014241764237865870462355664592993478395349855443191612502139695315396979625662087492030018052458282968913156354795126864091950688681826199742540775857896121822084987995478815177646413734203868342818502694819048555070932106572678266173884189738696954612853903434117635176557555863050688394450349074974631675739885355443116579576364167187376713127652793974584080927918278108923142690130385817482988236819558455617658903941707713477628844104447864604341892530937414860105989459046263827104571582260477242338268937993379736698697181376604857946043856814425054746540234107492606979631240966005496396135757062025056328172274227068124799404821987122832380112450298198884233674963113837665182866002901907310481380450964399717410965427636549684862579255672418733105265935539381082893363583968407348065257816642223189740384478882281113035098540061035407954820545217404449477083467669365889426757734925343125870143353006905532252512646690402328049811984333069285815579163652089878940372414253293950594150650675292295056601527020414889770033843539130776858656040636199388073586668082078955533974939798783175558140756074028582785556714739537866349443010414189462115052766231180750133500740372207664777115273972627803740470180549478391658491396206749391902871322558909612334203983450198061626986527861831693358266016232949801731809876440060639147162799191434549393167648478046624645446656592430497942053528947149421769357205277533424050745498995458955712843905203892226572742325285766563923560230971965708567814608510369361607737500603833488160037723316386781547431066237267800096912136822038574618075823351822008309464010242390233982472978051787409925042986086310069199943138406145047795000471121720717605609756809504140677642970382953215534224716552265005695547705089150109383338693292472832700630245891171217784829816961823745459139459326068597823943440632374719595929280149416435354194522418643278000917572920311617919961701816456248488909286758917360337154352989570056759946629018520393659547777271334840003550324692971546108617509573029125564875109481366905174301243396397638704376699599465429463624402408190314763388691784744799460812865246365229861216831585579299554715852491042192111200664952715357528208263247278701174191185244807805022302876501750464938346148070487787602813530601105034124775673981217405781517451885500068000859958694881061551036500855942339012571858530053523741778797010069954699613611230395276332370565924903218146551241546728303614565223178754192635600791954369806919096830546409612767965732980958918411180974708057241599926763318518035962718752990542206275401216636536580046406682442851363508320898696874748272141761688140391502263465919034380420194720488454479763799025698276500399920605728581565483499106160807409622345767874697099619106974509063229512478933054065000413740572376505679614087684954598778677664556596359202980686303586113653041084663230106795566909521252913979407907723499618642771025299501415534623013089210694788524158526100087183690316399307446800485776318138628341840218909374308735038518468006670592509196358486736396664178235638014999774967437971643279813611190090797150920879280043163578034543607740984887916919026449668791864313440183541234943993089947257709172558020615926337220430480103019105796923747140095997755558838841284395840492340095900041088253892148913098164521644522331364708842961239401379745626570903712451199762183680469521656467443977522055965493147278647420886103057863197805702660838577947016604665398100045661416361647336788362691989104119188040137863248926626251512410388427281749265456809048577712676587055704511473581598680849474568237203103303294194899871899667573018957024437673472721996428777340560150598330574911473604851713444416155786426321396427599995117076705201017350443704975383075911208270942674155128374173834121950957929960106326349410663779834438054950243809888673102022901926629457800396346299641087058059639720985031389242428385402078760784449376171111193431793415390689130286183568289320532662543886194306813345679295051127881470004583802141482785747122581448349536403702283414046044494742297847606252751085389703249151558810919276675434360539993403777624033008899739587683056966031014346903128666173562368187639464114514812472469080633594037912626586424823187602973653962632474040939224840044513762972673297109015424367669964406043077374969970834978041609315446132347982910114773442934853976534376741318549283832098799007356791118277944923830135730841523706461181604722588783052825385055654798174738594256871872198705954462912500203038991133068956218473050096742934708252764849646023918699239017150404516811849437750660387845995203285552377087151330520356967975990557436254033682499420456266456579702993327236760036294148224296407366345844531240082592938149943834736270187998124917882620395853050682561185265861696090561638081784506844490778020519871644799250779170175457063676696594166796771680177337462807272235537328262500564364690690907442575518477554221181675893097044458863452754674669480453322484148515959497802878311211260631509405691303524768030987432497793333992410646665364845100990782284158356300430560864165312384876908171124094358025264691385229695978387328709222772916567681854873911475795383924305032754638393292962532184823104721864627829986428054080184274242827464451154094556751544863924964223047376582951270483634063927136178173145991171218366367131979157862867539314866098425266012899800058390916039696685405857549265785572331726568177965077157739935826791299915448110430343394958048001551059141525927873686137355748819266652261125969929146481884481667153401848222561189914439129189253877644006253276033111110515221594292172770230992849624395250231238547318332302232782631263232882818023758435070634498152252066096751341907947070822066181376454553199586966704394216684352435766715676623585732170598269243336157319714386259948480115086284222201306364631741573590315077555060366921522386565662886446265730397195114639132656122895191799423782255413645615985941961442991233809158441373434869647116164952327697998109696848630482406219888718669189370982502588716591247663626960673728148673978786170643862060501710183034307110343005381272541028795386877655977891616591206471105867561475157846937814331691170720958969565016133666582797482059587273847103922746823046859733826121889490504226338757550170238162942811050193665491285258594444325988573846830857253933723714894010915286093611485911304494674261810900416212657072193959019473807468541657529650463983393274484792908073087524434063720922980955134266477996997881383873442317527858315802346956624600243140677964397056959480079402190121350999311266686344460621048983133572491472605088725944380113388661957528014521935462129401407581113533303695620482269849307949506268292329626918982751767056769110848770869317892785986264208515649568349588584616150017628941035198451797516745271533465962736364924540477965060431222596011220787084445924245349639579299272876555899772264417707342883783455537337136207395275396913161955639595655653845042115967049516086779837546951891033917126850630660408647968895605458531826767929818018709450656381868226939091890922175551013706487683666038603221585919757810184761371333026459437190606741986597952023665790675546447435959975437701986833659306619769693862816605638567882006314655204237121836429961660946176649310925736717079745766273968140980292204104410792347739602781284587012649103184802562286815350542260218724881268043464671431809824775396858398435533029128913266885451657703830288104076670875027338586603205460638963385554844156456141026006277447660979311077464926579702015181664435131851444062184599151417887043030565430822395576978708224938677918871602319414772577100274356871205309523034532679685345293732016220435188258120844402209391238122643624761762417921673957540923738129430203402831838954502894719088298660717014293994070916072259390337416753306024039310745782306046374172767275802130313246589033815462534662694446657716292000652234157865456637622175995033349076726304708482001783107872939895623421680626260316405579310411991737589793159916639593120374965308722005824545934194243642385076990736598990432000962105560703093947599315587832132937907883631046095337041023602386713491901377992115898284747268412851553812715372392685423219105592088440983185600078287600933212865376970659980459018714681172543314870286369252709354651263827617022765166270965973522859432815024453885047612060906719214278211328339213207397746805125496339185422077017924985767447675340403040246449380470507820311032661668029886563549254456932674452910639272275593987635753663017321261705703855838536756808761893324843725530718405004942186691131872203610121079656625428742208683500284872508801070912175725723677861906574319447440612854614152790392585586269559820062789830198574750078146047762245143222406492675507661183513647059279131047164795734460672238402947303403846426019932694025034134178145209081516579329650785503347790644213171346775023140652606251721112643259337495207794802023506049348028016586991842904857457248378777417121068053401190827139959396504474395774631235875596950269401399060801469253793167123362934458986486723814918726351534486364788155517514612137241456795116984758928831011816251583243234773226629264002697382422717117930799285363956935781255240103604705525512356213766693425599257874577052435521464228874208539840318326849712991992477062953997418625089887771050568302207824762981998064566042082809349418678275578970764440260286550575564432436189850375096146620624239786741973395465438022567542746265997954308285728531277923974463381917067347813309749039226731504998804697824703114548202262706402249774604072433410908923303459253964458924131187809433974534393775086305950847760541379695158368201251798943384378104241681837144625034872645545687536797799149906627114947652028832096840346642427083016626575568714916370849250390903127756713081605983029718873535172526983812096300955759006929054717820410534702397296872204956275577542427910949146394623076839240655536401109440708433486259011579860066130524895819503975792747890818351401965306798038734690706748091690993434240149449757977843013977697508674623554670837279415062161119123581609266715824485958668287805689047635339409091199253628774552852765712467429319748078569993489911079776451196327967907234776054002772768002747843803440044220635313442254458803406387964141228671405742649484017112448934947883649762338307323252100969025875383490340882514906088609465957600815543073062369451623953075489801531770247166794636844816500403164149549412997937606272178151288041904807395005706172045984345805771339936332589566172282704551801448636666780484106716266935306007862812212658857016624411334500446518174766720333639051360982839244132300830592362163216366470788265702681892902873594016668137787192261792287662474741596561558479054184270538791830872548947914068498770054065748692460223401468026442445906408706733033626954098915901088816484233283599583792250882870068703611737768425618458796770404801287435108359282092099468908933625430561257506045055865073452184226888094890853182761109144769825433008124848965077922537977076177101638278216852649449676158716644897507237224324465707112702204028438161737884866499124409069612755502614208830649460088602482247296841213997365245664406707899792515369577084311674806865247856846212617054541237522472927988507643486775867969035250712453434182406987089556514758172895029821831707381793469148001282303307175895800199636688101737199017016735193915820786382114454303833878970901143980069098893005925168016352823597795607605860847256407927537499032013690470650584754809691350753990975964654471596201015626421874861080240578633212672597530859752140058490229836517826766775683450673978783327905749851018650968923927601138013376539007536605691492029220964146799688816749259331980850366248771860581812473045902110350469224136813618490029759316130966304725795709190902857651799691202437246887096902306105665347955209472251560089522372055626467189413029993139487307219646144303056558872054187052899938129745200668163006486059833309146250954924877208584760316748322098729122548397173142635136977306528970793773563396896058475174248681691287898518846212550201730343539073824711791994525762005695687234152794615384123104059166628453985012540806130950542356712000319709152214700663003967720024746426150572455988456759953600688524402998091374413125836319132458802716036653627902894644281140450023770134022978284817104727866783831659856978491457748758061790087749572294431199613010509098139256395139104545933639897160843463986895086400525804410388380030771479639673099101506864760171076841635975397306092379092939413464053381574979030126286755149713018746088172033633193241724830896978574388233624966974850854675276260726126062016173476341257823577862248992181680954568307892081285648348390269983282143146247093388300308911432070441191843013172062627581102992950818014115928883603318215775066312514775983539970800459412967122503133263143355441781855979017430613165537984413939826146759910473457061070390831745935397368590808293120278792525254234558274661146243087186904827942839364275040963235917077967096349907863617008189977894523932186147096271598246377978867536922402700716895588989936919920554966713976834412636392499364050513827483634486172232600996994677568735442972955866066012605172275427993354564193571228844772376448859867296629408509185438229207974844423697318627263373651900638440283469398808745097308316501581771155864644412887178581183464350502719324387186588323757411803859105972569130016723413942341521453770113671285312736859731838556491881811220715598195037957463603897564738875729893409084264565058425341372041605875312754268897795439314110223149467616813512352708257866698178211971587778606093885307633534326582073292240851632771814074033496348792872462982607367085781459950229256458283970472053457978050181197565560894388892506066348762126385327946987292758985887011559297991673449685048006025164495951612184044182862978544361281895318109728688232914345308157295560580341809621980421495495688636595383617787701686618500208729986167093330997012011310975845916972246653705256355388807682118743627679234463304170113788782120865181166497436177462839772949692546085608966476495504561237525545396019827764154842759343930004585490329036255268687921200780284590490500269564406251104461206322258650475744968068533530993760635814006225456864631880512943246151017662976802628088718023258413585587186174768762669476765381181042613440960257957917311645570485299177087560213042576861631708165686828733130510889017157128583605570988776702282706418447423533410574696121929089162176806242997808298960633454795887946068362464412526068920102548228737202668493202435768098043762736503477683852259945474266576802953926786250816434266838151302957560900599284055842712419485469908909009662364926493039740294375314665395405461846266915118830788383132748949793598483299861377540275993366473240668908746008710721066816783856182293386505817594365075442227938593996527970317480073696890707069369550361146745003848020524407481947018584105441778070082412727093287470183348708531104734631125849743424133436257951733403497562947934243268972849779509773593222776663550248554999036063738466435595885977905398403008945400829289002269420735711949079081940687542019840939121257402837596600921085372237031985538768094123795592862875876187250547233253718943526454473382013653408384967635027940714391145988261623535175384229607229040839606804611802306303689004513558771444298337446993323329002330320304944827177103084446870953138730748686781449685977960578183712544746340932597246640025461105139284576069762156348401059433682532246170386775292869390410752131122933026926478453742969416691424365611221555370065681319838145858415029636190273119441292487237065141323917759349118195779715968626933298072341734162485594828544171007290409179212660504927069820858353054294415868388181544566638901664992503552344114902897381756698167592101975769922075750288928601844445582652074203195423032442410052092251562238130383502888843242305050834926392622934089564564342258664929889037852412390941574337701524984946216975033134159497955312250549993468266610246610688663759120243418906454630434140693649597567113354887037207836717861129514233925864435174959755640852460111050129366511366643391653014378496471288160293688440760245347425538968347496081115494986506933916062153956668260002754660158241387190824319937099447490587993388537452348984345948364139732213258714925152076324746314952254686951554638988614119068713363214280300747138185115839962040212462269202934783047978539041177723357190826466506251874060659604335986449229293235549430397586043410400861421294766133693155323556172626046638398475638895019485550448804378889195901055421368238179437600667757283838620897421725663386432272018003864450796256152138446510557569392277007357135768657671677318173066739134511542649414410627343182048333479520627070774216909377656059399546868713038926901322919911480444611931065404420362308684908711105044264645852327273118073152163525327472999992265092057166136277616557080486907088663389920562575689117207172424855996609182343409543798352650367075094248911860060491689150424407820636958215564133650404303011745437352823155261185545282162557413188106020811395439808639854611895439044720817532353700626071046756062851526973093409739455516895755841938192164270201409670921501979053573347434665892318273849396093409973661140292325240050808321500739077847953533610470717694202318376840229389557918110700117600662701384230764806781489907718242006733190659886189913786470470958861211174676454260489525902066750490846020010112528739447925127651074624942540040225597289186524180890593299984782743322985251757615364063958789160079756202911099952210228066298305794163957020067230607834931027518690511727856218893612613296938141641805517405651970600075549228848869670858985563316683088800040870980985125407397538007972655029284791986136960154147942689466504234838946465182363020934532435811692377504383187011571108492992817112549671787499877160643484737747489271051195148913979023124604917819641737719995509643576141989580901284205120275954999723772712935829167887633581500788766621710896637298622059449683383769439043046832009046621143950015886786528215387827039348766971398374100673049542239256890331579049037132859044060226553970880662019275449156939078798763577996936920280530873790316470607674590145740214550369874947242208404850540792789371508585497669401467712220264799971629128709456225002160263230398587956282881925348897215533381537770769608335093723550760077335506126881769235293239869053062216548231629914225319317311312209488601543466893405207564820065446372562451398033915104673006068844586317622396536335604050915539024875244512348428550283787438526259090263255085620488163266916425558144176629630930561509539697477046919801443881747160346284213850432237705657174309114019388947652119133767581501226139351875370457617762823511163084160882069750190217335700514502573247488529988675732248767200806941207271079048974488283139090188089997159044058776403163858176283815298313064866564867118913907305213977670550835390115014803660030834508973743138793497106001417576562771127018745692572748869662417499690642324092667658064337154327516175857079512671477576669894607787639770276847351355084182871429084373664476565338738974398035302566851789022286714653046824853738830307162611790166812416563916383178844881366199841566170663759204973088370321837120573499199310266427240004628793905971627818902231428521360170102137386435055566620326421122339072257087054876396558740516745366183654991112560689751290819950373949859880629833615299534254307216289633255272083833284121889847216838548934689003535455237471187802167351099774518550728883814872048497501988490129877969966851794505293811917014521585739377723026287414656974186209648216089142747797314330811782438315605437978404485355888210524768399067357589512468995801016206929586442929485978950576245041432084639476952813111888838526050730058853448650160513562593322887758029996978261343801393567129398642661589526436752625729283647346068464662339394450373031041842129526459232976957138876089863240468010211233049217959528706382260015296499657595585710520113905211823390935380759038580770353920998396026180496524620315499393256181129990618559982563198250773062555198644934578371282514456662990787975900819911655330201363390361352786704096253779480359294758789144264935428091382856764924296621939241224038753968304681372509470877266281718566251132277831324973834464675536392477320242610053536100366388322361304071853012868274169497160173418824204473204809208585723479054028116506012748257519801683454987710637634768831352049386892787766589220445031038292293301733221383819413964964963204463940984420126427459488421094049965859544088709249251807868991385228064555774254944664993176835942970894484734731857592859857415190191607216108549757790306960562346873501342958539999524467847943425527797140209855611821336122526985059802030870605971060598264665607624753054836063547166587773579687724585634916346617695051714644913262759567013315307400425372428623313669639158474837504487824529292012610013026370228424468269870958084526179021355954865652329344477935943253168881113115546703574297439471413116369467875533357277676539105989834536090520034417792438343416130108593585382569088376913611782215241747139173610833721199111761295893156742423969720205465964049701641536643357282493854839482511233623171077258607133514623539269766890650486624663446984088015911650514885580508969095991140515040930236775806586137695934225492852952714992863142118520083601218226875657315726317272168400644171548018316748995122563615638013883867719873824563451755315351395396063150360544511856703512655563783751465048100357501161238670687381902682666355880084172007661169296925353873657232129216458803774889280884129258664331095728659097925849723754517810593856683972780134738765028851012372383668020252453160468939981966614321137856003080435371897947801621878347641422487960736081702698731258698262727338904646355882110564431944742716002604772544387403636803248585821816839675320943374859929820670366764021835290183377741203720418126378813152242615253198985980027160214408748423520082947051731606194059910908488179349640797098214917964402296531436639705805936455033575944470852667656659972115514756098466725146374951203287132948560731924363724616062659546323268344693973488092016415853207660006266438061295411084521903076569981429582405790843394902079445249126209153382241901552666849277050481350124028696078728199575251117142659766196852563330003482191635855026149377092067578172010842775035341102074358255564029836028013086575884049269534220008462875825832803494749433787554019576139416515084466069971523933093344327326931122752916732653142686650998515155122883807002603302874943145184190489584849589862495296658180152027169155586787276676005798356321012477096190875257549363762667241087038160396580225388573906790810114856659942955794329280909148564870907431928785337065945020972033795210692789690564578946158762813542716299223422476360661658810785054519626260290837608028205368135404450556820538679938626320478276148872016748079634069663422906977545842787945805807626107054236852363913292288747597637597636201722217933316578230443564451171078871217016547624067803944302373198209534341338063170485673662852837680385418297853138222527208334292400910814556509422209228860720873619860195708640865743023165372133750793047489204337913470894284032362509099069895820202207120505122050807094596607813828170597493534589424083894212399438882213487375100764019881010807695184025824701846998111239949110570100657240811610582419304069320214952440182198566429396339687129081687765768184780129223258907277286870573538505852569793944737019029482086316256081507081212707492547990785387651438973559516578410841225681992104635024362971214674321271371982011494440700843426624272967525416323086041789536257169292799060014427795161524521716150016397581844650517642438886021100021685165131124739127978024455150386135743366620923010569519554993022475447848534665056645157309799379707919746039389890249206166041211926629863703038918841868878644625982117569072694502817153044719713708774703619528192270511906358815690581334909709102912859818840398248244677579082773277365851751518455752018706650754410667759305836843802868823018632540735417200893803264256138493034401699542427905553937518877923521262429834211799910774433205073367182701692209095046964968040402390590706642984689157422304378326853653747441030757186306365935162197342778722757490090294185088193672703136879512383500246913838838852599980530902972190606226728688638881627998231554266842892401742050326273668441775531776661386152885893172560555329941010172913899994173752251905917695354982195057054551806620080362267717903076458893643359218764107091963959163200159435325997706091338111515825101365101554513147349308590770625123962466958877998252911806704476785555667196465627246146764302520427377191125299264718361394378442400591953241218963110252712974518208942137473265182840247572600880891380129455870311198784112158994551536414884825661981473457265734945316496299301496294928216761517237101311303515847267843858795340192378169116866057595452936929486286011970323087047632095698555105697862947140955843182537713402609788191862958683069566969548676248269576632865305700363166934611359666162493299922246067615949461025628323331111238629526973223097009181072719530909198306665804370958650809987739887242111366148243154428876269238174229622451174812469064596255693295173633289258361287699210421800050093113502279610437647996795277519934337021482317329564710066807051409847370079496719876391158939673350477889750527293971991051682978127340995610968780774053105092955514756224941132544662160892568539596169460575429098613073908647238818425578255229828207306700697836830545893372871292258866166117892409465229720755769017339415958958591004304712772452467096850380688600314450319446763308928221745365302755126768095271283510357722501778363809799063548117949962435463863482665902353547331734473570031783870801418566455001240863842016583002054130456686762463658720150053869218886001365712108562330842308847985976806959404223280221570702527267126131401424081350934611912664466826318362364628563745167876816943229676990042395313141379779031942125936262449228024036491905523212142993302983932454917208570024164558033244670963067514857465704016630982391746796378459473511675982378682741729089397620330758592478330676244309376449359720540272030375546891952230666989054736572917570065642430876315217853809223848724955553480307484253940497807493293761508192220648984067957964657203671853568151255679808374682471105840851169236980182362632025641453858551498536006402191088693147466264857791814527227722929194379319636532225493726981808697711039553309387498856237385048735692089603369153655734595114645170064832400672234450705863529520325634203857335070643057860194412595156896838378084731584823670867362597025807349416549267190707481075917824383530332997123083771021761062465880527260047181687617404602190566835090391485380656208761841526252949090903094585790180684349875926057842855562605102180946313181271276987400270448574938114624724667552153934216794151393810508412141422874861575522197047600313137657891010451504748531428507201999403683410949457488038289055631733997285175110263264871354636131208225075738160170172872264690496903678932028351771685944053501506441180088625680566275603265464630854656779932270237806551645134955687394471014062134316289858501465753512838478265997227098931036257602296996773341013376577607465948194677036511004278254501097368635310531011148987763740160271089743624574611857421970963894754292625977507207624198953289896003616195417698214508921953899163548395993447425401447596446165458126475309661262524306784826344827221212227442756544308041407000755565632303748967415761041880193804819539843998834184256023502335211989700606819134783419844264247323259818297416861207510617297955328656416038326365356241623259562082845822635784598810242259105532300564161545503705817648822172675232964500321115884823105215662774008721254346956025587279966166269625839789759842611187184160873125357141593051885611890492600598762425538545040302007895760396201837948169889648944565987346242215266561862508843664396304681688855236061431461499048879159061229526523544011186263539081488239200760411894005384051965084492786666619902480910075820646205296744184235019046600502899235619108466526210318148348538088069121803810749180518260617577760048412436652668228807218270541959303888319900957478975298236392745379182108378728004468622222603892918820444539779212478955931881329809790709240853509898133043481467746355863965313406185429605017432033202883573601465262412613610280736866443455777403343009015849773561544569334964683352973283862973447172909506103619615471774930708527508920398147747164611548991452671712427476717043593026765356372524498130974070737658103056646964335456491667433705766253126637646276988435056808247897780413343000622360687399972522012796299401925529320745973678102048265002924481568603450925469595051038935333890205815754255643650758279362969202006180769058727731459737803092102638944652231539099906374984178180533082278131438561849600007468274526501640952316770095538897765796266640235049379875147350028687430069167483072398467971990902864593537119564383079567062708480278945131975171571851147147396726811530240706496138379227316229795072618074259147920562830827662670956175317807177578244867403508965176639279572327640975623758830216227140324963481385772917022700457242225960745851674357623850289999591568930581441260160951399122519902101612426495605413048648928659528997024847129892099619632483734687275912547367468103974086044097321544228655016908473107679060131461114867065328580750847068369121610857702909932576021297998967006588972088992437125964455241546799660114391755721034038246681847369173422946539894078307426095863582374164673644749651488605116474768400110123813288312788204824057043912198126362373875303253349039295362116094951128617656628798320679694481917884317175719602362414235604827550759821421861302971289980831310676474512797327548297201641969106739631903891853106088094953475736107546087927743436664563141351552912366264056993537977837004724911969071553776333057693384148030208434158203124090885984200367734314481980647561750389972631070407838780687046066494134206017856557307552432945654489647718460637457343474771383580156930123947592381301802576657322635694629881960719670829911812038600081190675829872855102394306262713023266923858117615319049081059680475181600968597149401851540948504706006275815673748525549894413631502488882242150014489649306389293166562954241630971069228595742410663994080012278552224869620452835977993331802714130442018999760875210744348365659410132594427785292898095621198092742090406085911418701727728314416642956599638863167182653366351483478437722108560368494900694047737894378231451041610064601489593060294877654141013590054866535983050646183979838772337867879762386243440726212942751375182410683463259936103388863205595901674775704465442201599454240918603032523700838099406013630454800592391929027364891311036242937754243528660062773891245514984248091772282171143837771140683824880065830497135509091193117451353601171272690302356149538385588476180428329513553722188592942050863191482041178202289216458454648431779498416988734364805497876190210396057560148141869551424545650318225697411494352052696361215003067120964628514993465050814807343485476263678236599105411596267348430355778664140484615479826666106379462961385917045327554617937895711997732302754757384130490454738550024840848072410950514804520654205101102290139906140847756598695792526890507073722373044173413173622719450196537497107164272128352101432418276614409447433682597261322771886465437862598309932142713017828685345153021213027905256751590378281816247859841198929843710784004085164303792508457804516395750923968860185956819908891293286412775292113758265203104103961680815906632724650500474467611791392934387852071532639414914126218474595229110308217887100982134577201315996386768905879766349454212874325015659101718872713459190977014596133706153567321096244951087830594435180285564999633227060465641502789726218429882910276888255725239977049685678746709015325788766721973658306562226853956567718745902954654607603144348907624956008507902735628218805867188145126615093485188820252832190451590146523350936046592462391863880425398315354946881766613291075309812286966528288069082131836442069932506215921256741440401445089487438459613373048214326453086212298758734183465719900724038897707846108911146962203114980759197672420803556653452711969373460018001806112121587610858149262933542695625282381803758009692912992429191544958972393610652744467067602490715266331703066160241494323790551440933966303083361959138696186120789145619550210800045143921625540999184508384509905399208783174634430406029080152924835964608811677377781826865410494395018577629323208448275978296185368263232998242056099018860226138519569795245713772938412975893741215497363178141557711761840365607977243461022121829866319719897899489539504374104701555316706883065143951755026589032813367129214391711226737004045319344756844576765607365813461797604538226273736373183362384748070266392920223613611320215430008763473354417314882941085683847805562778770122193898029446856194595686975887307865702293124286255561156388955432246619170798637251794887322408635939037190198680579050565708549060717247042312520559492134018791131289486752652513104066736066834889765360971157345430437865492332638910903242324122684771052463152749588371835617904952740268514784577183273918448783911714216752662503995602407159027860640833038705010858309006838048759319387786027264572637914880784002362958440757084732910472732515260763618466575352380839703754623934078807540066940836484541688576115828289161252802729530806057524089996735995566733878036023553370539847287366280789368244927013637948156074042825492854247752448640821244626544446613922392283732324968396284515003819184663263335797145094118815623413244433900647089485581130575779163516516513032218114346042792895925350232640100483744464409034027726734832233667503044098384873770266779761329381031328088501409981419198933428804371467396951019789761482096629612954739579395254754645234689153102796446443589964265660184797299337746377955847364395867359913498350004368060674382221516008138106878568111118022276859616339519798403768296845743232442540605749088734249806782194168652384825069664823818471222240134314223893643345634986276317595590199700301546086974910949628940230917910247169719120196644376617596552738913657909878413553545536556510001954602938337429971458964115588217378533885183984579280739388891968999158960597810153120654792122812992364214910053936800922090888778113981744936367415137085643298704015820383826618878288537179363992144093833109492961577393548917609666099612613492588823491298544476315003217739915660158997313399781804219783796851721835931948955460428799818725061691240383721501378217513214406384290192408270270845263721774803867469347436848266433300315424170390516076905483163433778016839989072069400464107712788432712767127614141709127249504799315001299694033077618801011756486317782337814934960653715338783070881135717727677245414198281185386116228515797876714307247694308301036966469077667495129785329697100267189260469320905009140520237722398668087309033848283557299222673302895125579989878461437794102889955765926538767112601021232632999494206174234414285505846944903997907684576580515424324485979856794623301605235415274368177670104995072839500491705454308344961051516850311474734294518650895339649656640088311385962939165031051911784634462875200248375834345385977119018557022280752739633859280587913855240894684347572098924401034498903719655362699957982079263695268328547796906178097431607242288378388066594946860602563932314642212114558308841332963449858460422858015089514815558248026516605004095676403987296089108152704474125449042024009009944493061727636499739986140653946936360238351138038619653645358532248186320781255383953318469940634553828880548895667692498916718943571113865317744391955662224495368225868274954770016706310365676581727293648090200416193205522691902937437756800224601266991654953014695601691562838026768666147545414932058186369408542737212846983910411844854982004475430285191470903194114179427446524724159724223342445445925746298235789434562522064114616122127122995767697679943338426552104299958716831248557393107186884095187625673286749148281968764458118864003977638713560585568959762344120062072495882100271575493255391418574289157494097861764154307385683905816829477062208117887415716353294265768855680819920865538226169383052550101067379200773213658624723870330503751734884704159786775366960579002996565437763499696428800116864641545103360466009005813521561528067855722647557455591383810221355550084245661266296287294423415839938896461497285895600281739681954222485526811766866665972954974000712823149127517701788274398852373884400753301618532418013726788558268271906124553519848218382184453802906640999609801640782572985356949851725275364993644013034043606261646934679062464500502349370013838078589674444078127263002922583301608092812319469626798700578398203792641820238805478337886284116829292865652472650729129959518417892353490284083113971423498589623532859851906743444949101928095366360343062158704915060866429456973008291341833506398447712146334820204552802336834387057200527366166130765976328073507265433601539545075421433137458756819182733470881513727214979025177169665918385122950549080090171937333716539352300012771235924844417674805271585976875892308268844452334301085200752351756862351768110570851700825353939573378295979864742672463012006872240137340031060612986611994690868406971505756668272639615992885634913617005986364576954949346468499932120883369642062543645332957211818403277646229008698460097500639478822475059840674420524672229080283205763622682754339634871274027919619815189902617346933250932693446329889542223419989120807739228074968586547898452128468582079764118763889899274104167564637522078070660057427117292489697609345578764771979307083536057655450151489546585884114186678360968310401492652535415457975633784360548237204293411090997638929783061045610489851568021859676049142415707743150301733862218191600885320056642206864701617888699163509207897036338255533965670349211537672769801164943011708662281343320072427034892542262733124178657894354300963379240583213822739289999691855568561025312501111764085669793890004372787488268185604816196432486011299611674202135176226816613291522170828719406795772634206287546935682439408837296824894474666329692127938840938643277746386456432796560717837497729007729034777659863274118380634297548635933195612737143345271139721098573470375999724154594412852761985673754240740017403866445268898492019403084277670504870595196384714590322580325073884105434387662046764011639850707026346723488976465100778460633853148523066116231659769005388007503003797683185485701545554910616669101332762386240785529729129268973955158281852263410066334058272317968200842525890170945068977909359319281766610093384666959481006912947589914015726950129610681929014583491082588135521950210583721894535349286859699820830425907331995555786510983556072401631504405193985011891046298258809389452978373359265349230693328568991563410404912679705279742523418487143140572523062302534201403586329413473618043631182395906091866320378617273328494594582538844329884535904077607495025946129816993225166815538495399204898709161629192565065052143708861607705308243918705800170824788815838048112156214403180039694024821244200638796945959087816084898470797336588952003265092833048396149610897734535678531207720676977107595857273643292353578254845381947417683302278278243459521526405305926022773474983657430410621203878394052897930742936885635678497336174020154506830532507787779182151643579969070194505129268964740199781165783822988347589730334958174036368769687271184833086979365660153172662437501196991070350095089904846231125235888070367922734320694765541036012036268333484005452591527334710374467283098015942866141769932494805902017228530238093490322933576831157329094391322099374438240346038962772238668671504782704833252297417791126497553238334034192551878202354390208888587535158944417760485664216525802426167692070798311110664546684867039969754538233348929904994694482268265331746523798500182431994075154534367069649031711476859728369749190482782745668752891130300086990130007603453835185030169215250899446657562898295689390057797319794201355226869109668480281909572306951536288453757577941556881646183148282295328203312239823280441220230669420853088077146800739874462962610321587203793509406824649773847434924246081608523641088376868462297576849997541157663322013890057534544085093537137644982923223823751546130694294125871427726096788625509779434636810660614735705880485093949320919287698051477107102988924046246394009509722015715345835118576782522620405823790389913128025032371738342348542628187071647643066809654098056489836642459420556236561261473968008339077358534658047590980074197241596691879364970745771026399043611930037784862704148176801825613053175919816427128552356356724346610274022075357757112617295753496540339629808135859040337472058629953039256328997091273493345912939233976533409267329635465168146800771930060745929930494382279086396352080700486589393701727407119838773659303059909181639453373213678430640567251090705215976866413134611389804683485374816984643833747667455167426750371592885886501202240021529203333204166206018204593228216644724370277594456706351924496394520996231445381587148262631113305622423650273270610348308765814800431078237347494291414292599429048538052963489593013679093738735041834713896285916760636251367812903070417729592156244591876555178593100423020480555200042697076837333760820225296444545263394041216098531776866838541778989678005788456804400155497736647739282094451225733648869413491792439525198368519035308859295571468230530047568420751756752022886456595476689215094505370063406729763995604711062533850195193640508256260306718693719714990119438847928503806150321644988624994092270320130513677782721804543025919929751074895155209690843285209061399300967068551693981714444975600420048793273733098534083816136760560480428345599043848297726538894349674133259719493489003622469290256338104047275575468765079788883225580973385233488259960379999683625862639024945403867590924790057270065107044303628653976576123940588483207066073825971108712926310984717580186422807254190843060603257902468282017925026274417441046606355026387125263228883223232933987558423699629939254925710038390305043471091800252073905820476703075680672383208975567091845752455049918589518983259211095211492218574819414329401858397057290627815257911704085548190980908130819936055498690257449783975498760312328186781881471268126943085078692795784029738023937646937978747916206873301423641437712052147649669514662971368791333193320663688698679258473584936579508080189239877991929834328097545345425381652337584402954654182607357360775939103106640992917848298086412672128837403803026901096863767328996123053256924217285913532450651679874876321508311498002562336107171502599308404920660611647432864037899933240599318060001299669115798491485060617301921259221520310984338930444487966797182907875455452656322470051875801115788861474178155764193343673212159244465995536035081264341311179276367738174359420104023514340498586227008072592774867282699336132978234932577417554157685198028019916143004306290834128715440619919872176198086437966486926433306631831295136680856435466174598520901713723399304564849245700566057207317750752367476960566635695956180829527045385508186365337332531075105721851755254554660450445893525221050968598489248508147253322751978876209349687070014614789161433077887003821846339134286203238565025717350171296634652231918281348718928359768618275469888968672060753598167702008219200600016467942805861475618954049830115731583893926868258654859516378876480344574186713944538709026791788846020601045197235440143047795764609796132004444998860003092127143383666792332701069277852396508135285445612517701170668986959525523619300011246959302705468731710956175464454060442068590125791500625163663498305463122444773853874403363244550007045302859310526189907287253221320518737095194566899642204348963484923939187711204798956152792120491825285630502200273359418821640186815690185885023137890323139890069667739164167895196683122711660228907353869845516978405940148131779838504642019747503317551971605289225029742059998960032877587769272581466615150418370829604991105760816652148441740960496525347622812046925500822219758726868550181891848808669458002534448201498664561421935565243063660782663971396947827372751348159655027260950796596485827711348332642395041793471337299984879729637790875556769897532799510313731546187719691285694233677727174967111115775686545190050072820021064543177175503448305937155006662789352716734883587781344431659562914235901933175479148134313275286591665901399497986194232736713957704871528468603931656808827633973917502540716525489082177162137178780463685784974907520487177139388255257222002792712725534704840421190650170757602080663448220874296260100114748416130353025302756473278632045590841551964220214908795159612230049267444289000334044988339643271093428373484332297043904121074182170716979774820939962230308003234372130886245317404323205371373593107987515986679468996606641999534345618994324942889584722166985567648744630876115893594963784617895571985518907830366513945979516865517421216234653174609464087916944098122420350024856051496986435477537606418281213825951195278170300883874162059776153934911529717469547930704438758536222137373551264378084458561905072171770719019793874812777927169730235377314971920105610673847454949825968722867333390012391445159779574157286586074466618451733289436746104556449953663861622922543210477114350265562719413072014947802545167627117464581004873994150267445484615770868302499622704838754501027230708608133839033959796062138413484412405509626590252731834023231202077223933070167632007812352096131108223856452086080538884726224078910314202165040701160699579300832425202672472537328257395859777523360857255764853637482371737123719891816639218180543515515568826686431546373100363387697123694559027207442488101260936421477315961490152722013125753327524336746401807034917255747401316235969899422495196417294686505971121454977821621663887834834610253942100266361239477664350636378324610321659871621392736011219756605840473265111012866761249871436584207031244137396413520998427299416411307616883826104945311383908552024816559467481142550149481341762415229134481173600096581472430900490602589884786100271348040998943966885485749847299012341112465642663785377106638299172587883719234130266762817645854321221032176211602363538057607763735848874946085652423978364269803913691641345138686437360421793028272654000716576414168808144546042889741447370786290669318644507911529348068954633936016893634614904302710461424308615633119562510183671424087862202103743117472071453696207550286401912071693542969654302548774903095860777016402940255066897069102942380208835924398334360609925283177485505914277299553728941444899962386435649246012143117651440588294553946323208608616673455349343331031889775926990597013176389770174172862078543431298643483857374652001858273314076643397404271571514623847981942222984849559981605892727294779668265848004786405246335409491678391971786908988346730481800355878883592799401793958504441211976955967920258543523421202936696450972275946791403144363600517471274417445606107233053321515780815476390459829126052885857968643948404082916181048965743863264120968237618327724515999260879611153242385940600948471083331467910385426383066963421296422077968847417359452506516445729969249174059289628498296020546976678888177993909622769051289859275758124061890848823112768876488801084093820343760928239256214155290859740783064159554619238059538635600978849501114117887589060906038067488999327855478277206231596117242630135035371584556835413071032463804267778593592619123056108197837475485906519139355300044762981268564793331835591574018804719749103242504019142266173661212905417101298985458027049054416557989365531497487666940429639760870873707527717978254818320467637636435855024509675092858774670928967145672065625142765051466712192366062048486079944389814767592429372392078453952607844182025692232491914170002407674351512721244050748336454303375042761056784333082999152353376950346629759273910366131226110664728270590433880644630338811917781745194917101392138930256440849383783209125018718460193884403300733884562438466179493528309360214720518772482881194344853075857905430627832386831607705391314029613000643517114546553286859797669428072445000138050130319849727762590737789745162472569626647093805669479610474120949786849777304893035656667901817455916279596053068482017818932269233034614167204209948438548142878647330610642885169869779662815405233762163609814027014102955309850117493863294541946658243536448079350793272781571082470936212930971802817193438059448609763825533605549153572890515048728089191217837000416706964469275226881265112041765139078463350520498149236443830581463981478275926061260334868958491697998635773837893503259530174731278759860750961232544712655943379546517681747225876329078725006206366159914886340774477255973300525973890837991180378847912860313493399854073956825769807172968174936175636990484805658366787157101704739530029093911869688997450328043925315081565957036602850758291613284071075747074467137128194193808217182740376579710118286836695750427325281648018225126612384740135596960763990590527224100179330408938839904612670339837125824700598097818479822019849944065535827479652441170970460251840523117378692778123304153853442373189285067652943980242549385000522999479860838665792407775609191176037358388639796542760209479481129489159791483634233959218901714496117985219839337507440280404190834487384332335629465177412124256411070693103124509619951745421173646611639033443505882972410141598329384020209699144361255938977817469681742054266504269747486732899224191299588517178695067248993582495441427304826322381908452670466549183423842265099008668426184026528954868320716199298175008172916479363455913557919310209855903932327600685674948257891139588372601875481266038629180207997214894630780332260033625518918653940604285979523733144313813611801379065018641773682511583765114589703408473788032859480386099229381724495158878350430224260614194937182325573846877543645850135025653929153562026012018939686688423966982070512897044116800520401739346412161964791242791181881753109720699126612130225005673647206874487505943693728689611898365812540093063257189422796514029480502939542218266817448351253905218811326186799110500931989514467443622822350109650585315189215444217352624396815926924728987553491867352698270907233179434570122084664455772691987970855526743939261425497326183094887248723264713511305383633710678328168410240890260917530527212962269290583459150862372665207406868846360924511200620580418622917634106927395104557348899910749892299624685305447015551288495455392881949629264003392954014259835067535525015532293290817420093135474776731592042602614589574164035475271190409563555619317575773910745488128987429655960952595368454788887222973786915300318976740071790428637603455503480080492287472348933900178809371873456842760633240718125526925222085558487619321632582662022715457010826957908872279036946541816740631501795471462288359459199328465386128998389157022012969299564877281327285772010293646397741300320657850918785435529776266824793527527007278953360030331573997855260406530559066858787274037789155484711565185546495808003686052742529499408885628423609487410858128913879940886991118353259912065983774688455256284469555846522042939950649310245083939123792759800939987972058160908707186589903067403810639548687266984187534336833822147477272783515019065965007074303423761797399017130743199331814724973543084267622069868700325324865307585541567147940033718210779491288806920770048586435004065504643919594398661528675530978003212803656794437206513000391623394147956481642738379801581228625069196191392445344109995891884177602829317855051137357365817134966173903684500879795575019331293338807047588057367918882263522188619016378426218648833806291862421315492326319917213975106635980937397961018586417706583239869605566253664339227807805982143693277528063469951100855178481834364206769838099791951037503246114530949608321084727658337188440312477578640707721646601482034579146716965827579030936175968745937743693666416011575880470154679430091647224216217839310310250994271809553243219994375518264232988533655887430969543761297528100881948087971370936608487164743506205538020484332012654702081416214460933647682678262715871046681215216684132285582397352243057978513261838174182476486450586719691941556628318481112367924018932868253349468441518034635588378297167995462861989478991581756489160672787784279746485393057063925830227852679435349203853484042111969527361578477960392532021552697804454266272342920011273939357657303350524985503425188719351225470949859765007916790942277738362924187198956291058354520352645500756124766649935307562961415607303040501639219413345527243226865557726083152334501806763711122296286012838964901738166650605528016928913283517088484979203585168355662529135456908623981176834273269618979236477593949702187501610900228119543181159920941012664896521582988194418429762095349074443306171956962608289575121906611206495240583457330187163671210117969137438700623744541642490637837313950629485178127498450655787859370608150555704229696653310888393388182206491942636521108463468876567000892583349310315079088111697594090338259400238455420393689041004977937356515576667775977614358217288999584107449295628118207210992477445770762304080094218043020960750647622463023063176323512010686548509921618233998056357173447666263659518333925831088662162294749874478391085282529782174509740886473594381986244202423520287746767683820585793389102442863001909415086397220008827977092789494160983960869619436613136321663462463468256568873164857599751943618550362983658933196152714098043550443659823280878907210082913118048256436838538611448140973380381521477964094796479845019753413423374178440622984715446001643589990725661756536554607715358586928085758989477221208894177920777153513567415304314205616767597170694025319800742201573421818287267387559647079139474999059092550528514728495969315750529139359697909322091980572349000043220345399205998252948939473434631729581150940651808868904955429655743824158556159815113837661472590581630301681577262754835155472586667877285877744728124846210648401648188743689892713164984292397914158263026753072686791425080504972303496186026357196544175779711176161711651869490164599643231939495867703991301739801641979472681587125380388636931150180263275253132765096837406674149338182444922026517460673083183079452401644771465977699373269656601925912191565609474006100301400433557207897677126591032246646419519694980357527693649787380503739198540753121690337757927988775024027318630110793617721540231071545977332743535734677864560785890075557783779308674911969259951791706892235428677779777445961858661303301405504624515162685475641917513693457567254830303660037718190942429834828602190518732750332063861905744262993188600855162475714448042468400820836713109928942789992327838081897950903610444879765034329835649858526550765287018948250978585318431898272810183221592869415276947729741846835807997482511120597141602853377916957429769493261425615377827820392144354284701124454785821794073255091456523665340221513484216079448999703927711002000516739590514362120643437996294046664682615495140842001340374919270704422158120482872489986208662255016199265408905230996700865294751960731977862051818697370172162576073009755228244265609888604513483874453017874703465923901130877100489365250477455613893456686159076060432234381582575505010604936043045550629549012979263007271793937463688498488491766467893626892337796924555346473461966371113467728248722279917184085363535959984742796586586179759203080882343184196280775301725639394873692817078278814619386675650111231025720016931393808602301441935695654997583790147506944992309965181660217460903188878891062695651285720368691407952931935702129918200252634582919007079794679891752097352880563139618411570828537007029891132514868424607716888472548038199411574882946439250286776690293296574324999751533453599133603731350116498935296204631552657930158629173535089704126457805300068312972013260689328812821561376517673565405220953347799080465331748186010786002867019286834375848582141738314689094030448104183136154757642487913614695648138942880058660300425359794420064251029236253825485694137621072790656171520120943308226747405431002591165232700007885374416440422310225634421936016639472182681581892332469040895827936013165013201747380909412312850674344330093716854718279651539956356431582506339356531615419940496826037626938059417772196116671042130721769265652108045055647104513071854025627543676087036210137936260201950321124833225078541193647640943436126125191636454183882767664289555925052397367085111513732508573491924496290318847623737151398943105416729685181965614497866924445756601572421295777484710660293062509196956513147170548600613636407416394765002696390627522203046465772422545820768292490920558956434194991472821635430923282228456528433237837976164150881363617988098330118955868486146840632380790318528487509587222886264182835186052400363704642382160351980946238867744861166870645379468219147380686306511265599198918667253521484613627862812336440604946222272359802549220310921502698668084808525224843259445402210589422223469117884613012851210629897787114223964905677513526311418458848321385041513460993926978401485291266446282472855795060381848919716594799913730254471903134128202506081894288792553523831191857579602678835259072761020505081538250254891373897034985979994953523666061288302650610222750733160673326111717119486669586832632279578505490344549759151919140676669935848546240143154129152784810112769099301723089309253661747630269239973914147113182785656854961682096390772638692124936640668438025304369984755181028992191642630438798050828281554400722999272067287713282758078522201664089116166264836717681769741487430894689492864862264409352225267856746562097982401538527658662686828052372495753065633697388066590842540545294594246686329227011193436169443181315508027534252724263472395481537271138015357717012002689652948807499882794320934125579456954430885455931566703717070549506425454970598275224963411327156924923848901397571557807307622647122694776382985465558063543254865624709945517474241465869789678065576944692956177912132187599476806567467728304898432447693381565303467153447120303955864443538275198185329429159617774887418309176291941105697724678179137819885106152563289512332942370759032864021838979832191075482911124316082118850338298361943499279072431861320992068306314639159006184775702834469759296811013525823328194668120614090902096295614434481420624042336249524287282488131421082993447457497360612484364360576660517151423057988428935907207112679883810162376209387486043281822887280859417159051475124755595287338634899158368647002798284507804006700218359293977507237462611136543147176232963493936208807700329670029506343055439917639146683667610403470576361252149373963403547697174771013632460984269743924289445882483316934227586015028544884144258878079971340502209550747620737798045161001144432722280741127670899397053045990122175420904627991228426017598465131300206077758062843830159196970964483882565330985566172533425593521764338061082332708081327972836785335552284969807691371299053742936535675904122186505503470728249738926578556279704409861599333187828424508143962655666786148873198045866802944017323586352806052496821004350867375406823404825779942623261734373232450457666953483444340247446736822252956668703275244714521194588163561205496306400872282378394315434369347538335553452887320516176598010008572964945221294800644296708168823149815537953458602840686985212216915667141258249782717022609042658105097010643753260499732513840133612872112675117047339166046257207753008580953803972230316191724795347110370904740321085518234444679392814777698083724747286994001573935453304916449392565254075801703047070117145973580186359583270797052954427188880592936929663509651818205421405935734486930529167522718759434616038988815014451895273387898426327163076913211663809442686633629037442510227918176918564056685404280709749515719146844029106576440512942082226093038930627815870513543099142817599017002067048164680364689000510606713812263045265321407219203703005897997200942190279994578876890907721882849102179082597214571558241932718939112687708049023519915289789830922895089041618137888910818206372758663792030676548918478503279876198576981845471946515536014170375385097047632723375890263069411016901790498922444688487503714834108513487788134298146792808418083128092887184305202846748008806033722033866544433781190735901915866788811166373129663518767202795964866618151661132926662324184210052406047241942875729238340845314635952760691678953469354476125122394926311023538615170375920205085020197086866486203100739775683135899029650593423040043786385799680994388656447491011001916935190638013153936643605766867428772969029377734922428889867036043823208790940166862141937559616676372482570544527291344576232395546711714014035501293713956960851542615369686636436059957600043520323715057096971735615093214111644528067138859813961833709899525639623703739865364410800316927136610193862717111637782079298836029960600833275403929585819515436929476358232704597138379409590803795098526682882831798230602867427887428123528957461765757825182682483330793512598788726423740155654418983971352391424611562583566770824214193802636833654624744159423124977004238036259102641601989939509632445441990016696948347687860852687519030243727801739911925364619448755737853372471373727656155245084869819164844138616211134973268800279293167851086617940698130001275943956316642791217838605384823138226966493556551237792470298067700924333147638194772290458150400086248166658049901946868983225842641151878851020043310138646796480002048513636968197234694564669147405389691622250181851710128593290703277494695085601627454783574703936448720682965246840342582590519697432249411064583529770928023874265286614431547132028899499449604087491577952968922716515345741492288136031782052333083510212546318376795788729025468164195374304169265875042581197064676108143289632748998304425244237520614304102535863665661561993066855105926011121402925250719761485871289030434791822606831658130796961845619737692108136104367810209666547316930708132506546600360035874896320818294596876192340769176070496433534645025441905572443938190206432455378117955551515645544534590434556886897841331606346282363922913557072540445633691257059827055853973490272233708578192435766100176590761031890208006601335022425696101946860399723773348923905997980389319119248828681337893648984051156162423244339110764353811677067491069359638163635655770651011807482045192604454361331377020790901871888254039757832631619933279345971961176259823806410296818386247101878549198209825575182670686205503810434698541512540366720255985922384294965453324761335731443103078759670791441177386409288788093375076674454653119476772074017727509841814837073912607692865987532694440722592304095783835717764928571562613609334376969573768332308394139323953286225128327601199300237176547451559014438798358816145887098883896078826884969010635805510220787593265840694653737100550862221211506996381444293014452621599242844219383850503911944672753868217724323108231444197799899337805731110104064766644963465230170168894674756534915926551761654637957787931402874617970399832509707276429679833928931920331049216591684916436025400936187666813600010789186045310821604935226107602511639428175345675738822868286310457536470238960480898590611215237803517022284243225911456040874452043876094837728570342598890373247688738766292371606473136894044691947402589123708440908907788546584421249310790982367076636162843919670212322935658031390904954204705910235608088674798148734858122114264342980352522629294772149471103086529610832799150379558101477673118539003686310153796519065469752199847636198931716398307237994765452904888861552611576022396077971362322027420273807157009205474261723485917925257988613856422071201942034740318265614463948259645478605899432027376063983484904749644232551603924745142273596136921861410822387549335197424251329318707393968146518250103518374466136076738065957491223534526745882214494982127459572479339705554635430844806655135772448647431176860496828374875968002144079600616365919477574357304128620540795853167449278406659737166163030450323539394816757645471428684915545739812490561708792262575246261247171335461141887975925437706610753634408724426613454297010274957958528923883895780617061534534873805563395338583755534157841716603072623606150137893961167093092594357458553961980360778312992706153932769776167884260307692938816178937522166801486860049350015279004450011534805485718058028826284291094724104815595532959641111478293662204292921330951896028115038422167875432841286802628831073660982218188485519792489471624550468650069979367292261255862413651896944017512180128957853137927921891692321639257057231862768971026845357655739708812548676537433219978452710217399573603449966615001268338839537744758524352272432194043858060549410031693083734848403039812326733559316748129672488427942394624787094334410218926097408380805975408794463036005989736851402328789499448695115741319537987846509906185191036153214416814913611065085416886104667610694012260398452685723468758472530586471064168535071343788727630691546625454491645023759451393716947218880969350578893431930305015567722815920164960873721545691801260182808457041994785443093221441053702735657108270499364791991651784175892210293594656469232428543728036017634349257894692116146550472247288268576630032002077243785296226001735131537634764280325364001855744686599973734871124011262593768075880521012345657800587176558785440733864195534954977879698491007476501398474982787182556026547718051110629718259801250709202999163614649178601054566006768666955057090296852131440233821091523187821358233819620967359526270153413221642362866287934551552167382194830816929995783878283740770632225939853344865778913953326797898495187923342111940482088534526648707167710741067901818905126819616207795272779393972500945686938604910324141681830580667967395595169632719282857960441400340960295431195642298049822525884438227977137688017043054572456082338047779591681688338334091940546295574877937449411281937998474687499727318614632906420695078249937999084621180906433210681372487802665131300820761445341017492323028828231685445076539445183654450621705691561619278070930716490055277369230074609421303013736559498274952983694843970920741143320185509984133249450764665361406570272277789879384591519780510789532421322385360573310322749034274335592674582974727988520301836831762008283273471597360208027446901421363482546827314304561676605573552286387082881958234585255765290418177654281920064899076104072431593799734397515574753090204724833076847599488412527616303942317057343032919158658895648845194675131321511366917637066471696502155969106984637356670857067951464477096133125689363496505107524147199823896694208866679379922703699787158835752907135495300623909331260272265972052761896710010348520159495725178266466426175436015457624088044571812129059875926438614322308721915021093906431748173611556347052356010091167868677810099765511914629247881243218398789486642765276049329436784379987339278727383751372435255730262691656759933293115612138064054605722415601886426548477636052971101017392232319377981045849264215122287283267068439597208634191852521118613596301553568780434574911346361008795433808145397810311699840232490317732297052920219562058956926450022853167036745327305567376107228784065564846858371959829994476282645912210793075350866122889175950051039962907844101869084523689056920950131675505997334666706397159449832419502315354474187408744686821511040208551249543512445306199670543836834843095411392262057698032707428939899727579289798785332757627672422287613870111567163636034192681821205519295620996351299286784189195743496406085018619224195933403831690519309686071466464057143384269807320635362871722365973509777298784160588471824861786703963468433590056213564802444862337496066612632732775249997173849986128598967573832027547860558064977638815670015723496929838668673515673414212691464013369588745240961128060734489303888963211009881129321982682479120894542519435872239851374296145485849273373088441878133187649365427041720147693890936022671367368594494390358961441709128896698364347043518573474959909470375099507658854640989351298110700228118923063304726725954648172425633747291576314359796169782563464149516544246993701143490820691585342918324681218888581634382445258022164992204290029659527787750819077518563609883945376762009118296245196843746030640609365174810933265629652581917146757772057410267118855712531293271096517436393741905518667873384468612394821865776451310704248341242196947109007135582155901877368426536769233563342576604474495416652376718863304731401417549635530590340184121508470904017667306183636838421100142000572677336721139401966395196825380725183714051612172039547642420233449652417696344456869672151808801041696449943377037662680759732643587109498742142941322365070465339825129102109344370254739416914853610490716156375326677159218590337445243305291584669624831068626046209432977894863194389371117120384660007453042037789289571128758199592486172462886892232309041341144175439535482920011564694436154819614026339689094907921913704595276336158437870151200518916760192008692871414285849907641780782164161474365695564370902573219094169914069944965875502315858675616523833758227215816233594188330174341797259492311526735802254343988125587104586632361451862299384232923277510537776033948956178304651773647834335140172200486429594733801393375789270501097327831572891472234870415994786619166046843400338734818966636327086203977943604015654400978248849549343900461431805539333535816932180160471312559556600752774960760888070604576919557649077790551098359170222130458190685260476854390209336896430745978357706520284358063522400052815806418780583317739864025769873464197200530809986594899666875732015271348302907009103054422963047685444583413619420883033320505896172189930939791044532819156299693517474947731088840711157263999128906140503481313511153676273221698006719950204834001091394351024274085567854573080139472700353418119927730699947301380850053688196388669406755684544531325439471841464142361408417574734011413129448495878208069183970082250826825515876381097470905156990804745939561396875374878152386421057509262283296524197263117178563249279578360204885157200120213090677789662009210926501307109507705151410163291264474683165696732465187105363441923424329083769637845655837268204342749060982789325360704019134900820811989299803556830780931442604404713626847421200504911205952185836810499594402475124366602874038020571069079942813956167850282058476860293758942081440189427148526451476201192800579873736104198054655113711394813781501636262711781142454636870232214858790276646293406875567702827872124038059795914803464513273351370245755727462480634797345908357280373422362092286169281745793435434871065430546384490459887340810010980592619276536751478357136952278041468803584324733477013391662514882594445858547211569617756665142244975361512623921429866426895272061720868569273046980072792329967341334064750295582631320847659092308631844944922937672999058711716177112079412142367477669940953025402259023639721770130519932290256077308096008612860515477343081819651259628905690659629440876333250962165556783916415170290266014634235177823584159106752713208276745902118028428813168643107849595146279562985509974897607832797606263143581351372113551672423404305922022902243125465919949909944443961926732273734757915924443199329103416260310686371216629998551496941998577071366550222671761201717936358473836620155696839145052592764572533107204494712251520368056523797646556135963979731905977841533966200595922100462448682895884473195377857150102428336519161258833464727667604863206933993360151082770904658359955807461613416418685629626603333381543200039484557502735228396310285185997830975868899730992859219569401576520915040355026251108920757457245511176513859881531886445614720056982349847499094320519981221865118155431948797894328311830471113229849109510405172887624789466541419906958334319934648350790174450536665757780470747550852830315497900678471660356574954754127946054488427628305972586454827494519576089943833763342468878904629132615618618073582039042271923669854277456199200477612217700313981631513472243616691213911614658506026112955895575784340311268564980994781524001801272682435840161491657492850959210692056097113865872270073240491894186571047010613256966887613877723293897871903242249751953690776604163930213272655175282665880844483377704818050739137765114504839659957087276846129704080143703134920354564667898181941354009843915855241243197796431068575344714169431798329732224462122739677636515138041127080555198385059172358804508226157691193624290537161066003388488760795342369554361221477844002049400544898203610021003349022502257204957034153514988208021302480563661052275940081511757842440561225112478159240367845968379682576350296293197072049433845367832565314619556621879450142841258263218329660106271298738327419435573105593511876709248376037024058298095100111956812085192143311745849228228597143011902492345977541815061986602504860908784014760870771748932765597246321853714752812966215325962278696307878230296837548975897308204915856576683109708349251242029472135183109196408839790397234495383860842502656699360320849454091216076104770353498700689177318339606865602025292851332427266173952606537025403735931693269319336713198219357470284859684515225031219407313460003925579997161394239275665571376379241846281179551194616185209256900194032099648569990729964734859839190099659399893808053674743136636775733900692346645189576259737054018876911711553660602049981964339071397140073330726291681754473801057195105122581985891918750691460455753886846947156546514770501724040481625705969918567290165439932655982591528715373687892061326605182131826312530994452170868865935606679297538158941365970002963691416224471096800653684659173458693278050144632429631998820271076535610143665739101348449390198003708409174503143679159068007223903589715101459336089467015375829128426267447479112297685425401684440919313091574643805042666036525693261261849222751120597085524177058488522814353729759934633877745126277230025994637183606068233318027430010549735630364061415505572924598733209592183052687195797147800967401792781963878505663274295703867503191902507315007127980963758382368503151777534080277520424678435192183724640379029502390844124791268877591760936700146447750356723796180531202719232696931856488031773270783863253330391020963727959624675591757549909708479526599784056408179288926066830989148152541565906008306752054863998577468676080129736092195890485790826772487989998567915210123060120343815282309794054634153045954649839456953030549908111071745139563003324479960222186650269317202904750882902717080901761082765708386409806778438461332063238020674064649135254825383813924216171556635882841822037260079690421797255234343795150981141875587314797958738626356371647526565906688978113077171167128501939529042376617638018571961610577929608946032941685332791620493835088342151409726904107272577766362421448375846029087873423596071795644828345682569537040038929632576299061236219384503038412291822740605030607800156577690788527286840661055609565623720664510196776116325542865595122545831077891613133608710227913880409212231798510770127927462268355582575236106343099971188262375031758639240713685022092692146906744027287698180430856557454449390067353427633989858063038134150727994320104623155016737788040813934923536839921448295844091613238872955546914801471396756031053943041891478413282551950214703693956472868835970890300541762485226197872249614502956811919889153920652730324895266130848109910850310468090925425453278016019177134034675349733549228946072159994415451180387516772725690916141038082852520668571870875572062562069388083518149483134985390070636487357455704138396732012117799273457417161766229854824182875570068803184645259456159805225553457453889023265470133948405795357206640175530144219121464315723116209838107516874371399854401753008804811737111225737092360713786904175682060236927172594802533154151246457981396573477392463707909527330982823302216051621645172868860153095970992948968694683211341316534749243052736755487964307160805830174864199638968490599811786221005914947383296775448220197100950699773527977841491818015839937888441655046249930267072671641102452673551085107149960294405797362594440913671918323319311271332601674396928472475125615857195177362133447272150869010291093281443553839846998593769017951572921928746970950116757208581373422426018731759556225737065497952954600658928834730669246088720333696316032332430852954949064248790009173162215242532349742410341827452291464553709316185277298843082940007943835064216119198579066064516386554788346801330988517806896738936717360553760393156912435443646624546848961389348119475478611077020227924362737363186809413148587885589368887348834060644948357880123340409559118536222271895108312942113164267247713026762194010215969145591612899213647764212050098727285443481751545141349288904313537838441882323498394176493644388261533239380187462290505166042508262035995672490715438433708801598681534884848067884638009873107463942335390492671393017762162313123588745836417669973250855497719770045559088267941228506310344007126780327025361768213842278347731650269177968374720711047413999643390012061065781402706014682538399610539339483903947676350024991524207946127488844612318887785173535745393056277697115292814885659950876282705308697879960804594071636657786278647330514036254873001733252766770333951173907374125447358736016189837504479167397635203274787931520931821869962453858164710117614935859418212796123679888981918719190196491507682514251519334646896208713058041601778488825981912520631902830203479972467214473341426774208354716506534428940222758411788859728608886540509508090116587438094542582814386418994499519735203523992185724323796188749668215948349376743151150684842843120298268502901785055632695563490660460579880264709543908361260421945024309553729658371907771167099477528200285014842542267924862239750288452473512962722875414472437055377904837952219371452387882664255942947209996407020506970355011735170088336289801624001132254142032233513264508074181990170953222028712772878165675280285739524958142792013894137757457295820911459119899909833258737167621660533412642730078373466655300227948248078817188213834699478614518157783151712996431638796241478870526215790124035724423758430390145683648680377237922056108314909247563526005198922754633389659552921215467813777162447202841437817810703984661620581143027016941008423364775894555703796940664350098638069045979379780333500305880310634741854564723980417408903744300277810107405476372807819747850928292705063415042500714055158515795529935414529934353238981875413656998376308634067461261702635641445124167191182421223863634141406801970992401615273050456208554681534858045772006083205968644066297105028429003967913309001264489092210264120858841319531574787039368428170828098318072199252688080908151746547000841535435730639343939841443977378856760101210444829796394089889616226256252503339173754539036023464607951509293405853274864633266569057358081316881379785598427901966035525653541278824261452835278447965088467851530938491155419634398825463101775840850674222336553778750322114845863310946088323362735767602536136161159936567353590086800638488554569627969859551312726871572049911625950046159003389653535922141009544029586869251694610356838286205048579488011250130020768310979112888044179670766417007155609597868331272394896326143886536168756798926660280722758228710127448516432731450531838523323483286237009732545227036935708165555555972283295115626639823192240471869373184403295460154494692171177697814933767414240249104764542603713734840668740449842072994271863603306747366170493060570594476221761506586766886620890379764124397952637758562669466198797417285499633379830130898673825025837802052474007270038531246675445350316657473227967574110267401171963763553009947296351668462402352306851904089932248828914304396096196127270874970891247684606508001679399128519176510196252097893225185746029914338393556432338847061077412713471839650007239537505184898588307417553629148596399728805845916911398286025878708802130085488310790395826290717996475340268400683286912450202881163213828149216004676351056091161292242389953079686330992281760226372975996349574659267329341486391509612308664251969305940746246862901337058361850104425920010623931635709344655399988626291998658683441422776879436064446558360952221722387431049789725052412359739345856765369448706474440052562825452667284145058515206317105858775445812134591018419342027117440354040503356434368104778276358522759259207376268844126373814215524145749199015419917661764348426245965154685780811983333232589975584831116755731631955971022080548969624048991701875696150388562394767365666596634125967710110208983896191991303478834088213707633932278232886539124916107174406738901667676017518758572601236093699203118120323874681803777982632362364193625624139224500553063986127587989540035880094879997346543298677875507945054158132668302257395816051898803854477922998556091247425802931942203337389153652566542676654076920652975003186103035180218050424146393292929157029659408951081729529016255288736937144818363051104540452786828297184169727193277664796030174515009958628792762949206678504865816938464039475422839735408851601383223008961278925537223176809985598898681640168913354317890274928124251852776885950841858196928745287670454018298688911115534619428632465426930043970315348443828673769901991503802670126613241602435168383989069756102874434694247210030890832066842178117259795324605198155584120178348750685484705127019469659197474219120385490785074813774950751035953485116499012698877960041694447171229184162807869192560163282637376821600638869613828864962487147508052177220096892026303050588940120017571361502092400926621871367643035637997890817269765538634658926159598925364970091320866746323223954987112401849385061373244577757923570298756525029127804729182295192208166603107258261503839351201180983329945882916219609376413506449484631332035141334358380592993862418602393079621695719965588016224828186254464988247082258828447249772880346103907479345447900890802092676876508498369465949726107596675535323347445322063342939888045266541241389017537065362422169888387334006245001996603768210610026472407155582853775760981395109565006125862014479480040915656807769224716405967724543036389237821652104381633111307146673533028028265150705117787001764730266484717115532396329542201890059859901223202445702195055097349308149136879358895369182642151409757317656776408172055446485064389961163488724199286797843607677372051861787249186686481013557807268169067380783455928131474578227815881389750541564525656612068042048493951779187046085492491654858569900725731828801305906017936953426265814533363031412555627391176015211112400406675019527682027951776563243739370631474364438462191524685233683197839780963228505222572055185807207569965103546289100710306310907972040800963267307081757748494412049340604259268688775614226070795162426552063694466951553968271892340297202661995647027343185402259178783938473167701167579512369601959482588467188695418637809570932866796194303987346835496482853632440627825151198968122795114527829188116634966768407821803559490187471548779368137421869376339302279128031066342163849935589512772711885307214513890679734315626482780894181384335546358408337047609707450758347008073037641283650984127204270020541748044981349371210756809345070789779098221563575856602093097326939470303151228494291401088168710365533301566067626942905752776817031549811880345624860119579402585822504964760264005115417122791748725978615341761180892160335388912895809606270320777176007398102564224769758300976954202413353463608207387991064199750700829586384050485821792204756907711052979573498222099419023444142640226917529622930985648840310652869825992499697232941428746920855981250024565533208627975254972901061985518429900887581254840676963110104226159816902497095108173798520717407472897483599939938012467439000304296225422356406843521304043369939110420259100975929031241139475104408211989627895408640140556659594758159802184734623031244478738539338803937348635508761273221053198926311919272218281406081019788815555570601696717552251806613956067572626046270175893132158371554539062617402055318790727284080784072703975415020291692991035397995168660956133844052677904838606355528410359620034477100917028069740020451135157326611655211664436926439316335537983076580396060640141172826228819204312088744318315110738357446870403343635519056011822789304706782378558692606454168078598525428820353744247053092838779650089927558770088471195888809256770409132923161608991593269473993478494972779951917779050024855251088566924275055953122356593856404658054817295831182527429607974267273138655982440575529283180058359242079235279680838947188408465818532108556879369933820372619318059852220596492574536414636785683646829034223843581871425770759403415116583449272734799305575266006889469738012513536354606523458450590339851996435873101258726934723886498258991651946641265733148756202743102291011554378981637250729019800561508608428070225315401975598192431455943080266681846262259384518991562754983065594798099491125901074437201936681051969175516072792551595117796595858295498199867320689604383111503848088100134183357617497387611310092954333476168985343495018142092793857563999667487556309212519817070603545298313628050339786208673635808265487319839916342523243125964627845226585275841936127167263143420016865900908074946832645244716977615646742305257000576175731730712087201038205469195027046963531158259157362443890384276975501332238070377427788691150453020295638398534485466021079150529634885182890462765199747541250303285608956442907014478436853711667478129549520410851291919223242376366150644796220093296617945826280794673535803734314788736480130978099399955148016042637322318244274153735569049901075592225984136566831000847946174869232437888195919277060338683060017155443638778615448437929080309335250373548497199331645136763868772042168058258335055642481646502812774714515747096041433299084982066754196576362509438326302927358986133051304156234056334758494876224488023508798191950621631741678978817208725926469992093974827549974413811448226643574501058124326026644690725514177471930485846670574177532544904983339973431739992801272912823716751050708695757937011138352743084013149053417631069232144976299993467590037883495339514832332416601889483176146116831260496819224111258832764848992053693988683035302249126219008190114867276464250211934186239576056811868593832635610887800379583670873118289308621640984735858764528867526905871794633394482604487464492332680358897154879635926997946157679584968106893384227539465816746147511096899716763643667365197556907519359335563287004754419866057005820308662324751950132928357044001544093329724304329507349722609215453268464193367168241579234291501953954952959708925728412960871268956659779959500024926194945016216277669902622493420586597990750909675206284123115035832614509800747014859771549825300701594133201430990276547665196464538324531408269435304312083579842077145386983263037586007776652146148977307147387282655324627029562942340650347817918712795371448457706265409812205947180793330376885837633193375467456910480431912139674551184084713915953192237080263784071872779697507195863547238056736482772766466645039563532666277561839811989368270590183542422216570322857987222467620646772835192776086798412978147077938601915365734518018256174359450091077322363667880465819983472804116199184785806072614870103956822917918540706163414779058445510100198343042227471128080869285875760065704188276920941674087689305071168390638335669615567969674634068576174114586695915310269999660242421146395486802125063999881304663185438148668391327533894513171626285959680973854974653929309945793663483556932997150469144904949602393743818115839218278447714482211632536459365353205837450129339591909913576731998535558153079356768318845007802977758432971796264517940473151425957152796447105501036351359168064075303463204152938153212222571403910398382423340450444109801869703289260924928667425137703493284272493900220703400449411292561643949447330294845295567336709367285354670864673136078199344024397523111222015013704599533624452545948077330213573912630084635558513887640820134086745378519948777900388083620092211028447043439279524161673424284542920652752711031895022182475997652061468147804210087983994926268984113201184796561441962030841566631408885963840616745077411212134298283730514795804871913751389704316315270747600240194755411201710058905532743971062299890085916696552156650052937423125384899533680234966307008915584468779148439533211786634829640123673142002850122443835308700696317335533919254766216150114164064350767119381606976229834330376977132340574726458572791643207710838068015803928120003323664949383925067009422772177153501320193195326304894034152181680263547390632728344915032731405288500149680212084440802308278840819028465106660831686443043761569934574668673811832685722169548484957617628665140086340964625763135489820831546362255709914852070283140824945582530331449104052489752668645184697409395420043855809268167515515841369076253517853317461983803204887647918809978461673255516854756061054780237885271392035851260277592300939108419545596703103635729471055573181001261029182630936196080579920546469960422141111992775387728302822846423599064892873261199907829688326574509350173099747354336707400701400900988684034637310974273961783473185146471411275331146760605173730962726673465714409924481265753399954757028343772159939855248227003553793133451892883548230615490867168506394172989405540829468613584827019009920154743573018679495979458903141844027282582921252922424098057988885967230337783047993685109345023351301253371445948508010315742557333920481087457376686195425959387995105456396403111492678978718568657795452559291964304178502649000127135618928658308120548196516708464979682367355493509504155009969465503331941410106132780520682520512241923888485434647856189629113727139031209556843260006578539013760368161124158808835269894292487852451294257381428951131380412401768182723130171959968564016408313963550669115236700010867521983472360385492343893003188936850996360889012086371051162990337869010102767733978655383975763508821743943141409675135983975212928337267917231702246820874001502009639117828492794306715037148685781564083944226215209071006438672039742921077056320610000071210625539472211509208713805537879135379767862077096838449195805644884739369636555689281013045594225126436033409087967962334886528505580717517688212056091544923259620318686105634735021702233852019638360218130813551901400681710924288901189043908675879201999557561878887684127489443551511028112401876099368671013487296490461874014553111268796929679114733355409590744473328089421373961200438689120138625758014788143161584337734929483708240898445752086924329653009313187753831737513997426712872502627721493400985167909064976399759935688008488099581165202224350159122680085926815454294357752706641896587434907616756768029978310637334421369822192115916498716666791067589157663315156276370219788897771369812781950888901700879624935432633764612614302677941723282770963815805166556571450001174948302624780235363266629444607968209754841789092101111881526968226437311477408075642802574521839481537814847779633980992457577446612630442824502789667614645825249592986399130042428934287188567114116757057279698024545505699042844909686417342906249198643795645573873420734682329058187122087718708834324187179740553688961138057996117474198525407694390826519670010280537362668671697677987975822032724434402486862451935212705181570967497673391104167511429743942539869689399038219017286427843170866515941752354964019176783203422830052771845676569745905832570157381097518740884202370833282226026831147671419153315453129039296481943728619940016666051291452723628866402274764747361162468011479322163216565626316857010756825401152323072410210349598420399136426125159523519793332298682550171881567595955231180308482304767413747132389048683147041925996869467384670591676096549264519969255339752459778351335794155332801383730128626301882694498382935542316144527212089326160363713554875340592869028181688489583141409095841344074574197931964330050583101262687797671200805566146979647703140768499466911488286749999915601399362192082853490361329540793519268015989675985838973930724393329452056118010156890316707971676793212896341219781750789550209520875773715268927163409673381487444546997796788064170688158110779853438948200962646254098610294339642155625743888816311659482596209969455852726916113699028232330333897749259855246010780220100652824307309284683978371649044777213081441401502214354983605864227882857836845748052006978589669071561860359210244870420584901922281530600329028792591184582631172323595635944636618274266777010028866780331008823551465634089046807322668876392095178402843390875455396530215077333855380256468972491534308066917967602654066215589044004961819483896784882981625169528356736466056975952095993879379950684303080741999690663830984856336630065325274247681801249319325424878462552608177410290727177989465381149290496613247628306737462389670849370829978036375487624716629048960234401787399693910484864316060113037783084756342900270962150734870988445832541783275324718705277734726746380288877099209850734408828466072263096053183531351437067243502970034501859736359635992402938227668888106871399683645279858834504742353870384215734993772861766101058152452954853604863094293271544115598485818487593099646998789890525750086649023126908013913710096725036099665862177018969337855921014059722979187154273347109972459746036908004843221140442884937768976650804994811707924710157636182065996279309216098767199816152822133845295730819653544547502834002114312578825752495007589014851347221585070653715107801019848796538465744884014733140839547493789316381296106804392905613990759978192137977566964647181131782109088658510051830689694871219510804206933232985895941733907267819629049997932457213319065914370041246663508871165518266842711948796080100881329496489366979811383372717654642666765135859473920717533077363331461681577674713289044305676971084360217694947867088046912713098274483382339300113137527941805296533324086383519891667890848955207103806112538276806723616289729713204180127099030438039982949015981861551204283997169497228629940207538454370139310453518358354402011298650594812495275911706773077294060988325384637872512621176991930867466613419111240250979965203535388756890529271648339883305866767629474973585882888720736714735937086657622298777513421205536785392556814273018333396865913310635693928843625020886769826027629319880590300753750894315878107110906587197904788708139274901626379167477448540690601480242716425223467655486923521776845021159291110239299342442702008080013603933164652428732765407410264237330085747127819130200310301906216669901631058399925987081704169100220456833618056900229394540229677178607409922088142718045948220950496902274150644111683037718347918573404316369154319934571599893271522806151443505727996256146047866492067983931044222024042770704640058080635671047027125343344315569846984697361472639873037748160576956834651341498464272450929527570914331252281402542266632051049598399917806840490912073775496653176789896190319540450893075283632034140354380314912722241660665439317594182915666713777152666207431263594119733166018451134606130359291750784102801243222550964880149598662645384651417307552939055061085791652173205237289331707944751002127213242997960477076137226634807845542765402950430273067889481265909742755481890396782346152994128403690333675112387502452764941835861536540101087072686041449427843779404243479716654250216005708726774492579716225197429288018780271851892903105545689038940501588694176277966040486424776722756955072140836482119818092369347358112619524526790677040933813905077984070556832872569222242384672409300422056495976871773502186662552714717152353376107781243926222935913748911776585986770355635367911717207083154268221084259006661127241851671505788435041547397046529519863199928356914176658411428517577053842628343431425032660878251420616765259016789094471201204264818224126081812966614973130005089205694347939679947841421381909051310468050328451057214407330002106603635461960420191838886960087893676768050345504985718733177393933798966836463434160566149987865202226056408457422743929944001982064655835068021043130123047765771935173595776531025493697101103368260788599451824410743773368391107481735839067469731133061835738376716517905081472602457637423903424654720750716759433582310084021356790554315854641372394486236939959080853999379949966002570456165864382561887173802358361856912791318475832809925886902932059960611587473397770134329281566410766615950329126385085438901541871245051059758715727260109788799194358174471613460631593674060765014852716123967410600167102500245466878127083386452567992453335596160539604101156497327233687512116433082352094453058152616532355951599076658584295773088821578531712173222300439011652042223262086678945856658512642120150674720326514038722171801092589754639777782445459877469504187542414048884981065380953044588205340251854794575617514757973616226317877876612547840694215814853061553397292901223579297596246190429733116315324369861308182685747484451936480745245479121950355508067154130238932193475393450191969061950452607468732950091581093297713743594142510903252240666167441240740058625808834530341323465105527522884330976342254833119868514585546353468398184026762850562002141787468840104211807443188177126808725993632278137206893493142404588101855296689169933805352019852689159818075548017352958154612717046398064075801373644035037940355991321364031731350989085254857661259552258901256935615435548443088891933655609465542941808392167535755070644058308175982477530167530614378278145700244382104300235697918323283303007588498316178848559951685161065169692200161399261079571693664135883751682435270768423909480065996706944911703499599319442038379991456888150737437066950122133752089181471323815932902137748979881872905922861773857674479560535864871567355326603009298140003074393213633657313212485508573630604017069402895764849496453311044109930114167989529886514367636470245649017334608029692305016633319378601668972312172322069572035084795578717150072823361675075212336260342302540223723612768522131218063016533433221928883536535786035088921667104560890146161216942077528381469966158548324629801380625407536494281702488285768812830806747857721106525184933305709928590372806824912828991415076396809446364909836450173152300126672283681557941828310147152272918487334112585605125863733238615545117789974185170189350057550610535659154027940153894123072889716559674507920781649215421408855798116823760311977619249216608045556532997871113059918887213012694198080548956543912536656142060893148661680974452399359418816177269272223853502879820939295352470312321297755514772011469580399841200383351905013061416672370526613605658888121659241724495062477517603256986159089399405452947241816937503238364952067197729431555460888822726342654508594119268898347541976433680590729263489504014804325372564903747262087674201760672936138821347987804776951056846226864942504674981339122063093750847239844815150547930814303605545147371957475931662360910278670708340429356551424879578309354204119618207214098785196982393087250701674395380971583740843844891022783638817850427624817308099564289887903250701148104156115783627243711971560448032761190371474193116273966397348790676937193366876477115290938615399814141232171191475063130901585569086482499931352258231103523070680471341357339298753278060167400033740020038366087269961558400588221887129214807826774704513444619080032794056044900098854247061519599935096929388777407103148082407919551051947490826556499756188308426240592541609349640691532653646414776199612049310891180322893655101019591546137374137165352903762896075359424441108124657466575202426199742952394641827423585553907064270148503445395886968897366301897195261067685131030122940089448727555766278096196615829818173322677596213513843482521271410153161993168863731820814385575180004272130025786412785229427574379382494532965990133637763533587226823838650657923006589782579531779788876028741433543603934876959562573063299087879526093808198030127477758190796100144542457929920788310073122824368901649071317129901790065570971963114351571122421983304495161833974567436161480442299244311626243111444102807224576729470050918049991589968955049424161405627018133360988730732860302051379091943191681412508465446175447208106163069664947152545800516422300016164083175719465025503997151586620523255288057847277546514380190611534910051855468296179924879781967603103376967906562221970684943444027808587509424012458949175291170443476063945287431903815597830654464360061647061764195633822648732062645419472796568512648736980562080765266888709701809414251030011825533895192204367036944899506590218536526622805722706518530902047320239837307115095775678930220734540289315575301186202356117551037388481670283280509535293663977200869827875342662129579879495903228735702139867626170288288076303795900656904976935554553330039871166412757522704525712753248035788543094553964561693495083143669692917617546555506641019305450543109795417982318661946041286483631008465650722216241344473496813409999176442759616454397151658210661234058820047646314459104944937488206270635828407864259128515213317499265639540270695929075028658209024713510183187261953084112874388983629394265682841672469284441635200517556313074535916635004493730382047038738468614867701277795610613035169694713845310458037740819588195605331265246521054622349560580080762455840674580624223903567271722714104943102929171119484525426149991722209915737030664356986895781296930266313464614664255199577352442633689544887239391064229708700243782088396531174945619395334000737420340747566413976123982887964697116103961208778464174631394364181853801030481692607201873859918006903567126905711788354783851566100471891060527254871516864615177561758896467660092802204557544677072258920340022624515137197205481736267113022518082578880709865114816230524457848758250416068756675673961830117414567256848234869812089442181756502264789068585182710378530536230101968165214480688659438090001244084647554827410666926714067844599162964205393771285339302335594055796107481437550405588867198202354696956786841581727582323428835567923770350952092296805318660048404194136172233944388386743790092761081523750600113609093038194017927984275235036216848627086603133263626712195962169756283465929188307402125149540108817903842619155261124207382946956626125447134040935244344546896870459750102714592309150912048032493407627060390487656586040741418763693430890488862884724671946616142552237872195550372940775573220898053742029042913773462297910717570269137133973414969660348116986482848638971935907135520507866359228010274155692323910279371174335560942440230747857517987475219989368498225864762219421162729491253986920429783272698482434078588444356870072877640094451699034252988910039633448471689752761986229446062196114770690397838431761882114090551739388302302351867881243408626869185346936931848553274204727307246903570436169976628696015411903687263568628058822282971016961401640176448248782213223720003375036219323791448843209781084632237754342580814832002112232812518890528114353702474486584662176903535717083073242234337480821322437319276992773669873931441845320684701530697933549657893108524597944808993081349820031768372081565116790984059081673238919194411397429479115395990911581711823806763156623217003700604272818396319370343661189193982775460696419208337159275527308441117443648289219919347812852970865842019598915990685387901364065951413556427086820860476484858877500527488425333010362282180954007507373254114194692133069684234344876697453554290325311397152481084179469310583283373053343141341052434418413836569772362448334781088908159738258164466479200168912427528639999154554617336199280703867031664592296662313611963857010388127042284976970552900214822675642637493451619870490705184508389510664385106300905045866586467271301350880301216914815189390140985197995411885857193466628800267943993546556141787763455379431910290623738998853404074283835633031930630115519082318668944652993950996312659903324856037440910429976435358965036596847201358515079076807928587519038833452928616166375934500671616039255805197874535738204570346950705783686019712271510474849656081417676002289926968878384606415381665444213357782780573177874740278939970901334618481002196150324169832447235099033896466586330152548450081930895018037629917052416895015289222540976348451852979579772932403616197384573608623603608773054400800870718792269612662054498477151006018752856565924976888200803370546509095067848514950287330518182491423758076265714951914844014407454075031009419498677502084507902799386676600845827802972954071137370284967194598992575394896643401478032970981783664320296279135978049024519045880160443755365766928606176066972868441711228427240352109340338534453327474879796249156382487784858085864710165185047804620594909594528436253018348151057934625552796378482573557852392915679405287939968039898477693641373706366433203824904631975652515884898373430103371440181633307628150181369779885499593434448994396937038392709905720480229441412650528995242563754290557842483835750352059996709483270600429809483626180330200020076132540733342242310813339686760944410138014133516554242238344861050590212777517462878139041918384565684782843040400693967900674244350367967824965315748497934518462436255799086527142581692762313858300010091471666041897307017259202199482706517800305269148938939809385848484908777159114401847824349808362178694472888174003838374439114839497326905346270823887452619411692529036528009616573138044457234219818424421209594458222642464781132174904584884081693308798793622301442136005757794140329237479866290468282508410971279269704041913727842008058334576370846058857714870291003390232868977233437477700588342296453962674259726586642622035694807016527773437182271138234207477517228281045969749455236481496753190492561885443785325907343503952175962409658880689359528541500550185782457917885872770283286558892883759630758475413247503160896133960035429748051023404588165196541046918678324022745027161278959287990914444642717095641098582045772374723606788341355431841935139362846410115884859685104861270424111367322338697671619044648507757525144490751315377828796098474175700505868215671971573022976097080869833245563513064236819548151359563901927515542680053892306029193851978533972079262363081351055346440228390195043432187446981598628267528927248191568807333196537151183809112656703680722791821172719419916623323506305680570792357853401178774117875142403459720087967932221717834883864942273844005083174650704232935762984424571728687183910751442877796353582564719290146852650726092070846366024427385791237041777100770436447499169641927131403124830892382986569569793065723695134602531963031621398435748839760622554642889532341179291407462617880514374791103882852706563716413944327036903858380344407577197020415244554460349122755748189628544586949213175698606236328544064893415202669600117135291324392159772923148540844735117201652343648109704159936211395535699892538392367115127223350808584414804297463666345714951659473348690906597455090845801521315757690754277812206985857513302662343681194643097276248629564655695610527429373815725002583859498112393618601129536060602620116073177258712948484246816151497663780916584327312581460458713280326369392817468938504789206854371438742157126169006631432339724191983416972558606811783678066326841154450541995173513709036429558655231767683416810373015234792282129753378175517974200861875942929296180471821395720835945353288028974936994959422464870273883234783611315286336834220178357143204179977240781896093828073408730133930160557940408915993434669435313317221007717635635102113398338194469250499925338981714693023268475340428411505068659899370386737331787826267645593741112589313781846566335245463015341397827925663006006251074215623940802575080051730114015822674522078385396435593300794700168466316711571459975791498768538241222443415239186164602526402534867437658867489787394846379597496121031841925990860258201092269808324061580305849707801041847350359280526942664741849331558063119755159726846538420631737843466567622264607784460420657219142780621471320613002947481085529352743425876019414506485613808932391456546468044821659925294472391973061716341101409634911787298734267757472369420601961171124293457578795209189032727874762881868105682255446591229220814578057110580542963984053633348980334927447123932542731719794225872431484170468182719721894503229931639126033602533697542983229965853281070436351195707405633298117049429727225375292383495986925418299461788801660644715838408542663394446421585526359672826125402080005820969923206181985944345278459538357762526062489826633813524742197908478245587840134433825071976460683978726283722449593388958225908556184694635858094954162525647823616224371972574696685921979689649304037411742966477470654688302648976026759479132882913141311879927771813674516492785129174404890560593555964302880665136138643303139994086049788771647904471533564991081637957727391757013564349456640483158761257962145404554846497294107448990780365944976870013543067397981252641369013985037668967174320319471003773550786255301130673775153518497572546866297497630180722061633466897249606036699844321889154934312384872912896513765421924997648474246934642988613299205652351101953297922404431797411561885108773745497666986065348215364091044477325744553059224759139790720692331781708839482902580639894194429624074617018565357414677611807560172354185606003316473270324236031473546785103433094755853471521214405706320167566995525087045356324898734182888627405432131083144217478143724012256986694803538136897376877415724695404378712544822420408411251353931402510447546442867802856256286730231115808676871637521351057702828339106012663338795172633773777938102549025571725575789103246931319182595924653836396950121108754324299277348550987726814766841436632112743785696137584333896205414141423334625383800120403505632949035606710341973046766128006631369330498497177320334402528998749199633277355602828394089202890448103198621833762240492443456894050822258527984592776314402056445843317963773645724983832950841660491113519829110462589276726329819303492004994845569549518975446129126942094755082790475387560112837845560122515096761690777860655441855610383993793874060867959380898193286022668114318204473320255509687815201295553285175970019385353640075383114348735529548278847730680230483631812459645503218130984662326916416958302171374000287069845809647252120092452501661621746320743317457229313517255016895555712148622062666175539277217334687588806898322381496590740255780511807890217028948746572068350646980261124566476832781197428411865961599610788544104946541731185440549903108543480831974102876116948784049072113325201341641744666168002733311629382748905871164330206610360433009772726534806977752570008955810549526573585767428171259737420157301307916436398629388152901707688237791173974877942675028021384348825279243934789591709666375722182589607627772636799583582334975368515908213685556920556638481154435363590328492279143541472409276548978848010902147236425593151703336712824476029879744035619680893259594890191390290189652757704525172143350450639388992271683657556330179033487781766721308579497445676846999287259611389573409817295909070947316720512051225049712774569404854100111188517785147809099388029371949277369012192777897648626006385800253861837542230291913858346161025910446340410157095030174660914979977342373032407150750753227554453974512486981126847830111047737386823727181176344987550513101792659946138855956490093520600141432931855126861917563039809666305145038204485639780737020604292461774387138323052359899998650890380787429542338239552105508850416007812066969235310185929781951638517366060874211328685527434544626714974175904375622074410634785070613047533865003353316812639811132365227141200091897355647593252118348536923151880496414345043455243426462716613313793925167687305335198179111347808669980537230170268385286898739720325419614717694828727402868540862544291967683949230217073591256606363838186370112349615781143077763721322457963598897853153427695796832620156068084916515667608669547478508673349005532699496132485611069387423830784747645085259365648145489587544688229749623795414678236024970909424020350177083535800101055560946170391248430559756290591081417327969525168592633156239432948394251553030503764947616247148636822743047047214776005505237414686421148357550904223302962571511736966147418752091387381955110798643038608758867382147257942778750803414682798904150643414879331586308174951880128952742768365504581525434437259482526903710859244904464027445374693056909051490250402274429497472541386052627913838741462560718884475559809609382365655387256231034902955820760283230105380482730248637435450291224831701166994247599911355865752766900803566614406826584485414174260864384777560300034630367359916229163079601686357810710891430102358180488478858980073384221732258295382928463108730956145744004136731367970713047277221238727355608622067885084075604928844512252414715598866278826138436121958701797318660621028037378788944318199787494666634827786039720775270071811350978557736063227116039941156244983987906549922418849465377780578900049313178385245567788172228380265842536116283175783793492407643920277390376766813097544347493753537035735322660374017804966165899514461787532506032036907825159697935992493963327457026071317584282890911870300368899634569763929788873389971053604484369381334338798811590750463110873846642405721299209522799469110301506853371496537977596313153405731857823733311027533328932593407433441246160743443905075330093971234294074981551621942418223227879896279442768982620629537787680086815211738985131219137501835311372173421184264719453165974518902861244527534566351425448900419671421119811585583356768692446835860098152576198420426155705819329908620711737967340700484160146313184342018561948633842658716166137818183525182771347226211295576524081927002267859628615231060102855796736316480011911838516597178141026363229117029036142650767807567341508476835308544485841559477693224932604137314777198400383988780753806154087708414329873504449408275072958108817972832257124973597109180662731870523056891445234093533011627344665914321782259582154700048961872094512876288488142167804051445412341393495648566158666962562771734682025343485208350845336067646846990573729240225863884601278254980302826427373696311024720505614251977306154195607136243606044665641301298832694584835752618056389771763086020176102701936559559894473771357898753551210263007786412564262835632906737665659714017437414784822271165619332892858700942919401580918522781252739217197260050487226817706943187332655901473197939369126419075602162210860876977261118539934188249920914068527197731646678004833092493222788376682184567883910408553714490445779613852470143908382080148103809571212579043739627490601524933285352735200350176099189419820199335803696117827184432973532176738561469389617440296565484622797325458310726697330529868798266759391365677918556516530067306098437046823848786163334781171347049403463827114243776184674516931455749209918992716969221842859584218145213111487446638902606192157980394832568505150400227517242037779945127155546430978978746342500789087350276814946414017962475173221116469691756412880762928435047506844396984207238243068241876887518635506164230805952644254466831483287525014764799973557250775505706684091230719153779767218761970131272448310005121825793307289338259759449096522480410165267286103525718667622091437968743197648641217588685139454886571122354476746964889138421287044349884577864381423210941806985056356509623651544459342764450748275469687963303446400592693433960915745046383848686525540259358191331345039886905289219595945924060156672564523026219742124809404687344309454073119670288729214811782304285730820467970925573483710526277894078235216605395202872026657280203530673090343209827983807263456037481354288421345552032665288872417896818643993669853278227509744666776633170705025431144919117701335681701340918329801128535292055894629177328942416922769264356544365319265088104990430086891963783075994350368309748162420493024126521980911978979540968420506542548156045406887251059095433034192348347057096546539678511843502794059847377598005044833900481515851625867372008407145058168748062723562556532219772250236062421359378076215432479414560898966223792297865746381620257932302615624525987972945069154170599679026077863583378313367512020714410742765857566487151420493543285475983981641319139535461748218693293839627042329562940623325890300132650175694482757520777555406519519268461987009842538769969068956737471903896424260491415932888780697285166526757575646775358047019745524416712942883073368197848855386273470706531741269110592306599147338851554350544314988834517591820036701173865994108344517595564523191009294973033243642578110365863719969513553222028981056410644644556443246336500910488171552809532499924543446639714891374489904413663517797284676176877363394435544760132673174365870258047000843528942693317205297920284525827970351909767225648646459874828569138762229616331742187350074788138870123680152832951916327369357783849560934542616201493447624306904968164852293210263650651166209546424257970370579375536107548251482144449688191194949070892506399440647869415283406801318363372198132403027785731861456820099216222671542034630547963822182561665493251349973621470853914277585204327255192065877072749967275159146201936678401591887588877721497129599091902087315035430015963059918030338488582292345350024195830965922928236056100313835716444208509939110272318225599492968972158575994939715250194222407393384279474409770742126610834570493472451370480907425281823955053311577394867475818307158347440099971713506097204136772046392938868780697791427989154725123950289903132209914036273313192828938230764808332082024256697720058783251846870011370093446136600926879388979364918526712745613520081283845431377969295190382957656783977469033346170488381218923457258075873943759012496019399471842859403085090658059545825050408273052472358979731967009484416841442280020102963794520911381312691627960563175861637489805174454709244984879928626128524966482700762635954572170965130834925413979694297020884249128025428598414627951332513492450721614247929437728585696883373186858264125475103979112538810378103855361633493897837636133266859018370837764719314887190841594043145142360074033594549949242482735930174935166050473078434377645301090595296708631347046434289727796069339454391311429830586350145321963956180878702094754546446574767033462794057710050669470339162741532464625727689212402285003336423845102870427633104992701127117183364517506483867396223050982661061494595422210680103255182327531331167955442637914866282720251779509979927822684993386743619196926016517429202380833453565536944996000198818299160312680719062272648690362465908965221740510895102130424487415993207062168178053307019095819098693833433816697596135736450861034005355956180392639798173113806773371152594487718244507734525457873378258051980626503256696704447723031148017766344673507802476501023011529390603369586251620552052796456939454738503678405652457306107436820409078467826984374988067529897676701855766567166678487127447997409198078136246543213968345982255059911431343061652843189710828783172324857425837002624754421244178908861105635753808078495853641403126802565003528534106175818136493819407930891746377790021872027259564311335017294185927129658638079477922087772305693375934352393541171163119455347064453653364568580321406977873238094794538926019654325961261751140028232267023096383839261734036644883432674522352725136758158949947126545687319322343899201195325976139383570877772294665638857120312546517053575721567874585718103381196601362064101544858813112319095356914255142065495325207979838285399614918072913932155067671168639079226856244598411767305505579310412437949979547754792758312909963898851921975615374259269191216088788431593248377693900972670151366299716847449439875422864797588274577401203017161576726456299232098823208735257045267344275630439190127660988965600688460743847461466344671805482514589163750915430003994361387895818912843797254490736157381214009190722917489602412250110980628218767887123993886090433312801612332099947940835942938290898692477835400752517337061707051243245044279275090571693544810711092398334010845378216717697339193525548678129816282225189737602559608719521487355744295174303250165845343008314795059153467901528877158321317192422429914483805668047001459031454333889472684770460692550860945477648265761901656137598573973063807462119269734611267005574971206551734371782879305270531040245472152300859645822312692128136481614790793603511989894733098285660751228607295327272660928486514527048891205539973633058702575209747724758046070554614406493935317246641294627503614180313503018399057263122089682209536180390976033650208948206058405642060668451858565517102126078150342337777056278029935961495440938302416815897252932301143803339736460987123637913039612027653231309415348038686097302062049059133166064363729283644265860883704379317168126018952286006836997633774310844773829988866824810005628996300053605091369448229296847557795059451867029944722239083889878465275886822663397504183429050861709170840336046437141652621137984463590810243345138518868242871095253951636040344872786686348979572075503184785635776926843185705865578599044312965083945188892402938651150025629930257719082416764121710997238135766625643256724309356258483252455492718216491144593723455273221611400266352550619585109107035160656049455808509350860139066807382990818636904099213961081311890273601237591750543737293377959925194479587241064391056091810274321854462914927742436232580571246309586046067074171993236633514454046288561208520616158397641674533780634907140273134109523758379421436134564519164634075235018906551654732467084980637047430449322738324180480985103476611709029156303313743061212274473748392091439360106520143171762753853647716672413948871281482298832509159664816895172899341480566160344176107076915932492351088202876723423303904819058830741006405753131938195251064732777242834428225429145011392120268377696109321220656913129197123751563110561969946943185950667657415103234113664276380988618771093216983733138563677751661392798030970922666122411223404715152501273164237362564249002098498141315037411166880415105186439171274646864661535389514546631078070953650810915444519788916703797285641094237320114628297503805363918834424528233801629005821087469283670017509269682022539269061633441243717881583006376818442378576696351649783583947520101767570269394569858014368943911664667136349040575183598360886808013492424406620735017797919668286094227558555022190847292733724795547268480260211132192229102820913057716251987844628086305218016758474236332579898370268668277822451861411761111363058894798527022872994951720798492746157984594698023452189408225741190141874298348690466130002438321390394307726724006762749003369858078161703621519375395948653374316605509713553881583742331958161305384279277746268958935781330782952868363460431973467616810371446813660523456157424345116239998935192003519528347296418268031750978109488085230620455982272601983563522317241984678453705370013672361584592540243699647181212885611623722570497690941014556877900748164873058815644848964190405867171946921879200098158001249791174014398824581723679108169885511392565542574346645416669807185158798068634893328467985654178887749270130049549965825315334437502109014987685947187308095149106108853315786158464900993495068160085332271876862786352548809904702800225012200412674809213379016683111154776240072874095624198220627585906107780556369168635215559701754927655105892767661430809993378398952436715752483788989614579124669420257263609791391277140636001245169278550320896933324407793885582471145781790742502120272820462729746927685264696973431916811636262949044143586035358081745754842907946524075044912686478718459329288663966879805570393789519999404282990072615248287475887425297742469664994089647530863125116694540983427738079424907199085440458205466112798684272333262998512303792264408739794141092725677725239405493205395871863962132080038443389060472495503645724665477264750701279466493327223311240020905613650763187354251804691501661681554551471098215349415136713788185570036947654318941521530952490538169779330881158128854535717580684036607060306594725341285868737598152378595802839660195148433457861790817280132851344099113910420960093157651671176411622858946788249634610515815297710103551771254935620408752352337874638343005612209866290038679765956616673526459870709585860711900777813471850886536385743186263313358125117377305032512997704489946538405427381839184304423247159383228387889616282627424693776560077656736795259900375756845885536440477885770441039273357781878700958393522646153775106793729940170708252894313369024061932758139025596626359699749434102819496663118774498386235581494818568158735187662545217830215179182602228690887264390678940832282262480612265637444132139962354428779217130677250460591424175337826826321721348758575266274547338822186867281167297346986313488274606647993487345952312617099536140674542061817437199401659512305093450896507833506043271724121344867855456947357916791138424455054684571012685163870226579119190909035261869030490536485077586593782448689702150126644921813541288169589905057171636331682234094815289466110761321590255494364911196135605200446074065498883096646052353124207062419602825818247812052910161371903260738523842048215393583220434023024270827902570577416682364923196553936918090196845653981856608085399838814215480388522711092787499161590968194489389046814482033311675402286886200444284616792264547012428952872824560773858655241658500033020818283862729926601743255710724556352057073040788344171303115443098737854368423738429380116494293675183517146036326940330033171801303333129096034163692524949998636863560271007320024191511865436035204210987138011937848685002159041729069612048745568107172212599526370095293948761499455470588994940495783996279372211390527566236456010766446590541816430777586243104080524235746472589914652454860300525980896340344048425597880151589164665797919756446913394513828235170235185985714821091384815926812957771195455021261685483273173586466472795252493091209964755948729270053961553292955127561156504909648441582486281734657703807962904226600346960302159362150838928445682337323450166858603302172547323452324761937004177287119419943388046540638040606000689892347108758146780733733969848965305383310162023982696156844054904617184351912962038272124044402654212366420236307145450623610042672079502103478452877279665366321425157702653509327610669082577781811613746457240626030739323694454456188233980320767344429799023385817504148379434030818543904875650918977385550491115539648995973069425021249719691274412082538029766217964389081298767754762429655214930553765728419055157814013144505728021100082410270219811564065997109456635698090141643702547782340316202527809078688080536021354918661585735715322803546059339376372724180614603986789828008694013738692124544938818506333582450588298638163325633430280583737487582663108321847890891510760864544112141478019168966101052488336468361768994598145955690655578353327467560727325542856800073332721267153514559874525928211066414029335074993762018664151132177426849623317298417407645087178862998410640402182479901249789531136564188343827037895398816229064384036874633537033360928890662334582405786861092323229313529625135331362844800052402794980025028646395245421096849327551083362689761353241014720277140186190507650701645053862328324381257451108437345176365152916547936920002952882737904640549103404895860755521271154199538914752685169184667177256882963949045593991826411051950494228947112728201086506903928581606831101645241069846361454349742199393221824756300835127237477112720167127179954112411176314297014228992599813922747120289687998841701670936828230190998977599637973359703899171774842702395181706864807340935833684246211171675284432592694444231971876471596796467442013873583064830198964573648861423207208807736054051473233938025904713502189390408981208882085014794793539529823988225756613192802708185425240550277883436354313860398732074241651084256666429532850807859511337496124817209812223404843118629526610781679242965739425668868145845708638857209371209374662530272711617595581923763518615626633421863942754561410722554266615674200800235136385855202462328430307396136510384931188352050883800320885001546301625458355001645074942401953593151919742305260029795840535167923337206547494238418034816107638238760481040610242911033996472167747928010652835639506606116327605452147356009903184558842262871376167632160123122144059951442433379948774239545877601848666372032392772532447360428596588733423766720723511055338181520666922233724021345062833127285843201350559354373330124997837473458771143608270137085826700899692807790558646351990614640742649363154896292908231387474682823413937151952168677725062347649397527429847500748332863871174538348168996653511453177991862541353772149711271264854514012383121977124048821936896638529176004604349847500634325306108030690673913149970254366803288190130843800749174765948896731865081100611133783693377186658233556634229778736589654362647924475875250144948822586544263930986562184413841052578856418531776312511760854927939273177779208616355153718172365249244911202374694897444893339492157680438089036442011759434336493351634156998169518028907210627890891088305288773168366875227358830650444353386396859714138102649519234329260706736865978271504211204385502366270315548944517401544178403319338860944663966173194132186479018893024509939197833752157890112927585470845472682813606797885916760311317220041475615313888866011041310617679650231251598859804127079038366542132385232715927394640928656585823054605721438362198021261893776527321124612172818933011835455131684271753301075884163208724306836922713672693615737565069608357206312815156640775481513871513267899798692717577894608454769130826810388010916552631230773689595858860896067030511373680936573825246728864931275199097407068404442758207666677256601087940052007154351903456045053467567170964879320346904149985745217086374882872290609768382949537649933064273859714331047939436830062174862938778891720353786179178072255995178726263145401271160382898805120706465514204591124270362189782396623952252783412290786676493433671164485173242567311976107753334045051112517413786150085476015897044947442162333460495677351292289178472418946279784141639082879308363480986071317835949038348014609610626060964236592891550538346734737700850101323726032830521958653036900473969683293688725423345365262810196258968729651753932071526505956000903539176486805832891670679115520574439725508236026696303236938551521181579198674346008189643039001800400096212189332873504439658475483421402046673035618277477734521260606918361458901290429303956006352155071336751313021366231899561240762977070045569265581001196312099565864936803093558427312764971945004449605670773014217454495027296825184302342183635437636932195474404147843223963538644864303152554178763339971844276405285005600143183342211141571640600881050104889489672226357894549511697544061180410847412753221171428627538538252396368388932835385286028576119065166600932531773724013752259019637894936941951105201823380527779800206623421334014757611400268887584248825455112361330146429510658638435117894453136480615498154261923423945911833677939339198528283380656284098705849457773091631101876353397699755248516549628185646565264388776374294805533339705281056666398632182750351167463184207276221220715153261052312925519005307280817050490226971475259624938274660886574311829943957303265890742795643054678314431545229007407343633018984188938854139581169572958670550315285675165841334274878458726884974911992672052545529316584216521738474270770693734383147536117647196359352111459698415871838922247680166095229726345240575238976672274029185896416611652993387668149172378809028257588079547933301785895322661851865320029416690587604133964773771833628877177060266159709419478552437533019965036624668879389680310965502996123380449311369594833300187278134925301192779536585802253706304836317874264221239334048661656095636334607526862001318870908769041659544251160186717616708942428045513331028193439630300511143294076024272177317119322611233423799707504458080107830666831733871051797375758852562742054721135144891129900846706047870942736407136319247842242633037705381128424681609097371587069230006798958805807488879118809544137560425524011258707424200570652256062066991669401354458811569680736948098454196924434779360277654942950849439637162186382090094630324926485156233117524809714294333569998012479419746563752152127914931438294738235665507883947569566607773321625157826145960502641780172344001704724010457319577721834561192969480850345949446499213407174697142018882849968674463068166993414963337128314726334179410244522678625644952722129682029531760475371715804957626081920776994064982209665727067683736485895981786701521077137752026754120809096208458737558790207972071348498321400898833050487401533892612548850806254638526062856848083368948644705577645673915189812783697536118207944332353879340266377720631902923857190368777228772377224012791412929928905205830058883239048500792560733921925157088397384167861813728530661546746878011804388569584340254680100953317009036058222205796446993262194152552071992842938360353325846877172779931969957032044789173116494757202478319291698770026270868966341320129489476828581614048947544596178033113995765770603439761741932916469603292264089358122890432354923771894628230474730359622178223078903352055930645373387024903970679767705688593657435644615989304963924684067705632849603803577332242438176532862646016101043183498520259979376396606961474406225975551820732772127864072020731247130853210278070897198063573330308948053640815803960555183673442586454664883544642061804950716213531739196374512097558172952079526123022607631397060277471798084280778297148219753751013788709574363272208008405013655176423117586679672286617833327993488864124869382175868388463523464050584355639499507162485623893350679863675590916277012621867307168956165492374374887259709062011467488032405901236079605620608166095833156703381735256976296068245513040824543035338637107467861559521297665715855631601613319075096387085585085203085919526194378475915523397881632511401451835539450137991667946212619897235268523867608248120098695764352100447212098556676605904461403558142605778103057753206531087188172787578504492554453930810672273019009726180079888324273992127948184285738652236939831434262464785245151576493424154487034071812162013383421355958897161864215905609885064056638289915666736849026679373277974092666934825191570550886837284498874131258007257139784162645471676821309626729322820105829691886966631937659905035238853826765666553350677631492489448045721497183302441188869441279577130787523294836833709709523302556945505467836805755263285872897110548322744650021242755157617107842616678521458532145579664065526727791431030018064821391018849704649423977392723625652052089748829808455623668190130572960356664759527334439876363962620799346099071386294502295401656790025702718857414437772970843889793644700922159504647462774794328866890277990368667394958632236851026216845136620954438050134813884810051325918712025628573923815487130070976890502362331625311683370030434090784519696566324259620887881411302889911028987594705416798835691278680670162775757428678094140163079442020002761963055932825053849394600584146366323238683177002989319862901576032826061988931469558632744495906596973753090671178534530376707113813437166963181041570461527971738273090082988321605270375209939286015518595825859553011378052360922641632985735832618289947640532411094814088292496991168845449195986681457256410249964142105628470785919130016443777185924614296652056304033678239265801331031836330606820843795491516123133006969329594264427988438293593850493830391558854221343079490980677692071153957619652515093102004156249297428547337429172375374767483572201288309713590074048791287414530819635789020714438024528360494157593238201181741865724420179724868623596458324480167396880056553583850841617014763454958155077274003167108948472783600746986890401867557713592221198687690367114766112043449281103105046012929273053320036112626582175093091177625441987124210627107180273751105721132805631878792813566263865219797074921614447179571995525848038705608745153529560500248257280318960562848437697405316907360484081244959125094673122779740163210281178146932810005526777111949513600354310862335835177062799015695887945194218668396164091484386312447741551728827387715780265236112333903984553644814701401933660366963758265228745511927722015193898681594926410517021813509262395991500031831469920304759882026647151061476920812719217073134764504524967541683617622588901281610526204522088585343635444699843722600903700193432337468728652134414831301275953173249515614711475836109542344415691989099403704215659230866758563026586010166689500221886232971888637326663346006958486220766672555777217938801153547885177809713014431050503880785560101812541301970168955162045965387573945307574748284963731363342622418364916151086304680936139859164979110982709633550440066141765723312971450417683732914066869879616980349067006651299011810844438479571043872325644489098301570524785619421525965732345287803408939598803492446018034137579638317567171715623600228602833557485705668240213304980717558587693200274921841970149726477255071971923761041450688203603344865748888617917684160001804104668831718465451149223924302908567799164935095659178030734083075399818260440367155239737611884242075508409988232541697727349819530779050944721995225614275057749212536073530893957265945391736969329146042998387191248046679127680258061230545109107884033082326774339092785383628906562613022577345512267592276564287794968268616734014431640452237540819559665146976966454790247199396806566586404990805868790389092988535881860265792126903934559992696756306297103793123911484139782516435363866809971351335678671405685416750064662322640559723424247027055456385056180093099680512692251140503856475645865590976725419266384679854341132500764452018119526220142513217015143630226617574997945812763974490048284231477138825030889430359006344781957913361786242142217781159637387824040880587347769712703317207050737534402326151673508172502341202789920986000492261358846275417506504557791246348506571309691945343046097745212163307046839457640240147736940412897814158006869292608114963178280768557650952908928394548649236707409073476950589921361836561675835914590581164956932339245816250552938078976313777157145204177244953298075480328226788552332022539974621419364533785296472944915831438812218201143075423603439730148443320299244711053923488244368234244635773347652632718264357802907043958014916122102951058001596230244995737716995509124324855113458999997378234607556284275687587963956122547727234360370205542826016462073190736572678992048454703096415012226830676209436209890455384774423390101449738364771208266917938325073799122155811624321590235684861582742803860185125076169596258540959375650644042446908481077883476643158635268828687648005849376707357877205405770418917966630078865572171202920204291018106794269718119467122942238920363614050294847705167199475360852066868773043673431967967221028409921882516277609624581936454383112561865932056250110602140191701598197512222926968909151404187233012042295842897328519656812356699538705200262020667555676689470912767605725666681597570358309384613615983997321814834056629435882515394251916711957071761499351508883615198995698159911845467910068418533305259035300696429642042057969841636886580835718899269963533143896194584980479768413028645462184746106061834499627323091982967106630299073634170503349017078009157392233821765441057382658003621074468790778088076344474087502160429506883801194826344600728275394018547869193877978701991457633545188865840858048419183198502814483048915155555708975596519107756594096276225373794566429333400771873354082218293863397916762835158572988820126175909746767956859688395546117556514963595398787789342895200313389592478391597125287105023555805967151713953577032033467834246491318094795333713173943137354627886412614996963332450298432695103157450021998976226966349416175422688363916386438905980952407229977967622054628641586110035396345200383716407743130065245998401396143593758382221512293559041669282792775523839448016824227934492569532435384759955647579655598702916747535868812389608285168848809039242519732758315045718152413625978760115743449298980176773929919703659428016527825560333259663883752054880543658853849487504755905724601204238449096322998823268370346514542359703922744302348568962304382200867673044326395280235079554025385975391613099068568486714067598110230517731813280671615507237588850195597834878450969107795077880402708485532054783568765863545670265536187094300963262177650386000001577108811648828168008392542970593821196712524703919138552391848063054278292697376697948908260740676931239132373548565905784687574691717981252773308909798752316886732098740032227980265069275426634898428153666463395527052876236024174171355017050418802532278963776702711746696537994097141475940873990058552412551101154685701347015583380815935585526325750168833445003620999565188774671241024930713493165479156738323194593041895610845553184585189954099840932291848350794762733575212115660541637459090578872976848159373534051312614465206616105713469376584759290282043641114324637878248006632017407098909570213709237617837789038719854816335232730712392729128160981821147202233976662086194325269705160975953033234829332243095890410396837015094056645045380657652124531313595305088511120628140901085703906308722563945401752549615185361857095114554368998237804128580399283941486617687341726486567326910972805762018842740452769625374163927331537498625371252010165462407978620856908496745138190653500858104181356437417524733607842499671237192562754028151128437576525731490439104165807717144863083758215760462416125342141353469642475585570878680703323847033561542816819605652700292729031829205887191156204388098620085677973640550477679531879824593559686817033247750204934720229156169112898159152631112284093249649517297438093801082929937277040269931263807989847747102366850724336430482450593866703355983667396193670293631091921358801551345193894356845904384238254065334716572759238888621642223922959638237281586899145548573867952540468503137708805856793774399393768843258229469284695500919597771136524936745111370751173097237314510836081273250087783800187557398820936928141872305838418381065804134822207451411669325672991051756851605342135448369308157785797329319933306640315108323015514419747864866278239386849703100366288561896297229321211172589066216275886641752733553902357668277152541468924831534439853620549402411378713067000994320394545488109215495537655862712910484444298813109841174405672712188012597596058498614621907641572976896801230394886370102243810782916587849042876457212198309782907190802775311651430386744966163193149337075616682625279321878015948539370809997444716166727215336813342199482501163817098175272929674966192904296457224429481998715039514453139601724194412078939286394212622575827042348302495912145962933382433923554490111490073813866225376451814539114248811967392128259819881875759242472750090165591178316162560818194826413923328753131004683644508914940434734203613218948471781112122460652087332420857029320370675535842307430362108112975296879815792682319777242684028152301774011004624765167428644190008049431395306595222044332601487288974223543145719354714379555200077603603128230690142516996034369663178638774007708067911583486049209265354386318427958536268190614118101033331598815861660916707817866350799128157936403954831639920197283467675326221713644512878740453824467886586669769258412761555369822749788810603471127386078986872011788678502109838396376717382980858153969225625242030972934829643653792155872324042248571789112303740530804547194301093598441437380393938292069433573496472677765709579686364311631791738709838052298851671501612570466123812821791519250900476194880977133150001244659233511224226375755178260976492065003415585490188638995009831766491258000437937786535999331879203018954214696484849951119082225162505916780110794736822991223538117503628944032036643404835742967819756978821377942004798766786743405669098938003850524156151768019729452089154604732548675183873954068226796468891522774995832740638197990235678876807127555832811414287973127158156083063246950007098861337180115299612307462641953625976431626832368845799926221869062257491770633837101209680546691034568919747422306063666481236386291200646623833148592546019036837039423908232705765857168420544327796375594885905049228662170272799832557007893073595109991901299799270418891768046274570515353323110992240907020354017364082031888869736569309843411679374023995409039256219986140569670099566320701015644590758148668316589386465761619096642338321829537916214491026838183481368528307498260391375580724393769513231821610398476528575535765028078313889689718550286098561813472976420950668582420179200952682145680639333212755712443602010316371207951683749824099635133024300718763740881174122370153066902937104896700308128501351069189868101567224343274602943266380545252232119410226249415255424133997400727545196734300064159681111323365925983058418967542451821395195480182952821270647805050018959443163559921599021491712750673881312578984094918782909610226083540637553010720614040094981722436535062306026323260862166151274351455479246802890250051224297810291322362906446729371562401342057763539863827489914531485433304350411133399322715579860942371814454734791310342043361966544588766718457458918131764831782068837369890164572530717525214046343299847131402010425497249187991254879473094382857800799392620973194475211669761862526721313398855420739957060812668309811351469615834467002553059881974480736478078339476005451008050530541092813534036690237871833075707749511153973093654001029705324870441146367167005433291712812707673490038174298036690570510059182961581655227833809214949948057189200079513031434978137453406598140652878336631483437459122409286369864486176959788948017820940955042350810334429641482659441274336828481773877952656618246446021842090964671618143224648913909394294498304371748878537536135077977170427545069904562315159449577318981527655171110175758548801060113260039272670698014957339454094161811030777830192535773812433866129568938610759490019230083716593747641073715801130711573152344758866444773438270152137847267748885696651187599247244638603517357451987482639478302780984272853397213505377227716237364133414320258862304143767771641507609538801245617378549053268285932243664347552365588904336500697298872280785759263625983158493803351910769087542241173115640201974338244944445514140061461106074137814609200716537116233879035107001852932582804493976994776700247943028409691258220387625924012108520217969708942685317413945997324797859865823182557842067477573113016946227174941177323300883451476586967052944977838246766577368257817672603914573046715573390717084371757693801964745174139944056470811239962650011378399042374367999051465504749354666785331877057011545631694894659587274191067170267582553400768387281800269745387335365006267693100748143208888981237825823328605810731492347803253462438243356957342645469470630817621330886923841327529538465844139817880061892935626607014723993021269579396402060257426445766843523487555618301216985717895023869951636945207604916367518888412792899223387300842907915445633056982120415190194020033677603263755746633007008785623763714432866465048909650710550322992351011208014960697009318993462704729402773493558439167006006343802316017515687204942476999146214273528082909718780033584518703619366809831692923569167084303858078891242804201676175334203662203223579281240266874732041615095974062835469684575233166149510170692723167074536377327504300685220921189686915987079538272199319435474468922296498683054682155382729862067971376694024898008342718400972869792078081205972900651637081728873504379447182698489333794373882413924482952929423872395062036340497592680554641596306441128776300455962286908972438940133974876506981840764446832022561354225924803143407927298969614723403150684930171625775776477639409759868937530472874617581799056382084892701418044453991601763558802289067361186269952335352284045868158988846763264981372129577003203777740423119750918194249730061493070381547050602229720003979153449999323727152395126373132434684777266074501608105513232861703132625900701348676253272422697234453844106086516335876208864070663826814111538072921250403796273936368199629779840659215696232131027685820595842161035150172588494563619598977242320094299151601121114789475180108123721881146495648955871702630689009715126148785573692913139744564257510007986596398499347730021047637810335429960334741828911632822941575156843182042138793488972728120823892026869314348915924843040574489311452891967259596505241776518825570015596566950249916838490039300366862286895504252567483367062790774395859543975844921476873237922501279469758472617817217324551440783766036027699060371986443983640913805701607620419308240092274413186094206407257727824123402879741807691388691763208637218349721201310402501653499669502610273663960652626985015642716698266779271860396866777735756710596285760749492400280690536755027229031062877610190489469964793441103959035661734256339086579099389383354630891861644555384181586152448396331083654420144128807940576398504336574773793932480338161828735516990622838277199902237926362060450794044476313436495957660995339459842359850079870254530304529793282375455713932160248713134065010417204411492002844101735295696590410132127793189187194706477099295241654784210807272760783208484454330456461231921053637061313343257283087075893260089431878673603890902552536321164788786391466295125106317068709662940024210432763070826336269724629526607947517939551773983707597891507304072550422133935496970058806103477913534777550191490065120480851261243467358299801675127787541026119182083442282845005076719753495244841061302447275892036054748344182712139982222271326760309215412493979137094103633595864646210151843341353883640460207940639545471824848500606965129032289714458420521314135774642384222274399797095420739869097656863683289638020854600594617938986748738077003255930616227424972323094755466450786646636298989745545566572630162395374084172753597722121346851919401892507905314827249195765834457183236263948311453369887489546853998534163909770587431325147593597918210592872409175126736941873643315349951919117429255482069796599660569642607724430208512899445223450538439263512980794780880315564186437717975856490371453480903710567602613770873136619332937916169289301826688145813565945136485790095553318954155821450573400995169266354039537480340437369641644099849856851846975114644644179020334388713539801398007360244044795743527046262806545512493102607998490964183812755910740622082906212861197910305854939549606641661721531092402227800399264779950973161162761005840566903883908664760265541555524287302339932121646186142701468830846492521930724059954973015381713116031549445965712604464895165044726459223678466782505226142044237822207518881944107361210710675945381015787244776609658419695602994452892880672033960369779722591302236950089082776888022392656323845119111381653592811064809694425483280289703295879387828335872364435001923202803453329036117631650899935610015545367691872821230045009718994564852633587620503089432804838233317843780124256859674174812536480396186731242848012224768765538298929198037041860075750019235730623966544024173664210527975119298683596559413186024010168952530517665296398079526097325384360965760577073041399538477283368718251055994418047166920463704443314597729518528386836697961449310923867084615267023531852635616834102325000367957791968150519020528746923404448172275246611679976949656578561336675445259930295668472119099184251624936400728945685309712709332752051868516818604332663426822998439288807807043135020171880810637026040173705305470643354383811544585844716606354295701350158435691344394674941507183813598425925577008395522768180812864352870297806024454556655301740962509796970977457826010591399968310087490770642422345137672271835381522938887606584600107569996435553532128547499570341983205333920652014448177034206242162281873291004276400531457193208690681516628120843738860458007155152089725259913445315225975839278389777063284709294499677323472442284240030321042899646641549381241476947859708665565754732871904309617684144959558320391658443606481231995686358699210739925830069666847892323267375559647433140470394646772116161195188418572771765677213213657513956661546351216661237977375175740783275113328689567187919594351771989777861402597837949396797949521593005673811534373300036945359129291979637566102561100195950267928952513256374566951438498571183959154899999978279257580459643518324662204707130038078173733517305001701356394296746960965920920609296868734100572435251325604536083466991553036089223166540818095370493150491778242061243366864238863844579810417790450463968784036843252909684032409443508724373498017119097215444634139502138534705015107287186088370673495950351394858798519364430246844545131589189670258007402706753034160754148585465421741816058836959438012879590742237634756288391343958615355702047923198276165398619781044829799270374991579307413715051760650465272167303048481440427030068136338695309872039521575004299851730898162310785744931338343267227089109835582219379093767635097310040266565878903670731133239034293948362668507565103028667034085167691913549431139739658219994706051203827285325820428771652200924875234550457725679150217113450017144097114643165559682926108410593731963457801627546594961756166198530519938836017347316142134560826887130712767099247720312388110139052228500276180915406748941785215394334678311934401970462781172374589960173379379576657423609106596160303440608341955588806247857475628035339949112458595755429329574560224477535639214008981929463561943566283246959398461598338501766542813439641968878137352101896432577512241508770591644439706979624780418423265617358592762991025623285708299498560723556136233714872718504938625749105859233071052561371999653988987498501542349995883365339226991961364545460271965625866075708235487800243451115444992525427978095671680710615386469628559345026182517997945880192000527395739976918991032257248002369733567881744975896670282503941105795561225394347652399712974290471925868677226497331554105546187791390102731479605565567961255148851373670063678777024620827547060504967706083115884029102713671806990163726024285779548005820850315310903396207802749269382622766866919119591129647151441103213542136423432732473890776736920782854670455659383090554664354320556650130619562285642156168198203954900967918438416434985179875443679137281422217087501177178656398050799375350046828397869131045659624586765571798146345129481399500962391405533541793733011223189008087377377899256115641556955468705133296826649522346504639147352031739788509403433375391096840171740788234187927912635251771745848733524204095668784525190979408012983196939659163261422008376778047920882956018403128231326692235478332171970227081417219863730523098415683968577988056200391309502593542913907586140978711641472703169482381123853857675810438767755672190146118001251625367378828790682732252346178629260418029795807965250472591610228282065323582534020311217071598679484522605971926852416328374543891490320522680389070337781087922340627241082299744397529622538925051815569728764810048184383617264994378713450568134567071202030819277456713193958055058200582770329722687103309024978465854867798417388135423255481506072832096698929545037397815437432522941777660777655328902776999828596297626607127347923104413558168220239806118550772446194522735588318850259156289314001148336543706597502241258925928173193237775790475388699042362707531130282942711077840721518334114662237125417974548964415446758195059727073068637322039006328618243384753370415036892029862645741621274396963332713751661116567325679462276215940344121711300678945051490793929772638917014365183097115744159639158773920039686071878679635898690214699217409851160268852426169116720722017467976931131172894801977494662403901746100545323091710721689724146350558195980904207320177944292752827977979059815686342235884572723497094076226525213023981436685730369888301319241822856881571191175621818614014461403935000319548782463931103181958574569679213312821918433039287963677388840091400917459375817374978597920208242765394517012855269587422487861692228361627324421452157219743180915405680807181725200100516078627642205852148979691077816907733910939239197891459832082405997790725860094592749103413495040622307885490494033257537567973077068869515966923951567195320530199671048097538919507618772996235680048367029649282092968824903485982910046770807242058242602174436512251704147639789590404619639766757896842535436741429560095708771954839954366504406978661589320588687833752984156186971710240840587937265726614829429925645445090937398045096046733919961813421640016382002286375331445275152379988164166579024970109020027230266989360898818461002213565966099410662921321610363527950331695103509393103970742027555634330841695144763892578761510583204738034211792335780624656382360629049074920906899648983708304955136062871570001581538799092430053992915700394334213662967951511577909143375152752824828557180704049347081577965656002044916427857587631257792759925519190091176970011842213619728591229627490407169175300398618363884958815567505593340898778115439496426741692181481391310548210977995857911493103205613795152041386768653016179841835967418345028183255482976875989807890513039691441104138978282534162541466164135218625580196558601856573959243004632930902615352417255698604975927437002586854924184791840471239883503325625992217873006455368516929121386836619976826662956373939146725270804240565995326198051399441673426430422787589646547215588648044121931413006932016875938031278155732381904376562219782256589841883599280791130428009167369321417981912744675413169375709355657405975911319513449410251963650926368871518586548893112727246740422928257584879331734869172743112095751296376521154445871867208068642094549130912516038028710783372059750408024181123320836974384732920006396251945001885033714440046250246459441253089772300107273855036000866307198431814226287463267319065942119625509453798940489306149969846551141537130517621657010529558147020631216995375530430113652760825282256687481039526720277749451273668085812639130271121071843318400865769398892173639188839343574382165520086089677739149483296958070340269696545669766358667112406058227179142810823730259375299575628955745382111208435963764192628179547940869654952666545887564446652382954688983185188167807330922159978244391083615500965368612721900512253232464298631427994866125799505461725125015318713096260429112496847541032494725720039568975313452640662150688772430667743773127472217979132186593957891046028359547596693217775427662712416815166769201524805878327285851661901814147104722254002417948505141104675748868083788917958319595509948715082188419032525742412096309774343256131209189458098668627525390367401670231822026007378699249669500728892862437025079259727834560853334971990677712306557804759523385187509458774345726793739764150027108049327111628049616448612486628965982822102528901598895076726058108361083000469089963519337478657495928756007973548837367038870214257785275997491920700318357650647101671841345176874395247999201371634247296697146902019646100355421914669815747607762199997392821722030875659620424879033498194487974557480101427112036034125500592500676858421188961030641380722795741257975502784395080992065509331676228242184352334949010341248624533453585405280625956849676967444504384659251983351687616266727730553265012363697530685951031270764124514917893501855683451378793592498033043160329262100081406675239367467661931691122820383433685330496334990417006005086153080125094131911686895838853837669710196309464864967178630847312945126537380400388836648133581625874956583194389045103023372480705135738360036357694119221212683602440349678932835501885151375487817433217910244605454672535092905035832227944482030547645228769569866822609628132599750137358792606261397096522647647154844300504187215357889011143599788957630687441536295597946826635455340276868646531533352427164109990484471020908721282787025231467999893428620423621012190817127334276981170825320270205850245666276651537347021416918109389886573037738486918581281717753671112180075627486548545275119465560667028936214819454861195201195167397097594082291016607426724435413103063877043956434715907704262078713081319659545921778039431061532508430400827076975508738232205203101166491445014633014363160582983350785183483474983540210461245221167421092094191131390908223457814050285365227806750570822002613941286830410808945237451053306428230643922024911764636264481074750543626753538940848040097736248930683643563011153767587728914253103503253806911430652250906617780148828855819678597979653871377710272988145115610529753799872479802556164544596959804395197757501639993876199339100136234438751778653544890656969905598988311561043942246760036220460653303934756474751040770551285422006292572400148207937840758451114895725494417776727369467076023562121724964708114854594573019789293328546210155020583207331063110050833577409491465658899514429967432420431879527638993570462105404762136564877445584401036261325038285602883992190296413133072152750867385978949621262254956271477404654691156360688497245357407010663010890845807277207642427320824963157517238906794286573459071461651044561661521378827743988119638995974916058643274850142861563440065291085386489108000330596055206989179311462004481258625620821389254815413494705500226213664242682964481397152789842096394981908177870664143826633159639956620730301393796424756418049761485859600553726337692227856836073458638808458444362098262530804883933217090847288864287670837127723951786716643611815162923324655830024210504295141902074680792676912693971513617494140967176165886611350444149834564106837688802720814607887449889874322329596863858175995185123969018720220488659415949704713087730503873515823560787329423559090770895182369091173970821936134515840981366445246494595449173829477474064185106090996258327835037636830454470834242529037111073780250913786142769917977210866828812762636446315474334552368666813769733161547122078123142560337907342716889031539454875666340442235332838497716172361548778333314098185718981320545925713658067074247578295669096339681408661030622760251629670539365676063334104458644057800901891018102738316223288648901761964988125022607586741636339154077886753956497504556086683007140398683364291252473253914696711534553578237120747214218439698382803021525672144648614196229768833306157505598710855258157562852745455537863587560480590385303019844815800837511636552980290559493320211629808693891931791391159614102102102956901402902091209509185499984796778321976088831090924799624887445779162912049372324324398809810225943456629462594691307387277024956856880869615479616584319460333231124425389594195845796932240106997187292889099147832170224582514051676898729817402153716982875652094851725659963889327013645162790427642353137141404239215646719908795297688816942092762606116654082350857174381157419903858018111214544886291483980462655219077064308920448999365778900046410220156617585830218505522504835752341661267197543882963810614744995489852930964306563644860445535238305185856876839270755531067674305670362799295286719360221122637299548166349403312767007698023583333333871474267942103043024151755328017783225697071304829411535295963805027494456067909251023148612722631840879662099938544878650989137893928490126325847846010594276875244526248701252431112077387317695241693197740968871860889896607296568310092841396511330235152314056434471629084317965862677159170576062155105590396125360499037916007605424780737575035414801749758819889249205783605074326122482863776137116118753244850305020667174714848630955152764469581720312286685367140666702669157191568235292690543641505025629377275182885688414490036742936754401055275762554432623777652398112829610062481854552309526918067818654192572602352599479189948666630043358767563638607052634408744123232488432952535877469073181955991769070769168563121460049168775549194205684959954347897684221479297439279926456771286542533394509664947166497510591035083980345931962694380945481029644477309695975621127686638726299252626004338305471733682922725574329240138485329939974984761697170262342989186060117453616115711460303033152700136921139049945100922920494672363284715413745404329224621636327001567666859309542612529216146786879463031490216289979308471868241530381241303120101629752933854499601519389679521711433893894936499085223807677261493149398250611009286746235939100645025397638775367813172269223148405698367889069134158676199744105753930153223218675795944448487056417484955942798230379481739188071585462180971289373936366112239990740403504543889750008146233308404071648198874013688661319235211139565332060072828533779000122392938291159541500913912452990257840692149539481335611364046629719169328083463005987143760685092976182357286340510669875044958412670939189867533712715875590579782066654117495307084011579531781318486635836892786060718628332773291083943789163978561948180903785737116304307668913767256317128244022912095111134012551298652540803604051354644631496733558072511649887515740835031386548924764623637800312299719215799802531208420906135059703063366597687607318424407328773929071235781315966325328790111271146724459043691023723276669023420272467401075170050632678332280206861223872488158112085591161562713768848848168964291255298168466632796675206332591077050079073506933652508475517019165298945137824502925528291540303499924501993267838328969716785556862844615244895971238737170000415754516121746540559839171570890315740318455417679372962295386701609733381802572479175329498017757467081284606155129002443161287917481323521477678119987506700820626887770956974363196790208364275012872417331850963474094811589566719911720797136081319595384866088207343786279457778936129392418011791492640599493269538681446380388228707834978321059389551735453631073564258887784144960439280847323164753202519894536398131530761809666776790835337802807668452228143867278916422195452288022917117555111480388368535917850612383264207484153063436020591398081959229046306531262911116177337568152861641435571827548178144074226786863462631787047804857254420597871082268906319613571296328079098035103198178007322514478162967614722661674766429303051893639561658917627458633837054039383801611521570432801322349478951698277410049735178996158937190226115823241476966522690470998812078182840332365726262130897437658402933878830246302525096041755693082690620521206454924313916213101959132777494313067838207774237054954866372636061201301172187844944867428672567808280237936820696375915656660998613267075864342079430924757984385306228952491212179579241258361424547725089371982262267709493595520597380206416680408058485724013432955228861239251699627692255217747215878881660225117291785729426742432910175831723231227369938105490748943916644662292804259024494343352067858360863769669969674608665261048186831750280676766292046655914890845611827925887090196163116717299194557205717129903018275746377700491040213353385842851624551658873241501977614932316068793901491315361877309033475169795722902959009015455521938373931774987390943422310477106540440421892216064546556346806491002057164055903132440877405919682955809209712184553363157046811873875992584248046939938972944186503036317414714812200755126204004127246553543297739468973007194474455826361973819394702708465233202670610076058433293359805456980863115754940444477934855033400386276613752426574562766960241675915476875813649354790022039798956496164760399598227580553076202218396590221171135945809165598025742527774865731326113843890103263191031920556937701020339925944763848640121117089106116604310966684349080463939461279254635810541403989171547951546703679902565423259862512084598412660824937386614372625037884865760805690325428108063383118987372195885425914793815106464433488468720206423438627804911273152332859534550608809904555754875995991350119479902403184006103022339305877030850624207056010566745648848833673379877988679443612367570231504823126619024261320229514518077753161234803782035485729398319121363594872656664957197777368190332022975826089174245751197826367245240374970021685069781565720847571345141698903688156884116319610578777973064677112810924845106421570455828342212587143461963225873082933022875829535949513378669054074794272375873415227977293080841340555909265113566084819307064322267118321334880749980581109774339110915283908672305605755992819858128171955097087449385226035921731056359683567015080485673774230760118812823961033796697155101614005513287860758225709184639957878021183782441415637685035808757031274455893164848556625562607614471997522568173491584098963628136549446728667109428279031550601566057912270143312852502434650424219155656780668918666808746872470187344936167101656395968313743716698647317244771981391379414195140294578429361154795140055648391400914977605735086943299031768966285530735426275456685678630685765720869791154783721069640614302507400415279648322040057680906434849684629041004692095420379606436869418231417682283607568897340169295142295606670342750849934899252599511379247042757960819516321961566099184002926353976848317417526574239058617621288731738126657907681397591177455758834464293360068625610528869415851390491920712260664966191651267188013924979298093587910217854035664752460436452342322274809987330792877576346769972279380214526758718985886208774852567960496307138463066914644535623213328078486206976880423333465860211264614846890416552017463600194354341563113307320448938781594968718622650575907972638513554036285487429773541604051770549188461080809583629787254220810318136059651314722991008851056601646072128049921329248578957625759964850905598200837612460321735233832717292466476230965284639912523543758810158928024658174235071840895444407997673873317418942229950256600713898736166751634910169356732617952040618360426656742819104124784343115923241623108660740882285023496973511349368751891666370941792137580972347018084379132042967888042311090749653964239894718626570551055477098914120528032877546700634962152368701376951803103921006953465151360128165469031357751967982804883054755977833658116840023840025967945124241888326986704298812204887077727272442482737866909240845743806455256497055939299612766990744342757516926811422765127231122686980834935365653211902345550361639477608849850237338012042641315004738347024247021607593855135584960757444719088204053683479379560026041383977540852383718907112103375530844676451982343786217551255930868629051516634408564939438389338537594271005639728674585214933969088330330922285248761196091597771720395269986761512831437129654473265744091072447044175197605477839797297209490756550960981991464564659137667190507805919320866544360755452304052242581720856476759820803479845737711916647226293159022613210364222217134373678590918420732019108034046247294569635214400499614166692677847321947719701790753630979188491204031922340031480564442546122038938365388486971592890709170637824517927266473773211511620999263075800444465929144587903277404779133016777226189896976008040344917240309289406850757125826636410851795896645853303068334390498746720417951703376741206479834197203421109999804586914479771721974154471228555671109262267484757067188905307757875934677009014456470986104190603777615875526831844933534899647126349162271123344817177203976312557858467096155202838546315543886082259375193015513547294405645534847687795934441633695891726540820216220288473947343688097147941819556066989205441011730429089458229556518245459422116819661001376408032893936142905916308514418892335920828202892104519393282887562859344103810319522071670721298966489134673982121094537338603316056870796238045140734454572301595486935195439109091518244794482375213792490355901326145794376617818943348614317173432494053239559619473409366806594358784187843940262808385635724410895122685790855877275471399553676886764433327142796307512083351017937237926020545814078096429220950573105135987895714941995684684074220585642441653780485014597302247441650046788115521212164525290148759070163065287939581598812541535636964956690165171152624811331976110159516071412095443883849837705901622875629468956553279878498483712549865332967372121504058249084801154467235305856448019899734192647839293326430306969692650089633625692560754706178412411100338538336049549072583058760792554688448618026654695167091861705703054940010086850941856951531009415099836895502942042551749625263686839370057567598435763289489085179010457330021237104060457361280356041260095563073430981911482609754874149129845754385885435624172429411060158398396772073850423361774926329082765040105852247319046377901973751976188443948581004819352733309676289805590542931768314258149289402526393155732756746804647194320247363386806727700153475683073368800688106333408333013602068457212782670689349255529697648254788018245565680668952817412284140116442481695819563505503293568488797143382275991303950766187896278372699129795642535382348879890359600025289615722806775597446874925251859757304203372058983783174061833352588660072943508969030984891468537873612095730856164167021058571412649661041559813741364023230971310381638912167498147762472952852963548883246671352676354501806282698985847473410512820227592925692474230505655569399659442643524481961386994587583580317698959111097817500908985598854306532907004985841719830502440459352924901663069856373019107824827972407390013831041503760867178835409238591698429111501326592679234837699883501813793784779790573036249543741413137261545151672698458886069760945841324373918227074275551472705875729018048029191732328115222216256931559033198487302481422001210105118132074119322399353842682228682782147853427105480117186139481825719095042852638207902525028366329563496048086011127502729927159715376875806247776768387670096234506294547748706338295330226393263468779854627233967694756502628410818431981257063158211328365372207692582169311986091214426118196120880228923755683205432098596495620354886864612662392247768244035458165705181162571726902948666655355628628222667435999678815004591221890484229618516612028244147835845218345572203471482080576855963820210056194192334779112701981823152564738002980877019580357816461953989135465522936083919399499215998681049724220502963380604335123751532293256894608351409441836359908342499763364595370922063364647057994376573705493665949598498026831255629183320972678961525009287835892016486514845588574588201947918853668935756610552095414722883567256283063863194153158989416664283685767071438536832847724201449551208742303643154070842168905598457396321307768069357451033619823839548018323656807243990135914449476507908588960236509941291356982485370905406602295297226839270894825469668068331291379665487757067393041571340728050576963530005589453333551818770356752911809891719429774379313681430973431682105433710067257089388704706103853740209652642961875412191144533314024624704129170006453208756932800830598843755019966905805674811772593755923092110917277087114713535380817062517539278173970748094361788198862457194623823681716218450208107793549928823057831718510411730513698546201040290525177892366603515335176192201491783546574631971649043808995858493342500523345925654510542479010247397936773738558797052587150573325646167630303254377518992141257841630193546410537658681068548684635327041636609958606521166952643358479411840401384871476589492429159171042351313478717851315788022871153560402740668008661857743427277822598329081698467578979794353207428347056400324954948267241184419582672149631589816783042150137886422607274613570655051715414394113255175431584172193917826609297740906941154999478322033389174111578649399354390805666380107876662374880935831747955967352653583523080079346923336897893343384764790145184255317376875688048882772601376177962454568702018436494234217996036774199431963835291670432319308356050087621779300249748736586331485967644354554696777722372211801049084553699827202942982209855214620370594789346636252504895574620601212276812777559806954262167956899607628032963015067311719805323187067356866983324879539022007156020428359086274426080235740571472538556615384157848671674170146171946257151880083323329532943018423648021991805544216870489826680859749011883494310028276527578616134079513119041098293758206015710210942383564134424696891379982859115085969260695429327227408926848411547888849310376661678465796882067473534591554546185754948481976686313944804554944374739882050040248301657381689787843477165732954445564897510402516856953557169570339912222323262957436423378500922806090344905762859771150006682287609182277720962682955632571050795913135825749425395788166457897951404397905977242462301798062266830416739981877435485588796289444537375819716104492551492562222351410057508061447951088644779833923746746543394916197364580046953355419356086924792826949865195390561909526378732258671601312858216502026339394124449375339469950144324400483324564833491328774670746699061208963591743706030641263706043653121130835008995548583561547851267453419702380650510925728665516735624448486090166999814544351854835431597247346503679881864278315999721427509042351147308832672236351645462757185064030189285292206566726891538630198795448011819073933057895767993854807160424518805317053411690572284273756745942149291017813506085041923555554611131136352196624844241312371234252411180311779287243064769126210380733902681631987890825674595403431347391499994724768620353740870524809497963133918441412464173507247319867824366819349362207867799125846751225419585742394085195365084598396747008980067969232816622718755765763481072682731917192264007626245357684132341198243600289543850221817391721121568836786349626400656657224195820271216374277435298950318953887558889196304418708462210769671249590643993721850108563434117829070098562736895091835680152404831542212996245034692093431729441521645936273740908829680205105995400306396882262052655335311129272002891538187887718451224518408511091421843270262915562606023780667270730033578330350457635916952235731245403266684247963316200970861756510860225576219061755522839711055977496992999434419664180857713851517446633473884312319956321742172655161133606673784276661302655160756644226490940873426045551696299779523417580924653546169450196469537089830374974971783893494906367100867467136835620655964121032018253740970353734818145561904339545073816476687390156762962849749348283670807433902281935479498203274161304439704867781427238135656669890366555032593958263032825794599751888457904833778282493715947251565881222728057179948497256798706916639379309620117067763471100982525966367948044717737645042101741211516325192345916303306042259106291886001976893656169257268760936988235304011772930858648606730365804251107711519735930266940178408903433173656982475520713815399132210163027557792477603549120584707390379186944057369511760523477262154441800418881406353623957936334800907777496055517550239734969617566459104132368765537435387060421930588358199238720937009897151957114330192203261046523210677410790479122052189173955401652026392638610277997661757764050216378416314728281228239161906074236570913153712606758901341492499869122935693099395590619175318092900790696021877229957181349487324399394741133652005233804017688156112484297001435837792018970495902717740416841635855240103721113433140886859745662535067200890150604389123415000613206582200493387804462423093123178528020773838149140660522921412986066235198290103526391481338112825047645978319098629430546355981470658966633249624536203956359589138806017041088405025213365134726149924764924530598015109731370831826575881100395212913164960491786161665374223220779118607790049296115962909677368470039425018280129486277907113429604844840770082064436002125910606540161014421670885918851918182282407202790020728209116537976756088990693125498299228026721068346760407558976753104919694704236224404475073999718692638790978045138495418537270655815708185958352650658892546877456547206586561883987526991036593518214002463411789240219063992904861687722103096084911255948565989403734816170890423711545848822709793534859688671538769641080075237905601937673947921496120023700934007530707267602016519985694593795077847156207555074744889285993506807543531763486940030987306128881032967537198736638315596278604198738133732985054674448699309405739126899189396562265926825405046489351829462913642950157760872210743320654836276920537514677194954868703534217829756364970243156954207481486696057636703312295849827798855973778664233136626627246727827800013725309459884785555753008767401643722049188077121146288714238824566659494763347558519251926710625165094216624673251761253726948665232562166515003378904958595168410661329015768971892387484962880996404051251752311453892575462939191178560801265872296903346357031363383693479989812025370418448380149086404967427286911572000654141390728255472435625013147853042701175177599094597719499838685663222733604082777017168818724287080573935181957278286015149530904582449405608215261164720234657336149707941683504746030340493633741921925031816308070828708539673824772196422075672372140390435361384703195314731014427350771431335857818244403341523494136961991580058624582587569251856742152874651580265445765673715108672938895415504411328061238351429012381282549955216795386176601345716627915662547075431024091147348788145885281706920346943333507882485806121927909157046250033053845701471559998747299483149221692232381900625822485829375219714322425565619194511408923736728382622050436811105424054281513385029138614994037195410313541976491381297178933234521510143786766936605911052036157932457001070706756639003874951323619674805857978266098550153976481382276930453378145414818526155376584415663003889956059235111784741976352260477347587425361084241519773544173210898276307028306667235577462049753259261148871099053655494245715421214773931991035421376217335335484244994801711027993974794495793471652022794800848106428153890332777923354053331947294400613049961552087963821912667229607492103450632088202752393846790556931360764721006743150714675395720252801160842475604051157037300875894453840623021029674379329419956608336392600475752578729480590179607086789225928696270560389392164954318796244934777827827291735524540051254467526107956207578209360271617733340124593946262584371139515582995591649745421465752879292241804461700862857942366672166709662289101235440679599002234591048518467607390968601814372526819376601506923980939193783648817995321930076758143674079472908719316910440593183918631307715726698325415980596536229415560138191323915691861946395062271198353602595759218240010627362528328762537855800490853703913486026433116685087370529980182490951397082742280658151711412630086255087656135475564777673850930352619564968914443748345527639518516215228801345945503765703732416939141549209915810229802911735756251431103335012541096129000250776508477976370540543768993424533598767125011104560822024535601802299532461300220059438112021192258258732111339195654806735284212860731261753315398586762499228865545714121860696531856346280698764241396142027748707503667093126969683761748386810089785515197807738029845151699846513697534584699659816614007551319899732311175606915180572249747651532998269596180659324511776689010971922499270656093111081365375277490345533919331565271399545277469072566641634142450893362433848184055858042274408922111047030718747602607219936031772467552374412742636173082485411185127498749239824915240948119249618201488938628292868623850645417471361581166352786016244189348852198886860212815660663076120869056381185960867556174151623037763556847321529812708279553494884486232436616383578288897918932966989236525272899780893403211533829009473545333221849326716781834765234374072550968743051911029449008737516357945459882828400353919644329783814668244676525982452916853633221004635012071805064822042663741722866316928679641966361441255191408602770711876927778706865701828907880143048419843472719634067143981053859910320226607970931544789050392486352528250881797097456369021958121371314706690215409516795263322607657355446113286170114210458966011991039450223685440744187349315523198227466034636016840394359826337251412741438154155035007262469851366416727507283346519627208028090311960196131783252783314227731473435987492993631169567489745821124967909584969615900284388110711829496277237580819247557295979614766152705316328794364071120117603639721778224755639276726839196145446594600328519170680633128293220146814589674814812535150010566867861819048080635804369022252293073035883291744626428879617027101395650042621864428058729267693927903229368186883013481079464961099830815903504861140083474629114489243117298644203406820561463100450867736701550416052267137887148331407026031265566474609574480688744974775104706039937497928269441748005041774879489006550458998248681608526557076222274761340469350783681583733650219242699958434599936083548338776808636067495400975159027391594827359416199941161617628248639470887852942337776914370268991665851451260482129852634782681337860976690992614942786943298421447123287726525049684947984965327559281074524564853691694632379093251009041359878897695568566323854960635165441922343150000866466863184529789767349008742181844954719257445467269580196725196454682597178843689401835048800736996625047940478903921336042887617891780115490848610340627390623339293939152786145404305629858285004725678091134477222273281579496620239322585315761770885686747674185891138427957935780289175080647840769075804238093391789152143507731523954201813765490839037994898827118450573036609219298199171874839277252096752771110518318432263453992916250787082104230973328826430474900979023462355437617324865702596450107622105049724595928322601060452689571652896177638917471980929851504548787736940269539873942264493330253130274145288756986344096419556956169429332407566796164020253224747879051651975944752642457259503367048708990174084842205094648037336608597242570989304224579206863534134575562075945566974765269444725057114461190408981614666148637810983633513767777959249854618817189205543676120583325138620055895295469635846490452057262652184592720738388654383031953721478019063160348452259737804189649995747354302979847726039182914484066033020655213139098956779198172913637163024737353868747610066504019722601335733689667277871247169192394743157558734505436443616249020743752239007805592726970504303051087420774438041493461392743479256040945174460594862134211521870471508059073632252822538448268184779753251744240667842751551022703394191389780694851864280072459924000339663470415218738850170824022472108118680968724236133043853689913174244228561456718573484823946330072564517865941258382867690723309135721774911351026493858882344323683947433121155260335224045761791889713521744759822069926978826060707051177304478749698825012027405430573321461659073434290342615026587428611403498790960999873402092219460319809702578571801191277908780677808716284675464439308465801423047397510796350957730263475457306281567287566269048699550268760930045339017626515324529162593141513367874700894401241756171758511401076332912672521808975291856908360839390538503634396788806321725690758183709793131349862113232119709782746129253911008913291129221405207169480846567728715864497044476200438765158613008842806174464468668487692689558602413158214972940971811807165831946102796239797704830206620581026751032828054740451396650093403549860401825727563918536280410213750469867835627310723038442581302930752750364564560667578274972229955722198532420178394498239043459810385607407550487138855589371677356574559478064607054374170379890346231597184875448880424582323730997778440294284172494344028993662635403295211666091689477963761751197187302119596441099302751174316669162805594967208739054529641803636293664738695282328059861923465647416343665101865683874284263541618404761632955498338850038948113615957166228146972718046462715042482709252352596919284398333579650426284957043637887514775987850431261578998216126638854345961885843217044618119364416113524717605617339898353761080114472059005809407182289840623280166836641565011148335749387706041407273244357303071537707380237785827486275307804465301778351973579314394336450956354277081692873995843921612069356979716978298195913062667968678688309271287145656766909082351638497612393130545788349114138171996990670282605574568178142710044389175634559380868027909369059617377329192175224032559142896091001716504026849885685319389781417286442606941697447888280116705705451152708941649812451369963302652192828081893308474479263674959221810544720364453473706842416464537482218293263795060427479265617238059441093333898806387910234756274399143283916183478876588070702805789629106518640892648488497285483749604407366523505157663261364325681990880705219998138528097370982604492322313946402217561527537551393873180082374776748399996946840495383168394835832516440674318517653074097061363622103283284611120297065958975578773358509369950489235604830774098882430172018003981169575245840615986180882046708572569214075758160140628994561315370695950950032021593365838529926142890189127370991923732125508727789164450180418158897832695644804585116877397125752787177154955019354247206323506670986182599652665484526197928606838323549422697303125064282255450141701691330832661694866755373298387278597539838602308117056718439850246519359198563854132107294836047611247141343419986565830387860645450590253937732469452778581492091146632111558008466818828287955130953174127653668404286960364794723317826679637270190652275775278775138781994187577329034956120862472105090974974260053649832678820752300594082135808470500601436228431054223245011814442929953607898433182235323890545275609993596992543329468633030150216176265712146059281997496029893675964974596611780827889881857244966360241007446907030381076799461872799524763779912183476756617524273743151473090854151435655198977002955210316599851455503123858977361534361918884450234118615449491273744989264109394627539524992254559260236816714144123515060003855764935033265799600160721282859959108559821443623527630314212303087189330555698609141744398256548355221285269180242784395869369772177121056099894800154314998886710936678343990749640766223939205704033267478677193540321694022103493581791518794396291184819920217174056741994671962787483753520409720540877167506582923668862014018657958918160608959009040967643872216601315454668447419113106492199514465503154538949728723563573718462222911281754188782646446814357133861993770256726052972525008386161600747590008414609494407349131947566232260931765780193272665136423863948336360342048611257035374219500336569826954891251964141200065715312491010246385112317766525330759947307223711782432090576833115532635544485158845247174846870865797003209415295245503421000196431233416593755300865605249546461465371057784160395237917333092716728400628627192224155196937225368378139254889489345931304425412470150670174043444656822037012577702157424026599427087254399318644311399534950462649567579575218290962032927048559746152253730373616946788416411596753237970415591281717780771796850202675100830721936169057529119360313269501911862942784980177484121570406150330023460695094397962008944408379472158057543348975157307011770746680631936721845205445658515004975339431253024894559328534070246410524838849165487336511492194440525553183058499117901628695795791474921781426672232997165020974543692300855003387610898664346292603077848435701563570703778703796505511310930168883058244628051201143255287346949281397119737612533634649903673004526840992578199477589349310945166414803244882766716367013564719998235095359313440077170727029811150089235208507153861445700579894221439140608550223795880428821372214362959842870127113234359809121436425534197060035003665820502920349835576308329909683193092290770829744379877674848813955013017290556336822562756173684555622440814442284689369164572624669035728348607599020965544858839992616906529496301545262993640047356210940423016531592677026849692871332329617055574587052405232306193530493565288236899050144219920912449350189612004987857404043564386028721096709063623305027857586517043514091545811856673365816186010379390862037767866476190932749995201523301355027642094708477054220420385948468712373832678718872166088148395989352074039239667267785428933010126512512541188438954537941709722967227804765808718385645724758535832076829492572864437809055951373505370164416455144150682755116620312554582569816475026223795721694585936973242852451081444030096719971110233785302216540496661985355097141834600254745275740126162820562179003821852905327651390350325699674366837823687340291942855351365991117761323334439773372934845697024150353607295895656586106533092183739353189055812624891042271678331158979662477691807123361245281563506344741632456974612925595217746666938052496136627305544655422075556147921147966180784702077325831618189737894287358120420071606319856277410144156662883910944332495364868290067476500466024982515366345287717080833866004481454599688445869557720520347354799090425328923276087779233127953416138332375048623847814637450843948625213083982636237809847093422303860728114283429549568991383420952835029925262823786103590823779651337937873774217203458043814030107377278364092240336170540617342045335206807857544724214821767505359937927782674295691691494435598893155318107806739143177354630182105559535695350171576198959973756288922440784271482180280087342658008608531850667205769807375878665926935538422892889475985185437445769189295655485933006425398700056285332551830392001818458301427175792156008976795328243147806302394851092952641685685648429548617114222870619270653844950702521943780801959541446468284126225907561754003845171672126867855321499235559744091463999095971504151010646510115305633012121287174354556574353379316890757630303809546270856521941085174157969229117378105126155411330781962202664228613610695026733741282355425090183436615461785283149626141827844528109302402568375219962738635928762480141782705147029245434493836331378307578940434205360939858177610828510074954431138794013829757598773271169693131214248266497604743425389925904759322211456866646976287029701655539981285045206836434255761962761228340223946215981717694417108750418057962838833754757498389194202134530884512688589863046812077425523914458963396831381193253644411897051470363031665797035230689447526743752986202794245347057702137704011399782876744151664680853589083948493327243247274020705293265107036989128276258397808010888808604322991966805806371976939633267275104348726607128212588668954771851737652682638184880831688583830063888451319299735474303694550822723087361461096453293907354525434993738986128414323067861163014220187248836768467072375738848569925136711004684035801206500027379405138825515222537880654369017180695112897243092122519164196835814210657670413484678712273301838924047315380862389590426001357505594367798092540800979383612274963518196351039664965713742472880618251672199511434014711016298944097430917900880239277816122280369479628915947091130952534741383910135994296653404272470165638520518828649096698637985576304201347951178847507286082787713613242919706072516754060260481100453985561489819989798811328329320455651735144968485007882172063392001679283842281258421322180158296862251555626097998319352418978828441110208462008762645143319441573181987156178536348343246227546532825598739763456574857410284743931120683717360429307836244830015628697444424653441426526885751614800242978007658601170708142747748139403034489124426488916764276430442891804092589721561724710801945053442887142126524366279294703883356156497653191980249548265813852196142926968250647298296058551546015158574221691043101309813273027483968059478857364552880436938201198669001657843289054706444777976492455286765706925551818246366035464677510914683706987433245889998207838473444953173661494399229359906257734979924510264356246333974797642823868209297399557921234055889194317458902118448387180869969976765026900550994530464772776759673227598027873904228617500019373302429643634047022679879870853482215934080489810084748731247659208323025648237977603357712009721206172701273576043343129527319206028742229935529826103981552912118843217853214166796365241446024635327421330450072661064489098184073392806442996673152110907896249268567195230040011064916554360780976169208543207013992599856363775030346814012555933569470407230379195480732311535340490489740419642857276659771379980617266793618823920409840015644168462526979084731094859331772172112702448346472618870061885630729685644373206796910478845876363422271418320236189427768468998155081849784954545945598816949820311445807771380637201615961089434432264923739982681635847080445957987675604698587802105604421152475900845550373822035202915509681556006586165803679767921558517093804138856079738429279984109632501582153393403689023189654188609536959783352956364977768798869290434656808323958181351758970606960910628419470998367745989478851739771389231079167780895653760362120303507173295545175849108079453694891086411253669222047341016559521228602115885654215886576811972035949857870087081938163453765626440602810392913075015680347420780354628737572480247656065307864310529782449610036141356161184522484316308504161001178549969852544874264556728104332930581334703464044054414157440455971417925633101771090059435178235627790635738065166674309654326294627505240140576901009740933507206343610655101055844720120840986376975882199027153209873445928689849143110521267722354769688253171637471109138976458161593715903348300091959459240241976721996200672745207264017874571729837091405912441152911054536729237435540222104159002673731851690176496293258476286966850928690392283186686466400713117112730164179529822817322152714530386339604012828983045714923458488640490538948178014734771007116398057489531027260591107680155841414143509897481013711544673310238578236825548632284229405572684272488433828174315360046859117716725576259718280312486943108309517097921336143521244613930932827818985484535577323171758530154395159292700355569348400870248623635003699620795634631127906859385594960885715574780763217562674143064295946943233100679696566791622867216798427879607347630671769895894023079170944916120477597660453625300317521064399307964768809112939112892840973363968687550511130259534847180197005395292469732249660366999016919924623876936143315943453666740513738173730531104084120915788120865920770113389788529509224829649427331323549509690579719573858630642005488077671819357636789123074844812827967883549378216169784218169843397047158846965652352976946264248909018756094263371728375272249893615294503263405837819839035365733422155440000862300484846811408391028646965859979776598478929384685697490415819053262769784003519199569643767338687449010985899418281740691568733551144779670143477114770625370645105179818354679737948564943741165575539906597668245184763485999984652391913622637737658527715544623195730818323108653686135722660098484998475838366449918417499791123204346284887826180949358788143707792592820429418390306958262309471211780942807277015074565083530835025785826846903108933435757517919345390942141097884051120381458470837147696214216642723091867705271047697704134897303174137289539484879920185564889879045113034091047237905524038314247240504981218456585007351499721394159630429438479359280031770992521307924343050751962125978635442276005695852938218304921433590563174836177407345470582313224151443954824957842029144749039769052752801118122836454945028373580734860069310310550117021893215902388379510697722302308939382630509890734197645960778183743265788639604029978116604560713536056032562432590590062574826666187793013087048004377712257350209228592734216007715956743998041197899664757943161265560036288979711749873667984987538993141794996627527373204468027172127896983227183059997222122179034547098022335167518875859098981031166193729779062237278691882993290631209721357054640114905115202777031938301562681051960037922405370402528326829834412060504980713047525914562195897757832689449455456328192634229164111708233632780844431895084299472790216667163243473781847658671889817467320535895807370594807480645033471330756162387461264231276166841593493399276873654427938088605677705838956162922602340344291581087724956865972175265583443845581179205706391086956148372881421898126817811950878139195010093735213276126166071674313130016032281459712250486181158464908748706360386354816266565090229833225243330122020958008087434889311789279829084516087785813300856384130232523717798065228697536539786542881445678425571502594797345248816894808829817669092693113062884205734552938205890534089840391292719380700528557410730817816869170710295599346176524075530113722911326152626246835196880349699135849656355025777708780357550163809010805213833715912247778134553877978959486723697961895152270706648300880533744901394494597691628083845306900007741603841076475471441148626016271246878336070630963072655271584678682943817327092959736135643234285855454547029219183455828234093903344262548601497629723758823259580166016198001928904469480322214488528177023516421573496935706993507244429789217711251211811487666844730840660020613440638295871019749097448090680508701801035217987551530264789939356592491815295382365812677284609713401616535277305870575871996349533093127009221058091352093296878165082761001411049215928954802332880979876766409882464152511900243193089247143821770721411031700070840997861086324488959058145225166224175124441724368998749616293626355130927704099689698645468559936224981046011901252723771675618968947472825081854456903902137871639863041262454263004806523879159133178340322330860091391299833260134034812852053512882019523526571489188809911324423406714872465534115511085777550991157831141410071934906836028224991640109928950134450796453527167666514756994198006469599264463644700629713236395645731274828463759221824039065911353433986899388647028401574824530600729913758644300319262192302381393327573547765696259539787694837749447211165555574198312064060772180978077383571920481029510609043342843188825580196221355815395088173405241847231518937690104749315297576144953055304215877869246375086603875605891876642707692671449475346133302540999397238060235201514240776764203363394988258444645675547895586513146002461232881991024268491593222647961789005990087706969830785863198956584953205279279612049662653527374485236105169620012125513456507600212364439307460808278982382799589565354359402933533537896628589866393173512020863387675771759166313006876933688393821880358891649062896232850669644065353487655871125143862720002249707760069630110042066272076413971128455848540488854220847175215436749849664689018473372059500644030865726283815839044266678462850596292856865714758762597459346744967144557538061375595532555682821567249227595807194173894280848123324432778396204783200792275660495950145701721816837626441907855553979072452455626296740399324252250601862199478886485529613169173384953590608540569492957376228601972673273055374519704927724865805414089103455410889997809503216989256661381471817932906518096834728337819100723226116386949218217066897294783975893377683321349065188670090911524028060469225727942349474595260443988834433064100066120570383687718759165242595626421007968482870324436418928983610804499835058140034711748588487600723678542036655423551181994405573158280484798239097915707577458465611722018852857853205889366057152680990940373391522548517280964496531178888794593474839918053148873675636156179165197111579716509455152835685609713555296639537858197155605028919995465054030295787756196339493203155435501376772305260215842113956589682487010733656185978213183386601624057414801092258947685660518694719924959610064559722845401066616394973317101714293934689306459314156263563674816743527785918841706623808684771057775635392771469475554127930096538346328921992672589282649901493597896936010929984874645889117993494640146624645532767655956395133149684042812802322531104455766890526933112251612930564025505028575137245162875485590367993820613244066254088992218676570078968966482720802651367182335955108974777051168665713655746859296162845392842397043064408882640709525022562662958632059145204350536227689618996004167465832253705937659200380975917069066868087967521610621111112640252631050611236715536851811791247880647466006726029697549174362660652348942737071475915620582514586646887976165830533133154717651717934615140405872346398422017679330190561900489002562078766522945122479003891290713491165584157625465969490269787834179402977575003975146305733352067106376110812141772811972499023951810930065350902510240123609272524700875899034883386386432378812138879642025685519943674632892252675672822408516392230791809881669865922273989365735589280329625249715424893311433619508675701005514306557127992857160423371198070299354205622963935784124911216801463319009194493443233205363594447608827593007769981731980993855257900982188532753805414809752908798802728386208052586010653563253780710106892365452275082705535282189518281092276217312400857102863827370614933184710668414470444918297413852961724829096746615454352824379681579373337122548665644892825235044431696570620093466259326575036663560289026696725632671832122872025370435433963838918156053020330971270051031417144427819341076134548701065171356804960497242209343665884119724950274111657846673960175294294723408544114014242118897595191664737987766313578343969088110257427995044856383305296470078205388242648460779433873437822629514023177254608940874747940090231553081455816997583235612295694887337714549610829773285275505366963168994862527100653838247939663721453050973355438931130145768923181454647054313674118252121964390977647541865624582672439297752700669128305955047876572534685793828118879635558825530040716974164388346350118222348010546506843811588644468546638267805559264948437994136715963752600695181861283168811054744117030827719405426936508347542905752410542165523150860860814041957449635442791270482752079267139996497014178958313840483658565324296474754188276658795755422110853751820319201129040106706392701580720752010134945983265444280210784571326871838852033479644631784800497664763919403546181843420879436143091286600786433566451284689927468683100927284999377138877900215010852874538576696081410421932737815759890344604667334994694657553802981455053606644820480896483075021854624111894748196160595855645001220268428370315315164287558620525281576857091055695336214285086367065253495105284132832632976825028876586622241719725024890274577656228431164552435067088992579772104035380492239566030988511749265396081716136435289567807494511138884833619365903001031633013811686620428155685320559303899510091417910919595723774777416106498211057704973129756761114646719691486895594122895689805543229765526554809106993996936973202423099174761049929657352905342521180148888277173526566059898710724717200958455686955377328904433494143104695279033266873148271373262160113100289370790521728222315427698584394261449056450135076019575572816607193358201103090952766831068783597047000266565633960925529329622301376669969391427876031543131350710020432811234745869019748095686024999347251912484677014755735269242781948381028625915058570918597216647138070819826894658251334629829598319445759160844132757964153322699238624320355924713216526605746126090909194097193681148612625554933335405040629383053214525500705421357948415371225203640656318470260352309234189744209537449295189711910655047875036354130949095173236857331122619493015367186751526443807446099173376835174896292880279050669782288247679196108797949091938658107552478289627745928237345052940964634588356450583347844939180350292144772456612138223554657240991558696687583030476859454988636615761969713310509332805714362260236757892146566067195816016160186098524506407051662404349562314561199727855259664962128810155175899734501820488459242502062424297252228495719978663267792523589711528188537275825105520225175663031873549635982290150828043261110807603123330445026782234113148502074191550620191262806587686253346714462088165136849467944338085874291179441848963510148590276982170059543412490694488846104612406241186165987214375828299046820449455135040712370462933905835519566736297003478460935589897087503200832373100175882071884172183820846367861714442193938090028897058865150795199013745041303030902158088576455550077374930759873284477682353523347474060926494165768366344406642440303647334373990039712879646655012491459604817214772960897842925974876628952216573932346845797533386379722999089583747753333226902144414253711857240843682427756794335291513135161687166756181058428247514068215017001062977871513568088110816749289158924586211731949832768592795614443941829043661166330860566727975288952817311825588194091562650394647870662055006964065105374172323783128886967939364687098814451553396580565342051705950507619917173340610978873293383250210081479992364799998266224884461097544433163349880566725269077418198908229625513122533165127589033839152587976787595217625121928592171564988176514311296999561630853084556142017167216471563407799561547691778230615987367903659627309594457960988768433505179089760797072258486252357760831036452182789689859273388465899134465903098931531956239300408034664568629973541252128754836513865400828799526234477366965234760505662249540059718910224404081856425738290171083436295558717691824760041760604860890755806949068061214538801382364771973490670306406635064671860007298809664387206583023488878805469546912242944452602038046593013054307225397977641211230994955044317391970074657930306136172975558366342095396143060236430223003369382011180105658663835453553086522950036938048992286215922971239685769701033987313166388013984863825443391613302592022870112218895812920150783938767565960416196428861037512562870429842478742089300566332723173343256355951979427729839368573826658625817851090783198846766777576389888326467811713128301491014604151625408232330414016292341291757672846273036856199564260368865470011766107013514951997732201945587991826577624199537116751552869881183539760398795819387684528356733280113521691075738824673777211157042094393560712547932523053162052232256191143836040720319959493406089627158545662555641711680605162560582905129626995498695147666157463965057197992914791614819568271192761365142946144842769023091872483625035602766468801064505295159123901861451526208339815611200065905968023138532291575165423801601754524939359696599988511656156127350423390693517026105247393790993491655515962621736974082273027369749601242978958462216899241478253321192162920423596559804046782160417002573866897419875261465787923501886753743468412356031282072719924154692207695634769639706544699395613508207001331811826566512229896857763606671412814754301021019676361878106659469942848317054721939626266643463701702639399345712528611847509829235168233005824574361906368326761954010852287569712609964055562332352990590646706386125653859091266814741757254362058707421369876335847396719207242812894836294685874722787043215640874192837539364832583709505281368171963089208603398250818261174229876179987269697869686875605735414719672157638730185994704149263880943563148011428124775784996201120801571658812453571941013842326222585005306939163289485661331612041247501312868508417327178554450261381903721372469172115811621252376880599073950062634644466347123504619037730166594744973471048009089217391076822986754604138877993319333615212173090043889644506507968035520297214484656495041428526041291966215694694421193218760074573542234470562145308211979631598847890092511314874263565400135250833526526176027821483740516755201329327818043218839493827089401572883461454580401758827944095062098693850347136139683751721801148170302567472982771205991611813900534385187349820154264962251373107960994579122809214451795163174338822411935340404887520298547702953068884943051130499530697853754936787106292646328666975116742160895886043533220886023842850308571246012149346176289765713087293736189575569814886944290565078186745572523764097453933923124902872081109260430312119804532721425004118691859306591793595223554351449242659596454862114445784526777088099478349909009335905037439374573964182610957773472387923790056191705132133982569560121806202453195825987302020266941297519383972373079207465896496861170145184945593082066684518300610288733380027352462247747786592170609694334020243170071282849422261062306405383887272599009045880631887620551176975468930801140861222601434056879275629400612150627523285664849416873469626394297681160381499828913449408673609564306344554033573591400555267265921351124722767929219782548227881630883131667283252370772484520149824586531809279271857973321393215434600036506332645271535457942592081239301678289393318384909475191002299682834362877748078591331067219239484915704247181798207078728579052407409288130818501187072049031765087231338071912431705261453644733728587375755337925194309551364011424900589110994999686599996271915334513580866080931421748631768155255257288984515863502101536757209053149474863903453283637948871814005294892510669177786912937783457536392609424264395155655035173312525980122358150331684807838067418197275785243701392323086857886150833175635989739304940473841144823673184153431040463888359316060307417884332775186241538395381556335584967470946690479309013554825800684414661354574617608457684857511469208212552247715723116532345914607049284387057094585812949598543550247362142380644668978068011562460213365497464163343640255636652897461790495598659208892354498787744065272404912074849839423258610158921196600123445404475566673599631207966482714732037712324302619113777944864467908115054640356375612593555514463986374680366861245602214084782305009627162140183277822641197979134237622771101275635748007901765472335579303453257405973902283038763357612481655265391082432370609920269237976828393739146857342766853635503996950981902221381722009501849745531796846329597910454045762924880832805711061028817216207744541310866854837535379825766095776128523370069270585852721453735339931575358240130891180069909910955624667766400465129348176626159943087227101392137168106609432853294351412220822784823558823359435015147223622000421108223949159824371398810604164921906424213610960737244862966807834324010584846155692128163031524974085701756692541254238653993427374600105307380196315057926815415416274984281803338038482680914895759316209341112140329492129585271079010262328959745144423473929837291423475571068653562448981065350722859265937610610107605344794253331941859784024801428435470295770505669883010544456766073917453936357062921393215668270614879297894315477552001556139727726936725633756631308312613346495508800341070094637198253841856269896842255025955394360961495747759220285296509396659601569758011307506690984960839646142093978550374568532815169528965347102448824690559843102448584578368726241010313278626944255878574925935971918379579271551638441748126547432650933956335730301242822369726522898897195847271291749954269436828241223969028353255409976385741995125829142640769467889962521726103226926839348801393472469781039930288412417836600914586034070024239081381152382402914090816140924832111918412409598407604250953309898904723100207530283213315526243074376068181972188859861614825380015526513078809188668261413799580613779702297120771398971846441900909525018107230177745207572189249253261493091599950803297110180469100893912624237911804801907244750264280383236097015593144921910000490477008514610502653701142116602312742826897639276445615858521825755070708108770757824036434566906608677312721675911286106165839328336620559939290576306205363376602437223541200730950441879548330174745147353036096211426179649436229227348783409021314458054821263854718086793060935922247078784528584841005504611909965711939354698068884774869369534207506754021255744018208458641699701673239756901721438955550858159657385354509880104364740003120390337052845612667534328169617797441538390998022926520886161055876363314747563923264877750942757324062697552742912049015262182086533191480275264215269846705801841522578617200709298713878970600132642112035601587779216270324786883423813140834173497797777045082218268232667308879965205857757488566584983050992880082178743346085690496891948346748632205872555304173335200502150083769691032581624277086491139955341064048473584427606974739219580411946708971499253527314923725879813614912190594045386157464999580630419240735685824787361036236414363323006310384417465201576666212444592594625812409758470883997532950717184687941409368440318506411001138419243428562914552691369882582324803751914210525999563623024729787613817265951118773087299121775223092732161893087613218166386003426750103258863375120749606011138494529221854941255020422212449605874509551620280000824606567546906105334512984470517787858875653903110761430169304499762031440445125909558143596436987880290712488802714857042881377875642928577638374241653904229778157630651083124852854783919876692930232587960487368959205843943136589851768072780157261341727411558637804339004793007504679355360966937163379328049973327284680461571835906850387649177102355572816045106852153419794701259171053708170658036431563060541653716022229823367259505473052006782333918833383756113872895134318845295913240908213685861488054725164050216597781784874353696342248234214936306856401396080188769526503128857779810602099685435369347717214690745224872163995296905842153652811730946420044460700837586583708862798497276028542687529670569309853150282685791868077867997893409996067851137735289917414472643779308486291970636443478832013412752842871565032502563773448874939838696525319951780618902703543288942097078938718283833745068293809743624922666045828422339470746561497180393188975269341332426260509232017536379096976881575588653690412708906323645707452194540316741949097729164968153841252472810609144539747169443546881868278142380035650589397764420569479545349368619466687009796590978255925399265934355965861833461398478023308003228337945657917359119123356347257428681260819431753355107271621693607326526383595405768034194203946343925354955790300671588290914150863360927690507003042268470472770539231133115672292022146495640862681228660737422937912027617362449712143243867391675977442658176895224225685140637836509309415778931128221470952659017152163870199612737466339295287428095545501209230604420817518599632960818029813362699629794207667723030452219659609417974821016849303833363282884167144209357780684462479526638774661448560160492979025421205516661548791374789965052341619903959833799952302608985462034795702899244221589205015193699848011899570399676512124463526839847154619840146184550803119819856724767491979354317347627341542985127775438889400329710910245079631595465236987577689965661107796261753410035330434850987198865629396113886699076398608999768585716956238334866704467443654787031330366150853549343811866090470658711646546133591404771331582606208789254549556390962221871588469704180360640110875409915108815133229309819053940358435870637002982306399262331267486782241819486420206900083788916778050354863475943856633054436841577336829437814177744845059491026986331244858202543995526076941324631839362933402345527221813532639198071555465287655726689687906912918424853230691866773729186674488495071682965342687697511350799666412049250179060044318016823430212183593989282107481512686213084434462278313812892172681701564374351056038026384652284142676569483768170569247531915374501083023684575578022001468140781974321536987498768243129499775501090695486337835389251557540661006547410522959297983337992428136322819104912132904007084247647944457878894245981298133564479301743091964354816484462378045372047605048685775734170217314828795023677405927708207518361005963542990325445303559923439674998845848927211247045745901199211467368848379532260258747435572566423963278616080670958495267192297786364863483362443503336152341645258641698801539223323313558236535375311153626068164105653609185244459748051118280883451020489360616971763556329719494464920846541968396804576042544633424460460606675412743723073135273533643736200235949744566065027107458769909648510801447895542594640307533266603151080664387107759907023068082211558748891525064763529213212645742995867460600558485823548588632051802343650092235146411036783689586634219120257861827944752232788116427960804683496348911989326249474699009885786846742102550601358810787863897027135128007645681151631598586082946006942501970394058844610893688240321316460116650302579757600947639925202141354170105640618452406449940697586004376379875410806974481866349286369629995617788231190517859746081611714744361833004070284906839484407445873331794631302366822569383753779479573656603744458903624383017017302149860315298184669851796064824546974744664936703427492015697318509849568493861655677656988481423564016117694365321009723359720311838443027524386138430755063843142710611262022242902368764044053095916513806002005717145403716077082198408356976712989970213285134239325354916930965842687366196143577459997755312066337909329785144526433938731637806301349713322778819626295848579744967252437076409982646236713077647390829376539109481280043736819537881033611899869130486902752621689202987984915752390278216562918563364736982317939177768712304175412245709606754684677303008869288047941957158660119311617870713239399913805133714548211037896662568925496272104482715906066798013319299324452266801362708265995114759864368295998593700027949070947609201808620119678473107243877152731055484199201664992757838072452326062553919489909418755072044732467133188358221399052561715492678293783815508261848710556537406873462658691661819823284822649547426904287671051724100872295312534423376478901629351059535935323604210988691529933481373520920663880726067318766911687653193031585688339472730063504289118624985108269414471167536229513853967756815022603480924704234671131451752409910691034361539180903216351766729758240217549768133898129805348231160736092912345451003340464594079124042394229308080963028486391290349051730076377164671609147406689830910031575738243851936145889865337737249068755722749237243661481971197328508878371458051265105854067708376335401705596954043022535116301186882272782187266009841695361047657812820588762370554213293875471716636947753264623614964105409802935616649473541401709458827037263744403784361055753924484261545674474315046367151524200945278190377918326925090540092800820408984646624008120975789196153761170477945114263239717204538819952280954173032042275741183984939460911485690549552748246441693770458750594974985961343930184436842219337164292465466562135023278646149951723420671929295718027808604430251654726236635007015996204487878403867976148040854319459032672878528201237024519090569823524937192913823319408528907363368978172283652246569200212915845848271152460476428334371293791030036316295079056291012496570707105793651850116340150253602327364721872177788065007488525146241750525382930287286294463314188378444700294998569010546820910532179620041375486932416273882990175654043074550279636372975621908398417910072728653662874676504674082145814447934379339793657211641964091199516985375425688327121215295350738863557554265476978963839956789167695257515235194294749956577512694334943414583107969229778466370162748576442367950054226512147538591804325315531572175126999584265416564199138015993259320072279038824423241223724130987806858100904749811120453802778727235632751319750838089423924317509435430307144784983615911118463428589780178224448265576833601633787301577528804727965346792185175714951419263089821635218254245569054215018163047891018267412175778838920315771632682370021727921902686276366560718016699454370702040755697540878611643181713778389660424931799309155043683036689323058683562937188840205408835666240027822390701209846540895152130306203097281058738522085859566391779165488681583915010262395974157688217484300068873081794661789380601018762961984071627937471390953045951494105078053175981535254588090883155439761701501494446751123923748910377256737995989865736738704443376898792353436562992778737452338758605738279976505967547877178719146987950552562419809291424835870360919888936576976266456703789499184223008919694939603855750982960918061571285098408802973280226086221713222549386633964671000217066794574156495400481518126344379893761067387263042159760904851967824750335185709603849097362872493751610512813253707440692993805976150422675385118269824778938515337918019741439268536240519397017280440946325421096249665832645847981668013366946751388273748990896965944288401436003207254508741973591301844954506088887120834124873174788238228554648414200787333672276932438728238176628725398685321011802809560031761137778886350480335805325813549048554169743138596920920897358643121100097784414592429471003596147859517680887659138988542140839512150979905334048199661383661985474988908818655617929836223390112279757074552448398759309295114708272089398761652455606799170351987578484738407965383445846110714954911428509714372491217416847167502659128375044478952725336976917476954120757424285252462922969481556155075558651574472670549360148697982876731250781469917324024217084867019424497937454891342456371214441723081378645405884673417254323859442147285745598800776355607501890306052333869054879949010441208794643186003453494040415916930877308325016794544319103898699328890737848283465208986412163084662733134183336119011247401084229330095160563577965012900909272761407208213720677998337514023649772084006341606927663148560839965749597890840226166606617607638619606141805160791299389686664706201437895898489114919015460234397954830925236207307766546071590858237141346407181168302414617274187605042316562835809733652273408191318107661326901708262677181150941261260615628208975936364348132265251279976594298985138169683857066134193908973064028320004656059969859180002642300839997408314564966070811394982041893690565581976396686543926426599372841252104155415729906714187690310562111514934361450294817060643026354850430391591873246459624392665734913472723226793855547505627135761098890312202349590312479381312725933436446597858868978748623763283147465657841947212460302413586707875245134820067883366992092882933754331921110768264415983470798946986151016239050930804245307443059429266901553476342888866980360352869615143693729155256780677270167015437049868845706666189615306645401379546651665859830753399981964320563887458086735491448103336996977349392569211406710219849712103379386928450567597517880360040960401810909906401209379258382690939228584889618556579596554771290123793680296672420646890513323640399319360963666133087737524955003378118338601007535439864068080306115271821278726474918500059835513147403670773284273698172795706599887012271545991414722117120663283153524035469970455855893391507362437291490105644049832311804666245412893132768871968894655768133804744905111689800170307672922835576857662350478535527669341402649250438324434841842956134597000247281152881711807379454474434552357140045021621193648012915901002654262269196137837879125727942486899969860149473647082976605842632481528484341872592713741784998952607227100254314497044313971327762977983035496854214953928306063195559298057534412881234040544067048592078102035951698939940922194773547776539019647820573554147545723545847578879033154820281302323037950134800455707577819570288965868351777032586289495855462538246669310358668154146773320564339315097639039037126984073389892433518368817567064013540577524989660595815464324768861468051709660226100057717892520924950502855585172607559116636334253365433628744015253754794653583859409948799677169657891417018572326777291520909654236812286924629155996871658047600954056479876279036683506915004233061923734284071812034313471946541969505266652006073013476431733194865173195509537276556389393146345429782076419150815155046579830127453032049425547970459703701386463962582645485758551741334471711431963413596695683854483801462488963451270562219451584486670211168584547907098114017954583795683315116235567592035549287307363454598932242298140653783583723993546890758104423419271937815042791498131660398845401568494090824800781890607359424658727447706046764428684834349806782274555061884642016788484034842000968245900728111474285651719633158046755314846397594135460354333602093224850761714455837820691583168568718611111452387458734384263942806334750807298371515460579394821836355752652046376640347844051206069861700397927822464651008509265222915173574549085558776816320268285645665327132158817763158337773829959462482120651348689755423234511988471082848180947868258315642421749307102908129537748197723100286080182715861557706366219865641567634786127130356758460736926286046100029594057536963656752294295554023166740181404471597286967695299893902586214756698883505430028765472490394827042960105321017909634398316812535477628515371351085041432367836562688603774500549805704962984733458120933670818017351414523420658952187366239222409049327827980598927923583187664123661722961254304519606877894423502940942737017788768227000223311030753302085005700768120436251857760554191765390279967888340879980041201892542403382236537664265566379283168478692695058495030657562115429649778883021640069891062262574029222645396778426131118162140446757658766770580985930766240453638716474166667010868043721363088272863511121569256200083525799934709808628213409536113536468722173322705523216612203790026851446127378216292319584564132451607420706900143982822050142613713683620096223007493538462101629283161758095771857416829365336842091145459402265643192252392918623351964634052049058599088160749079518816882268356318097204384614974630420938327273884760604715163817931393466380153538000742872211414206434397051647129598549292765793415576600181381873285452688711411684130801563442020654599627454629724702641677491847697951786323273374640979109221586378341617166251692418771517783481370409568803692657534014085526718570573289117908657372114553621714834931363306188506772140479056681664716920409410783410668372005633942096870122672385291091038404335524146273752099649359525949133200535755145443019018168332213498639305659924190114503942391085627389223775246115244670543725641755366031110396686721911862514178998126098076736631365584763421506058496839730859121731134257298523873222167811435152284473309912679394864827839323156234590920249236648640790599130008617733867247158315619419086102849112255127515714589782064263641403196812278008420310579459334640387981640454305303098246645026127944121436595915390073173382509594575096797694073938270411518403934404807555002220916635117244278987290773679716832059168856507931581077419315470921264621946649908718788580044417502251705991599973397933750712891744451699998785510370077395612379497286171106709202930715480418114792513670109728634323590392894672205273146098171411184762586559803116183828220009327850143538387912181497088683309002839429778420533258952792722476379039535889119853837684082813042968103292795513775610827027668302571717889780351798500621817840282385421430052287689422812004845161225729341605846298606569713554236495545784127802697124155519722469894140515190396737283568156687264348745549393826841941842531711526543851512449794726320076926080224285242035360425017640794567299454729959355076257870353666879187007184397258273504215342989064875867918719125149832730219189153990527966207230093156485144073708518139093753754156819257200411827764227612879453574266043320328950838620314276705928740681109054143157421786862879066639344066473366886854994085326830285070958031584899125363039063016995462399062898510049808261516492432022447878468560796024824313718531990963956312228591722539325337659911968947620367228096228597635916204262390632400758082996177755836450386598209720881157741975719404554778112995095111262410291054564042948894420880343922231167011283250140998018936350086319120816137137736273049176427064257790798680406069696316338966553853601533920843862928506519894298171680547122770015108884623227896205246988783937041413599563285273378051715601702565297238021587759959440499595926348120794896584320096255398967437156262237535125877217708520838309549065594559174764365741915161080737349936646871059642819919049030575930791119609472107674459678167691395611332912554727087053281349292843509511375565990006434656214444150668447470274755586310430653096849854916192438781288539294937768591200598846060311324060148883661825328628038885399399557002075377896362743262586403369302893073403919534539007514149079520665706623421974006740857272233529125286494712053703153315642521270417301657114169262018878250514535832179652315600161881027991334567611655418446619141341982389301558861340945194449399010407992417183759196412411746573754787844957267289329037722647460212044109404602106939929213245925942391851047137207885146318629784767456332841546026996712016419560816978920510398507695783813147513820096678696767059362592012047510247967792770040082162858823877577033149642168931453011313118628335846419495042117674904145193795037283120950016340441603079646275766901305298677950826600824088081499971648422538366510880515462488173095531716874343937773078570587342356769684249808162369005167673161130095503139163788589554976469626911142064692889708211611048195930579087827863459743427101933012850357079681782356538667351142067675335514394643764461301383875453991022592993803796607657113115733234444842147227614006050018990454957277392292390776769265043923286129327437668206796204103220868329998805173889627000860661161046509562018919868805251819964105212214039563955277004438812382335915497362060176051966124000004055503081264951240297029857570622643298659782687230567660999820389351014100896690608629270044954995272707499671499139446350277093869523042526412814548037993212590645751790248421017266665727664012991527525372503211924873289219460654270235197340627289174336712501270990960997804554360225703936181204501080985448005347071652212577274577476620266945417961905492810209458491906682736940055290013332826043611144621834303415205206608297762145708371598612131114493353635917873842526103667448398285832406248633656667685721218585349456789571446845917910603672859578722334738666071669709256688383111284604459991904518031112977080766685276839534465874629828998752828780615219459673164379080142287996443045412812859088507394562461802055964965681461826657637853071373295963800854947138276075070377187163314500788143491114240245320060297566043923280878849994601054105117154935924373979571551036599653479700216478477602379697262735819263966960710968952548509419173174536133846280595696853463794827333176182895906850505639333420290240176540998827130123692252531197060509091034936919232812872625909497789243505415530698293231154503358739526331917822546271277035627958048676859803971427915881123727426771990450044508895033161395952062884284020854666685984900332595056149535621145709700506331961287401845999613934635984717700558682766071482396681879558902608642956253673774740934545719560242298529476575011720472788518437360127421522322662993107629178165628408083824470520556312592961243634716553544325295634277888219258270501555505289023944361049893528745085731720801814663392923454299224822164537937725262223256070610037088119027375904214771867218708084142151147377651853732098895213774523908910321888038664587899461108163389000252587067403118819247519787581407797122740630716320577803446422625344576624524219398414401838100850244556892963410797359736022473941895205179942832386151894443854942422959238010098006785557433777225227430676290689285002148244053504442032493081447758851513131011505021407292620744801848279274447380197245105898758693332108125712733172192087567648436719985096119957314280747681038132456428072006989949035539732426299467544212492009042398689522033499861606570859493645270263035657753770342290604582263433631397852237881053343799334478080938843376988434466076480300801935148871062916681776952141775117849183954990173119253947862910691735838405443359734546967749814214090851276164560270377095227003745879957325832511659729382133033990775322041026007989140347987386598343226677665560907597218161337995652970616767634202993610964104794322621205221211240110818763092456825623036214595707706250158555015668813275046455875696412668007166244175908720420701119711271714709374282285131114392510106545046917932577738771756038939820914170872976084306709468956777873328708627590863999272287243492109641079233825705780913683784328266277388122642034021826900122087945117423504692890240976417239340311854739719305548616157102993272174178941816118883245918095581050728696725199134376641088077461376255967040914868348231997354717138506839140554276165739618595718117103338753457319703266412064768147805477092209216192504770310722548018103449466376700485815917686158202779420497225538743226274153615187451342643541013286436967189848103967616068242100093055093040248750182064254739204708467826807382093728762510018933094393594081839296952847643994348813764746651285667693432603247429823035513453943607285296927507964107999536703846640254964866470066303003404030224830403551524064973753105229373274746920185327231717021544383104532930049913946530852983399984586637495616814561345074746429825548959166459565514335900993300685181703738217873036591911922893886942163707074021444659319339297731000942048203746905445222138500775573355180159828577463928838254339572390505305768257085921887757468693045386202468448621710047055985632278154194611544391281322730306253809107178721749762892784993698956153850038328148730522073738518627596783509921169618274249867728772592089964451333849005930260984022275493100525282470034717753937833414478310601472912941559954037233480498293394420052117023191372301270100659773772649838804815401663235449932729679517495011221388923261782662721908447414546123529561866920449637412645250664805968559547984423780264318053241313808455442807189256569013960918702009890030012720524693804391844230832258329091249887880942817515971514440598441281096625813126915591321052739037266784891316011706089507549277408564233703634475386586836987786604399943795450264293511860758754564177699056798172678204251339547035242550671390122762368307411398845115368960786403166294053369007840948475010391973395650071604672160492454640735044492828665338494656868182852373225689204350746479733672049025779977773215747191224864603617131899099583531056456495419729221364647788057930255783186316641351980753828602931807534630903527814117558570152829278884132476530813022042754738411328736719725882269883280671357767240498811655330027007004132498984855969016316454601292752776936736661568039956963292391405458789855063755859704711140949158824091183716322183855911999263277166411667255083778917289369673733598522633808651426558634144010072998823857843635576002807843729369955640770132177962477815724807825188304155734113935845843091923583737686353317544943096972658686564603013346715505835570826713826980748959689623579807308752845411240893271952928087951095767261731824964682954370788242881314154184537752152691047821816838584791109823007015020769661820506456567523004205401852987582845932490735117742761865999363666167366059260122338700333238315712940778625064181929247572435544365675526196371177362144378323215112263979824729795148760638611655292865413528194495593855199737559674961515236095939231132504675339234219513714432896226753038442724764930130540276475575650615560450502488294737426537188050423965721644644800655955585480124504244483448836057662067928503685616931984538319736862962042730310359078126007888578646772337353252105002685574497913536839492965013190818338466406404936661610758366120903806894831760065455540736217746305560316707563630918228941339359536879866214683665415582107765739801425397617496674625951774285838013439098989052096293815263573842524100776993910060739765047941343339425457568049563582124988095647146952692471750603650923676064191554220627528064331492114262677418940428266877848170881820792762734341130224101047425210475594279400464541686042873096445855568012931698134395263434533907175346605417370212794838909491046420692233145088281882320590292090982462226594433298257734214532709474610659847734416636366711657437941857950558809175702099415503529152087432421630868147008635223554502764826443316357994991412481240567335145659842192357301662536741719840525466285154692079461655713990254129017674559945228436674975022262664454751668921336580690679768403891524861448822430461783302409132068781375556741347704022481892936669054881222624546093695104286174489738524365269860918258714597425533922684571671081850653462654481818110639265825780125477004746683614169888788057561277675340648949088313605003950078942594501830344180330098713231134741752153172609597527666762285670637012512810203719865135151145217257796880452909399668612746113645117172456585646305510324549455572003245829518426078027257844653980504417256610522404304178792540131985541321748452226681202436205575605346207489233610778616684073823545202391978675512475633430967679913925091317697359611162345000588017821389748065775781288423559234535354831712536476872073450500291295474457993369598369634894914366510621549853966856730610104127542128482160132686097073620970942052476047689158920952440284593824643915938063916406848535793716079552478988351143983199453880681284858979826204986056826985831539506616471549093058668354192896129388367449811597471594254767750997304488037423110952527392109723320692616681350960192585527614330817483809506869794200514338820819802160218791579716062893207073443638187015563027880353897053858982550874126585937461208444295917629705044442118697835206465828522006449894604246708854281937885661897891289193079537927149273874260552803217516859747973759794636473837473354359100830728443060598124932443521620172141540184022672765592329486999437984376899947808502192396194382345031492831673048364254803219513153664509174068457776732121244359627327120316088006199844966420306528470834432621117863724964894627777112776804936519132317845777802790050588964295482887721566957916326232741802805060419189970698727408120309978042714319227220473018244105216348901158037359729775973497843810790205770738231971629429346161978486849743977600975146729406193403908344962874836964793437928702607771603393936031467620735788319414791312764333275667686636623285972982428907960572782844699724322048938257917182161355702467124194866100383280697406086885550583574882651280961175206570473621044705732841151937864172977380565390985866440048039566921842778239734448368701181089905343832916510693230262818850736568332663358427217952152518026827960557802247813433884257512115375444936180506129533779458947688463767568503959472900312503023540931376255201811961509918375311402290731306310229266985672512965015212772948158652208418069083118521671047476245920803375580622177641021441434914698381357125108929115960308613722040197479052191169258199933176026860579670390428108076021828922059593293016350399705683117408956333807629568111713281304174189173041038684946063821467163939593510104303410664853441769261660250753374437857976102003047439528648251221259890178969118914394548543227010308663887924249766710604967699001758327823026441414521219857079196786072683530253667605520012421094534583132594612433073305306204425299414614323908966877059272118101273904435356501751953608805367062205637822341044026924552027094776917896849845553899463107306545781004915175263063826754319112828437006479630928868489713075625495644722461370224198079739905700601376304631869381059668552219038230515750803195024269691118703405471673553058134467678138854437249756291849685858468985500516316895091733629060268130657985299237657686918980866166145472658331528016059174487112700266044374797844742397091211567910285385367137883263744070797182582312076339703574636707761459924969680417274058589933730568411188583590607721700300578796847897413795296375859720826148859376836934568524161848009630090920392443549871254043610627955236655665235877264970956133961608066256241627146237175272943992234039815333318391140188679475040385208486053829085473180841624112241938847876929896787300381824244649886626142126088393958247759271216205569372054041587700608566129793910962725479804743369070617727290548744869744813370506739392712066570897575352212644470013529311915192210513454085219817227911245757744042640427088400555908741578409076945213385525878860438632441262985930730698819067999093891602575937390851455580645796186902294646264029407165836463214088075230711064426798529796055417465485147576726311929358239427041452190020799954540588931109666583853719611199379226252208754423470490720812229776479344483533763312228631667309082876720729478100494185292817329780926697534524084872235686173086320056203148281895721427487530192928482795655209232453448046819169015623866055251341814025423850138107748167087590177177418084450028463354937270343028247897868323118539912069068242760492012376803867545945006311651302638363932003198916662567416154968079843475851772492747641409952046287104322564654983669241889469331782068051298695572404932334176391331004725334737862581682847771068764152224565989694795959153880199333970643060011679972291893469770185856076241799459279473091146851718525745370667360970412152138686213281460190426446978640897209698501477044095664958060826787769071390977222477373376383447418973815216930957755566241415644843112577386070185677276803329285922146460403193220923592533045800554871103656336405603935033792373133548338105423749480015797541028007671385950874284865123605813385750322054020007243664661672610463250262081866038145157934134905628259403065581136923852107842319042391022544960969786099268676032705039239639404608109342342993994395287835786200706234930671957096619083978345552088629726435954000735933501068974370989065049375949333794719422635862985783317565380632635113046564897900671973356278595431899710124186218016139592640634497230195596066010498485889570405742457018731416248102518244142448834769373892874984247781420642272111738962730040424780530783117194668830313190356011351057298593158764528392682068073596344501139203884281772230259550217509203594839137775794810319265949574520884595640196155414729394634304766496385227849716842738924901648612632820097620377848436018090561494688647341653232009195909119105716622123461516678771143942776826408172624382040748776766520896123843252333673842440040413188977289901918181702781676248816387480110094258880085491353394386856852333136499363246814930747256049068753185192467853097976517385968444341094834771247468217220720311916896577946753229718489517385252630756609457175464933632157018185821953160238204460959898775835670988287109311340810544042449998050089125745869916514139626440160379762735757805641809983310107362569841981095487215168544731044789616316142858478951429605876027874958132201971319128330513423899175367326642058286313186534857623706040669668901542563045699800686366161847440022006508635182636005356305530373291347381337154896600435297340073844298521151349595784113524820140742868844397397989638130933324637412601462400905519468565700706076122000321553918249813974445227612746409132137398266403463282579459118597724307474449960749419640883180636677719801912131370620816709559442536617665774556189527824473187912261487145903589737388641508190490811402870943027782016780661296231312167764416965622533494285182681446905265118598184339888122248491894340388664331815088021128410426367267802759720321939322813079756580604217869762411725678222627647471954751241317709288485398326100146841088346760681822280888021784513398761177445134693714876987460305285181490808746703222905365811710947580086560692829344106961484803673614681158034395761892857285127958011245298567400570275144007590482300817364543969537690015777691814708214270839935769571731819117223889869998202477857944469090669268978672294520649478059474947828178473522673170434977675938654484041976206371558706541795914617231379775685536412539104085598546694123749866075230856465198760539936849007549816174674083387573690512766530825311475101424621684757986235104087937514466160139573170985054059149453400736121905257491562610200758328338533438783004909498999003209250024191471501505199558497081759716319556348911885975424351550574519549243473530928264972248567082442583418441054585633895603754074698077227778897951114327486306500547850218376031319840428683993670471043573129960410779587398483033489716890487376253684684513684221398083620644844175433387407580033389468756674901109781354431849684798147199082141663813174631795458813603926367597685328792422529799723249072202195950809318920576844841233097229253871364615514879857285024097656460220122699920794959812873141284161779906247521088365534518404799900786658672408443475270677594303486334440955340384021106414189983166492416015763817188310286081660045470364488100808892937939288533905830574660361971402327773164351180282778112598007220977126035887123779413297392122138272566076305992852514368965800857012006364275921740031479204815129303092896080824541960993979855360897018932129176255000415613174842764194085811714698485279622090511092956422719441987176303595770091070327113097771549721495737821990695278186216551885239810386110426445870687595836167968484870665357054082025025104306934628082157507134039726856308061773905969925664996699600947238531455479964171223277267544564164142063328857343559036874593529391804492456498912029478413531883634109183401294491295506240981255260772385129138243610475607947741866379863214634887369546421751207663972815598417377432517066450433438333901074650119056268289412778159099120774767175134076623018197677216784741726897368559994552224145427396527285118396111113067461339177584537519307238003372198989973652653531108527340368870789458958316096557862802837925846412311194424464799169353059606971717298990832246748731943605989065373575490279352707886214645917817503745156444135235755806524320045068904790560162136264547513291912116062023560654516855613111385605629314313301232027964536577202895278054512099519942336304016261601017460505759524809645160520718654062598149281348563598119968112868370608181278470619234189076222484702542320835924875601529268003002303928883556892497340306053477438626828043603092929964610372925747459823765326587759596344391481365801427707113188774057047833079112149386722701992508625380159854854606602710654476499911500172654325804728248319143461004103386810915986820587109309748378140227511122035066982571025092639510660770258047593755408581164516631855012719044842020688194783593731571629893356545796957526631473463014934919718371118875542352483411272410992987854150161237307690139696384185367292898543617071369930829387900035172403965939897975191826615416547763527083975022043768845326767524403050740057392386843183306490174380464806493835570370141980046147137077673255076683243046451508784878059229794493306961927415867859396487458164073855265725012065606200264671321303060234191781135237936834228201648197669650107617159225635421654777982019009537530151952894972085242271708914712619756905840377225969587949183275007890728770291842704879632879863679479251155150498347407397370167713984420190859219122954565359933894492085911044836747121362146775181484725718834079988152546440532990504126516389530313093939267079874147871808832180995364987216545207955825418754760085942462861538864201908741391655717387031966984347159670940853409479256985758718646941224443216800954888243792877816248742619682479772488697096184132188885921563380595419630738792910571539921876777631452405146113048486384310785239601555497931962973482763459108808274884897949794589539711210712563696900099815542252198756130106260617268797150476907551167842896130047833095847133346265189262641239083626911039471758537646989073610511495302352356522715608614901070421191829325507147159197195700901841111047250329131777567938846094114754016868741322136018847759971575715147824283476058431197543049278432192813980836680819916593202185596772374376020921056936492952666858260687100208678236909133980841319904849695148605987430559734712226736145097645012310139519556298854278272097008188622169698796701796866817570982416565680487647437064305231298945977913726496967123048072456899821920764906550905948145123551833470180973662662873438984523269196991046394932720996871228476400499673100816222175346311751974687220648442034345603005454453058562211269176924633196206470843780457599336852246384759910716356777217117421334891687516623294076343476985525528876532029068129617879617792488448643390798116743488687999378844294005144518419545980208772836520032525213396423107523442833596362506319691260485877675425379470984793768332534740030248965580481493656826505770181672884748565410023180582131469486265172264011234789876046617185896809881668000896256163465388077571736197989133205651718316108837709172470467680070665494328317505569345431745487862523485526042785647921053627577360564316936246587524070022667342431410276590366339230311427932960921925699029821205381454603933882053052748987649246061217516228767462306699135418005039160767130014347349356913643466761286444044500589807042923346106487818715986721355792564717660010836036811592830430209671257326344538001955673487384524150782647188895037796160545529532523539793049433820164710593589707238937531354053150625938982306851352666168476555506611915465454300634227627279606756439181985143865990295228521733295638721430705137908945498409204927238142089892616021332986028558971901598404915835139605009200057291479560782099647630231483596739064127719360440228131442235124177102222831325606812078208226918883416487319858628580256333479495103432272018587246827189108120551661919820959273967457825143533517790415731411485766852680290270758068764666293121002425325478904463662205582596624998763261993528284992451161678782359570410793292953952119432594134563200801794997997404583066254991369276715800560308538029919010158784529869946663577470095203689715460680209717744308074712780883785185547901574926229533806300137607031194854308087369535593234461810205120984765153319109859162559857577028118324051249133837763177326720401449531841834416485738089903615281271841075216344993858873736708203503260797890858001192193697208333233803891724497011895402951838924134280899375041534045955622082082414887028417451617885494971784513067069882879229814628010707301655334290833419831824880045707892490235198386448273742587250536794575054389531130249946786680815268011687958177608694067076160450155998904984659699469555791783567067588596199048394967586091977175132112034977922612882672253131880792646812648779126171894573042433130460326403800100802549656764213415071779477479684673681137245789122262275243389737877625121644834820834169030173032802237745472302412453480988188218735884338520960678735646039762422301185274401789367617069103793743943442252007585408519849644025415793843019573410830616417093254117173980412402469971195363991798329602488101240447476545635712077788823692999941400313092187110477135593069828320351407580136040416992166938519867515851424183770949479524898934485959054673842748171142295218626581208379126697854555977740765607616660077814719966876435456331893798611090151650892827230487785187396226781069821908104366295112477739576237127844785677840225261590044137725678103668165476726566586574009690018258469088001015002718054534825340309476014537663124575782311289755228669666993086419276156111422390560156519171377659082942251109569590608134355094722643097735381774556829331370108943438189345731993752717819938190381434894478636638823667262992460750358345524036315606343930891301454219323157870937677763458394953272607946035087202074931609125565087080879300606846787813613966517356159720393067878536235078406561463888958416302547381887223701089480177210144046351580412732095300939267428530608980267377675914977714058883713867108423104747922525796797684772354368714683940818637891687692654041547106381868167062885321446261901302558291918686669296124028835209604494489709685950921954915243373442490888287732471818179760383446780144394909591153844987796899311942559328566059951900151793036569549689588390377528340908622790574695590037578683544812924884942292714821187488778858637407001376882114925847210040293733707319415741778498269337210202517416160512321535138986875920427002875681925657043713654636489050775096774309801698703420663268700065547510748650442546113800058130801969235221824290071746025669132350265775340425294324226281125169645132352459919263854548541836181832651614774391995321400265181236339533495711951709052040436820291204613364499402947426809120137559239228907932191325287997610193391142690413614982643427450500617105351102308602135172174522289696046424979069441734848698580230526492702107808097698025272978425895086903508789099268294277482402948233418453102436718718288921043521576323395542356297614587620128969980552099320200331382138934351686430817908901982964795072179735217125280541592831041035463803060443570748638952751823446650669658378544737784908029645007161315428104454539139085031915244576333911838071618711199256825120925612162896203821598568691842194055592160147763777817708476682353303929730736273242991977038073948611045554539093872544436602151376278247361064188018390699482791957867099297077405961780462406085091179368679382024833973433795778259774116000982884137311388868117343485492920063817700399382129430481486020402724510142017312648256400733966768272373980192924626615713871571381180081205155896845449095995035247253412035390189379253878392886453730729427228512874474230613326879276545264642497383701338366843313537749294545290147719389445292482499575321197107044911400511408261972460554264676891022706760858772884523492631211959138362833911915187441498535826112341924581246689563320590220325582519373543489330493141490367170517302834145900065959047770584878947107025488221205224385217529374842698325067403696933007790979634656692317716122497566199909663450182337411768436866833384186991265186374954318262134662874588175360560990035821439837441118583533114850842327556458233910439668852442239173254775546302103967372730634781879402845082035142331965132046141551590863179234366634447139519380789302444296614079026951280879052679080753890494484287645461862550854606757608531042149083749698952855327944502656092848076991401680274318771898942514311388961944929202049769439912817265603962651985705024523330187038888452486136052460115063574069907425418343870494772968818094619053434367998025297580886037533815460743664372421338737755166021037290943335223472380666948977201757531786878193889179746945843179832237269872112608229548916202382902360191663906303960881861861509544518420902046636950792231369096712034092426219623499436980009272461498678742478731347132516645152437796855789889722964605385418475779457461361260088408391489081543283987869731935900862723153692191949276139146922075342931901946612583138271421784347488494845385977081025935329109223248627907672403737414145641479213775172011403673439000392042172470803559326985986937538701756659958472320417463251855685431993444741970053398411434116683257043726662968931298820322310109432591565752300432932580314923597721382690630270404828328173818473336901568037770075672935928987929010767833270969769734412504288664383769017568543107869049066232373367301664971869725901859360920078073507001358050213640511644956357946384639664917523166071438932267298908320124481729969953788300036569495466065982692070636255812974793787267386825232529614851091552643518266214792828644781594727247221370609254371384165174649697715978408878304510805171006935001859810280687708422381110713128685739083591728628051721800790627785606567664477769764654303522771487901443648716643823945905670885995548621043105248631924779833026596809507124490317251290186202214736675899247644439625208266255303577307348345910327311246111737839937531500836034586157075922487100112788440622055382868006257077127777651516797461708937851216019599187834535839749369688005678541733105092425123824323352655284808536657758558059362376616959823890181409999669342690204846395733300458558209227286931014685880394360889895779764515364504217800441788067128847405557232764551500363098884414930940435089425175663430754483280538604304650157404462506969832289106753003212100470948738860700199738777773680868755994752100877668872863321718972365754423883885486088897705702012830296851744012416806882732609105723613420961613990618685635805494237189276941163896603664838464476418975115490639644567465044601718792148485322026721857876377373217667480375489701072981132681570550689287421152432159363315937884753098201778941623696588475027176581781664518622353280844443587529034756864605720455919443965257129860920658155152452653177957410446322222489722262852657821883141370069646662563143934763147156829017974778662553276731395115249329178699365363958039435596025326606810483872492684350410474990009946380018497776349824018005247386564712178997887997476693398054848511177529701486762286625001982674713795714542940034136766777667731085074442951157632915176843579276447362558413950018910044294569752796247653564806247698281971823272462499435476842378476782980374841566213510267052549573400015292523970488854467871612747011671972433584286198649468606700211427836598899197714435499809092954628775101341230153143512715954795075201212850662260789098380338894358867941206397897872875377470010997340096266755742381399555368280058382786739323552638271727499250543493429471315989955740761906039414248326199754256678634161225351160300182203822221941213158595191004804897179132643416177885973553879126208823805632064540894824473437689078380882845874470526118058653684870106120408550230584369249392612187471183590092676595970783814886808747968466779002515895073950487666006477353652653475808391242232684077943852433125486427334621962724607861886124846939066620665536485874403548360699355846142612570279266533967511921212295758656700082362014003932135055702165874007929018154953033021238761112465790968876155734084298885221582508868955723183733656641520408021467931380424118655265807660582854783172376417143138607842552869021107207552531687854123756165329322659247173884209658880217629032010672781672561424314784892709368362117625951407717360984521128224206544626603892428971960321443233595059170812737949750748720006519846752323858203747216648023183737940642358679507798610732104908127272858132156608495518969228329498617162694166726506097321319358855186066067536407377858401486052956468644664207231780692772887409388949937936225407526479953557278156408450458093038286854224336792325360728182344209036787844748934860955181423583345784915536003836665626929615938040684717456454779983252582294095520367613770503754012115498599076460821681818904467399125959739434940276874565129439127819486116927658478130719020752849283264934439941226724671791417164337581840484706961916576916851732859410008999094576523445139308927757343631721651355391387435552325359494808251490907843536812911099148817580996897117765864929711855264791979487120145785593625799102224153312074815081103605490763825889993994529632811431527288271914270127431051774648904744327955927375573412973193043510295303834810229833489450199531755519588883299812688048597144684244078403123258042474256112289059200075927889696062204355174269511030409971318369191262661035153515041913035848412002143101318695354618038584285987721122366522389747818490703317823287161466209837022160734744153601775608744301840073462713394777195936710942910196286363210767908892592961336161657673385596373268930055162243819677668019767440447766438660448588125071875210906749837349367733414638334578591153833804276149310870941717515152197020496009371993471635712207217639706887698669025040896819160245848798629336473383517787942304635636010874789147393771312983865694448859260554776014143291368048810080680171373593843959110520712628747673495166912476387016404290732946505459392240702095808082664113820165288158337486704220347161206655679667537406822102824582623278974122674884814883130328904638694524976060604523884694492298429612353309976121000891574326376385140984349417192542144269954148382394706493331721038992164637815915962440662664718795689871254129692019908051154220929601867406463628174188759212978397696544149612091326159531854317201669199471572993534523038945754504547510850876890678042963709494868259808052001362179140040707667191696290847947339147749947726239071689002577125081285419605014771931204058277553951923829838794320151645642600543303236768428247652865166295033702914665110586662399614747731206870852241763082827386546182876274107532440587682744000626330722319651465032244565100404657138454411323010931025031402290512790742588597710203040840316253290376068637689576553007088118076093006233454908746636574742734736377038053520789983933285448083008268629016454299215272713169772931105366268668456206131580687102027132918712749417446999849162053198762601950854337561630655050118996406620903758854082399011874243471922382978977595585371303208297244000420767808090961384788700110049731391212804953874947748741099290864829879447660652704488388039010959532494794891631036080995757490479659331222784422241987113946562012538244971232049682857751348471247078971736833619277273448539403053448971419458842473406833020055172790737385024475965419763044636008249681781812543740282253574305758385750415328640945417645057726159589408621006719118303072772728325533222534912308044872225259071074691072949886801606505329852710226562388375268276755980637788114608760578268764903767365864487567099172747558397381831845662201456611044553704362106196097505628846694837596439806467223263737971643697973563247412143596158175344740025341166231102489012907491495288070252651587003129133589412262069911382486731993914853193595435825140333256620029459991003177699269695588917851385660290775563797911568077540530886410224991533830943501477956978187947513158534600884912985715224548623524056974081178939775663941837083502395049227920376277921057101707055841992913722729258496239662019263232370807322452259251689131855410159631660712689597505181568246395375847580574807285265404252888764623111998770969269206681809162512964873841628351950296001389992079811470869477933648290309506896313698394208815395168935343068845061928848248322007336113336128954819917153435747729089715300610111256265955246607011340520756488215638691296141852729722649924443776331851331398812071932894730930016093664902710397089355645516748958784706596021783219004714545864769759556792160199286196528239066403505113604007027300726139414402330985474649828065402954996334498555926676276727472841523972407547330114773145360533446646111664158688678558806918102862494171619082159540284541360281189338940266473363494193270708550989031756396449757165543993879242382124370674934651831650054028044502143863738755785170640166245401882631588173540509161682900401776364971091954696589098168133016323500466025246142782712031179987760091507228163207391264443217725634129633931729347187253483471421760455244341107823395213964065859714817754863663573827216591428376765629310624437952193004335630390182548809692588543952949820960178279839619493636293439387474562492306459480426118993133660949486360345758871406557330314760725390943912291394288382588326108436516750856438329075114021524187079795416334089010179726660559185205197235890066848318143454219769700346958846826803923101925358911900522186461093030322930556570027119998832065294303681923646864093413029717947392963994659511571427581844564064809240369231947918823082690791423991201797486925333080786662971893738055629927892639381970792964043100018928164408909439346657681230931083928070829342857545457003582825654073573303591394377324588418807316103106386357595754092746518757857378370797013161739093949505995097648805697993652283349959550532542847919554311440088836327755705481063166812917827063107271982922295166666925395106093929722220209138315084728212102244994642864299032987155725753755356782633198896782556720006915245450862436234107566199685187948991995832639995800498967204643561458137952492220192378507343355120500728876138673031213659957018674915385168712419509678197598902479811777825595385183138907012826971628093570895051943021188062460863964619911495030927301802853902444126690283168981956572902904765111301963282398288876936214083685021800235671008625140777348953839398271103264195687053098749921277703359463882040114326501074737194941581199572750212928627067975242221773145996888721195610945746022126744389161931494596244816991576686134670979207816505972845684588402979145155976612571507961327078965785333700343804713197183280257323630636207880628475971064840191568478626930784363190004819903855186591413856370289773962471951712155733826199047252981486355720118550069427453302905264836247373709946163886350625047088612386502008278401284422058868466081266667260311631634364794020408831595537199223914654573609648291020840337443150854037490285413352175505487288384831081584624833663383288681384858294548324270887455358970718322220493796597633341608975239748222185260551369377910131237659277722285882723834949615837323536617978807042058519434879322684984939819444560232308679959643033098242071213289314226948483349908644440017811950213903573856673247233557813028260770723875182082362114589952156420020441396724962313392382080227740798562026781788857590170897129549590035009567390598805141719769733012711361246799718338646908355937719586328040148582756743944021481701814563116542739545097438716572106729673158461556415797246688099450261827185480721241929469128275024320850669754727958019318177010168413850950733931217196808587848943941469340793464300507547573593381403709248172796601143163259341272773026385785931776749994127188309179595480043611040656393453221151352478033034619770130362193706517274897097921013938787987909710432848653790518138863180656111392801325373528205884752142608187639101015203595584465866066070497483171943591646924034218375498524406981648759462582450848305478895978896046206056843086895342039945969681103909847725666116124429819079839565061707860064708057736273910674074779478289640935829058603593719850646905464062298427768246397832438865274870003225466114183222004345161003567156237289318436024476305889368861501030003659108011529911467486859703612979094176915028012295600465302665252794071644796141636332077068873052384481768673826826518872974973168491086394254921238368755997929468843570064752930476218522421814093588796464767217255951661075231497822271058593427617651573116134149398978450152240580321058680625725846400140607575129394195384500998513463367797474060307859121033683174353789927514321710090996104189928054188744046289078922242833842683592005480258530820893883063277793623165798937033757601133286170948984725055669914913074019382041624275588170862274019499371073925229862687886524027609348842039540934939744400614943527121614806325889330469424211866201901180904404670060426674553292804486456211903016534480321443452670401346444565854653587185823737160117965635790245238501828568139611302879689413421059194801282783082409681113063782245865026788361849293078507768117579275048978746704297108426429850079253141877845154170651434080645290689219335914686984287506144969463232342282077938276262586227808763657558812831631050026454693597718832700053952274894289592094500343172522086334689287958260906489981361365282656328803056076768470009516996640241230255997489088719643960276456152013518638244268210152070944466862026903911727340425432527886585925843112907685488894917880896660938835776658376786352560495970379370461014983569320861844305817959063951226881738697402390046511061413244424665286805888777537808567833233384117076480608203133526469752999651825130591398254173764458537526657612569263519206070398273548929143448724683499642654532305926738902694166516779452041200603260805207423825463555772196819905062902319041041537742189625724681792448432336123868843718945198592318209600146206217364728805456778326586845898729618193324090058753668101085149442679270431332983777239960944583808912271105095058483892763864858711734272277823153270811271851408023060746596567404894139193923353510312990027710070321000335273891179838125805950741676301640432193718380542395457640366528312252996191950311101479096933747782764825440883544299800116079711361386453724948852921349452408159062665754398760951525150839883158615240751886140438292368418610122852249597027139144626838660954561272766013185345050250905853951826579092552738060064544310103699922432285152941347165337451479138330358193389032121298813255603257375914284031242006125531449203411171798022702244331397146693162888310069727699286686835460324265566748572168456254475050932467129378692587575929751102783947764072918795818651344622752250838902731446707647793201839310926013339185370122141630660797272604813421763806390128375364060830985264259529842743971888929644166139844335010424600173637431266468168441151087202796319503356397337825792879260406172822246295349503226891376407952840816183400356193485760422953663890659669145645662823851856895925167498525144325329745572586686346258117638446554073828644542475114039583348999446650524597404410969840869710549480501964519852736944477640848180998805015922427706239052504616451796522087969366198343610001470345855589816811419308726978280004107695443312133566417255251648765566278500447255914291221892269553188894920425579998835612880921173682244868263883013014420672187284745868275194342424842551516061420576735391200255115923499417830299842889472589210483136762365487314799767574851727653462979287106173331108152505749688167124007092222148714034519863854149269549391921179356649071605567540294664548338763563226324483221782067999654142415621964937298202233712659770687238663812778547011621930950072215480844332646436014065856447288597929105473021161277784071399306427143890189132817064040891137579971424613836014607261710066258018752488258707709971372627412482146273767941004656535154875740042607692420668570596067227023675852530601708169125220880235011146681993073525710146342748969419191201908502901186965621793429693625982149969738530593318876171103499308536321211981989370211318285967122767979513701460859248885779085396832137749441779214010126877639656208106540883014408499937823966254047576679361278703345296980017760524934331691751561111819974659306584315047222337293372881850066196456426654616302621275408533275984398352170820676109439241710596786521485357243706860330954040625353425052089422830431214397132542118308843828354883566335719557524968972432349887402459349226045884588059765920140456052780750535191869233066856605053243186958067332288651881362974784358742020860148766758194678873603899018356263203056667586884454178589455985557024355488055711564834892842040735577126814069961197441396823236629527718021243498718074115479751572361691036686458577772683395998286460891174750153747567727596402250220817024825514363606831483919874490429160236147056621930510639956979604753252962103870119503881479488408614293051443355731262653768363601079140798424663369574066215804422880329176766673700658344085181564811225659252904698649886564884328621876155550361745922715694268437127121290958503049785927767318167710865578184742184974749648486711419069410494616786407292264262924286240737475572081615554034792746414820218109185851081326927308855153633044673506880742240819709083849069830516908411296873265105205907213723815921619508850219807430118854196807637991925779442865168697803549801824214720103995814675925686705295149600107426162066444882264290461172718386100598660932427543769778990158494358297095843589080064738111446682832796025113471808116682248911455642558303865021790032890819401716789014470370220056761390216084736951917408799098084395473480084143741896215757140732388802225932249390784016823619824151807652828306980408804312430395353254993307434780395393118932072485654911818627143257197820676919453708009054909278413126362041710588949172565437467384891268874016422822648965125851867902101476347720027511974541099411814339990918138614365843729366523501525217831629900023534401419789219920428090297140734047653961059390652481605424558306352406929523270252033202481891974262390964279929497419501436735393398826646572791349468347013079710535784114788478457361251549887390760138211082179458937366372875221355957948995627323178385870329980896126128210280823346984345194674410556286119654038535295154277090832324247754934571982647214042654723711559180495816893551349757704386472486389594404395073927754967543541631457466797876476757024268057495129827091862459378372325731818110232580559841067712997773962623008247155142492478546451593491353576909761843072996467740167898193863923468065387706458675008776237292905605555159322738194874314672323292941572788790923911264206535040995397898021112263954746991050084437023264356767505102063859338536980041029110214994704511067011680486622102824371222058519380273017149356647569560412037310498043146373402799269386549149805773809096866861443846303382179619953516680466742922810662989395452162402945566791817227148705695325292115654881642192794950761532587987922071229361703685926684348060503948412196052958593823761699235144175445932429964270096634435550554273849658314867893009391772843096963637421147536767009045031046959660545933516688794915883641772227148464740194367675384078714522379222516413635966314290559386391517820729273968689941172285220673487767244368108449613053339824488271336630571006187082318951108384102853191163812063470941419703775507541284942795612882186621619549082995757997344897741802182210289452270196709755291015999687427069430425618025903212831054603279606729969966116604537699298493485561100487487047349808328249110805019552617432634721187414534005680843550072533979574188049138957568870325603797243441823278336623300010513017040930032568884524041380912089527008807863781737485479226339631340887529243458983719889561886978117259700480796074713987330115016430356974802518314841131616452338012445197630165669831555553251919748622918180695838376558691651021043843354432469690359546187625195377627493692265359267308207253036989808772904871246112148990778290234013260771230758027698498090572436892700378670859075290214759307848828298171854309614809949891819856689530386153651304497097716099718050138644800925342073190991618428796757140707738172495154931792032860996850247538754263758716206559159414426732192306294425461572094941496887121102120618255018735559491833732580576214912794725581564826083812577106024204097708072707421233770190784643483177899836143277786335928243388960187797042572542548049542664681398934006359114105455175674268235556420657496680869675439442102173618629699427444974124634361105198038476617904277304598304286316990765511603385845502602913543641251348309814399102407806289903074265317791716387585132205264808917536744557013421717194418246189542863387997013518080191130644237590117318537208955910680537826507354557448101712325320324542305059334587574294522071733759926557698476208815029052112082491118481505149719248470019642431352163844305633914824801814341062690822895281384031593378264511663660524931697879936121913097883197322368196833906110692150030959868066073699819329523342801493635311343473548171845131587093845023468588246591756954267585165964530695204809560600520057914896858949060591053122570235174136531040762575824097362264382714282823275149243381022790083163938957318544980598377463296549359133179608147827873145668942055069358322686964299241986828094669890906829346945366394102881850360396041208435617896773075478790764615259523952907788109077834185731734358284530209433743445874720236965693086745532602510269886717089651540842191578097617972387541028692625733521396074680550892478112247365233843651885099009891337378013346421092172797149723680450893114186124004145975913612157757913088833817365566833036848269494120993071783065399609090838417665437247497035011991727167837600128918114546089520009852860854678906225633262802879983465611291689359487036542788215475458063518058804152089101900674156281897714761640800139706451119508623602894806415629270229385081581304852292528703124325705594648992053116393350676875992317423604428555890754705138523098990700416362959072407175417019032393579012793161123153803033692090100131123648998285773848667839390869063081750794128736937073305907420309921869806923720493104806572790464174438986312456900829309557966763002827598246327173241719798800348643756831636512845537701725238278432353408021412322358497184151231761173256910880803531863132992597668899990288371904246514065520621735975199520164528043423903525515096518808623097940780398299611927372045199144742965146018334920053881234474527473668863233289904075813015706141399702404204203295318244240752062953624669904872095480721605601674006939391283676641314065578732945212523289055299290604548322104364021028873874484734097319150061543721612627598050281726243481811440425903376067139416017642909909784451454168551919840092385084706118353111927075608781530285110555148890057315939938028698604799090421728865030967804265304995938386458166362640601059285783637306526563915050349586639211114361351770522359036080946077001394310470356016596232220433247301268269669569883652549695139541757178302205657326877338815396115629803971543563574707527602278717011106676673724199770423389156563427943929037085481178191069962072432465395580725462823471954390993020961782543909577254712189936235972172485948354426231514099436729666939041411944262437835483221738900474456810502490928576133641856190945034719572172569803375346143613098872849189167758634567036427899306121123739854176079005227613533673976843012904232145492240411400485189741756132547795094285863532000625791885745011191417020141322901947566920091644226364385587520427876242626828891361079852559367461903317664525186874959340982611660340155249827662256826918655584331078265482373531745187210336406779398675886817613610210836315932342430145482937618575068326040863727096151906077671926009160400679116296225275267600545425467661464122766678396229454556751710985752379328878765625788565000705949475621766510001526987471424607169481379946235987111546079609193392793486469443747592408023259411532737644584560049502366088202215245255247349621185135705164960051786637833904290531941877153705240205786477922987695464703362980322900262241639860505745681568852429497775474237007318556872919293274422130867786932724741929680817294706885615935629303332103809411949686414593405524329844613255817713555846823793091164513722232318111554028640609878114756614487821817297889387034042705870010757684012082533249730592241630304441579932058936823055609355325534452164173107118154664499293366447975627010199025585343781697171900829829415495350738338897829137773599464439226176704503713007202121643566873610235177174593410248143279968022326316438616268681290952246543871100243473490730580355747135201522111009426308233428752504020323105238118433776301536176919020953872758732365702972030651315234674177074546873111928435224893030367316099308257566268182393783772982843853121743170529493045688213084503725298946115666781996093012624001946455527684808501312788247754596004916951615567973474155092008579683212855277598190212972318921820491835747449124134037333129727046820942678189211672800543376378807529919377374572733028703512281168755989011286813030765952804793220853083415346157931968550979564813884470615400478137205524536518715796800211020384353598248153964316335579887819175131541879400371004677748831625392559804057765230242014987805535871818293934521859935097311634740979364577798274231626760540606014271851268282169587338226340731108078835340878358194967951514901730844844139998573909410040199323605294805831076894548888610133514291759758840693543470578396191944822959778451525059494720863551314655017446379822225338416593404559503480839842618405028144576350187244573352662673751723276545972062519832381113808160306820509878389700196123220134075138375017335970447587744408394735264623599056411387825845535845779994916440801010295888603728613559991689802372979830450662485089840978925937010916578061289709720632538923879753371685695981374254736208309819224557324710343798744402899842827465308223421824465011224168470697414343223204566519791137822161436340607869005756016313145518503665420306211337814858313557939049815171346704391419275156276154215884928643277444322191213574198000108717246902093054184146624039147914337141580490542557462105506837616508673956924513433050217750131523923194273004582206764261129968932174432450142008830228112166090841830987764380072398557091018323068950097571723716043771640307341611282696042402995204207863142612400356836945760759248737485131889529652136934153466623214368069242628055668612564269200428143883678497616543867121854295794842605789877188200465732200718364741070433909356186076476124591344477026781781890676331689946745801206212764546446148892325555759973019257741218493678470366382193723962589108041552633303676481834037079173539546133823279900528494386863999303301544193216994309523005142376818725274175477389687679352601207070653773405789221800029300329238100013421384301445909505545160406559881213271868240524701614321901044213683023682902442786677076682538842935349954037076474754204525314823208679908529804774748832816430041765662530603110567317910922703262514327482912703129748424677146500563603646444705988684866785258167240102727238005083482511257486242753588201556631291849699435123398001380377500554203464584218265701196099396817992434060052001750073064211016851758593374854500267816083250759914545402040869416906663672672351760703842531322194028424971833513097775160408948016432561304030396625435788705325310702143462100770010974407951185668604118886153113197532791932273395031183866644100122372023675654759031127170646810082787541155982820127820753039047718021401674135747377441811590562338369225882625791005067918942655154421939937073165306495981270426437880557493568862796622840710761837276166012536412940337260964722608010019927487627424663657022946204455680524817487017018202417071073099363700040074144768237582625509480455308140678208269240509338862563178609404154734926175370085788501414835618776506443303970715332158198481914416380527100448257606842577891299551175659387690607544550776370231847943738444550877702060211015773078101169914646445148712067782037413653361479670827729367035583860784628017580750023303701494159968419292048818680418859022658378668090695619733143447815326465291765533119814886551970621493432197019287347477680107940950940573732656137235726258683337207031744349572482627958387954540978435968652712468564002030441762557849761393471823266045859167424833196972291570695187248903641976140529187739515263124004309019829119665876654991845736859743731189571067473616643440168444863272411959107488799949983410614497247706964174096494890144761051984516999907852287290990300634482849873376598019406338341849507969435797139814214674625466304711170244878561814983055521088435103926464782994746042130258172853187902484219170731287188087252355939792713616109518092049778134263718510525354203402130301387732460944944787312844034283841119775273714135459092174610553042425278551591915023110852153572922402455883895219185800002410631536296089956121360970069034837950739425054637557177600726956829410465382701904985625391767959694273559571442533653818284202536349342789751178651062002162091389692972656341097033255486030864467056118481065868537220082497079230009339627421519110359578868543837455376933763441207993539373690208053274973265110337293162320084574407888269877821277064282166830345441443190611782532422121046563031176494912281044748734729893736850141719655257521359377771124089490092236014632155323028962015431495798606681727360041901382156730765799731530235043830755938924432501150049490273622386393275237053420486052650371055348580461075026510154518867370377676446452888777009260373207711529266412616684354038802970384287354607318350360724354456656543147446300411428417512535232848691013310562516992157310050806605129880733952223157294040808054221775969616240105318372714269232911163079549550386016138901311550925845399089566663663027711747631216111383802168514740602932999982503637582312718106037410165981713978676074164449221398618937307894544854717312016339829265440218815334686403928280848587862250286586867149293936269196352349616565776626721449334319243459396652092562502592288181918358919076256406972227966680897372776055390427073292602575285425020982138187095334491975748545729776367279391601562123136140331465530331720083163292077179278831938408879162255728074241508023485291180019997629628453105615392452695531314519529459186590117542965200509357360105928290624056763886367703986350361922076972349094727668266074636205492930981975674518078934006561576343805210418142636054139865510503394842055137984745172115195640967189007560723517322961915553552367397680927233788498833278789633059157502597852080304142669962730828376026771146787895047905254528430085519011962423945999534350883346722540447190280849716430008258515598588594079179554249444286494050971202373577582847859196071951877794735226977170289923366092402478410611011483482483952763447299536255010252020689600762814942236010982369898397676141329426301539884716687520179513936277907735900603816953439395114667514367087842943628876057811588293623022616396778261514973195003285127691426137438203535459887160404183357014420917155881833437105139813588099504010433843560138168540311808711840574939067465668612624392063462970380064673802051198834576907794474003101898062091290510527339502222370427795569544649740327923771485012044223275976396304281032911392260229795237388200796730983821757638760234129026504558251720320658717093632840168106403827842902250893010253446041246951322335874805278590718085731486562941746211751794383310549083156610068304478076302724256897819959768289549285802593085360443329008870114562560497937314776879235503656392905370716782699857635020312712767128094688587200724555950171213899895633141748753776263536014020636838252770001869709266210734465941310039206835591519193901384358903788621642835014170751320198243576540973263842565142513565855258281742091462306226186899980389649840923046819605867120056891452924148643508884263409518308691824941159551452369111225204684589051478909436488223001491856212910999905818515256638131775419894945006364839442029439666166958444744366296882750413658955822508123410674120024103249357653394425999937822399712520367716522761229647410795871703073248954183999548055338497027870716089162444883338300696831626044955838250549996383200654716754505275806842769518605413039878369266181028536463586418032878017530605667471400816989568155008644205693128885367627609810113988368879444317193021931682822552704177870991424074421731858349697724366380367693702575264464050945825578990667301644407328999823430124964753602774063211840483278994355402751484181303774787802294333291899303403222310318621316001464338468489778358354251468816665884678697248669830936189107061919352076879148986989720780635400771993214352579971644015961224524984653747669081032075657864884090234840857772660138132295950091753149665504663813736669885925548559735837933979588823755573089317842422898314863639597540059635445494963315921362036570501163646879897397732151197409992755940515619127720581549826497454709581743628826954556626257443772258274503591403726229723561793288711810002404599790066587550147560618502963281150248290907749035045752071269680285402863594835209237241271718226213819540151239170556629700496276933411536981332740456920063953945837138511610742011978788726530858548940836586163943768194303840720420653072278578856648758290497003626674568298882592732827761538615053607847301948188835267888701392542747215335955001542277143938359225398184826591613486600469818940773435785214297436498739027164846220396673211606636620656281643735106899990475492565077240108478081814647698379048144135487550519154851262258534178229870503039276737171535084294495143493910244819752895833567459909354002006517602179277612344642600111966139683963828702736415897022432978393260479298378988816501709559716263942018065874346203735486508360483876619592954108468541906183720109305746215618603064554356420859052748073928669022453249529639676300710698556331533115604376815471715495214986651141889075027888916378141764600213546279590133980688061639887973203527855202259555361414117157146373719407151635880034631402663599691070705677231110813419580813931196036448344023765158992535657764516652908467928803228118123149420912709304677318631362651808986951889619049120222068482685539670626838505594291666466891634479588439539437928467482729502240841774787027931393935451406571134429640269350556568539888533572722852121456459342395006253861001360359979503890065544337248070440382534861145171334851881682737628174192386308548789023144202553336505894779325790178653735499110081195339316216507524709720215326168263629176653154666725512281639160916498010803365043851029688499432754065227663315921464459475183798950288135136960918351544118160998333948543545422540753572389726495227703937819195715017835492396262507848013585113999228286883488954627196944111836532398392965200281857337608683034789407198032183627517772597162957377987455265223779730428707554145421044678282151867874083546210707719702718656953274209135139934361108953042441668723216250542074984049137955587766482372350489664682421447938964997584918372113549387857967290149009757657739971995666875889090796655032818253613100356272077974809108667173572760196632781145028289249232873629277512904499411777414541746312242947613390912883934916314363525071339156481208140569860876131388700188659934258152546220109138343699757668564685521097013233658249953202875900248070545465504188500487910968341886288071988627107594731377824720912821177139540101491130513096205232157390783624565604356792010769028191207823725066148428399177540003732051879702024489809865633962470807085272439798773963620953251320800540024014349620789344902354155207567863118855877940455426340066107412266156212098532441893131604102026567040342897273173461721306444363533233434611460030612252991236172115620621674874439919979844746049059249329084138415440558024518709973602301827807539282538328596324933645068067534656489618648060157435371931993085339488001923615360195129137512390777685730108245374444978964980644038409414188307473505018520625951366262100503021668171087974451423673951518412112534749205642667670114883282107718245488672076320494306086533806445618452236565242742027116244705279641379611917859277421401023880342155999105706454658531980288650800923217163203523738087250107780615194003319846756471528942836145301600890136989780475505278535866449755849690972392064922211146654929946363254735295847257467483462717044767455640180121928497116326046697763648531331890298090082583637322285378919524633952410006063560426924628435803110422602958384903643069977434250973775127790853173820676957689885729034359482479904418043956048508697581650774904139634556102918884602195238560119732031050687925171468950504656897850993485261084730493881226096491970359683891020763439960562215235125451164956395743421133802567215585521025565778663383314828601210977356034001006904264652013440968151826546185771158952940048280597262445932041499510993150759661149819370990639557116629561446343743650337288929231575286088658510932267619252216754545995356209132746155466275751429423710611844056563116109716431931581637726580926957664101390056445744445423414950625149841692363607032139870083682314554979155203913448450748157393212951204918922420302286150749635080852363559965552046553402437151239055389673600273118348013072124626100400325076901762832986193347315021642041740782777482601443067924595265442320527110491675704630052072919531524764728989806251802860263982631005236856130181186809800958103179044139040465709990494821816550748371332842346774080558643037162155390575567191838810872613583772554835192181096867061221557574268958085231374242083282561678592550024575623784278555299453374195932310584076725409918559459522779331607010504970640980213436778029330505089504442706162656880926656839353592164324125886411964332752380577977797914555961638397181062975398423293891070342894692408461754782350452991418801621399475130503293022995470483655608800486938264045000891206502260113238629261805404107565012109702278442736333312022160121653082051844232228777120980353795297353724682621919072127854542984263155217417349293781426572139038970981813944125166239366624413340570576594197201926083478020660130871871576126578752749205619323332407300801287997784090423641540087976504923979726788753250651939150073621807231258567039967589990480811433877866738460587936811478115000260315063362466228894918215955906910617362216924578253070176231411418475773516370198610512755233373783632923842106226112803526681465937549938972302819755771768816556067007114129402331057484640605902309989578547456096358403075405597569969610637984206556278941429085879432247730544716758493871647715921680868110638495388546629478601577425586773620975011816109016410935126932610191929312727161334049179632447656793124589334908566117680248561968715397488723671602616327149680412076518853625175516646235232725029498829105429642012013465246481494604058422293204131429882376884903463609928736191244322923199498560726154131548218309628391380256034624150790051395270858129763254395526292383086488875529742101468855690458580624780602944268737980154109011328842760264400054149332014187816247300932169396974326934050568309715086431693011745788777538567184606712053778103455680340281776055921880130350643852009113014840331267331673485280120708778045669972318761403968123838088086003173225035609306039614066253686521423246711546832602933203505697853832041177337532161230067984835810743998465192757481561416953325876406583590321412737702500340643020562758529918867474323307611955138121556601190587062157485298727696073521583956859475181835816364377931496599842295849476276318375501716207368204556077821575441083801468437007859786815421247732653616168600874400007961392532987858333966188121777552938891980627178338413544329526001880948544134534677078485019121045321253141607540482532084428365397908085939979153518315014232316038010975724947853706609943151691207881666278744990407426455428216245287340354075714921237148824214818360398314244282661005146395087362719128920818714396870596701918499405384264865948326324900273936664095974425794653351888553792864619688164138663814036810386619484357467927583934233715890980614918112204247251784905722839827673008991700963978187036832482174919570484523444543475884442931092465669531199214337779404179535362174479072206715543336648313411257338788995192489234467128833187274878000397942919291254712247999204748279633060842922399046430003954968296337272046076975962950537843834099873421377960541004235382342098031743416979957894878312442246764139254544094133727688614094002048384099984368041818306990260167136781393514958037121115759899225461761578588702659557771303139073587567915518321099280212086018446945026536828227996897608976161127285053623388341776098692079411193189214920981886917698544437569282674292988835607683159657401799133663067113909275600242351782012902661057802581860539295502680535703592222258110909725921568399245901137442635610730118140783100021869564295712530755662713109109947317476111805618526044003845789398205124489558096175530084245223950155009583138029601242837576306498763336015770459071999397118838406034336142467120007083876590471683857194727216657044928530199563729498792853587753714310506121724482206070936914732638894538003559850426136582193609378319779762385141627792393544574996058729670778110724126123465651880465010152950379732862081382108511378753978903962350482342901802863344252252537706127085527761217193883006372934768116846744291526674812216129746069727033125835945373391923527424336148240005849981913333360677115758868586471163140321792932405499897782896850251387050327346219205059525434927978852130828643914157159406779217023968408047861592338828249138275907944474989761938406766393696835827244138281505963774819021296183315215724748252694883516063107173224659780659336577786602355249950287924424264530952190581497209252938280831872718891479228635173550951334087386459758864690980997972700972941857411869684465479762619207668328848642458542864874136158505088205640458652537852185637694353217519989155863712276035120049683908387209597263154813619304946482318500544534501566980594201064547151248606188890103567504947255710633346027087096945665302755276316420768031003926883998173245053634039653422961952249060313625099102460101377316978637249332330516101812316332906249799183028480385114619379953165684332157326481222755520850397423603947487965697214526628131524297047956123713889432698884486109749433788579825849447723723439608194266555744670810518948664980666219004913781712797446960947875859417735011542181208327551523770088419836230547932844533067476976308628690112542205679978172997679076753414888896976876576096290490116193481470448256995214840865039600075588506869671281672906716843944184239154841234148055446856857200397569443179590267187578159097621647758700413130765501396324401180823141867812334892445293002698062591305759770115037901560483937415340981933823359901237662833437884875308136549548645846163836983365954829451088344849174449931693993715686457304773138272369899163707277024958507690167703181702100442327564564769925887727007069624486810442952704375286673563138264568370474476832428466159635116514306877755921704988551174712334026590023356576253675920584538592138704060323584106394897658918908413229359224747386738214289536880710747122351856534050414572078695955125884844749264157021170288474462961656306178615818285612640730752246629628667323637647956322596732076444115208718711065323927413100273926903683132284911952485565671174100809383791571071480683261717529391431824998797362558629980994465416854317564712869952824101996354499131604617968452785630362103370333993134855008317098887722890462244213028951859318921600548395605984866952472122514131506538850687773779553285755548314896701367871853812008449428631845682821950686047154537022311281415684670127509459809916697645211756861427099155333659495222385856775905872525078367292875651831471365548847006017416276806561979786648276894844244134553978243493965187669845481550038231064274898036136153088936256841216037527467321018091860187368981922367421993559990539577355647707764996832105292834030123741904646300776587428495874567619797651939549086188975266238954214192281326598925710902521909103880322015276979815262787587151358806353305395106608495513819644347479742819497712836531375399283433362746903197453424297055656493183465485090854742707294124072354093138596336135174798888790083797278467520081152948736051944804344513544404473740588989905037217066061038350133113807780516048059876186102015434685317927563126062983871742626573469641006540865005297708547907755684568157706115423566324916300388469450604713692308741560935500527361206215358153183625298428246922500761451916571856756199667336424598968691550606007858280571322053455972896947828996931503845318912596906004576626302025351981762317441824842841988191814683970513205672945503037143973330670189672439128575287104894466228038975483290060160916217912369710490704768721629290706197604323076420780838941716955709543167566443711753764487492205641506795072422511231653432250046145024122254724904855557401748850875666120726768232784097999335759688696368356047890607833826402569523444170036190520098885312124172596856934098375200788887882524011679745147836592507755108529363820336147427538193239844552539289109345349051928281023329601713084462653667517783276564107774436106052059094387245703121093657796838089345835843554454919171531126281956665317890310025699697588787816322671395935519912276820376599329503355951711887408068868079188434773812331024580716249044030636814686653296150010982663490330922419685062063807936777789744406586626250663748047126176011424020741799001759182266955409931950223427290329957202840645901145389194254765510052557385589904845408673801353876814590196968744506610083589030800231152290131773458728733863854604215881615212232483181135789402030919878708469585433970787731138479305623397765696721081443051259384818916307282289181675492061830858631076300400943964316092441432161813397685235656841810562592875013075231287104830071158771356371680497443721697811191748064497316451943668924895331288940144261674014400344368481154580774571760184026722279082045633035059774399896147730887587124622420405002679452226852321455710659675869936972963304026953613301067102830341531871622239736685801732536433261149178255588771971652699511071522239515526873629537899416495219947484746886671024620971060640267341218356181695445003987863881569610459418152312502453187056021317615631862797756101428769802936672707419029748764819431149129665260893705640127521763799983030573413165525250172210627148961537844862640525535591895129421705476578623665149876123830588300710126163231021793227196948463979479583486944347379236731474354391196336322155011965319817067366512066529921445244131023708769897957986436760739739595590874719497567686779080925420287147665368565149028704731909596641135533740053859293325996072477460559652738619982891685224882130477224149482514513109234414976711046393234860794769556815122851346130923042770877296742045814682745891488313785891610498600811143809091957201881633001750554340361703763585703455035471952810247445560630032203369652895943152121493305032101018867832879304815056851470463642192893710165801800517385436240775769650345994371688452546628915916387668921264928067525612053540093676658217184315267924367451979391203210530076625716312884938634617946693297419955321927878527147256924110376380764188238035721371909380248648119348255314695960889085220317047611724737600718562122753560314264988068057831947506923082065637161999864745412995356103604627353448667511293883667919663930331099639280195402307029662225988043658016384648679632830571493325241172382537510485668098432408772166913347511767559086646085018729621791709539117574095127687915751150306673415967461454670135027963205698132051157369421343688588144431573969379899990089435418034492939664570659644908873395844968124527093925397105074433610733839743063944593465251413000938626510632590934598388578626220601403371158122584535275209190309236869324300904883353692995541456272387272602573793864292485703776703710093237566402580396752333442438547304449622464040824872649591707815978191265279135186119528272408735320241309393528065923656261508485658650704489894154821915864110349353807624175561754028042617772032191796192190418032280135578734285819042013138990725529673350724524081412185511333388149900337159624783209285094245995307701341316204898410692868263688305652776183736978021764179959656675023984017722133962318363059610395999537138483931580455628657357927731995787002937398100628293928413258668962998210039135941467246317199400134141479000869409350521626600363595242906258415925308514455315799914605915833900208728442312130890516087654541125790539063889517580396077769401357185146493876210409594517180371215951613973548662768798186277830590664322748798859282968792018357479047489562389733683106218362639891438967994943325809624921357995732224808657473758044129574869635807345537539997212099549969659141125004325078397907954008439434194570251343249883568247887324516384221477626465835806433927221050045884627325495760497176944766605641126673467222830171386550630582971124757210825786683410935527243827450454486290120979570851858313891184212360757905225896323026432164107081961071257358619721660479182915661457954325515089620639840945775030081611041284338220542008806536978162598743142852158945518098961762448800820781911892856231038532941612564518333750066166947329749279726457872777887145439898264451938555749098547395754899483662608164845277113578862438218182498882502595365331863634900782583322003121337058930796844121156967510214071170179238167002718626836210055444282477442921858912111490428061422328483989826188605368130888899187209357707448241908896432185309167889076527512407236607391821868865256821219447018600508410149177086632807980904905785997902852840519635020701657703843304431562557149382537776672671051145362193848518899044959767784131193939381027727210089918625593054881095397945945207100667986001426844793933275934544958991929369712295737239158176019331315072649093980497546248802454641431422800382394734401341904149725413277847534373750230053744776838206371217754888937353168614639870455652460629969499963887791518413242815772809609484448009846426487431972412367860817909321341037875583552041668664095800269670698934505699118264866547090376001435802635000032416981606622613955187751607466468250943957064903278981329339064022275488866950697768576439432303106055589873538509818638034717441063887669933369830816590551201337480889406681216385660934862744666900473787878773793473624920939363983378341616577701357258011406201897527302756126526689451396375195484238687736946845343187275832421229978867470239991794126124389413278198622685447539955117104060810276669522010063992598944622887579171179015666849897587801217926476822099209001959655055848234639271668716729624110778005058678154622260457388004255784764066061234271681315642598425939013546925294889155625904622765062172863906359293947779875027819173572855638355748396774540585148581447013840712826894045938724813295875823656706054903298522738241416609692067289549038763964834323649434708509618501808857198247152027150477447195966763339742726500502728317260250977865539486065987083920130813497636354092346207330776466622809078572719764155186105805670739818006791719678360158640338826538308608052410661570735777992665959227014344314978942935454301315396171619508868850358608433464719553952298463316801979328217375409253716731870080795175818766855759234083713726541591400925395433061080047254303024230175359684101377953010516787801836912184718645922926645214206434723262546674983061996797768573778163993432906771833888293937801398157816770421055092981156894022975216072651012476438131708957445423640617379628280400300788047515249887004353886779096093606624539879961156962934909981939150026368240480306439478643843511889955184985952752049580429843312691898407545879798922816070410209726491413762916109983832057426751494820361610475704129138476034541174951064933281828804353590334299262063453566526046524708111768048104353289611975960232059577219119749419236382546111836097724382652618751504264792975108637286248528637931670617240687677506668348462590086954992035341357618878503854071601535392262547861980092377248542297227796647369384636881150858911870315798317497858604050032720176340335225293173569776485851143082237951527311919722378868672967748713294023934402393938583955981271081961341971763273671080054770194650963636738200844280889230851403360113263488054992718352454717931361641614121799857621082019061008994763615439617926510511348604706648241068645889186537304546683440192024986809536634927688478429088606328376854713618269848230085620310349950253229458839252733933743654788205888482536961422929724019416962927881997647246846724328326796703722216065942589160635661249526032159245584328888492912678385275487849703261755095062365797276926645439930609191585725759610643007870163175822888664942369388913599034434622483069965605697426495901439952418283554819271240251941121632688623798214765514753129033626875204215891068663014502533092897192734331735682607269126491491808295291592311147071921185891316337801406622710292049124360299184928029645642593369561952098248957408412479294003646279722373182841987104307668212280240683790364155889752387216052793915537478487025374921347653820378232110846362644207820749839145138194992308004188234512061206543270164228710168571409193012920906392327924074390747177344760558289019704984613222064466302546361891673397314600502690872221920764609592292650818014074253567247347577494949967531957749424784618720473177263747550749316562318236325547860684033216750787538978378069013058645497166600661079442851990040021973610782320840961841230642132966903963647767908296428058079428170155078337987291933453291491430139840940755735784756459629153673923594386218873507785531679757792340787906024745982566890044054712797627134722740950685085346460702447488302090034892849944739066836778007250351912389109058307789420281886883826168484084808742591496733168131140802324863957282449431157058914859337474860871044374890485940243500890472459495386047207749231788700482691667681883062399743629917235399713633576141312594551138640942486694445758992443548299725324936195255663920980156074327986111350217033419956128452031433934679243497853967499649644415241191621321768182429527627309818773936164221547979353972964409121847993158962697302229494082307822249326814403023049078464340700623540094335607589968313515221992252001359064304914531950470428321076836908738076389240903908447248863159246276294772673050093308402081412112738900613788984970604143795255618680877364928957699586269833062116929762798385236639445131188408063437293590263990421190163807961270915101507920563893085648418856824419830503698440111185153453272328046828412012102949155514120887197855893951073664663257704178312144145524682103282500802338301726481874764394431746510151069187792770677065906284222692798001217970130700317956802210885148982514760369917826416038215573531104750068515365822252045566964646783051260852699608944872248243650833775348526435487561012891746164885439619543863526402644286234495323253651002275107108217232393381929952750343850526238684175799512558025622446676647372741671473517732439733504066198994675292884171940158796440933079023253772918507630870280103173269475809040103343194813866149130685600545052504375757942391199455191720637196742916418912314292362005781497007703989463410833629699906473986221043789172305914575591969996831516402426377492648706237609569024309764421121495916063776591304553157307961380738645172896158319605466365109101756650186604717515885204824601403601559049173604113050180648889614700512814696284499498186074559690310054670453013146096385576630984065918296881051109756960122179211594454835125934306892897031898107236126735362297893815599159553139736388765627198172814795276783770238704268740003534202317015483571630586228062007672389621008823558696522676989418002661805541061148981476826758773505457708898734987884153004413769753083966186106647238750164002572163667845025011746453610600256182405786479307867201281184890049830592204515922470293834884346523630441255089441720199457523497212422733310154178441373722854366569832617922507862578196086630342816376107952499722538447437556939894315519877216069775647781591764656186401919444314600747416874866133206464543165122881871872586745736991223270600768128727214194912424303884448853287704026978701709592940719665626612488054757121375956435252047299373878431587434739451496127704549549839744349593364791136769185952817598981918506136209577922211352816604094636574509337024197402039042130037063209895933336205699211874958891454753335848544457449575565064375325042466736851268689974581951945670176597973828508542616709310728611761837968239549149016211553468357569256113950193511506593989170697365364880266978018260803322047025651422496946362170319849979474428822610390819719532769069453044840574035817408333428858314659335327692579067270787942132038794413536450615809447890122629067144355157623021883670796740112978771494757501272126000411373131025896565795659177744879597340552833623130730634669201789782950739353804593242331779394667776293378360846125283106120760526018427442684729325799704116603525325267911113515460382206227311017469747210673944279487419149273946577266140111071683751494896857484670249409739950765016919930898392472555701003850980695982427402226145825652621348637156190910594656259439664894181473970956168676450363757602648692862495783904365591233101890776250305420815499153060578509247645372882981919627482749991747388837943082192799722941180493761651143623818690365763097698874744961452024066085442776166663893719708398276093503146848970094370275869697189610814396967324941118099596797066880770161825364203710049051227269850300894806450227256173602925418036468418393619137546202294416424753463152479788336616455793144558071530147445629030889709197045222903954410250563700892897367535390939874876557954267501040683491924970427901332590936825039801488781205195294017286779887210231643250178376830318263539836128812186219717412732363782569301069360485893767044634447388676083841742716941261332740931015974156416452122234081542117569298534862447431214180407284544836414229044220921962356388362196476047490377330897597050173607513525596240757184086876800804848262521715699736778721645629418030504518278261149509889279690570087582881212736757731558050177241527730881609735936864272611671211754568790528539141416085468262278783092815397446083134169811663827926023625488836212219067151376216108585641920486763013327296916892340415496988177094100098187292701468016212043513652027563377923939574376564014434569102591375435724320246631817863312392460013394697286158057205720686345777654225248312671752867373369394774522018845010229988024051019224059110959682948121404996055473250927855985447872063991302507325134576886199955537715925730475434635902131136781097262626086451990251294420751277177749993397073620130592537020233640701446232641272606229102099061585384325560220642790094478741457103803714206818632618932136173225615841410676965136936286321459578914449051556814332459252923904239816793090193929196779849642815617481784606259344338521115662288595114533724144993442615704645751808502404762193981429588138921349419662775028139378942609333223205703198059278733572711097930606360050738519844062428217845258376175050984836424792096942790124728357305079891768477102949566063773024606235056349805206674808644122926614308425621456155893588976735881588213629871196257596472306329602012669942962451006768336798098904276429015380469138497762800157221281655271093941056833029903642612340438823962141358208311262001188351305292619688470968326952702690496819860473987274609429385028488910441688550486367587814503566050207027410371988167761897326366018070399181820839437574409993077452592270240256673529550111059363107767996921796052590325080783759184988556426752825417910712512941713035755538908148506969652041144022749760269404530079759525253161905259175401693292877669423276033277723838414775664378188254055918837521668323918432092482755473579725097007610223268318643360387835014527933464389058956773959886164243152668425233835702494871178615519365035724216874042423150337270998028661014028021939617268456304542058500907163123362575774858043685905748714342710792309401252944291425449470433836158014332768415649748101813706424608902102186369207953916648652516567777441808728369310512928250175050725062368590225931044177025505687090633117241863658793357450607384903893393390120609893960505669634887817517210946628486649791986677031196515582512130607753186846320371368255356309546617656258563175162502478152549615436765459375843776676827173614842608677328395538945980423646416627011816771170895302550265653634000829371363544533849651043501338606906983414735352881662469534831407859571372862782836624257459783735457974495919666007106280811638843999153726553088447571230576605528455113428564414272266154805151856854531226420606948751935197284215206066433029210095755826298158284632396338078995361575823060008312003405053926216204573293099916701769016027430921556250884352614246750781464136648473637023290577607153495513195591913810488135709774413881337406464465423301442976844691596554772934250629672836443757854749398720582167836510838589382119360670272490223293718668091267591188475690579990579292015022896807691631545460452089432121043013452212601414107406627939164376278489936861883501504811531649191193610856282481031574622323311575633493326645918581130381503860978428468585584541419298860200450313917725222980749307736213479381024197353298111881760993622236980459836013724518480867396226667129289475061790638092601494016302779834622756662943994603295571831811891811942613969017714457427116383862072083353314589332916966828373297127427893057063559536370953947467023587409799820884707994212837219701847321488328394937135129419400892434406066421391598078271553713389852764780511778110896135288218609497144929573646527190988127717386014672265017774823715338340759048981139702306641280167136429183591467238261702312545809080801639485568779295837128437562517432158205110008237458480598847378490517452736604267611927605991793022546660387875058329442969671326259425256773629428986552524993073658631001731886110678264789275064309816350097850259442700206053420857440322074039915084215765366567874329074591005618009704185673551946644912534443675822818113200459838785004971774878032862693155710131894088412490211653524621165994593646712302196766416478453389668697558224569238497756152787004085696708135258310514542493764601832801696623079381660098399088754972927435539543101771573546865105108862005736714814949817470821373942259144121959270893037455980817869232927565737103309302416343127121404453358585582701953439173413008690741178297086356471723799659763472354864940573038025787710241786710060127407023985603124948130341068352812107047839370615131424016124943077717839733920218857638193452631911752013318655069924430894473020190721718625072967116022731467893650239677033337666144325365612526644981706331145136731020273879539603325623815544140967010359215624118774668896145184011964805406094072235490597506266048815209381341567781610282985753542230637499314384291478574742485427486414155917073419374474403991027201583808083503674642346402765467435747229455091015384925047166734991266433985157741062322682846631620820832416384889948314101946179338124181192091108101408120743870318339483962361280541956940194790768495529499290701930158104293410360561097600393113487933788147979697648793865635865745553786376067583804810605843117286001192672126187565780763147644347953208030099328291196802262959452319872578074038448830790536325287205844149931960435809348221204935046608022951029658459278669915948770210824110303886097840291793565427779763837176266434312237604187035061486106422703328854557515589828416343512790365811507699238013211808007992473746094082264130092372268412436950732247265884510470509255305435537452333750780004611290479051753568238438371212155555669831709819092192044287229267567721525115429448668873659197301177242210159836626837761757803016393592090301860052656784672893132778815044694786588482593099287494971452438409012435866848808593047104239158075382825331448906182953027938671054197568070288640637622775151669087053303595602474782768043611302884981931009034103587398895227907202595917158386563528853521799363547009919452195256797891938175239018415325773933324768927644661099441537199200184764196055159013601206771653413824782535523394872467053240961221897049696919702250867484540281268373988180333937766571501119727579197763840401687877947228736368048430435025320445582255143139862846537952972277491855645930272947989626860538912942544223965568994737665435533699168402266926475645421394526734762965128465803570839616863337592201929512741697338648555264022957635593892046683402435435041692471957939432970329686187081865362126861754757974478839292625953239264048676558707705924379880728289767695864180252942262203769498744764437312929733633514848382299054952150817237079137986189783371817226855271232678219523839206120762040102671845857773483818974870201274348847419870889967818734914737575459642024307625882217160131891381552239185389062695346209740026327548248746207862929340041996292499609951504025799277902540696158895545722562396155021077868421844266620341759418881561065173204142251778531393382777464760159761650915651861236213963330485395046049282955200211741433805725830272424272783323428240339666087617579674074936179939535111028126877681952598394141662511575498827227476431474544322543409202214127216324206980278904862154911085356627954289604871460682453923143854685263246086380487164264965689137054124286438332962959687861826169937772992495744550143014591843219126059786116905358315449045997412843667946909240900301252636806575971416751753349655771781256310960007595609858137633174688883018040822022500010573136824118361587158996780186974562907983927759639984272841048115999813559299910445956561314356869536557502715302623122045822236859770917026884981433036633846530581007783106636215660487419571496538725426210810332622839813603257414196386897683119828303205490422717925085392917647776760967606048356280660549378841367861462148259939993669235818966217862503707586222588284846042790374655623554418676757534995577312464155377708455952933450948956981258720855033847735803399401847315487468570720365808998522750756995132444339648505326216678167919004158717074780101917999907892799851689007467420624066128444218661416004378701296279706673789849824838906433428245325981589460882523325323487902726608787775563278199960326118416274482801246040199696933380224545019910555586482956549898812640768612890998548308280009788993982439467812477206276300383793818750144091404449840253207222163569072945876645138595171130374592245305124975059922587504524504705217208969173864099389337915845686730884501198600782408103248771594100134074975835430815644136365188280088075996646988490545334542399633111535327166421085238723929069534474850806102110187159610359695394932540945792358284368563891310160716095135295231892849476262446033368034731756951680317479685716588507173896357245994751524655237535426112395866275380421748190490464428770517868059586687313227696241142213605460082277433318535309736326954887882096436115503778882564224240486271265807956638206618983480084394401812924803271968021063709066029771775904514348585779031868912273905775404008496548098781561329590594684488474613201638745738034603016899187297094008892325695618368052746919161350415892032062395501479020585160856932029034530264817405029051053140103950055022062431910899344193131564030687395001219149593451171930337298015455684043375060702597316174581309665890196050124222328592511306976921871397933501786905138530018330544883082801530478758613568517141487519833320566072433175699535556306406873211317295550567643686982785814025184108251369208877595062352631680173241747535766594717437983710871837321999356759020071479384419297804457195482486470284241935167952668948828625405530511576506707173258314969286057211962579993864350417042317437179255812223714306156064440634354435869088931358119397656248415157440190530728038101441537629922192547924119043506175447372395500516689342920810941656115961772779297734751681550397985064750661287905206902954365783523825629243562865837327301214900457101140431295545693493932250429081170922658359779113236038792824495576112034638011141634080055483813243473233112471871118220660716088584868590270204741606209340205476104754830585086911747476251315660916079793599402830229325594456247938131795878076044555979672919848873208127805091307101110414238886576879679374916052421573577766353424829045348716115939300706715765417491585122787080860843869975008485388336897870446104811448600947822107151815710373734396022192443683784578460900529569575329799624618445799075621361342627089038034360519546204979589011305278742341908594489384767888626960131275652432915825327291437301053637767976209290478747254895467062728353168903911259880890381922846133372564171474889213847177585662170692739224384137384143461580040584854773779313410944969687662707314842569335443850725151606076313597190067613546324209781442190366993023056523788407085068189087195999352718104593539942776343124837331707658302107834808428291559911523535310259683183189756747633666752693931705972828903543339619195386193389235661136635130416136685410538714037823501022160005083889706125402506582382507167419482283553392885261391643537639054214018756457621330949644933302209258227182330030877412438619266144011282884389393353135312063426529551186634800927741016675780098203397079999692021305338774114808316612979022531318102160842280293662040869161168476546961472747627892258916507108350810298875013481934245331063259573159231936414729717702576499565335564123225597057906008216458163587543410253726612660373395438202963068664457182892764485494002873424256005462055153809824128079056088096128697910799421257199084936251264667378348544065110462470903015987793564085870569012083775142530982256673802580028325442180536398782944459516644068502137955926289362692318018486885924261744125454890944652512328121236221789887635089860915924592968749676566885086631710066180665278285938514622223345311813900483970013949674119959044069348408968550365743269338236371358895470560005049691367504914005199968347862597521072019202204957265774797661459774971045270678056361850648884707842605275777023165225054447371294222317127715044770641093063730900823285069628800344994178103671269516285757018403171492017803507348531102286536935067988858415786996277541263642640747383928764272408134299191370183630658621421810891670315350910718560449663354229334927782536861691070543664813962050330705148882748688776595671243512740308817741080529464568828750118104504567950406331287457937461772156547960075130045500933577608827892483952972938390357900049324849052733266305145779185774659638261983411719163626254598004591461673839150471125980450554811602674137555250275994625405272113182003720742488722447607053481958138617559337392938036974843345257287788178950174732081250921105384460903260726625278206760242967684504495036745417338211634766249883948630733916676226788816047891161320955402562565121329061075989152176206487826869865154897574330831695334829040074844048812431860619653637150040164737003421163580957009325036273216171317626319267504904337198361684413370319080012238665443318478816953019509427488975522853419158378624623560691428744287177161334521460967936780376611448716509061649388365018734237281569969458366036464934800414874807368589108792953702506435916667722590210371508492825969295087283955406735472015488481201793309964541294172928203230896605400243545421564378801829865345474663838666106028595971711033671857488055106651178013394778732736185284764332316032056947324811258955210309256912300605468412898391227577872573691030636286265433304172327183350182833942070203314787087976343458905954959276322317296150860450636402060471668418872973352957139600775980150943271669967103567748069437822170312784009682366936454221810611681130450842985297777419325891107929160384576122546518286215628477135741548273991756612018767942106211032778057560315436249155924656391354997379817846562963274853756546787269362097930089873143420637235886866243933041374419230600207745186105430147439139480568795206680701241979465801180817579058742733663964615711010656587602322062357617863161462653131564753271938553144982240560748710196608359247220401092533418671229300946647772506118582176351736903577863926089280355307555040802843711126019241267283465994757561983950950959798934522312823680357080286970913605851739022193028760765390794120083099207074249399675629540623285092992598561785337057832971558890704801208850521554571777237951086305976526315299655127672064527006747315476075443466527468692256568721213229728140699533904745413111144014798482521558256925392728224674410105631440921078523260043836128582623350151608626833123165228168177281862903782301689845071025881236547323106136178680219971449803474472321134807021533230002060090642801568736463423673803874192694757968044372188773990844505172676832860820569825058301064132516619050547964971677604399158974177452469185733238095225883582077811705550281949311598114087248604028353354255367410525076395144696135191758314909357167323103582157882750322248494028026893964080307562283368814961585018057510084310484375096539282042977331543929835354272000042020614379896649652990028225420893363731788780018912981383760442704283350644997301776424147568408586695530262006229551836789080518346635882772453674088674091965912181859822288882540346920155832495097994671657203943976303330924523884693011515222733469083747244488123306074356335880432798486778630658429348208034258873037183674588679930153133165766153263772665113678523717077196141235969831869036675581814867625112931990397172216074928450566200590954352831433273611956891107017962305314371501034695096408831658932642269354100274012366326713688324788881647960719826983435915154190753488603420143632801598584918373898973168305945351855854584186430476825111693663326488561623802760947465709693121468764408996666766825255505281264632985109004077724221868214005115821009778206424105946981001315492015498681670899470243603874782912568330268159048377123725892368699441937788659564950452222600904743297382617260785309333475258892081693982438152393671899798484637819870759734109359857212669587814433659057648099891707283762578929183400457785220757531013638315056777599876336771571435684759700810616522622597864027401807803231377919988422488221493071501217099706265380045123383534855138337925385086006122069239213595399203973053111938667727263866262493342853130532977743368478365396922294362424053915719216479499452590219760928490546175563945843796882228325717004897562213603775099963634950354524197793562991974858318689470471129729361340561242795182881759351302165050928431212689641405122935004200013975072603896409635882365920417248598927263214673130267706898856843787725963001463577271548642227559140673464209569292444613419186147028914801242236035069509656775393769668237064635166434053220786569787880768117483673238346609745893580403539385083548654683831072335568959399461257373222477246642183576019600216839519586938248920641390249513014319671389542874342729732595186634331913598915203064497245447680522477861258606598344981774449717490244350404650355448197908235272766034336096569177398866427134167535605102997589020670013835832835388900276704010385148572010627429557487150272438053244906705574870076852048848875415222097456177653188500200228413736469136765315587688886428535484257756229774538923861171058992994949370665440500529835360193369210851063537654026487460605147536593899999740806746773648848830342206031566930344400264904910483010350012370866533668306727796188273775700600482064584051059045892931087673724613311677490400788130914074477605496488393024998313796700281242125434033351754070478880252977152632861475452090779607613942444459914725399328042424078477046182403238771669793266997168719900644559474032552312465385397272705613844307993277774948966019086473151331040048652863773269116199795525322826590910192948911667956065162852402895844725286261376966294413972960640746531609863127283571773652285520846649700122078578556514110192818714314934329163213099000745838931253940316935215809354848534707877403857860213674471639688719243605809721477911957581188299068225027439410509028313706470601160815437667962403791976627276363875539974708787725501805087674527675807250782120417280872378268799359034971757610116068189001385494219901851900325086861767493464572298167345387797788488874689348397084768229241334553368222107270508225211506306457169490328784831766053983337382259841724391458245730282409569590884409680234813954729917556901580736433050026028208225498143374547845518078502217409154839144173079150747008127583687106326819353397241201486474564538992480563612860849723049331059338944878818730326470124737604388500982757633310239263312791221160711531622388691019910416240543523184344505128768844815328729161693554526192322520199984579891615068100894946756889911924591604647141843210388684026145795231545784851016019284197608235314802451759221259718280424446102230946015346771508963532909525522063673673974950042155924992122009877663537457334765177057963868146487520409595039408774261184182621101005971100633305876702444539420499707033530526676507352422141553611816778322230434579412511288017724163655958249483940058061417856581607803790008383765970612844173684080380871575106603991484475936019915648840775164598128708671332955214053975612878353396232892285440708969353968359036546881472838287146622875506860776161516096090208310316353289688615445474007094452091945650460718829980619493362951630781411500629355797192247597098684321615341751384682813046045156687325868023036743831522546811452713168945121297717441052309109526830977443177885022601648870003078786991478388876447982641634368113245917496536480144127678729444813189982404759966024519897819961698648122405510918414914886852255043330444182812191183585699023296695582606620944389386264927165248962946245811838849076403384780137948229324699245292131590765354664286969145474251411521580089867906804532462893259101959474232675341648167683279862284541876716979680699994317877495237366215533116957784737003116898509979126652644889696064779412344513655456396966127146208765617240284703622085228122192869803189465938141417499180981518560216070522388287381846003387992895246661199126802563658041115897289024585738028206745764686947254316409971775084488941876153252860160216621893251790893243617758391324186761475425905443882342772436824936853946159000109338018639900744450978329989903059309966490047486436361887595896750438594612072494970583230883341521261354292974682705764570237900067454500320102273594634639375452196498836240096538922247451171311475391495225108066640722047791099923718248382547564854942518253224573656104155640777449040960138199373863824046489896193755446156640560152316620490820876405756879063929897113514718859468738070718006774741344237611078825685021565256091515132336547693946280654898409694623034596862020118552066082230578733424584613485827764476002760631991806058163860205805499414072188718681091474080499941006011179124463423230963530352665003377852542044172574654921804312245594728337723866147429445986835745710634776923807558439494475210094034568856926693843422937567804677343403531473595007901039959545426464663675900222113681592229507798950642007372691226336122262671029720835864081748733473275157997700374157561437178598448378218483657317916257651990805271480099307496378087613392840093060572282044090194835627281577215844725132151795523643516725204778723760303208947180879751123122649495448841955578954180369435077080602587826260635985214790194370481515478283518788500137853774754612811750235406137249667325524638607285725469247568219749562717843362268447400501518617222207879151038326215408868872648696611749983693122098538901449174508275323471644299539502455155465431040064970294974587794501779122906196321135370623425939768364669111716510165357562601576205493936483642709461260507198240437560509760192088966270652037541876596583023653757187762980905524803418561351586288475019444389559742794112145192716613730233485361710771011371318265243573844730792105680676265980575959964953375927939137912464070835240664320960573045090408340075684221029359952266459568348981995418406387024912183845029945466390264375948844535139373788770743923683068374439638023043337823238298783033118369389703128635808607241454555813763527000004526497149176381182798833260243018430728606264137236733841337904283487152808553888447160045345115920617326023085271453195971974900705971886164718105928605433445313620116043951755144229310772487433351325492287739040616362393453297010029723466678142377350925038027068503685811104095968038675591377636703351135977207997090660615816582917197525382634720122264851708904322152079448299392918960799810314006025997422689194027743128226136403532517089453189214053629666644746830752978078524858422828133843218215152568138151787927793072391508955383097658143485250866030779005426925490701324778196354134381386085977373452412914760060622768048567485858434996585751041525660262808079854643938675258041610259713805314660288319539349853334799698733628773682165289855961994316322640166369569790722294939937958734501356108221021691176562099956791348569965911680894062545588402324985715575105426109130507259607796719461123485382578269481006463347253503651296233261883025834233871195026496417165001632492095945088810816020630382608973803175675861380537520412991379585174938800260838766717418794166164831865946067249253368050646497849229887691777357177336146904546890023733145633059313552584371920648795808901756739111077715118933233675769318420885507596413815559410962960370209485307177012687270789600740873851797208652210770185325015137179315999087445527099569485812623205534265050090040690099829881564990894595135610002175362913276353490105565131601491319435492565912952916010649781258569474294352817801601172096955740698085738678396471378108184353378325523683610480391554617273941634891207978772783648398827844652604766339796865149812348532350573755643773211471637771527341254676196152487018903765434758722085516981935382436392641838440867855890391136605116275959850370063894616618471019812130247791954555544828961056586005189154015252663920076727271662518528928943140212783233384842183724900529137969998543811717258575736781806114168195228360759275649052406999573506666725353179645874297983105385282887832841211124587479043497678732155045697987021346661944266978574799724400483665520922798709899025086601541064339406506784657274995704883243378552081570934222988325683633134249567479692675880906929432087324908582610163934419457116333915847419193301924184046186142692742138671421403732169241197422706953275976434872286653890134142759863656486146109864028066498853219122503797951352568711730703541754367968695628411444795970189816175754027059224520298617016490016724239186506910893244340364031243117594079501989856770861041681577651858119902001368589928815209418893212858839316579877298812347526037809326402715309252966397645754305229118579714054919867430771464200787043421286837376618781402341278570650679989743426732397143894361317964050910221922388030179829091625726634665332832344056151425903550930330811509906201824962823314329153780124558903794166504218573366779278560265092893830165470855222609072352632484677407577316565097060425142823191590574985470172747686039607045663850775242265856776878605626310522926424962544407826657556490909585443282414203624748964765514413164086368516140686993044599320603009243758989103415038214839024738905367950650512484328543990003989132409503025902726589409423871784903194715119807191471223016876972546530840561065039515083658487293890090322864424259625481396522638569683825072651022611627915403123637004959845022949631011415820902284121700294048967182226294086001696256609648881355543047141354733233359658144055581798281649439560162993880397892338100402234942020191123756113459481686227361803056472425839403519747013614780484664467028381828996805255953609692264011859744339841752426139764338976797167048067128738259131046097284664657115195742780055086091010943469186176392825069089861918261520027042695228419792410321796073155530708034258733062637828263999427887554483072476071157177575359455822985910709184125399833022567906340413016608512839064324603079336294427896738237092913046759743600244144314929466338245640315185648560503913854831813996412976289978313935261390677785896632799248112155825253278501791835075117592167778683060211335140125917142229010503691120187047259194262030441264760120389916920593363251135281467274231563428603854024417418123161490546381369987222130342340796573656513864120182056352680416646169323745678228942155097365510559967924979579402568377936190008678279215312242650129561887532895463025226624956321658214468920814985753334149265325131642846955312277973598472795294693517391894494136858596584144431903984926453841175226339460876448202777775798865511022088286274211178017335903918585918830945873871614878644841453040401001594115932995671983300904016861190072967502177218067395981167764735675239672335755420184258807576717862143621183559419856639190636049794314749893623209946419062866190153402119196039372267658073040181472808438875037886134453059248206492741940471912773570596272876434168967467365999632311464600831315213352782369403292020561880611735875579941423922300027557242566327862957590090309610413271116696049276311572466340517287963438105552673634232319841875198259158452872082048364774203618538732418840174552538031081726131453612333855998341386090695769734688253693700235579257089271693386610836159471063883511010674794280684348087901717455945295121566904400524916587473208147254810860163766490904724010352065686088451016677022382685053140934080729196193469048586134977671896694313896383204996894575224134181140078030464988361461557667875562019728351824453212266164158073385628448496460389356211881321393255831859963597865593839921704019480008444107682150914530422968702013559796080596506420404323378166557750616287808028585826106268814684945980908900227126543303553527780668715870203366092007501079419475923026202417084075670940865841798247164521541420535509776718072205053520546982791678726331320104649554150488295214012332791616593312890385192164434875485810812142658667825111411340203910205801338592028390216499434270048038522848711975356780193738885059185009368184449087743693044042602324383707297870056968540061472184559429928651721501656603517207400878322946607422609769015827750643540015286692974906261824454188453501974886022314305794947053807134523421662550551715945947688195517202110451543639563483382201754057130489730205048158461205708009692160757682486532297581865987177678498842622440408970137219294221658192465035871600463841103613003384999091143292640585821163484340018988908709839425154390514778623483256690229889629135794405739944756987177084202057831572271534358811727361057555119707359006534371314976660660018186513445178875582094934190985754435547574468024946563812116717090643285149225105204783112591864204235007869478297794712078199098438293092857942709347853064143642690707239379108145660056829104843177469154808165603483518693374409066163441617573605969562845155451806352219143590625419218116679766740566634899584939433749177283399187936677920128222426932641244506261427913494923897530057478250872797400989110032643080767406402173368814655628799138143514422686501693632988986713006498569321857943668228210958222496544080515259373895745015231731949425399635963219467329850510561125517869931462367245386522313270236311215772337402524379505353289174911372879759965239618049746409644034653527920568419400320490429133195908845394746332679180733888874315113012725389525357501565882789256092453656605681317332755195295636117465510358917232195816870008458354978044832077567572849285448986545354243400650537907641855161970441961911492697868000480108428289553617152163229289347095556902499540141547021846525188395170982367930652792695383495534036516748261255962362321608703964961421448242988629143399008620961599679066146388439362214329271225922044946047751871117034775115009565095888937263984815189723367439812106024119890144410481109865838317702817285459595860444913437543160899749399708613487422746065723718858864867443842835169437085775456558176351928099059548054453836645875720094595319917845948232603243849643213584883764292748698146816895556289368773697296742482953257451923550097446204401330350016929589276755685524542020817853684895812408373237991155776975139932582764293785629008913956400788119839214648852595113516588723777428929387855765021782029410519325281523725982038854246463487542895716343923065450045412614588841645389689649923427611015938668424432000302406544555780209255023853411632861853650009482666357588893190733154271973600352917217642859202685889364214948760310842563058661082760076377174057414193043435156424854973029332940765358671721272702215465725151137832800544371870544293239450000815974650740877937672948340555899745497682175087979860786966240184729674791330983693938191054668256833304667472562546418139840856150188769832745191947344746818178421296949198118183251244822643937517313056400758163095282686280735653249296894771413629536285136425644664219812506992398364939953362184953202950426502485166390684436772181158797240075154606814617759390228365050573849158045633506895807577852797488778098283586143879836776202497719943390149446676493774578145940958838142995001197275226813052932993595324276467631896260919645855732295694813727004455212091524441845957391161261637405866085827692326593531700450470891186065024275422670042016745490160193164584622520912916808371557031290657028897881991602353139661533976977739514715489467966675164627044771370096887500155750606092836936000800285934070298139594084932792893558341178370293137340428116723293234633744275098775159006956191500370114279962909008824467616600447293038030992850885706373744469305586434570801657490259554484521215053731368898677927367246562888951925151683970527132214657771064610440370153642379013993144321339793331367156679291546344271721228182874038980213589988488022822775333889419032003921748656845753819685050479535017824328620197468833475304026894489648127177706528270317450385112665725420332267197111208960186070420123354672223351988511039724894891314902023750234169425846417832861009798151109316383270598176425742846732085859498244584668823085258489235609335691962453345312416507317224727958621777841718178258085807213703044861710076780959563390946319077811075374241763027457422629710284365168186272376546861489366196365952837244671251667363496367647035619547306395019592166074268512462518052004184038789319950785195389390003413092996300689065152703750190599591894079233135655852862322287510686330767985333541686077598647638892023008576575832594439841666376829793437972473952071688388868504201141087178690041294481964525105496827606508149409950023244765553156976467861034854813129263098605340575643951469560467566164703041040685712262111333541435581549875191810665773595459532668305954941606294802456963697207994700400236144812047048199761612340312973713992232332897796165031671160375343444773725890694956347651462104148496150166044209025063001372628396396564545062714337243547950604091025940164218389378818865016955928894723805973569533555338084583061599048342912119395499311380309220887636644293936922452173523368986958135885119719187813332048984690048352139430588793246258906717463106012261072980803863209498184638860967643847233988254161482469279652740542158024289926118401790730027550253907882220161779243414120599595855920998120663999229153871105679989919317426528645373640620746618637941877831584569988218484791305287852313240680803102930198725217315093537679304575661589612081872180252976319112998594248506177721503317682715062527842932647684626512924217744719727221005247840129822776355978090479960851732429686840820788834314293397170951560938092564090426676013016275586494903443195297047172287293338515570870942699407861850173164441209027785824782229402907340748577779076934908032126597943701550462150310510088240525813237329696421206925634808651261332637552372997107557507706194656619593884005592214321089122097817816114819717532003702025775788583006545759975515232986771359850083394905759423801599609728304857641712648350728792016412275750363805219394327734921875253030825182646804724572162557035768903135178938507998669123472080471701010619754281074394348057949304145578076987914085885451276061151113232091682066987142791690901011365258062652909438569295482311041835985524032645811894964156033140323093872066476097771122916571750599646504410889362957794796961851094521696755244927386869514662487156183419496324647874976606748994442050668869297327999136366122895861849720606155199652517668114392246169496997564932199537332944480683710931245323185421759083052197018610498016042484751785691563742910305911401597922498946192963403495849909423876292878112199418286613870542962543265117782609534285344383229034910981656399272621251988916926028086153877289895607232551244212814697993194098397384179906075787331544245305695826489338263338480460813427918032207377820718590519822507395319454854745713995312645366069377098925781585793129249074752620596931217168016939060464029632442886059783040488862202612646701395607725792378228481446578830121640167845232025386702794680215075740435912885749815209955753003898571929637312787107914560667289579363504215708502144680679103679891045647236271630728117600271945682978502083935072074203922217553241796050536689738619076747846303555384371462408080422731049164218866245866767060688254266604553275125404900334882703157168409739934309573346947075240097142941709059160737509895399762654713314598119352654346147090796720673187039971300402771362876888993362470361624058138486705548176310509006661882505429852092530546335849266357819118708720680992658483846776942642388263146140710515007193972556798977560015436591329195605778530188442824886090191884734782869290420450577319556311921153789626612689789075391842589796642151014286371322030688950999027586197285529089780467771941033228445048614849161487182370581427655070792319604877187951361990281864733149817627715469093194649268862769656566276634460068366236646412183049839613075545681631332747187822343902938002641556410374060891430273604499481169865423379287877712765648835602880267545428577385980018846733886164941551391182706264538213605564504794242639872936224743590179722477357427563462181059113743360701892657341748761379853896624192981826999620818137409214877602666979556136610032409025887216693021606612690536314250578834984218902030689327833038391589023313100103460243355121291585572358183066458953086103053399497235785449709925041338530681962112663365440361417362530266730989133691911628671976714579407146958355810380171965617243343596930197830821260813072734225242583906775727840805952557319334676821516054852832125266391478129093866518922790685255415690136840300975878291952526003015433424357703616881524560124197464382203617117087094725610519950717687676958585904317177990292818718115838019080059222395159386908997278333853282001412392829685141252454756438861817637481586668578777157558529102381613793914967653477588502229769099398702213140484120551165468676262089694180179548144103516130580179703873645283956017654164628678328731179971603057658349723110544595389688975079586423373372433544615267886583459468544871378623638283711756737991739603303921714151970504730465945026551991839651922057134531681189416953506007552728211658796668406815739695716109457018810608231827818340508257012847631932513144147503720542957410773658412167661003890443187254992283079497814533618641245960543464990079607422244509255437472555024031001705632069959810210208567696180964178382702076198584986886413401222699103733519723771757139755770420951014591413750282833180787486055089069554609955646715560475646155785027144907547079050851098349826593799626566479128373010144281799946792638749286718326522898859282198472979142524368520315886420928216361748298001463850419640336837282986992090241329420701351809689676775504033993049522261483293738087449709532476256879440350878221867579449991891460846199181457016299906067880084985515964554045273334592185011477135470509304826741034537617808478674757748732875076691370452459987240130884880952512842809501777949915230200308304031035676337416781139250858349102166092888239084889067994000997308577793298623625877922867350997045663353262365653861914727270050401531185979081231897913501504603215161696396047556798493557497153352891119412586983511379692756025880911936310074879224055958165132537954082252835302657433129991838657139801355303869852258806726535692791779254344110592299333902913317637189271447604459288195474599090266793591371672142862345072311565500683704165302717876567239504129766843824123842534190207741517630945321859168509973461053707318244488479304830327106323605307961804896945800169343975152890145937461288179299117884334408539844078720512092366503249865438362165113768299132769814741817814718799241946712499418255579033407635123444858407624047769916838679830286802160132859282303902977148781346132248685707199830682559197994494689242914681208928728329556679925254130773929218161845378244945671989788835966680148681804044855921173446128350665257583625367025382910845300594850794072549911435420469218500677174597699297947189163452717094651388112353290798372666830425243220240577489813954317688916204736384721390972298488599690836707105656658616469545354868286913184742256373531032999450642627210614370433162418366735935831653813971969001579356911096645999661691171519711883250339848706634047972583029046317229724205578421029702794366728178999972052851976916290585602835576932152956929825730274818302905822662521755311915239584958343949876038501909637245430798479841928358220582552412153652449309925522328049256065149730054215958760290816130651841749693038798687968233570210225033243773991030828503215951847626131987970465343689756065935221563564932470754493567981230776053712778344774149357054940843555302887363185809491282773954941647184196945959604970008994478896610159614534099838136968484590474348215767349356832322108920977677549354085111179801492035389601013248996182795175772039663691088388958368202071822205386092667692996081730026323618745245526096051798929019147168247492974078318726045163679740978545449671184885976082784286989578942275097534213776465715926603671902471232334031165617048210459229637908796367490977985356267168331882389634069501598485580446274338395043198221130515524328388975671634855548770069638730267453845268226508044335539914451148363134002525918916988093528737152523477149963514815116122754228210557758373624572547713097615244384215816274835410469820545148854478521633899320053006634699761077832715354085756438816167361444204539244983452364332456927451567255186661764187047735932834792549250930718730208987107536849148424118140027360106450383597335609208046314384991302583040367251439650424165195666724729333814672510575919807801733934529698047545218626452671599415766610560030554152255243671375115388513153474091780776935493322603371239757017834690909777799701386550774762813834169958525798204209718047055778904915326660610431028433701777012509799276851645178052101297863056813825251976537116898105855314671083447770469250449469425414524607526010020196196005101440495368257647633464767700649776575028603585502609982524469445266767027783059457477727579613823309397534838742552958316600422861508329975543894607574513274958033990272226604603593130944244437383741625556620358481983126535126044437605569428855203815499107922810176883664609524836542179685287692318074158453110333018679142398592704185681513096401060551994098933424419691649233109231739190405685826649119051402420244502965800822835684457086260296712203508398749021996719659025676643883216932940003030783810339745406285393049623547881970292579260222135459706053409104732031826161084068990469055140460429330408670894927310201916001724509654609689054640821476136182306405695005807257530159346243399296838770747591562641932346142655341421904579900079613830889901655299610566820675861115075705363713428061598298853179632146309940170263687402109254328458194583654144006751953947810281156030884565848309554906423778089655456955620182480105758210776118987353496962980867333721138725842934716754917534783471638436793539613602956046948863456348714109349432058619029897097881497822865663673586035198640176390141534586417565096929374122138698405162100536356689646372516861041147731041167152193644275756410582356042403217195186632597732595770961681809404071385652719137900293474110466275587089475009406825292131512757016897174491426201311694291704597730050669540233961270892404138422877985449306225693644172984403554190071138276463040165565658684053469262064236326015883117497243984081122878583919861964517983678892705593201145793256585970055644161582247736809624450814514143764904897022527705356445305081428481939523308251760314499019825544858915814219419832918066733923939468019078748588828947360736870113697939078444568492209732089172359975624773797068716343671800962323590311293434907303613163283109353514523088141540561731435645517114327936996863177358096118310498337549526396740270874268573691968692273818054841038096844791610867920879834615663800773288258524747836282884896018172771166692378951943531330241843579344666511765240394890404843271103246417846557673252450537640197947986386804808598465948420262852450936386055960711242708121264249860658957227733571232678916218806969515143161368526090474331087407202814516051946156091448891100335362594090496208868737548057271240042737184572525924481077806500376546662037607440896901461296410218117070545126533701405305312440123619123584948693067834584898346193305949531919174823851717334280963335668216958500840776760851996039687413849698126756318876216171118324876280307888424562180996388013178933703813817875386004810233574863941817643466555801062178237423137414981848106471751661216157026442713149909140511509253259080013693488841026179798514744903102540499537530023472254056269109561357229449234203744566099938759210394530093231952933730302531628568784697968306008259437175878956280393947607715814098791582988715756519653831294525306576667595781854430663276684262789740487698346834882454216542599664392197726409627195008821523520803170382657779729804238701844979215093759958042295408978470565314947515542760185336407022784153377938803086400185260154305838587480077522521669662735689670910696555766322200205976459657523275590524537775831717837123178078206478864285531248534760319063059122558458397036584250366948825872521844274588031666441792477424287226210250478724835027027834036258356502092763594707953270707981236930744320367473138559361779745866726589833065127619385756716725738232892722315395491491837870434829140171425286943616343083823710760516410079454944939941206796749647010335150191566444416180285676951670396006587903633810711275563977239408200101705853164926487976239484571410078633877265599030232308213653731626796629704582386320310480401327982079224424779596739670698434485888126454687114379304713238144485108615362645170488129284847138650945838615236616850713145301708327082558584130127421761609680356567824322173887941294301059918030695892525275655197875599532967930813117796734611072324526032571561919874324317242456500313734515916380854240480650706273344552967517180903212794114102198165274826390016381947888703345367206919760777567615793152120247053025478985541110319605012271479879599331914705453989191488999090056752017380155047847613664249827004092735197896926914194916501564519825584922035214934478542898624727717729785010195092722609773649421971967732852308109928966977437343774684004585826354017189573565747646856116276338532043972411616800529152354469524764711768659694177630225686700049524799997683979236140918951357496422376096584340432296141152269049332720259326392905839694814354385919946220488614359709063798230327500606588197397033519982786971487888014585497671057576363164106830625063517435597093741926462364743183430339688090068941678753348079350499120532248412598646857682681379441877174407860360135229536057647738341665254068919253138325702226641707723846447160508859388542718391336000428562345616002816700183164934453977316769067671681618170737992238641907390623024826446968646830553951764835972080502693833922841909964402163441244993248103931647164586891833767403723592001315432076098140646262800127230239411249005685051756886141214405710404607641594853249017536139608032208255070854147392590125179205083217859119182361243475017148267001414724028099584843827447033662029561123216679687905522833638394653160518271066676741803909787721670899731128106315378274917699848408250573020383758134786151020033599903923106733320852541911048621079280269252130188047491476476931828024807333762900304931378413475131004452588567042583336548298643731882895031032867719854875058682101553790206695921305013031422549972584279388522652785672912021967002860536519582836714344722719296994331016183578492054427881893991396748748555577009711561112259015874802167775188606387084064294189580421692394535541920985331111374086621073951751325356186517108402226604600058343277250913006514572192929934373682785313403350070126682699759310794380313680962181834410518816386834971938018095387067707226428605034455721236341881809411612242341947709367870449904360817249994345017641719248918019994703814214716700245004495441550306701238702133744565209670562999765029751913381062446779435115063292978061596100624390183974303619170267554716934434976316564956836553697189880734480876717817872524129513402919007654153320199797772416987868899273376230968299620181967776126298511210169076450375580972317826790808586971647707297530501677478756536139914395012065031111205835705521171829125861533702574252481985632098777529111769452479516046225466136768529063584209810240534096813577441221299931303232277139235677528128059389823063272069593567298014860858781267000777136521123333274819946526390430541837599263773551957847048874068099344260293206660807963930269607283134168627121597269574380984730110580716712484380971480361203264143958421016493625309131804658047269188832525446492744984695651674330028859205175640096272631460044475383113200883312021749369562562372550511659301299431215037960437819691146414653299675777547604250764467660521846691708239668466779162830848277203302400151759551916936155765513609473324604701591206002745055795018883250390585821126737867353480639480507289048346834930130929770709836917057444518080897499406353826848961412545973726067304635864983626632390536449574588144449525540028053262388331996017747545300291723264231652791297191494064783519895508445229664721055941922329630087104789796710641368877936941607342356050377375971457515319152341171851332934474365157529847259963488336999865566985225553214612719897800866289512793966212849126802374357665098534226942405375709103567185510461539085221230170336228957527658734658338555916803663387593018155837722078448479529804181413557397200688958184012964446976908450195788266881104039857128334368777381629299072844492844318491582831643798411944717788178184128660814132788826676281545569014790592724400785714505119932166593206350378156838570486965540770109828257301028321417760621391727408535350861736940506445905681536919498683534002725644415236980879943014786989984405010726524404692660355098997211368305864685018187844129799245691344472227457815355363826665303546847762225198107996292325775093648112020493719252191188227119307834577954436621806929452687868520971086748407328530391123466802740708044706374741725893289705432305146528388028790237990106665292580761576634606708696832867018319004809970146815942511358829595726218749631162785838446786478622975381559271646518222457057666749644770927965361427292504855745436037651033013353268366012486494119015221820347974588912881450481436594745568561227217277282506079997433702864435330185540838616250073692415745144756170441976860116271319645436791622092159144776406500041635897918427135907855367617938120675847216960100191218731087786504537370878579434495603441457042241349926906766082591683099349520011315253018905902021346935163498007139267488464252127662145011207764424377083645176572760252459411051123884754025087801212311386569962257899533859015183068289575544114677927408702951090231670076295634468051360794702364843685279538800234325833640701502848024346113415962721958311136266918748641041227128759996538074573117144450445324025588006811880559704075598277881668069554688848640852252249579653644240282167481103735778316035504540516435712976156672381455110151522461809948630612265431992736277137368368602216714237373977614505796308112263017605926157456148544148064581342541936875777511798905650773024328804476634252898125913343562062787059093402809049656990333397815410216926200504760629776216394648414983889567542569920327318609495714145469523899349510010825606744137071997808116044736103330710263474423516061829723445639616577817723195114955035849423871727163211223201449230107158749258029284934949391874569359276139343028969854622884468844876111929942690144833990348166965605043118212652450750546956029423551911532340595800032691235563996039560579183410377185165205363583357557748865436439083996897468436861764022450397590803967107591643000052868454067781702697163683902504809142963748780222248540446819630726246258228920373890147514054064844928180403425140274117626174293814622308385591968845788305870374122485095758597869065599743366597356041393667902657513853457222111585570021639913145261558853138690772766647254871928662080965759984673552474341607699948064911169793227017576233153835826085130091166502491162047222055078684846158180423297372223644415447349537666924132962824017593808050317382669339979061309586594350412612154601760082247758498329207555722425728227217723929572556105629294728858433461564741726499446778354785053357673122247322962045373714192530088491570481547892704696096669246178071160644998549226760517605316832720425237305399328162621338270372724711376683481265054374042799702601088498302005106040491214114466652830333822029855458413548490678622884346902316924766138393441215196851528618629817679814993579269461883943143462417327027911693488407910675121930277636357239064234392238140315506181742524742112634095537481300533348064247945657210070483192786781899811661805172653229528039649773660245982202724137752541234222751174807654692924610048387784020310169868531726416970043725126783811680791511602374146084660071109737095007115467912039297078732939508445812579137933684182430112609894015988821076064574672354433114916510640796093911643454112876563312833384496907901139694701731984785439869294739820855136155579887446378724836412797372666013555701203263243286616007106437230894994132017161491069703532045605550466272058860195062833894095709047292724034229249906869034873405911485176913095769205910833295545679109362327825467562078683047831191559464965314432211284437625337892737653612271046823972401460973643026969748394353877137274194062484777065113552976420668069520319962404605612006428250516060859083082722951025423182193780347995797064724576759562856921654860856385907347640813486877928703827653788240482523707124058317897793030706556590681915598998352636190777167803007886887896226917877622747684082222369059425596559636294811909504330422133715166314487903062100449075784584382612454953394567750343048018064097164900902514978591280950127296089550474117166281785680414741755681689523092339633393387997987038662559430015627755676111621960557324762305483391101944726739044754323710249578385822067709462274049870206590561027540927366944926965102169023041640999044520248405293200933117438554869658583274581705899861844775048319177226176944778118486296537939432551915055434717847206775261560020594141022902087592440735118489707241135427051342746826206644788458273824029501729711940544432148090789755197527312172284879202194256077651465008431051239349693455621118301792233961829279103164643392461685226313302174060395815874418820825108195625118446748851516093855119565482617973272615563250330097791419469479035174759863359322958693124225122752155393705955681045350780473752477152196908619452557860665222375821700220336128804520739598727152625030902202279586145423761244543803944320762040467556542886853484172410608078460555924250775594507596191110957145136199172474077297112390353396036105276148940255898591165260544713276739502395883041137298613681408607983372158509754586264481893073412492721278618972130453482164179433513443635477812618020173766427903557465288957985856261775701539210916707604912717897406024099421348357210419580263459427273708665256343893264389276619418650431606716667427531505435897979083799449516467513011374782959240150140569890940545180502282620105615720871345753765965748596251092642273231449531959446092811995192311693832006670215904247373472368584780906007607903229185576549806438868850635134639645137084923583675902951181280292009369213760320818147200846197746093713980831621032709002177356318827182698001224781672209652240494964308036234665086315775882142191187380892076574788998050993428645620116220044282742958864634033794019588761727959542721559733826247125855817027584614315340102564295372394281329084170160457179667770296137601931645326543755236713992865713329423650327869811989817892008364551357945223080146259883369549898279286867360444241759248275315443961970503287096154813970106555359836314437433971463096878404831111490873094862310309947204638735897979460185876799283642568161844696393653546138937088172550647450696555345027767257037525178286952716358175129200159078033101668228565023615086654656663036002797750094956060989550977546143307553298201000833315559300126595032007310163128340720674680580722766763418271967350845049560524937378518601515031044851894595727194351526251048528161536687598351730496961576694141523522416343001913425010249944383226678677736071257220974184132118421287002844994043250587748388882785494398736932186618696248746528339268667021235148282342289962718492942223742047070519862701443324107615599806558093330798122615564989709968001964004019795092896797573319625958168175100959449833187065640429127208704351181493999156891973346334503529742255076447439999321067412854088670054446457664351458453347476293195043846505133786155242941154187949110616343197555680373199416526770436947234132523308929867199147985128076973781842072381393180627605895954808088502411688543929520354233137852992889813230220597937498494055792175593388349731128148186274494429179826708121215550178248147991057324784240553822044620258725063986277909415995184316851713166478798705731806767432417454517039092420991840772477371508181820783383269499110356330889112994008832173264661207255759927347625920322945288745014725358768033991835955729541637302721437997026297812018972149655992109191773249058263256140431042522626933038631061527391573957073675244306670134116329966019178196951458660183664877554714830874902334620990967451523194752361404387028735566097418899451905975475141331393996457842288778517456446464695266873173991620416035149123436953781826524391845586265888260385877169660849165747896197715689443483592033996820924980871834531213142625006482457921533221327201421166906066343964775658027549413553150621563735451816176078116346208608298864162376302252114987825827562335417877703413100945572080289243368109417931048488630436780081986442535653978141906959583101192253883084745493565747195486255869452003229785596551791387796118864788044099688022986211277726156381686833150792124115392269913474613679696941102984368915520908272021416830848677468224147041616139362024252375401176541114838830519147219257174204852667740233602824522502003502813779985331194120716819308805315898627795697376408732458948307318287948009451673352554559017331103079179590123822435543540876404256560685034992390366509474360937327118267511096562998626533086328794325699116065790590528413288951380866708666223277917432969983067628030520324707013164749781696123228162452515501423355929646728756881134093923712685856323161185978478240151801731803513076424234009262513336570416826114483487374866378276447658294284291773231525507230429726730905021643151621828966752091420038373860271281278389630700184284506359671355009613915084853847440566770506253027020265047785652321362028118265727714870117945003925758172166086393069785412039362792110637684734226472079039005962793023988765348307744324975395562126821595526375372268658304820187463454876821543566850251306196641092624203867900343665712410478062975443790557001857808416592503969494856687241154543050117646288814416419142625600214783891823865802783029225755919264009291604681284982040655427855219293520040787040833616184352973509981911909568293694067644918415669585895013936440240413395632145450540034748369297869443258585007790745616399594725562578634726752443181920850002677751968884237878988863921824828857643107395832945676679404628788679393998346150856402239269618356809111648722112168487849400712466820690824760609297909337999793245461162272657640311648404591279230280200664052938882460180572313304290611971036794288301840190375290437291515538318502363915720044794114210599757714835818784728868580335123850107303526705191353186984943666080013605161022803689766763615581325678498042882715945468620825197498531076985859076679380133083483992932199329600181334234982972768723606794686239396518185551817878794789899905229845707400583777007464477656814673154911257667904440295719505919274075494256526623769799757522055310633377967079158696200323075936931653554133788134665393484412863285163423399381091541582533688627030005905162984182302485816115699014146439436943409209838532892559516949353690827392108238556788165977110874730264948881908122679353914452277059756687379076646205893156904364716993168221823187594531781431778306847172275318551708579607799387265406287527435797029418212100514524993694010644738419431488389173697765864761689703093771948506014540055893242388894118729325959851613255839836573222319133732991888216240003073618280761847711191701823675328060685867951044565789409474150194292275905716529556698846547563307344139899535009047016047415397275740445121998386472188294956380256619198707232923698496777596919748625603472303054690417243792497015036954429482972687349638692245941399717376261654998691161573020668659414086244360589396914406030931612815698614782343901815278693011908018019806509279904349278523384196168319708562927754610454603777543811607508788655852783058131836051783583523507723076919744780660012116176158183077530346409867670433298450575715505571260433023015031663196472351198819246092233654085297124434609098981752114439232785219256967125365595268511549638295847603736611107501661532286555331693430613203176397579583007366181638504307031125609849237239558446892986447401364298386516646725196266890799920759150067005618645663004326335586580794832420905842149225596180864384821836537583458960877366759851043669237754297732178944288232389425677482081434050944218445474673534704294958814991553325104976992703446266535204099404464057923720182868072687767035508886576308369591793691941927445940573421579069805821591003213840637938202138386463859448634475918525743323073635569852936046662670170408963543398799661804303213670445726891646911622082640647870264592417021229002313223807464552713979737622895240175175666431762011583176105971749818460422969962150184247827018755256783725960887402398638784507140023547425839814604459392665337958857160167022473455304987285122065133687505013249663771565757118961196161172821711482093596898913921488049005416942469541238039379626938311014064848540419300608892013385356892407498551141719374377017817961528057659870051518250208757069936907402273102974507619051716467543300319926502292386804877250326659197214646470135268117403788944461020458282468088170121016572100239499968524200617277051247035972266060198597157475081168428042197767160877893325189126994906407758825497434014539580976613716405746143619503699346328772303862673149906430336433650180003090148306740610992791025232304605579758334285167293201726138910239372741507036476798253531681652361411680011832648887177941884664970549430807156130700871695652082848969506604578798482221423772430986551068032382804226864322581050910002857458544757245557624360253577770377029848681625632968905763084380694154657470060962853018337151532719245497599231943491999984518462897860129549267992987497977115352489639724153510028619387550690270971980400028268546341410508548203372314754205030979796342093706863367397987430320788157524218876331609453972377652657932693859341646599054870192781992242942833722437929430476917147826479534877647407706528009700307913428317570525668959911911680227962978737468073556271251213997323471029484828544118455027979613807538978783889987839205344686635224292666910606136046205556870677455715759013014799093512213012015175679468686162539510107485061543547810473035310098523006579703902597391340990984687090211382337401816565575725847815416465426944197769465858064830898482331294348959784375478557114224518147152648998741266863948370665427174687291770228936234467218561408871670991473740610796799088180461927087059433435189437811304744551552545517269752762721625330771120571812868370547034548377179140290610827706675415694571923470398542674252556372055247378048385285127109098813610388622721684113491539043511589294514963627360942065377035437951018424823816849538232445652513053814363302030364955447493094567582780964797051075245434493496360385827955229610622901732002594204233168268840389610388852896719962997914252216506580257469703933834950607759841605046440650455316955278014536046241542392168045011271523687221032462872347531540034559132208688535395926652751248145615186049339698140787484843433332883342811258764688249420673172483457665593329906274371853416024351577164650312587907664203938138092148760611023396597849779812374573191001610849835581164321293152191944039493418486911955203203947413145240558617162446655853640395900964586003074488746052395470428176494811755427213481220230872022731840216845127293163947267956595445571920872800225805681345774119853308907484120584307388454606824566312629124632492765175616320872466587602579223331762106728791918609081720100536235561833487821385625423705986217543383144835161546943071363214985975504064085871722090651157748896010924681633867404316203852818362573604552068009487406732608002972574042779303903750218225287962174749924449462918357213668334210488413039041732164362165145386769960673538262382103222296479936999667293399841562870259267712462875910140192754315952128150043006434245175568044547342076156767730991814820772475778843768562542606868406380520593232116762082757762019152607785867566456731947399701695846650455962247588907168145297097521469017664193650944575815657993189440469059941442757830165802450759953890668951597972699160752002373784229236583498943246560279907662188774911652616067847930595857305646654982619773304740077966131754361304107269840044602422573782992644860663040258298408522065844206049485024155145955977590480307866006897399224503213281503935496525880726007295885238976333997690821772712297510354173020263751347771997689315095306580792872780385128984794857803362005848692410205534276340301939408160711079683950345172277833069673790405926973667594542527057304324495394257954611105773267578503451880176459259427107639411835320346881517562471284065627612915379223669549006390957266333439902703725220370527494167485975252711642569456616188992278878279237507177062899564060677402879256306675434019972681486473135215908553306011655785856218579835598514318549165257946277111295364162679019089027474073061346173351255209830571889632567194349191573064989590590869466080622264227134457430787437380814132628704095945300519588172661071248692404552219451701413508819442318502931370021541666230634836999712866860278258671615884669478942143512075364186046309112355955346893655715377816101019545010951683864250642553255643102051442357403006327548377472992882560381972680391672980878801272637174318281495826153486130551152993751118686941714588448371616619992495537566216327128835271197799324458292482145983183801215676751387773848377645432132939796921953306915650503397830611245136068336586629319785709523026916592399345624193061868143683797109504400936102762191426127438709789661877324203709799842387787435104642660402774597640178853851445705388875148692331903086409327776288699678469187611733908294378969899751695023948359473939060137466219985185012175559487893748130861714400076081572778664882126807672587282990290239010545649843447495058470997409065530828182383313216452351288043683781268310663537103865396790613173548440855551293533323841814363927201385659874732951060450952783947243315928886535765749265247558709280221630337471361278907698950354073600499250551751555085301887693245091013596703210884031405325622851876975548930918416334731007223654873498256827516370417122918996189143791716550064893594180302581198467112912926497272699184292039074916026794770057834233948970858057475817875797003205562224290969402865761811941272016675535182123990756990793557981827761666082512142314198941703375570678770945871269513260906550089265053133808916226680036696214593658650756365745133997781109341142342263083977222521905245334089884000887852944066503891022375153149177779144886250499553355791139426462183641760129443894406084216178740377303516461356993434862775114587588885290695110450912313789404673793100566487478203745456317269552240920172952367446069908434920695173860962966195041110857808984012598810216947738780142140346654530620501119361659638617288550547306183975889771332707268405301830888375919483108539649185658235590228178963909621743216357175875829273659977737779644343018728484134819139109478228388805389998494260726688562757911901765364777021895497692935994718683161461135391941565428520842784431337984517805187275544827836081858720129534043146112210081421696874857363071518703050968256020670549689149371505062972085491021466900298357206567644984706429794535159683003696130928606998618929350807894990189465609737327806218598095241132204604703448260087429668749019082510103350191864298750207009241082281150785791216765625751982439078362213987682867111632895722430067167816856862954103332300508425409802786927240381342429734391559722662906543540362010482317915079588761579579885384277985528688861766564560177729788795032574330198952752803976801881280441138287918462592837413803699969738750562347138648061897380268966933972311660746191652273530364595747897135795250002480351672665466178879346519799325081038795868634112171233684582949579038457197197737979749861762917566907283994329478021718660749427089524689899811426368284647653150793255487938715527450692537956673766724632342127187688686467567373203276588590500264401611471884527716741123181016160321521690371964635833781215966053825214109763472232144070383207415070246295768605202117987114030053289798315140309376795969425364911189267504470791415232140666233157255313597758714458942464263355742936545380623007453136301641007442627298248951862003577762999449569657536242807390975528322780989436780854644513753658523834649387950140874330158952404549687705556735071001420621593262617715238994018825187329630409756512053297014986645609735038886742440482736360838991250491348223334216658878546891779443089377359635297283438915180588179121150329294659263687028386540663058669212754355079357841180028102177558832765776624828683995820093611530023516188926859006158588103913154479721265503789624156527414753781604853044479359820453187533858553942950033219869415629815740056149436328742943724569393965453911419900955279784626651315870047585235056726999520752352664148319926528134081750992737235214691391926893890286414805209389900572614717024922897103333171681804011920253174763321349585524058964541356604070465566906881247803810498674755645288841460805189683401109334440184746546487413536765722129268019457921692331758372809564002256078143509307576378148780826159237934479313251116140171197933565940546762332818128992921958059708949868579637432457986008195955514661399115175664963936247407899594904728114266570689573091413496717738256532791748611825443731542013959399380264992375196180052496810524967449773909596420135957925168698463505668348016141168680868802346899304066738457826521117969890195004982731845480761962862283444274217015998462670117555358790148151144270757999075340327612167794424644292384577553794408332940904472048591750291380545320894990052231662523159586483908951939774182338696362664807462250869993699845977969517909975468044371584294196887853687672334110244809534603619487139295065829371478240075628461074051264266893695911194694344339358325319688775457101048954276910803886237489766113746712357568949750401564042982654024919043193717389402861606770069734451957313168562895828381907809048415693615081838723989988645712430123958514736014080545951584655265233508130451266038678567988135222242394767868424838290613917058992863060175795101834901073400478871732221812388452921839160879096403003605589988655530123810595073709079706683662585947798567301928164812470988486963755706501494995875431452434481139019066658478417255594574425939562270637058599201789374490301695582594118341496543297158144451334871560328423134948459084009994683885256263137079401138226189418634852138689799298692512461074899835377231980588916804900579804288487310866064489070151876215741234274429750914249243765444938439675945345021714932387097216941165202441566782934092488850038166302962275048139409479524281179018958939146761384118247383245609366920206958657115967633822676114294472196528631422057185012398479891958362158695044324878185520606362509611787507826488531979134671979703013115485881093541444955102480081251592909089132153503758270193075290932658280911457943335641035557173703818990634141608738960611005905036851220443774735344470586753318129150016793250074220053191879377717039710045772379528325319333602536908849659634828404542749938613435500692175793040097135493510061479224637521453376366052212150345168562427008702457786209287237384685558968445755334108015202764596407005645570146347778093401532875965779737223570277902538913763689888506143983660081187566413904302263195184199708072786978899311059810420108797189509137784117039929553476610335187106759344098090231095941302353569594674010674523310426562956380177580563927714929890345906894389170603546919372082042188254084064785142425996849349885519824639282161200619390106183602923678461510491305501307963495551893637576117837008856703131299468492038947191144348313184320688351814545249782311062190449774219694804426935186085226437400189155715428131424110724428174737578139115026847070368356252358546434275751987960763381510710202660282050681188845471256676622151985609764778982397450715007418169300574683729991706742679622165246102188459733066559175432013271776072371022175458923629153313334888509144731447202802695226271364322658849896340160719078243906610482870915034185948959299778263379406097376297562837966738275784716951225214180579939395224556360826182446816381565069146864024399093196053120182994595472610030388116737095217106937105523230185206659647997869443935649116739786335618683850258527418567399522286658591575574225092818879668984009756686495040456302255006439558213870893245493475763743361147656535248563526596126598599005100326299485904958585706469029375291847902338925460172191384636838053762905934011357691349893620695365538247862315865558475235014421581364202453081629917940852868078759812307411447979956483342434882642558697873905637442322338075984332046214691598379838344654283395283529715343636221166421222078736996025517583529312504074591261897013903644923726972153679022876541120141096984209669931595303177961865083404359265217944577081885647094827637964355953586913774150339281112991903165542891241887608698526357014110843208259833088656189660646813876273144199289971173823352348392677737161152944920438811886069015581333923077774668581225456386236536666135106534265955603105211305514679936656348397240099564280375553089652686663337893482270104238665169359635302637201304876289815183304580157626013630992224141960441745011070398253070072832077457817083557270790656718640178927651074954910069151816404567560944023759141512678492809141386906442633723293767384920940656718539491264937308050545792048895518177664418076154075126656095932446014892754493736993521951299682097808902411080377731934767323446312370833854247466969528976471264215064863118683165303516936762831266380828418859809586562001897065681481800275746422805790400539016910519283149676825765694470283126547296938786494323111233173984104301774670609740222757246861007584601331767610235922638014102805950916146743047413680543879055807179925816369672422545336562794174637903349046633123032989669905202971802736793928860908641879886548012127087712194267832161326012032764088845073172039613470627569309090151022982224622475416807139154817334499874146785931335838749184979650153804914663594331546624634779475987549388764045321885927587766274014976704304571393163411313225535620251534895281351628141141509406895872137683035845935863422969678426050525621043060486153840382960004974269863948342211999532223242983553469271831724206149352901401957861187956814192169647627935056386728630790590346752293964674033954739588726475516143244612084179666322760178329785037098131337765582023473660580607111553631067308953922902424116617543756134727869467240333157446559104297503194935183676569975039978482347352132839140839733489482126667074377439045790527355622508251348561822036384115253708347269944412815330917489907931230508037063223991035330154908993791722878758370530524536023931393102728555758046798455098937169303790586779483948768686781088108469369453335461258334465675530692472718086806471938705801275586415377940319896609422089449442464317832430730984112843589347283304148267132214419642713041672906855009106050391566676901169203481947466315653032590736503661183960333129956554133928078564030181770089815951471290447239087668396780610309295143058254160279331678223675673538780222085826360400949296605576960508223760981693795085854172679924847924130967993347299965415101745065725294186743408511230145190313694158358703065785777865260893337667259725263699065935071888185175828310431034301208488076999311020501897847521174068366169796126809968247448874040446819501283908442388858140216450520592715307650494962194329859175038189667520841672189739549164025578482734103738275035040140721694305993263486330968595244878054590719949499829502733566528147440998043858109886932509036774327082366677167153835685314821577000990569052983944054431550391805761546338898720168018695761810000335242670736162402275676870731076264613390677637042378945949726278631515853570670128740550750325625886711035890946700804612423596801759541162627723947182693932632605003918941689739993683496168056187066505222922877816651104943530108699597695027534457490366307271654444612901587636926005314426571254579013256821547118466991591731569806650651104936784253776397222785369141263628970290129376529048998596276323691596578773697766438840807228951987592291520646085300082631659739617468589926760948574711937546383952264905772106414312207246096367640289938595349825039350355234045528031147224734015996114787764437398350365498577540477987374563409132206863630843976284210770258499537571765690383185168825725807621463778664248952771009003754789322468059310234226331116916470557424897255782420145871928081932810681874807962464303594817884119307260050320240240267762367189674801073836066566288167307016795963070143953438624639402500897769517908752104168866236855144223410875114998516303434644161655016580530444364659337195415245679292743622529855583586976950031344398120405089447990375598426406450023236470368595361295763681029971087820823079688171046845096866516485521659828077853837650458972861523791141864456543855543662811294068573248394322337679759133721271456136550185851126028061428188155765041715263293279904451937271284242975332254075428274457731218699382982101324208609111086878930253146439103511838464800003271133943626021918405366788340197846954612266185791941940188696925254346045041432160670934742887856951085581372878883573688395511686754681186534485784080026399843325937541679223119404382500409515715435118105103500068755242335769945080342092128749556210450330534535786429924196344075806748433473478746628884312753947527996718981000339188803409534539741249808497041943975368269267927002082133055327642134055739654922636550151430653335126257966830825273095081978393843175171213282053933844690776496730010556563892407614924775659728972911816276838944800349300394506949187200882109889443636329926916352387260188363735671111967400264255298048871295109141076383774889757695540813527852188542308317970126661668207613620473208537343073932512446377183996466682463826145003801327242273789303368150531836541470388697375911558221996915870985721280976451396221749421406709086585977555111686164019292852570534993127010936766083971569147513762798920503246725187879809623901253566619281962598462629134900291939021096902406182277201490713643281928908684026708623458494496782255027922851229785561694026403787501442736756843513009133809106759543081311903997485731143025660517260567803723689808114398342141789466447736241491753708851305271263527554516462067285148191344784937164835340851536573226993808603125414406482819268336199844775419812205671218578303906104315798760955856650589968286288203375245497450196235223926437172538649284712174535188681783707963064795740196135205682874962403676135111043649731196521304922406812645249909107988322452769665900074160803457935471249563921995772484278871730666632857385745127559646212194495384034790572131115964960208308630860887702539239018465976789409677645836681097610038542568611260383029866424890089514703300182083401538396819846132381065261564482206832332670304042535849891815758163914946865911974916475740962902673722851935398978275621608380618450703174641194137574074045818239894202045225188085164878885137640683715847244465734579965184683947072058334688662122281495310055929634794380518756308547256991395459666168121811278418993104740174805730506388572321763547131302097161696544988159532076694864742859606049588405879631879931291926916302126319901108121789100306011153707033390304242924778776067932623717663190049624777788086575982024534250205026390247700419366342186820164509178923957692736609943075099269003797980179585605774636991617601151337164422979175053217219699806464274089266331746573723823169007456923909066642420388117193166766659929359957604429195772937940609238281060907875055122829447685238313168613653268951475522820695727897959752062914129704085943847565322293227260340144030501450184364667853972584692461544424944754323670613747695491192446526060441591206714115147936488255907954034222051773611550648145422361280300437013650447202039774880775600534112722433868510149513001535684924106539146977821391734776434083800822848319376354782117768142967396728283752327710230259690628627279150765634192214172295252655002632120096219761187630670667749737450500991161340634805745026297272250009839740546977387809619029171089674918380280105544744881025630591062371592572301610888124321046415557576039510026926939759248585977042522479043384197344570356125611763744957484910671990666325707223142279010289838610620717113223796824844215904968359913197062229269039538226302877583453094426311519534047307487539994118849920813356390200612036927025576372494017579395074191100928173705936751192053224791233158971972158682616510035657784758248570936842250747695578572662111818543620435052189728031138319351631270993982381358769687840387828790343120783309693636243148096799818511155586046160348557744157742147075872475308103437211357823637818718389531887524546586949870071334622444496693245110404986918683620096122185395257735388180505622344731944840115670733642749059881147673023750705592025454673001738586613612838576961461762196282349784832618627609542712354963566765828283147058471041348948287235459483991653646849963951187450357982929694302037825955033319339822492470696858047128671621843541544873974571827391741064213795631156660086813879927368355001330821743659715682687545098174204958242937772837225385369534094132497798285850121179023500729322206492070730397407400227813211694274578039709849403103565979363226984833722643256452972112136860264493238603788319107940903844024555643965021132408346158170881447788664948665113635255516365173180760796692820249564690359133441552425505040084928190599925989784509803714825993664930885251937050503805190647938160719523787480668916585290755099303181983343734644668865414505797238445890986239350853729156802277720233869377694052085300765398228927265395824188404371830376477756036085795309418447175043290722666071915274972471426184866805351514060993203706580348677287330158222874182168326746113516543100847073989541826036548002556833101012250680201080142110614093542337669191916805185104390458050220327951955047742366662149662990729104452516916645645936782168110036020540978692984819018701369247498184720521965896368585024966019301892820184231300906666276932340982755873866548537083859145758397248908934794600436026981793757097004405101710599783942331993991877263783805712244286062809284361504398829385524108021237213735535018827420552445623684646217928837541997268902941831620343831263575892960638943591216982294482921614460886604049782368161650516675319675545500157512855368424649800788179739878598273110519267841585810843090478139838615497066740010851230595010889801148562578949049912941961504666220825049967434067260335432902064380299994324030076133642296511803134951932437126688889383761184081433084244814120728746343219480560052665088848914630205664678239961872985491647192607335108609265287787171013784229295997991728521742273501946210821099375387979741765593930428144513083037552208626416898178658854912893955504518616924217764245322599174459274338271709176367033280320793248885263514156640396646110316821183062881832225981617302438514426766685999217248011578486445780201996519997675628729438988320496477759941105283444879767186195347742257703382892429378191553080728017650344080402066336805914409722953996515327023251167129711190650589045353591104289761280855695654970209745062958313897827336032919104209664332480425071890363241871434800111690992530262590206827283626980818472592445811734282496996381715899209754696028252138859928040944792916245852046653419565643407227176641564466411502428184455157170692890470315588457002630822926723501237607763213940564503504042904228171415294062139316637087419339393085794721267942605795658490156134495418144643286551140865654019751435989931049263732893920520874419685615953059410330406654547884069658910600112068876421966953953794928443835187496224238393064558004278271230712574458785441266493445663722371836982192182070288912049160127160684400137175872175784439027272061677058042432937329223411657977803902107585673692575593782540189978289226789059949879920522795134115953690421950735215500745753011967221882452145868600354547851267050818700821064128738375737574225841368308067483458819909235362564158369139265150041175536028368899022337364143960993290545375684637235347282251677101552784780195739052569983246473386879994488595295900847977865086641879320474105258709148072180178628576019764970451079740211229624341997552269993444181866280328469540550993592282343287691900314301184736905474916156596747525297432182211756077668050662426490911993675495345918854914264167590956714947218787646897994700667272391225725818298966423573545338842694652345460975929899181512583637172011915967277552385225378929851492373906429251050533064146751075325196285721566095847496707014944419658152583271414840004919564742842983179228533176051770954875523799612731498335594361357631041467823795512645194642083075204214350645862051092124411377981202945830751825654456763330638293915371402764551474537000100616904276724602537533699090107985609595103381691333439443305824722691419283443195144257611175693957567701982672265457486223770698672710556462681648354078199224068448581026785145323622765855304489199412082427285712714555941127581770552342777867399899589658000881782016255382768723210170330055139234699392418345819181397191230467715879543437115099141212977432683908215465552112749004326168649113398535089536220453532847668848019568724556328950248608738078192768620993824651094385532690417242375590535316736100997560355425274376900663070480915019729627394470949916263813860183248641561772028848877852802788677094306021405635415777860107330032133023410230177549409297606975803101973753687083735501730512266540338010104244038531999948114580041392139804174166377307636915058966116267037529487427605035105552911496749048717819955242757250035921507663746694140696222177674608282591518107418141851452778047987419218253011138901449001417373402425797029529338200376225945874734839050652363649737948033303255627249678386328241505070169206424074380352887160822635719538935123070376290789075220203299157860206623296552100336279371841275838629471889729878284052598663125375692415565868068776126771530310478263775479906956189114554713739781755809487343646559267779059281707842431058327065955062955136304414534040699464517670197320180515911772761203781815101513502827403975468349546689321585388039471335383732915528600612497445682705034111261132064542647569726807232148169884690724129427708624275890660747571273180310507057919009875345670094383925589190670888109244935950654862949407001850859015889580933117944963470331032441073949084836904153083218813134625815837023167040982876723419651305561953561589248713791470337296678363596487211166549953544367139847240868526324170866515744453651084220423091311354368164616544843881142579597888482814268974025006006095104879401406510738780570439674096892056767652049043402589296786111251596261250051840656785769955270443367959785312370821202500543011948532802023540180959168054851853866109363060017305860484457293910087826943469439751843344855618192773943924400714430127177631201466760599004628969942650491158744909039725241595596231401553367649450185276487437231310888049858600839915707225698901782106158661705173881299869011458391337504385936141362056090807326305160953339260514101327284461443682545177942786942776458120722488619321066046311909891599309656191372202119622626808013319822621450759175457072801357302144301897361072954750578896208236996057858905726025924803920538960991062003141505041282040857274556305655963476086916688721658443191600545562685629412428880737260229949964858597859673461781855546779907628340828428051984920637127451130331416182050337348006705564231916027757143576891381272973641294824142814805696133112309433507991125050081219717059442687008192802024900955811048335563737964297216074175102324411292434178551962186408777394515233216679023714905446263594917564109785272575802089994727183614612225928515244775915628398274996405057752051447327486404216555817469476378925525811375270812639376089463832447668210742349375891783042476617920365130931653634019431184429824405339443316329804892571399513860246458822551896217047956207288231721177331364380705320337380235778327193819903847830953136432895989259940671749840869263041901426017631917896171066451025917873332355973111081044128035577663529015109909754765319322890315827964478303942027771929263523677052352206173732927049598058866714056450163806307932809924991857772905469262451327521099326568875028808144754296244961137781780161232722518829373587352020764289693784866115262601086984499709546773509283023465932118092053985911751939764497522300580347553841738022090087953212148308256743270267658307183158281555007583250189508416597975982361837764651674699521810776555192103391620394212186093020986045761375169959915377648369308795229451845720726500166036662942299983441401322563428702858660093130227985792014007172748418511471114168991366822361258376891360348894136295136375467865023366423739721102794056579071202669676630747295716445613086854629875508173747182442492178025607160078420527824841078261623054745481025045552315007336053543632100330119627910699610535443428639004027177114224362786732761844693768981706833062050851199886126593092533459877134970477873919060169119782164793430932302659767499917394901902341059497303317006782207594989062133524450952468559987070975004425307286918132846314836387513511563981863489569831389084633936296721155593285428430299448222030194119153852150871204180489801655695848628303202941634627740737119029924977933884876340305396208358448396499464942478439403847197183392993957098510501356404843185834971346784852076219829526306588648614671312290558028011411184849835641288829784414330936296292736749494591769382900965814423307902996712040717984931831606207302601209584940622882057057076762426301132585046643142226177285734508078637556849505764619597663334974716635012440567700308783480000883336163318384221463785740104494383358448993291784264626249500407288589077514451902854186104011483534794904381206036789398272467362690456082361976575018610031577482119586412449991458801055708703312523254870839981201493191671181473268235460396527198203573355867257122233201110329197668201646066208551443763340316129683612956724728862149067295065850780496135254483255779676821988287520470206218492960127442990666985065037546153238234636432743081611460857356531471796794357258933254831279669920374186774774375873436837291158866968961400452639592454740689796456350600205383820310375400229516485385472484959167076567987652828423184695692327611524219760924058853738186249046576640551812763543380935240397218593874648960726867631003801927211473438292193623330765591263526991334398387080273758667427426465885713813258956709304372531291443688838052223650260570941081265014271018256223953724375799466745156604349249131745984724836390726288350606944298514630406319704483432337281528579384285369786311239817486329719256551086364714784936893202831411306386615319869924223627184793788669371138454396378699665715280161429588273160620270616418269597265228557506734610373612776089481270787207574440402495930342793344867786928347787897844854169825110126375282864608975448017308694561929222953587243482966018529278131887911028974482387055890233935308036028195195619615022348431045391951258766631514235130549280780248071690817818862046725989281144980622545509628173037279994595678355816608293994159434049526419676680220416512748200853376236939455253498817433787780772936419518027963836716743808571761840019094378609406073528943110003238706117309383037545781670922629001685465077769447570539653293611577388921926930825006583090700615875407209649931065117806694825154801541427798394333073586503656694819443341361582583995652061879713321938581044970877337401042884740492583812940363202429121677037092036351485240956345510298272862184913464094660928080284037780184030174392821562339347842840782694449892181387167318140148529936127036720197282486673730673586991622145090119535540370325737839570107153565796287230045219414562212662671105855765166769850732232993999676813239094156534704997428901242363055216793666992052143464837476365638984015693395598020000634386325885465057807537613058173166837311584438385818650923727496924127064825187607172824806993979569681776500941078551697705599733668615289310211871635093475444665481334254494942910339028802892744601460911757832307157204096805028490159654101195579213599262903908316137640811573390854064267282166500997104682933845565521518012158924686029673751377751174657126515881603834455415857932607830998271819105031399625614434841495609761763906559564337709542054796509917826026505639102450354066837256668938859318438119414058036453698119702329380334848488374110713075153027979113381115527940203771592104308530879176557814334351574587185077124786688592203493051965488595832115675248698885042154050953712788153442654923153641203668155304028296819713876605933186632327983166586792927952128073614521557350596741486917880249441414125340891741686550267903775754904669171568153782096710632315180713633366368291521410821397516410202890255743193153638924342308798343278501243102854846434412923482066255091246938822507759690730731069578630909289967573264681697511606686145209397602155507162857440937316021119775244059442731753009635244416575052053768528967566841457877914966832337332881713313864553682569692030398846229080856552431822093640441407483257062711442710850933219933684702292652632131393277553541894766374021524623475673635997144056139108358133689325049048276016593683527139250611984976686643185596157287685826362208134791422373449100112493642810690223208348628614546010808060827438090681156918036648162190498153603172619465218801881563603287534464927964852127920929018801885715594703070253516677400776823724787640921409103183071716768762060164399430221799003375215664096332954520256710578583305611341194453735710124671831333674804345786079093476563225073875250408145077004979977366651521827961752272148881342649559347857712550725241988270382903538999257491238367080171571288233420902910225444378543845584173744538602443700450260641467519232648980197220624216669324937632810486625189878206072248681992253489214444972352082916049880486841578844953488340576737584089222015113382260390146026000236482232929054974028793962452031235510816320367441949792639123750134905454917690310904472777744109234929751431939365572299888442156304436181366421853278195332392968820394498859603076088082118542950060711672888430085640801103248622183866033580462004409805434960782233899194854020245427621481758247094105383442769173919013244433061065270728308962758862238630446810829051798404955428299078035843958101335847611282863865549756397570080190647139084253523743340529771300389062499319543565494034726991099508034986893736530873230346864707943901145330956821429257583950547071365852498345225163830824931027980043999281326212443221115839780715210044698534240394635971142578646742008749073350628398816399014416199973165444637400045575724697608404367395613920140647861077522061925545180848525322354866876666954505363611153414598966333400940190188397523304235297474179182209660392098290253016766741775718784755166605239822547591182964773750712742630044058471148741757521687669649785752095173967678184761852615487704957916273443418646513161955809197251434718764742760443624302455000822190541822304428133088091355468537234006819116859713686968789642769752934924228908959415379696105487358963990392461659187644018682917897684829525425471466499572341435665908736693473051163092698828635623297843331298360142994876662116493821209991641694455747852024583482109832043668813962187155911083010376315239426532134299747147917053628729785244476939817411233764157622342450474093973995993280401616498972553771788801976871628359393529795361506523271735785226716092053602123673260179990002012469551018737956133973474389107403244764502711280998505962465188564280463978141484913126974609911466287396298750085041565644531975280212337955596530248028932022058061293016163628290302018591285137435901421186474559597730360347795547510457606512376653032037422715801187683995376616506471973974596942034959387167487776999650066572704152938815282849528799782410954770260852684983208242398313449395842260734308462092437414065333425115579269360591921349074996426925638620387988352717246912826903317485624902351905824528866338515687908291317805580394277473614514149293475418000515636026664032083458779388574703453733234181339672362691209808525379496136284180788718950304087276754071724941352516588608241870443491407078499683078132647168468756169196010711168169361475471195931508689763033056737043729054557350523301170231192833200467499115068047596681680358082257128028882591505807064950187876864116915888842511438706532449628656628789857369982705845186094171383702393456829263306115890725108510116086828011175535723915445499434466042304996687511321193746203637677139625753279980251326046400076534602288827029169989266616203560246744772369940523440180677902153927207470088838461062092781094184774933187562716971407318793418177442436006087180019050899010980870989473539300864866012181815871603888064367560877389800620616925930807912512155696982579439913070351997272601335012701401366985366037500024272271513967771415724792315529653295931616755785919474469951820837573381295607462245577017670760016547827447179629630840714109421807630018571283913480923585062821463957048441218833649741420834468943623622162882567745685150984855926823799690185716803021177517421231859352771483095290147079008985008458710291659223299165312554995240132803360834718459491173613550771874839275587961587459871730455804331138106762755397128742947615800478071811542926626690029650954262356543207967040655701059154508467752471061936973016206387001185838616247907303969921500887192544254402614733776197667564812887476277459383110053345484545516739674740336441893486260811832382332549583350986882719716814263503163008224455889320129940534425022572300330753715475270205039414025016740829724948615026164359007572518982971415185751174590455196316396591228092122987487770434434071382055632014500819251131962445925207244723776162240652274529276187074198546683976633183624847445651463991749287996378181187899912535050029635901769830551101503025014201574291062419848400315854276863223445188463806696776398714167924630299664078539712178120870754507797539173081669975708225183905461349301572762047519972377370031975228257633558156287290822793800469309328484796669724702864169692534400946186236234530643541708915860564232616370046583562347163001194334054337862124262007583958211435051975202036325987882913678123748257850486418252591410584392474401486908778085132568624604915210221927657906872684871448229456294452733209129950834194094487632970930551525901311306353355967962264108508893429346145199180186228455838378682724090209666292527067353239793994180290343105670298712503058928107754213647916948004858248821832839133870010033531140546843408989720981591356568605088360115543679704883526377425458531363105235739192808357034330476255787437259692066739998876189503399453662864152382806613947888866483886953037818687647400155205600920154833340534873553693969220134606406630075742070119575178638476013843195943818674543805229729309922733830576346318736782192799864294925893773939681442845565045237175837267683025119644191298780710056061674122957899790899060142136578195037438590674795352495314014453617017372794729595395618821612492041141056969739822047013117947968100911708745276238244393242202934542960422538755165368954282211754126745302953622161023379045877106667421767222959162760307363124277458920713834716697461612973929426194287368985003023630620949610872198332374432723314121661611011140245352313964745007268936519288747869295400320101750917965831644367426484108022003250618607977140678587239625237832887052742984716450037729213702267141032536076681276308350410214579963112696361445531608899600739352372271231915616749233657956945292036827459235261112754891267981114135474817876430884847943649965652398020156418021515353088498836985086197619756780154940519358072600147725983811837094895772561578708262005178126931130880370313820621897001047938111270293428155816640248141301374630111621188093356051520154172578774844215597036993906739646556961506586939664326136285421140961341182962029791857578587140116669588905446031938932901877238859054822865818178086441351407295071036683121552648750281199045299572888294597573707044508326511187124489607512295409103311516636505732966622748331503233621844100894074419996386525044849690672611043261979874971400929281714338989014341657867969255332786596035924485986761654365415926421214265060778098914912919843672311009564048575671520230061283490297495145925626423079377061183706960703712064635225767291474876867758982232336533180141376340210042629016354100496129404005710689626100367899547184377318324076830732599293615809712011620914607963251052244207144310898345655603957496175822344076620029906647271089501116567000689265683038640257624060352762675350447792164977609098189938067054694804138733811827365598389992284112273495102893638628168277006942493801438216111500926216731085275308229534027001324228038987191768189190348621289383353599049070763464974390531021633232119331021983392873155180389709393236670941585000625560309402168119180466208918355063580948948936164534359101125573902800632288518247065542941501525925315806586748792259577490525506527404043049476791041648424147894526311957854663947853923991100683740393497668886126749492978104556983699652342676301570220409497826936457760675885959797331324428612080160030340044215416369891177728431228969076506006404944812303809047097430116983257337903692218046490086875958150260971444337266631509506024864630585565077539416855921590312837017959947103798212898573119404182856870550813521495737194100559253640123149277015338661707269270954340216720191948325355459318945123028459130368087777846741430750836275442109555969147987234731650921606176927474499932275899946039182735005204850328255177698538247704538626127830820225442826333450143962176687504772543028149567198811701619850594935997890766985264252054613867044534387268457582251031586460083923461322069747193009276520873526290625594888899038578815416599686709286239467418382920530119367996161453188886577957838116774538762137653984214135405170067618309532088465221486237280661776317483315399205072808748098875463849755909542893266991138594979413557376567107097427904934896657127773867396867677997458837816635292498406461776019515011877027129277738616888221935669071293710501109536992082114370297326668925620475386898542652981490126487069482798170011163885313506822153273197382526940748592604232159607421416910584693757859858598379546728598046756176658625670867190258585524135840161109122321400229962361513515219875828789415784999316003887388092750327347520566619310783618359470598295070578867173389486383089466678314171989412715510300387647504333446627062094792081205859785057698511057181798823835716398287053907191473997927193766828822189612702737899205563502145241999221987198592735426781140862080861033355395134756260969789108388209357321377560716918249392018199927590346682331431700437005471309000251565233043276193874302725663415592332249983467442073209693614019861748961988449064648506618222378858553941683950812730737600997715130315869224954173058312737331832552266052623257773972078471444918995230309072600206333020814476717285334806507276050231814170856783538726225375838360313508903506598321392978418601498723249630567198693997161551434640424820350608343557039768054914165867280713554389731720155066820178316514322813220617801536652193320005413766952878484336732684110313232245833441135377219721138577167358506707788886645458388906537258467442575789809185118507192309850856107203902643171112911876209225770634755546323107365257205121143156241731017718369972445849239660112912181456365685254010191990260528350670775927203322031420040320576494155361809102902756060413719997816380298579881629361554557447277830244026979915715183532502138922285634384141002585926062297469019704636189143116082401510808160951777831838001759171045399871273914869195593205638355856887536617436107758426788442882281893899236037457242732093647566862659656577561655811037184272780457137831814575711760035396702046196980711591930305372483939412088162462423888353960274860905970553433330657616605057338322082386953331576385658374193534596148686194782961539082163605632553414173534196001106712957705174992770321773348186319657206190573897896181498834142947946671970885588671094923169612157517759706035859390860675164093169168254131849449807263237305089556064936219545578861805947710102411401687757207057430798921144496229528647812599184340554733322500489796207099306484987564421850315541574851263209267337637266006921755635390003085816316545488811402655255124364197295115212767684375682860192197510795610876360496138590458706654069686925148987386530657083422034982165308201284192748591748942099215296355849766517422985378399255436495828631633310805911079621340912077660932607848368536120485642872919322686644090598422243171526654530724817214339866416083475414469670724372617490426276370289643042202209503629167929176646700226716982263478970839732074624909591578700603740049803544927902827360180910227467966388335465464261723465713232260547178259776552073184188398593381368735687704288369994289275516086725746644850072521797513558716646281212314614774659023020401974720047172109476577107880426646257007921376841734176256199273964159764292640168332834567747536635681114206759886326027369795955661055560886716870218716643098723182819854424736256637031100338989339570162434814923080686169677843890685917930338892158156531518992393193984325209875236533550099680879408614061540831475712833460382351366331684945899579728625194995571622542104549483827860690739555666137333544912317628135490018198805293397525642600149720268953072309152969417287725562397603579385051805682800306347828708652345142834252531286101035427216069075817767367137807314084783555790103355318748460162788968680129775815769407781671830070621615422169063259516061787780866511794928393400719110855203269194152491558869217897690500228811110567865157240484898245426734862076454161557610736183264865300534012908044187892922240377050146399802508720718888540754926493945175676731250831071674865313777651793370787297908948056435978690142310285026879444653219495006902694940330324704584011407017304113530040007622407871954113601333357384246615792424618595920214517556588586926297743548609354154842954269641879242025366132311559281724075963660254517504240657130029863921891507256644993171562458451167569547507640618182351208849604895507254957160737261608638923057101064825684138593262681018225706350008457711800571469429704459509996839162805759505144478872001807294902247636413080279441823774919042336335957257334700647364046104300297657044169671215498573881272846982249046450174500276577257392201682295232632844409382767904315230620613618715622047987805570931292376221677371747254034299881561832790733937807260620877033561967515203612678590902657461543748163654899089895024078343834537098818550867984908012357615564164722974392744289195634373834464659903748594925852384519159004660120457962158368140889045642144324277069735874752397590601580944055381681193094928890842372136087867912162255736941076014832777945296292794656450776279271952187322269492220691514672111108492396284813715055851000569746678607192751924338303205384297118145739605211161138262353496153197519256408123419809637129601640088626344476562734171362397543832024910024504950827545765028761874111055744621344674737598671302681883661421950724002818893110410483620551283585015739099898542229005874085444755266744931014386369400108221173640389276448575723718919329541482390020002333416596311546975934756673450218296450715236815247103142523048471633474636747005110719785875990182097883021722929375962971758220434088051662319478844406243611769016444682683572951999370868026563027704187323455104691636620239498850204710539867827164627505545101746298276664186144056623932384725772711246851382888421510153823113913803238952779582262810841461079296245086491112302996396181229305377581544669976895629369239416822171524124515150504026945647752361279591216709203977456617774265669330087908485780013897931651647358768678354444717133653377026314491864043844698904448875839472845760668773080265789312086045486314567386395625751943075759643023212415934609203513016102561670561763077183893600688556134083503119300258672831025378786532562088881555978788900321081842301181421568221647601005201416089860561415779777691332256519167757106214716481218878697976332993578144098835521573407593975895336632194874413428199232675108310954234754224868506694752325900169638018601739806106637494816541511506145879005853842789333764341227114392329117052990554477617919608650473548757055529256612005003151703970115768415627957249712594766491930176447742014844567362778329116376620389996338355656679873013625558039126845003221400759446831941102316567237692451376590878739193212762527875796984053267003192255517444176738026315753586155429955169930697161838823018414969089148729995802003961664423851307935803528900642099020888126203035160192965908688821754713286023557973039181405896695849633011075985103754254484100495985603190002664293556252455215996428098518199603839292931641084427150065698501621116862864191450534508166172125587998375138211436032355110021998303544532811757874923918832924643729424913725738442083601221009991197238018659200460599236649380431899788888232441155870975321894802541057234949595940767439425605345700846646545457254749013795789530463774692607135211798178965199731158712076792145431446702797620617856429103089775936859013266449635850787312032894307751602442325151173415196149584317343160911538240729656636686701612974842107962471937713224572590979194846895513683968471538576815018006499377516860011924200312367187220087441149822227105996359089107896457158604071396355091851290650719467840887959559693407231073872784211365470072293110993651690612802945449343336488555447311389866354730753789318428364030713591383269380206331812432259775339034962052479758486470410197780483858483176980750669245919993830182317061389347672842994727961029796371055942318207489357457940616256359613088873806727259310349117043334860426233933955165784172540778009965992915343443483944915081308112795044786634816840866019475609379184670524101187027744756701792405047868043167623574163559108975844145864628081828617156409467340956454360841509544239222944167550063562790554359253673896115602295556068621006558307490701637447784200738157155090922403897796141957974981200488132632465447988579743800001951604316534336117245349781962443640047272477982084866078711262773949510803607662265409568171233135687715473341162841450225903839195413534804839071165116319992957073863669062945483052900481054596405570881096307338801562793624627428710231712791773446852425346935163353395837712698748059114503354200782090394378624574120367080977589372947115274294466689551710919653775032264951224787863510289355642655140151614975476759730369588841635448725192293562684751982493255596260199881656646606427650226005973531832413282229365275040389894736471539235612675698038420784358758219334833922349838481000276679505809195888180070419418753088173905288032428615171172965301311939561386610010280193008747442714237976713685245745628477752618399322957407470925595012077092745952229922024013296512412388005731146798725502744935334562520913135665094274205740009439659970600443629537624081819452145863205048985290293348257501002559949231515914556384830725048479114610327601035195614436204964434344965789239068856704755495006226863959247371919838219003812767757187558437268768129572002602770635939544768432654721267973549050759720988978768716418475274040923019915702766082167660954759092310851697025286751669203597207875336144908736953647869694287125404791047464112737366508112807267090003345379138210931628158866044392635364903653834606075594890084034997333388626659290213730909222316998772566769506094019917175849800878525973118611418685745587694455478618163428229276715977078487599373074691410398683976127800660048586632354333773882009043674632933558266085989620036310953403819019301953917476765294997513261578041377698057442724115780058544991029011138277041386186966508087140826557946661548246904696705511205428243762713901231742505585518077082124222756507010396239576529778785280280817807324578667774348295774299532274924901264072058114183969799012961099663357729759619502201841732794289650324968965851964066945962206504886137916990420245175778765706851926826881562085975594730265158417714928283392199173984914351873612001265388894068899891955718979553803245996252748812135809092405202575126350279068517422563691164840732076597441939361524597465537079311869811247342306671241652708909833434230556013895747622827329267016549066714261838196452731272772972248326941612757913516625084084021878857195565014976932426283892313660580052590054887248625433351755597097778729477077740252490299583851371899849684016376942660150107519831323378213129274420645737648652828331414389806375046015645926944591050192846761472959681556465991300659295720637512479896192488533294993071634365363154930525996412789979467780601378698899987478146726223352887339668706059735543498290331535519192728662922068156704836196102306499004704949042504896926657249083771294135740125349735120523144047762282821929189949161569390871099493928788383472252367833632278383212341601102158976293935640053909787646983562774076047013585612067081413642128048633176066778518747882821557074576040264456516514364825659192494845233980080136358626938884645594736251708619231961914510001096570638852412161766871547284830591301741452854289295652188349822005718768589981886773427144793080759871068107908041773458582029706851853735475145057592277657265092453734336246847699084112834020985020363371088373064303189790932113645317558598512051765831246576644894944810646102413931334487412307796290116709382976404251021680524768122273015291113753298742357732811560755298120652928331251534477568099778834424338911280896056313089166010663188576537382990040604094231552438507346468938294658858018719240331379284637047134791118203297451998448261422553999559992168095600264921511200208464426812950319791364050109149778434305316244829645014751457901673388539474157272608354867337614979648141275331694339353549017939117465657213558994793747254376203189828259846320824397133294734034833187766326605979798301001368640162705598122942000940378501162773636736860490860485645944469549623900286315248810802251691409958617300795470003724422086970866512955678025444684425249090236288752312126501362407881496814072689340765418179901483628897327481144729390728162693761358795700000085213222735321388998633086918391658630921498108838711360803640206061768397552424878116649229681312928953918750819685822213020631379549083303365145677759343621802092210982302769565134534200276091441966368675536947903201971786352499893718361680589463073460851404733635556491828428182279141790822075843231425549288782946846931590721418859511775068859167831202723359363705510852571250888442874049120986198885165200027758547696780929282082547243836889742023805131668244084413965275005261231387778698905106650102450812809626887405939791455857696848032360407775702637807066297879241388163162297795016432025842024162200666396127856367389655231168009661414317408289348026204605627644514219945325852987879096214737705005845977112554889774404642671335750619606791701439871612585021242795420884831260562020304001687294503988207458940484301207418595167533861015858377394232052268753023725622409525522982181348756799669019689217547595062502934062468810830296520552432815376289670702745775688995291954183385723294183363714583804830962129683474428331271689842752454571777144624470210069568857606817741827077226274863200743828331746770246204499285697000646822659689273819732454191368932407070167699612680812919851239789486436651198145433487612560108603292868980572280319586642344861743076723641805372095762153434003683432182502271639759960072237711225791423590433146277437427967632862237536458277325899470298950702801389698353275232030041583258888222796828095048594892727387576495155999795606945732248276664073026378661093395715114723171144178306231366576565928042117030878983254381051636479144952044580631051210634166311892880845879426975048412818382261213138714600665657241373994071949821572022532594603861981349137381365137638195794984069137102394336966361401067332104227419548481415331837478498405848558743652463662324595816972658191238326256423348973003461879097957558372419753349306505604073849658126925215336230397361880964765840721866425686263430533806620156998580328000002270562156683824736409719344498829211791023567989058825789095536289294667128917256065155360617583634982697559144465984200005624274919354712840043495760708578915455859805098243352520124763450140566868204349329153218831585714512633763001379463063593652300128667215703288002883005264179552679217339821197481042018267558586081722465240979197252431321276352083399427851841343616009784443536335605378755916929230493809260219774959685037526527422071727943871905381468467570886973524920116989044618554820193287953651250187094293475716799769605886878106396178070287689807169615545629763324313504801946523399729979570089358697415354725915226036160701374241355595690981114508958517922040849671269464337553613974390363930651137243009599691713637455537130189865752027501786026333794260513567624007845692720842201968225163487337321778934883055128370854947960368927100599038904047337887327311280091268947180463073357367434567958907862175543777219904489884390517141964713274451623372852245281064676856693612884556310946253165578861541816848715782082750540993675114539092761001638420428385179770054290956456580434875509512449866937417846003374416931989868955155439439813106327997193731446907486362745695235219718481046284871903895844501373868260598175980170404223503505276474096916691034763589631757140697899980429879192013004161097264625959840667922105879576951210920884547876249398135445756906570507846595421498122306785724606255356492004743929219062534763694359993129935266962869438302007356381310463172578785774988790981110928538369587289892107265113062863760235457858703926200185900010061786510040876206633002535230208516261203317539256269861837162224401834962997624129090832864311141903406025541947978542518507462270915062612368078426147920210410353619264384139627543452438539321003640198869257856151516263584240964592386287295246287999463171422531251514579110932903616390363306741018605734203803736459504204461507220007666179161712080704439791122908515473567149770268988860610906335449260893044538189253089653725103547392587631594257546269511863363797602581088969652717222111925049708563231992020215385165735514220313154505752532151059227189852967359059186222448875976984441688052490902489320396279709302954137594913823318840172127619947798910464008625131961048234742597079171032912590994840826640690316530339443685452055495347728656013087289206008623043561148311118208280965074810281828454212386844482621797087166575284410134407394825088548941663238968269335258504585096226140527409687586394120480513095386107708484986783374578302328757690170923699686920766264605429820860517880114288722248488677594034060810012375833449148018915311320251669278993174686719418752028643851208402338575004051081764062102469554847549608857015505522317677985490587635630862261628889098043809809329317794714581079859304397058668851073256757292968682109211608624672831566084753155068650857270461665039585892630128938631448270589394615188900876519854568794239958252607466104345270069025707488967136504492248981040137192461070979156586595634686307389713589403456001972353838049601806721644451048448421489333560159617538683252511524142378635592209440535077907889819621602436712986021733620285483135859500922248297430945320158748786650502950145124081294470789392664823383395396914943391943574512379162659619826793182325004077245373627712396857260185083460299164459591131288838546652622614308316727118022643733188136735569208645299095772634031170485723017092702402172357088888569816767196633441823283619682517074311407357702449264282605320143030767702510275393631686432609513342799456633759637338076040810743671254582739481378087542203108720304330570900110434196308609288727487287887321493724200801060659494708612321291653541953438011270497841297963246360366907614607079118401105729933525410974203753997319458146215016708846190922636303042171576759727483147414607803862417403189598883148419063513113641284806641493299264316061618664985897356569948869589787589215131000570110345853029280055982634472895756390639669939964322005045129386465340809699309956361647543375437994995401111130223652562401259274087926185688540030454106797001034166581695384378573088809264383800510936741804865994832696086901019011573418299683329848582233671650162321121260778681573296043240525244218537215753860110075408119105274523592975012708647376229459317106193659012678112502093163435382549280285739725275559393713312866911814105642245352751924018780461535081147830516771878662553238109575959901632361965702438718531114099398026300299621451181716290012798761854207656938423217679686031758982787152910989677132855193145934232404773397530446108123462561115744376635261490251411419936137727994953057436318311465120288394308984973404940940513065723394688098874693969184925794843270176572335575834269481408081356499203741639028984458390338288297777374568055636400747287522408821855992146872922694980435633492565971294580023394518135044124693454393746994475280270450932664169330447452692968350238975545322179120678997338459690148950034920036408134132907971481017392216693450583111721036465639685221831284193794379550683572729921531096797860914118295623054267525120546386022206630472791918840513030110720035487479094878549663700353304925674793695252910435506642214099712079883693771768549672156935659560920873788469292907286183383480096242236287210440093432085745144569032952699568629433508049875872745669083011040930740909637825024593943921597349110566942352067124164824338610874675465995370474857481348464480663079462003566849531291343026764262425320655907332396925880292977812775378406261208853368753952868704598703107844740405326918724255743176743668421902621565430900638739742153853042682469689903983054906909438000854344295595211882804932540526565802551691060954353781265560785304987880486868280005566826400966561516787749428076518128423945565184164409904431748517899928046405309551693750418685913084833418952291207212705268561232421616074423547022815605600983910309535255121116881809603737602765020234661171129043960972159710545000572683389533076925638671374881381503239562939897387900193312794297328459320788026939682723809593899600890188990136000130054077938660425086060185705235375962320075430100335290621235910607521597270128493437746681685667110543750692476871309816324532038495042359528092223160353054424848978507748716485792299591319761106759534113473632743728247709580406896853244373194466005257855199267366782379362958114467496985953088211400554821923086434608659533352163514054414703736839051459297784944954133121394220344418555142639264628008818691338951346112846450116166326086912116405383512604494858454762608346383578915775165362938866228511877933017726557352641058317332251032718062113428502835686520278635487579651170618141654611732567482043029355287845683074488131507637254485814895110960097264575871733356140286139370251853035153086541860030717026913012268604939574318873371114299317099461989200432706058868389978216329862461462914345935051564044674359821399645999337939947487434039838096811610735836058688287846492284877996213014318935399506978936642116542954040181385212320414899159305961722321072006078293805757220835478684710886519397005782685938112085944328049360313667623721577382909568107254505048022246097151368920933790501793042124391799261295207427234355113740857915048968875099060171908413868507047128976426016125723453981930398721357912580624226219322806512895166916405500367945339877149358220008976072832249371471272092968867175016788442234068434651892733390326200524097421249244906759872219946907726767611433342079698173852495914379526017447064888069242960318955165113364763700573400101352898663005268277737934604162519926890035922141929864546741447999328905070803179316113797211394932266096677091271592331633050324187849582571677656150918135385814005650826322375594338278313871209389213306042438684008221422908103600590697598551839213066479294540774076889600836824142154031464898728358016605758046735215908151983786394983225009806650632389015407547636543276431126194634869908661797238737808298730870834615248906576849769894593217995113931153724660361896878183197811757881724662319621281059242995823015758653654649028928854270459605835769762418388289267065646945875534349173629021311593141228199633300194329253857831881656745891929680304147884410177871409255412675526989428625065127695880530727834337523844959641937563314741932262712815895830592368640320959061690483421649719487415495793250105622592141980585511812438442417644981069182736659369107919605883994831241650042353580029704270109973264267886106624873413071507375580070759498771233477310327390612199603780718405482950904220442651455230904663645223729844526275837596179221707035270422111691092691439780305942109980396636628558808265779262715013918515118754701493318941177625182540169745161838731288920991665762180083666515756326958715248087232920761425214542927813689893185162184570058602032525456127149305555555409073024276512424112552057279486321250424033899220517610507180992023841310811014202081041439195925046487861459649082347798507662775491450216336033872119492100672144265947444550425417492728436179867355745264148546495423118177620989078944347449680058854269137458838675801503668437816088098105388059980290838318419984979799678249051068007907388133167635985608118720022169252678052259595922722065367142093553453415630706821733045472499399491463425636772654140329747957516816182340011333366179642859000561823295541356577564316826310705009492828517318033570412878022387360183647868246315264237356324998597500448982096946260142199068333703308687166520645934498370362354990332903067257885659698535117521347337999925724142467542730603716105216765967036382055192340085899726109735390279083842193619477654016944246718406749629251323648072993850594491857790334137172422581580863886966512245046800762517933062870848653665897459451425446822660969931059547436990519870671909657165595572739633019163537280306587238124347031940033586705216020803954834955629563493416177278126275649717597243120214311343751601430570204666755432697341753592653094219978732075110818867010923415918805724776674428304611445498225042600576629416798887970140250804552458290159201756849160149210006488760865669648998642557542553035720853122045930226604627819735194006505420512848490716964033259446260680303440697613906434346347875256355069379124665578596596937276569957098902487277544942955970185063170306301062908003928815817368628399038867549290289082389411226091545933942598670619426965428954524793313418553570215498833211508446236751743971069398708327643184536298782558239339608825591118843612586685035570658472978244191557426713676929832433681347976665584734165839687554243133454681000461084859994493773099823069386383744883741749351948576312593825323642461649886085273925560442674047027480293377775855519982971503735301951221034848942481805327520686952362928348454809212195576434815257220315149910917469028112241541908284178279804380196696859871478075733113460228973546550597711154206655179954519810903084039522842428249378353669966952130117713836819656405684318106598751680838417787178865046089016035670286016386172652110006707902773038349327088278382764377921039067047113603150164949135894295693644638720177775596400633140528957691066506427207363132312124868908161993742720959214255568603653993127420702585034595515039404019158629139483658257652937176332625211022807856412210116748397208287346902632418193122308127938876895622923397082565503956778919885752179048871019811094501164142954977571761493716488456091732912664539704520881466424818203265013412671194934841477167612397507280947915526705556202829305501985531767290982221299757611050974873765068345417110662049672173569492566342028595260695519304196270944276700443677229286906412300469553334232228955278922021391571202673112773095300322571398792886389284668081532059180756271619648986970134388482593604666429080715159747749010232131798594531981173746587653424275406607275357830056399715033170718705454071179601040947073438430646141609361333487083931024526213878194163984385975996190031024019284802545557389692536093349037401582139644643965548267274112180853724521892816189535042291315735711272534729761685436365613011672813512773921838275969429190520652791830340979674523700730236659715674796908576328426532082620724027542370579029633355925182147697587736754888280147432872862932403929828454382534921225080532057024429479694221599017658327178190624175095365781820597381113795015023958376958658028007550262063585785389231236282946377385941394365123459418300754135726083377165352285764131703335807578607647992655740546965932640609422545069793630402841328564284251099733975590883068591784057159365717551750773190202190960810973769862771787712711361287801620855674737724271060001874023014676288764754481439359739543249724276008696065591691860712556277817404199523416705049182106482748903048146241997108063626248106836813351602531081249301148552926331500098630515881104742540472996876161328068563944558805335091218773543273255986110231436270117846164956971613792455350475077179038938197582811898660650362725215636597788702494165792511132913945649637307148384160037534273152266726898689233537738138552715631995813323585302303292783260513200180994726683181818703472745809536704713528350870747985428016891158016909378547177847794734134070792764403289680477338436810501836442058643683337296445475782811447985880338856114507080015780944018886991862289608401658446852729349562454079975871751189210896443849400216531343607002970633606463252154477104909733209683055932324658400698053808011992262642491515320235132936600746943768960148862810490882794830961509359111910688045135107075804553225777076581392836065617679897910644841566359116140730871191575750710750788702940793336192618672218554313905371124897479089133573914814808242327638512941127970215244655685798388796172427285010155773151978807617486099092916945429919859140462710767725575342890711922086914427966657939707659235762229533638682972428503925156144041465816880917357819090037246390523436712135337885353600045852677509429172140118401218760554493196670990436690357777727068974976431885062159694934277297171951689798573122902400522286889717188469499199595833047300735240777455295760922788037429695009975778368246572391884836128199149140162649231189969717278513960130140637900706149139336180084359735431024383235015611867035110042952696938449571801900082351518732103356883222244623401565341784501072262810356889716102717190942229031053174552980681514840165392876089803628937638325944321028323493286000036465139970443389924293951017463487879331723634468994671543402528675143405723858610794678468808286092558202260117637324210512066488747687296199513263584064752657998184713030972205575293157113766706923327538198014105933873024322190387639174228539920339075178880781388208515587621725342560105307003714842435880814773986215223548598393577478745550014220370417113457339807186963810743741418171238701042467812807292816254767538449911580914359173282411335650501495952943978191044771147456355488945995903146626193481938730634811777201487431257298999558591621424010340207460467971556415974614242247947782110661358224950962579512678565050139058571118617931870343180826445579712433504695925880858688451939458415705397565920024176827309095154330868954019670677648933998593623582098967652426881972570657928955437906077563565387666686487400337019607936841150637480929995292780682682485790010206118775311199427624332625181878425457049216566030111240627577484613878663164759926439047700626892527736854913991007891772691783973708711846514296652369957627402895120641540951243387348920279943331430105443790268616116354024351192839262293693416492236049934926965161227398595854675616653797516910482552659063081125150531163479219033728117012894808680869452481456110538775997775424912211300261414617006623832438454272378942818577435762348309562894528265976343037104002668356712718984572138934258679345579794458762767476236547832924853288848271869804338841674724369257584051928259457777052456218072307371631825800666769341729983107856165986349702547555957491994021749278959892220418705687593667344904263457969290323611413693873470319354855463080737744165046879107583964745499037152543373760750031801670503533866074408302206639213505635706315834272926783103071447005149872711350542569804683164147008697996353589749779853534209059950857178707416615593749889508164630488947631836899107420583734282455167195504604071116431525556015643058878224345825412480150749621511992174834638350589488286868183828373776285252757812466173170293748629748067714243190149682625013707333718544260740345780198897353214320094169824979798512351693069279850003429264099929810561617863393099139024061025280581032342517057808106037864244173190358395580110530940776199297467655917626934004818727891293356066517487923476497597484661069758111883135837503363856171054591688162754248097439526928082623463709490539070705820224223326007851677252227169672316872454930043163339278393018547101754029141164656347083625017820183863970161546122139708376800050785859764040478273676447666811529225966495075067783853981657406021030542514933664093695319427309563185370847192769816448531589524537122771243418509352684577638801804053034275340489580823080507628691240154053409893884870787350614925654259152436623408164242329379425887160686020457222930628575758703916987716543500764585321955671646641822044024450780728701021097174153258415514307443017203439388308911922854652499648008101763935620033675408732584803226651472360067000309282354553826335431360172462626215869411480760147108392143595798200238675457533699966519358708135894425008070342181536364892794547409951089377509991013805779416157057454404301800332802631072093136581199767142019641852484170025209344967308035592165933621920513709835133643592146180039909339852860156475359770512205855782086942371130289882662766239422649511316307058057530563630970730183992611240493490155478242717969632871079737239227661981468542968707288010155821804653500034720575196585956828811352030357031594407460576230219419858679720265148335338096097683383645045549349604808945788495530249327033061597084502359776016420847827158142329848761150488095565679466061482273292692867618996994234292040880814078990440379705218388499814585478591134685017972185882580376362622735987744763847916846370501334197082271661658683123912381938423103054467777829517909173261969942712168652072930920208245109735930572876409369255460507838331705005138467738642744853142949992941365396694625512165463005850880619310897054285134389400958950693146068445822929351092475141712914563373224650140085136413911807631384439469580404960257346540615426852954317387024550486714961474408743150230099333786290113720836917084719422660927549952673282578232431703364624408068546170248683153323157944584182564925474329200250063617203475201399363591345975307823652606378518556299656021102115869729117197922298217282034800474350023519206981195887995033895711486173251018997679873260259859707743569769892169131951979180867427512094634474182447134267028341579229031666078594608371492294747095306071046145978870712219717771296777815905506378362311300365299292137868654872304119113117297777849466739864535908854658418658324669547948917782245441823681957364607359726030095831596182280874379047759176627697507967547673966917366421646967304984490726017104044510984956333361434632874641600059206714991978550157235656450371291336964215861319510445429018661220013405642595552854416525788423544041224159768692054298982854775769476045275866961096417475611234911191575936954083593019599010943689397737617591851070145859532990422810304894440445693746380977622372736873957328789439055847236105905479840830152170901109791971256715096582357343069029176150159297086055120789386240365636411944959481317383542103928136343562525009767508121008927086837737324661939795221307912059439638706054760140613022343142604622907785704671165720476817160842843075488756383558688097554463898027032566210177741227266284100799518734629978244244264985499954790002269283784788799223235858386066198269096056835450449160144588540322995722039622140654948982373508584236970631563825814233287930868457357547628336780884959058981582756760966498746426465902021186708931676122520900338086596218417033496504511511753799010358083411297168515845059612596501004167910858021456026541614458857471069867432233968780328893011294025303991735825888982557618807916673955043643253035781454515473290768739695118702424712774437210666369780419121493741727446514424827806699471569719809848897888270749749350612935263113814951679812877990132280219525678322901021353692268495881824686923240469455586082683336620742036376802360471216310000693128660124523229369617716401092348912818715987608692297022761760640293474125529869891081472193836675609422492785039881375573256188778259135479449842721403089617097202732021739438290443572905574312825289105341785278552002227013553028589270554028150278829119079560481858103284212076701832262404165723111353814166395911448088312926747593538424784120600767598436712977550684959561138578507153677611084644295821326802485868101234904005799093835177338329323609200196354346222781804263516339896879908327493686259078762229695943788311705556778046913588603598961973084396444849530275122714906366661633571790975611528934942159957082353920129220251186455874434859197348577969186364398699732557807638938587861397602964701190431525806904702049985050531699962626525940113220238693748602634826952613149362389045866767849182852873333126206376604627747183005746659561846366430779707568037969649452571181030552920852217506429382435367157498190170002607749395520583697409079598274334315223310529292565664789487684558705557844276523955801701092029249588702653629814768860525906429829630661426704088515815061142855318452750195809033926382360435941372975648326995103539045900907432264776103899266022131616297804379527605401414642632958991354410127197753972543256676601875408326106205373492880812973416282762978056572838212612524192931292934112039134499504856288258973973276587953797754789868978136376961407962373846102272732559347587047350565769587015094002668298176580232043976762704766948999897699786914844500421499362856551850664233770330192046155906644434713372486145971123417783965837045357748299791401142463402425763622819736546123235177807227897316005658821064444779884217407674788117284491101796501773993274795981590209126963999439434415541125540628791893993903921504293286243406471575929646751954972685183527463211102762854006929254352686517200819948759338567510045131066829088364712851154492276488601240367645736749191397945159287884364834477815263742921016503112300864865117194717773759082544151606973785457126436159213434050130497390907948772033621088789364854103944439392963387323316762711867101223371539352223501300284136747603338362874449919931743785017212181689168874313509743407117029993526577300247794931803289524839640509512196116274489122737363858788718680012370933141751548806724210451101191416238143738741630593974122026197354420419157108227274125954252748756520435000129003271333642561343302221393501039776640900465703586460028414701456527947972245754029178001461964116788509231513534667329383129196576296644885776066880172554784602393752941484041582262645074846974572996666421435516622556359753163979775020414702327046067147608306130365743836088522122964214066515578687410974581824415270758678840131674863085392700903564410460851970391938815110794162875374380124779237544549160417263737560164040366744589369504952198168025612735076040436202079580531407315761181187399221462506801797568297847471098743266855940276886054895058580950826199599362334280787808447820888714731225320766814686972396051862706668306632523941654582352136348670947444651051840427251494067639079594089637201823347758567835684927921719438765138513722654525242218713828723313100923632193611167437976326185286909592638892477445717575585164659685538895799077716660003449744449526358942281437008603467972982888352347645497963514371194448010947584105595986770050794741566860057414227379230531818801917582476815962733244718614131335595869328998260520443106353432950341825227544048545956126544306958787169925330429696869561155303744702589854852002580917037833586104426712158703931620911647315242651669974302680647730463502989980164766759502024711005073987987638021557545931963650660808158057426602329024822390389564475816905694091663025131734032158397706130071539848986643230418922813647575436454553044292711004470407343986043514937909875486207952412275211470389581046529537016336167933233272071582370017427699725939081369222588294611391555235059549449828753247153655582038923979010814767794352288902540167952976273614117606095809226965786584161266681572296751268938526260385850255223190103317901045552995531125761653693344745399894040053398490211531245997254840469106440460503222709884433415669302713095395941102604457011442914547046730259198709439156076503692726300125294779764536329695770639814436946402556196419129007348723547551096877883807765588225847196921222090897473264794592276399061989982679957198838292025455469335578718207100231165347868113707422119478088086659733531205231658805267677662816023565722587397091743575379966896950984782021668455769967739157037325111690983355485810206333465212391205452425029579215231373882551759077037798488154429765560260488502193262655033184471573246157930036647302745312376892380480491046284011997947528664732101852711924406518061708512833109757971746353324795374240270763356538897242873019269920180946998491370183224520918920098108641661977649403189481929229754902206662226581803582026134445942949331800983211967360571013961361791109943116807175407763137312485451923267999744989628018232828495048900111628655060014172937307944461918541806327008337346600117224111346769155840505198554036440395917307088870757401540155442622778228598797174657493127610094606479859540438634250346253315050407386621846157867296034836312702484297448011710751700405701561363380229948421076063093460805569917384899911898936152743884628373655525133257369389873544379905548466935511107561903306108202470321658098194823444572306340120885780880076736057491020424619333098799168784904405556776801667069927192816830691000414683129013714620520556722450274634870178517101999932324402309402036449732851247897448075254001512570018594118712035946128190353333429651756012698144200314750475928641038393735713636023865815277359645061036604396559328848494154112290539704335446426186210937909805382155682897710288392333408479779136569651813279804843529746669046400709142683875910279106481192828301838574110617081868270823718530651679871916309509502783850745965913265818519032990935559080036154394874194578854323554825971370512679238664867321777805271955741468979052707688285145232186285807371086404741587850190915399997638094264302440694787171443060618815386082102050766301887514305351157195837501030515089963638854298554302003150051455672072522215564032879797569096792751856391700003443833504348509345533082202278284172567361534026072837804591650280132055135475311240420508467277060892245838574479448689481401391468634944858638395113757464568325651362219778465959200881038083483770478123863335917421613082724861266040569822631715134677710647303455022357562635908454104646922120780038497703177384810683446164935950518476331704774913960536701064671554536156132885553551420412501581811645803620203192172566872137074047412060203219144015552635650196099968612468623836851198758470229138359145535248931008147919337864732755800276505174422052678691855575073824085491631918281563277546678666733007375286515318644652865223452911021011306571184286766038638982791246981592511047114822383478792388857081580673990174688026254498009346938400995377538970287654887809432687457899172677773105285828602261048696020058105514335943705167999911773001761137534573758175026708896309734472838996871015864147914126419243608137552812776463652893922474075107411494246733449515217276094546112832590709427157401591120927210387783567679449537008289520621196928854031206662000278262543558255290310419661636889713543207043281054124565295756167286609496084308185526721387585433287922271065011969248677510908416586758156970523701288454410032045372254080394573604820651262266099330787790745692418326088559770232497027134295650608089797991845343568693446709005417156311920797849671388514420846449646887819249692959411662724305848073022342898363071850753923394650167082232494090509337340996889357267146941371219003068163402533563838909601564831277761623074032041334238122019923061237827716051606189610705436876990388837993633890601310493656588834991066145709246652851029596088657885753670870731478696458053053878722093590416310014728971486248005546185676269384250066215565490403108358377174368535195383151792485313813121407090811549013041098710661815682761332711698032070735090052040881720220308167890960484557268585059154343277867726122073157461895301896284028070428888536877830100029241743558906000772469769279095073031988898185346740829440881084523605998881645859905825327243180101197154340720561191783187740243198503755129151165695303757184740268569474856461849919383634620428809830300418354180359620813381282616602973835414798612939416476722651833961589834860270333956270581532151439593100580130429347431483799834996184151023819594538805804901932170581060407875393635240601174370361847684907736401027701391504568573721624568350053484192960788512840641272398910692035834540396507780814190775322859875725870070032123360812040952382790209528596642543664623220824036533513946728229352494729631722281709676418485669349236540010758889389370504546929780986824954459470549790857827976363721403031241011376859765331802173494069759778462792081223457804628841391531382514261727640018274981508516430936280125187587318963202196025257259662908133076796056285594580261271392355160848541912962871886790890751948886277640837435393410904397539684513290244909572504622412948047821057445438292616136444594662248911222603439933855108141994990584254464552243088528246453595647924480935120031621205431796098455594767909554322551301036841603681426256487796331255834147233021926515496755618124138558494950612279971039238513061951641127635970518811197825977895589398549260371103700123827629558313521762832934041553142312665089387406494886082787168414235493419801377885341028217129976871296037173051871232365573055201430802944935764668269839234440887460190854248775236237608571178016377957402328622105196326157588488625969053914145279640473419564840300281493849447887184371332244492721532583443160338710951943252488273985374742277150818116114788933854693158706409733706231091906384442726615641435006025978127261691837113725084094138742870751982655161378971951809701245876154449272711979275143673154244091628309990225822504906197236343075429090891864802511724662537674717082086536472148736167042232172719992470455317424724639972994818007070125982185189552506434205661408129715077722970770175650009064480016243148833102764831069959168870403642951691915057649643852885246214164446210278694895672731394404797838031732171359650806551292472020918387777349676488105464000886049030792330843499282352141167686734272468852927813811949983703591444649094489494311917005639013826476021931208764468008014016630642030464252160290281303889723585453215857459328931324156137932867410272982282396228554145441941150287912120697686055463596458640245932520539006276438450577641596657107127586961522776494577238981868520546665634408723927514800493033230052726551080944672036760800301354536941570579424227247272633067537983103498143574201010604116557186001886050492111146233500671840088263858808453634411565463809234654923055439281347455650537190731705122731568760962321347146041720625956079709848344880657672492722014152321921614152566127250957873761384089023413260838327609693091087182202975434320490150408070833974345101998007837100906606535761108280033501491718191697132590930745010222234207814272265378128653459872454675111344763479913621227309504131568476450052093855795426326320630218398305274966299162224406111268878876404973284458172579266204741826709647538229208030828482615060655569254242176405011581112343710703909083984989586307786347552634302208666678840621633537390179391645461255254365516846070894955903185350957276282927336874260985413533580539657926714621457358822546612170094341390574665168672069661369030384814598642326674351819107120045662284616831479422494263834661081262618471747891259271004477322307947692653173874330013119600905094469557074211595229494996905796189118277770746993569851065256777468671125179245618075916603829246477140072500903703625797347889172277371619208493023643788020799824273261954378306602699938378786750833772775991388681615695262535988460237201872516346195746261086991466075217092450846840013002386327259239440081282788716617381909947854969340758764793044145434552361520409590156059981481521297260747928946756548541312856618155862010685419515102642089916990992582328211635544687478267570473906049203341609455420439357639420787803773705538900056364192531081504790672086972120843474113025674951417389621702176263513075663666234810377378368542133059124598849316202657725135463437839885590889228287549596192748134792263086864520354838957922719435354515845240966319410630982193214287192336566585196256918334042841181186998268154684227008718457602571922571599101428248640446113711363651847894867007514416515099341672120138027817366834856375146139406601377987644669773983029402404252580440632144266797481902073841291724180126315115893605353443423098155666647239255409377644030221003159906813773246359158555714587247579486917749326784808133557315989946279041692224625525611446338592872525399992046952094607066877619365979227148659705500812670623600426723300826833345198554743307552095430842045029110804486196658002521689897719132721644356090056047423496009526961171345941375857268632236685057761405420273194256704094248719961845742812328966257704781475454251582544951458904340920477318213834690601488110208321385835556896571822148238060463968785151128063204109239012194511926805186796904258671071128194860802701936445827125660583422735667369308452928407528272686425960698436836815018925939929502521763345922397444692614906302002581848330774297251391611206657832957234052924127090184243181677364889453948931502106315472248536169080843156924738810654867819218356206050127192239335409955352227439360009439873507888922473013592717326922729305836242762616539787912594910623616351347152251902256455773554983664893035650758929211350492475988533216458073890476421265411350219446913255504328681040783892637292808502081824598648978526641211316611695482120400711596564045782933000982820943303978818453354758350100822621855106128404556387056957423729302586437902757969445659905641552936182734473503451303734994024596747459961061103943768102725365930168208099710126222760332095341374528205664091126281486182284779886617162786298468080218729991248395890598074313575979315376983034354015097459490462535734572567322352322634787479622413407163029275434568721570405278801871401166821420140786057189910961602789809555466221802580421607098791772593360203162841396933985124252743950092048375186678369464894723965997270493320239091802451220794557830612821055319732937054269945998257865997764228756450667426441406179403824283285712221850385911326232551945610220148355902762571666588130042039444767276252873823309271274365812310896247044927363816012777870724030969807073320157166886029869543954717048135237881024395490504440840624982578076675165428082917964950947480124651212961669663689034786425090918606723454443964562557492935498929662586446623324532228335953268951309075543941654958940039877844816789314066526450424633233824342011292038506974613953406170625195986353154557123107977040962577945276065075434525811025856657463978024948548960067211093338998324230732740478143416493875238871284678860591916332935920438128082921272518373780966426551576381086885975178269225167714048417246222447698734287562908379942324991916393212537296408195953383910330164681051825563581195650121272096364804373186198524174763331574908916784098779696137009511229710920870699219330316822169570190285369979196423773603391304894872318669915425092283734782089276799090689857343833731573142105707391125463064443411230561840072049588847260049310071554967980906080183183293301290857891023772502575770266940108574172014547234466136892125927169083893835486997588912682558391544233719232152875042782634166611521935072899215833454005808369278298084032682016344987644072294920228736705143339533002629798678395646491028342696240744813114280292967396326576886080262646078749808170715187229389948934034046812187703827326743391599825014145965968040994244063320088646392807943347369858573576123280846906821670969116446742739445697088632370296803968054858776467701296459700041332369717976850565638903134722731776359334552808991572193559408469282515853823670910301449722166178204342673424357493386483155726458566253516088820269101581925903706233175219166050421118087208999119077473844128534998271718456576553866407117909238615248783910850619252792092991844247762389904236365346336808570806351690115937380781280678222060043072967100001013671560315809363330415073680496696867355104801356942728095509516037904255917442403397154920335981006794030137602368417918237533285700136009625844333965636219123546727304849980160270126769119025974160591467153588353405263814288932201605153091637731783341827219653124417890951193995736437046494427841705947191226785690527219209252213525306074160533882566692115030617740174261505397358511310127407747040391112529239407820734546705700322344957432613603780891371057178700348759519048129515496410211432267861743489864105600671298125348015333607888846680126205547546317346875229610651483689161778763400021756856106262377452808587055752148848260191365388648377120920942137360843337868430806413889406530652196840157889973832365720406122395415769009237252338105088583557507567406217444595365754775789743796518922721909304349949438207287924653264415302063477932619694010574525600944214407674847072806781581249932070878447916175616193516132453583848726222797405549356774084839694002091679425333473201510127441439634146743265155772400851241269846026163551965285690942805606313826641753744858742193976943129699128617651584759851590377015776690442857883285922803506906959393170270284409536987179967895438700203953431237249683846001536983923123616137866665369880833377775169729670070931818688521363911514947722535470600269766352702532931271090215802646799509715430715589014454514775705983737512354069413384311879715988828437132944038667560455500682672966947840646627850418321343433343713857971415975279930670515297438843255498231318478424732905280889480206528075584597290728737578116068959325550359319238520211560283117296308889035126486671221767138584274723416059447796410981193521360561690641374946067315577837520038103641926147949964623710762653889782843353600016130567744667575277011060265580027554045302124768383357242924727490127743375188001956939442712857365666837162061142713351551481363028947755153879507240128677918641782927379526082119918733025813537361451828327792641331255923733111299734003270986104875182941870897684077701983961409172671363952399852202881910652207548547860789885876791954468443346390547935189562234757740191586222116411965065553857530536182382363848831270183577302654198034247305042070815635769154197315158885786653484269535397184866348450563716765163690449210451207689338679421301490295481971458414833833023693934811561137722345843681930908650898373490949887763350405008313664569744550356707577411044142189490846346812760463684146585006560396104077158419948040027509001505822567739201599973006268336609063601386873302611666832049286315416096832974176400792301183392521716995434547587144032996309702991818693363703451289724365181175839171606918957409888610796130289099962358525577233637228974536812812505573361720271873834942406135397277441083997175210436429580717804109662850733317236260526242547134798216776724000865985068472704116739135586559595625898899830950245794346156040813618264293611488654269505916250654267131495557544633976392751911100485555963251094985062312522513494933937199748271333011350306278650722651617304030867901592426412153559412123634143125918031056268340157706665737902882247222534658212686688965907687023018538377785924329894924158003632429491868322122066846247788001812051508855762307939443941447993884965262213006396560956240962190910867968495516083526026053330931725409893110992273230094145129839937086202839753135676932686442300447472476400213288317306033673692368492702336624595114061776562257233665960541134247409592461856121636191043787234232444175915610755475059612155914430725578416055545157804099347768376994258740282814951922503028103363581989612766741795312396579041654710883613343797607370659096523763354982258914102904762412303940428951013213619510343838195258816083390765746727287105291320750252759200661034469022877945325188036684442238675367275826298153431309644354369334425148279475235212207858706523103801047351813496746557017193605079354663954434041552515638615286215820152833362550619096620218993057163600688617200810930514232936328883417712617254810439710986092543658168608543702224671438948719330866450573351957123494506735475701501144558482063693312059105007362287486010765590664886372942585522013645379292472271078439300537194348371429825168417479043837529022581837440399254274057927063049825105043099682134888196884170743067242664523504970238694039705628474201863100914271862134043242702405475824416571188943777317075897098498355988148282581215913044667165210653509997986402891222945721177734953238791706909483225574570367373071653826224602138866466332259329056667685376421321309476212541477332694553564306165310995921266149744207629049414347999059805935324157305184499567782064482380370717360453293361860515435840694253441921672904659586947816758424425112970335988435260099138088001613304964233347176108131183819861954474680009018611391868860440396692026076762350477034563284824451405559177121164189264530867563751125391362621895077723950282311249490065432468416768920311059042737795664804456613861839432753091178710244312626842022335442951092582656523295286679224745070554902958478772606107674454803439749941911617665690254891401366807491432189585252749635805353427462281191095214418244165975309106346755962770127868463487988687587118702983545088458361077860872542851335199078601635712407053311437577299052197894928071964061855594470835264355863384381077326347957277102410839826958147670077263399493771299075692688620313221787795868552731787617900620007259374025866366921052603570481216602353754395470341989985394248687426658569283219337659776456974024702173238479296090618343339965961479693757150000268207622747515452744521029674630239741178356994807845493322785915798485508386750327138715401707281995473293805134675921924436931913075839575144619093088457091464559471514643120158016122592830462503938416410171549518119020806727187194838267039365091907262989753449900162348732407421737712706536744101535894698483430240639236309594747618761163249271917550268010359450169855752721387494630894082785835384861979213611272196354711521096135508905358842633023904919215788524773590798684144550076974015453855411435533216441334286750419126838635290169049154617903481097416158751858416621754682006000855566842840415939034203763730956804968848458535796320819164251706769035909485682886252011507725505405897381994041964079408840032111796478208672952642109094852315551062146260367064038698177968929147481437884025714224404474388267796645746568532844747953916887771178636507463195220895844162713635047410849678910254106658360608950140990069500821269557714292692673507273708541381815298772162037373090411516749877598155307570762171803075789600425672033074245217678982411825919079031876381908148436483465134387757891801648301536399767346485082562953628542855102368681451823168107583953124116429163519444632759993742557390116169590652323080111197489738590935445694529080408459135711228368171535444681142926979559924200572185862766076228667212912397217546019833038892207010324446500099422600999137274712090089123095046427143402563752640030686701131347711887487915386994696916019894283210446494853160800689069897435293731896667468968389212225776714586835117929002300655287777733960892740135447726234008044296529387497579867785421438113405840858462898795899636748148107112507220060542386821502735410579405007851481292410492149170848132310296146973533552498114977196130731875389733421711100034874058611274010680021171474281497653108971647169816408799949618897071003986604206071376238623870686118818558774182199344065383309846002260946816076863517314524035716315261760850410915977516946977145634599559210306393183823937874499126011893153467598480843891958390807261446587823951410517181352312783946259833526737231851537906903319606569990221579216555594717925739661277843306396970643173418603360391640864112764755719897776368534238396511327350153023272200313572628427689290235831547979478429899608353479208068698551205694860080827190082509540642368480399447124818723540627762230209920537953232942684604691526336514520555764753498263812627113720030966306521156064049058536637378796958317909271529559148825533629865370903296389966459819244906428149440124479179693621422600405569785063249540841978439784858974307918105492733496480881069133973836137045232468083427381238331624220467454788178855384082364973537750456383836229982217733578503673203440153685424502455707842883119284266117705057022477153146056859921628073986470149823325944353603344011360837352935377482532330439385829658925278847386917630217779133607907002431059258080942478931926023548916529614436912465943098613062124020405019962016413666943279133504194667981863443041019736569113978424310441686659581087738168242442310323280534752293866806399701206290490407863544104695481142353950543995341207287285333877350997437392594958052689587242664504539159414055117371636940433428113341871048981666957923381144235691752726860733441827350419424711861407239277979470533128306983236501477889916253869231747052094539790965763837034739706385369689949427274463093943479478936996348659646465082034166788973426812707382094131739214899551855581250015932721907431945775322018518673165485365379142756664549791441879592557091194671691408719334471886856643702071959251300744856538956250130060876012757772178615955647489785798223493357457444451497056692082417069450684612687818768668797817240780793268637015738262698853875246691238931776505062296783019040350775785755432716479783274260118772985378857712360919308686564248531226152559097818189022202605628227792014936882119593008537174877552291792693475969980724411075901616357495225415543600554243750254242685483914323621990795285841540573668617638511455733284200992792756921023732916317654705089149547900977664890898424547964971964286396949673159336674791117683078490050252381752798586620604206263091873661084309873927050439361337615909797940727562316151310336059712067060513859167905415445224875727539375446765225257093046731498577846595001290653224676639769532268943192317711194326192326454990562813511241554175426856200986740022994251059627881818159739540649459369971094975453864075478361806316359938078360419302971500920517788898018841446913847169712973193531583873853328883887572830648582099455054801476606968594202437952703187212008398878119325709411160587961164835208806944024652383458384001546865052960738469019139909467583154906688644113986268186544306869961612163788320871920276903485738481778964348690240322902132407192972268046641916534397441660203689829756481528200255874265232999653566121986129130165983450778555639582367926108953363132986988235246173953194923366223274952047712101970487909959655100739038864784149675172023402857551471318713948699246285377721234829016926206124312421496556948741475633855916210832680117289257130595123151202134939464113714319656364294360528344743799757041155455776650441451908860437915005389609466993292270622835447924484538309257441433229299418533010127739731672243120998819320097390697381736201970808245556085143887374134230863245259255140801346019474432459749382207881039931669761118629418864259248700408021343604483390965689305114652492056715021851958030728491317174121811329902997663476705607099789020671601667977137751471345455714620577459354117129443547166705355321200367003752138731491939735637587564725842073494964120622201499163979329673773547667546463554603861538082933734939806521794620737560401015481935059074839823972692763424203717347469161440177565477303413045359911950381582138413611101978284752797397037402208965005596892650422071119170053076354338494600538392234200068860275506379858904530011941868166693514692375200483160821304094557282388096365863463594106921216127960970995394755031855495418082201208488824731639512084010739118074450179180105433406939484448096541903415899558831499778946056200352721731927759032337196713678604169853026448355157440092125110892157976787635699636271351726293375513530176435492445250743635953579201110326447694747262177582558889059514687406050785930161167633471914971951264188604828826180788857420729745616277650522374097591312602960267730223285799403884045343529377719224299283800561452206940254647374988278160618339539664916613747717475196508943551477845043188232616849638167501072633755637889918131001734855164734367897883211969727658237817469350914229857244105284118874921072333492119671822045963346307651299125323074879554972316340524079751193705074705972115832702689713281157542871751065463925881489985134362793541276486764302077969280664620098766316987154792341979991697397916084076423061794703043753057421064743584424385457186165850483025740941612743487699630133610780818757034675019225995929171199941019246158427992104019702864444603061592965884631547290771323997068241983555778760111327065457783595694871954844182506404236994151996815180119090048210576795876736197682965282171013573704367568140538493884093910852142027790031107692533705027402615430807991345187923622016832816073404077250833680408311442184584733409944538980788068935928911268710337669298043413610652912663925819720395771200054801924774287835677871216375008725451796625674664743392193531068540973457659894483359631966796318612876386724454643126792031471924636625256865835928582993941866827888404161234857817784414074846329155535370254767581843891813665325655782046476855524031693298326592779098021371289480644539408852286527128642076619208077999801140250362894666031735555696677400138499289646211758790905606579715946052544572282106051721445609183047306019963112761278451181691229455280277441453002993708793409595781996519010115246450671790358797156462543421224535109440942423330973091967208041534440695572158460400425872169973568675207679748269236768886052243998228462363009498375691976644800787657675234774503117138087633769525996532697716830061915665840199234669612140289509629613384108308412808463871471238584139027539066089813132582455750146340348999459361192493705695397735385050434285950253767311386136235417327740964357065880065932684396387020248770134287314373800691930830111548936906369461770458585493807555151128997227727902093078159270480418504644681221224645132005209282457197830629383346797293630126839483508847514122466361919192141693078609666578315133134147862238386703444707880192381991619273274164506571508321865060632753084975944939402953433697003061167393044427456614980026499501523006044145224343509873591150682367921088881497321982363022796400931482590782687352483262772985247782980377729891555683771117192143916545225705464531760819105729135623434746773134895367111553837165693586904553581435035537915732227348665941392274510771694490287977692152880895918573965200347697123800021820686516114098859376161612302544987118803642074571764930505458365443358209507115572768887540347176884826632002583045168350790218621111248229639380339712414086382196829278474682115665781347217616183829030800156120630519764725170979248285544663272919301310765228470782323833092519536328232909093828292444652152265467877688380986994717689112149135162613692448227823293806653932996491429009299014929902734797017360716594256545227382102946240528340331975390226282691154976536006684320227873372277206019624633286626984651606944141758615455940968230116055311122165233427521544379846302781693216583803661538428670415053078923366328570894119246180305715092068836659825848903670706881522350469493087538179352173811592679015207249812147266112404982501964000761214238963979681277372828953466477835873383272015351950639679971637495915028276143457610938865089776089884082645510940349163912456396825933012563494529363650728098936795767569599160061087505891376196413234206364647979193550530541894132332070312575923113932909793297713613508733594485524064780809531478435035522255888016539651091582731160479481803717921091139742639111258365047894673493441771198476485659363860470691551880987411012804134110506866849146625471358562373394762132618994863741268135979470680196495478832204578375158078158648234804483965190264184224731984065713900347664840839890028808632636266273793301515897684885494822071219498107656018676476815542167405521035208766408972975475165449790384390771771737191295547671696708486376593381336773023695912291536680511209688303443064994867302742592261476100185205007445239109759533067054685888161844040709275545462565447180456530565621030818754401817283834937690167546346925444192270626582905011703263969979261445908351979233667277935377846136451925799534387108606029636794305682936271863821125608484533319818742231594894698965959758849035631081007996132957535220252510870753584868941994265031067882080029592749048828836231559545481557952317942360216112566830211031495900101908127267014368891701124901817038172795066467200569209678202431667474952836100162655877399934850337049365661507423290880786248738150677135364694162692478529413919482507725676172322708952763165907962290197334852545645393807780869171983409012189228202552281409868904334866940257617318996039516838366495957712259120522806302881616901492131712372049863083988154147631882753299631153366458182456606896636984429724888205882829368245994245049701394542779881013641281563028610335845138326430939616564984516411037307539456937333874565868107427828878215491279156308666121090499623599674345670268371192256500087114415447445113003092423158106361029887345650329837676504945988758346111326916445383130138027126435413507910566403194140404994676996422820687465706567338768776192735399518925125320404936353008799504100222678907561611596698245719672699476378896647391683029285450124317306931619822134086094168394096864388092982774844961939777143176700187279828966013099724644630924119925388951684421557748708283929174607990703999085096402319749324583842233157795382211548489653184719382736394635918739753589309645153713822596870911994250597357129573897147970842236956652748772037270615875132587737604619970225689245630166678842166778005852036980493942128892532003848472203924323525797632194486394020928201558988545970094614709547753055149506455288689971916382481222742005709320734546933634496194198652208466313022211985711017846731563193728360780580498815585047102442082512767975641883886670822105004135703375411234809108974750235103246273194289256178258550487476465977329429215847529046281365560466283876587888375704511070903146828045100146080006023128232833265501987237059586995429583857889301659307737374773699365200127466176563592952520949881840042233448296960840606616398740624422677651475701402082364566879695696378922505918578333116369223076370284676534916548416409261190413426646523285890960053139346892358414353989058248065922810108797173041154464072867396795695328626171672829965596406143098409422849038029330737428634803394418180056456055782263023601603667905231197960830973347020770658218824188420125633503212834725560123532327016443789857565848064138662120474678768787180435206616635351949155928964679111887429240305327989789017350026814666477220671084483718743104106698419354414324009121065411586542734380743419987170898350390706164855356185865675911450068645457272837244230403577387646606996366697129009629127481154453456114147623443170631139098102165509933927574030737507030408721438611097072950038634402663570110153058342913697495402741159190152167055980038570546652334313746865585209538259197233373177832873345768557712665285853275382339711272203007194354767647830971084304361714892533909384912964704614817355952436176197027777756483178090042018138718074965090948747823747656703477839572208890826068151438609024553657820909244297967470804444839613747646452193569218494946637749795231830922107341577623833477185387824600247533906369112339148311672546938676175119957395711217439998787661443309352098442975221802581280020181411263386070511957539229082135304430498199029615587479868866178277795905633760321999101002201168231098103098582485924884068128005563716936000637580533099618599780137495402861090048523989819369033622895042017105546105151747852294270346405076649408578466896651363241543806878711798237677766281999255374346593397747756015577176898580821387348387416103747747134844706085038293089592870415702666149358983880507504408945773050316016582343710296311801646551669515257070627839757249270339634138345373259525848946321626909332791951240758384260049251378101031212689265683779897158161460812729717793077692273570996739759455683884940981793326377227557134149692466646318150742459354748410205522080583681316442967385906862246209825026449233635342587289811138159311561390476226661803021062948336544803100586411106230838881758456883102206087814783615364915925903437999651022796315308164078439901884444160951615494740335431103560163332547907798006059806924977684328006694489106703868384098464552292820542064605636417647305894339841630238222523398679290960128816867284681493854940495545561066535574045627876510458262303533106507745611185284231465037385946260222076840937033472498539980835964919747495209788715775510258320930016736682719058709280691784557257898203220153675114625892562928578646981105038625215990720328018091607329778113144576588537539627269697158206785541262951462477825264171071959816288167024162562315827047807290025414217736192693815988245033408295061436610685164372011068072890569018861757028791238522685678148530419388179933319238508570311821768131847975281290762741077626252551049843979539900752300179733566815920465535543467818798325897751358243280809903887476111284983081517687136098637094627456606934166510955612673767734484589390001088433205690924029154773406864856485579132640950222023793767756277652917387272817911645787208848263301036524555532580306096791065739697254188918823476765804236665282571557830166123219169640027696495839078607530893225557003347791645475084333277514109472101115455271115469970772799873546750130265182177200109700040662680801475553195766699778814990098310058401603238692466084842690831148700574844460663299727244846437667037468665217027484114806255655949391091594588876896634261851499535691668268191869422179193240665939738685719403222090764232910258120282030585194338907955891680228194627441400540954027057716154577191536134189001342979399945764446802994660847140074929307831271215171188496305373012561582022592853154889711133737096050721170431010553831786909818126681235279710656223699392729984413210527622060163390930707614155668573489150219804661147078439887481648741206832550078096478636597506327064746515030500134246992597934751437424967549726236579666750599917035567583591067406644713082800056312718640308526825809735786307116439450343778440291240694906833523003887386984429812852959288108138325818078746608737205242342441377570839822804863000444159979328753312304904951945079178601011701646156257161249911008275820895154711508722526155906194581581188864214466132779198295542588853571271727892479796460782101635696848185443778673770303873962471995711851937262851068880704738056512908897897532629241415276541364428546481141594699333324010238264504721774764086792327726350848179691895231036196107847902225133770050479437738756455305682428217651023059576675260071928502391742103975703814078263638485548847504180359905704607998227122606395532363185114826944464615186828595887614889626007901025766404600386894612449218060058317525821429605132696332370802628130019565862241296600690784385905991589244627476620244298281733807959337693196054156245764143735535047371086246879476946378344324378812823320822167978596400124890987438539269857822640101705362191034122724422992370491289073244269161462414055216255573842475248522200145873317792682915180248848578157540124218633053344871773020881357636743859222967070502806460855057371754238007808238368325005381108485573012997089901770605495816400251166125696613752965678132391416381980839824169892132154365773004578084472749005043183542871097758100245624102514774176273039707801728863873743101945631922090988780029696035310644621021732084473367327040281432253276201187094707442938307706362843609331956286864384623003545578369318632901266839498345787143318863924063826299018701109139661252978525888428019243225961041054219794484406617081721929713504207321209004207265420245255353023086710825380929253844126740193636520796272967877816760855680836755112072416462654977931562596563984989036980507796603246194447762692856624126288485855441210955867794596548779437715319018456202915405660485066320869916680643097332524544279070487059327464420796996052758751385118020000576375013270496419487577980411211126710587990666635672402272516550060749019484754495303702544752364041759046127889110407265715774802728139457486576794397348184295149384528736208051220442896049389844792202240605274766768022467769131579273108375328192564057803099473575362926867800079295020198425051603585569304393936341683260357718567494847422002263962870218471090280165677384152651329268154948933645720496168853365302234467455397919223897732519074557015791816823035465597578151874992219822569620536769218955871593503213180705768748302644481393230473926351035761107558435038311909519676162208028273318258080077377709301285024860029842205479198178666915269472026025785441202414384327440410331822398819742303221907563321731920656021219094426344772153820737333437095890414753652023359675426433962713659978627335013014159289522696090248623030975544151123216850244540402567601774044743162038715539946194630853005682178107063154278582147096169087928920533943862931456287339092183636731188051480108218946050778262717488189445816090788065554915670169430921173979205967180622521409080317815462532693525886621743879759737526585316414690701465424830591511245736762733146496555012121577753279025498898261639443685546212831356396289385431658231197308818672869036087140051536149675561204135700249615427712029975331297012030008706826334553860435821146705676087645777540183115971669974919581816501436983275942505478687100284640204108555553023064262703560714455017897317543097033820908573807466144825664958832715734121533135582332071317803945956767255824160862133970434007614132520861092297073885161750098948271659690787826801981600504803708934905963424789597618319204283092021407719525221654437170014683332546876385722070183572481851105635708887135522523195795484327411368716057591643508568882670022777182360850155521017216537271978613639965245157500452950140328921631692084884144051384253677966965287170084420705121655405213660627509864765155549512170782579158759462523233834790812263642219943759014331657848304774103759366000175499912603506529353290413561677209502106975905910366565625286628972412634876025919822852983075945685446407322666530739633018634071339112096833982358553657391485863016437960488372343299433909352626149453744282064701398898684499272813815789119543794234591369235840803749602855004041296634412513726847854122299255512706813375125663718044757806869085280426040497861661095904906671178827820641630332295075726701940861403265675571903776313626440209086787297187893144793385336551835468189561415400031940383937563791463663080502328366515577687320291427965933138721626112719718799538823956194173779192183334832802951082764861235699071499956540194331640497986249722586906819949988648759621014714238951857041897343829120062091322870772167929316623231519035089744519230435386822153895166537662019995839679302922074539166914204373243044455409280246639768906199061924132938836920961623811858482371779525248455266680293297963453202064850530892619109573742872113859274588514476521595660770152270885064694525452317828079854112686985449091160713752655976994324468671771590586242228564014189559349026286760087686001255238586695107252861902595852326864614815010662012131204422679789605272495994557212831807322312603577574671902956354879492192536557307163149181178460468624091829940950288268965478928605173069411835420251691359407126147279979767918095794095581309662974843376560882789000232328528194481701918196296688056076341582829121180574415704972324927220838489569919245483911238384395906119525532504324722108729309045384118830963062586847582634805240110153818853141785628566451373958446793222253013430693940853652922194828050184589978738868102304713563108439279016493145658499520902500157389920155615352596649986011472777350726664993055694567198777021221979346814542386876069567377334911652102491267012229100550359673738284279539966418137497758488267527862660768159590040101746527280168132803269022088730701124512505965651078947888640966772445556412881240151812053050250141019093978425254050601473616192335310218683202245811718497772533064172808260860333179128029602937583532970845401850798450037143564197115632376426520610444358031685838804729777975754485479923924111037121356184650813155022416570057710483526960024184693365839523193289214467359801214211203818109842989791028766990579550768125691253648847908645512045556605993077637851737325694768194508299834983063064367971922654373040157674657306487835327015698370762740177233254054387069658642617327343449421047835685874114718562403649238416793154098055640355705093790893719744148299264677185690866665583299076315542727817808474147375823364261445262460523018610721788415185784712337257731787645302910449118638273021473717907791251892890949908925936936223094836888270998924610207606923034786425451476958537711860196138773186925254849812384195882281408493792180535992945119777872108105041679169899166940955837726543765055990773656286610602133730682118129798851916806611028459772979454376850576901277817586810481521401413696686629208573730016827128347445361158082849237545472283289690170924452612040377507033437117907758818598115537178003103333748677773448703665697580316649138350709471157644917775762412164286318973322308692270886632240917918472420548176329295864650197400167351917534250189216445625232511329596349270126505354613080345423229913380259365229387795804276490356455109261434884647136744644713812217042488907687088875427869515929869955546330654326304174666744092424583872904387424097550682579419074155748495483852926745510779499376107979686097385348414666693512947168846959078511010748297760396728133497896659197517723312483585978247881144720977986933371435237335983399958277109171669253117214414682386855815326617425372665203733847211568196276046300958932071073626800689653864891269397187733024962781530384275157430078321881113198012900469197645823261689395789757817809759087258103687073958400395285772640531155934461057858762243461385369562138403274300352835415366309999165761872420040557337718108690183375310510833452332595943358847918465789472574813793739287636745673374011962724658456395288524137026354731803913022486825841857738601995258501719630125096800149333832815830980008209702150616683108529452447673684992927290753175689971693341930041159188315843035278681010038441235572499086057416029153252876912303446382287506832630495818825861464496513817856743078889509511049892475813781574310972938195396725127476721894814016285112952823157390784234660776697825580499017809473391504009292355998288562357454189793044874757081464684974119183260483501885765719140176464121853437457925787764315772276658857145062614004349694962625692982144636859569269713454799622670689059250724644322123333791178154517091277928741280579265773496520066766103490729843231021254648775247878225493302353196187290534703405994699655716165560258024535852759719485300629281097152113136249333274209302578814586078290102138430390861160597831243848798973828866903660397577710877756640535525963765867143482041306018717008291372755793856986747806521875281236923722714986226060890106420664834642649084658805455533423825582909330488077749401821527856559101334844627701305009199705941714520674857176329550944102191793574851043024076457389945392099782101406362615852225445723636329302827775982024737129869247461190727025750429052418821206296420296276726954988128166514075427312843205981095877681728461807959960157131352756673742784931311560091025863315097535909950673037520823084951430835124640040845192201038340934016767160018068724188884617020221313170230034082473310703637130394214776903990690209478722533849650276685301339478864185584318727684733362894682337064020140870879809066792125624240426888317662176664086329873656615023020275074865675862937218670343059793375273281028820686727351876214481119836994913647934211070473094525754772821990038214615728890211238348141254165715051567837731336910731533551440647081376017386263878218974506938415350746471932595318203108624008102966414647112347180276931004087958005588395658091709128227972823423451077944897227757652036707822973781241540119419974429705678791509449560331170617646293895133780009646095994008359021630990522314375989805727181466308564550335387100197986939111767113605913524811725506545499068242245153317851244864242225281668217384481870381764128505333965748148384540363837107513426274170573538235128088438321121074585600864990148650645028430174703602682337025178670799581944079047280050340953600007059459852522745181607220072095491650043552541653824662292758875286184929603045334300616774966012832431867146179909469703909333863092177828771794675474677121325228224274894770622037319337483225116963272794707788945067069383750693551770435927845229567496629984549423337137387052614189111768714490920011868611137085319947165574640481888133914911623044614489552942986628924432858707458082280192188386211317363512602587634424532029233923931209760443093042810426358249273434607139758281787949881344331854036310089273827017537402463480020674256348431140677607989774024471512706771563439891891698087469644676986694791825248497742526414415416042218716979669201617898045638187383190150066923033478146195731268978276998307456362004170254967653285046662936649820024761588872979462150136501082428932188050669960018438697650799731760909895473724962190891422370645232758298906408897845081104898308927967054658557011272801343333398207767046234304737302987149509965848965878207577463035296633650355753582075475586691770228396737166369467729194249878712290798768919271436014173215332769098317476701831136752004959017980492263357469022403063077631501567264469107552805071452138481955554120133797671817861046673966550626997084452621861873518513615509550999247597374809428629787246656483995805725073328190826935331319836241983363139812508093070202929009987915993893945053608497251094619129959523552769849929708907818178989611086494151963711409303871126660637408512531076721717523352600268578763023766048054831663599438230517028863127199512347938160050022698451642284190968558315976643747764953359963082085570380286052408598149234438677944279813036054047669370346311295845210298031725638358220337307314053808192721331509007331602346838360666064629838010936843264495046041028985035184885455809657555307750986617152986135549975497477110273333416415785043703726345249352365081046013369533393195576458556923208565662917276614792600666153282738323430818446046904246029928741180139632761559468029390571447968939806154132430691160344172845999124451733402628180064664639245422684129524083527853769561189874622908717013601849327883874852304429387078147562018635052151468131654820042404985685937395410961026421502509503248602462450316857274505653563251807597031959535626740631646771161891211778710329156718772635065339757937381571099203580407657763704780375256437017350067382309652445906233520878211404198142185789600382106371302894414626519293117274683113701443093505613537064626632735390352321650707846272606861773145490558909288614740983192553636688682719638638456286339190975474148753507358594601093167877777228481605585629701522455278842293525735725938637359865316141315660771325517181432435881521694565551087683578793126850112672253382310269412349199595442488793342025802905628106723214507228860041354527559349770833708294879670570299099402630501631862684642776874180060574265812160609235133969060185344983616994149667314514114309436464721448152261632949834359780664421068206160958748040708166503975329966543601111513907613211618348811213834138901892124662541879456814996894061604811086839343080097949618473069936614179486675644392624528448515496749842497628130285700953180728116165157693552426725046320394857891790405337618221932212593485894151967801834664294532068352251716681234744069525075619802746920423520736766469444133645361290422031683521665441752590267250427695507451364738546852615747760261753474473414809981149575144872287644309196860928805941564774047999531910075264303523861358286174555295416522318387016898016187115247102396484653164155255897806226078336397316457832817784901195416653281900196397664811735575078534147495853582360724104555796833608278995479552625161155482602486933356139932011872840477694509539621619459123410338321632147713882564970024354107721904657971093608707237824170132654789012169781707197410424355076507820121974047795378771255495362022537887017586633195320914166944316611194237992856206827547308073647641745644618278902896549763800010625719877316366801995779995182816678532981736805397269709832111537102759699910298856048289800250213354465162296991738209442950066505359905691434903555707147591153976856731940198719171193348188831192238901297171109505154285822647985511897108829657168871630083839960622215872761362351936849695567551183971566213851773576754259430380963954676278771804290688827462734928307960769177470113475885752491689895727137212609002158964336742056829470590490699124933809196107256333661412903585898250412349384553265856056959117960974203695692782533643643858276413606881996713981025353094764092278410324993755520926527225159085232858179735421533990412079022838976859467704606689341830065610170439376284738006093157164335996455662796056874989723953643614949835411734625810971516704957291168843546731179501721312066161115741938274005502702668187608171382440846513632054638380112144027746800829743867331644358496493115143226676261565175372525344837880910990474508339472091443654741881119149105905647861836750668054274355174694563937313330018555718900103286995637966293528882657487241263614382619565359166399222706798806931094584532559987390194811977758169747657541447467382748148055553962144913756979952943041029506466608062328256967920413168017777619836238457570971406501680182476698969947755096609532790807174344478796108801918263378310413015589993641375605740707092249871164902630753760563603137833859489050288113959412378119345667358813296614601562266961526654643344344362933300592375589849060167213757721548028962850626116317338153223174759254494776471324838202362436811597749478673749122992690509751869901941731085041991398376188065270144804527037508747947899200656569727998733650822043446196994606084751692974245542748181211312397800494609279647745603257605211243174293248872552587968064916118730852913210373626237592009502139440878148831607863291241273826820414411101937991706986442990201370166307874705663766287168149114002955452021857191747923602536066300589243501326848305195772670254922642545919188408982346477598922223884644499558164293442237179125840569297276055381673139552110088515838944194490798721756263790822207690501863337905973757836882406310626888815718133787775738852441788924036534404130236721575020412327735423371477083091224756543198511411913350719668157279712040106173921620218410811938860981122567744928583402089349846569049442888846727939509445293266305257515570254776245828360410500614781836573890438457062005745849090233976597006765222714735473554811948335423687676108942830937235955788805774865205121180922740394597893296901680546731230553222602077614949530310641047263697179192299099549384735275352723486983402727230117340287958989273919813956270816523769112951980188339308910691219469131431041232003258880469289782641458655729825501237965497276283187178059165567950920118003056442438841955047684363491005158904056996997080398139847881456367830619087327524967538442542023893991911785665483356096446144843637957504813372011579731514877360402995079074276179603518122695669432503991198453665189037425263331412622216943681278365502516903194966564373187150337903136412668575795370968203693442422514218591970946813562872536267088438421594454741416546939191432911432369362435505090061086508728677137633837074029300252993786555269887292563189624454184409214433446216076017759388518186025268416048026100117971836883492480913441014968505948486121129067385552065664648218982369607890577484829642621254459461566022099801028982228883438389180507987490861012326783801897754867828914701701358454802986871722326417861199350144109887152881387993528566805255041085051971507943749186819943215257751825122706456100037970017830607767853804834809398874854526859478169560309560039504964795901879594792070939660617082135210620960410206965292797987787217267485563519323011688135176856303577499192361983805935198343270749555003403542501126425825807931391936074990798855262621056539290615207718060368494383753095595365336701989351067650545297112164821400830091854544397748473370705131143475327045353061707786607017599035670859495787663180514435530809320700084898560960880314969857081715893704225701038227925277667667748336747290204913036952702165253028587177296074258195590168958983324868220447251694047652301769505936004013741346485341949052946339607554412593164703814982067573402138282476028783910515160523573483987586647212473038231529636207089282686154796529748509460398817825945117410621801203339109425596890376701217640547406415778296860588967711295471016563074419801107405655678310551439889546107616715571752230158148527545300686858427503919443492148966104301794084677123028447979262321638102784904715317740655211044109308978285978720590128452033254634922612080786597994787862953982412546058074094956501351591618208174118840908596865643949513949090254803932922339134315345004452523766730572336376904255541759558985060835903046831247538227478315509000009657720959784345469774989463342822353796143501212948217234342478023442218846318385043281813347514244412694774266628462370217079314398276107260278980092604086481513161574886091244200837502964600929767005710351546732636505823564434302471634715341207839305211351453193431918015899587310339078215287378251772140599861005154980132441904953047455813693075697010306360224529948551502777900571353928507829688324506298301683702213518021850628869876592075235165375603991098296304998432833661245097041993763318528089364282718623436283101181526680807522781726960027351823446055988685244635025998209662152851154715458988599831241791610797860927269083241997437820199459553927009249113115913667976107241966907042227996933012422471375758947412736578749848527578170879712561546057755492337863039875798786738030792536501167999884304371556232068277930682740951145433002200654133585917962982126607194851446204987197456477759749560535509089149012479921936684042445519389063412042405946323158540855615864481026527088198174816592123439990860603595208506403216905563165936613511702724485026132768265138780741126587562843833706724957684664528158459296000586064166408345435427782646230196480245088320648589009666538073401505204567945247196187383577067974049443679518183668659284312634839846113416804444359653653325664521915142140727193665097195269929636321935494360672196863670589056742925829930570532048437153834390932984840508223795053892755060174297302245930596042063346732653060457031584413920299699087572304773233285490971437156143822137884942432848982602888918270421361652780873881785413956731712254120811606869686513534863724554797525945011228664474693906556435342751091414596021353255493547462198402037367114772571906472269655486283873582680625740487922509479532797231340191502692267565784130828661660596948644609325375687233891945296696166389358453528927620276597873532823840146109777325551154789431016547522510680903010144269076425205265063064104904966728931391536172230942239771796024942907849285462130413574516181365576095784550510895556221680161783256286722191682626664583364909499724682010659355100791438040509510098936728086108633719617228188494310048452156064931417072380669528011889343838262886173372041768757962300856742542810114145942949922906211506294949279826051091180569759535141217930725793065221169298063573257997097501308356564556631943129517565731123605723754349988415605702533584413607316111140167759512253722852808001226798445625986717223070104063128724438382677061446892918975122292826306577853978544325300839303466151932253124006043128412565574124775381118060681428946448328902175798387210764273381965267618542496789303412461493339232785102782121470145523157780752962103497928731440019891364955352956804874077957965841004333072130181250698501995154196249211423446957811942207291870577798962490366734928805225069647367028016760027398876987530965579782399586774043084602049621072292418185958913629436994485522120706179949833184763739008988973070332757462953507041513644512525238701598862110800642945857955167845496504090973471217626151326904994005735745271960801392992087429144724587970197638177380667188656961168656080084692889288516083833104479464467096291088618867834060395456326498570213786398459012898310510647749107796200230431468637917932534791091326447687495195493355962548741578308723096052472837215306860127791118004016629590678678867508717883330124264648699620138280246058528778536786534806170802684897699713719412656238228506823007523393062898620978495316290191259267401522101067243487075239500995309627909265717417326620814725950484442532825362830781468886147380672358581752868066787910380243630243567185048287646933925576128381464039274115851813584609494497815019792083729867762133541579554206235011632608691785091400888616301822593580254448052011336233269002578428140070046054648893699016705101117007861383164831537527431210862318740128881335495392519909892886099140104585855411593444889613707267128051846035915136780195964776244391089306472614439116299120014127097146015813792618736688494919710268182531401244396324421369451837029051358522941968363135113634467608055669123922124630731470257173190260458973204727342446502285000328141856233289366058072808660775144606638453382876805139639443802962284855854566569964227007008529765449285784230022744555103922618055332676858366659695280649191495004636426253403896021551278762152099104654873372128366479262293079119247259740705893113007974569304057321329429483586787252803301418648568345251296397759381149487803307221082354521336011973753521966433882784505223494835217989414329189941442866151990684184542196913156629798857080538876960285316929831807409716723159742370423043632102079460048431745395822736345812358280847149691658317779125094050962980188704694455795949826934711505562463169983707918316503247889847209859611917453977429863338588829223841172225655133603203259695588733086593296845738541157793181348413957357809982436083412366111528906510117456450143003195058471629580826857635225541012750182228301923189148101271301916068301693116241804922031055481070108210710971957621016326068766213174854808903955617816053341270793507787116721491106523044448619835964065343316165920909962723002134048294680662595352299267390934218586209560753561693464105187969820231154617121227688662428454795070096180908271264321897566025904683600546773730940685683911124060301328014729821789131857975602640794883946916900273502667187287980299371950440096756021900246212125179569057165724593908142010453327006850469415794025338549969200999706366946398341913748196255077364036997317801656198312909484027577960481512873826926246617684516467210189479279228250445862532605316511187212488721692932368471690282362760191690752219146606905428726754729400255009398191766196030105850230710524591431050001643834158373834679485845374170273191776150982627701475161728342829873078278434836277555399414368272839315071981148904145263180827758500614763739083034748683023200418945535330579070592081488256749089432188736430015304148990894220713154048866564562273838875826087623674611388414140861484959446993485859183414432375719240534569889168995021162339416970413503866448776815805246209212982733005784107668907808043779085355248443846725842601590799014068002628199396004892652928228664691417874709427373605177342251261995979505183618849656560164752490324890702885674507117767347081619566435006535280535961762104170307974194104342761264476760698767361436582826396193892848917510335819137157567646997249610515743658889039296761573309098115817034217366436014192448238989176508668124283967978644928797272888967930702780735199544798244956945705710136643595248014189153879271239762564753779768805071997381482949782809990104977534046716378280975014427348682896137278967768345057350965937366619960735364851593584087794986467354876352345605690235045138323200060141269751062056941999698083777473423103222742164605527891138186196285576817648072788563865546782010416383867954716700677206579293450222879970654033687009197658477183203549234722345328699582431502806080070158319744153518913798909559042436641419736168932282287598857152557730349813763499064296237239699979592465309366683580043806618558646178917894483628208073445485189533040890162064089047178517905246511900432497407759118497031354769986595091886217210606842031607791575870236153337005539571989799364148648667723626554295609687492196322294157868399716930299550407069019044124742189890878533834508442890277618751036053376571122213045287537639512403755832319510237066657613934543272515936435552824674369706565898527907556959209357573599353178759932156668171009175935736627898886861820972395413765654649278761422937819755071115157962526473681355636978650117362843857420925541191298855804766148174388855667778761504703355165595483933112798244673839986672748797844338846496163429586129352361079971263714828470599306882358398157256642225291696116413077032227157137110391884914025915896205577774007502298890324940959972727969930734354054023959264047727362686632561413563598642157349631493560568542224648099442384854440053937228585531827420603168947438338825954956391391220978653388469935643248234466877046180568610339671211418398717550759715457317953141740575321728716357694741767464915971342723646616787393539056465359682042185734648148369613433862408242656432165287862131754899442163558798931871763394787024114994158200122752076802021946778343265927507786034632973287543396627618696008252115794532194329201964904790257481599034239993210304183470880380166618049533265436635099176793933860086683453130685536575265902293592680400463135267151841690397515847972423624698063354157383661081578335098271344588243455242049749092859116735655720071860257368620710781577613136626471031892114046557690341651712760791613734465854511272148469098600196342544150165319332265294467849297949619247262199990550951213916544380288815330955653127263234793073256636371958184664546014450363024744744148191479731894438980448030693917969938832671991549765586237052975516911455662393335215099341403674113453382998538291544628668514497947888538695578559519539960012828874954117377080649210218363597095532420087617421792891443300564521391397972993087373090756502111751606152029015791497018070262000416069438507608243328916950481193426005849052359463581676590455883868650953770278113441612220291236953957884456257556071118955963921988915679975669612474025323019266464976317260637666015488701067950773836643138157460913813738267691118363640025601266218425228687335948807885755217689528223826777928357496438301535432091923258821646709745495165542999266235999598579113683221095497067150055159811968920792689603987763221749915297982628403377011401486265279545374045766898780916692472778434460087382106006978024715195131617404412630500590809565499538800734579002076832360011531298133332261824154312178739105469960959613868416826092307124759301198387634289248910484587657631728035993646370708867799999839034753998764603576958166289791671869045396003733581340846637608437740171473058351509251130552859212939334763435453916103676595853123448525178569704349562186484285168995537095681584078463297797527552067390732589736014389830892882679064364652555679481996281399986436946880975789551138364729438595621398502703787210704409985828262649778380184845338992167614868492528605058823138787160448457651034474825441004078824778006449318135773001157300434465837668825254774834342062458110556506240315463312882527247001159700407793770956367148323314906470064014891313483926929626942322370626416019942177767634832434038718384977367489440379174040651193304603281493144764445749431853047366220719514869944726538720996696112291084463710437573279602769764482083340064142677075312509167839742046005640301345787918307869813634845059861470078060284386565583897124127122513487263410317198364161449317584145916619988923195238134756478514089045375246624886597542406265650755630636210412173431100380229282892740467734305821068896020598168120117903338560766125597972103227485305757387092068327212248017603551941250575042175090569530494529329944087924649480004175994682101965163793272902928762113919519166654302436687723108196321436566883438155653004282472261679203826761184440568441062577193269555646942920872304586876638125236856494543757416972125183900139226012828157046573171781684738902144293475135412563276203663249528520232622893226950204583007623187097864319384395957739719145121683796222738670506810374884705256345337517619183335249851365822796471612548338896091461041281168915586950321052030654331036491577245283123819891603427827396603486006378347359381136091592394130990713351263361925522448430377076109698701101888581488911329674793587625695904309492249872617970946211862259318525240895421693566045035596760834241032471785140519494887797388046462499768596719511755845816806754836149428641252531944546474121347004956065803685806777680375302687525263073595097978023886361537479761570824062996670923333641952006172440772187825388306254131324764192192529299807589692745676080321805663521744313166281588951579460073882168084378950356316495523099847756831438755187405821540377695583408788157747154931487253432273140924093126570148129674907935316226169768670306125997149874246803955540261285389850028443981285719459679659197552685007050866423942258624450074905851456111225157400186622316911077477939995173357354604509311495916150681438508601043291884301621110095794349353614668532643639203379535716218639003949788330007938460123500307894123464087493328181546043019423058909522353812352423908568602942439135640992817396674305079103313472616242702647291066686272833887496903387085832820961091057356949522492598804340373537169629466136088702647537037380465493279365762540209454496315652492642352600586975588322235391866122322449477172898957281935771390633946989887198628823047116017754664907330571422713649069272899532503784297965543587306957405592412817384353446921293251526847323856741547693506873947912567549654037100127120718080087972907544312413134101419109927875079204113916726201109417795624596272790667671776901646160626957075453726780620074898767347565609781130826592866067138369210378069259980702944822640184466485266106666556386414241404733987448501950057082015684812860872280173424934700971771077841340835441565033204047484205238041612495858357621266905667103273984467636914852987476755669827784787024685020654359766777025787962707263668744460412285160809428389117473772421025786315287737992709346334863157247979848527995966174885041263472394997135937839734454784547616076124630406245764160820852596419578887764160059483020512237923031155905696800801983636821797948100422229166686035914796442202921481099354525657857687913373843193594910406724109824792621575859350334497751043895653185495205384411483407085839712287958327368330264416959465144644608255001636630203120571749321588971807869712169556703198862989054950734203037386248545544303919911044150238888028230489868845796114216354045665315565530863344438629356573576392167269234313157842279237310594133330890587501433673876953574831327899879517485441681219708301640349681615472659940689846755226250935660613201762499963861065052393945246737914940657755592805445693408688261229970365648344301190180350605338908710666468373676085804044870422810070465644261207449565242385564719325356542759018846965099065710645383477857084414866130856564967791540555250839673814621786108729138344215710648101692642973912815504975207076276922266497529342023068317085951065140929482165984232269047282461840385772410713188185394610617783523470100688075726104003640799286896980674465192862987801392351761143067013710926667646418072051744223209295894533083638891037825279996708825476665571256477071776672911554882397580338051126855912407048514864725797155558338982548845054967430243205118274694022727874685592262558479099632531753586065029365772537394454283186345847156884154689655453359820881740467764371828001173266574880176620049459642261115180851760963046303752845721183336130458155944099108818689271721868549889426291795574781958870635675406913717919753407158054841900840463147782360708554209180117903483149873622396448430419784033724137494076765855111003538487240364906436726926950950940956738194080883009742423083982444839075007660426330231574912808917021469827299998078837448667447615400043040462038435919428039718942278967880304102926357941856217749606758786548367759341712894363118763454700936601769745508252658616773843903190846996307123680098930755615923869398704035683740164830836168173364881058328639584866335046395851868110535640658922600308191735239811149508927609402349413383543568390494638532276731813913708345091625644284054344854147113620314906861665524094832256048502342652624614594190113258512462992264231839457451792055056343131717617591747693158925531955205150261799012870228906126815942751592470587126087391818329951675475154670615279359506856193427170466232191990917847409805254371802890801019942363290611276583396955793246434851346675790821419154454587531274427335828299963592912162619983042646667016810322441896834094335071803530003415602766782104876700162774868747458142255990059714420736469822662909466129590042011034687473377272356198988375172908613177799968239191399132843886895052984671876423335728242906059111009599489415107202407456655264913784585916627164694103830387608223161843572011312819729170499632328388948142084032865583399633095251395085190858217181736676647733521585284837413820523643870378619806868852915207983916717487500499255729424811738830801319879275817286729354879971289868029276130939228995848554928843733647393928432905138432148818088823281759126143217797006904293251137308562507811000765031855856544556912294251592745695511909818124282660092233768576843917207210018074613804614285759031061673431293905392538299465309897703834879070689320262465918329589667134387139427218648116963085921773516430596498330886778921770866281936851556240422412324061185947895053679947364745321298337365340507360650854540220829248142050929833092447683684171219618221081920218182697341712864575978333896680550796379232518276237647230684980906885922636194197342394586984177416425326074959476335950522806264631875459082451160680081604048887239846419895957142556763636653832270062944508955089332077395503557205796428697049202970127032497186494641683365650649024500076790752251806204850302716371641008035667865587286755239939576747396525871292954232044462243363929358101260317795335985056118632948456093378676978213589656203148565486419488782019981598229810456560991783078182397282799567774687679946903622856471955888948463429956179809166187112335861490625823253480679168112092769547864457531975371277587812055874968402575083912050409135890372072242244754964601241524022124234780305426327720452297504367903583251909991696633318519877885945493693627450944013984652847990506521895277019440549566218559716821462372427713043643182706241713624300079446928670747981099218510350732758449726969755752352423082948328266332894421290444951520664848123775648407152646481072255637510432224535298051884313435731226911961325165030164084283543245427325838874654903016125084021435504688746972153613023670219557316320217084396850613759984014341084349047955366093547194676344989809687979253311145697640811642825851882441370894200754599401031806717546106161021018252109916577436820882559263471532167763830822266560689820245997757583949600610115635564870144874560828496287780104612413058119991433500710377886456714255917000525946945162882762541740091942134913475313628509496452371642488429041066147233166273131147563589777295560519533628714416774461377127937410830491921098519674435982099578686745443203849090173013238672987616244269786241362838274841595870270703659858187998391627888068626396836579593426439273101544892516023420595892294235365246963145783349992335710926040095590595985745375269493887995232396735473387452942258973906569690129119769420219988154390082458724840411428962211379891890507982824320797311282208697779198528542100176764496232148948374604926088209557738546804443553613921944510048975912536727283565733384723465584687230172702697426517931815267641373361432522278173568527963779029289911309112333504636885894567212839453960410774392190706723955659800945335363841781755438634829459452553798399912893766234850508572286273849810039861056885980695415533674742096797479750119200402961938663798235993432557224740618291067589878479567335888667647169641351399128215425059818174355114143735828655505416191390266131634218526002143020540431343750629400461719851598852347834679550667810761235558056283077950041511173616417904433853551220088550458988572255404952592864166310821517259587911093306643403192571130858191648189847930110928880695910022602944067728542821820174892812857273852590955500919705150365503070480270916629482423452578323072909315637470180607032562660238607972326104286806740829692718636420167762646109924356416160785830302505466745857979112738855910639276853322883398905507456007304070438768622885114185176073469043732494567239252532035218371965881680295901653517052707062360079183286597584102022815862352559225215905788557494988528508900902613018128198060349245639661232627052115140502806050895652397104223464926753573479121963647688173079929026074704305084834748283293408009447935362586020145870809300102679649964328302547524302351259130427031330913258481806895624171415542380366578619187334111863227145605695472887392762538350338633938702041864634427551112179658397343780376939808405283813082468940444209041588210606160123390430119821801349496487954323363439899449860624645425198355675334708156586878628356002388634079464269421554694340738367371691556156286837914038124129686519487292444007953330717851919861611625897514493913544171979324138329108967457923531699955852957624078610646175831915377503834067814476957013571769276621196591423210469908131537782768135807892086644527890587684981588561582016774189728271397932518176344165528324021252587931420065789210794363484706901778580303658645617054824935313672100382311887356516456147735761274029329539836778205024034571869429720069044028504085210660580570370994899428215878338354645545047622399693823669111836639099296706902541111696179991143585308587006401313670504291732257134042447893350982457839872023187881851628934242192221658115269432722334033385396785442067099730379734401326089101845442372512483211709806647212390816385071316996211060181304020138548625454328236023048768254109514683343478977930153334162191737194901722177263213933808036183866326143089711128084059407317604211385300219646630557776722545071868055247641152823133122967131919118329435352188470777804374480200654659090962302852597322770036614974397752235506479279405924972483613177036942999893328197178066824665693961560210312753362829292937427547438448961454946202807344526747995855715595805943610873605474602485664272238598584653859866906190476682116727205798596439499296612936979475008877201491856334973976921599646065640689893037490330282146184424708356984146055737366948154170067363533721043412716573898434559913204860414555570904960711061440499267287641490278656574007930573327452649113845476173443783253145296080760974864208776065434191710916696199959144619912931576303477119129255057594719553329714708595294035598581102485965272093330696146646443563885190569486753170349949909236706464036104480368502746042718209135820871440894779204504471364468619495631742562722651807967998272082140226870490640840836821468752890127042258942344526761209929574351210356539456769131412723650945728191405835782030452649987351195697901714320492422586535843121533854001244729787676319265417964153256327747801188128835054611697468681950860979915443428429383806821227571120167413487010140882768652395536146979235464539479945081857898566284729663648787893160990646115796772036103678548135332529226378839395831218217256629374019100814045899881262298471399506507861295382612483572387795453398362855863082617201578441318225969093443033099911111590392740739984714792927998758299755948526064997278900776392761638973794745339145908599356631503699014724629024312062962130261448466080750090432022389687565240107780941244823839867571635311133707940593869372202935291995077872735194885013827090566169344433287100558514335150325838429229589900616663158444098316332814443056668490638841861095986533810138283516153661485589776363384833161218649327741849287245712282917973428451926251813017423511257562977918932968483240099292552417073817616942191821667775943278689473064694517187843270199032223816590319796084145739536632108670786174614701402115901734408206499408152674316109231247838155321603228033109793854113920416534260131138879692030141750505119820032493707742891326632510022721184659124707437925415907448430819015326455590074650847976314779512544561367681463863788401664512923255438308523499487054143265915763567947730088523803794387520510824712319425424045066494708988312354088248283533253193091294989528634662147249558854399333024156608507184486152481370605182497315633019358589483906417224262085256470782257235985092259444570173172636824297316841176874133873802261013863926818815784452316455716005836997552986297994031149748120999697788124771035671987161698956491476013460837549124895835949070828972034137622930894921385443178517326079446313226648178530105548450666876412573762214354711816232427641816298092076257393065883695744542850303438636439109376765598277230469452777779027305768714408753870180987051869714141980262699983995615858506044757218952192681085288645055503015779426578964000886627308013305007169496109490981666024247916073314018037669964674761852087063526118286560270902285417978529305808264214272579744862762159768060565103593531563416357613605112064733432622440336451666147543979459467403531489483210418649374508774735002583114624733361735768724945867655595652236838636372064172490365000769577659614773244991974440507534761811679444907809378035049978524950663507737073906005701315373327909097891761107685298259964560533331214605448715627637320033239826771267401126295081147063717647596935485969158404626528552844593807300345845008705202313952617193276477603036662792378321134170752100117032353305239531439951810528123065074417632833324312558141915713809953688863957908453744468294837797956568480661376133695382039002028460438090696687706735796260882977969567805719906597053104955317954756336016398730481450557961129774976948437722310267356475900494262083253367835134969910307381189017109802907764647081561120626188532736573066330346016042459441759047537509770580711207887207459893835038660731038184756945012080381369265777494234295592070656874228159757585934239978512372004371052579415930251469202908908978928811282622237429861867608334620247360662197157094451787708438776807589756560515166165190871119678346103588361452912837956553156476189340915577354416023641321550265636555418057965360801463401102396868103065003703165989964033483297035970405093913180995719048358838158283339525993356591914032423762016136980158412193831849932971638654438940011787498826480040286043015832502977915993241452915450737752051400941226896690018553567292194551586418545372616912443178387670993562397055572895130422722472732690051667661891048172434969324074538290394356063084366272753802232679591922358204712519477952709519516294838086578384050294383449699677296057339826798448219373083124371575085021275632497243270177898986255044011675583931598460089618190137844471150481450072469926213447733338456422943593616643732264597049685491106615359693201020431575594427430408901058040202809160307737292840055988334537990446160794642436040495210395546305431671953795567103097523455491896287835742965349525576438298513833187902135647707554183286684356877857334566294437914424611298086916087836577952317832161198454128954139055944259460890288753480596181746795387950006705712296927326854675249847475139285492187181359740029651880954365465905305203073643440125026055559450148813805205157873567154779205552120469832509633733444677579348475211506521310169346035503261223599987433841585295019907847789263792889463456907926561125556736640190945652800883470846393680832094165860430823301830623256826754161521118274301590475455798316485320602259226464503524181225531354880049315810566832624536499650149106068373223842248795117234183920549060662551712147005296608155060875205403959489889653333547202361888457214132829482913186695867914831561628172366489504700078166877116843044891048708509897908586389640552632400682850276578844895709963707772500159206600432647780177815878253248830400008153047053688175699900103251213230072756681203961668163708169275683567234069527844891245325963971170510958596767898604776078780973180914094543922193231895228982114811386168425415123814863398427224359418870414013651026073255588017354102569521934695950862990764240288376743629540944779367203415675862483249355043414343751970198123192468969970972778868808338389063114102351327447688631907334902224475312025278711664599581147734439996733666692736866862828109332331508413451672774335968726206632619248727834966208831839760976628334982617800891136910374283487048292035482921386839878429312266425062946413295443209263312378912083587852781056680819417667559212519665308382700815225361264981746901545898923057997193139332029248615403785713549638321358284650888819416866463567396092711940172229803355493356499129489269977183851126358385961336598033875373700089605693813585904653763826826822139059597044490089436478947502389967633083305657388616221384971650311511208082008404528469703123848643603014113123653333314680720034041628571043695140650048279366318887248125764098035882667112729761096123995557878222868904375834507501381414068033606370722822259196138666313899084299448112926508781502241555331041603381431832710167672452040692239381793988958437662802101215164414789971174503442474220483100270988269372271498105801382601091996925812112062250869963909193774767104963857356770562089530504583710597007355805041496812376194990606634197178761643417191470543348693294481996448810735630491686892029949328663173257647862514217403343995501964129662171566729373863665983653327018175901725637737086050803854773371846907916825301889866659725671734301860713162613907818695579514473092974573800899618705627579538391632416694781346193815568191466683787985134139542255825071195775396452648763578274371600144132115682162712431485781635672224576112181944798979805121307840235633694004126348896044026538871464855678008706900899448344920513005787981182551692619037677314167518935633185636857411317567429086562853954145544289310429611170139687410219638532864603000713342816561262431730034587978101154755009605595892663624987178886343299428325601288465278385137815204404945769813379332169767601575186106349112846903129648588029870269566125754206241258620144990359145361855453405969708122887951647992046280424509018036918484045080086177094132887959335972842067334777645027614607847600898864647787834084581682593603889995714581285889354205440859142669595286235229075066095490083533855149204003303566772700145402153245084494526147229571329190965231313203361821592814546231078246176581423747534914625903002211395587316758973782404748586413556080111238730126115705538104638855033017109501502207091072354759522631755992104033812561696000288182670387338928158402418035710743847959488105889488966929108518409956222147083269157210261371713750266661480388796550850662955878912735876987343967178271210030697146669815818727569248015166569238847418660025953034388496468040167338962084084081581122087635463951671273550041772296403267171451926211179179980770695365953435001251525902766152165438550246126599370585909137684099201227968434407037006282258227001003195117520803020730394116699689837089375336447314408614304608754515041914120914007044277321986299230339823274648629394413634503245074207985531065189075974305461533585547006932882925098132824819657993249977819553236911038021337302344062924201558712610368332466132031371051414616139162824675787171006896391804269234236553892659320927086759733739384776484723956101670013989543760363953579957499251567093302089023932910546793852311923367090002028033640253646714325660438609581200514949967244823824379755593505910242672856407046067488789990717705039731575657473027230642363041800120789792800470084671672120163883619638701151020596740179994338369852243610124066140866456298692417473936276114856286754450757566754639137523626828174254379501627121811442113427779059687724159234790583567937707711428814404718200005808309809510563786204721779504321420523624510854382537669560460818235464695737548084614228994980436163648489873410167861552690110469759158783371486235560787707282723946759175443642262281521617965643251672211310218563541874964235588552413488625682387767975128063449780802193898026824195972859798917013887332816775607608075008826050836390661771270070102657905446255316431168278599360009498590663920242772544669048407081657757015962361367899475855055249860132183630877181168640146240136396685308977938973545705193720330410646745499278067073004100962855275009245437643121289678193958258152830957646697486819705089347813306691849836374328988140955491735498012443337376533249648399235118044772409294386742030182849406111586418021104702763252486592946940275430349939254267169951249400196121507851261060148913086287993806749878548152119665909455534535949675688030152989172160329984624800012891415747214707520188094024240945902187979226229073032019323959526407883078778761106788092929812775219793258496004459484070253220382489818510554744528763616743861842169838171740505794035236030474731019632437070019736575756179049879704774826858688543539770763039503313396105265516394287391218115701043603814430706867333949323353672919079136912147157272921796698448182827342519600121045151316965946293250340921113681180066329633532557907598033609026856754176016911613907932946669884805592386580379401175431474127167724399218607304811200856184594011416399967409949914145170322019663147519880409201605911830905324215549277952371615684686338689854587857371313360551062303931327616870849968805808003166518660647334383728230296155548225796529977743780709430643610488469888378714592898621529274903287732286259630764413273661231475039315898499814806872677209456168804460914531964682607606651431711685900199948468685625493025676511521057804242248539971433237442093742302993785834977442096482260780298515074039133817855783753688578731084355362397528266305031981313930048657798495055389887853240843821839529433880473705783479828761169118907804848819535058561403009519423437440532813941230268205130983790151939843479634867281176699294617435871947103666231766849726613321389817038468251368245693485267732729871440526835074227021077146796784740221007032847496520070580741550030072749253905991444058712746568870319844267101959489978678970312538171702895672528164359575390945177596947113846366744560440226692530859277099204811508283938376329190866928290508615164120986194503619916881850775544895458781148585684683208716460932717292623535488449683362102574225181518278276505045665938890527170105189985475729184384887419628272649400007343247275742406715327897779037197127905994696704636292840891064780974657023607971055832208119431758559572523444577755503753246939858620982512511829502799615750159840867029956135713282736471676356472798535994182968417688068144876085408706825206358875244676289227986916259467949994212463642184448815410123649020186923779034446386831413264988806060931335191049506883823140191171105340210014124227427602177984166710917002849787417075924203113069012605891541072396087802437741597137047849686782731690145743936626743592862298236041231835712192343398668547756905711422843808716719401604307969674053074405886320538245881224571781916424433549675674326052107323838811681520913522388309215167760378998235395947411137434837606624815451491711537210362652698427090864976748829729164177290771708188708286121958595140076756291854989251337142338067407507308416429895512484086685138804254319828986388463623398801568564021589628514077599216773301455619818106473108827591245080945345919332936284994947641032858588157796048751652741097214838154477209958307290432698583854243788307885715028289009845801230868339040714745187037919791309093709808428101056725970642335604750440089759484153824939796248281062984616519580001716192020399743217073705304987387379476967812407119564563930796235427846274435694074271615230197860881705292127722345979812348373085056475212904785391679458651635619797783711247634628632869032367101585455179603922387933438262957800325027160283279285225497326469458565892189788935296356324979107798375636452551102779427464739236691042315299433004172302439179114293780455925194660803620685776863205165842888658150638644519959437863888436792895781069367879035624485241463603925161851721321425650041284351005813595861363503891572070531275070036517585824028310184047193812557627522750424550173399278203489632043709451328173428178414667424313154453742600138099227408751561113206503474879210691781295405106978556349051758608715125263102947733705192310599066648351768921562564472391585592151038520158786677691432940240361190273110281656101297371819972601330003921110998443379503384115998223152057647689845563083912071108292821373422340591643278901486411281141729296896092310928165068647924924016026170186464604657116509239673805200758212171231015829817486067641485353522968283301139863912339846279181648551065105585000858689322821539319665140439107476397190325354100905093855446885455799472322795684975106318088252524842792729404864401954649617627120190940039941768133557681896634692557197331980794486917769558516869105006496071816695489802348686105071734965143713706103338154474150998422361456585923895212087436455769161627200164269290705063605300383353492258594055035156433656366502223382163650521513887147196239607593181806546305051944571477305654126522460898097387463139537610107680134637211239791716639379433073114604317930155087831903386820538247078890867146609734203711005286807464291025587144696563961709089159538927358570996384533884840929507760345809948765807787638297733846691016198402481571750493276343946160797736106278650299047988523857893439411513023752281532325226740289391585612225337006639534970244836022927678573971465414163748415439994136675798845834575481803825542325858933869164022570785114628492731733972285046735273684171691793257377997638745736131930210578548872696618467349160040407105638432242670965982992119866337737900577503268894414475185951835086379544534552999224327782754777600366204368893128916481365309068085927366893875585970012160711011054935488989494296126583103253684914967463572777341694085043097766844637444497854297051496355523947576561243858725738654683028757665074761953484680605572094793291418900430604351882536851423669134067758362357205343147803485860684228127745358243763964000660054202971751357242915567657345520995702275682984072221998957191144840972996400582698250994186197773247157497633944525671771833407056779451725760631692838442771727810330863880835268726404947601164226861544291478010708243646668834150827355867397265583607767829400090604453420703988308070053199012893525677726247255868979683110827183397780185701958154168184535150433218481813067327913957180262368774093090758807814033927112460954890346772898646061678819765226999992400956912037220367475023710215378244499124464195046570118378799456809784483596569829871148080266554664152955149556253685980351386391121728009045927484494791752607199935619349179428528349063063424897564834527771077349051890376042475775837852661463861650695019335959984226385013617373350040502828248881182257199046757331289201376178977612093207074077133754499976279246639633766928564046604811527285036253160241068875794801416199146192090707892609712822388443406893248203495707018049210141679747441347637642735321080994240210504786164874559752709118604282300959031089595181739344882303380384304436673408256081308206448802707999956407460377114613291335111455670459945546795833004931384808802788115826539765470178978473144753865756705457264868219487543209231587325836829614089021130291226128998678934547148951421916959681979515308950869934625433243827210332599348726892063928580705182298761072908583448810005672484327709675836528139348540125242250890416695776678489436693723838179459463823751608410931609807070598571234894666960599968186920446139760854501616248761647114653023888042447166485373393092916653780435313504895914606951333959810402418544341225570265758349536331744355518578302816099631592374495842617205757300657747119223739862410344865170309182429055788715392466092728828422582742873323982599664480562348295815580243758410059983572970001456499089601983013781496967959482278503404807925579149989758501592266415092256724184979459826600850107271569065411389834100980361256845121375916833546077876657694996439779827884656273123355561263630373609751359022544480299678164569958511882718793146171059691778478316094140967530603147577706832727636853499428341286093613042960713448788706693455182304414277959907909749371877141818395492897501743212235865305608223743881264139210832014142908343230783820722310450232746173831788610178384063410690506621562555410216621293313845403041604946441995106237386319725036758675668277171667338761382894177814914955711437958911233193028923053265437429296715118541015656616437202576614261828318843319366780557356930045108392293679896196883568221436739315853215764236661890728326846259751379668848443098852076345316304923555647281327383665584582405374455935983052144622901312584626930679424047531563419298905728443074992749338239599664158987982889160331058055807564141186024519705896859093623126056062357869404493903893257170509550509385323110801725731735774342721880272558115793662318585884956391297496716091741399006224374477482215976937522354361254846966912991846924566620214209976609216357063486951125825425035974594683715339757322692552226630485127661005864971180613863623411925121722156805194231378102525775405620561654628452915231854884635514651225468450540026542585785414096141417197547355990460273296198263472518265997107923606763511730691494600272678572425629145524366813218647888101915080627366105291942942698832874570549276134527572669964261034709793118694682358871157915882142089904039093633854786791795138156879461525428437919440015911532185678652356038340642828277966405940329845643178628192717775030325471195345968469065570499747479435846810179006343035814627059139495509993343719467499301379116410643153450386122223898922948541411526488996813117217265941641077818545269803687927432023530138279651981638235318849964817257068912390895508512949752063142402240080165141060831122119099315915822483820862882789510077495417774036344229738587939230203265079048375294290653782110028948092353226357425912204503710502103451028904071049869776759211161169259746322776520538676781834825940498950187044106185310112336317779431307303994571484641420951483282438251359798747227372283267508766542825710570644442394902903241647747292675236019555421671327813815652031745189057809508125163227798724040859090602123464572121335142617977942121864696217305658667187591021926313910123665377497408060908430332811675609629961779068976887163551430626939300825346522015939453536702153204674581724330623213964708945168695198874480328608080126232383799236533666826470508211775615661118876268367797666389519200834750022180293944653069136951671487819160181338634311252563377253119906121592096595651907656515609585264482366725199234691913852127564989398384345090219057051946032068956221094229080753952334509745419567147359995694181586579204766319358562928902994377537236173554425738802088926298820281589452558829244876729307166061360767286088640696231010151257039531170111875855710685544093633452443977995014457781783458680432687303761527027151333369202356458489973145583125309866584518126053003844216922060375342820223269771594710411378580295891445708153831244500553397374927346702178352848465903771999434567280391186503983396061211286264615821516856740809063191346968495506809477344879843326101819624599830827951252194098666573343796876949683556785688871018970686870173863348800544265568155077591580180097898442157622227031804874350485578715193766232106413416459372457628644240193901142797375678686843902156434677770394826796621450570059980549319402278307194837143439935461685964449621406806595122373114991242446113230148288460409138423933331510437476960007038753132752297730441058851714963466457821499481245152147687086229668905281610179854935841780197565249288370481468355044881701904615722292492472781157462522935011490854615804958874319033723916419764516385298080517782148854409360152749022189255693451659468156846292283280633815990196922395325798154464555736200999554630568720087090817575797690146815013103177468700112771644068268697394172928677527844675157180786653057874935381014732371158283356532508559554983953111588633530282958074237369847408631629367680746573149075215303303904127650759199917745758014637867111438239893631364128848877324047719639527412560500530693257129762313566880605329484336954191570173633601483659452074724599028474693506204493401696059151485243614214593301473075542406720585810809238769464510728714740174935408245629491269251283633118458276351116736531015245757315118107414636068102353934656856630651149269700911166839768638567365011449809228199750100572710197590340668222742671689768710132457817774322531628203227018902910111911384269357435532930991261884738760682778231912564004306030379941965898035151899586020872042837314256370752431722979884013917994604285104601584386398794442692690318108801454963455094362241875794047105400189851036321099972203822222310593191078634119667064029629930939317852728619495582902616609331932212201476791858057884438933837211445882880384609677565049245424048278568121485698171446274374867694553833468133406169754882818687091190550214210554932785308488511644687617317095962944828627366734996260453101895487254587752948925144293214346927738626481188311258896644159720090584081218110721155231087192265365784291456836308352796391172106101929772749003991065694076881818779566358681675077275222467179465066876556756047713600135547190461242733123309701555399353054757750429366900608562535848732830975093198074082242795904516903282435243793214372665807950533245412009287401280001943308659081464391615023658203121058618019449189601899219887138164489977530672663568932596781223730176024993616421373727108549931612683322739121161417746300836537071700281212026697412294703032160279086975876232552334989771533385496618602298848070329350749932596582284888457329054007866903301042472641164180028734570290839847116211171911714344327010261720852682412863032046121517293458148027544954211711546772556355777892737955793511788574590954905402365495461234151819472118776962181545601075410282511138038864149581643304260881416755665376574528952946066690789136040668830079866876849843516385153182240709334288419992358881928696229517155748251882299376481053496290297819416720076654753452957949773426794015999475316369609959624749425310744038370513450560547217685824414009671712909686141855596238301383413681910453487439004824193588177514610057117899902523744648392992808869829822731680858152612246358021534275836393303108539157139759708388879563931434773115816886078627485699357681021970720935789466531869148610102337629956729355065485062944548724828119533423793549174636692063102526734331208292302765477119776584838752576953522434672447390551583902043431424250296146574946864384960052436906999530584490591480572438293628433492452865909259350749608549615897967008981281925494680351075933303227923262691129567810148696092560592084103374183682015812848458097538615622896835291700100944783325779260024698161070832709575885024583116117557668497384850158914231867972649406181808273824699243842894569715767300343466570072706421245574679791287082121235625634210005202001887559810539476419505134605459813630405156832470364113844975861975277237782006573677316739744699946344039147141464204846818269212941774787720890835101539942559934996853747951720433838729342778811035028288792965226386658235694174264719674720521102445416037776553937741360774531346217430011117969213715035910928359108290330597286123727539614084964334455692166575530994069993299157076552171783502465048446306313566752040111995129051876069751493991366195799386851312870306948534020965018395623584327296531894350252121792843324147987425600954824358681032615156535391973359471342052027249444610967373758721465281903075294355193400448275665898447668087231738373235307385748880927816009051701505671444536952878656649748693951314166972256094097343620516702501260854063319060817693089970647555220445024895150092101982642312224483901118275812500736709735969367864302860958053285244384874820041298430312365034975374732329212769955821720386758778851162413909486408830592673023530664653206229527834008762861389335450890239466292792229915072703218325424853467317231919298798366571289369361617419384712696182862004189915131736929220219455039882878394133146682174193709796380150562307373317641921659693461158146746989386427324122282259354173068143106632816734437499926491841710840026731840631988622329002932266284549056106662624512661409514239362592560592471241169360650480200254792983490251372994690642226987701410168429609590155417105247094847136810564531059849513566730986191748276222298363406403061705715567272931459872222087047115294031129987630570398390337568605264186485211025810636952428145005103879492319882452060738504859541582318630507447036367579732983725134151087980118802085313621521149185570783995260119324038081690630599559119621365587531627878623733230787605315097572175979859546535173441757929118559403332194300307883940154764225700748832490583583992769081852712360673315496681457001453831468869550365032604314153146629063301583714131578285041309500360310739152247077957369827128535460944786497281804341461894966153978187735535571046899254935415963543818895723038771527560966815012906938252611916622185994021793603458115727152650032832099208365957294447807188159029613417886357092321789518566743156134763363641361196038774313366581438938337750948354210774712326631441889498949731688725874072820492172535670094870629767231443564067831530730069732785443481337562069648046816423116416029810578175617999428454472753447878566507198203766638759044252831676947114308057555788653209106985846175174083738825702571521951701226256945168905650784133431662360139506895995558913919769584079206753582597829440374302588358591273853450458484487133758939437861092651405352651442337771702702184808287406068569154629752270337474278771014668890637140476478255994331982138955149470995201529584093178577046993609954471228593275750777089851632420026905547152455936147136479158594691652670191438861213368291580407913164057956296462162910953773909740838180822409594823279412528755347271581237891007783506635458921309647273568757212122206492241047315611998130900615228420878389049219510796702048156697037425740037813552697886208341517341577348851194926112883716505127318368638095713654892420417035531409669269205315475270563351472425646260168917752901398942844311962204000309638785785690082994373813913297252964953307654771193764057122762561006758180052564499452037796261757235787449751645556419529711350274685000588110860331319090412132385776740198037168917082490081702546784465231879354998271872962118747058229625852101727828349943925755807457494304291119909339294804295429919046107433327109377038651557518590531945785808921644567009175635246660878968199098543615028570976672747962561006368951480092546754132106369952552767154398607918933101465366483360914436428504910119253476278132618357962306505989722160312260182278074087186672261414636122926335980952584411407353615053278453662720533371422817224788769060443619743394501220848630403614204684227940573386470343109193639493364334156616721321155049784482754086220928699541754816469055581982341535553357281781348918278178317739392282569601724123846612297681447761677679913809134198889486153215785668668499467434250758997602127650520970028105707321532184649487450418495360340421307695336043923087356595030227261319943167850591291493869077691367379924248757190147794805402716954927296399969607847496169010674993717362775451834433833316165961981078575464953887749761952731026636236603704423049030509165197677201101894089989425855928509602388517135549387753833384075202050512772813389784019440092590935697269002794069993937871397901356914916270397414140213857018731688474058879846049323267656719215854740525644530805658499625859259659578707347874750579540596566298561453121080062806014635541279093591258100816042306164233019777831355086950037246991590597524239365219226048786505771369860735740759504919617966381002715052849385016992261211341865358676635761722117480949624678754409995104984674084218960677540280840420324943638371425693873429547197174027381927811646136414065834546365183678508013178796991331710638930734222683773144757096222775789140858362417371657090559173793687615099996199463127098820907121653145653093878976956451307151512723701772325670379886302976567566499026437611515304703512854193532914709928571403191316584547932035837440598019230287083877542911327835154614693815520156719302344375696457932444660793659985566073472690174061017059950133122629031077135536318233345533518161242634842211908148833205289007921638979300897898159717602472230836249832053636493893354266067436571390638756931019385880246202189358306621352054300115361425689328841289102064669495579317775730912794526783761630689792925343457929021985408158010529109661038302126564058561880129296642498885578944604682818424535419103727690137145363414353651050255720978767677745192390138360089027740361546366316374612736414110518951026677691348990535687192815697359256600099065901543522029288156500248202521177869998467643675026842953617737648450223285441627378448652516637974691026658248390308683053587595610735109854772267673914629331203019949626668150429417000766277428671509945198336187653553866470619064433782452676304704513577660440571535030726140755109682416736626671307139576990106488811276908782584752884904971318839901326684734810564577073123142465670174068624239476163747338802984944176494019185355296774670629565682726302208858968559127485172529315105393483145708560290368474529013287764236250147228787605735519343204184469250774726145944792289620474516972638462094747056304001558717679050338644837252687725362645718509380901979738320636292154273882023048252590674352787128162514667846910587385190919055027904258594227496771010589766767091492696684369320742218788494356713532320665007271575658807809783953293093162395065695829608836103141057485099510554232130141274234288919005298079616150531786517938906464711503605551248877714273042448248413203116489268807976134290447005474803440462164275803376683184258096719380772811686789729282030706143044852711966346926838588212530519420478731628242347335515937186957622685947475870374624466684459019825675672389463867884700301215454498315145039985088865508102868078102172440962920169048295396609727954242212266552156748117335867928202378878625157863021022877853062551627256812610335580851914105346854313750127874436169661539052319030965699562270006405775070194233212157936918631222222171733925952671229257569331655782240891171208291636867962252828426731268807288015875973429191614711655619344070278938513547083733635229074474809501784000093323044020287954918059502625114163152848936720354894389038358880210374271153993351715807242461763685733820722717964630298925227517577248089135323223534234999266598387114709321927030372442604964500304784882117777175217681214602573964535905130193082950584050219807375164920498685811246428609463311068834107600177760464159618770028098187320354726364296742433531588819271819942667459816506082393568750963883895221666601513641886705530485552876744845655120837628211574281071117238988467926134538251532269308031503467414809411308199235360483853163017279816909601613809822691223370300581295136894069200273360310633306610789289556352197895604302414509467871799882269243651887767665053572508204674456945507391203377556776390172362489000956715506653496433569518209450201603108019726031121570133131610103937152637757190289538621932965909597199298124170051009778594966567495570752979152643164443409974577499617025500521692174510563374872965367304330117823357067925153057573534623586435441598007553453087808557682408846084360877350291808787954466884986071745058009197033979945083313681192379251057901968650838148380782543236655032069564251556821479879167065003155454722147087733382603215602034075158949386405823137914357548526712350298305415592572202611668573650248411108724944244202362632628031087078104969028104757239365913121578584469347441214343718347757844749460384089928406405313351062871700907616963821901828822991483167060222326398582328672844798745355911622605763981168449072709227522318562049023909242460438461031534611225823466792694662841185400648449045391108653499762043236769399547764897605964086070974441581755835870138871101085685540107060660179160578817985179170371997770133757966958945928173886604938987432317430813213588933367749093701585091392292679300816227678482175009298135339910647571443458465788425266236661153979817198781681593475941722001063359566060892977475294001978438120828054674216731043131937024128056559155195731111676995511250477057057728718291007515334178644701024579467915873899159759701189523784571483528386381707648012766387737772585935372391359122183625845459039431601669138287347697118788919246943746373509724875047446460561978650734741234721845738066141056076599058485309874074980360342831482091407556529067513500045178800578252274028978405601924922221699075602315331617779503183530453743130658170506832738773314244608155204714866327060137444130755363611123372045377671679470856807734836946513950682583168247750926177800344939410855366154198022387150411725759379928574356094375048963882538307043347036328915024295293278846811645185645393213841595583763338861707777975765997300953244483574578297421587469570057254843516900038504407203547330216059877254424296980360684929540767176276333153826981573582397246766634252405779370429881858609948199701358975155534695369408928309467858467375727695535103500558590198860092436405155032873854556189278544452065133168389789356125395691221119371666311228903231157797107908010196261474078884056323268774746482788198014437898777654612454642426731483498755984501369971437223078473346530655846215835736583631110135412009531214041957556336217735537928559141135743106965818879916637988896518003220180926525953025714948954859512701554144371895528157850763143675907047960228313613273307576903723028915515992889360463175623778321105587183658741719569182181155129664487942023609141794287249370729687094199344789955071168624664650430352610063186647399571902423758571419932477858524960527802785905903083360637358671009807831865463833287656025112986802859568641871373641512038297743028545132502397617880790743898016930698467594318268242872088532373824140559902569919334161788739125512362573259184052283588824440759392883476539563543883857866019783046722004083082486502660987971900130612313771878306296149875861837056902330500278365621387307580444016326125158788494319462816395119931255921652317960694001446729259121851567528969571308708716716736221933474189238857716608846647075918108626232373879961049755260487138119724120667207117336206945899340860437802589312614639946578194742358295241525485185222287569155484221407774931843752161497992987058536913039491466939019065469393854996524531990189250029537849229798420671850853787150542706347911700254592228355744571851813097947046984151698453655243464274109715586228904635828612877510502464113428041968556030982818759403629451583594262241035836582474041868994966959638999809113579446989909001066862558285721409749467055841316133458854393465052296096085627232993839647697838497552482600509272061854865060328322958390728997059606284277640252414716192990801599198438660648249470568844643136674403954482298847658782374055569072844325986411459154124229019381013692025916250337276318127207205922934517306947181361229517741615943153454842961464514490620501926173054631486796481117500191379893792281874728958947308856766897996762398213521591310852241108771799189989948365318501811006696727187352315458224809442782647312555063826842125512602103328051890234909822057352766353605395955948426841342912352966629214766486241482754730531152125564690068643688155503147681932485626979957530760915517378184538189115565981312468749005122661607666082357177881890035928718281703261321239359653492424799430128718986525735446736319810036554779926058440446639163252401717208739292615808437394483124088765641549601605408019921177189879291748001131747177050761552412525090985445314160964094399459546117118135662253583263727835198264441501622176989775401439728452592667183294894068635203308847406208667861335903823708253863289402592228093954094444212194810139039790361416347128240331874070651446235531633867620203018395784385363203552512783885193573724439067274533945898762297619266820536011958194809535741984015188166113637520079599715823186938987536138572820804186506913146817592273757606019844784714471534537670088126101262703996820838408910696715532213417413285075384868793149110075951964967006207810060821913228126333691826210135477623044619191265325684681239273847821638386513063160602858759535526970521084237689894039693995402951275978522069017118730282806917055639531960651403492985873190368094960328279720225601245419727800036172463104696753431871222329740385371319102800170483776645818399110455345541394449595685035648522281132567492531958646518360722414225295617688849841795572471010467487766982272734042868854276124361958387702002202027408900425327109055461033658244126262672617531700033428726780772730365743081700162187347645069100066496667781457808362143952396260620213710086028980615938917168669420429145532998314772008482874396236409073378715626285393857441150219808579679015389715073736563567685820865889142722956962363559404258980363558197022221810346938342204249155262670936389187050998004825522703941793289224506359878613649180434328610443802871163887691424238585051314175412844820460839174825488781135659643918154971237714241750524720935960234601708549846334354117786265588824554820084402577881662112074944960126594488658892447696599707478008253095985537253017189787119685227329300190510714233989693221069939808203704670965294384996001018106137372273696222096394599171666856072874628711737745218685964087680611214611289615125697316225217247717937398228627131766502565832013591774854943278787631658249597376635195497152748226853851160623985321303152665067097058087617972382448089314346015541275404143758025591539314006179986658142975331515198437277629567761819871263524620263237396012601225157221062472815092757434665877531774550191917522604259066216335529163811271262686846165529442327925997292423118107856798392678511214552932599947720402449443689103754892821441385374257430962400970141044006009736141761468003070419465648949872161669523085744946187927084537031960171246176174555988012346459669385723173134089522728882364573342998972611116067890640321950938423380581572755955729380460422628912180973975455821751295959342547746227793854652576083838573568343668715492759212749438556379418781904529138334471760946190195359053052848673688513185301513006022822871322282600922514366464309993321766214980436941335478456557468915815605903717975554067831861883319698933520116319718717763278550540711961930728342583680356898055164921316394325426755330818110011160199432406182832788769749723733260174996898160365993595600064796751098543398751150389566654380785297382643967921334516302749035098191456633366981430633042210244349905613263231383085695228935763467202876155092336272330542442755780730839105788710901958949562583418287960745301731198700889399668613582211188584866359896488939698158347782927750640905491672056701847222463125072411039818825502515038419191475406042760730378366459362646146948837657277615805079852506102485143355741690142805778216325906006793507083047317390613261835414479546600957659646181042844689848841586324935047557001222819546870554435381444368126068054026654446571353739108635443071574351371651931603582038816581684254385387265578286112152980339787781738098541449655911067850161168402466506630721295038237160108968008519216881867757860654716085150497820416049169329211221043768329035533748824826994767672887644139036215380689107653697940390384394206683441373616694516805927565706350295775683826042964361362206561206314975805789214937953115297402394866677763069948201363032031807045434513909813290883338168313703148644025397642318135743508984990447588067280210726052076955427967121768657126592737635136740821409200229388564250241858942337995582629387800015867264848106992135354332666371647180249446177635443948249768439013070679964078285941402765573999546297870129822952232167718626998452380062085350102241725961328571025430319548723815936112057727382342132740261101828727182418715761405964331447837361828437703250246887222336256998808721557410039586909700693331352602330046090473905024965129395749945773139990393629516287076578423881096209764462325707090363806255293894958258507212020983763680815332087628411729561719205700246587813674186209338928863365913454862623467040055657072488009001423246247009940930599511287877082119902729741479753556903086096573005586262877793398573820629837306259323446323998462849200591627138706443390543861427156899667843841336393993877927615086848195875009469537000869931548279089090909205562526071615666526952464547331877788951251508814624665358235765997725033001082233113220525891818249100161949706662690965530429528056824590234624259284921057831416874742201826128490912089706342321912112430544361609820661061200037010108836223657718199299535581739472815832426206328283370117935951723379959706480212714460812844381882011404220752953905228927724243381057320685224494812953628368215680361300757230560867565523498949900002814064834574381335441507227804155390032121979117772597547432545184368538500502737443316518990538762511508621019549938906813176375573209385064110898943844323038866568390768717191768431336470190420202032884698082086735452344620405668020501487253826204237084620573413940698384255088999568539432172721510113339166892817661701966499803516303497625163987268108273046890362712246004871071019686565369860282505577534675903235423036778998890384678989967775588321764074334849542630264714869860987634331042076875118540268902218507761441716493052368633925085769228191776124151591895391019461604374968346761029269828747358696230014516388804096942481159552529909228280849365221463603217910488825836764766950352725012170850117500028886530252198462059589668705429866693882908382316656462616350956299336400718647256753186679470124234453139258179335475610429215537844568977553755800337442555064730339665759194025806243285091383253478220148534076365008388578746535877825907940344914579637745961723053889395672478382143393106433958829700583352378998253994373075210581094537151656932666346654069540351906740377211859548217887868532162862184253967074490295497167087056814492368539320860167862297036167239931746786974477175320823108646813313291875817998540421666630870625061106554370265851942583038317337506359297306183476854827215457615305816532272170763811792461067138351649253076302697536826934542449457673742479416874340027415565414696784364861330983513639779007629829498349815207702338782385501139700250641773894979050591682743071620591832581810731418730815570995880511291842776042562463136849953589215894767027606345345053694843893551044649936623338476548745026917386375129027554383333243757738834635420687566485061578749546300007031040300706760977162478501011397486327818132718028351923965205252924748883999525284161202273027239712429966805224311067233040552167409186248980556402362056133290832150187951212227443944213852824125429781459671749298797379271338242081731593829025105412174363762118152481174629376254482783032530936388707897515800621519193126817456757395907845053522069974531097104676124984159512163098593598226618234996496567781375653921155659454804967387761755833097931105102371677599724404882596153290017567508516926476762546091699197746940925192071133140640199405252430148995388219184665545145270474486196518940062926246100882469726162415957854881474974469503750832486435591140831442063846749115379458425480539416877766504797460215013799297766187852875557082096662602022493207448762368355028557169892110567112532350564549362448375114082437361285175258297159335602071848002231736440080144276374768289287857187489608931179556729997240181129508288468594519409355725871713450331990733423750489351250674438052734628532708665062263735155805925175106710793524819038277100165317075688887029783833843349387814276616758099504045018048762338410133693557514189898678217617867328395038732988314165030232218097890371203795696211604794264291110521428646002204893059331371727582810829661446911624440106578655880547988246974024955559384506676802372322467909309777171942443748139650929037016574016342856199833599589652077200098550116051090579115831803525133459082783548459278124199726799637083737174931868413602918724382370416777202295001568677339234312430577839772051662267665561534551498096931060039886315552340984817019462000303987352584255267157991844124755662414711120431444131942360715858733687080494992398365861916455951367356337202889461625321766431778083787162944969962923641880639812008345383462185052170664534410193544862964282662281184902002829999313557934255737955168973347706058594624151809329337686618487486372040956324077178280107463409345967733292289731098103296421057141099745119629866426821415735447925565517124141394237065189803397234043057952162290146427615609281543466386918985503617011950569494914961989382285714211974458120310279461220174777904813718578769328130631425103032102536434312328970839017325174064386821141870019379206305062149955087702500669002277954813305828104373075255781296082807908526278098076325961621390949887511892611443653889124572214969492033009468363671944515904140039174219718320162678043805242039018382705632199643899477660401161351462179964874565133996747787349341217099924607014972513109285402483391167921119498155497180806264896354261827398018507210993384807018682718075670098776198397024532849909454470166262810482670071297935066550281631772109634416002061810774791013250770422715423867964788019300777522431300442726661844622274210041854111083477065404979710127929413474055058485545193945305042096675863648282978729907877085688624244674066966211894781477446006925950880072717491229823449256775619689781007547708972007307383281177126751299718424959653820835600753040790114844639397585346248203860427090538988162092197002608050286797135892275924533977201246157770555155775681455813421546985780503927301688125151540605741814287110983902006574275583061306826561488206878632886698167908999062351890244369485752071784907928566369098347570777710139738247842432423760272013223679751092608054880226560027154591664028151418021995131866751704571820309195132673482453820963633094317689153796770628114647009657562782623924521866366510938890643980174448986430156062424713809717819903898962963659535020254714067181657738764460755169500709157310231666061513226260721826473105497372023662265809563601786374521814007381044442027831042667363298461241030484004049985707600139817806974175323983621440346381405306774634484709941856290537611692676513479763938065707774779555885512327099463487554488711866264324451174249652473180520525240659390320702579669047796170925174344826192217311086979318541023102054034138081700107563606100462662606286819039382108759621416489355864364091710085167765077936647835076613004019509725931916978042540490374997748386849935488606997808987166364692467587119676366168077981021230362272144930007388200508509199306761224828972051151015676176484917275719387586352014297240328430033234256984980868591310078059852837877644875038477820676475404795432355698795371459953903450081216687745073084868913335212158464458210187153940218998924590262935726431573990939326791922460997771166688363322221194506486171760145852413202011291163581059106237213361605994853990034665753211386185901908681391814569960487986429773973403448805688006709127196767933388502132225681012648845832806538054957722049138751503172108295919697387828567142714576727631942065974191609103467232308410357951385085877311654303554921052488484000091680730317044515700502291823736096303950294240946313507115506336198361337677252612682893432883410065987795302033655635783732474905859096265082849099479307698633384583759280493253258988608944658072863538079699527446869070311285468856246712638625472112125625842840891776082474251037259710697574800234736503415240904474969726910621668198157536346953970547396908473920673782281994349209086029311819667622282351208780643856002381065036356633232951215741067680194691284889999593541112601041020278980384827621176488977827363450960324875958074046105039696679868261718665015412952004802809512730810937558225766195872475308249256513079962235597545907039591418755661712190529636132318525254534395274062052515685124216773281294284575262624235553282153654265597820580905765326695238949148136501235754878923999973149593948976805445904071116532036557724749713296321707296208716917910565119668859538369902614209834239065164480478510403369225869094485569713582332180212761227062638082335741298055800252307952615661263447112038833458840624219682531098126440087908351343112017621213110473996614787429461302790809161976957687048908838744511911723187366954258735028589804203637780921455234962830088246476120000111097100023277386116093461282202821861435401219728094558471352431276330764324463885140559748091667688840074914992239272324178197329382525394988113084988133539850438433725684514504975241792876203873926244153171889943847435540748658071059407675285734597409106047807875854589459779297168745852975844750497125533419695936935888336450112049578755683610293636175717452569281742007870678639597174218732953993491400823516667232800874882798738556872734395863168296325814357349567880753398509564398320978592335146317546847978254670843412245974998766328513033645027458205459306089719628319459908407612691789956246908934541543295473714497733065958041193105245010137289207213721621061947203644418747430534171798508198242553407691503106139066078508507600918782758307244299424659762965354522164994028252341709610722253224369380042067621319097973204336035291238393113495324393027257189817845619127496950043441944801015475639518537290277340231820403967681229604328215768294386003916270108594275885832877484365857448957753670447264965390104863799410693046228300491668469076642797472088061985827379005493319204495868141305542960092021150380100713985125308071675554557751302800924866275275555539266976316024720176083654238429687996334371989983162890025827783774409934758295591084108259613871406430300746118882838463886203867802245391600266056336881012840680179617674196808688389175468725829403772285052114802993158244682299268264098026626049823155923324748214774673378177411543561076987130080185701953997436002770133684579395503960277060553529189285618138484423200865465205664620710009187203714579477436749943713857349282396487859958325002273365346183057404050367571076369101698374867408131857042605068928379690048409852632266872409554352387914369732560425907649354246978455172341698656862614523111393640822678654337083714898327426611148110102447929529267195111164612218681636379783656334604151514251309714266762474336629106250446348548742433412925289219001608139717216025467710574927756036790169529342560964128151094580527277538362408670505250114044173734959656299660196014920904488502290099602644349588023781624782913243703417470218459979451555538887218762956043939942436608201348409977225894028468190104317862178219071617647552681758885829158374857359736579138674511103302759068295537883496794278275103137157272847081520048685073843543245303442325224776406233937119922045492156404678516282321653706376122833611452602137638405309969180769090858769992858882558829566685599708752681604087352446409237068527351263854585152140120690493243782011303028254748690472301329939378905664550304510401258723657211566138377884262506440925618839164763216395561040085016679910798803203013285220013195923891085922016702289652364625198015805998490205702861607460929080684046653450607051332765865434682042061346595815577417499456921126389797330118039681132948932510079115184407297939430427140622204465439057391288465957711488925563065230816045860450041085389710833042285774609052486892270063159630610591725585579046182161829369919768916759251093562678477691134278063561302293058691822878218880644019283721902136980732002385829799079252745558958467160146766463938752224112421412373465595928427516705174745531571634171593777238041312931918053186415256312007976890463019299779010589885980665951467814578709039499530214459794256448141806498432795481273169747589721461317980934460689298065189753422575445508298243230854059621646452119509148571237706919129774748247813426119309933677576881371509572185882610767996333566367140703159584940722941616336397324715165354573649480466468474147677821576291225952037197346513236058119926329067618092063637963747792192882639341710849352826705715189149004616982774369479327282425663693555721789242128012213283929589907035694536965717136426678574526015051993072685341419013193759107753860759592833164561880354412707298564432183914284864751217656517500799054424229156572027955858322873029900512364641430658999163191013456531940325828613631191323441358717601337684893119321786725587496254678196173406752875694053545008415247291919922454138501787281351228948830507346197344594492794052420753496244745835364748463681194773526687782384432242859243904879948508883979313801876268676098441386170742381002674575624169627795934084652411059026884148322455645301855714892375404605026366963604740223174621684564855251625675813723174239846462087598462443695739774082031145171724070455977758612939678456471718617076977052488144564460025781191734528972089363868302027766344962696967336525634393309302413165593755241733925862060788809166768350070862163821125338038957606182793955780555525409629354178291036392080252812433217209032829324070681468022798278387286929360366905060283114358179779255985687202650077929920654580631617471355828933172077131278607583942617683699444871294859299283412197439780699853632184760799148347870094135785776548556592318958462426983159600725842940294847684150637103687355331610039280422834911119152114596934317197245331475643018979637182498810917569553686748980672708092645692698072575232508545923719143410646551207343314127021302791557687399993025072178710314824888009203189580406258640362949378754644264227276667464653626320388475008505209514386090330026065264415216327509296598487677175556692541114286071843719952673483124497071147320389630993729007786473768159694286571711065794026847222283296686788383745304186163199953786017273085962688925907635461996813156841513206489164423475131752940163996823284453339949960487884117712946107560884901125121096357185922738564080988985302025265634580588392827256973992617786921976769738274168080301281602035325349904092092234611122662231122902492273057501833875342313589216329745201363792637359219836551121730948884103300583514133948628893944727771050985047846151517971028815835311473810117469778513566881772035196755893265076529276575660688169364221278524022082727047836246337610773156351695063372176540595932742211925416179492275051885876906048875829758975700139806313549405971278703013838712733297320476568226592910793271688822262031570585962413259534384895737638967719970740181281611011712053574706138650937959496797227744829516849386000655358167371636747698209003982498706216936549667113987090199467912153981371536882104678723670015976584470683211862425000400991703428328089048260428161648467726062284052662700210305974549966789476927503520294906178994784859242744230399365111049827277939176512226163029575679089420160151690763085274478061008730953393436177270840112119682361583986101354423382779620119267559178296458299415355995145721849011559228977787795791766253674941438724759646246291352330290382421284490672731601165231935504112016702868032441739330965425879650199181445060774085450497693537778383816371373142603405931613778996277522142027307723159486637738868811863328636784959039391383922897150761127022290464507121926934585941358850131548122301565701838183434732854257523571766233328702411820402986390913520355309270314544005182143477193804422955089516253602127179841082396825219037483964089107924421222997012467763766617132586870202571512256356372830314498033625019280607657650056829623200033889934999413130930560920050075296191335981255907996009050389098486265411262872441546878826507253531050856343684485103090054645152514622147907712743042436058409489544506666569734645391010865952442359828953557511337936777845829612490571096353879070607966101525952467030706091939496506877535780526057540533170992260391795348165756410242040929081689741669838738722340068764111105017283011105885862179503675613494294907757340590488997484205879148091177233843497638324852623982017049747039715318000398407969137868114639076729289419872531477943150249670378251710522402457976294940927331232181956378170818650275460697269761591739917294739820498532992385219185853842659753802185522023052744871056241284470689897584394543184237440321855116375371994418982933791132836732672375344868879464389400535657655749933384845413487506764318920967268400807417891457568178852605347708692352324456628069857062019284788764080430511618679603692876774423675484859873571520317030685116960515829099201030569505403869591435512416178909716712896719161927061987324342052315056268520173749335063938582203350317097477254840291748341305894141851997295804660406321667119336838586444253625431379751403215073440394430454033588679859588564325431339528145920259195663568168080133120179267789567359386517844271310863161417318661845770198955927317576215315917418142317456292601230855834879319714661976676440011865765445965274908512110651153580608852143920541248463315180953342409092697060469825764795124013763347015076095864300580853753169136747773267991783364090194709376058717016752487668914540339793171659958123882914662398423352604014837912135111736295282847639693056615601978347961229393380930675153087934564652408346762931150711660253272052832241405202472456829050749833023180170250785239142399437674920001905743376221384065613842866300523994506675564171469276044248665142055505739812257997783927976442523057092306409686377155679937261347805962018045496909446885284397595292027538825327864277790410319288756038331441162745812307120250947047806095629479265018799757178514814248843212477940677736027987376752159011445810564488888321484274553241699884918070916365768365094112495928695016234100360221706076562284789202637050624276500039026419919686588006974390229429847650994523427027343133917791148913823414215299406319297945638058696003662756117504505173396107275038787689798779482985940124671564291763115222408526444097410580866882006376446744031100642974829259199823984225767228157965161712928121391040778243994877584636850307389400244689272065678472535110077897097078484995949949208012262659840936601486825923151077748402409081869748880666554613588488822179262640904853876041191957526603339796426084450728265987903712128701372161805555049733356432649359990280531855934824885651312550761052290807453297537374558749226763104675469519575367405293470435084805696065572008534832777073875255080685415831996838862400788135021565951591241669388799795457647457110183222018559723529005080854840505750480422643832767399645955978664258044114089009464196574443875710802141754383115483958933193462824987128432657652373651388786914531122623567517119911461305864729461614565009725942985451192964084171692722386559148548436582017242456840764781463266051129061157844392600381949108844119087508908651087551418689989206795862109726233260438715310852980995316508245054372049303790595302543938763128699104238306120263111491781305192014193538686919206315390415295242568481624515619330985770903587859429609796530062339684560851482914081238653241189159481949223118052057664092794961291396016122902906150197261685111396605358485338109140740679716346864821515072046336105980969266109306882373259382524762835356357781448091650746822439548167546179861514519248303551433124064191962496291183318452810045582539876858199912234370312819033469913568762557814137928657901056195930418723884968462885154724982400663347708632684820517875192934963499677901744998078849442309114452917053736538966612727361781531340104158904164597191089998999956479989998123235231719785271133396819566607664859711169753844086030332602190243183468904771742448207105506669702511147833691288042112506948669214774631019452033686293995426041761462953479390655428257876808304106163016803096984057962775425549568298397246775003867949217319557089937698774181226440181894621793426394232916218089512370171898364136118567890590661459552172559345639223074063703951239411383437167071568447163565650825197458439555058595140699710380121656710037065675484406297617794356813011283300191005928888940407040826977410199983909869764787956670069268728786826411135918521718125622113888000896750707293473495875467963885652010079304617901957342514207095726457999558040923940097507902059203107063307131759670593025904132686840549595698689362156003224231947714067544096728991016503269760356051523022512257572136931749916176754942710576845771013535799133587068457724909357099773581363646735953614561746602230639911772887747106673990443465986528998074781708322442925123855621632563052027103465740778102074402379606250825913891306079302746750380713401407100908355693266212967706518199874731075989870004641997967319876756250973177384277121468284583215404342537937260601414395653543694975264126218869510600967833529144582609378796633920974362271626516759424463247447621832286295767458802092019385689989308984610731683118496066953703495278335161428339766578985534806484384264178078295862991197901676611421891394781511135615212400833576484558056787049823355389305125275099589137643499487588352645877994229442704682535827612224388179267338080563929731808772109955025312352097954296842009916194687195361892064913546851393026969731841841949935551626881570356257530056731699905522421428040860579452519209073617789011703269154306826301715810360835331758393658904852591643301323116434606398255942830932922325561473856798916101137076230427325908878181289576617953199484255782061773875930142799723780678829600872523217598019777506653361042597659526866353852333969487882559437393792491051849687476163028043764901041966479061608156363082997840188730710816435672079069087464656481182787212874147387632505518088716310287539798590647656830279876607022321541952448876677824656126987696402902751823347948658041667717782437593101157351930674838467415333248954801782834648936669471188190871648798275009327705538005154265875809383830965180322846958891131849905606587520037928376244389083808543339449569835816651034555476758535931505730061568433666280676413878265233617878870102523630900553912157025859921084776817541716096316371021011710086294643890459742971328053857872280856115096292705237744544759997198654018345755455541480281024378115713642984884956339536004132496773707321318998508686909985145338723429099292333033313284051999897866547739235394881790457413001366850485431543593828253584232793991829089462013701095134886720368989812166605390584817618183477338642959410250591462560359164529921432161612161229067069874288846452261839973381696031752609790340122982013085077731984497493669064572800408595596939345324398650043606132235029857950346318797420787844874447294843451007946119002405164056619404529525955061530469832377114274979165099346497082034698409046760471562018758191024499749534845014153732670303523889304342983248290981520902818365210001499451781148725812468758463541134799974577959896461091810883996702561054215002166218991981084980881776773451991720567404679826170790202259630558164242275319207910424611852895969527966606478110252588687095984218846082461947424538431125845245335690723021482293068280978037124882700310880926096669951591759734186696068639520414647894712234336217199330987743670759218666456888570102000122085690765606083697363660546171358754511134160690467477323525218148908584720626472135766184659764619573043195537730219941226297998158480499634296016082694766692561556025620528557580376739524743338655931076257075874023416578700741206519650065658998747467514149677433170727826254449786055177235854492424750607494842997860175517268044724607414735133348473833821555301633869736736424092873921653549265889547367114896249903515625062926084980832874708221069640960644807550858092797663026961727718475483415973335081676469677867682422806049572312355846502800034188905833248073354383222953677521773074454227968267266631350863738602953448435494236370208177892116811639321281426009222977163390053660433742721988837554780495555418721079651438423810495567266880524152100965436806873689791428663208659392199429359372660331015010104004482377008275559556344610199019318010686929017061597919286829234342839081694422021572297900640927889089934180637294345087417345961235279691036239573598628669526325692082367409081068017751236666045204947748145974169022911011910415939023134713237118680410020932477974808711224710168938378843121887066028272306465678200552550869469851802093012377900464660912289342503878459090764947320466518836405322482486898500630253993720867079667520833147178525247885687484300607714955751754207966995304919256793523243426860879414503495577936616500182842628283918021908595838737606569026794961873300234816593338489446084765850971308505819056426765080324178784973573128421050151766666768893854149444097492957346348132033067559998510363972877313854258062170377147382230905298799563374520070939115687061512915068987821727911912168493506931410170520077323500176144179949657543514630882755901849707555211936478450545896336928111296580984746184923829947936642687220261673457519361499389694079129947098649263701295427220534813394577750216517391895092180756185653044460007008624627257088962293976216952026442361844447654518377896644133003489214686947581361200753888523443737194061810848267070570749162953977283566748315000519271004059596136794206220597873168436417518721142486692823034851057572417208281714121849180928483452711173710745402141652328790472496302676381517852904634119703875936735324541112059590772998159138010384671120657700104160919169533719333308945423904944991389594468950716911775300216864204406959623695394112674426904217023580920335243335826141391675779854683859814137105791319296845083155836912004888308612113208997503995547252908961906957531565245439506732760552496842621690059301493749578622620279351315472389751663476228434587164243266730229229867132253240605568816702545261624174289701288740276097963535110255609504739241672554802694029501103509297370449469220356661992293958964661659534813895511253394270318727846535000219064142614845375551643782171149006311986775912288482401264276379006699379490803632869885929109740353367481111206964148918775303791315954677321139527439810988358443266886415694635374477003125599021522701477801008717154669097768929151685213252233458813195849960323095622485671060979201258691037043310350894556320539909970802250095191976744821262112908518992677716281123018724354926954051848983044745086618902759139138710700805606457035029008571983905360169665960862707677699128418597183826363373968097399784545461670562190161351613424395232138161469795636477633862904753712743343656340821161754447160902327307396201615354640903007655449615773558056611714998407717172726448210429542512938303489205941681191254008748257501952466973096863060171991046370128417453459511568040432958682756107519648356622917483205609243436148967768083915876470277382072206481984157645121005670115593000398414610396410792423307211489705719636630734689271643487080170861912294571140585278456884132551596537718766263146620656468476074724374545150322780920638919116911406912763492506013192088027170491103100911808828289069502895542859381294903657918678739398944296236920606119660548672519615286781508291963994961527618419694061696602004249505549459161439745168780268611957231486723358674462232335929237684268225799417928725923351175596189120205517972507847281390895307082176397476714661665458860303241614035750258770979617580629585437679997961458345402832544448326027030409663935934992412316458642653896654145481001020417062935372494479657251746093393204449425272028094722134148509996738585811678190817745842666621383779855842081852883835932322292443334129590093353931863469525649306825690092367329090389052293085367134437955525446796548569461338986202552434537787051720500855516968804860774215960611797133686125613735117683685673044627754056868961051122341919281241255150318069597520442241044884415237424129253851017425666392092914057187419807155454360408788851951323957484466966060383151950487222161329809469834276332150070264608600820572675777044530907990475790681347427714184236254915183105807430745197064410243175969780480823270192062951460436117038100205503006571021973485235390928893643542450751345094352619476141495116083564047662173836308587351247655774843516007277998906210358676688580610291801133441465252407609829973239155462531260065949642605256353883122426844018759003135886007683268882993040750370649819712554954636692690623465250847294333045891336546702040518099233213219047951616790013367301579365184848917582025595408443750391965935471701421569774519738099541428687732783962789628568424719101724235063357877495241067093379610853602708585109480263322953767840500353067701763326369920410548578408878807589669198749749953201402463778660003805772335952634066526629929923190919638806641731296470499332948970270163375906589099158554867663450325619782888482303548953224144138429304291755219125581568194153816704044883955967634263537982275197831434167489111434180377913078198953783270196238810769745162571684825494174564866673315579765637127128148335907154916070233369301754374150824741162018289108924130696881834827924807280578286095713315655126372852074453889275338383085568358391936772846581553929711560016856559662181229489591303403336017186548521767365437847114728477422357844210661287949147573196391071163022864543961762593794323330084549870268593839045155246785625853758106108132290248502021496860195827996694225357933307418865676898420826857983613809128867676097720380823212277697877755242246538906458811020087480206893701704534124052450350143625182299333338777450086090624952106972791960011876583167743454073481610102470481175091290934104346204457760790736336293519503697090317744215120069856045351671067533137216534835848566225984024900066304033096719165101374331627427902803935332038075225575213690062785588600480217617053214700926108948069539556508466389699327414625561202728008000842445468992429716782218852883200129927163034002706395071355023153605940350498993655091303884019038890852521499469762889553824125476200864765871246217366026512811429138217352632395922790843896522462829816536170584241484303071552615668497728533615877927934736389776849261715711593295340991118610884788854469203712362283655657010363764592998179893950078204301783087534362712414238202864734580320351447537983862931113813250311233591866918694947322685677928048795473461611259060488446411272450491251994394664879441717075610460571725439665959029185593892671296900915990039074512827850571681794216512452365162912030869709774128194946765698606341730453401868620407516813491237949451224528310672281379935331476889842878798230107595752739966234708806273103592137566107003411364715952333523837328723729690842496583567119297658594066787880459793431430936324551542520154317438848748466436356149805501355153470720861084152221228190593672392621069141351687875930660331404892449600989377455709931264462065760767534238876027834745502808535648966754901205286764574965179376848052176560847745079824022099062006732487480182923995615395775607416118914493042951210689266874479314890224853568595086646695491318427216282330044182054679521694665145691012200590210925128274526991850658906548916014763898420477669256531673642576009067006555740666618725345402562397400162505791444200406619991168974534612349183861301534342044827677066930408634884877281276354241141137130000440124606842548024046305531128622909557445690379694414214942913825659072013380159475331751506108062030241217128955886685165218403463929283774415347769707345160239532103436662996847852719277050310369626070841279922511737099610998840121372145492409710950523143663973292856674944013821373932686013749231158144239436108594704853022098911246489512854990502511793081020405875396784900754933466278481248063997789958683431785095119869399599024845532040254991976110679046409386780649175999991052726668055004339527332743719405812363596277571410784507221565477045143298874976364801366886280297778014410557414318316950663961550992099008799628687189889073722300744444860326881617178716372169363021873838323612896334165535127975160837913898547888330233495073309175948332317921853244406554001017182443010187179614398555683528718655279482484948821106827110921910962441401465682858313480853861822626577558720913744842868274601847444893569355488711790310378651405300854340945346875841915820805325626256209801891023255658521430529452328308549621149648380148102919405794058529622429317956070483888442934423025751322600616195379858360802006683396569355705959468727844551212582229748670225189287385658529703227048953737208512438309167871751549696295070794967715195117966430337169834378380869693084284767499924114388638277544190307623199545425943177111766782143740885642020634956379360687609831520393354316752926509258772488464382890125195641381305538456024737027190633556490178972394407167420835361079886763950227503930071304559815574620697070580030256617934750609366437035764108025265163825324646717883133752162510505159581586259488801928974561562763414949534206789976609869204666700352667588516047077874941669065855368852497661036466414378422179415162208030018281860978602025366211195233519077014983020466130568038269895368986872514789312624710286652510548186618258408124531932342980480990551166535890863893538696752372836754235516458828190090797730446381809171915567471021403326185838307888538954687788258690895077656069948542868555475790503747563891224637480369586210619256477157145703693696384942739071238740030400581763568056669936419373122698892791272883076013396504495110753128667215988319200546878776518303360095393844250917301255215004435210201974444840683554755232420691813191500690904802103143012009865048670330853863109302743641196663526125515025160057974421166001691993655530712126895168290037583590156818855971097714921677131599490724910863902380328263784948841871503839302940784070015613494117371166421049677388163119326389533692299679900292728176519790611556085914969610317936236634446419893848965094925871957709779895531766639421398034031988832394011450415385587128669536444426859594371118323238124466890859241276090910753242262505218746727189614342422847966106402088519243475912168111898013132580107895960629439123931638326060891635580070756540778489708596283100650678715254896459828560791730598828619091544881222313881321846490087982159442772461423401072091649865779033214153125290274570619040269992950312689042737062575269251967173464980504282145275897948064859521038012163123111100256700174686427007827703115072876047143586032940820373607178478359557663362975235838854732656494419571024588225253171092501193209154360340847948395782726064313223816807606412146345618556668629013859531284192015179692112763520238080028043232931905889963541435034472739614717603958980655809847650663352748530258976196510634727334212464514237156738710220662953559239832427841847746943693140061822835469950002578455078501290273751992168492755905142979230358263332919238080841721979247842629632778026743404741452985243319974640271502165884730000374610120772802438173659993602594419895730112419551275205939377770758654750981282816065578882286731556530563861758266852472061214150835170035807432865925526217671483698683717628616873976093181636665289223567752606569653300476898368761656162951759929971404822076963193218040760332294929611047791425031619266187231462482094602698857178756055581199773841203511587503577958875943360452039155264342498371180092169504939707269206959935922653284786660355614251053928829638954571175725669858018746639270294226632153703902284460679219970729109652963492794130100031145323214891371824344142267429869600453907303293372464902137341327494367992970341541931562677836153768614409792674565395340275084283289740379854295251560027924401873015637335058562174938182456137578302170473710647257500050520772142299903374237182421276308241500568514150075067523985133517678252204721570952474316135659190524735278224448974047772262813222145144248703493837979891554512011860410044563071639756514359661157039944321426962654228493770358730809421547925296186819666312787568537574765540734208558406162603434870227860858383130918732908963977266550316890028360390375363726452151328918389859406965800348795679950667658210340882714043043058939004308734029462409548439414990590422420840396738860716761268029505926246064707294203100264224815944963079017293820018170722970373230860010633284535065155629991880909326678295491917303874087837165272361258810468820480651065720585994596497829465392285083670702580415170431641398104378598392100881188611200661946340215859286744746580734087609449427676773762756765646342797792898668097544508177192438539290839248845858381726582607060944676819882631781675942377337056315869440857334627000527277946490596110625194647058045788354725062638348411825840613027429744187793897103927640969232438418653939644387477523407788420048196092806581822886737390470086471039679243592786327991202437111349489920623879499829331322503751339211830385225242908164826564223747290151029314774394940262026693471865582966453886935222558250864731208630008067133190843439647887075936403511733354775779454106653825833365681010898214828087144473479842564419305820093587913207286195868964932465693589871461078258461990126359945085247412318550575734492866744487677148360189746229934607899461840524115443233605333780804183593526161191468398665831500928469444977667847082722941934635584628811001463479509816731024539130937529746100832793220812259202499085552455668789570194579866822184435479011313721269666729574549129484134949381292287714766446650870799097046197118060178218517952519158321079564149098779828738329372446395157311080102030810895477346495638160366190698911367955388106766680539789950545209203721076362517879861132677023252684433300844091989380636053689099848806788406575236358634200929807076341526030383449646447943551074189406963497209489816719440093853510439081786870504037737980489099144387937865134995949883396832701018282921602566757818993479625166310446467634070357180904072584049242327816576470194918963339072639255828480717694398495048486047549143361633443974529276138778587837092087617869071176880808120855783505887524311222815947529504940481891644232949744228146111229043696432022363199774935597871913744188764019430004041670497732033088453824261765728470972364522529840949616497384229911613114283121305936631050359550168238105791280492341895103519537191120117384448783858203727432237730428615589965359277182542903954385799717091414670640934146128447207467093814270973436384086790528987645231060025351476680375967272418449850448328023949377127219463974898125296838810963481572787581969370266386872418644418961289471671850751323135455518950164042343943011545075540714902138933584715949779403579871287403388577198987349197293822514903078090578205273229595677474872960925485765014084500004452303382148216740802006449882392800823034524399994110678227125508250730250070401633142262247104957814354067427329141820967076073966610158770121461770179443835440044204851051205610607585107324590157795825641256520605321084088815906663062151429598122551610206906192657326571455639585128318683249940558745112109806871483995673742755552986390458867705968688755720878136339584967019403335364276312829952481025095255687144305370542787771203334402779223532453830809500237911538196171085749020417166174666277151399429137923347797142408389859051869206534037069887115376427664953065992840735311509147097879336921331899273741204907998025870677057035457459258086233722309144096929320532622961216656336515659638025066896459969377515807301638806495590510306051214172440778256261665333490342658757989070748663515583438497291596197505665749447592784387109240241757897266735351583041187394440860116371041528251938936233151764811310382909366141084566251838052079410285232298249612412200374990414464704724935538057243513880316805698303819092182318200412757621314940744379668714051437979609207572183109824771676970421412813474824069518685077178254774566321282583822057693539787524812617169958992464849007672144524237209083941393997560954122484976213005784103695270338904500725246227401082325412458583738337151129762589266582291964690724835017154421857875843134814755773256833500612962535400425525759158340602346693823156444480470522614083637415552129932257922168850155422286543153400819440070518304690103088094835040861256885002815847065376853794533034184322355570063991880517106477028897734859332637102747801572380178599619757526599837929010045805475285149590410869465974959290441497078074607401647252081602880819955870522280137544131414076030732705669428621801216711374899744942219786634162978216968781714701288921626088582950534733555819427234107807792169580991356490668559628389271262109499399797388644271440381663385446431816994754845323292725740185269136607094463972347510351053901396092712226921615785745680824990524853132911652394847744521837685556693239415578849882096915069815265573913284923248658356340434875647170866534288094026881597596008192946998839088024582244125185202401191987208360074909138352369703277525917695878434572439071891205851329726569312534086611434800632042963822367190015113164342301850669969010284333995842727934459977408583810449800066995772395804991664620562290137516293445647734851262011351460707127097542300225082721020191309037976362893202633361026117979922942482399539997473150208490814331124622488407844651965885860382926909453969616334903785800313938616269448457514875280959500118980995791580720004452988661595981151981649565612917645267060186631290308430355303943803744781282641258194112885793376534157442327733004369493300738567253384461263515346368220849978812160819348784888089005211679315452107023504716243879867151214519902119143967378778931572689409983359494362745281703125107406679768377225762361976623096727636448954339339409149659993743376812758377155703678547211879469506386244937137802820860836739649523842570479319234956134536014683562270932179305670964974359972141924649141445579668868128610813386781405781804915492163019120033130534528305360886147634427995086252411041457112722228761073702852590061113628212479778287008028815214167567855346642619255739150282105675146826666844693277818805405835263781799511336043984064065597722901542662012690178399644433176515707604258217967195617524948664434193575282241580992681031152434310980997569836067306089065512705269679872294961311163095690971084167644628170179667217493221787462425928516507747009010159614432923885121767584156126879884610801153053658982098099710898490876877902277212217178083954867698324898086636151061859625001942459535671150757913477805515314037896554469316938399328265057201799575531118947953020057878785282287973301634828824942171111248602518377356587135040343004250725369604876271315826295829567585514065172256125091028328467999677435817578576635141678814130029692940869048615308851818012027894840678951903295731672994839769748856489447232570791659099768046152554089323455187287738006065285704881676932316206513321099930392041712556365216288600341497145029154155641773194186677799956708798767416762309194958605877351339688555339112023378136579782312459030633838905275523366925024652989023072469572419226131646792532404466042689357632820732601763098570150949508878624668208341786675073420797554296303587747050984759867493580329074331296899628437708528953971944954546298670037908212945586728932156087935365295018088434740573458155820331484328966793857298182879459274011300356203269617716770896506569254725623912715170913229554420881487925950671741527052090168280301835296750360549369561432311560367888600819331254227525709251960588613528050845743643332533847326995912112725616915530479822343172642997470002140403574972716906438854861510316237783311005284500075590846527307518384856697755930217561295942058310404515196731142123861714509743684996078243644952087269696549045286016727737579578399077189522831315699366650182716569143919640555774914179253797607616851465992207482622909834516903689791401094911035492460015702164396795992588437440143998284649120206790970504979653430484369540548206745740414884862414422270899261205948990274628558367526023114437833914353537388282601884606383244070296218625617403060385959811202434844533948103633228801990520238105626880646573885168353336900347573906008207605426153832890342445103973999218260027675741429760041540003832001315494274616632175865238903780559021165370353895733804953634810347155237658636151925265914548584856668692412390483321589391761241767372859111694713725347471266723047438247959337133092435790964968762275161533088814763347820285622106312841738777830363193815181941218661084688239098244616986506262456307614445111595115269078102568699440064325081725682736878668704973245504366443614376933877517911252030887749544857278010313327012600447546550488022780581068741028131321214773240455074828431762722525617254691204798100252573138645896531192185202970000947694242912584341125104154216512225350411852489072600409403176969434703131351273108398342016751930963727304492921094229100812147675887864941789740589645280496053712687500576047100427551684432029073804598748051931902327396927280308966341389695098989233064515057815844781867810030367583001198135553180051138817941020598960198595552129820539774546028329177802170124408571412556439468709355034557095213470326114839421254592750347830866493607800888604916203091782552416878428543933957559527458967366956718581332244511086533263471193701120950836685309020108959028603322289342043790399043785577068328837398150842577712644224946250656925412568481820400598094741637615464983200929366925033705965992634009879535010474728364649861633395720357372472954420076254597501676243056144837914786259470103452618063069553109018818025564524136682927909056964506401338879789016363581122477703648257729599934681014174502824244251790939972500650389539963269137220450350539305631528582423636424474930205953614336959309994310241181151256174005006374727523988433892146656222601059252902175309256594025244669054585871582174688552902371857262581857950408374027788350644050432533147311096843758824586629566287009685030627721221763195890690309757192819361732243933558725843106327722938872432740454322547147936966907513800249234938529087951049764048043917610361535564754234278723443215515048477942279619453004751565034079804034790642458052475967899704673393256339096174046182232422236444353906062851932437154154489408857039967086881353145463326354823013078500070414831537455057802777078647479226928174664638217112614466979964706976178695735211572526056124666745806587301831339953789784750136324420772214096935282367619727798141240276193567328379266891940748539113918185346511649012123850361925040970601152329737998210155803527774277551615346954913794530029343059356592444162563010426953694498509855421245001263312804200662599745032717846708580413984421022390642772398828586987465060022180513985580764363151983268900455891047152682499589846599675498871419684027685975885535153974069914864494401630981935533227030947800140779728070653028888598814375499628564307077756775098061296850162172186802409520076229357626250186412802624134129441491376241775535097036242943302617777449000287098983318541270252683251680267603310832462550449299950442977718021815632114699737704531181531528370091707642762574091409624126682164244168760292812465437605735614476783702320659880155584799719157151088768908840578377159463565417409157107072650069896121087963773735463595045258870487354721651105687217362457815701032313375093237542716247013818724185761855943369349000008960524046243010675375474348577279473553375524617884997657469022357332806658211183416712890716810938537949081674296147135897235109138915282269094320173370812982269043755647521780734727867131001365947415279069607302330124241376012753455053816744261310464861969117202357942995443553198916126545899909425496966434006467272795104751559223435090092517418710128756880533883191847830825241466100961561018143264635784074121761810468662122765698482354807119740704194544935093237059996053301396905767503637632314285135786187137099885351669641908235950773237303337809036953475587556419349901990330594723645235963455030025996737939325337754869307115699860390024502253207085385432709782361789613790918101360861461533195579014064842246131863112206760017747412469135640925640341240533782252507707613546681493108676108440875240232217727743215313925544526263620920206166196822390881074938996450239291471332232681079591217932426602218955801945673943045654651826079625053706750589075022727622749280242114624115536732459231170708715604437967673259886854859243559663984606713085831739228188859752454940581813416059893382521200554360548685986414199925837673628778749810037073524449659333455012527797678499638552568192168953323042570907121825278878088611108384176011806865046621358661850224564126871894031440820759970966747721344747545650688502239819679127639918963252372438213634638454234548523794848473236004039421736107093910972507845079148136671827634874327626134587149047505244841681507104016764894460999237972118166105003301518491019844107231030900416573667992784957417972771628274259009743190826558363304351841754515651511765302301671598205219180610241761114120639476680730029952198032144470507462468609597092718488251439875552645438649896902112392925326383726470016434147518857045903368475483054228137983940257168985054499360828762686904920307987384895353704259702957911264971408525282818570376741188151495019793953961587244080752976353927882326882631108707227079394443249421118753726128249939015716133992159048552217115738487065549819266642811414787192929403175678788489602432614943551791132473105836479033467930473841032391592011175867370317862341030593564982235522189309284850302093079103416853460917845380459368757065085489682214206068401561444608948371726932395651336918203898826449230178085248597145650481221430982472387650977008732524419029257380126114811898202366681268241443447505243934436372640587606405223365590715887499714887070917980313752214359763706110045571134516453184489897428686487916263250977363938436863790588816242116464563512589155870006867714433389120681073525382028794366556928178964246512291780325854641767758176128650213156831635380449317982744682320053470505868710653401585333250014398140416201874741727611334078246363310567561152988653275493968764408152105151653452870528750627702810616018827197415681748259016354674722750243737410321390295162293431964939334926197409033916591343441805688395419010135459642244348470410730147550190066789762169798003243051232174835803493715794735038712511432622336931156398937991026300999644590378393163405763726868261337984898697099162824111606980466491940064623821379264380941655296260626576241771005847321272324905373937717723513807078857719213301990265869439372711885465861025066198709761940333627074437141012173777905018920812350503766786883217715026470012514350962061933703153493285527634639476060057915873805079086031153086706821135672567660600702197660661602880971793412732176313989347128054585013460655935638430776341143453725589582368390308336663150825602196102975871367034276904163448533200933881779416846046672032365581159779003692522958862096606341673185547903773280854864195698528869731643728923711559009630811079558959145615053285258082134556804807624323368574397255346610006675430546743671641964390004854194797742818681639072059016459386893701257313429055133700447539905075856341787381078652754014212619138614904100242452482020448866248028389949516259813239601245466019230358376918640568415081972315110276844591137151207754746814103779428738646723965914566758876357604109307720172064801770675424404679601244306665730828560708391493235404835232559342451232586782122291144919632563760993853745607926969851055602380921869510001402157715563353094634668675981058126760558235431821190386337217627694719419438583489775753210536190485569160756204043255628230035915238005763179436644157211313764249532891479115394525706210755498950600997754405157981047711102595212360368368721707416679130709743248255845097555549383292295849931263031922954571580898812639010016465344103409946412701849698631013862102162951242734363545317194503109113206791665451614799531985064612371995705282730667738056961760412777922042798639426772358539027441450929967987040235913492049336034322944921370687132418093717286505974695163325052130780163498208597990780713192355771917083281521904907527477509073955898614022858337988280646194482616369448074866740280912648972983128193491201756882112455544225753426674511381515614510282433194403087758664979170621843072474761688733092815054742801330133080309081485259682729479423629086471949979267266086469949501848868948918393463396249529777491667109644885244804589194210141318532428704049885935555245266306147089343738257725777065213445941663334687829367134216630317958070970177761793020336939248289644383220485346134379908492349787417773955297853813119961228365039506523123848140277844154790786107775967838305381398923926440310386770194039068645899106431955373101711002738096653096187781149903438258854312506697731753405318095834832436489652378061134684336451426928193938524908326029693060145429038138857959014847788840342578366191708857462640251643902889695738173801385249016825737138446130754911937561571897042639264698649983686508251347251669781506450547628238802001176061018907920237188332041005800762566924456086551456067903068248339189890815070392831990553875432966406191211412226834301237912738300065353593526882146041063957416217525378012916798472671168774387700225017257511668213320391660370846558348937422957738447416007702032423932345022914287928879988698780307945661296158917195533711688297118275807870279945286559770323440903132937446988560440246582392631370402734505131956008348865289120033681564676164989934359728009114853566127487629287114517111692293496412479192591732983531260203543141348136732745456874842096562795086941071051574587334212083870845160601530497708466761860206041654836933725807279145707655078673603350197457729004382329546900777135088834005859088118053137479194793339237501969238001301817625623306113174720815492305372640539171210366109416312079646465522263342015055980872041494291448083103083655981900072121212079452810621365585209141496271268986641834901178136994058907313514684665628969675342958188003971749088456637756898172323302898987731763175970145763245533899336664509442452848215771491582207480360257631953465820088760814636607049331119484350737649017263409515059658778452150006405056377806340476390903073252092204985153917304465502414213824156435401067945232689429683952977120330897196763720237581045877768456164859202638625666020876182738710650690563688897140260018573661117735535058236116681413718100421155843175124597965266806266351448347380115252782604159913782148814695605429099842942829396335334103151007627765711892792077460747111695582581128049808268982515493693545598144627672802911876295668939273390163824155030732743201186732928549995357080623491016264504944678355819538035369685976491713550076756731442356480587147529830266585398520226521225153922482145157731928227841114978220896401623901705424488777225117774723290713974857042282032345377588144394605654666039700996471460472693816673514542489673478018605313313282856923764663975669209447436930204810185503799729903541253209367622438455665570509692004563108681336081281301372055252181145919700552311209304216574430113011012127639610565293752197734774403671185555383904860261753196065471113526096231374510314265307405829927701821821628408211530247135185800600468378819356409299049691900206670185307537424861736565966970974776582706845533640276894252505544676815437615792883488396779042024776721101408875749669081211453597070447192384345636846448531578785851245806476160505296794833549085790437321179540736146968742040642356466918274313915265988140088663603234036396599712417886022965923403453753092683031849842509273033295044946202151133432582233519284413836083742201335019968365200891116310099321322721178178763494323444621303853452050212803622742989168206954379612202837249775313616205806402745037909393446747722376484025207853184896137276004708929099877776754387591102122003106572288299915551126374143741123809791929498377267870018947813727445347995698618745885467831094126074691693715863631588874646291929689226115060402402056761440955501481285753272627510695316109851978675011333424958302374559713487067339096958152290972338826296496242987494786827463873662977679405386678530631477243610723608282981741033870882886260813055326166622265662513404356092241778297451634372908938817784177646174484719462722553347701811797370638299245905666208865900549902771779990570367902375927196922284064231831675683397829246846285247608371053183844306175717371748593072985480643132194229124631801036351668691307043153066617104943149765351934468612329591330895994042688437672575808729664165022893035377235418982307339157816215795936504046883961123429327332148591006047230077538467704842988155846634293647353732601729477539266801430355880018800589779253699637322521519401207959887258295884598601518093468446440569651817092790512684043002167877241992474388133716886250863097698207054180209238342499704416417265658514284677994692540866610826529158175081016770481886048700895358418766828066390045094177431149252795991770357055637138877447441293405292959496923703309563099395768152323772709195376339521864753382442342031716512083395704231823703583297047259656031905267835727958419071147582094628603436482628693734995274345379382637016777966975312058557055446077155324212003716399885012845448309418517039563343466345373187400689740476604985320986273129015946946224310764216567735307695926623608805714854636949932124629130038657254670770816375004439776159630192097443912489314380830915656433606175836839536670156797269968938080144913820743684945145965353707392875507597829083708195969837618392953818287648385439286109467993839348220091343696307963257302547717721356497343942410091132433183583985713114129875148970933389101440904275344725119027771765452208828714260847405636170187089633330542088422975462982515754373755411970401188591979484166650076699417989521685491723076521388090492440192856605828195107724069080610060074720850987700107434486780840871477517212219401355371178943377582642589595346919826346892056085308091203643948387802167291973150202144221695768007559631013552118549407414591620668945547037767715452398577200728887648754783033741043979234184105434758752488532422700122289742515371379022037061263943135258748583984420693378295496171163188224788824711907393902272023607112052948934552464361263325428416299177136128924337324469882973306652870073589902979760676418689076812188758557660042817826548667389448419061712270188074927603175863450993601592693014429106297032491458110681202298734122913514634811201883504708856879159715974502246566965736555528298703296948971428432211993364631296585817325534933939625173256837434338487029872122138804633959803002463491691259525807601475778213230160070619663024387540018754247387668429658077743034639984748422862441215779950868193023121376542144278562557046257815310553111050004759848981710955121367510020146495236449228673530467665104418847607378647843441536121521398314358085343492106027132972844695187133269473253192086995942941637861425546476211905682457642621064727481962047874552181857391119896204413649484046759347424544497068500446608117878086571931009744811243564207120211298249403460982049948726735897420700282209221495015376112601059167382308739418211897763878139618209079265343648464868397090243273526573890189125775824941019886996680384812791850745203386812097826245044448174375771677344703854934884645433612301342010465717814588953486309909190223276589844604710477446071698862884356903670351219898513570267644045333411684037317888206012504338546927962000347683459608070643961734473007305725162144589192633478928939637376579649998320803020412427631156767519740805003217793775829892324849714351061954877315586920956719001257630247079893846276365935022255849267066830267315311628549713395450221319392601935852451192476832346713172090131469408264821627903685479795632370823502179270125868625309900430782925959022150747219715017151408297406330697397843207635925015898732398425415834321637646543901585311308117156490782991530216609526795091576193103615925065713001959267621233330890040334469213640149192491745868168901608945330858701458137746370535338515214950004654642794143297207141862250507750855454779084177804898995379756517114843799526538481210501322447197202829501660064576784563591149581293215448220554294300986946618431596157443095407533307758760747676479432510535755456321509537219105172094100631046707305339108666739999795684343866300071152073963937401483679701870604020523372557703026241780125972218417702404979417229888750120924663325947478089162359673753722236450696196572202730667291022398385936133038180691403710571109158594751985286018200714246145406645843717021778905396521667326418437294178057509554450780426864288303619602491712577584023015036603719381293088549329570555609974323213234419189576775398497128676691168984399031805462319121818191010880945280534438650595350953152198336266817707783298004573606890972223987700731874662958902492956901180943628391459166111402212470026142234932771560713093672644683418334116113216418881948241277687410663954351687750060408602587677223763451897483016206594374227938691450165604794750426739095103563591279717608486838520971769737295237877554844882829870776160589927064295479222459153321117461569441073890372017422778021621810081749495689975379851283981905231071083354985183185572828551104682352700638674549761099236192663712066896111629643612502129845644685724757351338217621939153919317684488967902312240877962605586447077440428070527638352092894271113538264896801577563816973266672526410039438090507359724215116121894518018165770868195148034012735071257505822329773432551869154735026707292466122850266433384644992132849094878368971966298235507744927282713761506789663550634372271421872759511201652662945081013987051506243322968500025854669974307351941577045788079088873215127252590771688533006021024660649810685750759661596091759453872713598315100678142613301930806310898017742924541982443569589121827669230524526171806750132020485363615352483677888328868653990376720391871248269305284882029386979133047604651710755007839825972012546046228246232999527904214885945833640997808869319949471170960354470271048629453402591552278418280063381276001010593837331147278064433511848593305191037511329994969575828590587445924947938538355296838905264911629908866536256122122674604949231507036297396024764159249215761931975635895088316176932861348558203689612499213594497639512549841647971662267475702681627436072161166571661528688086731344093690519632309851282656871169443081240720492214764644086286642397637372894234824644040356118334890849113333568615179184885507599906551742451747835922186356380131195011832145180455727393115982661247055917147626817384556724221807031609259948648797765777701564815839924576515490193057379956279551432705704602021541636023446335995813534297488884586630949680135863993615419149157524137607898825050958545525705153308570788720694858656760050581646844491367578229913684785958925819789981165212551751482061242763634556551490773645996999728400557713927796927467072347780993983892814515689792808146886525998560126370436450511455378575775338921915975936174767331263977595727155646709398993067620665023428782895064330451564723464228904973018603455365403605628220770212292572957856568092309354542521545149835563642284528031282910236059065905901066556182196140239626425024169411421673300460935816209473103027043667644355821498464002706305824922375178094516735480604029687079339495039809722598970035512015933279073558826529781707721278310625199136105707036749841505184264189610611639367289607413666945661271343378538132717017779267291817827769841458234711083576742420151089268171081493467267056606226151053319460983107704714170364087984029573646417305791902102811260022375113217950580158407817378925972738131556284030694783029099054490098493829434676279919205282291045529736228947109915205207136000110599925147860408220389749053332594485016895605167883572654813184396475640566859937645472542760566718588366992659849673825726807369202251872703998854283403146996650356811049012080461541968256085666794231288425276490942695340053800398915358534340939374608538525740006004567015409736056065628566960143899002191624398843331780921215437003283858420124888248195258821981650960586707624687289466784247916729488872958558708757183678873339643558764249759882659013327884307844129213514574250670371779147664792071504361216273742777303271256537264617192788908231778251548794593358420370889012169285105195297181113877208885277984366046900366993906698208519649239798914740673293917148580827859021287426610035584922201129661303449077160180103364742050029202898885987779446830467496983808552451779909837161274679553163286918714602093337530868951466362807479665726603027082301068157058716883315669434192117622691967888067936089929865940903570695007824501707748160210738511716167117346812213620061002344708682476496958617175405444622012026748070800593896168665644855851064649362682433084911592718751645701574076221093256398637482064698991966842940847057489978198584049973539305751166338666979998627089077773435896001906513429202317938143569878881779982259795786017697928407639435057285098330237547933061811278168579690828302710190535521245848925370474013769978746177178030429240395470580851948842578810566307900132962396242037879973851333137545066099279603340309705887118324430187198209901272777841276257596886031496834521929457225706431662029683645632419959820631478208166448773100064110486188339065981513586427271764681408299322841659906236348825105226550216635442008998100200470195057013726634000690930406803910612508894591457483261787934298129584078592788741673457688998620983895179231715736323763046993893211751135617483214903940390655510590251254433631138922861455530444933900924994169768181966356650258527091465753985809439807614283927273956002814216297835287706693995756069471725877779288775570489065865327623023820214881810717725499169851489450833279002231679612157719375914796549188441002086814330183366421050678001247504696957437865689393560168953851056195055459973994025662865624062944392031211472879832295698784403728498290687637675534290199339324331039093334811536450207097564541633231955599728164518883533905905808491694734877440493943651075620264002004689468298203174937115077246913233154473015671052693370368476852712086310503261643661545467123431851303532461771391229924237467792327412827045013405636633944809288070488198647583350589546015969294040770414885661853427568199589756672255829205316208251875323562721905074371945202261329397815193309188984328440507742320694997504150497737752913365088405669463478189470112777473659794177992721081769355585882405330700649531304989068569936943756089546813372813621260748667602339588262371056776213332824483201318108694786987282166052213571325939624628454864229542735814292216036068852598805174460774238179504013513626350995543585430488629708271562248981813657353095190525639310639025356054532681042993988607786361535591931427381500148086791986710574667484745960878170752008152805531940859182711907214402477459626975562334863345327606773848437026817305505192847519786015478638790098226269388448470168334950789313176852238323048609409976970901222459615469191853389756135113503692247968942402103428752038886762459441405601697609946101019143116889535052295528989657159798828107498132124880871741180080040607294020340882730312103234581556886513014511878504922652052984271756638238214004340783730833423786325849467303633154532970439020525900510181119270285500829687089869782990327340033816281440439756761995959083589296384926006737545871042637218457910571898660832028555246744832301224252061977608407367229060997054955902555120291429933659477785464607315248856022484196332899816490092181128989739858668846006792479473272853856778162660233758059932078458863344163976658798017850083556140663290556372047030678030921545211356378708084229247785595574847966893010771427852840947862605265068786203753333917296950074825696128497494436021642483201025021352037209297863920130187406487420999435864117908172123343545626796834312332327718166361556844861811462206479246663961533950592136133102150773148317284000804482691344950723969604888575211079060362966894312982905473087992942493677524081176896935307720746694081265509975929516139329077223216626563623372611694425609662006295822059836740610602124843900564965352782001154007269512414286355457583613462592948578056297276682966485331945567249142949168463177203273188397276407516008616722014412191723969578101202304671441920734389372981728199697836730273279740568632352199212111238710843976256615579885672081115786561213349453854235957208512947522695608726624091068930180509538188461315567863682748843761258279083695754920266864596394841920177484355629547612627723106084296685686562950037125813121834917385083329714771610417135883229092747562202936675477806416406379679681436254859997380332809714940723667962462211972758383270646087275591542399236237908114990751414621252698142803669413056278258278472312999844623724310464768721728663143216310736347226353187427566684947119510913857552261731005804223041012531224010730528808883633881199593412361745357786606248029949023514983775001020816004240927209813718283446979230140138873551877010006797998141061946510709853175921325874737014908850518433446066033106024463949546659375653764142326371695694705031506338972482527165244451681932913969403303009924118301897184979752956367926399809922170414007093670097244671452980309985550350319306803237599640706822230504012672121259231218863739709668919654419248598685366966148267800681561764861241347869369976893407514815285703138925295265417805551827418805048731906699513153404977888945585815264465841271509034165041134456172736971775133471064084822392489521681181790663782388120156012884809711459771513087580609049747551727317417624203404313123068075749755378656124187947419873498482977261567946568666965446232474335442365753890894220957375292816118637316654995919507116257804255384226579395691757598095420453629292756471958635274050666076642777509146848890968242733944742179656116237088886782933828956632657514425755647098805673065050727149452783162428539940696146058455750630975466723140109753009425182581832028407133415038851988485465582815488206064003768398055174816744780344393156036134530847089372105369754144111509079391845490951685479566795517761766764281261724862051766981134564571685904032840116734295262442067448122089950158221684361353328293047364849292771693470561445068520352854532210897582529614413939086928490981313970091624009403940899997406479185494105096486479026480023418319083943094114400603328004441713940875223385237931117703853254994971190952087540222583724303344333880266896127516492122886973299711135480415546737289882547423933265913914812748095212061855774255675639581879929704668882861221537738413116117675590720939948034401691438163202692679546889372452306157221533868847327893773498732320451296734517984417058372219238264312430010086994476481863239508408495591941372838570620400406263345299957664206582217745731482446574108935160604243510265861675241028344471632781412507546352321292774424601278170679783990668466237443993050035751590220343915733939010834411530443319660611836385024712405093046473347098161841468493593470465009935966764202091936620380418412309303611413093963466720746668696082160483373813950957760177421149484931056612141591706008843933817351418182597981601572560965467233663356528101833162664117488727778825304481417184872325914791917403673723212900992079779438477953994391386318815337219462133558495507831768193513447435435808584755210347890654677708514469661313837111477301730598759608166653384527335290460336247498500282163026878510296268219396568240280603814405920213228911471164877520676446088022227107393451613998742681018527014845173709615855712921355454067174864922937630487245772185592270890821344593232395656409230795358666951685254359923038031093091815984993897351237739322934185223566941410250495517592867328951972127483544986430611233566733118040936405654211304242729437201019625264283225424614020367250990614385977159157649390121310492956783879953845347112624085886879444818730688300179313848565977539516482376128972538811348662897731843390742117710323529265022386949934312658454657322345371344925489589749185420614177931197834990227741717658510521237225478978861962036990743212175539323353142853849630575927636732526819383626803054907862186374474871011326010417455768470811750497623072960378029800254042152265815335330851895922137963768626286629965322117029332717690675239342409383428186831309885663329458044215400499409323758799439955124278431146542499272955977448978146496233611338660882500163227459987593866761970175097814867658711706620639672380976698761637184294439177288587959049844413073314083991838602751662375868325289503761734154976839105251279738289973391580027477277826063278864541674805616976174436717977324111584774782102336700661416807671476740868261489243634375603046610535161297788039727573996626816567323050055251473346700923997622494195192792074651922165591071769330157545271055164134322445433286761857218829113256418506941036349787960271582236770313089193751045738921372059339319857403153172867631095607112406748240813598593557417065474720036031261576591743947664240656738633037471179647742424450028356737383942986690510950510478605906518149377447785406876834835408652235186199505326430458588565762148774629346411819932329111792485645088560749544432782530178176438065063857681926968939731767393835084667389910938152387536950267351238225341257014622768389442919721235775842382079411357777214222779923657013387772697948844275930333956526475348390435578530241055221920200482456148910536171021541862409128090562377848988341807898011044536032740694088804095458059203560239369985823144791611332732685805988998829877071669318945893207957013429751414163773977305380757500261578965654143384689884128695102285281151373403340823630460772077061654690182028814393028185565333411803401754896558790279879015919392580458577577697510055617599547616601836676084613621989146709734056165358680983176817047200758869711634357546553756974915631852505004690053193849641823564643658821232840372301615659813250509995039884853386933227771986513097950951821146563353934760340999651619690632701544838278828650442215700322299872927235718487195487123478290276034329802548048730353759266067265750814805962653949790143598319670982178412460056252921833473429794563253966870862974859689059105927480681588907383469676751666335655080978371066387576262064089812308768349811057404985313073848389328149779146597426571747311217579637859784443348214895331427783493852802733723721192153378197783052635404759208218078018025306600741612838030463357358521704284147544336540210939203654064749813931814061125629117119110955959374178520428335108814778502113427406744501078118439445969786209975077663249122108620089321759948102522710028540601460268891100589502069976594908606664828719352564028730397976060360489738452209430830247353076404228969691516829921902322584734202001224025980965030259210036838525849675900735208879126810696825341987364358389956571307505144220393704838473505530696695553605397334565495778690995438824664098642973056651419604550687170084530354120116479054670018648442093152610215148508118930257012253956254823746189326591017890764410461341342148654068429967636189945505499539853549812778801089685352452453703826224035852088549305332534046550101391950718017572467721424805394861786157319205747541722603606641277820490225798610839319336928242683811346017552308659647339855805067637664978439896371445526751209749920632203634665334780026951719121677022132547106538869366439998601163466709451606362632656671871130735601932407062719677350909745846418518466381863523591207905526447814945926254783246833222809627673090958990141998476548130660029697416743045483937103562478000479777934897974982051419887846145791095191536252724925792668517387145851516212337865681643232192360976726040889799858914658225525817990342363345961714980946642167666958496412536569395720031400315390777077668222702645723124975214300488571448403426547401946826826172968129723249782374893122613981627396362823363546496348214758303916967024335390747656091065688265354257499427429980616963248444941971254034027285363347406319702280608837893488867701698398807834749048659608485766971353815275665353759650173989667390667147888722508746078965998928808456003807523601424069828138063629925522219409746381802971787914558707345711574604416209627898195890203036671335139335045557026314267240649560463062277042104585934504570747827727609860257204500666455457835505332682864651149542681304385927396267952951723000003160882639914667026336245891107163558512610254401767635738132778772228860402911987877590436410055526038985273913333720275564578347980189257480213110238612131662019828049882295335617053266401094044931517380785520995766299777339147512928482954504884540750725714219093688247051634781957766632164245050228288136563836931876993467055994670532892586891262076108911438690560206447450661292480726647400449250457931583433568745205527100780536577377166760800649395544090185575441214885917804606214786682160634177515027216425485686308566975446624195499008933536774830082417317788949274997073630605732836960776654507466837561275207153994396473751587743311122273067493817924669819898255361163484881342968936737484084183304388719415743724540474004676753184445920825961147872449015655369960045096888177873055732999444418147859890699411385158058377793797358463129647446574967158998091714190935026542508706436497132417417986890291380069962821772766417164819383166127501581970084030168420522726437809805617517402097296526477439304914702533978146105643122128872636209443705560523145580037452898318392332236965233230120797247150753395666588203717891844230897709837956039926068812761226072536765500902778799635456607481907362865321802009096613399387510098756021526146907960901423189762714883110513794571192468633944473672640691316810187526151400346865434740171966750621691875566451849351917338537122540704761860352926638263983338338985426882741355356009434974728322691611088270705461431864904643789846724670537842569830868914142002642496426988784504161751256934459743255434401783773179416318402382650589780312417712447636717044103797401396472588431026942689325834619084939610744366842725945878927128275061644391357655847383764725866020177485804667339315294293538477748090032065426235648219724675548833666641728678996213883671205197507318034588445897880192776293827969705721460806670024505879620553715498567626360469968552763182591768453526785062359318213558316801191829751091573432396666141952422170640937352225033221520527291864734598356326259956986433122281338380924105763394831104504876201037812979051101731994967399877150839803329658453622518569452265337483819743876252686972008143344260323494636235544466674105169268342952613754683807673611005498098380923905904200373351254941062110192638415379905909756348107261417444203615547463381090065703839649717182507942839960680893447610238440541521080969794635160538440318689725182231973138269075088778225906678092352221759161052556057512339744691613045081096037697926804930453218812563440125863522688585649176526382748551222606509993637495605689025363551601735644647942208504875027447324589307828536223068530498956571532398872822243463679895947711692751609104642967327570568343548387297655493104539199452252146256147166803238032247240354832224478998652161213839366828216408488714472288107968970566454962755266553284271138951330517996544868082137528132321205323414406501540319181351103610427589196816551128682418053736642602835375031743538494179356902650817614310648004704958800087321005876944469135854206151643157124393813371341145632718719918002660168322462189056724793061188321406274480363441220550280078443585787741484124006791878091728175332383147804102234736723184145510626963324741172881522527304453216664034443799250472148374130400017665323720580084011072582092017177806538593490047573933488186767926001056461670607734333540471572176023367214598447454485199698461128895812754152474216915619520333724978280028251665631764334830805871508885162680350505090046046828045925150978335317873663880759657351691228785710329227177489560204734330710668946240035804078068264395980003282640071863420778944302481460977058201224230633269920005552044856294654373034625199165191555667549965069523885499427683414695584286834631396760443823427771439909414340449562869560113563489248049359493587098381998089691652639689860757804415887811704268323733643747102013204607252658037992552823124652231146365478253674385411183987023395376393469745841724201307897083894471889945336471170774994594206181007222472660153579002334773233965777491688468032524718469798399390882200166388314229250384347100861730353993620988840041607671646341249500771049678042637697687545962781611269341282951512447008811858270073963285100613347309883542858449245077185404135302855237342650995468801954368289844149407167204606320454444984731555842483761766637069372488931390758637586367556104406369785811474636219595831367332482489584787915421641021451964245588688572739543682485079289697308207133325639947492359371537357176625384724625284622003104943779331852877421436998538792075068975175609080660928795006660812697135384239372240940099524912244035429570703779581126175222660155319328901672376978065033758203988926944048131426601254278971452637413285637680359731603152291967078900403715160232473566994017979855157737319854166335639670790839814143417720883802686762187653045531386355308986765661797472976995853719866669062465895220242183556274737783608544759591908551465625828175857244730462230847161374240815122519933790871903967203296413169759240890653836687455091879998404286371742906350196368525333125309992403176828968668358033457727126509189723022114783241006498361883794055771967987813894127494597827419287508010103606101646047515565023104946126964272568448773620320798778899520774059167893199670257873787635158758458804609526175090348330673379689758547915864163862266782500540841933290706452899673303919253934491991130428472847507280799900532859700383410724362006160403582549731800623610056641166730525121761317522949555312896351086967986351798777936478446725781603381423268728392041407697151263084021396670765110728484023777472050992996433169872812049434486711277988524230575345555565417099649300855729984806761720474405125126240769752893003017598040885303340876018174920554301977519663857829196824724458006557025854853099932956105654630401118025351706321743717453384016025041862227603281398069582099447891957678490452766767602968217053271113327491442748856880869444603954640779057420671191072892796895932796159746375636196252409035069772758099547781509320183774140098079155022152938148815311212055653074799847746368061994615180193822453931480087660004808392899529116913241306633685020014331542977391964441781441486534462733847450116524268210934473816894702165427910790385973906435736152859503207422852672912483069442035971632597103377397618408125007187845137981192724714959103035180023643015147959665340831178940158873534126471643579551709405237811365880111872597462290949646781813212704261620762929463565924417346455343220007875693374040667530297569579639115986569627807860667583456726929862760851131419545125395705656027839937541531166578844026105982193869003466357066968825252180293513451855506887024081128576539124039061700330029766846535731474079338559274096642422340754468363415939939052264521216237982604770372546080034730378714271665503998572685316782789636744040697992132114138662903190893034364110246810829070024308086375901205841386636186336601222646540999561691530084846959134491362320047994528699308364299087155022930110388140187993828130948823744959248478278396232782169966811067038440360323805256564476032875043735922354163557465030877183631656025931154944784287327241894769040467443341356871646225422023544003272915127311571278824179980629440592088917967178888397697846108727306598567664281052845238666207171559520258920164191124777341208855518147106967562171641350446458307498757202808792940696226202222542317380163489255281406467863394890372373418192033563294596573045119249021364329084419457758183365454634995539660610197639050027360322820117547823916062817103145695292701528153325814047218809872584366913976356459604213689368421737891233584376828849805110855525712171402095122551261924659091892030244630994097228780320289348811502168472228730623077747237915203631891602547457379206711138743437873844821862867871729426153887109635266460125966748058965314958333230547018576342913084258540832004727313666699682158920830582187936655979783059892400029209052336824149413871942340897561358154366945213482959314883125778677838186074569956399935253827370862990340695028983541901404571146429213030317846132684552677500388275424824376607046458404205301814431463622889321346712830904122216779386175568877070658611784206100663094263152015637183811874927600502047386081253026907645935464184224735256962810349039272272780096816695827976815020836557392471821433518846051647508157001185860402480619601268480220523250250342990808966656866115100472001817907766017026441882305153417737940816682881531956302067471849163872425704088553088603507047385564339244378346082252554756710419846906178474834717870125340845691391679318405233708734225152875629645233145771461168295184238182995832450891037788403729028518058937376299726888905851952614897055179921203014482937246600488464305033628423768820824308514416165320803155935904614207945438151414810942596419373071355071076079630192558824072643577697640204081799631431275213905274882514091456779286345342022224616181431092538533002912670363791226798860994554505412183777821610317845281076516820516626279490815789075292873837362520733524053602487444167312400652761465274912314228959371352792491668863705798233068172663647352962402401740730044462291691286433981780458199710620989834289771553738874853031115881321132517062050713666828112706508835018607988651403012245459144354386802620150036224320848763018083862153215306535883591780267607511875373827192767250553231938289713006681836469546301039357742570187805736274207824618676615040000764564190736028680335589795829629687798464631713954881752211655678198823049366678395171909697566194890796475981994977951980896957076444057011139438454536764931623887401520597465016332331440258052192627403607144611021728590225392642053123509225448273649095937192084112382300592868336344031330424963271138783058301880220980937572656026282961759784016037946851900508385664340569782676691920516569309925718178010788526361549821426670869333635401967879694198783416923358224601892745884785281620864064228983908850669770487460818236009994973622435620214913743981178530961990990972054185373907970104102313200841339627181032686872341132315330783964826918286871846377084147386852320543847912340598273949106242476593987130762977766370498084010456307816683271612215013121381526899084280493383538735498730365031492903727325095972671794092953428311224507591409027825032148428266850376968066233738637734790583572953135232806904221686338462265349706197984610092223968863498385689595374499419679150160051940019884402907749413572087347348940907125861626152773946876523818410031057808553008981446587804765416501553266691107406141619402964040002693087640749247433448305957011583827942146882481747711984928839640111066591991098195926029527119413290345494726765424965078847085811995857211146877022415289252361469824880786029005948186035280410778638196278338718934650183493649608031699828323743121539212345274668008211986551304655468974808899804779088466734802955999836032423103127513112664268732591983373149258930548524228581628880904744714334757433721353655062065111978561897980036145579870982492927132621505878242712910044377460370273006204952950862947125571235884538487874316082547390185819080310343987893455843950973403420980527219578149396111882844979509755119848830862997081607956479517657000324122747001948309625302971303258702035547276039764643003368549518975574289309772173106737883002426609805962579762879846685670661876059160945822631776185618346726051884771020372962580983577670865870003247830228389917322486133528041689317943844900869478270943004259309945474767051495112206859535453543083986099161986417132196754956633766139772426969546879277061890620202207111266433797098874429821412074238789378743531449427170219732833699411134230362362114828382355493542033657806250071931373096316247118900499736244775203541045530009525097195474237916041997572088109794471399993143532227423721127910824595025900257733697675826466169394694169636238813202425273235750067797982659812365543741890154526224327067232016644663340172261869801076840767688321518090944669089026209593913205202099737160868823620600474395605625953266242059008992108797999592960213310554772150418763115290630829824706063055585991503111912294716499814777748956474279891268036613921006489628388753169930410243565670382831502651400681318064293564865585516449098634592394760036798945543225453708441646457098878827939563665240368631090093684257327861600268061961711813109263402750464592478191510829307261858680056895265119563320369751515086299963139307534996730457227223626525824907826255975917298730104047718632210272957090776621694828040376814397940317277233464318150147281924034926262562589841489045792828429894183282709140826299714672727892503273612046826939984941549275638215312135126418021794600012909386634417903546772438115414943208001957347204413306842105284752377312167739881021520623243468477230707153934158741508606677860248112963264895372663633580257560169242117954893062171294973330572258121178886419299874728221094459652210802556005464095480017960085790851222020624166147893102722300676223123324216261114175726223491820332143481407576877071819137005542220866246133236853854755901348974513703012604129987847081726434512641409487616057428858452329249136758782529670693476539633610666655751498049429224681112909458765669641935355250067678066916467508777719973310232543957869005197072788419006116192460185393519052427272282537315477682476387503301154106159335762910468182721685067370780290503416771934334793964329192590486095123510746372501091945259145529783013715854028887689370302782948724754507834641006788818691327880451486693393831653906382511118393463136181588508129889700048817359038825879256183126413307689553095968740292238314621742765679903948071667139527326843139996463034280415500996954401922177091237824439747046308166408096074412979070852396094868502613943143658433657072624601924153113429133054180551384191747765979339531779513422973981395759380595936074612755064647202770779112420642013692353882255961913022058846510984582678745635216782456880967829872306458928855084256346143632240214182273741576983790905777154666260739861055420619229589825120725622669276343160988909828451450530612454141265332682927756275226581433634051847237259402900667064983632021955277559862321765955620927995755890666592407852718617101965175412638521169246508946104910917440040014259975589608552666861782247162093365113670711684366060510599329808890199597422923031880269255777454770327351469441749714053768836218593440373785851581695026658197123355882245111615248138512114530734143931424254914305613349023786652955985520862070897147821873362387498819186832995368208831112243656733588847932027495311136352649315761375864423483164063947769212523096356319671331551123906491932336400202352851502417971739096273189813377328870383416059843060396351847916754851351496448857945452304997659439873540114055196115245171611118672511391210679289645192300014269667587344755134317186712601502546215903826923684926082149094409387221644069164369662016474447873669998032182113620890303900987588665144516580842845570786355401513003650097236907134778689561300124180889837262935132649895558546558981547811168843524957420109223166975075412247357622232097266963788471474191384847831684132389373478710162834943128263396330078025159902518753051522094626538130441749848829328742637096694093505848998465389263698040626037805077609078770601696614106178034460861107823122271618015269491149317843481949914574199558139989564456471647537257533153849242498046877384769245742470663890027746078114100407529518643036130318910729259780307103832988214587228202810337093702287634736073589563250852913012583400268864629611363287985298788785700837444371889066084582621403608634240668269200397021422040030701677612089054699831587595204816908301075082177949273548624063828379625832695617402395257718347008938031177874151512603087590940200950253656863302963231098439268146519715818881772118161185504186066367435064726716606189155658203297382815475882337442879455662142350235626487798002648472293549408049726488447452348210683090280061885899105240242593935618874566029405792090942702530470786355682205822674167439831158751584211693487166037941101319161658331751555230678725362431420912047174888105110399906799737913439548201464734963059821783021044313958004118799633157378141813221763256504307061010733716501922696067095116479413965210537359833157694399146955069740028218377904982902789636349529116920381061479896235023891591648939936250290860601085985896695597171236682973433089775729898755820809670110735348978560272895464895978452051897907941340849661776677255525194282244761317568347607158530075076603258808726534211728809580788345787488469775599274540894291837960812097040309524246750130626818860587692008413832344820382305638411619522595741440939937452316814721749104068764952178575621448408513998927962715240729551756636143359947295565393739844283944023154213933732120711131730178820932309975807217812844812912015498565374570903086838109022023610769805712733038689611631396816889789265952476427694233666270113691807889632211356379982354104595234250172043595209429778361665237383067401609180141278287410120922364413939830420960199838945541089293372252509694382557506761276930201402722034508193585919748803236615168360848516447746693586237541986243588552504822936404730914201909531549246827442807726101010404112849109624510520651306001279863484569100691204977127159901243630972512259052988929297339020222580043697272887831957146952404557258050991622963666525783630758192293337714115326811180435106911693621328193160857231857450098162488023438243732972886594912921102882641741660096914356225118253880926668355158290842249691493496922591032346220213941811328927957896438737173188689772394083085400350258382089755183099268651095246062041395226959198206953384506147092487398876246141532741469865408187677229224259360100820966800854488967651721594067765460695553604753256136277334480438957159100706277529024075209727450858760107820833351531479284389765070095653243922122075628809930822689810234321989907512258695292283567084801726888421510860210443887363708650426802637883714819141348065026501909317537407263608023786844350449820250634349934226302803156992689967407382887759419970372045155013442349456694075339296027471127631337450693738149498077138921709971674679177766872123991331282534010580923808558540200264541139565272516003666624914327963831465966292361887308042692058011879694225984210188518249382469602539879396084944391562818521563377202890392844142015784480232920516150939609065601368014824125075018245003823693085804795170715325562537896394012615534783083772843879488744962591755446018666317921279957632860914844981773866051411023460607478204892640907181543500730063171401942340609485893312075385484100017299690142513346319818081918132475869095668925487427406387343535798863356074090454474690902820011423537489661895414859831371278434829291543778402554939850610211502238664469486384705242336297095283354688984864250170976492625880489686186850228243888247829004600210316768292395285354989893427295479816586954318361604758108855239024752203793438748475497070124984341168146382252814908280614777780480475654040902436118121962774642635849939116523741171285573070389079877715152103057842755196574439718099551835916050209859965751204482395840150950925242582329460957205738480370272346449306997613944287197491190745886572020187412182909102977745130112040618120692282682905771578472634373351303184066409303890579041140462707921472335353294064562137362397970902981340347411631339756597359775726182975172448574867571105212348705948176851730791507434987435036825351835549228775034376117818792421980898113645533233785658831158607908109372447026761100739091878166064740278951262814998637042763184644055954405266536077545676636056576028435575765740345691626125311723143995445944447953727694006712749982740698577770699579491370362232523393442061317939337193393611750213076632037662722369283775751704913284744436650780246016059287592085057232058358227259548337715013492997203649997723407604768311578506346381368237288888427751027301052968279484183703065857022526696003150640397696825102472225739804741858756850931091057909991492815527541450451668880950529559554101905086942823254903795958979369121034019870378484125660598107720016641434447775030698748758214047314403806004552807767300905201406613855667752353974039862590485958179021208954580495545634343753527142500967578857764625944776529377567928688030814966129699805690303067817313676102057429114689593851212101292524425364995403647046826505395285368049263808600086875759882947314129136920197819708978712218460040858474730510058258371270172080460712749551985438402266613342619245878199262582391824042811579461193606036143906380516753043420209516376524370574495863415488978239000512171900766021514059990959292355185646069917717805035442923889197548704166251001395765482357499284659259579836800585565841705174317053813499200882267505493063233803994697166564575694100851861128803940869631178065788301504281069480812558384809190896312387810423405588911818569984734162014149547170984651347051175794163125725507274498175258355046959445028932381655954521672029764672043822029668961462505056044146828186024672629005777053733178478228351482119517087689238749314142053721990830042384989797902027128050703976879135200328835714234413413667591225743673570800088166672911108360291224943588016418833948529097064870312716524371389957217243851635032981203262440544100599710240068944882115492166065613564307793874435215964623657404603134644640449583153405042996122878596235099247264922816516439981781815627772708683190951939826739806929174244676367451017246666807323731733399360731589517900091514947031313610248535813625535754479912711668398632894309470917688977431832632881977783814508154819091371691092138182047895875770525503168456257794277214670156585669528522924138601760889183270646240385273876635200512828182646850137081289618787292367951994211153816741657704183616230568551088516350985819726745858714577044884852741391382369249830144232757589023181802279552937095442504180430964552631495705166216660731647927972682359488493285691609161507702262669909060938017797655108945438924119995165373574927584890700719258748342963551177775434209738859078835264948941302896200459682184728417386018587799393427298160761189150396898416882161948422805031857040908485495773030020178429098418089639587587954563360808251747112012864318770160608292065596626813627572847826558062031194032777699190330938401657342712396153156184579693899491056633849802374647086608695976552492377968807332411535036163331699773594366734856158742009019731312496048008392426237580026268830214395906569884460887161797402011535475688929724890392990874158995917562179241383540867380306261439456040237709938049358135067125772206554981351540053203389592002066472337819963203585393586920731935109779860386063718908977672197827946419961367539842118867386810629900233251556681083681154283579876181047406256282843363678448743787260386376080255381529709184371398364551783537179047317098152949945941637483784345006230546632020132088575370880645232751856753591770649816062351361054767535403406701029435851439562755600420324278189209575722396873053719554528843864528439598320740662361884722127874179839903463373643023413150648707740459168171898847744592811929308390462074586749185002003162617371159032013205164782202394054909249117665185471521943214359953949178847833826823703397432035124269746508449561078234043277590398713324812767559292802980329832609327188409477161534180793682550191086859773843655492510503862262157923411320795324891326496931591218843415805811481954623483593518742582556168510942365766817157975880096433002751264343777628436279929969599235562815551771897079765469650230918023030708906377207643114572070646266825623612167416546413984492144720587144860564886559361556824999037158297389979851128330186821777263668088660748026174760328496656051158937380756354272117934966334715009345498412116275642330109288742657956510298380126359218694538747185825734366923740810196722292536754454650960593412765477430218090952590059141194029783921535352465764707571357831072041654801301383913660351151326302799551622340817116508640223424905573919427909728887455089270745287270150878258337282030646636988308168741205516416847264340242994015674092318963983327667449888885036568213484654407311697440079526471922688746461630847512503731526296356078199607627126079810325376260996130181329232294690708910394366233402711751184344858415310574896353085138759545894887493914160501241377654249810156033880567510858287688639116887260922170328149272924338141495531605146682792105443372082483818304757479293573178996166819643170910288742578568589359646269498949166508271425061748501107468970007476402237980534181603245591728832564537572874633021638222146454804081769814920929465628645473077344582543096494963484541049076652850826965545988484971042986953608484162209097765676703926297933686214537645211917316279608904628662914636938429214842114785289576072159316203117838436827205635467176621184652825441762576647658954579771673210656714522922624741320115167604952828544560574426025392553293690355994263369904807329226245513704949210143317057657883050647399659399435175213312925330406622466547897736012286075733455267266867774921532418237079263179047029561157884635990665315222380829659575837089068882307080294219126186418336461310224160808364022944532563878049873220820116940824282777563586928165425994977449935710256404829360757001928323819652718337320891027372208237424378599797865156481439379051869846304066186067635598640245360439356270875535477658820418062186186207524907428170054321139083965074220638841955033662516730797604658856006579303112687527191957862028385964815117701270063643858153069505282397572070663555488702844223621407318450013720954277777288777120086044565149830606076517714255754130545988134677196235683924112934275898131986359894760677955005551790532447594303245867502826053001131850788765352945348533792480525257290936418203275689398262340341551910387251230938585867085797401139638899626625998550620276946487689752603777107312004364079934591331559914173136001256709941212824242690569225171666700134404768203649694073639458454217146171316999514467698504894457262799210236487215493320978474381851606324773669078738704875532425488028015720349110832848917567299044062155365714243139966431553389936440273740786733430470525982854217123592327259750797990431752041877825826793080779248317545077229236951016489271921408689884605217819977228792584550858383957475184523195953414245330790831178388852477578110974601596277815890436080473901936234959954376406389178039650062734665887143867610539382923899139191606334816247963847649810984299442822230836369479567707648925534497799224403669235477736435941248199414096634841898213085472460144439422031838740558455122651670913779550267863792658363458385981679565556047266055871885444421226698609583399191528034791543226559294372635924306720046846097655885375625582080569818552326335530811267499148145450090915787688529342291516912629339652961773597757574661996557636774864190315716461957260315331739909435545182165559205818811606110885851603926551862351567559595399127859849157201484793788714843565530581952407198152304037290398433534504133299112057400894556031349228417211367365227153255238907751041357805205979066274628093957253124359105530820364810570933124483873798995801863828987173001882451303881775192074319311641103651459821885932849058315248514909285364931549503084228831511703940724452047237642493962265331676278334717290798477989935143173069172154393730431472110536763791920597359646513976974172109296773212404253589060885630025500507552512265994853035542086951318364664468797007049792771422888322209794328179249863121993292400063965814353718522698133042580501637355505737116602131721130016230860959068852123285424472251706760847511742814485997757833269257906743005989162634452853019085168122617993664254519354750243430146618043578857523651123250326959290763619125110313026648669319289765495886916957903628739185714151928098769049541960516905646044204119058753701958641969076758923737054725114222047665342454600607312021499299474569899540753981232463433404526393128401460192960635112097335906633891889338405656138778300436021775329499718844432431481661057186080350797717211741629912260027508641805027324189276598139391658434868886134536914862011414781190654288524189967471608250298927144935220837268252464843846994135455167452531037965707339163971632511333724155408574533621347851419652122271322544357567166908006966970958056786178653905409198035834522607540613966466889924595422876948423198333447719748726963961050827010534418029517377944543431015518010771992977960942040316641101650046915587813702577197939472065275448913317592678062406162308044464324139463898480300374932978101244180923899978117760795521889768808133334986388871295540546897581991666386792535433980995203798261895030815287072004264974805992639543517962184159092513108973738833112678439840325276736609328745557837652141074496498220362153903442377715397307060972649303201358377640852303632674174448487383502426804443502323377524737107808791866544470518395829801202940084962990198273407388321439525204527721000427092006657537853140832262641568829785790680003342493266978444455101305365942414853792874713366525624221551570760333723181609030744703016768524610646796657610994359405277821121347625688680344088853586398611869068792279131590463826483969886465570828186947127415838866252767620360215297761504353480427620122744266040560450492694162868197054833953529354795723751149529539364123385633471072317601567490875595080056855530513351463179999619210267413443464567590308601307954839140356865262996723385796463197632282826037902931856334123669149781733861395721844254160333602809595340815434038510718730075938716101212527962799248647356002206205547956112988701586412599915327233510133820201071735500440178246696986844357259849288858798688124970538006774223350831321062079948741332113580287013015810451992412016006301335919371265513971159353304062669392494609918635439328263586678318834644401895984084633175198811581286566493061427900570782055381451842629581554586846914097938408353817325498492892380470523905903426499891264156658419375566342264643125442138240481612950273202688586095987288055917228207466440055080028151553494723771990296199859142183359279065440596914917011028392858787869735479505372321943608308679501117843304649261671685802246850819212189093540053110226494719910501992822743071509528452872754820575931087076807208241087503727960147169570107420709196922763753363749697479785179215390061417957969554363488645360332326770945848484694667119111451773534461696234846630526296983807296961262292147254314001770234369657389805705907746024386564894044349873594395120744488416285349315653136606336708949586718926645099895027261970453579827046001631688925174337251905770364809169482707026198863738104053680794964817899557394675128273268750046571068870680168342016559494066641589644866632813434902413496052970890721493957175255244610369626234641035767471298417593882987673859345732159735785329894672832037135629851428472037690222869806704613490574250743160946999026407970462136030390654126455120663410290874907260609922602235660874252728867899520307495954265523194708335061648647198517771250525105304296792893543231680887128323399712858430351041247447444167479938960610254400085897706184788384317006863652677492040309457046601078019293491116034168549788018810922199894544210922529243201933964620719277065179193542851563379529966542559786965421131442622902696806125837042614361475789566471455215678198744105654249610187781150979554899671419020444302169355201860396110028278766628358727384155270082451060466291595340722172727490697153334790927391619576539457971569242696147045177282752723867572061195821750902252261245447820239891551778521600823215528902669592815265575227774105470529799740770317369972495895245341040791901839323171443738365624711255779953068803598465232894122739077447966378629986995509647794555815033889709418964890942113180912173090087503418452574503080671088609654366849732897114313183869809536482108811868112094761055675134160610846915645049617334471984704405934271407753637469080127797568201743857148056751900102170353201661977297238339346315778039840769837229323236706688194635788204890862500318745609183455698536542358717174614095553125288802860076319732466611117089155837851893101207429662394481734197273536006289260014305764789261775430522757723401609081980676674547187225274005368716705459374582042133864729128253712318198593376980524205825643191869236629790738793960053194758186865541242053190619192169764528355224965035673600692033451592369575872120746728847167600917756815066352748976604497693651524104365854481653792744320678525922704580232363856980012620445314626292935600169030487006303351357039982652860092611668721600493857774410367396937162822634107569996381381750191152737828725749116025217464546255393605917277967104657120062180795898712228694419157957275570872215691139463887486749186138230350371745046750831282433716497577598199160207418190545117270496074342336963409787495874185685895677596086210035016451694107277136280436207675903127881726655421207117007851315866401996128640925054296827520419537463989189164754541323190763740911316983425849881542055560658803461508400410826649204949069284051109730371948527934518665191254322454037510302455573793224185896135470543956757253483880498567502081819084700837720351586774708183875185323736006869974575221163959140676096478026953371873579250582529065141330508647622453718047822317898603661374551543169860839338641924301646324354070925090716622472858242284697232393744857131765766521203563683571574166363669136081251473623334132690231924023554313569360027941420795767033917534677558584905530729881396974626233672748959663326541287280231369008452025691599185846990883566483186482516427489744862308207930367964272374166866180650689224420368594872346857669295353760225832367153649107729594959725427300681875500129350424894731986194076514702636932429942332670470642248765448592455808243700895447355159130064403379523350146313819187837610164392145391022528515976644345700567838738341125616400976282944423958163025797589526076540709477285548404469198989306444971041674393954252073459093898275393874333081801561794766089234795539545889821187010513806615228250988725101479894931622953928918517662650329460318744518071693773578523953648757992021587598534503301498516014348298790399477937798463485237626979474264236690266242454022936139977774287849823968535489395690614481656356315857330662261481876941340496165319531751578104162473615212866139381532867078181571917460696110740324574638465648873217911681521256321002777494651333700385688450927415898496064490953999564642678366238263726363066434854734850212419017136786867335182685970360987799424601964463285712618269904056243064649440419389955436240842277795351470954057176688346864175641072121110873836360611852923750899642569951480723442267217956046320680542982575958822290184018410470686887181448198406514176264998026566517412034606816357538077166643598677507502213303481264088388744544283058317151078306734287555861060572150500438571887375785301012382192797201828940539997910937477709704042779832743041185588515292726831973668767530784129670601651218388744335533658122311826545114278594513778027479022554762127847638121767285316061084517229575325040021087770984448920292225881731828708749690672973270166742076575765298914002662259307819969331354108332937229049579603341588716576118922007263716168359733073576719667311204551998092280686727609854565715693190249220191644505501394803632331905745408665137525572756437900356838837517418681713049978075231328113599312316438555399592533082671821028307944966331105139385135890362843779805329085314440564891990949043841011670057905108063479137752529066391606037160967258528630700727249537573739957476298940295529334794452768168859440763920379977230789791205499353807151875681921150774938052853408013107129334041382106440902305030438020637520133322871116908299544841213337072666668858067596496217794618354176433772728471334323771610509491742210571408374829826104861137390378366756375323186436502326274691116189733260627896166936048814654680076144539567807648695366406143481520415431985508994350135872866014778638154400969419957868691442895017540657284989642540129094199647742531259474672553437916356548569797611364949530228399071285273550117977487043047939705132477894340483183458564512456943663712921499332806667827658344845806176337654752615389269019223832145709954583074610680662438299517697777758628267314357372748167933271246998864587988540899770047607085041895144479539763776635858289226209942685752855732438642520681403888804396825761296786939960495758635194294780705890661754052232651359393036360310817349886002483727656295535185808871412675532881745862581252499745763013529099996760787292442609114834984052964005642936736795686332706205266526305220622764684944196336308476815308754620062529285549643748449422553935421659430668178662871029147702807845381755215092862189340575963541861427430827147278005297469270488281573445736247396314765047222319774408939969270581630583568657051610570512998160178145699574431250778695440950172223732499854830616454546770748976195377190285826099292778606889449801498514437250867255689548061129064356399782653629788516585590571523465492263639546772281359433370130134882998686898225826996268756474622960320666915139576371166158605943091792921942305082599421755865261976188633751075432526516611687954742492543509809715992429974222362463750709196784452470217837654060254820856419366448409958809862090543628347961478752061553254776778799506585953537268737669434150836486846489229631911123779120473217441266261063050331676075823607124374981434238935495994696973801418369748176839432227439502279392821121900396721577760809636992810428622292925523290397302080004860750738349525856298336661786223409709957721732853341534123099065983244691994963533298723286795808025507311880989535885362354098410730867270873744962256750060682712708074352679074459854055955748676600159421962141427708251414860988320070385131506761366263740163716336146976546877023058161470390340218397195748062498945442079680133086273319481280526907827525574278578749786825720960074804755703289005573228539067670100292555390916290666962332776086713374662968621243939805813966093741844432081707438251800576411252111494329681976488617007666850286902160660570013214147960354102626065288476404972857931978070586807197961094416248807134995472054559923545060364917774185741651179738727084772625826866821925229524032023318495293061230859275824130881551833996751501509775437471815134372959969478303880827186730216302310088622689351168204757997087104928964587111467022226962377389245854977560078039907742165768397671182579426244640220410827792995665799187179029992779399315620380927583131412293521012317685405604692537416833371704442694718653474613840172024835160268471261223486479140160523835651537018772703076009049621716239413524013084904723134021896325440949768041083336608547641414866160386949611308220143249792570825265179127476655804388917128188060902527378000685052922106906655275459293927688111150854711758963671395803158828964507764665525572258140072693937756129808879869216445493819512636957325200260041411646598334562668404996665097706798121119524578370768902624524141010386680052126582330061265605081505055077981468876743007148534063840152755966607123849976953807251837307001037904781771582645166503088423875980727289676413570791022326739132606479120740192183376643592889951224405118815388231465296974488778208794650713650327929580388453091782302821905515275138241573753099122892960213133723915634580198636251386842038084263809054183401308966506957832585850312767688433100984720947187230627222891054171343781731225287954380207905583576167346528010692099174521889979163078642718027205840499632186903161537431550488903570458353910181667251401968147064559429168945158414213323780586533084552540659024226398305501286865930207644327093300422782640748419971087411442501378757867609342100950589206320849630725129069139617544174937680712115768342545648096149548845719550658245158499638847895053015339668052645025834538654689112541710235903484521083247905765189653836695255243123491679328565189320082107826264423164412483295878476385691926716972596543294059573169668450125633408038990282114608613411805565660600753634781937657502763965790800583770419213871558268412073645944405073860295780333530633446929603269284246224764939354855484335053069208558022638690150478028838676168713143259121306284784773674807189539457752591974507256257426286410502323521230458385847656865977614688275485875992950168940306381593202973156726949920492865074266229846451933776329019331586257716351546573145693131606747292579426906467032282960938698190174218590368270051199053327345987722487819194127805983459860230739760884617473937467194178078293117641316218010485880552817392972729780247864956007635211698073370149187692761686996466101077614093198923693022347337035520199354792376992717598833074358228142391951178216600488739946294259213331981163730580148586568761419912512871270358561527898208664529168563418609330147350464236413235679295800599763262903939007298877693467617761989999269162001122177459769097922127021723350501872436396966672574105914269337505136394027191888204994181956142992078853578473645637604875589391168788933842227962517840196471459653003759977875720746135523585486956593224306141959090004922013078019489276996089305526061268604031610497538385631415160537333977041804778907655579477587551993139551981823201718321889084316808042123183691290840128376928416006640490448496498103619914302524745070692199309822250807366544538372836834533242285047929110905397534584936797766980127912528006097369296369077665803329695445018286518635292367767553121854840656430403367901158303609790811832796639379664609216354747158945332561257906464276054973644544199320117922622409291708826137444331026514184448879666329498619103200359128728384618428387878030139212494188511852071657651342437573777189816254189489988909050644535600331895712824315682083084524066883138773115632453197689342034126773501223871654314546542711666974556978707722207074146500000279135366380550090698559670600258673186906140243137696418067749813676067720425030757684707029726985839188310691651556422528677405246432504887916169655019843506023528164587761143372115591690285269087502271006726737242588517745332843334773069617158347511410920820005319894564101197000717456764667942624780512442629441580794009429435385115820256525719318887016844510551151981800168254939558388574288751653840329896788048205833871647186800656707418052014316641515441991245621922035261046088297216249160284632506646344385304687780625356644755371381056885832545471693786832238463895523113024881026797595723141672447572110619200368031726205867316007525172024531450806523312578534634743569125310974254652328941700023514565459982245646005847652475287110512583902436279934135848474428825832517181502858321798490777235181656190331642439442394565003902444522173941609407759115365205446379873932144310307675299620059520916840090730625123631687148005961692299609432242338593731840269655844775471144771359094211483881176069653262708903964883124297093461241472203767863151399861680514893777066279031077518821366453950080139867509880968119390647894184825577985798051637946254050056847160397435260175062030756069834550348815753016788609833411213713660050220898391242896362511338582219282841204755187176302036407384869572030558853006001209411403747568590126921961856909614115936343351952481061094971087472522830321509204320233544473218700158265182170532724317991337720966071484632224731780065481279050520242466037602567631706828746131300522460384573400755005464966537175557140537029913319486307163239329302046431454460263180554028532981698390907854646952521778172182024372203451161471648340350089048121268013964943374658686378154326357086429423828517133427611495907447045781529400801690389631983108294686359438698153437420325408132719250279503649319568403550869955664483170578343223280083751955623898956832168250294125916113549780188707952878833541315033088465349797208207989626522387941071870778804696731759333804879821187647448553596463850047907739184027148786796937895601279827204680402077361530593991435558555096956139484407005186635997954448327483726496179045781320711141717670226372337299999979901355254853308571702417381617538174010878615877197195191241091396738745295468100071704966179971139406084490101648658454991737254100635707831650192056021536632398948347351385397737124921855589074643622123398733570833929340058595935704548666581614504180810004099404357072612945589065126980945632080248164370193057489199097379855663090496338653007770092859154887864688207148431547652103030185892141328820313440753617821728531072817393333864167827636745972364691028497363353522207230827719848517519433608551877023778231913419339598638405956199247436019465051309468714128797359150598572061693333700491938876634805539629280990658177613088740515744008413184946504316657580766260926738585369401577741433994613569361803061140295583248057327445822307244732051616850973514622011944660083333569630835009383214401677715282817372242097378039030183824943806763749165523224354566871836247763189682755338730811052840503475753719682985205293628244700694979938071827126704702671512226462833553631257923950011413894638548883066948451439364876864987713246264491874643681348186244109873129112868206802627581538480863924522847507707134455038904249212301765747141631263297215979467926082571931851657983465516694729350461399808781433495927738209516051913080322621918635196532730045648250589768003067942625252324215220655002354387082258923236934558418484550804904440945763368953751872980650031201412689953897895096720686267523881347981312746975435520310209983757123308006265782124849480808326951959097398774622091016380894656735457714065547592425028277808112448410861668829571324515536260751563482486288988916586838262419356120195788525133493501095384718649482280251060793001972095973195026062033652773333147103311700217711863723578275634365796860887354092403273428671378617720263549729037770932401504054079546746028345895650120506254488006154800720904483681118992097756157505890112672931989615452835159897564078940556588645205876452490764146454308298810476093536747622843644075995786373704187336726023726457980428725103528247248329928238745662664507344767475298052792728468068687507859718184751226155248864815507594809955644101219701227354320103892515766005931512207720521167524052175163107813315198757051795618124154770092922038508731340884687681938022299644535510511909159599522665330314680628703750942501964926941733395894529015314146383485477617490991285796383946004205120921239877852268286644248618554220240226541539544871299983879291136494377594702519815175374030874162636721104152746412895225893282061084771399272278651465093005835147295867347915092788722949701785797179536462057029260225843660421804347948025608238680486555866995405794624150791367852291961848832755138686998747387179659647222959885900838587258692950161738324105697219999551559024432056276137776700491811745360733068961893312250324426872901022363558763577447330701765044841162108998311234716179339044542460409077332528835127973095342969732366025000743647022920771638136067338057404250894813801613100499109899062608675549091435787056936480081955599626272611319015406193952771135722273422850710079651485352418629769328015402778645903305370769609660669544084267378376576573438574093558805916584985878048955390635134030339771723580877819407807000956442421574591419174761355996215321496653508937415128598422378993639533514873463404304803138961719377300922582843368961333706968903422811819098765567274440020337839205477133148672026182674969597296159573892867391648925546120785572825238071357315038490382278899882006116134855574378320196384357591952117059259367805218538139555769568420321640929446759527985093232717037008380232631745622915835626709560595930638396341702214248855265889512402743869582819988945568001564418654624991914436448947785993354757384690721433147507540677604418891561232499828765116097676247144383635136374420067390433370356919830813788925868720804237781235083514809485578317452021254025868168801725270850387796638518872305054152737935630106965589771902463143152923404306039502172527644223729694953540559023968861323611905996780991621230637423776360948323669179410999773788942588289677824889064160859404296213742780136212267100695607719747173760237448729297927608865190060000210171431205465636747315288283093757954902800679252199786107652618596807451409046742405821423079395553658073148357520927491811359686297521641792100675965405711655549707265505699170019436858968166051468900021040764972873784141992184039777928643677965922451416537509449742923134807073542354198823881751298649373755550514443123675637112529512751891372352712539874040156658037084317671342770299731802817142339311627147015482669105101615251589903767078568150653868029850999400614768541854815811082140988286948338619074652411501554996804297011992202790663804107816443050632088315221822155115333696252465362688739121703342817151115354763997574535935164746092024501488297256681218312841832569953162046613846245081555762777116313625619426855412119859222854718124668764047703163749421189329685053824845984277002478751636676542969589503365715364902275192378734252558915224115240463565535148919337274261637430729344976811503039009818087047875635820192714518120479335870025505145502421789931780555288506777005844058458330188201967594422904256131011836760801995870405230616338040568058084882514586111495626724337203013969174192481013773047088135774362513846883239220245951259434330925447743255581978118335538804565694310699263324664647950532359303839716405404113641483531599510968779622054038153904457952288189204065982331362124787287455112478055737110989088572892084975825512131160460524079855780916484027341126196691990396277155751894288520155508009391758150474643521390082845227175930865906067785959731821795298789213724174577383352952200037606717866936965880058898672285887914080546182344235739522809144628130455479951656441038759669150734337528745089670968107251090909831211865957439760144926789892958120132114320470436193296130387914393404780068128586879265563238647840878372543738276913127467006838988503620367149619446352772126621529353365975011816548293323554559739893065475162599704447449888870980195054374509954100815028749135052817266572704157268902364761444256673293122857984385697300772781067791578024956317227243700953212740323031577384948801539362144275998682174340445650939132911351664773836188717122129164281941722269763846634440131637370581757077754427970571061595803879576012622682843196182770434935173601770141312864962919064714859078986392987651261270638396417479064393420769560196496760484281430824719274735175568873358523327242613250087521126305970398270715041243800066365592898448006779316833087397503677588413498990132186760102181787448771270907331734831074058391562557433859371242257857476915760462571673152169190936434556130340895765282329353394836919840247681628392421487594794170913648246903579871723774367109113112004525351654204420072003441835973699874927352070697039185638043551431639653885290819928048255104246266200542447841390038791759513080261771524078758767811926812749609938047639621652738255084067336569129596067232415791215538328600728301822178003644621837891178165181165753636987459844372552224375006005429307307877483951915044006144710640758274949086260884816271779995474599353321063232357077508293736563407536231713415911758687756218339553104315068610972481347223912449964997516842504698073285485406446912776761400504025853873942814787355594836890470909101782999857060221043184100720535445022869036556929938877558690916575525823898403754868440126034326863072131129278135653284487802494747119629050316524573496415036449753623787306493035019580662012263935524283449826878649634761589556351565405812227311776086943710477610529888786312306399137657523244334939074458414371485052439798818966196449547061886494823376142915444473376192501498493372942605742431729184302111165958875280832439996711366343501384971127949500192444906186221451208002804989601536292813391042851405963063337219008218534106695445360233701699976985560774418744070741361866750894555433412352125494948851277432793417772749807887136980826593662606438116177432281023715792754148458646760694918616808793626001240654498162140544823084991875524136400441975052076104563660307443358526827792176722553517270427743851050152076198049030101253731992846670649319872221841826397061099028127534935010077603303379750313789456517062761751945993632538085018638020894805133415128404089408939499688233181770309626375157805538983168265678183796499577588028940613994375152614276987449397354597774558832146034346945331972211911376951877742493520358456987752864450974031571038457636469634202927588484360900324451043636808885468711059322412645679754519395476157731642117636660430339685520942775393278411574395088696684140437282605092335137315683434226629455315561758449731674418019578357039993701714122319290946034121834445944185114208501725028191120912390789629038071724092717502237397749207916815259532651019605958702454708119284469056275645298192052448763810238938429988204562646054631786424241995252645065347218206657937421346418227069587980947947032073047766669877528725568514724209821509972410813439510787961017418656408133372604768866016337058871428943350119385267411095652390747310527999657877145461338256657470710889603127586636967206641658363527522467372197816690229919966722380963361213428713642338191651970767638241751717549020874322287388131818072882457873252471742238869009850698293330605075378416314493170996062274211940564285636906424649066711124205249841560343315259335955498282706257487355502294216107406015648912508283915234060658594149731706519555916543773692571590947837084816024302745891852826934519233031534923945374292989116814051534060579870464195505057724602715212308260245655145299689407248092939730795763623220543029288425348668086764739075863697012318753001211935565266123497170971324422888055487564469763422884038001898053849557138847684378439554889648401489145764408989880933424646204280835622949642274452661913996992456876671243908342155556717429924284922333636002294704694498074141364360010033292450962300685191665691741447018867695924747759927979547670344191686966666733068951989900669552615016784416770188648705893769329205881685764552521851466233829675248294536515068232526413175133403739297569263352859347626771806671449029111611755853921135353309705207130081474974979580065641025421340495947004965333977555952169836998260688647984450276109034761601165409467954152250234413139503862858271733614611798291300746580935558207051473933122573855723869917663825347951710881179240482051966833321665131130683625447021394889754758719007499959366331421622272230817567211885061606932796965978904139007234024359629861922298024663197164306350923602356821682625644103870995374427880043463445671992190388415490440871797662255542530337968251958073752776620162516807325936707484418240177563028179636297474100907319859185080944255793366095973986646696484210195108468333459031509689349349736131192078546931667011550595537312362942452609159892487369657869992388379910920218789242314666795862401952051347337606024423712375862761652641521160887047050840976056092141158911534602213553618407413147054501596023919314679373569037151248643284581050873096660526228127890054962991173291493038401321000694881102772668308854532539198174742391133522336969012704715472563185753199602543564371381334478602612149081406659655454080168314060577185224165430588609110385899066679434327477952828665499042938841711819662480634902672547018272877582407678251693585682189589584689438196090215132967785364838731709224537955733367540618606391973156862582481823720563574002369493896006923428848169617609984401869055330677735591025644342133594258109757606498267118386524233546760107312764263998150242632349210492799106804434825441315201145079152171822192253351060216729478268123837256811580245138917750225486296187449926094029147932873310183420083613135444804737558481182414537558031524363084877778297083567637949459302368238083217066735178901901122940490899121176438126737810416436471075267484285061595528280856979103748432318344918822992505291949370562428042023489877777612361044463885571338476190042443237906437119131545661413210608420109697760244725840496382739098636595290586377334054661669816486668435273612262590839734571732572494414388929910991587182383361907833098876829527648997976492965815054469725460548563895765944719350934626466579362179788510994811484784879663376512567887086724478662985611491393439111503090386197146757555698708802427713821142702199199444496377804852036391666555538902342829984946114284170820465697974307943199889695240686801540631618541505244291058112095320801356971843239279542636011746715212040431770653683115770052748953567337775111117508497743779135578168681914271766952275719476238154746160499675220186495600969375958466779426812976840227118654856301801952199257825748079396801204211602036223206849870197766518872899351857259279008862926492138979407582843910493016188124124470050067697931312829508530251299740515360852788078164398910976707879115493818830101351471959042195568010867616114902602987803212176121261730098661069114710470281848369829082519406072526263654032622561440999915285020199151706055589405364710452248441460300973388237107827752685520514279445013536277346814103861572691488178552456108203796407167028293446986993923688505554453123066786142785566430091547476945256476299914849837316995727899596995572334991422460738206820161470203283885027093701523425483773085318382875574869610447528032874203845525053246657052703325015910993185206354189558887462672778038448183541564374479486961738158166017404412093579616465167527919621600636623349220237406874572001168176579564458262718487608793862834616588431272432769839461619065951173707603835105801920992797289035858694492923132418745455972213693941456478312292645981658182965008025665838171729358031786968750720165169910890189864031794173592375330696337999313806369149774443336434396484759703944471775654570251840623703811282379251824483285488885753716386867799589955825380159358182503936270807221350074951301203574373763458209647689948141400490714188370962348397303055649796333409539443026943926115353285668695667001199297758963675506574908738439935543602872079071172560324062753939458638770822777308092422731345563359791499642370821193104080707621313604498469669084324715017558725360644397295985582695288363764073936525872428719230179129085465480558690960166046825659300394540851763935045174773273345885369485687395218074491038908658148917912890901340982087651795745952866152074380184601489079657689036182910826747392055674335664154810762746876594468945274399928427140352639337346597170429649930890641638019377799975063768573131338680809894057136682786142014150699998251545146446514330989989341059825950461769863270477388408522564965517906307096112146754308365714149937566823765121229405053012080347211230552826787806453124323370684224501632042717818460737946398160366556079468770542731182853346077490627777958225566020228615168241148046644780003505941131829430075742936307704207598834548668649865847295237599473712879931770085139333187894210163820839208725351430737528526938924922008294865504627121534098838627206090169779411811043065212484140060442716877879981743582328352554162000060275131037360512820016830236841633409037752787912441395151515957141849111531144383264097947274358779732478298417417438336699489602959027552020848539014031553074662283850692972968859859164112727975468042281179467186280491799934528228975035077420156781496255137657470155423063525315882688398272970045906646746255984378613378852442460882967342251075829876580507935376764046982104664283386343906683445522681035461383196062443184318225578698563550913559139410437128400226961779308694717592566900547777580506920268380342911631523172425652943538337042856399428828382014218666837827376466234837353894484984579696931109815182856360517182318772568948056298332914559460085757184566414553109142170439739547632665713650687271083261081220150090542341508156418519749286887425688740433299758529629859893532473514001660238977798104840771459015016987306258106025692392341547717198020844113060955319757534676801390005999473531548089286323152776928487662782493693828919713704203500075973725642312148401716296601021750210430345557757523838508184585306933689591782461649032165656602159847469727648620136440989503149090717282678075864696203128189386733609582413524285865657536639699972600126674156672429216946751575074207066993088530551401952714626179099615223287950289844787569722064528955034630127401842778473977853510153802501733250770702040021608067685798518089759029337419284834178907124982075266894095367080692104046812793729960564243774246852355694962258053352732216245842277250830270056293438662685881043147534443168325688849977245874237262820345487420352748654593848077800252194009923430258208397357952726419402875995695004019553105685871185945556356538012444280078378308482886036266504496856366179518084640308998064231147861043930418419714291265238790538535865624719794955568795333933041244894450690049975934101625718553131958929818712874992141808946117736955458544985945337341402140338245502778669653941986984536334906105979637206848318904774513367806176265999703125944536678699060952902113847952174768479790222021002792025535137402736139293789993183706498050077526687456737738942840786625973582224983280206219338672539683082225075812038970627472301385011128394647173197940877696141927433476869987457498830937028740499959192541459951557436857290005548634105342710338490016456048525872591404738695120568026116581755396731817060913086283906584711324048855231905530246068300296041026019636655582591513294953306376910379446847340397486787583889332496267968429239590729454160226225557972697096499802179349482382759306395425790143992656597343832941844479883741493992638838139375264381093512809696556552018875615717947101666416387034254082302108799230047875412798226403170715729802631650695054844471129473597224980567492723901176740483951816285710375871565690513431877236520987396567668128172008870175258908532594909627217506965931497055919318771201546100819919876545538775690792644636631364344015182906494329232527451784357368803359844164320274883814274581118912267840892694010382634155905472774526846730313528371097316377644566884857322959517827502925456959684003498011590727888643500253053313739720573313501162289790597545186499938078629841620839344294349401018852756064474331603079644793402975305760301254600398259405682620432381996539740850406909340835366975521994087495701992549643074502812638352004666143380198567816281160138783637511147008348039168001089669767908752456896449799695492875706601375367267311298044666849693964968365099658094340774966245708502589619245992886736181952388036350199826839291750432369165250504779334410487458227154208590240603313034656383362867481023138003018632596988235688352474743072812585408396571439783606701452868753748462869062063379303753286315145844988164927214895016693278218097899777356344511626463313040254656265862922617218272819192480585462907487825134769368518744594958050542515448254334083109417300268318933668765328563141985372153470316690190558484092198316021850372997386015130747839815329579974914914449872927629148438732140881842113051539646636420517808261322688182514608943612527996688069384528127782059685550184738766123031349853457699054571624803406932342195557415243528470589330886184892398208980601755875163338831748988335359239671924885601485305573588178741165111592602096261558669291902046400356057344026785690744053736705301011395035899548014506736388248890896941512957100586628163568937490295375062058919700168271846019103101386343336048904656526061099200969862872147520679885963456864846172435783423492335511032766307677783557491675400195438149347811341936552243372623957189415030336919820896315564166108454123870893410252652772709938074261394871911579314099248165416898619380490046698789437155067788267874663525934816742447295724937597130676730952616208097525578091413629103621393981761379835591522517969806569868184821248623179836899819438974506724882661017438721829894422920417620019162666823069443836081809374826663951114425390082338281348442952750213997057312930834873015941977649622037628107922098645705680093962350874709173026003259294826343182460705349646916701113985308968747371541720909687499194534953412612963058259722414388838332524005104845712853340472982216388884286037279969093282818829624961648473503446109004854004901166107433698068187003303829639476076614914894309728476164256803457761310287391842057353425548636483896042175741795292605188086379916264546005812896924844390188641055248854179438448455954453995896557114817421270365149625290562077050926425546824592001016574455651699152451018889179685607719957283390588560157896977931921739405220161437630147106524064758874085892308878731789132674881043227122384005964414066946447787144679887512697164091788953744589296726366246835597890867521544703685984940023990668383499368495256828942475568377502878901895995910631362360114239008473820788008446655419092701867538468272584189817936859647161344670988734910006687953184775851808561763762632431445863562718919894700755368556539051116665672006845423659640462503869871314254327671612543203700742772524728782109400575776862361051634914731418476573467421854653960144057105397795452934226397067438808759241266164806627313551561512241437127254949281588142787918725086692697937919557237575278497721470276076237102459686453553312221577722565803498375571146792397419745432980373015802287976094932651806623401080839875297276498134995194161988605255994123224150476310159681843403511401505300464265614958751825833615428053871512876378661067484334613299057106123668738380312456384325355576862887242814551224797861472428050535112913961110500783074065804966868701325589393255499449825422331566034058637169662291973749043008684074271876342097070089092328923252185664952140180640925267389173212610079008788062308799543655574431977510757480571954524930498388483940760814635863527597771320975527383023352177817537484160760135898812581643867260638635887001068392985066294678110656658594835293513908724166818903979510090083661905644643469492539819507440380783137339567927816193363618071152648646634104134514979894237808997726673369882611082874665828775643307014201475399023848092167296016948123748235543823120598662815658123717571036695692314616064640595893227611358712294327703474465763954757643182086724385843959002001000943373013433159946891611175282878670967244375832301546940564524742635415043832718224891510514268744987289733371201905991597121749089236770188844800068390526047295713447503883587642333303679298673323064995774238352958561012114698267157825500534785882795289104874960172011895596091776502381877815160050504240112635009144262226136777761506653236932071840602955167519851523629337160741075648053392839191597829704076971970115905163803091758360912736376987018941208880704256412526977173377110850828712640577588024140110016190773346443433628066842359924334273684285027528229725809070268566548256347581649988288685957438484627505497198165877663529901726721830073224632547918245041077997689341051059107513825904689127122616256348911661747964016634639868488922818419467595925376641459203172648562023300474782646602929045909696624191848329705133090721567203811483537766306396515275646585913502930986754621100924843166348641248834327141577796886016652970519394745479896415718551548558673956543173525848079707911277970118520621137616856113064532243273420379293425677619863610987777067956705115929276079372130710160098160890106873995220047036761571481787507228942220881084373404210214501217643801021571358852338157257138690121736779006899900160318717663334735839470089331625038899377017137563437627429532829463972546074433173515093711235164703943282269204382490971151558879830948989138889477660789552731466386744649496962926417905041003981254381793607266166059318485343300907647215137716420909352520348316192384112779946417145360211482773454495877813120262165833313873862087223510019919638388779162078726911421295644974903699428875728484977459747197267593669498651271304246279987094800403020197983567813252930499287889910514599118230504275899010535150892877092034873441680943516771731304394964602903970677929776667570944897165986361497277031212113665501513388323005418423029600700084655422614877304773079146868617783104999637234069650123290020376558731572874539686397967400576190346973435730439243368148045822023513368854090007483978907796899565877111982468944174200397365448304953101859848555936871143234804636320412557933131513227925907039188109994817727391453491639452467747048480958559670818698600514239837558336553257802322826618435570791987084721662324661258378483334282939407455094526539765789133768112555328574068685071698493794613582946887450616254608946308009921085453168592356326345628502252565652864334762779543185982882654877422332164318840682816126877718552150585478153850702897380555814786749257436697970593404810147722523895907712997473773621481320323188265074467600208303698299673883007972997213402749434236966941719817746655548732528323790130200090902869707906595942866017053232682387768303676855369992814023073469309755161673453060638941762915247174516014572823953299438488386806913923310033203239085243968660580058961650711137369451272176892687844297565254416612986175796528953747451970735513360850927955811606081629191510449068383382759289222711131738411432294366903420019377955276775187220871897439019493266323123795967636237550672157501011231021514099555146127570481391754537829168330101117942266313030502783185760303700964691754670321015616039311223037675828558886610850800530713226570723359530947870774636698485844977346354064338690474430818155741099918786672939207909041137801385542522677017435861345267468145237770074469490077355559507036835437597998881540467224373503480731208943523954351630927842657679402255724656951695991258960992676880604595742468543981233648610296039149319520436236898868415921968162473596189573264929778698252915171073075052681153678579470003948541618697204183533257434273197360949711452216487876632240589241143792993364817473378735061059352336587718469117010781723567208279712147011627052276376945490810226291170317942911204806311057508260029325818118480890515329803403224258423632790690452807693434334085653701516216210870464884676345521097086324181009608845657450340075470183988933606144584107346890268556323827090164355876619612872475666193093621856367432404571158395801674353164501117025901048683554579259353028457328478862811355606591842047785013698238550814586355033413491324474941089402419761509739169305084026579927422145216667839765681500134466441826637727512951653485738150681695519037411215474209899117881247232985679761237902290216245852391303730553125637570120692723167608684516908761099582558028645711658264583435533493304263223085740987933917384077262933417490930430825733114723082071244873474951400148165675742179512426560699338486415372195727567201989378060450274920797005794532831011630785286673485656008453245010851680952896582088714802222263873935833590146973612408126480682157938298213728218342163133130049126347645663664529229133391534317439972032883868788307715900806856950273103656025324283799596216923163887196553323276534984058855349021799948637816135993894105059783834950576715615305488328675294616374120513094688958909804325354316879873784751057832824563624281602886898035536393019896429218500177697166501444592504703309235214664265917043854008417093684658472673302786617498023059859433125606393410137622549216974126023749258554757554433422174286235641943473706300982232480937971616307424085721673985097686931034772216198162305671181586197036609605279143952977034686386289665819528048547585229034317447859340019040882338785834718649439351126833195966295016331965995160773006072653253601305786887593377797047176569543844834288559869788115268508996777112911132036132857531750959115125968393985540284607761340782618609801726885898217427700338823024873136987567974998108158206646035752263235492811212973461450288329240188530022333183521328142580522752413021111136321965201521297565262332635272371194513466246871079242538992865452497190673010133974758108325134165168195970611236815286413673043573132762246162267421588313465479571211001954988857507840515944516732698833046443666781223727384978832900103109249504178865015104314279156477231300659805959664790694486740767960778001850349137176533251970233303054815225689281847761987894581816917497878738961572416202018197054200736199448570805706855022177219665347836740888788817715539478882614998388002499355042689337444048663285213145083695743166637351060491177501774851379850258013585725251037907471002171400351385504563611568125262857982274991386781554541244044594985282349830032329601600215828235376118699898669315644840167091927858806707272139894785523607739536949913622751070956815578027773724885104700873263529131520399864364876608513431205558901351271742036664371908058774737496187647152131636256419776810382021737685261747413712496607150516509546591857126307239929873563519472001127638988662294002843962052007469340925747090746102557902467610495523334798852060356747942785300928806997048153975115096618339256635816785868725013599823442119742154831593661174987006346892166756072605410802174206201245544684278831322878869145075927350953862648086774979444077094466222994226020601133432051214899144995787006036548198337988718945531209343350903843349691303548243206732971700302985445094450616907165741903618693418370452435652483868719794978931198376232749112686749393822540726275769655869665742492343155233255553808192340148033187114721747408676188562956440582000198240070202389657871836808472795702809869187108187520683071817961932093414489125602713872026399722171934108636984157866365075957879002845788645508303555248100986630034368950706436444001406513739684384466689240726950160099350067379940501992280959174194467089826529512536048702318577448988733252997563802402785191527334918205348145692473000557699568247885591365112803139179465435886891297902182591365879221436540360245046112866776987300272045855578504697822821027425298640544020779723135323712873404183072483455230919403283406451911314108276048505594125343722376160837830932213967860445558760191891321913678408815073215565040217298850256159536565137044472113540043546238045451985058145360703100557108245610880364713302059948207298577502276890832706451270653764939605463314364711225718378006925502885905133760714168216295933617860986906375469179557491643003276740984416426182021246645647784432656400183642379476334778539413011546387445425411594685674496017713619944120386961181291425132839391990739918457620338882165073607660280763503619806921779027253816657159098123806074983939855641853170268730038270469308087449272626037529013260653762933983825074135393091258059793001984686945154804318115564161701600741408326925977697339762009450211249501425287774894440935909506152626204080595536898835878992183822892986372616718834676572213742749929568328331095262376644257036293484979960261227284289908781778805027411504393777287948150606429352602778902131286517842995109426049825773380985636075771162603408748788283754580234680011549534327058701286707637727555741643488332356650885480628643312353536728224415947234756947030180179910561874468674091483721911910018040564773360362127117408068471810209575237109929705479337957179455729067101052066289257205216627654886453074985357181619812359932259384002304348226438732185401170221032283923274646821858771882903581300434155418388155084277436731067554485817252362649365874025408662180656035693670387486124722992306795985936747319427503367894557560057825091173810485745766770439977430218964942109441541597222314171053683189161258981435817451915617217076893082225462377402938245756487411303821846494857643175468436352252848557044694676517048188425323261857472614731133426157062186823608666581030131651379480142203456483057494807660109364685611990487155547267223171323090757040798232632350400879742754496795354096858238378597770557525479317487532378212397819931822150031320932334918368377378451085583206390787351147770732677498084246807522595709661587768827094447772483139734996500989117167268837200802719764804223733162527070609001099569971596440405704484835896466655901366629243085943689401122211253423685476151305970156184517401479279041096763624971743430298654959312187604297036583951883539435884036165092098000603009049596961689403385269137149230847996679431842858768680442940136787913841750215792655578674126714944447087065795909463715145215540496159148252903361332835451113865145058785683375241439668039304391333609436630147761948028221613368193421015570565473698348348273028453522574612027000632584296774613996617800890533317518175832021907158309835757376009700070454654157067336592886709649266823761104028630627743126587718298004193128772748571721392400161725796129895612567307698612692424491105377269876132791054798356233756090355315946539321230685673750132986702692599980717780683582142411156381255292834687066291301866387026810389984365801346353375566986218100701655977377646565034880462935361218068364731148957998692851906906759474832372399795644876875225983312028098031881739157900460111458458402603985554885262812681938948789909249972911868228856918974594334928449239258783259855720384435059093544846899775124267640463384547921472885368090356806132750862812911707698057759165005085255719153040939315224438196033781685704069627557400386747973026448310685909902875142130829077338779422664559976402741945725810689984756674412114316078811554604284963708234977429621269862601374281491256729607507417081030427007871988838765651089789018340390525641558372639468711304367413370897012534074797608531716876371351755841477658287035837626412069649525415174429583905585368326741394089962155619019785834370808240884805434060427370533418676475193803651866758184689533521232091590584979604993843702039170274279605146750702889870132859371452553233135299344242553159514076272291651002234222989020153501079405227960936285425686369290717886123605909117097266370335211126721687818533418100792450943745383844742851706502507767183353648190398180686812456366413619736505034216772146961287739107903646316871844906802721128748195176377138671806273190763623069600421372395442339921581901617993621576285818861480436481959009682239931898510671451362108382827663084775387864101354905218647855378171236157300306306991719606330670811090926710641116062173982020760631296371637962525313302365752727958029424999696345918492005046375431590774487826550035087176428672877726365423288102405520486061537638178291912592049856157232569118062182710733953013927335418128240364708347254088661848287137827459034638024501329976491170912670213648441333863482725144713556644418048473393638537190856729639132563512584539653805835832951708707343544677137214668260041402543129395417341427211376437742548137883987472265927773131175157206584478702252946955781671527825251058581719546898728443220693170670273070519387400522931962271964257235683615438599971251628659271057332023205626308153107396290530403571475252449984599553793216683696830595368873451236394277485081837935796427674429324069219433554699519536313555779518897993212956723539068020428947550673950671872829735297526273608222870180629574739288236640217251059590640790268632358573227281867385523009148099530845219874914517084030283247641112772676709480044132555392498379451485558599330004587710315607555708627232475221824020604153968586900245078863660567618043080084465400046702439313654404258276080650135236531174099504525522975039212623264748186102452869986430264611925181562030595470372561259674760807724801150095800947952732929231032312670234636619860330582813714427975152727445993726093175691410695778349677076545938036478681985608384609747311269012385908540896556843508295084483124486888230758280787617820415516790018633628499276027575145058290320373827140092817157640774903421058467573288716068235950909305341540170793615659948710783785358495453276541471983828469153426308869078682146387212325487618633851387429449497082356157934640312454579623178423699805596271258273676217481160340844201039494468811085602598121847624421500549659430081935119669151705768260558083087678798370442929244670166819899374777789810437792641433830980865052745717341440035796279154421099969389558424359951072723569766659603577799641350637080482107554901756452854016704158373507022805152391314033602060908685181596550762614411236873882954923352359072724037319543647664326859550458414023863035887458034577131466004105557088932304730025139063784161581619148366822680028877842951841278702311139154322779224464086355916645851306893313986838030376307994264534459057148740620014315434898827787731323681253480636068715099092311441757318695820111208890151901742551929022768230728037495943137539674094571943954788644741040547192779935433116824813245641977777875202495575079428612665847680340295889050526397388443361420788327087125948698439383660191445054165104516185675182616429101247352817675572095603745798432131135018777980346108624460362505761840499518525372449401761314405731778441949180028054492734274386704278323020343307006038178784235030774432394184410482967536728552916902860316559191443074056414689017752599431422444746283081703005180888155219727267149393497718647685649004739879881622045875688862110857630230982939447154136104594083990821811705280672995142949725877654033801474221383311581769439349170634560776568212723289370365699320039468954098868866267249669542122870975194751726328039714167614719875407916254547321650476000087386433240608253467345693141131590055630710039394131815078365321588233799479450565182539390427088452781499400046251936969628594265388556468656554900245265824292972306332783624577369191277778825898495601494813451398197114430278932055929965160858319348833615263805682254106011475137475825658047216586156028531979668001789598264626706683276958940961705421565124324795813297324914836081044483092772262757779261052648643694617601307714714966360694893546456180609108717599099870886409783583077652081068371308105801825901700399892362051081446822356432071513160999992652080926824419888074863617672103853763170038698540548730310496742758150614148794833157482701220202354007704588405669494545438220216945718057977913323259106734139674355257743497864450646236650723933309545272587790328163097594960324720439820184497635425575924902130810475921458764273172283438964401501067854897110088507965909357722180790621327016442140284625681998024340364916185705284666049247180568983545354165131659198236857323721068047312822549137390433775130935811962170200374273091821456051143788744553658044172404921101247234031838104779775879967795903606830988748874397449045729282668561784317576824508615876100405328920601433812479797499620684691198580189155992036531926965008276106747517073141241975036759747267641891674399103012343512246882048376722467025616726766241006049613067819862663797656598277133897091661003833928585945168772711757558458188828489935923272023923497198745524823527603411922050682477626619519106181787904725320811457146927943310183270284334334910624969612455118182237120313766777550620609734289967716000967416664413132817548355418249622096032808332972477502609622514986063418920163307103966769131038151668693298241574995176384704892955555115886179731170318493990642156124315630631698346162035367041653561525894350370046693322210099796772899131982723644313399919148326550515203070841889232661083547336681119535070585775636811005533889773105401939740236314321822538037493719685742388057686816837442351038496600603857181761359529254593171043694801439022555476695567166896976411034291368481260568108428488507663743411860841610385420004555522163441165550302478007175423131364798488112973025356936032714581538566151171978434206556469907158242983548366372619753976884702270456424995949506225176661708146060266894618326121755054622750693787548308505074839519606533916791963524319911371036744381473187558756818994625418377926946740097175450094100524040753498633225759258940963764128637197384848655910461477982832376751303778189750149586185084440449750348655273644644381577099566453025164511243562835334639293699460275889386330290082655118124713410961837337277474267452934400950465245392450342310432839952553877137659701184501672606777490461719431503265813393817764695445355216898676882797846114048575588929890655760486596069409247955063059496047718446738146962459987067950126984870555406359553714027922995609310009245643036113705307278229928220619870087973975563061832436000192857876611353871976828714231870857860302877543177728263978913765886094827305515911471761672778142936583808251962492150693544025591244438051526960563316653095325779107916962651370830132772118617037948021396862475628457667070204622241503645067147677792950887621956492366828871321916121368628431466089020295695336684764869345410212009724484386539861747644529510407212302986149319171084124030560034694437889432882193446566160112736408056006863759181712257611625980014554173745468095482918466353053903194804228774043636001704240652818445579262901602095422537319868770037668961773266969343678937277923535594076833461452912798473812936545374680048138533554175211583103464638269305062272704027054279565062050316305717114829476914090026154043071904266696870861143032257864136809253220156843829922943756248208223558083108585520672362257689512417337794019049535710958121166559950118719158013363197999955670858148651945867574339596768612496298375504330250588606607113796858507369194507285801657239033294920155889492893511876908877204227631401779218683002278854323374604527460340517307589057120688635684451303147249513281771410366077178520545867658054006206132413349329551800279509274888948139063208488525512003476741497289615556313353597989076724333323685717766417984537429411663118934143656209630981551831122246765306759899012277576534483684752135393300701581723482897995169719786613256488406539324486686344669087765158504249472085925599332953823135970638117004138232906498853957670584055740587271024177800956014849674173504849036846147742906404779425564651061515956966970076416023255160076338432611518714260360284566486693218225314202089633143879258346760638225881774391777594323779960773861785932322096107549131969296664890528810272623686341052272982351635317946365458077565701969639972003127358815712979713910833950106233917015845568646569704150791729555331580876850500089778981494122611041684416089315106465161978333335213806585715024444213793094107007682458097276202911287282115437269095291831958568604189444970624833128673830420136658354733863232071091655870607876215109056133610755963469746189118751862118527569996584810271464028949612837498489855176832561042977543410024932112424095724079307667966568070914558249853097871166826037943819526604709469958227794551970393857555629032196799124791890891465010025993570949874640677218277348621658046245378459424040755537650603801755640124757293288334010896767709501790854224624503377544519483374344528889097863727423732087471776958241103366791839071336467252466886687948751613401980526175579400523155802653264514572779512416135827957606666045545131735483400077956796264917611645088491181888497061779606802109718852622188338964975494417500208935825056416366975406429539064727188695225876059551867425156784201471385691514472958545195786398730255104732397336816747138156423044448341622123536237245493648565039685764198816522656138193144374253308538974216458385092810532612697572832448065089791225125262790358357596082987090656263179975969247690076373169441956067835003556731591806636634448494249936090636585911910119607428383960139872825197024604343256869382849031172563533269544429077469430402110329943003414047140071312801739130586735568796241467852351629183290250694702057152785857447120667854008719577819912006135757312157946574153785448328042275090317809162776217790517000029417990449856832084185783790227005349567342696047847942749171195740997305212426498447820674077789240332784595368241327851935211026842243166195083509572739992580843134248867020266135145903957523613579916977460457178689265986407252100651999984513464295869920439835765544563561663984852824538958452828983665503809193940864454906365578250125141959793208237591995701005411383859463232476257934812477255820118541039095508921462550796300868435785703554445208311744805857627906976057232079774771060193855869083227738359333996451835652113659726178051731747201563814850560403642671613558384626602123955172634367848219256136605885482750785086775146237513222339968597354646991275602039146338323011719384053032893663417655349628263146046517196022529838621562901927511430752235597131464888004464324188259249415111396507106758273589287169526468119646098439718728772027003334361787066920560887020729239795049650651686957686977272682442258235654784408701127521785644187618902817207628863507123208896304129021467367715950088192681188108180534002311917910666674845585544604185403682903107951519217129664258217090078297142160878082693120193678364487979373596734767800737027318479704556855178937991319293188907155976044089294156692938053972983207089607431744526884619166430859623871252769457029234405506906968539702316871615841519749346909431508133357787210469193644570961834494413242628133783466226962419234321618219875921012114925856141477632840034313890380608779692887795034466212604273977485670361154656858547442174678259728130300284672259657149855519204519893880407614646386899905437537574473805848439594286257246291664943027417488313292816910646316365515025567160122986523601600382682881571443949177487813150765379947172643537042276795530086759699483087065946298113826009928417955810996192405756991104645060925647670345657780951290819348030173386573530025465264282401692688075467958879531041632083342128273428935665673638664150890608326490044798273773280385767353571488110544197038475814098658003314177979881034058976393120458922892143784709301878516883289207808572499174851476552431945955878062357536504308446367029066742839149368754369603372710435116917691281528700120554859352809368234075668296092036011201482146012980740211653501077859568566147245665034716499423928627921554949051693992301563985029640003239211633782747143917940948122404563085300931638004272610222868911934175305285500718541936439602058936113779305478760138211879962615541244271809950002068410467051047834486593403146099133831510566961953798925239902501210983827395368775348271798856046907227801713832063969106529348249756943888144907460859114302331732055746156876435829460015220446872584375716216391446578500301041218249647830614599408312921602314005200515961783067421188762029743703090530745384668023094201006043116942406571369777714850012926065930463102192866195699770801561335061805426899164771560821521406335940914383864790109234668902563956202785375255412985659033533541110637858686530422029526468195727307533858236320869693258918523190025460645375585881374087516826806414991653018459268438683169121183858635888597484441053515130504980667727007729640730240197084083830502093355807473431431102363622189324649148630901665273567606673088732288322970634219831736904663458989542057987961906552693675067809776338055938123065050430340731913166982897046695255077023567578271972368877577353713826147994664040290401877705836075417789795831211070253304141430471668802726397313410725723355193719425207379055490996344831533840241137193952155646208696987268342530518556294561499400600874471653157895069314825710494007799970700342693533151283687233441261385898916388003630213372674878155630745413316636717881012096566433929847784654599866099363691431295955905441534365145129606862013312614732002022101565230695230096763927794585314821467414035843449032920149596305817995149742682454308448536125263378929830981120949368696315738773922817821770388488304016376768813820596813937310724547720578055397703633960770743165891471718875125312143563194717516664122207317442826425518283372919173406692629035003562939466049752708773708819893775615200016251267926801960666516235514685558289418059585925437324900268957173185783664753366065884925386850779086037306298848061028156961519708259733438603231970434785220447879985628260004665040397555593358564630095761087002351614061844603994828319225067031514259934575463078211323938546002549743047939121896256758650457337741819906227994411500707736961950134087049498264977112313112665327639235463538773101331666411995407896226990219500071620334291243138277025843427909027783316058342861326276997929388803913564248463637116317713302374831448753451317903067592901250970537441593732417313876499481573577545427248336419070872561731081860796093518345935659471808177832500224878225679236207428887062263285701253949817932400015973306738556953329873779570889171101482579456338413706389738747914752702211893886578379907396172238725501804201036986848714811297643352704188407006554360396463399920249807059381122531723060967980467158988920391099825760893494983048983301677452679406387788013484748576484084543551156305241598732008406438899488988689901776471956742263057115583444988157809985342243612543104896686782818974580607377857305510448908649959515037453304057716100839256090597292126747111354907467124155722316738981622838120559490064172232466835919284321347480479995717054056971696852318671542821214689869931022762413819962755488101727205833498840542681406090244765125409188972215016710632963754161662377025529277335944935598526043406267634659080753655491868642794693049175342140315645085505895332748674419842157802928100316423964016073560107533262555689184769496493927311657981316724739419034094104506164830246645654214187111114242637086467917680330247787975726152029206780003962620322171665523715501869704829773437790205253587694753335651501728085856142421397536591896599842627333789775518361736565638167103450604003693191477012518422454447674231813915170650244492132461127134703222903339111074293321955448232863933202405546137026049193738771098082964422000467017159269987978175196607477829625906951846423226416180965578211349311556377534875507134036811600839024835029335190810367178883791746634265083898164107018224100817260642676657697570575813152507707766173219622427964438734866269991205885840119185357796082328458414465520994623585006922617010544740315447655268622873462918663260181964550313166881952890414053853058315242218115231882360528911989573220763347230070988753903767345729801654852404296457749917827690351239514712912559364085928942905012735557854542956072935294075421266985106328375706686932542333281575184776415387959601070909515932481998328916280528957025733089526335659874802198893987363194802579728503958148946064544725830803530573469707885210702291837805226909036404217200117412710144443430811070488779195984137728352054311506033573396171223754378687512789080675396244166252833639626566702755241523307538310431274040536315711547238433837276724145544493014322520649821574824931496704034475575354164522559937936568971832786594148218598461203795315462766364071322636211681839037703399444253989155631076529422330475986391712949981438093156800446473063784591161408623387720689030774837127598558265727474924991776099252468594412611159941154523271504211844987660234943894517568726790213955062477043957915654790210061262258230378293352018270414389791638263831867150161143625241870040036706541284816115964697346512865828827616243761023147142700955528165246658699443576963358042068775355917561194350497838017251357178039117499354709505092665488021268863880326388820592846982466813820510201101429765224902644492191383628324990501447601650367998016656352509365060379384946866494684630589765776710662291618780567559460559564686860818342611673169919503352741077404760362377824996559043120965696540441383235263093727982889335711512972957546356637191258173088761390096597356686997889031028963251580906161415757930151676431057832020063845264528288206721258805010507600736971997575186180910044581039570688441966373196442024160704759788727848699733163643382920469140917751895186913029047503332408091718362526531239791298305208051328464578563243467699520924821123056476737116688591129766739520504355161061908135249170619424670553114793710506420578986245902282432901511834131604601225077065157535201520978755564391452417799400989130901968894776496588261540045511742348791374529022288224008572593640965785305706064859215231271820005209515660909422488476700622800682821193927468462295703133119998867687380938623482144384351964935787359648423208465859289433285808103813016438851108371072021529952658937379932052689820105757098509698946745157046201554508960103350052420582303467818525313721843994778288407772062409941105543942044845779952801743370129505838773700653672235614114466928878494061217771249691426132891794651536881487210858637056690747540169534584946374797691036252362833802193868944066150039774660010418280391390439201815980436152466513026685240236247069033585540683735251632188785335864282123798324297047333597334121083501806461917691947104994131800223209614032498448992685326009079003201592806206310443106369701843820626240688325103147650996957003600724698806952754891217381909717834429570710998516333195398638000778904089769150394063749419855808980866059527110277060823429124724692008969312594417822843734499959723282109202994553293130717722607565918629097957160234596528614618337251427074629358025696887290484527943827518941841959782249602976630528536695041093118215395937499732301220339951585250835391590040103586302033969584360964150645536507127766218202161878625536583082917778714342338422099354464402520674118121906103375552151227135926400640713807698618555016294424889588320132490653787858213672568369942464434978897869203023244574695329105704151008089844980834533643981398008668900957709241633778662423771646427900495091565848739403983198098171613955155442082915733048987232525735525378102422103891716993155530156120605574298779201138970738631431255082609506549736660261525542128327361883845352412499283675792733633262204898859702015985861814026513919578109175170552273646519200501692436553183514621995968205866983557572824458419988525613395609888379231335060639012003829258422735514967254123476792952571368720095959002417157747335118905264302921174210338735631961468928998571816122371142156237652689722824052196996207316893373635561974699035474926080129503050017151040911776515087445899634816566769699185878132494401778125974275024817571232303179790673130521880873524603055844366390610973838182782944039979197145557274913495267634648476087498433774917589898487997176259871605192532076237937033711518372587165687291443506879403329601016804905366955874273454425272140948952461176805096593354443655290521698757872689389512735300860636905532313325701561067118754199266220820545477285004631486212954867183121445392737884150509427789070373582907491384949905956371954901352654297594332182095816351184064651488870055232895353083240924881396141645354124567250033923287415973596676495997109306210404151986742811146177394937210467439412927836185908673783455742864787832171787383974435134051132490895686839219945983518747494493988047211575368832948930207102296902462508588112589672054950339184213644807544376719251604294263173408560380831353303065554521339565449251638426561935322967904537048935083963009864936496385578572090372196208484041950950191696561105991088944510220028255943307362323796608320877142249401893805821067038459848975999434591633802716262927573265775979537755693848882727125874037390176789173891046895195941743886350175828344396194135581046648540904319659146458701305585056948857555830526326237262811332525471244676824941995962940943466966106829243459933968760860896464895943640467804139255391005432414486023236969095832488214299194319440856631752620491918363653850624108313344513729919902094389525347843707651479219728994724112037615372439061276715857732375634302241297332571259628198193802648814424066983856755228681313048128886589525328677262402820808272172338672009092297528437153755242011855547241845330494456341419850640568067525769292621315232000626357564517367465560234694482616407656294869887443987992598060145308222915293775428625750000662130699583575212396223971122407332117114640555765363303202036840403740096120242970079904674283782453120054842707442579084877302942274905552300765757124155971093940015390398757674062279752711776497908827799122273741453097014535022720259334602429866293387144275754394094302892521453177620091216218316822668603547859738240470237821679495675910559336741511284037532788421860440686985405305040276879324582982011659750780244705642400794835773654320762581687555471806358520742835512914455688702528653895781731868593161522523552285382395189419801096289238591914984391722840553923417020834160330345504538428857692805797974439806068793700924075530450354738125985435242819407189272796221193172313843023569573501442059588312460942652435384523267211685689294832137160164532761215825019323352891075538410603967133637866353843387512912433282397476878219842128714606893345681110873607205681901666415883323902949234073665180171583037736419712474766376191155374893395823134629390074949254762920895692267473455936164281975460993090124212857104650047587782841069904399956374459611120543941943946665240679408191316324576287241579602162981947342585862801187614915286006255185192323292342982476616565827547830801768558945317957724879083370050554474785785789672806315466672924757278249125252906431264402758367106277715822287018370619904398002077325380445977586519891936447911285596519483657924834691387043685347325014062746085730464736604523487661783397062282406587785093936103464959770436304417174694582384450683356148658420684222584419031786181914389317600592591579798241647861520861172885380599170449088764503816295942649075846356487265826093325596193779602170612917940168174335802665051392405107642878170540811607988077412185762366259107384591106961549157301636728243851149724569815025910195381364157269002904573628471609638601535996274495830611869794511453086534645661937941436607714327233206504626742432078612092284849366488652648106298872810065772053462403066643239198834173316690528733431623352467126188621940925875223624321098046350194256210315729214805330527702804853999627016756413083441437293150999199271015818077946382172165927783680586984361947851497917897720045049395125531670157261003127005428615118126583267776979956181132187458107209025138851946257070932216945195734405780643038537878546419857249103650667949224644112527360705959741663803692107756371821145456808445491713766646364494188014818483696370713723652789270479186124060038293134837209173821823638941869608830115478953267314278901806079287346328633012978464688412936207477785548738661081423320756279228503655879955690707460896057879207665441211399727964175506657780116097049552299250690636170592965460204789024353665437914220013361722355104313675959738761470148534548748924451193955600025988054311535187755929974339063468555444630934231423041440348669410753022643358019990770644787270599148305322162001262367640989945019730339376722230213707625919067663386261718065943982636086828047982320191384982355937976947202131214015234430519554586365461308483733657812240487862995896184083080427491975249481365932483311515337646087574561768209800464948447903502577244623081227359364269892380316154458652899707104185057601691749068223535342771496164240515445821000022611772820919211990390010133526885071522994299202776838347624560908133730944904128643584549706403307547312492363288169221049304952419630772543353972420410939690411501066612081970362930895785367000582773958423216011855076169823551142763440850861160185532206966072965074772577975738923451037340147293925757467821412214127847644899839698914451713528072642377872081627703217712615523167955196827763713678193934095804511656915975319731701557088444801683392902054158331255510409598214742496983306293082011569644376433866512498008509427820999013500930383918852448850476203337751610627813294401854904516667249008905752868523771837176937980017935724200030265760594415047878901240786651669588587283436111315377729970399560686982786226160946777298543354872927136714920854320485800570143596349716432368780238050723608939968644172948317182295822092712664508411110872927328806130552257155544570371458685954185674720563108784675245615403833262496019416391637857931735062263980437297501754204558596108945527309748901291409135263824901006426300944147948346653911042081276263510299352960899998514880272656470812917669483984831340543733506516755072194812423277299803731730130216296833692449920976385770964666016621347844230070708226579351132951084006874127616687066287095281340159986808125233097282964275424799989326417186826693669808029368621037523310190458367711047879749564878244636495511588795272241246357616364246704095431828727579546026636331192506259388371289956812254975987394706697475395541509819689907325974077167981352107861754082716276307997743903078428032258187818036819805947936613509514205001719742514233732218853120497194934598109650211943482424535596951403527992399632698760312429748405762327701986100376985338311782558456385718236637040028314735349511124766070255871801848885876828347407589211951525588196175496751879712580565868199737828888578308697076497733507152733665622679143106342749932133577805063012802182576577191990942138498458779503707550561719706908820013959886472099031842436185323918617236702324663416377878158823459670086217974877438688797447138332796569719343646921401572501866247884997061453245668410365921314111923282659058406534088893924716066752936799534312482946076633468294312204165845836902699804784903096370825087585250027741314968371420255120701302956213145037881291582960516258105553693656774532704778102775023003988824470439435786828686929933294229090312109716495360831932075194907469425755605854181931197428303451134561000292740464492203018102140651397895346059921738964026072470676628152981741855834063734472372074652223433426032125802020988451107312499353781293773219778737729861027967356199994535710938280742148102096452232655541193760750174207813158618935475134197309666541244969764384283119512929619223138953203776255598815135727672195979495541671529167042530730250731213568502673988543411974117849703406969865646632764776883672466748413188861736128710803823792954990143665006735766336936185157222478836095743657081799998608998430297883601117061482354005168295061302934605941692649021649668940715960584663550145404445547644581633115746492378528125086717880302257202794514099178235843496915438182210817765114967596577944593866879171557536067115914459863594119878640062296894366195336045242756777814458057473440655220815648451890187386059707280776024858239578625498479988515280144430458546114300672558089873681737823579262646238312624428399636501363334754422318709714862295888239428628721894868988252559053450378246199594909016913459501641159589169518988798885399936177177239700221486184765976349731423876835335441093531536487561213960718016655595264918667063390416271074127247325392389040941694169734276265145184231431647523624625644452206647474984367637695803273733727949602909700160791094555291915372778268463003380768040122115852965848799959273643442825059099217856328388445804587942192166487419821866907662017039583465061081932535974375168490067246538821945522143667262715603846897958549822570167392128520844636050830833323329511391270830996274481288171521136402777770583453270802153660262874912744261737584820479407959606532338163312302373904720773547169133322187606602154930903458811427690506240408121661277153788707800946497295548206040645363538314106587595026213970299686176083081360168687100901124324961700412210907870989440580859316657810982323939559301960083991309378651315176211080228417304038764870048220023183693743524804085116789664310815228277530735582149592184405727287544531696091354554294017902740841860012822171999056551254977890854714837224584970225721195168249479373220667744191590816418500932349399351744097142858633908285682527670366586920686629081295435214007153908894886735515827609971429886126884733038200958788388557834690707801731116990928440240864607982174161966310133044628445884982593048029209188227658609646468739520387827749825300867183416795916973193357995161286363719015467875087779575869169731601280606655776943795309320486749702741319526235558528099180411770826854710772462968517933027252668450050689662098685713879911707846748449755294604828452606678969443423536736695998283237578951965199195175881509573979415779680277697318073334260878928140763124886504566423456406997461833720624660014253695336203906627356279191622738506075521001079449204159752822382693934823251720182858424439170503200800794444710321853425057136854574268906160890380812659553621261834585186485647250377144840547222319422631523320218171992252893136835872375291888991202950606140426831372100474788664808133265914322993888436959198088789667827191965789460813164981964001712337830897941044142755011043996102760468372078026190969006234651217542023393170516004201212398033375563038478477217134020257902754930542109334864231980763742429468952755388968668184083903715254957558740618778227163846264427683212393015217418504169780173417487956301816152834378099053182537826952613268308844495145228614114164808438869681197072443390161730113057420601990566284731608816830968506393894368104903197322217028039949098689661107448426539544021602083942221877589143995580296606171845650889852890977753151862631681795102985191712060196718457984735489009371425108615157517928134524593457461589105612446396684524447994946796428691380840985498195826480085616287124769503401386935755843076175687294369907833551569453562793331064833715907210887240468328349496290956854024100202239041731834770439352645736708395069539361864209573147039490686701429756906127206284414120541009845014672644287718066124631581646004213679910063992479129396288505457614256841340823506803902437849651684998110633882247417726710538403109592917756025355650156300130934787222757854067949674587896261768276139327883491267560523869536992966269017133907937977040683009954386031401579421265718647862573552931481081991564027951516155119896254953904715510353598150240145318911618919696901928773071272192401063192209205742756502361456934540550642596766381397526900205231403943631915556916714825808979737731929004060724663144886999216470353810664780020135036764083289823229807403669129407760702026284376094833288878011746482790200217611550325561417094876931770839449783985455064795744799472635951351112550910425130930201652485440826326274342740844205609421930809782984317879995406407052753126566679054191658623336369216274947043637722004447976704326589056930995243027032650136593975700317859075056047590886009356323399362619024539021470420599698237360557813601179124494909102800842882957716070581342018754918529835451039006315684356043899972301454492091764149049518013946464765299856500180381123466936443863921820169836013657907518981041841525106505351024524674735982708909412491495482654191210896594726564170649916699262332710966203515152202280197414262987500688849072176086510584931442146335444669418803489840318579188362922784591100721760622159648256043171117833241819591842058258404086457655285982924784170823271356108757558343670451829459751432151448138533185427854133835079308549083523271489912044441283330336295985929163782001170191267480720641340387918021620397967016704394912311447282991119509717668405194655408683651686444828457353609467433383447447368055619792684581943644974888417507815884817540933394495388497495877290974004117373819801328234027355770745888142252553410250008505254723978446625424900165626314320612625052410200711853483227141396275109279687742546442048873407045333930000601924339305895868045725498164271005777911506281595713485567050820069458345905253757357896005299575002200841833517901898502946354515185874981499137100774121483448193603798618655588773910952628954047668808721724576717270616991591324287177483362022422227175491789722797584137042932578814404407615908054929617480941871067715589138279885721003403612194265900998615260954871566589271400566171205322274481048364752747487366114455348967947068759288408436039774349423904579061465016496719907265407546324937193517752600141196837759319629468858964007938873091514528399229198383265666159486945994460105513217060518485054227896753407741190982304353149759088450120148492927029337955097220484516598439491086070389553031880417077958800465196172400393706120942928586713772532491295103495092821446139883386050274918124189911284109763559594525009241244314395908662916127237774623665974123827112658558396246446360483385831745149121769741725337518942468328131188978291283081710240349159129265544797363903642627301484134001428899219600046242640286877933407141373453724416990267493486247905004512678394439133744751503613125551868540992128241512864950736515808508764024901201247716230079840675825058936934260116747979993998039651493816787238095427238206821830030407897268256231085160797088234974632255792830737997039233927398470806571538050098273024608860383042870119703320916798087672830453424938231245718350253164931711960720872446777678973990630146825604504784554634596730057997864081335586244793835669183583828810274065458203054193734375418557816763709200691141569704551578789208250471374152158134463086164935163354429834766600826722193891844093984000166372724621947562664352186211709682978095400031241305477152153221398901531608282544753339680084123048457941566960323555642218791302839858700809699455549235746534916362053267642637986947588684440302737721785455151659119278324834581851656428063832650349179083859223239996256037698471452506386978430614014203362409088157849383636505505172016611604285044171720245534185713860860890589361577267772519435884530314077880104358478252790397226257939607461304911915341756393667765856868046959902018310626029278084112640340177355212664495316230745679594762144254235981290626600971689931949137899620996224836772863045297441541860301758292612685789683128520775465026795474226171543997944301980120985411376000713112684191687239781007244837340997088652746229267970056337524899663970607447569882911870006218388215450958345624932899302927364778707312759872430988360819456236480626791897507463571791201362320707597396180469145828965534068035270064163882666950858460780633281638103358152138472749118699557958743484315639045713146061378245949726831711525161594689103456895968295985921536236394497189052358995308755862614754631067389971986272350420490710084851018846971161135623020562370862038311133775968020382961268003885609369775396020997211194285783640087563820135158927168881702039583542627363588428262924110150681415561219925764044743961239820696319929757303438251386327443862130105024194951939506830110402709149092792089621862737909088973681579467337849943049736873547556242108395607728525720105153531807868884169686767191439858962196611704697244409020364913474910132321752709105320837323987045187224464888106192849682534935689878290245469188083908924000698246361188799245921300907961386596463105581168505623927315244832844205259495082078356123419777771501920414132334519109965522713308606036043022539646004468860501529862121678252306228617566320170999056292695474292188103236409860946448142818611696670859599555735590354483053513238583221146069379521264010775651184325103004295358665149454061201499515302301169132925280132372740668100040417075888089311225472803194211968998170386432315013164686204849757844039414568159724549910704652354308478051526349863572353729633443341334103259009646441689380716970061330194779214798690095067536179276867826654302852053495620897193548958873306797594322813151153498632939940956732506076763021532787948183818545472434757266046189901208204824321723928122413265904364040653403422601373636341214771219828638263774766847223429980517315546195344154656838732212179929669637368639182862011728215208746076687324560271229680295002062861931603765447814462561277974818350847546019321385880521523071179600997785978460243413705650388768893776712690619953056685105992692253947058630466167800888741297522787554454818451251429947199791134992517843798604613709751671274417698731414294599033671114126725871355307362641775282797284857113781169232569930797786598895057150694735140785230851768188324209761231984984010852508814596031417644978675187120434061195297334630310334067121629060044257173277162338914929390039707978216632878838080662990645173912944000465092814979922799128398133281453575918678304667590854992485805194234084892859069485317488994007621156356775917766871478638804709770888609290890222750390320130552843347751631032125276925312979270311627812959999544717117132484020741494305092988487669068694499358660170144117278431907109455346285407637517426830184070697452032294990492625696612821081724521330536058087299700311068183415345850315697791875108760942383017078450341928653327501427934057367079439506003930536745271965239859036817566648775833834908636402074305514841483510810144079616399532858308249353275709330161242575092696029175943553315357883561646092480694973038260684843584331585691254417977064928754373148135783394730091978623691982597827125336432672730447154149697424357368477063386026791895576805286135770231566417959474613719360057586312712290585319450333534478660519075264702224976908377242092407782126315165177895564781775701775072710033206427394771563028596746285582249295532506392817264285105834845407581758576830529298337491990465688800103815736506770011139804981245467628996511864234854881942670333391062665307522490489614624162624344149370365193996217864781912024627707327667404150090779492527265864712760949725162223568964494918668673431957253000202381433407724504167822409617768237595318913458156601686229081510774499149916350662133725291013719545331871168823611971227078529823352894845714861588827863648354139088570501680582479074221727932841161740263142045896916855598194985806034637943829719433455404762058624161185995196979338970104578113480581497625021973769914643603014456324869013315868998802598368764925251196023507992019767482480368691223416776591387431273933313402372362101328058894211854828936047301797345833751025740580723116894786234258381782276253413268746361544748341122137354878934253440960439631540647089658860810985240893626381953164052803165962755008316092008396886946939627692906164359894992011996276753923074514627288400578214649723865247591588896733801719140785219292723107282011136732212064985089709940772512747636306118524115411055258022725903370799756373729675503291702896976194409923025076582800320617035622856459396411175675347058005747371521554737423109808524009046264829192309990009443979517452372492147007086062983503785663517026509201582937840361101128089979928876371449974840928790002370578071601256836230339490776120397250439175141445366071442408285790621157448755887422255353629690131952567729911834382088859414279113800469150982520335011371464673460298308967953667956173126233816399695114992991185630646441401095594344324005443441804837463968883732784024145124803321796150129344130430150101090615098018790864093396132525988486704682163538803542019828538792748766043222169464391871088822982483017188470441943883274030999574231125493176525242238248490387431744459872650911034090575726522805426670114209188552186708465500396104808746386390336019307562173773023388228610610135818715729863839375178290770020664461557125436979992792759706258444094823848328710325583297098645195953035534842627627069883404584951994000962743769723390509301328991118078475897374324560155197472856850321126975799024007588477510665957481367603424451911475225074525954934171302448990839085232031879211949619488761112144745666621847466705039296147136457226555112498841469528540130309527205094246690589939973755350376472391787284631979573021240495960911598036538799156591924189131901713074660369225341509835974842445639863770151759812235174096162711952035123778515204352448226201072661655264830738989020580452361874010069849580142932207508146451064872311597548230771222501099027225245688795205179477572904508913328485886302824165858270569779824300964309261739542915879146073342339682762652708688228929164260320758074758117007929752755137668471695098992144798034937236852547435141977781481855648084588524757279823596383660138472686031598517200220683940104624199405465220187429944504626753039373795992880576574248363320557460143625011945613808522557355727221260544387331116092475593592264071932981810746420437850966271483173580696537610096611911668181021648460894205282521255062326245520710262372325803566720900133358355657935512720829114230152155055936311584436593208587023636534681317298202289303034774207577578631476730239980580386113366523641002407875604309465748943964720311630867517349424771205702702542018434858605911203544147940213743843670291925696597330555757948225353697054244068106828795037180668962780109388256765372842399729843937995029032351577812459838838290491168850169936372339021146677994781794187620418406757139432861423949834664718901598342195470899541852939516270554314517197080364548139524805600250816740244854770554508415287028836366213160169958865009619098413502422815811047729243491301656128044080002269007100382478742259848231000877494090646492253101156231240436644145307957361131882636713751198927666965046937334660905624571079363971944404514335663049814444890514820401551119138107995213276097411459980477807406491275724787848769324442079673721422106003566286153731814761159137789040764545446501897900620818157876380631642003230832088839178436545801873375904199034280610414997708392630728236343123948940020145292660666512336198424940871739644795829634671656949910328260050380155754645171987029585485626892213314995887771932371139255815384977903405899851073825944741491351133731314277887032931637968025690171601499982840034360965441502307304558144684973440397779057125993663470253850582398398762769897027288280365578689591669498085105796643544303857525157246129533648219828024181425328997296130342247353286370145959517765373078544481262093251118374568632887368006084884884894597549960948215292503882613017279869323145813363616740088304279728008907632761706662227232123488227523869702346404727682005100207728118346095692626371503949111753457753114096806215209508164148227976806296182668499603168995853642119991740880375249096313923027991653340399694837098936760795585689727350420038343211376418445489817657053010584527858797847096206862472462703761789709842316727786124581690615735759046893014892488802711492475652839278689757985189083802298469540790804678402472664933095150750304934965682035157024202402456494052431179640707025559895338158190624590054192350455961553608175259367623651234143116199968261133158800557284646818274574021771575634746087800942756580484256562432750288279982691523355171694030593204114180911695095492946298541567565001128432681149972007724947510755251847695767841990033842593290748833609574109803428997036912396501751784474034139064424009962850707291177556418166917090369184019037769817111259707582121496991136238334405586077320183861692503093500210868102895713680558569277256778286189955913975282537613125491185164264522524313209753856303458882212937534278953142260634710241914159483968878788735801948648848521382074066359170870557331851716816125173544706816229990495637400567438733615178333171461317254559099517805527070379939799629709464887376021982585806826354027988328456662004765713474244336257450364794964798046312721750295555492313631552786155519156604970235581455427662142270392504600963126918250836285509277389122375976494681039844005481130616844425156362962596705708979567741187931435994036941930277702590308367112640618732642625308733867986916149188061515121536824051126118087942407034007734370843908245574235482681972413037471250153981876390152126024552009152707728462517641287135303914708333630146686051452483072158086565161772171530922916481971512135319762643355956352675365703208233718483887228547122130103003371375337828189021612135212357960879307517635586920289380116296245686483549833024945592833335119898901895069609676226791987462995215892257259735672464345600143285803374767791505940464522144054329668624696704713308416877053900692198274130389656443875164944474846715745688283926988060238631939804102362204783697771519113215024197875170799408685737973541774392057852277015239631949105075188850537669040342169207307168070298451669417345377667770117342053485246347354545438811264653131198656282919546263569668490675705244002281673210349309119272638102511282576059321275844113186326098350571739887801849628780114980187821119787894245390119343198750309573435891616847022692387665487486659690817297252744792457964809857933345032449657455526333961103545394773570656306524559673535953529961293078475406155083180841754715691382771468751351171189711697702000890556934693318834315137018136390014767715263621845688191930841838204776902565138223584447606781848649939188220019556078519417437561815170860386562381903194937352987093359572122483225047397197897244498580390433167464204572116562265667683694888725594190039661721093997406715850729747436947722665563898305962051274805554017174677182831986640076641819202084173288931033302538482047585598815480445223465267605623482178386242345644947034038909458875244125504876494552273449038898418156779803198906161225263556957331783311699015940962346594863002609040573580013093016862617395610774916210748690455176345278839144569953975289306616454697554786062354886916072183601218598871985472385064826418043630587483215177121091727383679257618084009649472237386103682377762727479509275172947041737517323430651327576456833685804790772531220255318567590127556235736982083582057939635243715811793570086343436473119639541488282422661722691762862278321148090068694411923307084071914662384573346215477563291659959887287764504624560523636086076586941934768332560818264950953655841475212022432150470734673255553004669843892334757512785418074288814410279102472680382522746991745638711021196577964590701300733312329140026641040706928216590442604526197604263491717038689644821054336020968134570176418927482319754160107552418066938019293258440221026471829188151743874071801073986020828018994001022156323738392979492834690650344746521306316428374870985132573237065344982766265764579703404079599949847047900740741970498678052325996730427848405779821864463150643480273289077649079615244783212755440330932669826632977079298250552226643647760032927792085518228816504007416119071474269412730836418396380435086169201336157323783074160325600708025486576592414882206784745726491754472306519507643186087038348817799975975785390339327468118234459552554146469342688643851191498777658233381368364996644205932443985981966226876530777740353018779335775703579925393776990508575679752640877425289722714571258501484611200992525256698616161155407578489534281698069265311384324491809614844171031390273005388981100225736484614252720096616363692816419152509099527217047210574178273249092915701104132574172473834492856813045472905422570427283573641927603569757903620019345626949182379642859798812760482469506669591294309677381712969971988099605917133029132058092246416856050759184605563907357605192022073349354261472048855154245868875686105279857247417712082069580790504052219534617200837229815408782534387583177691745277429198797362163335558991678652792543362742766987383347219758751255643718245086895717887330212468081870108238220405193875720367785449449198863704211718191945944253273031800876947611740954879876422551477634454938451933675728494957125905517570578393634842377294781627585976287582648456498752540898955124615520351384762143354514951721478778446493577898633876296835973408892974208652589486109547676465071503809153942400111017490585869957801765530231839741563333889188877197260278511789401127374965703347210033198739536206912701138592733528998847012629945448950269804682431390577930832337855506297680567446475747469214862365606009182096554913268373842882005526299546533389893956688394215154055750558242218197953530530222793369101030608260043035172176601804818491273999901925126435154686267262949164193903321152227209388767230309803440628102095423922857460206543348358088345108773201971142865354142664122304521992219025912414712192868531377240884127395091332037897833389088440203651672746662147317739662215388706939783678184135780750251620040592976846089245056374830828957608710413888384637047972729668288993587762355325765270092049045988568496193567339789177839338449072424461531519946105437168200576995293571633835657030440836351183216312390946677867713665885712510267957434856402376285448446435505778889705416752310910328702423398575592575423194537304514037057643692190659798902001026629811928526611523956037732536736048083021144848371574907388103641148521372482396983459504866037687359682355923482838796329786985466473498813108200390328074215302251852656862908475461188756431085421790176447839447730514429760708281168012028269772144683945728725800013224969663994209827904502262111556566032647419923064950260660822128876205949790859238977608842794171277916200166050832460283875347620910172159257139982525302353482564641871239628935332233532176934363828337640866630290522599250987602306884903976489096721652003309767894382380382827655425755995426048201593706736121404657883040998469776460132060539962417015220314628561437693665807203487710829797109692587480770576045774934098806325354896638773972584136349925469122995061488524567325047411121058083972355013952943035507886333891408046410486543644389711461399148304067029474193457824983053761578964460154545653588235866805382514448435348107928020839923047179623063642969510687862740542009293318062143307474497168352091981701449252918826256566614783104774431298039095973567060520851569022655650467715489340132667329113484174657448638801880604051434198695015631860611022499380681520967399430639674517275513958742507040517395606692990842328916375654923465391596209626813969918526929199453640505025694315124342669657667707845707103790065038982439062216510483871946102796211596777421392678713451735030817127016374490529917023538160285135870367783748475243947467738544742210694422865362569855753929156228161715328890664022227256793610100844075332680466059859626909671018978707127702468685720131329890563325155208555071205941083374437761403713262841777173750014887220014806723404754244186133392885906405434959580980783876445892415071586319368552068994789776752017316234950713102029675420946286265672755545327788042083452429369501973722707322542057067777879216346581356504888383396313246166563767125912697771661373174628160328055631466072045559575898991088361827576880781445209941730090087955374776254730198406175550643258834740343462530541214437066916449720075864673003024062365272368948127508748070255489878521166966931981723151463842571901554987935636216899911202556920050640013912586105611363195497387987873547201386405480649450923283887190227771578592333516030064901371983159785030207628659239856586273644860750245031320252465007385880768580057331136707696096661994105048709240248018729478948967153655510111170731392211845839110144918667939052224049199003004572848146394607948545875318620179408574269669771410401384113710063142419612266740531360985719120027352850622217896598919740560328218937973323118520235459216948221507502085102505699277150909823698559500165458504035972319119739287304564064720925464679581248189777173165124234073450494504431207516563032182271008661754976598512035767592395920261796681895941695499978319972373618640288669700252260964907973253319557541489408923932445520439668649376648028425787553236971581278177512168346389311255419453175937061631266221723737641193845789998511193079921992783864809052590312850565798063202089302854131839326428624851799710954921039574202317116851408251288719026264983185760251637591376664603417402245516496761974306112478017819134849615641848447151861563301259974341666590564061839610868253352256471460862895197849700994969731485938448539222122053014410043458282836113638954253497979203719514773856076340181331371912175336990201830749093413124362979015994285627342336391642306757428405791279228964631381987622708958550211251724337171754977638270880298785777774763291742697986245684718753442296342864181502829282363190002773042757830917485457638402910547961763636308932691733858286298133627294316986393805671769777949016389846690922660180582889139524378023029479209180035063734697464089148046798757641967916261700693588609330541458714225372360012976194320804481333574478447645450014041422742163733164308787783647591238587861597804439718710389334102992929977689966347543717653390015848527193427893560180731645136036713720931868293196193888578213119555879349720122332442189469254792479127178229273322977645577844061546709883371934482784146568742804712869776929957612810695571786851725101518301019085692080445959415768253876559346633289868759779700114426114831019926711773995460656797031689716502135239533311602063705860002306909516628462715221766464607383906720358291566932343408188097080398970233802916014795452222492498897322274060956065449943651001353338884866731756628479811686434146533806291185661298707979839494355462470341358804225468496165460582224330804341239586323435515882122135447300223423505759408555849172324003074571435696125264945734453458273534898901078747331556170900037885661581834162181712012829407510222650473477946179527687026542034275055369577938546511261414174823267369003915829109047183304789603907437431870299433034023492299708571042978839816715321919625802293818207611116170301057969112617699792848841241311636334318676510083054074377818425704693033951471226788339618067788923099511627682556328122493161388691630831011967165974712248407503120263971317905680566565744790077552031526645987852221325009699438281818771124900135063558861375694784752678655549331315890528927137280321598079612135173967946097997771565790173404017392530643611032968680803915710421784342730098596931340196685296405592205040460344689008036711928214744917318127964092571818850135433806741234729935939482344343276722098318102736125007841315578583860295250034947950607448358635940372629195911158958394486077788525267345449252702164630488049931398007210031464971819495075634936735585073170504915384825725558779688504823256554533284354703349048080354575617214134807739432610874461608201943160942920694871743012666757931336057735045046199472662531736589931174899477544848295489837052556703881908899370489618144939177411301265821028944026856723272923413319392679868754900744421621639173623380008868902852930619516106355497525929619374463617267282876068616846396718404038046339109590174967309787549720732805387204505708096340225255570944878852834520878137300645117689601115001444921327881072317990386832061046203720334589872447679400923070487374046520650362901083679867256693486613782588033095042814293833517262583042782622398332219310366259917756842473669854804702288110554650746048904721997806253324317008040155369477483343584986854937333741687635711173188121751744329309273142754057031699718000348067201593751904474174539105195326173414222966799054219324389606431926859776903675900098399139650893549492404715161004155624226937569607954365724486220506705700399306802207857514620284173523055184978976704926172977142950352001658181508640251047015752818764453237552774135745076771835059234433420428898336010367066164653619205751077694948089646908946629611073756659169858737538223630827308555970693899399824404909557799476781278742867234892964051559481233005646990307462601085406033091165891492466410017307649651262801745207943340033419333352090291007419567095041106100265330244404890697185286451376523195929816600232724472526483132445681702194562724764676848579412208370391331154051475392071890184967799417929788735030108136517898245270609511947546758366625926001071052034225198726949593997853131912246471046134533296035107612370219805427826545959703059253399653464373963897740459115162725143262859053377393322036548736907333394634175173216241869324261119655296210965548563870158052646538228132464314074470560410844748108263190765165669329503071769162266202559154730847288076026375805789255060313857139530174886890831312580758170920762713464427774105937965926778362944615052255120544094974058476992223601442958648165937108938840989071282976891188055910488014492872852941997379852870474356217835647493602323377752423486603585941962535479319937466542606752042698382243221124261286902248665693988365669020572695807405156675272951252007812360714615414712298499326382843170850371997504875284873170857265331780837054857217737168575107341310428786034406433978138359245479406179977209113722842085658010361171966948817150687333213806672217083460145476057266691065578638816120895084952421219255293736830756837328868949597181531730574773916640856024847673550305807550134453267274187526663156940267304848284342616780797737730617024868132874605980333186291354790263724749964930786008260744741604645442003280253598786728905594755349104044469815718439525466945453829909592361220946710285506266456615461295264063194008949316674266026793959486990521236704555306619452673498445439361703010070065591867069631844901120124009046594483640230306433331881547664230245836226651182581708635311332307545164498254000884186873336254196657865152504012844859948198355802784486014672818355986083888815267505416957475622912138146944695449689463523969174117963652732208093351711315254158324663645185776167823796619436409923765251451359879504346214257988121015522633598243359647595371211898108661901979338992338233712052382980095981882116480546587718694253373758079566754007521836638263356115914101235573648118568242577694715530040710315521532828005473403483887020591952903922698793737107328747540115232647581097731300575312372114601943247991343210650293371197999410512885160580897043262616178322898209084664934151276438417488406108032493259224046079404058886966803878955546888969363889580311242153077135003308261712495755263412418805799257263452172950432914057279045892483785123660086015010559780726986119410328863149953739418866141726711142980334577418956315364009949508422026196438456124038245944561240197769464508479932358142709954514686459045051106877596118275225250140319553641504762644870178846070748690526964072055367076710047829188389517301115154777475391258579421171834188557786638197524352192213528317667832812948121371977975306041459969927546004225546809191278938368298930195009423261143146864082705640934484544114107341063708544253818674042223830846840283901862636045296871355464839937924487390630662571466238172195958009858013054078230410245019636216129614240174965295061779298910119428573959405715562876410432865122318819951916450854799227286115868951337780622613218668255810427550769666631219759164580820185756660722778214939846935682625992177522471136590081382322556936327039594541972757254708024238786143145701168283170298730050615838920728732282432768911194531166296368853178339050303125489703448444168092021212586893455252886794333262004767202735311973219028854101273066986555126283385921594701440027842887955903763173181287772146787770243821141642141485964765277450982992532286155490155919174574174786719906971629565253741882375568149794365602835329284912673507720004093152526068705190441875776154518908508669938015340620171228415854843405204335740419876394714408466102590137397053348850891024970169578620613697918872669305689693126783857367953028132061216317060949379251864606855729117019890273420157119570840954265036447575357855937543559639245469639230094943582187679584603567063889471221710559581980618485394600505224357772802555174045870124552036746086514234321183881283629048575983570908984964962937442519520849147469349866259276204438155801642637570613957741957461437909770285568829538070774564583479147387985703890835919992314045980966965159775895438250682638187800793719695408457634808763869214342871451773874918823476886354979315596848243006163369006664376360209438944575684025118502450209428726204322028038404221461614310716448426745307423039122383770550943821080304371610341610763519151690898143744211123690774000233636333378257882794973606538428043138147836735089994638656611812008637874835932237377271694044730887683734264676679133261610992759776496571750951914677601223921080268462288816188065801147909713434316626506662104945695554939580894702376751639891338386767981132335818175456718890885986035630204823175353335059674924927260239263906355102438633971630362890788857964068628472119829445905228984494147719445857437535557703118543103666738172349043263074012698478347180254220236217480224246630638745984993855962716916081496507871257111151988734706862590031427962992580141961045182528699239558625962606397163752791453772923421775852172527810699450579207244209881104711063890673082079324976413946736729917194589778338422478076350848386007428788985552297723073687813923048578334900581049832965505818778554589123791500206521835417235023906570092373100488803043914299640506316477527917201779886961590531453077660724229375629177819702762898149339773957067904260558967134596444003886870588367290204527978426528279518731155532392077334540400142928396823052714407869217763116446114910402009419611038034482033956716257182553363196921781344085523033085874982011686413282430948341787927577991339242913265655426648929894001561999711132474995609792781017400351814959241368051588456734995874230223624379965753720415442913123062721096190699719217675290469063899461676761105752224983714779810683153407354164252972479822998296756977823971345890939631917613512216416743362694504021250235241292477457228663807222231050222721823987772499945647532311896160282962430321974673110309728707732178159520436287031544517144049691706142458962610851469589411161584470157744149578014611119052979542777271951270470750654745180276988540294308769477419576579809701745873530093442068425269857572805298825515414853717719559497471096203083673487274336596437963850972590656431075013758110146016209609447321844300866861486918962622001150216283245359707620227743818455489706714387465402058101578439081184007447442197186248781756782227487968867231538667635336350786719933895723069073866757018616951429393046588769915533741135981838744135804568563946178712808681445896230053598213146566057831445101492321419726837181469060172595847178283830080253151474516479609788530782259491504540108643505167164870601886998663495517535054118853146820471849491678009531349955347225457244308731192815459288134334166581566503378264369189215382272537939191231298645131369210075153311007009834734441461433512409452363527661373818833625316797957994790405148612730251626400473192437665857630847133553806777259379397362103984922727105938159265924673687000894647389011257584194927546718011450915356198430302762373407862968676388108553342883229945109348947308774743622628679735046732879179384745979703217138542852214868983266528028527394977034580931804916882114270929919062796395251297093248208219375169542409095479915870596122905310565545676220187747307137514611001384863197280027908721368539380449408018548193812462243637816974022811410165365332061737698621772864247651090746951042019034567162234817986577372679192928228683573633696909325792459913673563747705025583722827950054688781169145850683711907288665068537717711376153573250113314777781181215299927817082719722908779866472016560062040880031451011808889489831907875969120208756386677352872925400706219168045678955263123689447867297585308481863984723548462335334174164969609042668720606674757940235996676270811052669924197918363179494201147161435535856509519665196008929172136027364404168977520648672542766450491197895770338608934605774287654368118834785377445392950010731811790706660205238653731713267657644126632223043037435463582636947955653912069940569093307404698749097001120626845542844350816954032877064502219396083471121257881700345159004579812891576097629271812256971292285830911383082016262163444898687623211962448493318514031048504481654418975307736701938258244884946790533767973627870513426499506925378122759030587274688775954479012610981510623336223922283472735823506409407955013880751383736497110951139704110692318082268534647423864355023467587351954315044898215426878526384188022973164857377757916402146329390373546724720139634514840602686724924733250525936618464245468145847390310146300647923151758533554085418575384378070266074647966423363417629415627347237587565958062921803646843713666533087380661534747586170104990371008247093071000600954766959669847627658210882174812420551084752503836128291886311159954625301318542061437556256168894482303937072851144838980836477786524259659994724211768185664377067364532002944871225117758067416247834477660458510611123031007979545476149204551094587509444561163750469230338201607244462338449135209537844128025001232812352192038331031314747729178407027448497243860941827956097263151183225041077129720851756298056546752820997985636004763260976601708388818530634127303463391540102049107425672977450076415141535056669273663155496856741469038020444379547010488546576270163046249452862938978090179229405508665461763859489576882200048334175703907646977369383854900864610855361735982936539968202025870637601077553351141584606476221829684123710840532424314055871369492829995852381455590453512004260995253248969317142850717585141100346040859312761910438490117347702190464563749517872187338191016600194378755972318018720171278662884422796274686729606658796553785559334850895651232909076859558941244196978528161086620284303364100557806623781675493849624654006139703041366164285312051757441979594590637455260711846791346577149975965149269280562021428548378942143229144076908546681187798391485037109436343166413048053253924989427146560137887263362493895762302499811470477535140777212975850602883577761224000318109563417558434748455925289276082101638204071261528153580882850520438809658971065122863605627751660247345099305649830338192469245023588844404939705120798134679140651464750913032036249138733671789680205644769640314862759853667129301213428834344838347616119715267998668170928017123914610034056915910673247803831309248371180539441237637482647792151009959269715170277554829878377284459030555826911374569346715164907176633339348745005304428638027751235884726866622984734190511200940578161665920330187213732578043394673729372271837209578995123070276731654714512255239025642225597258265315504552282571897267584997774065874543770927545109447842961338327145068591439045687784557992820775046993793508723704957945506380438695238929821904934735986145911150166638641194743529620717603310280056279812286707973122732456536550471970123032869167635445557454180743041211005706773677397987596098221082511739664228263716756013849541570572083080501182498289671340352075522965147120491517436022194093197153840879964100847313262828372808352878130412004040813287979201622231235241789784293582351351125692627045357749083332788354748844271956143598560869801291434982521606730261493056310638609146975910151584303544514148731007376521712711593300165229295305743073552135021814445714920203024303507410633744165977737001373427298353423199243614510554106657323325956263568186929336819137173478572085584749985896073750622878432916631615199498539208214404439390298324860265076064961647854839761748723609331834706705616370436830083890812567008915543140724284445708810913507072011989426530119340623389413405003906179423506152626536602993349601421966297003328974820224083196239684502619930795476433750338867322696487955422020661943270097109267411815777282259603649196580384215961892243455288383417912665440033321582075794898778315386944060353182208725720838305953139475390724717532863588448851030818502641206633247507145145648339413551656771393165366307411415987491559710668565912123209702420918222595408835857050859621447275839056549315297621323066775678795559584802405962628937181148692851988590134195507063989991990574123500904643900281295120644949254863591353253299383463857240441447743834460946901698491958069612568965754659363481570241701990491304875604096015463789929823485887545657036440328936748293347174119264956322487147098869201980111609677522366223681329222559278522141164879276178989223204710390378080864728835969749845191874864443591946775079897945681972549165241245090368969053138846484096313391036796560069169136521855783560145346196972224374091212476335188104050890612336196864822885868739675951008763219290091274205065697827472300001226753453948033098944998168992523922015775309994621076680754980206959985821426675175532543836706614494013890849628539208067809624093121609946255128268956186436907451340815220021259265552412811325265685949722927842156581743156243323679298701234659187147412827160591112648597757531445673509521431002981735073452028683732886276547308677713834893612740563842249827644037977546665739933780838557314221822199904376462774443359196371855223602614664864038834588640686531690935471558841721133171526754150393928279361032184922710462052717140768580992725243754502046227192523372134337199325126415673288085831004848550123901577539149237825311185136538521698734060315924434818199797239204300985940729294335767520862177879786841717612287103284985207423110863774969054659649922780248096215997419572409238007889845881580091744994296370662018634294933226005405059610993949381075583994444052607897680982427832853643684777977097230748668940653083534601722169946494963207769219678990948764951187492855358857195908757460982182522911118041466034354175799614242860260540437488287223862163021074761409825337978492860245523372450929712959720089203102068141138027962255204445823545441875059198261925642488622271295323111850840021052707667417690368649168780548862685048470375632846552440785201325773442716876366120347397352138761461017171200825729071618890370527431253488144118717687825502049554067325102478066683840779020997085373678680085513793894310589217165476018345420291407285212457389572781816606983772488976221237006272516413298871866980872301301876599724843137426579163426719480211174385668143947997550599262265399202728287840299481893310578195272642416759119069363593840788151659684409420035426586253745323049563699686913133222042594462987690670012230557859620922542343752556177560518706007436724592218552143529003724305198451612989306765962773355633171688947687379226324378964811025615183131123276908197528723043981095203716829414766214273070851859409657491276963464158591996359098594822138135518989084156984994014662903687385550985359642287353395630229707816107260103418490712334591150121508567861912720842354050549362430166722892253153668396578809937259505184452221015620533439142053475184745007001849643691348623143026793409194399529096022304441204842411606350571382156628491759569647905248362128175853854907017041601703378194213067230910795867101548099375789634051463903751464208974656013897919157261745731071022461266224641721099066280122275488095626540427132826363647119970028072238134045469185436105050018208543209960894483118962853767891679771938150136846483592851458090420924030050588691795597298138744830545975702492704419240028817524908827498135786435540363614972111069704507664902255410731185835904516615081502882521057152511257787820773712429998289890471404228780151410530382936059384054080816862365237271293593067176487842639975874470953121495835120227774169690270117613867856547393996553515372408695061338926520917355504848836663125063563373156005360329573243560407859341267358866506125272240890206461311459259977797193177489425103589932285639791977898540299494721955584403887564159399466556729715101670965332744572113196086428343582852670676015572286489502315529298406064554028965148540111747875282456546546143969066417680026627670317964569661651997368365331754941023744180371801181508067266383891769413921756249593139738974860170949373762514663644388604459178965479179443346381134678050126688361832418287620918066572041444645490968037957652912149837685271776401692358431317496925543464610693895162088713310899906440467364046666239082344169720873279272360540755211229560827228776770833188217522179342261814197913423207170130373809116961338724238993680327127884024608940757710073730868284108484790329914603172263854899867729439151608014594260751468921100656992552277605246889404080238135649445874920887857079113309075126239361464540625418218102388977537280874328356083206609850676691262784119171100348900513764964542752552249283531955000889489259553020175555496154110739321885736702130770263527782057710842986570849866150767152717653661655801618688840330315073445969389004553499056236679195945237649192705470153080880090412049209282218532952070472207345963571695766736566754182083877351011415843518914170531236741834758317141457367959961874558231940822298012595295085167960997199196729458380482597675047663898066186205429513912645890871780840364560083495366771326631002052822853004167021036233306412923421418097026086930683618209599078392816737129645051528318965583362680688594660904129024876763006139562762633201457941646858845262870608081969996965441972471412511118905411462479656441698204539884867985570821472378901010069612307189197795355803855670215540332907895536838498596395587341546559477965849452204255746928401774065561329694858533467934428961952376615031467675341030981919455032744376144817016330952629523720828667084084764798073583168316686120194757150187658383946872240472930419948285856417118649653618431552526556820882451538509281542957430482903776763323795328082208113527732993021447117691805846171750248433355824400966851125521005841209650301034783488353859113729236956579052834129415658558352534383339676103119032804904275087376100249951473808718124622801139865847948440798123358169591102513622543458861732405181039116544536896177246844303289892437563395956909792208189353176450336343964126575087674445583285617869508515202793755288354957766645004272515254025998945459510361854993482885948046042593691191752434913461755422969430231525358392820911382759424977401221258767642103626834624205373037866985846282480930244886023637849750462556300660476137563185292040694594106243280199621217837493790396193416067544397808915909464305816943415457481226051402095768321005606844622723164080815542927448076662978499088837059755378902184141669905197964579464470819939690458378860430876109888259724883127943823139319642704791658571145539447039211222283056916123309920010685597740242569950432963098948072627300418427047678192466643301373768126563545252700150232344920503587220715774734940135775031210779947854027164080942680724745302787327061520686517975748034613124033689413472534342424744074624882790512426242167712922311873883024989098532809596075966101179766955937802867546216037790356451360176370881487543394991575016996808500198632540909977190338537770123753048112569879899613749469309554659775482384722254643977569220436315665854994502790255679633528870854173707911042172503444515985100234993281657571949319462926692777809719454792837950256544938208674596675149849675614578227135466870484654123671107138311291640600803729214475467664371428873552379083355367567263942990105191878630580698832532754722416683501246880616282915111712204636074667969022084143152750827059243317253209063177032756056896881235807314746163017440095413033592805620186448668915242690390191178739633884634285864687327598877793667581304072286141359230250906542167189191500937872704962045836452173342512254058592824135310337127718537938475073426790465615471935650954501432599487679953830537968959363192528660619657313400715678186774866741086180167731707513215931439085490765913668095896980008008602249606495934757877575296728419051133200624333675573611576737498781670863496146338171669632723459857198438022442941707036409687986293605977193408473707076220823157446705884447251546358444004844929139135085270752720920961615773261483076843962061446029662725870956789228520954008350454194000231251076860704257514370576291249233488966198148456226672332595804073443803555580644182816134968570192830688457512403389942148782726491134247741646161436458033813682940838001437730842490277700891181531013912405945086618981134091762689586678201255561699938940128819811173892159904421272452302351051245234378491860239564089598163694399636614058955301186734696012199694185119052369809836511102735067188547222710826657703832321250750189654679235999004894676244561596873260431491782502885670181002207518749235442348825117360791386958298347505172920692530539501731310913143148974428466917952906489520990813285076110696765524475815405315318717703377610919766460348144107038344420926926523059156849252688097907955734169981766699308605553593451756992421905557181727035338741714852943126306286865017107677836869715842417821013963516140354435278161164714140548081075347281780322820656823010749669937041942375832948592428650860270378219335399017635627188088315657211074180415026011999772531575781792121063874888875894583408222065550402556031315038533716738170284256690607537141061992424451969520820893457596591288291694937712639961377722514002512697375600171067044092411173417219703018928082791206180240595431838982956165284846235542411936909196743855019555258058811744941192621156034941048036370378681612940906404531337917970596511109162568195318020938123381496912942250973477103219860621002986771961723721583401529444442491612541606075872033918034365432580489721746392495824351485602996190638378763945071910553984344647497191091921330070163593304724309409116151852750018362048725537894076068363703006678160468906966914060951229458269094762134338488540610638361636810154752973598803367788785766897419259681072194763253514637460878324063914028996519961751803098668246701659656376101835572768841967593201832733929978332011350700321189971769492866857789777483550787859158697267049138263273195500219572086143878218937638887293031244982344491602447404563479684344841154431093187861383293956222586331681237680011638632885326882745719646799970503336416542463715915536172828929963404571558822999574551853566489589949461455675547956912592306333972324945166777296726411727604801566705835132710715042801844085958969269901277054081066152465984195635573544341033236262513888705247218131339938275659225780214653145659476334583827300621195281675996103431552550029796662455037347271578640731603403394196903756941325924389055799056061115472576807669368691866026023855417198042573508270653431877882817371784893635996552997061865421505668290455845948366098359475969224720688982800973419787784044779158475500649676326732435906759038511304081201298102442724789625505992852024006516941659686587585235088638432501912786889252324811626055629471374336545917659461899899820570606052266568442130829916135801476505093102224871766425681444489046758822798802949975848258749671893594791154171379405413978030374979133969580994317878953638761449935572773633974858681268610731310305385101452107333944493483009843916008494211085105755094775371289903865017703503956832266349883716217105326127589733550508832983933108177275946216601267345030423338211228552976573876397611416068355427112740166133941772797443442666464051293144176310112167491395279238526974792057361669760465014896959160492030978791643633596478988109218228804193092775604570059171089458305158369639724799314510871379429253161512313541715228833065921785315616751746302764396649412357382798319955709372309674034024914740211122454219573380782982355629285010481378181067358463007664379537022403923305912701635291800597302966556152961652135722446063688284423519320441414708557337830731159026472044623217099471421260585163432560143255174109465364313535864931774178645763784805861610886539287060418329109690322677851393252572241360596483463708019027372536723146960482072834211885579120076496388616143771151333453235469607755655562897002219000771182106082778964251960359700889442752825808253610330876980537339035879546357670777851391700804002850388864119395960345908790359047305091183190171088796420867537694401674213463216025905984183980779837267344558511249185707093882110712412967505290346044065320868569950539256362717537035593078546731646184787476042558866929403322131440293420719450280205581622949455104871701219004103291340468976746060414345644938201647792507344199310923321428253743530384540397186659171288836248928450959065265352096134620247015736693641885746855492508298001471384517892811203766639038896139623132298675773123432845899052039356499207024257320431700451999305403182942653666973820435955840291084054153437779459720831255667925848332207862499957551599273154084237248291060993084737916322985334868169448770388607371775027754315118760235435120829544200711583182067239438579891013099527370102875101419084106315133738083185058502771479960326776784178494100875307723811105446201849899990869269175059538171986873305065530056122800710452715837290388925579937137012713332095219707456413477578443363552563812932081005419853015909502404942709828076706596270585032976760280725069832610278282370532775100003140346494787119420730392305852859487734411736710095177730755807433360360640149631814607527717659320219712603004949237183524735912076457014636792284853564542337976528498419797272581773809858485802538683327918048801694412667069890285694961719914673182391074015230176970734781811627910121049852450152524556594345910720702935415839216691145551884048243184498040584645911896695397974242583739128368001436418012573624180237979805076407408936442571142962520560650672740461434359058856105047582778043005913584951795191270067004160949454183794648423427157452887712946366401014734000391833626901449904865699411987642465787359486652598152828302861051705859899027552734844295287736269198016986296599346075159023201216754161096546744649186449796954763260311267351015235025032890155129696076831364211925434869955058329285552862791877375779093305480541074271197035952433783658708722398562903087886852338639172019989999272363917779119295659219763011778177112252045713414402785604324549441854804273426692388290090081628630479912394684566258528515345762253380946791089029197840255489188429665010679628584654847678584613105365155338656885953065360112453870156170261896034874918264612989140778005391449706020348184903703006114170442978441404918575495643120231331076431220161123142775641863894853566611516461186400174341417006049159369274203679642133931741859442340778994606468782495378225005277199735461639376010259458257241608392364777657156669249854115068762047404560117526264687702969837119480483787061299053167756579162586949164300016917371827551233623189839841715038555232282480727903646086994152954584010235533142334530901758086122888896833243411906192736262160012738822915362821524243488957000760172354530178420337444063248336830564988729711356231995751987563656597265626041074188696462163178690403732432423691402433107910520899076262357389049921133276623774314072066335994775190810894386377260965433375041549475390709292657581529045158902082981043271259260522618682662533525743153775162021118935166327815480646236228893024900138032283155127633166245893603901375348342914728878929359100443335837868975460516162764359469134073061057383427467372354035502676606634596565391851270839013811297690179696197751113204111985320606750020232759733125567389462179447316047070178295002526356791670351959380911591785917984884693250941501606645446416712295183326615304111296549582770172335739932073699111357136106351694765540536056943601120619752400882909571680417047679876169479017624740924302490576048124724619239958284354751261436970580389753529730291860210078197503955466371536046277936415028161923089665147730807195518208441574121757156598851558366799497693129106658364370042998226405420127382533808558410877834047279589859876641299403076883417314963466130617662514885806241294125954538752897805404632639806773260446622819318390801206543720784883925261918465666487550453825330182800874810264376131712737957274062523625910506163682975925447808640339831324774075659975531836247556920487252700154789053374006737985876608145572584591798638552991441526106826120204670730214770528261954009201955335166570120682337563298455353729700123240806726502491625672685064198777851256654179085332475234621674113406049831849583974749805430267309612737761953433518441484276470942465137823453338692975835091918648250024739531322964405710019593666497046800021909976900829259178130621284824335153526228210909164015740497002709706892846843466382790843880930524493802494087301735993781919467483308143215136483266247891655103716256150551018448979376980719386014923260166578421097035634791501397803263792968846512274208132555047137943216623674571809841503692905036265299071167390595866564027323126469658219773141385092697293297344347679297508677093862175712589086519700315230934164058532881875479772149124530532857747124171932638988086170835640269296131054893345004388657839852922507572080727705265803913518115561565814511634047912861561271344459104848993405165697680857197069234658707393132782077310454141380977923728428484390143875771980047284168042710034403829620094727180243794530987252104169596962081535653802427477669859246274749129686430142417865006582802818848642076129815623059257742581612169721794697628549711307468478608001423829651982933946228277304860247350812903825366055836231834200971686151152413818633542477530689468067592103040298725124168651743830209223403022999731130952236667603912973008356174482203700108653347957749938198351458130251465010194493626141702302610899948991234481079725153147986555572167629578540314134506526263117650987439638107131135794444465077153119141707841958493629576196638149539426615041220735868651221170958212247509714745389314067937243737422201057753524112063396906655652417291102274351953595704155375131516037319703882717649235082317105018912800811625575276635606173742245928191732419550283629329962603017413260362667401356180359407387506493890049202722183339148914467449302988935473970247503662228756404350619742771638171033794745418967996560955607852352304371909068472483271961605671602036711920314897530233722519309813781030850263382676841166290884907184341488187027358383066149179980773938223753674716542101230331007545840686860858622464935298225025500824950696033524159878659230524074410926305144536906898124444274353033532223932291452528689245325888444549315012712206024171485926446064336820034253544587713350625533200926533210187846364950202864576497994027495185718077055276265677571618476051553166825525259496517999704085913050412295856619308681782939889458461742711449365288557782958187541556244001447503399945701855095620483019305871059074170364909527338096349025549195991598458783702924872358601266691262439041582500841104863030712414740618921529968019125466895191911761012085644732213298393586271823691364047162598221099551640336392943760838658716175713818868149698306682442401277902223656530749763034242402053253680271670328939552980717506617664811801119524020614911128095325932802631028017671364863797708970555002670883842981628010729019809851736309910692271858352627019868875391449460565843878688091711537947491443671916842952018080352197459740717612435242252117938193381364907247304263126681460708300586882328053112086042900066180394580275121583276068574702743023210397988696623982414023069685115057003272147906006404238903080210485520511526455067841939575439232392881535154467606890750404524837669693233934190876545103105523555869934604467092329975178642653858259828402360239078913857080744160347024504429392190352841693398118463281594076703661235283671197668912900648061337901741099414675550435366549789072121991727836957995337716736858693717657032823024528401482986317975011041303926934512425557213768907603940041188356714788639317536194814299687962958852872286330407338872567708734669368114193540627155243650825974902417954405514903335075027162289513390524321141841151499186780714246700648082566382348535705118925934253043888721654658949663152428881943737605446103980742591838537352592673962513429619683797727688227189376170391270899481491596409908195878683131556591740970926731331290653770091289156539017582115536985069644526938573877611509281381315877927345908643196873833326715815177140177708743663940392347951170626843408786395625476531345814749332258379505665646455712696928002221228073954852207793591088190786043645604686758568685465930444204574512603236143883074850687027120642269649179474272881716221406135525935378293916890252328532189709470615840748057322611718707492918847262044488744545898982821559060018707058934778431005129449363405584963825266203025486213562364887725240159758891748485702089016528395542398356215313020017600324630348311247223143132280046165481464540142618956490228629022093309495758285287950360891474629099623128741484853180785994674381302137433009230180498607665092444079848516766769881554617503794402833098894114400514956455303497152238666996631708184341968321277609037908299231425683258512640569319736452962016719530678498126121081905836544260940938407386541850659684818002590155949131433822378405832653543158473065823582005420069085049736590688606169869177300255157473712853023484214171825535854991162377625756381564206830887730370737125970438130728346639858643913355557858000307363258555729770604112194887190311418866315753409949541933266662322318181278319711918517914122152171071835176326152741926093582186685179768897600556081114505604089285040200879802148220367840985617574367426521289349705674937672104485368267990032148240941864727780895277085071108872339841194055382504743140438866602138317247236897271748038382845728850365881837325069164178201975404203645846772808086350329310129301969709360204941468586280029069319132428251188899410116663557791209154652752520337236221735391830880739999845994116796008608166583210494102984182959888876213391684937595377042111312926137222590208380211775922139548095634595927352546195746651571349242721231540295600325161872227301392124244290368260604778036249050995164410170308639070235412980145604572021454701793654950525144945898172545903261030113988520532947580175774720748332367464081913252890628085056802523985582621840665349471090014045869085190586361425831173115590191698491071107298043547297047969403820256260647159217051415661826036308835338834456940595953442684502605126895740997207559242105822756257006698131086781073256427864126469646093504418005356303342609758715198567712244495666208301765966118506612040187130459685698545595657693736656319286872905239081163181323171293411960940767192584793743009267546868776359072803745174543476892664842324784897987329503942699817805553365981687659627308172872953224600771754330484987784293034125092338091715122299914218736321403893092694729808103665338719075557876784111273443227823631452392813291319418317743800820936614401334696951304320000546198702694958557538979402712737378720512547874635290414535046178700215668184674377337918807392225616494629817147352568953988972276723960325978990101110297858595694573907031482874016059934000750239095930493388182895782539634181122555859704660409340810754677492848995801044354572961071403862138163618190336446112942243026594268132872255866521379526534621407230878149962400865653889652565083535559201260311794386989898542451456522680647228545394290189669387411419679316754008731379370316407088788970547862638674308890796338956514182764231021105953427220695664712384716691613513686641000149257430852407479958861096597225220047153819873911333808755652390428880569584451031415441159331234552192168275883009976523547416975260063910601168525854130587660438595391719667128718237817213975311747473278089392736183007566235543309872085146889343632830889829528922073926458988885721705749358610692273429839453938920719010561311526702840068857978641927286827089384056739708221449576603243733231819615812748610791075754897528994431618341902384054107392992606767885962972605162326339093655875668000505313642356672736795345736692617522677340267347202875873174271246392630343653533742536347452446506333794598833267007287688419242103665211426365429364045107434212039731503743358426987411185880819119696280390500391539256625655007322632118845304807804476300328460491148739974707842312410246853340289198088567613582315044339238496841527905137536244667644903825583603306203498148806126303785748924600325843922984447772684158116587154127320380609612565928969661127560665057166660275573837230997936339939978568216346022120607373103899837267446850282049652632645793514098563301145021410102471959284312808194358956058143625446538399703204686862620809730135240132265967083648815424629996967581820443773978806947539879203387627747165028783171560750360497569303012217095027700018552074640441013519914014214629068351788430440335997045964957258424443907735101711134071165966723418834864566497740474003531868171774279043413445030230730564508534859248769325408374512910806422838451187293639802759472743870058181062444924829779056566703686845491606243194344799454470920075921888893845584085508833354156670137388727330729556198893608972501108836504449686569728339339709365208881296913533734357571339877911018196964723652760462948914431295727547828679633632963247236545781282403103536019844142660024092517314731239121036244959806387917427530319777314565412666103547853892980923127695529332755886281128097228050944547560233409718162965189036458831853322504166208908291401655238096350702433404184348561609169520226182841508567989900781489488445495155213683617784966265150090301009645601736558478286262167686367161544357295305913623929664522826570405897261896613233553725280929373624459663445670311424729514989007471541954455388619576291030869869867468715864131307885250286367354297126347079902927677995619899995635309548958700726247618629734744643351035657655630679710304202369008432177490931403259174317905649928381089865188652601511506295691160044969438071609124679397182350957828078275430550791774120736384524220989550215902498396996915843375668856307409534673430903771967839470884856190029224268069719160775376246088871506957175446490134218107770775324244516362668512567052721833837248611335978144607550845468115398360567753239666582775540126437690973763758418634522114984604509660118887189981756828424005994406881068002720720224270504815004681536191685300140549455971128227259402715402401788009962104510900461803395592295919130306525043877880790606103971060614964274095863116404189495842577132665591131358852926481380991236015538626464084466849782108780947331168466034348605470770740618281503720084028398627289113132211032633075782354951315215721908984103642254406422004930413220011050938905232632731326995943480589990237923439152881032185745822042104579224450152665643663995119667583628543987598181527238387967000400604628273039789257050626862402402027047036863448576482910505522043522102180176688938731469926475021562098976372987740410199545634891398595171613788742948535240231726205840545258112360905384969777439858347382005150647306994770024784453931397946643900175580345989937082471177602997521466477544127624233689664660145021665652560103351685348358648958088520942334407345249288176859866582383420599070680293529836192261934608863663509746991905340052869177266546717005976790556897127624498595180528603569273526556849836403961725385921992049914596267463186167889363033287818603142483641991174634826258438594998630735638148232278208409379654226949241079340470044810843489566714518156169484311959534731216328842281018955444623488695609964969528872300304097320990580274399950015491299643501863544632903411279546672222641218209392029126673812393360671557900813451985745270841059482427310352618867150223683207869879057513423676565416897980780625416725541187768669945577934932230601391473321700638221892277128295820098006985465929051088492033271331387606669297638331220006008981333794052098915414451043503678540125786500299451441356792536385260048022404906087381446200042241467743709531000066637548502185826197808446237584729579416133992292215259162200056020977539835070795013798814952641429036261337629817398013723680270452801154939765274025230684037795937302516390547409298714892358084940549693166897384899280185398135407675461156862572165676132550519928279718660167890665718939738859613677230299868613785291743279179868589471457823625705043753062667816518532176964077363226306068950437560919738215215764116652177944002962506514038019620429105392601488121906977736365197109688735300473326119940871364560962234782975786084656720027534175975306820435136095635535652899608612511720125896776789220194099914733142720833674230651436969261023133188222717945178765553775745659996830588318391990918696168980598116371915462138156856460212565902913909378632437116047077630670459382497325653088638946052593484488387227097986768975268754081950408808095595229786194467972570106775903806619106774785342321901294548169610149258985551322961372493010863293721284796690685747270653261173847034021125459022922501386238435061832906147281494060879569811756865725266700670268075556570490569288658497676643460956342991930362820484012871453165019090380199351024832051527980959633181224861960308110789983977566927132950267568293009895140160918418237394593076007660619302594685869160304268442544110022471014322475655950493124897787708174940065659726430724392576267565216204422561978975094640254628969820533174000579202730455543193095397379957821098086296873808933624379120191047815328820214475141718477672747558755803912545681656427989719963158112850197560500807503057761467456240567568170769680464755123462096111076635500374536097156091986006506981657771916352994313939251989762448687819583208277774898330775437518421928051979324000042789008946909060092059857115036350946043132142783379625375949575374223393689486088475594894658644084207790566339163864440311340911044636899125352784568993692838337963791494176270304258508247133860564979863692785841231962569189271858593935037208703386722094777311674002266709875431015013009464856767927244144616225889006576581943698611747950278733838068392800949143047687875551798567190591621825807355832411823192997738487301351971086291882717826598172110069215942591154406016704495166040367570639629356777170627717860126744913363005800858565181177233516429747985337639925938007106298683187488877209977382731706175697667117059305018066580150604959919350528617814099986366496767621079617769891166926475087101292546906723559699888035436858476409024053720393786924939869513168600280237172816281172091591710017274839577314748661332176370892975215595003884467806591795953285277177397402310467333401753410748887580011295347727205624843156051656854647747953698768297740271966302112799695534622963561943391019683274846481277126382118379360513359350133113824442193689571410107979880913847031812139947113725511681408362029410366389353171454852826054126061663479960062240065019747620519253661675626375740437129768679898269074355438903972635762326586867651694379467340247777314446317762446758512627905182123285640079550254549365109928990693242743279369388597260416069260385940091125500495731344511193984324536621096428044464265042338421876449607072315892672642874332002202787466015006996035999473121580320744252643555483413035122985816160521306446690592994873262043389628325014975100915675851816293900236199351743628745753679813759178586312886508284169156499880291508749738744067506104099895132261617496029750832240411007942090274529162536617765332076122578865349541646284441181804847372697470982607806589845599273938062676133421886778772409799951855121782464783847204901710684983811713056479626215094828847258618174776469049877784583477827124174310015891743675723031862978778303023216464065248316786289570097320626613534902218839002866597909079784482267716665540454001732347779464689117955616801390989591573617138360762664575470995721618040414355855553577825188755399792448534606031306597059905242422084360092270493988089131099066924536801850538659391447287017325456214908219060981373529456868016554069459524727716069206563795431683129482767547828322190790079357839418970825804713288005816213303333646892960254254683884672144384072857520917042725132637415748351421792485407021175226593001055527415058777472684911886669953310093040059919587755437029948326122653005361283523163855101521007517457692151614125535086610586477489830473613507453426154388407122550730684341351457584146003470654444127174459931516414610449223556275575935455148314293350608257823004608990913907525206640636721074765646827081861937528788250859372999624840643138857520285201012616503995866670716809347719644513444993295548112947685099869293842539410637362266092945699946563810811856047107642810606746511372052246054043501510532495048547000088795645160335604094513859152778623573441615153967094524050039090797871343811318249718096338542758264472311300373455150495259749587547906655257642374268698983049715529245795523059782497917988631638059787138934688912325426622820891887455914141195201688516562607234127135922520835690065855329388546238143416096162655444539055769583510822856590834254627872823549095429362312056348994825918852460703042931587361280803277226077504281978901165055952158247067252331128259561447040253658361344315503001780380986154735872934574900174851375792083085660617370544573644799890729434349239337021353351892808307881816611859496679895190724769814704440004884765658086956954614039903841894463560482006054853434770373855651227105441264113589526284519309071107180144519823863577342085662101070032728563684563430603152413306647308028022481932675893785591628064729563139249234489429281305619853119716195317227768712901011121953066954277952585606400621004476873344325704396780957907182434100113804493779963274159462590514529251356676958110171906354694349311379903532563592990338679668892289574598315081606770906927550805992830126950855294353121169872562700366846069660606422188752137176769885799407339272806477151813486304720189688318830478918947739319891894070723418296700483365586466667280735442834035235894516179336291924709425226533569019656114022414977164752123116922429214769508670631551746904108822859028164969392632449541382145952814310425794798010074350458511725023548692801573173370514095633585524233238132386415876904478770310608867321132789148435970968218517650040267972854689484063615281232629104988521860412565499350613008092718049174065924253780599773010652158677646385286267410256534903831190879867410128767089455880101873230073626264898463920570556486940851342842088124259870898953406825374547125479183389046013440413806370911645068150663926289017594048207200305904448395833991788532160051385744467461968535628534772525361548452064272223059492587132301479833130954019162042909062517011638360749190558336545726028763088421801559130968285603996006738622075188360371101491429920263803429852029501075193701599976927161585082510682706984519223516836857539538873622621303541301238306258156282471296104992456990741421810232872372023351901710861457646607798920945491057530814958306052980841082450653288550950435123414055740978152195326709622140189546899241218231571362816002754075637656692205244291292392726279026299122166905664173191765072230000841316536884725279705541307474751588489080630830389925137759689452158707994750467001187795481384794325317385467020494706378974508012018206778750156623111096746717433459937291180424721694846889760226464019237130641400726352749697615805152077590411791416506291985295740309388947605376764194312276847905916925394370484708960761943762201388006494848155343707805278692698114901587231581843961182901052079185183392786248976606469840439824835729935270467397705554313788468315757572465617060422264094148471394393575823617075106305135272851177703381525512448480805866494577940963044702207793737314416207058453300293833707566883442657281626344582605767968517375276522914926943621082461382557729903489692458656547409973821560674422750148826930744925599399083278859564478184159064754827119138999965187724062968103536590094483442420292420250658034456753743866220404319333052697988007722324477933733783820730482745970105435299331153482751680181082444257945547003700371501897104535852353188541186400509061462105242244257877537702757491163002371578686026146477505304259557970107427858311832058435048910914219410618998089566175599856626745377980933346544799465283604437929374570872646874030892121155658680436610660969935028442992495530189045534502080973357274278796590130506869076915825474158625209819794400056957064361508668438461587029665547002246653901027192702624176675067336696035808080283663256158192422577430894012548134767659021065828274552586281980269436028457929850570742398989230365300085349389478112675663838836336804363698165296891327012852399724942474146277855085415969264546303120761014228081120782814974016370123163146707473342247281187002829758248800522636939751581813598888931361019328796826357284783292674038667832803982123453912269902210134574633111436577995353445947950529305166274268633350652309762274478016614998301185013500125120397943295979425060763863646001812144314270430883649542458687485071398216170364107775470295222394882679313123287889672191419599760286456375490601708227791493396577848717445302858841334470706493239135727060085730191212628974872806678178326238949958995043411272420113089076425219986450011977435910024787948556679866867749429832831965302146114856649805742901789435433887800624085337391131520350930962664557167254833294315492527890852602493778062733096477272015197479139497251830228648005951209294394826447376181794888627813385460016366988573516691786462965526605436339862545467925786455715278588993394403928476241493178312215561259779479638231252834199645616355457905440442881354839089061546793940868349499171714848946333044826332888915801555724881688434247873103423513668583668994499249871325215085617768178690025623880056674348092828595631185906358699258218268149874847016635449850129952182997824056031808605275031456197514065639211901945088777897628259222272692042184452813555024778979062881745255671178517138513344055752278410568129449027561026663895003265553436513611625156590175836638241748208523977201116173914613824538657030189098586868601004155148581080401753583461367150841246346482716423172370057960394872730447591503449292201575400419777222063269514547582120190175063350479027658422732747292208273144423726720110613736644100147339340407788080824720640062421460829431615472702336892053638406054454842819350967413525986050503956203601325712817510446983631728306052964415847048251430791015938654552557979995287457014416606444221747146799501684567648815180256321124654635495934088203588901574107613378846563061387362808477476848352139342554502241544786723273179153336375961945812798202310126454425010087563582773071167639443235807194630119958605494665457684402191680551382788290838815604330214239912071370305914619141415792374539853822737809772119716296892914328273300439070812926908737542748824564248346109389504151930427680565434584466151244128485880241527425018092038417979696891513053316068357838231921680702393020695235764092922680486407822936939330347611788109093432993164874280547405113018935664478442859671813879103641433926215313270585124265420434729120987934939545679654560239052659118638168921905688720214696956966144967995611166163756828916446762090676824549771026904201931504937362437665264849629058857027802937729299961702906039510922406165127528107642524087269556435658380179971691971936732249484201428590245513978729635040265699415106347804903012197543291048326873124164974515178455703357659996209215250781215943958101432450889676940288385791265570570354387680988968085447727623794333117673317380037586299919147445263790795456634809056429903850065110040959767014789275517676338977191434492054958270159253523157440246974798842757039554621894355941979422127572352374155234292697233188232336476462897304901897836618663076190540942063754480957393037605387099472265802513117539621309274282732784438847674041407865543889078928164123078026431871200611437187154942253278666650217185529333310853791449238416987383141025979859754683255470227367310833229314486337115742495399850059365000061105029911319665662319909878527438931933714362256182131703217738162633259522054117068627095593492842565225141586722520920095578069635187465223944552575794480976431597588625259720453442914291088990745527634550265331358458445867661821390890083243626050752927259084031296867525341863981294393475119268408222196817405626288742106356649742071285767475421534511250191053426291731691012866992389891297516348338070060652983003870639816120316075040850707167069910539380955669598355973712706353350760665415442196342005858030909292154899366995473348064475824776077886518837695137648667700709556397372702449946392264577203001833974576260962736667620016032514653979776583550464169433847184648671798910905533555813655015666207351692531041378099482245730022896958443001526839274578830383133796531022555393656355548204705829467095929429762967552380932484729767071306141708325603961738100252023314666700422874895114607066358237156017397320877958596365369715560128524522616988654172332500930824772260816980090225094816997708087715821390577492646235088170211313208667710523406928828461683494480764994447117572224082739252449946967797085321047941430003980599061323933298779930043109533275015646773258071412889575130207987153885349445775900274255763431402141607361649541097835600475914848064517947974156654174700810135214369506894998134461615798231594013856941397308890989000638594227373920747956044289659072013740976908163417269022468801692001987371956703752686960564541448279737768780678879356471762995834436741634964776922602863015500341670036346898200323717396292445996548051604141963302397233403227673539885899096384978376138739660916736533896717235538968116151580286034117529314218210296677139930276159357327665832849291382926692447352142511948025942061703272049583219447621798741322122171854224700045210798804046042983844379538569044921027252034312505662184248819645841327102644495286435606863358093630642475211817150601758741489185460361428549439993268837265005178057386732874250326005046742312392431259626587621044737937289924120627850343379227465100054845911454467806462920160836714266031965615822913302025076017252067869473734171482077814019522067917879599733389209952903559005154823150610822629999473340380520544331741095029491396013974749583810643629422014919987133565020991616126638321912640386362887011522917116415764694592566435429972829429210915970189402911425618465538357092777477590090660697434428766397556902869858940074303830241594463924867547537190493478464514030595264347490403379468238800126575668382683232847377110685541721202345742976078658468334027809775861245405912819432436505602008788306956926712592995056238326720092240084398201883758813649756641292791940622862783306058471225802882360779527577350602712080442011586919651903692205638418884068019011160811657035272102981680984974246289392621018762279093049829813658954894447812813251838676640120211496356565111144971830077989337292635935654694726003015257629053771063860252651253127579655382519275239932745334892250221630658899877638587516926261231851396995434789186020314421043251651372176383876162965711362939643511607478520634410673152396773809066573498199892841203793402181719678210584123379375132245203173323039308271687760144546262013073069295806754093486221603025603183757133105560554300297188938339044731110800389724207449878904348468932690518648465714793849168980167247482265382302989598665578901561711147351796448200726501655947392092256898875675387840297772001136523463466296051859511633414363305589722582728731702158813265895550796862663235113746426716214602438329950106518892695532964990096025479605019659462737074831507855507966933217013804823801804195740309231958666267773232255173126500686003157631133486362660172223191459860540880937418411701027540334307750806113399025373389095762862433975142370593215258670737762050207087211918977843362194885043851798446021139118959962790336341159903835747382130991777245891931884487555849595498720751823414206391915319729206036425651279888960303558082031713204355530981148868119119451098650462899356361349553959669784461635365544955678558331687609936003207582134567680260781791688122874870554286992329270120263927331543164615349758253076986013633675248348601990514622584043611075737115134677017952787521448069765793759603799937510290240113937542218284304432747408914329569589647349149348582437169800966735443580116232112361266706811868125575739635184370294649467243802115820514257488196027165431004326276959898646329280005212319969112152227479203749918150961032447487676810912931049745482555298762262179304840182890595915061522116550302170250198569809479135540886223964856471935396761848439622344580442076838380663793688042097351916093136676956527529597305248715950897632416355709709621813356544029514984128302098276760417707336139298553657384856963738785657239727878787966715068757441244912766770324151915989400749991492062158322466387062833653612745678773533756919229420812349986310418805635932954045031357515665544763490159405141678284209227233986702749636605683794549158552937168465643314436605332909633803211175711877105756493263313465211787502618413043339757124828092740700839806147995633827003650393131822102232612230491660066360759066045262473812077093010190004428781878937655346533948809527874639468885620452625520014549800138326133204427777396706268961977034317904390715266348374623979630228173445286779737102122597670822817116817937475716382334738066019744701723248458432745687023558208808954864742258362899317400771121764439346362743769633678296479157538546263656905794049799549060627931637160383309197628624522909748118346565219870960198836865865702542751570808835757414649224792996426558651230633512057143191516213946142235402415270504461262042401472093857413710389239450396553889699890274213652978300495725464805254451498302472901236686546269253066825340782501858125106789105702645356826477714838912786564133433705194591327802078541564102332752469366205424279595910683220626398309093925260461911364623584371085044153621869297970070056775507564025007965316984259288180626425255068938285150389470818827558796380078086179817305965821256111901327241688692617250592963158552460934435586384581497626611808222783539951354492655107465959924307891158380896450124761781526661897111532005903652982545955499219271331146977199579795270301167995928987245806110493696681444198950084338107431410259508273200835911131887563293753750115028287336521219513675807856515794626997174552959127596526640099452732316410587592776942986291870319297446076378182825942943773198780114282377260890381716151730521318753396625655814168403099453492881139207268750026218047054396334648370373806695166485903845360105678611086718064626476068500308979085522522303388376791071789790373504812401851111174084921063230719852318883806180972848653931729014019743988400537729879820314220641032995744726509481910586419051697288231630199238206409457323080447879430465283973752641379718625783745214733667033893672990712915080648819282411763468046903546627985420982431464342779380565831170185203664518148147236897477905982227501804708841404137999858715812948878113538738834329263155375629105052793445683953898473016068244127808237677099181198434186931868097796337799986436081551257952685041357584058042462678076030601956992951828221652046600383685283755568040510742453194788718515045088916804137863100635375342990215262622232982248323741821189110290867002641332196799527038959343007280865168700513554114110729240055306624716305648279972708786622485758471260440006653307622255218708185750231619033498025317076063230780730115000086925181439844728935489018794597724265817574770593461397983447597553833725676129265420150196821126606222853355693378393859883496169513976878848485991309010711638034321907631169593335930852921117737072229957588594440380290399730364929988044492870989552309125127551566314955932662662232611362193941623169665578736595467014149088521630664510954867196673036424206843389515795765580171866408125979753787208634251818240913754669236370857739394577716653739089180393774706458349455307814776737103866387915062794641292534514736515521281840440429771798554049009918646758875091449999063042111689713830697240750033331126761351867248800182132406082295600956683108661812824882307369063200323906243220998746091147116621804685977471533858525531451576307870247354821757682522040757877421104601030055352613418535682356315205297179052141841849391423405472846030078906426929050494432277705959921531907130723004792962869907408335851387071041207608534568771627972453488668792020892632691588210011785230790864102307208999789261251572732102000867594765645624231594808682676031658086906850864553255841134038294861931293579149965044529555996696254759930959623039215473106475551826371474821099632922880770300884325264859320341629147159995475595479069618467075529445537912321705156238846416835372418900547980240079126314251681352532658291970084949346217390304008597636161908649632919366295138605305906599487708207682757576307271895981956822815357671963532279902931823436359957499154936655849685947562591397089250621416647339699568267735946630494023427422359616313830903451025318228639296011425253374612164679910178237440668698883980255091341664151329559219266587077000682243545859755815152326243432379791263179787091698411701133977952793198587638673240573518468767526933581653960787581022245317197540359136815147498595405549827410331523408155750149348738468388059475830808770118827843865813618861461924089118375893385155656904162083697274484720143844000205633652962501581998760839509173637003464064474862374038138208023153902647668628463346863283505970254963754033616574206968100539219099667123181988851630772469900245937337058554740074369493020815731024692183136076464707989796797691691967866217664267605653030955264351974328254912035543607910588191454564509843745007838332494555389960174776777286402895570590035422159139922905522828110268563474341702553341752672447138860553780040785671257050928352188839760245627980374637357627741724157884575481248214611259839468274239511342415178887849076824492759885657928459522630025905337059152161376904101038647417112236819103158318276865654986121751410802109931548019048109537286527179168636286242401666601609337985489991110620308767306711919949837599765822359188971017378336361213002440058979848023181400376283765119015151627613470229236195950626188684309882070975093603529509912273143716485899115905133504234188221546643479271976393228833934538551334796604744448910403452727818913414904646536009362774760629567449729910035932613523980898423968612993145608001015309201899955582156068007706494069447906568177729493508199412527332945460288266402475468672015014189972280456983843315911967149302773457693024513602556829128945267211341222678113534666896554467351327408148356897326562661677421604518651811851413419702627102306717488937263161823894833674798458417154097604788600061525965043097709779835868117410293094046488333473017049697809703329167692702196381816071443341334267921826028442310932788854311790163429262268909455722474267356921019757980599435810189079985199761358928085471709568623025385274342165959619339140492674530676716488442400080764051421634751827590053937224432159330167477546064942262183078924538137933050894268801839384443223505322967793939772837052809204101668191123718748150645909664515882263854690528193180786742106343288342165177744905192607060291191539219713569854843284188766400489466238426059107233136614499317421493216893030452134774288920748869082892745342592996845132169442812580962897867563233091082400778670997071067795552220990327684290614755695925130480651408254658095128872126010311178728900855342084876744499359623233699298676115906166244349921234200018966821356916890137898564510675810992723742980389630524447319498958459594720319412917033746820964620790557590731563804318483844628826068659669118581761780454585513852851219767592549391638581427435060178999829985775715150330819559738738328421827826592094349833841663703504800199033419947913351100191915980357468953385451413462953861073882937815959508015609581554903535224604488722985008176302745572431046095455974584960353933354682229082460058380254072773572045317590874980965560550902952851936822604575818457726515436633566366010376494930776724801130174766308886176854619682399088448689480419343222750252701023123889882702683120134798765771798620122525453584389452225893203262097293783984216505110549283867896577232348243979583531826982058521414906691609765232090487898434391230843994791671219649762966736409673785119523362992603558261438292754021869990092493969432259739698600039063328253661568846271137356129911471902770870671010826824794861599357850250115142989671964584945284496296868498689842411937375555635363242262721509193069777236172003594521775015030813119949648468882597944007043660757678074461621374802123236922202755882962508912649778011246309926891655126121686010519489283802408655593270510519096321797775917059866969235269030730961353686653441549505961209210145957091790182142988790635757898472718266271390861308667519122644372195284452032709673088246067996469987945472394213262916011510018390396058967482150673642781399806848496200183063313638483762974944131870629241492342707846096589282222168737751796744180307060971243222504156672818816940536399759256033494842452497407880990811655174230048915050352841656983217381993376323264698905778922186679026305288581477097270427441493515227280180899390341373738438458272836815730485474597884171267105510813215732748664242165952185343350448685327597146932385194403235310493419712176829651407025714858044784868282841680430425190002167595872245032307151316103364583647534393575764348662853070405320247397477131686305277737617664406231903560130638577515903549310378414611990614372100870572484392503985238668049307078172196218166219878792610735209217482851139399958039083659124859859578890007530106826725343487834350759602119707691051092288278642701197138959125080528865047287470228495288914873762497122539561075513665526134133352598724067369750734091291556489356352674194179921866855795929111445866479821548757437072107042932372132471376499436441755459337189947702517089030202720474913908265507533320096253675798330641264923321581724250201102656448193919294113833212466893659673932119171877563594394770917847751306196603039771415323806715011053678224732021227271306915082905791732711155856480027631788387625611760425150223338685370754725087746785769029513940431026186646011733489493118233816935260228408784982165277668890403201544390822965876990798597308967044370667897334740729458680170891517573521931618935833645099235120725551226670074309707816063985287634833879532245688644562928419456213681741590888987068587436399084848761125211896973911907973485724910025120063005136352322069619066647278204143623469459314763925704471797767019075494965125097919444219610822873112211149841691691411451358312886117898377356904873136309212416064964275275013531016564046995408644591578868399395843415003050374887990276750967910503339046637261950280265430262470738057681738843995105259177838672811833904562728625981026704195882407128031116595742149203365106838216565562869010338735227121320316113954277129687534279474257602364160939049241147193175197316526374452128374003319146605941306901343677565318706403696914412256402626004744108190684145938139351326135207062522590832094597816499470998111669198951826440781407567797980327782450065291860148136685656939221033085765858753948790090234045459143731778247534975345693516433720989257269347155869449456067830610787817054166716443366787266889310081833065778779459438476376214092683399389360259026717165805419885143268776096179815402056900594685661429405678975331568719116892616698057476319109913165656483702203129812778363882544063010847773740805388682619029627439340666541532112844683208535766533128046304688411381367917568817275555239401011499772757790704928100596344379746160902008569585928409003944948400600229688202305259179833241950802177704994262930226866859718923195256959848565402850482560411430056127028393386410642517688522661692903332975909676731094958295806578562643284388535300649665152043287935405477183732224115366634740366287915686884684771473733652624832047818249041716103008292056432399674857868040390905557785110644465603800569895197696781775383561487256464302320557800627182140864037295621418170380430143977494127549828890877378237885042840585631065693230574613110656370780242472419935937348781519815194812091842190121471728800712544189560309942340696709063353994382617006910253302485194135210618462268751431556131065618553937677531267166219873790502592713442735945481572517920251720305462184350839196070924678890072463911907294190946586231560076893049867903054242172600417382134679095511507673878219063845991183428906017902575871434882485130933643201196052183807165126573100080597994481910184656629173620054774651632132831167442518571537765727946668877572341307370323333345311318372733082051330573930385792928099128875070704971739932691856257126818222375435268980880999898779812728928877833361360229722148716242248000962558659637432971781106005475961716978119458572325155248053160795900311896529031660084515469370149803660435287779553104211672267695735386162273810746753092655422383217480435272740386143817885122453801245374825895053213097911317037970387520084052314397311436428561392314122491192003309082896260859003629953483547644543403027379993158717030609387515867415430550462714040709615724341740233601614472101075318093496053645104076553795599687431570953736829278593333381151994539784888217695332019829032836814282419144944810512283913362158022694618148601204524206042404186061105763830787628540147172520091934379300581045942281432754356320599469638838830055068483575195160474498662980587150111815536723082469822066606515205342644088362107669253881294938104520710351205842018310924833375821537012490261508764183501088097083664471470033832424433888148056248457623838541917196519655167445400347030981576937529304098904762779973999916380704632504293304035442029224599868729289233946218683691389986045927557455208998866195526838279426032407304862517571654002608110652781199254271006654519066856939626372878625423204416899755811444027797008052469392249580618671684085996684910785315102091861151145257785180883806679771478859933789749386611347833591681411976654470618656404889234605046058429534720832701221379991670825917103063261584267436975373006054037860017066084214585144208842478610956195062874133876810583090310412186039121759486419777913172821618774524656755403190480956665234807256998506713430981924290346365139519009114464184555401304756386888281730081344127562394347739257133175797947068665075958706617020204732090958104204659770874562872604314271376929422356828192377777083986948117442738830772329822133210023788399312178058668097018790606132663570066310848244070759055698711530051902092194686423085190716533680291256395173795774926769819982499383760671310285843172449862734736965832915395014617088767876955760280690053747998723370778476190325869643918625088037770708299010358813646971464964216480776807569726218570701844105006195659323332966905720541612028485317965936512812699233478297803905669561343081503470467852721473175449873339974097879065649901225365127035107903701090476369085691380387539222839515616323997375152265731726030852660565537383303274854125969206015431851412693234959810255184414023930352565413928232937514183882934819883000435602493554635197833398738769392048838422916398654970152003806949246919088289015142448580340291669128034971815729171950809908460959260509509134290005861639623136391734656994321151266557506391887635118601472653610900819960347200442035778992440551046032722063242600859621752004411771542099137413961931245016376103491466305311987676009039032447344719999701366604653656469109402723617694495753543768506618109678447369271711744827722070575505917825204651267921479072572025632391371359303402103366084300285119620954641784871863040735515179193843108897891908140869898043973250542975646958581713594832002759854505695471444129951909109012888153605976191355185517682198528276341417652833509473491454972722047110355235422698318747563940383378733961409323767326113468939142011635203985470332347595772505164961887253177902866619745808749456192073913839095139280810156352102557508421836527785336204084365069155930817841591942206042706273383048689158124836478879456144172470122275705839738102567381120389541331091574817279793957122065711843116257641724877051708220511047881635989790947200256415856995307528659821344191806578918261570386170960844442012261717132394972163660642022559538515498305843695235887892763002548646115828905535012456524104698734143506477148467791951165713908747578029968912511265058639078260996015789778443304988811383169640730285512482758252168340088716686340002416175893873129855574497673087775392226945210699248559319513964104945669991276784529851899922406635150239865291667997805033509344695346733165479745070415207189277119014193335020525532670468349150172111640841241671263586901938902265446592094971103617633033024044064274124529106515777355965963444418583422069970985174020487405577984498120489969702027787387137767797988491593836721782004588873437431402026149119827607002383680358954791739028057688287085264477048169478816915233741389285893285972022189411694700433424007223806247090544296766048056050175528954214608944281774362110235146185103655337837115246072036721729473286948471462045204775977385343967058174745614418304573379701532415024650883669647227754398288834091041661759243205296746474480107560733264012018536877868072853959243743803671665451897700236743185986056682538168271924989451964577980379373501194810470767302656714592987078377215212786702383234751930903466450683399094654896090587386480765409909914486607594528940135821176748479278812433911832817869801155661916384299012128827084729308030440297727201618834586195218083302398887997180124479087769148979209368024617923078137931432605500648108509396402207449148748913699086072508877307525956867129211865135781822608381863999664557700350963297019331384489644496756024302621858903299372388464043661681386737215310871702879644787922833619345207514902008840925011857363808824897734338970426355357615324030362227705821684095588849860390526923116557853262489607101194089757000257774121240780781353825191608384553904655485015116578926356704370765468357045510529556808665873005316677579901807911742052527036475804631724459390649565897876393571374576418374218452726243028716189614974554031283003251659648972782906383152783218582613526737561831055084037416912588312227236320492849889507532467946054649952677369184731589053517842030342048377964079918301362289565347443398255459231699510883955931652260518502199027968102879338855237273884050337905831086356705316361028376296591071387939688514261269513429767497431974480541607059316992970532644129884107740870148896220579046200317595521830665401600732741798684302413739126288546064851473474598097978304068486489928979990314426548820171994110335493425767580599097176224602316677077247121904858827428623426483697492181238400520969245086437554641408232472792695181059476790667429183633454326064794715731884498556796691555719527252134143040006481753903250412002355726317063604511057890953851859838970141952122323062613060307672961605202454737904676015039553249420606938047682490047406506048758541163682016923934829027098585605695770529271600277047220495874045899343755470674231513414986483710926944420931007769432848136004023214792306850932858545270316190033657022087854743759834961091787634006605115041067524190829396540646351322116132196276488731854015048834678411254828527055279413377480967567596200608160469099620151277920488773643453962277032959606611891437358570917361371917070140895124542078496505166462231822869481596311226252962876703783781042037272743653070631024902988341492671382881682755630393979409096366575863897550843031270995481413621359909600036724502166762697063798544640859549222857896937198117164699493269153128626253894262873434816990947729593299412812370777380715118483174078822560466590151982331292206920370245574976551932790633068566882753715769236717199755519323748855478028516377196336725790251687843929132650831640958532691260745411770072307281271821610023186265851143205934337983674926482252798869142890983064286551906663511033231461974211115449506884212756293568185313476133290858850804118946854533499111795525681348732056295294292473997742002819120261498533101727017320052344705220312864146055922369902753460431432024092969755282625436195150307589113738972742960127594648919641662518640555001737743866703167829363536345039327678861989495019392880924701938875597235384253588722417078388373877383713121890150774459462175958308940666575519348546846308164949187794544281390192698701034853772073049794593086549180228456290577761413683505570944483609491671779206518849185532744574792941946023990323341798754293262306178470539059558642283073588874410980001201847656836712521507203795666798305700673317442728912035165102648966639288958209738396804734106455434017501045788715433685060916106516302076293167273816812552550434502940997065278176314162728120908300708692558685446917942743899644711340298527811740919878120010378988687929711796842720864553572773802958046890559787503186177668460383288270076918282103678032661686694886469565395294896792800180800887997271341389155050465815575819703336615180054341898623923168129089667048571878718022710241739583979308061179690379863609070428381351107130795015861940741333468865844617712588230180589032864477316897336667466147770968414699881924369348063453261261689467906419880791325456916045949378000359925693163118716363855720732171331137167731143760236545099248023850683014140403348250542898429349737666649722031804523761182171578228461865276961804007649470907007838670964609034310369981400540425000154505552277578071045782011503294833850045964222971607074534483820693562897674414278445062150242603058547574292726473977597358055662252198353713664791822345616880152238557889880621178527196171529836258155043124929273699146126906320018003161928281964706745162320820022228595950459391817254794697373127383220691341422809156939514219297310724571969828920866842439049193560822852509644010132330047733550954900190607578032623271320042511776097082055825324149983352056315360584735505253755969283873558335829563827972004710676005658701497432407318365983216306309707161246454945923010634840666277049796651270718379604905277521729900082539924992512221150454439903270136360195245406970989357664215098393011005328929433332904160581312877382403299514881176852616351855908817638315073750975692450146640233817954470330244733190494779309393143218066589205694101523341307774903051024572241322411908387646983629398463914531997829820923568097766202038471744111597700767954198644518407821610122617622902697372532285832864468750564869020805200167469696993531722570154269369918717383541000444367729390348748193005701437976558337171663843138766712456526237551148079972674764585729310226907008385444981364357912495235774398470210107726287959778833050688618571287381983018811371369175732711566062744768970011137333641656687616052332351851862390665477509866570524344713322360775440552637708033825550902340267914849800673687885643734704060743875575104501451192809564698746836949078397360205618369140996682437242660455800014784204448190555661948405394153399296744482318789197896377733448167187679267491159164797633328855705487600898191880234537383645596914402820577054506209460889896912076285984001185491707980307163764079353824578388364593419505393155116243069847999853587159657742342877030270396719646547414902703458044305375083805325839732878734723170839297770044119335222385293590462659336517643018242639042163969380306902771181767051540326083867837667874125672717078685024514498893914631866776584771847435836481888852353797920194695058681425381300921824882367940943357836227320119693443047070844409742560421671513188140709801105872231453882553088676866610860549833122470025133002351813192265214505851849087800968869383481192295296912967804519993805934524490978069085048607562346169691838793778342424299724375568318047190014721694315979685452631950497967393210152312852539956427567565118146277740963586329689943361820959504713543750079058438489026899541028707103769501563576232403721099310402172603683081719528187690513019882880177593522091504914964289997172561180433073864748532469935459041848264222419523657099573024256014276429487996311778087253269158442835016772793085326458219273962780626353501590609721567915528917250786406934737987025070434802125276632515069711802661984286257907537449485402948442785903908085583852759339746616139757366010297787509890599931394503803100060838423298014441594903122437993045794971851712434755401325832078517492649211591524982657676671664438251974885442589358179481712374232557210420527564913249021198348018486721252532118675284602909004935677016187082568658881385783022046022482993649899343593779041682204976842079281751143114018448523902459040649206674446512735173492519598647606907535180973545455481091321485316527911333072862547590585671379561641148579047917329453746668130550466757561737031214905354450374050845463924467190531597643684041582487695629858426061930766726951833148245341379811721634304034529905901855388261580123491358502927940719821039914297908177434412911967187499038875565803203593213867100609156002204864674233078102236706032711158061523130440355610521144134582342904693328361856912326040721448155910765883610690776922475717979051848124215679175257181850434613889151079177477889806696010624279043012459463978797559544735442491746301720439017187117312391910673686426129067226423622418062699306601971876925244424345172236286079609012201731863966899414389878893215691661755017367393571420690115049015822751937071802041977031721752520790419570557437221359226667733856954280027190059630938642360322017977128192924893993997609021793181732465687576564978182123770335676410963915696507875084872204970245301476457768844299519944545310010019975464769786757304805735990071244403016666389061842181903383347964964091777318223631841091051903393844426290858795893830007106213856484833350783318899255141426242850951122372243365243338510773144970914495671143619658676850508435613612784445575233546897281116435602443301440526736429587891526873022640358457812256019242909897972913289917945573867739917251306189291678206583328839106119824682130142936191146433880220068602956649995622469202092477159162655169082482646695932299092739726092477267057612230636685844444040591767623010070854191851298782341083702463604502432175999037890627341344333608385521406858351069551266032952436331973920750292064218826148371667677573070126905881407175862346820983131764891488516917259159845037669462517175185766001371774053790862099912870675161941802839420710378369650925628107385230117902708444121523692318692716272557982700618967635089974969190353073332225989505001087518390860821132292001862065726552784275666870157636751316909235028060752003334836637172143497718546028627191923470492239726146315987749060961946135585340151962930221366306345106745845527873326153465489393741207619303052416983338264214731935477330550127621134774240781116400583918991658424682837048534925315621982433961368457091237028581292743783126807699820093331494911615218773971030019604124230875181855175897570725509968015530169897422505713760411973299319120554580442376404172098155518094628970802263260521897779380491777513668833346988521070543444537196482968154359703410693957281582446545082385891023010023940398830717800178148722072010038656545046994239529219761606623906273458176324089132181729271137386026655653485067191539609975760793901720123079613509205244021372529722718078509113533132612189752896335717777527321713908565836506698649225126893877862692881229843135700850886904390838302530641089576804420427441262589486793080082692902118273243945930388222493877038039168611895649731581053458753050672690861435056631426051184240527424277294031060299267859187075574676532472667890895684040172428817485393477828553590105362194131555798256475241858741110091747663703946185038537560490850480778687360572096967842471895726686116900866453048380717380505074073388167318548971932636014693099306534777772064212579732125918992763147786847885067441682381764656003717534457127765650241565700864437216482648218368671212151461451153159642541246966499668677013112503654782830218764936561136904639579762907361582723895282558591606777720685815919376351899096795299308033368260929876225075474105085763888119776392025348869999265860947140213950749023451966614286799638024411934510920920219154076638785571449276695927407622392483374981794435421226228887126153730629080461851858643988475210946898729238318315095882399971148539027675180570351899804200170428720451058059558153875033377287976667794222497525276075185317011422237314830632083283607373605520963139390643980920189563646103956677464736673391094788739325552458728282577302204949476933132695372001332220857649943354241923229068028025737197138853575217978898624996646922438987347800541625307014873732273254960777583249408248715299379882459590425213693036954012345598527094915711096751672095486372558886645173609875630922598478057636033023618402411510820171817285194002303698618834549174204660613614700707017071333886211789278284041118760173707862694864859646141381756095916569024927530419397974710839286467013270917434572271208764194996435360512315233243585199968051327159390851980893430556989566937494788199109179409200103602569882933385439201872079634560210509065664902628827457001776721545033667291283851606608547129918207246464308924890376257936259069636263955472742239593565530605737008524856675668444174377855378318449731067732818343352051612012268690035399416540476133540141855238971623796690634966658339128194238558656941693542958695625410158821410244641367316282093435311404563652783197286837667958193266871445990657139325984108426812082769744550943895538829055131171202526095941644633299082777833579911902001689205763480108842899627934261516084817149029553107027725351197863293110108723640329427178680748633380342176231497721029872542545829471902513900339253600674917242327322371963707344206944067949250697008511535089638929017229927164507689795056240247083607659135202304175949109369093106574254917859251484106403960070634454306734786156573215775023935208516078124858414840562672710531887425909239923956547614958673880454093478546777822851678443501622962074379545585519511918889029763767441464968688004388424943151954801814371230690301872033092710613085997455192393443013314191796537393806965240225669124583665855916975396258654918053484063338095330345942655181223266500946547615745089026203787969022621474866232301236908219292697602731010319008666707148747151437843804350976742186423318436670849996885545377877383011139734534276772096403888526179958408318539317216018735845624343857965549285936562096691987555180794416335584609292284207338035226773481661563979072055537587206309132042494277295727005429158397313934060624891770824391604420848682250088248753293881757288858298748919098034010767299573011970327857504594511703733914293423166284680684264985328240542768161423128600265166020335619403360668302654164042408864634923846793108581657373289660022048824108626076001315620333339796393566348379917955974550746715005292383121864879746151458765066041457719829081492315635768635859463167225444303246625924659236938866334214185584049435605780238180717294350869020862207975439881868820634578768689117663874004509310773878911965909452379441227574259209566641553903394042430027021991147486856433954237136923028911501768420053225098572089381777279478702188517259709724639645026389317108758473788462389866688726519383849587787928940653093861147922532313154818261861059234273952894285929910677724473046130699781540141943788931401034304809968738616648852118550667054739126855823445981792136390162531443111554108487577100231701862381097182972182238429890836921168463062755302409820984534146600416921697730483328128741946242341248126395445739055525405578989544156275245489856526620869035455985456509658284999739329664698981430173063689303608377654241518372577959937320386925328791070890076304559810815291907649833366690233393222973055662957743586378382277710964401904104409726807649400662191500573897324682983304424409469639314201107999310827496222628574533003272094980956565209569376414588514756287074819203959165443891222572563313376614316190197505693747014162910251244601540430183817363643042787396460416075992885565779266592016376285113998575605204889289335494724093808663911193236296092165078810375930793002231619941417599884786290687656804603156367811344438622461634163853131808252568488660014406783692927876418839738092877647735631320751044093960942031403306386720421265882486510796332703625032711207783562512962977780286106200130746748989848290906643422376477265410641414629281754825556426006274245086483032208731376359991229005524288785340251877905547286691242058125798646155949439515366569235216799689895690335661287974151562989750262019023715546492532035021692634881176173915147207337209491320837366411267653068729885220236933749164565485792157329643777167498121047656564106819503176363820083500029388606896832101586448518591855272272920713131966163282611791682194304498935499567475158253330742552701542428739692123129950952006614763201369301495610216200168454071406330932701973000877734770232009377328565650079532163768714741058059593627109351091314845942079938546660693581586248057792294318164971229648950629483997743729116154461880111707876751195627692627943363273521845092863855312301802444741187635853810051593314969717450228779041205628432436030857194972893756539175954348457955786794870333153959161301910279112214233409086257585579466978727747834697626977840519781741284072260954534556123515304853215446715638230636786620675820927869423548745470031377954192781666038873672399878629702197933474455772696475697197753156018155994005690031912968982405397834438514468731025712901061926602859107172273837853702393482720823457238974991793999618413013561258533275289726928402957585960032984590933211124409469276909891983740944343383276049757955246380630754996531337743197518869689474789303526498623322640459073555568728558352817127059600669775804182651097750470360915746855036922314544215693725433088631175100403670928814464780643245409619086765360445047266089777028410828653781258366736482569669304213643913651823719002411796859041948936225707094299057116526079380480472573948344041482819949386842881231936670264222200144024336271716786978005805993069965256015032557021908287805838647774088435276160743904794804813240145480195251346035927846902984479600108621349963382425296522650527764863985512790663117252807906563267850447389023212100935402392260508326569257339510530519908343623132929682900456997872019507945509916659979394974396213907184895537416968558086487370141558978937804037856944574187025661295616666109233890640687460625035820892308833652087341572689522408321974108315948121429523811484537809294321521555095565665658623546308322914758363310270345600607143750098774337214559047306758050806438181027897132550411330851351912095519081581934052401733786241182394646712740759799671622237584094681723252026414504597744829028399697423034640338105702301536859725738185810317618368252935054210243838557412458499668146037590441855890407582353338459829345725212505363157479759418200897751058590235142267316832768478026171030347066367566928826077892628218404376207721316722094483477476327640226048549714397874795796135018616616370375194108294058454825260432339698864363601394666219004267544338024020668543276557196648708643067428261493586692257037692474823103315012698206025738438916913135245549202793046896213140679352322861996530460818255578200781995835396479164699211254831558992641905028289740454226179234899584226859543392944477319359412459996704617634749078105552115391359382432490042367663878558024225903442744492761100025879305392291045912051962693247031946891217750714245289009702218510508624851945531090325102356188697179585594998704986716578712190167849408732176322042491568582084127165126233110504717233377949797840552677801024529630601186335279105576210812146872029877406695677555888674324467942358050229884572330950064194542062837785023868556531824502585903141317485820873744601659158023723791251751845383588573113548508962351951501622860832870479607937107694276180801342623936346713360107417467078341031714868495372696439611866481314000677323130081040679751037993592706857001282582424221992998861517095036606796009960937973893593788576153253866901082602900477166487103142460740857983949102560245605556978159871296250680568605498635181570914415284846991704511205470186245067244261002480630068890692886826420432889558353962895794275174405131078134914477408951803462001750683986639631438127080736813288406241405078753599448731599649917239202768022983010660202201776839138877556440700223485081900078644869661865959461496713949302347397766884643251402814437704076351493305582291756832186234431285871755699521508545293772753578612645971659639699253860318575469047914022293655306784610571936208625165012762736345309573520010049788290817147980831791893754700744050208277258403084451286966011842873736343470650322776655742343729002765307735477463669425106393820410409779104952660517031741487264476978467450223799523668804951551312396360872151708339549915215969695983838707641664859331521259856550934616444298961088641148838626669709755424076947847527850378236021923582815018537812280980899620370865250407870184266792099972246114951247435552210628649071820646397951415133757118994606768479532170996255904292369987879846364247466626054939907529896377215563068818112821006468958970199266404039373918228870038101500026692495835343752783504149927527829739908458274471048051620762612013959136353033860144355640850297237165360063994315669512819281365464695288688683347912014742516121339441072823297516046768747311523655481736459813024364625671813307706053493528085278619160147946766145373365684497789540743703782392415025494010511985212136158387626304423606651009043084512094365912368617107124147237275921787087970087931042567475306349243968389413743556944311712497498287225258097430126611084616670166334226183498859668350941766306423438187322082152177859722924741504011027990541658605151126798764476392930983991362031435175440363748666332260793217229567271433163014934421863544114486783013555790299326768776095316964826315439374735756806602655736197542017585987180219655649768941850112993984818727033166941125024976927407011811619453657306273217623645846312684011567757890108738607733911711640630262823196097509093866710893381906767060174766766873914668113233471524663966089172309196547311111614059193626643211992367322437574525836666760150027044178106018672167018691170076919280315254859568756255686454967034186439980709054405201089420825255840320310638601623468976518458931964790532356490666122794091128171388978224679428405977612910638484913775993007526923609321273900286918201483290896028925626160963357644503068122278627033699513671979201126888273287615841814378313284918861604856310219865052740560418614802648832227301515761044207947524701549771799860359382751926914819056324856186065447730068437352675637808063117960139442953354940258214358652043594772121860985827487843357338340957091846861673978494133014192403287669586320056873345013396102644078824274795705377029972640995797193271611410467573075542676442060655136534697249514178074503287714700810201379339535608382048965878799572501835837371484387880040867275074616635486451440461476006441975447955119852939126475088831592518984858873701393197211810455975295028577767495099809251012269218808890234233427225293301308087040323762416644757867312323368839567747509865717305143610363698580807131658027757488654750068212183661212915460530050200281869419284795243842308052880808003269358619665865356274780496391276280091507721806340759796583366827201777343061939643197295061773023176424246128878714170203550496711209536996454277225306787867566650565970471436361390219553895873339132570184704780427742726866500686076199377030429994174926392003450100660272912722888092814349778282423582865699985697352925024923895144352731305446343197583351018016216053002767357933160194471807581330485377724145436396332628400131663725967748852125851717346023088183761870525891090205639962205906990493444194586396697458725534743772805259476609823024069600505289218033611255043361230594320202236656278698455736703373739267839778790137467388482815788069984148877323826594848649645256548778155035045128899192038195956123398708193078247130352704750434953209344880542555533430897048543914279479577149602456793863359785251489460245572910612255228741110280984959239972759922814005512548429366720940839566497159480818052428633642842836770422356955976426405716084625805247977282261597481262586957248664691642462952213992009364398587113525906960744612852958733530604056927398862788980775531472487130015556328689287220558497827266452033010564564417634461883773384954652103255251507230856992940905913387654037103192493942311041616746471724650903025570188929842821383823038882785998620781114907292826908661255484121217172647069000631013638964159498305864834274719464041287424951028078258725080339328399652700529176032698746719596623551547755927905459413021781632730730936807908839850003018524325011205606871977332727418086986297871833985333499798361176324625918265287633078793554465387035986637055751177365825291731981069384101216581684177457886985845215320276675024826408667216791298070085106093771663669768923079933538347684783486945190092336896674886584174228855365982995218500225291602323536641257335191261449905275851278629459869428424782732239235148159518578940111309253312332120349581427912025045607071799778593550659654016545519569434673824238738858899935530322702006833769790052756186357036189531169942745128109498093412567367797811788620929086422494683710490917185834973684545609128654772534404042468573744294394012560771821379908888828558022362154441569482439693152369115896077154629414247749058252592740950104285014946626170194823160942613082949071602177728365698954883114032375258434679125118996745455988756964851799937912409489592337622064353211487999546900834414933073764241149345542094532198226219364977107001065153456198609105853036477352120209427743012958741439659721498308959661044932762799020118656803669033243004000188694681401527127559671444140763555949474823398344030882524692336942883968134833832825327768480855964251678186055968485017594044848855707393862684417076402621459866403045252117157527145993984783511794164155444058306328568336988516089284540946306948109460588700698093564207204585050989224024018821348787493177635603918683691110569245213772479665362582120444759325355461747405357135644073020973005060256353542417518980698146793233053701380311668329889059973244230785604600998736931130681558974020971102254335028638944321199753919452988866852620421611839688054564735400425505248124691519352866188405819657365222969625904164643108526968423174370449400389598973124741814063006381647005067396762162133934589408682535218036469184083925694625266033897069720101119530629378161020835864954985608578733517026630488484621235204511054749468294658928427743366424184567803991882052410956483642880550745531842049750601777877469158334267282627276464237999914863371878482436266988000127977151165530924810568792361848949779256883266267938103246535299336001158846811464885474458548883158587809843751655885080181076501724948767937715357439547907451096896540823955481979967989791811278799287581673111058379465973783148265627080753263885036957095248877507144660396099362857389402747756461127558620182790340625264669198107065415738734780653516731515762564332724517400557216456563204831567664125762231170934852260386606895771025353649023275650924537155776586464171210840219360859307295280622675414266125710794776887496296548169724105802981649685694622818605398973215770232965568805579116824524171303670551096599149761103812232665233680321351054930872440561862064415357325150354720649468760647640259769529100106114989071026240493187207586376262954624494035832367015785758087685502724803752494510388681071751246078672285747629594823904645363052177620627110438959870321229577402161246031687957843901752683027214558907269065818900249489790639124260131700955352110756933881464529168075264396480029589200921023634882478832364984447801835571306646715916280755803989412036225919827234600896358656002985497914869550281056122583283377554680965571037091852640751019162845393400346828916050777228058613607844302266334137029640245904219546992156264520507202345168343802264907275915557393649908845850290491199754431307527978224180501998736818543633294786299083308649457994714351013464042591678443951907493690415754628424903260646850939875695601365584867031826113994162783755701422285481504734523058356648428875646067046463401151693333278592528466641247462001018529502531967364014531128583570816553685249759482046234647302228466705971408435324506273694891502790060902238901574034783534449518135963052313957493444166761070187676681382989413531630920790710460720086709051329910970423680333929419204990902155229415265957046171878776428475513157760174651862263492472664253492113028250106231472101499351025065676581117852184900111510142790065707679247552398451408504087574990340954150742622573792764695810147457751234124573327089821628351726567703612788692227361055995751594789133319828450230968421066480679066892033244120643869744896847583027760146138909829367929108836739373504027158284127385065641987564480654595772730108925532780813980195252272854292487977640955099398395830012444141045637484705827099152096341832892776057599636269252104580588517229793137489367804299312252105005333981530764746541249908585747841350705501014354385684214671980306015257434138645509724808286172537610250526321944231053082494276559635899887778192994320648850938363632253003611092998215558865772933627802044589248575417274382342068397905788918694187409813086153723846437691123167697975705426593806924233742315347491131999689395471026432777708870130819749125011400926341362146558243668566373116941524926742289562632025009292312802614539731070841083678141093443880418494306629447607002633710755051331708585711706707543384461898137607277509781246520341015544945555894883901152265264532413150512242657543179204185304472032152555527422578992314007143992092093752795068015001897420287151513217822023977112818501224725122835190915864498602618650827676005929792344541351754828354981445654018778336892144587885944183917715813657663453255062360419200492387022966380967213512854834069650487805209253643636909028576632772466302002332481228618735700198990272240089371244996491647476141916106201586686573692160789671564306759176409489371897684886149006732359507704998255650725714363309484120359297678980574741154670821026500266881738642231544471284287533395188804284564972096677762222866477849966150783646692127109974972451883817557272839359311770670625541632242045162863574107920713317262494832269164498952646368630403225823800075319546322602881050175701167885672359794503928306254186164606989744986041374441842721526874597622734464968179406209565939167431718407690153050307936526810164313462370090030632503316109893750067642279030573144047087420384499866812694214812989830881891902631640588877469148349483146074363847310962704906759421583393140878229185005603309499731137362223945624264381586700714429048670691337342179006959913303567406673569552172892437592073970595522168091171677434883474508225590925505792978319266673987685388238902909483215810237477181252819336326782536764871905598056609086998885638971368034397181950506714260064374339338625936581164449302281253175889865087363157062703626485146944995564345504591638343150313132927361859598119956762535282675936799072966582505051646701045244650412584660083359297673178610998957268102522815064266961663188690234928972678930958160503422181270790413182264859966931885075573505902617796968723419561598890826549831914469034424780862169510690976148703683929903897298485812882426376554943348075239592279823410854162300775090026391834399483934842020580193253169973543004321233222101944091491459511261010686505403407929967533600539547069448987652145450118297782183995325772527927268445918622810559431061451026587242735170794588712278406358010077497660959212290969316466320189596417342479446125220191735485630711234312604101307063431759234284233117203177322943559461052373870635279535132640994658502962016977367092734575241064370392642047482237103977346801781333211897759571060327869315959169650874460116920667016709393849942828246309484643300966370415254467853034002021825766078198054888980866188559790124561177911972680448508807196355209283635873893889240276251536678298074605622248683893407138889829632128601763148238961843499797046660442134369711316750578820418313972704398248056900028005194521032579619728475471404470283117607594737553252273069885394499229062852363498443677299914450478458241964980368047313244660807824628676133218778507257416272451921276002053909942623600455713061737248689511516983551767288243784424963454570668399216922025557621101788753287942583356780299370826690853043133849069413489925595156181939251921703586417620198065972285102015431701394820711475969437584165623731130556053056697574444706148269936739348202965413689863209733184734282747381705620766492793867593358693750431041242692596718526221451793011247827609513898699616499418665440572004252705464514067230081031881765424670198551354610185143153092145869095925912336128498384940839852431832585497348890132656263128062368701817106190934149297596381500184176279339926409868582988273011939800947227446356185042514655185257950272027848800044774272451592332679565679925851999418127006829395839312641777205758559044578562934639415462402832587763887598588713780021458183295324518004706896288529145411418413817190984684808820932322108494352553142519691566517995627012263125532558109579219726052866575585053257541684004848535328154468496034748976775520944115151639162866867784156652271064523674243581329365569949939584817879912102465682795641926157691086905720027330426443136093752459528520625857229588205323550832626694317345783078382879666053958415018499797215898457829778424232032920029569888104165074739795882564538198941131225685378621911083197091683364961509408678764147328684405915387098744913795220833101420615686341272004664706714064561538054843276828140937998434894607112882481020706442514607041310116468228958833279968431686084102850567425132565387246133942525995365172021436389366265424513516639451361762866343525157226630449373849495294261269675834417537510192147493037178895100921532253113163635503313480951216547516939515786761046091459310716445270720784519976641832629818241100774923143549218892640679941868959152072796025386732867520616803642923428605428190516207655773354722670385551338050703980517764149986633775582712031229244327255663770702368207534793667034860679441744527511132325338642472368730319761641357230519240654754101023729708514174694416538015214002853689983025069533178942245664873033755909554498614522296088083274982228674853475813291279309531272409571817192188930911794571992276922379824544371537885184137727102190439009969840912336718202864905036483046982388228877989033709710399147546650906821854221432292832396107863975029570743279848463137706150192981709304660120895912349061059170550052057903479815729278306472965746923906280315673232939088119424324669630316133164307965786191318026912755110235405206097783658839745288676434949614272823550286706062035828627949564316993060134467334355458648126828862959163375908838194367467811550543856555008263280623147146343627568988465771525962417296401863197512561202961474457022903669379022618438320217732293419539132087281363386008663303711016445149623580087951963490067400013773547451469916914330025520037352863107101968654839180945502831849175380761608169418457668166796087516796157765022428698013299317529397606068278556218671730028734133694085371003909475423828186925427911183263548898009184093479732366146911518873901900040423595570882486565880939125648948577832726477884605699313253301899818732972487420843674797826035542663332607982320162700867657984922081010988178028074171146999482085825157269690586248157758345048781046315515581260426610930322479739154174936932447322175154249774175292147965204574208378475153522125729415229001165174787501074642575528387734561171424001574945189697401542168319133199037867577216801973230805161448697842673144175943108487379429451701649203110824274145477568709784414957899694820856193343970631622595345364724750164350034220807108346703704618151985239591639882779055283545278611432622496381631935455039994435034456884553280739241814909310697194026066259187263959190844970321122495494405654246710846371049207689075384452282752706292952432820246896516432733929751332830336324011974375145309700867165253836293390680552034067140162720082539644631333248382836263839817144115150038443904831258464908932323398271161103964339935092347906294255758227387125951072010298857311815902336348566700649959566404103535577605920501515503615982307233036753365582327279524033090823310947405957429764588477668836570510870094845713501648831345883107275199094299094161423321941168330602586675704157057607674299245631480172747106782053595460599662262428628738868026990734796615078936986274887239943793731496146842196401907274665501385372835387979453012034572327872281258920068148028926172707104680701409110593543836635630545316149547082331945964162698476283831671518832435537696407498433199686685114332576263362445155668657365980739269263696568439340486927538959091153559993080209173051809619742787414913135295491166308476835728589197185806814088331300944037149024359557464817838102104493899765299608636531487839408805683496918365338372813638070553182209909710215822762089431840075731815093154785201681128686286369147649773251475935088615547136915771120808423843496944546012457895873015224161763848771965739373983556319906002961261435841577392950818542000437433492046170895639397952497727093814145196130722208761411318342246159170821456204583632574959000984875036010825438575028344808933453396088265583673159915446039053453711210009560259892020813412267873597124989155312394038971920254878607653501967159115045468203278758116239959233190937288154026204117341898258985228000091026120135561043511713027314229060259038488988083258870089134462241239847912615028437959233519003865614671090308497268517735255092927455323441346960620486667442583813858390119206678133571945449517479394244929388423713265311470803913960830994887512620634063452360933607061522727214472067605454975383054180301313302378049544494263407570497926800281008783294461348907057889759364224104871441851299426488762264713128433167040644234914559384979163068832525436714033696891046946489129834611590857677955012328733853767490528794142411473576846920388717339978522977942181717914901776808763300294223038969762324519367973741058534807360110863024959286307693576013075351978580098600537807837957025451602143028444999439503013438623386605963386535149940681149996730177618078821411363369552950076884106547873015914605084873000087875927295464670479953335151389019021957254483358653069023452901816647340715651168897577439134093629231902385742850675089798419125223848021798158148418943602232936286804333166489316779743326972987644007581942209094501726020319708581699770495175744133669144829212595650103361449470225132274728147342496736985604087813291344368474256368886732008039392191352848186575078282747903920891798629815057335336379680739693636159419147727138305927461628361453763276688961927202223057888815910851340619752004533834507730134126806115235828866152676385702278062452602526949459038239528951348925848881768638152443330056357836700476637901066732842247709943070864403582002010440161176360132043014302719125105877180997428559331398966540123110423952402920756522843135041434587217585663416992231734653459182499934036399610829407226503132934613276816564108399895581339196024841788893745582633623787939205474321324313015809545362529625640996928559987636107215005558033916732858059607504534264371744193929008466367093045453635212981064930959125932943537103388702542655681354052469627919334119229199938265263711860264359092666761587490687441446394358000258211837766440578920820608115852366788965205473801766000645757221090637230833009096385835764941219589968482828855654468506566443032529335811178770246378128836036660897576707305388586091969055956421613865957042929623542272270210651333962170336517730649104709743353571792853343749148373888967709395966259890850783572157138860469018286513496152817383035996641074250015201331084870826700695443850897593214696926318053651350169216404474903495403093486046826953483253788942426124434418671105939644450163415596872231147139512604247426938896722462104055459271708017193397038792865943435107120931173980029834249399125757714478760638384914265858399641421998241224490263190708493332953635317744699542518285138053109886946009222631357119070505200132452249416790363004228387487691565010694566908767512413155304249146656137187917590383278544550178341435224806978195819321399520361372689351958459203916884096199149473536938509777014450727391359316168925516742545974891312187858019943495975014382560703126696126162491320706572271782848575752736650702820580148436868151622062810473944207098031476992569873140262836777266286498284548963750773762077153000892603155567022755992760134696017803551921952680246267716193070657239932007989361181100724684880919856454405768333367302371641912387792669972382454221176522300628601658235274487491457791713789571718323331259505469904833638927792934832880007674469287082490352686936049606898497912839499224287714589173378978864854908461119947020603066287836761069559411190780885869298152994436115216891836919940518336112881616536130106441965351917956341866925731179066217136707830367050667823690336363608309957250171674063102364652817302364072616193711882847251618027883447983630528731419933020372570804514057584441712322357967696152803735600528577854074113277822643670225799436955489859946087916336587578562553285948290511948583799427357444385620346562152226142057854223851988457839821374757025776170481697270681338572055483059438734534973683912934912825180940507914468098631135863262028783280885424890516859943527954299771909294819099596595825570337416227231842328593936121067730788083165244243816606759974856722323670730514934313742019703454658770408957158079304447777958835534705025060997171650949426964063652164487216401036435290223633137417756086040848580092850831581986248804790225173531880558948173067381571430745478096551235997459620126809718815498599484444783796187491288260223084575768521170877015941839508564124811985292854061650809977140817800185313149035203341463902686624230152678192739351542774088491853411250243739989437475637760140623162887583893028317830308264132279976943286617627678392017333198653587167385068056019014358271181006975317548019012012297929502422543988644281031318679035483676599361877838693291514294826385976167278531767760696024805930214127802002675906509024762911351348926075249278825064124668432932745860093635146749239920274613447160176151386186349151752222766776741365283279955819492969875576069864558584219753091515938560707187981647799808495876118294733168447056491494579801429390060113505154497135897110857841245922222499820165216862569724593890127445841848626414310056478399041666799088010306804377179614966919227255018308673456658733357432321748791024476410324860015081307643307703012970272744907812589282730999232112747769113392363901120579903631679403484401942981573038208979635109558484373976072528852151124615984508411060922345940138942491974515982292466999867270338621816371590758574264965417086374731517797488875277991250121914779093992100408336692734286546047871473215222090310549518405723098954591347049155672870453795723499886954186149204317930253766424523360593584238070901622633215615582259771005912221257686837537250446369078930166536320119647709246140910054297688317760953118493978573591060271680806767435783739041703771419596894235312739171641942412706591555990989021988350963613283000595749346317630300039427074476205294980692094029306227758801416043074996125941556167469858238093692565983339156896299382741056446021277534661599949349132129317479936524677149491603292647843441073564736946574200000854238584701646375617863937253232358674072717556343165840649541686743004499361140473391737217301325430147545509314297636117087577502647616712978583364488139304481164773412470103608402665619470888871063053474518479997105802800512564666468740068847676805773821171603415115925148269627187435633602198973054467547976621600301575083587125470711905684720693708282764869998667034347530632256507651832579390054639395905520127683110163313864533882419495572174423341126375166455687348300316819174394239739058844872345080487701408849686665390389155703062733763997832944787800697598442056305186782231735263820797838701676397508259297152273280512045677827520998084221630662881416889868298788709145188398969846323344254818246251758387197429868061801599987406165694042414253618808869894338877542914815672078164012745321915785513087458740791943827063561955041421294196138388871298809393006123162180462055237148189680419901198957841561316372717254353546988607233564967930919278838605567486547297892900266650469036137457372450350309857971612079630187049655620857177577029470282944703487549700455437585691631864311040123084471962707389633500122354301673977776379306557411736924491734545845388954375395816990424789098423441271385007590348385043206703993718503355169139075423603365884401598746397479466010390724022203297677934666000686854047290889609517948383274012969115503600166030900350992131596313046807289929338277468545008234185385535418168966320573698796872281215316428233986727989645931451715070974102965789771968284620615975520460020205583352470268581198061310843939601619951639187454905955776042878693084339186171750585545624134490013157174044312680195292014672551648009823223709194686743225672184522986540900822017537971804040283898707515989841680720088306655118085716159550600227876090312075704525699283620528400820822501553650379060872473311457859834474810477258293341048853190942250808265542975068230619126590397167474098981731805218879263127546348555836297995470458227630744837514649599429864474809700176835597369687749804841490031377886892389015477972384150918258292816692855168577883958110365460302485132822527732148981113772069922502421678076020298466440193971935868372815452782768271019317148380880820943512113659252910523474426738273709589492314076991031079190762811866665825221462720585767370155563756038985936689841857936714881354466908105425045948176832060760156067376546823773490235613674446191583784400338097879520490262788857737722691537800197817433456039874552393873772374599859064093345847385223331872346489543216602550448341715614848569599843501308678070478670540674976308222833834528575879891113762487844672581120934310075037793433742449388153154659870064727789267845351365056832307322184194586150868914997690922662469467960440615927143195848834504328581607070868967945936323659029762978586887386456445067277908514241526451016152849335879805052242251077997027059675895212062195347028548443479787098704849913919349217522171103778582969094648136092740889624694964815276065839546781642325990738103988591221575667883187983551909622402739710890323257125497630673517101912564523999129468069979964420283838695846872326137894576522740256764570298049887564466756778355680432939836129152521285291693732426727565621062806371892419886457008571790603094570367088404515528324611742797028322182826642539738202834742470464811890169080157361911838385400606950051399741578060195596551642996341983137298552130436844248688572960506691670761260880906741304587101707695715880420309707888786671978469628033357722544381928010694975840679123505171599043276305202224323673105015518873458386541594220729545935821610440098219747338320013536960030847886232293261885119663298800598194468482338905171225821999806688607756221747017668782199745541061696270961446192471772348762388862199952703402323559969414190905513220127750871195082663929863379730528239411548307917261290828019827374275300552087202537877595722635885828360971241109104931322469288240740436101261640231147329286887635296412469527188421387185203805091416413652229942325022674140914983018774472001416059181520957969792039630419471650579523828869208192815276906383276620862638989237587245044171940050193542212385258391865562569858622515484257248559239878615738950490210906613251710502129110012441049379254677150682172275298719983329809727176726181073707845713941418151307460238849729207548061678842620839197241041817021849955787977294238526461081486931374260836844556359498273976237104458614861603941550885329733008945025391049713417627506437241045318501626163481753239865147236943308104329466490330476920639809810440101982262698963945599089138607639186316953938144721101164052457178116124468456559375845167612520580691073902134738011299574029098069758881418086725423944039128173811472768576490495588138309041230414939725434977269658522008616758431091910298095600822043653234109526685053327156049249076992742022573555541040891548583496463580038814605363369737918380397743172981681928645321780292125595638536369619669101250978664220754341541219452792159472513620445297133699241615524650055914706030612755848387984500454753391702480394450898075552345450569814230207122986992532159652186512575288405068447285951716526669460432969669896622770869862596236879553243196651019341723389485175495919452768469747015404307809948906947226282024911582777631371543472762677227118717782971810127937126385934987227714895501837455256021749219650742446322295884405574675977039787303537939342299449702154002192052418819879032139230709858005074214147960733298257311909947692755926104614615029937629507828865396428621471899903686839170866272947418740219818462929607626403786302425394011819369649502805856030278061419837522262128990726299002301846680335169064550046507278791979919691589487738842902224122238565257323408359822709639432698510007121676643192613525244223702950623607066794897800820726924574214958800602191226479421060865989919323441379172770637309472378818495343133906600626144977751321132849763399066500391892284326126992564354619191127576358963205968615340865228225780977334166353022483572171124541829783054288846385713220718973184864888479268078204995267481356835698485651934081494370119883069220800953218676149303525361912740381045183956760039256953335891351147862143824699105592794573899112058921372733917226363000193211239880011434255809804262566081461705555928101043562062587255455695497604037948405041050908695120693045039848926463884465977743519287826440230637482576135764404314546877507685050735717650579056345916935434918551741594576041001778278511754361872586799282408811905346972545625435594040593695523045852907299408046866802415498655508384150455160216314471460104959620414297279940742915999673823582429585496312008467527370713751177602864104427342829688708368391576727478029505572790399266898396693300231987528742639612741162928335869796099170575895632098000226016854866985926169591705931060835731321664858614995316461346388123953648802833304163417064238725755695817815646833171360196565053974663646813224645286094810188550643063045959999681830300948208320716008862761046795065183109102304361055304525031094861230379157584084066452939838103252969844216177938420910579557517589013081009020935614496752460632497603388357661001581172716016611829387013325042458475740655059056381265478600845140987866157071010558620123096033008755574645880468696973689473841183823454379742286208359666647780577944453788917024920092394863358508071929187178801940127362221254476257646133142598290029317958022253770611454515158218973409223209154908335950940246236017322697350655900643450745069892309891511360841188260532660092661447248359423066435805886395747559076802004210024053916019154126777921727951734616680960178825359209770869145058258791743103736266206117037859993429954820957535104608545991238897171032268700538068761426785222558490176252524820501154411131564213612961112167917985830761135302602473157667190287061168548171480382029168162457022736101237261459184685716036282656407253929993806014496288146381462624583981720811239513034890075565394748838199991816470142125101954380575688432446792263421832536955759462875098420030999727167231729866322318476709990225517058301842696393836040902947531934455831571575375150454923660150092135054096302161390187960934105793127433026298230334720119831838018889109606146976813400250548810662252972224830953110056211744133886854532603451381209176057513733194621275782010356855269521193888331344355884878720239700866287597988865488025200883923801377787984074056358739451156244701824678882947682395962789399780820207058158940416775273319119278557635286051162861858991231662462629106410413024424608797133437655702476439645356095906746691247138310806134622756744915378659475732455601589507609641759513031675635443527515868538347388980371260083851143034681296827789356715939012265735542904796158133831578058919976816306606507759595210473462903559819484225573273007800155842527811246750611882070256071292734061911495653783948837910389886492857495722534201170604585599440177359991534997999745419265790804433653793858298792514513524342845787921297394067974127387809999734522501364679874853353947537599758902049516857004884710074845276062340454459755922154805211788983029489329514053609362783185754177990320950467470395519782648730764956983381791735921624982268907583416092332785360365502270427338440024536422148427791710712004107710010474532824501063345242405398015946284382026827947981680494999659813226506635287988131180786769898473374662614663069811591443849872681500331975713186791044671144798000333000003419872805178424484259347142689893702741626103827358930181066989139638771759600363771271767368792416016432134069720847882571988978426128688399565031261505498616082610839493460248008619238169777914232428265311463361290393566952019560908747019503743267105982356698606432548040724778741070442739134253379593277757085742692225418629904724289460335608540464070152051298704087122840007394739814992463596700283677831902075680612577796179901307129375705295273375936203622707765214755012440823057635294307897241920325482435582119476191690093211934810985132611952269116920888745799449863544280852522422463453008137909056029659064834523940125852096751392029272644716039960981657025829757518235474083800144662435294184631056459658807012209370931893879351759391771319171201648834765821054649988060195459053488548019001112728026650283523465410293755948484764579232117367733051014454948887154191988689460227924055229858304495685665786934153291665939929810081059519748061824925906662134741263555923706519433886326973663108968971863697040910678595892488198822113531570427264006412034338182189988870650735337668980127176963450266783447227000042410467793085770034803529950152455200334652421901063746060214773152014200333582426387128231107859662679962410284043773768225936600779483147139860753771172077575438162154067969260923090086853701007160607943691088888880012276484405046828516492873332318336308178452953399598032968497571725189197133516727221932640324680822753733182006545206705586628784862084303858550006843821410538136707183035963355384640353870879528813715232613910700669085196694332563367073327867349699098239104738137993795888195478389539770925049259879881022786528377994443226137709124895136709233376583575654213001268195982305329726581209330399073640695012345456017117050169981515933476598083290571858476769448675080719935877813812948124988927247412856602725276137419684513752203227442810243969878690838132732541692910829270229331230814755861380824020578275653104427099210170430413125692115295488623420889965878622005321715201006446138790607785949685043351799528759786546211752319252021763375354712381386542872864635701392768211114629580324620170617470156939533489213359904140436334640925687310530071949799686816097629875471719770585540817071565939158697952824450644626871372004458432755676308614937017364105834281157292969099510414331218753642563067034365977658795454552576589647931027866101246509629828237181809376762852998423191555196779310923932264381696599114897384406469610144268875289464167437313186215723619103592781071334917792061679226655428670869528593105798561862507485524141744964514021226544198565853705895534929854500666292021504998009615469469791241199968348625154332181254388134431126493412575416292746868719006725680379381332316837548882722288919652974866556720989358518807666153050397941051931060673279364015379058905913841870802429650301941851214423269324037736982092106415696750356480569378563165358911450681087258961771241694276950995878711736881785314675269871146272576396283474614257351594685693946547718126830161064803213537063878509052356735316149755680408292327734074975909219075638815464723288405483959206287978052685685865986751843849448182305980510191192731534333713215606461253859982797785101008799780955073015711745000042362298145183766429950478324524054436073024828013574972684795231113446815412445048277745529845433719619561124951804353264720837723034834581199749579724908568228146355776196590773783559383521314931114089451006146852181599953731469239896256570570854502447589242929561460603120020616454602377081928189013567902290326141276653656740794879670991353567169710470112742089948644977381813596903081221604042376414165700971492265851677660504148387141311146258821752743138826707159481678971608287128598357642120641319330325063929163281741178273140848345427701558402429416442230698802197969345346935184683804665737920399479667283374412902168738146167077768990783660248743937183180762064502604329242054494704774408199850352510572315841867011934500608755139006752353015674551780354041954088205433911595223831626413327650347334371573724020225294805044087003161443670930164091367554263020259023494240790840879110280683975592274903646555205005902294867197354146614742092659682684133190837826430988033631320726793491337541999996545720025226201235754201972620743405577894427720819600200750278224659179261476925809164376889322300951604872172114134573091729026259558673504009294927075833082569492116975726263173009357642630167364287582398310255899856877307094734922474173335061424416181999383143796962154591782017903607353065829480505320786761572118933259574671308627023676504932516918139778461109747652231573097140432664675298409776600199935585513578784126602387893743834381216983939977521741431894184447952971361603898051676931375869583800976792825421414246387441563206117507821672270817465962434630798361152912406688576731551895069109556822357193691919442514824388007114900260680324463404419073975320570168303229125974130445528769474651499358969772987545469977870101953690058076827249209484870143966153910824947681123149551221483532827009944482857544064194942557743706557808169799106800257337529698569243197840971612753548537186591394384053198480265842036892546530356035833295820860339699112081928305519242465196891581541621366705371088568978261492475014011810089489535778365619418386443935391088636818411579279414869243805885122783375769720049736293890973887248830303855847595253675554371378957879075326304125216035600489710427941877416543814218258754650825711586410068321017191675980187350823424939759719825847177875325707655344155302605386690494547142206233861120998520639948645570609533619503138506738349526872998574178476446145297925185302158803478495391378081779198523484617960444177941417398438901641882000929745085641005466302428188173679699783128447587658615625544367514094775169962928834420237221850349462143392462717396125310488910790192505121393054137858440131264805529113773858148186431810060582373512034717135889813868275580766838622396640746086023925023388809184653524600655511257216932168559745132751021372355540329346913267071653781590771831159180262624224862705000423117314194686896446157440971787915480093102330636047999997575855525871424328331569055245373766754963715291224197296547872199975157029995503123927913762794934648408303239395194819644560627733019094971174557580870157063287019016542409927759835184893342835843855128979222247707997237466539038176074031261996488210677867643993060009006774305913024139330397940992578044902746864010974047914919518318097926911961689140805246415645238344640668619734234057775030693921644199182244277265187956264872202955701116221600480846316697500648946767270880450854215773137513899275317913120170448810269300313007528043500508114439586203153736383618411708797789085009666030214979995332676356760395190007822827774525608800356877489688343365860165814899958604490871630829374936983945466400414742528753622831164764110095859634600325528346741972536904878133902249106912908099579066235810406523704297031505912947145640177513275620038323928141655364743383660641455328053557543715563755313570634205134116135288915269902960952466829797907391622649589383214200775255232646322174118378129280890495873120766842610511669406765604165640712756372818126807074219423458425003569262484254819007583637086850629621657219930137369000054313962543975267851100354373726062699778315252148219619463477250799103571407640564108770174152480179131095009070683051841193094488672111138429494291344326275169470882772757574888857421787840249168435159112712004129911532708016138602403138398131203221263360141336283416987920824712271892956830438301002840354923213940265427310414684472415681376944378994989949720955445041917053083380337080181788171737373339434114358807816356415028822156821497236518494535079778407310590301913196617354135499077263052272484355347689395123519326696399992779392392464770572184508721229274168167301684211154785489632382069632940574965605688235877203102211463013391503277221365594227437821963466671246275873919550706167457907268363052929106227819089264793799867127643006277080578922282673347382512944200999588785624824620941080947759963958014721960081555781260480227446698810468413788729623243379723211185607916768496740483767692910810354674139713967158861808163507950743050746814081477247091050821756080460309486300205799838413646191262455118129522488179112756221120466755479466055624346028554946066352461791368485180903048875708125075334167813970536043230620699160726710517670114282990116274967331479191153661668775580252449351857094918614532524789708518338032642826409004799041023640819093685808631526551430209588438353468590820072780579121587383969619936388072813711749949615477902988930911611111127980017057819053315317416647278572249774962854079708113189285762437797564581237089007730423315834722310012048469743515505362405233047550544016372766261300218302422772080579858934618776017217831544105499702628067402355066102831345828386233765971952528462478465645411577252828505015326552069648447048540224659168325602921245453428660186218455548119164243408782154794446516633699579012311068469506629298506589615933160541048250844547464628603958796762975488009633123859830356705312180194493983143798810544694340725877366331103833092721623908619157598337888135957233789762719317083084970659009513794973742890345092712076429606391196483690527668752007554553177731361893825342109473552115153574220319953960962702309526738153066197667981293261834837948696020107234223993830278325135103548274662952265349293340168256824807402118755583443375220984734781902440796660699335585025825488213237864661041562288985978592573258113440323525363456705895392113854175274849721577088636786278994358733470171714394065801933825176062845663223274142814381111986800922999491512431358595040383485540309674460097038245226165677789744861643331747208475347744054142850444803850682268489357297598654422965643014315678557005991623967044195091380965362476576011618219337212589565744644600004126066042232844493893836489224384697117459066523015980263613194837676009426088616816867324093380963823811179715349526273889408645615872494738469654093288193932869355483342413945407573111621662344492076140753343365601030912132895932361634499002360446423960147293538102233873662072172928658079465535364628378130383201296326583482257469469999647861228520742752936400403560064163075198050908884926669384687676116781451091098831848359527196298956996075271350021329823254685373883528259756605128401036317264550726261470589693189612377688846112193841048712518766816073179135736734687298038998729860428508466056876650685405643294571736161075207600802706991195433749664898983996499102092852806591256899279352686344288044973079470839500865653523278138762815658272511959751438388154222982468911667331050102414329333810740501372511421788086098881944201242424510113026845134237957590766960202529677677299133330151140262009203546017397994312507441050765323876377469533668530547651920361674986845746939905501639327971893408892192618387766165392334627033085826445922371035193932228989510376626124845232651270880097643457893778099548056954489539958360777724871045878784133044199894716357712125674258316897638913031368763148925143079284581895842806381582579105289925489953962641594511041234540552803572110676137154972155234207320712861355887425706097283952186804548225196273636119259193708651043893914665041862466715736604738746811702126458251284294738869768725432378590324253433421108690609855809750411378724307792819930098445614935956580479244689508022062539050085806423016485614718205943774121792824107553868213873756658037219581490447921386485524458017144076930603709269715690013550316071788317215494890211578628564563689652303708286938420366282875014375376563483712710408557419060956717996613113806812352372612377657291716050729185142784403909056682650841165473911164741214529412039498571163926901502715929443102885447294838982441578473205110063861696225998816697062693798920072080899334642422853302282378845412736780455264313873660429312177439815730790598339694537960441121297867396080696119813698453726402394993904892633782568800499345385158650547429448485018596965992440022364139761952423844249164180311070299804389979612263992608115258082687312106396064678726565258926683233644701562029656302303142618873259158881582887522510262266769688940259007564583436520836587899133593268442130913203027846226768819740659954356078104452408345700823139279183295947385318802335034836545307150916561029016600361223722668334798968643873940769881013665403247432014060741074708415151954958580564482567280059059211863944197361023686301783367488350419374544152055161754266585560194853916821169638139734561651721339747542839757789675748573322861923769739781383887611794599650953299966226350985575811413348025892800004674702447116879946741754676423153038244177670728894316748140495741404399664149726594481722963327315577965002510792274922634461102644148167308769753555577072519827074173279331484976910497171806478781204464717401793435541468577288594314187799151683939604480820715543524765847895785273594030310937841979025794255550720247304640909650743746957238323107518626073959587461584711285537365027474726940978921658185230642579662346631947946513155362715749266820184803634147470781685257294315342789536488502551311804103530738861361150238891269587135594030271193922882983341220463301621160039291468217647120317232118435514059648042862327175752591026886063836928471689848183058694928791022513577253236037294676474767158136410607020780451995995661803335270114468716964766127886266184213640225447855841497762578666491147932469370907209055301073867422144977068716954981227293776018911719779373435987021480847940870039126985520908832596815961075631181369765309192200965172026941890230942911773917151721078463234867884259306097643449077241151378538606847001115476697818898041237646391786710160493133469860047583191361630834763545315097802558173896965308001030251859995639013032849034906280657565920504654726582624858528495200906041392530276138815131361855774737102392044640896926621253513422203814720196536961542236839945800713486271090205664434781090670695872628582192891521212029189726949387753278869797799998294817654208563310387532486339255676444424035529071212835775725694484250052245055436718383682641466813374535211555288954177209529208875948230567940112832640734018043000608956217700701928288283363353394042714279025094871356598555807257108300435412953336842008192702046320657900770366725292052537896998379435850233158197432654314072378268025652620182258685396932696886787196198569168416787287705389195615279088460666220177981452768639379304348761051119708093208335116709472366518887849363119991632639080834811171872687924240816796795731005436183968831444344562366080165189536840941355956294470143315054826858981664937666722995309114622995370556659460998754540060020584554870208017770837091686373392815360160358573788712991010619763691742535470566303671751151925239283032515475958711611542248561562229843587969223623747955637159123423696414552785067467333255530650951032761082487948275384623857074974736431813909454093548704596081178055557086823262269093127996816551375292511762177687301120331388492078576487354767824302949188185652079541223270568229575502105557764021065285681101059337376328572719087947097194851021762455994086003216711131068742917444705693923794677465468128695708676459267416061479687781363796259134567987515595487187058923547684045595527508897348256354069269210083130135250805249100433914159756917858523404300788037450458676971608044302234234933071442751996726493529628276065345324835874028822740017085678542325248596260935320095243639152789902108339126740360797513268618851287751273947420026067564166994235983732409405812833774324770602027127631748103950722618124253925346919579549864973860277239460646984747208614639716493856219454456997654386737910182678505222098810930828414726558065395366380585908892158932736728452157500260633175836995787476471139336103172889440989774899145901330807992822032203092291989426927420976267824962612152209287929050978775036832924375639298791335065246938967910871376165742980174241679513872597463209192255361008055251267653841693658573504551831292254235006834537980518077152627416345326286434683212359920709738486547032583241814380194978042136121729385375969786744949228481126543920189605156962593763205724380586654727847732844059205104157235985004715570684368368577651316059192522290490965817412009610632119677027279277382143376045841800396048879838663421626784938304850789475010854855529942901013239760259736507628450632952579745407480002925083986115701882274447575062286545219873328870932595039613407466048528394327719770394984365254377669874965025123430635381802264423086983275524273247033917359390589620423592129878985909826792448260104766702886166381449684267431003333660781847200898275436638765356777589992387718204154991192999650885628396293079962696426220533177937947801511879437459091394089325125883622554963601828269002816792268603541482897649149658577490807210590030057226931083098643041915294209905180715599018630740901167544907286421956810196350563006290531756380550433744393308470674907480655540408014245062368658267384665389247393146047834193857183399613164920040440933888890395817793888496487970855439694393861259009545607626455251428795880915117048293115422642430764121649715506768056387056151361309090077787830949818629556249134622945213803314786122911442161567026645720567314094439712220574464390171570112616270702003358775041355619273817227539039521428651858721377256901542880962902163455569186907949064103925773282854555104215286146367057281894255977355606866464352056405791649784331184534308931063651377235595238959373974080596351913109231462335870237297084776282747542751728391946043959104760363973836156347625415385054372135072746336402930890038861105658450790001855720005892326057398657483696070969738174604331260265285043337437343968935718459922824114069977017348885216105097410429978315220970471604145302984945869462846178351823662660728977371499978754029831624947042969330729696174134561379096979203977057384096932890160907761668219979551488117604373399710192013798852777167572730408492885252187027181829014710365366717107349301136189748225500593810032062277837854204582108755631175884650431684526918960938151253962745649642596269769895167134573582997632657867421811095177932211121426371442632380263093176481178103893478907986525199325475650459238805250951367851773808685238098731863379797444052227053617379648099310179915318937309630911019630109813722087802261429906554550328433263304749136837080229474813471619520465698710604508035437096859605212289212643814616146660431687026971191147765496093551897567217099978803142170506498579556276198748007363508422883358514800081736473768659978855737443750773556642955720721368838899175139797403159107997115528270315695943088164400379166104705289578349910571699494871936462984105727781438247408063390908571834919623984270460767288787899938723519222543430246902688331722970818251576504662343075440905244878713004290761248831850145925275137385068806199225583608186038804144114083955449380125589214612047036407353613527986855970933720563478433604876708122652885952949463819461161319816507900369629416088047265464111610288972161269083301139292736597180168042284313233510933564488412039086363186252242400000743219625525866137998946752801698965656890417469081234082752100875149904521210756211315071948452603505196245824856583512079154826117584682794658736835140076296970193315800169895305770117466839571738045325989600899809349615338070692774173627008758735893838078822531350214886759394294452323373836127162157039935702314673585087792373706568071223184353439941758249802679424979181401982663424051382435972929110534364822174841159951452254434586979312705275292788267903952764017817134345197663598229552025070446850397508260311756639209544052811790932636332836390301775561715774808809625440826999259551517738508746795335092978525529242195263416411585469569934090519492118470297706049487944667398931419076699359644012063782771444504142916877093015958852915691278446997834304098971951784181159513310974500899520052950363705603181385289355292707715114247945058985263428304449954742670983174467906904667244707185721768687055572239774318057056956401025289319496253032311821422641156196598931600928173958540866756661131639140187211472250304773540108762742868458381331045806170846554828211815156522772493177288224884506746624905410736108533922265505128188683129889804620515612600030621597643774017431084247510564988181688946906837541175193704871424997094587813456941386163052272267814621174326170149936918000746078315595356810301748457126442661987210354406306685272751340550128811317490317995115402271909755223324380838805377559503871684199881855118970759480170559358584112291033863397669268382137897868875482097401588720848916778302640121931561956879967776099115434437528709302094310679984939182632378329933474820873978606352731199998734400445994919179485832914446119092429128753030609093671077846298672297579413240146004989617077366100646481501444074948857018919033024278524817104798611110547893619067325665983459907658032158181194079511323377696883574819068672570209063850658049281129436942562166618859887088552760942152825742819785183983451332431111379210754418982944648228782318544489072291147909509214366043670110744097812989729934602205325579505797069367446495042254994699323142833172213607964439123697960902617634819047938868035755336846723661973960547223762427485091969255642735259156223511644008578920431205029275336569659293565931941744261712981445961417876456350670566887208268679740901342023751092825906723023717136293971791980680968241779400459304855932803563044176255653530400229445117683098707775481560204258502458633380715848025071493269422331085219834091970859646074947042869609363845652307665305867692194840621896322767872432337969271002679411878084610696224912863605903647289625787656405555966783858656789073462134044791041145256864303763382466853918577798351924267246868244240121575362884500207969549433057163108102136464854681647576213211216355503959398851759732571933143606266055813701823562566182229816115994622541649440767292174745444272589654805649615086108859287346457654121368247191245514993603460300793313338684570619017312411177505536122877700710378239674675080833530092136952509103379887444054225743494807902861234159473308215826346642494884505199172382364587617586154880482580007678968862434759018184302479065370980039354654584616849938333976438612257802378167262536384523343708882467994094315145760507921975999051475895205647156489828810651962826026978543134155278015579653694357388006349731196375467600764442097115679976029866271630471954457006088625759668113661034056809740459907706752616796329298260191597045086650129427521723943793743060025268418970401877623768840674221903697774736447681809688950783847129569236133708084785326561522725358667105029874061044269970927010164969867736489880999272876741114056634511958697531066464741324142729696819714802343907407155111786919277858055734551151246562262283670992258701511184821807967828082052508618315236093009218164356723128655946575611781270814304266127883202344603518908087947302734014839863785144898851423018857221504315934708501773530961892654918965811812855468535021364419542763117910681321754198073957412678337170161673779968545268448557301303632021064194465826847168574597379520774088390463874524273872202858302047360610361148063699925364886395179818354262604443077306513375053501463279525846164648899555405749653595181424501081453073459262662660675812900643624601850747992851468289949696680024882470921156246723735388470720832670548458365286835261751878197733604366936497684141597693588694363776402316444011507553309386178592846121692378318712501684942073701612610707234197000574211671892786829433029851625110844701875199176366139378239368978849960290097266606186410786442888803873326733567192886802326103283962517278385283368865379719783416632739492140520375550222138194257496602812203177089724568300856168306211649384699192474960766219593462251240865599722880355889324837605855295546635628813758274648733487124612855187518355200671272530305533155384391301084775304494502417610043137573628078816193921949092500690934598327191138534226024946195015469798945689060110380151187872793836715369065518745064500258699689677729712902885011109585777752459398400329291997774550242554286789088272955363665286446566089801673485778627777263437186835502514620398945696345134487440685613942866107419470181996558717176580981658372252536726487924643126764997637163734399389756025862959924977563400403091786494054776112280106784560865700348418664625134844712119822896140426135909772045013252838555084979960911657265827852413376338005312330012779511466448292008645670205708170619411710156174741352522921344719169231543941645052606189604137858440518580320445960370940836302573751281241371442464147311833363669292780469160487859028309736726708305291909450394484104738788183992104625153606843745643995178038370599256951779335066344626334136103859846304773429706773199238288914230998462328934908301114437673493270383363149347821166059093967919959576062480094795089033002541751328536431295350292738370306456931552012686567897779201344533184982944165334197232038457853283619643571740880087683659799677416165276061833289739305269995271905096428884483297221053679941797926194281971110051687397883011471735882650096715438694913941588009105339368169980129183153407506566720520850800901008581545100481468934240623839749887731185188960828107332321466967957670444408274191365871083362469553595831187653395990113647009745376054122346535627043653427131909302855701518447711608847544395266217945607631305995253445990238457177189965252725987510706019069791020780387813641756427723317050774941179455815094128794551264995372538248713115933980865380672955941464883812440049036700402097761879537937575179684324252828827425735567848644604833158014095233507074627386994157843842584460607382684642370047984518809319165908065849521511328986001848163021416056235010279305110018549632488042152106414941825032296108610327540543885029586975156941121509555827860511321482551517014499590462599573367816475611226182369146865815794237513615031209223523584695991807694064212111613906073063836969000085797286050372000177725985759589365362856149098940334166521465432931518597219765786657011388866424197183873855490550110964345330737010857283630763203734630364179094818010259411807115414892391808062844389929129276691027152281260554341372650918457030779209947137362547174514153636707827365476453394357036112417323710387874777547506546022838385767929233175177794754099061123810552254414117713239200332121415868733315490168855083633737895830786038302695353962258024830277852559682499672013419407668825562006275900011307770951758049815003571960156572288342046213779956807713843328107187607247498707251128911669319799042558963470977214484263915809868387708228295789929459848306681757793810765170016842101679714231218370784841305897033003731791638024155506640441818411139059027210072113085365768298317472805359576428115547186599006441645042394890392525116719035996274726132636790201752452401326322183790507085753184237762439197278109860748526287091140380744317509554039142590651846383205584388344018783319084422954564382079938311201499572939569444921583024844803273096165448897783656373542883755546476576959849645603943545508254332275107024231314157578120717191459278108425555237031386630497354225555082726464821373676737965154357153769851704038762070583101666257326129132254910061050103721509236746974804861569693068177303667033868075479974176817238862877582993122305878640348057896566777343725211180159932891060471625053519147579963071306268756294499632982917593329306278826773546149874831256844671257470571237699961447144380276713890590642702432113159619799280501224754310546560762753163593938457685868967275355285678515030694779677475732973880759082956615248457169832402283575663906290002765593538477096867817701341382219999632620125005683247283404808859220134830894827140990377938103071961167131239321574950295225458707503707476003420548522864516388603464858378810529639933150342764614268499797090420920640579287263348148845379036801011397825524062820444811552876770872487014570679736119084575428755127202990506604440430244976790663756548420826948493635512809709853496119075523605117562310876458206216363142305905011752048026975210481905857890003488906335700527296770226458127035651902986843764001049524777310272028136095846344524189689352659174463146962715236510991333648862702588185363468132818189555010023035670509689580593082501387759386833995988073396280184754203029353161447709440160875664904282727609645232673770275664600520929277889855087693520182610596220232904233655228278281896773109743825466877975961322462452367397057814341091374519910419014569274841609748797353446952070449967844971732427475653425478535607182860876331360837764707055953983679718363653123845065812434599210982648074242267361184894872308263669459055125408106837156898172131619902995274712768010833045595110733150556260873113207978030827879849280214329970817884345234523046384269766956995997988369331425668784653838289519477842047823692857797194262409717614160350886843130527456058234428286981687392480543370638682850242941981221419480226832863575957778898986103106491556616320456658276431023360162370852394735210953456650518911076427728162698856463416075956110644716628052864497827165337973868782414381835411593544323826304357354826110820537856839610415240764630987948854762532934872875004146326504103615487803160683991364090835630558543355026607386520442431296599647456891804480809949733920735488176852507535319154126664437989837991097167283967791320851288583311137937714280010065585039528582238500184186516149879659904234712524755857697924760966024081518364834342320585133608681597887794464620052120740761820362657672466275720512752398841559039798197968758227800146173042881258505901677334188124437546400734358152701451828580791879370774892434758734452035000582485903776799189560355541023013410512973008282360955942275374520298054332680676408832725105758003802837339871754561691592228159002987044837722321305542590782947100191991286642109785117918928179589380207593895188101148149394734870835443536615045241186510632536757669718907527406235156567588626894052246346829165377484818731455389448572769196443227514242191891541994966672121182145583390820395600053011787593984331116647271608936883644842589155913280672651856762770827443426377863157430796215257402832482758978613401292740470296750652671059925801299602108197361300288515532517472356705430824626808131386714783104326422367026907335224653920548480072279645294159854961296314120156567367824648329263243195233974547085826004338059469091905831893593648856997794410766719415200106915712444333324634323930345355753308586417650525446108707942228774096595337212931709829761310876160331580919408407595514382121881617652191309528456028274259342688338176244836932233334597646886264720524903324893042818760104268272260203967778833672130229252485606385202209253808009687766373105761230112800901887764674223495633857022641320502412079682946018158062639000471361139588025158972849514373228897513435714402713746932438784482015063723483735214565562654586479928672177971535979458596314632299322176348344091376291125266333228399754557505800836009531522140791621928952755406325972806586174049941067923183026850599259175343421146961512455999610801346203380367601346931681539027566300628481489253048286038426136225801786913922376742994274173794442644778518638366697883177013953683484191329368369922500772866171762265638491871962777621293043436560942843271264042012986597193688129649702112902333195130977376614693861492452120380566511219046515756639463699775549136796541146603076475947199092317107475751870483290698955961508057239087358071893147634701068246657531711698240776456451538846805998259041902449796326387750711641055356675755737808159143506446328573478480101930617763168433199572630511409243235299167594817029554857946499825069923094084883707037362023921604976481305121372431948262681655079784050230226235079587580557350102291864635703796365741994023125518219963295567057798505639553123283432016885579020872324208480293809381623049761378872215930149044231852031985762214308060238099447869174148766002090544147701304315607822283962598094481267075075769527587586095808799480104747115854289312345659994401718849368263141713591446188012345973348406609355665177664136496901146293814292120327392087898597211359805077077440386386320906506537682919138083061468278685882699150355267799799368795069783510881089765773553227671638233583034334116218227590123055443868888801574246280858066149844053306988717781813995045315623545457810110238556787432207473927398168412502984667143464673109236891892537542123261561718173438362546245844291011574497739383608580602009500032254256067466648375124219329010061128164888969555980780099728824504904922720743935609514522845083735065677806358879572079019068209757907468138802755937562727159323182438412327266456377030904395185252665244645092641378992756176296833157983777553842870379887343568723681514790376901879683329785630663639556720195470722409478313181903990459413731877444618717060805994229826964819524742630040933643147745554427548011113740726251794227752999964798487312577493405491994863557869791158670180085652391554033940793884856842823282373967649405132765703471781000507020891081029629104540861626856192910007181290513426846226969243571788762069209766977359711492383468384043423950729015137650241826732944294773392715944338965727038727137964987600521531403523023529963551990088284859335155864857123513344972015376437937095648007433463852211784697849979990235981549952973329906335342337496653441319927939217462939408633890408869425090722985207678899971854420639411750880588852378112003779933829922141375955343348595514819506045202765293831675699325672172108118531210339990221551511858185336754162219187614910882235834056206442976713602218553628743577481049312108125295112854679240532686470301746792758033373088545889949312364449435266438413834224395335599898313136467618052660374009270059264406025613398042880040036109052378410304410406777081282802421187615338428957078385815975807725383001083508440459277692149708246460992814616697751174227597326031436480693834171775197065141137167704176037071254361801720146469079171430009914284540860050112948241960160335128199574013910243759733525258594328315061878860594224265550018616331080279925516984910401979736964001770693833247545157625605915361370111199495766105566183835960234782233583446845149878154762195872770518593019586669996428978402855252837347894656363998341651870239446155386556183610133430517829467472776610426972320022580731902525976075591073337469404991384046725849680837120584317988619497498621766904152277913235718047605546952221522902307313784775361542001865657314125737976870704289227512811906963444741107772334391437193212485913501076306403492719483323633047082468231771129464686397505076072569500398635475843534916498926817951032624188784899174425518396568251282619412300916548119285878265645480343494246338932714699629074581623951935384389170220858888076132605379639594692668068691988113314587166905728987189617985540519637894127870761223504334820827032966693180178771562106877585424257730755503876562904888951989510129662365975144670793816698803087566715234475522296478041006714815670238039648204063363006863527622627194679457251231220460619351176109634427386895548958852064679564570305436238936362418219495891779380512735707906708484382671263241676712252425193478894843973729630690201748318459540284787193789890728369213320486137248671841354574143121348319878309724205136158719806047287322826901562706308064426747614308239781313576318601968167473020018507220469040307999393403301159801419585170899576353247000054274529611094769986426671310385902413208462882130423839935872221174177559340564617470313856339445876912008607485941972170459268153126282792374292050638500885718064872007440115649000421321049515918580101402310619038953303869875581064875550260747419758205134064057380212846300591523883189925474719478104346350208286985127300266288642008523947494455533068763858793918676289263143044336594881684787516368628413837621964600024220561487536328285295954872046016249757653477265252363773558463874711676057262930116071771794296394653364273212927338807044278808349759317334837330454464986154139647143823403667912096528990840964676511846327975367317722679155669329082864063961915894442952157858572653775130738580907148777710323649154973483135723299735433124946394506699216117247905790268514659373458891809461978734968984583040932257059143829249083437258282317344372573207207202765469845829548231917255533725097566155486729488112699052415604453862089258788942024297988760987966708351441658277490161595092308911618105442901786470671645777223775152819819815108155076198041970832139773123868456700755239610323648666499248790679178854989151914003345755369649696733107790806590874000043413914123352060806775944486034462703637894541846182526833542242789309991125645377687267845100769001712573426358762502192025107496076381408313189666046891838246368411231988418528478629956768263633282982376675579227622527799838675131683486033732772475300386158055112637401469591284729854017543684120611943804781498957346947244630895861901505733528152139335359448350644809407660452823369739411455507276699229633723135422864352387432795935173092959070879888877953701160096449065952371307901829183340196125489304556012736253477643646231401612828160458768495594134715901082538003030595274843096393220529532327775717891809265130525348422364451007695995649911980307257287146269407381652211393542205471818130547724390524173216779855261283209185173481148992784156736256462667848025906067446005954115537964409507969439013363473648359952762875864186302220807923723909874253105124839006572815411981447799875645337832255456264903275333737692231102781910855424605499781504983031074185941819822591409285522484537434187140209204319455579015733726561219949714463652986762599755084688748402346490860991102259261469300429529326690237951735252950730772133778315213826245127898752519367944077382066459942399458267540562918327843133900502432841532601829196629136373004267891348656945258310777496042632113115966827322081602873278339938510819234531918951749949367683986338216586717399444063066923632974562226178749264723100494595268790588835271739379088227646906166578465877186341985899820388101272848310492919520462513507587352249674359432552894701774777490926851810302970060596497164693022212595577895722069950227521129378802623081313905606729146601479202926390849883082961912663310725838930868922205399964083293176142408746873842673131261914060565135282006729579041137942782360723274409440739571964680906536383641962927204511671362923065547864386655591459759986897250757055499877757214850205925819983336633053069402775561889018399270472986130564766751086155124627430262496914160232368396753765846473911118924021414377485992132270664119871763812649832521695695702373193224947018440222276399054441758989167316012251214190757923001720090126181396570927045847351834502743585303962900337171971156742990509367539261811244043964017074626353587335167966375098758952528620280325679703613898779654588494806543449030034048637478846288174843571465179536926930158071082823723575499242793465049661414881878557118478534909992559727033701359525280617322063878618764745967494562234024876828919348419142656165971001059185333066345059009865662581405086771757803147680046949523179124429497551671733019489065406213390841738489863348321231019183637910900544403757689807733500962434678682077828945964635809307237377147583726891461902098871691574566935578298470839320658664315598280920252856832084513351351616915646167648439152721201400159806853601639826329334406795162199313110467993351136029414051993670938477283756884157838112078786124074764798912145734742560049956615791826722836283724304809605421591430437611113083675752516715216627500274660308413069739880761612842065308512126258308471965115353366933049816110524141643771252561127901102956422186141405342003655727434215602973966440934996708969846486108560428652396362325927462050437044258605068576855171115239647106757690658735282598294217271126312398673847970995417025670752475179104487620377520158715688615714851106669478949449117555095528960974640427774085927753521339891290523594698033204038550295732775172186648890465415931229025750735895326809022553793062887316416632780650594709485469830862330913492767828360813816126167308792098934312837942032768016093908787629647690873659112130138509814811789537858910341853750262356591485773383360804312641114691312515177526799968991569167416469261331868431020090660522302687770246286746860081756963559740524417426964829673264157285840152431943397523574824344555572752041448561934991039144718853521199104339169860393218173519795266307649535299895005922806773941946679793548752235943464847961231317682578388413094839178284129823067749878546979669994635324543392753072761712877760537437462786180784217002774070396384546470103827937210349951625774211372483247121870974668202793467293956151190327512883636768339934111673151714434808615141144473083521969625049757476072557425603828213273921758430048982987744112984159907301570164657765533629450245249158220680201042488290385066789778826667039990643948646422069579207737657264874017976613044857742438864038669129042557764605613836279698389652777520341159782554990572199742723694489891185776883980194469758268872125951637354208194682131479733332056063020981564447785180658464545669394144178859384919107254724551992310460420839544979306220713961169332042252014930816437510192006356665104368484243633756217177430532634748280745464472278747539632426709444972690826351877939098053845084138197577037354761418490145615376663133271483796625428033531732045525305418499102720110191268741404526489421681350654793245233814025754625962429780020246550523882393669660866143280466630479198902365029397480990224439776313797968204609025125899855641975394653045093577061770745936076462736350977003222607003244011173168495314054735906778344870540675155191400978207359612132659334841697484463086607913454878992191472857437785245193759305460235039773022035451531345135567418967246033142544968175471017485848157392277943970227865799863320863406723748620655361316586540028360446721785630212304077132112887088626783872145278078525206933868834632763015290348923268959433979266474677685870819302229887824919069215488103847185889451748799301139972766703948934081032043842975207449446246072397298192657537699732053870348978026642609968004919541043461981199209188845454456204990989867276168800435970820809812971243168040540954364076568809897281282632441003672261152421986043096477573153407660757267790496588175325244346240551352424544535331095027433849316391994405740845000764177322394514885289588044379777085001864244522463230958921498326440510845109961394079520483364548101562408288406812119537240913654116514924137594514754040234123444612938909261382242119442170364921532363721974086898389742951708634626754519116150519840937896117094525283749837115761261930225578184742058369514600109396603640518775051966837431377751700568365452879659599792496170602462327426466136614658278508197694555589343321658577254990062334702445774330294684411454493835484008561436808158031867281370737531640997940123232717132610599355564354777172458065610604954795852605952047368760828604196523478460521766612049776959956207313117839056781794169037085645953234305832076074296707479960421560555734527772302703848016211768827069601892506458821970645906693556301046255600452915361641405974071656990002703731350131140830687673038479345817221600125236473114265963052762701208232427941051068778599286321086724143178073450305472605339316862396191465214399774938466114102002939686375423014269531762393511608354344350647471802175173986467046959824710973136379646682116861240285783629877979962720971024032371670436884033792229652668664300969182388041598992738939690624596945457597925631815771690198498267633803622510623032775580914528495863554967056530009324839229131647497293439849935619962058999062964780864924470927727489542534311830259758650263838390420011196501552261999077897545041796424068790706041700106389933910644605986608961560271641674800039681541449698234486328001452849303830026924853377441730156008737822157108292216183647711502904270851007195344039704690205920283849277539161997682898397938068178788239064218271706317534392321982840592245242794712901420051689384587738163776100582017910617758679055125752260443355501716452331768484106062531538883146936531403517457341178952881584943586962870295985142772771944873249069172291679771370265172412271939669750121190909006983523229465846101060375030515470837802267592621127357141775040744902768027707126827186978105938504646744075641426632957110088636552264130547754095829708997680987308734012022728877765523924062334525011823751063316280818003183108198207072265481526549542812504798358555074229988517710413263754593920231468124176444580089922900026041473742265286402428078533781006077990530553928571398770415477273295235565849877895305358302771137849968761775893804540563516152581984571160975559675695935770464483912488523894076792804599310876016809307440974523270393527193819417231204349823868299212901918104356163584843510367281534332363329545979207027933583744786610153004465401860179358279123480917722940233043961609604557065135302851995274060621389004252596919102856809546317093661465864242069953268911151352327289546844840289266611579127628789287175682607932959185168214161176897557295319790686159992137522729955393670103383903233845426981578528906033593968656225027537163366329908734256497858563554395542930860727827658024559981061284206732910997375675103659452638367093050393905054306965573681144708493656625547617174335401504892649175176841006015304132307635635395015774812893635390116521977107262264649432893304796697360046909045226591872413281046877929867843203020486644310239448043304106697927679417371806433414897610477622234015076233162881085616691093939899238074662071493037527505937743578915018965450877908526438859541763983475183074122276770118274134333524406156918084490898482714978980386513946862269120453757809224947938624188446916344789939869034347573739967423994604534849026964907206560660495251718728037582437040551994186997759815573947840452561196464792200816731294976989737830499685455368607351990037184077065408252582621567898636686150003146112305403082688215531296873188706219213297808703080776391992531315473103335501429229458494763360627060032832791336518320038304980910108669349165470213729455985811412414683832145393852639455084674521307101171820506080893360272806018976875587631996213787221198656159750727123021405990191899920064816468001199349114912807345059779662259552825492585485087375276540056655034474276274665677004827896151697005604967552200109584991991197411959283090884759466697820325252555353223780525793880558147520152963894064423441291113591234801729781165197972113409973796351799318470240551499167261805210355257311694250685602334373869598315090757938752469569902292239242253473483168182776465249861737082951520955231896663222285847404878749352512231514431019607903332912503645100350429974733707697131232796562729497920144727330542854425715914871250766435737937961751185865482707117073564024239803178459182313182398262607695307937032068646032534189315767564495429514512131911237389185122917183881277222939616711835592190704522608916088227779569325967342907248012679124718152600162378006703314371883111907859225291364254819835738182940998134342635334204712396817252775460781367267119135113188676104005177638632879603145649169762272530134501276830446889428475101139652557277436573955148530905249878795101888585438521529206409561818849949544636334750930143909422893085649101948000119159604830258066124278164084402007766148318937235081751859563268459373407093724809032891879374887750352358655634670986044927338727092157174148925583340422514412221002212006517180724051168812135660125260872340851460845008446761860399473553036253200785357585702076681819157281613752237232281680841879347547702698240551235689260594199516178294859017059506189385146080655779452734380289877750189719355588948484691662723379963298159514655715530619711206986594230151840843368229507946454717747780765870577428120193449569042592290597667128927518371975065179483567807674385004424366259849353686882734189273543240363267996517829690547553814572298795187167078303945089182822274434375277086351609821387924184217071284475081051152204646549077795337411768343815874643476991932101768714820462143216853210904605736357178936825252942017905523634674670545794154621888557227542054622434882088956861174130705110725450285219351632889008895011546806041108936353262708377459866407052171766885123446080074553301809816616503658226334911486139984494698870646746682470313164492976685903205273661981028334330204952748003734648416836653565533822519148408148247787723402872819352294030782846133429019732626268676522862794307489801964345549503933959763672030376640005848042066254245150061540838576743155683808767665002718315786547852197908277109092354870667032743439914352470865408540822003399399829458548120145086641591969716982193921010503398048309742102809041244706789678276078938616093023372544329138752871807016066909020728760140760259700160127829480684133645075459153928601871940381649177024735688798302599513414948420105257456514760109118457310127040694610837683587725784827961933593928296964904547700132454291075737859552266553674741178590924381662010633078427130799494912445920666216037778725159821416302345138239592077913934269741394786120613512976847613378620240668387450405045734987436117090816288309765952523199239490033045756036168892026304051515350462977659680232087605134063397851096514206296220768439603030128617796202874528306052025247736122855433591738237397644727029945248621635475809920491110165088351693659191983575896323446746938762235530356849599536959663528472431682613298216143558887672164945157668594979828904073617876795871330388906023828963148347922313019384911818343168763408866508695005655464152613108138056107713853127819283232956122832749717399283431780684176991678072080134673292045592439477479627001456588425498624954605886339481317236016325485266731023846709250469070580800743540806674271785504137360230593971096587477617856504891908132878892910385524302957570857224713515766146672891366791121800365952244308863758128642768551196174674476498295336057540234713455509957453979070116101263973349882960898814049308854777521499742939456693793600616890817841068604300457367063816451783797076669705184967930300492710662445798753698070718078336070384686401910415816097500195140072134404358590292525913873016608906363526788159273697049331737244934822700161785888581829517748311825896844874005223274789014922133982297310011759838692695969402996228593209715774937437233709625262947180630792825545900581980728984037592034211720460025392974556369715266384179349864559969098162635596904923466534397222695211288443811941684336288892105627979089582978382320851899095767449614550380983590564249118807230013750199836497117644607425569117110063388123000747102977372830664014286434495005092155726446884451607383059672200627436985272089654725099447906764340179638386032155005026829721801643251183789536188835129078385834526146413890929617301541239320172195361111697239345303247830787394568588617509179109348502728103745977495654217000172379759818404079901491585206002252608840875184881963593868253649331796195496066997848871518818772442318804810811050209812513150940510833197061921277274939362236525168956953640976529246468497802405644901731777779652716629965533106922080843148935600779433539220430976048718550220729856926709209640749883020334403478765543130079263764603032570076916345118627239796079442858846880750190984912240756531036573230254521712992379250326725722860887118343290361928713971469142840558611605671167897251558281272019212477649578015738057105896462874702278097950494990848548074285105088667995319517913968173443176698501948691272849447369979459472517955639120027790616318620651999407341219551630631530891538103086712179720273702902859317491345023456465347919772934939471529667698815862976762459352503896156580900197833709475511262236720790882486251803336300515960971657943479877627025276972664353862087370278204223298129211935779951950661161806392607309104435010308747359670709328102937457053251929405678992294595340499115802546089849879676035774472296845274078280910046157955977664141054717008858782988893183997579352415539360945040834601552586312631665650562928953551594229457345686615059016965633884784331324184755456482198941450018918569530859099100447184596119067649965073748911575322364848147877587445700316267064914113280127549661759551239882807784114533702679055593288241010567086921527320120885688712377166241144671009539621312373091436003630707606882606513719975927787332762746503994126815424463535091837727596450427749149800520673736308464587293631290344567908084617145654937913326382929586200356321804521573640033125179610983243084347380530942307250152578950268271140688799911784752776105750522104498890784858801732961356312268662779935434211737190412211431368679297699033366890635020989478306404076345825374270265477257370231414111965551836641268385656365589059449498459351316881093061005418210991507882784794935973477997188189198258802496538650134902148835982065647399523207377564591937054584887107526397249957071654717013401633644420775705442875968813756069144103408213040851202670635825652365954210415873383814021173220462198467083236818869337856913818719309901667797769107739969007735368245304618150022927284900209144746085671550065810844982308765092942606142090228415525764844850892938490963407351143350941743228933422608637280688684112890018322071309465494265640277570440765464135319307625025941147377744362983198652477895600417353580897931751539201604971484527531339217888704845293257937338480077821889096122526082196519400717210177873900377907433729755515507481151289177793614855339499561894993456400207718625471728078147664646218905523022799801048347071493072804243872530136974392248041402631863915691446698925206179560737151587208009889431781180932937745429744014233057244885797635990345685875174509022564612093543169165787202012779357903338651635179791425432436097494192725983316584355910998575238504506664466940703128679266225907376753832335094478307531531275549482155939624448570436312135350316263500462323425560403014823949915479871587948634991674395555062877530397312265218073309774507567709941233922914583260487116380773188946254306401205362779893398309854596734346691204895189888645903468121422648550035589368760714861196687672332593276281583215944262881799181607251307245913173921769563338904598137501418775852420008842831587407474830776482919141888176194448566421139526796658258333466305925954331851661414372739736896244891266160154663373211110219843816285336171474364647724586862207296655810562662402894372144961719527572245040001786641828670622357050137852500642298039017857909469250561895909339422760979810449018830784754341809820275261197848766589119496185002401720143337625468424636893220698767318248487846106046589512621878824930085494638078402499317154646129580643957116949599129731078190371509898978144145715011839914506361289254164891723183710601039068665751947343423069162266639003771535205198125016591839735849167418155558603203348388417442983551164468280247459070342390086922926572618844586135882737431913918784687490622999292425352390233577427185975393987346139184785507301210250679436676013067737353526575604906309910549406327955920997284170439245471057221592684808677654328929385650681446179207081762710659278664923187968315981265138295594720579431145700947879827811896834669564031606707973334220313764206915014288041499145429558463927553905004114463864940625334486620493136791053681898231420471290334102214941529384414469310110703736824592455124953555256009313186659048423611528501895681207620630642754370415397770468959413134720766433031478409327289145844947471898876073897474512217676609478782250625195835018019558236640970437315504769747232579470356527373725681788243772524457222337760038731314050444234851421694563286389542343908737811707685265938423902591975462370142628785162869829201621872191892028717804733554520690427788851259705066659778380232138459346369818149595422380188635348204871949345349787260005295147260772802937742838913717575622687712560321565861870868270419816706525871239177209491992527267000234350023859308007675031268498602141342791288469530429279686176326053027591675383968224435867352115410451861546506523356874041092462069898500579996423027523046808794637104992781047988894409998399608781842274746512279280027534227856065870708837164958724289004897728971077125364026734424200579950756010693559590029121894286321205187538428896413281967895434329951955758798137087464265224062315866915120401411947466746790804986604039197720184344309108313739462288292581744706151501338618671553840741571509649819668478566234969950195284143428338369761564521485423231689797473114084656401509615995481318786075621133620423566797464571946553869224985183675276761999836531859475602210326749263313473129956977135172403823606986786202652138505924243096046496223147252185486696821056553244939564813689111584833798810908507329962419276115134699532600973894757241881324112371441909052412256002375787904187002765871899058026310453529045863991371276806592035628676737068693726812148468401557101353487680399137010343647491817840033839481769500208024789065443426856385778832973853996979797582927861875044503135460156008087770193608978013331816191214006167579753142224104277774449428919706558077602323519679298418329627808393017731014301949315717840041092474326561616451914619223844826346268874012545081128603580807969669384185769862757674587441700165799535578349494074472541935546730870538969469987124176735190980555927757179090979200493746030772004494499713432188234927877813211854060363004807171758220888532934928269763929162180408601346253986032582081437640787830614362262665344402701069397615918883194359769005629015381183811292561691519783345040837209199000618488590974393297538812240203873702095268556860377306786175884805553481292155873208298204778454308839589417291447704719303192350836253448325074862199753866119731489930568895779058365180519012756413640447020151613272883160888119203531806360142834074453110713018172748819178753202433215737071057772471995310001578324599359336505649101355726589380870609460889456261580735589413345010366403255556281735473431592370872487638703752855971982253424018187092860753814811173709342754893967408846148004944040541955705258003016939689025831185711558536254653373648922823391650134981842139929623807190583735159516589842171547063401983123933999513951387487461919398357819377571192102413798552092768676713735359016860451619236017677553874447149770771813366837914356741048567007545727509241783892587026564977430233891242865913809595733003273235920888641968942358073525356443172111837255644287624179618465549738739629033550748570097580408370026416961348448793608985798930301202568158125615407495366837838513470922695732074506251297412800602077163380436085083519506136382665977262901057856669247249393249190560802108146360700101170519907078093598421216968769994158504987968352530624495415846614225792551987705884401489124647235925286111272777801206638759509763181463914334897862399174380157722588135477484055379996182340718477981340730802295052024692402572767437381133848836645829819420813908979605160355873231961788373232238751965722067457637020300318557143484028494881689797795976470660450777513041954562261412233089918949221385317142248166080934110747367084671640619223760431578112529206169776194867856293033212245948216469692346445801152370066989235222824683153229526433786919026613297805186436274822368660614237940030472786083172564235507412148085540077147120714739420027794934419389874414429013950133781422055973623764702133643442979967155032934902949075353475693523567060272036861751067714786818388305103978939127141711392267149698929024414763521459014502088029747651809379575085951843553209688809237081302586954301056468631071797030484285505674868951534964957470883608911920895334483107495396371017671679924739203365008794206362826544649465862450222905933148023097741542701299919843204222300545254601536964730711391998717795778457083862961788192173188908829945291091977483100871756582525877148308485851772822342075899464466994664552911276207482669883603534040180254488745475143318176889316739678114768991094184132242275460989011557360218128767179794843840274005313573238459967069235860190980415951642177193370402585432374939536798399173762311464447530535846918953486591507481070077829579648256319053432636187166851106430055639144344233071061536906406194107383440349957022600856344156066618131726512690649811107344020744794384759144929134982472039097961041214783632537771230095291994418131617780732437330584435391854341956028803502222003647901893814649856988445751910132989379145231152809212159763695442768589188572006967327321127371523079321822719589011836872756698159458451875162661324556868665372912818712051726190446816917585331840255115342480776652018593055908076356463999412101701826324075029085341473722658028634012111812100460368114350205898248576242289420844057246478020781232434181664939000883125737560474793487759440471995096283105272847799607104043048896423596615343136144119443917706658759670438280713654618581316943114655231696429081371628892075818544819437513759012151023319091127579259981616030272295440421914448093735676468156564194056365401121067303627328538259562894877623726769302557831821144902623129445008076056175650627612524793651101755929010223960209633216568925616483574924703731018221150657798027412205472906039999470484508652423657011359187652279884981067366785267703141612517966941363496096108909736952113293580590070711168017147371130381367147359637223810039920990584158690523232509031238150815154501705897959104800260089846728185345582277216393485603838156384317072255896886093293257969580480417523858843885911932361985705294119261219980252253880260435116080222388864237615095294466962276753791653481546680934528679974898352150299132479954931672131669906818941164834643829776164779381239035349755013330337128215728794148101079237662677087831870921980226339524542745749723545440935161139976406784521305931039661415864484175969673377403860743834018758809997591056487861091074233219767841824272690477889465888604108394220826849888283660645839416653667090363743138749412669268326803872698474919054386155088622534094734204452843187749706657391379102221657201066959104133857873048780788607232642444964149900638022162078795025714637822945077142764031691597735151287111595085667511652446654994851598120315382901105620088984995229683209110888097494175261293310634269330129909729374570625759531737593930333411552303869104818416811494799340075306185817969098332611545433300448366407378302146058959276884953807666972662789705984817155727393638482510391440051504193735581449431248970148394500884907917517925307880336924328471312448347022732384619988548967001955476641038241119718033936350514243162535174026437001981340455356765371859801199613248215917507248436745549139689740561584760622061566461837916926690745833828804654992449944883304326935316358467385143990171046016361501546707527523213601059206270150632963183479299939913890487368341539052383205856996563521287515098548890536379079384873224182608370332716440503733306154268101056920864697645924895094375216279046300562510564609579976407797512890906512257477183853008110811936813824089022108066338331778987567856976577114025025987364211740304065460707191817391728334962253257763232187258420967808154770764045589401823403542613400242867841358825348137512656547245377149030539199416418240689177664708606929493924289074997874036527537346562234142370845792146523329465279181316111788664770416606622608002063334219813575461159294593074971328929896118891779816556351821979932456701425585262683857684211697240750210471922438240999935823288847427312398925269323707147159095237157039927865574412656684247068689960740555813163188695496280674898649688703653246528845392740393716967763501503267498381099212449214923539263731509329700965370948321446290333266438641549240507593899856854919216346374703875937243737562819580767307560693708788240586441669086050607557555251281138429815102577648408233069381512494148561702978014213841096383389021710331469486778587601148445845959727762255738545137709338208115269192907643188844958365596771076938203611331733129312727765859274888194291680734633859638577964948556810692979043444875663316225826190396588355619090025992113803332410847725764431057296129899724395144983668227673935297865317964975370284752574932980853565991301261489766971188268751011347356973263095975015178939177358016755831134941140458998617381549336287337081841146528829328506002240913403208288723184154117752625139425459526307471753036025495796548937111064029540870343568373043253523906235990156689093878801156483214168568977026420362595002361287321132610360718930959291545506823697860327995380154429314997327393091496379013112334971446952847505786280568348913544239019661786360331472285737134493381947205550935966158822358288618658547130143149059457816687360020064837976005519323502004095340147577673355800796696831370754596574667608159622559293720119024236989081149611226521173421595752333629313468598252662909996035139326876556924447396005879067286003484378190362229458862447525449390953680698255662553826041954207458339172988299422785316047864916510934323159199561641756775218995128327279117268713452369349881740964986262749815669518130697703969531158150210506506365390599292856391329258195469859055075065316504910317351715385308315676027273783411446293883147010541375280775601639469269528203369032855501767213398297458520354163104012216132112753756152435712189597126887957912244653033976445921878464040057138251045211281767758760460265714201817848009673167600834693456510167105729317116348934339622986320649752241904843245427176158548222900261689742510526055015452747382579180751186445966483636478990420133446466435873141283655419515534393766817307718890905189242164426419444524559636132975827122836939708404105468495626184923278413749588823064460613913679234263340013249518826257587783708030294254999150116811940168484183794594303146800808592389557850121779413516458565137444301573808913599816334011217661949303633044027502694454587022231510962083072928308162326471766462168264716847607261994404453800501030461130182521572124129960216397708276494228633445614706743110689540466186537855238792543205185535923349531113716481455194090719587817572573247322283377756101902366978392839544159895149127867280028393147891143405656884108878293028270079961822345244312825270290069578326170833594369924694655320619565745879539047958648671938057737422615665827731280297529167790770543497106185230371788397307167817493668591664573693149886460288617275667342695675324486122568722086298494701998046538949898064866132176672402112487130556928423300231722448474144982574903991733637724114386382438406746397477413665962142314230947030571248908562175724831662071290387632115022254847999175624208294016704301105089168225099180242980828911631590551115681077293672268209256136105130487991355973740070632926482373800707733626842109933680704554354107370173663733952152251759177971968739645238343713324550122772694737195083472399244975118730701763737219745691414691739338027239712543208163344893705706740417381241795307574662258619069008508795903687376573460261591930320444801923521253217231697263526268528440559954123682069667414602077517980498205214629301211162092407579902326072165961649019772849294175223583653706526407472850193707292205182519724304652309992123934610987645028174220200723188530694146389962686735838175946015865111371464044635861954216389413810094549429108414785285866319170897299142725995741009164355558443718074170740893175113802850753625750799101165591984243667613620268211926985324370444875535577400021549250841321285677171983164774756904797465990922832891016082750444302694435728898186398514852008370494979430129376244392777556873834651068883773875400932873964583196440773022773927177661643761937320049067129345127453568556028798084456439365267571419716191919980526929850646107313571025941157119069751287833999582943918918535322223539653213888620241304617009185616142626512135157073784980582377816491274810827575566360708822940432091303973673157731086925640233961214854486520010828755734833884818983107289403242808494280646723197713570945474145904635164760269630486852327087293078253871044598252783098648865961931671408331720819046507749459473331886714894723158547408820686525707883735600040516810232727343004977867623974363183927111768591583905226216655130394964182505517633831421647893379230029777194058906793060802293434377077752213386008565989160123077887637199154934024900812868007552984610178910628548716791765607616920566501775605887619135717632690395775774764759927954081722173070944307166287449171939298258417394507252354452137567110493095235066317933870316321934297454343415123416621751277915958475878111575616454458088480971139318821529664866486277315798432792737499146195250307380166881560010251454395824799321629142106347277629533436173807684233804153313005502548110846815527721113958166974088855787288809820161262273595300506436783827667911484035924316129870596014156920645961824689540253940193156484863365503324909477112760591048366524551052081707299279309795100755292437150010350297399761567838260991507269261036163758021519026504586859730797880565972161296114048930025309669524565787905694021661439897742320617266218976756295253134132488846751666427410900834541749108673894148638151667395063496978724393196524638054749588617402987422951555285039027701871541712248593162079265281294327031099122230333956626912525983978922979416833035418960013767817562233252595378365759022696323685189200350134953498716515437114640659620536379876665870677858123582127862390123716179904545719738746313393115114357663690829829425053725232344117391821840124254211781030967440604756159848509920081990479321854263606020858848963335061984795171719739827121542478074415162561756318538327676532934424403514818667397684937708345873647140791416769469769841957203651372911584641230905212334617058167237526600554227549257055839564832188976153855030766425103835091781260078619989079624406444748864312569548166671550152624033356341380609654329208866836633265087001648856832308051198332856636113847670924251618650241293401667702227335412958079559147695576291644952909170669797875164820960936457183667789875950067351131093693123934522241005030586914643268732250241164875473360477765516375415103348151177857025154684124513076360576671745196480427725992457116852902349145211944768493953649474030360195040934405830817796114297672401047434315328901819480364584374007878126942893796733108853255983110207579556249676780218643586115093151633772947589538184854055161338369570453499498080114928510016334722065975131487945273922147538987614027861381316344255751126443906069559335510991028285478459426530474833234104467117375028700250600207159877421270315662139302942614218503692867743050770421929932371025169815698241248029916941603887469800138148898193398342725192788153433481135311708205905999463670975171567389306987475903199956777614603805590200969284120712670719814244691106694626894023514037339051785548743740491715968054487592945075051478130401853289513512212186866231654261122306040293486874825684366894546521068687082530352173404811136972149692204367599026554292125823955047780865427483851176060932457248968725919017572853776770285343879318589834409171913205765734645525606060516505009566711357495734395536260387294203408938466681070122323731016466569647765798932102221903666323665558120794489529733515335918489295473995713155031216538600350282376805613577100533780684391898657846843995612718431294218319170521676386397362697343697561818310025418575624260107652151659704285268423205713198972257250157505944429343712589779618691171775170088563835801605166809161877549600440626109447897162183601295742900221729241792652297981914473753946895286594725257055019525326572420976223873269966761325686208057258034989025507021714119186218109885858681953178477372426769326070505771196928296542111810105504729281093377775623815475231540370276299272869578030610684695855602393484741181854878340529627248155505318820915336371732814964495275937521244181760081921042662816108890659470229880815360008784758813188096962175316747279626495065852837724965264483920988023419559292462157450798016579501424009434689664137229994497203476929617174862773857656476666269246761868021648932404849455974578229677941839523281337295585819737265369838814273771100810829713064638788430384496102168605724418347907891836512595407255493282436288295787285619992679108636259615111190302496815619242133390664465665818943542527800832682797807865995666711318006659698395830910129754746704613323895216498019138094373352312694258001797029563438328418231178936695162131410785135470085266232068779191347344395652069770971223467708671483601370277992038452382484451689945637012820263228633091771419181698829440307452412576274205429285095901411806270836073850643995473834597370325104191329004008609029479840907503051772026048517382475391155815700590847938865125926345294853229901317418572798282459828270714855948562941538511044871726066760089048841037902878489960723131283251462290509906697713946481813008712053448621843729597224736922084362401148108831093400089183562642806789423548940563262490875454672610466731674745809608550168461629155813635765822864149109290637196980183186658927196985450229649170795750432378515411907772108068027365876512582081674188052178222806889532137848020677000797182998034456583119402670776191986711338418278542367122252406143501016895532348719672530071030684775489958673733291575751775815517511515516323819885398416398123999161343288641925741923123362224130714882757485218265510492878725783529561644266230845922318722684115517277470317809394318859595993925434780454430054435041130401258225141491189074927659199443058909862424490705647298380181041819331720033909091662153200421768740822559227683007537285404423337950357229753370508167558361558037385071988656586962839267506771868591539976840368862093670581866977872246196687479251098858371023933990152760269270029480132799100850589626355749185732048970974159616168413050589153670850407750944621825283562276406151953736205233769261941109654718033832302352648081174862133088227632520610062808383453196173004987330923885201765521336112758415628975590826509551175928349466956767851379330986960597064306935179461350254786708491824592389294956026591525005021118751985714007163566374429874409203695506224350124639158995141204873367704060783875661883691591620319436087467352151527286227523391740044691708830861863206766310021865101254011822363747238062992818589456445268019748428889383827767147335745879034008084490853243448391401986035019965385408649004775348014710922618076246752382945298288807226371693652181269083043873622848579119835855138471907622931618307102914316097714709957126908430257087007787495532620228606718943030070055072920829349686265731977929642517985768553621776661770562674603362475555988663175194390057025096507961295150786871858763322007101550643463398898634772111916200489293658744917225384068333092912930785423770807591567955404210804896883151090025788419198995586070145920777868313093395115590197401819042672171868322582210224292800949705857368886417118363730887477771749937794775147266218468491281595670663920266095209303360776371256787119340986596354710526959206153945376294140032889393786609043817108039866201980235763808995467490615977943411867670925476966093029645832140068861580899806318191452651448800287913336808710055705886713490232950145849337822977489362513024357947650926342396919686741794337084845251490558253398224466867175768135088647738642813439209229263260715073558734442356997841021204187796448640066484442012242962057015451229672670363935457499234743675637776852155736706239026592533083317655711854003565382095399294287737078910899086622099955495818685646600106512378571407312190617408186430230193674659791559612390620342527429022348720887158380329133523759442566308245876457444708642705480322170609258871022880754174700237742437298742253915030811002745422988067221402525068875231518818623564889597604141214139652395799286061866987274311496082135211102779403851823857380167270566038266892984068106939505363270917641621726395618229153288370008322152051429507115461534813458540684437482881748687596078903191948925605226293372893966528910056852464679055543817388680609108949338829553941214533787422504961709533504933506039352630870974921392281142490428879541316906589297024026038174604819097641769573371004654340548198580045474120387123735780825859912647348490040611546744727441298516317209144647875462786740360438586737275909269567399398865842327929118606592909917352990905558868517565714813032183556219109256185890264859196185403748264252232251557975667639463701692274626812380173554848180468265711950596465574393089630398896715320055601882509601893568992694272445958768247522242072168963910000950140644412404279603924089842694033517283155659951825868804480673883168232659769625342174494057467638966841980813879581283874051703649782497756774722534490025917954105080234242831550501927056055748638494983756142945297455886967195403688510342086018186803274990609293435453662491163376588568002900314182501972477547586543874241334675382462827307632799376583726132964566795856237820858148231839905025802521389087852777646717412749761917871272135631782835368030686223639364202441379374686768197329413086623969601960952221010877843592648203560076319415533262997740837597361845135777778727369920959691933528930925569239219255545974531230300412122675270355756469770188149926977714053641712847231852354696798068025633853019198478690668023192049193005728635059284991016304817461906678250448766403485941121623414207320155477896276383015294198400754588623873856134620851699388604072071264627276169095029775294399230736876555636462433741752746609222584168152664309841932876038390112531178954655827599968117946052540656056229740917460272978243030578868884913629717248441208589449246875432481709067475556959078519968959120974629864850798277098004084660711269229584385600892547849505055326517885727275100892830549443133464911574528396395535731072741837811988412010744681589467692889934419938374112405768498265016953907229966378861030263221628944461975058900154044750703619041200071310675351940951311770669386492349528182663518732105461219597304231674516740238162442509312502271330236806929613063027524513845313383636882386083062027493890484884905285581684480276202921987229403596174725328222974891672604516861204181928913225151008060954183479877516001860033062048462004744678121679500261685065151593017639560861331729142170231381501277871565865133850179924797374750669222114315100479037988235976458720041798583444029499656176272756809572643329519234672888616093431510468394377315572570610730737257571104653895444612987653148216001408087255679820935210378216898266828916236823218089911149121578081844447428821558559497680919484221889405245967760941664208359196394922013831092907747682887027878916441338580451924101460939499717354264586871992226509807452460684178650205498930276036193272026129574069604174195423368687112831675749107943447621489558109265137814870761017593140154937628218021946861695524896967506220525236903543749882377239024770120788137679748014128615404290614147083634554723576329308304681676353600754102813517812190442789557000955584154849780559534670942486902568612836196310685905762978218736934023724017394625923842653847619118749919102979165411785367646844030480386712648478723491521952481795687997772283848291624366745614496604551583609395057638217634287988770250646887330736033821135371861556017768379648997751030563274754335865055817958537516762069547973151666566410917772163176960289755744991172280691266499497044166190073394852557547876894674106853403289968138960293929396880528733968617176709520953314763407777796791358937130781390567121937655445144480887460798822319234631556591790645616230382115147400483568817644377505463725302561624817470330865480725395595577297860225718700610477746359888341812836849139167904873197225411907118323737695356633044787905072043640336514611768614830096738425643153336900391916360050044788572498118395860540097917266084156990471702014891517885898016942415204730529781318338577039444451479312691531112251664788100588246450033689013034117473499616618653150776385062539071423266761853051120337751842834383053120735123538450720167514206461417754911618276234457422983329303754146023053512582283349318791835753992360375984938962781731882522179298177964047422197327041964404332941135827074184892793273723761722863686315696159594705050778476332444637336570854404342525779491187982633434871522955627706874925671582045012819521128142389939164736450825944572041932982095565160114328969896943632272298437254164235611761117020124447173379172064846899584257444631508797671680103916179287863482492034140310734959726148896317365238595856402651379502950211517413876557030986420209206107918738468797679974534384745140232918463183576262561259973491362688164602031323048247466176721013799203434203557957635070418346003478890169236660850115867289348951592457499118971507431107690572313992865528878763534241495860316167194202082750279141314513207522048864513988816511262450978978149014315852235603414672153285773856246136026640762996936014450694952541108725845491898562989777607356869099425831171958001387041441805979752496836253451532087515090659078273228525139150339178468052852873887604322347283015363386281798407877676377243261817039393849413037827066293034509235561826355123265292953276692497301043623414798535914128599654538054710569222224263555248076152638397680097472871196945831076421352800131773051602972089535694493242627890519646586506738083352274126276838776302275100046772851387473708237606120593510175662169381251767046460756307598680369269675819021142520162729122958572346772403684572369684055963382489603444041350021091316810369503403788655635520757506096978183299625536929189685759681418506557598648497398802028428719067057276916013899102747268409974542081042630218877800205206235965614648091861670335788529291276424979421484352940298396014134105449105965887829739874273710675364834757377395669684515685664417079882414394314128538620610011895801593406938043192679806901256607901786802992987846758541297175702732696608002570638345958312141254798643031835196110612596181828541165343017000189340225255062365887161545298121493730286634147020563646050497746133604042015142205880485399140156428873437248657821957278288215719859232080974185099249195857066145947353706557260322945979044915816080723001449900247923342053064870243927931741903539919604992011204966079212610069987077996606469441210140883616502194589553527039905612754570609598783672510953871109176998136595822875943224378844892617471756828396551341142405076543312391524632739506138906812109362317338577221149916053115859934641721546227089435363071188963229031198740220617756770021003005377444711196369419430478395900712718503378050000764218624741844151397385947534329684008626364511349399873326833366544730990482100728578188604688799559678821834662770565335657991864968404525194727615196891266159124373656780604668813761375626776678255031843027691755804272810826585471281912215154707502678121180508460387947860676702013222171672824781746936327695341560250777251368853545213452805044374220006809423796005277473198010053298224224570938980670891054824651037154329924954476277579554901709375820167826541346842089352029371319206790930894331622959676294827599165120619742866757736613796394577767961753021056675568404567109048824747305595923860511758941206031517538306939925401808647606332029531737799723011008778332342819513713267987389229466239839952615270596580967764538582373656335676687283209512772805008829787966076194605708229629942078992315068352381221418449534032862903236082200518658219223570331404678307848159310756142597410713045923517424757863444596998316232229436824497973714191413404932418645403720541423754276518301883334911959650891210160832613610412091362854124754398174862623100182778169496072817955682796746549374799136188366322991813671163945357548261387069252199990129247256477695366568235821793955582867960414648754059328580405251833075227919556160563675497416098514255990462178625591966247653952095579569456596385910247597986892421023829473085622902491350375821608748122208701181962280483968121349111426018028115997871029030392532215958002349315978676759394371868618047979262201821483933546842439063437639840980761776075567806727143276036418238317779710745966679936758423561333496002734741913272120603228174130474593514159021741101361216475015592331765404566437954859534577670487037037601230479618677168334165972461108879589863139820526657921191687154641045625406589576432698797227760814659534172265918004277206116881948162665830212688908812179715424849419197099641887488274238725579047896474563149787617846905577069736118637544667496050425399964707893504099603279567137574205554691023291660983030260074486710008145926438046011248515441790515643492781332605571459144077367248662609910359578869107495230386671208419313896802649917619190374239669759664828293498751069646046002640497846115953678391577146937910661352491490484243503676435017276624933785866686520172365993748141284858868449609722892247963210896824895074957718498023364339620239330935100881395676114949357587179833757240393381843796053993968450756254177621587764952723134926017547578480727578117479483023911888361000772736375240902825854391809720647986762443531542083564181737419017328129203551632651758392636661581315751735184637566177415225640577275402848664863403132162133261250660791169275531684248801193017043924322653419141769022450328318058397452520751143519938623400673805588940101406123934299963881496960583501193821745785218542258586464224408249146939974560652707681197684462381287719151192317719898161271507701620559334170779956690736766226058782530239976518969320500195767253749407250176436663798126884080646936265491442234678412097291269499064534002799945071796902317884230168932145587827737612562238498243010668481937592704392710141964113479404782779342541293891468727289890906643549673499866261350750557169918059710550409067073233229837084632751326254486411079391944600142644372182098392691699393121470042270903982303172937013917741832089146359146507491881777309788328605307634399550857497233267693380195036516729947910375888579249062158156608945799302479282854560141145959009396866751198115235953860366753182271916723772536436183199364865644750237418847409915874628030228604501125727366313816404862447667775982815664814555635195231422948329894947390309971460101285267828580946856043997615588226901162221120834655595757265949093727568993337556829928090089875640159210693857663148600146251908770273165295424825544836638390210011529713000166092141731366388402546921525235013216914890708609199387754482032149044726387864296355657699087759757656912372537822121172285229823853682653549572996441195671007475966665649235092307089340263451322457951622640148169700451085257228957355301546830823209306171008608640706260234030032723164938648150944924082117134276629257288281884931009980585184605858350033153523614258113156353634556332948934820159189850161474118324847802310166114395363720034051865216497192626472194338399925530569914995488172121614160715339035367723035822106949612079332875424402125640784272714234997911927215665819309972866347634913594844973543409827022254167972085393212475437698894568547543935960603416253193477058703599200454253802285593627656868408314227261145968593774090498622861025522791529432670971822477345288500408937226562365189887495110349571720549819846187019659843084100714162911790582508879264002709774965301959808618201968907372145472288270530278243383909720852998661908941900541214441286400228073305873270889536570186759167924126598903290929723781748523377695205684058592232689799232722284833679223112730042115545492490319838679725954306726555888664804178994941048825553098185355903275188645290576631436304670444553422789046453564783933675435381311585864212320030758319680820340287371348302171274341785551629095088802167837886210496633388926063033427034549506054793217221384653594076965841644740390479820412130376048197615546288909053328211457892117521528431165351393747592792599940231378943976128327950472545576574971067659681557403866759649161429838140652305532195214501069359150682247540998598423990784124134216044335018509426577865393314030907534592738846357930649883996917719564289390985278841383066495816577560116652535428084271411900350715574460769059939406776411580423446941198322928384555686387835997604598462032756238883317497062876578246085614402865932684933224079249662282505323308169844330603703453824708741496983665420335336663436957557284255448868254084152856541517927180353923398957537345946625478108195732415672414897637049963808878635484210275387007286749016268453163537095131075493711753647358027032781039175213229892676057160315140552011553270899804470512058789449998531392950925913009958648988429142295414073907508909320508618729956294877466604754036512421911108925138110933436491974853307227558754908386062868602025114378141974677021825247531944850565553027217795116500645175948157889447894202424325480385014776092990190488443908309634902482986791025212873582014726599748759398328201789616303252250209471533293529577478373277805519742785107476073152043586464082625478405526535868521956885212969907450849778058467239410635346606473139112204548928866808735350652841499044756578809876550995786841845932520627281178486349397429336481390392757797198498879148755778358794371502725764401891972273684996444177118724688974943907160842680279437017276661653863971248298242059145610010528503875859321538058031707975686050849545765081845179967801859984308728686624574082955385465601155131599013145527247837963716139526629930442470220568345496506549557761307024189569885758218073338462204256324774389125536117340691460194315428848930775580734414858091984782931122722788094255037854728724490086887352375159407481585567342975081821506437341855619068386321921422281757117672325616731774443804493238204511082025351088401234628145851963153334638672946324262134135567293128575799519975115667493726974439784737955145068774857396448888126424799322859904809687923302563190987085973456071063577181712012389953797957006022670600496710222723353687511003099213363491554957409767345765243684235466316579406199278849634774002961031401712961428300039529018601518988436507652889660580246502254752708968127029126129191949325619858263431384067554635995851414029903111351192160786070273785138047308145169725883906673856423579887025738667308655994523861816325157730215735798215191231404792420535037614658948437656828279946911892369864925301591099033656846474707459455869586262139743563346433436240803026739517373778753974965825665063494195461400128336583838589660172563271950961606075284017485667073267326472628926032679240406662562964067964813073153888684536306595020334246450832431868888390969083748478126222163013202198359725298920425610097028909243640882615416656331966061187158819157427721572395509695872846338470105337466261643421454205316136409910176077333206852674454088499820540013103615799933568523946799014396887048624808644856872051091609919206131712204271102300823530913017835540840148084056840703375692174299921059803372738328828281930906192551793661262795574078741531486424908514634235338274408987966186080900206451210617043330967006416645318804948732982071943777825929302871019529910053820768984799283361221829988704455821881462036351585617739400096488618508949272699186539747567164477341234240128469184888900504102373324313032035633039622037426047828638090451127434554151389843373161165486604682817969105393824839780781637943885602596287527786238481392544225413851705097199640034738470775002001251159054782129104642423352563719061483049348931823371486278370521219441390474589996710644195518379081036720467061232135379224545769973737946856335300870173747936200171511070629649478182355162705583667618501722832907256523933425868431439250787638041796053602948918712605075440001705655575077513650618374777160087763460445294975930178697782397449930943101677011254866860775963564315917812432545663731420353896049062734371271285626200959623642438026213704244384850693386250810563986612035058058640583739875605244409394672334740161722343745960018332818667351930631816850207360741517540011691155095987943309119226975424515590453472018351017483004894197095162378930712170507150558736693765327168830032569717881673843375461136966742913459311624896678175125038217937270295576609823111337034679092697771285985534709597472928631477866478699885233263723107151596035989769411972211882270425181207917974200887216207500914143193449029539960492052841324128854954075806045949099836307408542909753222939246100738453198025698624468951106077850536225930941008774158640032270412433275127719730224912042317911533476294291487506473897183475872492097045741445086184544025403430178905941364986435041608536799602451780350387873167532597761809488579400196325669985097150338506352749678792103329335336373113585902051034654576627483595418101598647551812964400961413592124564441346339409324593609288695857541627657826289064800855371084758656528513803794822552739589126275858688278930943677409021127861952024241049284912058248536218456071132234484123252599907143223145719670865536883644608244841430098695985577957585821523252130958112848021802482414726323062283397066566316047121954388442967332273370137971266978051328756630069725067129951484184607208870209965224123298405977805848086752793549892452212564477842434292486251450698022916770491801313055364891745141266008985796407301285167491161672729062164108517047607048984848077739087010941659985061200426478685836589463877428972417401931094330104245545488643577398769668500869473702142943775445156748566505116169762227867306312534568288343781962158773237523117317307310895923217746175633535775554538779192984647795365764763198781517827670396698308198180735746632404619746947826148925516457892114205945208510395756622584691410194206641546792463805321766258324691825844823452905364402886631455582904963914540407782793468576326079210210000669822389345552270831284726295990218144326262154113552137390843391179988150433394472193703781103333690178630377588047537964597731540674698804327554448546529143370659745279525992504856660912757629292312715347723111717483991274846070216044343062250278807998928267728772301045011785553547324193589102674304015088996026441542899234017937850740562478094433750762080637568729568468650335826964477471663040743386005261392125752806469279860087909854021795166258969641521447065911320366626447491945710168696998414818487415633651172619488673446772048925412163570149354647784976903745225118949495995783215096384476314998219186646300240479734129393381598763538862846036178121515088222039292446982798938357372367932762087902697976424043666092152342933150098428331622401396805098085958958140654832632638284006031637869569027819560107822356091858682465066380767020925335704309346995410983190254254950289513235521713622678154103082450494332014710776414469117026871267284924677196333267836583834835236495476085664911901862901580899200909665085604395218368004979126630916450043904035235608890509894058599671686749808198673052905393818478049674271917049920417794175761564122268925500955145700268952268761988919415867525526293296953307671541634844022777587127953808838230574653019546537033647012810934991603095119343916333871438068698194764839185138845870626690876844672418052912861663840312718174964416586964581508147644051974877705626186018166925090089483522245827232493622954866866971790303732512296731126770814381805765819748016485187640394950199213230279029734377647883503433428385627446259467762796215145056409748062645107125657657240353305176552448295378196133925768287440416127336131277402554735080476315176631122065375993306486470850430653984876684438645501851403887022293171870378056654008818765710208039694040740596043442974396873232025395880695636239024432784660082910986307613147109867391613176002981446425175857722770944139636431226728516944924664444419048956757414900899604533098113473410188343950096300049822066451186678982654103790469061929567300953637230106875277781313032384365404530056768519037148013434257657231450055048664279951026552600667800217826424458197923894924805842821418367960205861616307521095961627973462210732097400719023845933795081443198615533298767315944435925355595448661793422283689432389286489586185552252225688461777964782706376279019137295786381581989439507264224399914529374934248582799379031771400674103541612715548715481108005331290704600017286101978568551870776654684074402794306057276344350082792122462909566016223162045134593921524688780523344332097567963163849567209472745906429918852347226219921669553536049588247820297186211876304165818189634120812180728450299173591258820871311463846549822633808717352864944207484762080313336641897449657591021205456257964731570169173484042258099940536467019509148459100307201938424611214248035236373220547071340538285199185850875241187574451155029508980542241478527903524970483142399770120093417344817542329564820450163870703183639709582648304478985945210607165099035012080319624888535776142410165707886281245535144597112192129066723363908126551161382159737559912464431279049820115789032316817649039875246343269241648442352133616885725612998170158857485007138584512944643708768819757744170706195835909705943640840856956807635279588132505198087871673029797560856847031264212990449594159984449098284444108779571557162477415172526768859236990255855430856883412856149172729125044187399161239481271931139156704064215657949329311287878757495457210600899066941542178800755111112587083680742220997596834299833433029669093937813699090194078939786284810578355519420634262396179665158371630947313372105379303133595784120385571500736424727132492328015805002729436325435128382911141039197126415227271834874246307730892382715178897176846476611668041903779330261522665432305684660984514766386016173678328016224850401028555245589528836502848699829672157561033181983190493585911268155918793099288255576345272957521453387983020686017231415124388746560334249070557039467309238089683750266267381323226232917383895680854983407723179337060203896147901536982995400587067296103429638553787931425653362141577659648888214542176228916585980707601581633973726955166676954965976443843003167374606915869724271810693659721397449824543576975979839012042285988482546481118273395746422694043417400178641500376951156969879297869526020109924620296851863890595996024642269514534549699270773239982523593545210125839801903435966517095305870081474951549312926535611022407864580129800190729415697764804340583358959915044259998061482165452064911114994688145901966794902336629005841042670847226862628813202742705970432517783640689723468189131179691698159053186948787059856596453703379683816478941081162862396498676427856930154075990230705554244242973147589219368403164817785039687769951175066824844195310734121091166500507195696423241745052921859394436716273270978058951683888984770191266128952315251507230382049429153942731226823041772026372934410237912454974066448952548983182231279534483331548289275958977731069911650253356833910150564667544388275622897745419790490939081483899342662052418222096960116660509806038742000902229247748580830311934663898254475590844724664285799812177233002071797395974362102973597600472319193824683588942689806631846156370417519721953255234209317470878556601863956681744879309254758122335417612732032306735510078652230714140596937449825457145085635094421270002332497365195304172891171846177549033583665817267426667065661237149104873456176335689237561396379650807919278793126129806274311171719243908719271906608768008071093745777011072980674081081349821931135553027318340428652973478900521225880718193499580329573382442437295070579221271821560059469845663901292197631658736056348162906318390734437225838963951489285023073647720431174945716836577521591476339872782174183291810457337549451975840603932478128590541080323429764367248658241419100334680746333100352293120705902976013993055571431390205091906441149699884775402797710969546706529736328926192017334451776723808068416433386884421123773516230336143811689011146731416666099751938299556577010509040444885394778123931144286204726246265716580722037447859811646344845709825969042736608526650042401835824857628776968761068828544672362487586940611328656113376172687244752919560305967833869444369545246080702820904293841745885728646876698407525367111900662936626318309587973375518701344590574798565016443968056536276019765741509990223754765100032835645548509079058255899585544425789289451541724168853227491064433763145543464094595560330244653310982169735893220440413012162457401277783555779352660078481736964774993784252704733750132233463040066963444549681181464684035708968926820744619656540263126658785203407626952804453670099447911553673065780122600080462704709040210171513344777491105033553349335946573324377013502471898934646598014459833771338860536183439030288359785168594104145140763440599428565849886351227731704892328126365618506300219303429493621174688242375034681493608482871683442770190703347431814349057776586649547134496545216326772194396911052700148498775013280517715716246683285110125978651474958768796355360156319327895900792624048912826007317136805259650266695438015693630206580185934188029111840154076349046708915172672926707728381037597590556313198502343327605568952806941225707776192645724088722075466469893583184166803142444301917729734398926303727987807813585338145118762425276535790030353945148906504765369523091601770275159243126701295791977380450551479702407614173935483695559667703050390862958736230943552680709552995475408512452246288271437966949947725064357529956283385113412751085265895784208450454149558048637129611297739661886260834393777778689764915612166127586711367929997564416653489673744502472688826849113121669648139926621001880507841567672948215490793991200329472393917943677728946503693552751039657042715689766951302395043299880778975272323738563999169338270680569439816442522993324850547595740259148316487453136689983911039264422228758096748913531888122339281017584677915413792204202287986990250180013980264645424224756969450287682912531587263369592069431697554540104424682091332237035026485250771091619788778772426100409682377334793352418023500950981351831805373744324274981940554565998809168182825983485652866016383751547433765439432914964940214279002957554285397842906962333903546552459211023602051184267220998933605708433377976836151473402763219503168750174741214032612452675820226980799183228281447335843179942728769532703255512875169361239788192294542805731132301864163262644698401107642537002377388824071296489141531721266764010710111010372905054691211102752539140979547106107595391804713772253740270020754170725715714399229487099256002551078651605262478665130682585131377501501270270523264984962912218806505987790653459992212931145659700793939590449933386021923531820717138834096145151514294261993687545759962921421582831054840833083283850240420823103315906904366974251243395828198158998684223242246701489023384890079674136997401620316165492678786638947243521774783382820988770378591337034761247772028174962173443742062528834682210947151120452332629881980056593782740759860474217493219553684171615772866447550398551255519549732568082184400540028542272454162295452903490418002817938843233868660331683895795119234422779946686540079403662719527922244714469216054125839036470956911474793315036916580377304802019817975131788222458610772199926002787347281356420497785756872763424098269128632684172476988345794880533809035329741922109956004291396348262011432364627178204552225946445131467908457616438644572997174504968292214448385088298013710130532814123467443283380067880859630843907182479901959261152691820832545985198740065101165039351091675152641934579595458471102847246043284768892735520388757607380405690643935407883733205543597876560528709606883535069016784138340423186161934998841798391033643968526997843486719822863881471734841319957481315068794050730004822864077541253664838266327616680319606193010266011647444110293455665036655287971613167341228658764004139458213191066986750478645347368996875396013364929290420624332576039902828177370565507757278031496258584926649753228369573517375672816258551064928109148578336815981654119091682004691760683645038890061576807722171835030316731494546286421792297225983602662258805718888878096154013206978413032330082693836933797084943414795025362925383588339366353065027350204299422185156554910641528737606063603777420013684326149105529759762203308512008211539267706673360903973056153364839240869036372304150087018359057900859262112520985603663229332646272364922667358644958946699683684734844901168538779027643258857151874707867259509787285727912670159104529208936157185274398896859343514291075536898255406097926792934545156289969886576555783513246576462868786393022736735722023837606548407038295254696142278790336794289026764537295868976466779501516198818562598973393415869623020686379078779360716073956156800190594869134507035159218595260483966117345468556300120839330530352722587478123184933133120713213719116601472496196038854004222348376424830922670046810148748578142002288506401754691100989881607539100744211889314160431756452564177590111955944987156771693623196791453255908990306249464779453571075414890062773983161203785806351098589917285880655369811057140927617064976296870936555565331887874539711140270930955455572535736360619629361512973393036820435713071485714923657483589534732249974027888380450944249413191617999121916406220158846690171022505884426010006655511732816105830153936418178821864892103899789023486344354068156645580175132716975706588024231559937299489515126686790921213446266445205841443677985113774172324637670032491860614114953800446084392172075451514064588098348963031384964518476370848661667363690409284078487000063879775659925752706141454037153347408740476842847768632819870039188775879351252081013739147965633763646558593180979949167261931297042757055794659968166252012256295462879980010738007289195712256535566303038394477383587562298135625735759284755324456814057538054706415679536771380663700773813025996394719533005800701941557058260664692904315834511552598317084523942723225375953299277341605993716155143611735865074562781692125264716215933951695831378761022408424080049523516718045076733563505067155667310358691080651868357529063494148918467355952401016788681715138949520940947232387654078245955555992346589596650440881684936074239865470147058910813821639953342245003435746787217127963424607592197598001139305622314467422553415084803713904314325807794324316914478066640445068603046026070348066861224157891608125048947989337312729508865692223595311265078271729319634702072957821609785147599874385743500170909853076735982898196190323314742867474852909032180796791251699723031270871201463008625620683077570049869245165747612255196920341606415290571176739388358941328376147569745695026105813822531723420318474319066121630965675349992020570085116411188734699713755187834815775405404137586000446803071686194219579800005063039432830420466158078090821174039378251034135239870374344855154579471466558544999015482810519894936703395419553360771954089284121144636902102151931529500131901564380038399456060005058995314525170130880400054855269971440540061568608199995574414580112992687024983226705783409909559452087776140967227150920266264243220211762551969221524740430503033921927356274667980034329570432563842643699512023131254578704846954207873463752951176541435368214962923514882090622960682399168030896273120086009016185293235045800387485853552414026765149369523975155937096684368522391769364367845437621719051941025754235623545039999497994192469473720916453794549881751229411875432158084949186263625979628136875006662058645260837695661355173190019877979262577796577790490878640858902008098713661855613004897782628849906192890822567593917809609130231637350649329252249579352467709732947862407689471164352460038577006977154225940293997210296750280611399570674968075047291691942587731662207653852756135515131522152753820356388838799455383979268587925564546764003816835012870481736797404234112990554605316125341922326963327677586583581349552128056739993777183280558847957493010573642815745950162918095802147908266188959875241273958303466812018047271955861179851843669823461035297508964416406044345169474379092640679546859988833232415287361647297578983664363524726539520580658841710444425358425399738734282210686508253449289962792283106012255865847420613037147036308634911358874284452174868575977176485268568511842138981898653251881431756485559632113808829541144157394976354634398085637124290961556373293941110198878832214384383669746148168481392605075898165950633108548416265778934196232888319522036336301726492885473246790242026364548014061832908581666504475397340671240691863855787916156489118598510102366982074546404317138387998145371017246272537973306273418707578734046887387885152612774467459354106345080745997751692503456589159697140510749821136790657109376509526636368242514234901265748040780720508748290824047033572052879375880190480621475255409800875385869926335536616596298640955091829580106831805936821357209898159046871197634213984639829519717905837855320588738474020315267027318867727655444412704993791839129828896354181524526195596451061678573459933614543027659767194256311166624923546292034317005298447676884436352158948835324507720429901810082346170195664042528578344197571775376813617642731240000273858932139755174328154627558268567011898993583755100186743434560005877045200754726503975093100900069913037667398426547780418259140703738442486791609731065554090933539788708043730250772572277950335050173993176237785081689845838520303585052820505584446281352992948164233013844444874572678387977719126950476142918292949866018732430015444459025460367220295472241035642668789288428792451305194319767487208271905752224961431507848082963330524554419227227228260941319807241109733084158756677930219753326710041969513859755863395573125897644422398125420674623612652184689116651485350884512846491611615938086251424976767212610045614884215487371515611163456236629049798594109790506313092462735093263970623056292276500568982514068316706538284408295761100826672087067599161280350075138664678223140095494321627600719119577919133102375813014296366609148712665509283341056590705073150765070881802064147643837918570610300629239792644710008411779591150832602751748066942046432391499415731713490441608079038266451956050706963326408771084129547684142170039122835989051803285916210538206606166692206743201788775505362589600872540003454886774907446355812618561667829484027306098677950237853001843924319758723205691081583925000987900059239754576565229974374074491026539814489881704902824943610003842335652241257171364385199507401641137375111431205862292167413997497732558674249025820708503072145912425111985186360702663611245436615383200092829668053286201241615902387524755972616284875323163035085514082456872369784984301450531399604218145459069530232608749192752001428898639239795602556626892731815783245608125224836515357061364172271613579018840284497196533573017420955224048011997494106600830000177366301499715010774277416084597331246203395934101230386113133086715229071396114813151861166833754239321789649245462229706319417550134089371962739662546457267058669548440676828218628875677763156663877845558706833718439254539644472725688985542808752451034219677631172291187239667652375040913018085528572172517517548375526904364681155625911492566205541049713261280975022747659198818044240098379252783283788772538225827888514698137554067828829212303835912748569770054651881684686137797306961497869661814802221768555611258608779358891677545921511079875627729590106860359830552328820340273254857919693504662987630308460030312543991505784325908325597527143900429279754325569458284294767785400055756812829998475325703178449523297588578378745370842730951417524112393796402626269490223148754279907518146829728835346247105847262979921244528926333333995784591231156448550484207157994804975553505886617915355497673181130129234117070313144707831661340315776012767008441326162330365361319985437869989264167593977036604140497545053279899760470169745968894039730775632251768606853223000835312275051092991212552790809308644076341736008371140908651178994963412435320015302242054875449330523384458375754522332913705913537235894040865144388444491914622616073616314172687639626274319760754542753299023942531795319234892735147400021819224137418850923420047841122106322163104951795965940040898007433907934197591449412435734856831477335412629184726262707045736402703873280293029593393027053324406723223051650845803836262381333319890145277608182958128956081522517592542090910535390352077325182558184832921692405436509625661495144453945010926918365938857023116901546827168804585714643830133144292986217161333027849438212796226889968251769067722698736970595927689950720974632687974533593320654387960206567847033238462938332337379528056497087613471664336072076786636686019837501915000495534612839740929595391953060366702325784913437633549294578652387292016947196240929556767712818274659554636499314465938555348319339294751678451016291512331653153630964776021224925562548672776206648616158177050094274648695395975434986847992823490116837965403485048260027329821167552740731731943554868518722630878581104016985127977238008015959642540465580471620800884505647418197113114451399494071666268043504777464629858697130597560745878421271626398794556682401140098501957090891305276818433953400810895447042174199652919370361997622501411879571058164472635523398405829695721208800364457649860355953608257860041017475183231250303598929385394193949815681020559628365617494256318613812282684546796414656986875952251835612715500284480195172198317383001083895048284500643926721562665613722703155290094917221023673078781981955139093815248428108728900511906026659640699537349682374284247347246696298105017273325462162466634855141843430596616420993814848504342545432698249656411597972141392257024891351053848228857457589806575555767283104881002586098482760961193538242915079167636815354295685915448527735935605166590540825894258952389982137616454859970312814368913033149927328271973350555192602591294622757345613252694617137220945771623843484003576517668704786972301003261820174387111878275129538225342215194529806891415361192764454264590406508313127007125460099941926659790219821131128933336974411105841569165517825847799398535640984146725503231798482283994855301009580978778297720976466449861296249959641222916964824286854860975222808180591654686169319255201337378514616100954635360725356630916350353653547924435083201630134952549313572868423977648099613972935788886085841398270174986414874747901312781687098814662440501005550601711790501074031709613674272872165374764314603551201669783336511574237360494725458725514121089070158818376789035270662234849708898100788342885176425114536164953779448659181895708621982227540154303071178295126688332708816771078984586013168378296121418011580095082598078599236024126691956445009652258062440972023736000711113120816229029267024207339820583060650134535177374424706973212256765791486786670932783344259179695507369434671927128696174069589186117286796365803373110040865991034441022947791004183624949499250542952607084681438703456027819006831009485975262203042239216403915283813937816264654199538870649357691915815768743544734618933266324475986832318174195262070649961518013821352972762924228774287084181530284362627697507589664891697140992311961046496161579700614723683496313007100281279041217697479540942692141469980449239016500326834648228996933754221189828926807968590683248717752406199833165953454720773186866496754734813044777981995402654017275480592580645184836778659359458949733741416514235957920784450866690426260808581458752403410977254802309597745135297643950020386417033059101418961401550325420991958348971136637947958914499488017916189377708606733533796854893431637474710925382359685682233806059501930654026088528793086268620348479826833106184586221520865872533660344297777206492327745807459787363161648459439059409627283149396395280187728290454562376524735395029814875825006179529581336890077948622097732568354909780124505299503366148844575616297395570912187735530366501695849800066615359166728869437947071698957880407162945534974819087126120314251373429196098533706313699632522493084219853362265340049833145363911712765757343513163826847384393081043396036577483804714051299582970998063747336157291027330806234563674816932361424013815848592885636993192997929337700066204080755407099152206041124440996581038284477729959685405423147562594639427622521164552297281162312192453557175426180845897567352549329586747706663856895748777963833224152736780744873632176524077278016593134815754943216470540900676059043528783811564071289370166341861448223513443375958746527374906883995483609278570418334529717927029328185894394073478312568940033268491126426952259134463166376892933163470561433194674018293145629082770667562733695207880606930317056725217231481670683990995613494547132758716345070260832263001276649898829546227374358881506781843345067618504836126600169265761952731692490058178515217375582159409421631382144130427073810577997542889147901139321465799712541871952798298702072428442339174753115014160589304512504784363200743368868985720556810548508354201187873492066605672585776660261705005109054595399028892432402782458184764506946762526402806698532113610661341912586936397121968065625430984293861393952224890757820477285282502849048480326180725840836701338282081584254675712266034679126737722580546617535406856825468874824652077991257275246538779520361598843990919468457017036707566156690701226285450630240490155405905979668746894949889828712307967721145131311191004674353195272659217435925223759939969142524944804125042670330938542583689881989584399815313666330035402784949132296209675902886831238273449810534288441979218666762665891170211425761327379019347832662400504042252772226211682773844021314638038054781791180855104510051069469025432828967012012579646667094045536728201807074685431496026197760027539039007339059497949437081026100427789669362805219598092100727228289836083959248438922684037962265143304255730362815533349723319215971480236036531429899271523399355542081139988149544985085748711376093433847117426354361145825419124659750379874509967924116734056935661069981535949874412878673495392759226644299329541593184681723488732380315650133848714341123250042163893610367894158390712223349707935252570204819652027116180754625275022721611991845198965666509417129938247222733653014010969961159963320537295372482566991404620826884623163826951276444307402309146539824297814972151520891831281821241313502979472977602159185371375217212131896695793916485130588678369549750833779473153491692149028838496327841043566999812375292711817435999759582315252611760670100961399506734597749597971570771843629618743858346859579391031092631838959498636430606239215388463644881585208764075740361692482120675968238187852753423449608437574679160826963922297169070390068459441160834369740967394254086706050752867158933805426485437478924202676849480443028492313539525534533987235389191520873196625321644530102692867861457208128931968981604859000618845910051529722742459925653831054721926770296592272055278567239033177358063200035243291586534790027149141916503522279287271746630023798198713536996417492364956780675967623954310444797497236540814598535904778990718756588732394951011085566839888148257041441221146118806292757992562417786651508840546790444320661574694267684848304698070216034655520715283477750628266046376842895053651588320615276333043745809500517609820448375055885784552703257412463545486351761078506955497342303768869534139137250225474124719550113833451501417799557189502103119715777908235081129943018819241383089949340743046530925451425041266864977475141482328797690173976228130409458455801654923327101783738438174200374753588981542737609223814757208691946214770658888893888727560000176060623861795716714653215412904396595733596655291184104288159592955176992780853382948267360493431004349076967470815090134665396838829115893768279506048779179062656393091286987850700758364715815708684835388012321348372695635360005440785352333563453784718621608564665339303566035392162793913022741739284567192768173042383020636747976958314377121913246955751122751645078411151799238760985139510666843517886190442895996981975923949959923913084907044000341715002139543343594341301613750406612117275950163948394738772363703100396107591047736430442403151011687680507317159180742627068643278833825590402821486319392070976612494141713423514242421899476909922758045669333066750278323028830211465754487038307239124464405324750531438512694197851774382856121988931032930842763564547485053296661668989805148758892465951143014095965186092524941062526180587328892168827310721279675855891381290266596481485454402708193129576860541908222512786320913029539184596262008054400940537389808853269375618578141472364299331170003403618704754452738861874631688997176798316797101765228944447718698697953855409614046859861129355411710788339532156857982517359539878142812196542274185102985348527478211015575277400573551025719367344465779408219056333520649044189471307797173192330706182594755363497186915349025186102171376438366922981210168016897913186666339226220000170778142890722818330137933778981027339570341420902466651584708313902202110909545314516841996895614864247308440282816803540881938259359608837851326050117791549331027040842429288694329239265413895544318969844174719980847175344293267603275936408768882548894333571324735486854979804515192298961126510338101857661599821838818427619149041233143798126630764947828394308600904978951867958330693680541088662399971846447576552703458223543781773877377739580553148945174347464334630459458203990312185970207035625642176301167704464986867430419568528061091948570397146475571684807144097692542943165937345745557319845343009432992366066245436278570454551099430789576666944386526535301705683581322612343289443446971640514304644103423439016890409895972962688687712936098506614983916849800421862583027690036676181468292574506007544043305386575759206483306244257567214004356721811021626780387280105943333473356418848181077616618970019229225676744953528680923164731095000628172858611296824472051935271690203451147771009749331079849237251579448344275034253416739985298909566140113691040012724016341614696689114425235520281412173418743751570961102310392048481752414069345857183012242497132107508157446396243797460395354709887120865016307974982722368292035851117636936968407825948386727950004907626783400461810833392049553688452245243969476323575445725347441418529127718939201451652743530254291264167662746196507825920094534622392093447990066835114644050846759355643109392257083713509206090386749293095121013045286930690586007625677077146530372326789270758782309977697939370661693209748022257389892694160616119012624822261439222954618983277901175786183687945286331947688561888584966229091081442507170654868962088990283655504360287731358129406392757627801627364275850248626759396262358416929435282063023358742327153592922086684335347242194952070111732923525012329687455146508387624802807438668190182429986615629408008933579001649017524173719918039168904390596730270637398926153710372319876120295047635728654183664746486611964719883819457078534589122399007050664480041027452185510542178314618429426789914121562787091717679403627480341999818595260249808382161971113959869977281102848649177844345865997615795808595356603433719487636496573546197235771747115641958753959118160388473157379868089473580834714930691833016990843749166209209874383419477802539755619817820583934848346346371134838749496726459822765529512861165992444799917090124607286081594239228614169758449698889198705496178581942239638937417153925230461199612356453005751664123425675878812937440847963283160995651635458527690656197604870477717051165997500292331953346362657552692688128548791423867916281936270381983674899172600645727967312574735480527913188346546674887007837455319641641987133294930418990590700494134012846164443949289269959184760842084160623416763112460345587291311502310005944998719541961938103087315010271370271557900490685208463167732398505697586869949443288787101849677452155781289003200250684211728452071955243588480739699836121321424010195965964998600649667845683624762490223708872148348607950044053815487727077349378648175383177835722077198776200743389329385038746996102966020608074876627303292231409007424407257127931295523842325558272806372702423529390761534229912961250424888946928394527286468953574199537308753685583456419204425366542899731005684342242606077292054015743761468572759524810240906568791969452554277121786432524517543705205578318586695246625723570160951626265201422461515207728670444797330586106271586022143928547164872126283891387673744534778389273189409277525431532945018527836030114117961864314531132479393486621801533269040638678016221448031853387309521487747590246467612536234347173798541784015921790701570169770051870726732255723811922915847918983997286617909435220415920608127162943044759225253912238835810028267081132431715584835611361884019690502174493798843451736972847337374838734981278230571109936585393318078608144066576811426433615632116928254838999172440394543661131432343745716364284873548281269527761462694955253983563843035769466050871205491974156947191183694957942511712369583939857868768849564473274346703093468593442986043271454675004089614432626254837749311791872500426635079450196384036053183790005910982232777567308179054242961276307534360824600266912220369371216994947479569633023633671606035974084351983826203865336263124723440259699935505640692566921642022685975685066599459665409519041256279651946326023790158791871468483035265631063073403793768182903924427857896521228151803273252482673655272345268468134381138829890361550248430092317316466271690000855491472692435933970619964259466939098442644651693424468130701534789521742693921238763164208834732192322724529741259565146194219042498027020897052388967714413803994504324827111476437148610003465341015701561419272397623396370956670657071325302279070603293613886437250247919848593767835334587663340590622681913490197575830657312199431028766923847024222586982184922657925699189229233844669455176121688287683971699876306598850905177018448169501730029286597518981810390275351341853801592131508136252678956903537276491093690055440033427891777560039043034563138284428171502042595852518418889661678675998689907946634703461116929454421175428610723633702922439637329171603147730880704033766244059585575037839164841169880730211325948410939130762686610932152970926564007570907343205281822796218973583192739105496552350553014000078770675436896777465422755112600242423365226240628575428595282000176169261955544041462886694967259778103262821024553504253618615287868175251654007776649261576547349107834523655504900374041538019472133067764107749071723581928669279753106294494692635051756836140503838059160535181545377547344082831323701193728318277984701625098942692986055930305156421578441045750041717602461898998556722774633593751953765714607589087867090799295473113820497195384421414829352642272925639822720182034240331265449419226555563952232786655272036731015169680105742662950175412591123082288357548034839120679900516340126250742758674520868362436507614764740814344454914178317088112702306006802160065270349173727831313083066968332483129821812978763181880524571268508797686082054957419727290683248510017355926206551841734660397851645564746496543490532504615963256049853330927919467480990383222097830619623831859417011868888136473347202132207800142650461975845828037679216605348770635656572166351281569405336215074253075591288904930075102591509673712137826822782424513913570482158158850730078608130945265815451581206139393294823457607380895378449400579499045563856415677804406778541836693882628910287429174654208749624773834327370515826185197079531843768693433221758442651888381301393784362959425668989264099698112409216191743831364712696685008191791423941785403258930912977204234346556235186790130503318909584088897531638460261848304045205728167253600838036516114237990948189477906967021316940049318156269483935311320224298712221918165424464357230907249429333068210380350416490687242576525728067727756733891282509421446472562189272975405797264242673556313728186414872300048397722210014434015177606575881647121961476664321402625921889953711756681809321576884458754634660267762142569251106291983855525065516395941069379173180924355472206769716296179157857929268291223566682016480674788726652549419217327344230872531576272019723488468178227616684827310775103605638154217390818749473596301852952248696504116717378885538371272546344796135696949563298768799458124456912424420113928320053748912652525620659389929056778517416356535760015643592144622017541488811483361016845108029102465054095488185282615824470896443933028902611002990125668057034592355525199123032231606487480542272831904315672328159029987731238522417259019422577152589398607240645742399527117989155766651675383461324634939266702549248543839520928142481223429237848622355382253116385948066158690181052158003475401968318187982216065884943418072327220025944741968692266400848594721814170630208791179711021944661340518051524204693125023146422807037625483015819223283576386236439815423504549352544972446853085291053637800454432601925321302249210108689941945112043955448473922318217187092822930330838244421434743059849687304268201258488403323577217217417683526587605365667235925886452507468129006079281963243499166241626035383179817214250334240743994141797995470769895300102676417182712836194462562305370545343990547848566897023885865942589587570420759099752310626645873122023028686544159057705561957330487223907624066612653222109204215885789172854909911903229364767942045939933205424332741602651841127769368345895089026660190083918098044949928400317042692646537515053578573031148273468825594403750437698831917629973090429319774001997176568527323074374624936372040647490472863597583769889591634550676608082793071749888373301685134833554768786212054746641667162292620091708125018805187277961958728727097462370679781290378281972186273080834298137717394098669606446448042910023813223850598504539280654321989698681814567361590379656616551219125734806508337415889708264750843879213972046847971858041702561584930084625281719892474357560269932218348133451842377729192518088579590090805870915785684320773157743218239159200098150024397699892832957702598962901502559497791254964659012350715141810520935711239799224403634788396073248291832942570508228004851653993947369857105723214961706749938931974562938065733890029378490719370878317380769696249731280287065517986280731565132485143210679473921115538608693966112313111140030941494233880346439607603901865650516627496080067070507298114334261011285183519129886023726907818785030212997159707049781252667019193580056520757329766467769877705616074095309534028180049327800594327243300654000689684934476935801560487399696356517788788379422871424880025204022883653444319755927571316905026270645429326995588966216497753487466329405407182920166242822765451454989733711851655670577553614840707432270537268828970725545644578981815215427490946299689956774841536878634099593285155452549503777247232400695074995171790301577676598818952756895564503556860941911126646151579286173366321295005636622502524427215447610940140808175874835307917251009270714044407394283589206226428466295771987992478762040041435936293464881082002222010004460867233936418150289704468807640686628104961077203131797823194069836924689598415262549968454773471167503068455592857764925341386728672339498247213183148032999529808142570147328216520364818749319894292224194895122425380402614538539764633114205344535216580553957207548394956788738617216520857970352337073267847586993941814350864141023887132761923488865329332173089866736102504087867864643268705774156806456483431082630732777607584745962180202747037287080000104375628225448033267736813329758374258952386350136777268210706793299788464289045746756421003733692544455918720311812646040606452169482895250424476130544644266161538109637628060233194833331990471464663609360133529917488979356480916442148953913608680327992466159096364557136368134890170522527966367812037814098630659435796165679321658001254168487544685091211586657251311369047546792966340346703999434488244525072487455501242557321615358652482514474559149733319588959088810750841470484027021906544687948416071874405871201994325437515371446579746668962557057416373997181375120121063592932161517056656240850238545841406923889446987360706835407146348694224230169669427273433580073176206224658319168988698919519441541235272014482252403244416648355318168906182752115734869321303401693930298016374254325527542096141772244127005173852722167229319658068860792544251715083188305853980809606302013772432052809853928313615535239236479657911621047713631367196495623550456613553305477190674716857743717407403412805390877621566903961590458301585798544540177841206124801820506781232568679278110444380051619344553779318276252365688690662113868087266771678200990434350870401040974464037961445394674266168901724329633111143080623397898544632901122305489724463880950319429873782862462260934537951018740865613857895065389294993823178895829236758610827301570067111916686265746339895608641890306475893532423450279436708748002007152377241755690280002331277977257652820667484794006789188496160585095172079791325897729726491810371163569791754757350910627416489594811509811705061253184441673131809717760928957576121867663810376329450187211956627007315002367544959375598542472025026735293984539155247134579817592355523257050321694503440192929622223733937916197977496936932423717308581094526836221180906834787556876382107260898435876662513980832346206160190387370612670634596301332256142651271333148573008063860090150459063063320956123472451608362854369962900224848560414672828887328657400699714322651757497052686911310604374140183001586185343378321772043202692618354181218008789776165885419410773521832104138056048456130609583599528807184938208382231492607478063322864684640829313591189271052889886638633931980946672503721580798985348594772217656268984538493091111714915075673972784488559150657762855397530279637115099647293886852415326481848981680978946909626291195793850057430708127087122235868987629863590388241965701239545634047702833106302874686075043947812976565742556350021939088954223702154850728796629681930261972159838921961224944884695079545147625028072713064571164124744539464157781782343756446668305768144953347173431351342804425153467479764858521645539828389264889029295578003324235482561483565927687827210237621504712439440121680413629076199830647633640215229591773358518458453934919252363097783023930577541775948291411932339380686299147823521595809983842504756413836814399609719744444574931796031125955218782028038479228210694123061581362730592211318984267512890523223688464498098607228948332816269898591817425335887780482466236600465900597525661744014135871323214307248968026982052504037438499158920850957450921035326178234884316998250198790048125481002210670602950306421850937756101242792001578959531606683952795401414107154451078554587299203634070371764478373016161464906379950090660554465105477098591154880909351962547860792655569041998657891428845116029880398594735033613579254160126127125023514488289363305619971306299868410527761203708117159150774457716360449543618882822198303230941339757777391342627004614599234570200696453670806254712281497918193795562774535896464571863657676456120093005098138551909424035333682119862968733786162201895441935196341519788925489998827737210006028276790394807188676783909537272270981242936609888696454995400238534417470812054647671919353242093559052995539771987191692185410756260605201295845675831079907925906269651910291841957212300022843782527874624945446604010333687787758116675886247437241839402360475785983342652065389488079263644062708751886176292438618375470805475741149764296739494474377520158786741623199668449288026651580971855204241884471600566632966696862014025476487990818384624944061091757032132087271311046517775418286607339080992463096730617025030980848917830395116199489913461726464265634645788350405705349039541721465773014048211520181132098973297414717761783764138224092151983117303415310505850417312336464497991309790864584293292668900162365636232984502583814671778614407783853556016088295520941398472064139776451798434100270570322701059064904457677039351114218801098621580650555040869142228366290507426245021452202052791522405083065372282495398179252922719183297564411741281322527758275286335404423355240598902696673994698422241020441446318545503675098164270018232198692533075609582970247158926127624791474786407820320623426947080451334951641466233872473276265287963714200251147569791035105458238180956842809132220668673560152870341531742535108987167075245090958991821373251918416502417681828812111503834130473471657625315215718654281110913935118911406535272394487608574029011374455415788139336146577087727960089187001864708325336676562725468653839228121872630209491811493071726202202485607201755754743636743378049952757026659582180554383171600275001349956121523008693839082966065195398792709563782759505089602616996532417590093513925644214284710862990231288412110967361791709638466997458048648887044869985243543972782191090524423039505961127087028368172576700836010678435467831755193598731542610933095044760960550824365803310493433391977076048729643388469180751933584193375339312504601704220445774962600087454216743034031420575746501332788235773629877406304698067631828755240616330339135436625609287590881008883227856284287371444187542817403679958755489800686357492307834303877547373954869289255624330479172320266756045079624062892973320811718396015456743781870873438510694174040602972000433170195476948562560536137348946735823467623639537343721970774580404128247854155107090745761876209353500554347302075370614838266341694592136145285857294252550329315830289211801249852078580076821105745768599562099612296117120759308944687842917303490011205907819055034644273828197931117699477877592667217451877794951040736092338997641876518566522163669302034942202654559798170667693750157261041706471792036840579404077540643657524804762746663491841387407405733324673880723532328117308305257046802888044171041718678175871168644522283635980332118886928326196231658360591418070886537825239673633966655568591264447565001688783598489005829806112514331938747730349312672049191921643927407572663680840116787014288411293614294411324201843254677447173361109123959506272163577250343582062345327743288948746282282034856555100756260782044527606249387780287779872912665637184618119774534820656218198210391736200503843207710470816476167642273024434205676858550791757110546058755973866625827675618696207458561855633406896341951186766416564448409350134655074473358795675250482086621018803250017392272912569540223925847178405428378323324428349786608992479950170256922450603420574201528945915071017797670428169110989150360465684351192473228249647882888720734910711173254938533183362086663289281459248539125952284251832331780920888650213664220056593988267039359160033122555528855233444734208737577003104381674579295828454135847393935131678435900202604449718533436783985774348035145881514882089553235526720865849889050458619279965014681086259668565269833377830709338720929697120212143410454694466254488938722282612858913798537933753773598383876102365002661724816071912849444236721904276488539253467270860162746842317451763470595264222958562885764916588770136635873944180198008175411482081669489263188398654647091287465469710209056380184581730558934229864579909282637073926973752366930320803341301156662090219138829754671585035183570774621006129738940366600508584263209482609276209669178002039084324909855065023790824713803607648910198762886912860843972555883197862340609207148023823122202290190160206400701630241476374023165719571297693559322764578853422453018783462434593583733735968638718331212262905657154131843346908366097016166268161293671433134780067422348472260427681719452196107979401628606478078511778554178640286366687434350662958377931426233798867090673556175908944638821166216473312668039910607608376354827797322440404056701116886778874219975719856446551158327081062963659347767953168997096795505788891765741287383130818268679084601507048507733812565410158391980666203078503407826629019557622777370402297393462936310207688492865678947061410182365128648047839597838687473786897527048398339875699808680510583720992393302150884475805859435345498413301097084389344479740903495102615163759791852123718238059516198439101873808527580385474762318725847872213362495806543093691985424595260745504512138083845550845903633467077228191814561787267679242032442037585354389182054012143670320564993632018219689545696985145141683568569411167569322961661521169583286942400202135528203946680109309692235646154856062949590153499380558709519874236929089241826602381872085247641833646647961414704046731835133958968265606056938458755165841297209068086932174810166504727657163498337025799642972112712879000948947102352248122817276896610058587624127300206622067666611757266436538954198522468899624691514863804828817400663583877688882648566978076218019827913451738401081541315333535509274902145990669090092095976323747249154381156524342484178975275723752762266265490445095240932629092118647097680871048301735659945065410428928947549890645408637131794570685582662018793104642620558193383054589317596235322068960679298565893702688344328361843177812989033281306135144935185443150698564615577026236228452659163707363284130659325097784509500101098197126787435338830849305034675987345938985671044761697761319540447461947086266072205677114659349400957853176453459115839959891461970502793670321976501480315844772506949603781518982356743233429011369960394401501996914598076621690121013559834631332628757774054882820756182771393255046859291477644241171599597243850947594456899684113469057990488488404481163806451439915992690606105776848077299164799129581220567884536671225609537546420393946535177170066555519718226177627010568857133498004335266491462925345920904428343502981825396767067610681125140160342788550237090127446238579218889129488284412494605055515912697325558985907586471464942082895074840643314730180672093728905154229127108897163120601930341253900756076453706850240670090824695124850955865695718426288009538857008032613947419588745939568572529246457870435160114994800079808046897202640198676425344631969076078960937436992115605905275575538031411125674601272532785505430831679576327828265691369020810642573251326148660787188641223725483556015255744658038525125113296305084434961371906919937682213243381265382878036877535017564161169948168673814469949370432446258061365728994394641767012001850944990843978364996461973501721668842867019456008991966093062722892909805153272811668649629506462026887978626808939754345421911467745969200986915560894779281735469224186215337372439599464357066076634530942976883377615826772265197780421971902518967090767646276226119630560763813776707006105171992337779882253568776670264642003483164741318881982359442996956728480581255835721101418628814739438227309878638432774071162324723969462231427951785192350618508651202134909868521981784517154464291079230591842488804476244936273050492968688694246663597003184606313387349871949286324023306057442782864854742670960690642101654777076013499948884054032845449643957151919651303367610976820676086825602106899210239743092509966705846389971028677657530904116220521391889077385031095556518066802780400975224329361461745782152646123213774814504263640300763032977860249681142841125313322429241747887897746470489396975421879517931496093811368647871422509576394895930570946478280548701002625510807528779872875805591132219595251227122390844339298412618958355251105498409192187522941918362173911849934861343845160539122402789546752268598446200635404968477530510562949641105736127964270701412195631095243901667078249543825506654348519655127246706068866940289944017915470733015973306475502422522833753660362859205490722455110461374329441212199273648152511706845406243809945378504188058987481769339075388013770311693523007531250907201444099005275168831378078938186324598018961172348226362404844084715659855536096649367031946302658833138384053736312635250132693147299741809537673699104334392554076319980001069725383461270476305871021768834303066722551611357352110336052528710439108574059158939864058390033920594373267321535014845658997456127012156400182734081340654295847516872942105759426253254138975048417824039743883238827315248578314083605916379757571195368883700870044716570780845749579312498751621176312831749577707095844653777856946429307070313066921710736254945495813703888515117957762020984919488833463743730645977043702656158848469969972654158927868565953590955354451954972940710860313075322819301085058846595246266378549821748507367584543275518076313367435620054439297337553119543781677601757700857951423629347233262600812928292637732660757163124094790805251467138294845605752045396284575465018125566403612951810337173365691049820288655171309992211288679440890238177919463332428400010473457937168980619220886756042378531327596094650136439120161098815857165698099247863808374704771056127890580209973168717378818311577366742920069362537039594180534509728839292427607992025599857213839442127161127971387227004402704476274684291968330826279669399873125652715968761138592589166575047699075474100644881295943712398932488503741011160795430194942322005508991613018989830845228496572607307078352457442513360663053823103557306230883353044672053197849335228811737241774705182261602450146588807799855159498165141752042325017138146258195228237716492452742934653679662217550898026186525492814723710689204015482266888591107262787213057810938114969178171794065823322844483566027615101351069909762480613707707232958551253334829343800966521576719022562335114831350955872349083375660846430977306795908823393754936165957392031111293363393247794440833848968709986134722580083468763661147569924010603810051926022944260127903050594237629495684207879622985563724024423458359373070641632895510210276259565427064100196222001825472827932789907140444414041944110733104124128355049121920755992203922649683397558816902499108084114865628800448879511080094138354595337927452383724147474142522952177245904592261256902913971283591669649200650707795424031384855841111002652542534750855337221083422519233798673061800108268617418601441030841167996451034421281993401509460264494993706075700791947758078782593972000557958416137658906318947944128422824715875089900452400114112118851774649283232136508024024137405923126347363750540148372389176290504005584644255421435120034927177959875181843494672707197223945358684625977213336136693771680836089746664805502789662012903466700822150993157660153948070290389712435481727312097057020372872276257325768519379574332426585315214422017265243279796434457624536952126855295164424323966390795290723527109184682479839165269044250709180841180527726352262653291486973147637195183389030949685350682834443088944025779322251116571350511779491381262412294903915829624260587352326589013140671579354035963446238804638788073425512931827456273938779065535457117003858280816599854822850485437685148881114190693425417975035851688542068946144036239756386746165333554956044616184709493602412045266474572026698554853209956358390768537927704213251914894388279286648035744441703353559201367736502692356309477856675670334796552469325877173075032225746659981305642131740259838411688078929056914640374433327630484780389210461498676432286161929735440747751609472290431000796943483477949671739194010662346226433571134632125647946553306574377730536346041326716865677870835429209792308381731034736344840168335953560433716040045764577855041338716999976133370837605190726852078743955140632579896572897385284361613024154344754072035799396826562569518955933837038261375110990250970535148956740041260907398585517188672750115768398895701797077203275978688711877077427333441887441430489651404668054269115588082725739052231175857519730815396868639891832966475718903092111013570490584207996063403229211107671175943476586816728253079826124633455726969390785497611024978617868090225549309859149908916572090580205454533321459673112809219999339717647976564824518738177161528060643107004554453752220555933987196798806291574819664226880932819991911848027189689268462018119104430321076440226139147770897264667453998942525725429484407347278216817875013469862636037295453942507288875326441544788358670581163733975910085178278861880022646250700278057104974569040516152301849983162928344897971148494398482258857561623606218919560195885150646803093222973328771900096717632110527730574221258227378927223629049610118451325705744391929461043309295759558408748420788478123209751418071291834972490196142241259113803733733094798016028415514795277245558670468051193588720745423970510436726523442004196733227911301854993573471665192789253222418041311092256969954609911956963829451055485659080530051468563859468302335161278980034557174473691823523527257164535996022867317335175259560822830495365936217835142062094787259503403345678790003645370202381034234423602254118840704682709957321045989840326755824875528572761876839754285555468088903287986367286340560873698714044968645893550670255224151993851784954223715493623486389796967016446183959965984013773434148676849343670474098089619714975523137361714312895501645345846720429162154307290698292865330648780205413783406966393012755460983667036377749248685930962614537439419748237331315904030725428377828036641490865164465383527932168435746183489417161810863555542339098876361443381691436926671035564467121033408016681494607386135999069558380395649430702627811392867047587328447937033008217131660075094106006002571743897706545990219529776699970136259992269447623418329630535146822103251318864251732207765336685328948115322866769857797982566799603536890556614730235601833224788955840470340627817715015899000989855894798667628624230495177400657584413744951659389483246475454807577884681393026253475385328913829798623419612669428661090570308200742528677499447803378253421181852893088785948593052144433692033120013020403942883189981832501669266343023048968654789710038052562909888537994742752938919204370226072777206233427563628958667863082194805116347709638284404967242994452629882695780150983163909284361240185155849944533849708378760211129664808069206027917554399352013240596036092354296040938022917408499373245070958774045289382748353877114498378017155639260063407758201401741659907777740219444807335839838231630688429600141221850363063029020177165024018671418125463357987654775656295351066245118228841284259836696160222529021579298595955438534109069872310854217422259108469818211892124989834413937751738170198344773777667961238479396041243076361683347692196849396214714094618536447587642023272396861173725573169799596265695411105962219566713007412920549743303719942256899062297134342041504885986514772124292959751659304419656999645778726213113595366604084166113720848268660303733986047283294342266509854461326795982082001210230199820910843422294830839457574593526741251925076881142745897607675137886454714066634830138021490349924072378986471309494969349575725205894811316447239440883709793703768933223858418943935036367199810302604667248386604445521012373022306962057550875971405927016179986341362122696809515002019934763377239520433924621358808867554204062720402472727604666114387780951430873186285719833985242401461794504605621839014401839248659910463845028469646734532011649117999090152036800344910771517071877280193357362592446541898468781625682170153757469588380003499287309892856396379867212421751272186864090038487199036973102249390593843404217031584345766068327850242289215871302224684837776405348433504791343982144823483874883497769327610311139650213474817806510026476830574596541248669395934632858033999358506137605360696402693596129369088312985333690189998636708173433885394707593577305094851366546812071409882517413700226670108999947257490878183175379287723598307183902349587194786752361164711384363668598891297856581302255647354968806043792003600762700616151833094833319914421720637575008504765920383200165910704886092489935270640238979717333496244459506006729241979970178994573848055120630102633715945553408910564571024235665384971833148806567207073968527247201002739979243173218085018399053150940301778513642927601294356721488298165676944200941648264613217612377449081323323621461673975693387924433459216955106289652765576100306094233801831959413090891028688788496704146456972668384921628030691450873862910007928743814453196600314487213539507050891934857575921169912702318681135055369995830694753133649647983014814736905909165986918010400073251775772328725863026051402935412271819385335871764691620900801548968802047173244015460303462118007575639091246204524724444053610363674268560878777402490374635071501592894595472364146885444683778640423615859246224914332764208147504835700973257357596387196412447329463908467388770810714328438033112074208249507627120122472229688575276002366316365990572982682496083455559739013143857846621368504422448964168322220706536697755666669261630176216213065820750560491533646402774412746851712809402312396649726167816773556156033609865574939320111420447217784961359603950887858464805572086713516526027837962934576517700568297789119322146827852761936729710632267121481037284142234963261672352507998060553621305227700911278426300330008071445305498059126763829021390331309666116539127987371586733413209680657062236182947943807749850558937746293840526933025316436431189777761838350331983223607992499737346187649958221439209621036412923712182637999757799988719119491645704567224477081398368312108361464725350177756336711399648127377862950899120013565311616246980126333134706121757638336254810158371186174493980728518146315100684606409838693946416761108335043543066331945101025314272155949410388203492891989544460713370909162145918224871707633314664162723082670458995272745326520204081049317476326192306178994760253783834028663724061590102152294734968242430745263172890503931864203673222995520107523683306308716296327735596498268694193718785843447055464278142088297955779347593157016558809491533288785489898511703357883373843928077922479837168886451545639307035718007254731785298548457975099592344539534757594946659153915216509570175459193154450693482601483658700807846462680967035645668955980215904661818172673149402448277178352039309894855821252912432487554591552793710308921583296465719701577377181886241099960483647966146012087746172251170569680989662888014730688761707209273392950195663959552491479803909830911956208479504433516212156625037929500537699861539581182864132448427093962300300779686648874008137204539568813308319866720719809316786326397450783810209365237867957774894882411477657036237005935574179237482033140755335609259422792303408186968212531575345357274673614619876022590074592050332035062216617967655717355307162152271561516687361870066437695932895370372007004898510631758787563173174487910342012826044697534567955470209780943918134684266089230699513211683499969673907995824096004227465385199350363039157183148914987881126322414920965876250765324853855280036303415991605809597711052358395861210368795386047742736670499349156738570026479345581245610824148691840458217526754607733288809187573818519208876328259411908119246126964968451677352086394338743487632326816702230312772021442070533390373538157254812991662106083234312125108148042030140249865763757109150876396391712689643852368787705191620458156195000846009229061809472955710459231822584201297898639447406216648388687765682205160226386507062462813491734812081608065423826521821493327625775410884094397723596974087796082633367376281509824686692510299581934489628571305374828843547843155602456050280876877537106778020884325964637305591483811393584781689654454031952306604391465732443397746888937294924015467413570481530792397568431675422216626457262303234385368605726640494873449613046687754592051403977524799842332698917730205295833829650606804589164667672038348283903595515933214906453325309603678000807462561287850294155534549513358872016792185023294932411624358727164670127447021086487659526817979265735955879065537019630445010536219976303698560642705915288418717687574782540085405630022793377485363193264207622318822913329660072279186312246025166048148599345672487056006776219861979691666100701921375594909097168163418374402051226921164488421561317320094048618978881125781636050536420464893203703294963502071569582272348621914979500253300142128486714997441059208919299343712916446048502001460816952478607339976971819133780186644851155652149861767883195423360595910621234400497230229019202354531992457018673224232836129698483633617702374681830249636678524382919634382857035584671660357370851739112820219660657300206881169640711835489473246989100293775894867156599017156547982017961154369793220940909704789878388709334205990570022034340083482652367421509876166633311614365128838150100539274785126704777479576889117761820749493677049800642266422408342131866711733853861081308246159140350703498015757375845730084898846240567694809111808849638330907429513065709036195403084832180378708984276292514222064922698238612233006129005126486184060400612915420703895139911672469811194951539797085025299290903395263139207363893218540513546122728482912022500790277758827031769084802106332550346625289309429432895118390450874146485653620299129634397187089153222118521433021721285663344951852490268572228339105022619512296084881276753410884073246373166084075724819475616694074990800470556001780029040587198766304927012995400978102224744759594574069575491856451051479816918301911602514669617381239059741209628957944354664386732119385707997997713528225436153362444245993075225467135019951859915749552980052251373946892296903709752988703807348930561456934026535492411387742801013103530049272265622632228494459695026182064787199382348989841251126858886485247050455050764580550786856458722470509944666220757113314996666931918143050973124661233634431566546727404257882929073406252514203930468079380990683171548090705410031224992484890829950576876072622371664839537223096315113853311139019442201141939156655385990175696892673564355652507978862395016513735945290211183308914535602566314854011222176346399581267487163357634843295323668031103279697294974497429848045143343514424293345049075470417656567667633077397540348488377820266598779080550464345793914489137425193910059395872912048982513639133461677947141581367088895981619385457068084199661595682092975785299591195392533299036449995937902764974375727851015532185240309754484796938811179906269714476200964379223725227485255754921651738465957740973501832814696985061805986432647129501558074976373663231759754691676312287094690445845886478495507002300180327224103353358654584430276280628462075559161353774113145530571304037456670802563691466673826748495544478779371850113378809570639777720112388747311613269741918376506753067568451777436793297484438056914617054628415993699828433249066115951238645645663974645473957947639122916212270821431735723231904129062579347607720235977186898731614253237775140528349161000595303932156877656530049959590949642660519932303323218251195622531236507680985296788139666465884927375457392734276497784537975981280817665207867008725280270950292137346838053937427852721264667396159544803392458409727301426864224613282881548493785480894969157119642580005980353716887456965470299799559230006423060719675141918852949372121434143603513352145355262535527236993829045839903345491893841446319312488995150510273937396608915365118679160434732052174357768205053543894445595654066744417777225850564368900209590633994985692206423748541276816841104758056892263353702103753293717682652483937232353658012772261291735343568611839491978488685100775591966336509142021991390365513525202886498196120720018408883240172365670283976830193210966995198660556154772076165669786291799924712637951551022958728434715867737914950603959481320680834092838633006723359729459634343605458700404238256701643896155746491911747231904383966550601417220578844195045526633376831852622302934842898917331777094096885171127608648305780999530252311227121905735694130517859348233076406033790648353697833530958139753334883532381903965565345680698404962673422684838240815036716791864524463554955639880292974348658786769420301147925074037364682430770099134570220212026836445316281371289626695713590044904444963174807034331194160339686635846856462158207578008265802270274102810830557103862707205209485356594219028953526692796773031224136515734354758390388131552978412372148639455687069711036092663981786100829329387397102605401878142492932936114764348373213116728437393516797396710350084092021186821678198786929878409651236710993698061934738512970464677458114479966686596285537508544488719346373744852629903153844189698766473761254556349344928241501199043454415001688330442560841621134639777449314875201411249427505482891170732323531780046639593915154386507172924168919569363776843622588949053424460981661510626615685665656751889557374875687232487123666386999678639934308001113011186716898630539563342190971427225295145006920880145538970662953245114443664455819900031067461782883578640117387709883642847327587910515838242453188138829067107520065240957362157598279694680604820591962356441910499903223496811317594401600131946798344332177998755981614595227444032233086613311664435332224036788296753810742414130584129945507165526136298998820450667639041778245241259926967382421956205575911788251577843791051895724846955539146078292784380453380307406752067300529195954929955404711789068682394546754895942783158054127680520482585824322556996776622180758037715785165135744411805452600606706205716844422980857118331694785645555625721541074055885595004617517569164727846206986985225068067191167491793509897870495300508830472309336931626925817666692867246878759372685848059121625534967877910311881499308143446249442084024601641968516204537573243136820478997335404593311683504290205128691477673522811720203349515022259530345206919058703293496689306931594625526890175591985239738900745597608600403838760104967871346046367642237732623645471151311794679274692607010775362637648068038950350765382329972736369300881949453640795483114730437319224127238979922724581695383799329194157440651816649669338652671646630682630640840452640048135305425403690691222343726851490170559738449189654022396345598254839945911773270804627152089625119684559578659030844580823827570676079147615787606346713308112970489804562991185289816731418374999803864403872361526785885900150881249438489663206832646224578425466138643674228914497662384512933778250946284037818511233955807278181581331358385011086053521220693619999763745451852044605477230833067972580698577496677573121113316193949216370136264716309252164638482920393313292787845848839134268449307641681867599634318713740443155460868487382723860917613605255741131506576406968771763269850785920843859181381502319204874564786674517297800325324501916831097534503898129024116348989681977285888285289246535064885762580644912285869657048969280489854561064609890791050826666198166856120344558972359894292164296875183737180351448915793893166661200173047256325846067130228000882961371959304014600173959451181582441623892834788014826174110986449409467518408018891452864837165984902724258243303637800905593516298166914224026119467063973841367350659836653890995384982773138886815383059903268412119438571457414540881022164823554541244613024404967752444712136749375562173590133042966588755838331112518069864507251112292508347931723001118575005027910485017194072724858022057060509697119568085882556883075338571479066475095200035031229041715588500718085515807599822686161232892139694061505011016370552189820986712404782585791948225759596816749615225315049681125679120971473582488739345007344500289954000729319357862218193721617533427774067175434354456316186227401870734315595662578151886059362528950324982388133958653140038433420470559430475516684063779326486268938933257116113571764294851339024288064926222852927069409421868295371855823500480701632189674427612047549631125727688657844814876955228474735082699774760005069497879152132527681641157404914779389892364116099916754345121028679467690112941213767145035318667398699929800849724694299676717218043828514897299430168905118632672425794297293031391661237362439762316619229985629540577765276926846045197020894601174802462846966168255504830439254381561975740996648530028220739030011878268021537468930914072884086952603286913078893052834051960362223177125801689267486692836036935143741439954142455596311078613042915751788289667736619043247141526614423791762824496140540710992545968281111684675429203198690527504748674605521046720632093202401146228996649854017371240995488636284074616473094784365262371584746489661598872858862870395302070868489377999441465266350349728760707411282959015967397794094175071697728818372727927489129060974588800884462561266480191088540537631533703109664009208614758889808220017872521001411798083616427975517612898646683623710174806193388406980494784918522605878920778521823388292592538180947466091215145713276395622081638153659741236829681759112048186262682046042192423362188918641998999456688601227166328745597276476271250640942369806067518704530874920211998266029975751435709933945860192242751067015912800586992993064057956454791850867966680024930414554607790065633748904840855473229559642347636344368158335273684934287940510801523881996072057095241199034370715781904177245489011532470924206969798367810580052061913767245677355549435344056700472827921122368613045785383911660562715157902469560830086456073090717803332662027326152007870188452344131478762148122405588505285635847906542327113448283937039249547939168045845093821367847783347764656785150567480561276726305358135933838808844744262661018170965916732006763842791740587536347890488635861233000711702964237014064981824421429087017291869133900248379447183559452967076086941807932103622064191126239221132387244908955816055931225410072674986269332730132108619666574587049381708218763512860028248451745180868122439362554454327490703209774163360858171335896043142294737046949981121593164892151815865461651971540664198706923649640151563501324208209854983400987261054433214850102752507375794793930683968121481485247639607665808032578579837210289136881854663619570073164259127453088109745972954978048082360080432013421511988736010258245668817353717618197382760523439056881317867724814813580647462641192810917527169468689114545529774912173590668766718674699185228075693657811591408435847728120041399986968886001063068265816585455473693815982273451308293559955116820898946272528418122409871917610698758014465443457227276041699417744528492308997791154171592615080417231842102957501747240539267189911077263407886487461734794593730070062881254264845063677921097549002613161164761640713052884897272990777933356056150276432165883542453509792505125297948521504409925367167861626673512346153643834565377263794824232372029335355415037809990539821377275272700618752897231515225152199965955188193023888081290873767512630293440056199298351997883846913417254682644911544963398196095131393745024277675518337911317459493372720106074996554646663610031538646476455578006460420015528015875016614030881942651596561825588415406050346969240399443142640194408880554794399833679996081928165767586791138418315067054124992426198584244785323519734821891508327333911615935419883977338190112101077151453678434189462568975974767309036945178746123338765209858760196382363750983685072875187907989113197823123858626741059111543233423384890784584902206989430005602305128573081195245986216276191224256565379605451648093148865578154911845331591586023090078572465612978462107278439129648707289493240938017117181014296799908854761883149309110417938287998933943964852150946947425069280435802144783200040091110760169386590104422003509918250875290743898180228511701469230513805761113991192498726098651218299305870369795280685027096650213856217111934350740371625457201182108522280722743194516423189640245280617095047817530769120582440274558061668240152831186388735672651447827672991446601006083388630618604200891848630991390075062393207412618264630236930599538643369389867594583897103630526128346804131390038251839701778547395119630298379958145050158305918285762046724100290367885714461640713381941250751720987124314510938500400170006383742950152753942613137768364569734238145391498058453902902568665870656386200586538394963237868020049730122703016817129147682207525618492459972050607426402046948777590639976609637966293275642628475003837998863444600989926689942412911374390144040764493382300616484356471408658708071806837210785539250220402858599415911787706506922764984675079627633853141984649215010787626983740375908982865781617087229947510837962325016684828415897464599054077379312735683515245111003463475463572779533894175708245236206586652588833795955824729171009746041616281738959054303353293861200928228295716811118421858684707761148174358105310692657144932930245111700681207938142342461345002122277169639734773957020167594246185715296319300371491747386819676210257683918842333813390874424374416502984373674303047109832026624994301368515288268995431545840138387207476978947445316819182661896573242553013056767328740980445255008999758503068655166256105674106443068148788351534298141257239297722130766916746007907603012592875650551684245149903848255768630595827471984684332204695072282674946860487826613074034559734652676447216870724824764259421222532004758510226757456778793516455436018869587955987825643335504532746549134145142126251133481069129661242043788457883928917284676690962310660443427723236355241813470695546217017006184092107753271960646102731007331627069161543453074537245265845344659645081123958137740738381148833747451292654767904117830136146361937886081564423431631085884290321599117491631732759738349631263162308203476852333599175937161696172216005382606648965661069509289051440713596262004878738712466306076335810933123217116401212436756023570056323469409780282965074946530304900660383680747608795812003843017067881882122869535736572308485705348753099102225741560444328516183484463869221481815589241038933290946994756990459492357389423429206130132834977562314437262281112715183024347003621550917282665624031418054784355278692032901073003952634486416410784245050049970153283972817958545987179806288078140063353417468204661021264547918367485911866010203195794615186406462816821268477225463947719358376369146024977025544242110668632672615459956005188806859155920093729584326937248282248531207677758473544547779972811196593425911428735610827186350804021768432383505012609284156066858426458185338192757230766936148303839206631530478246300896290306187865684293688786901173840519156520784936010557083406508429817502650486922346301929772392312386765913117691625337375395528188124973638529538802440521200440129137862307911040385215923593020803732776265391906165834322848969663763855338139514290902067933758494270275305212276172408014973217850526320734348512802760847359335472409500866223056488023481218864076041234587118426410758215336443537722497371179910286091648386798711791069083901286403466398844346618493337039539755029170156938594063272825384049944237326975282359629736019290404675115828463616515751247554440678008263855551908559002920423649195123442415536618037086686485514514807143691049575616025529990488174600992265577857852787523788891834902569574694598787370072309194197208738606847735736391379878835510252324967972045302265114740426512067878622007332663812638187425331419130752266962394422632235667587456376249200366329979603742646897035391248139046381759866012214196556643929961872998577969692558866932995326956144179892319082790222524790902781390505435851861000541440545715009147050212624037313714593140434521596576403746459267239963523345773465229786602302119929797748582204118262949047696657156591249927072879944226116718783474135660833102906203858156356923993089093437392515023114707452266602755857898942260348758023832218616360525008726802762885132077242467651014659587702954951804230737076218713626306440474261911871563420034821612935170089393111091112635381493608601548746230857014415075963677016980962788713052208078162214652170471706414210396375808670858349787716178013133841099151954555232365084188689644958796952212114150843735242204124386454538805908404907834707769414451336363417176762630663069699065499576486841563618684245403949140531992353834870963144719661697262786594690475721618234570738520956238767020222055877126616834246518463878110094575171013706847911791468627097353390695762427870249653373788873091347239537203116880854943798148667163522087362204933722646579619804265112859473730526068106225139224173788788520577511871195811444953722184126493050256154222303243915459627374988989688638628140807392055455337123636350639877273837077018278435639098816884275357581033068080452275092778303757180953958341742654676494034582160147343236962150753301785966432913184489456208088464646742874723725781997168478541778367529115168823791676031541028135104412600465824027913066407960444241008150081716594928136277628966421213288630405670531000645144695891221306888230189153863865115497489671061840354129260395467189168758346996067618056569303222843648759540780326415390578868149246714771112879042311906923736890371522715790583383515061977703183898526708653776622278876392299287924638126632692036777265788950822121160697803528444282244577098112670721740255378426056272233405596090538683578073288346453254836099130703766819067008923636477996746134987257350239458652344490625040705020975211034180791501124439373776562774418877039454979771848045779668273171606295122337749831233030337968000096545597863076524364427649104149888493719593953819786229908360678546323874551592266129946265089853231888789028026432013057879426661629488361910020096954468557895044353865197702643904473844739532054351096021108990196549172477274482308672486019809277513292415838746479125203586293510287300830286724886291255629527725956825403871151162993783912482422447328410435741352444849568050222371452351686107202272675763097506555915547195729249019306744192064708670849097142083751732490711209029637601783029893047681505420896237573416249231647174161240880861541878040034849084306525217528556168110139665419733739872444388701680049919520524960834324135859743134523166323790861080220967006944543393118138174415443903192043599979423259189438341193970710023343073803674411780685923461272999872762636425410519598514708684395205453914540418947980646135652839351559445453586577666716530519661994703215457056256689585189688400638816813974520053759058429182439393848835735632672356350863268838205620603676658877031388185524651180020718801983424642732155222033111659408692232496037635521017730787867861692394118105773219696975506594148203750934651115972320345866505287211143093444604026152497487352042485858934884020720754390519971944089388936954838100696604593097151533440988369278490941617763046144998050001290693695686318648663515011804577054359206021953754658998549285823930285072933841244465272195949336306375429613113541514369568806077628576536743846036793675785450438606808762536908925417459040174721374809168731086400611452051723153376217837981685209946614702280763579016083882011318631836209382829694370751154823009191743608835899354935198281455199931050915611845864622195617525694978321818054281764565856812985261140259727881320745272415235610575998726810693644357467329724484377757113462080097712674839705723243684236877805978182900749731581926422026483945453468073923153665289127256649943658812031223207556883909118538374390782110247673696095659682266553244193621826947033562972571762083517949117724860255206957116634493174284735946582643506744425500568297595115515097728644322823165115043267550343971371713050617105910863468681971540510546356932652738128867259760915009313727408749767534006234656842729340874383872250104156383481363905842126635976571794933920004296694119420435740669733611922869619337738692005888010150874577145316574379786057954523492255468133793564935108414017444665650318069418208803071803043053346433776578473321570281811279525678416906661235071320929645774126091285756252513989701643567437118675328036721946074487075720360995696534609555283203740979079470756734862593128863054828522389339614756746966134793702155680157889816716165606717404577596439886246762005540278938930809314559302842195994954648000419486327865663433901504307274568830446622267805911833233491022355417246423499524266273065836837934937270935226191015568222907638992683198925804528239462131337786893896778432239005970439025086431026251913584066407727519394617150682645006969285546156540286458275855173457680647095590526413440739050070205222721678171478181761787523849663341924659543262161581972704520006031024572335487091157628329436188032640627046484386985573098125571941968647349065991445055341680307977979597889178344612629777678958058692029222038659014344534484453069013860406427510194010451005352208602810499398038354907097552298903600309476443170399619721256380509505718034718508287399183253373752063097333348575147086002086233808483816106547143505389678811671485919597372816482939369612282880636339472606148983106205863357719653014281617539572734448263773508582470991140587269372887951409362601823449278230475180685743575462547846593720457087826463505924231542598289839560128336064269847939144329471354787691646809799104929436667287210987695242032477193896888808759576338744955839446880644544092785823290716237324257106698846203886177105817088175402576857985691987501585106008816877828685173157710694145953943769164245372053554706760455976658130700588560964398490588719205585117242096575556131047834889684650234831340552087955900193219944206616715725716768495673430840951121028242335715008388950732284499939478600740799203527994309556320692057008271815836162195499735631141308095867170512242989070931739591165182146000197088778005393091275375313380095415230533517923956824259330898042414038815082696083858147749020191903029673041896227098840147431183628098106044319979066188495639001940700134519139844582464064857490223124308635945439939302800333191234624096796215109530761505807139157776301934122697369189287321722586117736912307839401119875056035779454235580692331291000088412986335608911215929180533851774738285618269081779549955875475738441545655168586788859787168366447648455816654580357639085176055832426544519390338216411343701293013924488227086859703687737742963252817105763818065846960680215484446607168797846440986460241239975722693626268167724461866674788837100421911167494906733878551732302999347663532792745179224113893231769529570014428867623300822300089184488100438214569503926194387609834688371187197324048123773927666683814840430670594430795981091797381053206641933393900035710263738852978836326516992344689168948202034427167878818780325168553818185894858287164096607201940659398477527877153966072768705883514412120134252485315471371708294324395817430130531548503228258859939828698216981499863412996703508572897728036721720371138732269243261909908413033432660527406946705151548431850939543467298390509848132363603123372625292527369254882040586409157898520432447181981749296983092507631657278115268895909379199478325617465499900123552130491775097020281823823287781900143234969543562940597909528814442458146852324446497634463838438832412224257177409336946523308239892742583284115904579498355275522447935975962403726850639099454597214470816568844926197368739270251014649664130480272267983841631036232335867592086886220504550540379440325593358633492354474504460250808171114928741083332277752380335050013233802623496840863900910487737533499017011234240730464729284179743730949745158675630744128181549203150812349345330254414199221694050686009952248584210299070313758156677934789672206780299485734598031237300075047047926571125748495660998889686282266928326795736164064481486100659811501388942921631356938717489812381859431885733388099409119379689622327727778916334740173673282292081573445645579264116770186797199539995535971627188181480748847760014512511734947194896341907076108251959300905806398387348717486884641154913473738267986759982300324990279438224405191156350152672996585046744060114662739218659035867977250943879593019299914858865086434245362702032877522365297003346921585946960382774912552402263700380543897649881303489245693977400128133573934585778047587510876447763415123804909158120964143623958598577518025112258865143808801201273053748535849501222063692318992350412334351171250015519363924390047357417415877479208402348319247586757734780365230040187137028803455949474897505498977781782664602447710261312644161734271891391762274146594427433559250665378752063751153924646993705553253961994514829715008318228572123570037019909689556960893056519873875850309785933525046638587438860742320709949563857794685962866621476377116829618260293953693426536658793159383424668243556849124850402149903048119936027630909813987785331529897154446073049980247457190475003764188263427921315243208990768420802219731650649039503095497433824453294287931316854090266074938984176100665817769110783055245356054685623872023020375560470634542773306805753531986436916635095892865537158219125421566292583061041525559860904570587157331909543246968411976359169671177531420689424894120942430531757541941501496959621950204350454968807849085616859275404577731120162788020009083082271866419602374178215331996119068210707206452223830773357374893465012139236994623611151743169529290335825898756171579494105502490611962829507307547169395096410308604316671180036840239951929523137143625074902936513757232239832155245518096479298651976453252207740367226595202305503585370663238165622332575640325680496095217440886129159981184257539626364704796172160891039996117962695390953173215530988626712244356178337098813503948419685685353535887930447250967143141104110320088037268274528039802504912919635140336818360392580141156719365623414336046230341928539023196528983279681751278828961459711956660535984946725388286955783556211819477403993224633387504952116053209048002715313280414684229122732639065327778746061139773797174562948075153573703574166953688571815195372088293953396411607583526753551010551438280088364726383896753313212245750145751533963926489351966188665137944207761461130936014755885399496957607667292144787990378088221879042606699886608807813325315863488715228064653774207663321061336326613215516656575406948592896062447171072538298667431474937583867318284016295132111034150538693340476982944062115374802990737797449763780990348064990399589316181222358785092759894716711155347275890858818396949946989216830449388565993363687073104823192500919787708677500076833319733093707771572921144179182312052021414361820950400049550924337870918520165800626233447933267329920218894321102940924040165787716246481456382456178790350820425468256379707453761993597543843308321758136912321516839249653456997541992935685937371916354381385816644793970990004959162329763351637944408159105165103810251787826689650894674708073811099599660429185304730325158568073654794791607807551590635032438092275137415453662844536306691556095426898895807751122922615451580544364732357283298840230496685755726252566707242839037049232051692892402952576724003097287790660116691568422356147352520361248802164966017562844632935994324714076271116891517846900236136910384700077522039417994913610060400315934195171083596863691103095029223073465107069228013331077021114661154859998868973492328877746135804450011193529420283769944329628208015059070291510192091505810373453995651074632454403260176071036715030579967150027019618062512547047812340016099221420998391321622498559044570382333984339481891947212261166524214385283642937590598054511305736181882520346319117206811679932850028992883864482640012033997896616371696426009594070070009372449746291857696324542352356049910881461951662658253986604945754764428137564519906619331631190116509614357743425246311180284917771935626090882236183353997277181646644925154267207860122213488825761970967818186788844571688321217528365039935291888703467061262798207599505398829290910771917142476547325031785094422423332965236108048176324067409266477029906611535051461197019699977613122402680926706001173705335127871264899124789900239128738814288958978786318647170325937018359304499010429382471373272689586745006768028810735890756164403066517288110184203349587732644083685671187231275281998886372102689551789808130732835169369145318902545107168194027955710622361961063323698952432042216582374672736155416585476191805675544288970112945195851800397846573858045376619235167640796774722747445135521899922656900890691101735555321692030900169081273609338811032209155266758067083653667606170994723020073418233512239409146914464232527843196186053457071915147480874419392996748142101372663344019410423038831445032401238350227147226294462941837284327982336662815737148739186211411974767034670147318621512613218012830925749268578764063540432491207124575812479961706161981652098991707229227209207531490600484770149522756184661398681985878115285658648727326827029936335609001309967010706806375754278906122103581718150661260059661604441932905605994598731513973915746323128406035261005425557076193774133024691912458374397912057002738563169075967878426790617074395338597441781342916987129829233060572348052710131890377620904567673462407837693741226987382821189613097069819092316868640334216733855368047443126251852575238765565466000779949073392253790130299149469629155899944032208984642827275270021699751336364636666750162238797957106075712941440531381704957806458168208188432416727091033966409287099440746761792393718332129765187390667303755835153052579693511603501051154640323976974965380749106838043851060247433296039973665132627559299187036369491575153107070726511053688995965081090720409742272982865180942742134993472049466612626046252758989029708964761438543692995491345451752787406649347808480176562924148399424878021256126256555091033457409123451290007046349080662201686070230090470419179025712325557961231025145734609649164754685279173365366297970306393867317494605228820470418731623768063248696007348831361389441941282141574565424220549303845703762324305785152796666994708349860339344323103188169610907665085884621251996897217710085565212229215957115717632576520647856023194113036406274690725161800274129420208234568670693601127488690866944255531694395635317727888609787828023169962117478317464710568711121967983563114148398782835057325533942765581753373726097815089886752054382681307700873926281942943101616904151703995674432929932584562881120914295731795178297594394067494272889924653497847953654947645614391624839791332415693619666418197092317646007309980108913107692058604656048375791423057504098480591539353553660117837923251338734252203988810612507264610053941337732660674620526473632753239139312428742361123337228442661239077914261885767062216282334672784691543069148082819300806884899334669474464266685334245628143835264647772174701238521622738370810926242446927319977203632581178114493569393787988834088906156126356721891601504636777497785523706874203500318970260286401410296326577144753961421291045943573583437424121597705998556252633614143835263613071648480248734933564376022098606394955405873844638834835481124443575200609118518421581908173706776703223721467945591362479078262745269439546264963502510870594452154758756702655375824842693028836166412456039845615849296306235356137889623881157582763767365007898144284897120409559122294477443793025979059247526998142241666700579288457064132803533261658687773855613655965358399364449444286546756071488721158856143403906382006793876968034805522983083045592098039057444578031987347679399129352694343770014183844790390770350098593482821212106130890106690160866259555187449824075400911914040623053220809286850315148501457164069130072103275288940115994174097442215297711236855334187912989312290109771057482456516166400972943531660852643270552027311110305345932230317997386509106993450509588418300248735060824274816715906946800876544729783181199022901268003233432948327486198904761708624028720419517113859279327688905233202339624832580996232467191897736672471990815991733009359058440151450684997848391945323573570414318989918540928074059439768972298626125168944205909285868686751756176854867428118958192948662418037640031468838356500862674808806356623100724928917910492156860965577281809128151674322992491590908001467867805751702879967873350126381734444647009998139903246746681484617543892325459374131964721411494588977534640469781562681970433076165933155266734041914641297564809805182533886068213125289523707799042710600674502855323085457263880836663186514918322393960108286969097668658975147723295329893968827120527469753572522634030895167496666224120034113498942806372818228737127000063844994128898857423633469302407479100850534765264154826303153086677588040589782322097441923206965524989579834645498981338783518022893954576821010978567506779856845734129808439130137558077601593849319637284271177350413155774206228813099162761459957947936171237353589051997855317290387148575998410445128482341902809310891856522238461882102318249686090304969151745213114729062038799039484272753911959432741690422497785474942856625456402513406489692984354828997296429214528864773244813009896110915278623730639223201805438183295929906029022933836159679785193693170534982313816702486993581880815454647762416317925294959854225792675304287660898598602818337910937536852107140430898720833574772185904171331877874433348989747660542247171759053160853577296394650595299048188149340480868569475312017372948483092131237386041373238434997927799086520462036842419546315168266208426435062753733077434897159065896745896802314139636821914749821377474213028649887727284966490422105716786354760412875401400598575850365274584469700718503639709520077688531252157841016348141156178406052439126570178144197588395031247612797620229798735604590105950118935623223159672500191682474092578744060272028066516932919378355201160710040573019768478790583466451112894714169316836539487731187727130044741874555165345837243176747280303431375669026745722904835686356475849129093285098079971688691875162432048804250478768267084645684167597493623852419082608907685919937773107898649145680164419340022268289671853550549078682878181742995828766609047181963196340754982114306644833601372170609041473058433892037037808795798583672721276091546490871986817273046711802622777047006142100736727715965491395635006666313972098057729812413914775005956265585383650737965370152910942184925259402543469040957735468022375488825476744930872789394719508433620573524206114795312454663822536645757503970235569202690034796146280963609942830095619869124412365258343570989293774352925152175973053804613633232681208399070679755893391183139357596764142595694476108642960254999312574826329424459130727643343591268186636453608316027693300263273385344307387469275791921821182539801379562636705571694392568709547049159795566258243649897822279625305781326107916269504136097317545413367138681921816533004816795042909648253190176534193683014981306557686876211995651877218521950005860601997201807016921934183099528113609907173669355499704069426240627706315155068572383337537913194624490753150605594712632730552362323727268043602518882576360349782738390494029457362584344845048262789764904303687902594117664484297416906924001094956339194124398705141098373380782921956002219266712192694169507248121876815417969218876574571909831259203196158122500795976939035436335155654964840686646364120289645539013612266045865885055995769416827111375690079047715023327141546099310432671695748285391818160763525986313600869369462010760772770821309946313688453430128605178249722279109237823255439004117295161252713245253981641124579830164519546350878287047864088253258379885375662469194251889894655488255866665116069065269908817643319257167353751963530254080850680993973805392632958427176856541329707384979380301079645771890422824294496850830275233745335160809025533667853088351147494039877764981672494564068565793342361561245518316556379693227986815068136842195272630270475320505319618289323901994080076365378174057292630086230932522847447897125794432119610550914513691506896980963926693116238536159942827584537824920320312707721101022323627240587853657585853811091398589172346567873036554485429694927938189483837379619016546003532465861443190142662659727161270130781381994519531692655825822199472897410858806874673466575496635377230149797667724390884561038754311796638033620088985940098927480526206788546834468265283256319407328283054257990673812873747574654587599739470230360948378640654731747966821412906122221762118849883224227075710173035695375766006935512347497488282155482838352901498310822645795657278609240269360353775996794910887781009722326419212327680215797114956804850807698644944506644393783463179174783304216981735381540041551571141822242078566268271204956029178310304732348060196858772282183183242879885536726416022856282036103998890720855593352426592695075093837305140520098554476633601691381575655595915988783962878428805099661530534494463591901440622765205578736381445649225330286967376602025044247715230941064872738300623058343906898897016885769947586894502177809279253429299325117184190482279672486489613427050914623535222844863942360843049785661910511512282576942412075273897562219420273201024217444751225705367730135592195393951980716705464623168440008653391773109002820457843844106012271674278450491553521630538873622943658032729474083868111954316611218363781522275765544447587852570904314343079333983115495252404949093117343806626696869494558941470746753311190696556343250098629137809023785723468560128308837537678339914180712839803344098153194766371867763477424785539579943889010169071738195591309024477870904364913257533795896254852192835860293117940864430235986982606617412607916695921329614580765476911147019067589697753307221852761253527932605700621806462517233258347515787731404288007578566346317941206478993404543500822070820383698145628134679097977546754575518525141779424355101168258932695130343120685800083689236732295346210025356038667761272126377863603265768386578989179379007710301164053906717207882393929906821749838910749586120294244061407551460610803215568265402468751912646198927455327545094851064250578594178559814409418012660173672064175935272345486739092460661669681453059362040942961823866140752685712873114983533599484451989094637065661049708362622597685070049035821361158763127939935789311160294881054357084733977462546657464893562136733961528760106694140678560327527382255982373442549363367741989547519965970472021133863792057611980952063166113300319203150069279849314546345555090677572992219089012284499379316244204421301812712690681779501713302417545447371472122668379226131042165164061591691779208371729406193991487331491060832774207011772769457297332531957224515236896199613532117864714943448968690504263245437632182171446412373202537378643988600517200320600748702882483022346889965054292897333183928949663306720249897983593982674345179246550369396302969188147770456281811838403564043955682368929888349425908193089048563880537748773530641913406840198270477011828839910184962575743442748140096980041129034350769531641644126620016212541110119677402215575731884092767658458672797623969036344428467969110767036517528630816234387053521450020282528231611042481692747238041553498327351995597399077557204378681674942366094592054935475741567234540890952045730999520202796516729786452720335163742370042224374288231952806955845518330402619974667024587046833082060607707424269472877618785910012616885463167412277008093448964142519604647952716032282090130939778770676295086891335247591836174581424671706688343896116222250558829158369087096588015365795305750668120435140323460479788746889126450422717713133998637086691907265263340634325576565345969093132618672658311687578448058709305284812528439002162493958702359273019769389959730424987847649097636148792239555413758426283861400574149894663124134544046721999742979705651195005263739511323555731733133446603329074741096405712272246586660456576410866344032847295473487263384817547338085607675595752926968987625391530439036042504703168993871104485892382747531956609889571773317011842957512067718572603946901017660733674150956972910544955699429429675070546365550197493333557670797773366796478283445885795166635251400331238054631854767518224540758960705048156783413115911411791771506468843669418643791829458916108628824956181106905867352183755998882732834344862489176155580620559418379592005504128520048882531221858734642936725506403814520546669471148939837384354704925620695339768070720026844451892799441733892949155748572042283089627346310690099944236902411994201106254033341569356821614046832448396702726901106696753908612932930580010492285437997079647580132513850078130311404462599525743052738225162541484200108366733020266968074545720748366064629470198506508777657525136726827540220481782565810424380250030610884550586413783862732640780893851566757893225292754181647490776801212406776764069214071134886020310352171172894011865559738602316727098493161051695285006403993924185063779571562784221304947190982590674074475647956089763897843687805933512028576788625470810936692856772340888378025297528125164225325064182798795353997737600078840703770370648929010539778237709865423951231309887121366225308624736364912109341755076315225241896886851191121492081491155825600277817512239966002347133349572065154495057450483778564427329693002608571397673218021044811714661308925983968395186204273270730788092458349065919392287259601350209690732851311545814907952594886144196238752086605430067534625058019028875676388573475898635307895719256617018339083704408148693897344326102949701137500907218538708667023075142810576384827472613180423750230181185422088380861496471295552048700698601928610836806741684020236311101460175378012220479030610454591277453712204328643499686625349544567077044903786311057078940437707400449493121437663954575661579368519634595452399032053593744427654818954596906043925113199002681854262948261067752879062150707252454694491129883847127734552320057468300316168155860725812287388059410177301811560851185829010805832407236486372820462675568852103568520652684453047340965961376933160544818742185752498895090681130562717971370286190936649503461088059502069015130770112049154817068449589084694980357910367345908614598908161280734597094786787036763832150501331988252878429174001583102984256147783336070594458141289030969208519594840460893790112985192238035342251609104186132729361078653737858282313068146805275864354382957189498680837963333502127002619442459948426587389723332036961002243729899107567544854969380243991400863224493688683124277107072178555414563939543054835142294476978770536158739451436180306180711064905673276471616638218606720894472921424538021248754355163547159218874067591515648743608726128434042026392043608908615220989470887857804673826952309274516303478251272977858124839015645908982914284133711716999721964235977928419967041796330904995208989662662044123256559033352450582439103361637025939124223512445744414942504402633569471427059300631591020888416435464400160782756308387730088918010339794871907461578417522752908354547047979138939744089053667519371952838516742738594992530695537297656943966192867361374154850616551664639960404404999998590516536013129061208410648629988671591187112038598324986261553842138665686770562298073875688871545748058319678406875649908225025425620455092954270086985972014385156675656427008314449980616938366808287405841288131782029169715559350967827220697560619262267974700561846448154324530553078147185218128669802082366027199137340950487176050197299387773171006222785761125770659054864979367092842867552024957644023043220969499495065769705789744584104125659579077937323472239137906639227164354733833255220635646711817393155712263879706015873328150099654162754263036580859345074745712954265685517584339127962541097513205640622740378188486418129246549093304469060353851646399614127951117856440318999882532417118991431694368512554056096828296238296011860092397120287677965267800702788975490685045250648775806791149404215817831015870224962589021805631692970186776289210519739271780903218221595706376099851972004112836617705985812870342544044365986648821582097069673383468280218854307578500091188647676144081547255708362242472817276434687988504788089801153268968915904866858154460689775294772739091580041064295225269982822389745414856196892338701860041447634686060676311790836708248556012294740077727473940648719629202742806781756814392179184026282629322748587494842945231688944385113968535518600745412331192758656978715745808699253356722016336552833428933297365902314955760093807220483425093882160764987544768348754339371252738371801766821020436821691794773554549074866318116677107466224746032046674408378418702303168653136137512395380271963633120166374388106593037255406233246909708363138146158473179773985339641506414272748330786349194541938700928407371719219120924168213980137635114733506805850576803891166983054596207882849057697235777592101702864886122208836224197702875741685706042892220905613284982622176910743739366916598311175924486774373405756236829668123401319896999269907266388262905783151567310307811826203920387139033742818615033671402572014467105500908017609207623935518505344016155329280692499086208596193800291764498080775685857918415704390561561765922828326242225094228384739394133338933006968893696457043838532419779608557614719048101693732379388023471821527760680833185573137844361182088057865110469142465961826174493297009494814260372137397393244804359053798799044779053236989310063008375735378003766266194757083726805145873728318892621235658470196484745919077658157257653331205768836733073193596704615514874814233048263174594559253284925465444624823811049450141510205214788843902602061243178917973747083502181759808719470504041612272047395799742652385162053219577208593812051958615636387782631513533884358891369365227454492653075489878973266449956438944668279645783530993376773170920932599062015342393208011033348031641755749235174723144715343817165188310618891798025428063598031646610307397902987023329212045336887484385026467483881624469445640228559417316157272332091274205269770552441080146911728193614154971877599693930180616203652445067486732849580970508886696898847431547154960121024725722759095177264797877948952862550751828952685124450282098005650873354240314998117759851464612595232104096795168124357845970932741212275976308164488447556693021928661101159759247370363215870432903111306079352448795509470050554240341555222484495439093927130772835971584804964376058258948107626289592928980519067223846819379383906567493838749347669874579009115055438904018394295351277223551980076706482266137715995218273530580149904827362772332943791582238199946446254879302889153183492083454634720969961297895688426498425228413511880262230957354656744937597305694669926753564660741631251040254793740134637087127506976428212489990103608345802413614099132863856260384577934856951497635939460955753505234270473938324182701378026445722760836692112968795139858188985759327907961970679614843672674559115893644780293685804963263564397193187702610702758466086649943545339326670444058654457547150105090179639156631052704539961970897018625248131678249223569661931570763404754882332638234173044728214140948283508172500542753223301220777433562001702403697165262641850548867675675256035422872808585985276356267480471656568453559133592706095588691831254125680523268608532701664529147890673397739605784830133839945028019935637608460649614393093533882023700327149661950555511812190538122285796479286555785780135757442206329977043750791766567280971918043273957102685170763241369244119605270421246139814745882291051732256150626231488443630067619364274843030599505946158310929017483596726042716918983260360265558984390908204097371729080576564294719911828672586697319696553189981317102579465152355954337985545959433525967389812043447639668806455922502345707778937065579595091670144374873829103196180046553466891934291335352598407648387107034617985187302325506121740012695294203785172736724793498758993273523524779312480943099060924625650712850713584185001868900778826372540510303163144659607664177118742374786993993620354868178782541848756948777878353376023285460600056419340899628369221670118935086256625194484321658428909033424898264124875531760286661248006272469008659762066318048819013995703349170491262941076988154721468069494798469908815694957644738802399989235153119773768609826943559234040777357046745980821018490355594973776837724909928528833946320560160473012722664847687289014478218585264982251337303022227119984301234978362789143103076106355244707340288902792782105835056418666001646848508789765145254248021617467242861755710179243215416238407592959075981230068183036584080176429656623932507425680145419406518996263878947314786286161745407639092725105150167020975397305049652378392342429346653868548637117140241712887799902568805990341880145654290272287555768452262779455477223691429806404603021940862196118287661777992740527430108213950986299981210535349097399966031492406706136107367911331661031243655033077392822195408927179574103089844049726011769866019834429515999554550309846422949706566420298504380976347934563659700308161560518323511879855151415315426759548212811932275283265859800793209923912713002335598065565749616300597969780073625292873621855079897195535163490530357742843485988220353511535771851237614625297354028842952214972516985052510710682825567618481362933402553749013015532367864853421254641223523368467410372098556366063188992335548427997383907591277433784292554300572818739291982363757318329894408844853054038211905477203279568957563077397179153882328087852506470671190509469711676049116050319171827809387870081647526348621929573584974288616293562302426119890139913885400496930229163857951398581841976020265346219506288679214774553616556805809919836623497911553583572048567603258120603065243397335015858558814568232971594699583561741806269316405098277559584438766894817099741571461195455926657099266410034020973835470460769862363102644296104446705039472005732715510784599451562556479263956661394733609538859381355479033737092783212639850737740731663843012468159611623853455969500957195973620831270604488502901251397657746098226888535307677772796236950696211607435688288313056154661789634120850021745500826560803858863699426926274992438727001125036478908637091950127628590727960893971280764056300427742014389772349434651124568011510678983943695380576513434306683721441269635916720206745898671391574188059137898262018914042411471802452934218092540364683530007462990672193220830323055762464925850162299963230234693316691655519365453798395081967604359347118437243731225678397083336916672752076025041792778439665944352251611074109044693859327771351349641462155913711432034629608372528577804039157912845980258716128581372051147109417012962975907604984173908429191917179749905303011999483756722863257541539470899232418848642152626515530054136850072110000415529759931522908132620319821550563420295385092337219266232123137600343338832883385364215534900137376152987802807226220714372212631290880426516367699135899445208053944614943018630306951741571469377325265030057226564947815687300529361617618972677003134036646776819165009638813053761451374107392607999016642289724026280275688954390313917719628272419557849794932200411130381206372840973408590763164978594788840843459261156597270482490201842789186284315564348371595343641301001654943325722422750916405899744740595907577136551360306274992650161226599214831560530963675133341999824669123984673961555368667281345915956182828092338130032169233645635995124673786106459055854495181901505545174166391073073318221520051912641115983330252264969053973646811538984677911003690468687977884771974772409494083963991132377857850874960392090883442116910172186981373135501067234022561997812862070096825661423744780974953565186193876666751846257979582575026315362866737547671881338149386191315904761794258129779057623235913690078898604500471377859596260168237914848946998913155067334468105222931545642005269981595645142534108700598665121221436718913123501682767983693844843793364002200753373987028704277057576170309133499329794360171827925010038005196559525446974177067772308540716022447132176271113838735994850708458076977298683331452908939740723374364650755379716837307561514781320304467018236715097248788500420554904331146768285961260339116965699093112249822963604460794062407113592243942972474976734078437868827715503510980871197993222418560663009633541026420575600528107321709070392452532891593397725249407574078259345175887050378144138272072520700569657148908577981134611359973681103480915105341567930533992102668889794847604889505212638093507729449964197636575016379656677735971183974753424180008685077262664253406579913673631400706529584749856517225514130297731741271390788008338634882277354947903936562735893254262698900726023691311523382034487455775084726778552514970769674139018711167953351055902635098334314115680653719859528148584981583914369858738444751523730065885203904461765257431719933422602628205589802375904148571981735027379930256860083350703403197859321142080559404140778103353756022094142573694123183661450101741670998637802839748371659168241720688017208587538776275605146388466725510903336607693804651325736300842014136897664629374638471285568380647251630859565399653781913428148619818742098242233243303012227569455383021953929182462701386128374962671686169730799953214383851747929832701010679703318780362847364475529455045014604047095198387496657585207493976667510081329997099630758951131933974072295554243973792980814373236819873842436889718860080886931972864153419160695064918407946666493430441893560196951711781344622641923856273367150406582859687887120239819508920901097367997937693821802567313953345909344767783126000117309557750263441781199286401316652071767052798481606161396713885894579702535646764956101171796565688409184327200606091523746224624577611452071543300875666150559245073593113097196868088638684409454238130525262456550021667700518387273205591412607414315096382822615987269625829771941103684540984092063068622862259485250380655853815977587331014485245805678634267894338067638590230764711069011569299997681716571544026901109533805033265397800429433887208188604922355482590322035106705798161628717794516055049100847295674288991433537295013115701405043313022192191334670681595798528628820963579859123042822520376441835989023897077675190976125558243940351920445402785256030056084737598104633030515083963423546740989250070658476534424141659163038714282949850887830700834827690114148487993373654642483771972028735638816681280315345001226712548969635368861517556116030554904223719069557552724725004724080744029016781139773654221032234971668702807805531287516893205287703589451470984872187654693450922798521411539158344810581665774653915689138651204777412930199638383565211695994337709567870007241547245115441218438562939008477752255321935458579814473227828993445153875969625946969724892547067951401645309933833874806748137147564537269641028185454462957185775147440971077489566682325654018824812805437329650282067111666808519886308548065859349604728451215642633321721654956216580898981358864678507414504112437532400235345202950516410438488311400510494654625578336163422809606937528257784182479067203767251328125808870293756447253700323020923373605543711082339976644670903113106533691760448963128498846465036077520018702320182596765156838858920443219608931872027361063784640103112357354354142757098413480876833147284690873800722895348840241321831579927069290725473192221743419595151476133785595506445072061389726603748676103501867054096591641281310043844749918445785703354437916984976444647363744115977365972908255574128541171493990772809572381570070474202385115633253676326155284319483061986114869638306184965837993172086393899209803390622498770258897020327233826974689984974559013080276431692863716761312248081644121698216088244562104650872571031761026998120182907490566973392794815769550061654813973228605841879005765921031175527764113090548903703557779526157327328018056070350634686988603046331409958526671711691409319266857562029732101459744080752835084787181110143602458758031496107095568885215718889870078674900295903366007120303564445350124789899721066526504843307444893065360618777870110993707702029014909022119776681915792402834550554572033236333472206151921206117463065684118890783389785007493862733040631222639741647872994864497001295574795258221184217968077937574681224680427989130361708349042169280052459230068353641471713616279094420885020716813500821261784570690946619083991136601302338710874592005557378293215706954630635491555757789303840093359625921747719475698896618799480409324972225856481945104330509598470965101033969700875537035585154719960672422568535050014600058469180563726598448877644030714223929057834088042647492626441723651766670683861628898632811124828591490506923145110980903131576741454987229450382863326892265053913652820363813880338748881858533622166229353985407059124769349482453687992532342563141356866636888219790505829692952981967836927971797851880426810704712663774752742632651283964279013554602410311879244677843680446189923125577896257889455841847575253126162806860028424552942402309671815699171728489513211241294079272534865224148889081478143678963665477986888982210057568437283707019312645182513026793746537466855186236101964260064825098008261992420749856076583750045117931082073293199802479816796116023318527667649139557780412834951193582066845753988709045695383764056147548997262638040026333390243405833317983476484536183396835809786120963917473596774291514778514597207816896150701763279723533389239234470188353569387994957881024569993487648124773661831831973585693296769884862002696613277890566544651635567944328408031960579571644086477956085938200183127145944857164330542029699876499994196369111882355780856466507537115021322476309842815548332040654489293096360500194039093594132685742125451451477106973563680241478493317011317368267317636157672699318362012289152387732936509165304842932075772799614868095033399536641659592227811317355025964416688788469051968664515952012561822385056320349953946149250393613805074349448753925137539338585432393220013103635068096480044891384895613578724654160348430777632011812666569194693587611740436270976799147967125793797319909297376140004569473453560901669120535189559511457470504528612182676233547370154671805647146576643402593773267356958419798317981245992110109273130574596072956096166271111795899341469702856364370423057162203860492559645999196994087007265879047456210856916569855844891472995607568001827882914280890351138967488294056735670625075994456252571561304146337644289845932361805903014746830066584613469206292839968154112665695707781932447277281110893375807289523876592308225020214046007782447044310601418080435983781993236281695757988233242327323832346124787756864289103839744158826155061610642073167736925855380604631125388831638947707449423208832983990872396901741956863841204675850360432797680719993228615487948983727127302305569380162538503782786260438849235392880451687547081739807438973460969862425400685524675716801964489498283423847451171917502444619169749256166805477775115465672572741392509141773477456874193567233672873740665359319523493746939991553086100135493885254624965016190675404438420135178308070846023676345368456490532534640165642901154727480507748239732296747539406812169834099025129896916084667604338404415151051354761254324600376044749965295310334892170375842156874486458563661415123989902869094328769054542773248679939244589957319677711447352399957717991602390204489238044748936334149428899533892515169280386269014050284263998463313752900612581381580767155005282167687072861097893165774824927857201964540351271246303286876998368913782059811470144894565821683191166470223861968942756352424027702457886657106775427754773442829098839184563309124888909495627857694052643764608733655586638465057943959329513882943296923792123416254366504230182414898368247069906914428736162701800513763453139796235040395864039687724594580475996863090469135380673631540696267258334955047597732661532740500741252338744870152871082403338864583326390759030017848884647338211704450613256961074605052522288299896744160185623755599896883753743149758908746209401027151974622590455698003806820916749217987765956777610601770342320973994084247639692276676980357217411159842879042782078143517357317697566906701060155143117458792020544747914273312295735479211337948403318115225425069126000582310540622768639543476614597147926758779027842365728868593896316151392607855605705469340107003778644125722536036259220755736542793350739736183283798851533125872216742963394874415930183281605649976036778172385212095932235068149473901003452988104331519885110019365887192545648093229320344394820871759317037152072694737293719379661871200924488160686260341700896475556620817655183420193267122805512111747765586387175080827903141107628076248302257206570529493438161597412109601761549470750252831742436788874087403249145991421233513667944383307507848034575440494006426225849839494282303483839578266487759765241740873703579930510163924041516970130134343065365300838001472358688126139631209981953013450512406629384385244044143005787312337026935279308420376843626844751817472670583133713959436644078658207779290556299579722350765006311084483744100054455439857481913543850576625755746074724831681033929305319858893505312639375553941523710158821730170837321291333796988007007940694712329929590261769490141147865907757332951709149888525288764602922864759614495739570506728293587103380351234894316737281565528430679201024920669034020045469674577098514070180439777695155655045750865959315189620011872367776689462700673571066108153853214438152048236447226595327458245059186293566445367186245325982887055196045114409484022759838648997997813641578943452137558224494373785207020097517306592790652426775966922677201419584767461285833016817353294644262291492846717303636448015535201627146660438347349384045265895616311999355651199665630925420833417726077362848762464509506758272162885497576379653090914831589377859396402030015299609892855014749329072370551521831956395419613451328847181609323609169406816105141478460109907419269629010728114074640744926247098024411968569098813956989739643347752555881096219797069377881450103568753424046058193648587956201512450502814253459600007873232683575088278238077864103906985703217332619637096087757976724891995415642181269751757234026397472515643304332262536896253681723418043613676775652561323861958260724037101274630715878299251598880316942049142902499958148797893303236670713298028186887582406846823711416212195953151186228342526023621020479151161945961438767381020062674408867371156882482393394684696333315868741904817862501777858983767183157196175423960457132192664176097899650914409701963847819752570503929924659209412053751306626442373880539017175550769608945822393954998375093042612331842186457171703253002426300230092271534347556658767607878768128194197922648160773348624964730406534988566193593932705125168835355069593737585344877573092635298414766855080242097101318036953955289149152992080781508279984936688757526036903222668283264452693474321981416512009748686937535813271823255466459525151823647686914745912581412411061348465447510570621102293316768313935019284977104954978203433751902750033497212176399749862207132158040697487809430235623332638545748392694402644782457348040607493649517924177928781979500311743050346641334843635059904240527898877215339818865234750863730855798031158925531033580614884246353201624015621076484865244357439957491964827424393898340503525952283750479703877521558503889468085425543850065634521518404301642298805035301134720069960148316953743020407846629857887627617666671413750642062356578509352758848640624371713477322170091959361198725464021972001465435910116674746804002401066086580463090138323825118815216035920550224177834912231878811992381869767771130230844458278828889602936493377086006537747385751115489484445935673917709696381176034856548804015011077933288758210300692081577980153158359621044384237118066477769200237154984417263648891506924969176316611225952053093109768311918064968710590265649017639317557695232674268731987847470376139196184135723589945427309633374238993681593542801257494171017646995501894407607241616366159397059890841954953253661350402778994565328747634547783648660492862782765414677175156224380704888131436071391979583142388618118793966222030625289298254436883783039501116462334229651252532784059451481578619755518759013928750882705487562429144252754398029053109130122515814321280787560350570708234665664614641353309528607015624754079162425069009707783633225776137634630050074587303134040831912379627494811620127027974327788117841590406092969736475152838761690899814159249507318091226186381391766369059049874775340433181494684022406836978151427678797402881773691927600487437180009633922760483997916693778632633695037026103463621530515616013703181840921244077642917129229010438728261530904379403643065489933224526499849252558595435893050602661532784407573738857098058041467235577204814179579736801833422813964039980553016637685833474731877456058325637423649525012367714827956805870094011510006710975221726348503874216650639274777579678853972922740141485504456313359801310399572521065135701803783068627104391130014044118130806046608159955978417333764830974228300418184297117143052278427963436015037476247523607165777976233482700314263896977399064837284546430329460381555762361969444768554903794320600668387823538923324451106223578798066678019898366414259287703005205827816744317775951714306413176118794789010535266707868909531947349887767692441783587698577673710502992406421844318808946239621148503192292509101981478149143014741573644216257842784263970884161803975856963836017478218006785408960809298849820751594849575732873273336568780593293839943387620206240987302634941190563805110324156260139086919339932947465954399591428270624086480824757612099590646582227278301212666695342958730800377819855070263848049495196473288669536376395759350776519511732694356876946358322886847390720754032996679923377273264780611214610144041844810949726057545482592132060682076965139431977624931243379514986276988050986775897066907747956119502051316853013098581046974772980887042269650171969932153165125530823054265266173651590332488382678530429954014311273108314032886146276970946791314243020336569741390052810137920669789280511982830533691029387736807749025961013692185777215808538391285530026608733386516617441898966204978072955374278361098967251850694571151236705896849786772160511396296853274601536487345995516204147838609080776637321151633588520821979634970546737207274080303999153310749022044644749997839835494910542673649040539988521224392455746919598357688605568248391129472930730997584726603354437065529753912168049587710888331040406486886890404529685656316747808418877390068845583593394004760410464919486028169777336278323121041433100834069447112388878283730904379873807695613005170562658109584654589017683070984252884449445332318876571627986657059841491058116677630271390840451158924541617010240359432094029106119844288942650530851448252209826709089151093788803272001822186853428850191454220625554252216699584986131647565880215708215773545224835568159633761319513093864515589970288052419810839386584095782383991600128488385477563881207318960442987798342776279423715981973113292859348056989937244173480604351148732410439248699475062861977023982165391426033511461590143756596355456002477049968893992559145979760853930553063499254051839803560148975398470542319785941217458340544590310373413562845206861310396606487994420278341947906258322491924449229782221555692628945065613176330784420029684494799223729673106117651321798327705828178660024174711739757056070929123901327415361716642863948857127481135530380533540429664298477345796126596783321715050835389939692015562858762393653806115771343999664683073587061502004203180704203893072586366123984905823103258790869851661393403811386995511921416900721551016861308659744534357457011065920234143812678196743083615234914328335766811183757045445937680344677385365352181000632180984721879116898184284124397822911930084807621239186833412699299340071217537078963383238973732567946575993101884192108679608386990658386320714119035200045198561513574231076602953298759209467705123319386562978172514137265793715809426206416095074196673284035471705500620783497637033739669148000919558319017614360219836573428172061964347683986057101072921944144316280403884711972452425998011735929823957378651371339019879681316883411108458300064779085132847374883045145296742259644929192150646198241835219352271756179242901878820595809810081266955097893249812165859931100238219428059874682538501595841370365820108352429144464186968981698973816025901138244534415509260733480221539314990187252381352523415282115980806884823439278327586331316835107991294528616849291724935771853254488207149850475234043765093334237272291536136681284248788402572205247140544293027696944362326634315208567179225494853032244679126593857047617786082063272315496056787986698440494863720696834130021129777708569727527155968480597580477254215307477936797669160491586471995391216816054475049074045218242667473856821306540408705905317524645343964531115771681155049864248888805442169123396459199092403435906635568041617898711494528330529051718396828439472330885913444205036454691548920576304669133932087668161654924480606620759835034848760310835150969134202557026711040288217772036237141617375533730296770872931276101506071331945218672922052128861304138673105267286028682089980024229045395202388954914035288816666832081206179853794223484131033733269828449008394268414870949369722468876607551410907934397504683946932772383673613170840851400613308340977763007955268975763783028598250680974592205981319643375267641395852939922898830147942855205377796441440556598638104805756894997604953565606935941508211754177401097054732912013366335850395385858139572441935232473522717120154483002877372510233850770059028316194647823452437751726702956196537131748464629979066363531396675484863781636619049875166759764882898643741348709186210900172756325985128630297592962934325035691472351103790101095921859983950425938080497332317344991967809073102214180408653541803151351173488352945390240336618328001322987413649574228487162593948022009987619875410228168950263351631590849791626625345150293008949531425764826502891481795533761335485453016172997882747072554523042734987900835993826969414448498474838021637603703197750301799616363355871887237058067943942771970153239076062919076672746684340357592720258444676207789300668971150576264961143916422731210686703104419781355145645525207234457389498246156771012854512203737929298092198253435443267698695603872344525736493185870674901650448096144234812998609501451770537290514638008987897514542244122277065546858678768307807974358889412442616527982317330304811014774714889840893654901654595230528610904116731736611374767964007964779033737444595164176528449452929843565425711248516773946511805703046478529649253603998846603243956282523851929742463963197482277722917652105594923615041752454739636668529305177192102560474681954031090372699120708843497956172074955203032790277991389072850061406111710188735081856461212392248340332706043096046801586684604900193997411841563012922068954978128663300350304018443321575584275691984742091320911705106250312447190688295651635698256703910126125491022902419869679687245539481520874664060604937883446300138310680108579243444844932491949578822436168179112695348518333401371976506525047837251949216648671779220277228623712849989552955270968479107081246992611285899988908001750244894390243359397672029132355185451572267313695386802136763211545446944903396111239336774872183395053341265944796076969830984761099150965701808709996567697563513553735899945324014044661846631578518987274905681513726445833668117336701107407274814346962968159793908857889770828751894654370398727649058231761609046159482010141994990465435552423003578179954203344566526478760377467716201968221240674030884437870129073720209718797129595771050661666891245810362421728449834212109988089920267600845353273557890615153901569300910845095255446722448840265091816632318097612449180849400470676201401611320185677020938466441708623956074251483542133878874001411246382286225744065820110555316054308489957435939229393228189118508447096772947304852919158957049108323963727307970781280343114343179995559698487623522217036681720772410096943744848271703307021814815180018620321526331108419382324960587258427041576846320191843979766287172796365812862632461918747343500643683310864415539237453015852708001885780286726807903504470155763052648123998676816022330609175758848981368476943996431871159432708437578345517069588006968601529113372899431942382847044813345804069683988287823143100611795497886349746652756950913962878161385610710382018862383097329734249446986162697625240021240882813902406834386380259544062720251948152665069650036864128806555896432135409449670293320964374406688333213139156645810397641691448136347683128059468680647766200341076126999515790013402815283897413519174359190076129603820234394357513838696196833828897452289917051472337697815838981450960875311926843690728720525904836353967782439019747332448193876852628545123172866937426512352713282678863203322940429615177790162268067316578394866027582886784787214239175203020597987813307243092221671813906437209561178548984267096476482478835995226923481757085901127923235913333066581062717777811426888001003446986484149236257875704291565130113651898276381995555453746730036283312865633258417506709510757915198059392712870905283387200186588875171753454599551850864210754694648605925538992668684004502561050866018352249850131615220377211171059216452844673872546318063559855303050191264586367634055035061346601174327236735679246196132334840705032256396367334526658982703090015070921436935242441847905164230757690558011581175752571265123815505297688495858005758580558719478970354839729946965381581411064152528970096497929751647225699387179073497947136291623191887907264825351163465399848188667710616835406069530200629457564185959539955367036272407698780864338875363405255965937561761257063778815719216811008925921265037431081053102857857964193654306362852840372628357951196408826291433456464120242530774596646329781958323874630607012413957497685865267805041484696370289847961378707022010286671557451203614597539328021961267365616224586009573428390948604644208327167332564014115966371938522705165391766779846372012699621906696436824062823583194168533631603121082398903960292622589441981143299382051063255163405729262333387867735991042170719072384091048446678793336166597613740887920217257530225161814802724125053294501226788766883154639078328939045200105385365099370886667937684664394619318029628546841508054158786012519178207065469894443667715385915184359007809736509871764751433019070337429505000329335627769524719444054556782925108400430950054559503037621932129467765482136617407873475285437883403488974068016530462698351985495110569756113268139372724387818349122890883174543994531406309236121031931502659846057910623566024351832995027808685998766842162971294664097210369895110268867134759041971575949017907522990702739783623973006678078016937945416705902422253973514240138741917859926698503602008923711989809014055531471345076840164848087984792949366288726940082235180047234828415541531221070621616987594159234266094403771484099153146283170160829542721875848799194945252402771422573866830376232143526340168213373675658258609786888387499003607242886343921177659625701952704059404740919698724254772319850115719656211334515064841219196045513945561479087954366191302579745246690485962602276649975440428113296662569347663759011235301055794956609867779393777926327323278390519522936855870685759912243247679524257615947390080641318726945255282035348787995717044802733470095199229517868411942877158560069247404713335005113932307578579901694275636593045638058348860289558037245835907242332879421286958090839269782119705580933602384464155314131035805358467665808607360040341129592155652455743345861348348369492888503428243888663229198999758587680215961949850267402315076281484531845493764390224590923698958717812192489855142440161326806370653888390617941491623757550057019322973668514791429199318233648402994181199992975637414091687716460173131075161777470389082716493613824147595681380520373213750503155854940634476696258616491002416390140435769919056440135302083962689696890841508592408870588351149871506367306604859139629490737604353175779041129773976680452679644267168434077641446837347981033882280411176914807644998923757914606765240811636599107918812540402569835158674445506270545487530151888882624649458624876680590086383219675643183407089633859409297785690127970507102196017107543823621890615693532021512849652144597978966042899704712503908541679298423776591141066810387035790963743559142270814557491570017414251839242540710012594836094079425713483802345030550792334823469851157487657582751134318581151942704195674813105605613903843347103409785136482166798683658648137826044353770533667717152285502782318031445173034723787049630395039772070951735790574696247084741341076782393954008547262424988946405937914384981980541949524220244643952881346517376987996691954090574812706324156421835326781741752398030712839216926404438739972420750603246474230842032196391248314066319423870352943023073490300530124260756259847828881781067127321651832734952174054813679737906904725636390406265146676490631770456519897437501787235463342204097418019469240527895691734978612002572539049559470620823208465923820240878195410928846720506207396061167669444008972045732318962587409864560460085135081975033274835404725764156746956861468069310958480385455998223710108269281594911026196971973262830397923393474565871196681326842403360788510441596552017635598690318706441635926408548133491769843581685736598556478663198911728714923179012496823199852224454290616142939065122565944508525726299522024853719567972029350830194002831649052136180055837804076057657291057503878952058311747926350480285373605202005835569158953334874968899170450453075282854852305344250196680703556876102576874996587976930511592145132726679293875232321619415618063456027399941782491897560440137977826430264374475698916187285239699617604792119283923878927607646005863353526478212903478187344150964987753839609323484717010532314554754803342046100701796164696511437367287852289793583555296809420953509399439256099994988673900839468785733729045305304729986906189409468500737021700898959495537523513491755791300980998721963781652781567105149942527069392150034814575773179819516591146270591579627607630567512342811835641204772330416964816350283554180277372546943220331478120500179416386293536027119063337413050128823312819605083039093624384995689573981917702880492652086779416557508486900311506476183515352747845694288815276286821386958955529978939846477701195199941682147932991756989810859713327130759924635124360646973893087382364565832904275184362343696553490036322546156546463337117995406904900927238745237625926160822192893474566770759418409598616290328260499325941385843843646304657282586726182270906483652303925695737725294968020758844101067147617139713705654234338171561573399584830769902376739319088739661608089833282522441361579780428279048279937880192629160345471943899816185800775088103729374699401773089109089853606505882696665948266176517149428802690465365010883482784116955870294993891454363625408118516691674822029449191384317545850575110423639753653685961520788771256622423679141485496959702927113784962909138417796407295027665387796598031584950805205314968661365791091590704870508524985632555116798715142683154387506512353148062217141461872014434909084704467295989888782394243147198620040605065779147357678749583166309467522954685712985333147692054516544887805090800254465104633654491313116124132162685801618787450383416284706320762079735834445819171900838005587260532926173692489953824642534095470248839915719427683952616633271408495343126464770722060144707559333295429983239836430290957414988325288144795039791135862450313833414285095161917198448319463992554672789482500120429772537293359145192405403255178309432622090354040552697675345709406610891271523958503970777348949626334192561947317029514016127106564120909885418824808489260706633809169021392519278545297052094853566555982939062668046744159143116872102835141376703195685520640760952814764568016900843462878301459625879180584228956063164448814147880173877652267521428737957823210549406258857223134754401191949887337482964288474746792279676255025632423168669023828226250778003377610910788169835639769492423604130002634547953293081047874007467599679452571272384798990478947074179551551141589620332417036299987193654358379115003927272596440410224948770280888611177267064606839214302008153345613745643836032399210224546224946333611685074516922231702704236060393691270300963094645675870142107024545337748345109513359842616148547890028133630285210220636778299842878789940418144367681293884779500101034890861999977138576889880569968322574970718036338413875161700235750728887314234339888370970636951480446331569981311210406548313702212479742944180868704973670345401585420333427652500540739253038367465673152353158423458145327738932654627306085270337601989086490410392769975875733987539879203270242819209766195965388322259115370769224207188946254125396222884664324349662717302516191593477636732602511045390133471346503643266185569131867042383915610740580744418114856292765135594397421045589856084872302147739409786944598413438896523276104406198988562229751668023192659821927874893531179209960869938753378742587658772299460891653085899274981180155262731731510850600125101541470730396620013988461703931191225399954947026802514962563118962162805160874661173781596861293963436872574690186994104737962937335634559531448964571090419063847621063811406583294857576306077640383545522819871248331602988505048531482031596216063828921605065858091354264817203826548677516900994400677519909896122212395357806940264718819702510263250698852788089591766532585110357933920749903945634315357229146977481474283646392748340631004569788889129308629967132805203898864704077665038074243491125044154611294608276707015036566583087824303708558133288179757856120970600267268921426844019309857136854696916278356084738389316771321282727770360070990272498514449678738054398464129362377620862774422807116775700991763752427154604244346763589004974095911985153660597549678449881749734029345962340490512237845424960983699190671568287764777597468917282263052819927254023477616216105847380656313697472649040399774272097480590647693243767895262350352193743490022678086429041494051136228628622500605123938758407973593422949961831990676426763242765430988398593112145892874115410597191479078854460251783231080448101098593509012314879917762648414109891671916562413372320275942263853711476334334616010137584565847550965765110100693573430396347372599188338067814153829177230124605184031583453259387074381669511307800815369104698200095236900645071653076171120157931164935793744192699342931193665356041189542229335077216913015963084442479375372878005062530207991074279184126861693388412019693056635919531821181814697264514746497352408167090439632866239726538700777922170221913110142812401242756479658022271741205561159984221764059461422878938197703569530265138202722325662204059268672316136100935184400302232906136370797157015004580233266571339181880226886891885074529972411813631009608899754143644199373985235291178743251166680644198458746611123247938035738250893171887555317583424142594829054821020781689907748869369839042981398464863550105834281898671672087170669263045060099042770949559209678848508056163122281535150140335375510500005249211210280031307738340733960077740208360002597341563725459881946011187427088239358403076062402983807665060670776003529036885102549846737718754209682575113024769733455819065157206987297654207945253115628878120259741161432762000086061618592582886888419937805777516323342558249618415523879151242082390230177521752222621256109394198440092684909862773069466661617906542227453060693440625851810091830256068837109500970890365295067747381134320829765343696631022709335303204950644574276316689357989150549343218309323248547171542611003074522391011254060796667200891460269096149421323040473115113692692449105627434696162569897196082753973473448346232502747756796279111728987942105013322409071372125276051373055951596091517881312834106018489921646740215628477677314916749924071289268472595409668019530462390018481442918813240369436022724796259996269617771929094752786794592520079621859310394756938103393675583882881705422014179425425620796805456995376843102545885554138763988846226100831446009159228318566226507429207567954015060390855909257664474375790790994815241891447897471193651241955150537720866114755275619412020778241571746577961347660248128632161173739652781979541313604953636064226605512983600766429963742719632711763007054236307523436060349251483153120573070147619622221148924438372852407223622614036695537361696974664323138893305899462084771811134544757386963352783536433673186735497460910666965583041333583842836162130782722875529564721068750682758477640101613740199893969231395213158186984316492245880848625154512085583623282908213747484907952149721275370646568257802494105787890145896225488613906900144011723589895801290653446394170528843517796760600322848578551932394932573251244476022838649422758817897185572768095205018107046964233703091543230158828693002667782864963998183830578130653243228472777057397428734414980734017498893861326347710907104431117694854378439784331052979472549753447702300433234691581491480661171268672545814090967083748087045612056486404261451822198372469551891218743472647931180240356506819677268375278235713238329226289060551306161650864870299922566462705948119550983931203206274923916670607910038325453637877037923781235174002249038965970825466425550046873572080757434749647806667893330126005681397131810205504056746717290166470502997164300765466319265626908895225128359435725828920955064403848753214250349889384432863510746782172177050650797205115285261835791936128139891686815371020025040124129463109935287017376975211689759582021008033624620855876140196270594965642819242196330444184114853738042313651804345222796285770577042871396617511430791517751685035703077864731861293673631129007080724438948654034421269690836753963668952015597513501328821435684445792394567405976018044516427422099532507614088141655279813511860839935926393630315050041860869585541983819791735809163574747424257169246691143154010297767145380316362697970979318570683264553738661770213923171535197138013590715422145238773572276584990353046899076444288972903176481262263155872743597932680734752823837683729183368106140138188012378591839523028990851935017854750615793222154001244912329306517061056966878822701492524332597932007438387326466993685854403807253629065805673468820961627844137882754967137033933654399206640275654372639050057891126932159441186950289169352354528308210565428583074928422184896371299665261088639765451134933800892176311494600250576068851974314311481369945960311977633537583239109848580812137247629903339799931238692858640269657667046581453625727270682411500030036207706264420271965786529224438129367187676797986239243626463268940340232069906020473062039561835238867806066135241080813723753208416947178470454572904895257631207975988389835403446425079165613426752973265095467878046775782330130888539955119302450192177781284697845284556420035236390520890643126646221509948160563706656653217023739809507797003549054395843951309736559332656178100962384100154851358372765464779939476935984103046871842693927370418989422041374921018353772051291666111371353486860793268291392021176768454602975856987289173504755465228582926263452594467689828406321355321872639708305843003469792548496604959513751850771624127688937007375617792865142765153639481052740130709109308053940403207986589044510244200659853235822606003851470705275110955809575495142600285475138482000716760621255910472493917751808883190988970521672234970014138730728407293396151391720336839242535305922060541048272995662105470897718444370390366914403042476046137825816288526972164684993149444712702011877331778462628453711775157627876909282394352643203031938906712180272977983124503867604454085337167428072974388563605099570493191965448452737242313176923922892937912313353549186710924631753366382778473394028302259527984267140493999840056106713842367260010136259426806190722513909471579324393805982169021145000841094619905348991390977036853078036767040134812524583714605431682846197853218009219083336290885588070874941626953111975890123834542657965564946726064941507516822564733730333986202523108449788481630218757586321218513664658624729878358808554294019568935992718391384760267151400197465940796956550047609598005709194560457536914988787634571737785167301675950137200526888645466469186255058086913146137148957176851578858155939929817029963339513614928469178658596073335500483686615557268841997870526123319564780172811666137262015188504822067193115108138476714456908943145009724440401560630037305180813419419847683647946455949317042154551402975706254779643490994645304892992380967027395290076222993122471207784714677206050988033829850543226161615075189007444229669928357538404846173893081323903964341627247209452608760258610631912762523949995278752868018343324934790462125404386339178096652124716361192992425439467777867166208329900383087439929191747505440498384321099783105089073250625411900657068984280099587677978200152119997733982809214244932204758222166074014024305489703743849061211295456663138212063296009734808541817482490787791742549778163738317343597997724575771847894419207054156380605034940848387047966398416982938255492880238086631446082314324991625046177255262216232775511541980627273999632226571500850346971978637293334828999310341271127030836605269673401679650389571480970406582758939272402254070444084960035315420140232754804236937794142638881885280495236412619297067653135318476052538593805759088842587277972461813842609147206892188857696092288635619228007457196022335962961346094379402153434811962951152584973987734991935679704478201550786744683571631389529306057465378331777659137305231245598980726885537571699020240528712891014126231697446325738386932520334160180479790701438705205144067333502958320635093978672357043418810528839765545182942712916023746310640615678341577851581086560731029040280731610615990631257784348603670030961193707246946041806023614364816395041353310144247808635340777987894972773839272790046669684329248167951548583397962132254627758754879973014218124375092830717331659530564220561758089290540506565600740456321396555604007344654286994734047864121026143823231674601591647405190228134954179983826312718998001112034479447421201603215989968776702019680349391253730947944914943202704359237306075718334677053872708550679474568465865633445416561464139340093811862243230992843020454591023196041935193266631821286981397736521913750019588733786224878678779043666141521238207081768939469033525004221242098549260969622510454012093027947193290686370216241590470502460004762810950336173806663616179683840170073003803126462022918655037732200211894029503699330830383839563655726670920380802819428418196784883646736074438952423455018185976281347754241352837234565149035082109907322706228442945760126715258471220874781678390249685015738297177275445873497286323766364588551730104278967138546911899505412898554109200669615671044418856018650676307947319868230993212330105879173999009462786958155134469331330180349792541444750406305689531730860191199615221605642223725469504546600423665986831626490400885778658239552485733403162434954555073977775754344618423070424277772443589031419377728569406516285244295614717273337080466137509116723850614192314364924693028443414941488075737027314145730462109389957919453889750618254274592347266605545019876674960324632640386018668805105871083112444780343879758938132736540847257698913638200626404060748581283037565203357079552581681917288114149776865983899271250925937005109143408055479052894993500525223699236074776448949257551477311225140591184224177749940911598346510820051088769665812568208824913313772799671908599161684214979006362615510260629138258544990616836390886578252102065614476321562741589224368861783331421500391268012497431159116151871844294531686288517546448508306332336728412636883577998961524726878025883132427130226841649555691581936339924682214675114967318996800454940760246462362365842420529948554060201891180858856179241703190805992664703760024115862642859486191784885048210840541439985980711054722823792453943690922358680059468840220821353073407790574043106720503680371704564471792096829801692379644694901173675884343373340030526161399548965570741729621408933829550056869461048054525850382913575607062660938238609062334688322831095521438368006551804113609588262064996516509254986661883469401522397172351012453912044658214248530442180595517060738651998533473687484532747779852072841329001380603579228680446391000702430878839066741884864071302982232022010849187932341652752253315613096963279831226475384967496838774201072154520426108555992081822717092979663643539439832428404669741883767890117091533704029034524162796231270555646715528370462461117096017619028478322912913457436723460064934701534968559784821600341970562512540857617278913737051221525121469742201477449871603425417839357433690996690272345956723703295240636518171297675342264830620300195808694435648310391462021047089221415137823572618219761149525006697946550886835622586556350884543959231918340733873891267697085886443150132214628471026548077146890421180376059741823396252305872357951343375242398809323490094817041511949797042663057499275171471794561971169382849883202882957138444349563513402456421817481852692398207709375688623369295016886850526772140087745545491358151981181099279263558445401057426008703200823292207282167997851531904395285861399103981421681466507707875559372146285586460958502485272212124700469786617950313557620637998588517532401564145768498323488050916734867045241972628429864436451320209915362089278464088418018085827487820627189990440625564327587851359513509563546793655429702049378677460811640421155680781771337021601074635763992549498844525554804801140982122233697054597248906542846886463564077672778746139909861189357996450706724634169379069268280447921276322629209204940589743344944300466141080302203414328562084607477354956665118717451506275310191314348949914670209555060197221710953726170367850216504772131481955272133380814045680545542430946405573351506596429004271962699114848914299386163613894771872385207575480648065274437644585680880551140734935489264012753608701816610941591145520715818827217548674395547858054351854600129002682906947954553998614425390121433911838772607482954529461457622470089226639203598214991079969756119177692781392734383218132991012573728621622378179253570591049348322566468560358917573113110548652561370221695665782502953130168683163752205927167654861585645984134885400983973908519877841854922336639601843321769342896775839438077882355391144743341323464521135309328470114796444546489321817087259520514743570444813510977807339883791523533744472503186705155639663769426191285963871607245491819464915956154807305475022287174239188252567217576483734992256752491211532431598104285151448735709116231660619347443615873510974222037106282992487998197842357370574381626677803083130780528969199729652051382993782436177979980084611434189516614715606444582692807126431033689717963322537441119974084189456576421770458624243579311565317058272288041564064971540810598712303693663638785828974035850641958890147568405250288474962222925735594351723681396499933778016657768808273600202274609014065639652793778805810683611172323633512457293111785152073109706218766406541500908223766117792060516448861295367364160774935872115522043512559176634603371521850384986051781857951446399551620964853894631209133460989200946339492189528047996129548375507751000498150445463385470981420817691773003961059805222693107791188938277693916768367152354993125844276658844416008831690376165839029476311614912122522593594535311890766511434877102821368058987117789858999361519188373058552736431973627388250269844730831347933416312193548869029253823298476522151534942612609595320730536062500370686570323621155697557660884292676753549661971940551136015980023548033363573947348618544596839239522765510893529090188081234634468714585783159530231271129396524366308883319590655376473721015162419543998022198485456467735781385027941400763570829132806676249477138355777058153400392436243298682476013584282451876782564353365077828482472797212455632238913331894905573079069349389845645498664215561786863569673285560098348961307767061391268590054860179185881113705916824811744878807621393810445905259396575725131570562976492791660728905911192182461726753032158274303506897050333007891650730690057643805237907856246332818848908557626572822637605675880477692486888034647777918194986681985665025003076223098524898266732513650940064550615839057311813118505788860406616503679024279885831786290240008192889562709600237428910385495940889814326338574451816569616152840395684383151227420333583677874259647474494741724145648259048590453216876697952188389676097365611533209770880115132433934717700342642314973733438321172290540030444946863168130887657428000458552933892188726189310641688021274506703807732576573107654256302782658891686722054306040377932026582858827772662783856995912277021361595121105553139941265451432275079933685172173291371140470522612801674110852037767456536519905792876977785378680574266120884264010008618915158505931653506551846549494484134902778287482242599869438657900555165833286233542979125724911314725844998189660070678270921354510604101976807868457554152297993854264898748985947624369319249007754475871646704102687758932090386153194092117675913472213328019719010328229683028880475534600982213072269818997338269197925564040905071813505826387495166601559905125836512590427908917652362290458943088197065644434273727083291758690386761949586273119076611061019927302288276792328858692411703960990436319235861358320164642023767574200559569904988262486618728957965628842785652802874389613220622726343121389608377649169347489551196031780791402691842746124412956403818035057858251502137792229502061174646350125880822375409607622674590662196464379132868423083570276715235221340759768806717043588709403374304956401757557845519503519383844371669567576223430469199518532436000234633655433967263929045743251482581043067611864472398932206068829043081350662952605952483036556065552689797679503578593518156322530896858709815987068668651249725823681996872687148984851771859977917094775764430082029585250144683370801162077593790420266883816750867490370497478518748083720617565001377605586455512980665585403493672028553253219301511378951221658745133438709605142587442652472519528334294268165523348114258973799306755591944943770379172870337799269517478789468341797760902146651904364498939617655616010867480531755427672489399157134610313279303611904415617725117422653232557572944190663467489466167835715915964445313795814800552037524212930555688064468218369583552907795448755957670215685720190633357166279866342757926064971950609770001000587425396051305981835558840962026367164025567282078226808653517206952507055480159262554650045425746046759840450138490662460265026121450670423123182163221040766216640331629921687465485760300327918447486017141447719843415097885733393170118896741773218848895429925136343687993739730426833309912909174807517436991311650364572572272394187576405645541672157828152881129170979038905138131896809934285956389683005183964788386610003013470379086473820737137774495113721883857045056793152113192232474416925760440367182504478307816745011455529192337486537059213528874841472294591202878394659057936961926864817786071235620831818938155488897124790501700310388829222872864974069902885475585081655707962115109826891169690856528052830340173849653993261790270876739977993664050540403319711859079353397608429530723561742780361920261193603076985858805516027872101125307333408322346554706588108202324917586143537446922095641999383054971224094929806350924278996419781874641336431394602020705414171288824384435640451345544055094275672169801156673369077116060969726711057473052193541235636816353775243902394534030797687047175504975246614861600049245978151099012087436985452612599697754787795909211488320276697068924346315544664006429138465446717060267353744034459795930306030503179591478282767094667166580109640170931336852848627684457667680670583494104023592413259528889834268267739275209902337657992841139721814838027064106710785036784599942332754111487303267406520300840414043220610426823681319319313583658114389874397748059194322060646233114364260734848122507030684053420491514231119973234240796192128317023188579543096843428836191247336512152387513230521091017828581181051341685588972273624650039181564756006479683740515700790181289257375761751376408097715396283089893174903810928478679055215736926484416896659147530304380614175343909571668974725463562944761840763371670087659176287858909220468362792300588470307560163425324008038620821518859669101576689374716505428561264397308442626173054774369263264684361184365858276161512059891476636940567031294880931967148312620402472106684924395568042566573727753795112273998472277276687825504668156229700473590018267386852293299941882690808364686368836018374616076663534138628216583583193441082982498494547357006522675469133673253643056244935234103539776349688882783910915643126052490958008288113394434706487937414032269776093107098805094898355726718696704780593763981060808482874389676540059851048397471680084831573758051870439211750262131949078289205754185268970432018510814543508946290469883044953765561252259795911753815754232450437241834429714166615466641381542898083713812323144214400265134157819510939239143719061792167007066220664992696390964225348739251750079927313317758539425548404303967016154981550086253628171174882577808918196021530314874343140265668497565796022350696257128029257034019707743543774985865741855525026276607202893925720212863818862548634486090114757462309653259404300374406249503520425127904191610010169876054471629426023918490542148504297339824965706463654620381768489482373448406101320344245357600323111504598141162750497289815647870086939029216608886091397613964771688552047827888035282927156938201560835808414614108144867497344928178711066707610130299981554614626825732803745486460944126710072301921046883276413240625048170731672606491419992058383760827625334940566917436536382645279004708827209056253433468882835825619832438541996877315392970832685869908852625451165656532825230517806021005840451403431600552398961241054594109344604927840520399011313867726126590675436278049808687192438453699711288804192158839470556103575429059826690138382012897287481470815339222890423190514037233737932739216013185797285879894921552490957316388421371540913508917317297961636348171887362610705020200005880934055796694409950320735848389282448430225201123430834055659540660353952569860285873723832871077316230824031260835451712471122335971040232239817957042638176475976519207780846604913576291590764222418968494082968406093904739173610158690671258914552165536412944244493309024316807117325527381743314342625297306840688887222604115700292219765980509496022226042388877777144802822954418868740484069468443194761993328748453067587348219140650101676603858514587025189432161310284650847265848482455826113900001240051968923040616498527403060130780129152252336593459828748668821015696720870935510736802914411822309304463891078965343833505525122230863174401153488813273284154458878044681172144912203881530698421080331723044474657383649189506753502455943672229477705976266492828220319334792913357520344123381611558733665446921105029672029805517227463208706995754805241709903528441086218775227053135108608745713158833979598073401587901391128109403555127290857056749462402667257951071010182109251125702439773833174346211172492086534811319424813516326012413834614267450978415567897110278205986696194329394791753220751545942957398455136356845833086542035768399562880066452145254309579192735580643754050119256751450020296907285910645505237800206464694721335033860594197859959872845662838076584702103187627754358173601448185025033063991556980928804486818577248312704092782556663397082698665981240352533810877185134613992516463521551933614092310306032957051155533463150321452975467513880457089665471897676372971418548246440475229705483560125561279495281522707912698498761612888904234136902532107019832975070303697581209858019548332779621413526595072767828518012918341049475487957746430207482611979480981545798419269745271584283787583216645236495711401564474763576760473540205524799362244656613228161741732920948969458748045324992475123202549293929829026632541949285695447482864998667980215996889666523542036999424991169765632611811463284698916607229496789834187646675831416948233595793500768919291895929571787408989537535723425111692554179323236810249467105235555009344203456394581864291056250224435923542037798043822650166799066893329717961388788190740057099941016918274144305742649690527072286745248512922028593881509503491459146030457124280700832469951379453693445483471160096698480320567005978112572946157236511014669160337096939988290389956955428100284351298748014905510315015497159866071139888128064563239303677978618425360068950085412318990350643781464797769187330158073422573599372084847785652739643925466499324824651311095440274204767590847654535696581098681678561908004166856932629911552834091353865426415479822338764923802365791327490897573576442303077467842158058174012004724162712770746396476842775062984870757883543478056159771880703829620938160366890704077901932778829311024713594246131064208797834032789247610775168526030569362300522394034210142693340968344213574829487315515793187665459045753245585194877849756455380380987591839471538071398529807629902675778480342386852829330773819945146877814990907955628405179659345242948094790017300489329726603062095193002374607511252144660948836061629218245856409627600731466519466407203902342407589094020560419127402018341895876136149593926383077019625526567416864569932489255961020841044832836106365525030910398459821804842929845055641846753238046474662635829268882639701597555109196250965411296510825971058237110944387801309326904386303240371775578083823728134958702944422974664737490770479924037865912416471585280785742312822821473194881690840945889481287480415745430968944239004585134481607330142090557108949851462128674445336237076125180088773455031552847845551767410034873366803159927959065253364690000613607650348108658901323660438057252089438247976911781505644327474411728692386464206990480583953689839064260831893187939795857921289468751923131647310473861478193035894004620171101512355742579564061701251761255401546109971496666778273952679834574448200005908807593196220425252221203162825262896681898927974590894775877911556411372211070318422337664756829858313831367329876847755649371221329295083746816961343511401143997583668186527530958694354722243793307422983764215697653071390302760360407408345066253384307681053140942982729638939303087850226789160489752779886937416862688791945562210622910100823647882651853892395492664604415605862019959570045303329338713537339639567944236607882321191100410084458434295864336069453125509922553860518170070071785819723118300846807859829228547395305435959651913155890499986652003032373333439909692325224802999014801907715577017234742773898068501721471385870487059726645134757312559073849224350503541872497353913061306693198675800756090918394550216937146931785683649093132908569618871417728061839541521567061925325199563455882736345552787484089607384349084347296582674800907590795678280029699566803549424586441206629429728773243254927869881085534217269812215159265460595735287461217096230763378995558018634169277408972335141213013791489455087270070542996082623256714870674302314112271355647346141348952854794627780984190182742341482265624131640219840374892698758325098618559049316914160839976695906367005933666654011967253664217499479843619178585068836767039801611495861809634305566920363108576829807642986491567606936059586337508969147553363373110035287348554238153859367809147667247629581439922269387847519284360907654290450929904454697354480340916585076364801153454699371218437034136669661380079385925727769957629596370034494717734746489181976247139122449514060231937219079757655985791274038837727641386006386136530331554365995040430483458658633707201642396576995832295590125735341591094455668183377484610261434174684960429237104799270972079868783999183698330644785052414631850828397109080544527992837588446483282428797235408577103353991357126602593828474783240515940229431073791521456228239677142277134606823571437415615977141003122963450737507408539901616866263754069112326832072233309104323211621246932491433124946230357248472533934326321593249795842696918422223956731382930321607044623907523967541661037933274967093379940067134398931622055554525452948426174281564032656965030253354096663038321069780490139848977404361350606585005852538366997913809619436572797633404502252119304673329656182415959394612790953961599635762444767486283323028647614349092660000553226026352781855882791760805448459190552227907657241550128878080230169751641311460156152596885622087404796177932934710871591236716952029154643938875318304150197226707541821543658765353333769078710521393790462331981366558836769901002327233987684590487544744737240813741319266844229799399514829498059131942339050104164666156873794910546293930965859261651223857013718872342614696285163694527743036653689053892466195147669294228572269366573254565449971251330805711523643551909852625230322829758350028386662357210323887365714702516199751961746716877177152455460853632709579589469080568044941123304322928784479074404795878217237180449361194607750611947264956433684561862304887252506456813741319401228826343955183437849449723798562381034936245781258405531974634701964174598427269985780115902898672398873241174981022097438750025573528377931190355014533978605196413798671250033835854111745770435839195044696429997337338973279665810343370505792333047565937681138284979309527989907815990613021490131011955985901776885803903796572572436432213708339827085603652046980431939672194338693770586211533330717224809321472993388583241041159738152703940919757194742482436156063364277925884506526386390927716690056518334578574211992017648433366944974466199732928664537534357089733724403320561711342518054628128693029350897043989888799247879512090670694231680865009787740691520416812250243635385263879869546027895405120941540725330473117840488909095140234891509388563919763560172346042430511493127591710435314200715769178896299668392909867530335848954459612603599590437279997236054422577983061234968278644497395534071441819958199640106975221316356327858682429662154201787118736075544817189775930398038761661589898494230559263174457317206699124411447045676137703262715748911929664302658353101391346586442548646858692986905468990514927104157313681171956255561168817205030998289401615909545448408019501512498364943973525427343295524212342458487513292416352204331257467557523184045589429657568157456446320027645272342023533119026329040780551246590518744193269362591659353782528284808917507713843281597903518538654692896148917879367017390055245067664386705148247781260282339148803616826983269329537876209757621439751675158378964131440100810381330815996366371289044194379664624828023304288082191119446748157158938655014516783697898966232704071981887787974883131925789650140119229947025346848412566234146300568258510463520925277820339029869452494395150233624579695483878590733543530364486195097968395684041042532755875785956520287431807186660165024199200202474456327994232585578313630165194753497189668191698390837778762941121477472146091068050042378261483076313817518559417839421068528280147097383768948661144845142539515285175459740215699867475775223406219591802459547381668556190650926263974678613182150263773062003047189882455951774693574598086276282361738204241148143888858691113747119282735000405402395499693936998864938269776556840326344005433727915759388550304035672890557710068007730277310464670729455017854305489157815803168215700734215171692808596840209019090209213087875926229162843802114843689269275851490844309061751396533901240306972336064259554481834924883957851273850501491612110062305105421813766991779372774963401703699212634803410406159422539664312847847897292875135929667712417374957492250657165947069586423128925762202593863471239658616970322148131749666251367284961819660241069249592022307493880695741743992649986771378603651590403007296665341694809150198428975088988514814764949282148630876626087044727274126112083224130817998935438472398704887422783770968569157656560743777331621737264999493172076267175297276502993086376057660036816090089736617241092364926620655840498316860722212980385241982380263983304354475264051594758289444077869467019064915099900262095888407158335042589346378962433194793350141483157984835804291053966907463380278711143027684369505400361410721032855622698310352031885649510116363649898246358651788910556511277102565968443658436164404168498445663658307150745049759491755005643366442047443026709035751125243716941498580787731797878991923419163131513977284903659709897705045480674209154598512011536857114167836321758196547321472683570023329633471643734830413631144284849781013963234495665886604714971033851004887910127386456366419116197102495300967584633004853365748546463934252430913313941706426921507347565579262383283553518056383064591173790482370674185342348463278446047544982041462699258939812027972738894447568317401955636881417567632826341296133194438410984665760437704557671034820485619376667483206823638974893014551150376905845598627395142337328464648318671284269068678246293860902310469189529906437640442035696004781323375258341170543229170381794014879141012406583022408711098357959034401581525275495521822100702283168477662794245438616379431806059261565784573212942383208740560371229731189600242349588280463348782808303917012486205162648004030083805932975060631493600050348564724782286516548092576044914472119208790099407178241077834206848535181136588321718084959011342619571344661995558421720819450454025720784286058182434655463410681511272020629279487711881102682232483505275925961762684048472525109388258176808917103006190191726647244147960169227786350737831467500160394164052525608923005908269594312747221411463262342290489210513910368814229936452449224920847115452373780335037973449648184966353490495722990145322598685559061765636631611885341039411064624481533698953787410663103942483184354917520395735618070189048340064449890754486687991115238780139542195800553364065675066390963284198441548032996038440276340618770260034016382940387950222182092642783339517237218977782710515871332615961236761821637537748285582416728381703106236113376707865879033824900498134231860609978826532781906170051143178879421221346313427583823884673811927860243827238155191392694843924375806897792275980135917037225395179291428699528295992480943679756842247674445531704413003516652423579955959676090166950822841033379881545305861333320885896913328202133147077696532989546324002457393476443576897890351457356256596529126231899233184927914125420325702082005835061244939627724192252511537414794325406847387966223703734154538546323610268025398512569831712139175359740332853737460277598429579445750154938861638660033608560195712752783256790770729418784873793222427347431851735490624971270746572853350944289056221811828444162244538164390216889580802810447393059917933694584756890130763811439684520177312452232770149690616158718155862952072230918914694617951277145489347253952478104023732969750729692291982973962753727788818560571396444586580114173879733493240965624490834345230723303528105444887166239090032248616971919820919210974523350298030038106869923372313752125009286624349298141407076044609099393612699445436128196919584082753550939617413445752906252198946843079976371562067856500900361167082061730541867191704457968327860682578086171644960279779744219110112019659014580515998246099305790424958414419959866731983142023297397863265962726611727569411559515238015589493766767455647733616440767774822174377280259341825556613917700887312327595757927485013932354366158901467124520004309502883486667312630419281809396889529950550002534253686115993232620106735582990838657952779845700624020236035809247302824158694670205837138799570653067619428017130379923072282142206629845916651769878714314968564014001066501092148911916844160629732724636834330541234756533965243025663668874176037155988125309174798881333359714705069280522395821319471190694604725972033977010973874025997928878890575433346512598639804549170383138508975663711328890152172870827182041259676729507665134654723460438639922125509103328716449457656372158252249853991654674204716832542767416467000125497742196564606285111976176247703767536102869409646717850242827766112638252750143805074821652967305772919767810734153981682970867693930432757777936871586288017480581956838129813539605117010100077088090263088712507524793971156896656431593104184429012387866146592060763085638931927525440898009636864174886400209690371507185501989864874390260079016099186062108118105600010868848304439156229570691470833518586386122352486863586105692290812621952505021745893495405284961128391258565167589767821291128743793075462211911681573694953402338201622034041173486356122324300450363193466868754016618581154062533066642179803435580889816342338256995871705515668710322116138978669383189613065576576028492255225805514286011498653353074605047763209964979023257539447363752961423564123577745097499645045046108622896570482818042943076166428922976390444429961317840326885698137337598972013652483960659862699311224502811743610538525182548214217204572094128333144524918345644214552446449962770163000390636647746191418797737753114370555889717518190988235389380240720641043879454576410863204582983773413188787561866392173330356161934076032159967858882438541420008636944544405390599396969073591252142865014786283912957823954001451718628843769778454347463214343595261624398601041777996729878503968592184674952787663336193513437073922596677798891160041528482166008119706055210331050230147611266217740473931134580597486419239586584299155712091389965115613444648375922183108956282177186074724012948139593211513389406341370474228474033109487852841986280816799188471199011219654497087622634649527909506042341389506598396720430865583027690526676586106935937965777893040774873296802807378060392393837135683230818311596504755482604487972689084079404402070812236082287799969599040780768070119029001978467429155081284091222313017501555271628596216946273307316861909775372831732508106704309524017038228710260413669777103240186065647916781494449866718099709254316714732285242586646217478133355006907750343261733305345530163389882768954490786010639564653902485971758893764324534653280950840131705476403650669918481270294370915818218316106627166458848422704038728729922854170364358676739612364793080816155530195726313374798513805723736924125244835041167111404715608981892757557878894486232629516713587031953923593094437221727561355593639195773088162757269047122919346017573351668596795943421720493009694949220746065753332890158559396344606881562704318558075422066793107761200748358769874935722460562720293096964835665628289476198935871396164563855733436417083567212802952085423685148791487988822684617401774413136756266155642404456796002679194773997434566393628523957073339131264023382353518227835514653811296995205111146533845201990293866119029553741593472818592988197602293128006648627759119542287004299170909955635349035158473326380106143434616230672781768101431085980843368762153386259918603377157785293030309483451466548705470874857874994015763156991980808923364316464870901826853429475595004430909527996562825946527814078306281353343165523177199887889194491691993213942811726957224995739934424684831616071402509935354358976776968943929495565846380006481930277699338940147537481556375538966692120324638243039933423919298088984986249334171072532625838123944636112378801214376163684839175327052177859251600624552884325296207241116630802315614586288162690258691185281080456752611299060198773414416053861404096817708269126823695421623856410333296194664949412965132136212738759107329265103531957118251077432817507744763161564389700710941893022267005666015874149105236470190730165747957539226402083744586332877009062634406017113442895237652026810409519309186485057488976635144159244427535069170277688127300571669306588303546080942814348167129698442809871528414568089242357884079437663597528299059208935461955204103913255400621583823892391394392922429343324077876068844929490606401081764257628345831335357256979072983494953266386849274812496543612472884746576824206854715621362488221894402572515082755475727694702960683988679346431144357780838630630778303624527681858473055482002893966765275842536500924259216446880005242961976153652473511869804775790295346656034343570644169247530769121575508530518956966814525329957996945138333128509652602505802022864072375224885537113287397785229299008684791527589940117160940937812246970273362949321705618505233029843604155508398017017463459890594496794772926107403755626281881132017361371893593034605236283770053155915931892648500445115141216928014693216324752726978828902418670840703880584612165219262971625800216370852113275267571232860190699204753479431483304466998186862898977126371572268263077852390278740671352080238075456270688607878938384567486660319211468958270959588800231196148651593600553672431485656558682268801336856271226991366946502373754784404882746022419928832317865904635491328867578025161067696935053905245895005898754529393895119259499697743136423345950001282586894925966602117129188384943435986777600421490986766413191167111581890529740559920382005305885391639885889938925428121386828197587590181302671632138254895396991069287237074273725514097221738800489722102889388741537271979038782368728449673096144521921598236531457851677932411304814129302342719018596175356933389026029129289371470112650872471064849351432568702031096888485755458325467613200276388950248918339454380763920765363673976070916331126081564349410084201432416920319331932901741152167765135696460747433644775523956892631364760726353680372272139881422065965229249340784458020688895368937671884533238976669729457875069483490975671870365793290816448847644222310617396577383822464114018459451811180679646710326550148533045833884903420549661760080523556887114421415772656464867825871984115389194381269204742553518412387151972446735353293770574725076744649558370082827804360129348269895512416165723841753281834412326219165251426803092920041837542212634623670948766271529970532637571218393933606841350390950616005182482200549794317630625782472400501037616733785697156886054550434130193679580953672512592868403967151698589475428940239604904403494480487434399795020308715467620212287511269541867948457815415280509158554191451234612931451609639431258862170049402792274278338229223142873023428270551491605394782671182233758487159160508418967630330267434200871648708256687266269259170478518421172660963586869386612427042689767827690681030902915198197232659389386765024717301280639571938705278126497811746062122043315974341973247999332343607378148605054176933387827801885736548592053874696662769996585643690236760409849554626379710035279583767054158400032876563623037042264269238778263925161234369930386305493698254196125560239233576130417429497121946923141626123371270206739011738525493408248282370273521235377319219587809385882279900148334966170640802428146455099162985944974780030832279206964841613920964951264494199620045382004801831759026877400495727665822653751459347182323281775829050480063092056809580401690185844259207503151017082885595915124057143731973822938369841674616904794844069986438401238718964863200069402775888810814413096910016594044931642692906460132824218503057302314646682739703413733561852716952220612010482484970965753305909622679674709241731864856396561339371109716769893186518773445968131549955467295110108201075024865176757248396548278928206998206526573745881431583009137163537751754314918435655166587052072126291551529706225595460984034813821451666141366606835799125797702725766431183359176614595863937793253263572584825895194001255414552983936599283019245538602972351777707912492736187483659536727343318229728883273794433527671834481883487271366397731060941250947389021974635684272476436018450987570146659514640274191881112952047665701981761262494410847955352234718415243621873050558896046513887520233193133250614684515170269978177399704573635697795408025449027029281416354751775462269136396296775945638722124052718322070058781952222599551383943447020170753269223083715875181600854980604814751429483545953347340650777550897887296197008440007656725795968837881785565026177407845517944584966017700139227979024705039771896961747848042173947147043854650457516733367303711292462741140703684312532004136917056344329598711664435416404904068320588606041129250903231200822003864406238385856776326163542251575072754302057539678493219232349587089822488079163432440956430704424098382397760438845085628145045411695534063387232384548909201075378750381687005640308956908259453030271119348648152945006325241099892436217165452173843713002637507783049694053983484289682589266576130771886142210959266619270557493824887650535870727438548161621443108171702193758212225592219862468433123374013258319884128131162996630327587854113624939022242857879491358906874855678001546378806089406900789746999623920277361644576456512866438653089917455633068249573721989951896468589903691554269117694672209123332829205272196054055006478920263714377370961135150322376784746649024703731064211029758527384997964069947564582156135978532057503802224515750828982324804753518630133081545532756337206195840070074537882323988462253337774955748882922972642184168561920950658647643755439292653430319532979748762966761091357936723184876519589344389106036955637410384702944684875941861708509625570017958055245690753096542358159800644297049717428752206227708687819476465347133657325110201140564243934197147692138036168991204931937375181771210106192981823843600521579201540286762833901031596942212039315104679111495432014461177518260474935101233733861285140079408928576901245969712368030370269701445171388151120654468420551999181055867012135849478199083720845647224104755945237122478260992161851131639998080301197264812875326342505604569056949647414714988304260484832253522300722160876583945574579312738459705289562236774684103970738410492789812448896222051230769945603466215117349645618675191182908518357191994567591277683059419309321779473607535908757537028816874575154669256478916796763421132064916229866643388407940742461119117027602938024750027979978530133309408138327254465550769388458533063050625272012306771776470335335551255583328782792237807737461185918045985636044809238026611230116451851819923622108311306762146152087455936727909613362701389620468646339380865888657714184387841887671681678179155772464925470737446243859305703220306051983364692800038375642415421267540151643167517920005290343583252829586297908387692526018749172155587728105959441132677092803600814661983140897694885144054183258906034736299781492922187071913379240001619305986081743744234619531072406523748071539390776934631742589235581774870433094393361900511754786613193083572715649657858584979734379147527440502781467151986666455127050349610261357421049582545657520985328556367690623881903189657134690279203953419404441914934015232777439237473057822863940111290170790155252112521117761234942944366878623883097612631730984035751430882532554130901800958028641402105413546425340051317570609142397047272604815727221495757318291846137958489977793066871629619141516158445351833495267727875412950266464754126903117357400658080471377186865557249871570989137150166837841504131206198670248969660747857608809486174598772098746296580702757016832854852005644429067886685409469388575444506655131784704410145774725895142741318496472587187345304628368518287959932219382358435596831935598720070586882436244995254584767057033018267855461137779259716096045096754882164044928422343652387691627669836725721514574002169808534690485482928569763089072496731284850920131645642416029930913835972310796508630859229104255103578714538114324857852234662642865763178743878200621660482227618383815019983608583832846122504293139328228897016611339793914101939932412721945953747411813689213510910161801819734200856417432243720911913656222781573333449219620878520984936489706524599679509750268369286381306131577269068232964733081229431199438814917103959653538509946994440559705860366719409780204870314160554396891585372452133748854357927284857747110399837381132807070956706235304711350032258642493330386445285701365203365582042388005865846509480414666087887876144890638926004908807342207354707582131403206814697847776790390580922964645024947373286850847880633097095304929059796534742899279252561995039715059013365150758876505235440061718915789352878172243348321745664689487395567208610055679533308477244558195355166247824017282486901374405860421357276944479509438959698348002438032040928057847654666152907164197177770858279849684736331098031686726737028591374254076554209627836648568222719140588826681407383731989589203168331412398764755161163605967894878089457260167382254178380732872712629041452009631877537042216459012579199054751008918517234002648824406685401147153998731931199573348963082557795791576941744623274843602596684625469850318565615157346187742804004641146072199288587472942844196362531382212687786065297621762358152447062996536463952213520386462365708820161204949001903762926326276933663729146251901334913213506676412320883080074345083464231067841435363521360416384545326130570569225863810802817067220284020207886550771430793893276670847895244873056586249261174925711659399133145902963597945617251224249402748892537473907659613722610068877352277447083963794004093023896004480652261183098195091151613639672820949861193676135667872166363239220240957742977465177727672149548154579062711335139740728737330676991739576965005424302169613022473451425533631634288820038601578852886635583516018384667464294672383737737511314746420532963302679664567160736767199517098310616478511350835604018474494742230714196278632752992817764024621132370776700146360741072648798221591849582644987000537261237535206572774672935224130270012270193359088432315068969755973332625855215215408339400654916754996399995731018308263941170010029884998129144110048704510856838294238302888351729285276758874686142341768554132889629709231149266296079527885480313865866534341224617891069508541785194014731068012081100269151295069464715199738631305945040738229907833247359639786907271230122071499022167566708349283351331284483540227040649652311746891962187505263981505730944735701852681228398564610232119747345656110251260360712607036476699095704074181009684378854906197701564751955125725485599675368151204193323776455297414930058956612911948764964953725861439233088762050518926281412749884036349544800219494687877424967210720545942447922228809857539586361767121989070646683029464956684087751139151058944289540313138260278295203739998570877555672881222698129803511296955354887650792721718405949999657781041344243304475268619838127938510872708248422142846097551040337926926156749996989866208523473603670668186318033638101465166381055369372908544428760615546152372249803500148237678497438710910866333876184737139940782246508982239229016254041947401542098809445828329934919649896708302795156346067950021144015892913609545092959523023994629735134865201839704612944625944998636668368072645679773468480895569131968356752963218832931290383228047046531082371810472949321446681828170161725580632209682515594720760301186422919046998618166114339029679090752751059668405872044917093307604705590451082404501789234250877778515522610952766349642295325785913219251742669483120767817130009556061147798322623664521494952694903718156814833981821488965775020452300646595379635823425883899286002633688440824381535898847366368181258721171728548208472964457220672149277028392701992762643147854015558568935296107258893406827392882932644244203008142803560426105176741391364611836887810552280593423657854096255624478485417950191663206970479631554073175071953430387269605017908117901766069664470779699383881087813373537081601876575920931987361142119227356449319399940477865805648714197705044518393931786348612675894801456318406677055540897782901854688694069117593985864904921514175747294926311250359868414679739968511225955481647798784802018130660473578815264819465919138597979045029063375170726395003313831136608732099268972071432766651530787629549392826067685085714306580964161819525717600257858880295591855554645831937402014167813586997031753114770165286595182753750097306746157075929276198091838809387701890540414569993925381225496179319292808786494817372719220831544298183215953547463494867728255744770908799083119124437578407792228507530304230674537171702083058588454986167687590559462027681623082102483734846609003048686678275597473667614397346192231075317936948663731236341690569315218918191109158448084421397583348394004524854705896865133788390411738308334601685886633221065639030591339525861618612320414536841018080556629542915558280275148200506425727811268287226572071288599510115528458743945617655499335726090007954800695352959446807782320400473741169517399438412161983806515270121509826583443659241010203317027539170581122858192371172963397005865653967751484302025069970615761897382017470828320600025216957604644523549149246977493629923245909426140880099366464622053774087780277123537449535871782294975341820084152963565222722310483642569961759508553725289086614256118037738935683117215166983454980051129824002557563925760048919183154118065368363903747098180952654689136196079778916334624511585257993318095769665100350402628376618449260230297663387644705254021437813724049580259713632947651266359192041363904397055146459133226074274572692768433081484472846212031954512995154447426845046462884233143094876320463307546299827835707628700915216626436973245325553102035201180421052576880675023517014369649488384532568339041981565749114199515849845916985394752555851645990439640227723313920570818970793635909021944942913315333869137318489452803266147905093050007676242515066361840166711235070001564791347215726102395460833495399193032361864620472264614146082418437449405363410540788020330767530680273399697174436390125163940081604002003264840299509822330418975507948539545940733102157878521244590894727775334805902280471510040366507231254703862273965676398239480015832474218692011897927266716298052368048733340829403769536566103719417685169185127256159695396899692664456596888810350818711918306234841338212821146261876760177129408868012769969239851079274644233492213944686920859700614751662136585441899992972371949917015938549141537067454128625022288874541399028995266350366883146938885223588579309696859198683031043123816603294532723673103031971716239958883584871225414429061927633412687184964130152667357982348915589200765867170345781614841520718319253955410817519019331276521059012040966571897427555752819460385386706805098660294824304164337601500898384567043450479949206924231752004890419476939493329836602509630768383873784172918004432943879072675874110942764949308945643485686202707474907578139730349070892548084398225365200547878540483213189643729868354525522505613577929805588940144865388242436240908126620298744000712698955482469564934777622600367498548145487080402364876222664379835335116893365069223865841393837755256786267905034004107760202525807539888249280630515162778706496908005105350512506453393678264969020366691678169712039444193283741789424128166567765464189296812821758271045082224043251631790250440560126345021757099472788708603141830146933706739692466078515598726838350183195190577282505192635381443844115305679583502174354849648283763945530864148491851833557074601616125049134862645511070641161783464163267882032375322857602756737281191272943866276333503288030695939505834415262406277864549614769879109992366259383568618652234403269338900343452140339127342178810121198054723976697729269557855471692535471256074936913784776790392655630396197105764769195717709510548797492905436093006903766716429946114364249709383196955643585611310870802013632055875368027071182481069150057066494362744262811417790593304780354904777277994589112151832167203624210281812846680123872105388320057715463455269335392096371562854005580538545784097331306245250567853463896038461814186849187997346694969187971850103368430193926379509104399196318151939773703171557649256802875212693122402753022767083058032884573232214866525548275321427520723180853092942615729830513210681188694978874767663195147747752434334702038587097170038358930541357110988208972333242367504591513765806907272666375483018100273291039200664728911085926291260739925758528965211959637013200825184573295252291505281250276344324955370555422609753886308943390384319583189379650923086021418417049747377494614373667157927710742977851413984583969588690071507079955915419557993497484534989717993549293576847064766580453512731709645452269807482985043917396681119053114821465847188686333637326871440913128849091527388349341044618211749651500463593708785283834829128484031711863167528123732051607452293660548105453271727221669855006873118745515820909141057423687850121467548037941694567326448271071292566818477030468701990404905262796393794285125134335705967332886356792611429078758383323107499562011485137898625007471911313592569518816296801671706148808949008274167081538137625307457542376240688619894007741233373738414464427436905856031567250379134658080345305925165845216362811747450266985874845062216532816312053620405426737182725729669052129069979835037091387763430282451350972048527520984631588527603062816152904012459050553121463366973455875483610450183250880357207699850674305898034864434819986143509684749892181846604803569086169375954511771063328271513429284485869419472888220297056101150546197343844084790425654220152302584627692797226812127660057043407582831168483194111311679683340326298299619210750839876996718210883713728188563166823811095228983778517863901903198181509973150845022702854790886473524681693635578438985678047235650741226111717187999690838771270786397161607106601199093825491902308071677682426040160107978370260853176408117226756614287438247104219215573105557386230427875646850870477169063039765709810286793711939379350978388613671447743195445032895063842952758984728444876487886124849959752644194122659292276106018650214653932627678330231633619885377495671475625269454882662244317280992967745007281694178423314165477040179998330915445228358720919680168443505385223756273047508778927623320522000226351919304611884371887541818109869415046886695217587655171886541967028518499180883466488463740298430887265055016596379952563123531548396436368405577550871632008514501775732133564780390498448048490582811728051717228987118577119922435223472815805811050308610911182343168820678527388342510002335370763143946096088020199545131456663090090281824651885166196520640345032507174272193660543077457586659252821460402303557624415944951134413152701715690516631982524046898660050006867597880298682204195005541494026080654718675090251905477163502784816882027994315691663596015069349879698077901700513496185060967930750683391610569177970667221318840444054090680706831253875929914987471311192026484228662040215661564135671446538968810672199138718265829581623138439279463546745500717569545083732788511068227810964850211451585780601375332520705500901082118252492763046122888164012617753235059294700300416346804610449105543594940864942171613305560836422539933522130889738125832646159360358123133435266585488632100007911364395779211604732748856497454077853908430333969338595601417688388396481862545076652172043096555500082842414220909495819975306282541688755785363326190190535568916458222238688014934286695773785326448145737931674069116930283317677752317415057009296207914676582000280403311664459917507466039737416465396660612171541156802148147702489823943712105154017835894711351147806621143266298786954301897587251673092506577959678742535550259618797017673386763158895488659480735751777741230253659552428637405258052910879338754567637196899700549739412877375450660649157263977838222568174346498761813870003287130598927068214013802392500420997175515344346806621187751714346227422324617909878788037237342404877845037468156572909672229113440999628362291550351309893052920364811728726056762986605086469310190347005538374609110216939186324926031319080465659275877667175083530861033976306107975369531210799795067331458848540432926734697611662772369743750226106622912634125772601350986366901891844824510179776551023056892620531576777650030781164399807757437862035210980255421278378597673957116077495355756916621094068314622248666173977003389651987886680354609893834798081776594869197813905599709661456743430548263884577045935613343144159240661275420024397327922280681144216895674427443045675027845684649718357650146532011049459120091784411523403517952490691233703003059939622693936943816787153109721162417003335953078237456142764463669333617566140803386346232398235151879584756050586146952467926858150766456922870467410110905373370595102876038625893727611508357714913087338590835866314268438729223111474754195812832670772776147729959923767570196568131149169145185570217163268123812887638727756375627564591685897379549116317739656521473884621798482105279626715835105396651499640267769157974825387168409568742003964989133025444789119374235244207588457391604704965430943166949475901987851382926781286213261117201902048683264855933961056273021228069113449147011477830236542186347151974993422023545832515617726644816438740336349015075341260137658467990922509549669977546121053613526418008969072755031768604913376542789123038618839868057795440437695509782041668127123972779871458882710953389897079901171634469237886704038917298763172146137740906197731291542657015023938675821153157404842774107765924493294744275857426734908090256586872776170816179190567217932698321116314840647756781600015212387451228413712136451743104171248852604186755089465761459749302276708096736854800080551867642249641019805409448895320457860122693314071327536181740008938990423216155022661734237151785436284918090953311449198568118955511679339421252980134592118660947452499234526506032884762491019732654670198107316252943950230644077617298848538457539717773724625720672343248739378031095402641202932637115151980248354879381356595560465983436300055087916892058256706317798402699700199204596970442720896136680527989031587477928828841096177154883401417894679196741930561047389078660717366181606508143183341701616758011744360339856836803526804804367692028378378071340056280344706131227710550359669347906762138489541591487831130792496341876488000045148553226197822995738430251700191076227129894237331814633314719219931745923498236298560440634216439660051328785054269467661272471055092585546232687829548385819242171799076220532741196048668768271017709657369560820075193650899911799653658453000537047457829268370419343525360715202666118764958737361509708789547213383648103106038054209729520767495369447072957662430488557560602405633576489447363957795933979787590794591156362383435218589551263805309888987152431048655634145689413217110108546143225562808428214442984454234021276684676631069555209967636231683565325306806250140449537170017897945796824655335168885231536596355277536348029788494914952617409981240915867256406918440717229422159905673434997534962259575217613130400132994859577909500139129743533296408461192623101684144562639296582570921715433252410573701084544433643707290037182356922251421059281861842098587722593526976312036537855582248830599488663436270284527243878765442694004803752071645987505128698239346447597718898400918336379602934657695895639686246768400162076634832489587160493958495462030795052489218363586627742828419252917849926966990893592965842560987194731605131954635349546976054966344677676159607949413857728654654480497494357061976350283058603262182837131537754682821552415985602890836946388671740002355865246462556764982095843473861168889451204076195647051445742916788833703041590509722114392572547087409715983853401338657064725151892415306551584241437182938895369895611263284563862516857515647690706143125040113048339496750486435511161224923069808192104642694969887648211375156883177883362386506848038064640549547090342381199613355292730155176939565283127486685698490391841583726330945397538759114642072688835941310659127309744233423100472495235444303279850346585562739316761588090066861411086729498216936641840066733642861466115943391333981522869556536932782437307878677333640658216767477151557535386785059631154334109596331484658659222265535477571253364868278854461078793640815468253098226274783859934874865840544237216217994822249637112270624692844299198091725393973859213753698336660836288159426845909042843635328660711636356196622225627486023506477244190045721269715706761180929544766387777327910661310590051208143787807980585824221615584142703916291923801806421154539216298160223923320278266361390360326920642437770711315909778059612438318122076244535348351952665046046817640455694267797732900782254151999344714287832684715365712463455330361919052624498825402087548939869564672472787485253662227198395032979681242143895033312031347270239685892160014917091311121867604713523834235733045676839331656020067154678853886143907547404366720557210662529160243752989291906297516907385328372025366009465800910171487349042116547751632883703798127506668259605766207895104922296216812863960237935147767251304033827261696628285144858110271479229372495955033931894174848164368301453309737114365204546680686769100682725904315343652529519244256365034467041251235341495412519835617163532340198668405297751482584052330511169021397793947366734740504657351717712089358736425454450312679873465523305268925279703919641996804745202764688404072836528444416718784099497763725395816297199975196624884845063689541586663636642211751664554795748726752607167689553032917201665926712065443553074185647561934549418012297931214483301407715054042965488687739371984273612154139003675258712697930794386696942590723578449481132207131288887576271560953449336535094357378646791818387174570473888596363579023460599230247335224440867601925862909187127358242355173711711672881204166188107152318686474209769991468308029702158718695395230961073891616098160879729652135434592729256992332128778830505870196190093207577448859152801846538936324705543196904479532432116228040037802400758881913634168386539646030328859289064787836726349813255050654043006980463760532035133704368584677075773876806202972300646527584023557863386166148427663547085921655759099747042862607170401294349756515955537660508574448569382688369715957876001194877553285573770704230421722813706294913146253211328700836587997646450221758667489345058464004156294004528810909368880856266893000234929351793730990235966165430051165651413800162891722638489177647023155063050348900452104915352675536621822654978991763233231531518897233796409617853445117147047175508785083332959930941778097754971987296515095570046126129880716255335101186484736896422618520917947580795838735151080570553884358655595453273600862300143435186780451212777822435565337932163707565398647461873342199807954164971493477295529372268018895466237863650387614124203371107981577618099160072964573802669660899199649980408613299855386970353054299576745191476033720122470849832537785861689681503660971882760715072101139317225684038251995240568757721682899508963983027329431127812576499247554799893864638799402615293891987055090006304671067954955505331345882097373783497101745331228986978643447490501229117792230362781474830964487707645074545740952793760535607016386415826528870387424748940855699168094880551769782501946607817164101833248029524228054054160628835654474060994094066915425979218008340875501497455359332624253081443117774072404105412612654621301395425528219326133375817726550439173032078488402214314909595655594170849809484547181736320180543854287417325556976776817553054700692370240221192496026093698014943541162121244422697818336581164515788384269847487666242800587095735862834470600568175311701028244712418824266774047885389063475472413490576500811362393595414109809937238504823101527449048985602569139638000037394096093671117975403987818565947125098998432218398296409937466599766909531713703123546403665084205289972133025817783931044645316999437261966558253729106401411550071403985197522812159793625459492571888066587072470580450702219711611148191030296032329861176198788026381930316258446299029481670686889354813482752477013729633009048762825985591053581993686805776013730523924163825910218772652666203103682536354731787526182500935628828586673081563323346690830088536838505990136456055477644490496632902603131251121686594944400438553902164233033494647361788317611492126077210114187905337746862076587958567761596919546597245217148692451962126511084401394087565157573656185339513366328684733435299992151948903298991877361613076086938045436667217220705999632996903043513825985490104302629144780666055029089390434635625591641039636050127542022991463914115025470289442271181084123228138303620366695262602985481166221405723892842129809639353469923774920823951712868548143858961704927668928931983135374618532312787877567581332303616664826183279282716450073464855730606728476230809700741822611538330186196357868858721907823012140513103004689095848205375017408471547141886273279609164230792699608297649896197670465994111809066840078689420075888549042690752378451067538974242969721351845534496650753969409388576943150586307646868117802224653388180070783260613435678588472920582666710122274228902071408061150329591692153643201415499617308766062169764123470734738545924069670652642814771696640070311576325849487130522791890458875372895338244747717146829010794473804857248806683527312287513868246568151469110538165119919495749511515416234481243101694881192937845753887016559172807635080051884575313323720226145551238220759932413172105165945251901035016780130839164619429054784465431210232224791159274450695415350736202000647449749792186815654363646610917805581098512837532470700051427338287776584256291891703127325129385383462292958492372232613800879594890090081110370504050295019484648238192554756054885675885870555070105791135633590196277938421832630116913212623745256015230481607680593101388834638593111792495068660936491310399974524562567054403529888647174473019725507611004314403374331456715401930040394238330801291678142853252181356494898601637600406906952792359490498770094807661652602740185699302844144103952037142089742153093334354994110000769057954226329280213668196986784458160600956720362367109818616259864274978702077521092173681380896286223208190242767596281129038829825986248475967059374029467243078844933607066102857164149885792663334842192522032752876087857688224382364768499989357801280397913776626192572863527834939495478575866605305449453854033005506913856942385151973157434659638509670215284832849014599902923772090763858774965377385828550326283445493491890673864272318502155610620012218579512410531771223523900248737163058590624312862647342437720210008914516030670481485025901884520697837818394229220759372658026452446948183983081848312380212078136134726999983426590339599766512236224737314567383741413464298615483109856834678500431696139195851934002974872065112334951003378821425279407093730140487587815693761041549198657253333161732004571751354607753940941203894270199909823363300215758957588895876250855846471297165735358321867348625685963583360660086648741346338139695167383294392322715777248479616598794316401024664511910902512039327092482126406313695745917713666776149412910544414276796391098250126782488904796834771549244964881719107320293711979441238935876189073983363829412109075873986408031961411025930538523595744461219958981607223284321923544263499322176184714547394864888155376585701220026635697755674614584241514501810527886173763137519411751444995246947637770964160120499460643608986755439956540011030653584558187033663581899286429262185209174753473309908599879355720244324602291658119818004877377466800801659140156129350539687191508712805374842988781562386871684183277230827046026572455951209679668252813868106487047297690174293357586105342861144756102382811889356609463901424521328873054346433277239263979727057426888174913973226085492410787983725387540508963626532590338998453137425918612149193424068675771584701287370159727193735295156931229591009772999321110792313218611359996464583580252083086710463976078729047040994121619122626536631492901704042319331213437055515613519477829249602100464846461951776921208030370150904468381268222714131363246589544014177442317106936450378897642211595791163396686800223704405741185936065945262835458581324690446876068871549249967291413230715727348137983190878121813318112496432284844130717148092003005006557141747327381461603375907471406610592182323866848759810222663668768914873589145223811181022529703715377593032563947718030349731183531156704866303009599748885915763450949056636480531875171498788961038854391317178564406113378072479696498253753884214566010853740804863914846559112321737799864933841586347226005752078184173780000202897246268867801131600635931686937957874835999889458528121236643473301539211182939846916022711089881978334407536960079219634340893628123829101093474278872256357316760373761463155224255405975560009784001790229567592814305768070306831165322001256782895810319344960404086639147861060478721216795023752664146717067015918079814029685618620447126037574436774814399471481313912377090342542644349568396132012528830316868217226924265760072871781419834167818696928536196682769959686375297362234525242715491116094039716212611671457787007403580498802761473698523764471728153000218034841482975763483651905962399139190402192777650508869016879541656295492233258228807731338913662494330129424363250424172656784588882658975165897668540846260125233789031049680534732281885820497348466820239945327042635333273672175387129400781574270173628998454294693684449432041087331377727669974938807673525532218448655692165524993525495593146968107862791376178724265766739697390801846686924709223087760990289516398400109192908655449806496460152681444999463651615829157838597650362497574779310228149320798432033458635827574432553340599692192538082470280992980382962624268900797678011718358049002177912833914950559091535381956893976229874938856213095003323063143192686230839931907826599219692996879507495585748910403541768229830937823397262037802285265634777059171179048714123458523350310594649471369759622087506695735181205107205597394617429828838460368095211542345063081034450517615799845066734971098987569267901189668322997678235488094804822713662855411636842183488207770574430276865024510606955286987286808742386891237182098597142388017476556758155803819411723657785446605672826711433973979664671374033001145823077257649263761318329715280393597008555807140735035834831828975412358216651445754295980854810997287253514673144430866792380449116142886407791513139898995987501578855447507697152566931894761328879414152967371525318917617927032997416289631862721203898110056350771848755590865597480651653046284945088911794531792107741278279475651154125891724424556348608191031999100965607356944097874206706311580634121828059366362484305202294062404872703764873801935485197028975338404412233703565682430783932450406292548685420034677232090186466864133226994684573576840337252721155851261393816587511530663360736737981173827521671562065096040405187730945520251476546514041776198904830196770531943467081374755149694511583423807569521423014115990866001387756388336467485205158540947244848415135303459091708069493179696369137781777006100408163945052502635020556107295226192620704974111521846132876927736826111762513441517733099709358159684545416652148303605400985674561805405564286446436419048118837971647455213821283261592111385583820075479283418279413649897780153413802191789979413783029721567583229633902868462107299351427605828148011430238444553744258935013713030723886565904257628030151704615488445147716353225817171284614160518888737258207859098935880345680584778587651533341317749282662574545269742322084339459406401232886597208626136386913167229637801119412076407399812155857034903796785047432837860683130016786363749425671621053404711346823382854589503406428590693718702961996534682241087831598996583980893607213347835082564682992364278601422204922186210483458153778472846597904646670687532339532054882323339730985290382215128019331864594920372583378110751097954301556989078346297499006182371866508340947265392212298549964503356185220056708449317656083655898182118422110573495942015112747443058574682909441327884526846721890206925682939751504041010522025401021147546866921917103115175494686384686750615784017103766041046641819703514009073311401232398900114008197460678506387367392964422455433837552311649548870608766690519216728566378700394520907341821719223010328906645416315440498118997371267832115223058012980216258020460565371776191430436909367281134773349408699900584775759944639883529178976514152163642110254885311714727014956058178495741083704539943807523512592337770953272238065857739087815043561471227059571437848799267880025615698146560978612568929769739149206213082699288401828573492176551599168793284727440831581516218009138007749585093517232885514132293295078445747069915320789911033263671856233441814848028632337204081787710749353133075780206497243546007171345576855244940473438576269633948092209215901618172446373063524474012708997697103557234327646937538613026955906676411506818150353603675392345815054162974848683170160745474740621200827732661636556603801166939745897916795670171061061204202676041720682182340773880249879668908923756527829584007705481289773112795822613851264020525302627926502145987429940451213442631425685012317747878072352807573917832183557162468534780481655258149014038719618588794212929918361696232020699523583259267511799443896547923561872754093704566571881431409886682111873121200203408222946786963144536963967083523181691644657532959328283301886972855243997868400718298123765090153047889946400670206406509784222705153347844660076843692985490196470394222862475258244549057878382243461033662606331884195151144968492184604058778579671130231114983270227858094426271150894099349417656673330195149407995689143684831048134053373969958974099289488806193758903515352994398184419864245240260376103221405874641946223551918256155648212702634814394057112219091205629934656169538248103591022471177277029088588620043211962295984930142588510787407280850027438659697501845159269985473582481623771669184168547568179190216694417385772817219756896259120768042284396249636999224696533412777021027424815194298416062681566508574338350355792024458220560379718249826069216129238158222104871349496497427727638964283247478121975520396351721835732853179937080961084050462022008109065498658675027095190319599655587372669398569221159137941614462059024098803476996553857686875035349925762252674741449958394584267400784340541865070998185431069675817767130653439220166914863874071807134715560340288402644061971056333815683701306277479853655375367829605939053843114543720112887283602089311789195288138114032044991943958339644083718037126334155660658968745168295959977105142932030384346839893895382727177197134513423279853826934763552796512571472111344687337974160865128154322401984513273415807297254811441881871641264793841983075498360148145737530888762050838797508176305965501716348543176080400321189215966806578185348118716056842371024581272171652324511683361095762412761334155865893428481485958098649666860535148447372774785752744364311721017669288449546544891088203487915948274097921290027525774453864296798087830699430707703712927494023403859541386214060766973395309670925500924648790588847693341307327461194212027367479636378575042994348824102862949873741292595003631854435504206018573575090431031321948994362621213363115957380038963938308403501092362362844002720226357773102514302173947471147438241763829547507533861488403508085779787707816758415198974291776681575164662365910556408336193306746203445177137251168958645105771150965067657268056271352075209315954310566939315448441368147638394375825312538170755114841732646487199720675436450353365316718099571402253641345988058958584678287410306221453640569405252512208222833863793077361222631364316496452913632584106292042685770161155774043635179289638456263746426222961722426245594369282907977168429627736123183487061210705074875007395127384669674830044319866185302668553830264238523651790869906769563381430990855886440183195585029869879797056533182067053768687878030057299556445408998487396950587396193295609512941881934331967848280803041252334809617617598396743282678416206050353022274811547662030799458828685176708253969368608608629094326562293370403672953659696404656688807036978036286459446477925601229425202440891232317363133853870392717782100177922181126924768301404457491657652578598552725831306193008194817246318692273652602145229897500387275690832269966688732418487237061487574023381627607547583576971419633659450398698466635420444114870029011030726180164749135004104235072857899807442237675438393741573126038082002033551968465350036735810983972708188190472720056153071617183559946301761338176907051802604386170201827294483621506823751902881388680597432323997979951036625518672549294309551520935580858342097148869495665058018406523201891912775428343360020461826560165276397236862397475945374822756299089231547246174380842572130390681182853934024414180942814237337460102885744165305487803295916023930880684116386992772332936488074111962804029693754672532049499722721839369197342746594834890312953287736629293791358917819776251466236046533204798316695787242789790528080135271694474754468421951079472370885674523701696080397834443651772837918125014147523910106676992125070898940972404346709664590488535058863768789884791705043698887000697547884457813641247111911377458783065273675068869256797257160889079129778560631221232279032080634920966993228805503382471890511907051779437595265646351701154219317426168671835511592926811462435511310479241886597923264098720059716798154867105965801242347564815038353290327251186863201058074445357284893651929263566374195228963483906408618452113601890049156334593140489151568115071288704768914478742579303757821329753285200584835706465824636336663708974176820997075085843176759994029052240609243516968111355496870807208613345496460447282332903980751266074547660542124404018847963492293184391597392144825589878778740622361926456358199956485805337418692729011125067382347665542883769447892919135549761194565573071897629653511918333263578635214318936222180586719211577118010353115083438594602757501864149512020797227750452099859549306021898764579551515722259585057896929870836978977298628260488771296092491664540893356327813442185701167527866613763304410937346450327343649089551001788050929099339442838346282284379908491907338114490962580314852469379657593843331230911539211194645235933197453147504392410329022480932663335362473454027309989312363385969165540537489574686126257635628573508347872496764912990913129710582516193837969225562533696819269111261090854348743172192170953928731311245003499219301105188554147491033789998208410051865502102101513338244375646827172249630517616445429465020033332876671907959841046653762313010262408617488917726190307971447947342993319846579826030693258709500285372205995445903871506064883862042009755883717322926203691111029137229053166307752544678583591912425363721252070941626891385989332750809374601354272430925890808330810489315408694559460473205083298417484634219525098832289362017849284294604417363684637518284900373365904487177484670917095898881039262019491750547261710141312519742280744886332183546521967621929700348365547619652230908228885952748477251118949860442730780181216065069198884747722798398516786076096808420088218344281660635670624387026826820729774953608530347952084533392640282136021567896070631228440388498016129647481642278665183203961441202365719443807659395349559606016179918697912997353220996629091166565440553531046098124958720100921636986395052129907145790554057595574664035107977640799524623391602842734582601231819684389436326796169145656665272065687945000177140380034915071161917194123556340761400137087574821988306226615963375702310014466903782004176782824408652257258225664886093783036714989291415075154569394098699944378056131801393698639940119260165243106704880739964064788696885840377093558625483061097351277790099962336765792460062705552938846276173918471197922082270436265519281838293463295343623537542361004329155451160869654765865140008314026703376415339284423480750223481911696478019336294871907461254287453864535737455212038470310020239692289771421570711365892438137208273135644690566073042605229640370307934365799321693857834605752073549710694849514335327242797441503687809115810647532426701026125194253029431979214169996938514755841441362110123303992830207372388790574452500858042611620850105835112691094699148680114535951314580587936975253123832347509605645294183080341912034011580275072720437383748638320310075733443903541775636735443336352453874190575777299320022104862767933861725081515034951386142086052461696562029480515101259570527251179042341957859215180675306074115537262971474214281649585039118466149648471072257922821709558273085435475188489630551184976023677172511319055383259900544737014280875554999108687120814002747850696349216070249555154623672928825425744307523112648023742204048317238428295160220847111678480502764055819236289034115335584638895044275296604284115243051635200747931249560710932300724802487689953014932472856314370174885546870963248284355882430634349319925179276732383399539074900817080050080623793948377236763561422598048024708978193946232703177197535551782855844134115958706327563842913337866500726440649255470169251768732635743382332157096841750143371150871423564781643505394177838755817074571255245918435988611645903966363446256493926131236366451351912707235492784981446701242927540493615166840473716722105633251422179476326399259391709943857711842607007746926891485113956804677634899970767209932310304007854270228344486703639977148918209513395390087823583646796019823525021972920672903725293469153611169137971198572417205645596981998224759353853803848736242815902169383610267207705544324402849159265271416804951762425698334808275311092190348661090708840704906600881771329918364562517760505635133789979929603304071716423526977228488316631144834337112034554750645194041504433829839142370365853642688548759176969587340626525516190833400664598040540246993403098430458147172916451194169220924760708671011508309822861938022730416574657545981172422883228403803846636806325840183346466531374471109430389191471992613914550515303667718006735194898107915757672195599330241838634260964844249476191282968880438702889670226252944983705162964894369130703300096929514277218468803717103785079851784909714282053186895954156690611900225147250240361584268998860663326450574983223803292526368869859278260609663569417765127823428021139733230929010698952867324406961493399659742146971809403487037414439496962667650275982054518593231881942901472403224437761006204209858083457091771957201724057023331794678693770217590117733993352353259461576794768762304759046670874521753149619292946078332197907396891468067808343141570517295815852419747378411678290929131522753334980557117391947576385028068575004188862324456078831038486771441923139818788689035248729217774435052271978467465127083383710391477924287484102018088615680341127041597396276197171197668331591941464259692410557775359014322977345495505428231156289525016817109718788215519531133858531332145612587832693250306014559030152178358762574530349431966047000957947882205598471069668945780737247238473880896580655107169088447284241758826112017805633064220973731182956058747502196065224185127022122452475890590602662317381604120940181951839496173658322823699548268190801470497743490467778813690466235386221512005964794453325276061831317595018856967220465499976676175055254498745506556337630256495414920188883870584420063007002463624147630694422028885796905785251598471487320772375493005026616912034502553515970239270980716152418819935234222194106292258403294217419038157326005639625084124022227693184268086037353599713211397157760847000508534509873690445403214822428813887190254281185407954234175838579720654809749496020701055720245927938487171592759322182488809366963106596832739373998778322375343528286598997454403028098919960791818382647775677702662203315736702912146590980019124204959280534254281752174642141058357773027845154391663075985380476974401772195200988876673533570796021603196222660080864855489623637576275645611327593523119738579715356144489708651940415775653432729514786367672430271327475016219283739108574235366469105324663413064783741994958169214996746555417893572190469522087796933773214539876255368594376612686622366311426406535594025415359811362734776691764335504701332181291820261976225687221065228179906550883137704299386985888922676919807243633776583488807415465585625866414619269957553688921760522767880555558063748657920479349216968466112067784466732047901676348832034771160767603839688959890330547637369951839157457751808256767940402328862089115177690006807709599138262184675206147769395576469000256479688300877736400840231213464555619896996808661238431066351510479403937798344110732516231758068555798738745677229077139135782263179014080925033883063667322346017451163946669447396072922849356568851243646516725359464413085272822773532701124375272048477314279577358311057757085367850606722375004842573507091243435456643595958084401835379019382495874307462952954791701119142553165713180633975226198435225150422815232755561675816712912724697596849456966646680842810902826117679114051584264549156832415076749608957672344435562951862238369676104057344519514762735825545781102173548053784330139068215284100509865663845402440786635507200646395600454693220517906436645753168259950622823116371558921844043684818934364445923776300190623815248423397250605513564509262777006414979175090045590206204711616736903769642650772851995687794669909355736259832465443964184888898923947606620977862134810901026451218860746522639325199554392085119019137046476558310071212853208234796487156600684958065198548592296369644032473972947834829309722672261839967892590546785233748243375071072744392898362417035422908065935803158855374091691100510279188512068995283435454683894014165380600187562686586472054877901237666046438395485524627488481539914761467620580244380935037064652565120145695828358896372397899980455719609068400975418619894013291709208267116544353479668246146399957884066547533478955890822496789113922718248217269946542009113952320924854350340942398291443052411014304010558072238749068462082853603722376470013985238493813354896488800962131960974332068134599811678944021587971952252084243741607992447887381571139179991850442585304290443758017727203303193597829736339347234236310556179298356789739733520073307324338144324404256231268270099609230013886392308243341825988565284833976527513844546423588883139696668059308960365436671161559131968434860801407795420927403364747824668917707300362114409185167415744881559351164708217639278787421154021472006586747419975297348219593018291309372179649837404036060569180879789856531391079957454785327070791690336496355924954052594437970628983722182960267289924986796966115789635170588498447176803996203801102388655895286384158971518321424372522381187842516561347406172344430354879356226222694920235217253441471344383291276148664944966926357015621493602756420920256525395965789574320130628730955697834158241078876689352057913504350435514057200775170296339383103202489508341642412105182776135882566363887846699251437715596487162930672629745641748075736122510944525900352673177460953591655700044851595144035467470674384128919967693146631113928257753716709645251733461667459641356263335572239890426336458763933904922482329939201854914743219676497862751920886604081321721528500000243149860630045722318650802144682231423968528818932749333132980511667066741948782536520586950792580160874176504350925864753501914099224054884401397854097848358735725214199116202541909341320155495231837808889372186297902389826831819394811831664615503600147977350900393932502499337447001113198789990107715924567305558090531868448485897472584293462706595739243069765477471933398064663172728124924849745068655376312624597880335375499795026979878288633180649179237288145343385556291241036756355261263759779233944610005309240011757903179872441258412535583269368505526363430062788531993710673547183201450696025541858699613652554228705093420747939005777649487664767939840547804938608821756796496760221262128927597613502137031705830024228583513196340763828146242874583247157137349605235956091088155871679760806563144519857968883737800362281875536243503949602668409413901411868831045568879825762866146784851286775223687721048051516982098312240755060022746842840949060752328456910370978161891034460070564813388593368643307632508978017491778453851695841362073462311232547377056794893906521660182233646812917893853556071363811710184095325777061398937394479553230180760743668147167542021015561433984541650624353796205459199311331050870493175954654321956939401469769573589072912023896340826820336828030315513234462828890681618241396316560179386716226614818549867725318232108332513919054565811203498154032075491012096418901963061880101719922778118691163375964598383855481514810049624374782366809001684506505381686487407824270166863603686810871956765938194111035960026160223136596900940547393915532663391693933667407371018343490408365630014243939235767445643881490650727090055847118815370772169007646637976819176737528904886062270022339250916708500296127904859470920882328139384419349299693400424018861696651582417943750346631451537925088519670868573261447979989099846640967900960435250462707167870925555495271577349916636710333891255846893668573546143349570139998724279055338989696656405056568824823839047272476269368840966183592091264527785040659189650226680065927287871937898668187277067206946688804746535666912123983087626933316760190238973047146308444647024384640749523555112199749411068523627276984664198664701781439175404849988943399812484903931803918116765033442588305342350003689274790258333114121444344326276427585261521551283764652410533237646056631668501624666427725685610650678483338504475139746821130719248875767421717044223778672193859347967446773484687534151941568021204579425188106495053486401240260206433530999425757642092960671595511228584292338380218112281621240100067076561423878717145264450522893562410492790518344741086038668603262663634782997682434637584417375625665148776751846442298149796670376382481138499938291769850281387849842437037487025381540229930031872225699661658028315490385284680670207477896695975275374593576753300044431936256744416353033940685716481464865421059653265258125286127780128896915918672313373261546081550940596104774125673744433285761863647480888370199129407099342934284211297624384077362431927500689764364502739737626604871603803843412082051395920823328024954413042606376552001267261572402049289829594964845055768639744400276079047714524643102164145740802934375252312301013827929448225788487552454883071566409709121831757533406141252256339872552116667139636576869115551037186034209985159898552125954379091227808588081780980967676605250526453133892658580345504184912130382255233436552313700182054172831163774864598408672419013434855146093301638889954652855720074857231029060650144230337383498293178506773292145600185867046227296512644235287953553678196585631770355345460103079020217156952338560881899688827679602234072494279900323106380536632467660415842209459486851271893315202252877754159930043747260275835414507492584344553018965271330589334012659660423902353675658538882924988335564943345965454264649693511132762228372720161462115094395791100694857089436558235005441580842144761386200910614092192312356605771211471575904534609352045020686313124439218161182253403193083086632702488306660133131307333592220052396444264218606054425179918825349201844753972691664997985587902042678000828091270058816887795184806585997411015369859477614902514714556644532978790402414382229751683960607623651164045678205064820571990273269614427386939037287406881806897960295520358075604883883961373062289003679127230047394465614354380611062942811308444732182373202393856295362906304730355659538436456510125216592103112146413777793827036727913459219562405532270432830790797750496870941855383260214651815234886508795158381840945482011581171728222100699752625315169958685731086182003901078926224164335463616170904110681362493882029718181909110558576530456900621833331055527500178544344824955800128765287934853354452425105843119258661950798030845865435967319166142627416633502958653645899836901857796988991508568157085263219587724276402307131824025455377370385334376337497776770411248458957686726774908812154335688255437773877564948254295256746968854288248438568058989663782304673065079813036586453019193163344836245070090760168507038206012388244226777328195834851158527345326623059471863720116759508106523180761329062352952662519543835208865249787084664505485269882261949923133221710496006482801935430482376997745188809306800833755290201325281496480339137774523456477293754271693073840730523327398458945412236086308181461775660735701129617765584806881162281720858507075709280506112084594965057129147688574893437935781029404927657976823798481636580861417112824920502262849257551275835516444857990321423841243108863716451743385828019819462145035967159552003621364979197199276125246265132953916786896608855617551358694579025356303128837669482579172824124479859547074498438729870251401450143702089378411986077243736393676785779800304829099107243164410005805628043151495372061944508667419385210284661431266701520935658087741293525598850005496514022862681867646439924081736234322718268064040740972882878136107985535693023674554294700315995348662318374903972122185885048085576909634035806249319318168593182569470910754575549689762737470660529865974861694335946652211097451395152762006775887762210774802269978478716646798025061483247025908994665756377877447424666332778186608319170750431683274864395489049546231746546200932613462283330796303730863002799240452046743817141501174355732663668085379690422748994740438538600930858666513641992359576859721090647397640248287094207488539587755521352218284712309015656857265138737884620697969433349536184760478952909053593763606553071661851801926328135336994379811622528347663670493363730279220377247434980683991615164251622968736266528307993270405364223215866865910814702328847650161383311901819298524508339921240886267351447887623480067572625301730968157708539715764678002621964401274960573886282917831551934986572108166896421551069551903953092164128195619456905578173933705758944971873655967135584201205302244584074459660779035300797572713864322953132287407783218743077565567979032560670178550779278713721361648557010826699962562745989507233521632037375319424976703678957514911370362172528710831002338066351553517317780072209616622754698509536314938429090347387858613970075495997004492001308795593383088753826578252138637044622614864450416118701604641000812551938107431210528803447212472806002593314044793691279000357693808129688323753909078112114873676223965682741524382245986181318024774461012116447308368898972916982165755207949312607792835804393587149110895959991311643251940200046125899367787648823224173187542660041725232855083000144293311219187985822269694124280954976010576952750771666772524161781939593258073728653304636987414782752598278330551141669830703538332280336654647964690938188934233644471401756473721801651441624068583735442348264254113448904496525829908581979504839760942356662899666456438182578609384234710732474998337590801502659750663763243747541948470158966148233880480203688014747828877045619868322232473237819970409355574318508290065747526289983767026458559241936398745214966906310849391601315185223746727829866937049061972631726197691487946197829182137346593722874360493788965419616011098113973452303575051602279008641091971601275887807861066223724599881350651284490092277263744104725723265463697625514166521049502513845673934520091272445952264750743089881484199823336030562127097123968994187906841658472977451988125363424895285775908287725202771178296161172758347138148384008476397814973871078107877256140691991769762311813393838219390003736503925628170319738963133985675592670079266507095029616759476189038753292469224191519089277031971811986986888337350966370853715421482016901554494718825366566471999392037338071995495507611927945512498008389927534882345127770328595989993646228028745404604513088614864821216327981115889385867665889590560973057782007194062916706388778564084375168153968766656690217150359910808174917881606889823472651869701299879161620233138574743471342035179406899854077887577776640240002787878776961307245252069089654155916450157062899830576170108686272545583389143002951113780506368976245502735265119003930081699828461631739006385217489239275155265806370841162935907609221128012123274543801795280316690262385650320229675667401348098885281508188542994492408192072815514859886984514159839933553877421106837606688966516546178494732282053563209760967142858428112609036172177225712520676382592317103735979995476807030254541205700388632039025097333427794020221684190130987388952315280041360718444875780476340706325392774774493599254057956584130783266886424707258955596679696474229936374057134622429177338903400841273271907279830482273721827829058964502747157993571417272087295621331449671654197460596666146787431619767213726362670125172539578636963381527781434802045812256408232554514217452523804821157319319461737964966040434204695219464548031830443059889806764562548445493196974566600817282121035075814398171965307102602953337129964977622879617596514329712391450349237509125815289083464075779630842901815135816696479431944509859019676445200553063313582229590417606063890539190605444715509246780940137433233891347764053606437418409481328648191061324686316838889076310395159214552678803119760784889773665901368096551428206550052358096132293598854450663260080781762373590534412085329510166703417186439469087258026471852381586238136426072275778215039011593957797118091355891420879498810278180096798637179802825547543518127355491642720312580933979121756763510834662209802775353976640583537787532535551789308174869191073682071235451288967333354929441910731064793814342083345937997293260907410585690507107630487107403311865108784104344734352056651833560245667927160473238404403673983410481290152202036113511699259430120543249816063958212399861766131379875091606112749932136979193928585445380806797216167614890543468667815344215504689462232176684224049140849279981867987474068388278209925163314252210701895903284595258911166641307704284782036445932558162485693781386094895728069884677983703753032844662289207737299183950563638108830495395600490898972422572102477895729818391512194077477683480539611155430842034807596285495291905738930723479571620867712016886178735790434972976512938885291521269388821085734236908204024924469766413893005972189668514490642048018841653181338009183144415265047706363120356758174868449994303340982752307035279055291800316968490548259466374866754144170951426910535188304029567638318826058103875232673628269678769227144361808687311560847372892335032503023779049640803832990312385259304796565136549883698428509296394673083801471848747427836172789209268746276351326641608834855539845818502944783609193449177037827460956094106999497112686569081600883535467235358288492959999000479971558292450212645601551100879045263308717217550006217599405142585781634783650677810481350967903548500378960051106911763810743202486162347916394613537941262574017583559262216702505214590522317014275864726619656455972911364338948666271895461674470837021347548345590531058345575927949013475318582190516337993932002757750959300653412175302353509599541609701286545679930590831118698361751208871994241276858745406282535293412626680958901483663610952843821161002606662543877727440863016894478420141482611902993991324428370935749081423386518362087338158927394558914104116585904682266637638293696698392250883196659257998311965263716449016680346525857806870619886936216896247699797046779529298414894831536846397790604657761923057303689051766785627329115101444089865452641185263189652128104492431727373204441331734853474637586380671562213122232559373497969132454941321197685133351087218282868692325295295472551917180950785657642656711048222984921032039581343122372339603216941914866034384588404425796877026935624617247028315949510167632487544281687797868922965080020838317092304870565417623301579292347986283641937379283322825014465103692791219283827161888836780296836815157399073560390760282404329950807834885395694441839949675329536524808996482504029217394671664707904176202266204060833422806499997852526366845133196763467538083763108174694264819650927368571536461695796660120761326767387949381955108169810252319525493952833376118357959079605525254851834229114382223686990074241021873750734889206760630073296226397775175338200476381513812192321030236220464170099475878294436791296143445989550791638277600524119085965549524243689205232113449367452533264062607895871659084185354867636322325461326822200743815489980946638420711038406554642146676312626638146265097043506374615770578851020785043033210782522690811352708978234453445296199601194223145978539423507141472930260052856268416833495736555847939629765196006333049432767205559376959553916870605580394611919269617461642501256899701237504044952584543154314127634695123642512648061063814520074076774771789658583000476557682045589283718031353265759000724490706216167364459241900020632969334110230806545331434145692716239934282431569584134528983864667078105573129906919253185550262152626349839218281767377448585643748662201514520750983085831261363519022658600297145034478713435807731190428977241712285191044735545883126626746087977501610196509579346254248023324153105210781036440066781811284640478479621779255736426907105392010046716387088504041722032669751396917807518202872658422642821959414145452171701034653662386826108074068557422838375769118437602811507113586359347872475857941859640198075701132034559121259905924453615348790802150155663643185910251578043443154188864641326835298566803068907238730734631703377309688902447227943805449010282592343090267246066639441262443237486039687552271380442180970165481430580264813210992261540694428731321973911165536518523501141482834538370879647544964531709713278239312463210251751520171933012401861807117302087029197632134031068276235223390269552385432296607619223249392129967748058792910347204293700676612353662535909641711364958088186398718663456144396580563139202951271569420039607012358161422195635457431434573962762211346808365590860383424923994370598126998462769857585493938145006658234579917632530714856524573550722364992346320571752004481259595189907213149951892975242287569112364079761042797289860883771013892281556799480052127212348331939801764305430547014003904019852297460507231716999900878690784322012596464112608985545399194186465983386760754833207459431346679582840127005000134514771246699011429655800775348855079298600926313655579332503459620022998741039910122366915209984037734801813432410184258197276881676620464850566750476286481127241558347016511007199489243595049875472627203489958691995381510854071436359490411143332359854158165617671253691541345948460585589137347170544737542359041676334723435511092757078204582605076744312698446081005937392895221330764547147310033437655988186321082243334882056216137352667740231206950512514824302012628537554293271464381436682175962800522545733105970760973045458945134227984227904661427839921028519933173372033164951154542103412559993984240730193372343111527785673474535792321421722592398364490408413195259006176969584228113722103026114124552833217977586923048735670987426644569910375316097304814652379319669007567269359568913000721971331049169255496794935812863141419399144477555869102356091399274694098533084507019813085348356199461899462789196597272407650215510267223211209844184130215336490417270689813982688019693612844155430613875183585815682600336513980740085474347894513034615712631571646099000584090301556133510259713630120762083850864149130461640785545512860207006531025175267311305825003069229790109405266784221010447520043290673473673253543318643220785472674806633668851818579906268206788613462923491382846115731316835329435676341283291210637748819012236706076410375193237538201997989758607154594072144924003820332901548309946622393583788146193379406172492156625869013437641735978429784538122323775415696269539741544110419002292728261212665257162232349843977156098870598766752873701918448576107163480376934647319746241502160700648873134979727009602451927235621453997323761192938731323720772105548070802352832547652377899852676239313954761019167836680729643728631436424859297814268875505219894897564655325151500577609509590971000194733103177207404035302025366808518200619790154898022338769587442946072998901551117489351573263136067195592392224265334103572650566702452190469911347372649197151493291028003420416608086207738699251261646200363651181485169633310728385599789676598379689796917646795027888719045021665173342256908371133100249269414077098882079634835787671181345459485711264656688460335157281915990788197424534744856161940777896116317519133928075478365388628142516307711140170239309762707819795818290662794911986551399718692233080925723692143629308351069136097668458945342448427716808837426517322099592300993358506061727669003264968357738972151386279858222159226559731095469669036495559965616875031146109056839614732146581345262475395201286664361610659664505751051629306525798903956838813602814017900456277748549015957366117813956790506692579805950691002360689056833599790974689916369191214308911920176786120411994742303224562087148045756830504373926420094393702245177139877866114663453163448530765671556349755686902901752414044220446615037925155136349365879960192762316529793532728877673004763252979467973456415607370285693674928969671737586873682313568250128490242297841526071146514323972661345684251874476697077742559139583380820461563796287939885238008442860870426091991132211575335385993125716260074546100537987969228068823998804199715040705541433524087787917469232420221960421267548765713579690418866866457056832345527003566556200816808919745437276678501761811044388773128847971896706404451936973855072163463500486241155435111489203446973607773539660309286544363940168996393789365514472101535951277024214257003734759131195066854997945214726587636645891060188924312799321689690228469500444804672911522707287327876599982246286020620999898451891835141836544147788500326369850162763798301560091129197378913727011917909982686386150670695095478610404137136916490397580891597443183917078542132792442693092104121503737350349056250309039593843443012688495716268348246629157868154325609263888660591690223273193704679880315740921784121929045083679967620925251327062550612318411337710678957975373810312324597747560425951918632580970897511911810177062246450220504364180792518851783853957616707099608453965658036623443600005532621330318577769725920947311002501268822723935766263796457454559633061585144205583571709548105567959754641809551859475258228327998475004670545830401988316471232537720318882525027248770742913423258787466219949690481637101058204728770124775355232053312267881408159509350422654638953055138933040004084220062142505447671220660338497052583865749760244113533028804440577013431449348522908837686737020887091716028128299378833711038847832987246449944910978279943941828063227106188110141157666120778482057487549927578261280556389617049966369327382418892917796442650629568594585820469595789171337360490443802360432859520907074451472434482979457249579436867300188811080327230810941624005732957031353560316982248125820987803086258886395532245394545905145215474003665177349447471269142032831860847764446991221207368682461347386963010097793033239197108458018454469950050922930817318426459329635245264807378798048967548528441480599804711326203962431087874042282986690293475585400998257948431257424653087746417821343201506710121957768362585753199804446166830449969298159831905434935367289199761008568599953884569516048785505915104437474751921480015416615046446434475180534525266352959032163975273687139583992086064890709866647573804400817510932342603665203673019064568015471660725732239773641339036827070001590615982920890287483194894713363987717073605455596425073255539460531185257768839408819953958527491870053587414975775540566506886807647207272225447300272217205042794073588757882965511447094917828693081781635794810825865357211810100549520264221424488547672386464208123192307276174658449637206446283412208632763881589904080052033118567823167981776230964401558140566789807803766825085377828278004494512818691278697919928856080660958872950374982559016508312890835414020351782681796659756901044877310689444970292277259508268655010659160156086806667634546376458757993944528468609308147482211064249576357303163754972935451337873340287369808007775881334772099910370340239275934443972563046385790608109925274608424486899694059132346053843525025848093329222473731335113348904444440071699441855718452158735330089994116100765501132657797928274393354284404338874680599099476129225381049280641002794822512134259901775430515761387744521166992854087475451428651100719026261584428523731045438064237385468512003795078263348463086724806328796536772632626411445995120477338363692703745144528543336015967183612216141282280004851736408782272569263820782041014838669422753745369870046401696098982394186589849428565335366293020667424921080847377692256485676156122924358951473939873551904146969316402694596620950155790931186285118360770876292251712813207971922897157749533273272388073383699276660291721049606986501054667475932477177859457090890832867539867545146751794322210916307555121869827485387416077208130870746350974500247823262347713317580419900843536192592552475577260673625098742487057127450771509832689348999565694548922415271365486563948380054990798439214791812011246990317881972524644859231369887906182714804711554116881488137905075279496633255891160493502890111027733675334011435625785979809175212430937689794821065083222414136355223488508182638264003916518618752516440851136432491997798755144608733047105453914391845237110998874174087224182627804785742156756630348650446557897500443726031766229006908470270761104451183888381918636937703436611163961953698059186455154592794209430981842248717601706997238047392617365602173184007939709168059634425083433361370716892400800802976383171688400961597699117520238253650805235188231049858479908938305975086751696495681533062545435840162796057698941153277768961059842226529653641769138418449047720252696315257032175977776751493548107760929932860054137551884262060813062315426809814680776230454123521747900131697349363160262990349247294880087880653868275527342142011904832404640930489311698961440070943982738261938903554449432144741923269423457098250125464650850744760112886926165614648895000465885444111512200047524525369066816366363325923458608324108244774679568342212272210731323020925614511309626256496459253350088942553623316811238826768601369114684505756181400136253527423583141939406250041824400380738885253425180504922067043861218453809480051059158072043805998247692963474616690611661366192514844490011207273685187709580546016731297077453608165801201843105619531600976671893141882212469416224682016898580729077163973934497164332968244898138917340649575517060727678258368862257800666751104855071766672763313645506300322778522645252368847130690471130598246940343760580594041042874659420825940573116748335484549037051432932271098562342381617791815415308210429109219932472155547963300095106886509232615392562252037160307955623469111507522794880511912148170645646836046453715489438092841099164696274015419139725654008466620587053411757418144702945461783751659901545220438462175319925188652729461662186319595414308795984488268138194992906021762690496962411451322286283785450910603726351948039832976782071969034799895707421974644980972393727115083195828388355750288724661493602970735142561758068616265436562588527181575275191931331450461877852399633158637491608071935531139273011517520228454862211513734711105910141300794797976477773432617201765524206252843610255661991234747404067928870098815961630950423396355200938146072056780307918025525362354082140004648286962084129901197586328360281136824620793939435009433025716212931584386512454430067250917035707454891634956565691743429476089618295267073948908996158650291200973389172000296647094970859768786038358316059367482473423595732435671893535902751836232216860506234894568804516172935441590578452398461924212480291648070039762781373861646533238068728530475220166591113726426335877778060012444767087607117432083936460443644346440724856986030999502482520558959565282187469124821506768210741273460363747159626293639222765185521152797679999322577291557388926643603220747697816696643752762168501227203809736152942988333644586393007787770070530218156567157211689860853540048371884376808459427234366989202733465803777811974343649420129542530039333605611842145982937257344028426284016812783649363567662106464792940751718984974561776450263022177279850406293271234953877502255884688623407495866544178967050747266945300194878623365752845651882551943303713595986875754243298950068652804882112347325290087203818361656491168680331805659812693016032692623862719929766849160557595872420269165808872693469093842670034654815944821763683777756475305071432397984616924965101330742187831146986238042762213591733329067965865237910179260025576350345371028532031373888331411679875209683901757942118943190422171792097431664214093049353514427862097273872658366015937209632470121774589965188437623328672562389726002552838726663119300067883158475434976601888191921166450585114160223946741891698482478907544498964413073335206793785383374481037147155189409111829445313103619605293976027972528929928448990206168281741029704255782123965963520701406079624242921821548145671832167093719643935348516206927613910155301724761908099771177263331330329952434032802603587341998056822760511176807099294749426115402244062592819608599224792494899380777259682573043714615753213552934799990528049291645633276582843618017644658047842270731580125109216462607922252600446006807343346275839054217937159603024276342704511432725064494391135267320839975617842545600834771060671791526498564401267872441996780759240096046745033056817740396142876642577872648301600603503690118876289786079043390287857884145023104633107631432853052012111555913459987640221177584390956292397976153929673459941780175024355118786046869041981070420203495694927464905288345933669475261859210084482758984595282049931184719573411548151327780164631597162931371693257246329076436224124177509241533454229331763766977400598400579785679656760510404778581464824662436522280365088224930349317670442873141217414198507848765889437850681836987983545984748643852703811014247862391158836235615762093069145304745267726267620375988901762472556456486477762636406012495329829950855818285615434169795397365141134302052185420828957642601668814250222153600306651253727768231198585891358006149281585396464871899440528992538892432552971621757858756324977196402639487657585348890918696512569311847261356861297962110594134759714419175344322212459544705879580277194268756435764706043198524517775385639899816648948320479739502848110678602795642050451115111521203762356768211697581369288248797289136129605059691773548043186490811173153413564323123523452032648794178964019111632726185585194696206556379702781735131637949912363152157725128599376012619375071917252723737638810293782875364858792071608917209904400999620812296407336737635642406554088118314729428542223831903926103056514542375382458327055452064461337505698618381605545821606321774360902863083659304939260217906778543762885403941057095445401129647068452293711048746566911730097729313665893693980441680567196206530344427345630336482728765586761630191890003677181626768464524122811130979014985342288832419887125656001394533789510615983741006481742148087934831709941690931993286701033436745763572209207995607505366564923599049280722361215875648791895203931886821052265111384129812222571315004859461980157571022064203988978526559026378480391166542843407898392359968498803821082490069062948207534887328360800178099798376401942744752176703766241022993904527778436853659535389176904510240658641594987639243444274373091496468032610505308680891341161075612626665662748994671031918182265392324105074482840970176671385763383356855122926139773561340448666387035774813483612840479218004307008104791272026658091472288108038527597589609257581823732469701834500405215578964640095969804520676249814628835977676628196191769516956329604074147280309537925150736702344785354627699509015461853054105165051754869991843439000224248671751350834610731892230740534982038780717449129508273777120276554554065425924692873823766574748498340063902214004679079217638810824596914117035300207458359579666390952086372922195302772422673423326533448490275735571785096194390494369685704421086633474104312587070148536841737742377254023228439205095888123339577522079220555776921677824145658523549560548426874058240902871896457501529785914408509825864662161040176996472174523423487847031849078087693652724526357600869940211521363891643426044300986237803089644992906953849307088473531253189058400850458277719386630636312964430451403874193667013282631229625111198784336232362615161320034882364923453068496863856437260134059988487376410740766186575485189554035285647420834227823046780085556441553693861658656183084957045495072287347788972656332532611502448762708621286233725014776680061582140339623387383279932249090831786755539396653369403465422818275253000088355329548284028319016418001744012794168467564060825764718619869403628510936070968694847856249079910822449347702124549002194029056310350232319316604952957344468536349436168224746947377913521558882753984555441187191637329627204234936957156997665468762180055678884402876995134298749116686312372572963169915764200325231067815018080291541986899410211207330583433383185850523895144991967223831743289223716298765506731196558047650582876397871416886351086765578103149654047394770768188789682245850803946554048810085267782274788356744261119909513010927750221880670344111579462033600706782306327281683891410226949368499408768876465159155991033925144324503651900221495756269090267082855507209631166679126469531237989342059268423199785536303790753514043333137456150588951850617743283477496820216867546664689421385679467623792318596113851561292013407594781650941112614802507354551427578431855470213468095544793500731458297213123780851531211437631254111307951754367333618023006346758615544418933959427173875899045462793876699555202587579818829882250975120132615019991954793410419725679721747412154718962892824676709300711437966469626192110060195405031522711390848161579370366873251067163840603535104702566916815472574004026224885938018721315848700865797084919165238733260592503981003948702646019609784325036686516546382011010679704684515417413814430713477482824113085621038824274500961378718122895471799620819986870747352839502767744012871800483160208131427923271005998083133957837932194983185544861241193205808684544001350976198600474709818157316789305869271866397123255598226286034312753531005187367750115390989558608919361969292244381514231479265905389079144730911430768638233550847792348323325757734215244240112304417621891648781342521928792981643996612436012348929435230545084494689504975842455887352020755940698104310687367787857659010768267675791334320191877672144570769968437656271222455913553813781248730720376877994024164398464750338050105375623690032484602938740254678371926819364007780222970722758949473273863153943541670781299275496844936654748437007461917179800140000721117149022898485612323878502933685858486691305277209521797154612604367517143726162647439991700632211706275174632802077575514461704284906652321823292067583427785072082623951548676826889947363952005524161314319738819803098859915990321750936152345491569323989290577135685218825070078960504280198496081730238266954152559344760182583026853235910005252861892660030787046922515384588672505210145193911969349469379721496546467621588229286078950055845823483448422041227295360901327982825915376120444224899365227460902759144323842723416817344431352160293659012860535134001698717852540985556956234300830122453341692088112523592259986952728024343427428412556627020048860611614326275081535900430148133385953717520331659764811778134813553164953527873385440154878367550250947435009969330584370601388316722568526363683255338095760039095399396046693572022051591560510574511138143512807064431751233842155120141879635556847227043169388795629039360382614125231446496707168036024718618189827626206905273031186723843223905292739099350651022228268400917902525920486402975154759387546894866421282795091921151144420268152782533503627478224607532112666764615870549163924023120231145615786823090884965944199379831633941667093734908529029349614971177206108162999857059910916488367990218965927993199320057244935282751786798717249294418661174466785771152661133100111261975582418250490060191595949316065708003087376772688975963665380070791189928188415780963224400538290543946355381882246394610213500552233004820526985240777374919744829715922285944895946245917868368800498487749519226936791085516089295073421513132568195721622249574056327019402276983877190478421491566914929367101573079618454507815002540799159190646246222914684767732938785476779839328723897445215793951998847389738071960569787632646540211336872329776411255234293923063262970175087209534441392642086799956354124489681618850411254327287102167801565090926531472772568227780586728032720386910585240933173314907739487778593524700955540044633652594578482174316695399107685153372232446112200059418284559822266795632523417092186260465392965990135872927864205203113173099243677622679602717427804579216425529992909398011635402964010177545146345392684133762914359029859165183083670462081345319679741903909807174161935140451483329367800091027843678732581942694885033995923413070490886991099943934696681807897727739869643755266907314805596247778915677227326067218872895417533357529237303089802521606125482782532650171793008249959492246781831443966888458046016265110539671525193484632222472331062501457810598766559176485754260272710439063344540417801343571238594512834984387573347699652877377240524928212479448122538997074502864042755585785199375807846570738395416413859837064956057080854951498877583805538790028816275044111409781473512648283990167743943958414455719013243507295113075587921499679782218182715436932647850153590219132978100758675743582791876706464641672007547713459793378297069486944681754823406352867266510809085475385819945246446559813843262328935654271809079410764873529320604668641497570924190458788892375252002973340901765955123377094467711602488903121534031156956640431075424521071448030071341420586433642958866850643294505791249156926003883216452831564433591446961742475448077812740859981028662724470051331078582250862951520674491035524425824884376240349510028158943479164707533908843033624699404964598955985251261475166063725008753981009940635815577995687307118777870014046450175440295851144187896645369429210304196659264300195245941191190375569407680087585191107319659490218401763257950687143983574192302462128680353904747612720055059770734579311977364244108100058583467679718385046367981714649371976579367349807435197745718506205215139235157426213208540582005434963687041549408713671219439994588161236623445330148010020310139218173447856843704293016231313270045645891421676484082513675765570201006728116773703988344662509661782482507668645383276193391631818467759797140284184335652263342656992945775460493620772611380462032002719832768546376537617888267364213573138939073152297646624046756375587472769268111604557304067838454472979800361792094327936885225710275525033773771874841967768154793142975915248105093228084885503487937317538822082248080056777846356321547981993948038076574517429518015986840801006623215835496607674325713141183957053991045072536402249486917420358234893075336410278594498247585871607307373429038355875967762069851383012130704249433678197959014184165515446737554068416998300606609894822796002812694546120210435595464081799380586630486685249815461697290786977722211349195539278833727226084454635903169107453351672715414866566371689742400698593252089416162206990072587929790006008238828751685505209904086984254484573660830619222442674983253370252082600530102387141002050016032591914972241549230396523538420816530251494073992340435325238596923319910102804995856256257615768014704320682968652462880006792629290822309175664724816722320732822841373686907082929501426618032143441758148781337538576405197599200305801337269453116072054871416512771933662267914775816030542375289222151059382589622248905347199467981365813080003087368859455912063838811584267323058454739093030038461162208452204545269459146473149902395257508404428160988110009878058656037939806780127496933286713374694993783170899183982946749475743614316647503495887589038656949466002941650641469734018645370654618672638978822811923135026791541162470848276167991412994885742638728375744024686448319780469611852333609020840173886340710467814353439229464608024075539530344148699026909543169276235160275339201734965225271462479960139419046992581111211090812629183710423077280513457624328293090685523859107114934785005915090143727642486477227676625026055357024871613582829547071500054151252889587667278201362130741173590474911732051675624893145750328245627095362487289776019826825457561098199217424602481329322863804848621384956649144909386416973442421550987831808832888835722553490966927052090456731128935194676343532532281790208414061431919633829732461045493217156512006987391929429454888364543057444845872888531552059720717058702564151896624985906081418828183152144217514264964137548380659328924904634080808363483554850402854271181441273920270386975189846567734660412739645181139862741906654482475701968785501873003959217785639931597601048289896612999733358226790260631730058776336262775864419747665596284337683862113221438881930182635090984017093444610302919185830100991416950644007112925733989614715219482786252199450322033444416526829496406281007763599215292643330074446580447369922555260522425152107693126978252643621138218188138098733976262022826664600686307481388414710778353124368565700068505270033432188738883206280836057781328142086110129299147220391237526097370618350620579627502077925480688621562220113771662625360407464554609354412575640043643241056119190263848584691837724617735473778699594302519556122454179663149772493075202353121355915919444208724928078546148986827923409468897055835050554644554150315048236162432542364924850148537484798837035245210078566343608647808611529872933360439767797827717213500595546245425110254828747183953233449737307463397769817265346782468860592439906068236088305584025027786604505469327944542373512492691740681635342770213505173570522440712217108283636499257820027318559202552067974120328272541233205526203868632910895086977562311783279621258164344232848865257519912364351867428378064940509971693038791735393683454947226204560796675209966464066744471094602566947109240114570264428609976644819830067147319049433419375716380681774424405946341238560839744398936262978204988616327374640747678617033803501037848234923675052173683528924616410433469649543234558368364097790772778566431726768358466267960162450102517423039489111011693681430774603046631012019520168396862682285361745934030855308019829419739536851721427798243030796604797528508641346246455722077100278919889850815838798317282059221748140376936915252654713585340910067259383708778083960001269766803673311696920857296859407361375292102335583566221748007887991921135983023557050790255546804711290109472684365765358227167466430181882319476102224532048559646847393254947048927477847285883621271088360768268840235770694319009424653406979526864444725015880870546980517457511977225504655539176177364948944966728667124952438292804972271745762807671181675759244819762898580456576589351299496972347435864864060563511436066059899286974427715565733556686533755233843263054503558349644093893468042236257216796925107648475165472404020663126922323363145678633797305479223119043930296207645403343846513398356631519836555289155904800491814763418901599410632752822052480792844931177142023331952016373040417077029451370666098410029669903702350874395096412582374163774594909008770898657941750437111433646900325258343604070846019791352847246909306154243934308647350880289623559680424101469346854001381012293368754393421320614718206920482390949875363166367442043715882481713007728475549570896401022997864634003309337435537364921136070655113543299211935015019884805794860622031758187434770439238414048676188073037430324891486160976259342115917873254338097456093170425840779660869517413122433839458250071567478298494077051980690412478403674770733510857612386897765424330073574477323841385249287330436256629861986387341957022933913873426142990165345698768361720113677801279772899965237368215024073019442629271249508237748470715247815913544784439799416747442926651284245722862443779483491319259131918250790446241990243955349876326918095392262583894485656576006376452515774408165172256807101181200374336241179088349791910968343393711871356134697722905529131773648314555163554142180421001556281504261380754233557499430129305720006892272185952937379091732475818713712953131640555912368853382186263638640550692510831710786462678462003594911461250309451080578836149667510342230836369483867460384146471849076825901993096047601822698558838079334541090762979506496266984980216642405361415679076204202575210820809960738995183177190037001262361650950040568049618477287262763345296139346382216258392989242607557803836119897777395944352949668855665749525177592903786228868689442801527391051781687367796819790302415052320879926577903093534608208233754896336202972761430456777739206802475067871600667135641150118441170545570711298316820851069784934507265466552203614886057643910666028371369507410835683255550211606124756375487166441581555224017292115392588489399367796272857544405684592715604763256272752156686992763105591688551270668834198159320347878882551146440721815150096204413916263371681847361529485946936603983274377786849671680391514353658182425432333845587760374869627278945169497408015915166591253029449617459363617287077054028776601524012417539043047119045798686665259166032094440287232144806559039409815583392406285872435896129141996353398405008348510834866221844427671136444661160368000424560908713021017645994570499112490424267042656488461203069165888309359835665972167295935541206975715966539839048703521948017055629796767272443142390429180692437366078716268986157277430309598135387567900208023172698579381839058556580431968132990180450114989629178558217385489508911627544447427015974300402526327940515541574656557166841624602729903812482676412319935240128653464695525573428041663155301014515064469826969913067509757334888756110490050672448753751273297458244934825262090987767122407604074757032597381669842176194211073939430757185708401051456601328807789365062450545244883220889134504300066148468590969355088486330447498089635418201703227775880104612942314652157700906035559922796796816901554810568757335858982494073228885301979697526311668904000394368433113290488790239069474412023098956757447647975145780796103083950881174719963773467918023185371096376262020692763781468972335237026543647264799060396711725267780837254142098066286830628717997819154374917158561038157480225455761450228226991701015660041959106023153587986763308949209671783406259302903162053358460314062284629713213678134146430773372485055250049535730196629078400575812681093708174853962653409842905993513700220350525795998265735734819261138640663759999020852672920553321032902454539642733245907026126293324525067774745812268521772078547316778392809553471323199381508694462216665682783177933080500394430852615769613706588432346753791624916568874439289625561251618208698945577045141640127466666741912985392260235592009332515154544782797623394674946663186518705025481579402148127824009954425538136598704939006548670171320289109957736414524041668410038874076802210880607048857017040702006541455032704536499577858994111302494519884545668606585728549694367399611188085426445664437968202260925453324297396840197753123007692163755318122802602615727461427422744055020335019603777014910299200368636419993817239543684023912175292192522462315506387580869491183648349985873688254617224278180261672475055010541868002289316172262303440619727037901660864020959843567854541591768037124544671653774317932823370075847082668849674909130882994885020559014309758924455020608072714017813372433020731358905560612285654549923064927686415660088021651093782758106632307059394442642486790663371270785427960303774594305684323122090426330464802790984413436311548916177881523540267339760607436681764073844187612482248944935388975633226301342565978131742440113802849108827516481904351914763321771906855831215413648406674696329050407509641107246207614474789117871606036669306873223689926312535210251740587661894600585506215797428652534337945539421679904048931098837928355470643294867984519817504789814393626393505823192183828279479481657614842027138989267550500397571316564094817277096787773092412269512718653171284295314509959831606510298987286005343089129514682226844476411508591550049422467378219472090453829647268963210532321610194686811414806925999321917226422781360583029843720281784603068337211718505531184484672005986324111165124802561831367618692022647948033063350228277948420288100506576498329588481968170219985207684029836118677571348065947119849813132022626831273113832998372117032512996959525385003592199600798500601220966872384788525366621630313098511489555394073894638783562167526569393445948612301966774205618840405647734111468097084843966597881416893596214389749996344747065574477472556824399577916938744623708544961873283715208788060520215849405866915369381825982614147458302337320682350585053508797186205528484741594377742139596159653802317982113976187614896862643988554230480042524301548785091375733245921546311263482516017858108341915715051120148200584886442811373344371205718275201873707517785815573422475069246190616203616385620984362926290393374988030650427277423145885117935713248648596090383867885879175071357850259558726403957428720825098928531637445958328518120507651228737344536770369651933195752184223939104716686028363020555904103451656996841578670132418583712393172123361502467549705477953234315629904670683172893999039417846900773734513532923662639482086296271712853466720586837929849598045315168989975783683090828735173316638990847252471088238518242829780740155631313946389950701723680383685984319411224115917237467266827944233498972920297988542988349058588994441512636498784849623626818999906017275815986072143341069283030001698627376063093578838242920770368337154202737469892342104297915313379376099020866532320569211062366864376531365864117983839004204314227969753497706561712360458000931246588415703729927457611213347280133637634886950699496952330221373777965046628993447629783490923027018005766036924831114777858006023676644118855662210942110219554175301242902323102592344535620944672179907985786395934799230313470752738859040993315472822176382614866899425199785568276328456175299764278117417451063937536343859205370428882981437051873577974967633686872354406104387100763472926395702535538000721126637973858297472056655673959542142153312965246263259907442533747062632471286358481741718216285424851232616092918129476871290981113755396199587908771304548128881376031023311775322192065500479440949776848721755644393942999983830422176176047006245102475372320282766192841114840863148711344091176456763994950208622045797042442560148820974781215483136628976175612425603894373973409599942943611328255945772670424173421521306509971819955313167724595197287385433173827879751353461131095040939765477668022110615307709680465719397622707415537320641100787439837319599110841045911832445226301168669688970743900744094822399941908848408668765215446500498269997340335965298661495349777446372709543920028487395562811226265278111680240335194518980476604063733185811776251958149111808636272466962390596979585464940802161151705206687978235752238727632906690512585245769722770140543760761629301428721515792703387164276464820221258809323983240971478174896496315316830933570793207237610756876139506817238541161033073663808905420030660313652274402993585175390062792702738169510719796592602118479939297527272730706295500319721833435490306510567039780961757815062872556992283025880466990867557606399911160637270322571411569667960002126042242216143289674219453665062803296735234593846171604051969171593337134672713249705328071804545741570510276458279008278359345443280586519176789675515465027586459513859873025807176697208292748536085473943536006154841717819239420617313866732715465047493080334556002876523260224972105204300871425298821911137984245165468356066514295851698492018771634350258513996525843892638878350377887814700022667239582985878893672242502316879858628059523570268949019325209725353913154186307647194289045815277283506254168677817093032358200419149435911914612405576791898740136132184632520583243413336405966453648075719867688379597777657926779218513860260276489850788732189595710746696579180478901337829431409262628343977204223426094738106102915959622134600953589855648398355055070963915527778494200051906707736016502479712519262304458701751644676706909918721864108497590000425345836333819954540476839161003538316612191762249045229247236077508563520557936231622675883143684743565681163537040772262484235250680118484999850174922847742049750719508318864270699794001321852845695194823111654169277698591909014346204157430292387735393467306838026219721055434046167296200093966696752783264972288018747890766021631071312166836244321803631615145305538365278490186477352661154093592723695308513225397501253127784751605796512322742684204602835857910619658957340326876476937450323365022064034328447635692510030617686421349845046678763251475153792268236400615183553912069593039585485101021970225013403287355664228357940677681105760656720215047012613945714212229329145985546788073130753473518389177050644545816622495835876323959419538051372162501252979952063750225039351450882096293394025066022764079543296451374049741630507340471396986096761615498287436125063276861876680620959199289755372728978418944628485863277718853845052523420059011539801885529406504062000655431368518498520946216404328021243947063688458185511816511678209876826794105938690977745093912680189549228616214538580499961552081783911907957088129292980813660638825675933044089412764673693675545159446347937003258255853649501358570592986947265038363151095776407532536871985050036107150352456950449284575138535195056448657801809911689706754885546075246106128725403105020990301579720694982058358124469017823955785862432885328233661268330586173024924523382897278671658378242547327583467582139503120823859052513049745715496385913454278687950395931205415364270687675055891366419401668159393524887398088256922121442490222242455882197365462522665499590074661237502407182632119874037876752090461673117604683762022837594017778265894050666932539959642237063208771583600742291776560824199876460569738753063294482384919384353456605344687669249814427418512439160151556839696899098400825849736309007268231724981559263383520725439235853514577310507963508763353111432018022797723725730769071234024612491190586975091381680334288848588000578285371153142668333369065634881960654022277872975456321603282010165173968772700861027471073231442576762159150923185311602802829231967050078258746218395291811669392694226456711119591226568147304413327816105326889100150251372220138768016100776993906295541001160125452860291441634804522563264646293703810046846461306895695704881435299339501461590299033198632347480877287250033325621961006775076183967611677665366505810405144551974313848736942060588890310389081541524808058453371188769013372835361659565416021666119501667067847453787336362678153881453118502296084407287848466528418388652299491669221583141708635964302210552751059130111670300603074641154565124304495264557096385806673782438328372167887832304897761911867012249084529654047531975931401073242815694062191113545341666029282811152887833257117549997345571967656572130398992765355467955199376550145174178957093913900681278989485401558623600586332188755518344633435840519396409254531413213612965230720664429876403591176284665746589930964226328771564604503446665088766799059460521517816799907136109958448084059347389745776448802796184822812605857028219090863926738803038658699719248252848175741500336657265090478546683967790968595355472147740932063743149418135260511385080843752070312103153559171643054219183570451598717973003616088844015485217333946265381990633368769077287770439718307590888023444783779515407804348207107149626598980107516573592803019563238566497861054827262923812929463137518552990842681353942298221659487386147689565557524689963452289003082009381938107934652984189355704786730806547805938103345555962653139130864685838538659099947716294391387826941729907605419677048869588799236855513170596567507398641737252502006921765182280778295563747151548136695646004984380000094694100367424217055494794682734653682019004481581500948851894091592781506129026542365194892273436265600671629815364353083574677256020736529243516427311271385842419634950108589444120320013805665853848847752785979055769375848835194237960723030858219507413081568453501870774003043440105673410647989598265570858066791209872230632187695487366338177515722383303407115146108060724645751053150166793159096659427662579783384483895366952842895184588834242136356888845155119087988371382125550009780301540846679167471707754651526185893852654499114005923169992884508376575025337763616162938140906178948810299277842997438544132180812543736741982199153923425896717208134136347771690176694980583571617182654632712866420977946515829146327072458487811106599098019296384101661738692223111247961025739723318042430414117992135083703799184718353441303428523049166512040484483839149204299344832612206786069942071577567073766442358365345627335072062385622275762899180142112107635180976180556617690681213024879905590330966984034572409549600545194837914124274272939773990026497995869255604782468908523389941267759339364697751427502983324625165883945902264848520639379491031049902159541125459523661885984673457316162617376782255147509360922547676985784573248676287244426758202957738745774500943382808124545594392735828013050795803565371460294889454376494166369083479528239272825430108721490620081572611152238044558252300153654143220468012274355118403773503610008362910831108451878220966447084493952232776135501586099478230796986367905640870999154718463159589783816593264995276507567353493358086408761689047482727149873961097732476472831206447947615289464675447208980588667544212410425133203769433608930320749102299282887677598332225797110692532264309710241509808833393939580313247362241578642426284415517996006103664916785766000324047056592120776201197098599297986421557323917884041161687065929824330881305368424915804125666356257032942037872051697359785564478495583473326723240344561713497983159348550486608499101897255258019687592553899617069561037415019289172568300511544918891385706248496434981118271169151023927383532638347122674066084203140510042044487718895705860894647755342737263860667257903796824682837549581068138436016518166096415762420169905745080191627895243774788558996637449951397989762716691100879326360462003531200638638843873493645008014552328420434726206642487590474391640714581570377649458064701012317945878960936305637097638856409968716096373634715949300610901453563226344279149237284979498837817429674083909927996353345370178246547444112337529844684429724481078271643829287317368957712248195854065915939156348142456957932758375006513089263201738516927725346425966709425727434967208081981877147163866871645798275422201749665901565756020410749398181191933496718084748846150182904247645231446523698497929569023069119796073531801133116355697400451399801214408608846910795670230222889865459912301627004681743918832714166553951107690057025582248069675121924106910972201143028471257624377888989965926283493610263392792224477597902206898005500446901650608304025473515180574527492258900795266901584015748594345800126380551348986215424764848431790653997791005534556288661608874219428049409161118562907049697758467127235030174535249270004299634702236545021664747604369395226316330552179836428963859421884688032546384591700202957631844176785648515041249494064727027350688818931027289423250038426899123367873784601384816589923500458862879405179448440766568714915540548681530434882535580048913467066414146525522668149516994942626312139328912266684934569258181178360920727524064678864237647571341856750978844121986272113082815059498763706546309283104308403771515629633619069779542309946897030182492001080281347472822090465073092079790007722353872872726112634539768783848612560738689491793308739686380077077173663662140919110309726921483883193940875939490622387457863537809668016407678739310982589591549849298326457339045749272308832839343311483902004068277863053022736004509026197696805097300350045069575457103744696757374857510777761327044886357663931266032771997976728746738509623205669403095070208728244176032497293334932618322838346971305954657217161998367273834541146649032590789289671570992972616823774328893940482026694738500346229530447769479991298913075440090289637512119483839657068555547922151866058916125807594776674851233428916101447724287701522784844421697169504105073833583390138878120280856090708864771444569866812074610874092184467321652194248253606128763218802435070412956587024806186992376501648710893631734945328462968004137773433691326257959412735153035422321585489344412142541199793436217696386150769734768035168917891245673400017879986129357487846884891680158788521481715328801738983262350466135929785274495546714577506936913735759675483255453848077358889999377742921850188747193240765062931279025737840574489186555188137255826224884220604388298516973969902189793355855023271658100315146838785056405446211753477849854563654377128025795395266452838235742178803641653013277577457643929645532659922579749811268715755891258606770551069056577893909881870632816136218509334567653463241400090930605708835639863967900842414911786150283162793555904997130458986355433795422002199491620191770252751594443614336797046546138657365836807444749150103951347020833570510866064167792305622572077725907787151022006167155829887530905976962673520796239651455236560084203967555199394712682625368728397963065618380140701271584577471268731693904267014599972037799892075305058119208540325027508964508380501242767825749915459503799409112756958377296696272274607206473994658811531274234318964730577615791955512638584015692504084579957544951586871711229879902758778635218078369110329731528758588416408489818147071002365448261488512136274017525272969614018400339720665239237388968068130558178883075187676866546118366345379542652588245295774818500017371934838283091207266700016489771492223430962658180664237826315450551665429098385159729459739663502741235957731719208178747258548256773074460098880697598220354341901659362220129801361871737877120982561483398096234179866664098893890007183018902855593774216775098737609821297532086176212195516981614319476754590723665769357765047256922463815511926301196153427797966915023419723088609359447844701989561526570977687534603377943569001985932393665492935144343905996106835613535626880146370853479530390262846005754659509489137023320893238410902530948486132821162857232769737793579716673676704013293754570497813814789529744041497825666486151893610806688278809906653400247224477613513535160776802510046490477353281072085851254878522664241107450390184946644175948450142051895759575316386079376163364426466858599053676182962432757420866741763035076091656844324676811079553844298838267951845205965866296650052379223432172650905316321070853036523474064508798442384835446680683775865475383735672866845549350739942130435747362486342791551841688023175183125786783603013741847909416137933099764218371955426151223956965644834756289889473797045143765088465312403357750476858059497023729093462088212459372648483985179000339948601139274074307953193683701504349617447669326608855378613417249050187754895446693797974003759873683048731677308785216140630893188654024561331648407637693640560146592725757262623241703207311762053645476078558971935732411384630851688641545248722721086754535241329504450040573835326301429404630745108977784719600783574616993240643584711564057293217339781524165965787465542885468420289308715297614388642418606432342794931540924059250795190752870419191442814782616114683700446990285422013764942024338387681559827725505698990507679816650744722364115887150076393634468549952491242635655665092046837347081390229801879921040628166199457178540453386641437147140211337014924627037873669989288218083181533591760192414677178948135688644256588216539610358033575409974425685761228398690406717852639718693659794571709644468064133510843031514055931687685972011794181189959786503426740989806833728022930286976497806039284819192811504408310093408145827905566837980815651279941275999760297237801388717890830358451570117752988516032694165398374777841047337770358783209798683929973633389707999424067792953699702850981075833487017082870377874792365450878315112693230510622497190395634865463540601175306721762930142268625095460153867576377231443251640763018920898427228032829322617295124534293494015446091547550831124355974529878901582031595654813656905986893634220207451823855079215464157448536904693597768438630270826847787880911699256308925223243261864644039127442340648556118884867325774927864823892629830628619189640218484129442182584074935590726699486876085520097154982420703840352198788351934908579055749880314510607756849840083590459009103840002639437327149164096078642938726356508513673274316208015104482827809939609393079596909967341959898478351337044989028651334065927395145581760420717807625126256992193165387683466308567378140092197575933608320375760284368352368743978115097976267305834011217119613117235225218525153534303948456892536942673438160849546144785183711175033899730183943910986752678352512421722032496405206910564107433020767817102413729136621360461282146320895991446989946812972648475266759000146994199511960781392094683900184054832072501746456302271447028233083819981770194598711272719556609257398708195949161205955718463688573356649262870285442828227414841751365946982386941247794813978925074898217551783368267880736011834119105043948398431792218948625529735752457228751203937321423452358810586733416626285848723161892909541603629977638602530646378118284938656260905604438565177000716866624760945798426835915891258691046595115667172513963029034138142892427892775308991581175626197428982894349413541904006809601777536411606567444150187668235753072615041174362996320868940456109643083566356072867575406349997880666958646979955795514102287371380170480613146725893649375731211598832679915438293548505449472038017267094346274690681935736482309318585541815063217317519066227393754749687837909334012398504564922166759802196290326707865408523958034162361702775171772479316055715700429281140932878061873640068398097273403707908488527156435660090538657235162728905893835134720364741320733620979255954974574575389642419828745686178360551404415235003136637666058642054369597900849685490839980126169679681205532563134578250494037501963571618612112279052223314856327364353849640252355120967895021128170734208208625388798079432966564830310207093232526806063707806336571916561221013327152042027743060639356646615523569860060508215276332879329164754427828562384714748345796889270406291807529959408495205634269288474943509887663162259125261303812589433529007382582695880299002434615296131191368330322325244461301136710035677734020097862676177541124029345923581763804995084811283839753292797366735682944893703578791955512360548506394415341581459101601813694637367318460228966703545633674731773532860482214365204665313888011674872413468504251275002673795323899168559408655751028627275581655601671817524535181879128285192895586116737875989908490385157296614315378631084297734064828356442388950216128969609184110871935787856198794358249834475086993384683593003231838702084958744950316773186260091297349623151367103782431191428474307066945302035396612743044618710544351430980989805538203765536336445285782494442024264651760610332249978932216555462483824432842860411714297417163871775960075369763323151311280217842857123264057955468060212315850527355302613524300720640474099603121208495434792584153377599282687820289446432221724585725598381086877608624957294979464595778048689440140009545794313477327424776841705434932338516054277241843291412671679554454474950402973641841461872215095497232760408152968128563446638445916927311768123333842335143868594185413294373895902276624218470702838349388579461800639306056389327575694769060510895686675838594313899359125105002223991554184824549388057554123730387328004873144709595393345726973844518327037885736620813011119640584815659766255514550201025866967036387960380741402390798700102981702064604181537573789451705015954089691847056568739179700484224174650607494748676286563628317880834270363018526216853953299897409689107505652848086573578194584432554019999302697899360739117143016604460108200106375097902904132419027220973132143457841537892805259091345832114191672142511112931892351353889839894729058550871355124406012491789051959808062992970778415811568962565912893723667546383212958400334834184872809628248271743843640852786808962481019887052733795020675989864244435891509183108380208088402834703262318025375692271621083471674747763859651693380993363549066218540947469785123009805852826617626257436698410320247951065813071796630749595158141089014115075721179600907210273823679244822981763555805892291485191704577858980717219900035690062740397416016765597304932501205992266083482244189507701341639990862334834017097108537283064595226171804253741730234607276193444957630639302572634803430596466912283598377941752174231219343186673799019497549202209412500856012496371010647475309914360344935597340931987094693313792209070259389205301956334568225837114483369615380733356889930913131784820352157575077727887809833585216899250203376407277949485851510557075039609387329703085524693652079547899191290884617762551724763704892391513020861356185274315618583626988193850619798363024250779150466573000777720290382737586927860035101059722857660911161059575946457478375132532299728368118992048924151219618687109763365473648172937473424353652134062125957154185356531143321278408170053767786465746555156602854677799819717197349063634774587260993741018170266567666752568317812963545962721448806130725595595835646683232333700788559053803599165182746761695449932902017217965736748729501542524055226866559149212286557088005089101021758099428602741367772697434142611434344532094739194456740779927599025473123759494364330983892391273955267591431153563217471054735211285569288519665044746501654173636743093100462180785877088909082007151443408232724551121234185968398774320104129225452791443709108420668067349418325135939474025344936569367831211757651308034280053333040096114746166141617483869380215632031454840659037184436202940845251794878445300990251344695809189706522487688924488348592565124198564831940335047200410302902631407131586344128989164678489442103750797072238812514675906491420927622126256529036777733650852315827708947793901476017234574142577238302847327799015734408977258438232633969452317178007459359676027474780531206425332762091607707191008150639470704032717808621605345949189016944757413331075591646976004762847290941005224900575940161960547675134486823475235329528696955185869422998330479842713935041835242709363652244149404719318368976331767516213761929917647868016915454016793450224560457155402112628202236910261084747888477006976671207535371765569183972393995382191946681833700587469661830027400889087641177769627710623500811770902974548628904204779172446709572246803926624578550007111485570451331140034863762561859216939791665610821092069980753201804208871085954477713015693423901990160284894305797565208290852116814625914253106030136579244096401946619444568028989740444077081278290328414891604857557967660036082451966481878671929361411343988584958802636141860938866779092756109985565793765661070252824709291236198277250104722592501893378937096392839558974903124622087057021015336271092128457074978170855056439546257827764931956363251042326860070546300899012125184239035658251823791287545333749536929855156331055018233017113210559869027594157870713522223807278758462457481726855845834672922452124918374779587252649138951632321730844119872835371717287634740614181600861466517138179366875547181629507867611897165970267913602986143162443763768092343710726110123571886163634140886395937730623837043241058194500370905847360729698769438309302097487327467568242996318595604652207415626251191368635026646582955520995775473886652567616593531194117160531832945349259611044765307894918326140190559676710986897402300459294874160335656238379962693901370094310379744765598751161658467678014888876995120020728500202507193516830180658676792017587671713415391785016883540434754436862481867349728344044535402333136701202967119228079408751560756416677825363457656671238492647272901519595154765702234930089274177118843290789716300040891369452184531177322363084993562767750632074603883629332978715105155252151787591835432676216227190889454968882571954102005898571041408813293372794420377964816517940589965015775498228560081091858428940463528308655140216327779744447485075237438376086802470094043103744003950540276181063276005251931171294787534303562319637457557365749425616874127675825772415745997259791727375321894521223841475024024473140706370864301303874159252099606689408640690185474841810609290810305045834559075984552226641006890624223147419414715905170468156046822784352387806587612391400963366927471506966595187944046086063117130267372793776710359507494938435039544231400145778513896815063639868912638265737050681430262434399706950387928361796906464856160057419146846299345516672913090175497066554113886951887307848294441689758650647369082599887695317312689588738565998130690700305369278868101241849355265596991420154724963538993177280434223194306909915149955766028427290167554515374963253628003029684582180112119373940507255188937186418656092143512075816992712554957323511493395563037948300507702720984626005229165047138858449036035908995970145741720002667919866116671686927838418150342663901100288303799179368307365919810180417614451599161082279761029300637199390472044846954082917503520649753302887731073189437706954820878758560613586940758760722363883190623614646853650477306757553484565061134596420335924581514381365886354231683493175835639038892562845588865307856126716808183477099570685454299374442865526066840240600908816221248062860867418737257865268106735147613189793868432356399434626509956338722967017460840584802623570030934607170820473643904188235439763667880509729564111850885231090245515189560762273035688075565354188914728147539981949863452122420641279229434914014896781002655280555650317943668546482006608579198899028733012028245497600997595290539302160694106303036783488950905210714338602626561819091002307488192432822022990032404106646517004509507087707903398086195444066249850838448816782791392757655376268066412308909783128781871559765821447040691075214148425275268576428481509180158025640396530197302097882196916314044761261529384969539028303886889952001122624986610055226576148681599639638778882252718059093331248707393220036197416314647110429474646983870667983990406805414333639502286650507744296790191844509623826374124213454108068703520200725509699677699544139580307534748201409056332256814406096298444954206984753268701226372839794745709010189241383287901825604911112493777274033058920813674030908568792234627412554983910806641799115428774733770215917574252936625943061744142226837490897559026813734217414602582898624099917219808665108020284460445021884492533471437203953945545686898163031540850831926730224215810994490197785704874129609213966168098272637463603823160658959770336441277103371393261248146447681149494488024936449732094567648906665174608635765610100128001185526475614118882765126272510045058979598058489357583640541084117233224836193250655590173672708995641145354111888537521464044649762484070215802505885290218048477372092721283944996479107170770958267050299912195531593522816756904627351677416898329616219221180584002836931105857258010052812470612006034761884939472770911554975191220817410081922498380881583952042928072886623663148141050056872050833840071967656667682746501493152594813224926049763662799342486703082027025686460875310299854038552518062057012642712563447088928291335330576706393236339504883608581878819404029105338414596375831495385704297456036432541365752915452895390381828719141229974617823554527425767635134062991483198863524015862100154993142961674771338919670380925516308432448199309077047576373178258590613037611613256096654877702974669753198799357176025904088147145519105760942818008163385332566068198571710090098514386758087207589353292512394393760632397576209582148440074804999827279949565347365796545636970564899112526111982215071418955441029684105017578786422539618827824567343181089220325348744585580506882978907725840056580080802388020747949207480393699062050057627582719670230644660321220537201536169245362804241180766729780206819523241433102650484940718215090478980202722003382876838319578297915108008903559698947745328302018148342884885582119654580314740195714681806091025036120601801971531481010713405143179748135901736588668582724121349180889931378058085702429800672138805204883069640346097334651914153571569164611577224820279047830111346069168723772995786583520847781394236430209789402804479071076078968529381811065691356090123882005486626216755777329037935511402264964389299374877796478797180981919289060475022285609627679912890293120092008832353399477972717646035123415169752844946152444328182366846093036879974593479018421827127270123894262033755377082847823383644069208116750511390011493230063891117424366700005909921313648491171353571566773447182298606068131952428325449706922677122489719800405504716183863027325395639795830557578542002322212560798802412242472674278058301227759061949824619072116943596622662565279993425748624304728441219855215462126501608865766802318436276537740967300055235825792847284624782388319411947106947521186699091465314737745892297852347404480166374808211138960249004869616300140122305660696711318494879051856585765634198970568578055775890567529637680235288198182746865242688196201215257246978998584133646585072902881774650015703125080387616301283341772191944925386507626605589977345697737758331435638985678324717916323749844633612538770517420470014797099774547176361295326271960621504718301771474696473269763568374348391621694752146263645231619489453939605023225790896065439458669827428312271200621091861560650500780403114734773868792291714441537211426465733632131648592391192096887764254439628669924890687823085899935804686988338377728281054109014730132025977441147505832580889190758819630083921066360905089246638406058801053162671100443295482114875182752904941581595467959945549338439498598077883826388595089156133374725879153830047425148585333612435322722231685168738520480238232107419824610392081187146980323380371733538296464320249446051435044301886601571270446895682218163360822354184562394993319066189468594421666050996320383921103894777778292844504601565064078511562734155397788857734055314708957900305565691554831430965986021602190509118498113850651649795184054458184690500628193297123998232154618603277916203757108900459416821198392649654508747048263657306182319369332201913374394805192371597709320972756468508329993707183569997270897262429699792056833640336566596779887703674745830967510951277478744213825869422604000821589948748723155260226240022032653942859598629154857933999609577743282457859770397589749081182213889983255965210166066939970516472402449045994360451959227960978301369015801638150254207596879077103579014754758072986650152072352870248648704214430011952378673631289913718085407615930550951464632543716982172076770119571221691499514673234855036947851311336344495709029056123038277385535982693163611141028978160732258724141047746613394317683482386594976276770802338788031722174589210026674643419154397193318215442242124428293157942635043818328044763496225454956527017962522855358526955633764343450294526025303350280171590288623725219275543391828293658461426773888122207197679583293288428945479602363792338970426988911517376408603631027348162701648536033577387700026871461727594945426623950386308720323306240941391614270782006799093339140782321665068298660347788780587476306113286865612348004375649934225754767971215201504487576819874343913839394225070208683709656582287774924380648529770368769023155022663019460280396965748155610677150625867790647660593562934528054707130402202297021114072406979124111787434673517793068007755854431160515508973369149832605874190718292036592474095460844324340107066591237878783182467447074644111216685110882942752617193481642590949278071769209006434120795093598664488621697000159657407372280473535915208291894858321287281570383862457878655547666117014772155783583414155515683118920446790979590543213055190661541854689303176900191010307369579186264079420349034341036782066533727129163655996275941402518174782822950943561644359524664744469156403149366933565681173508909694168182093162564532507517262429895496836727942111519897445431275866873126672745044104084271785889661009999357886935517773649550988143675009902256639800192880623011915446044954117007036946130557286391247389778271040728811623937232665963110820547816593095855657240435142469822208594571048983446659524545094510876514290824532596002566688148294969147550631181242716580618445480407406031402580970847582616227786202398665506168126681147403583786494722597542463499530280150910379100629152499666443176189708415633507970097351938715039750726087976411433510886486868688337133645820880308470088980365452938308482891818645244102249517613881487222453356812129131315915068892216944566028738972589314674818772913081992949443209217025143362795911153745964680654473418340436408904050815689719660648685025435632735836066988436376429657189843226530569615761429969139298027130629207910926377072430006107024166957488582283285697766836096761562176874551153550281558800758865375602413428807348718353223095517018743571480787368765638268422723939778112799071245656570841105438715595906329355846888563447707682819808641130499485021346930789435902695288142299252629397062613373575475869923650749936741872076423927696182755518015779007209479256595681819571263029616771559577683856016815294615326067727465341049917508384342360513920748969435868388493697511200380511547809223177237997282996594490066972360021362906796886001010203409480131807486264184220389731773114066487982099804695787389332558510370499959261811466219738356109253427800595436861403182808596567539982471760512806469673890258635087397953500643971911109857350261418785188548096515940902684544857530132371334734182973439426656728485727760665048027654535159940171024562855469738526189829173000913353107202642746781533376716136279066176861296458782149291552027359448619642745365841905936143788685834305399257214955708450701189064129784653752627476242350457662227412900390242553874288595492865978054710077547418771165346641926159347245027117235968074419443580225282129396924494890552250973694728246426990825391397344411658475316854711077195710001363089381605015466279885187538870727516633594511619846504471558493786076555687830350259801108936370025705842024136573882340244095588366972655573421846221533372033173711557816181958903491236079610194734428259620942103641576846344848155375921170331799881644757486917415306335064285266499444336805586398793934254815185045505294244738696142878406346147024111521098925169484978014371314194389233091987003723166230963821898599961297898910461138324279884274922360012880945325325792443007797506281484731590730824949463254390534725805924555326693937749117675029730475839058763145982542983022630317202221990742549851259903989765768471192664978694955568455191983095398364406645102229819176751873427467539379539027270727299114451230385864587816289202349900280780712840355719930641524634371770942926162048787322737981649597288907337597655193242205320821894799086355647611604400383637756862024103474721335143308091333482773626801544888303860474402425453222795208286514661206708116772491120161448505713705702861993669756424554311052233108579610182381356155316279961964696628597544159198584044538361991001610082969930897087656682241919320700970199140128772283419751927979502135013168776763186305658361698569454668378476572404407067732112685710270833968947788738989435683904627923364910043968937340602508274127672303835668547781485544049791502348668078118924020839575183840801225895458907832294858940138761387652611031524209246798796059567749952030143821403012991464629784586337143695009468725342698246846757295932832910242620416237963244046219379195227801736066920197722382503781954415318560564051890697543485950502839105036585569163014567438268041157646458300372333320564486119669030957761141428528693274349328492340536735141659362678801332846957084553345242782385044497293196674741019084935055119680005443098526468775957483669846441718436102444872959726725389113455458281854425255445388830913679766440952663956598686342121889799102481947568946888939918952897885687378946055603709254036576607508502236057125718488633079578623966120403552230686182253359900438449660704771440764728906722749055898708097671750500458927393096675599346563448592917214907099729116272399661284194565236124321297954486372839404292277861606963659592605319942861870030228005365616764147699799906986931944897278685925508729556960650662178847352126653898717769178621108005675267918208255492055292748506942452322170093676597443159120340372713830021568730651942428954977616393046873528038307077178602960520681624048272984141778719031709421398562912832419450409930563564392840988326617722371002391727563106427731364229880316900936441799195261250612241040805932555794871997095156973830853384463777269441633297919534223095384649716058063483037092950687409315651115884504359277266745122917666067407507013633292949501275266069700498987629968397469665333575700950905439938605201870136034277552302992296874783874863285802323464348665614880575826684072712514978657086650340361284192494376270293675685888536815258224107425062089625614744446268962950876383406534059395857080762769345763769843977162885726799918963301655346795473062454961058344559863242349420593848946824263795080818942505110634478847200876070210921524011051352558515146924219286719179027077503276653556611698042240506557197059277678593337795681227965847526642121542382607165013284491537547780233187690567969713218392577157949646144265142921444352759502397567978197703549414020050371316895684613303049112031762085509434286351668634510067811743006255928605021350049186061829925775394378745412171951504841847014506152839122648834820431190809717633866526703106942949619700504098139924420603824474697415773384737112649663976567011574666241880744948548968687260222904044395476599028527600328289710606828660159408947626884655010668376929730635249049850184879144722365911726768623599607925814687720236174486084522822161269619206694192011961514289281462865664207296312400967698944424724589430109949018913754007559493814409338030698989899123854397804910856253794156669936604600910043045152311435450910355747808882661594296261396120336246304009522014574253330471141120123200608743071410797262050577159534357719147750988454382616648000313342029413268492066131754964288288065259095865258211513704369756721525490289251922377053532216760686194457432705116749185991147122065178842738866275341005111986278768772413026105859335999261289431141071132168342615533762146389648845835148625312210439525516702066846318516058989743960331419922273551005882796079047573291329477720340048092871318499377563147182515258962706095277323581727276860192179768447804477810340124069742904622732301403644986007926334920494583777364623376351009863053983528572866526468325263087244461776582369282196617621367562216780057150919702814879676816397336544625215619151555905066390254955013364050394434383444581412051626276912477462544827993829744236174691182673275800677856535598006694916072712837299051581435833912852782365622222449089770935803120183162181017141730967650321981451722731840339490538242342398237003763900545170374511799753842396879119975457841927438013968940960902219040999478343617106763151065697715819838464398331582224032815595267906330376493195127620013012206521540318513638264937847797787231943662155821186849516764488163744887916771418555112315880998492631049328953362483128107407279691954344465628671263929479915325176291240510239119364124175930869551812076282284605722018543670923424461641614636719991070437890250287582186369355523761185706363724595193149122164190374727451207198287855743669749206660328679943398290790306827741016617994077847096548241159879156475040662113652951732716417473842249756112371046990532927559710167454423652736281896629880830428286411689796164647786040299659386810621005950890885160776290430333691018117647726056012623492496407829262435541063997798568075878021320872156215930285152840425403659621984569032067333451831792150549280316154483298658737879141875903961323666811607588600509323899275961737055642699916313759434499917817122161061729437158664697625826635921071578983727306191678517733587980620656601366350651599043986123938532215961189136576022152882590654119619796805282994460309941045362360775659509990542659711359651469790069644544632512994811256753312868180180150187640549500000922971759595245598824317875986552764675812354324046207058243670714151849063312147913272570127581976418760505470452060477908165032608177895122111012994731402008227605778737192583561139195284057280116863698299631326736639783873636656401178535242481944899260656238555929331379498891919920637285376832049333188272448297728490828671780026735033627669483503843446826870671204242595573850129420997217870060450501379278852869183045043891270559989377625112443559840906202938160819363314908276366836692283993549773926652935804920295052875560769304536791518608092770825694978719906829904223966534472580400963533605209825066131979124912255725057197330509149082965459358379006206510481695401213577754263571511405584835767642106936588894444617326969018708185115979721883605794529255205385925788013547474701788412234580506679698022719880446516259529608539776223842757045803321725028725232939164736101299838588925473321482492048036103545842417017513993036467851722178119425227317038611912629317904868866897805332674226644602173706933318994235336834168457346927312181186360588965670949292024110240962565453361375538157326646233115023234072383727944813043092960187839297636839258043398420795876334779630336632949436413305509998531852278867102813109745616712694579860104703682073871938250342111072200482159482113508811850001476418214899602256096362871262017994265742845162589971215705273280811763260560863891654772261740699835671448974120870521210688105290193446057510823737076580534408539762674013692393122955346903167864498316991061987321131367082653482269888389228916726134019714088254238776168968958711808001314705954489215819094797484725216993668923499661402869285395840941789048338289066818190103249311010792752648554805784600692034553643551576660599191231013879692424589870612678541493889802053805721290993417004084144968319290543637968681550470170892120425856162463604828586394272140520726894554009136138260731781200248047734383240245694641069850841318797185355590854909259373647456026123942446792389738170490785915705664305581639465249999453816382076152784224966682344880344641684292155219227350512438586737481350908914050074430585747831924271342923844146947613845531143059340858486069885470206849707293754455127258207297627037397138829925437177398442055508437637219660400743117877784614167157610561107968119655232838016494788775968451425502518262701531045763539151324334013137184775562940553759238462161096992332975035091436883003302388518758362754302183086952361690859718883274368913360045152510384534850245557011223502878379432319288192698007249206187058696431882731940875903266236312742047271516077394216848677321691409144064996198540840646021433719693716786857669253764053898189961100740664157542347894766350444816961156740915263718913081366332092925997384812845874690732334132925622615653700625550356057516805862158070337415855835801953865255162033850525840390181006360747139091680038744173867513970397820130264182858976703549994666725005338392005360365497926510285500447053622238024467026247619828956997659873744112149886204094559848086335152656842752064187618677483742164437527528774332147063149449953981619380976831059304014036744699944107912436863029650213768376796435959086472684318516692952828791630303998806622096272339987920826649728222066992346099744053406939902901416179009762007302592787639353130691259789509399622614960495754309771974654181094656799844155019363921507977974395079855151991695095502241367315767434507556599415609877160603507107622183760876750025514146792630247126627580340661967262086493604007172603085374118114602348193737032550192088802640619357093984415780029462095536458496169652875113730378166424364478078183531456975671354529560345345930430927036649362545613897447842773344552265942582828797501644928763631527108308163029611304027060927622802996478221744856514485697209000255890117380027172256207875318666889750111700061973167744145729501672280360769269531142710071820810081450149555001073641864434777081222470168419029850138450323983378015267540597883318552920582206169530909598684754996321060224565967005990187425136627239335015300495232408788689591498457940688148740489205055458949915572190455745499934475416633632089324590200551389069769996566740557305932790188091002321924204975557716001955763160788670316181915925712095046482067672017829532847529687932786424737941686824225636814355150626579252078312951348269591020891765311364458289634215571270443515759599984864483702720542758303637022659473008888319029576398514488301029435259880149790812877175297951341450946773046318117542447185043893026552397148708582176124552011086753118516659469789684344061607232385346477142461652298459160007041653355823113856789901133381358286732814720394395866989550634481670461279170872284908111413893167698456585132226979525169750864445348819049403442888019456392160104762883700849871471507004860044770952392866523132458634647571544590131203542993224748717861972431378651649347828976341907115256611508289446599298433813447752038175319170996709676084410081815142050144051516709019435441053005136996970517151693662976902323185416952975014819754022399648878351510823851593736698349996878347800686646884201337225741619544024510541172529405481351069299572778749066182611922806353202322600276209321246916829701699055215828176741257138916744907726967014377570793774677485915707748629966577370663902983545000077332275433357446653004788635999018195737699880709595551663194995718991940933941987260591079935238293006354930170203177960276773297106723923536313393601684324192049468108581309074147707435438576547864521694984344086540257473423405127604110715257238360418735508750161924328623088258912761550588196616823955690394157484722637761954500486741653719523535671302058043908324681215100241285980533660109586905602325840595920612119418643603274468713698024276586898985510812663182031029075836018727893344837271810113342856580900350759037788120231125420078411881627499362687483861298949086961544496706088381646895563776570446351054936246489591794975495996278587537816976530089170062386650195237167718552686763529557929230070063706819704733565155411179335449082473490747721514726618972276661909074492516000162805160271504826292593103315113674107526543459584028581331870928289282936438494106576113591372858523372606112690006014960460234437232063004145770858380457026845309416762533585697708814909624044612818806124162690495321958721484595386299598930114376057508606486520448257738442536319463857512047247400258462791984576853335335327928934371199302326483660194622194386463360489315510797973282293920875351172926337948686186587784986295888859084114858505865362608550255138431513915194540369903050946365695314073847185971783337814079030922277630630430357670001362006267746571293763643385702778062695743047604026526329143281425492993563047595936974964315222461582418618501848323948354321212925196282754177569457271481387081575201585374207314076371565856290207732130403049880916171547055368838297790627074424199166507608751072116786055659625240655584548914858215320007383214552654576747230252018007229222142104680529973037336869189571585966266015252245023550097180162166681421044017367469054496453079243135414166848720855149576008540203471732689883605834101903952437462125296045323690772896096563353100602682338897529472282467444991148908960458388634885627933489769025659880686264376295215249100451289863969672812133728518794668351194246308506917387296646513572551918045911807768925569841708718238038725979821226621574538005346076476641858078253254635279071688103763138043421326106834173859989206034026461594216287602987263531323591683062252224054427192253155585079486500288648317090979730784507454782075653978523228289913468240818502589967943875863989932827133246022884401879627914862819435703598677824363999905130807984969658283857281217640579320821249618441302523789505682300439425166945286977248005328415705982776829181803288598510140244802472949494200401084920848232303819110769552879992094291701781929676074121552536513070320149655240435398419939323217981414054935411670058745895480270110125949236323590416379003668775004925240302981091928505621358314914264909770782877184944529911780279941086776597381922509198214077604269578981490112802526888900801118904987833356360367082984348934968734217332122445036861515897621506793512357273881463189813376761278444218459871817647614403788035170497892410224650757287611111023333569387598530586585071654885799196220096074821466330673827551842465426462735142362139719294699950288573894844987185590101916166328613310402208891240238884211441350896916782518158679159874379392005022943024978410838141877391620787209050469034010083521853151635704792956315324757526352320715500522908640140230618165979790774993272482369691052472678747271037149625319516640505906840815027060239452634393424403980877957614737429762428447463026474615540461916729941440785629822082477659849383241825048253014781070128193238912765030686414469398804687221002418332949556965309136167451354957186167471789989417399641608077796045515031203113451422192278387033970077385422908028311747073828266527895771230783672987668300869042550729512328612870004447773642799049829888886419813629425830455907267550955441820123737088997545529355252919413434619726813975370117031478396684862771963503295037548178750979754130565221666546731477521185856897326714947072724444600913611299860488176274576345340260938126905693609762572023129978704853988590781785822216652210165998266317862133657127939826369507745688976973415616785135547703161055188083072997187127862739457819196238841393934777202555535719121480584463530457797776567209654346823805695266099616200105222256941472560008997072693230516098816925902724279832358204914622502183083051882632633804531412449008918227730240779019033835902871936610753273498749296868144681859274102681264063566737690810219602249219938293940995202655976870885302586578560559850816240011761819058447035112931288215259516897956248102102099514688265608001670649449129541261960681877625941432094109118778767900511957003028549608450438217996098511954464778187370262608660828125272115089562420146917984516056449564560212516014403281583911397070446522939829023868224768812983650268116872424692065620461448988415419006605173006470596738888143337449003237905777064098487808810402191952413970073264993395761093805647447902754074079220633614753346497647066547876796340210752982733152537488282102891619769636242442849094303194977197003233827332277291121941036049757179389448188786970550548077689694586994176451481227040032048342034693725237954279428144265340677059011544964017746662771513348618296683103699248760511030201268176534060749225036547589019030363630468876756972085086231049399014273578418411848944964782653018007499794268768692007641825034863566083561240963073472888615764280503830706190296160858410177743077880100693483419261647169079538325073211457207120907023344535071448499313461399143217810560150548884785400254933646887593409219674676231623641023528288466176601952766395988079903488669572572582399405602117959023992721699144122412542705455592808702564052958901458451067942810997074268296921781921701147342719183982584362578216152987781309244666356835056270032511310414051184270428685593329474004159331373780201021877810229554895874125629141471539336063847049343446914114126773013015387417234660534656255321419999886361813853132318203772836422236527050102798321291712960293075144558996346855558827956208361951909188505366011391315854548273900606561767231331112197485032762028906474779908393822163077316521896332473403004253760018339350824143707910795174815209462030749418055222516827736723537805071895203748021568960517145225727195633350011781054369028181966485291642830925918985702413950699959584120892569586276418238433235609600386252097086598423497663645178555406809844595408521350813438256445275541205631559624660939763377036235046143427276806517256062873893042673704786889655858596383755414200954877702967355937614419989195178228770902774187264437401158936123417660144137726453460350458681832543184597359336323778257907984986225895841518167991539893220372845818969314638161353267705949224425693798874997783038469199088732727724934372838478758576154085570319455138598616193640123701330354148861353680980943507053818210827344640792094681505688363940168940819784937027294771486208340400862669713250284676457265864310465605598094726191582509101011697469646817655245553257049014861940159144641218605697101021469831142608325616280869507254318463493127490794596012912209306985399276826390659951526699140362117491612568224944967107839865264490724655511366343781252928005398959243126522583412645114151835825585554172002224488743223493258831611472036383036211769119370464278861045645045004269229389572624971499541103592559593383028987396702684631016320837129949779763537043122175918673640225907153754660541567341943584217791816554020564887985291200599491559916046459250574179789401644888950545667167420882196261705994045557522449965114247459435155834911854487418089900527641129825807034699452290313322604525607739033897326956298584840027807512694546051939233934861493986922693734646950572205258235556913796181064793501538593637854310164376804444204115242457450743658753170249918459193456383398968537972332047049458414572531987731251754584548454293439413700373473629136551908026125208856718003637608357599918440471601207480609585945125042778252546173338210439824740764423506061072457727850083095505449842595919868706151589348376285294523116043185439132442857732830333079245570947963304087560112381484498002323891435736993708456806843347378978074060355188895936057531866435615598814354873157747267302696240379789758270759318369483745694452304934653584701529797001481677422365101535407109535479258676778247904625751421490560944857197054267795932578928677975499682173567801126166797175362570297431576933434897665471507995246826318750200711124470749815866000191023882549380849689274128459639649460190914124963274739494251169462100476781571413619227453882148800922219521712337410225684024300660851095885993702344203743192337825837299644243834068522149600516521170111515314145294338227574351776319598700692630495976999361341289273002916387337534114489730451753112281130234922240900686172621959531945603504090923747222042606644474146987512959147637230637486766441325373161083193066360580476246945320960349109122888710718138252100446781460959141150393548037591875614681077292721624053382409577255437188120778341631804404372519790385079889125444721738994846536745407775656801762033433638240957797421052029640959517576235202817643179413704065070129545593080551160797953152301878529305256280819295586354876051459889772755280186138605505143313995373686791819982364242506718447744315391764164130707257766611841896297669229801548403505271986237229686025663171557350623210744380485030524428460708749488887949999705793334656361074399306998915323075606760979898886214723425338524881628217580146048131196550451023952831270296966317989064061333535977779133504403793767692193456006888478053369912954272709618748559573848316664223612100587393464442156183259382587335134775895864439360609410136435636497933787426762177413789301681665949905809635558425428457376849413573014009067244672641033629396907060531924402373189730981334456762086432404760556362061800126628707543017034897647328436778779245264289040268139045448100049535040098605989525921147327396401554401224433475306061415376232000709654635816850821019598588456070615101965531984291868359626368964952490409788779008400985861936502413356124923776491676467104333254626580662223082037879855600182829432138439677093275330060890038095763094761184265763491168466546770450243886164273522137072398562641512627914373791304266912985980177781222000363631184002274496315862561121760323663982440859902040407951763682824690354454368695555687493611033006352249096327495623132051193967522641387279107750009800179231089610137336043052997219786922317190390578327118567485962147851398401539046706342804469274402326150887869598973318577484706384306940905512625739472224714413570593856167688650118878065655533366345461270436073458804132954851827002464139435122080127331198149234361448966821430711369982590723702277675550920386818428336565698815890865011543405915037616462344493676626654084961002219454534287763930304889887001379399593054069829491816401871851719362772604263844886529865317746524714726076144843224164948907040984896862242078311824293958584494429703196719349179891749815435503167022536719861859163606204942068979878126376075016556065870920381292504074283507973844095849795922426146139075174224396279035495199937425701303284992684364749900381717851003389771589785623459625167321520083145728654503203051827989763823703274633071559349323864603622866122587787097050188091360315995635456520927146411025921335808207420274216682863680819504505406366595661038514702422945542907493324995998842535483030248312559806558934910329080002431704315443669419794892159102223053032384709329681929157421347390984974102588507636920138621528033642604172089837453637927834873100587518111762419467394542484824846387785140405225188995188779457031863778618271638049853154219629640430592178687879350441213439088152033406377861433624628200221572520634252238248483448328597565635412214941978317015442001433720753108034826393245489621959987249647126151110811222325186827897224589830237602942862916192989257948036864645346533102295648561349224250500908118321084537800539951926821436409818373921215168549269227274363640797925191875243655362645465161339075857583871611399772855392309183498317687385059189981787371839287704659644355758202775531158733063892572027788247939754739040353637051464544990458989675071401056076727524343344294832688288084375808525441162623629250975777826305631069677103139185983997051709796584793336070315982430342549777862182851341878476998117761482770060911721364424752630671342922706054188825784628479757924543580679210596456968095089370085186045598559657534744203115561278139746460522191842393949531482335065990184488320592679526319008837768603344836584894773081432611876761719570159865627996590526188968768287210349464892664653920437724095937658209484616191313435872345058943258488866867365755953276176049594981821958592607248424407229581144413448922664604939949673726360651132507079213944975505550518980228674670120247834619594122836328634988850514098957884420049698979374443034859127194076876141159932491068835962453413005966849744933911685515850488676116574204272085109993560583664170021427748982609372477845341187113590913183761767403393566061916680631026878252687822778307723142620673415378858509757947658297784624717666099027121852740018004984047984667733462990605175071234034411310764280561024607246829016140456126737667597710572952576230456214764849841567980008471158385783689815279819792215941378832562725916781102895968252056548987287704620646172899804886047376050503707028753477095343511662197517008465060589520081486384524506275878961655063576295512074643487227571535468813697064792037024164944820332703483606289179086941846912294204467868683455298749583526825943261491116807342813899073239079890541426258846175917085461148991279557570419889150068857590421232092689745195131529873844803609431674260401003632759542686386188154492751707676047005777501907442149869837250862416204107843413437619037977411285267015188580030785287190518071484958637036003372559452293080888842741897696706851531617891434398140427005526681072346621660150980731275253026615340317909067641035450471052269631927634522697741440629841367629228210255992491482172001689154097942447948017834994211406753713644251224524608181127974893195678649383683348235318661490481692821058905921016373970362227233020300807368908714464017097066844662404212961088404849254370428999252746943471398434270159560290397800395551459368086547220535805920403764706868208908797418290412557451911561179527194453167594291575016591193158801552967027977348431484466900705149032508870668179285467631938922306754468626186693991039517337101388370656251312347415425383349470759026808133406682807424606053560547880534325560821282041572236458389903603995514941642372405187563471203490660929132180565621084734246613661589894480757139767886540746315820462725057503139160882617197720285932321457584620629262090684548472984301728840317758859849496684541303776631057026761247841970297681570598247176544111572177948820870862764260963127578802837444109133978947416839925975217110056127073623673203849453474421752293059641173107220423894379290860981523287139627918813134352527858640023465913885619361867501284758704372003297841656742547494774662466272977737113045461750313274367569241728943848147244249439891006420065567989178365387234582476294578558228722913003225139402083127605440303842229513257980313888851695782841290322532252488286196905583661196487824970667785748454238829012592855474898304567897100081665689639432161388879528923206571526861388153403479797498529284840041966216067945431143343960905680262788894257153574539532120643508053521072731035545058438578646751566947233849465633570574377021011247769649874866918384538865913570700774105679612427673987790036424237248607737987663553578037963956273964200298976150090624496897957290503001146283142686240804868419545802850324889145513557213360690959253531762112707467284655989216194580492483042071994531560647639408976293110435365120332038896524192983272266250204464378269369273932370603075597739625572340380797265495987811799858056790605923409126004268768231563542987029252781423740730744705164950320211240301691888931196794368959406348664225419702432364436120804092872938453003742045829981589882462443583110601119910159707100676123954385136390448589826147076785118099975067995228727562572093911202609423463119717146936014714463014185451452583225409133408812905232844754766818648074131401717766402110888143351559690445890240409330193858250111991733371881563803935922155419586802877887733531011133879559845178057689485534409647849539413439959421792474269631487814823090926505828872721206850015628515194312684140696832514545694446847915492890566030036366752729017622907704867163464673611457620114325720494202825832211525602545634133669133458433766028741210530342093548425987071988975064624577936288092835367550997582010004461265857320887322798693929397180374499757155483389410741309808130650612154486079373977312937782873524040887491529450457635502150033237761609339632231154254014821001471037029927722404800595994120738831836658177798677174557454118527740724452534590916281212882476281266286209013276068453812397491569368087845638675550521702725405331421544549102855111219566650178374811286025071440269906887673496913758868318225647545120396535638030206541651244601264731571631918948465269632918749991495087976846937490202078653866550245153895757222910188348265536431903112932254543555478936966838783159502977111425453299306193557293017454572913180629077614562659451090452744100007126333239430436493598498028546147974307637980564635367512955221318661248210092748900779474365760960622802397406949932390252160098491645000320271985068402267596690228939802875834545357651092760716002797243695597822113298233783789081639656908950679608681648643938361961156058188576101401349289481285943446385874182946275274142684858793963360398954819666495858404728274011565545235693695995941563142435747041009877393411333054925578384116409242839444820650125408202579356932598533046368884032206128033145926215409999001766604839593816715292304255111855522561166688798702274121505619268347331061359813769773007611683917895032451742250551455994882679104257123153765047786313849810188061431012506086808888937660015613289973799063853156814601589986551828698746346657757613083148178263981120573285934103989010517555633749390670075110856552229016085003794438033473347323215346562475346216855213689117690378595977489956655395397875255374719087687715623607180418733481033607853896350816530899445036074631557363560361544491518658619373485494551419250609939886419916266347155227429068993455116647032301365174034356327487904872794857632665821528202941392116495016995216999640400599462266749523613149011239800331965497759015041550854374678405778468736977200552829359751446890144241647591876853929079315148983536938291662086770966573891735371109843208747683051972744312325326507105694360619067878547896820381997810340942657190727060158151748802747145963584721666972324191282070618636427078783063119373001354457676440801702892060177746193775843092090069263760785922299951022789144308813352189854180291479371442276731449340081730326927471969260222710842048336239521528562407655655142170897003021491154145787016496392733393538444472359786393742784307654726149581978832803673342696820151826602338909715432354293833395098733362165486416433249840682444319099197636984027432840897937976152814363648258538611106974174463282247053428980918189776276864518705101958716690088241060126117275562611675132380934228581634451872611184778108575848572666987196811600931904545181033333837482587148574380826168721410702265442862373215896704129126183641683203909496674154413733824352217320857978669803900712247639158247501282745351629474092827340300324848270557512770413045101147445108092992697071588026775765077981490518818516522226966212984421897528956416016178103465110953949495619119154669192441024235189882834685971592131009816732214698825595812439011691318563428349292680555071222591152793960894125504428255811240916307329091097514768189367384220088216651921811820742227814206190993669057033015781142236008658534108538293751423353782726446340322123435424118567465847934675807745234067386671793948614394353696657895045832444579479180739158516565341704208798432948161441301524654794818501150751079578511836726498420813747580215644736818112109734172431581595826119933969706600273585999540494322432689804625341261877159611534195276301107252239608243874683819365130348209855529383570237142200520554911604284880775621878651991373006350392722682136916741846044794662117995431110052492749058337376544647286860376744497661968663598016083871390786504226075670222865902358212693769079714293524948390005770182578374433512949813342317255679649159430525922766849677781851488215849521492977325557294495206152599553132543028335736655987948439560535501275706760637531843748928381451024839405197884042720140960848103490822721636681568612311678898620119286652252181314766473928242751087123024455235505731891632832485984385828182582881897812313850270185164029503502656152257083146915569109119760430013021536738961206453008269383355066453461621004605742180682435678025646062515806176820843596631387176411425909855329010675298145000717213047001259982292990443284447351664806464061007502487839978244460544305226147447496030391251327414585071411578150600071344296505714116986326784423025157638724179863563193151173569801649886945981022817785186278094835395235103695663269375423829262551600229528192521421049316899915451402771346433151012439237331630617451741630187592229083417202921243526335917782044377534532044482420326453546043562101576764759600100583323962419441095192997660168915194878158589385291137068829685898820320434221280798595970808611961574569067000708839214230718432072603080529193684953546732843580214748951659482427378081660258214357010913714219691445949807001415731942602090024210891218618427613707994696418406297923786164874478351581790850144921263671984812205756852115667132558901391056198019560793146302100732505453942922262197090717984110904447921694320785948373764795024616903223440492614252694381215990229871379655702625862906425630917572951434515927757411548641566765332626946268162375681527249249366634574982900865082583431834150486616938312539447635735242275930420696827744307496574301120149871791214920413139049851543135832413349479685172549276208126413898282438637180100303569172312749171243427099505280098338796713954880661982524675444281778329123654158089209738510541157989641899672199086058712779253597847041615961857004114689960734773752149191206430545671027215211180690886277055711875369872625544840284562381472230879122836363123324412971107775509416821248751564283878845762160289518146862846697544460176020083754984744022312237086098629548973888629577509806541964467354840948707536404862692731789736356828622684464875044348661505888848217623123532019484971989729123104662302454772577476499705439591227392776386063248919553275531171856707520740778686014758750168706357471466592209816925815264375186862740082497148244298674602284835350104422170059965143080345531374572317685173230986350065015781506300938173116851939377438792479833288848793969402835376888647675657981089611011501826337173100626455362583747016965028691339583636335195756164645741745765723178892639754539539056450683714117116594822019113659832218136080879297745559146996052826704264083174132374255614061968333848065383253681627359516566049258671736165215326311800413610800345946105121109212576507812778674557295496412458966229466352040116155604149634212891702870520694265475785475834758152735440037515806643418073119159899616373015531870885463423099107219429469750154048978478199035121634796764973519318309349213420375348403910376296439538906813777327680017830884845432189553193179029777044148150616150733678485431774077779204199837798106496588477774329056769862810819050701199423032474493228121766712569101619281721095022096224553983237996784560078728152176083353486613803574593330652436291147253094140840201788992175063486066119470404062909446221581594162968498926210548742135038466981832934225869659093446579114419782926940561707743147472267945338422899377703343126983083037773790307024027673791869371363020788098075358962791632607334039340809196586563372805389737309575478714654184106008559317972472299610082652426589584712499698103537453974783542664752017699288649212886715990075699976126976064658705715494913250636671324751949243797378650693584554037582449677774056039268499885260376150509635968252077853887633751082241727188935050834846035048644165287901310633840649751513212618364161971755219349330067118469363315189101862532607949066132224682262077580578740522670437508395498260605279906599582331995836073380726820477323607477503830631097512422447200421936120357625812360973862611119491388629788901723189505284394916357371341325786747552354737382862193212201603276551265240578220556582772659778876417559118316823346447609413395315421714356687865903782184243968194081126924187439352437853977512513317705667114387991575766720896299924081080550407491294314202761128123368728354528850399323235090191255600956229369844889532912001207273787050888163619794432740957650322945787147087211128557459613196409711723257919494177058971939009891067668989925320940579693193913544824738050640927879731907434934345742319924658601542690878074606575075875508712822712285663621109021544780230539714755677106473017153464432492867495623274538176432874943245755642146232689657078254099578133358842589123337551228210240064625552639104578756403486961127714324814971854479310730776122064380330888114804364959892773701410802704552034290881556186565605921506291305177746956754462961195774080654473383272538390606700355912448567833944711624812485143995320475524944187198178590175303262695150146222483871713532591005103595536275313239566575573692149020018236457572458194173612073258064742608873733723019306758360236853074892226582554991187212272684550708587266947458666128968803466057302303112854995125479868909488852270988294302998119667447107461492957364384552074788692057410115105724516139007239481271063759244441581171129538392164076604044582965667243086241450955628180943075753681569829038419752373373688322168037045379574127633174185469225203496842556199748732294580048194738884989680491712602483059097650377973984942762354011666729358003338508840145582319859987041724371635023148005503261863236178608753558977268198617878532232253581694406756712921835597174975313950431442485012415752649223580728911110741512694531058660669480341030975174104856052161046494738639518659337796243773042602735314263390166977761105453333254780724194847139591042085131516123305877081813271313681752855956529141333965351229589540462747655551355606707325585189235055037858611614269401578453874206904239422563051608683438843239814237111859752142894182245591640540199358257544618834597140405145293820438128874856733891429398368635098658641326787040811816510853237388139288655333629564669505486426727781430929502246090608509255642865126687155831955693235022384426554898199393498701370788196717683972046246666011686434108956376314132593426466046828162654635526497244590738507438714389950334424402206007266035090752504261873001423153836078293049218310107756814237521403901913794451749606232529067692833362226769050931789454006788245237046792292416190512733689197581457984869988897382951228615660419580752606519639183141952583542011462398516909581409215155105825030367939723334621097874287067388005916522968064757058241856116044459380938355730516632591083937472627443095696050201717484864636128714020354871079473274535183282252447330408225362069601145539222060894905427995800437294246890736061628657240705227301024531811619764669391948593829812702629184999095326662473232961491854410601077614718438400235750385177193422230129495184654710932448453580629991666517693860328249203569507925196835412652146897229316465014597090197317283241493157573927117410744765316806263163119620054170075225778707486132948769019177971790803922434790341960021975529197385751400126900446901999302489972140646226788941392627235530090326305115715511467939657038456791837454838802069163075624716038741828403103281535622627238342310498227868802421182809259980427375322961554622786902024016316311200713601317402743953923112353648788359822687916811157405573374241094613251308327878822019080547962549322245589673092201772043076331780011947640641310352569168450454254025346298252665922048012821634684537856759053315451589578576120898755987939736154336823193169702142592323411194694687182193636029343571456912381029828031057164627346975545996870181449129818632746444615457419011610280008623180383973089222492300764965638626128210350963228609803839770392190079237981621380168820137752845712912235273867349019601970773554854672737978648396132411801585864302166842462733470454763901863567906404712534025168159097277550900151652178556350909610950296532680414986778979491789834083605011561606160586287049969483635878202255411989876634982305153750268357180585173306941371486625958699643766185820656865401043314180093669438235724715297351194520340726388885882379473848803583904056679685079013448192353945191440393310900506639369804324359450594832301841071758951375682437002279844430972687825065782385039379973039123580873408683577680212814926087080095882337298219086763491738438332943488000135995841799697495969739723420049855970917094490831162544527044434979825891476472278057164598825167300360294524250415314276206881456125975113136106432562112042225151970036743296667896501382104232443947435136402889758569489149847109735042277093676228769422754527644862780622963119465201069223118893775287465641578166758294397451427490644588762687670136972084930803628602477646924106768046385012149000411035737439604218942101295452425055267884975295912561532306793797077969823183831165736911934717637178279690444299339676722803073864130393040164199738365859701602947369724380219885734091593442175996847298882961383096155454329903614514339254159453492206537194985010169947534583962938706709795897257628103283779495767640745009186614635476836938228311438108967861099423837842803547480941957142158112057931681918748365325241787930625154524759779285161532255333885931435769973485773333966987982534970264537376177540571056908695112974562500090385159575408940228352226994689785686679479994296198819199353289781673868474762501090578527541430607191094584876198127544005783012512286762173477220742783743687596680491510915490628306466828668440364230292457738646513581667751437966437823266172081930911836748190120317090108635831136092992654706474172970619685657463724134792188229571110338709594215208663922270702820636626623149921317136445041609748987004236416895261436052984037022786984802221770573661661172247094428364210466514740943934804066469668640662187982206901459789555183058921209962529665317080215819730807000458661181013603043486894566321200087502605620403163648547475507387536121130986048576363570979835186437798824067416863456784757065555773775870049908801273134831052752033981411155754332879553293983229591491209014003332493876738712064184367661726343178382553556779792032856799201285934577045988487461926305853604327593802161668172611177286843438612307294017120965451862462531696403622017800925329948463524477278974116153769391807167268690303381535745894218218807909552746264306382532036404431144951578706107942876341735849428027533836999753473745928794880562407633544204590231941391949769784337414841530490868297176147050256247581970910934726515041677167827230711238105835992428495054149685842245454787677849741252914129032939185938669466457008953573979275315125918276036987379494413595434999236634664437730484045923679989653521589288042356622508417655390666122199246609054761872371773048284870820967441674641313866778921576847569739015325396911777536425181771425004371051216553636312695647096578110195420536868278998131138585585572113692439886853268003865659434628885905519075014168974252009099610986649308232133652277263373330524951796500113105902842835366372543814384860477033478235339866753585694242394419374426129284310926432913354173825937703628238497773717968029905273797841633781658111346592505295235137090837466785890035907951587608836366695555091779100230651028848111229416212157241675869623333724397790173595987129975919336412799705819465395559235016904131505567109907140139475620002276068783131789532859581415775958217155268676166053721037416114217414353651605876573896848445989311683096972616501824061719297027461623614863901807199234587884315428101760426513606276279692883825783046855948592878077751958707790178869530302625363727081209717981997670221599124757556638185388787987883441931312998664445464314112335588656833050744732349629740684416281902812037317759141487627554219673688624606911148168689263790145945164683876493797915590012805029776190159342440625396932147225414206359914563029569062826894895632270814710168745761842099868045883088918838140474780318719695886348080104970910326260408302839067007509096646945499425242005821547180623279793524818192206862981370422689980658932347419475218902723695248573910173403654399112306333170359139780427824451292834018046192626075080861505745054554219580678799390745089430906184958744708930265359490855420460241469642736482010242120933585368497315040225833245054183643522300494882798614929133631107661517146723608624470872554253027732507898930862428852822165819208788354227885502509714229648587601560261720442240435869671069431955746461551119857352881743258887334969038611874861540465775627275918724946715058351886293380684916159547396609881111470867174787712121851853940395994008812490686170901419202858725979245542590822656549335482279055580696031403615575773087203483541295605770394979716805228893685259768567183602843571917824856268002093317340055817495344934309689108977382167804985063120266268198180696505215508320434276584316651841336084726084632347894606240806251866227869351529990800510134764543594146099702924945112859043049642024564569689289011634877707387041106572896761747823999856637990292569213492676238447654394104477931997814158271418084446790406444524388901155807025273078905803754601828202443810634868824334506005782391670980869210258899336162821025530849451188597192453101410450062806911837881429267718993680035188935498220538258521047448608597103530312995286882032426855535921423410076781600864965136582611174326657621449176781662162272345720665618542433785720669830785660321934513464172034157718556602515873050284677066671856535588304034397018206414720909305450965725426505766602740748709921649593986023900933127638765440694993163956575980216616611637500347346460989403523616712871755513531238243051213091645086236607108839047785011454858737256999447794376722169515285902282196324474051892495085446547423126853162891756839316730263913015554484926736203074114130689094911489028553800227602351076778832787710950648674400099840513926616847286982943890452580541459120732669662483159655351235768470836763150995445241554107512463484277327824230353812233819266639506950751601070894823104381892489133620897354225569391048037795002585814665405308662322689343572915870458622190707666968033316565570106575485483933243980752712998954923824147483115264310466360681464894651414634208381532780993692554186340368070369886919148246939765824981210049776152374603676801490147911670472357116141179981378312082465688521931343465109023868797409765638949627099614619601774825473544244084204925416848504275512259216986238372359089323384257876197733640865431959639964422370618586150954066196208939473137948758474205463102694969837174174332239188168723959560668067602904009641551544341594845813554225418148964735014583250500652150928819549125497159361913354126694604451925406789359976914772922480449111407173595156174567756635337055083774161870351855799846756195612018986732736157556639291309292923283455461976753179974405853987121131606988514517927620046680207847641858319922740568587795785516036382198457233988159290948650868675938152252646264837416991314361883961659327431006260786388533420786328872381494941086521120876384146265468172096727983674186684283182125552573564727647427492837159818255675090749735225672086148695478391546245232841877119519168591437562300800917613229131285861458837054091489607937049675223555922726713744329347541562835719511455523908821264340590213171927084585852804694127859702143155108500151619177889046756257648493386876922918146618825057179327219750647199253636482241379560855865657535509214482294757825872560775703950184466693766306438253348731650398872746449883417200761155838392023260230553567233275745234868807975215522281902502353276742915292833271638055216369680574039665838032899603369478797054765228951575139985112217478413936275369871446557830270348846661839250704518664121291593120589613582421958933995390650983233362165060890539214380755225885909691117200491355784118693262627176309660933618331032937948608568444406247475852359781554598276228533278515571603942130314197828704979815089329155608308486036244666784575126469021933908092191542899909251418731231511104322576153401495409139785169005685335630189527573266236864094042685145865031333146258958120492651749867240900484271963218215743758808628868894326209318293830722044861364278570082130891006069758152835445445099602935720293978689004924156994329604823028716966383743532363458335083315771644911197128749074781676217720340740436791049802271710260930733489107325236084467461165300488775085554096714960766447706162959079985341606068857545299958384007346582887875075547825466760471264437733372386052093176953216215066962315056339906911737557683050506704401626201533210231425281059300557539930824153410572931845109868552508395717920211038087531256792435120991917150530950625679532855990537883423342386188575326499240902779731636367576707102651802815040800105830147607965083445124261091730007602049194284651238967138641615541037494612154301002028239685842417678350397450522331309051141624656747262660422666604278842963583626265055536686066032672825914273828822691823116303123460110094145666886803989522978835012765452303602506631220362583872886100924699329753937907488651353527568970309079400491186199486872964698026376677511487174050228586755875730947183222405815231058242287626340180435512187237342764160921839080603658383984028812576900279258529616663944716312560005592098710492976237601814806185387092869539624622503611823082352948514882216946144743712970844699843099813052690522627499320683874621066173823752027574878342047058277929468336323969188512779704879575339870854645199725216944560590285794913900883361830802989507937671470559549742087260181228586329561209859085615723820170966473605126314644984550711290689332015340874058569431317175007218196859671539670356385950790099110638647600310875650376129452468010005758025466484202174878655261278142560341135218492954882518439324202741465879875852212027553685742870026389487722166326403916593748149755188705122592949941868060701477855019202308766412497419465830389486690668994812122468284287088747588284103230747153736989062721862160141978424624362230867313443229771168608344139555762797787077762031360602182239997003292822695100645185263103660788082707878307626104742248433291527897144807975247217264706142864130781813359543505314106698742524500156899244106932511307424294594681907829770234150542431301946572525063348573954855538274069194739552415853648626887883633257822354836065131189100943708216210737686856051408650619630895281943466767090693768066331455968663094803835087305133499641587861656078208385577130202869886582844690510002993176336554534998042799633616495415578627257045210961892395619331488898603342261772808958963701636471606734536398346187757230341222555689358118407901014361910087105640120193480048624263527849958909669181495910589110222228691166614154983992651696960717856532109014719379967325195015658210006698772085187208882445231571214979685989496805298743454418638649370040935857437102216984822276080338194523785740201783170130795848979474132439943287132267680789535519342309225822282822211240704284622080850759971871518706198001462188017158809871080834655722481089313405631460712093681831282368862291987534227827711719066855390736577176875524329095224869449708933568666118041319913966047136569463489802513516916602564735306386821639190800399234931916670183787399279305022084240174704675374287084380633062685637190860104087583233489947996649043351223540097266616723605978832944254239775206351047085612065740557796949978904752944800734129497831010943233015537803392149658729416793956308341207823912610992557492625071031127378839243080630916747873486721974109501780039487034813982244946558463163913120539144961602979665233213628207427816871599043244272338353630269926939593534009044235147692333064749669669858991537777697140452591388306618353156167997967624274116650813672315187284281069039307669457243309097690023661896111188115237532925462963370444712119876266568854475282727406970444628016159666804673073150640919020984784445740642782754947996894769750597526247297563779721999364848403028127276267217685326477635185550560353254816508381915094077869922738592798409304865817778654474908104890894032417264258555755648543642421405880155775626778882937795236452716815962859780420034410759432016130858769981291922862795894215190772149194985606794721682685376119934916785781743055850524332977028744846525632656207748370316357681340084268103637231691892466703012512176279901082262142784489881786416035753124136001732052223706951447660305415403992965748339070066048155704023954675966356566511799709755121805422426042185490380591496826329251431611570482627119673302500146897305949411473472270462938444782141264489677314853904226705121755595424186429112762787570435525104690609155585234468894074740450001389249289721810081227738845401062258789606792288198262104239724091793964178402568801623217423626415203048227272557846548588991396061508417943207339581790870417880757083752451055671786729059039877583524194819255856469628211002913318222350999801466573859947025723632711132417831303735930325311818853336233596792066193388040444229742919168135985861959234627516900569007094530393886160145366605540778894580092856186380166796732706011559622507606516895714994594181917423298564036952016808398143661363413827277519337596986503642990641054638232444189201781079739791130906534222681265056886180140869958801150004164408809980445614241287029281386288044707808260315386342942467207254102449218307609612934795447666899056668301750591966699983593880852695376689825332040059107369340199005860578459097027296715063165233416861845841770375143294249832738963395842962773330677119568578470441340745874385890209485820579252147287899413294390732465296848669702852861511955301691976090757003273247070816962808441029980433689578309327452643774200868680272773896656295625045225592178313904955332667634649181975086065375980293337383910283790812053410314558228005644956580826683660656581577519167395451999235192624060246707579472780373685762066155178678505826763087140550495209277956838845697600213122658758695863502155464470915156591649664891070536561139813244512170820658362464477160008046737335471344270452760094950717266985277253539543698731959606812248535921460277759674208744712335027239926202590267283744345297129689038906483760887861026330894584932712034250465385471533497797504749469536314768887860172499771027435220211081987348758724701432049560433304422936871603722565356532402880296615267663906029703789259887252187125184805813866319505827077257057108952267962442318471692559441618231312150722464440447563380056983542115570100263846428577353316625808552422529884246697180074443279068430524646088127478115711970719032770171271578240332796612851439281954134794374578334283576445733043993154102883775944859075576107096422198814599739123885405502291288115812149889154789185606595370376922191343385082499930450990909302679141901938383070125493039584336780921665531092889712330929208252147023610811782332055006769547205950885364357688637159198579506396159643916101935857844354970327749866701053423621777017501148446945583585442040772299324745464410781186454888725133523286633059111081158044761485454840298139257173588402459573875229176840162131327040060950127282527531567630964738266288070538029323891527936470691540968838333131342837070758875491713759471076251667538070120536216126110299047396477320916347080170557978527473537588648826641114469729629668395782911205242395477018748947391790479215369647897837293824317080865508951981653426270435443468276453834213631246216122723378274482862343294598073152288281027451515254042620437835471732738198356872903760286171059158961259625531286270301305741193770369411938297759167599203870229113997572993015469298445441691491094346768055654180322752411589121886482057723100881130589447043050663643646502006564849950033991709069550513253119773787313435409027834238347692049545784910080851095134344556196840295452110283304882774060505436094435190776689094457873377456341314010963814482660716786221400578680316219341158027503235533507608930224114608568745564807888257003998977302227196296487166475781626224529901373440778451015721430709734202926468289782764717286859011534000425596973428457353188868694828339031877621007460002547253409167728625372017691138751981695005745025377474030285801031071177309935817907891343498325485889810332118787880415872280904050784182856005882771434735795951193951982984823657204816118229418111072260108427726990746729759067916933115664096011927079194553782082815702911054177082560226217910560864586222031904571291659336248499874524745600050504726620758762340894312030689258934695227048545526271170352003470373007312034335493205150361449195810986541914785016241404534125252026106438149024286096811543872610949205176113685715811570553278709130585464550370451830126397047248996342539059373884726933918499176661256828037805840855627783945489641439446346504856064065724597172034526108542752386614498560441370868857257371969934615296817012563510866480276296104491298824942398258732512679423534983310670882239359125400548993707160904967729071421502151526145320570969738418149531225831902886358791136249930974090694690852681933578528611406630848880095369210933235416011466085059008653827505468768134723227613341082854085391678820709366999329739179951124130182632435051564890374661229471936758926545874522435748659110594741819693046951093562659093624312520287428680470952657596900935989919874509023798316043009098260045400343257613324006007311710003660728137347563769073405584142053700370131045849129496409875064261011436080132301432272697675326650374082635131240394037392074248576760846033642768842266328729265010065990409120481428949331175790982823761748635384709976817793780334749910496880110641306324868174200573638532838780144075053904007328114304706484174124543001061093873841921298554003910039157469612622198266589724698141013251635123991083617115866957654079840570189285538914961334154801973187577826445226926444449454403432303385347155106360224716711374301378272848360377072207396839352588711352626575820296493504412781371784821227989991544886464845251527003523413466509690351047758203355677736830367183149189970592701866606732048348535455916168655679127833623802298755394487063058140433353655853758399378710353562030583894745873343558010125857027082205419475405317267828548282096316308783009416025502272031589871774150212459712508094705445634675607991574481820708191860436011985077096146987264898970930782761199826716515636175044371569063521949466977659158850613695699408624493038003266586200855959183585218090230025726685832749065716978615634557967127788243970479790604449110315397214925874948464960961690480028137108493073967108629142948128060869225702452750377948198889810917438404520583109912421924320524653960668840878063993543536711723639401739193433734157907585052914203245608860351021570328882677303501581843472700232715984532935157846933309577137843870263120454167847090593878047315426787911942700832083316528653474574561974806819925360767573780260166670100691371673700583595501797665050644803598901341608932436236487312551622333810458490878647437072525762065359621342895209907442166479215439378096572360786154039903332064672161611661157724289179073246141007457278947350106691020896731508138564161987461667917776775587982193150730450528341211346102933129592686222399979149741575069348862169098240231927821699403266703979029872795365506683045994353933168912317916580592161443548525168248983696523482774133889318273541637094884028318707604050636851064191863830947261409279186755793730006136680054425456642839416132571524566961673439260403098762036991859968802528833026501582735191760607340245760047406815013535269237865860810599283744177464858775601008072236554368612279236005495517331305173756194536572382127755215683763804539034906054916183657426994310692348211403187850737542132757034539918974692107285320619876748250822850294050334409996598879710184446334067073853231543962742857038243411997902982348813286879837433287019790482520662440622800199007034232285029460132303844678143262895037402282094200717506764807425937406901790262034634191705514801993430866382341129764085440147789145627390647168162345162045162624436776484435468123779868848781197419338168763624857185902504583733202450159714909927481012284694575609796679459756504107588853261243701377348145252246291751456248900124879469249400591314564625701263999159817823076043110966205577391071174497005610753370211944463646141338022123935628848847995000546361742613993449421133715743823440408405645353450167163204305432759934088713970084863650580327328088360654165538812696236051854613656483797638719048685698167140862461196697604562668568300692089788966415042182367197462845904067838694331506018368620154804661002465625038863127745156185144943508495426398300892489270554356483321764274832080687231001357446527211186160109152498462575517964405668828282232051799500641835116166450801789828492909865681245923423261875382654334014602753965823131260659337217729099827689945435552660520924566261698670930756613563533762472709062690397442350472469538703501547117369692495169425689485980925302797262866433247832561194922864539918161177731095850852309305081677088701632332355697926124494472921734499295351904678426053360781101495071473168175086577519066853878542426973928573335660221955347127725474129201742833306496161324430814263710034893631113476871445023058633753215824804015328068779227141380134484150967612788321633050684433796457893106855997191619967703135534761229551316954439814863703193661453511375492516913141404803036064354813018435254383794117942395097146598354501426482246389713797358350456513509999638971587675910131369963941284628297843356494884697758768510867371861817899057412165210482488804721019340279828100741874694818431465210822656274965814524891627627244744816233436235106135974899828009199234044672068434960270999167981539886223248697153862647241715695569731443271947470191829411051923396327720328011225869883509851017648729834592018459928779607724754395306999347746955290696388737200982626283453251728396973285601837032238837271749675674069590665226075892287937999199658691837182984286620051796730581547132690304002235112280747953737158899673577020424759662821858820421805941972048048211356829259718707411797474857760271642430156422665712873267661524097428346090189409086768760226536280914270085130645296750752880536348286853710198317478025115504616095848627660733690055536160523756904374019656760853689517534904454127855513471085805568824501253510601049201002186447651842880619495215578246881576353114044438673073505838092550082173703621877112033571258007795012661161213293721552164808138936954358801082155323277405139657774436932322004089147191745557003863776794883825875852662065643149954601454274386174153731417322947448184880074848023247975129296867434524911746024664072862760851365749981402636960078647634200848564434193410821794538703124981937849335917371794947940807883428993869580811943616324636002476247617095889153515433797754805167364514292080182447764455909582654915987441709272774916060832143109609310225336314428899550047177130683147204835261767847433657240368961336646821344459336293400597169696692565195970195721526512957839044372198536199849302320745955498301385076550299151666049009255347468925011454015408268449284290005959416680342557675014873487069388712034574225965612191507489154549851175841195064990352851367321231615053955014366285820578832413047864848125432957664480820600749693645696130829670068412138973125493423854312724110105624689426164933055707868754298751924393378619265518886366080105384629009723043144333718479253434243775214717082551553801539092558077029000645450396826892622002156141949231795672945900584308973929637675807316667099585223140972436081868612311159926039008137847124362710236254360795028233699340393068015462437392925371306084270616410825987322432711127018385216658205642711739992889431385152090346996242873342039078351667293934339419338381116225305539994431314676470660438344643883036379811387278346049132501245041583713788790956916025503362702989534061410270593185074694438646489714586791966562467287428364236175919610812403969444688482985067483837310250023733488699013339179512031908251671828604884307739478137459125651687880308613318049982242656965113887723055380397424920255345324554632447434575072428011667496152860046406135609266061235335531568336153539308457250101074418507748099773620985615038765532830195001189086639655116675462326025610649682452874435630703935045227492035522826936062385474646567789465635837357697386429465859091338674907280455871629842622010920778700407075351163751160925596037567457797948805661517070857935132679035592872658187844208588910612688256800610144620977234759299771973337561934070010366432442588827145539060883585449040343831416026402954228854199854490655341022065159319580731175807214715768848260064725921031067945464846478997335886558246016458850706391453017625787798482480426500531131301657152431713208608745072771520687976275472602162263922540834612761814351782156219631039560678635209054983495544156037929467098456922747209695198938938245767075203408479415560537973640014066781251543964694332569285474765283416173397178008286119858083100646927609502272457769793270476356724306450848645123108026148066813980588258973297638143972418793681662118969894326127928081829326839276078920846933511020194246615946841112910546806115516808197178258458464316093656404103789659356301346374234263501183221994170344358207918735360707075353838583475003856084151576424146306646399852719865568721375224426810964442160212925432340228490321628811695538415499279956344108124040389542999679226187474327194613555898178626308950828877455405876861864461729750499929844622446256871284098988265857659216219593779860878259226402161632653837340957651720229717849317487107978816207925059553587882458842003432443403587295714395698942091129578666346607238529556019136179522965700082546345222927419166625065776958598907402613509183829062778193350492646256655260080099680655274705801562858905713035583229531252844458433251321528791866884693171929122486259558762784534803463746714504071254740675599190756389505586773097366942379114037166236586350388045805960576020721228360861615976204072339779656079825408831290523394199705054438363823687970202120299448792635605062938886332737911240859677356268703892634195595768659481126314070208067502059243083390371050323339967627828948789281406684861164157096013646278805874976337098749807071082219210685061870017775680681292229171367367377481235522483386174154630994790274341951077180228074819877803806034419320506489569248890047991686276085303976643743814025234129706854180168885440573538032619429394865721423561520815037049733243360448944403737200002697418711109013193618608893794205750496505443737043348327908443689342891074521783489319589532747170039111201653797031359507466538022737127112349381994308345530212823465795142950913821990003341221848916655582764393584786795711833838470151783268904385498278581159052907978800793102217492477308512647496142571313956295877121826625689403709849187222584525439472852847639609200426165200636766769245196123026091308993359703894723718425536179353023236658942260272957753050727245010532619567934041785160976764566475136712267637015542118946630284683481433701848544114525516596560752684536927665375377746071984857528108645038458442923136164651990425868038813329645072364665426062720205284953324182668738505947006676870744794458996267314920395790836504790963509249238385726862775077867555473987169135345151625607215965147765404045114907728977124378772062026211795504028835715594164810134841091258475223905288607356153174885080314554014009899338777537413880114732883469081075117295120080730651467027998375609570195078052223477698500546642363642773437155350441441073837025955000043165251744508544160039250592548173368662995019458070334815317615427051000532625923897165005014800015232490718314242259154174792423230830110013467362054418243320786921621897008272900045177937233676206324873132055818487180952799694221380427219809223999404445767066656228518914440527271992835952916052893467864833193615526651711358119130428684379185558815574802495460907367081174652994613074212213334535438171576542098861705176832350309412062635751906801738118110131122489939467286626992048691151279933000648330694694254875381410861267718978529803056588365549937200863992965791829421487751872239658521403531337681300646102694592193201826049462418922065957495748275161481665831339426842357669722760152024340070661496917009713788644189369564986846696916443394624225868531879435553809307282849887931351402369137686560356315459871259870460834503059910493654263768203673351945268870454521176203134891347915417090179604957382052896256258104407852079563046036276226769785789665654060320377557269153472968834428472148591964239772535403668003243008974882748707309365272936228266039131710405518765617408597218059848104327489373758152967119978018803690898867562869442445667786905793039821402048771240729304250692499286865863754270009098346877436307039181763973384224260576187046838808361538526711431959326205004031656654857923843324352009867381571297655230471415940591739379957656441305988097880847831828647990317291344397810554870009994090622376131232649514136528756705581826264457157775759233250227552899758600867359468420620298681304825104593012163854175802649195604895334213494614491343898432905039468363440971652056009890190396711051308652976871536707039767618115635846075929406662116511716328757945171024882344707049549722514989363799228342652623302518109468951131043753587063919547407509809539711346694403058959394066457844897927961583311732624470650486921840714050402341258457180165429186186057327901829164008596908145941529557216422890927897367101783460059173301585434848881609250497130860102578850966791852709441181507252088381095849524979837388231486793319961051451920921903919192488082518500204818056380250878885665576971862862352788626499588955335515959721280238452254573937298411312009264087675363477587546862748586514387242168819489655614669002471125411883014566187086701678337249017261096276517208622152086787695018314717373974114652719900002861716199495847072212034986942648141022055265514590697978252292409479281075978337532137041258786237136623036219643705365781225874163780488816278701618405860052086411612712350660580363286653754815639538167061144905410910697778744184748109460267175969894827415640984261964557399707433290622192790939373871639362404500729568469125803248385971489537945607874203118886356233043307037077362362827061635006341475622536637818142240059853338511830988971429533958459677030812872642494756529958485994704330186935683444928324694052375371426792062777700475814333084432968937705607134818479952232764431852469013989403825323225072315365952194618407349916775040317111371024993597110112915031552913194883106928182820515811682932353443798810203717797146865620160607737494058610107493948449841645603886605586130874043600092283252902243821993217028897995499456680141475461597741964897443250721970259302359409133707821157132105276689189454006889077194808733619057382819715530317943705429364240753489284229863929952185909149477515863377867342563664059345258498846614636525683595619185432100444486207226925270919318916099282604991895049128575773666042135815218367140310564310493532425523284044009308570551763845431157215809990068635274161221966037788309334968059824195865506921163400080664835683449639667074268371032391011090494951844588742407243013621976906166391350966264299576223261902708035990063643643647379846493662677312428649191570217999601756332685212693242851890279802015823063732948576888887004894532611063697645073314913005566052318149790067445328003596931609450991544726253935202803137752749707046838298706299348978668605533449672514026978771887430699962650937352832389392853935069281935443414746905998036030789466626458369962486308069441081326333386404621738871972135384893744930379557238175881644845223573556878562349178822956724711999292318534706926022984194929090097739698825330679622093842013447533115619580592534138289848585553167823120049198733665731030266210530842408111892068385451104883966596256511218095713584110281749795897142488623467470041046641186853750494286383929865088871951249256366415958680395950987541228276683653114864854882543959765807517835978942074816564771188864045034352424875278681763280147247109233640750540632155858644388186466080165604285858970398504834655253693232749018086439211999399920818877898038975906712581294119572490743868704832721638887076683529420276317565728890166558152164188061005248283789954807873258846980359941349134205519016247106321235657951863401248115157250714291901363140148159692723471214841498285483094700246808118770911638652174054177343381445929717266702814498669415364254489003506122191103104792044551013181884721977191088746766139988387631559848201275039232338974612666487544348799229164767031816223874606845196980883557417212555567643828517108082693461872397975510064446489577377443123891255652634431530969947427711937979231181021812721470033273710511972527192427739488863496881559306447612949129703356567880766008778874392023420755937011865281620413129114928185059261757339154358852521058992365296744838428335355169996006739932403173591086621899952223918774672873849356904685582310104354804414248572406200012946319952397440998286258288783240551085838124106088370103120141196870965500627125203961576106602624039410729538080742795219080440423968526413239186178686337024536461975279599879697022269182904220855809750087047317512716010537938212985820998299473502196345593244020178808135264479413721906444158753265802092395426733615466900261033459405800827571993753202331731133998320693399052246186571534807255540038708459314715025682869339238617571987773944095833142284975710263294840911518484677862306067692363888571872038877169920750688502140474894417582166292923965139992501124466640537489710895028668300713615480498048203950650366280306815456545483284479236487271543847914252835981199614769430049575828252293532914648810208908406695081245718673031958620289260759478276128175657330058348021413331142548766869136059240629750177829651036353576819905889908801522792691591243832487362391114506654713295675690360246220551144199162974185580652665756174110281915076259440688474621461753689793226612253585690158824059653218195910597540898157954795327421945670384840329453330510870829961755584338586123113527761472141302924235911512626143248940089587120587007112665799757140287157225739217160657878987264280590433636451210619057656568933057007781742056062782662456533797433629345926250678001425370746067218641383223979243074489920958042870029098282744877484647007430014647165872219693934779494451153362758230425740992444780242006857519129985413903650964198488936948999159763487414636086140945625588833576626609248147312296463982824055577423668240364846001951466605265125356216066321921042571954463043854386046774671343732594608254062361819387980658023815409857444891560998668488039315186920893966747050180934825332023325096381619574023238469991029466314152338658701399814067845113977435233174983558031748479604050494149606856054294602944828444549031937053146411580685877603604678259450841759454584994988655410702532263705558732937810600968953820771689614634208163998417420551964938662898762024550148820737603589734598997531261693377573345337219345958222019982586270024614040175039456124173292907212487017476568028953184203771274050491414652473760829407434039972691017374946386969790948656467195037859284769293634933450575574671424284122496119849586694044425247221574945946339667572941387597258787047720711336178410733839184657701747352362786953030943836605624250158392159685238093022740818103995647070543219558093969189725757998532415035413159890273182478526712434217090638911839893281956639552704828274866955102871361651974634912945551246454290413609024383951880661071453936730726025050451328676706571462945832757922507609055540242049487571671025513667660488192521642660875240753435097704468082486529197363259819018044954145135852416525622542881757362144424018940906223251048254872185578918770564592240178314308750573650517071285623167293758180403767261440737855458261143360317975794171197345093429676699029342805206721655029583174162637180042913432101149659181169886233603988572562773537042682688656964550855342266842062671856317810345097999632756800607008150666590347661767404467304380108654221175362027036674351601171589360660042912111798438082978590444478790822005213165397321949441223584987628577004440166798204548703568364677135145999520293498571935212339430467683154442555276442063398527834315621770245262502840970083394462180668761411202709677873843095703336403081726141382873823451065965496003359789690911529095926924834080618863132642758172215490926624604041521829549652083435370111086837196846257698688574954590736737856929318109325066363218451792118661140850326731905718958516340970741002008570948787959372810059692809340136789122037366702181878308756342926834111603238470169359778594731820393648429995309392601790342198857230075931965647110562449227807673224623783882413030139384735587152589421104656134980914481993107687823172573381608910438075799092511020631359529211047731496015515475858448381820683989222295862905872042015269991596875894778155965287971885882793690002279188510152515763478387784933726288617506308489601577459467522352005688363521540927914429098543836952892065521383254915314373193980846418223290169882778314686364325889153488607715703768402710612084142739021377184833098258138363152933139539961878609797088702997182130650467483684912465766329369458539658294702035394910207453674827174884234342832587751518184405767539186191530129020141853437666649889856086715634225649621132114489758701135163859976610655049827128572028564224841965401888450082494467247618121007163313001069292617076307373022470837695100269630221678515841639142570513263765654140516676016121608474012502110079157630430487575746221026549009046079909129130295885405454305580720920605331411008482580530343253517302302658042480642812154246848334857549245811063281028118042540652139186759274109668313087340854659042680901450976098888315278161982654811958318618542849215724254078006229551123842418552232623234917071035158201492953991552850181712238700030927196646095679734580394133019564235295070542401079998144808763405812258167126963364418158854005942029948842211819216106294073728471735012819728279267905756671407695062753266980875746533702754242179247520870048592127107888492497788923308536083588742936480368965733260347272053790109515207823898758316886807647300959447421641753881359095785306771141901564216057758769514877118656059363646339411922959207446441929074854807292847807396599861954060569584330197678335393368211423877269229993155579280989133631437002145151698292189935824891548603104419241367765230828102547465052607957281680315728290561914135926488025794297748043260734173198341150915607433769006608439614800190113501316951221868294929316342927833379996373279054573330159101395384678655448697169318802526253747135943915597657038080002387011465923332341873705675226834371034635704388573598496941921631929961242038793050760968407460656034070872582500882377700098003968436000879592181757773017973915860393692585917858449788365694157973412814288466329093241425868657566298803234741846282873906097344138994167818335075202270552857283863812043623871549746941928335206796191159864278991663899405923887026003899651479406172010688114767267853746752325167182878175793913571225939490895981525347055324974781133409808588557866768107522604662082824645111180591816272667640063833794543378389706165662074136165660684534810211486111469297314566542733012236839064572801443060616341440468778280520867221998832785536055870206684518538811591911738855526969845990687691175024349843782429487745827577177312048932772819884655066300634569178195459917808050437550086983410932177288229969091563656001239820051508991792044798775936047282872243313113860394198236032056631619788235157505480226049655183291683453845993672352236360821562792244329019101882844362138533866415787152855312447332158847625062395694118775903342585852272461413058627311687686803138375693849250142433284551756416623212812210741540445627173031267922755817126607772142930950824959072359017257618146965192919116988938763922986229848011328116932504817750103975458652613500196758456590266424596061994969861972834263017574702866473563848880583969414206180118197395296801168973904374800751119368293928880913557465099931785318895752669761141925174695315245991534291867655459975954896266780998064745339132537425192764482887452032922271726336383846363912857614758701868877466931568911153942170511659014127929814382823198914034168732957895425635475667641843756099604440060783052282163705233947070853957562098990674182749575805002648183868773716977929119351177853294002781131815656559428291818491112909605179799350491156633626733563980011086307101766202903614693896459811578455789731887423762305871218051913644042640821252041693697617952094992629742954649793391140845275074579718304571843542374007988246787888704233975852734894749782861407565130105465841134710415095896555635372798820867669484333150800733290612497304209295512907060189480764126975707321057278482014532614174646513380913214275010428261961834119903118483331782319896800293643253955481380349396249125726103203284167231082756410247959759326638692516404746381018983308827882579102685743295842776864278061749591187229457868514178493840098967167893155028220075415957269580201337643477609015468978330299915792927043100627889768571723559354051052199408778805751539112924995061098211247856243119605923525172836481299411824240113566391233968231961535414720569943689442488010017003176636489646811689992095878727095377099353991882183351328993335882529823453595150338320596587553532126399456486820681128246121662849515242202806587984173128304585281378553615152051317825048651572590570265544298206850055133313825815100614291071342283202382189308705468418443218213330276804393652776630865168061133137893290568070626104352933677306070060221399550963631399644262743512444721751174096187238362566100948182754562910035261779973097800103059511355526403885027582767637019591599887762966544120541242284476794182963110279997040636226832949821673590113090492864065099667732057017561598431547574463884667638706128456908642480324246334286560660583208837116005664986908311865383813671924019986912611928033556732935762654647353421378246042064707772282956796165484177450643439589958369578536595195158822829448828928559103068815673679773629524656871814982084356607555853156790915978449244733369671510118263012026168899590569249202415636181303919232457946644674740468420399529863217785818376694926420364178424515090843873525861621145327137867396280151522427412237040896307682389959659376125491864903483883147899842347562783794797286177415040513241955887383694527444334453295441198146286282962617573735018948871810478988172796628869521141665849889130102452830263871938011751114417919976326009195205827274293467149672757427682176561480458445453399489525657184637004026026495067051988077604073945173818578132359286715236742654624588839981134109785605873008482788195962382157076301772712193170108461822153170855989652189689338906588989613650794055159265979990125495001005486119128116500370883697360638941416198601710791505804157262268945092498802111117283297766528337099849191383008230577673734548533329305715978880119486582311242712986404076235030962705653410921672394547481940837975250437258467436000219086759055431911559183405905149313619010097577619471969101729244460006764030866121977072809889009799038329952137645404769122659208395274858865987998096254836279471686308073251482363429962156417515866851784199289260034424350393261335719222644042628203007326202275543909029570415922989484928719012387652738484049557299479175273705406045858677622936880023710589141575213727664971321061897687507362200260248377021458668253489673587311980016113612734467165255602312826250473214153407301930451333280117123487324752365142435157136390307321651699158791660086630032314007870711339606471959440346505541547061890218088457128974314474200120147810364918943255564132407425926401458591273129280704110335802630998969833352840097930726952145276608292798680350570050155182237151106005473276312775845304440492735204801677345786405402554822735201478394633431315907808316481953066815954701323989466350124534284630887241341073504048639670676394721868023948157130711437652262997407387305340056864284860043389457945270541286325594521036383148246648195289896656494113602539275454527431351323256935001811752563032583485163640037396802976785302650240693764326726711861896877498702143655648066858442693966339988799058838348037529276176954537691291754491596438163385123978423050017991147116116301778296982372307025482027248567045623445495167794073146134548529445712080330349500009368930962760165646068845191905028458531229234154689069586413250461944825704058281932780118376236148676094231189302098733080358318138063573777292270126227246577213587007710558893455905256260619764872228840876036555105407144846117515393547397121719853423402158650926894998057367192059272661122162656206640389535330598075706311069524941668530097505038867555688844339947005465187190536556099665125430830616872300497522895218475687399883340448379765873630987448893148626656257477995539139663350054476442479877057734485662450010950664126566383902720122854215905092188397670201382524412186936977524731556716296863433966381844499416243874495338896144776142026944260085958152409924232281870928175528215966410262179796252030177812957620915997855194166452663702877364236197343945275098939479524385712529339668677307698784826481827499529626190187421559755082595072311031578251794928179422877482828561107191395070457768899461304880509559252776573206767561324413791744256789869638926987772665634142840723074403670159743673066228551306088609196996491086611568188842643788120117372266431193250938183234942656671806262664089105876378521418018802015437266518481632836860194838858027346200485256878689865597769533453412879142195673926338446565900690053785444971375186818705604809519308600862654607550494084642602213114918353855427298742957380506536375498804592191628269754275853588319371211235874560737252469044157400959065452483556173912124576983465985387000951973950060630708470096111757165532314666683365401198877027293425843275118438866693146521547410087970212918994306080166211845076683599037536254390216452504590429169333829783370199971625208715560906177340076596922940424263207189180996593070976084642792807242551388938665869544698037850672848827467130760382400751971132130656397890559734317651370699238769668677766534815517053507357206421834078266565063195450123846108154452592468434274988009099143998817071923854891186455172085160120905462248257319476468037377975070079835144337567782994196536109171939819258423774838978953778207667022617778968883723522168018042074519291909497719164033748896088049348949808549704031966874075775592033763716794773904694785394125137728887208328799012350954276895230854532539366531952598129374751809363612456763842160443188556669324640228137261219425642804694200047676278010278605774924671289748401339037743779305131677438523639506107760734698279008549288406733729779285126134580169297109904198682629525888936052061734018976194815807277040056379092906301822648746617572746718463459886532161973600258438936308119024193070171352613595442129329973811418104380943251199054645043683919225231548629107446116075598882825470416497320427176082501025452222796130421826057315562608847636231516119189587456059702825920032444859651152459020202296284280062914129100569508830243594613761392145774009810382625192161183592917564865933282431332182022163722608104033278488464924126099530364717469915186093106361165162244988403770906561663239675898504862455133513847401899664433945118174219962158274361039566933974460114414641515176671105847723983521026130990750834018777686390137685994947590889829160523523632059976743828202593862358950195100123603974019599748061307230099139465938466225547752467657897424677406541204196404330071888955973150075791736144451849251329184995913646001978100668476333732233744704678847650308807258376051774481534931637712672466485273605621752755089958666152514791206480814778264580529778179398892125750764671863095229533535062121775531200114207094008783553357450124411808081683563800528898905967681656551782000524409636314975724317228488981775135976461619068657536205126189926595478431042959131673509954552944733030570789707673692880566292960437179040873279347462436116556726397782964484645428695960945583251426677911407485276308646354709868696070610828935243841240490076983971612210373320718795443277859342787349251853063576693525170054116511907037792739587228283642679473313822532096430712118600515950099959416629206347091000755026548023391217261063881742134293940369760677073955648596532605552388390232473069645722526631828821764744459987811454508622032862201676623820392261998933960893478368822629483714969547984983348048736307219888559820327585212254127536167175755016396514867564876361508920678708623148495231821733259789497415354598632997948608985921229945549172083046955896603517120861170963275553975300631943125297230576368462359735344346790399901378852851326767238176897214586079559929291302571737343556207416866542068436838847185952473165827908972266695800698965486086426335035716773973665864435268944422416078202258358077993401528964025612257140352779787347952785577524690268854760309603673602984124602957064978442613762953370594749463623334930544210717227825804849877167882823206508169671351226110589074212158157278132858835449012973663669529818486960366009421109952300172172453440396975607544970759661102817408662207212848547333243729456332385408443544002929216313453261884190557125219642407765805937561133162868416269525794980548933225703935720771000813460904570775586294926637776058336183861406340214560468674745889305379555810957718273980881795494241852357067005554635346442636935360678831513804234446964184165775306352359859665121073025589767958165307885078679597201695975795736644538295313658896666855062748181521993696390444935227538416452529397274988178142268564558966566646600001257006970200574898436879687475753138889972648169337592675092697467286068859808276868732879237465420759251776258910802314022182108444067583442031736402413429855638723401580450710250079535797545454461346979442208123996035298841331067937264475710275609135113513422481957190150879155060257633423427775753354365465952518783719180523568998493064934051064685115500784144282004650720065422824809010316865480956040343876340097820126474902850810461947225455613788924444109782720158331073034955725533819920105763368051623958956721048366666087090040265939244037170519300691519384159168794879064367856057118629642142022840353753899074135603451794320542630928300793599285405817549357700219182906274863387204866192926163770925248431887559597499953281865711707715326430778698091131087084884756686564489413338357542785008301034854219928908373718979161514674531875620528597010161397416284866799047167975619613316387041782626313527541019935263276157323360313944058661087312374451087974607557666617475429843877991180608936686081832613578494568666897829177000233754062294904258060490774418765579013752229273687236324687374999509246179697176160335330427657885046876582992044373186023232887882038677337785698210929789431608963563273808815321990566967445116806052733421658098727379538172535572394502855343427164152231995852235022050032254045742887532015205361857053121049542678311929059570148670950770561698248200171674556685997174749100393388680609113076250472717641481623620768217553049790698359829190648009598743551109466976713977392046714672788622757462416118312527151793449850743966831417029983205824327637766188507550395371540346575927131847811666365326589443797616666206322135989054816016472466853499915000454890163253933641984207973336941858014230608067524727901945996225970056102757923880467085504404400381797540972140465710115786843026565774348654351321796641668470135483228129505910155526554929849719228500668576240024147621570998154204167659368571067849430466072294434762717633348824892014166068895408733490309528317717295787105840130192624104811560844551482302494126992799989737507332709943253668199453414933416619010621844086068245778877110538340730709707777078807304644914516371479225163283840286086685401613809599361775443694010028156888013612705877556705447161405765998877017782449474890666495334843305480545094556213832401018294273152202628081172134608513805455762973279314875088608773653737106229252159972138014529082950498621733749123091317987621635728191719587327422626939160633781072427348197557810588103297905944986354634278818579501092465213036092991030498443101162439355360294896232064360451682298638237960462851301213086048480128396546139509053542178397023401329131227326065052364219066080149774866531796809321340898943529943043571562361168624489927115137376591482702275018079323999628066260152526346348560511099563543369484857800090692239132632035187274242594429828319002998172339110466013857007530632888187737645691152004955522672116820050632992986546713291002552781150318913959533191907177722673232402492784128637841402986558217713943217002578692276915748076363619645559876181734399735464708223253173089850003667953637423553574738514840891627409363008294023213724460571962556336726511243029045979929687492871128959634999449453143996108977116153648202211514276567958124831302565031403744897935818825016046261054493230459291064169783104789501384481178297650136190049993005411955416358662250314948152304281675610453681406012188277413303466967832647410713797943585269283833133809043021000641549197044083226813998174481795606745881743976544065304901011317582310535205724475974068484660374448934701539475392350276417543718056072091035537450978988105471732695430847702037467128984598792431236111061434385785652448999841291878766487300898316820569935120893745078511518946263112936276602952770361549749443443096510683857323731861638959446768611035619957886134826780095890104625485132626771566603504140010050564892342760850103334715929447698713331404757378665688388828831735328849853209526417336390281524324016254141852897656949338908923570733144489229553718140790383041885249316825177092211516848235862496811083720772708117809485990121803385516258605545501702563673103693019040826448591358066164454057162477619740128998827254453431610380688095090619737797544366055189271075246812482294352938871668434964911256271296948537087412284027585704945996742394484517619103938478130979110906460604128674163130953484860092889883863938473181957623541842425935871955856274852502107107159075938460418423758631861186319039129606077970234175626374860413481815324694079956179815384830748507757098966536224287031214227106179199694097097085150978527719316393401199364146026473504849481974859115079421730573988938781014391947003592359497841521259724889481083102320925803109118203219491840431287779694227195481970310756421363595990465571644761170594467714305101085947283161564263895626039267142839519874244156037804659554654152389085831697873587016733235458555643290541898186088847448537779219545411715660216194149569936109975428198128272539738404209703493659141945388767104648325670512988460112122406369162743635813257458433242033874450527663983161397489683588590911907353015304322145773724982341970497561760188890645605155978512287448753378761495778588987116492454091338340370796687668668421817333670009849301467262600794437025390279807010212796796315927600466043923609141127675534722851724303163240219642513705120482130204645199170941984676456881159797861187934066507813043158635826501188667552442424419733701573103964611525939422401319116713601952174961981473759472878361427034132938764417599920413103720472747844266911544758680704671139884345551086786303756735127905096759950591789085709626329117273527781110607789720250164750113720996163384940155777786571162016081054715535331202950847152846440430345060859520303386009555028857621548649839441840370012682801860641601226555347250360401187670812282580963636180075393139674626344882097348168710883800947101793028056371635152558710253134908587035594382001637305535376348101099421893913991204712347222723754740140674648352334867154755279366149898873460803068659198046343192280138489514174575551271154122319372901460408415726917908837571125423159988780662563597344307741333122152203350780377945226727524377387623957712612708630907580763072850082743959504648978940476722566880853558784632181251001753560911020957290314982810495203610942791329220203324832761825142241533569973775818967750544273782077151046816075479715091334696672020696925172547268693511086657160663155315082961978561171484858251317609421833379541711681939387543288446002604680685399556086663514003424335208864721215671918335629669403219601891505110976229526667913265203170763679814492960905341879952055276733276855394447714793054799355900247632278443811168319067358830706580496566975138558661343505076556109929664337164895036712303184566379733228623818595885506440068330506547373917547213826478692694871759263248000062808627483173542128824461587890324898028417516054401811390328439028829148726977136310620158611816566223994766245993640904967391537625497564806783897576363026764912804465692027504886509375588348882134642536649207793638534510722117674283594234789622953236323349391075987341138619129314897531041696924642667972389991229787607629103829443351564175268661084508710596358812560747694265388201498894710551930736436669217271808986046698036075892452598522976433637658683531358592408853427734402320444944191090478164907775861396266337504791329884860084301980741077136522949356374342106628566040923178026591955882087315031754509044688436539315652853586120864650637570107461091775786070217349234865929319315828912281633446433194031530267199641344043586526080901418040423429966461472421443295392830722001548263414795838484960466093904267595613024975929222255999486670387665904704545890631381304124857815705737919102950806672384619055099403672902287016326991917962518559944564871545553301553809076486135036183843922071124384512609588109902101494342265133147574436803578872907780170679391315868124034348106529396826431911556668895671790945636850643121989941169446885269797516557825126747643413235880231768668242775135186637520598322822792670919593453853463404543930847305724240971019577388228801920507648989296912733611012503486384542993168247172242611143917363063913411874309913848526872985109736954425853432044887403720947561957277857795532017548928091398379117870829858957194551535565965280141611337909094566141541796401703670939768215852588308072130690761461014303858393671183402325168706124939703205660633380618684808594645030994427825219846373330097655483030400067737608612960278921591374143121244905040231651991785617647402367762817913526686182766552741371950296851254716065699411774884980609272934235448464952778266326024896567775499692048790882243305208295789713437758169685129751739634388528074910115339043590619836992206185631980907812549482658279514816744929583874664809927684957798818754687738407607511398429827041764716511601706574962991679687035666598340122923198458090589414870917372750946099466495327953952884114309835468944551583177766560956120174122032747511017119567246222520378332450244193203973766435312689846854717486566278452961820932141301823337163442297000990478723190774073343971321209897756070359956880499316703371621277411695260337696703680161593363936989304934941626590026600825870611529355789434123700497139635264951628155517870366243556697218693509373915772739661999015837216627371702605716158572102502486496322489861829268663945207172696741175780124232628837031325806847199740609493215164737971841971638934590868316274291598092729781360262300722243850492237552917309163802202124974491799079540395031774481313477739511145499509182921184195628053959285581953894999776452484448987378269692338186181696957850542722179557334090183825744171375726550108932425526282634369693389751309086904419755998414085936613204486537432323889119806415589084054006278228715891175810706328486550305731101662085800000505222789843336949914102003300928358007388852620739234054586611401888448881349457943300144021714367357999457708983333232621873749160218322143473212017218474560488185547767585027486011355429336342127535725917358413215473771817805705223357439520319623416147914914100404480369369254936149973757860983262721180571235189863267467088147705190785805788852252412030541362715164852017053375154490626331385005986847265630897166100179845059133898879942952156125912043811770352649462821047447414643358241611348544602542284214231330928456537096834122971666209322686530175337569904980034904369281123670546121760433367147618788413587140228157256823629117820574637749984498764106211937745729326990780314417384104889421519744704868153297591290153994395446352906524802965151988324646151876393674656120116026633552566207956420472297441842091708099794507566484438305701742656734669765830099011095685629962245428412217895095292796374837062765785589359481696629637661466337722074854316591382203439983007803669895516712505883617813013322385325027305564897463466205262797204241861966484346382889404742748277604639938139924890063051706426287030072716505218495787131458979465159513073381687197737151989995374532972853465276589635605181599895917937915545910108086553063118653064430051707943105482964651455439539287011321573038748453468005273555469492688006772985899816381560858754741160502289275304399554764329941969731943189635429565458455215645924061592807014380437818477811984709958732964867181425778657625091449733525400764370046348667791496089039936607175321683549243238292190174461512214629038552479491169176628791321863577509452642161691935181909734575935040444343038010769417949617534786773763666477969026596685790838591583118224640550843175866443083041751835012262927921679296948067877429374269255035239121582808702253945247895212276539938336458728920784547760981187253245154702999969980229836796292575047299270744688954785232890716785639365615964794290044721864670935187493122200366652573161854316863534717686320484607032435469545259655051907004796536417517333473944686188738165593819061414188851361217368217656452975715963330742405557188726868603821389848719272290271101869484528977702639378450052372943863309536062464200911101829551754782979567404326633166094676757294008054756745253710940669242504183383175937033736805826324278133909007950133155171129686027618743117744590213047069225015420609523943867571944665420799843218110517080077043510684314429881859914408102303802546127588585522651334570611458290334357900474262675982613646067035752301314152584871891217859657198931050423946730511398754109738989533505692056144140284502489987587105850894067283261001713689132014197952658566460005259600886030625939142409171839469783760845369477747978265162347950750277057599319339469020660377643999988347396420575923764153404286642075034646582197849232447714486681906350441171803013667120751715958800761781472958335127624351048120145354002025683352341222390261999677020270102029923077461088517654375366326597252675114238786910487161974701932875693864632602038334235713545120415420930260722183084809583069927656616772239942800195420491876469991013029739133048012744663787816125310923755506122467227819215605770272604043909981336823802095795932677055319892747093836413298938022195009052885419083781092754080034468578448370176266899811102073596385054610621539174185136799510093771915745335195291227002292437073619562679816733276931346939948484376578195133201406684950037456490667389980650122952642473720544631474960116219377209064755435240915504314987229490880612893556426874958082630595886188193022782955235819319773665387384307490362203249248055881453340848968698298871063818035159882974873804814463176988462314913232840703469225037074135942731515268498902345996449610389989865750392189521654141689012780848741619844493313226882116230543999412987595164103993387365917140844551983801246017416874910246351692879111083529121875962481388282313791455441432609620350901200710041569450346569168240595796592632202734707878130526950993758678268851039371810354913364313133146682656898225056836434985823428608949314316935106715975581117880247890958440676520954095306806210613365531083740659711642209705061322870990210292777248290491627441832931282613932809115061607635281270083567580986189115666144147323510661478735817970283853545059026901692352417891998225441437530716211434741711100092255576057238464219947111207765951792034749990562380116842918639709582976369866957014907113550029371145610146638314796732605689101302761210762489039943380175829772263545773484688156268084710723918469049043855363005962539263986982203015680632370301137749685334690639593053113567002429504428363055686876905157099164210606691711712016048894102638093159063480998453491304303226760571867855203744010771391112359910600939183494981407687108074696277885263796277022422145121545008559865931165133796137217980625328533724483358165950323970719649798652852635486979474446535300985074247828152870301956989625259858382415956975971317693489160364784733622036520112087127102146606041157255135958804401623766404017218755333830250222167843330285123529401790466936875330521096713722571670230558128469228738566185586764029246465513994833332521054162730628987612379280106910541295763810016374039228480837782490035725527801864895244803318408834193764794724259473151671072494046428020986539332779748003571566447011943098472567039728480086478149848210697141166304181328122226629671054062477969359480805059122570263653317377724132449179992518453229008221215710848670485848316614897074951263982897912439950725744091442917602813732577707239682482959230362068944716862656969123257448078412980401378087478534327068708085629131110430077703253280711813911416721156103050815732609893255841818904817743708816763875056585575241905123101919868782347737659786222607617631968962568989691747998527373149092853726554232096865591403203043733973147275008717938393364431256081060871890663085959157014003678003307075502023421711836899924109802638900940164892120918526715285012539507177756896451248974591691977203034409422664970648024862094235086419993119824459263817430488821105441625424735920269948492997123176703932451717603166103623820249579727158044692625843984279347105190609105440869865685603811441123446042855517122024306308905143258422708169189084688496457842902894576586061974573361937201482868946211539946559937143975165956935652124879616761013289001012486121724564384539431658812102674267066696347765414125176120782349903029393587545205206956284183108463872632514342639765393092128909185936253182203675560166692097873688178018672308052910303473817587241048303950561807164698191726781586343859557722260241384506545065232322237663200888167167587230563570064730576218963265484324998802935105222713728943069380102973577164372572707892221485825450462419405986747764441857268763978123068733663745613032520028735385140667894710623398219817519118803464572178181268954967988992227234470660506209254278466418679635764257615613118234216758826480189686543903746228559666431345908960334742298267655409720239612503112317200708405474224515685200903019446472746968344377731367804490388164382141030619979170060278531390265513084673917185491308845479315100128474812441382538440902365675914327841172170903054391177620300920810423168185142264182320517195330890723003272768421009252163439970219522510560732340278054250523687849822048937430092614041349926497616348220869471305805726329770675478866256727354750087802721781377336246362878678525634858340010092424918161736000051616602112612825596147039285127580702389035840775515622912453538886487573737798568752596803167412489694833874708242758684400874593652983955009526095380763479162694225774364212056496862839832349516202409964032295859109998773141885737067943184671480702438449035100138445108610908149043724896407882525205700369392707990892904902414178668114441663247483107070367048898234213589365508705514572157665045089106279464116275425839528735586043373607618106158779318565549610608288706715568804803321155118496968403564316048180217355977760564093187876840651998416708055034660848448941650329732800287802535669552585787301206446563447161233871510618974312951399876894711287267311334762853602367230123846862661741616204525726296174763501488860447415388608345074846287951073278153889014400456379227836774857583073367731400309805363919276222143372946617561860795575464149746849612277172778337670761579206956104576245209055977493811834592614040425172807631151927409766417058334515665013435084269421026363163059595636464928584739193485218196847854180688315366487907459262396924094633606337238891115725409602165923140478425931829960112099868577118844662737640919454682324375970569251550199974614185135314979741682714457079283064740386050188687193847795912692396158783378881059190273559904035227913196728226070067776813793635053236829456634653631729153000607965165598941575006139800080349263476615796561943827201020418703740143579130307614802599622509729762387515479434939382996555054173127325928137180065230906855397183703151705450193348898201510536955643105126601258256400167112545397529887315117333490155837970259278472590672083534735823251892298216201343442759373130193096805246403354651469136692063400744058178503239391745369351136520144491646290633623953113406727610878703243333133336509566301661273557605634852618050799341026845588560958373128902012848858248493038086045731187097119547362344322531753676700473931041040750654758667959442462799933634880669717726402049473148070707542847725316610823147617363012301816942374450207097090767931756840324969194169575509256327905167779846303533548854103950015445721305477546925242811472786691327321686045791226377082383793378822037304993339275795652152721205538252499183819349486459901532986467059587961694239326052438478331791715010679055404621258303897446720420653304268790810622361413607096622296443459469981649408749763868422213163134106977327540574661087828392266399915352178411976307936178077848879584616323105684668745293742818539215753123118094107319093650866884732203440249445884078581718091793525868141859531002166095800333983179300323219151224761825700772469520243128698030225616504949546448123603456220083998224338172331435661561929958295546769920512846460832002395211935121839939422919509445425646813043801690185607196904266172384423353931109254225782176507118940886610666762540195925601845134822415875014319787516996742714674793901244327377996137024597886629486870158437703468388936097953268781675847171862376855669222610617247130357929536846219076322632986590374184088082515072685870133227358900453144842522663314705665557084588702014204525931262813306913002278284914007964224729825277346109286663037750187812376314636236162214696136267533220997958061753658868402485146357662325723019100272793673616074505548270715767800143124761828203011760204626202912618404472438177377598380025350529401529837379210015684884212895938631889418860487461346103891816860812142333824338489839477543402932999590615303399252947937221792910484205075853100204427142286360139251459915054597975722000987883934747960368239132826819188515100215355141241552617556514070163289643896484533889934473490843260509677451377118172266765675415963885502761988359954586596416283083010947567496974018921257655324385757621609593637603281604664522404271443853710764570785437799550788154645965657303084789258027651442650875380691288254281502187335222562293952100028894453736014447397665748921786681586366893949866315144669491445959737745166257495866762166684322798614714192215484768686195190456403256833849466082785429708990537128266468771708061278464510786127486994757077121915975615524244712258196698545469966475412198474808159786944536311907004471527608333436126172066024482726013309953754001382941755876530405571687530836968712888747519140276487224005798839495695973064248096302799676856780850010029417741524441867698917827881144339178179142069543750469047227202462299405149286642745174505369389936570691217332693434826716471910348585624220550191198296998842042098821540089970474753983597102469053518183148859157443071631301979103784083557038882183455302172229926800732728673973882314365478220547334239223562854124844834926901921689324154994045200821170192102776156457748530972724666416020452031625884572355281472042168070968432213228337284997098376141306974388736627267443184161246486993108736793969804733081079471296193867731008478073149534182247899400518069628781049074803139854234032360029839593210577167733731008698731407933055552470954876735221935613286131111530145600472723273600816755395927192867191419295932375762927482646471740245891592535353472781868187014415375319855168473933114654643665288387821889125755743005215091049354799429852443255403252408063271534896937100352871905066100800633890355009593568972993130788141828004037469660573019070214446781648460931433300671518743714997196431252028438125594443390890228979429250519087858770863994659928057797982590855174114055313026116697434776518692224901569726914250518541254129532121197991193111014200273135994024221235584130184789273766450913037490563840321432289844946508622008748762871796282440145796185742931486921693006064839173448404300902932317460341931315928150154865028991464679043040474081345062236939409827460024891140823297074087666933866677502305331052672110486044806785738414357477133937407352148100000963785621014087918121246511460953000808746990645139117062126456488129477299190190629434675349732559356974550462570178970451851028384531047381597173375895206085597837886903648494497191989446340106865315580388269844966611673586085046576217932513296100814728499516684484938783367966588989087700675229630116491642328154700725871603888057391976087873369716335350143426116476770022259184266641571785722772004764181513590995020499503677081704502963893995171822990292448488895893617443505895225194156958186296032980875617475621479937304701471809839802760006433459804968413896357430788792333095749879269642411481444707047650048143276607214569943140788008117676507794991541686100638940482603143507022427397145816097867600029249328868121987124310079263943843906645943106202634658888252774231375278506454608111382427008388418744404774734187857539760998949402435898965233942383465338323424683805788457534791663840860011295206288761065970127702853063180678895616198597902080653520352418625684708579601892686559013611365608530431245063285274364198124245456493777487596010746043198219642529605393557437528967187037602113290762501121573288645447726331427835029227136420046450026931343551655711252740416718942727833754231175496210307634207535630773076447112144008003874804412674367242913391903414086473017563090961175380374076654091154094197692962712000262114343954941934085683136274480546769292221546710423409490781569069655875630631582531997431382574435421522539983923477390720590448216663317471221566179431603714167133643453338250285337454287965447873963804971672167406693542176955011044125935483021305989179534998506957438953136887123414138769555026415570015179028059535812543125942076345260596577613046434591209070436046599241582578573616068194399823813314457536634759615273632996910708489920454985453865669611836428900704754413079410385614520905294069574776558430581003713992723642490228982889412601905370618128291024219196468077961418183763412454380574304889510381803864609783733678136718600409826150526601880303555472259692678171830537490931932461259337736347178752156485502874450485204187856189128441134668810144875234219166475780876806472352200574745379588744018807612125366717384467629760351684536397887935886979894702105750931845751462843848457154823638476745739847747624905857906872046528727355511618524910127773272266438299664908937915001684277508587365873545011908385853240556341656472172841215809189838268924105461176379878829117238767963753704951190659280600999536893160949784092035454319896984519728413611011838233208471837386502333587157491428536412629460451664296776006329582826945304709341119264163431158280223513936033685550843264247141142362358346012947708738274161847356045814994837150332211971152548580573833620873235399255614098211943494534066784758866049433150569092295056213564371339408245612677161705759412493749516191483359701864732917307431007732622679578487700032930859083922139297547474808724981535023344564812642075137110752270709500015438405847271341353335088222111607876960708073848596734735229145250415331188181471821931238830469950144143566413596253258565428751185748299958126964782035694442264196711634272764060487464028030790783641555029892126250790003193694274409624117331837347186676379082984329227434822121793460378413447805752851136814479406266893187681143225831561269806771160426200828168498689495594655341618283389395643394125471670809960321609787899315006094871345268422524032747498299984209148498088498290054226715353510608242899061691305595165452729639313477355061602491102044233578360424771858817053779761520732449544794098128883426845561314537028773096269533020514586349646728011687330212650191767278422590449392128768517617314287193172092876195520818150313398672818420889513835993834858243754008732136472218883254357374706898848908652022411776041600698484792908127090755249624520720333410388042733854970426955616593991684895489656360032502026820680564421496721939236863170636430607531600997926164192948830591423082649827753665548223396094118720449420087219550863410630286777574882872660579774388236147772980367272437683534484741586231783755546451688975302535325473704129781661901360183349342300973902119726936682991972081613546481073870869307379085722373383282096581182094057593433492312622516263359804533287128549415791272704098520667568926016872175144490209709970795487505574059578607652113004043275163185194684414838512363495345375662197195188330123114209956588864322428398923662005612309127132651387841456163262028800586108768565520872922647695701319463280377268036249021584936406406247946173226791914858863772827427159001366328479383379492434225414688401331997221852022581922783815622805015289124380827258582632721403916394202820486739698110929792349206639201501965049471146463952340626868451972880051122249817883186438079822960008876146373363622584364713672660656483650505647473303674158468815674645169998844556085420480198511375898408490542304057119770605035608412116226440690122264881855280911884477019003772901968092962520698266065696343712257082096927733417431374622597606255481362296856581861030969118640839085363935864894877603186404271706623566591925352037869682727183642281222807921770587426403278075030489027792115375419378383573829358767210322375718161256669061248735554975998950107427044774520640907821544899389448324338198108487829354567003742182566552568433948091042524634035762959358973013810216009885191089359068223920564076973560830831715856585403234979213336473455079802095129040087293572671613535665040456787375409911992734741167014987619598249138854704288057045103300486727856576882176396119953779396682967842480124707633272898489774243011709669319629866514575944984376721262862728287315775710140460839556588676398171844202276942761876053567135372766871784201434434511855070530715069220134587289178297806338007379813618089665788852258030191694749978787401191066590319489821543489711904790190607014618998765953350587113645479017779955101678629425547620193918285654571228298806732672396863396286240562351499225895006600512606752813374679028776406707406976664960447306282104988321821083136029115312389743885371329151214438753736862756090262956189892504777456812605862169186374896842260589029437734477966097346700996065769874789053184935249997827667734574318004194210800646422481521752086603221707595982615581037054539957838038825524952837408853627584938120767919687165021910094862614787125579629627602289900050449567144964910549335343361929693987657403290591287481915896265672443231667826037634519123372888288485634874419978328189639793955353790568788327919763970268954489721457781902836112518882681234664919636707376317565140685143663582138800978711016399936603527905295239327251196445728844307199655969118871650886140723148228235483362275555774896930529337478946690249227726557192355092450331740998244319613195315083826630686670284403066985716414032539944333859845316215314898780427138841864220204507182665424958627681553576949691425184493840481246611257521101688007036565658087522497069949828643201044527117615476450541112763605728084333454505534712428719343924652189794397983648704285211108848563320066849533828034505625920556034594889794807994980564371221800402436128210946144193605606650550995627135869181168282135609853213161472659427832695968107080128530954169782804843105689403862994849769763364717348135064916683527959081772428174042482165341586840845864668886910795745086824819163544724142205744039828141025095121753899001638196415402999189187060667845852863408063464728965354405124115859494610352812702876424012445603088301585966979053362954455081560718468405483938250792805134253340834190281542639761002472291747022937128787643581162741042559286334149241753573961790180394220275098914512517900948038142336828399721760589415187770635917800798222052581486087681434755804590263882229583659972714335633556824432715891276950365123408728056481495945078118163865528469471969166982182318040752081989301969224052236100605919376059163352555402530769187658867495189718405186901207610807667196710811205189025925540803910891683544332254115399168068031553575559763288882743787234702509351321597792669687974971716760239165126603400352126561786213873106604114633026435809194310937148918588471724771440440897600248292392577285101550106474058898393072994632019708522620627667378045915752699185701623570482781404995517698112532003189073295900455921529393916921256274664528382822742176331774585616143953491963263059226295460652020141557032057881648144368012238127969850322716726001999597187367262875197774269968556829983490458642150437078347817840802327870773449090401399139320319504434075876486072139311769934434141816179305074120757725563119408787799049879635763333732225550959643688718538915935873640878926876582684103841804401198022055649697889616555905851940115064856597467842608594147681204433739763474699460295722246824268361544045279867494930859395198934606352490365385959670884345777093778661818964393454169596347240387159801400791211475985380170967227171188163100477525499870923532335259320751412189712884520041824731956814586992586673752260890830171617681323390737623506165464962214601409789408884197350181440175778997827288151741225209708103210534580137370947814322994045013676734641946285663293598844467598219618930121826629061349173895493645910664627559355195486762091221621280370177019722750067173670921661100673040336893235198972616483842494987991891153171094606060455179886663383524583400519707731847353011174860554115058838096856840638477056298152214380373705175512574622612422711700609316832248166271260295764625680677183424618532320163988626130534271281185050464825833802356735496168410910783826528769490677283446284360054329506796160262670062833484313578109489224512181269673476157995873538174472905570571186454995674623693460273016841682105950511796077424315945758943736692125569065446983608580729792512163963179507256057349513410770842615983493857845057151176994390304665666344916370875821119472554210503404316428148367084758579831587310947198457145522430133806209404822355116901968307770553932716937021444770235253014624321471414202342077610816060749224508492458911270915960485025891566175361513753221663963350373682613511299482865811709424570647396370750431396136497487301162048817831972204969078386969453610447385425347361210310994385814306530440961393871008693532060469733536692332475626096771718329397757379882073956356207192238464525983864540504582463107749865091953820065335275219438555162689700260523986943779231090695856364152022899199142987115024160831178800691387172078750439104602286491323521234010820996438714523506278524822573650551683488749152662823837600595845447534707934883788467547362711712592266049173255984436234587273245741267018062760628990055969684341727908956849267548234817400939315259696094040683739224723040566995453486736030194636112293976337067057770636489711383362213424530763695593927591722855122144616588237035119177099046732026920799063866963321605890115493347678590566260459449623475366236548852932636501905677422953443721056126625435256914181767963129823683010627394902648435269503249631564078831743947522231925208876495244310102111418068859025763632791864298145013394536235237567027037752203332948400933881164486383120581353519638793090615386672847470356290508286231904606443590615211632975592441875502334076943302810136494439975287289554827744831431694395555584318779399717240076665936752055507606632307983975832816288070569127778764902854258825481486268127022344505504016666930607349550597504555313280976979474684622325120842514731118996098092166552708684447822170672568135686456300914836179053460966318902078376997121497828725934000246042017654537927855629335056083193870540263832925783087393562474972879774750116938805951834196708477502830407336200529025910918652942344348805128577376188473307197520936349039566911876138635935181945484332699075575759358128758924137924308669013159198951369896701063368408038035660452250326276078130923534385822860537333757399836901848779198847226528943450327182457161215615791382050564014021940972216430604453033860150157084618666787995833352437974052526218683368417946120013404836353833269128882332059696331169538607946450670519661083495730750716874306370842660590142443605887353607868293011982385165676226606166669054680472630108529532666976409124841892771337215001523921642184031014851345180916776590582462475822063619857873024514146210921786298919029743229431061707532835208232347311217194193215381486335100817041099411954640343536402367334716767002385052638802124826017962147110649410288351962403130656058814437538315019550345753253630835765300280137499241381401163483264617673845320425328391180251452923639813039417333215432473990589130562974974211132487029968742808248587339062150537742633278043622989300850558803069648609226147386940690033174568821497984531037442043695217177327886909886321156355399250675302557428143763731422079320991494213426581204586284532949647599951021796988296023911354954776775297729022527571792944456552882125657548463232739407600065280340006901237141855612142144713061934898308133954401448306814124851957213220189235201791102340089091504131563414913433157975855517242608061183227211314544553117809045953642337522065651156461425872383243823797222391292787929461346624725296243365929366380876388480274674484419421791530504644288671004270513948201298563308600747479178316181303453295223238687963053438305117534652978302566676105347167532867725124460484110086952503752051675358663724162379999881785334803971219170465735263845463477575906375903007980153859144370328027236654589062452753559595162561173321426553949022411508945314720211683126752579734172926751399252121128169211235527621674973514355979370915149748510957918412360384408899070895325044988031211412785712642979673935598866772940667721856577455886690716123959697128558158737373721815577556423233235793918352736384466458818840057385738609618009175771831435368272262472965740112051473630902584795539347428801874851063758017675974267594068752771352574438471855713570121040703698765036292643945891867132308602338326918515469808180321005561680128918859709973294282503571980088736946876247751707621725150508005713060917520987558325095530796027210701843789866620985022181804060421871610598224962041603783806272746253901612101837964060882266334988377134096151149106633470025358289847320161699437309602902162980976492383162068553475769325433338387364442802851956543292514048367386536984853552294080487506092152096542415199090651806124642226534748265525491623089959928092698829686900035247466918476217225611427993870529583619983697678572932323234901672543082554908583507835219900810460421140743126288641098775114100600485576165984098130425392697682080685662309130563464597752451652100389362870084293040625571478736245776134432327891659269381714312495336832496066396329684971630077717821083755993368117937170537980164522735137189582487758429592775819252463412516962854752907420455725557604406599884624421238089042049107568411361957772882443137405448592958296432816666885116006763965632356433986670791147202335713329684020999689530047481053481789296611137792312654956610970574712080841430814441509852906710803553143033564165037684526060889183246529767650856421829489631720671004361295354734322392224579086569483931656100316781862676003075679837935310577836703507160568911758126279451531601233693560832577244155336265705362591514189602943003846628587257799949729144258336548012357906101295874748694656732686122174069058298587989640318074577562517586790502268166548852614731720973351917069827937586820329769903003403251529551465558543766588616936840272308503930329504881528544037505203115862547837366716683732870858815607318990563304137584524585097622941796421078880858208373238176719351214999460164604350912342614094322402977929120759030901443643695807466932327480035700409737549118795041454534210945399805077751894189982207891353336453719033135102103444388994670793053258093813469132625554285866073934103590642882499359505239388045689347547175976286907297840829877800857922173693030302836421247154581897651786792669384015456612486094178742146750989352596552975755201984893447783209867046785650609698464139145804436669523615839378801281945047641251396437081026675789599569246573222815630439292546262847287530586206932068973268339056134935666890352384287224932030864338796287388372673108041690477882553248583976682822272368437423450683959935800861070294158845974656435954874773202552366967527465644235794652487351613819449142686413539555847294519683699033641088829537384544480103826611771443648930438723503001147695296968218254595302261806920531446227114400032938404386296431989933957471964870530245583608110396098954799275169426938992578999318911139287516580896710496120774081134480171541460244132191617952011268515835641836137882829321821160024159151070901272266099433794698402585886342441049370000901191372272793291793097603836654618451518548653744712011523479560132784851016274348473538653413420139106836691186288401136041917494416461983659390565509028820793683748550143821589340056395936153399984279713400007471275642442709840176801240544077731441235143697966298774126121360778805688913208836778221349311836513506864687510505717577455025442382869715086233252701766458132005061317398128051299594776728742336345922778672515060093134374094109870028080924646927487253221703779824664147703216238857794599036455128550789274729086784666895672025376911165564549591731397187867307274105014342710191214622367087685879350855662167562427123571249119419359991883395798622802284717788409549271241987607757365186765142899810240829937229710736870955980699277815385262084503290740206462260976814067047140415258963783138463689146248895535831950511695747183886307450316888712738014129803359784781591872957677012851476606135396462307049297433732229542796031802892045527735277688824457827278593130411782818024227243852200701968259328504272329370226227492996606437855476990338618053834550029323202276036548854203280046025743358275632593733352441973734552592492091242550334084127014539071428740082171358817345505447590358477359029725471780827311522715438809970390548650541731601461805452246748895394264031449216132913928617250627214139521612634538216786390333210201730596059189667879661132130661894689599923766746081001903740059871978088659567649884752430982431731333791392607937656499163430996546141358872715191980086760884505773038403538975494655368912777004336640615285849502347611947176014178942700470444729158579993624924735076865038577044681287460523229500470529570058440917274086787442570371702123652576726459416199659330411055705617873781967308100168258493279548995610988782860358595567109240966131312256189233817872120675288765294073114409609901863646558713233702562391327372421006789785684184883049177453687668894832561544347691011393169853860813062683993660293106056844564783317554640077883005568478713208822613453033661392752913626087637544038943316433374964403704701725756847431433342817240660787837680612819965011574208900157148121063031193171761181105767031235718959214813833766979732483156878137936357347143125378452985749984480008732220324845770378592815802478193235719515434070814569541910450457831560375945377911606588774976454883370360171948629587721846075213680241555887419373073968400298107159892376529739117327760895665187830110758007248596874334547060085779175600075107589027672700847921969292394195143447927201215227405174526826424456828332225903607129921196207473046168515019765447711988542442099950282829883801755590054651434011001357316303578393629516296596560904118098886807787867181707347574936124203688734491219426695553336925969608740645576216431557884684368090771926433290350964445028919086898057723318580364891545775495134744733728209966126546265781946827582696532433906509087621764167119752943107033833334583006424354032765798940125824760917338155312102914272009470918876265793613236029532742892682619108664559200922631502706928083966089487221419298528457915377329667903844066577449030769894581214895045406430229672023714079583012424498234653075182489373495774216727199205714934314327498031192085609987357296023259975853352158871689427762832021207094949179591613773740878314524086280604745549121897286355110627935782805511164949707082372996390894483518507235732036907157834966368012347080735902214050179474321456583902578230415746122966778949103803074185427216236418046165508109504024341806037785785543386634194133842885525007278731529662103585384863660702362525464859259593897913865999340701442429004376358711468062706908471671809752368296681601150774840394193581025904442638374554277448642713566051460964641244786121706149669433706377095944493971980191474801521096147108866465505989915989322283090081634007038758085674562485000578272530344352106869194439214647200415604530321248982227447009709435346444935284514454177579612578561850791754499882831377919338604864138732632750033693916401123812811335981853552501792819965346545634463243152099218262929574400254756231519765180293610306644208682533269966288634726733025764327348405803838676314221777488900598120814284778367540583274642690927614959108412160290272094903487611763141140670586988433031168147474210956894484291422890280748996730582255280130781392389302451672743143958882902725912983672858862045905810121826538942915976712897008448336832902119123635920821394269674043097479112929418243301219496194817437220140311422594167273168210918654808798964391427987047597663919562737779019714837267726626660278647505469419958135657102672045394530962347113904327674682284115994374526796445479526773968753203161229769915006268677435792531558428208053179962761146992202871033532062238151928022579495808729304489271106665173488362780034525698227142923550676169209254396162982327193021649818066702550003424993147828193528635230281014725259350709445851785556800714327882122571059707045212289815860521567651157907474187649130557550833332525265933320121721240697123097991115743834205343426092436596713177624163267679033196355786704947930377544205140166056425752587695653590831065478465641177280862658155046379278887511811340028056690001369566243787068034230759540987997250898612044032140082553291105120373711027870861926697492641149170879840746473464125456237525957659789934573882474833331365151963964379807917051207788963741812593477990469552635281608212829792452090729856510576001151333764094639388660547326125765344918223500556815196725179065524901833562295696128932630857994118876053898098930675348545763033932659108858398640362402408791944376170144125014646028997346323884500691649566716250761685702788757221018685608491983848521941261184992320732527674526765097860169363478898293490045813955499242852530172086463171175534804684036489124720667783154809945948755807540674577809680916522587310228518545696071501009784881466702411183588114764465150677111470439956051571317560123386636875788971820313055644784502876187505906167527441669995905909000796468071781454118966518041569113240258971525441902090917280256118272882282171800670420596224100381683543710569814758037148740267116089709500070269361349600924099176448831979650041322907856395342809290285636345198099895617202016126069652867911697626552473799513020035840736484546750674698422127768470763366571574775062395363679236905952407666394275036774470094704507421522092536003161931684711653426533180503687438919888614068526568973455679067976494949901270971645212576254075827463604761453839310491882285222866856669139802960185652240180125026070982909372443489832827746619202406387147528234487253337201104533622304201131826745790237979148942192343270325616017302674612493288976641792016352253602945283402090923835869080116917969307780089709465293176447014240950962506553436838892562759122067638494801415442068205484212747831085759879573121261203082421860723050644072535978634996736230983404163156601858946163181444804203304594077056792983749286878813007088240021422818116303677170658124669248165543556604268441308499829467063746796038508909408114042150737080004112247356880768256311521842748054469116410464491072344388927493312611250582361622687192950841802973467366462908428914655607019818687264415307893431396531647588744374896546167252371722011711157546493601413853867767322562153652102398096728427594077037069908916949498146109685020444323687806444926515229327956958617905857544751293133543390387980967431911032818486495234033462043232350209360423514101205374172856422859882838424746968373684446411339464491863637410485436023055727581317777762270523083922696308545837909829883620959382219836058527549271841336153080772846485381957515213691283002244457363889816435798483160510104296779720932239374145261788159062141588870290497722993775094550618365415685558226286571009295393484848419655232061013122878768156913695525632947389385766123797484811073855998581608888285267325792262822336225491970411958024301728456815871022254743877683698262079816237145637400494717971036470134184355447240053234670812155565822677892113594389296264846911654348935710595716069583807874608289675467149071435467301526164228512965164784031206466277356326230872447903115298655034022883493912171811219739252347806204874444133075540195081897612319800442862768406282777339648370375675650891627042384363516499756254125137284728362954507014578743882147919921350487649771678803072099057053730640142435114359059523776060822716816437862762840088756151825598883431286685831016390789645602943831221489813820023452635073501993484725702096816286835878896069949222966779367071612912162997838399775522300786057678509160828132946253685953980979834747317518640193158255730592714203131700568130006581329598172651731363545785645180627391364449560658726129275497829294066837167521929358316244579299686650829482345248554766476318638025032685648324750309474919965079072384373667296975799648725923703264119127726409367223924127877146673719790310623456895830623583141253403665529354770518736636188484099408806927168052183291349092059301299175221568244409002113634576821728802791422416100913186394420478775933136833281690680544523421971367417112873675959804739870864046232852943102783915068127505122726749422116818021667239904875050599402290589843804381433060877543494812474286857933861727362875449621586469248004642693683987342813438263153494485932438280709852985508422693123341952385735257598436517574908781184895004036077925265595625923122951984481004858518010066903161344099822716566199787254235357321442126763582845033036868748481939549296299505308688084059758870177145078506952514089414822039992830667524109052407566580442222539013984806068792742173158898060966725151971024537621480622198373227840241067546234224609342113515678068343849886708909944324046179324807891046489847155224329454309583223841486683081552062282794893314702391718388822245176167182466635202772175731475465674170431295771279223814284333027378770954757545577028548877534616293720305612549120132160729325376937179210130998913418771721089707410494668323120678705789589967489141753913599818161555390894750488779420536254021651789532605007307044571633880786475969379875676243225633170508310716209255013293974132446963978414143790547334837762822855161926105963208356565421058798717029852239394859746606277438320078167983824942323414480590701447300390716240556014526382750206740072657555871743855847725898183953451389592903805070647574865599314376206411214905985456350678652509233118297547591722255463724158132163182060243295404348601963852172845460659482252539927379573305283460417061103112050230558035255764964759062411420390430793246845868814993864542320116275924800483101774397938555928529739985371818783875011975782047716483565200024735137695166137562440895158341903756757414030669803309931509882271672168685539473571347469291537106279394397182863178487784736806133730361991919180462206143938901306950382111913521628357790134544432791275016386528876071493558771481311597245941613784625204182539602626012373510602295617314985899936172796597250488684540218660321099919569680236494478380805396709819926412224176885063796915911825994773673264078003802915878934952524690832699270197629360531842147662696569528538831240977363971138646373332923333372770072781874606552274766869556825888043399241671830296886508018288185804512153025804264667021321770103497953888247944328499683428599988336260975101378898668786045516803904514721754187460831229765561092028477937644532733197752104316493600042670074683688582955482359128674677256759045232278020860955718786053829475556434367509972853592957069954474145018333707580478205832860524245493476053306222907768992695643457852672817916683096243102083714212614237113740261909291879663343365629172182338422272941343515102328145605012495297213009391997862123703310483336154563573826514156886325215019960032787233491030404009070703866562439423785619070802156700090838620907287394476546306050816166830243280988990807716778695463871664271997947206554222261657006250564886197441420743799599161741204153690027164352791849882065771634828637792432561035147123324844923781320678688012260745715793274289614059215748143721360298650607115781578256716463610610603928137035512128372205622267653122745559259668818944726468843876315888102811189393010086499464665739935512907343942055656129332657794911790890930862086695238117461085830924352212625393764502891796808156947435057179863681971676851818494516279701210055458151957429221320774448942964652244675954857872839093440374604625806609741348966463571157693678724944446064513039506925205907610472869509324789424439448417208453551714069109692160445666867378727326369598600941818354694667741292603086201398510664380960908012554581951715471305265633671756759613726228869185557076061777405634119684943963297793518510854933650500397544963560079428379239776536058659595341833850591480402849112084597354574866469192985610524245025421690429279028371474516920712118915426057315374101324162393297223822723907319109776878635499197431059930787879081789817711276139903306221064419451309811985953315618899696459785809045855013216663067692161992879144032546622368242288213939507837165281735171792617451903727784788937460168166332908368346576893319915183312835865220009656979483634182326008889095701655632074713855449565152832823391366024187072948632166107875332876893761967568094736517836401817523863107611014128407563525687404425465875486885896233659189145254944346277015577480379090401486323103477308461885972822454815985827254580430821974498956779446886686718873188557804537339595327469617812272351028109495310491873778388584793513286053894269177080497576986931624608664378247209891178466799427011275120150912540527636735405499374159591021586891257824053046889814860975478737550589580183482157322323011915530786480721241142017234367996679327936051417922827689632695003175794091580864685305115975703592911181862792013949106837031031191950937000186103737706224239853642930527380500802187728169782344886600738457470941114833460363508584158004867426827757072475039186014173792193385871179359039105845761718120422364482377748408419439470009922287064166664418198982230596725035468223370335380213929388558869884930820351335933486183341828106723080845038359212008331235890645864375796557215955884663404762131352336030092071573335833894059387301432918090797388637958707389756435106634375424368700119375226345229487137129994155969057032887556154335624267565074618717395506748511617677646948003707524411915458085217087765127833563881344735651686695210279219441778130504229006698125082917532200077410814678053826128434727242140197483238407645726035099267929890040485111235591330713002858512201826626148136736228557717769247698793187522557677022439383395241949689783958172980527156965852248044249748198764371980177801431299259901987778220246396137056995209266716800391530134760778685794341586154064952017222988765792418301155662695565049203056342031226743665535297144512778881110606892304282811309123548610401499966046583787799899009275437423010304137915974465687647969531272543207577821344707589719238601717479761270579864067149065710570725891173082982690950572446570876765408494965982290784940728746585390611562580114148437814011821588751304408867729525847605844634413119868035160961445303918452011973536040721475770404071663772340557153484366400382304272013386814649284971966435752808912887132308514343910554684156385359684534422059658653400769354008986565147488547913330668151668568237672210833269620007150374476269396175993487647545021228610752733760744131425639921733505174449070344728253804672812282087416895046982235865277243721572150490655370913817635724763993610531909576174419809272852300188694299087029152445391647516025893787380613918874150697537592643834975446425983281560298857372322338858711537581677235439560567228045394951198101092585373754242494059064686167342897929029361688740709176031042989639268783462399599486391198393412135643176022556059167928169747430320878387145135334333793822106338748724475831239157874789666333752321740206581153197818451342395035462611666995399224115207106680295124420467116236640958518194928291702833253032154713260919601914743769718711140960354124091863022613181338866853862722279711281213837867830020119191905411638954789116805047563727783586044641156212628769697870158941323023673285599138797766464644998508183877713661989337977168030381652576286005485473587897336947478956181741479837875666352457322070888455044306541387223974386112184343870082700478728411804150359053722481370651710224778814030832513950957932857145087157885841533332603117887361994428519561356033322207211676784323431807007002203446670402418054606400707645429544796922521040487325009513678049751336733754758002655212963531844792273808747168984076755312048003537640830567860483503673604735996273471196410859736750544885039569325515808743990841547023490356563340406999580757446236387704286914202458519811080479056292744102779981363049391436761052166062923244554008456531639715068560050358636247958222562488916329011432525071412699604141417890566419689185758046086069018239548065451763788403516765930796750733100255575084993942971504615689293193474726456589977091498352386205307379951970150746870816708662316198241228802746355442689632257647230481681814960812755956279966426566565220443571529703020301181474762790252777791689934267040205588703542346229863553119541143804274416759307422802110101342009714500278346485250730128863732037018609759984753701778310384005496317491924827198520074445302305883224643054683043669948993314908262478467920129772592766436263252017485731261833942296572491608039734793477503315722192828479470913858707533765051773357163138391143280239572232702641617228643025841282625709246913273247357646003101285526924557646188891448680350789806446048657392508465411722948384357555905886075707565121302866167441746986143190620387005820660864049315517638953763693817921268774944062813237995946776595659045034376537491788630977884305439589448147096895028366506649947901117967302230780572140194379393816438766673646051940041453268123783807779467799865873834267837826704067320288420095911090232078483579007301723680919226968604210583442414411935353155832451155272979205861776452537469440252859417167993569383439083484858139418920128874517590766550182894284873287473917983756121619278580568271505772462768553501584582683627713094249018910818556534293185695395517458565771130360225258301648726578246711563586653537964616958229763617775161064567017529973175924622730173761470243250628858516048661594692351927033013803532778123160203419582867853896095975754682094033940568704970337418827207816177520790854711076560677445217309414851577159175281972951072465937101767949336544645179335734511729156320962383198801030176259064453507691285788050079256604098053442605588103219817015391379366818544535491364645077520160151271040454579947506054014498018509785628361306311934395989654279470487821375787013757839802819334482252380923383053406387312348282880180298856290493618144769852092088702287911152617250113237541709592210496954603974414098674286238438778933864898628540106499400806921054237932108428597088615407210452961179716926614250949958067211680611898873496517264092152597297017854581180873940132667011263575040554391498415042281082525036089589981658649359440963191363801969036452311308037148851794885759121240520811040497933890701908513020604275172711714898429907936708377922873836487130913121683085830100985195125607954264436232098975619119911957664173533893027974005522929915251937393461002975444843544585628803362136709528977234846620106437464387221156952396490010438685748250950222117284294987562320069828829792557888625893970286923769799119012030045212053008150204374098975986320513782320213099286429664682315652873998245179289366012616474645626715826313666468543021320420521323590095323643265453054978001535449359355350030083398894639237954060450834785532123579433938007202921239252040233972781918195152095024709056849566882206872414723948572285050491006475988282279498778922552672454586618255873350656443370620073652535023612978614699070091691734272126550605305743679148644993660336867029650394968950498189383010337116343069183114720115507824111032822886192422039886834983983660368301692076562743742709077695097033104380856887621990231612605893340351676256900028045533382562398574025957471016494691068865728613195150415218252939638402619014522990823603379611190731707874458769835732928977860352329825241578180901970527552403034022087824425704453245034503754183909601275395946765562900811030959465474279760087407540344047142216347911470241220333092457232639477608908261333017027158378345289495284605106379424931814611114209235779693303355202286275927644129068149308734708337192293269671623799874007885113885967811946487960542647563705709486757763226963890256473696669197651210861960661370830963055804697560511799478769534327134846672926036328792680359170724214192439599790132026981382438644411736755566087710623182158873490146303042416697300254513214319119972482710156564403339152393125577415962618117411050133633024489167381916750348438450876409927544945982738291634235798277981681890359892313559378664389874723372753369498092395731272331308724462877005627472038468373466122702245670182148231718427503857442893045896947618399838556240307355148699949124469606011338736476740220804799608729259104189474304177219038600614900556728006877949047051217421182086987170045428618230671856193878234169089501556161103210239528966297976765985044343278853333169549466519313743793423734015080610813733581758130540602921559048977099264655932577070385270544705673137322045084444914605110259246216707105315916807050603442306044146078001129761195085673176421981657441005449495414194195728552874247448660480927544560001216394337575811536325046620509659701964885893037119954854933278331890989785721550687916805716338054301431384986357175876198171056111847998020999019583444076615458793124667005241559429370202492431513583750309969377703349806366438108297171080679229351380775815238456327709441679874610902531774676136771329506644682626847112273962035711178550919245562627180087508876610886457590300843377667992866053358833512634657831933160858489800005421897970197074350765438993223088111760840745323241378691658479466121785983756782562777143836294388292302847968745797069758193094855040541501251138374045784020793330218880134737950531503470489952222862935852412743248506557151921472554106252278093981110208093994626463385664705827381291656957644834355979397380607570280268704933908523961876549195807808120404621138596932956890133443382910956982768936948306036380321560387633820024239100802917353820134026509047184369379639887201425081680482405534673255052321605726972836500418053382004225370483962482846249425016143108346301703223267607792385596820789277526838909633338265676935813918832094189378998144007620427004209854446653510537377146393408649073646118575737241339510045299040310331604328658180148722334479161074442398505805349917336031866730958177655204569145403410736825557443760752007908666685544458917378548471955608584056536230107937531152099403320426821301650880461258891297243704736782754542962382721642709811555694866853710073622128193370002258973196126366775579892128924529844560597163440316762750502002174169823080863125998357448570617491713049117612882190810684554895636844312675910450681297999631905684996456479588138759910607917846503208006902011163157589323647443584941426120747466937110820113141300392889932124790008365819857786572713150915549614973167745420589807949336052621863287615569238883852754247335337010285143534590820762907516658590128927981742012863804123901447149535843799838697462451625392461231328555548745209336815550615910804955152681126065364131873392913718714182956240027857064387671941334737191564023991091985898223876040999212596016297249526900003790145441602512473714337256631375575743957861197491821342901846839499341275036700726900119157428511932097771195984405965356948230407042270022524186694103391387486000033719695307938010646284591405662442238145056831673831085281779069307956119702704241900359115001403548375401623628063422263524452730882084970607938865170642946411592619845782295927794093380698599201131923009032348783490501555383648899414270400742574696819259056998519048967011120405610539517203268453157842118857221820386849126351582989977264979162927021953490418650939178272023517079354889878914983256036083974886576966009296588570725412393387357531877239452581006278199012941968973389726889220291800761930570934239634116115875524798091979294797013863300092379254669108573264397829990516596553089397579208536770382866649351459992412579601080355103271153701047878693241754300086607728961806425380472311307276308100206754976853185725362168775982347152983992295928093966823524363628718152550405907920147871367470617947009654332512553730064856238129953166826533646109116496680568760062511805345393792095991673527987597619449217338555190692274154912813463078931310793192986048149190973058366445553629822817476786705820983241561270445024355940596704842411829643303518952833647904882681692917508489119758378025671152570318378391013876332943730367725383345595370358410098727179057145544727656238585731990742249405054995570863468895827254132211709138669218477603219433366467773687671019366045154618758207960901902634213589038148468921384119493960622297638865128661677192408409184275819807812987660524562064272135211205797934231674691758263699358769939790465047365872654369271028950200266339062341284973816763712893295701812702126227377021975871025103974925651003367484696369940955739531371682979668469996020219375731179298319120364853698231595587691882902320447851938029664992680873839494189369093657873015625040082264638048900769176215653793658855506434195244825544690170927074579618661727298332689824618142927959257325818700435269551529294768310788972930488596014965255943812836771381103560555735646406593432531506725759853538162849322876705434091919901917100704792150806238499712740585924356981067172574149266761325890598350281653336649034980694382096911905575315012160155125747094325152315029042655984780463133676344442929911376093280303295963912104851897477007038962964530790776756549553486099426356698559147650976161739480742182748423432433232774684714619798828970378218840483162166772827520049499131967690395336389588644440334228085892525765217670669352831623639414517756757333109630993163114361494598424318765428923256518629238784836626762709586056102545206704535596914395882889702352558867949592227469114908149884518277089379820125685485815662988480456726604386080159643913574487108193917921057196596755891803345691808202488587713751365991531417770425263119740645885070629958129129362288874119105625427327485684867460342457881767210230267126894056279917797828509416503440626657345436189916885967812123003648844737157420469111771947670492094381348351469825704357074365224862213989663843347530145294230783631992930227060775502364416911142186294009353963137994709963234567202574991861956990949810534673021661602660749830695947755117271407037686189367741629097056359236859518906735938596111468151640208059835458859387553248312889004461612969224711712195196353806430887379870036501325172957628387440564477629785151825319200465244986294543896338151035153005108860069683404488475794451931906978157421193691511223236265182500920431914138351860503212225842638743253576024903452082561250812952401909231392975421576250788987370178484607607517234238431547317481527117536006381521432907911629450206562983069426307648874194325591813757425892463974013646822531996789540828121759088767154808906652141842418817628721805314836838089729042128059529367212107215792974470378238960840665587539326056768842129155837312030855908871613676288161431158621831793414240146844032170165960086836579744922784714073881716761360318801519196415020744680636571921993030810410827319307442498564776356968429139705679478409285138922597141036999979893770425816453392533983543692971806699718466931865744307050025072645586547513021542912144525528994256320951796775313553399161096713431807555502299331455510151628513261437901789545951045175803866028583729248956156283965056251467424505028677440663100019316641325302530595645878027138734226828113539663664169542113516880781102601227253467530292655789387348139556461204493559905253136896890019139789577107048358553171418131475283526863566088305850308679830742826886184217445863247485803118451620736640058387661331640306660670645321304310656221988190052519117956218756455814120215879662605608575375848345580344018091923849729194816390461530707138482583787402504938827190997692529368042458658701218125895149135772588520229078382877701035943699120392484231406023857494261336951374204363961246496689047734047825493672145212809591282550471853391192239021031259217044750530512188781727818645084801496400709758986139328655286410833324786808596469053433866526130487763386216263568745093472795144038110813127477333056096857439548317341382618740385551760629458285529185316900583689605300812220967467255805537369824240824144168897701593955866978760118259956994592712024128771561404180042114492259547585515843901131695759774501504533498420427834798618641558709882863906015069682818118526249137418515868720535016824847627055520819096416406899682817090414324321309722194830916557514585666415036197663984725645560740802671756279165742274133809339215884214942150065742171640442942963983519559865505683597838900506884897602657896579978471952290608656702444324480128044635392154698498606330531931864640513639314028992567876381550136871758880665450224123512534459883079423733134918817994778828293571498690956095051009697776140186320245695038889285970130595488325123968351926008537613798176720912413225466512508397319629894172296469569634203267917143399366682963633468158429545098930252701664380284388475051968884552342818470526729806417838608413081671930497406256878822456480444614008614984940865194488192838960734892906471016906097857054892742998979871733775384153441496084399318025469672070885433907228948194144891191710393514526657585281297067240856172064433790264395321599988478204270589624337735372456136653916100879331232130879005778166196956025088908531533113419301409575024819408456412272970921440739004322219779487051171799450409908924201712744910635723291450738142101701686356425402091126022229214598609488121271781160699344628590853430692824914179319917272640185591805116681496647187089802228517474716261538387927155090960644907199757619234224448780541996000077654791211278765209685524430209502532190427575586514614845272075683414641875582812585769685032991976587878370885124809807641198307763663361029630763236389488915920015457203795891328456419342853789541938947950644489744769764984103538427106267309469353605745362348078436491855623732806353674039055721305096981002849382278580569437079656896323877002945540914591484468027586559324407792028663029411954714432110852966242955712336975289028537704834157060146582913251643697178275574912601500688717115346384225973433827053264489676778546577314638390953797204282677387404059751316571076029773862893346733637263965696026666010056924040765315807319077049106932250945127598941655721227884939726817817939723326576338687425147155026847715723213218543966013624756475401949527925556146654532124308269782450822951303208731734771559279225604242970836755472658433655506087388526173237072451843228556899281401812522682676297046706770977838082204618382418482255212522637436873720837707601343980145840520026399529651906317275042336968675319512292252563579410392389136449464802832233068919514326028115488792885297709626533042806693633277319998179600172512968984914556688891797271319019885281304104808842596161208562259728535319015792168950533420193562958730721439317150540195798637429454533806098449879783612218766840443916014083554370529028296970192864170710517166661546035763374022553730887954328251870649183222909200670057877956087918064590116484884513108807238577718951088301897517349011367631502405151553127879206343724906829410698320690947157764909828550137505175210338678071872184975430551171776210144576568740536880672278453463381594532137890271580308498050948482735959436256693204663503224585722280631584163451945569545004319060821269437926586991624567580593698843194312607995567344419983225658614902621439884585248723245312683450681340388137757110800703873860545409424660648062479799908652744478086388556343609163585816917016654259468597053158129397873063500437462171636514605330508563647074969637510284178885562052722197329123202370844653226245859991981485047117449900119503209286203826004456549486973146370861767450062145412846524226652114146111261797242380042570285461752660179764966277723787510439291144735143765622691010625920048266859931896719657541605096179730368172173556064561701171379210222115694157601885413026606649892597770462199145230231362898084251656083099482093373412505762330040138665568204356999838552763075312088278325193515835791347033219353370652644000484997482401083956849299997169659575402983388935484406549159385817741965106200182899813512120536716372339782383292956767808648473709766433796675273908806643806590231725255987245314373699013408263311745705013581903843037641738358635768158751884336722034696011171888679184790908441768505831360807421768200649365809123026347806344096349160575150704352069033787442400611508426189490045310503180246107442126326731996589926586068463746237818243713275243082410625082347517340334134698313228418423805922245239413886832960897698345439712497828998435812631971557838074659464181867957130476163725814543288064477294028974528930854611186691463294803376831740920003693223394633396945139974515030744676688068036963170040290642968566334679049184938116983909223534147197148095271362271603421623999695392467372452438952141003628100491191426141108558361398382392429738037145056384729764684091950675939063327104412767107496425414618455002365922366985697292213407054556691949161218837094396101072682369656218744212820922875272549013217331791656854758226698933752395491220703493015211636327811879316682755968773113063208563924810300000616761461319517545211732619105506923093142772411627033473308601443752949119022136523065702789710865266158657434658573203174253995354683800668412333309131112608230387095843338400000292351883540304642937476975279251923458310585814919258304006489549297126344256949152333167010499751830775927778986289695673162542118188733724064655035462964731012826978762108265509212032148857787240462371852236006121674678333699563155728283861827981342879926257783818981798607599239610754443760778121339223359970396294929452483628471606019987914643406170239075035239164619128948174906390176472385867553617311783299511931027517632963438995427601653251782732957816675785769377008861897992046069758321593416278332226064444701565399632878046066665839125503533629534909878217843045020448223408681357198614401926643242253839554893159124019501180542366496194368676755250024966746119607361691172982704762593855704220011478347146026075950510505443101900474112101687909117622412630993967022265461725765350042085780864850330239212138727957205456686469985164949290863304980632704067059245445971667667975322850652162159713063554987856934990053280296971348047691023868294678359381661087711933649937803974534772509905015434351642169624660798553653006228524808433348050541891322793226289595403437422191891200621595956128770277144603585230838806421841596459660443455837785304340615910386345656303753185085149668078646721154104969793619377213615687614604741976864229587394622365561912433595522092218482975113487445641738202791381600742985016163588815742431263325025895306711749048857320572831154631364889339543105735604365212916900222710879037360879686950181434149174685086606167395188844053577793293712356562264053147408132536408839829940845705936148129765146765418651065966901295574238310809423407108854088341818874957370444085617301178908895297002491098405095092854513613749673438142812138700623194515182732422220808604842303845527827190027617067283119348268403753918519525469566520381325712764082130083513480953735476876593735617785535273748677479274230016096065073697116755992412338164809692995936099999468706113487468849774035341518769894336469124301256816272382288223526521716629315779235664613122121440845921070439162245304673981709683696413660562179007822158773758795798338361003038813776133914049211813696178922821561894132732006004717632462131967423443165951009610076319479816321644738301313947265273109026644221647862709343919540287259390340266578083472550838297154672124238255458326650522370190178130632347067618191216024251581786565560546905169351472497765022805234744955367948805352132386875782043236270455352383423778323316197840662849572530433848555661563372765338377750095034804497778952106766486277609302005457322736856545007342050861321769809413314202661695108083387112244497435647846582057353614402254760352740917009070592647917610372274746274540350202762903432209527347342730650004083432831142331725164833199637347973139381991929680874570860812410236957548207755202568339051520155782445958005658243573980013333481161177456322235962373951881587195223583228071998123642613271645285319815349265515926896360311435123152593972915277376360284275668444445854956632213791475845601128570933225034163701812506319312116476957497607114506031882701372105225543599057838421374518638733072922240900780181784402031464101673923996859274420788380855179772488330201995122141304887593619405215100928001044805211427550422726613107622124150909777411732835228558910754277526599966464515665299990778544277281628757231271814733632495733768388702825930396829549867710137353039626900142882177405887732732817403650368203766876737486166156183326664712589413642993228235217122545454288477028289816286875108941900741228012448416837743261352914552161549419172476630769334480400270144006790499090893963540053035938957232288635978665181238493929013425872271756018678801613307594304563182173294798468950515199452759644348228022963851410577923844040238112331242608103038077123196287309208199139307405759764731209575752201073840603220643852522502229278483844079328277015945593396164329001773021925598498586254075187555204659090400191341343254253413612778625795127210834058628907609135533288869236915334108467666766010546231867788213585411985933542027985878740214085860161818227176931437845798847445937355287167882338472227923946553782174667294457135196181701562124035075944193313519689213349863121676331179364219381416464566135567257075939861443562477131017254138483927196522120042402293924907019288692276398847851706062207890533364062504375054566878767674763488137262153123592250087939183176400883034529790199574106185870348513092690390973897893916418006698569254584276145822486878200716405697280557921523572622299548399692655166139834290910592945184069996788123106118335944007304124751590370966596145532799500672737057152465873842954602321677190523693938194709746466687186655240867597664338771280673588199810573526426420368657731163150869478348526742497787884796916750047971324262710799876612058922464243870423663434939729208856544147150006429742640573704366683933021661046868544296193160755387273296672038718495501123269632010781915403704105149618673997606373008927833727609349888820075941871485091792916466395101829682210325928489809103485841902918544790950419571504747318162846500156275281753505962131222682229263926204926705482563224705540798896310766791810494812317659651311137165477276783589609249462964763374453292110024781171282671850577431338594354736226067716566608382782785601457514021231173594682979183845683518207653026085690486295508508114220059980341033940571382142565214492398481037696135829769911950741891470873407100028649737788742531646374502781852374819591445666658386589406391378223860392060695222197508423399305099115034417177000072205149555411481194342652870941075160598918058691514802116888159991664972373826020630800256936526310813877185287315136474286605120122273681589333571164850500554023269545262831211231268147489554522202560764735862334306899426213441636477907082056969652357077660343959646251036611100863308897018718830107250422397456349061603769856902916420933723145382741045588663399411122946538312469656826146562541823236727972123882884042455839957618118111336121301651994580511412814209439999361473593339366095645442210000257207451192290527738162969206615433755774845901623116467296337314880055280885902874897340001314125537218706850299834763626544248287112371850004772201379013410081180128296084563265917265191692514992648913176647776436429474644648422918260306455300885343890236245547790066598292787257591773492982440920120736447571580368294358902915374114966872750955868990618660334689855743002579676243592482277758833009233083267739348711889076240875234491402407038072183159127241812930481930337970896484556063993128304182766484750299928031615942658419647297814158704153179403755191145892282764140367827855979490262853576896354247761184653975651922042130230954313085868227716834605191188500217707664473143877172959007863016575507719779138113042801916463399087683588100643603108244845642855371712451595714644601728507751663347951917369209340847812064622037266713849903551587977642661850382882434529542093107756291870994037469035076128979534508142613403030341402838824288163652687125682475956615265363230843341000196791719434754791464380448597618612981923971058018676602406801364124974843298261514988996079072682588784158950363976403118438016767632361812795910040569415704765568064056870575094477044873201356434980519272686771036657650625620085468481286168596229292592876967828449521161476270997953753068723585477559814066889677614569642489110736806505303901554714054783585455675802114600464966268575348593473700581090230489969376390630359583909094299355737726217457892154240190149197487222574852815229507145724721359092094519147732068614117686939579346431879380340914696442866450018314645707540718305811859899535827099073750295894823486766867263630404739254696933617056262284654093237157443593741490384427111038576240178761220097768691984902321795097946105563077897525952726402963236627874762025105410776328220862680849772367509369226407273728498044602908206756060452002102741032184538204051354828507901567090035712175905509931195939631714915193542549923656020862139802731834441346974840535856949639292718075648756019294556766179286190186581453292282739729496398315874793507428781926741475271339401803351756988801783488138332980354132479937551098808016480693431498590391844044104294694329886742946940109861510814178131323935914514669320025174220135631785563659147178754614197232848491580452055127218835255845932143154327920199138418951065537821353118398522125906329317914510811240785350681366932508684695161613468225585212059463568505526991947766780882506941279582457187462448147148904794330251277086600618193644179471428266249940427017099228080576408335954459697815257262355200737331584970314389401750368280990826158059348362901702027135383576458226116116501683033865375202888671470222729280483473605303247323719136793735034277170058883422290115750737889989519648439092637871310797512531207619784677068916830498496591379944172957361871091336237773875819180495616563429463347215052722269066118071503967105085235415743755289332709716265468515668810785102124141973052625040056069346013104727870707471326648672811069131614265437378514000138462746503824479040172995226324336467628189944033706147635878679009056231424414712057380147151699348151102232720282296304856161345863915985828264002463339988441908440201029618394305618228253135421497666922054802956334296065752012131723870429937776620733459412656664785807469729122410581650279856974807691462949859909257245761821325768083463943219106495384316877145975435939914053878715932267150303698108214481777811020398037478650934955592559960076682929249420933188551675913178821400837045776217983823899896936190431276940090684464809766182775058328462914282553919509800915708814381950319050851468444859073503896904038417910687120611557254361636946537120044258980682064386708139575126926782318477567410009024277326323316307071480721437176664707287507504137748290636229946863427725607769533761707266014332926735215023917679991734254177735872213096720332104658939082220186311342963722576255225175506111785779627447379614422868880599738118595122095802444072042308583564542775241946619145877084010601601185150456625403575049520477592810931013125576880922617435874132717111426608674505995516987804415848900799496273530318997367269679312809695853081594551727979845345683819625376863135287482951663319775826069197264554850208274063737479713576673342117980269829410765660736818017342750791470027027704651277695489735761939436202989969907083575089981130416299689293827988275375019451878688064493442213358274284476735935312956345206347951423011771124608357860141988232074943130190137867932565998180196048764239112040905594139015640470786724612673986007540894164550319669324123929917675526063728550590630448249570201672609399219530759517353045500054990808344023332675327827998305089737314295682325751196005834705468853420211384363400630847190413893864993581001056315911535478748852650764520743280788817652519844911517681623941866034175682994599563478485892788531573999654945119697171113963750833677154855305877674908680966532430847154689453644723335071814374551768590244180543802772284268267867057343716779569953069886354054827321430416826603143606862907148691819282667210775465036679722264352557582917795044667670993415162342563099540331359755423137248294430142096482996680928886491412399953556303768326964113625216325241291357137243799039845122126375908566343338061375747235664840724243182843841008877894694026279612523470904209572200186693384768797977279828928060300338728938100567624849158495616548748448292286568152840288527129388734113532272327072610014371791956483805688738352691840540476514556972279658555655004186458643028155021473286126646401760384560085485494947378425788527471621402273748963135430760501295524475472367393970790809887606473223305627707817655495439885208716526936105323564562552806083432997809922982675595776711896503097024245867284590821352859959010757653877233740169789135183716196722363091276640280221093646188667698202848285973620199210264743062970575096125653768160022894426931996190657490174253547202923408758522532496756011703756715649985411480324464413627995891932242309175188512110384728802586175525817332070941149376505306747669362091480709421947970005313704514952924892586246505919554834820299085762333246524922745885290038096975082856922089346596910905963988351071721288116272047050629308590167316911461335034104528651827931024388445855108914746894649038285777259292742576384442655062649555428244746481959369009814883934683010004311937183458635270223154860265418969270806904867755651975032434479474834676545867757047948640184635325896094383956882581193197049524482463940594189142387577040350442085641696712030157956376783488217854625287577975106793895983511617782052058557187494012883492788312609744859534917745089781395609334451556323235535452458975899363161046178010283594925603879061486316220379227740915967860349911219237177084930252249821913897552027353245933872460857584496544039636282474252430041420320693143724807873197093729287398194210803374162138461353546885541120315270583537141748554413447475005385980714714663236744399732192823711181106608311779681178165534302582920035133820612119914886636818721030291343273599559773272015163863737086468306064786955698976950690022141263741999110702746071996978223098364311686337452162355524103169790049717993200313382857588900749599259713722891580664375498196151967667119195075019336183274990666347734754176487816829403519599727019553001694251674771143030930605686445400032374297665890307510911557593835482377411597118641585785410234918447178359368599162086770016644734993145199217181448592927690126420520911059662288202003052081240975914118587920119332929559829566779154843082804644517060509447537565130734263888012695599009516813315262191206931603425292775570450981460645463033402640876143752469932500237218515289264329401318390638565997509604147626443553173767922707450204680178228209057093760108042878284149946188052049409104404708302394649695141581956006674015884103535642434728320578174196842678480250318217524050780623427299811354402468157759855689259365517081860589464085988601854589422753995417484217486982456894713462424039852866159070960651059282161258931568735530661936507875453075685955202097187044380320525974537021594049812428672108092742439685143788913183474963872472752575339605283439092463052968696978476325361338438637495364960963116864656748200620170307430912563287095519624555913189522967439649688365322367059447166655020355628437260297321950221855030080609343023586115379301856963484277093369670164734286974902861082492131717480619545872242464912221533930152986289206512100960801382686193789636580111239815120107651977257382781467562129140530697903331142473310759009215814392287004684184920103365308711048407180870129723688160888224803078666472146428234292289029879546668221357034108397545473925191878741158514296664241357211695449613245702362252516835828800399315212621620096688857296592020988928292726642373790121355722633005681537938408928064263347282343172802159879061932788848374418976711114176471087378914818556054379639346796403020153710598065582547580360695771924326135014553467944324388958112349807209314923543289119172925391538412351548158480925703996460610174179555982205026563026976296007091267613107457207830081634252601135595896528639028089700701392422050113776541235506564148049429792458020984376438862780927004332221644862911402148286089280528186205679264780928107439943655223056908391160263397757389134620615929097934151323823312493187515972253929277940174955308411373871842710063993421082584205447371552724098418760166750053862423065433987945270899518440244190186132203727149653790154557028606353451529023518663162993768920857762362602561274607369916091566751703533149884038991547981559054029258805498465554854907191818166932062952626776926934794537223075041359584250302414528742935158107779307126212889579901347830047550909959019332622909544816623896590303480287200141625509049178785362125149979290068194340437203774252191768238275034600807954869967473223449408077032288415038906978346569913208506094942725370307586464065927333923043050074079382232746540503232482600135292045765741875953849802298567124653164215968439266292507159507088691281199580514641745767104709547299715920310208239531301884752354416644240451986785883454740888962993090544342743432468912729996285603273873432197168899081612116361951116210913909207819275415203807846012743332807444657580629026172140467614148925322410055627604433458506280715899634649725393398628836785318947961289719760850112205406857912355630467436234182276376899469241441052765966627308326098762720604430122034667112268007880135767276991808884965525241479999488119591689447318061734373956352017996500135045529898477191416303946975778673169866472758797959696154179573601401492680219907357667079194063122661767942730354231319921137064657257618946046410065886563734424802002413126408039240416374381347832731570201578995725419989900618370654041406015607102249928727923565564440618018210145331095288672487715464688891585726645987435548730238050335534576031534425864362827108632436235411133898872995481753850367085215202664158222049619437979948248154024654008192743374431920141102181860851491364562109240643428794308598738205981988125067806928265118217341839933202017704021222867620238844346003153017633887256559888236465270317483713853745084808199904028734946431133706133542697826869004538403381696562194647931822123470194761992730412714418217487128846823104104934949905913572152200695121997525658802384646541833712615278711457782241165103736411972748543618705106775096681491630836298695196080808929307332849039180251784585196172706343923755855152068489720885581147816557097293980848390922795910967731104542766535731629024371068574488793086780525178175352245942422110881135019666620984811927661732395700057522800933040136418820373890038638807993481015013367054907178550225698454632686473923333943900738325279128013374852532448892094946218703075570713122008854042431324884463344163218758392677968983940847442664147634985559144329627326747401502862016476714061041556202294504411188042247442550005780556949324734211733472300424314688862140742424317005354918974541102145685308264823070466344868253258237099844329927211678395254204020004954456870251754786816051308258113269501686922437356922838638950146695847985584070137148723787005983681100272980286593755316458629747400115998074924335179313814370741132583970912430954566367310732372177564336368330359350356477738361260889452911581313595455965615256628253271707930703799544717450649350117483272137983438528023338712449451491847656383468656398102685004104886848867085620517446104424314851839697855795543226419654208800794370227478188851010024185352714381326917156788383298652226783161978953066050305757810632318705814242702717996544728758069408069535955925686935143034001862774932509989269176805875419352304280357678242526518722732789462202114750855753731909791063456263391086183078175737495766673839817788011234925772581526211470426731239537385307228696962489974972675978594169055971189355503923827257194814278532977520668740298756342620321256641544294484515453995140903513873772298858922735161994664437319049341349491576653375308807132482564621030013092577480840226829218824528825092004534165164781774726251179438637296178620731595397024085055389775757209026127534845779836337321981092081550373223951956134419769486252313614570266942750631876043723430312777009818205681904624170498126651951769623655866465567740917709975822399163632427900191745717982762867460458742531855328391088805713811658072913447439739583005468724533212709468532039691942785173034628338505195609810020377396140299150316520077138258120283018327348474829006604246221673678320035666699944716894415522910272335443302221258865225332131539483459976805447372299618265083626021583036484071409516172945272303473017430345353497747324121540851569022004508285345195702140481064860615718543450265038063471132594095435079017879467248232359669947296913632768470390690819584078426973721618682527751954100958583439388969519724378314686414010427319623425598498576287148062710400571158179279069209578416482059989724483788750377763863737918865592999452679311943127698847157885702063312802600747540307283494086064023097995636273887316865202713043134671023309228727546459179489163860459430158618940216212824913291503465763604030550326867969337067642939205336921825152858447794561749989283611711140375284534557495094556442223367944673916067868435350863437450443094933919057405385654767403479204545238121901208014019289231014564328364308020889955329343620755515143655780390768427251702340867674233590159662925014592533591946603853840883326409227382813804086210652640618470471352960141592101146116336754093464291694467201255028413876365391218318201629468166124594522852904773675077360333026957612928786538334409740734040785418167700690744594490158802504323639630795922763393967304109737524693628304177427133222431453205650374444519877959068308284319694527472887861793357019570134341700766299374323037386970739245871274074029343741313393558323523275914081215271126232642962641272906942321058194695155621253927424196347793732968328187094737216826594333778756684908364287490802973979579823173524378290131764853627689341746292366627029709798218296864066679468485920032360751864693066335888687499600741220501568518938473971165437306817061375766226384610841530926005747681894026574423855442110267698148782319407998658545352065587735740452577434341939375874415403929726494423852152511552244630044106122914620072100228521788540690181706646558404606084314742513235571701493852549787574396467249732818278660886034449314919705727574894590484419368959420372223353769474865409963692887375840015765817320532830723571833762014486424805448581227325772227951598891804940644945221289357596741880093874728999954781240090374509239842830433398424377620060668019752019529663923446608282085552319344945196459797916731981202722651727486857237258403187582404909563389158839594661917146608430501830786081703819337371261671302685788373808235878945725823103931172856595689987354972874898624023345348860212707183231472243269436242170733304126311010610243330819869047612932416355315064455469536444346170256894057557699234658567004227614508376229755689247319944335291770420516210246871945500560378165485573210239106753178211539234725646085835030808664464718726447485613431146576761410544537590795203833524845228886202367837728245315251333659575760749758286789342300588674891232214323095180534636520173194593020132434596637441698603842558990825735426152848664776622428805768653537681937791018873046096968707294748168463701113528737651008467230568031895077390689227984090008708595772014572049729426444677603407026654734392584825277462791237232758516836492558341781006826070164744366983829842286982102139798800202403442850359700100756490397489691750334229549884793497120060750298092234068551147655838725259855547943674434549849477470635917061250733427482901085258505985836952911699820749227912962355552272946945808211196447957999713099861424905246988924512339544830460117998749678943121242929999854017102351927443720024557911811804876848415525194482513220487803221623009982099483837586313542230974664173778212766816844402097655741629911424714871436520017800851965567779146928918283909231140041893383088049468490655519023633637714854171897488355486924397731547383817935065179198650861310233259786515878606023397398507015713818446661907489833408292797728979747676674563762836754618539315364130169247603127684063607048496271430990830802543423830335477452044209829882114659416103964595985520905810158875682155938672580252535962601675070789511711764860449184547399952501298989050176861535628105722325581213529830984978437330602705753093602722134516693709202452578447319800132671464119238546944950547120917952564890048837606559368708107532490706415611705393038940903227293159807441532699469242610760536779614132428608162615508819835057636268953194619533127564881225272710634326840165793910623594103220594770057598143912479349534196363170382606671202060455183936956557132666001859368915898280871810315922127837770049114359500111199302211045946055204297667079838374956855111309251471562622416896805801797274703574657248856885549636269291869098015883990339574185976036843449614118556801164135257375110876331500486730410737408264705114374660299880020948245836811572329150374610240414768102079087753651065538486116131823042726339015331023238547087233336482523572095945826910121762078375357409978336634151860620370077164766091236864188623187180274931494600404652484876082497404825451974194903586455282941612785896534688297236795048200970871457527163257017526112263668868364627612538335490062725340129349510003194119256216966774887139695885561394595080077775852771940064659060807405329908262929053249711016347596383742424891000646664271905203242082859657242110794444346382829668650294486029884846964875166251444948717316439298522508826666089129515807883681036084317579260283224308566446730279739836279245773337263611926960478505663145562551007799348583609639682129785215670830754433678311035483405028079231604707047714231169656585874583988863103681186172904306491053125263605083432314888143958495536851444639654562367171031850845025094677107548191109509109994122600492449425181793278936451451087145533920427753302078353845280270474371049096489161393617787190885191349742496364186971332033625257719986947146221353984923928206095594180607049195345515160726101502904616417020574751983252917086896242369789223066767000091626048680275136544492976334493509323547900322530089293089507340601474630655587846341120684050077951604989807681502590465264051866944730624803246676667601247202150958949886159898770448925920504610837753656531994805097464864303440079456308879638150818485346951546305025177163991688508168340863720704097412299712969155620432685909149986497327606074998766352108688609254970859477141539124355074631013638843524507684648033471687724294213399750299816757256213891854895430085260001593528121442770929545096748364980868150942899542236921642790064276136239201968274357735243053089955677674645476051709953141118875829816159846519950547455103270321694909206422069186728489419038170294659157583187499868430396472636262845513731728651993350916936601566868884374532647239235799155580327228776720395733516985165020759064778569540403404800691911703194920855397532613992839320465388784033199028119571491179528284677441341750907907264707876741555217728730562971359674611613388979304484092904976316191958564215372465531123923853011047000985402355595931338607134547825249051656081657818219792182913886893134651964176288744784987257536036684057726117157601585400324767866383105517212797681277326224917508736091093174108345790190459606095524176149131591487707143794453705364699408164468503699868872737884180678473818504141340518826333834053783418954214267196313178916299804091358066535179803364448530172485312695482118434311795897052626933133388973867934411971237750759729453263425862347381427503063461436652475379017222568817604493916394249296478224246711060650476429181188263816374632759767027214575639267273070320458450463788994331621124387894806914228341184588767644065298429928826647539123708095006617272061603775769846705535253823961012811339303679984378412143481801869717766138866018621014914876530795976046182120916793119004686628733985540979439423684209296929353023430765908065409677699180445405153893202830469510392163177458706822347770974271118263329916865085432520516159174287236669441604661049766829545146281077790961840000195621694186384207945663576581196404049600611885315922150783256332542420368721552331519276488979868724080786650795711228215831125942170300909409976291304252500051726408241844825313407464827841798071757918178142613660137835390131671821740749287619980672751646396113371201073177342373408037265103044154893173102553984239141427278649238761132544831062792956440799348687326177386933269661857158833657374700082149525297304818887903114052678983258803044023495082623190253935333793045467842206332830616431413405044247228802870081647884374173148430648648939539341133578023897442328110529490727346367741074238571031696862426789888490232213366330288990940932591433441383542191869566774095691019515414453107437707895168486336068253037915128416024641918141784139528856029930289037677741385998674198988468559771633812736048165175951437405732748888500630645234806215556013054362907289502321905380788587838373330836990023692463027746736928603576883277032444766929279606907672396839490394653504287186302960362818534401092895111277727324185638752136715792899018389450663285054434518073743749153895332669508910823743107896276210439175788642467066549520263749814758964460612113295961165268884182415897735350788500009174400101907940267464204838686337584124176136155074307103355776162470122740728318129771319506803759968136824267951763558927349527380685617696261383110881532650107908890890838336230252974299347017757871493812128939938073388421801018718531234303709053499824820732067087909680688469315308994383859256860257764015081604748978638647036090619721072425506926194256551668584629558131401302168017266756468997423012090254479626673830918969885774144395737542831869811821793989843606805866742545290107117004609992409070324201493760868178551374970884697685595309822701434339642308019220487202464483134695594891301230592787511092156297240523698712034524919331530318168265152427759398215136244043000533688717671769399017009529568012715142881163580161937190260831699975374002381389048328761584394838433475809580626515764835351778336659959877693818544575250774207590563247431884234050490355874048285167644228189363527554716346419607021713938136417712680034579295872072848365927914256042744407363337614080822391697602827453162260054495492358979432576211152287950956746116422966694306806727354521210116318996743769480969908102246908596378116150732345363881836051520374555135725739305093348456504656689093562749526544489814768695894555424542785304610394345136470375477307855776540043547198598410316316101785888585597609352030557655766829098799118542374814273557172326308184654644354103403399232200532165450605609874341671594300684501358586776900495691849673951874402308294333487506037449469441149176886471489462197448621462404480602297308340866556521759493699590725785171499496339445896003367743467682692872253123114307604346517969729260979342388841116419791640323981012116835951144030590287606931002177974004038409241861946192834674842036898463324832434330672002698191600024968293181750670127253800045280537069350035335669046029226990087451256956223552192449082989791435560619357473789964954931357977413692835467241498424108431449412607072097896464041513834201082787025023195815085216668504626073197969378814662073769657979005717106939976520388881446125750822105996647897215305549149700202254976002786021269018814709329664205396671685283990934367254625039688426180814616842018711096131443494668193009055506767070177465903506172114205614342696367900574152345356932981722837693781338727980909216137780709707066817126357554015697203068539117088983073174277446462158782311949780660931681273098495855496397293535868421805315476042209754299691567278614305714885043076765271383014089863986392962006588528990017638001145453157350532117223762558108573078891574165955944208986282400726209944807435229381164357894270217575633720578090954656588536517480356141213278158590502850995530359271066302886085206317362321066358638733435676143540162164978594329526354304021635489945504914973208858096895206859374559710544728910019931082116642923969010228923028708323428090012752098808281647696217078998956463264531321093416110934259641610881078944049293071770336687663856219423542596853352277060191425986150614970997888556690037780890683338305557224252122598911398786307474462986697440432935393168324806529423265576665130322026329481823746513917332957890173064541611869029124158637180684922569001926276699544181234808431814263237964845031380371697700419914081115372498687689026548340592306364905633653447261683450046037993146800631126247014725751640702809195889918366460426729463348241193033344739479322664264363488609262123421556978695092096019720512708019787213093091290358142426423857482170388719412922900388053027918558958936169208629870275320061148128446131904145156159169151278570970865044375034658159335160395835249456510118170391683255514109906202679383935791090908462953658770218825414968566190664674385804062722466241511587369953453548360652034761528031743180081469939882276833197544534290321697735344807689821000358959514076966785454682652953304830221771918168093900038250073202428576771319984745443028204683544764448208942185601905076711018172756957808088227935713542291957401021866230990007872988575493846425018317049417074631182319373600544816191041990340331734466184842035119814996730853427699703829981473849917525231633155516276666252311929339205948072955475918253678120541847684353436479701077996428619145708201708543727789563731180212628318455642179238220552209684320405236302967784048602898531020214733189592571788239559693148518000991912782639813377413239856218519611830788728682335945611353913206555754924422954239632850140695969091805162419143540674893305702748386065851745434715462592565303748585211273407269360106795585698683975816033069909325557896290913993434327275903876925950411854480637498799547884750714625748552986702726803824180789971826285642472076571534499294106696899544180324529224624995279227126393210949286868225314588939662623767084306419222374884570927331560705349028506384401084753922749615908068587732210810139595884417828044763189002780282106907951719444334378472593140396593343177108219995178286247964257110614278315207616866848770105208142797865980351456787778969963484115204496208216961022094916953864821114176519002893848679329886688478788754064166289558590282746269358998927148199087419394432040753988097549237953247082457575739102518831109755064570846147663054077683909514665621362537195807910573934019351825554706211292180581826848054117877353968422205943229541230342067192379736836828456904176131178421908868503933797716068018298610928580574269499910210435232376475615014422260649467113201296427125927593309691387666094061483433925081905070693993055514120842173274085926505507678836870751457771091000825788890583233396860197438776837106575441283353214541283753451619317737446868918096707792133937979005816680861373121435525301232554481511974451310539816520451048276460859316883426984877371069610851963492351365613051020731828626720449582641560603872163125996678907603953206403387223341737745045540458712525783634802297656569481552947471320948353671040292512274296804222813287505032168702973002956077729333222304185292715815952991277446217869285618380928535292492543079814704296870448334640241966821232701638189532208019574782102049955541032630495341806040660650516937420171819447035963468979925128288345047293865746682530028598589872415248771497512863878251609433892567868893530565601263855519414530690688727702668302887107842635590065090706582651228908012389153060776840884213597868886902197735780525367048504507621205806466214647722645541148180759213271234154859352875769503002801777776212029618743073384281882852022377894967808252428946354875464030347679632187049021851857096121046097482840406222399598617295938517932962328976743658242659157930803377603264198220242694794926672180023664124626802249468719749627474567209899150878724827987959191526678615737766129305941525742251917018236955993737800737910234738284673174178690388204936574715805564798469109014843730147500084429769315793009835354346613697373943411579543057278800353325792030688833918881353412869285693172053372621408239884026587289400034574244629888935817943994004106737676796299981862860058867721498107061834857455674113514878330609245669873593521339077347641748895173794736680205847504453350668812164891441879179989968933574733554872869715336269551808230714747968556692889814157764043953546871846512256568930987877585898599858768310153695748213122482239753408716114992399077315254579183154742328942339385304263635463825041736605681127817806097533644502175846334858803764754399785195736536678898247256154847505504810705953166551088302749747755538241757913133373459576523800595960351614531864892176520493493777450881065905058548580196472481832959389693868429148731473075597229372912474448948466883060670123062782441561285618296805227292172004909189413800625084792528401619296396099196072391312796436579590672258503144433479499339942531592985791558209770067446913755544264290879199254683780886928417062574500478423610834017934214385149754025861173109520594603308796200486746761855310379858149661199767931108222430393895431679663041003741211396441810786410162528101017293159245079613353893172713267064728104285229204031429922602590636511150965645418032132048310948618519595900543892933172260021804132887537014200783071876085962318135645335259474269308738806314006279875919538732159589115885988412893060694376742134925700786751583208754543825744686874474831719164389997448406755440763617874501793276069167413253081872284473121881426392489991714043617569580718399119248873452005953188085246330626849153920041743488580531754378259628090323113679304129187830546684386790419178742448245148426192297567123619467350363455985617739492895768424230571517869022090247399142959183960448232763906098419789563167189679075929210940537293952109216044512379733381085150713440576415365621168915152249521591421125875259340908479551544501791060511581834531527037800105430826815621133027015753667333163652971663882478351443352790402907643509917505335392723581388852786968162907856817164223016762008332412699597548564905112169427155458816058865249328495749953972798068139152038941919758426667083226501813611797601310747878535394359859596354931082949260029658768605951627057516698214832925171781497929572388859111823448617746933037804854802440241684919956582613486577922370236943437853604230583746071080471248382230503851566682172848973346250706555744076372006504215081887554817400510789709853936887051385199972529730762026760960619244572090608304836557827486395623446226278646217500464039151514608543827514620565803583705282852546787147309929175655934053028604388076661471814567712164083530419629820128264752818647763571939537719017329942177906940953311302235248832591763686381107218431810562186572867556956510773989989008759538807262220315904418601794149150962889900971270291831503085100775238630744739084084714961050965064782270716288951225628299834398076171936332569206550410774876384046707699964760865890770705627896330039374153372216852518434616863059356862264825683280604470803609194268193023651835408172787626498180349394400994212403075532678715936524538798016095561956201604873687142550936550986192708243308142661286301070773121217954707474484010998832534265195119617109223014234362396836758839236302739883622191528458972688004183273587720650246358569811930561041043685748680846824047650105014343197619665920191619590870924038343523823335659747435123518577802805222669308088199748799042379230981086058830169515330359745410537918051490637262160671811297753475699620732031953255753746330643016630010330317149424201814683076760747505648026890254932999166024518563798848238440466976528006876889477630072068000662562913122355714060474122519445872338148442183245210690860491026810959587596402867187062290322945362226819492772463631359126966248560035347108701623028093260422686843364170470309820144061749917380846788546276292468507367722805947464481189403274771803855901732839711043347727873241957058701866155259980472944720130366297356609529876702657416003580039531231145032133684972992094468802314373691176861887822416413306631310527295844635610370073316091981507222424602313052897932418935807721473347501139945262794375936980699356568838494077596935611581029435519309453223695154598248522819651988815687100246693588452543994888360875671322501746788594290974302373156028747015089286961433517428048016444313644088803661669228387595427253629550265192264139350165022878662683358193431477044444576888420719655577807177077676496373806191049628424657494433001808685492142874573919731926383286785927834492681258577983668598204134535446171305436376472959497718521976670538722327323588365646558206381890035408765114256616520688394222705919148541921852353813113512432777256124122829499882328766611692518619314624101136648320684507251173919468278215062274990685062026813629893012337248851754218379792709830533183439571697041579574954969597530230482429381421396359579623629659679540095023623606440089230622714247326425733242831697786250783406658014573499142998331958239215879501504559284263120675784651237134047439543562247729572412937210320417499320321744015115857055094893038068163008982080629610312672276396169528719854259368908927827801545410593496082535988110373620482620939054221254216065257869066913107090716062598128288565963151257053467319582391359090787475251973964288930512042461726544464068229340241442447839972961200079688264491043780306953008033046332595429387041417413692711014679678843970425584404577257042098868241133912790509758621270651420543499457162062467837311736343554291770299156490115771837316356043247405876207609426478978690578948816732666537360160093657225850436463349523394012468567701222074425370097478341207727808044153919680866948827544266050633201512962232357921998739127968730470745289854274820487196379461124611529699787118371286484116566390110446402916803925111521244251371356391034803834698481520950437514453991576484875795266528990136569246326457727766709944563564451847783107185438431725599323155045922875074241745691647921038604499570983850406175070961178994930988731584527374429995700888782246069248673014888869345074641027440114570054848973484573913200539165092998980496375406740843282489469054419568460910205186322359584560229543804573704758965046191327734833097513877839878915235290540000044728279440837789121408535269652979977439344432843095334305200427534132461277824163016763365405902933874676159468096320475928060864249670124072184837960377092170431290757308904965307608682450768861102559803233913676252799570639515174348468850844550747974630672691256839634019637095241473057075033925959600713500896450133668930368185523958692021808520342703432514629916712741708486280072631165070477507794138713601278262368471980351188002607866043369627156088498232745963931378658173399620340897926538848200345561358544285641270438900695124679771050257550505252621686271172449017747142989020148706694573154141513307584912742674824957623609192056091315721408312035887854144397180152071320191675756777061680584379695205723911595867224404555027800891647132137906716911477614946271776497009771662978580557096500111849481844334484229202333636021983603498075689135885750480054860831098056486903565095175466150016643315119096720168950695818663183612216402519200886166009194106554923214826631849678399606232822417183984291246024254430136084870264796132787869050599459511637526004570029227969245097786548492576605111297277477496147869044641922323448282673567966565599234527996738077231541388441438008572484581066578041132352627579133445681134320940562304523145903178299170833980966695284308702261312681981341153499218717602269115009040348617920260837942562084519546967078537249898961299915438318103147647434852139124200368820944106557089904286039154659763810563259097073820060891600704854795313798713783074301287776251405923614061529588495374215840449296291837148500728851165251523051217396553891076643300248716669216393238731637246776290812234697954812886003624687384803006087781216744567213316435938672853604629331803012335149787113242940365669759655315867791017078031500873090877549783680947800911764083137783365840378131458147978330312570001460954341043662568349145966137643455649824291552428740003385996139416705512794700249437666130667879958735353720563258762467613363021989622782529922696563573426103130307112244970458917250154125555450324173681748550994789205653521318816763028042680151303485285563929937983222901201435754396224548311019599063504270111717268808957558823740297091339332362206238402157995243388651569996230027703399209618323076099591019934183176761595584282386568652037841594793598152005576962649718743810461104498302494209044809418108220484420740518095161146377299594575105576780109501008125263566309723796495929388897884952430688896422690376624083959571363745481504727114646508989440668295566634424275157770873124148571244141084034905694745157829125448975838962550745859960653000464065585533947249442927889080690667519197964081238279250396344467065884189091344915126846087541464904350818134036489962861574478821339770347867855654203379421886697243334324543214699092038717079124601896194233882765354526562663047956594877713793158574574199032221405839441604778599546436016229382838258817143828884699983207096504302732152803152585827391920265796072871187573293124984608997098200971206281382023338595988107702421860179180366318221444284128859436397452457678255103556450888838182686268259356036633076700883942128132704726867935569905715282961797155901920084024245775992829526566103922816069219103335529523255255017403399303932453976282670274934571385429948354646611253078115704321617830381956187286931037118659840316208129960057601043704815650375855893225890456154237579177372481767486572812019042318674835281165127507691855183334039248425033641559129649380613068886270920501994714801367178187953231589637635451838253288953307073113104295104207077950733615382879813158987156190050821612762517191006322335471301247009079785465701208576864055561421414254363544615964282608405301533697252394356254246583007004609991815937069919111933366740104481772194475371738663568908786780546665181846433741476616331728125324108348167831588165304010358149634822540794989718842316420759378652127401576825241945188859733808427001550048343750516556669461630580669621563154787799786688023714818860529088780444596723983622318668401071037894903374609330341881808420970455188229923060327060324482983034911697855274171539517420199565923575698313463984962766415542960050826301537255391176674407275869716707333977948098837026182150486626430605078283644939496741013353236182956487025591072679209811238580480670267908391805168879200263202755831251199875206313800873510337845454481733658986347923450557073448080990331596827336692246007606843728380348900074777428113320866740414647445007029492578265918261325236988821477153557899199808418900880675521443336860043765584876614357706703777692205885766807296678552198991921666526919272101177664387883134619368706287595912214572089332141876502558880871037981779617095179810738486754530642955556986651307329906089721824307401148076578493465615543051237836963537762086490905771239698438095499309945984422921789185138758592840302627068039320371096355719069684473514524880644789323020512205192716239232504818212958173964669035207959978171138314995798653239288561447261887696955155070610544181343713796295088092431915065875893877667336509104450024394330946849937396081452966953619168602585174204371618690312210804631396550024094487990522423007401297187816952361960901324511930688921549964671728630255820342837829192848684989573129910178208312232742094990331459073424548024200664645426588292291938279519635689355065695743935986628480832644261655267586362926475057281658061997796440688567262826995784853208773697148201149465068563895399290547122267944995478372029039662438345221162396423545892903005391378463364912586433365952778070884560153877144214932447310765736254943559618131951044065002533547157345806960735577340219378239398503373420972844673100269270541225230043866414031283799400966184445625553959749340882814126944414884580052359691323980173818574006255014871040793960921595850086791446415256185781401928211147809716073210792512089749974834773707709334022723311266574505255472178596631859531015803507483530722266499856025221781905365243328787120758159386432561564968826603748621751651418674548425010967968163360648056763413173533501217524158702796298555894836391339504879419421051226122363747043141972940727549831921841500325156284664351821385817521784274268975529065312013992559366262007313393073862097362207977250927148496403084912024344672500529433822668068569960806575028662087553963582139696422197083317176586806148234055235624341956385443811842322531444147157545991902758988466635614832910784420961419357705884442744166786588795955991011221732250604553034844513936453089231528698821245272091282015613810069200539906475017169557940903472317755305467390722630103247194532102416197408992325221532738985252673122053897400826585039419156559565923495922628156625620614953598526106086411788084862038254641493234743709684021303374431840463973177600510244324867264590663883064193484055065381177139587357867094069982873421839552619715614094035829619109359962867612330517499524161970573925575649635668919787740496596908148613163122929293201705507130111694648780593872216967495269275571231454602794476423488291136628612901652505797001977459020797892014592050557400606780608667399334782965894056319948243234732223443216420501960298922243040597494849696826004891950563319234152239017020242841159417042996837867712972006846977238407273062783648688065134567787030112704064556581675637444319149526410705384117792542681709030083419123459781997330747963836166093029931320980296920611538807848615685767402093601753970864923685708379719543222332971629036972879820253721517292253029624734181313539406772027347234159933488376177947634745223599804138230437427026779396106161752854861312167262472812262327539011515611716373275531239503367042210341525370534230787905896748719024334765088527949168450426901235492602000916188630109515608374476260346325908898121700875356206171163147083281909886364802858344183494560016916217112150946137103063925503904858770191041041463103101244846764156373369229887108007136164851398764033986125285407279439570431308467483134850106504614643705458394762061130606901131949905227333080596857806073027218780108862114293000404098442669009224378472238955819081307432569303266325233028227096852877255252508571141133044497271701919646659818152228751433320094954884097920818750353028453519828407159361558697776314883378272858282408673902398846088844009507431263537783942747786811060431848727510423178180731081374579990698133917785479249172592508919066907572813757663733140869342823549069833174700983686219630760085102290797625830538429509508640749860591927088835368612088798043898430503272386963630764133337188337370095578850618613985881474510133795340326364011705578848227244323290938534809437891675462159505067510256636215497081306038750672444453336675580266779658381397691414874765195116009333043088676541131450082183677151249834726815118995564170237079816919746753562956919466758866797964150289530128481552356959981202667501533874211772887676534440414123386103361089621345723805973098960663268997540842790330219948118081333004491428981155998279117976387183902598753142411763728573657576609587067067210114047111511988475492992745761588668227062037615940632974311957633604499909153360157965453530355648023566819963572328836534809901200527383354463440197430260981428388280933134016123660522557360107702667458577875855603692018626868279740632047826974216632273957161243393025081976956511077374852087347985738793658930946904202483572055274705044763596490586743292312840253707534873624589855992955274526616091963106424616747024948772724579749918538357312053065377542110665918060548364509142621278991162410679827888292544163515635025293450642707061602940702185808500953171745950687728475854090140633393143748797033436410186906167352209271803663559349777874569877694893256915715428596195466191205597644806339797971454346867920827700793156954430232687589657990788965097021971696817564601586669001343702572602843129673169461683059009304106355244484544494516685720339730777653940862318118181826213363154251038599959621968497230884626102115524300769471719413239748824019519660545071936925221725895564193741277264877483285263735263184973469986216265723899178643205243770172465482276712429958713833945303931780914384582293198024633957185332930775912570197234154825278150269411455905529497872669530555121120650383843802295029117298177650046936174878334227676510009109387520013091969756140116850635521224404770499448277414423036149555761748516817676569313658618801456074154063424722941738577304566166210397927418919922495925797038936121606384026027044681410593543250159068084271188604238012017576477751541069612593141458801006926166583018647270620220084307856783271287339323360418371907412117121395054045384799004747584434379718192479796586743611350346413716580246841831703178965760059510452796209188760553069897046035906631297770375782334058227421355672269056513091042520350973691623522585259873776350533283680351150712698441994702662800362016546024353713358244536300009383736017943696426468742551343118869974620517371092686844403989687223666250295382385449717859376293151224808887909685931910388971356789935491704564833740726204064204641317921343093736270253280300549271586392974760172798794176465538893425425009552516164220908635285122303453012022327635343697236518728628101566659345196734217178773230519822679759828633748067586264164557931922386576509862295654967271158762125923063920489384857668275815294599771045586020355066374746311403488618140588544720081373521171206669736198582274483224561659621558215779868237518054430788035567976635681288165633716608318348330704436363958442207240682948890519725432407063981874896381115074687990961843694231058163090938967140483309807643936700289439780451689914945103694061282965292731123606504353351390439188274888654667977539314502080578265680532235415924434411785182804979990470011910283817889241788279932720148374782662412005645804908704797422984367007141096207870980274823818252121179675969378614625955253762502257992092793784955440148545759748624798052384447738621648597145865349644217571761418409286666784518746974732434304652481594265919145927950841035211388961122228488448504991574084489449521847441304394855916733639438325448232025857532813474658975517849160236342630874937393546046196702493557506339237798350365042614329569184458012943639441584285423691129669116061961754350139900523409798340322307855175414518399149975860677101841972042817028513697248664093383025700007049700738093146158810917763607926406339379054840410560748034835527608900587844645268673001261835277302673370608829836259404274523957613998625685566291108700577856050692146535607385029196345398274183265532573727362540375971833283147817378331513009527329428826538759997031636635483760480821199397765217036295785970824034167259756739277112978168970377218131220537068687989193338421343520031772666583019921285350578897634408477638452806450179106947308724459401021293231404578485993163349050716973381612617519876035773587568644302900691210916327418623332120335164748521634085586279831887238165585213131650235331339830472223769910393161585442837380279057917327129246115378172495278289642807348332733827636840485251713238980875817277891439170941942127313572718560088791543108677836220767635685731220309724416189990160863058728549924143622297750354330959923587508053907896429578802571764320827694707135511415381188914411821867931609373319715696107543042589328619748865406930147426628485125217396964339015481483302419354302365780572295299067461079884117317469083714999474128194062863966900995421564343165236718159322446086677636246009625711729519677201614804711016020724034561664078228809062299201689851707842891699376402842926546460228771993307771757324130949354137396300487332540119686834906292258647204186953604293500319855836631955595472966257214867980103496381023948448926669125457127382626508556394816949375234831292037657571626987301880642857697617469553162091726651028046256968420453404399887498918436372350365316922007470894723792890189785456065034695807501666294382732045064611601969190534913958248419274370931109187748638627921479565516964895246020164551383916139239125261089530640217142082978321638368491505336983918164550508004852883450440607663771248846012294016559656975000055251058304072709079281258889499384655400576259003472629174891946756972618662404692237198149212420458666149092001641677438060027322117417060327184189785642214496851330053643872669072524981384041913997485903180331309229762056030354042412638668930415145275225400678955442970131678051445866199590776297600394992470554988688910173531895619042788948425195691232629098087682354010726031689968760978980618298107896286691518216646426208657438794095743576627982372813913439203490437073126902067977492765960237921422216364246712639618086441600141399070763737789912220810256557731741237576882009553543095348133632146864326526791989541589528118274884971355640069954940697396878101949583811143112656247728720081153317176599686117829206314120360608317504748653659387323745431585193173923079007762232450612266429447395660142254577820933586177236155634108709643919391516156547853037743083335857763658305495169000418464525241822245432640283291460457840100378903950023201700413162906587425067394751118074652420671417924104222660425645000926526859012748832665691882261365253562035747349797007705710673102918677857004022682812314703066686349828522010793544683274946646938432484821076663568506933207895310604592442075966227990712498999296740050716748900133086289896603383771490908148399994743142542174725936179767573896472005575865602969570176135841310964074469186876024778318539015160124891975531039745011374903917520698787666964131198778374170149898945513549670050364139257917742078824582772124023816266088308737041240618106087098009840976436192537737752204759376659296140087286007331634712689735273295295295856677475456110419154442805903574329934006222500588130960156031634379182897858140850654160211325421321583944410355893475726640426801961920019678965272077057682106320248333047894625713482500131579525222627330357141096339308957656023192481758359228351229592021165140138770896312375762836483532428668321074511687932771608883814122025209054402048433467232168066666040422676166177457035816698586143477205405065177938331186916637074454699344008619176961888641282562791160879912772065495266905481332724802073409726258156964598613905667422750200718475816120192271797826872709856181881644222062831200621378202000656070879257939703570063231231169969993587025715060892411139841611543905493819837769254165668757854298727407085770548157078696385780553133724696478826741185478771109336683327241775200154472870808324836659495248614242837290486127977558876733462099541943034722897543596158765657600594869547458126135500561346176015116818432433107769185265273575088959786219429521790418953777445214123526082787529807669880994404889672250284153741370002072858997314117055157068183050851644191487184908764774770974427031950404442445388572461902089030144279097791277574441771943936566518725453624545428386516388532310099810312944736037150359041435950582696223014719396226200826822207597847704343933242882235631940164483430009481106332404830874068761156241527449932703914901954881357787791114348719586748261213152850863840113536710263058752289935770138304717118459326166525510944468008631224134095789079987027516829711900286406449220900507779077041325429962300056692575029583903346154207465679138914680289561890046412631823245407195190266896262883299268891005366731302583575060556693136312545226317709655563752469441346684709746278635805886846158842983370152191503948398441561897749573483564413629553386607884373619666954674592713551257656958914110251095540841241668797672010697712230069593437851941150840669680488915631025906536106807982437980425582506400869728450166800277291465132617481489803331048128075800719505816460936151480061708206748169142348744586077048319852344803658898076666973194694588229985210445670100528722409536604359386018183056190477850743092041465369962901045365433679402492053859728589020308139845368522946473162385788498185265415293555182349759290076149408937750727135988230305003212611346026228310356243291918219824897522200326031793079916344200417928680110883590362114424383872321740732611856829638266957049526000027616840102262866458074176811748270689997764925154416112988533462939072996564761893453517048815205764442637790230008657026615232838055876615692616237909760362100628986013366665841106800455573479245314478723979676479532289372207115501336240301870067668731728142298698174804566027939033281306630191708366472079990835417946136551322094826086019414059555022506833802933176902828271053500745719440099763469159723099580926114674591863035432493441939520772513133567585511478049580775165502877430459219399966593593306226594462087013014519058681736720250124601747415681284407597121544306378653927551806009522247877530161339508929274728798015268407708863613234237798705876255286816671178161946301290995228517298911291017493817951640113216232993555698811552592877671095772101811085208448254019387916898933151127158417212573188239454517065021430326169787988515416367968483157219042578534533987771018150389624291430661490175079595915912296033054051108439871842626359166906316026922948723954214853895868265690166556594866028587322073397748766990967871975543473201361855612805047455379961063754008334729465626786200297758353843064469208789913860802936521510987224766482841785702253352095423927430412359291205367283908810145175698247490085493314566863931042976003978704999337704737134121038499114728388122684518080531812386866219041424619782449935586972189988740349759133578174662508762382295774649354970501227152833054657891261580937310046111207164606325399694665201981496144094459491667830991369730350831913564373359696386220064647335006897001379880671552667660196530792986496377967387607009237902150742156612575960194683713160869838663030433750356059865360532479569432859755733101272456610511636896625141105658871906613587263989619558735169707979616985304325994188682248651636192033551134543247875380024988516456919680780165909985869580675127028595204618355941349804745041522801446826697023699859576992614454407825617584211686584205339801927724378574779581514550041222143408605862216850993123525012992621444769736233647181851340485650821660595642745263270050827272134954083515498827826314979666113369979046502076982426393099512260829206556501460590949741942126185650381265511625536633486817858369495778696392938049809933989918806423007535900625149685172652041026070381134477756793275332010351661350674419470142103983537699092610375885891797707493781129971481349268526273705062849618459449235122772357582881731252863183138184053530853134325631502487996528949154698773120513195067174841709294258461708517479011708961026933518120789684205814082483717889832590703050208597152380579080804893782856890782374795370092849430183700735308491531832249814512547691328322091869934469980313200663729183499153052619620310404017759878870830003724955734626100778848394956594677421036693204123062766678448148585412982710994642897341039881452368677217649206555250014483465980438071673574398832624764536857672854180232629662163789934245366970625381164723050345899699796475225641725289229706138684164145710395635561701684194807424788548924501327263688958173609124004834287045955163522691571897529314313695855542583657558456087797999923357559413243531414327521855670018638367561729774218292411855291438978987044569029878114516194293773092177017298481436061016451952364695833388823022866737617663768734069133206598651725610728588809093628405381797357171721991998080204067805735014312021335980900150062141597571703342058928170912923578554340541378730051298577741488921450263749119026352971985028231446377234767732630191774676885901199132992135552735167851399547686894479737703806440137271402897849524364441236730581742911182912797418427409055861679438066875288173647926167587960931483809939958388126579424276350693203411296406322699516416362049151911185918864129165426867968779727417645927542140109823873761763150930012192299125984526685621795625002764795711453960029667489395014652943186902168689065989331550918011667654852881483187626960768370598882745512267521712721456887883506834067256746880864716386857121989921094516810001100112618989522806835257488336210870369844028374531631433223197271625765754188218921137131889074559476232296567806934258468595952295338001943479516748060157200017389473606281447835505879828351797447201283598046533176586929240018449661511927608259203772404876927543788692513385221783561824627792131822591039670432684787856511584151663981243030540539507777483157606744708289332380031878691225312810392958585069532921975168925079400205961453296395056603787968840898806343900798284278472862515092955155581726838370536183512318304837283984531214085319727648573179792704907130858564762480879660387676185673085963260252791259521953862317265155455558177853469020966473743466058073934511847311595281501868574656147816938198788878422499550121705979018270676994045341033071913104303790415248818809487523018303203835003548793336126182213192860169000262751675362981268084643072973184115259309098943472304375176520113276946730162486793615416668938923230597879057692215737294823779256642727562932560980386677536897196897352448937467691269685979497621631654868309783391408446130125296712845063004128884525543918550902527831573320066204988837157808855323651766147611007374288439838353073417497560878737631266141211301425414436877178487399741094159103117297765107324429021603669593313901501777831731925634324800015464042973562363903180401198875066600183967371219937822390743681509147832152464520610968091350551062886940738484127271579153749162036719045332327761060040312349853216656716349130620635915900692766509572851659373143414444839438550639269716842537236149096141006722062711712696185095248920543485767818743990797297072844900701093756872061585710721642740142687601085535532984162912660602452452799092219695785137575912436301248772846060744717429976095550091416542715974410017735228331989275743246184047882878286509919157107403962273113414276108801973852404102897825454711651044259699503370879810978055891239748883230955165618238361063729017808563088119169652345310028348796908388313167762189061292186114877027608709577137341600244443708614638596657971853714044224656038827772011363613223665679806234182469549748131278619005647614805541922991524089553058621958814759911415660499619846493334531415294107594886746987160499500591809441488086186768271235189477218342055216771096598267505727957829786885367819338829301361058901095074770574321222974825374634959532491242766525309912159277963041755977630752466179626555291342878577732888631805881503374731363392258829128647914314402963230384716027705273333748031090100414566399683483805849762592062682902080263289319097798919655874053441401814284440706407516690938713714554348296899880600994286928341479987792717903069341288195708187541098120393958687310156162084713474453477990425827919075911774161874734173353188468085719604773235394118410377455500208968792236886782052306854094030076764486823319368179925566505084174285207861179481515554435785251834600368879274220344860165054108787591353325410988952049016182746045663496353398868099534133988261464647385423502954651796283193835637823035289058937266984863210404910027887678110397935378028691301523042345144234020469236557543625800734230220235494553581181840096712206625387531385122382811923815755284674586402140786243413245258690042284662484113988090376990776530926614255582043816877638974371191477402086774588503247335877072814714162796708669930073319508739515172334378930674251750373129934435135857234369011943949033499588978923574570636486690028610779074692125353190273445540138554758709746385373665940709567572191861531838608853707016895576598651617897777687816743359561273449625635146254678180061071079147837060765189899266146963680027239938847586740213144410446994345553146182256181154448636524534841906251237904237304785241725909918935660375964014930972639687655341703729012970357720057477717118904034142397694195760030490677970080148595639508647947534956430071835827676101530230231769122838800042443145969396221694924119718941320969797638170711892845022582684861581792609702486026616357145194053356131636933024584070539515630948081722142419937657348593997762376394311056233325399363705946964923047077023197225514643098188366118145532213893224883970368692540946239461922382799659150083856073417195109319876302206541791423955901234116039755661060362809560138935047525626924455222361861932050659532413727464717377595633567189472088722456274097063218678699251187564956885544461839960197749800167943528250588622343784510612409290971755454955673052814161621560208859382204985479592503355857167131515110266145241962534138913752236337439931135801808153076473753976264817343975299265425166472528885142292896211051957721573286264680118759917374435540315284211492051881481828681495501811234321161788287996756433939979620786927492712711905911460960645881227907813461263300692142566304667755045045895352139577711469327280392895307447404585935618957505535415591322272043777330199398131887082834215006797164423767451438912572405577859872877598799331796530536053751635058967672623121289563615126300646066859409673099909717776567284094683540732899060498258412043965401379171718638062650656079416805385420507467556954593559215765036691036817944532541772193258773072961032684389336501686812054537209478870065111991089881097544803167209946027414842690418892848372923613175611178117439326454109781606786126222953081620811348032234429178215332216136616030582640146985394692199375185375015944831817534139612559290255826531448778211195810776222975054188737946926398148991397497748505007936437007293688938520451256889605283445798246669441196664409066160964095764214699712087532268380840318097289269274603636373771130674064224503298569177733139057838617599977015346486194052101532096556496317205791763516509731944036799052022915867692499180163814928081357957204335007870092476043638029406930168986040376619097290465356932026545113623876101739723889265212262703034545510529193567272230294393678613554710818189523062408777805252934769152259040315837788839967901683700795402788503694478225742251478154658607959945246898440025463838949367787394263896732891930078215306771986952477821704114141979847076461165354436151868951347190046888894958000607567165182787455232931748238245651845789251464861413364201416659298428788194253446766054912445092855432992410141416392695172324323522400229832776194067168754812637137539939177610412625609943826081348887010436554018403812063766719737974777316421593749943100535161271666964035393238267222784283273074266178227114360267095281611431911283713054316330774043153190846225500480673127435798337692363456049991583229406916369393296226466842327455894908384529431807403728499872566787803060833889672828321309899924202131467951312689215945249182636329431739119161936687827633112953939572156896698879615953189860633437502371564456849294522673771071757403399117575796907676394883583780560348313792673216106456935094585303910654806683529722257621372525662232748878082846802747824623904053930856759009600893960759692514804004913547629100255527206595770636843375780976837111847648029997773762067426698100822739787562796211361124421082684320594674054303313565076694710475810887082591827706297818813219106166620045352493951332531940537236908088936472578013694466143418962644514798730134710151217556350594136368702150660844694906444875298394499857696645130792610529012307679839256384867739258769800787129849111951103412972902521119118597939647292572088763624086371834389902805157826122597850588123416599268098846333269700906126504517824658996488292319829905157366979052382710111143851864785082178319540760474317511991457115527413118844446131766784012333100884954560514974303470280495498333984080644545614016332130408171530284670371781406010105674257976940450340250806482710459865198053432670076406509125534128350378069739797592365077231113874002728066155294756725761887359895829048273333950401963374075627768585292439774198409655336743208899603756981775768452886300737382096455738518235868209902025579133183976630131443501165735639322599226883170076405831029582400812604032755572887858505898219851562996626716391146224756628409253554118701010820801267903856134828006240430937478845096335875865358134085796862491984897401600940369292435734486220334614523008415714385232689359017081828726252755049512760236506203232387751997551562138630036862043286125636255114284350130313676824837600129210462730837377334877270757344355329142831299742274796983984683209775349823511313979491870143957392547509486137009818803959324767489768431276350876137257648692412862018602299769386879971705251914784387662493301894477695326508487494967963063008041116541024997285344598448385359391933472693445302451749440507318321930136804428234155567158388560867167371106597702203996117728718872648254176080563552332212597184849687866022332727752838601677317450942682309765118926136147461460930021953894582336821460490711698994068240666424025021733442342481770008462806507297570079848778485998652895443641862832445711772943017373124369065624862071052149838680213248914991784905797994690882567969569716174750825298292824982795438851926074670405530223687533399607580959088641506219315911276961336238556914232611490326762413433115903038356683246687903559166430136974789873754774506425669507482665359533775922189789984784276432269904968825142150277214668048287962985443509891130946253590597215176589067974857522529428883622355580851666994303640394455207609591088759300359597603908786354004023405660756703079180636040752747104886499520007556825949124901999316591741280513937502782037830166205044569557071675496783487751749629272151977600758697798611215761417128382917642788489110096404992032143196166129511131772360871827156549030691538358702807525959175721632762381747313889683125920675392654968058091145571322771876009621786074665707001326798554238192815939020277560950382472915627178151478914602357867200983509888455841416926347618235299994828341641329647569110015386682393393413306816407867484473316007775871451309741835132879640476884885279592679321957285385852826153118227373287423509456956839074581549747841803144135863927710275213211985260371225720194838426294728948092754201974675817068797259932047484852142335842387929102254565584828032276894860015915929225684902771657769490494557567657018692952453561441680518946737976286987061590405589836208672238720211702392515186556630637264974845048536070549505414205138826059302307526265033474339987001252085946269680401811372484111229046188353418004470160603236269720928257888368644662798843818264559706337957804657731702766500349265577057015809902129401332781646741860250055863740620825552708704516316808114578157725955973805992558981759792065520198729578185944696002761972867920586724705388903783028949675948409726932516686886823889992737529211226824021734545212659375566738893849581848736820060458790632406000471577600749242237699441847512271758918803903010173426882807776272573215812776155064156412718092240141062464852365026040132431206147500408373005434452872226926395204460184716694574495719776171862845042068609881899415713074355375222412515690635076467327143820195982220588378966264341855210953412050236640974831517945663596932482516730412124826723400219472511481008387019690539680115542143909170429124474658794377608821875979370124330130182503116352182264527280013184911847835617029534989247848454325819322679249690920998047371350585628777464713909335412319926945950315089975673648526612616177535967227178111109729006863615139523325320705705405449918901689531277593166864053585381591300227883467715967466669865775024443535907399611379996334691439604895066949007522609504116199823086015583850302093662306685252768916611787221470809469946495710773536134026251719305291248439965409400766276907836802731331039201150888846048200700079588694869764823747252668348667753753488607700500552108911377639065758836214372588124909677643715798871419480106888318825792843292217199431363519862316681758146688045782820454757312908246042451922014859925474409155803075266583810157079780556684204991319385248783970181902235468071260891525623903132620225870197956967229311341967224841712582321485955219178452458222559700340909969945902758183096976316559171809637272803201794341049688446365879923254082707327201148799665552814938845835211292224430648948145656641449146341096450374870732319507891108140336342638281576541494862557839652317601753112954630506853439327692980051856124229272468231424133651604166456657819156608635284998779158310607289492084020006185906601160142191650819780992192373002901723417618350653912683725612007741552514069234265235773561675701473296693345971119934478605259287976579645842989535455906607749509876575504756663820140386212574393207448787797325858638601466491502067999058089878739659758696456830684284003197043753994198920687060186823299265219321879580321759593031025404223816447715919392966931620990626956712654435761063925013977669601767072425083594943126462750160226370450269318675771541072805008105981515966027364872158999086063867653685713037708531522646876732796116239847158386554104838671886978240795761347632365966395999771714198304859332153552830105086430223249410272849560208692117725451737641437797684350130743770614806952252578765484835517463109573625763573787602967139859332780197879454207873989719374615987157653020175164011486466549592259013107018640741618437604422870137500388146931388630311270907896785733363273970574575167860595613176151816249166938436767389292126129711928223030371877558924238278662290896302866124627449707762651633628032662905028365455687724568390031324383999179196747244046247764624263139599708679887455527504061379095026482652025950038426632934421269331911343795174728931959414158879998687529061725110131733548399764436540858864645184577797300717938502240812898972313600780926694414412585266939174114198576286496979733273508435761487296498461719147845313784550162631829407250295292559652641862735030607824224733752146987964052397523357000680227678397834655907678529535203173884258485208449026295839868983120286194261189962681479147377412571300089056741320118425929762026368372155356918243272331774054958574348418779390370728252502577250993064850302343175627086404089068983765883538156801270321139269608439745369597795386726096448552862773657237264427729217632526011987791977171665603401300752488345308801593145584957460129879753195412600453318199113601859636388665608326536321252112526945622400645010792870735434917013580464749262991303624516072137447600078625213497705052219006999269222404746118645452273825271611284001167780693876171437023356346543706779633933131141166924656276939912335128639495825583511191267232879729828206627275202621421592068764176713696092714443594620617690522048568153216163882455102677352070743530919289765853159858685978678345101863473426954857089592801533527941267174440142527083635979538067746878531514881405260994617193577233523360076231286787982798012256451944711311867957528061800074602366549360664798652720750070326888193914835299920482722935931153601233313016577562437635263684616419157237198289923314991966187059760283181207062077736496255805948113939571859082049563237138508673353998814302305765194667795262734891340947593273673028134689978194843302085931522093472830960735450974492957325930269528377353066402109422988653094466077903771924572356039315869615089633930615060827477426042230681415368210403263843983441391426458142668667629441424899965114250654257803457415200333192294498402923246899066795717345786255983850379579011746427976363254474713982888224666553004703534447082806643046958053337864611655690964087936230872367639318139248289915428789332186752216362246771293592023908744712043886729636264049927277981251816252774249851605521236851951128181715272572481168123720224068464309958046524442948660365725637348237879190119696768761782729971326117349531286072258482412806221813618547089697192933026592092973449479761912122546892489573629414456398201065021793541517344323964887061179786344515600722021861853941492639198388604506537365403277077142101163453875418775851335733693777573799224811595493619045793716055690308467579002178153219275367737139020020847649183424161655185664394123556449753022471684426847203151941815765902487263636175640954284277113259918095514026397035281626119732614019347899563586068576946613725864750804832341804755755635810356124619751779295319369413200708587356806035483784212707678332010934908914501187984813997296696709239339129180785581177719283218214667732572295341415110002090031912890294414020618267099561701429030321047613967708269924878145263594051917444601196440153191415764447031449719876363387400264194076750186462510416703632065281615120192239203124276348960503392432622079546271931299171535421305625499225092017574808973404432789805248878286634355636261504566970545797631609956157368942619638515260818212837648658982420581462569917131838949454348520141548906957117369821138579750170924711825323531810794471691132991954917893782698287775551141382598574515035561014579924300227917800602196193359296941277560012355215677386709534884436887700099407637550192948967414788463332482769501055060149212147650837319708984571095706741853327771096867964071720460075747049159229467947667473205681663114675870260704289599918024359025032699234068363454858007395623475718858206536822924913873845296508710479492795199866826357480957366621777187874743064481266209004661226860311632422340663650826968856704014382583517663543267295846701801500305640476150151098211678085638587521372799295707723024676855661335560053386117707145684932093447873292737151971446707130900840138485031322403914220618582237867227572723047737049352176524342056001193702599919797407532596191171903281758121006845979171845489589964215435669950591697256990238202275457371498561156670213650949705664833696954821052757516800641891580690308278277873851766300282466781611795819119983183095481758370400342930592747689928961628000452821501799728704986911643698825932773172606013508331753798568745362479685452425905163919081388013751315779717865424479832664131026129605362200785295162788925869143853641796263679759737255877099116397467426082439258249930396730281423574168445806787574635604679839688738869432904280942533974643573726188833632673301405485453420586659802362675997566811001534347104253032440550282337453420831623961260988953117497035610829102287785068429663429242164224397798676276071654961060865813660738175715532241054312157043700436011542480107511793323184973898089521507509198891895060058073720649198302909658897052601519071982089933981584060766462593929640294765627505824852575224291605418509989309502433656515268519225761064958362775044541745707201478475166622874326969478456940695197257504890987782486590192748824277789287472732134415537911374981677508669618915373267778410643307313418925854713903721715374292103355598383144240596140266152198337285119379389789807207304020263165856353553078380740593274252214780508784332416329805085490570807041225166436872437354335989266392057296962765964505557160380539953172473882218373752563113252230320022815299649342128867341734995945584231650390697031034194798451340222101565524273911511789628113212056455179986551074436522834016384387286208431404278769693033992035361299615100203861955332916646234453477770349036577301355948500193656275498430109876196512251993253032945374725725562956148957201149728043611726796250532763932107191157667780835072400941312362356198614364803754301624135335241413333741440753185682814157362708132380423169014866276890486199287082167400266405873315228070203974757316163672488067852206594651849787147203372575094880821726754438227030111260219994282839469907305741404443174164946098731507130478475808495017798626907014424680403666440939554457834251275157583398472346054368054168751041311541807949880873341516570763986121537348465267910448369150384019215257363585413523027244557063555030887837551682473229681360222525828188425500998863328902717772259532040846537035704589080269196902110397591088161592301993871051107776735302590192083439733693613473581931308838510486032638202115389853534230772766223801457064044128752869112968343795582555503876399680452286564486059367590823112770953455441161493947463053943156205720155804238972883745714027394540191337225377691551485540681954493326146956002434139980352627940822194417189220386944059762621332007680352367164015166393768695709086076220894293799954697826501060208800165395098757849448461361929476627344271379456466395711154370605590028293014151100160650395172421210324603150716787904473145956615474179410989117811274988201853302053788468523113364710039605444492356365603634240941676127563006390994582457791372956597845664602667053986184199730666048879987281849083603036778663895815155595158114622799178264173504794285863684527193085577741430529315866791956191416766054916684643673331500474725690370289127601421891616535771514082453407870534646214517356033302817894800450420290081186396383405077299391179538525692390767727978484912752085015299261519001336692081004074620039742539421153124558582571149507013556877943236688048787581015492742021920881097708017996654815125399409939419060065899019883630915730725902635082294741221146150426041044608260906419207038555211470119067474939304402383770302933554748341707646566998147024218293781578364489462210210242281471453650329711431451123292440421122195054160401435446051228334691612972032280379992647539162668660520043052379585786938235923768692143624111938650799539467952206678006580837458187680267860076204703394522339035436284846059296964664597742428231593586675662890850338565838956371457799790797188181474094976106652141336718660071774687206904045676724490105887563057353567627376494982758850840751645674941675303507694415938089415208801471922488165640745157111269775634047086475484595479327570371025466250359566807559419615991359529829990720689363881516542432700291267814961355731558387606560776728235270580204002345457818280548285425959278195383484546234936626797279847044195193537251763937276223339482208088844526767774121337937760427565004475135550906931106624412840580252918485472697966811886083635615480766804627954923487395527010512041624889646079640583661135862592862590117317638809233961899054163249964062219768453929980311103208067802213676640434323079245559574806767036140609055908017169188972842107427251770047909055892889876793246898367766989711746222236438579682757609798899923078325444241568609666563567918265920385869311201713667734211309591929921158861433651830331644783363981440732948985132740337878514925748413959319147722805585218170709395870219137439031519256783847577041115998542381845043834133431639259757800525416813826396038848491189788983359370300123062680609097384810277038107209044427347539666451463714908891509026218111708172629722263124682597943020948438419454086601373336481385573217997683208742922435160094376184488926826826325425389662391501018953592116638280588461024708328691939530547177028212864828006041153086432098424162037987358229012236399246414109879154270713069073943239918550802519687821673124986689288224064910712105826625313274084441493426688066546516924135726425552612809145792891460753717735738121441376634721550646708399361104598355707939161138215127986245418053834759115830974346711521339999708902109282667937992585703387509854801362055801548222644348697406492007265150259496410468592027612259091997452208425039680477689968583150791885990825752584761589512676968920061846958895551726446305773054593645071723198952498051394498375144974344011922756111808127799368690063000500162790218482997385037841193841870423990105900411133179429137414274881031444162433894927799622175833954124313822565620804551465846532358204035031399839262375509937257078976748693795468566953350432511960290138410880690195771781719686864827211333077393982136011876988592354370190460128240020169888308790569865893786982810813314139952012330203088064212491092752104214150406443702759709879472591163496264137661522945293531488660072821080665167169449577537008398109071023273237381482921331433973858257989438896300932641015922542445589070422070200921151200981571622842956538838453420003199137127430315087535947770581441124050231804675273935974759132515333126682882383387287725895087000320704264285704870320820503128680263877547797753091086466563882001930879071939160638517997430755613520525007576800464684914496741111583392420206774127102876315163655740830503579114897524154053476532707967646072334678059138241258978989066731828481337057597088138738871445187720836993606360344101959740887754607137951054802359569142617853669000072922948136802248928450335492294186951489821884216100651646085312703185861985879329644159401096894112757490314400113528437684274258587892503259936595176865518435260955068793815307025942895826797429529794789130134144786528726592246065114306899382065727947276188915211578988430073908983697470897534720833857195459287625149045850806973838630438671817423005060920452515859522660268239828464959016314421294855597055475967242141623253471685929349861333014365165276379460566312887537866637324665468363086217840641395314263612120810207808799849813125732201669007017955215217389945511408447657053102867352319266997931437508090528560063135574505643820863402992202121946671236024946078702595036595962533370327152197812203885483391611707051140275631520832936120759216989810377919144242772842175001513878113723700889855295898464019509027644881596579445824245010628566826406114635751164397097618208566579818306917950298206354774505286232835777410550883774661827848494383885211148334033214083496404008857292816086085084866118276321835727335233681195912059996795412294683999627834053868902777970936483758721775272094595810063465343799449028554137758650127987520501748124950181275066255866449742248148762326284008238147495323714951841087517333751358174305932711543897853822901836867861058490942931139532986407173807930851024283201754024855244049338235197830562135311969590271414119013199179799928118099030557531285534108267915162407820795827490091978211673654314068668224550698930403568646658704092276043597026223881928267724068343533711847362610829709777896975818215793437385848548031369926404031465170703227756936693510773114811785211586049990390844207188422061235703966364001369787185110859157240953429822626074445873124117654736654301387902936159845984937097742800257496529719696231823212489643498099993994349047549186823080567642349728142602155021777975555154376234310723543974938310795702896144379395996863163855027493377720980562848132303630798489701669341738201318826070840780520482017792799838038438997309996933899063185973689049323456707364935039825703938863640054340687118977276800262709046639273120090285000736880662405335915260801528790774330607195325236047994077813835402973829845605117491883080711975261454473992761748680966568726161453020725312445515843780669635607545495260550983147417354401054882234298591479418699757932819034327610946910425203137716485429722470582402121178569512171208514750597454266451576540112399003409342703891959830651197412073415490892616752221891000996792455117130577983526093536923160296885587282404276079248977455471664455497590825842817639636798135884328624728660789842211554784052105413841705600559577094674342801675908326251911388094643623163884319984713088914745162390471906063992350233730607345059006164229628466655412832481551364613197500084385403347334913212434246406620223034720153643081065680157146563329314713103858773712107053495253555709591623760824316099760787049978976211880181255783601966067299662326586999915818249669265232110117086126257149688611504285978310050786963629694483051148880627936868071985155650557275467491512432994512816790362738771502777760043609352860744700168987675499740486723176315335982643593561643487366922674565208200088212214521720217544650206614574421185100883164924476446144814896195876928543095008320023264009208236473486673495744046445030936796047880630100605199455149854494468756316534027698358164683184244702596435007590043790512465728023351822563570747606862948952098433770712565226097930822719062186064988102442618869254972189631749347515266772931212045678289931462415535348255887684064867518706575583267478302018118243209212814178230271583606377535810268426491226144623146758136225641219297513828808620812785243569370513022401808387924000840462419094567540728622086534182867402831844994308158728545487758734738460235298020111096689388373500150773099962260457607920120394757211863193977725116561850502941707513600210408410857028163852753562779604493723989133883335319063296468433348464835377903720827686652469133445437886868774374945481964209842944653299536923796351927512221074688825573668815595117205308615578757971724257294419344306060313664796382352579414704003733671317995408684774473795653970188118001698055584719837150886755461255229980193383016941538944724413366063784676099621580608360058176331590749860799110391594016190468172668954200164475041396901833677403756729669826460393895370257111007643037557399373753435672793181002704045826737739116828234037555009278280120581269948455590807500160890850159413995329056281921291917081365764960353561770062844012658957669301656414151482321745460337243613210819867656231897417529769952797431398750066254591239122688407562023917645981622245230578360334516096211323525585217231424555114334579010827618783111521696454793906709143911706111052798040931138455950970247156940347896847933978582120724719528734223663396110931007125591618339561800398587440382626365589001548102752783751122582173203884130736914626329728298730088026742306335178045418997823907308641066584033606244272209509820231522617432616940912002103850382754412664430449623337502208469574646537797599962003211896721136197519410663596981217664157030801012902853767026500704119213334581935373030660311912643984884880657835777182766152889727396968225662800955382837455464771136709808705994686529999566371875863256557013637337926731361999161811623272795737283008352717398424667109314033971390702612906356331996694517939500748089626296128962904162707589217682332240753277961669281399085843457811891293601861965936522798179538729931655882832536317895236901650793286999631410185112522855311588614592687892143016853193174588451197910045093826378113786899709467787989352414958338871216418539592820879611357157451249103375533965874754391931113951083503084374352290480662862919806399948625014461414728093864216590968953036693961391095330929659747864279801113143840250153918697703218908884969155179067809168587670262056065792414225067316091474690765849993045756311916697012814311015550988490736906104957380711546068300689207994993896411057944932542877633082228152133499005785713209207169280888512899102176173287456254888935501294252125867068935925708939267907235691008412044676789166073616103019633617653514089994815175669709530200014839178248346460191259705721801451062104288930757934012015375795807777206513074761967327676571295414729598825003457398668525638275078085996683930370190358163562317527623547340407480115888647518499424392297150190437189499753215632757266823780520707028850337918380327933592130533530774785059985317937889990913779197025314750146513824600704177776786232644388707116426327092765754238440971789297372054872278148126651456934587328956658866593754354006643689789166651708134629176370516383723542886024624184020410657911253113431533672902202489576796802959071988158019249222069846384540205062532141451825318729876753407353405512539463647660592201801737155531910238134237090979552047881375021716722835059260607259917523174936713769968111605364089570420651191302380579501879166044903116561996753154586228003570522325383516768953838420750145976543982164383330274372783954636703349017544163276870680016349632002637252551527736312602235552747386102423272746293621938619656124047476210926241550327229986937148970700650370722186845861974288026195707587318945713633033273155867712349988161616946557776175358995720784567338659644806978349049868264356813172997359187447480019490221628678409078630323329275507952574656358634842726063615258209107406103809253488539392653776152417232557677097875513317956551016270291666006791551369694830620323713439585516814871108293147490991789399406830961613530506679558208074277153565314409939614667846130914514939218088256833663802525604892668729274833099542495556556099116487182745325949738405331540169118937969836391397963455441671400180973908207482304327861197632322906328583605509289441690505212287704009800016516893404699685534423044348265840912442034224098924283355572529593953194282481391016239630176449862081280709457237348975344159855049902108232185441145868964804500130759232036988222733774229608820543372973851822025852219961592606163851653659467682027508628554895482165004728727523982687735922643359573676095062880217403849179859573390957216832300589970168248316105569497311853054739893645022345619451088365931372678232730793808292081217782991689423404083082010862896186112608234285640658782025228169122202403467128308150314147950647352507608640531058820929112254846731445205526145985280556872672345595492008161156361733934832910317242662211759045832475090783586043023375666663506831807681300855043633365641810004930586957581918869965174617873030300701317848763624073019443679988763782965293239094500316106272118135464324484945374948710939706099057509114992829576171058604684531080625976326337604713093727925815021263199908846498903816438457079566825299457304089670535666585025994900269383937190192218718678253201190305355647912732614515797585722035236223659138176132916957138703766205689714914522066137866310550453273944643558771703646550714506874148815025265560932995120020969537801273206859121622125146615584873374762452921596551409510154071713766345718587683337902671761257401906343775854667317772814742762637546419020104452216702078301230952310632248902275308623181368912090029666236212284892958673481875870094373559299030365774119469159828802141066082456312055644659272179811195898340567279158199254800287960916357240345064245716792046327633323921799514420001301100845890771376074341851289985599031018948904781406964217698775444658026334688943869378970538952530944125069701013583246685017730464484563796982841750262029367901025141903543977064422405552522204857695091482111123865178576507938697284821852875666277327917771639818794556292604601154904776849552169356206119516230535619647368125837939684216161679099904250723351905240799927240385439590743652605454259923161991308007548719110585039446468555867216510278434146349851766143229650931014189767064517207558081675697954994167201009809186064390248770947303119632635386172581578670200593426963758570895400636089458731469892479693925065519955011483789321522439744677873031158089898992549854502456725123721829660724339466960073261646192436131779246951030475821250232439805574177700650112153661509682974074035700985805700556501358632387018423340358942965557615914178005231250696238164813339577400575066839774847097322993807161562059419424467448494108767588256520266040927552016947271265320926801927215804465111901339882713619623894008630850083866610783357606269203944336409949633811360658304216716173042929834260527736131327495607358922816093384888767037951522226253638468661779541214402267139592114654189888709565372987756411025329598402610032174290228116495558608160114619146448500533809162904869331627689370692825791124163150799436333699670113766329515413651427753263059611005053436593405211494540615117104521358281847382157217186956682529116014236479845343143877484679918548483370273579678749468599156453050437931579162450450834834987225091379222923200690160244263402788594013607581917372809174395823184674322387317426410488894958404848382151355827803810306265022592017584188803628327528537538555989366059944310916181164268819611406334930460516130544836439758399692323208842262074762242889621428417820149123365032639405735553187873504478996600105870680187791925253699015944982020413121608527431414898655355166663885012246771959305413795155134176074442181778157319471386496641111849594484897758939370566293892014342666936117327859560080003646034942484987093907033969908563486346422599756110266291944310964302156253924397693328998909384021540943328248413202433543086796362206588282368055968985522179542478487355108748543394379405036814209866430633127782560199305562706465180699493568819739843842895398476272825599326046864282166280147945598494439949541425032953414438606494125890870587703776026624789061145388890788639998970743154057904132956988491667436481503569544674717960071989395415795716935233381560744832644263830326276268063443319284556355264141014223095515866582450358560485265908436262830581504508832819190272882457726333588546886563416116090009926636650111716695422551827648333179403903184052107267042118674799521200613251097679509543453551322610210941801898444885495848191347847978231524625353051990336951844493122608511441450201100830694121137126613658167641454226695563964570690760423615414425688527634223489311355247501983186012184966145097724780109568326831432137338101598424417729230554560352927045919991049796172325239266396260872889202979722723854100346411193201130051720015492545497018655815894937488091636420945234698847570004187142534857977257539547563021858856648358013024100278386243484043726646084589287458436130819658157887269940765660840620220901097059073829558058219955959859710580352110394349931468250174606262522547777972336647754167468999767549021692729892224295516622048660992455133525118701219263983502634601114143774737669046994833692162029200855556292170329152715462624052497343215309017969014546478641632116266493720777788405206330624661816679397351865053184705357479454766241987172300450407397387195668119988140769219114993819294426606241710736071611872104969971970061184653201829921756210613009155564834630353587075654602864982475510245916290677705590129761639682062748241048053663025664867302192200599839084698759520049519366637553199090979797988473799265527747481008526986754247556592060222470047061997506120395207393182280248485378940551680227410945455078382793176715572423838415721871137994976113834759598121455373076872333520675577342868135579239117791048160720645664039451847252222930090397839026182979292331503355033765814498005869790414744034305397856112908493759013140052828577863319190807158832302209385087615890171772080716263401795694996606189696437386235462843252065546447996418620797834155622657291952259750004606463251316863013342846852900676259797009065302163128681865994910253824530223783451708673996009092690921104472839675165394587731513718168551557599953057041163699805803214116542221586569597479562469598621340216321021709184453511108136037346027848507613380643546698673511354071694160746218512820693038216562797764551309823898055210604868720550178751236123649841996610727115658843609780300137637952945519605335750427251643202083548404009352274914988797054766661040641581300156615876133858119724643196704953775974857206933321598255774283415052109328437805287174536017664943016676903473807540760011831232958771021321323238932700358571166250457924194807598457568751896937258398766786739176115451111506181930668982108470911788481217905682964521811178976307737859290994281853521026690892654511305246640345152304419096650622838073688682181538833676977296273114022507619984045791267689227160335413024665383570233970278717631136107067443587035106695890035938726132136025476683111931158026886678000700283257312178761702604629629205392336506916575312617657696773207289722949029158810442161645097331834545359620661892371664029521912988681246987427370681462740403199434178204511534036359831093251767991923938298541389262791165436193203169084883013614066523313517446665261130692885782927231320889083066807112708580424614122329528031398381339620889667487325627547889065236663558089667523326872090429138991473988058954427659015749815883161872919367972020679092099987731618488227398541222835655797075109785448577466805859563678479305069792686556476487269751195282146834508609404483882945282674170251026890740308558895540705552283246166753319397083265243508696734899273822804068439208166323952574494137138131885293591753242437125028426832791395981847584557616005547591197201999487709246007746177542948387470768407457519965066404645177160704768174363113100080832345734433138840564906679032841855180028675295242150119883395502277267843331259247003532546275690603859891334575080547534713470623186227534568793234321320455026002367034313627461884772764073694650570777165612995956910248227079454906464222710135719694649435585155906344986811024719985058305914792409698822571429056260831514027275124812239886454165808767491867330309937471199848453743116621142624283840584752229109736495841708313503233043143737034071247759745584636953489140841928919184649827294483184100506751200342683936221168637901392645638007869422321434062114665160862842218554689046829394051595176976235833781234426283431390525273495004174738546296088481229512763078015619230366876916473449337572621471705060260804800669688934898066742107432617484892272382358404755049371400947126178740306872321446066439577485551411772006104875353875244215159924861339277336628905411226673112398558691563609424345168854918871719369441281433269088611948180306996438325737124962392628738233147539146974374646692157493895220885453544537711074768413950683156222093972959483677401785063742959021980705898436848784225865706746109591199051395353672889238316627990493852961734962697387821823226338372041845541268896520837265551766374342263942802356767616518364655860299654101046620309545045714122733665441142765106943867077913101302939971249842484632626051533657933027264927838610642813534876214229489003903701609920114131340824055651360992943258422168798355819831765055809692490280294083501804089135556382657881247757541864318525566397550306917293309224490489108596864117064898561183593694807449553326221951529886184645486809247016588649774844845688128223948700144113079532395504702119290850504148926552886604244182281871169903742348109151574456725288936146402702736141903072093296733837262352655670841887442676390161820394680545542662970904411036231199536182755804044749955180664520137219888314813760942643370901370137010185348113039236814417055321145312577739867824254787876001170212093081287494543014831233273249786545973749109064795835464218864372797008797564351235396361524178016918507382039848482072626855624126582022481518779731863273809397340906083115613029334195587441680343640704863100574141878171433162158643658600905255384175016041691810893282035983978536325601413535908961360311591695823955242146816537796349914416367132418346451613422953765996735956413014420748876342099463099097094405834835848209073888877391125798983364248033983572574270158377817779639195176284778503857090975346815340184922420163763633510740519991304097090826593485494162012481335914433547872980253779698283751038712882021626814959598371615253128810201357093988646131804957012141998355757449870827045636841197179150707317344466110344937615315638127842473737206573785866662560662838234650373449016154165480296995412182143363452526797271641622767004311666269005602966719760087756418680953289953018590059218260059263866996389193489534689528492749306855306560224523598416412196621586543972039861736925671010187669901193225176766435860947928738306656349985462876788954363198325324176391450447699153164815692848763960973306718417445498977578004301936173469660919143545364384248066729656716371448458540863339758118289129661333546446893488702138134209921049782533628851725783088401275361443087658614954788459422065482119230304327183571780432653333914433456907525570385656525893031901675729310047507670041687540083735073467168418526518921392162257892935996242603340916758788893943492729477626101976233568648926259471607317968497185838766974365459732477455279125570013124695690956293880566149872205619107233859909565012110956860279151047219005374710812644866640001086545097663481223606069662297268040197564857528254267985736607430231464012439755191859137581166947925739098015060969106526678099740966142633206161447499143436978881437711202088850489238139497639191868821848122911111291250060919781578764958249882013152990288455296415013888706033188937775746675350783605917091826122825490191431683999239955258817709520096115095644368417292034007927235461422955074696399155976825916102794415605539620170672624954778789321167828550652324631645346354277078706805370194013992162640998377187533907066128866168196286267216099778258787177865765283561273815203911980519600540489483865733788366103595671106054840634350490391281087771478046158030992097940824748966385461993525405934351657771750149456424111870720264461857256741446107640328579773927956076734373609440713933658928031850488423474794664095778609888938281435817932067268679742159760066722875125793332188062056414635348978231045234512548863838134323405438838656015987873742263846566923871267861818741893022137547097317274851006470850339115896940035507835328548820899102144170938970241669032743574912077216880712510867274663563954351582297739066861635884190992075806102787171691778664403365323872867485638413239388715345294323366495671195816871843976746115462323394908744076445717945291190202524748353450052802734655639608970783673732440566800584448592648096465280912984156520696045475499247378455074262801424389505182433412075951417455429467063955433764059919194076655491936179600162695374702455034043917129896388524184027851654369345354215825124745661569478909240729875929974883175708183924161359505252889473572034448557925602901807013309878037159593809862154226241080165144702569454876393151262571950087355598127653229296126416185283411985993228249113508980651710979324401214149851820537301679216802887705093620903864057602826821608509221638159930182563339215474356294982686437517956033713153220633430536184577207094050065188349450469594833325577483510493529690767008082953240752218526287592555578995561696452532710275095681851905017142793361265290482056691856797744691596445623700126964843000472795830901139476121766034465037830709133597991674438417628640864349428327473931796672106399928186742912835642108072076847017152374218723482375024791456103288140715591871753029454308382611261458494488592572996102928182208190782167006373638875307866926509643171618248826764866365650421633919702510926785584106211305515674101763603285888233160859308340709181524856505501142630221688724069830216740245256092233794315683585537343353717619015321965384184705742885020212811811131472415934853212883272609415531491025326616544460328151094523361545937312119455355182600377532190100911615452647849333912324963080604061165029184304294711216524187956718203808898275843641411560282757113265310651621262058706461860329098261901446813897564672921553087048497474466527370267616400597399297938822023418138091170240999422140116382133103698036814934917957210821062858154227867760727036794068228244253474147687157734847599123630715704479772229254504066738682220493647776405836444685124626377144584250161046090928110276318715001926604320427161761779248455405669410592470320223043443553525451697192415884528312853916159267655624871007783454838979086967702019844727476017730371091527215255780453361411320970067208696150546321593538902102680134650775183403772587639799716340890230322887202654892168436749513826665480630784877539150517717559221789166171221275054275709377555099893908061718013127365710107353969617544998864453410667847104366845184112136074219721167109883372318486451791825094828246248331088079407717839444770317803226952783786474839932748333479020980682713551380309949866976788916294370472520609494615378070997265765507933002064580009322501977156918743415739548578525064654890190452957638356916638534893756979763715943784349387501917253397635147424539940959343368329908559375497426227001600578215917212990450217000910987455688104585994612589333910024067186148580580250376894717493580491167357178291278920310912929135807260947121665677214604800045655315865650673635564152503731410387572422964843662979479096225779329307772289224449253845992033067099298309193714673719887278509585742526681953443002951621542835899304765678000336979929955750280029943621428045231940783094628654703213659517876619011512178653589869449786610788491979512162096807320572082885798124548162878012280713917031966055574632198916113718132934006484484212073507994363863123387778634338489971030653359311965065682141177144651227024326732155160829370718874112315328536424548197546551415466416977096299284942620057218698751245200340045666335038950867445383910044809566189834415398964155935358308272864758200294797498668901384318875917115687596429925634413847506105455279324582291021018370864192767359624952008327344306517285189338107452401696253103009248284160271327992197183212464400781323353616299603799370086826200870010935521361742710848023918532749805126548164509969453392484431198996971305897878905241434312911726116096370412483728093218999995862844405081614664049188093239084139804666430235035689448254586755107700476465855246791759061079487521253000172423302778354485558693301890188498461219549721815282430569449105491294963939386915635406531810522567140343340980098327403030618090982531568100247956173189923149048217552757486976645216968218928189748482792928927135908558360064760006779433362952009129150688555398630001584588253246421664609957322536573166422603546313496529143293147471044775880811594029708827299366347854075453415641691658630128753868809919822427833396589934901015714276144409025183769190397240858482731589767146557252245566203324595379537606020400375116360886204550574481196446754346178511314650484397661694524228384455345608450143858215953045379274743347867894502760505456777929543951333407880721114391180133589393465327811879237305999226819919000837182655566056626155948300707834919442917947065336329773205655756881412510931743739367842575082869611592158489453653278830794217322383567685610796622225470786547112073632827419637695424767040380898601083507825772757543156656676052679128644794525153550730291750637537148023539435780779049052526470049689798221132615183440966792091577324178452624091660067443087552172821555878189281191964104220503753927996817198215774347030334963264933718484938761659602311146278372510980177854206720909608689244965072948740952548367972356004493478027700806646611084198106048105594684396884276906215855858624555834591713287873861643567077136524718852029212056753332514780440459849187083797048928319237595628462965497003675472010387251463401541753474241691384883377607139246962997874625420670377399683889192952167580432949383917824879168030540627597941923417992783417576173720720702167709171059942979669204320398425583964597123517351541621573277019174514190278926690896674950837151942686026235935962204445293016937642007381039694716722970130868795367574676720951420708239890411600125661283655289168586637153396164109848714437951116611989500500330215355251810258729423378181217913897918824083095719619659744850548539171230310866505088177327533941776220336373892336717514754321189828952531045145323651453503451152185870761215598247512088853737160065660612971832048458364719197583685541027164834358122636897988831754983900619792869881451271693448377599772475619427057553902945116869852157195833858287378940506557301512046735358120360288104183170151471673209864689503286533706041178952300718146669298825202383570069521201046278326377212795708127809743364336200102590889617187688169957839232517831948505284663475857192559397040187550231235191105105002443789792464530392539810356247165826598047525202620670063480610131469492485365624964726146602351444959887653331458214017787001618020379089087054216161699843674309853411690412739586857368532698834396833657442923304483509726668424455594260130157620340334454714458374366482533997566707796167765985545969867218601194352860672734520030300202385597023785358970421283590090589187151950570375409940882778828505870103333499110621201151521752056858772442943261633017746578361382791324418709096859891029925826596435148673701184990834319011184611040322748323865163822399802978996883856206590496269681572382107759218116228136106863837459934518855883701642088769158623556394246348312361146515735585804379322729492709197684599916213539798626217765544274345396871126030869398312486325219497469499168462496155822975277198738573740777880371006539792316985973955041196459820723866911985591168808782141503287766837248454875493228824637744448919087461231878024185966416387724352837235539663559288216249856841626572573406198492281908068694083551737650233112998416872084737984039706538915035160878603948010024616633896835522785935206019637281258753850226518706253436510788822257751170934486897195259606426765649161305636435566225318299415230731949802302710042792966751498313959704005393422282037753618810159456941050782736834362542961021624743680467665209665411456027769651083352853135602356650702637252230270641720867804506509945527779481098825533827859471466314579068118575448459303906661965335811868098346785833142192691771967211784594100369421294384525064959131906529409492782546710159904685317984521644851601695902938408195238282134290001450846537613360086841079132407222979275283430427769870765933412555615820855470140569337677480159906665151932369321836965895887354930033116876871733938167716234854163131830650839436742302624411987345752092705113650756692894034309606008360772509952160252534615302007831054530197542077759916723682070349006945216521735529506505437777053758895116127249767696555791503899375626940951328811563605921686617235366920381368565432717156267810726584046912514703641712889379883797740982097637313597747195982057187514086828652786322377360702057305732282106618619723190709036214441301674588935090553231434367016943737858602088191339522532958042403052365955262563410722256319438339734439529809101556719728877582028767667631045425100547473509403746006108866443698977398886771672372365111935330116805294503657505435487770090918263094375174834892076030070071207036233630211774418652563147676184797680761826529597349327189472386643839309542892112240344349749548165080677624777136087669789959282823074925697842314435580410835104119711469460771217891419820058017809439677518184385818218787753178767145249480632428268375867857355646481064584292291879366283136857843279107665324099677376665010727529754975867995003314523264496624909532050425890351422203556377909494613324347870110312247944656308295708551381827063510500033975020858932583486999467267670366011699352662346758621973918548769693237642710495968710917753311938551115845093517681162147563760828335140324126030987796968985166580667933675235451435210208482565374797955659604708025718078976780637577936770929848660813046300854154096819229017402488712543295192295408387864840101095797236946817846807930032955320727751416043194471749041267568102732978749346292838399549627677180871208066244707175194052809416608837165948856166549764571069470646017342460708680393611820614329672472421799119438999836301391878740014660650148366419930693680399568048443661019621507189784778662709277558657044187817956721243851714075542406246797591760585877816767912150814743793378318931372981495032173908814223172625772079320138163375957859036771321972184332321717430248533743265844147548213300678480897713552136252952870155083701990039486205714492450176025396507308929880345124614976861969261502766934078618631080471809271360298187414470342084292872927056810569683291485647371223109682418270124225289129515122903148566082018531391247294329059223431296125983462107776391690740264544438445814181974082290830137782717497855089432633776156175884437377277992206373660414394464323420439550050399848109551059639444447739141209043287112636657532292243865399820837248916063603806736793237283271201391572801426677054003526246864554536237050658947814542098672041729999581031271428858093664256828948724800603918341602423232273518780522734223378528773123552586497304581965758253058669400657216453949655280560295608223598079043342034152683168432171589862047109941746102425134127764323742404552597195196297796932707608371265110039910620998409982689042860580221773153812741601441441554561767906856573197691564886239463134532086540056162583907119070283910674754668871089258009196736263975348265674113664783296467361883540956589710918446168043250619918563247281204761113495464318882187012264855903036538113292605506427982804961178826195425679734793446975868140834295625498143432553720935399025867213236841689342782423763776714938011340126176107451438294718174627895469052745793420732522984278093016410894466544406013659230609989592152874663748630954878881801970479366635397788188422997437697891803180656302389311808323985361116588914142591974497430251074649150807477724301482369599678683723598594910570182487914875366543951600432132024879104724092940302362605416360010599433176216724093160543024949377743248860068173466964429172108811563502078106878783995069571439664946134652923159664260885674321652624024299952923401149509412908374817252925664538833051955788013917425266087962110333359537425581787312322830592597997785226139242671110230017951694972317670162806474122491338628115496496267462359611211843780385156309998860801267208024443583104518167224357782362183569221122755565912033624179274840763146215267267032758933210291963373224029490734091152524803931072613770201253106043417593125067480857162322477225728784915887538061386584085747868272296013438176350610512265363616641979121567716918927634675654566419823945356888646908027471896393965869793905527866448450669222250415447832703630152189527606968877107445660466666850398733085893887518100502262678872211803015587666423878673207973182045593963535315296752254038963710079293157960598555035180128510776871532071904533524040945270125565222292540064854950861928142563971475742534913440945992421940555366275516521534954379161324539905141982713849308686199318726974512753853847988486097751926553312079615059711816093229875373424259525611343346214645553709330288344794748953990621611080684078805700160384790190402091979022413989826775585525768018462422605572084396631872079570023708136355228616080762723148623776124216115562875264484693529864635922111475181360281052897256154910024845724725031208514839092176808183488510670064546401186600780412045105779992451123624764259630865471420048132889282547466012001351710403708167137017309779583077339698068616355990726954245271484463061987514681495522726648966911889910852239984890762788187810605644827692825219825875304076152450084834665429244701265727502524878494167598111600032484915615294373748414515437800539209317301562139273609944626711427167867999727937318628010243191327623688893399910022638418432405620546544694881414350968770093519605231981702202634954609205332693639932779851135981630288565237407006193948777326150172655520837227332132923865120906982174957368351771364064844259503041749229742120610242213040603854008348009771367806355538358106891408528770955527963457551510599777554938169405244137232006139248591071889225331515229493321283476936943300287187608345299637851094859763718048045530844135778606401625172403348785485756665848511387645602883854223404382157417415319104795137593878656573016674669631664016554374575243175942033099818896571527755644251630652182473235508287449506959834904134416377029308986156032811466621424819192826485070177438900898440665559237320414501495720209562844369812508598703423266136969294437734257072310422316236275670438567107459124915468138108360457751723709793951897320419030157884018098950036441338586998061001146828078528006540221150580833100994632983076483223629589197914293130378859335741755563920531392155037115454612902019036381084183691758435756308704274581735804016035057564766297660276165827312601586199990732707979763661074515169093689670992612489373433125654401678363021756441487485819355378457045895230531039287225187230302133701367823986488144326773962288866680066705626767825604797579406383097042466720161334311368559381760037665728079015722602055403295583792142706201835390892243461735355883330906717088476464379493715635965036254049249037479518467698803294085474882219958354169615918426250529534702879379761618742646364276947656981742684807850542036095855535117570797598597708674152603228606953568831646607222796534007710812992214573323456312156555705663464058402580532668956418768264203225470078579966879479504267413961301191602858462449915948280905182884141041660801110293639323025151758412391384166852698575321439050472378685244187942029550681220498737218766963675730007230446776503645228732393513828476496356706201470482089118425003266375368097650561670308113108041866434410186312378997565450032159294826082889505072054863923686810486882428050544158157903099390556254269054307090664441950859709313304922206362661136588486812814464952559586190813631319702473299494620146303819640751487045254157467001140951382432214103178901040973079530998931721726253506604960044677185263772942701646216431848132929224181588372920885762911469040447024799484485891680305693495730003469446656072244786994875351142126029399394521318325647222129258596213280300672249657457198707536140335165019402896803838898527832707783852178902027910937304778596609528264288429679597965790213325432354996013615586754888260228018719297029330260610258686806831058419261787276971378995289291839669011966795824082489046996558970661874817323007900958290275605666576410323207922446255197686152672132634343126805443662554294755140365020889009365587351825879257386387448504741559513942243243954761489823116839159927431080129984696841933608259556099026825296398348673004128763086566027543321409175398342401621017502376800336686543375972766625831371680170731057802101618700586615507761299703514102612244947752377468808354709581685146414777773191032794079412764100521825094374396243683932354673749081634282062619185777973049720394176213507267178543350634915523318476362671792740067204860615403295098442588826478209871868354020800707658576009867657096193274217203039729183652331043038250516113619624490269269920882796912941064911932606972117818036311516872832937424035250392927525098942426459085364128309294613077998040165319832029500523622432521208797513531363380579785035474805046775087852239183330149081937588249491222017236680897298484330308057475435588936444898182460356406029039651996230949378072575600866030779487584293457299634555551329877843799119722006846232764271057938243052196593124583263028173067637527314744628045211797281866215917931991378947470042930303588415226207464044776327535162605104811338049255850649218433379384493796761019436537884308348385578462007138992472235154502450298235532840110350870671600156745203085575723156958674779782316971003939527340496068164760087320342508192501460278000920956053512082230498110643614922227191513328243424840572181819152015547844941105361652747051535774153825058174171775101894981358107730031966551103591916490833461554213064694046661968497048168774222693136473197621588133448292533877356225809846345831214672945498303180208406671485507368015544581532727286655002591629058855843613969824356856603622689193215125934660792310363233960963458935362865223764188610518115193950227102971934041052432770942482725793017497396137564451184028322139097998268564774179588961730659643004106742439895173381343511375956134007653780637782163957521364402156160933051575941654566261864720235516110309851974551746916752853938755649238622006023967773698317820831740860327133504773663909985529355159536113196504022966769063034481520712019018161063197015580243679958425957222797773730884533371500632665520416894134888795322835051963375651876136585195590511573231576483816985061531486765324638086016752605291701671994149042266554382893467759753565917686988704753242942784468436906755940362180364442774973589671110886677531376652803886515982349286886728708274489176921815243365334954120996444470026550863661930508355293466900465667276006185909876912910019274221515881134703431828621686298210908745138704486777615151172810147050346174420993370714987563119324839566717325775441401501659085359843048724229489921661467938422087471577495369820350277872657350653551217995524920239409996278504461053751874210340918489403869092164243702188041843708305185576624136049207094662871931852364839530356216833008846285942553879606332631795431040763823629487160642316220202845275874174224162599029353505896641675380875466041373077648049435722811319625837054590620206474152260124731080028027523352739367725916855334418095860426693010166913608545217474683054887597601751108974512129114367375886914568452108137448032261841934664589985738515537954890827955048579577884805945746865494536265997480413082193035531491546435208646380864013599450825130836908942740385853010010935703116636157572075315321643227922544585215298770725441841758097172620828780351560519581258669544112582403345367330251405551472383502112086467213927576910887001725679331570821812540310606154094228811443950478012366211674629899013235259920122540415988783492096872548759695435565318847216288930026223933529846808495661904154647523476015980424682945610484075707570742349699117623319112073039050607467212915427982283715322310680196156859513401871894543406834423544965721970294753256926511388674634600162825979617581324807746968661992068190302190054912022386933482137795410611901693291069237592787219480682691895077317618847283293610839119552731836811526226051701615817111599858933460560955669575777454465332308199287321921853785054300178936141737800089043098582152095818519936830312649555652826993227467146006837737638150139874773970941176442453566831382653553918396584912779085630912634191301531097580699382617270565786709177255482311125042782514304859390305504543877737594937858501782920996201630261527776631912167638915142252317054776133621581011822799060886859915291114525079155597238481483387812014273527213962474187648558342051536362169895768164943362877869615237343588390276641609284466799174093555422084634990145555358409537114313448713718153508855290109864531208178524215158040273612093340516308702828800547568464269284059874631576480553780848318736210115366175580289975018864643584645612721638902354519257071569074311551676664588212871085960320150330195593491974120329064302368393164197826338107557559972556316512743400346873801169823959045130773187947794349044430102952722454791029417232517721102076353057706755205241617217140601433322126021547504427041677055347308695518894891958265086837417552127138102152177991732746345645202567603278732720604617427009930700927138106871155817806546225393996735755417506103157733247337283360125286044110520128742670380564735555361020322704738933381432978504578794018918996635665437883442425972712332271493559220748780916818418637101657066411526889202603884865136438493726430458095875026816169237397612338963115376100922806898164564598836326478056390708982307834475953964860094160204227139132375434983730919232463371566881597399774714826521314220720162436294162276403657775207399293166974748696392860434741545745599197999426633779283189685452866310946340396026506806603836442576453364909818359020041541780085633628903191044380736398470876806072574330807715863045649922894824923044679942951282898924110783139395496037949933905051978458339433539954947436788016161971679254483029393622186283978037580720402253573459373619470037252007887485683873493517563897877813628369365642486683125817829320960963974876085046226585257680276011398727024321255179019504407032781449779748607863024863915453786189347357182874241620777349584110758875436870429436295763142814534825720722079578176803134484800700589738841280853765655033361996311235769723535316547793461978378937315182355981952553107029606294948659223781501901254929023704358607910387449661031644444601840914064735191402247455292273284414586036074851250216996555880668690236172751783237684798206861740912130308997281227887661530646183745185998480259950685221043573290101043865604384337398328807803425375349149915505754449828471405276683241409005412019862145502636979839172221857070169358870082536939824606831771688705920042269670939866240729996549387198111921509044034181706438570574433008873768905021541941890018897739616608512108146157564337330771870869178339113224731717493295736099399489439534315266352825574612058925984828767578849808524954677455854337267280238200114941539387007613823487637930654770551192598947711908088498307924316149624450140036540366219687399455878335973585938688394715929483534908374999145770370503492580288496939019074818695217530320030758827615622604576016682466376543085109861954686160596826517566431802897776314635433713214381603511570025214425627285264490609417688899705662513175975846386176927648829188529961125307437545185917763057619949809897110298097984075047851911972478204175523727749294100655740805613361098031429122518076962630533331836216158786436062939595883771190072232717350876240452357856877165046662240901321407454837028145296427667036716951876977638700950743398139770675384694077417928319570510960509093479418195754937765186547362077123935173193907800048362074189579422812787876471718094066346676208835758944354761803343349560701938555223766311876307314230865125316686728423078717895358136706899018516931720997925177244219961391385736210738825037053081265278423669964959115829752423023515141749088333458700202976883741489921209006171340104323689435113738286253264031961626309705722975518253003684396501380351127536365365361021019729800884765254458557210785106094950819934804349503849671239264489002190490066135408002391165624322954900035384505979098758814560382268520640622791612362669956872593950265407341925603579074672566199548997476886497418196661603960406170907762305705825203726154649190286507145926455157791379339302988060868894093239586431152686620610848970369088248508605951287113642704375083356773793407459247108764169003166252707016733952807990794506214068778952302516783198210128039719223016311354462346333550190187662842104160850837745220798730805880769060235518184312346301048427590721830022924392024616747114934961561145510448173070568093843280801551653111179239788127258675221484697283261781378698387930413447106233677268007444680799032439113114635374191331420146615723787985084282464750998714750327179461728375889456510274551416835810672475138103081887441428812408892035071988063799209032322100830507502148799738682024554558619252258184841725139763279752169739270118093979754221418199598551677006606204321304789884861563785706039980793221247943603234041486975546430562773394369402258267685195976442671318997429508401908584830826437458598128247912167618052112609586792405880376801639062165311157524059028313838469961090309205803188151785352209631089543998241416504701076668713139279022302600545425797063652845598926344050989016584314115515124382635230478026948629579968122259726536828327521077193124738332569948277712659650463294287171700893143927279457968786772093005197105720310924478708458456862605447020461164273001165562348267359730450666658775913335397825351376932317007426695492551442735054634830050036088862229436031162198709433221981406072268642066463908341992840023945176733716185826863972262545224761879896528862055938774844068826763314030851095958181747225327826248353492344452224892504995671823500118319194046440964289656960952862390162617864377134064653830348616533897320394822515355014235022910981501211415110846338176634586027286001764561554236012572635248662402423453869910982430949235907250789508622483738746614926574709495702487463730864983808899712305550685186091038995074128430807911396775638326962983859491195585128863977526517474430998886980204886964070973535888878022803472265798114527002901406203625070313292079131751385319027531795996659333625646856357894512314143489108229624651106466515278662179703684924406908816641075075743744495837666173325602963845955995106199875958669637897506080080109343901836858746724414366993304477500916642017701887586922789796477231163657474837165620744279824319142966211824039079771901132151686059432640083771448503062367608685852846516688773029807231836928276351224682894016504719188529184936897443717528114010134682543522259655898284902059511071138176323237488707388294339289771300031118640551047578806397163280099234576105822111955937247153465148534941207919386191690764952733365404376369380840349006483574798266885738421059928599328084459544099556671305939440961317161863604123841615825136290809788438031440098243080963061617337861685417040947404002777087644044785849290074329243470073947280630064517968196936227727514245563681038131717868404444363354577938715818234250328970537221838586011130968956928296823985941603032390994292080415070002477587810542051883939953639759675662812240331472324779804863776888968173876867374005737698038479287173872767789313034156748697156136096127142954288332351011370758370448226484541253298541428122720304752374630284854004965606189307244460466631421087034650692493347653280677830656320838415531926329390369787775365827354280858249702169395781094340198593765495307249030269856666837095191142849823606862180981080379668154154459550723989374172146531877430918042514183108714244286955231071489665648337594921947302371975398202891221317274067744568805964660027046218576546832094144710320405791341280580918609446641419856673719187130739922875939846751460997756648589899404696939128162645136941569668813960119374312186373873693359172665261374476858674237857740109607181791701319548187253531240700611701449036406786485038830700132509359348209446403426704869807019196039392031626143895375035890664811383540918418139155319104851610082565308363514897167065130379904999449205276365627903309556766577970395702034786670950135416518960514084913905704495867964093041418305785284128126266869165476960457762786356354992285574651128899495268325608456933477161779892243593117630077456789451681390285996615421775858376495836715456223858077922191465161891460305374515217002702271254224806722858253026827110031623206204043982798260436442413630172075283623203794204829647732214974878766669814915267809840292160157376887245467996107305877248950930393798241974852471642489415143795560865381681767367992884436085594208200662319354180997674795928632978061332104044284196256002696563895873024313968801800011595931888457958929702512679245407097850468047907635834210802588260965679801329268000144862843038554513670031399263176303739735010748489352889767907369950435192754475397391263127426552600304011194094692235046026336795465679498828947250110449590442641273496445376542748127784366849920600742202888097206016420405833895166891508492760761909356308016241149419563676087197995654827567083437822823177468605667976190322784559577141492784219242968061344867827825988731084918182513311735800130125743452305773121064222197024662591622047506529814676621084802938618279604702394014600388822893688652720988210745125698485679177795424859208943513094039597563466473812789711680183944241396698321887664221264867041520037174026008655766360330460131504170036794566211418585206677727872164357881280619155319963939499553324035277839811666783098357470099276250018778018633645408923683234860946362124417297608403305012810399376732525494572885407640622201616953686459418014539572556083255988038527971203275453338390080884331581011652978603955133409553707182077903252016132822922094537751871523491607230426296074340469427198413086408578106396296401324308143450727144305379343281299003814292542352899646902931040458481816849782443652847993629926264205747224164969248441105551663639100489319928665316184408615679455527095267025066402264723682436994818408220039822528024310085061061640324790643408453224376027004352502222741519255947235664331464752202901490769373426755660431037397773183612136488643067192836373414036316192714756085025996121761085796025046108180185519731964810961103123583682111469416327219543626036059969550005554166563045247611273849580695890841304125853347677445433974403343314222165037421137755946699008117150366406159780218701204390967072512758139243538388341450553732218646785977289580600278756984088437073093795793475898488996870408798069082688175998521133451508327515524459880837914591209984045636094037074002646226809671460887596560832378310194179737589561833203498999317724652214732793283527658424723094776321893321897257953398333410721246480616821325896402437758263895948926513215429581857866843793331207910134251033060406238803443604372026547164251110168356579992946264125188237088144980084044532164117961269851779775730306500026974264513920660112374252376010348018570093426525841031547905654969644653672520839844242072535732630683913938598034959878413673338601376333538609683218830011258965425691189393639221999441720666221187753830894169165754008514766121042074526301139396764525381091734619244001174232521219417292249862556463379131398225941230874886995864989982548230418378443810802678398635271555490992986676886844628059964474161042150005000493133517542302287727634522978873944221755753030779417566645267358603356947915919560616584590324564853187950186850519423022244702003938969259042630944897307797053675681601802430699174478510267948549827750953816621765019065132188767381582952209399142117516628449159088989228297792259309316355661663305007982701256294925785927801319887218928431707309598001756062637065862421214892675791554661436772670660074716273817377538870552630536184034802080043967132948026448509639126240281652813887870225439482353313210474081722026785639262370767337825224474619649309202073076425884901502120437187535910440920407181885456295808570180477707263231523628512001946204774169159125403061081510080401767292829268014138075058073317920164996157189189498060563835691379599446564743034242716835657024198004705481799682767402051835481897432306216565115190065756986786243787234338122905723294136530902444299327000275164955477531953359112685387139574470432418717988206577629066584839592731285606150904174336415288204463655294356727815349884812776300721763411058169651196217398330042431875627280216364401993166015561679624983404004559129311450934666927403057241447280789139096644882830959958093427625338602387990879186306687074868900084149373768683553175061638983150647961822506054281155638296975073940624921111096799206240322051675579300205296933588461379584924757895009774081650035370900519762491802111734697231095523613436917179787522974041587836369806209195507455965228358160875032053096620335978231063457737393413461897541194371297573861078360017565559285527179692873223836055399615266456020463649075067998366054896196601228869886475153461578904632159074524685137745654619504090829345973839801889867842744355540981286527031151439502934066406347509489719747183855893397242968421225636436593100489579072881174441009356290861375945119729623768171140127749152018722211932780117656344855899277003760546578349394726800836869126763729263527219684131803659030839352989520760155500924661396439532230293963043503097377500018748623415872182174859983251121238020611887414060717594276742395413149095611657400223711569795581398620671117324465047358380342242173338241078603489325709584335511378299261695143313061581118817364098584667471236188523043625932106733753580253131188920214515702311101958290734261566001563396990192580060793934260751991384140465342450367953948561042272762304756302336521760928672156851814979441540353450402855676059589540639969541732037555733208597667261086887704953766955219481109711322427001858590859799534096883669269850138629429232323027267722107237672935478935313232635673616838442055273997655778667045620368057607835367195747086206008003601773331352306779557653698966425214745122743962685341380294416376550523053436288843599285606261253557226557141626227871538338776988253124060590145196255605839793107882613437586890782603788590604328252007195334281519437059695154750428988022690765479921838167045484531074324265535495245794298567530693196280944720367043868589979094492395478189101055285904939443953949630530980112077837857070414376534950952497350442630852739451640137547557612400843321598789691080778900873107153976476865212104137677453367361664689958819539110049306944397080695061289922217582100351413861189738622187156781432835534423728737139230269007048489963419756623440412179214521955223769782095040047970587075325288674822198482806219504936661142823168772239817704883837278529023989403746374914663391966354001652474062823708841990079444105149939610857290214966655430208836435291605555723058654928095750606752675983321786290975669641131092097319504886440982073793224116338566393265344456067873234429470149868331326918743262076672332855270672901369287394558558746788062890289287165377827094977479193730325625856286906136351452071558365175762994656714990024224926330501797680127945616363308841208857963233518675494181994900477710633341686958380177626797220702148736842793857993542468858559229761880676431161768149945237704428805345206665489120622646962262807728778287444745955920433854267659682993693853279255636481315939494765841400198433367388819845119633912612074870011875976756441713928490271587169388117947781132535573430875527004480168078171387609322949172840836739239845829303376956930970540754463591480229342565088935083804311932508611989414839803159407465072368675978364873814494937042303307769973802153631712376447133126981419138900441174630004244988289391361105219361342355788724327798989033212788689651954080211855431890307823973846356330018983442435522001384706859904940712969988936542753789946017984872240739799573305591466371527326536882040012123308243004251726426296405839373712312029157192803604838377201223704577365306972766380450868289411210142881538841224883644674188027470991790614691333504446507647572087655888995315043456491103081806189687765332694342609642742260396266538789562914120238954615905303891203028818205605208327369033885035240767461631584375042983808343300554898823453241343195378522685016181064825131874189160066666770680620302514188149476707762343343303838893978985201477617699390060540491844280773162416758376015457340918890895433607501306166689326125530111717651728014394259107490752588991238890240948489710013525193210207548546070378000175194456651830903891176902488476373112527402567874594443676119100032211369931724357643983884067312206941192025010925649039659655536890225519865069125594355773279479229089764610162910725015076418276666325123065098908711865841782990854137316557646311755378866207029130090345055510557468523288233021849003733670822930242700052623576578344944433193685784581081767226306266123640438632198130789320490454887954540325375962234880532253409603622931993926355901500486430537322020833010506573744572123863626837851457571801947930014403812880193715760103395099090557485211894743537214524791475200098017093099989168266868963791747462607676306597108482955649903128147939834117708821104716206760904240302153867735556674828761840030087462140500672368592742624112129902162065287396850966699092422438862518780477531866698311112942226732267270810104130480712108835486475105581582834512156274973790810426055290539382451511523581404291502866266659023830602670160036376400084257544214364238838933769848421876871807198522042042435863117494102737023487128153662760136665630610836521314774478911989053875718826464548566049627742209326230703091195076935956294096437721601864722803294631169250620425698158305838062197590277205309468450745172860916286209494809206391210663815773048855388751932476750595144353174027489965497529187225335142719595255720550526867755311436436620674387912542744007805113117078143665460965284395262278220383392391721010244229418463106687388623812932729239580055999485296203615263948405117181250757194712682689483430497118616099005148298919255516616733600627599483407166921198419910535515004340494706666066644306292172231464650783105451740197047838152702006785075638870601856477616084369641562325937556556407798150953885546627521771647687356888781659857902299236090291013472778938087148818671824408329160662982720433671978072151735717793607812675580357420430513252482026144158161027768731531288520418875037033792868656517356245906809643762813596073461695641488138112161550145549498086407837817509051810591947772227554690809637432490600517300431335916997103417598353217770244874839892439079845640812712483534988247522781352849741002995884619133457494390012517054207455360363310074464260146615897297842165999009241933145087809366795755488511568512341594239194743167041152384460188855873620435939763339519186561158853467621229161644805865084734942185705697578985428970194797223040726944779193419819517683218874841222719981658702017269911262844477014732165957229518699181203990502088173847020853840014032315889369993293282071635527533979945465994178280268889863256276533831875072890505150107569091040223205373126513568007508296416619578219800985657961628080746104021680222041043069908544568552621034920839868400314878845682225904700711075500789408725242931418783803064079667262139100450247034990971599655654037506024895304579323418162516417689957892322922608260935222668601588522448581034956253311618809391414413463233508200159623102549348119537224735802168279084150411878081855067319587943042393720702781998083242166259193148724027534847558735072372868604125641130463787835992864042650428779240806468606194379528655571820456523195282274298657202556698421187120268715652396143696814440124087810909295049052850812577689035502591754372673860106607476015886916561227144518703600409200173993569817985071119862414950555511234765610171025676801094789295901460387732939523927598037188315892149335850896090178981201339993688917155071845465477203570346789751779430496624719972199525324184712001627945129552743250847533282956670900346329247746224317119402728555862224631796475833944776952602046158256887863755319192081351539267790644040493774746463689316749572646430890241244487963501684730543026400807642848061094210033314985032018335146540031555792013327297298299630209248390322503011071718080402846253133952039226522284527352178953238997981712850949534951300050631517547247039634531696063198964900583507878156660598174107420319520975860891569288855705719315102393429842344712843419435947399260632073092814841207944009414833122937438820297047273962770823451231842369731051145198038081406303790954678572787460682016295842767181494894759933007091652371159566529057031589749400148341364250940982497280415920477068291278698449104132406556466895269366059239135118413190227219717430457186599828456030775312648212275760866985991037837029165171370007023993947259158513491879499628870617068416790955905662164277474185583371555113185808721348063160523424614509886408857671535730963689964742532156592350057433450100403534531492929334910906125069530103481500794610353306038741591352072052952554287594641646644648795832129115635198698681076338892569625114721213148269417066937190158982515848360634482213624699531955069971046221937054067909673875040683467555075900878507220280394048275856247464769133969950390151334624968751788727405033729784740511496438134089800575928705717803922123232668365942538959614796195056133255689768547794931759154320035714021570677687671945096658468656694814959346111559636252757931323528359166980759677417112792252222516399688156968340353175500934664377194878238003937569658234062551711734896445967009735113241763421846214808965642386893965148758573837392487439303470489492722995153230511263164054264251650862530966464523154351153701331220402197894550952927486390996516711931802787533842946686193600518257494832996699392086620515820901997250942821956428266457516720778466528021150666363012456769131268732007081782824211721352282522667994351214680885223571645598857854454498995111136727387990968307358598176054378282541223800182944787413459230891018119107473713560295531613443309681926692140267458393654578955088780433923538697187665917866691211991863446231124369043396148749501898626246641455118483591733131313559397563440890107561442446140211791182324834642009386963363957134091283175158616972626036671727547134462274446277412506569432113336216062450815930576718355806188133785893149098723356036273869286042210497735521282721895466642741544128252466157907808860814562172615605837452281476297167997276050979220388675723318716567215509649527128893975558268654561143005542288528525070405002892722069225728972916288484698640922661202568098974570158950885603525805435296625438871830311570283490044375876275489528106096458666171229463896447646435852534660594361929069138639612841887389088227549473389550970055663088363178495810198516468133705806886240839985060184788833530502887201955480921315260093679537109418682740841316505706881930552240044750103937475626560823356778586880498795779966996845953950091108859615650096874731436966114301167300288860006889219352730179775838917917369638501751489851820946416966846693059389289893911341724996572311519219185813272447910357542649045368426270797253470816817454298061470782182203249209583860522414167717306949420572919774477359401271229589315800411740051448780308999969840656945970675730142541031445755582464527517236886653006088627736651232716528419229102480888173646850523470580085698207670972978485989832148280164663552124715339815884179118252497652604454643320898560147765637574046060081902050712277039713844310544628787991200737781310655721271166833829882702237452233344693109094801872185291931571808275461621799431561790107768033008452717969242656115229210331334093948619887006690217052973113469853022587043811521770957610204692234336872605984031776665420693611627925655768107194879799392941088585685692410154525468920689235665509292290474470724251325529993525430744164050504412409043237319496491294067774063366717923382107763829158775382279264285630037276317649853934528244298331645115920922773766215784580704651973860982643690580493651897350509561469693054426740695462055547233378167203087580460950494620509696095987974871468515160214856989154630305526147070606568300429571975483915717550048791149055233057170662620685844194718611537407455915563833300445970840965917238637850085294253662514247195292138810462736701399734576654857470206683442187496747210567672659050361209780454016545182602985209469307659379155327949854731395043171047385408036075388959262408621515571072046021952215642679232909192627447896622441668936424637898814939525033395838176808422707609177829325462227326473799075809890186360265374328689535502568143958238512533367397196929014711772285971773009109274006293687034457895892382125558797340503296983176140125656499018139008218824684133232489308788600464593166440413254008237710483772899765399668890490166656855677007128584887047738057134326120848175898708057377467837974954450571938478467113099704861754670752844702046245448421906421162672238571017253566230789797259713675829471919318791795507959885513329686601473925700798159786224370952467840672444420788190846064205000119761366572565385390964262181936871802593936535693356304494261545840959316526772860615880425132501251242354275160082340615350451172747622090387137334340841090236454669465690936750698708992533538383713537242397395342187098411478455301064401827777942830859166439767352970203060319801639003734039830523521812322059952835711293816241133112537900089331256121869506838731660912141639664775254252532131088305576357749590890643973063232306077813557987368788469708274938625047360914750970324004361567767177753351756851484865969521543275248078654292375137934673132768936717124284124084572510878235207882620313614365111727125657423900538759559597625705891655007262543999741179858445207322071691694384296886734647667883472353296762835812639784916800074511653299685487244215739825966655014804092328429472247846659208338702762502019053987513409346595069459697299280535792148245297258265116304012063413601034153054733894600290040063562311814053896544463139820030851030223894700666431140116907660297898402032527031598466683316458710694344055100053270562454939414169750578877353737524909652094376133892856951955351386189975250273388818774596077578773910142721518181238278871364472185787157418134052024740170598187757863047571985109929191217899638641736501943154678257912477504002415568514895717286772682130710693036655315247256270934142405817797023941608262513204374166161913493858800364308071058676675867330714646171831500102072769673336223773136183974082624205408942992887170756741119465201846570028489533235826377870118399022594534758021177291158419791741917268982146510287166774831487736302881475713459597171209280928736782065863746242800431914107341723339808426480056992016967200440147575065850166882352462659320538647713214390479869138802762448166432447369282351279851797788034108115529828453711275260285410949584123101135926433361315970596994404236129376831720052327272060096823921325610419291404658213396938888178629582762205321690424674894210014337743166019466807766515144089768639214588088716328193549702060075747406431104024945357794265659735745166181503111325826651932072971183367319389646249172433445338006176329347786112989771227515804662128490826783703202470547114704088626058391483439261347736382708288304525242682989886568404979217933847833467998769932053864844215262987842775639536512430481784080480843297988672853721917190714025768372806536904663730484458593305851430880062670726074142048676350285087581302708372179065540828965717340432084627802133887168645587355135564089841879273670663161536583212390058163387356617750331190176511941555633995076264387987764146917220346265348852812360568304824310993495549918311504056234169205809761618534050940109805865188852782322372295434613433690634142130343125479004998921366393277034427672084480962605567391980292438696103640488525979267865994217255401727573057583288702874908273379591710012563128264891730810019688951604715062568205773604429281603720597855561272711201873573377286015735955051053248285402667781567217457980950681592570805178016113066301814803309637039184728340496987405062269238603343991874891066097521267916697170023390491340372144713927915005753960891833959243403018467646843203672521410764023429881983527491477979053449381799103236475507515743862623064282434961453152794432501199897814044370193163700841200504375291677866835751806694466052075836186087447996334758325090777845921416662810896169109331104131876188874684755967042934484076693476133313623815877502229845277450242434292440388953850859601604516324338917648548370176490548687031305391532141657801114217833054271167690131882287466093874169890180542661499175070929591973531048016949488786555274079475680603302544698597060253540921126154999810584543185845718872703213407999898790139191259471569052793886432057594217234952082103216174788606781209855885149910194988372652618950283574335977395998753473468386811466139320480662713481093723679587313750738103125768051388751831442765977923580394290890828690729816969203932154732838137437373869272982853394946808337210232329135432206109599013038637634639276420860440793572329340559728973966672871315892366220548897394174235734976616110106594531131765536840380618568836944265003404662988929403452542546015118721384207613423490948663841814996316270541317878628972951621405729791308872049521016915212318470291013661802527161845657165384328155300925063468857308807921431441676811190456728586977974885211825135361416765883667021981628702160850422063405441850712731755999767976270122981391319823756229104264749872855723828837326909634645033039399344261287965862276606677144195371664492667734758908013737166728571738667391957520002222929723823561248513767024271393161780053202938784735062797235154400102396292600497774435610146024713912814373890988499207526485320626774771710540345969597506513354652539526039820373798105767886113713774879216518891115507235008113941096271184570302250706139716043749495104429309903976817355004408390148907701646452366177410803665603849529517831962928766402997363732140116035309732969810479960922678763098320286646230317106470313565163476404371937343131310285014932467523956827022336390828949603172657322108352161100340391489398117517516366816793903509664264785329717530810621057082624601244961382792370108708346908479118297563197648860337847368072886302432932955648081549519785147555284375531417038607084674224652549998624995183074267437613407560634531433180889664107632396867267554821226986300514833571203223690465952443098876458477829233442267284790980850744492990963407965764776441935631053410959111611650961029228515781492159755040310703183239281176699481494718132896247513301245506457228879591920496709627312415023505859571889881387274425324409421713343930534176981908271998182660559668142455882837147996339068590597273513400329418598550609113507332054781101771219568728554097056922971141252069315463373422414730637581272108811619549368424693092203904378285788279624292660264073930046810152962358925585735072474837318127291562787774218985469599492130869452368666356466285922020367333829352268265407190013797683914150102981623330454912650956785800631901609995765678452744826762172269460315546195108485639638796811124613186454683438844704977408278391975199021706689883921428396139635492016433393083436501067647092799976961699038339337711504433385473529841087006048701105854573830020242038068936073841171455528399486251773127703252998257894168080016902684637445443023029696657637286446825602534137627174262772453915284124396598598954930923826193277713367549341422111082132217027285472322215955030580360565172047612208047431478549570117184626627938689626871857513833385830878135559310225868790073751994960492013923227896765539823019525421477352407588652598653445071433546662803643361963430087553939053319548534373838539026567789977112989722494671015973055426020086596128191991923613359103516182050806961007776210967726689557083364022569921262901894554402100469016926350438597998093121557114588296585234303737083783932682348558530771755925390716908115195840327504406445075338941715607353408498721526742123196718709771615022166230802079236397321454278740214100975525828274675833948704347822334410064502071585960831440650563207508311530507806107217039151754403473018301080791997588940980875781789369851329120470291565705880923933947117070549682886546139440442302985768806585356052435070783642790816095172027343706724224416446837542114051419160065945127497765612220544646182147790160645241023589604682380922042788106267165085893413112972771720869966878534814422021398404713601194068496284609813432484559172782698047074755006299817132491973443328120926994706124659720261597149537265356434669677717948374615712521040574283825776576800968588493193402307200747206721795996808253679686485623362206244612379814407520119517168502527164773967072072108075902503150037612979589546715775354144037109471653807323760883017383601926175477795728647373133641838146073991846175717283474275589446907595470281466927345520003194545343445067079424495489989522410182372407227624512235673797083315787007454930172613722093801079300483550997805686738626745302497321733311465778203513897407971984201866120850909734258953356903428358009860051368312887526494012393641010251104945426530016918511546930385695775681769998070064341283364098365350175938385166533325862104925579171311695612788198408859167169412601962475369241668787065706566128134560288596906513958920265632254076018744698135791058855147513688821348717979672652850321795227436827299440046281513707923227649060844434859635532918094446967836875831466392138720955061855813559580929584839512625053548766299251587503815799332656078555169794000816311766454683019098811660235633201484399895854916017361415125275922889658738812293123249094616638961110233979023555427579631569405974978395392059451561552893081391929218686406497917096178902953625149699536888819166080948942094126196948037000168359153718462141212745644088392040264358138164048630196952233741122762942884216298044518229499691500474338999541739683417750282162568047044990496050525415387610245103730451401227606949047817899042448435280907671810379789850185794167158557193068073187753141253559965089753824410808996233300106446107751987341016008104022896942589225088824240062907623178613887300232885304583524893406175448276359243246843647431214093835650755554646839725030423159485509431873859156613763740985429473633297733362892034107466811311070134356227262081543838293685693104997266566722704726955185671490426816886617818388623461538769197952542407682264909910357432027164125467299658401764728180499485378421428850029543887187579386530417959411064846075351254439504539654690165888513176725195788486805416454164987848760695757319243754179648896296101806105666918544602177026108361610367239744804089988093664658268072952178900272701433167128529886160156784923306485389403651305437746066482255812213743417447380653536745420651566729882769551968474857624195095310760175075893494811464289885162528889009820922291711809757908795968461436695912352602148248543036528714544026773372493701674189255450466782930692276548331011821307756244358385704250631007369883786355824144456573980476396677338746122879692414983549738317504122814583437655238171738404983786945613017126164257252628777381845831139064015889998232614619398539309085357885122455693305752275618822788311531954020491067214311093738998360337929357099119505536400879239612093112480037665269348311674353564753070818882815853536493531965676822926949612292686647277727969981151760150635715599650430191469132436834877741677395591882761296509263511487526188581417051415756759191697263553359013306998467450896265698912395091417985738022601805020398119757307908576296961307071302795401361197770040179940449418134034968397904700567942360635782597183705630891314019368825259665253509241186232690228149974888014073502636972934152876121678794272735023255981141794286983434149011088068181172231791375100924407453263451111480414162950404967016291295766241109108913023002328702717890601905793169110582606965523722104984594657579395651367354354847228973177337468472821082826182710508991615222942383400269380051532791715828645866529760999213534177050166132721953549901233804998319141350275636125896134049098228963715908718549041803941188878587540064096974385500477366178653530275933333538112250762816844145921346599986022064042192758582643359228374788255140293541511644132122147288097883460271773637744889227675698385142828772361567281373841990276257120787841559722169845776806220522370612710925466927693196746697406099892718441376488618718859231073351757868042803441475849264420328807566473369564378652753024061089999823936787345272126914858953453174529018469465909111274514905333683162612670042494269159794991846119985942683534391180244958858075986124526444466034927519792914301152348117201600542173059182387475629442858171244420079244917614041809969970192752745001571429652442895317686289094265296328735788107823704226000988318470063320422974421702702004056532881154190460983228946945507238703994262965438853099295209991323476961153146144206115508036928103714883010700522117485951869658591004169839133003557193908171796519726562496592434119587130518527772985778127970114530172661090611567055706104315395070005739766934664344510066875670141810218661084115890230337046967885103908414271990579268309844513218895713740279555842785499056929645838282788576932420194834431412051485406727962668668912339236809205704659017598361774467762554952371363314186864130428212916036349180742094815011474482231920816293568360503610361534895232445580964252037315555942764324972053603458337448591932411971270118615608034623028255881625044864176518296594913965238073831513850006263357849259237509236308216803987234367407863397975705319748225647407741410387836049293344129914566867056804206766583499572565811613493516767453797559763717281739492961683042654274949249609409583233758427875550923006909347254442499200629439277718222116773959199249440311021771515276313981097940002815527804966645873166075649847639285942765128236451377274076437678831248002670143170432677406087854171479489671142617044381689505009486771675743321077827055111045095233794441747088831996725779067879125770213865973537797992383612853025611950026302409121937721271614354542261796143705418820722651887917664856579729099493053816588993701771102564612914668435547718559487163353437559529716034992715803933773240454965111217178443973136264385737410529701242292750637035147012588088617932569190372012153725133364718232705203202517763720524182090780106876670165631584561727458352213103842255903068588022577968629340209334115471615528387450702751283408066227087034462606932199541075911202718291730643588219877243576897738111704182586617745966963122440296557439355290772463239308606717471517310533504441188629905568037610474523555006191757452410731800632724213629556809523349358554634288684262591405368429190470303443776427037071308985000019802681203816200998947579828283186844347590342402639549732592362386380946969155698646566382564000927651015090562583935449318432834198940748288749811910334996984217685522194013455397832819890186714105525728583272054761226900469409438397579980378158179832764479492595121025758792996553873930774390483591984623555921635869137544636003343759400509963703739920660417061618744426354287625644857432880885936449132361295864483278747514829237386694745318697939612838502907033999585887268384623210954780219184068926822867827455837510590236725280307153999685939235343833718911991941411079797783983664893001326853067314893473572535477786008766109749819409457890886380318071698184116066095855640693432856923224826505500512522214901441689825277410900115810050937040183326450758377633664288917190093287439115542810156391418977045317243642616402588162606399664856722810365558245739798511949807206509075497987685092714303115070569312551596663362851401961144802375179804252526794435696781332753207924003020390446944919747496741763510646141690311501711880011495122627168082544451330885755329275619357033993300668971947013712905079405503317005154156420276163741172965026402261088597239239780859323240933144597290224073257853139926858845771056535466445934194472363948474826367784949839793422723571484276164315393235929801118324318447937053320911761121190838501770177294320201195472858648564932552527957133545151035299247120049541406107070209939415827012180940527635820010386303974536432832182778504127834509277540048973498538122003466052889545359408992588430134171279008166758856815765183951920471899416809001105115520753477545836607776343415369550333543603961950174331991437812338318319832334856610220709691121887419586308725278009398435907518713164854955512912087021023225868801685114527230897417427540756603096726460143761652657477881387370485510361520174046745970270780004558907720058790164279380977667915897041203904687641417696708386967987834970793933380568421969769000922374665234125853552850910334176395642388501891637902960399176381326617967673984843807842316497146003571286825431345914807194870655556015638657733976010107554736850937871367730333906301210975455488274153336823387605892179779204696597350939633472193587129751541205198391545985104386357023966123469802463972668364430422476263474919897055729406088405990934657068889939799151871508748751893961156761851894127555770063821559777551043152721565677763907516672570417658074098727970301482803642592967739832021724639806147953477539662067787907422461180185317846108700248857033882800449027112766719319271463497808465396286970865186033032781656249382625991667156095943912275067844482745579337658453363191435478889020441197299012726268622043913558582421817078519533656188286668444206347110157519154959159144498588531590446357074323303702727263352561306117941233108887481313011465924601936344882265350665022982882754593958584585234586596937528625623441270371583448890653018416782674967509167997966287158730975507862895691310432276602690051737111103057247215501169405374675242720278444163686871127076543723222504004103620748468814075251521673371670726471541670112883724038662689013119262857199904769873940425440630996912883667380618163240707675691566652744885704734290218358825583365000797171571490964318742047410429562307474523799613635146681337875173174996911120818098609772606471399187929425646499436544768931699376785017414173916102713018655846710485299676555685428370910824800876460107181249617321448195153026777686025334774968009375937507649103138884737701203851882643198812202901489675836820636168487713277886895190812800939259916095601127265717538137815697834612558674880168172660215257802453132328683508191182597794902668140393588749626863808428218139250712948929140588974667355151110739680016027921026893154006267870853226182768822336736315324834264297725641202807932615900259702803168160306514942694088667710039883658761546413058997359722153389866608992752693004902981999905631216072289532895441474353045511756438849123574562936934486566474155685722313620349005319164606923106285741077626183527905915957160992314752956992386219241651484272067690548071546617347937551205537044969314624979832230186632036916890404941754507665601901782825407226896239671987378725286479446887106379679803980147042757595033890172239729409472721966061780014359446701707482370519121752803901070816779759227727177018761891720500322701763167203260113155862402873038807655526141148647664974491166010314638291234573779525311264434376339358027729642873551955833984100114231557584727735250102441162145098959004526855762652820241393894467303612553549819107736388957980373461636793775314453584727603992912038359441806675550221569087231996068514321437996619830696383364018670904129563809412112257359406757174064911075410902436200271407434066387701334752118887659844371225112503514690235753549167480787021354968366986283677845512114089427837091394040466446686532952982818375004041116710655032030978813649971761707346579787233739675587921710801992895838045556415657959470396759551859429939182079565205685909297984532655628304238772449170643120243494876287931115758812144672195198507777674306053966201358780802688667397549809489308404629429212019330271747446009465832093959231413550495925702365648747527925142573592698271429765367500437562184742192549661610503236936890440164329060692268613701230184007302592966066635756229114870985326917087696591113960472283544619056407685023708715936722853693642329292929339021495542088407087810546283494294221013529988769081602325415089235406797807470557929908596053190804908082879673431043787431298780602845694344682141891304168737734705541956735478374803896249293939584023682220253791324708344815370434124932360370106082125839284061836994908707235930856607242548716264862201709364099914073419482538756091013180218672315966120261492695614954713902077635652685180549266693554768042141560654267264366624365198285337307846780813754876620150221090168175999973164772130891515982608920402262855230541169719867540071348651059780490579925056901028219512708856592358065620736905505449444833078659800282103636478122223449450499726205353567760683841018667228597175548381474797181403054389481539114109492138523099801418415874913267836970876288270343895785381909321709351691176878298446487803434776718343243248507167339960689647060591828906877211125167190932977486586076259185174837449974256479787601210733460444051215810509379177970020993490614409405377082519988911112742562198962824143960272719532561330150815316101938570791702602721277139184277686199661878343535277149690792241472231169668775488121773115975598089397284010020712949297598288250308377920729699371530915508898256394223862840986470108712530324387473328403359344698734707185896770359992431374195888600514615303609316884423924080303134485201257135516145416091264554578382346184760599836511289919422306806845983952693253034226340333776457731843129011274485005202369031661850642718175276483112979215815733966264048619298185479778071101233089884303543424430027194534104014625753458402700527102752504881176149044867469525159448696634012673433398375377071832871761518174860224897166664096605075178484166664005749129781604696858644234660238535785201055243249666848273494508909837035538407073338243553074036133870918564094720511021774959292469529699155380011636393008070411802393048513477392407367749056785698260742718987311677325398780887098302927454479406174193367023352703537678029561246849476640041023781909689888188448432580626530518629255111950280563489933441499529009073211992281273473497679499262166909274524694900631343847482766304405062510668952755893762110607679250223631944506976988407170564193134342172594988722597087660610599416643556563138588709667225828472534832809586467286974679714430578592109850050014481543455663990263934805592461062274212333170228038692522362664692954523933933323944086408580861600350919025423407126037812741642580210557517529789456436406164625050494879070364743417159204609995455011690012754552538114079223140376684495146692006816218839156474328547292097402662469819327997779149530237631948342227796925107096136620771620231243010420383346769219091938120931981360917637386667100484711263231849996516461026466916370955398202572067556006883241014742415630202727561426307402819837252515164616106219714157688152315063141076493452191323347620462344591824502673172823573692294606231728430113744830564984197193158949676792857682594473673681333025178581409372908279482748966912939546919374906552747743544031107131268087404512573035326659482571562842485457123645254997617892520101471704365776649238926541551601222117083157995769055622823000189940154007108088109788329776903015074738250558690322123860239424588573225226236459346547084923968652786362431593837837790871577172893361453210641458969286740773371042817297949396889264112164507301184647064630683538490185362368893600885473102548638195754557165572752044883389582161056745368890091236961365717531499109924691429919609752430629383605914081772355877233845678201281774906363816504121723708835462718530236216312901427684519321497503907075666480330373200983850962656936435941299886039048696142177658316225242138670934163314933502342770936735338944087221417872553808507753750611576441448138978087575152408503255695195945540470149729352977272696162893877802231821285084416218564975828287926403276924158912436822749405286776182785639059960288403954716195889242699512664621662217750085784839177368114978287765682688055733740300990207954414066454323909708207475059104604578909962809845754117630268938990005139802700373567545461022947469305710904306569581701189898818112932949911396638022170345243701529097275760056487051979757059086704444303467891448402025722754624910850701490908412334672385299333961995939842124349137586604978502714403401360600256314808205107943832915455042969637742641197314157281061087540471959827787098376037870108605503462159597459178502976209668083754142937293000638011502177583974515625227543399937803635250302092255939187487962953978910986257601200456323804967850838126324339235220081317920007641946825081445799932948128404859220038500789615987251909453563913499529664580710455689220459360262824347375651231457648742222974213640824248788460740426677947305065265179651284063795030793476075525450293466358030016804526077249254552194480711875464452734647750015016189248229596315127248920414880545223145794449591993089289605245989575782232720565991940376745129470054993703647045616606909765234488749194887668543315462230508334403593221742246997995005783050297055838762194276046472609646990698370541569884900753861352130530754239083285563583609860759518817014770469539940589576727463656926443514424649384271616668238742955208705701227350325012865044918707178663665635223258921882941378377707723939948499499760384691323958250577344987616898243459253395590962899851506903261263794597155266816749892226442857055631756606982320264457768937400350026306351377272781812807868893156571415325021649112142100491054561870826355108270512307446943704504620828616772078099644299523613750810900612572300294551392940687695383782588934796221399049753073163731419858343291591277792872116232558743842857934495607305367231795810196697094350622111704016868436216923612566778347077608512704086654559926156117741122892133074565498657612317294439365144824251900680306069336062011309446762128936394220004909391605810195572197653868094116986420447883091359323024899291937694509849366215888769097610483163484678135037880194364422241589316371092829365361399603181950568021021514786456325143533671528038388371469297443324908360809845718519359393841294390719107684015670296967086266353371209906655404634523258523503434028392092606381039623038113242522217567523386213276786482557805020815197743481884309625407052075249026075733163546424410118764474738556539557649484475250274900451636198833716974966064663256251075947409088283455276563328215196631481038132969836265987893293429909989720391586403836326545282462991152513549983060121411455038184286880954239068262146188583039942261868188633395697966279694140665106623723681842757464807878419253854965300945801078917379876794838855800880050601524575941103508298118879376237058385513834968033339278364007486862913223581102999645731142481795992589676512592633288045684759334453437028707708802835328626997019244711762691384762959885557489843058373639313270649341217343159875346175588364581162478471753760084639293300587883225386906802076553431330978874859030231330080797058293541360970576108158527037290683702465276809292046954554996426791581994243373271981560942238233356770059429554051758865978517535999361080118379798243713211063687255846188985513725949281883247835102111701639085703386972389536939513523398054126298613607869643677628037083751568956147980571264059256533343909076107207731272886195204916606227874019893438756449935752459008390873110843362604766905710329359636268424874773710430879156025196708599873174457731850346176862108142645525245276418676603733136550530664745502441728904263303514352309552519266102060582234215901187995093378911600880934891984926939952268364096619366091270533996337836974650790114519133868594974686768845390700618327257743813196624986743788070848365273829640033296213172431468115139914026992700564824285689026475684774580438538320461069608790900878339961628647726837757063025139986866299653800632871122152574113469251927858476510017268133106394118158061563905888349861626538517383081735885963065580777525124803990097006486088790331899134111101814315194182133325899728112393660398685315075484278686923458598549037037889496428629499682492880565729152447895103780828562491141061088285864470226266518829186490013862253975046008129357232150004553393991701559250176794688964678126328283151771419809110555875163267083142375139294312745416606787903264783902421284583480829709671167141850586260813107214841165627456047136974639843810745393508118386998239412378656098318158403564471440392297922566660789434067342732240113717592108973176324750251422935381560412207452614422860546394412123805219370788492574044221365396692402029528729818792090496048855546935809738052017501279941212335701414897310916391711080373928653970479049763648253018596580449318195146724995625211094068562624334165615306096691669169285144738292445674653933426615129155402801836220211618388497383253245840763376631470888805575820136279168817961399450941366960886493683135197949371887632872379350278835369551935180430587800534193180230036428142010442023295860139728739119679518472730123201092608739488346651603074427174430325716128009030522892850576732016082224109928882131298251241067827513794781195454918169342685362598667431669017050366854405422721495869864934366340720204752745650638958094397117147943617021820390970586857784914846022010686095828960188754236648516595507930986565519607796309338006089994567806409660098527177209429449631483058447331755104236308926397491177693283186555881825281112439702586702595158908274089931963903731573067277340095248266525518318699951339163152171272810968622148087690952644097253883739047085797893546422403028065337375263234669346138212313281692702248017604664659341464670150377473796357375601437152181865014408338656563985812989823196278791346739838212414846218026267701491435352905530453272497262967415280777930826528477941739923794349751872656646444334440060055563801263015930490486501513875516042802423337314189687946094178420189885999184225194573895325358786405060502725681780839788129154489513315909383676959265533978434331778868704219699418846949756121467154077044401193610846224282711889942025313000788020343249016894222632093607839789431196017839033183948390879355377016736292414025256645656636755617395061916965753894885462615225931239218198602800088018836335028487308296174528397626496019243832168146559924396645520703491378559773461836983245462588379065781160862032264605708296358773251409301065542881446158821902850659428416740937271772912594017692249222627005614236735910332966597077421327256975629242325971835120406415518263957832899330964918264805285992922303171458567813439633793782705297145693308731937332175222793132914284617687653354295760847003234057459378659974454591012721784986635037757887136003341011752158270324957236684437451820023319960320034616372936124962930257171071320791078601038488341546430298302704533404175824741791774255454940675895873606844315650457044402696870210826712704347897771685882923276845571324334685273715286122709197735321468670152683639632939568854592697571203816904262574390408579177659356476767498431317001394686734888883495773914419395202988318649994436609293535549855578215962973496681779974459428620803508197576890120809595534722511718134344050906777802020570547269246174983869348667508152307096145746472966958768330878756884264811758271413080489350839436584857127108968792963645523669682948784522046500671661531638730230930007729059276186620006229133206598420838265373936659845683487962182023937043322880979295110386408704841906470458276173137642134274912087059628921945852112064054588810175946394554881214032588379333803821939176820843019358423820907365978567552993367664301610961505379299812532209767301671752237176660096552097679931978827050045340508377687847851188396020103427554831089914924195871573222192021267843083293739125902262815356375900328605639393257657831701714101298738864558844070751509836675576403696197074699206027539086561065316853268912264720925996122881260074674117422412138046320023749082971435337645640600187891061805415130663726813655424466495216832892739307702214533167730835075312849002978758878889006037207065006744564806041694284214724519880544722563075467520228696147252574014954893203489973723097601105570562776165184552593210172670351717948003077730445667914804734139565610609794568601867786837815898220734583605342027433688903583216475970935192804911924084636081198543978644402819785722576694667221476365409487824908173088409167686171177249271328675541421755182673579771268140970682055088940895304288109348055314592387055021833820428052494506117570460921486760543412785391662904157743571517266087318199305354588351690584033033608144672292043483950457232123798074149657958531724965646306856955031199818336794794018327724437851042737533328759810661588374209878743012170977621129496103076163822410262649459053010764985459568095683839854623472364317494179377381543277125558009530764183304981130547220856846324773958294640828848057272955026021255407123415456833065758581810624714897533753545587330908701163629786875653048646484440332879046014648799263292657874391785850806100011016108303272685648671479653665341930459066019447843071216722812698787018424485732059773062452478716651566624536683443179752404562583472859373246665623856797800703114343210264328653763468296800337915053808824897034489417171063261747517478405547733062667507648297607472662848062245567533577294289045812435780978586753821954732319926940654395542288752559033279839581224107070107456743050195987697673881656564767174303463545027141858484573379843963329999583942996252665025503034829969481629654669236478665621068223113238056021120333432620953586974373204608322528104226486555565032471145640766519427011279196647651931805772729715731039757722812029682743332809407167211181329378185736129594163837540477842426307333874664987835145743182472228284347095723063332906005725972131652815665495999199301610526118159212362086180009482861534552676691414067234967841688583701998808304605398150628470918814533052954780986480291120571284584804922026388104570625311629166200107185685783704350945869708015891893639923402553216120027382747539452914049163403975806750484644962153807919815772734978294267781672926260644766409737152165051580830683970262831896289355535322036190663688499124028991439737871676954590844832470929069747848617913725091906239650710303580538616560428696613020215990962104601124274269936533290264342439548509103959111241109764003983487252998410561365100321208733853992542648098390720284867425836187164449588501753792099884037650238313792010600088753071097192337666563129021566348302585029017460703948167666734472045043882231418666792427870836214572081862969833054975857728118273928341929631486051575361461132323324899331725085616349222884926092011643960053680616108897472735461464259871643750844259911173699680262656741950773393434535631622636594714178872741002024169824612239471191565135100973613071194374222662640215611244603007867534946083528186312444944834969980029493185115415720559699097562399308219784021640580632482421172499021150411974363202213255256621917986363025876698535568098170759681481481234628493930133371956328614808792496913252449216680721705867145467668184976605528113777021810979671730519066451525322793491414029196963824260855145577838559777292483310648462003040144530611641543212897010238579588282031416486917972038679928156955851912819580115562511762738984604289637683800613013085434756783603996353871494205504226641297956752677179019211778644299859123339848345664007298982832458095264575439455016893307072608538001051687469769832442302628283242174783149893104651626838082100578860601689480113285114662520913107014658489420060410912860657069205735978615109728276696367163878686152561649040205799826601241015565707912451570622489115530548108517504479978757921774598980309153464071600485608143900664127400015929694422856273049331022631248579332483280765965610038150497701332481973520803260066615062568398070113984918405015149895651965214961131053431843335555166877971035662063166443469410125392214372724531386099842079702777978650680476436946327592888369255883956139764218977844320541627633033364144595505940607999495128499440093163908707998677598934221512454754888418321268769942246202143923916886697708893844579367088852279833401844669021638311542091712430689572908843720251259425668921164544146390333437470901079073873026897415451430238091066311613691127329357349986208085015624247160227843536217421494619497451757545238387693056467332831298631717817585815856381098142129059068947537183974431884046619719348443361176610261686223432313405213156661729113370618687100433070115011142088969311139435427281474971188608316593789134309310851219585960111613225341292406062571125941388931316269219918909463224518874085143802135930523173416750543994202366120113335561517043602911744709921923892347529823207847617062787726695382531972843350826800425766941610730417309393377581991917934331395336283505542365814607967305943665560442880051861428576783271675468899297955440395785401408991120979219876358520853285499523327655536543904987342152713761508434125297885782476975687289187221499387370027900888435467988178580642364124843203865245206662610045781307583382987309764492623054842173566425713864221942083071504441195620369184644098640782074263060680570684621614452184849812554340030766330060979077685907929276279725824455347308920644316591413485416353673225119400738425972157607269169815495281568237581809263329175782916778096928970435444740265278866267316086990236925435784722849784168404355397798574432415150301717982258407737082439003469792728375158526077222305806319051621299373795957794169912929641346511407056298346034421333287174890974231380478632708066559829862870543284419641436387173060240466674605652161563973144650276828797020497243657885051437764069899403921495807555435026137091754987873738578650394778515927676553739854339448167255404437851689863942508822359300310136695855692472972197132267308455398264505809316361288214900108286080193198701316833461882438602487609440357383584096305343651010131428228400420305818962805929032640161888186096595560516164022372897091415369411132727744398367481434779135475282604675257528700266169749055555575095569634676735971208219720132570799342731760293656496666480785281853504331116015161007505160208096776959723120051637983172241324566357197023838176445698178592228082221711051429050834278315216360647782246229460259143215467195421898957715115989947627000312599369315387075793990487061734338588456743228376189348575458747987183562557660009856873750315953193335258293989823562671669004372466179362694311835700644901230414379418829205675462864423953476607999781131276643216759207009451023928778372870004282335975019528605244941109174612692569757230202919343075684234348249754805329876045588616183719523798765342440115890403633154995726819105563370652379566013898403659623453787309568425929798718566119802053706614152723838625996260638291588849459154450806100630125194648191855918737877989742921988135424301670171754111006480430653775969025362385832537380271160569438497512975001189729768961739648477764744688129459983763064676398147678457422433867605431475208440731398297529578141953310206383449580094023800565420491969603573827921584951320671396413372359019964545995622719864836131957510752355503444953200022559271790709373235806563645845764485702688157156948552661691732648570794691845780477619200264530145855116015637671539248303108181061327592384345724797788190066712769217879229936799078870741539878211240759478334864568894876784031885789113927537931240780352248877511361158322966287005917440644549698742209557954945572161875984532332951408140129607086495001122215269861761891891074406087297360253397388433147269816956891978165733695474598609221951004806908685765969753111749285778031076341418089014701133451803542298381682810689923926575938291876842957793499731993440905820615385837941994495915084740328043727300983303043620311031773229890532071368559096631039661334671381825003937767118188135519686524643582340476493861634074630943283384049896597221230777564339758514704005166773392470849209450518137763143530702649630750103529939520111123484139706021215751783901621250640925378142838636149869144815409774070105865883000845348554699339376108885183712229226864371426125600702127732263349590129944524977942258256733308961107123538856980795858514290638478292822847834082145498189835510900579652945235213346454036987183723455489070622750053454316972440447433715135231161293033210108171275038076541255427369807964659549898347928164872520853334781374020303631551331265726213453476426644507141286331044993600725707301185259611635746620549848366665802857442997787883764726377216342245304673545883025223569603626429929214984103211011388367393841132697635063374205375709431053172208301568331292231517708498315166806802255510863929788292638557642772234594480079588372631985540643522857748995921298953711245882954955348678443304849102368798267857858471836660633540464281048265042332992680858598713548397807865201707139632629946764117641560589076249254303258394425962517627712995873434141329793720198926178811237952025308030320825756856898273739998418708170826672017133966466089829536579859790677070486679503815760545633150179849831224691090364063632060980456967682196325957259752311655439201831217134544578667215138098459028305384958730950328242008944169178859402378451269612075982860682502930561075705509630148863047582213274238734864270276641614702075004209036367711945657653193788318956548987981041823338820668792801828314372956513100630973491137303649293371978772582945052446033369547528894154958712356741536903181986428789969282897417755002205101148363756982709978075374419414040282241446991549932230193569961184429323044116099419919869085416589404132754096879194484792616523285678143317109931590622559157183089498960539011146941123386345506713148261249549880612413371136556274004633689244806145978183262468492764205061934008390684921115731538953592423221168394279259383012144813174537202119264778073819201874873593708439746768863372422369094515352051484596142781617880203627853387018613021367355645316586687265592182426165139577489116701325516645759902778123119932334067257939022681742812017204627285754595745159119754148035993045821752692999795891671287185878815238584737273991963321114526013011741550303233057286432279581854800120438095568278422346395124126670419183793051259608000603904491779227847056017271306953826147710066705278650349189149092728779805427472972784235042819219259908251150037178175030011620687680003165354614110536135524589241075538796008205124303026659087514693575338276257648254121628168664306164484474001446520123455728213220238333788164900387513967996239107778226672517303101666223146230571242439569151167007807272854127336835741007663393025309805374839256195378566146636605554248478709571042367839945380727708027670384557819457711728510214098625009501387646972211513233621765871171536810287360371427379738154331801743246204551625987996250482009147528210095939545373446620695484986434953222785455003557589946925080127203953001520387069365583069626347222316181257375258565221749919224868231412378803587218723066437561482495956371654445622501682566704632531239747259202354474343678192892229800575250976461533315277687205086612400302238908250520534022995138667669848868272063942838603630753789934220074896491090902977364800947295086517649247492681049420583426092352912972105150410131619073962223121208400552274764006224727687218456932031993699416101931171223159150352852030814162079378797893750961586499414722644198495515770852671554875437744495739081634123265520616373795420215878031739720600719064219650784319437527306312490371404884247602699609469830358979184995480474438335343126968977838208704352797195272729572841898487843072172636820911681024055855414820722264880712006907414617572068345090615785426466586437683091207023500462769823004439587000333699508550055472031733074592667858207211314827575529436894537464344704749509167229828854273030947432942562559821368393786911441540195490243293587551784434318679483177605081336807109736591810379955766298114920827888062109531830946413092155157595477965809387626025779928464788514933842250149820801699137410278037048807330435527190783464024719589583576500432178402817238739892811454547143190922595920511219396066035811722524809392066294336797355370010315582854707450112149944722138168597144464214037733517214986721575224801647637518675075283077249242569827490863675752011188734103815028005843693490673809963224127695648638969769909748407309781750157743787295029428932567392926789013303011972109552883908010506089786613463061736245044221824955148978722108928680740866279042847178853196514530271935544762583194157216610250999450268762504663168318782407189945185470790923967488039341076702953099176168855860167282824662697512623122285582528246822476913679411443784481873829099980771858734534466176743598162244542694048740163628911219255629225930187503600038652729629061238774578055228228772254466977206424718990822663776370925427241270544002253376486760458232582828870924084352844605248666747018236000117769813182149338326613753620639058551076267078809440644102021906305096883569983267396845249769094761749199177809541656846279016270415719487277735201797709343200498436202021726201946314106144635062830444706003636735705219014168768394776085275971376043394195795120357987003329634231227868590244113183401309879890464918251404090909837140665290189256149161575964771303407933431782308646917851716417325823339489615701173689252991169097032844473390472394984355301748956968635638067190356565102741353268239798028800793060118293229744417143860152844919932282821609278072912009541686333964936898040988385686852254231671649490206487652015080650327747701662480954716817882911935957827241248054435341195898897206109068555614666462507952476742108630855827146497538855119380693185634519339997602805026380053378573345705674783780779552360526242990823491536236593990419042711950147917697760832168056971891040986792473794582290256556322856403885858828866293313124183081224550376299128910693240765087817951533181453007236077364705131354908657065407862827510595129673943282894789028653503841207460602620975139201144429063664505804786008191563825005481058417402536488762854091688323736170638503452460451713973696054239998581853592739701159705169737845990786500285613934683996903149964576762511707165674438539822440611066486486725636629923049769614393423578748792573964456383033992467618148374192790300345758310897055736928861601923777269153456041704461059561649090281290878467208544948922779210851455235010421021547391060305194131158120380971987384341430101607312341049389159788332892678169664557936924677992060184000666178362763359399437472603078105318137460552398503436909682028370919125117118187278958340822222304648176672778371833101482328831504766026610996228479082545811434237767324897802028441475251556828711706186086028704313773230383785091059598090870515654474409429366195472985123395522283846816906093878056036751975609871903590377232790384824680376373644077998455723247664725179860328125387188983056453653578728409384686037260498404717724604529453924230654486136525179756576048457350577227772762659287114472713562124705762972820949830297256920245857865888920785580314997536553577527426453776670882784094958968682380159122595137136813042027182251650330684881524479396490168986124274379176404422651098749887447547245605808732293683329144749051227475747041910378219475377466562069905464223327061528989644811140212138688816576930893618765287363892273172884995569966164248826664110399087268621107600266734443870818568239020094722299715853253345307558219009497944807915720721994631478186471839478475506661297096248579273618082972849126646865206728726197811569489648296114499095057486585721932918632626304119557317224728393228229105828974338359087918724748135936645377262344799506542810284906380919438822836548744360420731397589242228457870715816517914151591334287586595283252712468996814304764701975703038701164683929956409916610020025867818342931010213532554913891858102058449268449450656691318158369382723991792521188018893699294156364117479793714468075680709398779069034608941665806745878173605922694448662594196986550976232857651030607497589722784079575607478721251612340641847497011093339313078878074033692593494264430198619211479612315658950071691590748020022890964607053248271030897875907466016440384769514364034059159713883938052634878179299368095036787287178444693969953680784620533225807291306209714856931647836250575689361137887902423803800562657784736259464185175256183011767901126339324453741866290474396638591568878889069546586362669105378631211086093969689702616246619634093355087623650561308630775761378322122365471635589503959185122316489707756717730793968938293321826368051449760955177063744004340592427928848477869041323273665242786403309288199398470041136248790124123345644059828604749837426438216433766097437532906242508134984010289518877034106456029905405116309456234996934209369987995772255699768549001632350210488877549536060506704082609974285338253678502340528884268058136209178884789724020502912935381035753016311916614293346909486635045395185249224806980147543451133079866719788134972250463440283927447963372376524513534335520656778310989737384278878264872059913782425879441644160618458850645859981787417848746713286879257178243892463174400594331154535020898432974239448047624309403671178962889285522951052225955832170271893039126387331883555159603849244904811380962600751745300462434516760078077738244333261408861971175282295109278116165472678163101875067851122679326983024139422277207421046017031788650527185083139572931379685831973884793235349513417561317274861674134944349262473114551789154840387233938259093251632333416654930950181125095807777906783423529292249783351379166524182047103050242696939841615129483077454100993384494492682194651243943258160023583522182407511601660052609698849977163533580402669682931714637341665444955930608473454951632081221195278148216301063945582996259642015643939096964725783570263376366688432250560757662323188328195166050531194339380781155760729388020944404137553209992784385286302152643744256369901419409854488615865991256945924198690700850718528362264759030481380122155033728998496153122975123791276003133289513286720651182255857600700315798354290628289743850815821940734019394392393098539562932652916580435210042379046290393907794332046365401334920116889153319143574654226165541695294616222339526480155943234625437936178829817642921416809806386991324161388375350949138087753068482264733116681744774548004798653230543010714480653602352412191050788274052326054819923640028793968704750236634838423958861998909314170494801130287508611111133848180921483084651538471562231828682261882324443551211665742764049376928711347952644404965213712037073179910394593313483255913333668211568240576163577752059373558469460772727458048537465087131667059203955899757155730352369263707942667624661561529017454328261683628585565713939952969913735948356599777775330926399920241991808714534629816914232995508430310836161045482560173526494237231828502211162540892246153513610058829754456585004525162022450677822430284969524180021961924099758289088853788106877206403627284699679661898088552440879356781251362778071954211313053721630114764554749012814448593784051831781780666800346906651616362581597622093842032285284463405954944091929546423242384677662751873333723623591054994372015121656866641851097480042353656571063292052146770738629193634851979442017335530965089883069690964951561572089949255632479360906855013138226062983357075201257942636873217387679329910560882419584721462281044685827127176491096436557781932086424296035520476565850212302095798412318576653611167378768030381326863348640564786428868704515272488770788352505424281399886020742088861892885413138584226829533059160621336466059711979199352218903816532129778231612142359626624026235312693522294111751126638005320870241899216175536519114888553368971226314153525323863557826907172455297582017295768784100635384922508983781912720809553381546602902800493358126110268137742679187820230094798786421277109709751492702688006791382045212802577932522101844877571692278435819203649572767410570765483432486085072857607152733509274309328597552033754090644466830366331692127172681049809148199734587021291502838393741930914050428077331774457566934036003204861323228814852115834553666449350731534785734675209663524193594626550165658552750523825611182825948459273704879220131950487152810974330680623165381782352463897849371035547328692301650285600570705580665746331066166651042157273899402983206319216513613680406584173439056291609062150365477137466832450347711453730099943443830573767807934703151346369138878149713034381792606965300493863464077699102700556846322672528602982545525491487609540348516384076871824564277469840196717639589739203656793069450077717671191881707322776626989692568636320698629034587756304764150758320645564145619556674426362077037065651215199303581338312208389904905687018748128164920092941478932729273942217387810458451330088724296848340905408815446178047849521093497903860804846571963910897735314225798795871096532500296200092551366836092723626750431304053096816274596563299024372615785632671103999540892532999156446837292717715910134551568280220798223429029862107771484592119137417932969451485813182561940065783134140264216806745575393625141510928082169214940935749270637072773962968978721115038888775936549589125232676123435742897980752277830529362546719393883225969760949968196227265112160919234808298518612932832741334232333194367646017522099105650721666421475154890735537707684009078078782622883396907677011232265430211270459522557197977139094585600405974258243829747818180120820615717772930328695419219776552532058416469546738099366393676522375439466976563994175506749366331261648446745357067558942674812791200630903935022711058929041301193037027723371192073107008179770041458596980811255218542131604522514848588570917250431784699163831470009453064774260090425398338435256819909337328852460814950962642196185924071575610512064912607833603618737858177930933094412834865653149516427941087749877066455696603671798666388574402416763300205387556328644836383844803712614530855083116304689709278773195329642502277559263207825817271471403232627891113433611494259264770114557880044156599999042038776958047632402446555535999812874236826706874684942930093663785095259578397375163188259199018808286151192014825333209283246242597157247525228938935542361940092842112481407810335328437591789146648559059317546484271980643492019678958923351865792713544512300047320563887316563388518381695436193615121759928523875294839555022862568611700754229416978450063285779386708624373304849997629202804399839302714113200742124050482937783712262552897075405044555236917646413127521978530426736995582733743957370711940385669531928058546276082425038417279736472437301276344075444426267737349333835828929651796805400205064835919209051153440046385664054907792504500203431296688231719277146255022336955729389006493958115131085696687866903339500757320523104580403825175330094816377750251980953540717476397367297302281159800961260736104656440702532624681705875376562795933729876749312728243670349047452428093653499233200954854872128362457401737615818570595255664510270347431498752681210772097116926294698232068620009348121542073599540925117991604351396786162347725182874760132342428102624159168609425568856761387213691321466840639201845859261986533684023167596225460060359251922165479984750559804589511513541818493467741994186931054225025501194007707909583634529219865220433222981471536705110817915129492542903965052061227147397310213582122323831409799487704159537843611275053191153935056531015422145688412728729612910710899308796897809496029776957137442942945530363510725929757299579739328812919025198150950543812589088303192901879948080123329798262380797557581475081988232770315179890747095457081243988589680813062349681651156187939680156148753070232303958728316582032498930314210421401013354086834485835585315817292937268635028092876241771122398411399361407501423482665614139875437296411646547288530174689883224018065348193630976761889709943625473531569690711276072034323001828534070235333304704789452744947035690384193774133398016810533399111639714506007991200646478192712208860447388605955492109203246262775862527436001596040733172553877765174197036915593727148595282830145992312038870088858043026598235032365879768246388448284159278737421104489249783877059488215556872014809979594804652395685604298173835902893812560005687948988675797474974483503417411790135518609615588637206379405696404750462838972465389553540212561871301122603468130970490153709276108294777759752015804855956793365634775140484325171146684746269711641710366926500866810911908279656759168618970633305448219489996470597900342316805995480247771199228400170945795202209004077958893142293342217456454033465904072411477854099218276124036726740458608605100868183373288171091142059092496310175947047000055340448584845885080320064085687742815465871659821785233353415582324077410677007188346209987604979030950119746288261883959464221929471763729068639741820303425494649522272611891656277749787621652509823149821514505566959904335368230478069148716439105702879568048632478161958917911662490642190987299339132729637187921822976968960740967244551415695862511250555475257124203890670014147009391956848686640004324827263179254406098100902884089271756841387144764816544750680491057836735183423627347287192239087054870979670147609525337931724820729445703804280600532342709958801063465942738795111151152105760562744022626049470199865897047994682297318301126632164455089296568421255115431457195271757346512558758256631515550034910329010773351336011158378732278117080403517627239722997127666495930883740346797483310142268994848499717361230183103341980567173220766579385449373134573979676834093491282430699315096612436171118416545961462537205657022146179981941064902760194035880685255055230716305103639408824533312681543045476380465903960881067028384863710264096553053772156955442939454948080612624052774700758163572668444758506804683927641469426903209565076794826674568904750819339461792036978441152487953237423090751966084188373256143742711800196387029424064730414850140408122725531996851794715142760875851499604639683731800897520844890121921118673143924988407726699110251690890461716601179171901149327323892139406856449840375872608821011146927553655702422598064026423659402077426051177429296677497212086563517956233788316140924276133255722871950668815743741858659587356779263946877015767715820154793897170600623041212005355272451325544643519935104719311215850797269621785192170965299420363108353274714648724311633581528265561957183853942095976849624433659199305157818594256382169607914145697177935098005564899278898880471540487847884945966765152890888202751517562163053454073226510041604473340882756065573819983221258096220907023676936293673544298825279752019878171204773600371253679833734987177314323900160927073130913344760071000813803138978841082838587986879561549010675650243454212033368968897812526746989596469194111396677038703248396054057481488439678414877911307541443387986775134581088660051698763491626933842033622227618605931873610889237787658594439827329835167715626721708778395196314148438700622735163047378542069959720528918035022584050611152496734117543158363982414910538756793497945603967641957551528202626316228738824494566050586394896021874842097452903570521041912638619341465539739588963082793605024089628639336919110666289429516158238843649498229387865260466448154104852565019828707527772798395462764013878129644532553646567200269728385854247781718475033672093967677778393312514297484749529683703004303013461380606673917221469031453807512800329290307708773641867768661860145385757816722632943754485501643495872421402336285618783426247089344312809738770528177598527465910954454406219637616932149053658099862836725248170106354807631550243497718017294725564449233758215336266293663841916459251589274504558228457747629301289116077100864049297040454615742470772911242454543493248135595778849156845415174126973562719942892443061580093488661060178344313565977229317917600225594722055900343923409831460481483800225732782610240266572179623349290913172080749814963470923959135323732774460159457598784059960523496560827223819690938548987053562897406926415687084767841421248304200246368129683487529091685890591532537352144773085804372820559635766611297042879313863802048535565161776218636968084222496429159464274484627841167039689834483098515620812537280676833386743569483650761756291917256156021806834853781470261592013066413771555524544497057830526994525566543824096703875275337378165988115474514295500579302486704845626253549559118463219342589250185776568928978642287125312259005027162427634635935531331891975347702389780689581509174115387960408992551938673763749960169981145304599811259805760071102978497474405393589764441629732097692251699989834333877665717007169261479134969890460047276558968386456199520386325578911682496905133900233890405172622275686445671015114513966803362920868379693272881854459714241627018700818915148150510030353021831630987005910479507725794078486792450159423897126964153687310317498855349437633891460278712998259352164983082775326339297864549780577293809933934693923816212651228604018807538718758031022433964867205511688917378993004316324014963487208888886404184262496455172008522101823895996857310239173119713289647554049986278941730128434595450417897303600166688524646783307869435474358924866030506182114182642808881133722866842120764887216917032720207400406757844459030855983042019714972815342507699946209717596501534101135178914393414469079659092415326950224791790974055623843314886029715510397542233148869574090257874002308138110606452756959650636573992355149994173541386116004953073600886271949574921608709031413686739281608410046264281840545479120128024484535965219798992086644342571359941225979914065180728216139911753270021853116239641428723851942037948426576241889433812026543106511807563866800081852069916775961180245248768872970404614449255033360855690986316967532831739922739534781869987822350429093940306740828976761194021739872456748158072052918933226980933168120082138210540717553755950949913374380067842435051057136720132053959310535412686215596055712233570197117338073695396434773097383597431226196995077890229514671632011772410977425264246871589197587590059251599527722347142963298089971352334288341054732771316918306249628667604256528741443658613237122601842542937950459507734008266470734394646256457306810927134824067403887274835099162888125597597683922834948835673700254563963491226293443503790027065186048419288858342790026415697192676305727373493901513664993345874849862000104510135361511587340614985168003512402123005242183284147502756183266731940019232801097955609308159420198410501970683991274441662687223478487303357663544353669858852246895725158762825263751308363433752205860215449661868857903572573889351455070343709009408520693707236861391530766941110834238007904994887763656033663074006506812859696051418665964151553390318298648695568243445633287825114218107041980112868187408837227141453311329420841182944613136471209830073798531447435352115448778059457957647261899788033208250574597484206019653774466199595340885258978241544943516198590139205096821582014131303924295071400093710715784470678432781991610701338477989037958783238894987784084957418716439332706448017537788900731167996128901275281388246697741467032855680191026395871795635466674473328780010393583673826877310179972333080545048309697095458978537378793379244254689013037587884073901993052236553813152987440628662483413316748913694280339924707774590323180964613126294715592399679182549185189525676399169551917366812023591482265563467630548089257524539776073298680673879977160356088320569553022595870548349385467250357812345459578175080104031432688573510288841715090295923692364122099354093399952942549071752053443265996041210222076345881762359015902749427127959627535333372243485964628973844158418185550252875548480245572502244813625877598265222569975485304874637941703524571408736546675366516136065212224268442818089286529537876891163572200197732547791467528984319269910672053198183305194130189608812693265286707417152125569675650468511354030891252393048634352357603608287942415054481962055836408690272485383972696038291549951564849788827420599028812182652946370329946016657552571696052455557128626376636036092067068789455432434246279865416393048994937378407947730829060234575811627237961218469910332571239110127632100606755901708481001954135300456370330369618183548451930489695999730483902423535202916924152825341485947050919054860813188774210658873061008593268270766144481216385767422433779782186256834540634295949913838737508018089091765059990394721837579113831293678060353362565336048984491837270706560485488114977229451944823549148065924804767158617342732575878612362095549475435095313420861381804906534096986083808402571236337269660285990442438214563557135493584641568444117826071074177783159033595773327091407111514151760335302907731581532217197093282882696576516303531730872482729620342231797153610771189380037359232041962242177910330393334379279092353540113905320734869051593575168192049818784837972529640493998505953848136214024795911408211576233489351512158437582726219047541783057188648779375605771190788303731837447361682501464517311632415832856092596060594671021376911056124486769418211879247605639147112909126919469546491424907774040514101832197691442445456590599175196354681816461962518701140889520203854142901721479460383797552867447474471537869917212484755886849183065963485213267544988546816586247459446049386881023545551058211657679928827112776437546080192690907017743778477881862097360155368555243743733844732851509515740567645431247843390835034121969704787017770275315381465610570710887561289013748547802199407328389959293247881886207055094994769150501077487879434725714508424242840269358241376674246907574572312759662173772603558094262985487900074767194823236962708217878462639330422055802702191929054686825354812757695517798821964422873669337776256214865081666378930125443210014477610725964717477681077637797063121258682033119601080661315998987565100526716459220714459151892218484381155649708116888776552289721085203690644051002595327958876257830872085215608194443603313164339655167911939618620976704744537530187693189817238475687194986864808111791420166612617934274141076860806701098589832935705028683622018993526313671522031754998742507448768132482275934643923650015721060954795714058804246249380580254737214939914419942622892137723783467076587423752794774444682384504189753707254602141114279283249179343241484862802273628165910205859192001746464385342306389924644534449219960677667666881576705890339985044339851915928402328511867636714018903661279312466964898264416860511901194931267432380292873815072511711494691799148790584584966497332431587526151621436459411205583465420462488324522291910286660645849940577993463370570320848263920251415566995800938990781132177547712679853919414529917447802284119827825482216873480887922062239042741592208327013485396685766647066885278784455400193245076562254022106754644494043500690615720380872403389437910225999067401311099378281693365827656284277564612435228453886495762151208406877312966809194663861501232008160254494855267058540912584147984917935371559853370712099223737899429351435779984361608407688843384092959736897382239641264601219180115167471161004269264608211021554407830315133795875995166541713586162190396520789669177554690521102040726689635961025365689998250915556103954997437690110400001610215709491811394146169246772442176120146791886291617451500290071284873003461558198561713591129281495392689408528268162144022956437720744352300474655455418021360185959895755035601110203609925599065669098755745550017351324082433305932112047729531806480295591799322663616178559330582256616036490018490078056837577285312461672122124196613225898615515137709703860688571558375807796653949082740320829874629191830565162522320884597794597754274527128513870706201462052320892387585898533480786549098810439409277868158904469555889035729739952891541407913175986742539400986929461738129421856132675855253312498235243598572832513726134725877242352650439661003963884119365076540287811655280741632979373137638317649547209084432942247765910466518365899255175268686242353067368351039143049404912629419849744697127467201038146929264434316117162028988990557556787939816988675989176019303134126319275760820529941192091333613565066059837639472119479311986077257169194797319023206452455255239703233207018965675502080390525092008681942736033686602089267456507409381170489421357333639382356837083750689594891413729632856985428509900348501496716625892098335535523864030754536107241865765427232007790169569037061810599786209210597733600879789470763818349810613529361132208032948627924904008471956295287474519314550093986733355372136491104083243163173872330897004755786664291182083458102769526361872954545150001663410610223693535786323003434883506996832312410481301968542824815791869335553085566485793904333985397664460456533097955082392567841885506763950376362640110974654059810421612796137840212226046555275782869151828892197625161482795333399686220060316259084912200189033124422026735454705977002803177921650323718866975468685894959713470562917401343799341228828583985524746434968368930826504342023747365351361341797722680974294633975406309856456576030851184394275973539520650098464922017133625622390359664875509052997706381810299305552760389075029799447643162170280723024968091527574348316124801111139324113690418558036627019662644752480843210261712894927274597340694854647892359505505497560268951179437533249335394249369940389139248674553042563461797915115565086901118103829849328463766120860555626735287202967022740837678084536328500493329623772436672740141046485451224034002501388422007743294203566521070841511322580883971321273468174739016686245377831297182120819281420438039250741719491427985816594975459168566999962335106435881468909072155015997184129010780724013261031995231046717672616589383334988843995407987950212179462345051781694824209673356921196709515865493734009820163006605435060536069777858561325169209516816730453623013269240276951199107661412927092597905315657169901141121308895984387121304416546082849266475740420593119388186951688443122940242769671761389132634978467816031400437160644501142269060961300641940137892385843128917807679809642200608230343541343791357649392685487071704417276153856095196269145082695850795395636944249200514565562341043189019196493366241643383928553116305261477911704075681511574613030491979490001265631327931312876006175119784686354616785778837539209288259259286013870303777659014281683560689993820706102387243519843594066088839385190902542614542974754431755271136360797024221871852716859843530479101472519252753534423557008059397637718075143925790152060451766134584179000329917613437424811507852607486484130418789720590469375547432541930935515514380447234622464153781288444512688295020691551708725797986718366190913274517312669148686634484647477192797370601433175949379637582634112681848561088132156779868635296159865922759371008569203662557951956140770704469391995329594448569995805905561564212749311440569086803557018168730470794260501796577681014571416136186921290181100326711962631586689888839916035684650133854941349064071852106947893253117447558716594845527968878600348329827093212653650643390101275389431931652687117400682615787628678603159466158922276450797471858080460238428377237040677010616894596451427760863618443705714650668986294181905920697503619910987490707669262265587330148509785080282285135999825316159344545313497067764410380684904720851807256257259936042658903800610024387514584329736103231681193872028099999362145839586628516496400096042312689251964013511305020073279059547070411727315830165541638203909862140829735490077486190404433694644370258891193997651523296645661886013951585557923832989890886563969306370380583086123599134580949987710907326779897987583792313781175378170432177059645663309506820369262721418378059000567968752535522834390444252331313750454199184310467797283617276737374233955977119318315350494210606060942860065659642222167292468493839488206600838663127975234232766435926878919377680697501348207888889295272148679763009265600654800418593612169334726997379109301495287050473890408376390435409076755461008095873760920302476447668788406074986472328141395649422840164191512579764533209241448419657411976912537749303311700230946939006164802828251993011314083505984881888084133063669951628124207533185761361274262294211101664617496512061267607638171676577873961081867867454368632646003266321049853937079702000167651925695117536810188456818588761321297031948454075149569339497419195393637373589891199669928141478216926198815400658033761327776785044698534456034642067345296673369330820449816824922515327696701578043921937102854577720340934662224054321570533322847303817692614866370432642111680807496103324480618100414933466447319344839200221645882322833603013681373889692016464788404906303712625543323780202624768072722771262407285196901819714797594017486936616330773310456992191590779908421849574932164993945835560157010841011810600231473450457125625605461926278665067890481884788913701994971966530164811662291439681643115726678541843234229950787241959452386471386317145027599539704104686081526135408694265567475331239266419913656457989203760877854261728119739032343349865297155536609727571515882123155528272849037755318396120293166665323455520019108689720504279171350168801660897494298041836524587221022848832264300578340405352777418335580043887586698904963238765027229343905392457650457941134191631460929760043962914311629780490131636859395213383101765247565454729164722271329133681062978597972782440511286383583752824452232974888731331423534554617032427543262855763106439370464075410892654080564682761956721596688393185014949496230074408563173693795864878018851584919661337029968598798319765325958537390312745564582384567321664798009940965332619535096072694658793484094013042343305386869391049995738805737904501054031697398868316034787715149560762598651457266035379537575924853153411982821707639861643131152973177917545302240091315065753925811275761915770065206625134212291773335944198468483203926761639377271429100057522367380481120424615387961164105121480004679624403620917034623207100012973134995975991069834975216027466447522904214026970666438556914730465616493649358767540262651910903904698572096462996287503912965126691259158272545771054511383434829537818692992142327859046674603223061675999299919163541349497978952790523045952618432538050942435913076393269417837676810676617860346425662261154918093871882552580368772117330789187263048225627486291644164595266393784838119171595223644574155554338838702580500863775840601089303299926140613646625097117940365036948594600315879968572590513510910156626159352018742272111296447162090932878580856275622254143857479984895268354268978176606231904008909862739958922858198211882060166387407210773619551937130918524422200262060011073768939012258481786554325104979735186706361970592953469920222363542462402322601603715140164636267913306077664242231124313862690163590128916237483572791268469446861559000694989631281229193684857743994488573191490057744629458678570215292247210037011002219377433438689520246519597854147337153560923163915347349526847081671902739115469694055956866117821460545973938805143088184458755741262540851275945224284860775002918170940623696077897509208718425370207462045048481216495423378183585211214078415144032354733946146121402016148591937260508519830538841252151986665855281671377703756241022212481351498370648134215128901191921367504407495181771345813989863791637764426793482514888095406854379558738845453747366487905619749965393425299117279348253745821794017454984331437092632935823952902769345851621591893301763008849280171328150523734627502340437244983178396927961272916127012287694596396092916682367526350297822991645551054809533409806210995599406087680911689904434101518895554951310074198125738255606907235410570250573042116006611889987467394809985074381849622287887378230231407394976380308611390902950517712768342317616137022393842879087652365540169167805864571535876286556348378407400715501325706622108694449165611574366977267481347154792153702855166845428344687038802447333076164595300499323472101135575564218365174960962926702582096208361054367520648739018758106673101506454118342332629148489539061244594673342349314808352929544616562183419730552899892556889732359458588465415534540874512421535016096940714791334729461084364607704376427861869278975863635424677942628213921855137625866367482971284574775124292192085832776953413102763632263621058403873692452966142928493731075528896482737428188941784208550125887360395231758309281759453371766797933568646678668446581661569737937611932955679307614516691258245041944594976848776970993082652053738776639861475367258415651980324040445587057931589110272750273893552084365061361182160339129720153392828844977436163868669498299787991274356143592710838984882169839110094850688916855748665632864899644919169746790821870681619305003128177085320308859178982545346946913249984031369952934644246861960143614572719436432130352400728071772223977807443908519527787435583343748962777410738021088163956743758013629146747762113388466762131255847314991567364226544108248039534010409070150266426402406160886811954172044010206708908955390358273728246493493542205885784558928094681517952569352022012280003697813375831439113217805585424544938789788167984425001016284948024304306413197728249647574995129607242840553662502202705698111395744893349949520483629358180310491681849729093741409951239788365631519292647595390677058052630698525404141245143435229151022545867119546419985350209521670650951677468849364727756664336366398805570640446408776289940061234871329120320949766130932905901470786315294126525158498999181843141650761343715653750373517821870059955548117142826700434308891526607166122441570180477808636851384289491509081371433476931925321912108646657296501863795466015028333203979698434289703933791195339108187224219420269275825151618027566591989501468496452632980965230680057950464458018884848962440274009067148343772727398207951338134860184820866218233661344315481297999938975982212846245937453050779440063512794816512244510531769644106870533740693462040351465057391753010471285540068711118369826606849749767688128655277430993005004818563454921639095216247048896239709523718523450718085805824871583565176837168133681065933695782514967538461067150908598298703726404381342276485069752831077031173477727028647690945245736016967037586783686840683704601930147188869521153878204300249669938382977305397940069388369459501805485975280360841400235265163139261040932516076864246126971520627050724449112151798389915020013021699998871556828092287551702721191793702070978972725455959021784972274778306213434851774323808168246562312069710960950646625526264126219190959113360131610229166531690824527217797954879582290861743575118881079625622929238296215525116920767911264088679786010109540163704501177051044832636855692673933361146064550483487642504604502046310649449451972266746827743975488206383561245747035065527693172104998783809489587448024236570954206686294980554611623931462036819709501385380271369175385188407379735908932183874773745052517427050926670525873177547626175917087283446922186473690956236142124204384683299571013288612520849994189108163139936234673324351529003531871034075793775842302758522502102162626183802586150727510989663839461746013378075892169720707697756307212212486912196940922607442827964316919851271180607409217142030614344509525846098889835575929555335183283307331704399783730402262454880150576833107406361517376408734308695553845222108640987380232088008015340939171852412849803791600128022656075777377049525193137628567437313335729404575610996931244538122539682984453546336189485017752003096455676412669084878765838767152380437564305110674630452556935298841831412710710776797667337436611534751627416310539060724126503429891523843910093439136844289432194361694954299052774545695777123290659975052608388918368261035659876227130546123846633299882593487737324434925641658865126528137975033988582314183064617577539513570541134459345412522438684007750899616568061883936141516803539537174109325190888142363100120455294306051351789112538028061595911983993205971197795554722099635946667899879736087518928260918557735728854101087308875959163896062962905748560689413645560920129133979393402179722033097192521447279072081223401357182461661740145767276891923252529972916385807547605754223782874335927132996800962677056608740689915828412019987982723291907408527803665601143646496434586266858428120242313580361686924765611128095784967007147806570443613912871075215956412416932229702612120949476326486379705666074337920752118870905941492774142939295001137330482114338312272756842276944212210601805885650417545699518246774106206354524286825865546660001013513407341187088407501289683372340352323337483455874478553192057409126711894242467147975691828333006970802992579461000889106152456607751550430202952442708411849137576190081591560947557380178105319054796804166280012003213561619146738060756368587255154075613098043844797314152315441896982535375166040862346323753993500563731227039879840921298391734826597959838724705123752648346497639969794899124071848011487905389340761700510869344787432196661479656824803368785095679689418685226814454549162261278595089858013767194523340606978289255663686177500046307672403851893095099645662090326308657760395441372934621608969153925249086917313487646875833976175651287722021737987154029914365406923721499503335561263246529514602877476755627513783678757711932731620515844498746334767600539380005007037220738789395901706373552782753975810677381286231199281604214003198246264856225353881293917083923055138681174580761273569021160666766996120657586665379285090667983444159199212150517800900009906845145166049424766549668563855391751439522392698452376811952355067359019120445154777959262848107860999323101966889981392510811160829444824920871562950313077396005674223174583545860308258481260952213640356812379387083229691666343256947941605197663297943006299681874064225209540993600517482209179502491115520813678707590589666141791865008202208115516655829063738686832730975893353884197272868461116860998054769503075531822505155360456645710773713143704928246731572386858978425055156671788837861743997850397447058069286936214361360464334901681969710168032174383263686813120856420068403524485194948705592120893185907933021080950521799733400700315451241476325970504561309418679008154984482624387107190835899036603941597732549574187612698223583969098819979808376649518271710390326518659573322386505022916522875272050033866371644257054983757587628887188199152640364284049463462834166365238330679306815722183300810426792468656725810175865090084970039153430030925457181833451918925607954088522331193090261134164901011094733028846707133222989346380828481984732540421643090756447452858643421697564945879230120366886624459918295355975843758723590525622215062152476827643080693394915744964180705799652425768747043968047772386542719328726877153132442773592640784295019880462702358229005181423910476392417673944066810616494281552342296497692241392010470100439789876781619400938855098372010552717137504374593209740550426547526656405329227242733353891268471711750091531380460178653925152058013783263807167441276515434631791066351157691512221853409401209984896227520797661094128842532173044678548480804821522842898985635448568837649737334505366555451142671466102282496400602041981036398151635293015154364203458473685674279456839946473606975490478708533915214029275498661697748999100151476505514238722356084088477784760218047483927744639209357106746479322161376373275954758283329591375126772103317088068345297791832262602832138953940381241111331221908191275361651353896807465411901392913828418858743743968578823122827429304325130057458370905236047047916136058307520533672182617657413751090571664509169057473800903913350458257276852862533768390663481061223836158092532167588357554555275434522860422934931964771419005491171481252603739838834451427038135103089603312534622256222796846951352830314733292252305239621684204250032505510302343397935483562188928205224161444597329069510920661736873871097608393386351932735559921948277620979073894727849022676768722859711045203726205123313755466813847745685007739832612783244814299611367650197877378217843401569334356192987511087726694578165303818780958312451866760257720560661332640305305218721170244960995352848461092759194550860993611565070169857458747818321827330477230835403034685798453079215148747171732664709740105322043061191997822449366270560236662216735331989191275844440371711221241248895899904391697094763262101579855807321533798747787655287839158700398999942481196490887695294041394698084619846366866715959361931184368033516057219554821440058914801070048651703912703696422249591123807968776140832176182764744336928022127762982719181631379370518466318342401427063152563209736681186272092037419426430945103386910663523951323702869551093962991413947668131404181900223591323393833214652726127519983065274288584717557273854712266387171065825573638803446117588793086430093773002586038693302473404724910443593707192935986439755073128927761090595712068691613466480597431971304640378995951894539903063175265759513030367321327913134176320406831203025455610016413579130077855249757740819331675868898025120827944532057580944320156765344430261123235474464639035959673891503127829080071635771569564457141758165983262421150693895852723294696874422096577196919100429928403766655741508112913202138501238682921493263285208819480494920922304595747043132228383242447910664618841168400068853748568505010671155079131275509188561318936787728612392021879064378890608029072839596612291633982767135874947428897827089309865561906896920933452471878944572195229162096170558608549363537149910336377190149425666644642113326635721045848754197907875369976120061736745513241716895240758514527283592207899703129719675110856166809655331455427006536016341912357885807439687659794254983311699447455783176620892357360990638707859381061314830503175707503834181293340564075551746600015947826743742907670360961651202563746181881424292301116214262362634644384553028212295086146813466164642306116362934136513283928540820895843715878769453284361908051665181396538470949316684218684157788910339113097228729948041014061465104256157849114655049608215848447503310849266507622346697260744665445086177707745504300003992596429174453773292289841891913548342051001044046052282870509431785896797566992314074436962603007429268086378710266106477225296902093629884502468832122534975056367676883820577349448330602672749986135225931699067715891931408727911121903756908741254500114592611159588578554536740255976655584333511256834538518358527751595085458465478609098785517909857354186344871421237560102704297305148632868122241095535299151654273634712894495508051836881636849564802538006883238633931319478457541492439952560364475608459397615711296971248132544045408066461275221299611594604035329267038445778755249082016145035836972027138380396282409658475320270062403254030875459988038540758542033940257448753791490349950002596703776526606144372792475194509189137443397912680324144040742668401771042563555422666649977253912566685171998559113756146991985196029490563008478511980641089069856103451503148202261094721610309362599199999901379826831055534542813781445974673154278022660891897102954955012499517502362781515679493978159554341126433212594213868425570519085954116995573743641113803791773090957517477006987708342227719436138236165507637418003359559933186380084374441091814081643236461956441259675683227519833380019742165316109584038828442916889906910688651741210658271365083258410254569103952587107362604539433122248163678672375333871171972878296091006201775254110630554353391869130264447712550082474476315163689182807198354534345777703509522250705425550753230214491772561327698191877464120174122770615076793796514992042779209495223984457192788870751576191821690462648950861656553737838313272000400906984752548082203560038791440993479980062024778793132399694354041044155814406468231031557015654117065058746680305947343157309780431173596710811426267572139115538092423140624034290489446164905044003130645406080349356068293248085178747329787587254694496068906378348464233719237983955491349866561107970923388650166670239356786279260584453573062724951075885720528652459466962896152320589679448871502461668538106380471085526076118350371285389516189285511154829053211473021066609986799467842297173270402377014850961650862870767195032873370922217606497939073480294049599250615178200648108961843868783054824205886984350647601410147501669671461865929890330039801881968751665232028736772982201029310847411934655728529871831894459433718534255534839896986268662043196675974275262542260233417389195318480993650405198734556810943812596018794931060590140960982204393380996626045107170105742526566581615880229512058432610668792325617899405165628438414537812765419775512830557480478671254631531673719168082327605886955032208100837554711984486067410147550892358126969587877242672997376630274452656189242693809972623486474657080233707638690091584634805759782644376396451805383513084913789904993082414847025767880878818037216495961627200241255491859811503989640204417765638069478066527330768452554348959207071443371551942885861614890561864695561039297577861371617981696376650362902336206363005196744671802089700745071222831123411505311559473588978402209694628088347935861831264513993439578581108156267753992231527619488192998866465901375883138603685194137893997915605526842983274488038994979254792896818416831522738077270661812509256321226872579405988742080461846675585404233527386944445965511666698220188679422115051244858749608335557579519387674424931567851949539115645670543228668833180178353510156782218141977209348999642384861794926510530526270616788841722271619563834031554936206359343711535151396927571935914409923627267598111982517106942115384211429285087854262526680729663259469724183709948526442594738390935299563958857158588867490065218744838202290229910228631720575652905957893995773624181390638776204160989704881178111142728821880520165409622106350833214109429898471792803870999144892345847482533620349756446879016584019573061744932131567297252159450228975922536498395741584119275532961766841762863535226700159491146333635146242210381644629705060795656811306272041925894721118472393386565814347160474532046834880300098909487651239544192830708723496522983658019348463107162299668790815481552815202236502946112898492560071683788820045452481485862123243018330135009619150774372729308888060799853256210590276298185457054698454497143111914189032772730822896819309852320927625038911369638197197984856204627282405562539705981190585205931710000707311441542401016801571588893172277930758961108463894820565794101510293017741229792778493725868436134011472615901096081613362227301376753439934525728707585600914130458081968782795189930600854007030551964913203846516041901145329217642962075088744807785941413366706457160190414383526552179887549589945376881810996116530888119687386911436632183363682966076635938363044144156120008978972070551831944957967321752597504766559308423760368331542753989833986382012522437480386829531932120793616573836762721986466899081161004833476786861133943624499899019416109892687149985891609505027553855008110954735592152282427384747123208767069516762842547483696706818570588328977625088871329405415349818247812532117692493812394193666595028657235750788826992441436967720999220409952326379956374306260579003960084774653701526764842271428034585318815216407654776244864775968187331412836124489541785336916620069082952639317513284583971219048396276412360051033450257019620453866172370262211603456560179859028267230856985543272920265684532052788145668094332680958929123966341506780455319672928569485682498950761686879147559241204553761335075699935397564176249597807473880152460559947473665735019462493586565656208250229069659204241823238177369609052312357305327412526698030285210252588320523955889543066128550696440703523853967726728530017640837262515695670136785099007678621066976030906381526498310371274554079713087933876518047992734215112939763759830566729358734734455107743441812992445501983643370424277710844705950813050201995168975302643762885795302169410690211098676101056897503025531664732851546255955109741853090804806431325070409080094264304238099250525190688343946220008557557376373401086213175998123311748659562003925837927510968167019481813309269723869000372659569897589553357635625486287021220228176089914622055409690362905442643899246283887569522185781654464713812579438014138889162825936221770899226565023803088930553131941680741338229438680132485630149108294982182259375214986200608513912047542223407924789635616441146536738463825582240397687229707466563330684211198875376805475992819088962510166975594218390550548685597854044356671796428255418683431946689929442099790550119457382455339238497086561654472371262999056647615265002765730383405122917817309718443783367808787176763523574790175503205819893738819864463174267956487770232570169425411908744401235806600090998901386505155115462437012178013803277584355232015729278800070320886923523974587388730689325060558211789957260746925757931330431797210293725721491931187315005064190203223989497391373865395919863245047017954942793252451911954497827452981882456536526105810629768084625631669277383413079116485143120761273734807635850741420191004930387564001991643252482347768877182444435982795643830480423841244149145693310694198981042857915931773996011622508901834782188157354050782017378371695545394731178674847662270112899478348199685981493679976519391000078923567251919473223940321502489110590658223093119666366199441622070187602884778436318273889252710151689370093418631425655998968027310846820664557257721851629638944908108145631382685067801330158312076279684766130276365921305695410341611349522279048127853680633164459405402602151947876699884360569720219323958278416448333522304388041407624837711668749132839699327281785278838493059329871063942612500620945740756920866336156270885219760179169826040632199812271512416803241143770613008747746511947537459941440082920501202475571153236854528346150935479608391828661995630909838810813258238156458471674711098637525692191623632950818094057658470968234117438191395984093189379466807596835923014660625773515115216133570371107288949913119681346719611529481076550233353791229327983045467879852187719735640405612819151116318295143644045732235582417926376999165009432107227414183240965266399063763163952817953182199663191138937010720027935697076187918231960486720608500896728142231197582357980577038525947735237179927921460610188369729402737592869498626056491065383323199682354558780379595263536757507039402277153071797463453743159911168291542885467002047649788586126676240354961898749614976193293012180589514382937531187880835974699773729217677217220442297624192313920588988633055978857114392499994255375795508247037639147224699018221340663993150961471502705231789456559818528608838507885508134058385111967955971490484617050826444736294438192592959492755841546008554895885653124587936525880127192686553002092790825299435765995233302870795076498698505996829614514225897324649005367945172970746268286604105386988375756167313506532266854374773365645491252956616644739757145539408874979651038017781898178476662854227959937022988939237736173482438617844529694700432113963417346077104848177182873568321610254154865016462330033083038272228959361982992912511928474293165477986341268130972531102044562005591864838635598304266722499784899542127891794447700862337610225049230311703902522469912173416548643010442327325121074943380558187566147840386820477112079838790705312669731123388636955110126218383656025161485221574135684465274104229269320942290946069311902310912810522396240291623348268385584685840432295683783853669091890536128476335361590223452955101830671552504636515922045162474899167946408164013317878556970533109857598492009373772809501664805706274696873608269460478818251870389711152495441348359945725394511874381251993154098137807137410402323511861496659754294248101740107685398854486595183153720429659016272703552912821218843456583678082740726337267254056847242686098945790896626607487162084998924864540680590442443355217683353284220078616990286767226648619941277452191863130296847967169643165378673620553606858337851879918544741851682862514680307636277024747236050938321717538964022355383229340041105334986905432505501032318669153843515329304932430830978677829658246200550233353107460755470161371424756955292210339557468734148847763421488341579570430119131346447851711375670692762039625078812372422150455758941416805949426117904346767628837183912043660154702973122490916467451693350538655276119546913809295488000009505609811896019212815419213922337045576655529109201887198519316728684718715164710478908535930671631893922762307252726617094893547438349264880692159039599382808738209223847045731997761398829313825593132307608361196798618908398594675130727836939667451880916331932251037052447031172341841941299524750533855726030448440657556818920947711851847846900075159191683913169656443741291701227918751279177231657506778415010799383767862364899495362064226527814969136384839662296485056955389462208227522067545786247867836147679013463547965069859999538843092495818793560983218264494102336800026891437200196104178141282091642806389888718894337466259690675083006613332132644644977573201180529348424859821205560095127803268016237960638642049628531597382867464032982972891124357387553572900251219907455744929622858234351644475409295961496224908650639017718243127019394460018977724508890897413047810180224787447110440661789939759801774116556985165983530500859288308303707466539041113867060962458279166098508798055495939610814412918394082552942136212720107690747092373928342736721427464879680507240895177207173308740582635816573442273410213982376178285351235980266991237490567046106154743044582817447497334185487104830427140414904001997659217834223391113446290523039781698122262838447038095752397430889465384565341344512748577987901244199872100169249967807891293291848578219668848521391928752951637373055418327070752283495269184343521539952055058615668752747249844858170886802149844896854137225429277446161973196414654468851703501520721116499575135091902964256281906602940747278159745774038517394376519706913082266522365177820549111949886606928976950194604242267252678214474651285063126863679500367714686193815203182714658619167048854181901708710717399385440282436171849252696859080974263482860061934011797253219491225401113006976939861280032281180577251966123874678381342993920531653124087146380091552244518647863104305925326559468449062492325730306888455732029543306740337752337275841363559016558260359743329253634590085477616814425619540501318291769102072677278074669415107075610106762975859347672383602876152143418116096804275120596955788376049080443851279599409992188384785203221987365721217926544366995651303689012489557673107612366688852045496412238950938045735668116622164602267112295024367986200114828588972797127995027396122182862156631323680502521230854198409577671430046905766327108834850233874379187578795486440797289793081929046273266676434434297972935670020720767382623300222921955631907107235645403482611811075651073767163260738524421836100235286841802267868515250283003979224111089492479932836845360472766102046962635381228451052617874649022483733309226627883849438693652035053359606953541404176073585568343773815479627926883314688816800413719144315125786085152738631027130038900235753511881534498250251149128443412899760036760702110417769852201774860361635477922399323850139479834646210727784821031311161325579540723397884860242113744897152696710907827720539404396253687626185934522280116912832301101804196431368774071061784949930576038234601211111310580049956181809557443673692636725558436432071842373611880549989029475227539916865765782065207361428421416518262845708515718721775642880587307648669956732562427533943929583725535415275437032771416443405673066759129452341994194798619517151922141137905618955582110894248466554635923791479326217417910599655861402801921279912296563026221515639541423421512382504335638346166960440140746878472750930755542004990604343521940679134309829500852055095120052950615647298849199408229530603930659436446504582778595760962237065257185648106315760325238529510121204861245589910668762691216879753418869994327102497023159370968777591938375495302510841850666747674676032139346196178274284183075553470661537216458352228263610974955785192317669647227013892667079086025084963006144512735072177904249281684349637634452835955500978597846746462890910638320944283576130656991382817651524058225040456545865093754709652532250263733202349752676055784764323279616537824119674484364507513313476204613351337998492650971799076468069477750620722405962173554958450049771756212059235124403758825839010096159276141324741200973619374832820632922220237853522534652132650680347335665221114065091982001613593389977009499293621232668116021164045083776403265700495769633435674553032819708170400375496220614204025529646735739203799381407778598387524254308444842964191222748493846339376171202408545718719784058850174848787495217128728303625922623008752584160518421588736362614156216888490854477962873023901284565907886412928822638095905055949014212516892190408378953907666538679780445298438132161147792933692979148070512307928251356781459406758463613114610255606998760896106703168125425810370598295616086808495999038823821441933183307171707240377490297565288988149051223525595286159239285916078572588028472054012489911717879612645858765494018032930215819763266381565382258160949715898936747431092653354998582069672240352492882304978655223982562273815289009515457366800419232373585162569541544904973342473977168542101838942405606980693521988606531756598935545277090807387899275849815333492466903407702911971379101349069219841072995389718310389631326738111439895852934453379374672809806969499433579370651578731828771855659539303352713421033653883297443963639670718721230552381694559627822430188969144135828653994469212501355153572038389477995764634401257898704935538687964375502185322838946297796593678168789380790825372512147017711959017296886111940255365178057529211443398368183146922671304692659125755272373977903274679718456105340083508167628486516703137426383879728646257580695582137066453615311617060395585532368542754098723376341029519318071435687813952313665705451064176504428323724294996182789622157700998876898006556860331209339656519161118702507804154540195952612176397055082878649825180832605277198688335782370083757638143179142154551157843697040555515093679751671547395979180301979376234617695664617396207358941539490098683015832611961289382212874005313959495497764422602460843154478567179189193793453831766482297152797354417369482153866150666224281542049576411179750943306065351777514605407342706320121645501863601543114653132750957263109078951647632555257046782450316285127260903152784136470825250868975861288648770964928387913713570328610358873387365184065055519016514673237163444994781024997385899574296731234032274357853958155225285634075738289494231756174051192037372411859644188574990297526329506111059757317573410815889673357765040851069502229171886405364272785115404060691488251153256674006134439853701530768011648606414719616945048533886869417123534434856073275334393914490820735964665717781885607879103602855937680165052108888143697022302304242717996839526334901959988382078856276593146568735318064640389388719762855839991501883033865941308393352668573936746973083085224205981541774572846904520860796329938543645928468638115294402477550469023348092335858173366487247627543423196310159699759691479139438921244304938855296334057022218546363333529053450114090673404388837043860591258982685550295831173210641846492427976515329790887581893697044191190669580680696043957479670201163794800203020312915796473389052402879385971518580547760023019883903820283936171647011209352979404193827524399696006033192140740007053972494121428124152554476285052178267955027620929101595411086150534383385645344021231014778110900946405610797476735844195748267779571641541150881211259791027446229434944201366584477613519534887519002055707037816457082413180291155918578806239345899282306107919530356015989397124244627997335199217389073280651329856874207190766131997883304410086679201837938959865460412513780257183105870832773066501839534374747147591900155324593265960818146319632730471306513035485805276465018205751258804656168597087386931434557172605271212658863321625111567696500983973012020273882886960052928444100262970806322600670452285630857537705686396888735205692579511795024193743786800012651554281013627793919959221848912982406246234133342124537231960941402608100196288548658386277830280617820523660069838753493006351997173691801672197641120700463261537702445849900245217520006861098550272396207056319887030852388658140129836889390397115494081320038010129746462087680624204777130833461943158868046893475085122655907809980637784302974498267163729322483829872464157664891897336751523687277513637188499419812029209162538361497353892594089326307611815958883027005316935155679026202157619141720568343508521933318929789347169926952078553344226933280714074975927554500680677177722071293462438320451268557656346252564968245600565674801047293117302761114530740761319362516105807003065926318178531128371233250708195923794751375381431487937594694124717835723829263058773394787241731910156517382900357089137539982874366744899369399238893175098322272771427239592441041190793905966279195022973018716344493004848218254790198563126135130679426752082246858050933306608069176050482198994566378134864763510050518871206181626831631822890220351369731685070007013135718039928428343576685989524664165185951843831696557214433967839441952932367321180898697687525452593545865066211567614941523500912286253724673013012239125499851013454801842532661519434165782085452828899727824668752756938183225993940658566895402006857647062676430203903956545922486696283568456288676949964604431701655884660679958300395174261908836862970220004716896891983921955504773961592615494013094602053228281354067012701234483460283587726196085195264144919036213874938742405450639235499121966170890613835715487124615610313896158929394694711985851134545413513236676845923790718124314418791822402310061346598084958149325361544314185466279635519291989596546758566545894701769887151743217144437958677609635321422868973698226939677633191004853635078476570840659497802902587592588145522273373755034312775898587335265857968243202904992619674379120539176872380780849252498612996456618781126533485836637286685803607245020752977354327390488475085622688221674465847913784254394922594798613740432497764863386313779499881999424495242753795440440115434731651834459021467719875451946477458852778016712581598494779200027234727475001360942026978082891732054629764660542127160387457302417294741597306727368465515145345139775877424987713672359023037532437914911719407328213051074990335292833242763572692624462776034257306993463567965545135002607832300045589249066453851931736892250622045146119755984222494874391192088709514707793311816243499367100045452698832427430395733811074485449755811548840362369724150587056899276640233151051294321637268576321627322561359916121690156434435457339026300468910872182596083701181741601737472306917083814799003566323837328491805681496688494632912306967842830153805001368637754413338085048054676608060312432831741380053177276548632639860720885758504743541411019318002219738344069408228797823141637784463164381574285652400766634681463623371485070752637953202645042822356719304151019005199799728817637692480564798448600255960691981601115371298564284266277035792581485575113346130144103165253047380185479178888299561572543803434043230413954519116657748934886613177882608197062591813892846681298827285483440526766967631481971688932116359498391900667224715185649288783090939821717546975856427296561557995873388111759295408303989808708543491358213111990118945930182966163675724453068721567487098922077997435786427850215339859455371233729627505983321185822995689296356860776282833602039137573067945007432853587425738648922050416274154043034000997179437715493538059025514864250099289879680108825772264805925384011924599451905320838183676500347231739742866786033749013402239325031165112233101294143027207706132607320211473034060429658050056573408589969443961705919416721255794095165855314720819014094317670421323232688827540308646320444521138873581074336150916809046150187252314963378991394468708386708645598008817483089142940300312475089692519102112168442398446132695274552322574405644126868415312990019714921567205824905539841087949500362622382562439310904327718385958482957026799853139938600137260422466739656332269792457221013256410586990517287312960581977212967978869900129083995126117051447054614027947170767054701780408989217160353793060661373758366524218373378043319961023919339580416696835982630831692300464836878471363661127101475237713802634656308456295623707396990436575478978416418296348337293791793434786646944998398105269782501534896229423468735899984363297285412672882127781942804724973413102392678233961996977247339554719099969351158536879664049630799496163517389436230931211786861561666772532776146134709496897462975304046099805873720145743637581187607760596615354164967067203718903209309676550431472287276917793549149252241351531891160552473506724971219955307949914410349653979734458301128653775388646719810238452422274088724036641027437163848258256481012952211534770139459690455079395740548994821005539788874334603327472495469563225283613363505288052590382081841915578353142634049532346851251174512924449757265316094194773015549055051576636253736724530325467998885836113315163111448554398454168546029201046530419883805383901478868378719152004686751396109898884422369638661583016680741583668858499701635842362471975407844292148872332778064471789233499699748814760596699389639809068027841608573780178622469607594683609180763734365298786808557161385405957388795337393485128533966590619510912798106831187728940309855346865103656980841931900727992443620444012846950407523922787479994714003502306447674046948978104552754353480556604726377678027850836296563821571807244910606906197685648578500917353072463927692745115124212146408474862241428910047492579313150895321980910708643750816725542833414210160698063663419434271361634001925542666486442788344279118966053247641778928446535934430615748113466523339665632579251237843022928368382625842274999891790088774220678161091186767312002321590411150469945045519618203978455951194360085363239726258251010133205676633301847958462573582348070237854196117687503007188712046888078388107619150720081005254546188407064452866462663781425251370109607157932770240551104700058081812760187196460655503437288306258972208922263186246945192860125561438761564022311530294424453274845938828679791332363194155418312889755777618327239983261767439476894808416906041543075705958825549867374329417237254706704212871179576157143729601350315062381653270374889081146962865555787589385448012161294067890201691644337126412995056190947325286350213314217652372416362795492760304467341886324255302082232616792388438809377934283508383025418627084610929393694329874129978166142713190262915264915112542289534464015770809760926679454996387662045169551345095127997682588064004629232693958234414368559744260839197101908859182391650910497103960325850811072457935105529521766065263425948048913983818794340324761320793921787653333702800633821936751895626558720178039700021782456040432671008196783574909738813148718369640889929090849844556365727055005762299833540876518784098855461504598604820636561302045075012423676218536466639445749655835531489968426875911426102455411038432462769944383288213667726351333527476358969765751974764241310561585404690476583349306661742835784969314451478315609548602053710381946614566834198430314443102116601032057249604355339545170263420815777674617753704191973398543326412545924289270231642439765050472486283571458084229289233491830852550120468551174449326631767375201035642764272615033122165954985611429289936920963865898873368893014120118284100861498010771761037040783715212374348782383101745329948696775326469707907943651282148840866109961586479046247780557753838308138272647007546722954110684881629063561991461724897529739984426306016206094548446441037142231932723114893508002834496253413012910588314844925652404862096573878521136981657775520420426567163795803838428748008150825823940919898019411058163082548420698316217873179244166830383693457335737553876657131112558396458306342136724492002766919174993159083011518894722749070976729007438574610417617468838997094709378516391354532969801270844029367591997702694898037704234736197904392426039946343721220259253672792260848305917546229622130124855957140894442134797328374314695038132954816688659382480125372657233518808155214196424260841455393365771262362647102299654840320292031018862228097948355775583298325686666528080414778234281650722498104472813236824674925982170313793942888184781095339052883966895490432314194855535331832871725441357934910712472171550710909642840460542144618825054649243820519943581993633802347368302207939035115858728983551907686117293575435247034210352261015122570328541979545177968599136741341440149917021304262762987356951561149348397072003048497291907812053017932918048671094767114524925912317545297929214201156790930687573705129241824756187108533492546299713590982643231449745325354113953138747193103024401769208910580506166153416910796354523204733527970892084222323973443513242001484632669808650581008258288269218824110707415930108022529265089441852977736973855708615912826085635137262966861727672292512077857450926325493005378166856670883128626079267614621284523662397660123266552997605369138165766373604514390021544200195976188635086982462292428022103703815879298242377263037767193592937592070719773496531632375117180177312454800240273481392288205329628853810637968308747575257505872292419036696434874953115141002032218575843806681538904211858015252865360621084183173691605229936086324993657435388497299610097459129429517112753581381576433621898247431947843770553442839998985493324762775545404248335341105207251264992796329466445954182640872205683580372945708543530395492481031176389595280155905838438028730097552540501254631544438545427396103405123348699302798043458399779089265254213413081443913801716284875935672056393854555206161333680377320534555272886424440586924659049815411822045803370183144970846686142748014757470945175748711978413561559368993265682144385878046616352541058002681145755740613590913513757852886546637121841014889258970432389532950769949393277879737034954889059410600377140481896831096506322655495786949731553822128804884743759878933592275399811773303244054191660555952397657630123577569070615533739915256090807738918490069551629831488779250917101088708215910182204475011991190207911794238556729412914522401167928174831827464650816515859797829141262853627696697362270494339163435460340166151956295548596561643960433596191462466853026259549642270956354715235840349509953319351036918638734393771861346927966046530673438541320691826960696039092885066668212293978820341366701283660155324860213637360219947753686234017978469106947217731808308595002716230721250549563794005847280716862052412777592743052607147560866349150788889725412491701507634276810575305857084537365262083153397610394072643260371738583102623465822839174856308576397286902763485235895568210686015708854967860707388567866403437717470921581135433208766931708272098347990631013878852594621154602414521283315702027562346819078535681398774634099702088738332960262818472212731446855408607118748364792294617047796549899136889638677274286702864398027891109387763307276104630932845099903623179712607049693892583666959103115747117995855529526970655524264475235690372606711961899985630113594369728393998766413301258269643354644846293390776114594531951679026761008423270855311917217562973461791428256610199052692482118131588761190433375240623337895374556088851532911523260587037618942087085652452762239148061620084501061870312057255905724125923514699662125060680184346340038849422298567244288071222927864776311181283740059187655864797108118039003761625399799227079133270140468532473468138247172885907537570267337690095896898063245086984287034900436449105487944457727275743690769645192184928971929733293550789694643136949595870607044561955334052600901684768671662967699564039204549017148515108458903100961709352681577263559119698209161726792887538328516371887937335719609611695109708468326533420731306313622249105486250595419769491424645667435912750176240443772502944952038178934511974836226429749420988852562266764786712975925421710437726519546554432205012067960310940495423783319225180028296896381983769565657472534788069137210291947543056334684458600224176425789648483238187593045567961426549826144530203845034257286897262047373912250876505510959805954265362473884175816085054251951891395816182214636269403226918502944061304119573904173308857168991211269014513808349915107436650388047559481988444499193196705452066827159944834279606967981180014658101858975787381946426424344690193837529146136325352977503475777834633458053751518613077626216943926353593819309052498010962130630287413404776037729946042581051909056914092633477003193928506862947468876822090218040574624976880447678842728004554139450324640098832801007334048823992261211969897695056137429636547564488878346658017938420955399861025193805031083253583678174440151516843649248300707440573263590979235548461885680397267894952220086465382638329378998565049586378641111941668579740452611509323072170206943421630691648749783200041014968078392631370598290120751089108203015194719441837438925978601636469623631312870861675079703878096175057172090473502091678439433144926038233328185628363120784705623390756826739615111763091399904990756497232723827643541869468991383820413141700591960311376128349821435299596421826458252513769982731800262532691029576744503741890553366111355930762167521638037475403933125073670076731094711045410633932018267225818148436317067483022358099836088891432481286504593508297179293632394779841353149329579905122268761235766563998911935482715478389734378167006550724245957909176213564534996987205467097663932948631331612906190897642846951271887989159700213903285687675060019217753379858462168505006101836485654787613821292494677921171767040563122201215137950534482004409225421927429787851605071870152408888620292217025256215584714638566147801657247684718814037323199142861791079210012273157092141147258709306923658670450375427030827504304330899740486381720187910597572909754829860362564687716460463658073717523005880398155911947377373548832081992724445869624361583707626175123182684228392107331064916469244359028477251345351902880166159406790382470572386273948642925345206253423122089495587751086593692204083121284556024087297262450342967465309016729864828167528767310231412006168145316658274363052650766006740098543802494009799333253703849580783078739589851185481796706956896699422149445058729126148036045233504813237583882732702103593026909648640181697559392027003097213166113105965986216216102195082594665706753584496871896001113072807595154217878479499378007512590844328712642658582679509826767285343983002306078086051659741707484511903925834214964464606213418255559373922275861608192068767308303151806964569464352582872858681109080423189766841493364476430389441113409538963381518923681764752346774032349827926960155649323759389592592374725892708434942377007747229362816572320722900185626856333986421373281624673779767055494204813079460756680318509936083502445160419465837596956802236541763914245632293658555407180405622553211655353348092149701777116013181826017153739635408874859776587412987351546630227320265463459374729086410964170892495905194734533427360342975488508523094752469045090149228479755887603621587781472119041008781028220656631089440063154218145346210726324407410384417327311337184258815470913305431909377119440291697045780546093380063582233424253830516746147993787697511339263453794343771471044242611840629634114487048339674032528955464164656257528276172034936443763959480491090583609457267990300987228616771057816474205205359227487242817818097740493263582990473122693353469898543477552843214941382427765324800758607419494017226195941792031763962161235543449268209795788400732768228496989113856988923992346693237385851226394887412615601867698555958521876830679732780007356927723357661564923118385348978636518363927990100414128671741583101636191616013532034421543904639100000179498739181877387209999512433174283584373178996798805294868138554446299702481691604642845549651184077924291381931237129858897161682375311873789006698150206241844439291422903220401269742555304822264840715005118418731287559482252547089733220954601152394240524052572867268612356313410010069751543801528379259385703437684567579459487938551069832185333337078155792158330726901648185390519786819237299434277809581714226333229028512150784996830369579635947078103471352695836953719268402127479026398050867085107172373949262651904996937495298302539495097074009510185695792868427682643805796452491664805155466285280703856632046587994578312074229557439886341368289925689554463129878309920584802261122398216820635405152171312631116614393597382610188625767899039935551224225058132761695771188816423420312907586248808865726989346043442409222044647254186298187995190149882261477696308223055137388276408970897154807252823578631206128112086569202178120978527958272519572138829267098351647830395686889384743163616808671012115501444718321790853259740578114715674527434856556027414167540369494976244568971238412050645723726971873001533245498351015505060269310960913677182639548364952517944869441944698628186750846377711496070940560935600663768614044957130178906457170663635799462339459770851336461662458520171106183850822553219377566485182385692591701174219854541478204240754184061717120328994183267662239744323739762670324105484103960054267243809976122655523666698485484179387161731704898188819557458341557469538814184124833141397294314708450369387960952651148266638140819942061339134221468155935052560291255337083391519772569646647614501201764701053943048385475233501664524382380135002368342994225028884597199789737054546917732188447965094678320027803246534129560456426054981335484199437608789343941167721268319824344009000300212921733919582014358931411598986901566926247749509168635684597185185159529660228532907914270178136660197555763354235764685538271029640615699769606410833457178085760020602551650528511896794698304610796287591015323518791222804939882078209439356061955624120049925212730712279243898074385149073006266444789172294651853604549951986985494146963382643823643039497622648355620981024402690829736872525047352387630488026069622111834194959116492839163500492970254989489696550779107107054359441603773347492060865205469926761256379049710564630608377689436107918138178574756434298523450579763374651059632931370762623582311979500566549112335078454767259731485377303416873092695739017134797967335818719772948608300936411512936056405392816382776590999339014733380133103984449096011457741187230655167745795911961289325092424046351015219759281627588632294137296389993447648034620993244507630579257348793321455336037256341905978735015345367261386067625316881382272553432798814254623996967108125735745003876242979030007726027094676515220894676960743146301467316381385946738945901313337245954540456706538671349232212880726051796080808330464555740797345146648363270841335844108116899237964993847299459970544371198710165303535372183780392043427015067676869449004590580807228356899152474657516989029381214482705939602131617369389755171248719650812623532386299615115182710090691915678709642202055146244639149082792424635341839058239832342082524326747876568799041582077981816013287690768589973871905758009231189822397112578516244986862018814267248503718866303532533960399419318408370024008350544066347655249852158193715148161074995665833280458225522107776847325938829729825736385850964218797449700293151635122598977768732787831035042754197035741455829387518226933623817480772836246319325599067167107784097646043012831589740093057028105988208674883323046335683038736062971078298061326372367140865498936590385428706992525842001309531056455127078951686839607650256640485659853887849730620120560213527710638736734630714448629695938069912526924873791226092688214850464039299615554536707853602166534562679727670848963554929048538527660756977403351894819648473961924321826380873345702919013002164654617490415553273085929424246602472978639458199273835431377821906607308918163784747776291610488634782749437771450423534763646369264586545404146101640931818386472442402267675629661527357179056107857228558731340629682568374046841592670374152915993788217711947282343037847603628441853357980441628784098812709666177470505004859461135204288848711935380772352199695168102163182704104134798894214614476112450164028255139379880848020627527681639436303877346141220660370081322360669841128591486886978511947720003239531999061565385789913789148961744710820315489982334132061149770645299100499350746275973675582508208566421896054015613221482800317669825283025508242495672196949244143254782095697573416115626163026143380222859002925216933921041924327744743219669668348495500597583803407343229054227356301057540866812604642613377487266486236116731519724512561837744898432536523389892232265652742375764179205528245054497890191154306812015618952375656196177316788657723390302361225978556447212870711358897360120312884532705695111026071071255494866383546982787178431526409349581124698540489790313180407621081118032217986652574636323980889641132487789633756688288152094770586980771218965402532047009548774630149719775523912479584516276489075118945947826697702692551607843898154877621879827161703213744603992456261318394623386887741193590243981640851587118957704119791889062765053606467052357200433628551216277864381550325810571471445814099409445105919185645719289792867243488017781181362241067909877576993777174926098150966491599556205636334432050464058793982722804098884418576758762382059963035397517337148603259900164976584384452973155576540456802063795565295063980210837883896118264384401720291853061220044032179552817627376209558781003346132009494655331851518930634564686745505690476115019932823649041868845399440809840767933959939426334182021973894397491951558459627191389015966696640014971481692499476943638627329689906393547946501355934805239856759717551811938403408684541573237046501535822692840242415301597636774685031574210229496001100644681306695690130703771584003940735563239453236827798640059467580082239993313088764784002550650893828961178739047810685930553090663689496021712651277988582287009317089705825168014192029093543455642423362328156521028691100639573922925604097675942702712750204150366585459485495109092428342562386648628643526795232823285011612757119422060372580869571520714249039502109994697467187032461819802455536028729702476719724124387035634545344762390033592095536777753725346466091954756609342313370192000560923252056385423635105525755522234944183310433766881771371217842532322319382567774847847358491373168909457543237564491136543127378788058111662595454350519190288174951877446362535647624999240602405458530383907699426544170338889631780133786371719959827445468172326503992587452370256913245471037652986157853295851554910294336583564096189660959565852869057519118979139336210232075270449387890998652819966952042645630586618155329304466389814977245383330553702398151773278089492655000662452552521362804544184566736727525791773870503146463813005770023062869470775626058728538325851243640349206574480086876621804270794155121247613618479923057816987132583531685111909609152614327432538127750650391750870893975375824301413163659354340415398038799354820557880812091254804592818838566975235699945146158295240809778183770065499396005741634718072441144813485583617749279617513479491382873827226442424635006334796774755795684537983689500761869230906513974716020960258264735556999284159900417973175627649987009356885015704785284747950481603054187509104025830499376091343598412111363116346951763567588344002084508980386008906947551157850402351652072628680409629052591238793037442577776525123095226269798853446307632187132120155256324441325055131761893342532806330102805726857029857906131449591041413866311353079334323516698809648251720341630102836212183931877479471812724336632663609103838664120826600379123581020165348533784883219761588767174618949915736574609633785202521381389159114957330250445112670434081658943402895705826196672308721175650763612138527780567115041717714457036089926535055141823874213830048354903969697074222508662999633309382384164008758883904599641265716526829199455191658249105472604538887281335903944426798610124731351614509338635187309688509656998884767065880282214935955171095747827056072425179219600945405547334708782868494583816571468627521287426463971093416874085427162424435433229079647779826475410617273598980007422105317753520153610926667375912711279778234070718035435825111328275966348692801259112060478391196144041416787753456997369552707847149457840936564077134271078463173062662493145070303951975217487132767311261441660486502240768804626001339455136975144821824744033594703076522805237338256536303858168361045679566080474165854401634626938837068755180331782783671151075141150780483987374636092803008224387413394630146396953294309685137639670795659521048452388922246482347028370379742378062145541408197599734805395008387554419648148658538743612165893268911214167716820162020673505101120823841368256330266024028312899177227179233280070258055749504907276214799471754224897958612028684248437061627263636079341835242260194323058206437156108146491555837248440574452439263117409929736797497011127826387780711708712658254105789516827574385064932565375412819130002089970383273150271759783124060939040950076816524700218557449827882937889940111099036915547206112139706285370126547500692786534233868735488399755781494190596594381242123943457569680568576007362651563925005773908408797470464661160176196139902181585003838333139824783397308116917567057385368230548615433110031565291579822379525070476988878139662242085952403512494035558784625723219710727551494113024794414801599609499268929241352072127624096771844768530082895142062194195438796843060889211048491171470394458784620042462867663861940060372589230752021534297837791938087695583166573171760469576636197341072448412268782981941925367446245862859276426433259524694664017726411946197001937230167676786398250342232265019458757724034885335292838986887437239359664139689118403299421672934955039444008021865299506832228023342924485574157154721874452289856416703972400724674935933711461464101578570856398744751148942402973421078598492226125638402515517802494051531762974155296190788624231566922111981676732334263736021134056394877312570234609350431484027533386905254364169233382602538613365043465943930705350740684465328869697242348975857493881300349474302811470275491329441556755464683169564728430363954664095532930760539911538923861242073267551537354238126724891092593336188556483142104358532839325170865436444991583990269875226221053940449002984681049792407216309489290010138643190752085905794136031897633783004203418666945987061486250512000627695293963413830933684317856019349208588484644971652198817488660560215136164964366416016276372232093394829760095614730792903828079466207064798371479258333095198796858389365316325378790761158425206627553559820768663272794206239415763470609047893710290328687106974289422241959973666237408510878699145050750536131961615056930065572738039761325380020199414726479200871576302390468829895797167415936876107079755178735693840791592444716481637511019662435584118342230406233903380296179269008898460731038348002350765123279497781446546610876773748224867703823974652298581999042138964130036488580515299536497443550286118076113660969878121163536600616416334314696358412377072090274774730897497349920243228794236803562811144618291380382189412032086330725277551827671352216921379564538031015189725237440373181747176967167057820056191521092588465648584141214044528876606923981877240417207462954878000535208674470633920454811656321169506941221664479302561592018697201704078525304496719911656496119257000680461955666347232466302706227221137243133591664571985460306943853524602594791640635709099910272397310559990896828204650866378012866700490082195742362053984636289623953819822204545183719848421022472697427439105798448190710773717664890251768356354698916820426994281235628701040784547020422396840982085643790651513014148466291097671792941974841618829631456402087745306941359661264151077048200003991869732275853964207399384945691631256883768893105132714452320644540849106548681045923981654957324777602847936812259656350563692101964548128558273683971556737505588652630235377291868634802640053356436442287740231792328347140202195732012147848147417146007416956938371788967654208549399649235292562551840860315982430238595654395034138683975036399084587759605545119986472026344591559152633355193291718839756611760901928171027762219084200193835682012307264933653062433596693846196386878871345734309017120969557490746202329254774358364051317381398767274569850434063914674684971351616153556346159940465698507467712142414855743678083970383711217450695119987991698416762566833040890619966519827609145300588091194941884097044803989858800664836354946023337306609267274426099419893616869468706778390661645331258093687283172002374510272016074741510029042367906783708115805507992669474804026617325597261998682507261461811027524156983759385230074051517724284156526838856079333930796249772283452135214220726194948009640662822396189798231419099247305880931428471026548138241127348924425021450199536153422469758682098335098865590572112048217980795973963482359747092288842851955935466950256266753335679270544567333316669877826841688781882279774148069810019472195305081322516930971117905206503293555312906147649637016087587759211758315609182780354256269727784439892407786620002982370847965164372455333329658413295799880229939503281410742166197933680301493151603523187854533810611482554601517705959811925867926982320291260356351191785457746905066521042973759968118889577710094190690540726166287901789552874637149842129650064854828350577797457380139593621426963140340594495251523711119940962356458490318639597583074588474308232343714989650827920752934927081270313670489281985514629300465261426989335333114829163736881780148315216622576926621040840358271153978156272488437031484517602398796170989883552558084276040819685024452841618503358347481214548843685675723806105489759889222361195160351784258094261080777299778022982922655800899788934678785780678647919545705651188901571867222464443950542240332708669287159991601429828181625903337483957168250870686706119285527928263123207746062257714046318250224610533544195338078122242226724033607088135019414182190961305101481518162536409253489950625758213550551166461205577361284718318972766352973242458853574548878771872466404106385842878241194081158729779811768606108824626151108043152520581876138642961361153536203752699158007924436348409444320822702183934466453020819785700404213790690555855378212778057367496278031012154100991430398882437922489247823121193644733515303993209497351810729858025962015119607290218442076529956832650977619148315531792657658843290021078794677605637623067504703649491111336327560580987767629470021802865137110262795827585693211848106687326959331093342840174671572457675205592756495828691877183416779486192721571570062021053359001243838069992924393287113904463032226408657216791479273107790521325039246555361791937295629807829796558679504045196364037939124804764493151129201028861588121870756059423021925480885666031826917545952248130905697010614892650710080660209438932134324275009490011915070895722659066448988556136286499982776889749355818793464290664835006715995318776527961399988782965531049495507418538296816313003533666127787412141979806232532585105865620866351862378177565606705285678105724705498433183132633862425886061511383382246491760078850948926867149312890588248928818910615695806856030092385496744050106917433850973720740985792044571706205026207818129223925803198037369478802234996576329831020938772480132430502900296344753230973272282146820909273619361886139997033151520003098350924109705191810463042715172555188990344216713761189539307357914241035578708664579070253454542974486534676458686557084660160985381306368659751261277867317766513156311135692086108541948137635241412358160857243196974402014530546723613212419567696587755763636825270885901235123713427057536300087793323380578144162076691391815344393457718656809363162892207899594115205565730881917584662350269932355895925553902114100450148746276944435394980749687271271542920341292348647141774673463293991506527204193924761261816954655746064788604964643706184914353626635433186630484492969424808864291303110544367269645652098023251382426701452025931579562230840025081424339578852934633814985047351646348595583565654761405888115496202487177343370442531898074089389844450141760772888851320976543756961338468615336558864369903786969309392696152622736516856996336570565339726673192335216657618825143724938309795152940324854816597925570554336716390862935341373736140495564878360409347249983959250787145838243470585224891421145698085870984912337797320145333960837686309457548781265131435587333632430811702002928954611624437875065245506628293248707228721705385033825575079699985747081272724819555681443968855396291865407273010543920576689245806185540644311053392133420824745629311654635258795570437673989517690191005049454422332262210751967340082480882094441165423190432219426345380554682618977283703257601372435579200833717881153757102783825321700667683456573277416493680550131454663918201291649350477056335031970850488731111786097238334399287856234962265039910841633122956251270050592162843990002712567943854875352731480638333872427267691967704884390823428418920274870758779514435491595409601035982181086151201627034048791685857788616397111814914670847121446954105467701251527029864194086309041495560270281666639086591558146815061613630950169621260578017382757430755954614616358904406191548437074832930947243882235019880710670535475448774846919700893353006747601149698094425844287838577277491402844918946888965523020413893871301262905699251584962744061170251172243020321673273523166827562340860432405501924005587281004070796837673355183316395220272843714022753003742211812572133602226441647360702372137010728711097947042739546230598431802087413727011806854356323936707062991796717005806509169100457618201785758457888470494108016579277885099091013410965485843054651976787029230450068186219133144503039547873650557760661590147618026158927590584088392052793631116766809506039849387323826309570377950763241400577915093814494798532478227100247886312412118485730842663411940834496574059218802922182366474773570233303291861335256912247606007279241353744398112803895666503108273016793258925082867533121862439534239041899457588251748591557200171507119921592531907719197167824413348053952065448413211973759203477902185369918576993210942120635775649487001646255175435979230552121924555136464534375755570605086610338526190335483759600764961029304265593713756783319986490325085328104773456268216776691720198273930994298708583055325513046228100515300509264205736905348019941232942165073907773397801204049658480647892051124745916272202860590768473694732752043471511931699456860745953046551895648085659260232219215299753576635175795837292197335421595431774390586027387345327410535354576701724732028786573980127379336443939311823990368976304757956298876260908558337517815271972959882722028064046999596327440601190201573547851186481399540538135473568637334159836384646232208396336668989682022175887892934815761956823144956713471580618595719904211594878167628725396786945577295844803903810580867656712854894579985149917474983343600084834325170231408925954180130986602212116952716743243250841803481227113742514732023858493760249720994359683983983333627804315981617344172925074590602535149570066826524491187978896206565453437967729334956778079009458720979546384210545834262636446549563231712850482620849379545898253344389259691891949093529930987841256508523094212636402632120900136271730193744755679107543316584318740359351580855730262282409145722675620488956622758483425506829198645114216423643651578659570791240571175781241278904433792575836146117714614468846437538355414554684368584998517723442467371994423892402721685816154238100291927926124564905945328803327862767439183293230682780669771073909148058619704000255906319158829072923613284730081218254288014875600957156442112372330066521538479637977732228613347245875710844391078946015241687505098234702752634998369497196353694566722097828549199347584973495378965755784390252508613536593126951762236689519781446643314997581499400642245421296018636375114055826217538771603986600013941005860798882902598575115898427142785545489461513046248439828327092627969651673274074857844330756908582220034268614726516395071838755168915412499999478333134994635442209578024368164944506335422130892627955874898916521592308650932696105233439340922854701603231863903175014236594943705673447262317899440014069306735112716821301922663066571114297003537521046704984584041382612432474398778910833067078757185619990355864584097874944253282749573285451436760459525747795737576263966417571547734462557261205375104164189530687884486472761188863373811780038188471490954288836221565819138174408442781231660501527400810959559849039753781326210904763271493457009787579126630991459365325814362269866777124449134631291282320073889031284070097742343951244627985485861639907087086914339805831056306558717722418329842970958719998977118642428526436513227335898941841463608297989187143823816629149295652408359023854341222509583664973868925724471771636796491560249729000970656117754602928365510597232459599401118406181121634846384089250179533421267322820366472194028103745217493513385248898569231178744194831689377150758726425506138820127302381395725002880360617158751179135872151310813957125028856906678258222262622973095585494481901437949882267498849104907660543553605846209913719393712794232553589119657830608192205787257627708806628646205547811421416056686499203266213234322824976626782567925450944164686032411326339513857743513056116228580110555111575586749745259368321470746575851094816658868138636148185521305964462956539689827291510168032492912283053721109598269797378677069256428618983038928491329034256905186137458920025624115472194383089668334029882709860036994692337946246427456049302881806922034218729971104777012150657310346804241194417898949669414767038432814018895022875669476995766643743524262070283587107117269436648027316516210615047559036158193980020986532288795042051164837499885577468534202556507171777235516702595338214090881039555786049823561333502475545140709057934788151712635464852624097229447652013470990874457959097261232198786973985822107334187609453842848159536227723188424788452029495504851221065170707492859025973156198753679620424069556355913227697233540018001000715060002120129223028440764315280472396540346682219691627948596470402877728493335608655289682802944351395217608935267157133808488539099750196230145138181449878435550307468047634510142340921168349272580912449936967121670378867402406044889404925258252675047392179238943162209122796244719666103996469874541438994019673333644427145942995930040603551114037020495114598378519017207951053326174026060552086440081860152874552737809680451750172893903611662663117210124926367965635687105305353701687634378785975018407712652201637388111252419111775908025320615816967556676986146682989489562042370235623718694371283012933610040464834323838105353148920004940385347085049696270374751284781337102314817751431915005497340414940605528545415833051970759303447069918276027491780726491555514278840530409399219828821087113585123864231084503683355521490239980442461802095898932694357506064925296669845407260919594125836951720752797537712637417670236132083025609276866358800316979601869020687306824335569943130035818413716014038879038356451338704272892610601721628183978927834482874005459757258194092824584464856386994535847310236824010447263088036368825148028809248615290075406042837173333234568603096048284271568490359849488654020011220664395289976273824077619006137877904646291690097417545187664579085401654812276786320785618649980774352881428509409084324045275059751510936352469471406145032237533590940234399684175404376245931123490113647158212567059515947156127869103484320322412146622369920364612030324360972624103082949797670858691197400866457345083848065526813777101478671252226787649337745388779859486955075109434687421291316629047132614971098087788167463948331415512286970013788177646238198839518174472771724117215112208474118565061015758243242975371930522195428351629847013081346826122703198834782262241251181582583442300037002268283419396080713547050874898818466063095760488879325829313547364335916561249427309102072069260412593107305757809255661937305844915661733225239265703391908072697060078269642257168272166428784133878004306681559902922499066824248074437943580135169818579670420614645543237390878572515203318550642514982152224624686876156017965458155998048691810562905496790953578321344134417205361044085087186768086540254202108602500286933075331161522315739821663420167970418058712231326695224988007497073182700199346527575038957199110932901021470532471486247206960528784180745837417941217413142504128599218689152641072754859916538754317503488304906048472012619699312373839540697913812641591375341711381267482790082712238783953609466160606891212396947647917629129266886922073852520731540929242520674768430927195145099728861745372991348625514332164039149547412300394148737564044659009521038343628516215556356867749377593815304701016496728768315468005425255585008407184735972400076009935293286328364021368629607423716443563108985636288362306792783771902878087260805128165220254584058623064213240351269985758030566481050948470843125599876293650244243252339745319398204496030698861465846782372449329145057671096079376176044383471756124697556110124538091729118153045974135848240547120040400883380786551279838138400090180637198141418219491303574213484245107731277708007416119376463603855078593259387132329394423515507138134516520403166582893119980284946294874146721808566003848620975398214099890040402146843235041803107030302895276351189801251443471386962334492960658673644814323446330718161142077783405814706655197654513064781139360980639948655342815447366544073271988402604774036256459771379178524682806815021182894902366803544131081820209802003242112393439367646031172063634901229631948971148837279154092009281577935314661364179345206359057815308528605022864900354704561070531443060177761002647780261269193466669086757924876761601404543679941511676100835866612275534754116071661025663611414263842582760353614646968628660338338413485858121376591234625786896254011293373970901210584034060475667856786814159952830829107831538377027550332143475764632091524652828567740039959760105716277507642484010226537348663762648913294046527232331188673406788453570994181267804129485967143740686871851553822763126910797072744350392899455463923481044461672214330975211274589417971300795332991988894471465749750205152218056166788688203513471754643865028158529581558680437965358310669921415665158407161772979006277856862577800558337520784120254644595111346910321345167262370743987733535153838532432694883538519377493029014782449493632815310812050837578796161860583946799064338021567875942954103666426376952358019626074259550069316972064982072248111090583322557068743482231693073018303314594779096143123530449102327812479920482084306672339524383904305696388670828465337774552774307139972631380130894206607389878343528049464193074845225737313790999218606230924263054366212020557977711901085879403281616697310893312828581205975769544233991327535336584495245887586928151472441974591847061567719945454643713117755546310359515660927016129841429193246867382584474021606194089363391953584394516177270072382591541344848029197905767053640319935269557616469288641151607632094548247203099000955427751895255591538763970700293836724411891357064634739743212817167491628115227078718785701719597227283239369513869561267598791446252287009546613954736926955454552113879884691781429362343033020737644252503850086477476364946655586436850384279664350180180340327404037676880168754294631251467829309567446929648568215502710186633551620598358440719236854432164927724159994379050666137656309396137870152551161172841357455109631696952334038723496841481947492982032327368069883010160247433002769994022157763602473355691412007740068305085362581512078329072696601937694598076956534069782269790632501944698597956373676825536612605088933671749038472845599236454881505439682005546191915809400564066842514711712468873554389339635709671632394652088222449672452562661086210224673973562849008017744656424346142890995927840140549396856589848133684088657439715258358791377787143113157217263224766400920842819924793275077044106113621023467499054727817833956283496041827836591779319598664122538190984999643230916101980486169975523983394627764419553182358028477436002667459638964360337530288216123039437338793424232296873097459149002895901245158883392965918945183753876962045054427772202998623035430963045195420415501845100439195714059406192979004854092652235868136589827076862018715165257254821041678013206826664264279004662609047337585328783455189012722040989000695890207917176037599307868200824862378343545780722909140322388838816671957527559996404238389589039449006278203350510846713671706193651618145798472538767001150131127197293922689680100280634093844668462085048019720802466411078622510710356308566594547198622862786734861961536403234868276049616003019367770510555516409146152140694383267580497544725632522296713609105187649398613944507288707156988960173009354964698714288553043111800870454673092900917304341455771375117018718595622884493437542697837664312753610276985266556136543454285230387375223375509216844894160168118431136794103455660921245243948018900156522619991180604749471834731300516876804626873499468907029744246959415876314824364071244123683283950999028955728228692122569476555997927686491581733800132354393478293041672970765501509681858512689670704878468102394135455507288074843896376890065299357353065204711975408895180928273751258501986976981253735668191177174343894588926198067629560964733591087473876953491357422138385845511257343148693811412824714208619707752802807710668488247890779183633622894917635288926647091053033650698451866360076719605056425117450165632980425491871449632382795640658231791200894564115451950391891756830656934610753835381905602980122425021505823362835294241114618119199795183556905327318319909632155064237009665814335062565077935733827085153651487268103258139345482994020016644483131424020171167668234674666195849745827428944366612974828850360367502871958626689742615181526713914076340283450208168875536265902537194519930483859499529800756627426131116579192114806885991582437530531530000351270777044987641260095347001380186937980556524619904962631202170507186110730902007867986987191503718892621441594407251659816907551628201147790641168448497908747860617707462985270203646740473121411595285319894805310442398551749845026177686181617868401745215643486173099934605116462896088799480079760265037373591523544058071901660654980836462889108490450819185973056480439672985540047442638586856716974455068741937180080732166008643864689818635111439286932753824159979964636500477158580003969019732212344419582942784646279761289565188381361943644966535965966562555243548417323683298536075074861276995080141376891625492766147779170590053611099601692930465213239064423433100187724156966844036388669932089860291932634567375160355919975562066193031533374088790408999293006848945484127290541978324101431149657646734463241711061159882333732186054378232099409532500649382167101691094987323022078358031721742357661131997131096073418792917334646250307445119321855376861773274435862937391143944406457476607511986125242244084719893998555374319763283738929869738847727740013011936311827957499471716627343552108913215618544945920358732692465121774408889366852334487918777123781839931710555344032328878707348071914813905462767125055974100849610827501191673164969179550066288139678163385114215319616239221621900613469713345005001151940285920280432332537811086554978507689191564119747815477653516885504280613017964397970875621886903652150676935127483328390287109724988777333830924056516379358628891444957045439144002096941543817748272948645918764369936562376044111133534828537347114539775373357161294296757462019547544590118417691435272051114080109644433870984158945116955515251022704406159224403060361582595552076437261213184694996816035293316892994530725865215638966991285786217392882461852154496614124200368521893863665727710178299363074038925891084375298793279714462756195231039315560816083795936606410869709277637385388450861977157157510746118505790425551703355717105121630350370704289472323871246254402776107531419111590091283792068809008433594546652976321850003335162016045589335159547809296667003117240304755060161563403723092581795890857582408467080926312236066567115658610955346334915942489309392537989055352194908159189207871585982039379769675919244176426542764492455314470753840350558195504959453417656584923513153215642494406527341549652587447214616162683771042053954481265391582871123579334144615213598515998214704600245847287781473649602561018494419651719089697529419485486741788191439912968133034282759333471271546611411339172127557554255203752800962811034496960396507871028217046843210520663414359717894846610343867877860742453387201994420157247726779193761549558375196643603722696975175563374893346410159820833453707713494602629455340693055844551344988861214825238727602418878717883867685535078349898550403926105557280124459495038129828887512090201697146857479983528023464431909874482791293402178505947164505269940551719047135142209253193907048708564761177022213641890879923139732767271898354893524987211095839216622013137823326662896511171450582115323649464720589927914198208779268955922565207585381587384877991592053713598840587035461267132477587561615685331287653390158493025778670722404863189254114591462341435365202359864845670070567229551180620248160199555468723125742821011464308062582899125664642157236110052211069858848434099872601214771396622744111624792555391486944657345151554637634418226642702025419894527138548507822100837721888770045640936769283798850947951157809674972896473120264980497671238915643061598749219872203282613573641769696874938380788743109511966443198854970228526996591648594743237349808856970559462336008813864895753502723657204372253643492713381915579663677888250824069678985181754756495860251884865874405039173439076228291494350517810051498760989832693693928392845107372981294653110403609135918315364237318859161364000194944566298682369372433092485488050730310917397886430797662126339128146444295047821906846727660343256737672079425264370603198647280507613384766021338024681141114982800909846605242028933045897744388228404316928787670403747094331809221425259259987172676618249923209777045908514723282096990111658934839780865070687474821060949787274462495758941657317237159117922840253191003973007649270661027127250930593077802563367868722991715822446983052677104172386656723676421880753952825791935627588761366449170754228729857450453122342591683953115210792191949039893241501856614316365391253498700227067288674095006603711313156951029039806855316184875394596352814560360992257165218417349732922319899950482915241065461681480312667926146128861304121091496759963405852183831943101860428445219810142182816463055203615098011234551754602818967164330631864087780988818772007751061247476359356787717726350541811909435955476271968176384360706274887172884063126721882112974902985288598138545221891557421084870618020848696738364551547539129283097391137989628674577866446134342155701342446384984196480952383583699157733398749897032569295758699575786011734323023661932815320656615985105000079860574988832870803350572310885150171783455230778819563333500843828720872073449594423596791561179717665286648170330212620247212593235950423595688834113140204908305897155810951881134693224320865354070698415936834267737518299075115530866823242882059340481058777128299386473671196398105030750143742018823982623018436856256434029075611117983636339163177276224282189128552408692713508665375590470798796655964044373809807924471819317426165656330866412270119647306826272216418105324415401193405508555418893561672668093577544267834906165811128749250097582886672696056021238225057263998915059452197066688423408767190534629040846024789118251695652233698895456678574090486037793042365262350658668966837489180295569959746772541179019361864054053349737546190707870818984212883804295136143353637697524125455167010358994507170030988367366668811854928140502507221766037811053747879574276824004692946362976140153843872306268907248386213337494697090113433363076322583006246595889441676475866692492349027004002461860370786275914544234330025983873258990489230726658508635281462510698552998253068857776156889107027297488498043785856272820650944049270452928841591234395137667177235117975525067133329792813660117156134086020098705894786853986754190750907880060238787072559859783700964400670717246481639618555095658634166032156528747230331661322349134932497673725584090251426846087099915862892059829015215621241134314098369352603110831643356118134153771539307156376509870251533779578358161459080657089613990574261014316774767309057678470326910536125985125238401867090726721672617986891531763222034796772482358288764958695362728328613454008133356668952034652719678395715010219652727989136467108566740422728327057114018988709331028993883866254151139855421643454776369564573881275993513513683092918145192227890171106577223023893653873885710024558771115603424770199487844098355871817832814368858967615692926679954608208877814690125436954846435760714573892555051350517219920768556289696197351548794063494981529877119695250011538037849914192400562898875401735906487843149872976731947441315817488591079780201947659362370474239706247514171665101997435036852360238524398540488972564159781674606300367350260901623352941377796410750446435816439360598610788824059288048417819411573862043373838712407897826439106768220229821024485001303070247798100548497666947845005156298974230910285313598346412042567099743687191654088647085607386206061384237947878244054413799025429585978105380128284562089779512213270364142613468704517221944261773515884306365139187108278560022924647762832576715785624381327854323163008774486660580018166601917085983354316598993957270980998936857150358992851217301352206081953264383641829821936646494788668006995975680514071935108358980184127216329873736011392917641501640256292014805319178606182567426799176492388957785056246165098677495503789640779737162835209713449137968312147435426532614792512706633204040355934175238914016277614487457819480858234121255212937433752416556015137283001656875492064448159655389794660491771492773098015799009476859260286546650710535005043475700388349152296575040963870599107653438164382780031788600195332725018032112392289033878652655563194552585848245023285184329145535627248669589296403026626799973482018590422211139207906018823006076751768080127262812599030801732962845398365021577424622287494594225698801002984332846363252148649174637663464059296017603959253546693192545105871309086161501986178669760012666144359872540440631455721083107154897247275096331811687238175927022503568731575381549967660240548285568836352430234253240880236403756881378003490224445741606783825754962043693841876143690063021149215289475926939597406902455888573727044834653786648757211272316540361548751521401416128435761844849989697771596116720923072520473709190129911213260465603139251946861690306586837509271782363697474345660511065144531840893660510344661131907067323492824274126413791962911261610959232322639215175420904575656716351420217841880235039696150118752847237107595417039144871178661065753036061790104783955373389339876473055683623425647027206678987060961205648374497340337495813130254056921006160982158777089619383527379712065203207866122136191993707293688482411455456355292759792804472788662265558716447130592670443179355522269716586856598510444966499994717119790562066790968091269572990946242790220682398100731237652454606282495767142839501740293909330917541496543693163552480319641050801703470939333942016904347130021835770231738915744674156236279659292449200092089721582970229239572765241792527465132740308368866266686157494392921479199734242485187905031961513277625996607013241906821759777388736493468350625783641549155869790650061141814032032462572475040519902588991628580197191053975730830004407386404248757928220271065212756110956499988185284486994456662175824153141711279932836543218546034141819891557427753935554204356605455477174941486285312731513821545103744737445067774246588983306883369624041124146493006776056288806111300415693472365201018528225912213347854368549829107177151235783750598419986565875841982858577250780091529527447646276495672525237921296033165059229297802987379819558201691202185833549691055611836809648308294880098819447565858329013985314316309841729863627148331978031671290354671814095689021802323368819625185649944129306024038366543997629478645082065391471569599483924908761869906077592679739493631889297291448466914050589163441956459381434293089919649610414985204297258282386840479627156559226784206671191278793343112113625911735443668424911966962596956127653551022730140752583084548927386585962983239098774130548295694598422221790975530974331559076573054577039057597276299656145427548384024110531479440026078745777911346615932163698953710604191192329973169752236465269648439348996980369845824227828332321561076012241575314449000138045484847208594432013969425573928808343938979140886385402263756845821269305975509570642000245742706341620405019899667259812586232153573736519341959479127581340576495760404178594672247709536239152215598494985597839021586995004436120068068907079388208282280477528754247887756090674988479003010751724650012119051857412607883447753160687623285621894333264305501443457177588229377434498883449919568430719716082416649812835616029909814120921035201669090632177242584220917062786644254253967797297661717713734204898973831704585722391869782333225755756285350436479393826538906209980472871527109908455153158056246540659918165917285125332409937916849369974725171708650053387852808713483809640573967428707858801676906469836880997131421122144922851547002141481980476807257809795487233336240921186124096088399861837697558771415442057752565437571370122697419221687789676827265078222809938624106461906768314273761650011328312761580308923828889396777936731758677269733556289186627098600689999458681193663835158173391664037829889101673830035155832481552294049670616496381090844371219734354094986459345545301983002398831232848649828487097324067164711660607571552796179240758008508810114824753399203683000656216656076480347089669064303189281576061940816035126503257745535888035501304530762173479457423628278748764445933569545328156657425200387649855109577876993801578626102396387979857262731557492848453169244294046050005312155411608750925862899851047231344136278161823014477367299421444826021468529394767597596444334670815506623741333314417967669485533008168662428146823977699113833087570294730825048096447545960171611843825268558054534154520554108251563413875789037875304329685322206033772422052325346824305728533836516098208055575222719185299444831742653108852622934080274182510028806409219364425654869084318543293200199347492484997056349958384651038374839137753374739003210153802054003830996420759613888020868178078102649398592226931207056224417843026803918870175719486025069375646583418909487915946897870299245637914569617885635135398717059043546142047910097094657154997571797233023483194131509995683238730845975374797546673171065160612696579776970490131011024864160319596404385420640084278392168967181092919684515206285286183916473134820987340420322601765738413930463536386832608910704446368747728510478441284821049701366375679415542541807688855724377251253299241599258069330522004519264893537106517609755026414930962002539580920538342906493070750945412733354294725387406766582137681696444431086264552514229197228543639791287306143870123465708181070281712481354432869280154014817610217614912099942688800310690756549644866423010282412035156913989557717717523819932517598353082512635512951907467524350551642982237418598748003934353652653122770432731172317983428782920942717697365070482424918362083985411202116855508823689411449654958820704345373203574148187260258122266711185879100632294248112921100512122799841802423393877239001261238313727770179409233508764710396209293092253222101484514094780922520757723066470275067295578999717518485202147184723566218146286622188046246769389491484172454169406629331901880589871487788169059364200479212813830637471564275731637973478208908670321867755176199745016573709898135056078363542522611479557958801817619340875023401556741502005445325238561878512065640546347836026151622888280690699574778707752612720201211286084143078708403990112306977294479155066041375215003328721391271784387945419642925895995349773056117317698101686524248803031343951989746876952683758438268112219845898742637033642516942391884505670406263555221292227525238816848774898722034096354440468608545729343236050256255220995984528783863472300930107670111637834781066001158419943509372264145691447396953230046060074681002346275175946242641443440782817288370757570866543946297074688567944180111594614166327724268941080974700796699071642032166167413091787334030011508579969819517173003297409523923647170381112679063947425181886048529180936132422822641887770071461116490579100459657246740561258274507579570210624981429151816098019323221505599046452729533156359394931545652682341752298915833538090702670139007791870951218160599229599041485803301040003981963076069541218070046702067580404841587079598756668567599838917706758319617956306011049922583481417016905415121938526014274287808554716356396160237883351143846284177162633921657883069902817611365648414662147823523971069718624297141015490374093576838664100164739710157874588174713700072010582231636266953177465698910473749285770311206730845187626891869389343712106503752462433002817578812946211995772654761497128519845659763513769965014949359310285927595402454660323029689779834086321653441575408018965217523586417976914689804814310364786099677434152826431703621257478210659302272639825012850794199341395678939928254508397783322676116265091263636799810931976515802356239731420942885611969088361953803775816449542400284661620901863331419338719446732650329933948860833651067653210538315810517840321468795422734308549269119191512788667496397875774273382063136347539397656985850740714290254134247614288663676128046505975492623291984769536581208869170598983331185728327643911790154830387926620382159581904774626958372433255880716232606131548940043737948029109200768582079656694320521059185512793319807796211616824714663555346336266658819143415572905677596817776073415946459375992842612564345740605198803992732319541047679091725445931616487643514580574617276413903225591202413068201357596873982470857020210725718763996541831808627827581228964503212856291372542527237527112882608619845032384757185770677826332714736568382673306042549312838823726946660109763350985393421965476927138184023267924162832146954532772473417915474049993185625524643369087080213180970103049196618767230600725849565064992487746484631468232888488775700090829389338754286745014104254294216294964788944189854327584687687337462223346537251823093236789417312930953526503397833310038860078951983383011499996839249461884699527318386683842376135301476790596353044399150293470065705242185021846864308809693323261488890585885169312701264472956477773301879418967208507162811971556167776160301062338478587154157977590467462012711227570321561483768498637988801087523064375226568780361935853397040802652078161062011118115988037923414556347204848331993854868709479319870298172329090885895343657481413126879088014100519715078498305417701412242263708224260633101844666909624428819649136940145573609863739673841551773427964501064128075949805111899580732219399924435403575322375493246176021397598372966639735281565839502178131360410307297965630086094170355007643726703809255231064992241259320929288064509116673058999289109757029028182003686242803700545086309776448215875549118594167132679447589356927147888669251171134281366174045050788053604264221918150646533894222587390290575772114773247526232065519937581071338376711879545194947786667523950514830875956486730614642713926545837775563834565019439348970792364262267825606204558763923201063527165869383951559297449896126526395095660024611261740570232436771153196655846875049192451144965751692921559241845767509089332689563104374082128149974289985945994859649915214353623225105402626894181935103302531688067416832602380822455776467706394912405962707788509279608071139759735769044931590157749646622781807398196631402942668285878916038753289080538997562326571268678336598330786657795416959432311935824559576116446384159946032158210129318509723211394975738309762857752924718663316945330174199198379130113952569272581388590679401492355145945803107892219745446721011758934424791810993833995204045713586806658481416840065298684476592077877000467506343993817487727427637963054528606035173803041799394930731076289139303367559216738628765023432930117125052152649304612954483918572424991908452956172873464024051115893285390853047141688177384649923284349090042724280251850815392400151002992881844806604220130048328985273401632378029931196822924710025396864468533668851962668408549264676460045838731155520626676577074980872620869672966205220503422125301730193452031038912187017010469966042797765814482833191966822222663226784470055219650720409867660690390294898772353532772035677620930934547340490674801261843893959050566828479974238096429665302491343509615422054624275935215581106639702676972653716596048298904389340599322762943582945014560838299407464647070533133311719071556662443516785943564243900816496466661629231090146757398834546877238623139453872114400984431162453173400105051787931480314778412983928413738264788932731535641072714035149631758514751738736866599410061407086113939544299479413682818514369038001350405396364238075343119692619743228418160496939705796327394700643582373318520205054457791546115313775460387647572357428569023954438639465032116138370006772445905059709588757015181465629465774445760985629246380294957487866037961484894683346912769824312338730482109807473872089296616356820517792219217885934291522140172911774249268781439094690170147238954171479758110619678998620271358311021426786128602586079494900819808619999976172839210080255243120873691339768889356675410128061661655411227672082901539826869431058335043817593848706789379991469390085469985439987879679767741803953065633178023035816767872418035593077821346505379409205772981882089312312598396289254014619727497584270854687190190095658757888831876176905200383119293727577765399773941005912499821570101459004990400124756515254862853731790876415853896421865340261196657404053575493443515600706205706636923376956559482256792825610685943735109778011270536855464237124864135003735489760959351284198257427272343470792570583237186778207408521119692878176299021412310841601421434005318581562592760973833644179651732408126771255801119049251327593522004818645159093313765251868046403485286744218839323724606394118088172224944126590774768894111503879097673316792047111761632397940423900124458779109026420161232527967112572215611143508936955324437680682294491858829447003495447932449065426162279315973130346584446477674119468989423542832901326824300313284346240095990174050399152174194319726984302241510239725333640829820802788692135183885541995989211276459467581478482019289397269120250947863972286254642039935976679716292470222108796807294476593099141043879287505855823002447370082626189259953144869610045695657550884722117822072049421928412826370923817491288211511480572980930268531385359811776514392277800224119999368861740158197393399635375772638683043959427694491878372190657907964113723976374728853670722948376671049872946825389548053558530090470631641027212250857598574506129921646564521178302538401160632856138831706334157084850237025580479225293964542687231862048840181021134509216987572229523444594642627853470267627430337158726339534145517319420859684019817357867216014003815259460840928265056590362521966958787912300008359814238383605036798181550814766749023202600800170090902392919362846586820656456785566763284490437391634194265783095251049399540387967058977371055872670115569465340452989660338267178905727061426353304100608581450376605435794449104639570979396729523073795376083709455283951266861508154646004096199857080864858116490805716850061635637597200980196548553538933846574002990907521933566377209560461814679669117699367828955033627837314709285897812576614131511839193195479393657145958384349988946605277039713346211454720188461556705645721251052408530766160037651473415335760955768433501509358921247865477852851176634522304321237276245124559629061077198410637819208495213593499034957806829460963887912962363607137086890380933326740435788225804299345839590707589354506152422836583395705520908139771088327763307101271905048881870227130177603248170640132857292754346612055792787378949475509575893241090087842931070198724059241098024559775470764142981872129119111170455244861648471251428194214122078653702303379288079732482272261982948409987721128092458435678306454104195596457182244868558845502371732827157263902885831559505226644348099985181929504751219864441436127202944476561556665941103481235885258459680310484946811907598972809317507526711172000153567638346936206465293628739010934143301686085629590699872381050384759686231467438498944103863009060261138914781569028302355123333885638535803628843256676703644693345226772330351663704760656102055889569259717599866154590730717056785638514502524265916622315239671402169131399354467566773296342869286114600327513411819497701119466368564336932428898860317063831933791952910729593117985800893074498517381976650628146618578459411242673704272838371926996314581426485045430526680318303450984217176961407199936933663367616262804439046789785998050507360190956862563942553966562184081426257778704413805727569618290503198248138490996684996970666796841412452258821424599216542393284539967724443241275729639078304528948528634024937134919339740577883541384155068696002081647762035223324538154418496966552966726893757284367427161157684358665144639720568655708266276980074634725440054469299644769139458023190554311131618272005945843535520949521022968263278672882923274189024081661055284227595285821497214257550959896451179466053443633065590556998258193712277428239166441475317141347109033826121510869274980465619981916589215005326341800945188273294624767205015064302598494088455452874896390619886705924836021481796353674628502505236881421021726716776786096716468021023608022006053155104115464905630232068280638995191376222534866052621583004047506447182010290778669107414412168485058775604902091748666674184325407835739718844988329519492699104035968726092273119568892242165068377600277987484157998217050593389087686778860328619379142154984245591305000544503953658517743162220058527074124553966199779403675027714404111174487502238437002814677973203421227797303288611722871876852587239621495696056489103122337290678586800793881591365774349801745101520171486401527029283579581515203078986196333564597081819655602436138539863100028250883485920308667478550756559184179848550131091484553551556547591026235937657024414852973022444979634687314951154965198448236991741246943138526242611051797903722872559772511713544364150148218759359872296861935872043676410718196003574701439479910368348907094373423189735719348797503066327818628169758777391423315054467122160315450023709490338397309740633362430658389950766059993154188775027876410790129965365105399526882865270201101576297746292896545154236647218895820206416521593082582949595343492710821812088994336989730002949966259662354287354011353984708883020479129457763402425135221355084366263900067477234975521121711594724529408188269456310955943325478739996456962706641694386886539545277128695204850369225028656195225952013714201479388539998398794584458224562060976455399125410121412985220326936098123772246544180621533812055325358101779305899767776611851035957927868040134939446902347223641317433467988494816539629472427208904692574086825031461207789915236537322262461239053699505737885861710615258528690925571491688838157680831832428099577043840568489267272958104534243651314306989395044037460693340059778698398725810640886812610302117674896283502541845334076694916516662835283938990098724085951711815257824579985582703110703396278441162505753160553978054088995593289528085422234919789292050541710725838942288276785735668845443090597265140642396302525245439040463176019830960040713601881713745318093603177070212362707725823931977111919494883098190990470187050467299325780953127768495896378445866971019088816254439975471942043143526967289974801039600617738411016788258728370342301342057155241574809649679676415143852691661840008378474373374529002882377010254175448646792009613100498558337423244398267797169404792034881960681724067826709904984099652167502980694168006987256366081127356765015062819732884389387097827208747341403250520217010686434435075231581743627347812532107281293335875589400351065711386644142444143678512774885683076540268616535213164087213184522353945352281367512772313295767032165450976035116053685005738165674015127912935496714931332580473825820662256481018259638140259508087536474010033288049808466446828304761814646054239342863723214079874025831104076929417906322910024844052492757835337652235005659682983703667415215139860565813285489246227886385260013272093884812744817735065516789352872590036164119258277435348502630491449795398407408923321557838686700676033862415295999570180864990490917544402127872517156534486721385669724295071346674564252635966238988555344670050693066796589399379979573207880864356665165181890422774034229964198307966812020112946816683842405447942705587945457896599902607436516893048289270839440684934096407113254174150375675833745943309428171154243020878235521172923514716332548460135518924071869285452119481452510284201204942706537397811864777152104207246053300471750509999363484573872032448477511969854324622510057673045239588806881596494317837748010399824752188056252417488147839467538003329988293363775639690421153009397972511244070224842145447475895699708528896188666738653188192347084085970290872189166211075628268622240352812662596404666214006662329833393137462779803458045698620201102439980505715328168714667691571336367748611786261960571619880004611008383852267411045189011535212626569535597932064778437881534924492228702202382041904795778437497792577306384471445417764686676048693029396700836513531415385753768867951026599671725276437528231817147247613771683845235086251170803889664963154207449486674756567483576172551875010313309352509526317338211791694522267836044142190891331791368832806967709383240061881010638756859567090215492859546948545943795297669678141710320532815020742751993899766863860062516740115274859241046136759967574177411815620670612785349167412032647818748714928630712733100523815323683163453354186393946869600092573561578270822905345651112584120221726954201967743363228451313386120574174518187509267243283409630734516859928533493961595729246699103651924227230617273722035595441659448461849127424872487432823775416555555166278798115595585650709042338646715011493119025004219936425959973821143693162633056990183962662308986022776270111405442584113885992253095190037822014275388606985092409407643861073026042735779837574937549374570727303299275569534216675086079078672579808120078954699560478561825689033977233607582610319275768700845191972866606559929882848357992073056639194891666555874917357336579525147028007621949589417434936820989261448377507471455633117181998188632433879820537797894588281936736611090630482401042088089574982921887360583573751720468577312663809783301773183273685560049590731594726613069423914737782275025986045386357434460770674140454168512690066446645183173115184344771286494202121754161256705504634730167502127751694381357471579023709102759126991723992656709050455089178838730415627657628278301655095945937039084370607632841566729628671473128078482524949906635723615065369922521995788345398341193339209270516408977890139736274054177362595540733911917904928701221580374506496769940959803356230649607723437641398414678073513825624174835620869774835904124541758585868648008651699185567188078465272430451620945015574663450724852828706132539426653440975529006730004787489538220148916464684765593557431584963513429960601017215815920770743382948429786637546328425237611300219461994598715897987631842336128919569301613303804718340455599814110635057504252934713237752216774759501301549143422661848183889550108800589440975941012781954550568986715545643797716581870902233329819093593418893431853613096281766192732619767412369987942305972502543518629009537959343720363726442935753028139361789449112870887898211575364614296882482808748847274897434092838636697991652837914817677080062349480421694978445765834788192698003688548310057405441349553252389861299650155735812529013439774881569821480561053529756711125287588990142636857014250168146913788674976175839193573782945395765613983122027537099156030018391072723951052772857576794691283546299539830713315693687177718876248116637898227038127470698721497709037843249451322147859749515828443307303575615973803152501657140119462346141923749454934398543620900029890158365123119665093421209060411214828089913670676069931380557078890460449468794556148745504949603787062601388558773403899789391742649994407032967024546559031875652922036868203151552493667098900422679654692944145451183571431309061744194450171635596468143028214428269165316160893105272929592132996803033716799714064194428849081452096043907745420209642020429145241477058611540668043767016315790737761353926895036581364950385619808333686737516676862651079948535574371284384856026002109111841030314547208270247011680592736784466141478510383811142673658577475874390580339941996862692874888555842744868271346743235171733513226770592075290457284802239408467552961061462579082971872498110305739492908057553354482736711169494675627850541295343316112217190227189633773091904831822486318137796230549596055489790827087634698836517804012874186659780202229888513389284843694765279476354805517175477109041135009244535468718723835962066332202727236995027756810042882194461057290057095776075208745243866563907497649118316431536260747356782102327477532919341354687860634185493732905456540417988443093305793850156130654735549968963298945715129321290538926612319807487377793434355405824980730331468938103831313702991464490877114295921403646222090123779337560312382225617596343133887858190029911988657822987414494818471239641885158294031043162968668589611044326358345163682220058784601354009676733343044625914897485651049667858173951351510205776565333270953618730999746252622835393118858622015955381924268938407417206223067486937560730999153076258608139601351069615248536543024859169931968694924789139875975074593164887111054385132950215602663830519850860108222044209392558369601668721512900024177506463926696947313661735212308464203264125770540924679256270773574416680980050326221413828302129760430209963684034818869020424935879694663933633578327678955650973196014990530460900242153045995111647035425917289572331040555532065390902300582805463682628738922937317619202228624336320659760624935966660550847963211424784982706347245279870661306811395206140696706709674851225646889896023748535162042822496753648427871419382295385173833696621776352640312500481569280359924607916485450326649851291544004238092634239275771478241795254275136979793353955666125288476612612457702217855236298863566767895700466820249804122225991154404223312573549634833520295236607206386870601726748998464362432545819329162846555969262265011865603001671655393121956352903426656936566914597650060269138704122951376139682839807436164270007136511108042078901062046743836182293088717287575669199905324358615061131904525068886713053130268571004453432886733447939245865902212673255774519812496932312304042655069778662724888592276058090531144086410863509999112258316459201077156605033874622540779144427556637533943136542004895074551393060246598303009331849891796005682911893620680174182143786297632877559879093185692060941676859774816990467237393777240824313426524197541161608604235857940665648815637213721550052661087367761927552784661309176173049739252008202631965797403613582467919149642484355767398896535294534725380703504014031546963339474102074761631707319855635859763372084839222017423917651431352385597185412296372860868074297237403850447379573193773300692217691100034594943078566957468368389668687615832974797662140755269236667187711185036585132816345888903886529766323543131796593194926349391919704720991060938864706466242220738647745572621469481269240076470771553125711548890752751599793193401582187669264244360500576084142779677790726113341807545033157105843097715379087172446264846916421419828204442670293563545104307924282700022246037539743004307130014264031222793044763148920768194214609638276103751770373886528474913649642926431604129989023913595057999999280336139522085660412739259731052469679213665726986674003579986792450285060441288867652367234613122360743818634661124513550617364914186318703256647593705786181428040663555868382871604237592405770552370376286675043696646430226331921727393308812749357723929500827224685982720529193008061093796401370927725384150202338467690853790872048304711949791758053601999035982834588200137663375098421196064915973339788584348334039408945892807385286423543321399301278015309273385562628960347593135810161795579080580846688339402327429472776406423922750059653550283844117858051609922925219482653974065006699238414708982192873778527890032155209663882917123264431831704063143755695097436122621270119748341954970883981951811494220014447892630377119339801246661371645504295357762313356300210862113927751638705127916543034705173271655399029133320471954854400595771114915100084411547633110219391834560986796642601926485509914713118164216707462479346176752868777417448181256738577601756364128659842462481383600223665813601555297725149533046467940249041473294499260407618865116203037399700776312094139484622905191301153400562352185651586928673797582559874538932233884330729578588978265781812269703734648256431620646970750534047940987068031269258949181899826569170410327853404053302881063943166816203412995989141997172992833136458808675082075671093021781963757584528253683208294107835652485862542101561350041470580671493033319836178898602428655798806294806787759108324005928601336132928264139248529198995254341590806053175972348964427020389330770450272237539809641474154688875274707642713012763516057163892302223412540144260074020523450795315898182922690243100332571756231367620852142117065551746812963916827955035193142461880299439202492062157220487598602664845846059652599815592353455754607753661819813110374126390649482468338976604829242428988999971605810940121384557749159967792398325104420646754453836263811774631275081523203661441003690315585981126800158278883314356146205404156483669036555844223267928225209999149664179161875183029547189352304727864630849066873365598600055623345802839041342882290208368763683727311810205649456618568816617899203735423397834972541716214802844671721084973111835794430166019893926650515585037859955009859563574882930377301356215990654717517086362970611609783928742778714477107706437753529331033341246959238214926852126520780659572196583860110742213129419990719898539556992489041592535087593669661996453205717805822686417012484376147347601657687114283127635845871337061774915353038726107300418513609912424439629042265631352867165895601491567855975287379295008626699968515903395423411095895329505809420848209295311217097385830986640010052471400371125453932957483847959418966389782226352737968588989583302104220890951397199444205002426399643499419890960009170122067305575704415322535278878344348272737374250480001048121928052961306338270316775808981502082460712937195825076159330245579923400213494032354869745777301083931356981868153914245722826312578664449279316476322620611507768905983484703034380591821192365767876210984508965437667843053364050169788565282085246849385919829109717672962625980323761137617262794886276520331261842747130251694819065355640703630948267591261280741846960556193170053001308253936848846873372514710607257786818420280085754603196194650125108954000848367028489944797320285885593974515244362701898485371338824921390573109928096991941015976882092270268725290960717860219163140471524018575205127824484972750503141226210819320887477766359170862125851002721859706309888928787797298322878728116144372349917549229724172175922439001528266365098408570485812040845324439943152019620396696612262248334378123207545434446292781212814921181900275073085199183145635457255871282600597350925791329329495950818216648809983520363399691856718676675660394304305298318895631396378845648506974270536503136079550425312351622939708595348498531559132555872231424918518030026687518886636542093135727756176430028624311796750100030626738002970215602327436881263148833159841036974456577758737292811911240524229896299927020158659932397462997753276357502251639779114953854740928114398483166196274216282339437010939745174563352172211159478717754628998323852946713074589073563370787279094079674637360577140153262466505666585807789791767144704094030267840369968609056360866395556038550555557019093130463770392804170506150787643136779980738921908467543243847808233309896665969356276438924739405997058617467727595675219175866139078820863415063062239681522419970859665477705002243072499967595236576958139119581944837943659750161001523862021982467508208168436318460904092077646118568972788621570494448731799977059380884875013724489200683263119175428503797705532973562454046811217836142807584088369758565592818832262774839501207930104267743956058005203294444437462244856592578618710495462665174839151616822217102967506308068400044564368509214623182775993667665961990529215753544862912086687221281831069154117496606263492888799482877853651286641827748989637023694314530030024944121360143043798661771741231868898519873098195826823631294878944075409275319425085046118219696523841347647201173650791100162454258585374383794853504141915965213902330141739895930937535444642235777275388003844964971910932844839526794649462801122490960128746706918673386702236932680254518643891197134358126586811965852261838086139274537886424841495321904285611143842435500996400218450049846814124048983464222787244940718241109704340850633761929390188228870816734699588384746037768392831187455555653340896277698731938316122804236784191501440094016713565470722643945759604362953731395880300146310343469414799604607484087516807770802659678839628166934413472951164481271834290546752354811323581201830866863007839038927908365147166730495170611259416288013721898163962515496383485974272751824428305629294079347905204498620614085663334817266291329751703735461001342363597270092023948001899227931940177326366508275326257433730533193351512985292901104149616674476334911708126101087417401840180558187276924359200861067619502227417687656293835607796782782356534560358731991846164034013508910965923730521576237173874821236637196019786607876431554294508159977370895688331114017898785786099128544380626810763369308777500312110623573838015859818849336952990434489667774848906210577962031943678661159499905675324053027492635818207325255595943757352241816126469581338288494140073359266823208013887587288799299503683482730942207875942121633657963509924031634971447681503828170092136210615395646246677344715340684154911308057567423269821576337933146775030745600521859714466744101767146074002295680893219131487750913879286881046118892652448003714001917932304242914958527341687972580623156774135752346011604398526749404592980557958940242281576540618850259537183856552443841882210780797796637928808457690017547066691275040520519608912830508382666404988896539431781651099365910576382271297724987934371153561015747373424843492127875130859760825493376333097843372522943860032552232003781170575594757005132002447566524842713383079375058842945043128353958457481897522536401305921879263120292318355812205009397940754849493949461628541522149286365712968279223924146908946668892903197369594595334062588601417094267852978930747085928981230068520053897552531690721616205716166903787808020476553598801115113030789253064456233503258913695625340703306898213079215351162816911031835739968433324153175692859221441387493539948697308061986048029962356672935090685798094998183122743068223786353406745401494806868051182388742718982987952855506703596800653776521242219708516426661606223278840999139810348963933285196808330676052163301130766934446539271520233506310787188147706041523832325826061751067942236096763014030501395297019377762874841957886230445099086818815816352965671960112813804266321327261612993178130444763515027449979009426661983044335781937329348222945696364676789787039960787307560795129104767465012694185876308303065731491539191669347034094834469727390603127184765616507226001374436208033234868769278821131351225081268184474593059454747554684261356665155626690590818190273950031384871861369395204968335251288226945020458788052428502098031153253912649086071922370845765936013509866341361144800210525261513157385648210034565997383702435497688612089367512236787642216126952277326320049983638756723150752921939199058768108666152860010747237247652652064701087246401963942787612669540376338348678600279745017481200623051096999331196382912954015501413696610620590815863497080483271561196291020095410125715338138984368962685983258187815330012479013512377565065095738913294145016537809560487390272217926526462777761009979349655930890375828323731618238022778865235264319353008908778505880151516713049967775535752226078559534892302604036145945241334641648014617755539995346461826381834227078016431099407461874849284279929735294191954039470359126635896663467605794884952350522323562731352069827542495529977161111468608420902969348276062948219680519265242718346715362549136458612029090405322762127925403755019085953446306230970191785952526693497168745181693065265141698647077634465129393619393635464224117498385587678877232935789100795391798264113169092083688749485569217220193795507847659313731719254090725393699687017215984134899007408930952214276442228272704620918399743154117115904748701266576541866632674100260405999879670513233835202899087984890682422543574502626029563059100761028891544461718478785898367608920883252545489021215894420277518759113763985752234470033350510318776272771458039286579621808550322113348940864774553697873050217765043271340691423608196283478109751361750681720014498179674715128676630820782683895343987872052997126467193661892692409474934561934099423902923047568639785609488923989291049770740759890053247719241246204057099520345684862343567354214743504292828904437110645121334066557971491738904450541782311357379900122916059780817230486173967195910885290586272807839669051718103187226638996284454613265049315178684878566776694530317757198944790874447964708132621404238585046002216008163939834946271629544633583507980517733945319029413712113071647230856380502950519912065936874541680894523113037306571262802656945820185327797722211984864073265767049501062857243594284958219198432740410578208051630716565956996402273567306622650234871488731808002587823694859019228405841173952971498429710721539974102475493638344184633432446750532147854855032820353300349869968909473745196300849758310327803299630229693798150618272373508640285595998337486604168677056583313126414240778568782122275943117399574160817174714770748968669217875057602293882523464497465325575086647664315830532592117853226383574731069633373968082348895790728414259508352661310070430370352320334601460501783549272515940542398407287489373935125997584650910056248640256418749527802108987321798791238907883045010237171511240041317572934177866233231099234573809499391458472498467021439104798333469447908256203605248332375917837995200699923461374201566266451677754027231708219166320328648132948386387998005552514448285461590816289387229109550429792494622720903348758550352521761114470118981992979348223858184177992409136640012077954172226627431185775021156196604901509008510194083784574016136921863923210791043425636499487957064212839078640843135799880293981329787082171407920799006309717041101053930054792336013256676369187500341345842025808397143483381044100543152560203704127959272864860728258164064140969682032344228909305241195249135247920917379727997956663143707090196589818414232359545248748992441300784664535298030112798498913579443260613221395508392805779865839508662812415542685454665896015816394729219470548195626292822491816312475953102773498569205464951681556809952579934497296879170775053965112504713981880843931536450949867918922476513042563263326701938740898064846829867699582833983931458747353911518940212156421916186033887086165242497518422600457376914267301196202107483021449239120396213009698057454293303553232975978476303498733177598249847446225934919736697468685407073977255708953278143953217404107652652632875172470582275335882900969365040306294299330074219405197397846213973058646094070898650586653920279518333831126459878008072206263129121703658354538390595246803194187689749202344687099091228090494580151053417001207669161599869083477940333857260312720007553540354391715187719841983329384043904374411891265989328494933394742904079086523300679808607818279705113920727929277454778130661122998283189846338264354933289569805968960870828151889904942175055712404893400766953211278517916586150035617787689082389569449890015327076526122492742985654466586101292947812900009166444489248547351827562076581736354480567268316573070522814964052637469300662450873112630470693922367119914433812038614834612883174918706425323862877555997629059208093884882525377005070115516361440775015618422994461416913336170490084821738497743982679340274299594022601198040564697782521104392040762801224872593577280237878127701294997046759144808248971772447072551233621545290433884987573287874849979240926240970439691192116687606494975925529042889228242676553254796390945509409487185769676463121851154844229142096571268083851896073500121717973976939092634837075188459693241346989857852920232958655934693781177856397479417485773554460208373537010131954475456716602340970866217569709273205106439501343264029511659122213836660662468745356243050101159873447277016432755339714636755050064640264784347176075458749792543027544247654765551733605020215730417536528099826138847668891981716161019791780550972054418020951480854462031708309235419900512711516378311835708118709299461859522255134016730651619773693847588397580257329209843888372955151621021297907698077258197445854403994921797031801980371501161441673751304966829300372200680490411762447870777569073032624760382477395981241348926306352526764151706114726585753764572120447431714743112815723496550738036146834534260117391603399576604157742150215418167688252055766474754500821403481320544006250317301890717483305613840004779937716766782598806459999416151892542855339710886398456011110221982368054526902202295276106414548596822592468155791400610382787921396635254723331690380681593853086907081362276803082561495091531486099956446599551821346669755614055066601312666699904719210060071865147805125316293794986122829970805611769198463790797654836741212330562615556191488447725190857474155583834848970740759666061640670656034009578915821997798974565371885263130830883426392609788948918728406091726500083105659790023984953546244393578118753189841087642852218377038554508375315822984498157053341031054292745905745474705327977903974538130531466145393583588130392009948066741015397566764194549267262715175728096793584245343482337721000714329699557181252631219667660655301432945164742334278960163148242725731698745326577453861739513752949474276413391508927598709952744006943132626690299506587502382626124799008424926006710110103978375782389162642613948353525677445342876255256674889427718989733510748789189667534108976123022379421588295089674005539831862942901645975431354208369190836603165105116493200075913874290757188572088559812494853912234583075184844146343194637948212300001247008179792529973053713330946018300684192338804795105567485380420134742051487878828906007545755262773873306697633267124656276275153915358913432697715508955992132677164093339234512150490367889941306029932770824941118620220876160807848752587744805448911334090813222476343032295793206233343395706565842785308776657747380887673658455056828992582366175419336724103167222847319372921899215349111048492782304665163885506516583378561691489244147512446765400267992251371612030985510319771477120744128418105723539132315648460649861683643021901172767565016850992176638478647408773673298751033955477268213052700541414313117339082301505866603497265736979584494846752207274743370894192115022531118123255434076692141876719607817250540834148851905866264806813686394835790421451285382310792326608732657320618829406889550925479610370947595833222177323919001856794077314547760333661521543330786827297356287871041136016344339175279618430745539286212202233995623031724538402703677658337943454237118209598282984443947743548331382894571503791414185892070623075105326134702200599423858843311611356523475490420816794537782077906454798237106011946781152845805487550936194565509061014598472591129928139857172476987515983694941130535642532798272972241002541533443354274379934756068950917439944697420217895767230194556949722029117515666809745709504345312900825226819124934225485808569047796505515693785650223140803237139853499818991116617349228325716714197290126245345420057503064665312099286332422188152880768738645870095564651824630072906373217752771532882564674093638578376567718796107783914574487829552009954115415406275532094054822463139124046205932356754813343153601415318691457515515827866832853639303735273528621684540091719801878428096856489203170508973963933344316497088845846281900243417748568823962655756068803627355948483520437605970021538576422382505691244354255833199409136835241184310701542287010635976992932644016195994439586884954664337799208929550291540882214635002580749837265422362837389866662478746381263940976970477323764001545860056001646795275599644789369756130090760682348567259282530444673844833240871888022154266804975336211113893852166323689657533126128728135744063389116250393545906983970706749598786605430523078327190310899282170798501556339768937346047684416555033237511328306578770531336918006089231414838156455320668540073467909850114359350485401150832001183067718865644400058658973788934742792976012683273933959728041457602057284208577790018841738335421997334479505843959192698818620155942720898545179104857593619723970728680976437850645199672157814840162924077665792077103886356073360506650653803100480067457691676553921715093019355103951487816080970741038417089230855609709205057575967706511127762063495373263331917385228134127981296839792042050595359220018921527280274106241357785927616811065318360769710004186966519214452141843258531642363046200822097060179974420278832543208783619541000490133828328389615421777906108725342923185692491198702789466824736546736197722591241383470239188412932196153878227585585829081606808606341113410989442488534888509297147745035059400190114020731109703794654695421807903376933245850019106958870096664334099367491317444431025725252262455369165238323162497160461542628202265742330728177531033605081337519175835413357679453500015370204066835706172474994844231578973358328931495889782556212022072809238659652955361973070495909019093747463207935368086500596052940371858951177219161355210305807947112128431669478437956294511613483721696383885441950731027075564087518954358715988922534004230320709160815412727541581480953121178497441064320572933840600861129811254778979174021543818003465131620430235150483870740281866893837318049382121366808685730738866721664528277430710959814949844253033715514176524906402006771005337721195086846873511026666523804361366164936324092576779185759972077166248597702159863761909625112590392047091391407412039930094773949265686798669542771117549598824948913909436834985954514228829923171597057770708628052165554207363743708246993855443243961962450520943008751330634646062400088907952206501450580411291210516228109897081080448550920150458075818985841926334794406854783006607938664718451209494274082070753336615176728176524844393695644817540631224812255322609711728416270824816035583719475572074261841610840639794949406578251200609792979876208977469106795133606623030918870514647423187340987757013295035921908718037606455362783591562666763913011945761902415456529836483837172929448167729834660658263561958984255284166795932358598726486743386740241008351409585003480720582117577768814406862418745444912055650662779723328575191087176615859534740227309557944562029040703251511461835940002982439453123487520097224453108207095442729186218988250246321418387870482518647718492108754435146132628899938618155913612756097026170636324852497745394670748013220707753158575573399687377858921579569944928650306288262670964762589545443349113889070464741595313640730640572977872579865609308622004826589007281674628457253680239905165554557715144298022038035216188356576747297804884639415536972330435630618808905302742411150880600839339477022053675470702231264765092144803688946807882620324711242937948433458364038565839010589754908569003860965263608209004833366759283333531674674236692682289723636390377951648579321827144336578259835613536155504208049730161006307057829876227617977973291596927796954138815639150430729518083852073297240189460976584336933105837902023591666224238048262846566859252747322012214907131465914473160027557890124100808274192829154473781707537182468810102747712178616746453622299563601065903508296843133994245388587819265681199064420621898791932951577005703891362923667477473043334903645795817129730599573304978047386187633108284587909026426290817044478925811378247684442764350864785203480401198701142912280501570771205461999245625232481550774660260131551804930831349362326532298569479440030877893260067531653520010682299365340517546789859933064891174519909121075101006548512296084528417832393238941295883352937458274889302738947281626959747142052935948782004913775098239019771026554543013319899460707389264994374820237862564115346620066986685423487763160075929131885236913294103479684468629200284836674192103413431173346944695616988732568613848102842588526407021451263309938175758548566899284567034937916467155833428692044449765392548237943045867080167761720056037456734487774503239878274234659309139326536057887375142274520106435276527062550237825502944780672840689700757867377914661481113368338763992670148145355370283636872609523043215117920554445068752549561776605080303722462268839959889514643729028728138147343542500769490976872079842110584437881154197803880033522811103037077133614357874453433284692467955713500537140532436580219889722935512535977968938647560364965001132568236099658463814946636759503257804784388666414219114212379077171813028361600237196871422183846923643977656002168560215742941363569551665387122855995496882269225234375751402337825829445821246408583885499252122266289071786508263826896850479736562340161298429977630711144816111883263730405288798869614553483399998020516749922896897971841275436984905796836556177213769961801922215934790319748554123972114605030130982684331687216755091494050549354088279557159317754817327879965379843808605286069198627279755560230528102789621033766334466765657458469662038529732977256375772761412696961268554918273196956700276913652587066146696761143583394980027986799307739880577311068591313644186386475253348746796180181319171646804134373986200150050944500514689376854399019274622326756151016917495160572909778648499861640066457579203653091183630488487869627064083450398711312074071047147891644668524772777029139744518896396369648584854391623076466939744544868205177713188729305192812716656812103356538425473252156260576705278653189301121825507171514673022846640484911916800300827647402657721278337186001104744385901234490240732689242593311924893399980166036832208094745059547820764177565893653213026793822923899942196659948442743211393419991635624196494218642062791741990105752083662922320379422365993064672265978753757233291282681023646470488167517852432596470271355148461573897833058013235384500808514414579571949856508457335955276394747715501133925286002958552953246209217473405502938785233642863192632225789785592684414498718668154002669658550311719603536751612984463773585987403679810468245648903940186720845281843445663927827701280364913609196701291821628038724946239473037084752110085667815249004302084998703951694662014378531227950356727633076865358100820296379457060221554121785166662678586082028522102811661019191902303625159736137526289071269535032019614505013232019202864048992999159966677955487285815710496397283440563608836519100834098221957931210309703621127100295963242941934281868032278378252537570358143454803537960885541167549502730067081485159396681676947511722628397258389025664209525231414857461003123582367409542683364514363173552454064973834014038931492960242875998755519563823911188539996460663727352011441754908057971289429275368610526993142896626364023808594091419917252152844898432339480888364931142547951187720230202486859236996566073873997368984078869336090336392735117835217205741608821466109640566690334854241553948162134065105133695262458024030067689453115828475772906661751635748016777785507893796683362942687080048591279667959939097511695567869211306877767332760325031695651531305967919520610519325494968251828551169012218296736513852703043381123396749239659217417777071605139872957669533445332801648406519810789730763782546803962962478804729585848477155490683997084805543544740975404770917010980279317583287135184727405316467641633252095114956555477566517835382224413326897901796267230124948452494565988401760250293157551159318451851717881678839112367537180077566181280343271595973898730643051991791639230160967877485331758643236856368323299284658895359376546004744835879675889013986256220936110320086003380311481327719511633883691085154903386577232941000538100442873763005594800507043751925047509691297962148611792969770822395025917941581720818875048742719675844858713369194746891600139038066884750070759134020869453443160402296950391442249623085975206071321917811415019409122713510398305538756842826849266477470513136703961985036571133655361268416333328898727939865285963136983523299275598182008510821754757905146987130213838875487111575754850993950855142388293015398750791577075951675402376338014407984054398144945957489981218774721113690639842855590883557410693702803352038840505754155540669386949779019194720956841778703109329423573925847275018233147212206313127790573003484054280839670048206993791655907696158956630035555098138777774436944394029095309791093941427567094022806272011055532710123546296022506829158419798905437378671808810377880964138713061107425788798401957769231807555212041879842951007479345827171732299565667052337553923507665271483999705483661635439759661535478697050031560515188052218289289365690626748802594088257444230174220008811119833880981858167079267296932501622945823567427183438282565235209301861254965085366702546326546398830694929322233257263849167097584625322993136605059935083313865533090110416811073788595104692823103970501054343411475391003336814801564872137254156723525322126587057480093940597941283524088632434068648245671219835083807188395889034649584507812112509649609440979190059038064390144225617759958178544557555204124204865288305921846993565306696999970981913312479743978548403990615043882049516886600161888857075865476944456614356307300879476827847995582738101888329076850149914045628730231238682000651617847676821371795776388848322080010846220413055311941368176986861201878004746246672589288129436863813647322755094672994782259498136763628403441864473447503797284262649725099009407379663095723825107057686835265357388938237481943191451918219354960352655239517701969185937833719053815751031474639946801510334183213049867647339482861894865585020839763111242121157523124125746899116515995315132820640604208036561646665700963039187478779275558869270538078574664676214355213908149686663786061335200139900354064991301211980623370721742707747388158207913883114222324660855199972731624529097583731447721508929074050143680045422787829362169748872489797585678961160827167837432074874588630890149569712250143169048463454064490510546493104252404039936430068605355513472670557092930925998422820873892783464974856161095957233830244368424432550526006310420951847373665659124190877695920118655185211353221332189224822845884472220967156473598777256352804700696684079359533994266416940138914489856582400761853299664892402813298499783744735026406570083409750496498420339508047637954321968534513229428491519749490433467665478963094712169695372035753735531216305562359495759986933777645998986328665720725186010307604736626936386021109741373453747318974780832451600585531043611213285510664427649972062219046745498608964259137050106636058975433556400391420282403732429705461104809915695885552432447812464839116201186695493267243539868698920866402042659776293557890671084488038082247935870751990757208242919293352236869853574547297644413400718760856981153319337547757200437537690050419899696924088207462949528916945978637581787710900426723276008075068883186967165712718100976733381768490473177664087074456182718580947163591928495717077541630751224591304200386366991768237185036214095849810507332239124959692505418396928963245633044087125751824870224502914874531940435379828925901892562740251259243046933520849000324694441250842934269024257162835808175383050804000131994500335487150729839948223414298430650299290144546648600056881424253762870059188218298787201624956490418470079395475931524780121317468329991621615406886114527512983670046679893320384534181082603489577386205960854430484399134659729114317880597772584351049245650224545176471087803958679656707489300841472018689182319063967541489053127806225332960915278046299629495362704609115131231741634671134283553534034373068412147429884477622371285409920413392283285629715517427554633385215774492783386493450311828094311523386204446053886091638734462003372562717505789705014118881504250304545340715622033647927844727320785406050833581251235925208603665391698894587402786995811498647501371841538881510010439512613730473516342184649638233293173460130911476493092933416489127716047839452685609646849415539525475920236851642687630272287307665194013107102564313174989058012881431181555395114733419460072509433837226074150744105581282667365110362137197860232711902708614262538196265128715842830288538289274332326801267431278321843839528018922846990588349116188860327971703001199904011788231260751689827637138216042548750732277960975458174553473012658527021646584566732461505652501007331296591135002516965526158177933480134708096118615035142836785962819593433092234172370906666748018717374762775022846169299997303876292307036087282549132723912870503130532658019220485224905268966191000715590688268913168949107588208515263982201439259547127067926831302711164852172177851097782837889262352879283656603612304749798960003203089062488165012101573098388486189648937077099384813267634935374935475575436604160559562487767583138205628400752563111060135108843472548432371093712338884284017206234398825368710766591702565004909834218172720126726530437955444611283675464553193496627123305720758737423430773066796826461295849532162941053903995282497092854470003723214216621965459318862722143894365367307616151924437108107603721910476629854362147193201618180065751965183052661580316567183305915679596568427836877773327864528624429947373124690614366207312243380409168598879885694282141176832838446541272160519994882845792089624422623465892193518022524763447674131985597219354676317644016495891176548743314121893232825328655339323120270536460359421458867893886244432305001608670107404628547857150391387974163777703251832313660350231173756839555503748497977423240244019783511903829433596414334333958771768856974752298929162031927284833851336780368411234508480212254091197645793829350418516469726652260514815642199846076388690986629308019749428184063140299485727147935620666244216079152746028174006494905313577403136873370749510819300794673548039352646017510877735219428398558600974323913100391899051949481772930135048968548282649765603371216862287444203301945630150538790414376817981588327771065613635320034509211704201887357851392524660909596860517310290138739356686352223946000364984522403608234365909774199688542446800863279520265589491674004605311273346911832722588075971484368011232370969739025137791223563824961430987939454062272583974908628014839442835573563943785521401163035411943845562484316241354001252921612847410072221058465084446455996772284592160500070874911853330603298870389074865576790184715591517315587748650372952615175531372418729173976880540283053803657612413640142039746456662187453959257897652739877033745284401230778672753200382780004684398254296463880056137426607183636920939824400471960377022756808431863751885376173874875334643696657180537961233543104855831876795959523039523689870841602580701775673913189799038131775549600321558977468735587363000156483535352610170792464385260426842818811745164536187429783726524713676232599078111436156385687769373283522500892904817753041822557220835318291876299584979507406875391783713156589510085191405226966938556064405955920093469210743319959613774243828025183300717307053848801092406781888883718152391023864661415409888376963382086784742295920000079998000775825495604730151158236665021926029514939940405947245381311111122738935495254179442132553395681304077326285723818995906302810329281804677713976457707225696932369475857845959488516520703395116039365489224173434462377746406730747226930559342133316641342547391869072250162535905864987632025723917175030916306947247970929445661553004026065670615519423544584661504845566476790888825842483196340431368853527914209571004095014495138217667811419545409799554377478983540297836130146472181256975595276797196847610808598761015796211866744665598720823870766127944670921924865838844357860253799295501136978006363023573212570474828445593936239840754589055731071621936841793844832989820285885483276294067934878499195532557126807147098148423239871851145018652140610619516385629038953517077010559573702783510111299520073635579255392154693851536715056632875010695330426322247044012557599724333728768968984395203869081133595465902875112083628224877635344235380837083852089153576318153007908951596175641289255402500969873790487512445931141021169060196723299034705144727991076154756926914557330279126470671198359595463592358244558472776498196022741666974201115241817341549654789857318734942634959413993165938916835763347593702745627245738537915717309777907058651120289833802553728310740243471223006116712337586881005728646967404854497488846227092292313692363322799033968566199884922114914518435754164664295074433105556734695386453483769410992628075823756300577537476967100668139913991245888602733752936636412008239796474223627006892244715373517744913879526455638839335741805625394032066332062790357015685229641517755012277065630108823945200088655446166600118509485317765064941701069832751783507093044501967496503165886032889017225252467742101922252418117407338352634097514528139997634482586827106157202340662854828960426189767894487517910595638456933981450164864503901895421657161426317079993527771788746065052840440130430309452452588322498764586295404223892257291808638416336844129131393617223078006876351269832397702674156228055795208140251261319946416935217984546204191138070753326753008903800948370678977518400190545810548563142084733347306954757007212103438520244768228294779908614356595341767797905377216316054051122821733710263090085226076307445997524628706807020839734928752662851330187939088892973574952387806929858952767671543368175242224828201689710246718972079352289927905150727402009129885029114968805365506043988360758584449850598752108151327896689923567156905620902942819299515073135627931025192010366049196814564874061548608296778951559372146463167708771322082340573627886985418699412474332661461199449983121968807134670216419078174570399588878119294426024380554725403709370530820140556090567348316161006785978603202675442599308282068154331483248476271713951047764972512759281875983636044858344370140215327539088792760128860511268271693816732750892639147090798513698820452140710209978459908048159415522387556407516862462208206631276743719739406946643169418858130160269740068623466166105188587018557871997482244490447722089267579455075120267638365327722467892954385235412638378342437128708153206928097531276687604381034194976611780865414312498268056459789005193806896685227799773938786544184838022367025926995567640411103875219632017044977404569311301985122376077738429250610805599220652407890838383349941747102234812029264221686045391667091348942231501790599881516410995577819825582651883404129239798158166792619710214645847560012344501390172744502186903098443114323750850361933301531590283081194420356212413055284570226504963339700643265009904148893858529482374923061690115003168351542136882339870748808736048048018667630390752017267761749580532519337101266438820684223383901731028357674225757434018381463343923575214163022853019087428356404263951626151825760853533694852366325106948027966230152192375151847675853168950393555590342349456644831887552358401814439642988992249786034913101999290438947784650670151381130005280008705460076043925693820286289249061964876446551104560352166215706836933588075675131856899068143664224837920837505877557437662700546740208032128846082234867711866858205272870377691913548898281140413267581952623158307914920057936115269188731054979046688474319304742503113883364603745398218624242061710128782137993122978304766020735946681625502930889347564366985938116566500295821767153097626447149210800452971018119741627952210642033664832795847768031997445663531248692697968318517548457166313716872151750459357991486937247448065679512167419726307880771417292454887091108436172797437661164630075695522415330575947868983771793322402454877329539460004396419037747005598115119715137410312403491577669254087771076508917873664550040477667819396290580997675634093198946784171642595979346731615835348488600639540390263356306157508527038738037052504461193538326000039018233067607096725408812949000032127259217787913135361299290715038886481168566776865588121993378819526881615255134462510806253659786670949488194559029884467770450106010155570391810502117807534525514371528510966970205354814504366385898986003012190852397550520765264469483012075851959276866009369532233236070836917857737281480352811338831186353987025176084899425246705002757070735697864839410493360380440838415138557264039307430491220699911415233367215471806833504613439402306906998506308458683418108649260801767877729334138333714743087327971129954794583313286514115444265309484527292187822117251827268767278239733336724611503600851918221436261466704064086810215826606427728519257252495660750020781591842645149632548272281027345175812316573044766000729202343362737110608452592640033399326976054201091744835621728013892898773016056590955777002786449841288630118521032381322661900871480534508923955872799131723196413685810074685850188072493524826727187707123310674550425552548749484233500418778885177387054858243616148416513430162356580346798199879309867464220262796707937657169449251660526271992556612699373564384126841643175589092387865728178501298016835427548897411909448380379198029046163604057054309280180123485480338192480640287769479927482412251440783981737794468050198630342663480832351733853786274343844054759954296550423841627537554123903662801938605255919362476151986986695081818395417547090026701401662812447810361951762416684386297911561205469895055109268126325041803162426702896811416639626159037319163782155517221543436140211333271491140241603644551469279449558947255243701998481161278025556258804931029378008868355965834136875018002424139237018776066845461646393529405766971903663589766183600057818472528695722440853407561597244391975537939782823329120842576674655436442788715671945784063985103313591841560356790879163610390637158446744721913683151199680142747838120638279058764100160057340542699402849884808543594313684585023989887416015972567090591732752836319460854849636979564910860356271120383053604020628997295058277957766806303303130253507358899906306785206974132292435398441887286476020905374118467512583978084531721971930600055292105199643718009525693176859212727946203629184936407463900799574463244590060625032530650421210771432833320240660512192797892447789351251412437896948196667524074575255873958150165252276406766885383122722557782232740957901893562066344335536401925627234820628836112261912081846718732852369128244575284215869619426418720557606322331370360752516399172542031255663192726108575302408722182956952424696182423485414464720839742354745686598261662562607417175954414334032323683537090862229114979308503882166799915741537126508305754862923696896053758738065342782392955287969166692920408853175231687908317391310331940575889069219378593671588621230376963701363228748532704036958529105250585062784727955403331104496318039870875246348007876197489172131720645652862365382729906916493631819978064193724618528697893840049734352718314423362417559864789267856976674819959833589618440007111342674640183039246835530335897055123459965024598904533013950246886313593606217834448151565824660388287468749771205554197478656712999743983593026521807925538174562476459367428737928046389592938384518819388096829211542816564200168709230395066262786435343479281069864344346149480692239729637431718300272130858215878020053070183306555510922385415114656737368614055239339711724910340611432373245578887076501652917405187253486771234099539927455380425727978108942192644218616300543181116605075173401572124392010023587404492449768331044801754224671072311589282722892973812308018148259154109383067477274247928270536332032647329170940874685300944100396662712628198877333402666675960815607988735416979220908453020447178484087325686665668640258330478776894626630787177701978062353884572364749102865383392243892185722042655547196046138818460820249266084944259008486612113201243638317681509262519780268422465711897479322814071792073194189660612322080760380689567112595588195359353102102976849853811737008644835959713227160573593125968532751715931237860226393274152987213964888777005442387151006288389085188332666376645349223552901188203665216219914419469232060307826356346792875469542406127539521091189101500065117384084218793917654095990540601568568376492716098563130188011877959580083160914135379906541930773154283666416699332042085406247956560716558348557053236052570683697675354206618088847455469376840760177820173256915434727307823257470873928033714782982052356061896799234525979446402733790146789092725697561131984992299172549912950281911044669382048611231290175516886980394316364657010130497400755210774733448392172720662405303256653588915969201702492286603449520708572609321945683234197485043981425127769311008412420227115486390900400171663327507776108307571105122888358707524840521337901521188033576497940400083807807893700578977090075878072002127219165910623663204595214019884602279105343419687323631353523321316159510079763127522297468234302587783210548694137865079588552277068247766375027288459186358723040144743748796139763914120702456254205711095585140334802374049890218595271414455695673716555116939360981122527504426100696799105706111193984036837620506213465455941288189242874816630470620067463377148860877188256640637883422818385561780079804672998706944185060473763206555064900653925654823774267038248500444505816586616955716833471660812668362982685217674720741018330650248983805008550285736515947498626827123992093835118617887372023676497751557006113684390053379338628145464793835323196734559639636589560721700314788448430833925001609058606191484137060399712751670082268679333928313037255174031579275713946074132000713217204387322171918564510711308270296316135449035615544049129323957521156070795687434125405927363602076489551638730480245506846652746714151926667975377195168608171759695150805654638357302595056307598589022003401609523500558269770341841331749982449746833964783692829052018657618049292455294995644457692340317438504431129576641908835762166597934399603534741649164957263628250259790203021138898817665791464485685084678771743452974085192941165063161180800463223966396576290743371769527937908761543892310444461380415125969022838612515543579760343992320485173868575867431598301842931676532379890617348745707425479775828380212435636011021792642421796409469250007997401695649161252882376684609991383325151388011252957883347429966709032594437163885895232829500549631589844948098848571451104291584342461949556198621284464765435206288477924072680966549414660341987739248254662030785883461785978716590983049863613376659010273815347436196870498666165509664262866535112231413884515272442113194294455506734202074528791113999340380248543594496575330676610814493896724762431176194552305667937478689923048117440486566011897823626000874970012439291378192042701838034734575276322729850730424648193669173403491387358641441571242083419358046081550130714493695281338357880250837421716774582401997041147813064931446259402593973073117085851878685784079891722285966213596761519885985245357415198565598776303746761784302290730318809154958127797366941396931747232923930309195692638832706235193633516698986089975235203540288028442841812340749862001242039737778577087043607912726622606966303112217262338514143799133763761697480853854914981009930878666035356466695861117427055023097630548393933013512134080279308627889312054224036217627268572984402459763029944418440979369497289852890036548862249443829016778882339894955834715618853429894476229185241368398398426956860398465768472537968810557744521764141794994586603364276053111556187598429793638100575446314441411386433176434965851869354119326188374483054964848648018284512037654563490045210587670145334013249970567403776856315976456983262169932747122060003683801624936315274980950118979556207942733895551304925154636878546373063455494651804601873911699164201728922510831603148388009186724305760830361338981151301818747967967582770673572067941747977819449606517412046559304888970975907425715258573117703857519786374533281356143067060525451318871479666155527427474861002725867590218142293802227005321511906731738902718651256045456709690861279467376869092104145956448840803087597534235588935484751139180190092440969881862792692343767867563362721292873889254519712928735254703807043594651982119953326518686345197412141822643592366925617719478253381210162517475936430487092724510510946288103850565857269050859874494203104362566981969922396779565363233131118895111525791511412959451937822546093819058750617262402946068186883482774911237962105609812512870837389247073575651467148582072137373836637418040078506128485051299189219056415868809617525613078074843111798591097381711731335968483710217615211621679988454262957937695481217195042398337795608384955699524306919487354718623267454590814987902066499750756866490169260284909181407306490068778973112004070495750239315852540472726580172972384927433858283708007692734179771833070232834141085638558245862622665882220717845446493995720013406623837696916170023710966426343776831256748785512830328550874522599525031718792212707264213200865904932614891552198433494371424051489851349656888872025653897965511079017322583860799610497302847789812228842181125995703140293287510688828114822647243395059940759320497011134801064765852490040069014761092970880386497808577208581606560377423585547172189416227767911972122294370275029691805790982313049044677850930097075594101712724062555952311796676463164505476314786257715776102036886770066730291631461070129241307104333970782038213879739642092079169063709406779711460779221257719219842019811110075057196321624214373395776888650541181751701418592190182066627913984483612849590989799700916072185231503311254515880071013322129048134434020339148653281968020837817543996982211496925907834118886384099786687977774205660657717873697030681774017005951762581832660213914923315326583064826904480852035317341223450873462460357354754148603836193826806626864224685445771763184264968726464318104368880187202868038228370705123073496401473256196950224255749996214832522047050304027222086227980931869904054780284014689018401513680995512397992819765118302281694262432848717818920368897340498291511155189087184513628441621669789162601606527788718825965345676956369706747162942105276800680493890976730072629483258632771337754120681653797075903917090749052562875438079708273350052315198867923987414838946093075141269300025477813149611749117803730514030875138560457211853042123682373486294513123834714524301336650859294203039583474508783787157901229921694092509651640000387514815068697520864591576922275120684324224234148505429446389401000180166765293243523211435325161471672504908572515269283342957698367083565319939778508573446100890492803583249982435569445680135972788680668967899774943467851734207665921976859768495694344894902724281706657023810388226255001101163834314464780817221070109787956560016211344167985504690345563111993451858690838157000339729881592161665115911652463545379324181065066341151361350561876544062862975333942412241451948744448880311934419703043936910756700208883929881633639328321286645709186087127238393975038228203639280206480254219389808489642717375883151563571624781432310539907840831570762784341884225953838690877296688893791417061991427051623854763076341736562454204539595939974173838524666660071955999109901237382922166800572731845242956664519072217046037408287630349431731910241086803924469279087321255293059718281211046504578841733200107642361394153569860284946185891076768088942965768704956389566416530829201575314243990929624948890776536016795215025786334890400050241896627697967650574001250448956564585156224443791281672434404606544070327461542467109554081079919196890365983366086149818492154830618641895229517355681458939046257685261860376228005886703240186375565406027688167258697983052586190988995421950710460254426924343036313977884136349899770923394492800237834806253805690213741070043745995969424104455424097447766121768103410385367082822941931024077800183124182364274843862440932053468447691037663937924985169583260819255373148226502422627383948960503276746347435465605619203437186912773388554367951029758400321786060197806310794778763039794690207433818950387544695760308247191872051275648846772610451419214602388435854852561278907633682103764246065335021389891312038635151844298615468638986242048934125411266391517563640024691005010704146907383268702334318361638026897585793449160268623859863532379402116977157542621743677732659319876844609555565809113710405210982448791361125950483463734593072587733198594938916679428557572065724902324400817004357597160750743276244375197039658002113290413103683754092793410484237220274043688344679455186337795407054988116497082291559839339351338047579074694981483630067135169721967344857341079074280581009201739266538399735883059572602794251230950243189936154147153461686944478206860159486560593372970823134067668963323580724359866800408466013305993164548759682792141252822458591407711232283571263053755432573119674304558131552600740062316335597888506340399060550211976039530644082038325348008666988860032429123644868885895783423620276189704648874619591923382470444766441550018642158581100722603443706430400214877622781451448241317093605456623729316960449912452933767111810869429102062801629118963889308919201924248654063914929008159714721096957867615577033852271552546781284929589705092711916566517978325423656770766960564163869695130023614363855113941776764502223734764217372765409173191610891055902040532448337713880223789574860256381918142873126731507235320418354728342964938292097551717911995300455495575072707962440243527775631723080489679354249740415563156199144215458981818571555600566632648484467816979630061999372067651585122525940756643846891051421061832907603954827844566832792362715259199654691729165504510931527284056887232048499089298545675687540563493346444144554331257767307663546007503247018620195861204583276010464644887011204081752785159419906965829688177515976496605436081393589379101964111940457523670215105736834282321565326017696634583343341365070051082420159111234066993395818472443281254008254904345667961596690425896820324634977175552477503981147153383095128879717104873538975258722884033870846127994532104401905553101567042353548002192313543688909294202089682986593091109482028472920463540344905208673533949699473626776522591493942130594427120656596163848920299018776905423490896344393188660188436663437093594924229968824205396316511600874767678737977605232780710565591383503406710215775864898306056276333843211345954093771539072055029269411838127826404647035580489906386961759142896766151209929798552075898242643371682208256397881444323082178085632195484869941943622844783980738595714736659559719129766333520096072702653988850365849384235729911106520090365996247797288888909336214871020483523343381512655876799565097026440853770184073769850703348169708511597880589497326439016782555816286770795625757253220750533645535841940234534430781592004159026444115949252305716412106765888229637877817517094478768797755271292610768228548076829143188055624227806695217025734155941734246860966131060861503705666174618575717736705264571671185308705934271165708598542930045106988426621249584665718452134190643747282234758307319743462162126189722999965338079244575999659119603593672108630269382739656538806852538999486336804596033271412471764526100579500767535753622164140754203624222679607127756877972245311196008674828982273115465062413821062698643217924205657687469720917925201596862481395365504132166830373991221204667256299706674338165323092334525779473574938621051213839431322150933336827071260944378255837567526675446655878308905228735426340822933622094501138469881360840922235633291225939522957848059891128840784292549012361382986037481294565389181250364348730141281858314908151049816224915294296328333853384690374108157665472028740897790304792809006598474258096572522810892810095592659489871173602524789862630239426651204440639570341652869106375448108230492538815586780867997815983367437057519678023334482398053754859228475420016585286144790877307142111202564349842335311344484050299503269633789500005035545089319674896075820190516902885807181570531852552776458793300994674230924852077808037625313860542416963015525091818913550976985481254193345156276999099677939526208622071385622947238554513273442680430109164951715824417423438815474994453106817052746077994270546141731866283817972827997935299098795477219035786964002507128918515309462572221069901414116390064780950170651131810593468707891207314947482615645199710863037242857195248301085732494483274419854007848241344772071572192195611204838327249953770431603483834321801324928227793879802958576195797451194187097330172780029101373824537607069398546591416229612693230354182502777427344557268050209125153896129821684143928541361873111949455232427466546062516275126234154318087819240384509112897117682037665257384771849893450657663853914727634743558534338084582881896170050179503999832653226231203155916248120243779988432690699969668091631766120339677977158611446614158145333915140819098062412036998289885874777492549969521195974655849198657472797196865301087534493433316197898875471248691932381039812243727854159482438523304523356697343429205413422340630578178376618141593577653700779029260859665695016258915479697347996254398443920599340295618344914644358993765621125667104835405125910751117521777688550422898807263340837899654819490886019459345305379493848370116456134898813865711918637121657321903369153796749898464866003877302808935973034008140241022815812657332959990820955445614920679358521228383085520820474684132470255076839557982297615299979068977377091646472071903328390489373401581137685397025662213769513329809298445353699878105359578388729454716742720370198899456267514303214235702412474633788546363582112768762003808539022735221739375463573979290652611934224568331489433722841677786111291648157226298120141565406440617400020250330247054325452624271765310798264040012164722158789710155716852102238441337925666244443532484161524336667403983503130333509663474818673405598577044287479176443309138486690178139667135322987939657057678527897693109659732965539918391924679386193091751222456046006115911188952283015351380550947182215236835679225957470044026648754762724011617143335231433104728158969822115495049461569689248312770693418747244669269863504220815210537396144253526347780479609189681272648615851088659518583128379402363932417715283642645885964050595797638253185048095399119608121691638588705447269642621538880503295410353515626500187782224579907920174269485403486581432314344985190251985937014557079580785397130605964052620277983072992000526719357945290805867573147581482391498350744482488331700706530882767967855638349053097341305191822532776223960257187611306860774463496570369996391289585793046436328289346967997869948093027403501849001636331670146920301690582398844545243146365347902391460894269075938417992830286801401104613510350219903802092820929031767337197319526329080183748088300295385326963887772797379156264255330595320059443870932692594496814479240730768805890721564151766268195640160319969893697358513192205539901711485465969590821011728093837130257557748729851957926227074979043596899311850005884738471967634887803652303072867259524579624987036812833758454524023277793309319912497521098729474696616722410975150232642303490231927316017389729346102749991161243463811222718500291183064936340581367265112021325329938898033858597386207423016993907745584924170204873033975750501491100457437370036234378658946946028869607838915908192144284178585128694531126636350837620585885437563067465344461179026132400313482613643317879368335306203984160613651765591079935192777488788384657214744825179757914823402706605109194017124239666123186836293832151765437287945978126229451162420225725476462832962448052376437668281089367841031461359383539805649710222820843559069034074053027427274267969847683696882998415149517820587941209875057731799971089856762246758501888032539103224082856146553353172628290138734388223527415433961443767384244717548083129530072834757763288065090899332142644771230215780278819887346395309476065169271240374679195670493353945011374776097215978045708339007605467028426857908027008677635192797154412494414751224723973960532804312836066528441999252803329509596384018354526453558523930018261385456349363918700656815682648093575949437520822123953875475874223742028094903768253772328233254627734480301758727692772475405087797475497056588449104694753080922068514103956006610822249165136679149847954845103925626156440168383231400134832257290066776753635962237321880479853855390958997543664230737447818214287096157978351412643123235147289395420203957157068113239169491935170931272567688265330087454407653692525731513831399873214635736246951962992609157909316531385374834698805761108384652190710426310748393917036115806523644902018629022655854092785136805643518468766394765278575095399637045520458192316301386072241418573760234930116214884178489284430554401604122428964871631942384456729262669843237337567242816544368659388397756156297610551748606214642622580904894223687023388902757666847683521470297049692209193055730290825963900246289156733167942504624238635189673339289828339071787479890118778447000131624360649450507570657439271697837770342020600207957311319363980286376518556767591360329098613450158493298266862578230387335341031527979758245068753188449334510417212702521751832518532685759431907275468928358536561992265613228273203417847866559917331251473937925284442644243817571154814395244699236424038136303392664686011236966847762488055479169973620277574007630074653200252981141784361683752394449332697649299304226514095165058944216016461630767216386290571244431702985984117158593146653552961330362878959483059266058352878890946400741264216700554956752047862390200384475576934417348360772987921206754355681567371919277129075060505951947065146512265404032638340033271396727398845664059326198934085864300987561962838802829321753824717664667536767980774778480663817395581386101081126346012485994295428171463746362106778808040084131133995590754370627359423911220313947472558709032414840004898037261407875689828727080948716329146925083372565369965746013725868989936364164182580088226246769789163569655055692157523600509605632471675421943497035755057354772815780552607456489346182522376738684816652817099620708294505232833276844397212870855991116967940098682911899106955579555492350777927529496305684610028417955740318108847668911155458426517657517191330949154413255834729846554371015313766361286230660388746310706523381610705706916266797603883452214754638733933339173612760470819868025031775821885459841450574245972995458806665476858565766993697225029265693702769266321809174763244721900009346916525848254983408073827205816491933274895133720787945329351562312801874336184440690899180461066581497790287370729137018282119020507022582486165365470260816290587966319447639708566458032627271968376428539814551606762643820401216681885217603063288057370833516995356466023881762379828656383592957724167375570218401137495737824689477075069241962362639323987795950697880742680707869711256270922097205933198328506173127784490029001303484992973492348970181514525500410525193441317473097084327569301349987924202628393990645230914783066056942211536292570863733425468817963720542591561514720597604624010901003849519875914374480072242363467674767218474768736984608742615087788250149295980517764676497035746569446945342407117188583280206486133135406564877415849686837274612317392068794779409034628964190923550430426158880075770636262538032106883789176610140457036208685731795818869625399075190788828532558356593041436931112015229458362237497231712640336825919373263431253937422770564283095112374771434284503923233196951757196591444766943201284598221042130359310351404049411681190575689872012682404007819266799077847962321161411463562781457618783542433607103825583287698118512956661158140900164890323796633930875032320558243160593169878601919286162634921810500657835106645321247914601254283067181240096236148214613536855425300323443726115612794590061377156359153566102224274383581972479150167634838913196263857127095167177738119634906929069330930062604693810397593691741530210555070648474512982013834076512844104881778040289320226951628622968026362950003789993657303395801681467289899139326411664294524175099155204097746370258772048379336259399732568803134497391779238857698202000025304831340324057731478574979980054809450150205860988509602910733093114643537204726815077254507691392050029493368888539632590521563880616280582690872797355917405578930789619029867130010074250849742499708469523343855732486658826264422961998306584681042404685082161974227720858479487793132769650127746636043266348421519507832322253572936532933714711815807798167641173056445898155014030460926864506717034201561683524080997434839414598334455408951249156412529279109578919145649197969128875464566785384981181482011150477247612649588067318691570808238103031413224799367851582203317384782641542855274282495230199092005658143851545048136911171081857931580428541515415660943208410358514834710190301750437437441896752964804026592597868905590249062449170253332998677651411981769782976377784965694859563824750391002529485568790234775185002302340739110266228267996462246561558876852395364742598270701095501647933473885060016441397936503759885770464185102503415848485248445826779552751306909509388593579300416231916073111064080289801695993850490607873328054639390908696902357656177802822969041008398902944454874381931389161221485138743074880480641747053070239547318168790646854296759276572053031144025247941197247527116453363165977303345122058070065619949663290435311649772011048303585932481134338027926262934823929627340891454197442127057108219068323621191030855350786585548306263246795755645276700931793350421294160444605955926187292320866184687614924437103357109427076805708626262445925700596901559209957998477376859011624913276793883438657271591298407826830665718855599990802165743869921691806854737310127721319453287864006089636460060466552474776415121349176042114064155911801986667238289815236967348829504952982054036836247573030389229672133751036171645858802641183887087587580300052876157815173897914627368324331601189218518927099845459504334935950399642441427002350637439293651106639035715427359882068350705437794877770757854707139327816725246558037778886091883163692648099954178172675524287911606441809097576416264674194609927253031695428406354505965304715328455566417328257204220388328565325674051113528294114390386488299314488445204174073697567845758959487269252587764855663396061835734517312708274962702053958510056551410737588665288464740283901041478613415537173768708784428947888832277412032188678163292870435585011699509525850286861944088212554276046087276181270662585886941250276957462352724638589877514136176835203613204756906387417870063170280577287056189075417455806054400110931427000542928774485446698105826092803136019876786856010857160545043702732308788783941578131651357586794871685314840771652579421593007899006608503071548833554561399776715083645017169650502113057108973112093315979148000072720709223172915409024250067420071360132957948529589719310130827473901399460571774709390484490770056323527524691047243019888899204307925027707628963777595131594154938960685984469952292475029785455649596254832497145165953028296341460953196011965903514099143512981847831520473764984642825176232516583338888294485323522389680434564599713648509402056407552610250488129469810454550058445274579715012453054390418853357756254329966914437860267456314589020910317179121328753214874247254900905667577003598871628069928712918280233880436743812725502129170339557385315655762883515977328614410642324967229548984861489106960485957861906439059570466381000814696934358762566526772072810872812462268343574596670247170894603596286934770949588028421505624107239876833638127854833289843120239313472714164351698913189416930476324652740291072157203471514439051303151088260804183650724735767048409618654663988549727677335920111470610870037441723550815104144741172873354716192075236582676763622952397078514992492217790487562482195398313935073317902092836716417203167847886095411646765027174293015837419223988586574431483075125300469992907989360450940954212028725250924459386168613455607379038674752973234950077739276170529514582427233948738242243749440133229466345831026841765429825705196558412887154807611139373412099622247545983465954271114710594691777069870160521725512680621688502899760859288932861525221269939519485298953349456831997248445874096534521158795088077215653214219662807554962228072120711477826630721271881894811981170973465603501629427122481569479258210593526622307425005040104759396277302529782066270968568162275343073463637365328682579842113432797468861112197553914895566502401638522084969091375313339235848700072394175077736330252295828061975468300465202503926788965434998426869306811305003865062168497638447410804072958991413186831671137800728945356025252687071598255759624378782416942803442545833826242513341826430756642861825879690714644485144444370622161894756110519518860327100081696768449607696818436784534925278484093589690291053728789271360384080288110626201916913683575475971222061346567137474977950309061308227793489022314799142937491740525130535385490130782868293155252771483819021538844119588413066039507592286078617993009834937435956648325747576879365647782107824602738110180148064436038355827669364542988087935053509738196064987588415104412582251397031094902517602173577808647425258707956545710104299690452267491244671502484444244074465212370448617878139770285483722032913414249573620815310715570213227899226691272558118665150278047937713154322597565166472819667775488018025240238228002823173053176720539436867158107361776909323703865328355849242999447990847643155812315539117787546495608921743578765490733597379899712693987964105306887282605094052901032184638291260512572874960963864067033813094056924896425588159707500796567896865676743424001866471455135549105145707168407685272094987408180190017520451223896980649585911740598302878596266330196790287800353724840258102157694678400366481926869331982191874784486047680686161291913323328314915785038637673500865324128839618995904504310164651343207762674665630455895987779061946544844727449291301412603440791728982045406991733908024252458389785626485755901214805125877326736773228960288640799067725144065739055174589292375175002738679684494149815131801239868769310647337960352184728745833845338619723992460813320211864728982169388059329277615414786573857831188228970127259174875490888426114230032906037729260670074021010013231723309254689874949190739531561972147786173674276829222527454453424506633841418771245716941521769789231111400662973605903529332995855038839717054359199286507782490805385858204152868544823572071050135806540871610879233625847595400377514222749309127047731105979678668235439181240463700025061200826228762207131337029518468596131395338586684908987140053951905788597457183633340370540610497105805081794809182030900514511410796506008950435944575182041227004650951366121303544566044682460012418568330944286425152516471413872494991535104009038529983751144032157104133381382705007579800914892480417938581769128903568437425771753663656088867422969995005849840998034913475497091549062480736353970337549638875782172331400490018365984620584060871195472226916257520268802870690881240131477989112531225450656323570055597736702684004931803694546589007129185038230680336290919273511674835713642939676578698898331348865399675767243702815530178913227117929010232472124630273311781971237375440032337569493541884204570320675869240133495892329959761493825763695543699699575230359813159765530646169108442073512254387636306429296670178477794413293518746972315262922612642878408723712197740833188594314186948808314592985860092788025071519760961642615410104202918920599653548341121371742538384886488494602732392657602404562295172720384681825974883115230534113896616258399815817375203074492441376838338482212030891954557459797545159612249107842437736510199403594362237948667741844428630482115804456465346958064078371096168651699194871501940881688162660176086012651287586840556363358585587528077888636952996856234763115964768460708937378856250382797926141662698537435711344659385527849537792430709580703711037696979330120867229817475816406705005891329288466521623389446959188242686582925229012519830857498573945889303754178272810051813834972431597776010697033892279666132011503495150103268148585125053817175685490018992819476097771557170640239695992147290101884966291380022798067322548862442004069234977751617834891253963410302303762341494490148232267682059384172863879047009475702648109343158240751820891953931861904380973552102954975657710459759219483053766481986719211879200874643112859938498811235675695472631729140879826176555554463036647330965635983794163280404812490981502897959137116487559294474441653718533509346590753592370078463910581233832997688975561493354977322994553491858699808284161137344206183839264949860360856858311708771061644324104116418600899356386845032981094598642766939674967692837583813877133155745402544314687168512275873982391542136542069669107749566283945895045262074146207464821291446017210800101537954870703285831770068695019373441221319987044958581275166220406846867236417148766722724109771166523876148194422437935498559002662176918099913608910392202706791177431796189601092784407892561822502548717814289491652955402732531044654763400457839349738742263254954461949398094510368113583891188143237635821077670437850510799027510162948060846297080629763500552906226179570851428214681071016606156049927519180764031049389300020686401513458729241263555750870549303279990664731728597868459360161748376801478590952490880883833731716845052215147875033164143957876519873490406872655622617397294744267899673641746646371003767953241033080795300948276236238124690929574932179279999306259564218499356932726663977809122525192465662771102548363231070737877622153689374003607559342488452422284192645848427717461981651509976851718299960790113484620614090146763657517126313630014143995799753375059580223292931847635141208729199839973554764275937237251323965840439758705634016763959884418449537717859039746860015411792972563809263820421253597745254682260353319518238566130186849825758727816239191402344974687441503916448632647120482085050073858582372328010351114369750812526554126047873059092962139701888198952026831436865551497121713786167156490031171488936242629410684475301905751195015484691745661575885641551866298026848595445779697119145434670187952142945612017665629777496190550358483524566368998732861494096369591746134993776250862891351403108766093895221965229823338006592109139257361330619058013631027404630748092293492625315778177310134594468867008494232901703226524366905381518903362330372647555875031327496646014364542354002010369064781377564767051658707581085770018045238887389896871978532582203123356858263486962785927202547979669445636942083405761565920468497740218167685229808897068610113458929581910060854317831578140425952152408073686710168448926578324363410407617979268482935208391038271244050862383674526916514458701632619218290351018461816592228548714370281447426907376349364016498457481161854868982272465841442721703707743876891066733159039015869863825660922492229105246242857610149175879845705703309543394964068999168861023533143847664709309169978336185953769097177246072030737200454273166884835558821547180829632633143383013464997486153403240920514734531323989454412764452198249608579729107893096728682589787205216237624819982176888435244539878404147263531350945150477494442742866587313860302149401052655342204762826468362824113086884187800229920911899906248391965902005107308026553446029146023422273458822531238897574595885201406840782602859311340089492067558846381283165499953054005203269656557252474505796207002514259011132684452666197713679565503518103046427581498052464839446788045064981943813208606339777387908734819736657434714117465929606765767605335352502840361367312947253312470388433957993684300251459756685368720646962487910366224173026606472273977001381454503069128810081605393792077715078671431969159706589359689810839902710642946014861486937100983063905706254628854909749525055936366644609313005062400561968436429890254141298649077898145217325867949288919969888098989487029943234524398660326980985330011962357025146653059524619687482589656025196272305176023814396951194156129106750224104780179314102782013537179202552157869846964842719416062579567525745649764456859154067059867932352777789069167454457279512410477811074319967463546955858260735037307020738593552252481589328642792787267391539381910471832629700799952960679469816056247628038685500836179935138780739748243388506879384477876216724386984910350406465671157117390669896285492967161012103029990890624415327648626445157801759963532089839075100929799514312845971795620035278897364610879880865864361977145556927239498386868462120929441186924460756819073628076390738789677096381565881560786652239198310684258486829742655693489876474733799139905788888681115769336456546994575867751245247248144916121092656367116815656469830184986256455167336309153796194047343043616195699189049710934512863311785166161433446568165283984304283374812697454200242328202663514810341780179508863424930677881965703106239516604101932340333895253259077066820728448293607090080903818960877598117850006031196829289770805203653179341481099612174364055875096298374507646975481294592222669217908975679123036769848825838484190960623123008310062430852720533525599679859630169650284267834799880984549355285723228074934271257166366353614467630915129586885351736133564978760440960026085387649327466128378956151477415312802033177098660694627110742854149023384908615781335101169086997499056992766479938675134847282052330981252039544648980510693064647335985491221556952255330908369865067280237781927720246473478374910690788601387346526137306759275807681672007329517691369826563493910014608993792695268267156774433080049455374298103697876820795457452578780479056885767865578436803861728054099083848081123915589330636333333459139066601133807870497581835476618765913767825346333901510287824370804459612388890659554672338186844206304223635443756836736389437325063676679083539568583222410369443235238231579908760697902736332335908316348835797424636656306925885233791347057164027826080175355005423217085746672970255869814123773788067179923676235831380484649486730800726345329707673246003205029658262717057970936016114978900476260884469756835424930284555130583780236595832334615327928248305882986704755289015263560584772683297505430317737589513530363028740006512452154599413076756500026866557293194263010845870444440960153301458737422337421574212154867184668793213980000531206175253889502417940193950285752743793442123912741998341470949216289866146081336160808122213848034844882963067507707375256401133604788848635057021207109812393661439486706745137643849540588156305532723985191382670042144070203809560753152326445258467348369845130185107353542937368475468131867775785884554770607005306135718643427069492233616450604690657547371135326530126937906957909739180228504762572501909093938612867267359670520014877956141499966480168565692839152183720996287812100458449833512607081100881995107301561237994807719790961164310083137979419163647557352133491200746600409952326447867182676850066003787597491834792203282045551739669743921838815088096894927051410537809618326415245738946116720129038495334521427893679710550163953806194561973652567933624109634988948420746004328760860550551499182325297546754046230357064768879517519351247285500459079189567101970329450682451456209123554358556325708784008985452438732190277346841223188743712386158827246973454037306572765894824277687424285270049804030051440503258764280284727851401207806806811677969930798716147607631272872709158858680246741437438416044615783135730197784704858618574570958031521289029424830875956374426112614309651968145052995635736851062196185579421133504039932560325701652295545075688309976826841458594350713062728781262989415708013431721291828994704946240633861322613338442970672876743018634507841010413638017204866944830599269249151904822635450752851586313639877103140026561129234284149643332169775949543717591694907445709877041291177587254964694726045861371286996236396847577764114888459447551213707113108139675906715013993349482744472732937649051559559392558054173771405703446605186515931299908173527353012162844804046940912258341315543362518359725402786164626050660529975646159353596425498236098564695743843575337734186823687824278478662982521359342040796346831020571808195549509627805937313096421265684299943936963020774439246016089372110809523571927362102742983962684098961005959081439517973370587858131165284259935651178804702366804054046124387533068516036560636676615989818947906967345754740595634682270051342031846662742716806462443131617780142670190962634750033093269345957848128370127999848504250825032793694677919175159536812181580349592782973752336641849239523145570598470310541405879678300294805252798205145495832584844513416367147238467902647297077671881621398628843340395543803241483376721712279545210221286463378643106815809911392956498932342539337593185197777122816044021983089853025296495837431878958876676561531406358810911441821659555343600970490778966325405982561401328660735557967002430980589017677059965341183135788117825013264944117824841598888526391901422846937482873865889928601042019602806219353112716665868600193224739647881497119188252863673028936894116027035886118555174725204568163136595742603489409069689611915525858311156177748017234527562571561937143865310062301221999885082488218368240386076661522878396999833003274727600565815461766423083168020500723039972361576643019646767366107663636574571280064448738610375024658322973130127106955650472688046128713445704857221846751526544872187285384896744898790592847474847180138376605034066650104320234877821046792906812258976137706082765244810944474475204686277601847286360431774696693273129649338585764851767638152253053817839956987386263023980893482689850449194324911507038507786478932040653726100561272564994744880456544543553239791463209216138066713215689824232317277334090313783399944342652685561466741057393245722453277314705966714990391082692960442080043412445634264919912586598355146519462774121914084456217752930792028802546208660031605101767888181095342683647694381787195004815165520027690824000924380849975248700093838824445661501856814374559694055115420854418015503618767803426633655436563061091488458952237007309686926322917952217698669918048837051320000683370733224079229896137593084241068486168492438875134305979228274907037692121772018416103975385366782293876832189450943053591810045245169136244731267825547023143836964713850973668128546569975601917253922813461300193744274296040329422804868059773354595349139566318576157471453264166439387759603498968129427682476818145179296564829210770268318960271824297422986808868187000638479050298444009015808455217893238291881661737319707575816718900080361537406925690409034783033463029471573508363096405396729788460872624613642074111020138368340703734688431336604959135578490098651078184342437330738083470376791175274114759950934960836404021783699226281159162251145131393871799454345180957933208152115458020616427917977305938703995148068921599325888133284719562082357537182395478397681413620379781883970308838237356184505568100356819927732255959684518567335118818616953846841753038111427611307983740293517013793102820498147855118248831292913660393232921125824596937872848963872409743721360975319185723492498055765231218948221632284999058730590854789315086257293114109772770602753250683293922495420792355147548757451512890521055671762472815092669524672557575272696414325906269716760759947673980282724340745577611593343151849458126030848175528092127480000548427016306523742294486769502096147478024008249118951473265236423047613806874296361832373581867025208158003274807686319603231691657277300373913397516517119499135741314769811945925608806871857227694276155028580007424803261097916630129751997039144633578562700049510986699467450907691259418208950757167847690538762676710187855608232390982522130706609770228683880231122000993885895346740876198837661067465300738134865595209011853699688134772747224963802936524176431436008354953249686547944784862998602980491117502091232170929475053914273085132234978331397635789503045925452993342769730524681427401806934451776338270788332550492724496485293872069219006405295815000894309917641742161428462352230312770198949499808876771366777331471388735694074641519401386235592598080846736122835833125354384663028619371747645363516369522015285627130781142672278616729538898552699725522179640478838322395907799090917358597181353791462230145453405638902733623847278516568383456902174662556691175233766167560728545397591427517610102730860742432093206192469886188265190238875154613516883148251608987531620252552290089544972716981240111838951291980326364111302149414587884696999493274619518261720301284849516021999850281673401770861631815558432481799022019893434260296844444508989042349993438090226836643963196008089361924918881448330823454962327389854122477892211996187837004126003368295076981710064117003183186476805389078328947792623720215330930528368218200930729648774977023853844241710306692203894459936844854867005437474091175806490137997036685368348461052561132301355935861130793518620782507071572341383304831107936008784995907109249774848500288914544476585196666661995445388016378491649479595844552246477454029137067779560517874466218340617096182869518970614689307490987858728937943401394592279412328377383380833677575928516318511205355916319892837314508350259998834200903249695183386883730953507059779164739864537269961199615711505124019738211318655551849968181187066760458647685664650171717377030042544800348805097034211726080881202724260007546196241923137820953561023866714924408072477956311864316686267789300190103609723552906043634626458585998741305921091413628949889247732436433113509493673427117287436127030114101346757890307656049822063063300959266890397884789101890221948581340622096930012385671891921199403929127195303769097179977897427175120807508525194358317444506877798967849528635834014225603721864336515063158799517463872896653719949760662490085776907274438324216495878678577506902417193892965285272914005428016183583250963644953170844575686176552743744396511664572547485776638911797000976953326100376870498169770936419432526106894474076475515242093647966859010610317883389452672993377842295928502058978267790697195462279166632672978192098185800868648148543699326084929752795076316302032920668472892555601339205029040341193609953132422036273411419836757182869319724366760751976382319949756317666830101371758697312130182065677595484634925876070567064283694092660796086346203567134291358181627155361190562011309366771712554953332011554503349830858423857723464044610296810594316205779413474831111876729525567180628644007604659003195832385252282686551601820124347576926708353486868525492194801054293694856594472268176900435018826392865007485781914083792174145952818771205465617298674587091039547724508427684186557996764582088608896760276677932373972708743895610597494434176289496794056807768031771408317127769893119208721124444233811972091223076266448763565142622577772049623414785403965604867266435852327362009416018158477546333965104495468783933949125113937424569347531517417026564916205923731105450491520403047404718248934488023461906175039555411104792425123886620399534502242692881336138180036914498674791446771637182754974458770239503119906363704655437219460926682113648900653350779833181123639657898217027869421983550340711067934352261315533449286487198990905612772792278266357186115571677383151418765021698294573072479477751688284557458690174780136818936768049912042469031728315301242367207668515316241159622881807315731942580212230027196672740638306361616245630292651476574661960174092581817214425739516656224106306258099630531680787231831602509384519976439777164943695736796097334740343774124912876909324249132987134662187491776904313400388888233918516468158156322464441749987038326534226006717564915725940787852357104150163847101642146581049057857104040923178586906103549145647428300161987504994474225494240251607575139829681385192819313290482184372456745709731698951932494005243098277962255361504406641536985582363644697074578909653843441416915250479781386154149720681861170982328814777993508165687289365735719469689729222899829433800159455999718733422786789017479851393458860307515753475614073555918786158690945225564740516052194038803876090068350325347608975853860254216552028439277872030472847475368132781603331647601579749272925274297250763627013520257920093313303485427955630820689794907893888683253164949288057695830894093950269600314235621794235505242593178797800999366010305225627335217786860699586708083699256901428704098060399676387087062271744850659508551912275191960883244860107779832452638561581016309869087713437668569873991054343673702504447995113506688469163484299074319819448035702148817616229529083194877878482581574926267725553062363311328570266987372415915440919266308251619049574225768686049646250942373246626079680836576213933068394738279449580379794512021030588905024366241250373805743694221979907191372278287221740141769904891933766241788492101532051029510731051218010097118862467854806128489009885405235560011573904819568177929010045033222306536966115795676010934191681823611919268878316357428334249104928434346173656764149231065318600350862238483125735196019018224768962208835727659279958758672260450697125138584837992002744228274103783259129825448130925580155969494364420270390291103419637479063690418439496882386596134156447187867804534155834597731501576693363778046285806289001097907894692083439602175061951118872698522212438584581772001334362578856659240150643013527296773162296327230903970195342523195952128536553548563053326692465565664811192773526330899918382138746875057768975009384409522869402620393322487368098887392859808752830479777185819129069233156948566061293205143598128106365048237845853701274878357920917029580474508749037342358608787172531368570688117071028381187194128420107870733941150728163825619058310916222423321939352067172749786545354143945211826620022476956800553103293801822211172569339744483147975110287449788791455421183664924847685740416056886357877760910758289354581493923196533862061543933914801940026846294402660931644207588653628978629747173055796958200251378398986101505807475730944283385841554883629907869199937580777144206623724035511137003398682272212211124659429328154224127991157903404734687335678473530659228333171956698256561602608128185424834714918205849679441090803529278776511454350064475272119728218530951142791682304936519076744873272036801837439125780377495650280583934605809280493580821373356153502280751002311087626969037330292614243573646736842187261273117090765417058594186233333637667400580237206855933653512773153516889457965191658328956073066468475043519417249083129208000318237191302138050427345061466057122956728627328638952813777430121721519698886521643074387647700113899172443679622509386736532240069386619729392258400858344867281231946286169167015201729641256437454828927012670948993894048529181258681091042834286048835783314871666325173864841232012077573898672293282422584647930884765611542339046578440275012135575286539625490213262826864323256963211014430275190203601986210396704761895368156964289584663258044745042672302300517249954956601117543020790666222858082997641116937677968349018484334726726618894312403736920876120861299364129176414672958768097502682884820981218270437304607371344394590357084816447030367470158523265591811904021158175663711375555059958060878588777268931483069170505845841413286460306727414504218962988024233237038412238024609008210629844377694722413559657384001161475972868806422182251716241364966328626620551891529287673669783701628997470907733189651858994604870860995367451932886666753459475433119212849898749616265495934645607575879811019969521309235897689779780175376711145485095534789921035206561450049580118596164484124939214808502257889133982784169140543582480381861466704415488591511363108511908833006176649610123814067006612553076609448747936287433614593795992883933397092311851687441898610948094949499937869634356826413772589582004220640534359497630722581877640925883191447256519224082242519455433442236232209928933037986884391534748051789498289090490209791392502241782813988926006250572388120700144167298051453027857199905987108210345054775977504298875461560266960614978960108799923617273508466733431042438614232083290618913210586848897231221531307143115350684236323098746946771324966449716500845495785477456579308265464112908607569738477278514492120946252031659375962400990620030859927185851836408569152764171950920685326673770674872259611809536505373711379451789216694827439398306716883936192428505965179021574062002027192322449853534045063444070067578340243192480969628859421487715597452951091531151637390284984869477423677585037143249935357323495976690715149114995453271493380837165099707034837332888433587107448379212398571522469217366590612815780336788693012519465003680386920686645965724252590991209230792824784853088605174606481611755165628449457897476395279642893901099027186014440462635679852791125266669864986572110531601523626763905183597249147989135978020134630445698010857469920401241035064816999504457841770197069928683839690318620917299050537102394762987130951755171546827100343350640317172075464771551107297334370313313604095218453136517456680255360425751301450218609702276908640413499617542069907314329493444322239560154153326959552591824862152053080913275489979978612898526921996950929197486480210945994715096336224126271143847285975535276341419167281945530183317571696051348596594352148958032224969969888111956449391839150410741304112340510349078545106893195180194379504485827589206936530619342283269527774941787525043117286616572035237000894159975171599097738707702697652778744304255690280075277503184689891525112250399417520750902260896333945712165612390269906321329917519664026934267148755280702891855890134681712941715152845585882313971824667090382912106702276041033083600774566411118019428901118990832435842924039253099886029229451832011941794097603776123365120597636114089013455540900212023579397529847128759654632422755040490156904972667866718374759534477437514570944386927717185539464122101934612228969684497104361135316322384497287582180097171348135910863648979326544294015668553078921342107892980501462265532602483637657399434615795007662866820962652435130337221715711204067955685502017152770047559715650878003080102500848350369967802426291167230100920791910690243374362638932483094679037929888834812577947721157816157282915545340797636169186661236365069369399196090674894269361413185980219108113369582473220926384786974404387680320847740933713849724431569645567646812451827973916520439979201222877828470080506657694931214512027526053675096665209367249795183760493801222967551237549850759090737868153187526355691584363775515747638372170271900831416690535870575668304810020739299420935459008644794871644276367551260014197599680197639462992458649859240267838661251920708706727232782567421966302233781383324231295896509343651501331383757180102856654194306794455422592562026535346565631078130854873930136381324713073317052900861667073414565473252987611046407119706681347359346205466362585854474395760965428166211413327960910187059527183344752302687943268328429134323226734713706420152542962217899877934088955984520335058048300113280463974455656717327897698958205639408433646282793169271449747867256914121079944649445646957075285708988642788973912061031200230393688418416539122257136930604076364115449723577485740276458198639626601928295151971717668808197142420078125078112457236800306412843862156512966634523657920945349210474539809311849619370569890778294439436585741102015104467247888724308320185192138654097895947399569130988049946584832603951107503067417773923720029540623362231988421157390702334258663914498493517631400148739932066047283808363125806168250432305106337816087825971946237509625192729226335479303973091797036075637519797285421630305216188138877671951773167145199516591258458105449633074461181332114552530055657769787233119769254852043287803405916869703830038452260476008936934416377266031464639699350648066301079945002847294692015162574892901335262521492782346503495539835374148948575909418071854998636892912616284646673756403266355535007666113811678939114016822601280633400744804301130004258748335760994485504294032112005795816399875222520725626173479919064006706193414033778489100881557043685617914254082033225250729117056779789692127559153298491090300435200910251491982968995037695664527584216768460677946285100559430165400872717911718210547928878962520795415672981260076822882586449227350598178654792761766991419083860498097612695573113139562557816546775377609028629709421538949114794439765162528641725116491855101635100512841101934901904743329104336615358905436433929708956786765862787995083102875298390867328188776487229231581193395548707315311784257507571234043024148339653609413059989378887915077857363180848461594253193541537094768157017894402337217574436038357378703545471404961633565366516195031758495299220064160094099198785922716994580043297358203408354296024904480578766894758944677825768876876255850420818787633621034967138124686688421988373293964918191282515862777148672620694584342385807810839723541992451126559480627008408021475780287075328266752599458414546118288011803950231217973820425700045167532750222439721547298651451325034391467014571482695578988339642347481303554455399046760236421473980478972567981530967589338807745593505858290709462664189379206607167345692463273895103392731834095062516019754745164939226637216626956174728637572099026108116437258630167868266266899775457433372913055436511423240868257013497480836101932019329739461871245793873974062189604077760253205452107183097161465243066354888232729132366067054371680069198177086768246382159439489517298251741660920515033036692351596889245159660390974069929076014412367220576561733408687664975588758585081807647624158545563752252066228015187115550899950328602473885356794079131906828433379763514073766775272158884676853941535970410603508036688869801576546186921911114587961191936593153968691713463055313662498715800952407827671655390190652754511234469022599577691154227352793530507007437129255852482106850735257214052842772713677221132315234906418116332168423996321929607193994423545280763583855821269759152422404872762353293689220633524850919966091440662878306262483789045563551777930179427582580031648126264229256061930742293305700223373445882908770985172925302239385931971119556317016050621463600111729922392101579795293956859802754445206903125472406229853643068984616607347932777302069514305848926009142761086030337648813901028192121368561957099064451606159957283070362368762418957271496901382335328502282797075481280008819771714992269646683590046280560656961891976637910500836736202228210398806916308522456347165906890735744796597260461251381501520720720976041075551146922453750398434520958622255861269863884187497685733676724204762852545307290218014229238024005983629709378301863229530196061678935449295444192070642580632100669596522930779330953091654605261859728602915157428871261606545141961337396673593846472925937326609306587441099625004007823697024097835202576474682342737487197310463665625886997622940774118018625963000389581744678209273730825470538847927046284428425627341727468040480564044081660044247019644556725775258215686309855902981141472073348091685750173589287637156320557165963012462393782398904506480121162794989128829962854926308627352977232844660622742544708457697782553642840746902743332195768751474120251081311428857389560318442255203763299728346666436850788787261709919486392719365678371400805450943108242010194445721803362093219892632696829743219866971194719829878160219247049523086744100728105088317119665159455756658285742426546815934827295113211940048018044038733733645085783418536807243555170261538031672917103944410864663583468798317794238793124984916788135909666645135617992875071972435881612069946842746675489287638250854049711207709939062112251333127360418633722702725145930333517586261727844429620297369931275948792166070136713688750195190679412514150641746446707635195971149771072630802550105593696150753844894685003535716158031061591235942618264254889528132594027125383828719188122024227493506975840650635325983698382580908693963862681453629428904557378702905563689934954362570359298030065910611921453484740661552540233227636291128572744545035691829922920613960158737020480243138402375259713940263269442330286956871308344515834901235469109682567610090989528428046581636616982136065337233990269239989443090148129671848670787515964654473117310929549638687017925547590477221614171996703349677032256325134225729993596032304515312575701668808407188450974540420422883095515072507170753380134265034549490414313693713954716345271607048745536277238682434103588534984333793000963404697083740449280111691093350792090063148078541891783429043298505204502656000316387401279186444455428469222063599332823311222146741630289992579670253877768822266163857664888715623694228856723840301381182307898185881201263531762255015875262741119707345848669585120464525233732174545728796591047883240429371340643250441207468289939229631909729232286574297480383229388069008170790618563998398559255783174168683158662104078835932503057942846931249175520524749692293847829732405709148694547178100643029001476431873337898642899014234401784294858645866317252048122039047560390347867633879148116362556256008904278571576576240021444550964613973146319250497112581605265682819414142860987164075954614641810645703948999397041197619877108629954809020911213385894946367493035202701265870802428652472340703148022276183853465965769291685974147300508075341777246225865585521977475044410146371677965582037286759610722751639968678262532230393411499725896308031705559926642359561669514057819980789097205572220063135031510702963831231955541270050147439601132335516696297436157274258613409067812371250904152848058465743117350837902636189589866490404463968116014388518747533787197396581184661860433565629886898784893721988709679050949689777388789545238347343610677453904465952623005292933426822380443085524902399213319835291222302623135962852471401672100542615229887699484350072968584136581640680632345753686771903761467503954544266828323285914240351239429998939655895288746506813670350055458266354931082828518384573631528567856454835919928608789725389230638945587209697970123482097084374364331751848145494900858473270525787830860518089307814254194048827723130419243613739435825644172420429987658529581007218995931897621423242845570132159433757771762768354109326962752313489510124078006071412789226058950728640212895841225006083583354832345039436729550355985007642773278312445113462232911768096011032310074527254608723852897092012747908115797805849754342824787419813211528648808052249574768313511625915932186448819835685663121267834655996702322661341506219076054804894764930468441963169022787751160686736692627962373923524495888594893781725326698980881336080905088616203987785010408482506018195133002702249394056727854089527260355862526975625705951587820406803467927997990288253191551956470149439390326819751111323394633718239056707218385084261782859554042894875632358816960021352641354387724104069565982455270737456662972800481174562086054673148325774389595325716145225571270379909633075400300910464258858716807987211166312821927202340261832628885178875394446190053928142030126121591653832438988234359200798725732849428469189588038981086484738461479861225523410541502338831740501452246874862636021215686725666566370615403201207490746700973346230830800830998075587792775198863680525752097891993752288886462436400980591768049595315553196552223569992991561119925215321182943976674025138732980605259457459215452022269180065989514870913306605118154626145498329149397055214624711626892100493361745699810801166815145083368192769678606651307511243376716230960650958187806396732276591593521072926842552051524302951715771738350657014344682387652274420679842313937821331732579183701212130449704108572902246212916500084093396591402109065104203105203884216246759336393380213467032410925742978932913653559526348000993644610039071973139989036326950010291955468191503080649392097053618388750478940390393423386179844054738602678163037889428542750204547248178658090599352027447841953904090863799331109547362606533777596382601682128021930670950781179357443168363892316245149356326462132719460032837644788350809720732736380565551959097259269437605589380966743335483687298540178204395934729380218299509438411501878661246380880340678859961958594952811249714584026814367190673277747299946879957484857770253224157693782554544910751359609816344858227248452960316387582524046849203500271612749487068292304342020763757602621002282672590139681290465679143159677541661478694455829125671709452016910016770264336964355532136510557086684002086608405251282351551966981813598758242558112095168062042152331951478816701201258515947124177257646090316497858711136782690967525831001161991260957617747171320486430924267045208884501074433742441353508050019668175164688788943926731392333586906034822416028192666957592076697597205082425450720560163772353590740698098681327936614368050600938279168723136018299551241588628583314933365337845358789052366474833703030718755513541876096193425403342864682504495476367014738895463847726772485185249520410037923364802593256279825963008215677938075039391511043325737564620470549887449339896399445329552498032916917471790717000929167579016548617601023981467382674759537124604370374641345447790793769109592623322144660737834551010566375025076791897032413441297974362590380977643588357757614668489379387536807235085676005022768497718635226816032483895307679953358181915151260188543050161628822570168086258964222568081512158761345564867012611266040927825194092041954025977265044520939667064027711316395900403532057126581100863316090426634058136792358983220265079568093998492340232378960647652177914585105699461652204151266497114165773265498708998272191608772151373711090496106100108185050029784407253286905595950879203146974605200044266528933542355056209670041335713965017840836287433936375250757140560948148401598382342378027487027482808984264708116060744564540707490045594074450738290380831020380450173618653871878440923116522927643110234593161794524020381834648008256322345151261902582575727850181053761680185635191712751035600344266593964191815430339019696994477007077756349858760212417837768468980918053106673538811092593684130601645366593841004520439987202808538346272936016058608821452486681453755710613816817410758732212886201651232383056502272044465240110114911995188618316459346146158591383789520038309686132084659829176730696928586049985163409590098731190706760455205610943591741282943531947547755138012092107840537138747522804121371092278155411733460643305725351813079764269553857590735630946007019820376153492215866546433465444809321106098514458107191708036972835539727883339940827341265273450519274592251803658920736508928941792757979379898154254773615993719597763622980770130219112956886758654034750688331267328840817503922259220037499108783330698830211739760031684738332363603982927851579777504279055983629815493107479608897906332117870727349700359934778784779093861480336470596564840459915067858675116866758532647484550681443881235013155721273002935057830172714116734732212282971138700450753337130595848765982474359120074617452414770470438884633689363956165306332339115266245720941273774606930635332497339265338342180248769844696303061339425337707903419899429700441109791127666316823845354969479083117609967109293295328610385161763033928408235643996834659186890357997576420367202632226872522062125704087259750524114537419567469178580798174289156295160940783417707746062470456813848152859065764232023634596030272119860042601677819312547010588528985538350383538397188948189898650756822043494176867765864485949449163310756657666328658440318089874773739407502227289276183325131826674317452769746268004130231131812852126387403294976847445898718446499639002807518192054078045077362331949766700770978809441928995040412802444429531271747258788768366558488375677167991096238917088340376573177531773818712791579850197079774506642744491721333743947720510414190923218543891117152928425379706444648723920445413036105033836540980447928202926219769577975922048420616192094713564451737108224185396853281513523327068127575581328356784770138854690378478918876375366188160122913906522509048065699355176695820466430290307713341302952646376388319959743618236128586427193257942701696070619344824520339936277495941883918949102015797789740000024356420622733419791363608797021373050202282205750110620071754029808513801952963664059771671865736236570378991596423200057481781161829585984256662553616165004097914227745615339098720843633720716527305989627620172510129134625943019276748731688922115753188730160989709902282890894214559429859442323671440805216384133907931970636520484835128918480351645523437780898345905467102523625387157947688172104079749223349551843713159885372438528687050746134566357334765242733521338925046780699666488537723009654886000004167786601220493473217024908504862445260042288178610534956448218533652834338562587900004564549322787673653150306048512285921711118096620553930057635587615093140978399440688506072129966811909948793663374174183146557119237795137187820065458486006611354767015674689605525528471885159409518847758187876399033226041685579239909212777918358485095308258222354714094954620911115657973299872638733190460122187875577760896221890066692555983370141152663096574243538372703464790689252076676107348705532450730134984738757108120028942618465515676896568820630352507641371948156381645216106870348822142005531252951679901972736034626179150553998691240233110105011938351924696692379537391272783112247562179517738796282952190469185544430498310517985246818046122341973781629144375892768553428122277516739803599402286462369417264925482692709982205170046712673424389692924240724294653224101409166954894339774534396079242267996614640472874371279912224422815506145129887295333220477789639780382588392047150048809098357230228915436495879891336979979572862839684925958007628240060475119256579694827419107446130489435566912929225350931679258411017655398804715228417847042737564042465020682276195244401014168371099225458142312809499061047348006830666949189251346778241163292739321847290570821338984608524520961581715704895632169074636744432610756185363275416412552827971240592703094408024072580944302726490875193067088719797374443790937250559456831918238898472761057441598494877131728706316759002703319445798782138895351196092865698994918877735857611234408700482142295560557761011719590516429812737819172606260579566042095612926316865166870371856838244432933079942319317506571007335976826755867131228552336941908918804645880205423762788464004436148494768869895759274810528950982921820606293199599867738074613329843110604780613349379527664871595432202945594664586427382177248913641369197327097901530870461083364195831839574538035165111979526555002211956987124477260115375431343834580471017625374351289850230356728750603927386862481992096077615653308010996405357073430519198911863158279235410190947793194144158653092184968022537191962392663001031478858554354278774939122043491274932821048162064768837428116620312164768502536211898665996078267622004929748855680118405582015183801142342000147007684471942180962776359042666647515948991361361211720953464827574833218275632177215513952767911940276919435426966558156814831789542797943872058786554756109046833914962566164925970974329546224045701131414697607604679124397401352100375484165529387413971895044683995593479117159151525334533749465292669903467023509639983133365755320067656920448433374621390231452034110363277183632239077134394655326832323771863133727173484010925294557334517687250497077287902874962875211706810947628322028561510732934986630989738777778999248947769203541470717682103157590600841208374936300188170830394715880697576122294537512903184918299550472803557979464290286613353289795000308521686033020895592628924468634720714550077952332334538077364692294136315110215017295318848997090631162938793938282205914059543577429719835734879966258238627694746484938311998079107758491128792407704020241926134607050405032670203585879711980871120232630787695752196263425154053351414937712846583396472375839246380246265804012350374329453780223532645726889618147651101358955360769149551720266460519481382394100777783959549581640587139103073781180894688957076982008256916800100698758657854448874088558833223458901749476442170745860828067729884980429758286648560578491953165327879332479067656326783640251522913105644285796253219474630132639444815496534161290238646345262294560693866082176224354380724263750201515259766164359399820000131367413485503032930686623110960526757728484165813229901893732597126441736221744334881916461230321060221919490928549841138987944768018998070030246063854833245329537860792188910945955815496692153723423508380809560525639001412076628704000948649804248226361843380182632953459181911457577514704804680699513263232747651678630671586157356288904972720501959238370167384635575836081474519770120392195527403307149190998167332483662181592750559091308811384154227598596412142785876558049017605762330630158338852408192136872039675263301939211849673701777181461125041026803279121885482064162741931462584793109232330170448812097745522294814168854012637428162665983946570959413786124635131315695885597852677395409635923044570109782074084442829065241939814626178732281209211533426047485576184270589761004346358720306262894613193583744448967113005815666298682006906230152384660198915109886016523417771218126656575965331792461369359564330521347236273279802008068859174889050385310028195466813301588954970812781907266871479695892628323551362261042661608153860393213160394761631437434630564756107670396845360385400876628285878914631076466419457468634108461721775700401786700153891905116230816744822967638371587211475392916897335119277417784169823841611263395487983482589484049375580635204969340618756446305634178379288399700354005531696100264754809196298768934937135237521885798952194345665026865020316412438605135886070531407224623763262275407870884019702946584157908590396409994740380793599521618798782816493512371528142929468519473545247989690716111650930326842583914623119086480312832816884850672228725883809077245314910906971026845271491095278097536254373429576059632289426031132906176111197044772239209569116392896094605536570122858221843869106024401621680060603021219283365799431298628397427250350583505573031690843926388528497383749796714906692591103332030533319213479423086293867556091429447826630670027580244302876512213515139644486234237125653675502936223747949055237526447084538737715744511561206396048062801454329390457183305003984419894410072669924256579914195390577472504175088961405244937567641328362403699646210707602583312832206521466156258963732007056749297011053300307107432048301235696260373292624949086938819485098489803849311946439690550599907836446757958664312783777960086995273835904007518674929223874472577894753097552872974091985018129387114767445789872526269945619665619929415836606400424528527830389928745780264969129237284856642315839199222946005076833598657383652609331766903253760132285566267900479641189698475341712970993842720530852694210277203685028534346672775860724091975762682333374109619685060678511578999434073844597803963465853946242593121641189031810221828465341857098265796732225868212440188831710339824837284256326616653770084848484861552527577571018802561778307921446386753209500197638822674747821901145415072290206810044115780670932771965905240672398965416581798522845674606289329560727691521284264999265298049112804525087139826429638700552036800673160945702321960200362836524722709442592352007221398093541902123439791980253022708736786795056466254906966626597588197102747667889151244327374538643950469559030261792017119634761944653064439360727365315972314727370247126200584326654052540847214496026403172163611200727906081593675124690575452432731690434374464938462745771965224774411881098343712971349810615354081678822141021241290880890902783169905913263427958772011883352798579758088348298531689333276599296205990516708528927817551554621688757310220657188434825406132526134178502204927170673181455190742731337327663832859348494461835686233291301118195581595302612006006788324254637001939382781642548984499507364657693880021138416262102657831977343215719626453024562758878791042627603724426987298088686482657851469123342685496482040060662782443865400432705346978267063263089126656768236128835909420360750539530001692129285156153876766162158718055110909420842927075035836764410594775335802258364417498344491770845373953773695248855624922411447703487241616958185701286460099400412649265394971941292576909937976224726959528029597757607119391052139483149268949393163468644133657588709650790612331971607240746749860551068258403817556682451358849972942268714374976644664897582516075015922453280477443458758722695530948158796659428249028515913476704948676277447881869812372061798295122021815093469403830821499681916266001129708061846976710818998140536376960277119617271002441892604140659584091974294978472950643027822921742190558131528409397591041767408679616437652745030314466405690205772987664999522421547905666581254478563449164711681200588857442323699249879582582889310955671951859980111018673199387042490481209223837687560332530770169799264331817487229871200718971146153711251124819814834454418239791217664686416906674275764732802706568131024915118690929366763315175456097695032913182307066500568848689097137504474527250105350365168877349557514143616150156841094853674799336894466734998766949047841989597715416051624967529693379467531936368402240121741863481257481926796708836315832644626422934991717084662265041126340690863860001428732136179889756085253829421861340361602939217249156864549900451137010449632187624393434251023579304194262461879878065082167996389245940602307893605652011550104605802330082177755617283627231343764520431377296728439060541530770212955360706517020716881378689376034635390470883604580989007659472402110540643703531064621311739875874370052235352607934876476921236862180368396761814077434554631985871768073324395608309398156029458758200206081095649205488368632890970182658421754378553285353371935383947015388606928649840103222152719673155897889259641783293127417882580867226333061066360582983712172688165182557642354859357890138039194085356578343741961510791557784329306538325203814878964592630718605775517458980368597475352595811298988584168589107878864472986202399498674491601663048628129508224114406515758429824035704026600541945734580826811065505424936001344004149487669525615061709422776090907643557992474327130175400717653861922870568457543457388610188806680232980098042473317717791484000311034791232527336491222462472830916444975566077983584267736022864054291037989379930468082393657927760619612888884736495459742033301709393200586926655278546007640769358366812262286378198423536542885367941831944976585312311743189776507227131936485195155930902955122119170217692674886247610222335439487680904016107907341762668089786579183086111139707001108653962947871992172938943261513241149222872146718509951926085541840023422731927972685798627174391641204588353662815356378517066805896969465214880676617263293381410229231793115522800841111992812892714720976543737786345702550166726972960677068384002267052875458429663163925320919470645966314705107594987335549869399414763279731146521036484133029742495633618084735496349840124132842943355244517740221250515837515078822011080616708147271176815779341481967116718952929110094910821383833309662407056202750276880073011351834707928101506013880943163607581328213581130007291066989599043225105867451213575501660120199979570032902670078308634151202111752579691833775405719872883232140965388723311014060568317872926397442738499748473465192670542146254867707292528897029668429852963651277301759677064376529503489019348416783719111960416908529605464514025137518633636225873090789081105285429154539242043947356963583954845503534918467239102475899824338411625817529155173642699903952657361212227854176749834032398313197520198739363034931988063432689581730571526942995641672216186587541738425533522735472216287670730968175654737389804150806950751084292688825879277207192198722955433592632135367317070400994998616156760988630817519277764025312954997117574116112206245482672586732021334289418099366619304279924285777246612449492422128366275491314074024146468772600956761647861763518650763823591598660108987864075129778476218811948339339869298406194394405535969812143821945982842371433367898791984620983934680401340713506469750635228647173837525204763231506631577259094719147733331427168129359730350886084604034009446375297086212583856257844679162840454768499177252178427067140630374096070525704017104585734187759714983611669707467910093878065806403396364810099836249701828610168353313852604848965015906899954031898744077462536106433771665602909551610476344026631671375319967552422132232514722026072759162904019786425361453291830132378740136583435123315495353448569475618491367848122926226972369932911179024711196105574821810695598639000922283973849173841008998140526327615096893828935300877826711955874215949560757889102885689055924899550026269090216091307233143827274364905628602323695284825923945007446342359842595176482385773352859295999826459464567865224404842182084004606781135735129110590102265768500929183750393136334285925109100816949419837497499224450183272606652707519220961673289001477193643911616029025360100499594256969678140638957669568307694921484649383125148199277634084832074796400526866803452766390850307670376187245402628486175711550892494776588436975592153056712631685117482824377329392297019575804131400441787357422082998810937714538946699289504519659698706479529318213470844645619965825667059403395250962289298509225484819466258265426424775180131596507742256349132186592156502235071380122538472111909116291200194576251871045801285254388072038272223663668682701557823457870184157034732183158428857383287437837211751846275689403507927396023197373258820229260643661755992595113853507469451476285334597771350359877103565089195678323688287346068295736043410762725840983686736450945456257965816836844116578995285276427382037947075220100988929258751157932610627357860844523129882381023269330187226342390226887181880793303257245465658660867553551135992208380833702757412266356802329299925761559040707246584483076897183621641905945356487775789260660073851601621025156090487999697373624102400905245426240194124062615815734033474359398343501764412190457934045255972676118052678651668960817501968506393303077768633554095223621206848285782323828289647531245432626022689618009280731400224483742765244548317754328681287833096314990259830294606693139990363201133707063672882122523694735540279626417123224712913875624000483820392387888877108857771843744886584551705522191225629087781596938372200353807798471285825431069949796779566777228435780417939210576808794849707050225334109711833854353532806101446440950375903494971954792952314032772863860442557833347913305710673692536026477241617726855270638016188235583470239364592477295272500398949409594837973696017076069760543149403353934268019616367338991946096054696890196588520011451099031980200571833334115668372531782865280936623498401568182149185023002300546755071507299145229575895355640486529161369069635275804262250227445663567768504334345132148388396881731011742999313706803251866792855119344791110652191689487599319739344308033001385320237959302167787448008723722506498573516697934625699248190325747636518628577923985275977532755341707620420129663554379870188914311378198487605505281530309878100004255058094256401695862082125730956531142173228758346347845751268568018454020792822453446045835356222565295487661773698051808372171373050030373523552143060167707065185962219557893562324551508901529584214974920905928881409170820229519683452349932776969715168645556036626616520245036110582296730651725826167730044210119566832658435845275790933440184480690920035675917385377707333358376529019474317754254720220363587318432274595029976672327469868066822573328834727137925233426082715702485303518664777125926434396594233271489418664604682408099669791953608168584421486291828096369491741922538510551689889650506668479931048342371138323724039166989847623443892878656652370419163677850450748650022639762254863175743651788041253161501174568575014485197137450805975514834661461279865189912240960420494768608790809709193326514859442690421662220577127176343291697236783969295403950757441665295315669647448304259145406153486249620861593418074364349420456782723881042436265441320293411510977721527523039923210053054366373490717661229328987055531422881490134245847095531823648620024720337862849082038652302783137940592438881130488392620472372432369576192707298351025637149011259678085605299645265030499133529741008189031468866561350156778041562940148544400156879594490724812573713113401565611940955647811884506818753083267365908107219197737534198091093769096275677981334872363852945605222927933473742274951082421840814422569650648670624914553514371590117362526401854332786643990096854093214395623625389888171451314314594826021873157351171753661453537524908519039216675494571851164157995060685852995059845332766162859957235508493256079407288685308243080985396902470490232405943045561977593743049670519205468033450829097146556223098904942457518197044307732611782331756747366413221050853481617969899566156062096540729403707539662899679300574276728408502715083327131114732008631825943130409892307061816417897525951260340712430659640783176329004698247255297913758289072979086842435732295613772802563515276175033668357000060073649588125688629717714031889738423432423554510239121496847312242814052410147717078139279973555343276155756748006217964424109843878531077032765612162529502517301520230627039554978639190060725442787254567336571878414066167888038755016409096015546878998572147188112826840329007942573909183796338546856988163873257817412402801960975810434486106584374934091150524999486518791436776576778852088525945525175536578857817422591226358711055192366003616378077964639081317948271431147417977430111510955418133544991665377473428562619902924372367250295746987152378188906748576354800286332457827509084114229104871862381995414343050293664681611487777485607237890817098333073746998973802099456067976957303979379288099065457269066248396638758153587638117460193303011079863714958197058950074692493012822827625222280182767625395366596432448693368858135417242902580002277914958745761701155710074411855276716798557464101240728721756477049547187341536511202510323357656809160810667173890309989520262986150987008428132940300159315816352123439674827346729148791621167693656030180565280908242791862397280418983142571374631027305830599147684953961029297097482178278149127196123781242049164271232558146211360674616008828495830804847033421341645573681014546545807275652318312978119457323329711937799833634573008508322800619404175417893962237037703780974594364998196551601820605611431530894507250593617885207293056251579964916388196349962444708161957295498587961673140719859950341548647379225096254207041018857734819864535377477562461033195288379923459369105013785455854052037289798698597680525908966661301814644554688811305482152572294105561193043106323353064075982718804134495887205989287149817195264833844909338752167926070442884944624428619292632618937819087419714274175767206897132530460666466880996855921718374258706174152281623926820657834533127846100368908533503313271908529881282689445831243113885266620862702729094388980398778340404941349308074723233804649326452491502547386690798340789006659566968050962204022834732253779905824563466474497079485357982069949593327516316769864580667280937722821450532236547560735700187916239311585329589235825991623365198021166572353112352253394791497871995275299152244736213717467841328231537218048090505743211572247447956507430458663243610937734582347302606286526662021245963024557664964164047248333782215937057170825102729681095565734539693358523462009059175671687640466307811546182051857308107522748742330592344159027987947413569813380931806729637799548961307436850366332321315338779076944075760645879938878211630058241608389651326645563759477588202115473050906112858992981128782740679146921307217434204040126184739353569996837501507429460776866334270112283713082111070989162718689437974895077435840791143392928001067585833523298099983847612597881621088918267267775390229925953324750609799867119076980112407987269143420803848699892125192215854117109143223977791529349438329856533796375706572572119553148072486025892049818250808516453492603221309478095012791256978707908077426674445730901104693911181091112205736517099554618353667996561361111798853102411723292261556811508686507378671835859546763405464463844308486201699295251824909477084243179267344147909544826907195063903984872280479197389315787778019852745121130162656660839890952533543846437579203108000307553514929024678453793396535903605290142140296069938705116860193603257718222903646268479287455896313829984031292926410673958458198913556875140607542554958586516787832724736972948352928423378187173066388464898275174900713793128925206949713017587260238126781250302971956890962006607679949742869683485743325359316000375576850439935482764601980267270936126756633365016690209517169677880847800909194017413760419495443832797889862071121899283908180018657779994769305731437291342451235595857265817629349450483751917754453301707616420057755783922758194052956966019721845091773342532423961923125199384193222623746747647690170610507326562193368744940575871191747238363564778506507275040226327009034975334650793348833992517712933217935762702251776454764000959663802479345724628377021529709631211274068172896249567360181987467010787656221093355733309276537394299153343297525010101720465626253680511857997457652280445449887296114664195233813388511805540099531223926842661519694369904980067971899716952955541047751026772956331658189634660442800856884207298396480204715529496756642300512995646965548973728826119520340059870115409570196780389030556466721612563736326823919001477357531478048060130955786914421277220910059627706758129905113662030282127272155168937980588363113737082567354833091838881622299020900501079569355625302735343767522514957051520738616894578373429866267177186994235270590576750348556475888395483436601857271099230730333427761981673128383038822405993883874877944771039621190794791192316593593664792501477119177076132321590481246959531045024495138840587786216775483916415625003970930230662785825863828495896800934379238521579428609016175433603682344436611151916171107128384655703794885327586224867965892885636354205850739017741746224732038694901353317388753126003200035402851209461922889826539704210550410246055963363781362255767726900429031923018091090144550222621341821125000496027220042522366295437394031565320978238302341867323331008217335366426769019511117448160391950815755061188465262938941471550555608835927233517154550240712403034249684816917480619182339309228002446277066809361112041214389255029172468847311111037476309753345050135622486858771478221149701552375901175144073695707723385674323954752772315700616288314449366360131473628771111557212448216297260177937282084141035450888143466797236307920170124815981846945918556120542761620523028350495333439571749019034309285383120728069214318680403693429797337803158732924645123161702180793328578136970841299985862688375638765996731138697589340912788468911265523718825571130440693837917102464140244486426127816484696529574585951331156647420591671769648916249157898632932558152802763366265098614085240356039107362080660749206929946971446601838350604698828282318437731162985980474323629117516841674454005319394032897522700421227477753986522117081601893322683574160637996024495609051899086337654941619708663002565318866108620036466413629782687708830037378527237099885061725834533812132538432443882489462026377142863700407851803386061751664928271171950546031457464027848510468138477024910066805374514151354333946014203775577879782157479137061320805514171141075819334944135785955610433811002836109316379708656325031094086457725506381631022920374814277124290838594616707415290971892500027514482087728363316092299837642673496763501361032840950860858256032072092443444143034434124437796080864632813632679344101755425634166835783586764020542460804817321231230637053570842890205317785863387448935433011399347110462417965914159027387001984249918299428221794020706942755484776898307369492141688697861285013227504962149641194434712579590301039165851938797488540436221265253987797364155702549322452199597279385364559414862814928397267156318294964718831650614721352982580484487069042188192164521818084603351406244875360207106853897333465102255690540094789204388874840663896191625113159575446527092872135990042200889750489326948011090796174161423638882185946584420893849902019456504761122529793369681055833083780728825130062704051558944085337829550617526155226496509367666403055709739581937621611875580426435270879138999104509825479968037009689631073944904318678456557389583042793620665553838899516518644682169504034274588723687686443016621611374093571708188089347347798172612696924225849616357436319316530819916152466441603880643308386278791503394089377744660549210091115940726295078901335417788322630523909407666783692955126037070650718322824438540255287914932517014953285953115375532778938520826295203260461157733546840092024935988310883045330097069201812915199082399313006892557263926269261919476657288269501573218403684858249727587062009863086282182469226873451010872120430040872145046821840608162057713725173706775581157869698120325146573275247052336339198574720777898596426049207869094012676578417658146232431988326310872860820507526709930517709964776301836437814157677394450286309403724572009585987136466792961092296391311655894419625149240528910741636769073536297161665535791356270878006783288472020733302631366211060226622673923155325108815817185567362204566834780311841331072321858877244622701896682320299092503373840975116166299767390769927599835059859943893143582810255514253898569344643331873545075908936809912889581628550106529135383573102671689820790352125981512006414823713997273410311723043832314260499192050008027420003393133670706942846793601073273958529679387182900675404417554127312178171313686222091463389720758696505606768984337597633697456934530902552030583516848512122062232066261942910639917649185629093414892978207362578983783671468477005615901436527232324196142245203140332834391837523950290635953740426240178792690565435892931834568869581301426821254411481215695151945708780458924244977322190919336368181860211708296975701507806368891074724874691733578200446981112078983527417457387445699160188030265206591809520342416102573327912429264373196725510711513907454014360327563845525426061746447910456725020541816950957031424118473134755809974227791858379817556698845422161698001592234793426300466446475913313476127579902234553323385975730603124524639532755254519024266575171665833674810124465707447248576463771818398613285173408067246673126432875195715327027604411461822137811302828761193963647787866097494540468631228416353846789987636182735074287626767621868873770321746181317323425539842030265545153769502486969871383054576496068508298675478804214471241953471601352125855734835419246884468032187188187367573530466515184643370700776033109989499530956193121815655838372386927056209382036432679122800391789259778129938922711623731833667250141812453574922711486008361832335915144720719651716245671039629903490747407171241512676505595782931775847104537050298621738843848003665522342157496300978784570521322466169130382681541110374832001084237310686486443368605335911109704666205586080226179400732358204406635380205570553213199076799673464598733221705517847599903381721446569784133769688397924051115016876689214910614953832736762022501852502075971968392133428916226512445387834206631454078861727166772287159275136244557991043693392454323805538374931131059009520642209139540378328816071518249991854329783485000685802602521841946711643615762370546379050692954931220099230070824683117873615389604396154539128427515983435746822034561059409541514673545323341236829272189100509242781143285238932904111366188836768206575586286565127992185840598687725603217352420794133347794112997899596173192639685017272491828551690741406279385424412509908337633330171200954359615115412116616578745622798589328609404373309267668847245310140872960766385955033668039074730123784549385091394314470986182373142019147373820992179439098633860611161973032974480546372354952500560374099384438978577665491899103736770454523481092990084826604022937497132855391942538434229646139411805448283279297966976470349882865015188711125914841454679687819814052168516749037674608708580232961930043780034564035671734537796061349139063659838209307543658807841069498964100893953644174635889949741336046262250800121500893256421210084843329451409318261815109634878749241633471032960717002898697215349944140613824639155003465841172975024933640931859419627335392708446929680375515467959619121670116027772585993542157214247555775954229786619663997404150118990375592347899669167893815602793875386865209872998100250774185379476033015454935757054768725320689532008655188214967826514767611930887451666967800987205948501356017734561741194281446131457621157527789346101929802305023244035868342083856915620531012765763886899451217145810828096980828561204394195936062048251800664972962613422075881949439409828202806521311375252423277234668681525213779279363990502810015036635131155859952845028994303302547821682761625438670784665604706747648791091549214579525665161594047169993362430176611574038102131342156649949005968449428566849938620889456764584466974012773814005783192725546013046967829835858814813755446062050795112476640385236513660298097459965304462444227253394212573420436162595713944635556156740325873312950376427689111486905411475198603275599720787745947831243370616616630838348740345782750810772133882541022804199843397329210776036579360254594539321147121403340965635765649582685256679114648487183044660802322931050277390901717861659749714460698742101789525861132510412065489289520825113892255564225889613900099991667256181636474750267662527522882732126179772335173625836310689227735464981930971711953185240546219801104134363843247034428315520542592400906029564510112267833205053551646190123971678530223042889941495762682020927821376926016191161147687333794148448615380238483939387690437569966588944623947788498822365548987667250615277925190085099587427050972074665504550878625533073732143412986477587192301955111700274045824472191618710925538061587229589789579791514232255143296299444363411382061741050570396574957251851760439361814099395473011612376156823047385307032059351654230525864883896811002084990722487284665723292309595850216056232101767816688388114348347574594208048666177189409220768395788799473138269830379886646024183492003104091588745303334127649053410033458002891920926768673579723277591138181488564521410356475019477484796415993449896418188888088512459109485531570973670284795071321029383695024735207538602469324255694267161234967559238531455211162034772313309739456038328643707161433299866182977561733049451117043127671947804800927860263949861503131772048850395815812324632939876409194313932322755605728690317272766646056599663051969110444955735715256165623311619805554123295277555598706287731256292808875545812915552733052489100853207940776765645101034195544048906858584117450160429741690631414119067301580041332294255167363076668764886859135585245719570504480131814503387196814776416684003407440640245260567973299145932806235117399467554875619763770124674618399991325917142160014986316201841357674491754180647773398142306831459637472001997591285096325442299353828106464331420622217477376524965060433453157041582795368570987452291076298422944770371997376772514428096375215717754381184640844517306331708347155920529070264543782586715159548355447537355325599928615754186765105972251931179697545757558139633632842559155312226118229309091472576346077448311975572216682638036326354509721265052488684574323722615899545465459168541779396956662455150830884462530531782429421410641228504396061340023976779364075042356121949184505516742167113383932232206860222799603113220173605610377651946464480689921720757179404506059806901358105106091196604053942794533465531546823688343463810646830978100947851931017315544027441553001853498464610291699682886311660000508352911997811189352266142530109009788068505834274647134291677240289235708316068829696352105840428083968780974046196618026492603066186272033905741166758051774920384392275229912622374894456810584576460152970229539088078469099609188389779680364659276400652812971077153963414790438187053856614789269289317542892103105228998429379532844772895790833691704321660963404660579237780763989047606889529410420778399880225692285569897048166959039826798592886685097785408626915830668295068380961297206983653890912397136399920554574785893287811903529188273557723572582323230188956267970568973228424977709464444030455497535530382649071012992875301261947667165223569523146683408480189862231941562831779046518750228764191481779867729924987325095759289795420998131104221515658159974306268602083714712471759776032368310337418156050168658002799522901407115233815908906340808579121454303157239965175243574842616800494109466416464530219355239794139495328470204542481078745787029399256953679492117867990741840290788055476697384330336607625050000418774399081357249589034783340244061085137943466667908405158431006688156156263946121692005792871360052563924144192886227933558556199392215146254367082992432453945794224703975446220131945098958998838954492936119798483955267084464305329864319260094438868920287508907280625217824355479337914663578105010299739079141486194161278369437944724012210483600326999722002739396559170106223968140676740389426581874411966001778367654863090026621191679714714737561213837313847643218448716648281563770840376022255490901850877016898014110153747017267606030317053454889217767316056183491550026992936837725782495071248099706752573735323330430107986062991706955682098064644776305911617050135143755245927301748162030237208578722458068723270156350019417914378430421803149486578276024446645272879329181778153145900816212925610603801199517126995617462580469624258453821442627806974465553272434492576131527963994612730082887174343761631518929559157468212764515192444115950653401823864281578746542141587756953289573126088405659984441861803934329037580824906959499267788983866278608666720140650903314746143336830084251217322978101254272232778913401304416570306919281765563236787620244378487017427548782413031256140514562752022881205724251683286071931859122308731274960487839511526534376046003730350601316608311810035402058039122818098171478281222646086036331362050665518021673221479551425748524457736147139193484373660459490411259439552228542441339363036412778363331991794103068093229300573453515087341430356517789438519348859660193694998173276108802773555936430521326172187852243913864244547940783057733853324227602206851984967239382052886598250928315444391566901619438621149464023130270249874664682393353091534446985463720855827092029991237707898438898771084754294648102421387874900801847768185518036669760069678989782651203100449709307116092597888195043581525892349810738757255282894543788098053526897278488201314913415056479008556321401817340151983289302786305744803393433554335188473711642938724775894574370144807096916675703406038180190936072735259308343266196504282431661903922789878870140206505027643726863270260101657567309659624321957731166448294940440161660421416730925582836961937755456394864771398888212714462415479877605020162182903329723333331591464406958565817340155312679720625638424454730706293015961028721383956697872097877696951994655184685394902627942328735217949497650942716950460446912276587951052343650751982028436592886936625269462769456927644282344742884654148398491360304122643404714116962973985809783086276421363736221181102933197154217003275357715596631467590950761260493185213289063097551770850212118050789454089838969841211822267679900911332971640815882304403679505395998935391727797697678707354961495987661502793254593776311729793679789882196441440388028222106273204727316676694566339727545588433367864865655343681490700385533245638756070644170652247040403838582517783166356392761615560883681910265176846772144706662437500608864401859358314795963214883802858973528380859125787782896848413097637908697229306153648770161355036228364671463735779933884007274067373126177942300231495765124307722812785746426334327164891951097780105040107614349398703778931900024705313739437242873114784117729678927334512235084573754167456435435368911098929236625133393158208262045418281282984158344761980321488499148372617658820489723213566222799496810108724830743671056538085167366830175958268183621941881959351635530894957716223155466375762903164589605120436634082152312554493919712260342040261946861740817398915674800797881647755749617853251336078718361669439118499556759505502962416686190784260390573231457817314425105887879915417113963234438688243530804854443981457917341439554936514747068481369036957033490791335646937701217530792585735337510438347943409947715157402932305803187706002443885916113548193690144815206024628821310325433286194460900835390957138854047565934043484841490559623712321518166599367906475796579264158189629806003449840215604123555854825485402283720438978590688899557250299545029585732761886078370460198030743995639059745100906280457696314936087192659500595967513064229306621553936332601331089546922046170791275763908522686235535060456451981570887431505399599819925412026286649193686207210331344091768060861870406588851752310163205819074494437724479033042869435819703610526783401345888751186235908756197617955072746193449309497717717316792737826660729956532962939672964520866876982249104619744582580342244465101751355654538544081554064163048703179922956722419204788080848180690037445900329763637834236488323744919906043003749570842723514211409216449769499954932838438910551537360634307181174534533207464696504081101605503883767379574027478249927673829045955609935985754822391071290286866628616387909223791017226633098896979025653300876329812133118198849653949576295597143072516781604936552584684067329542136895171659600693215689891422982057975120658330878286703065190601241864065916517383115394336167509851474434760790656077441230267054020605437326141369974496953684926770677073560497299611335134092394132612298256102478977597248263178789147165652286858879429075822118317963135828320962171893626743654528397282838468532580868211018218132789806213155036964361457283592408417384523362345024154831685043390816450705543396794003215857009781857008998301764797145158375205292682461024998968406819404053516696905650852471158517174287146621204326319779717774668800291015158600368289325686917745278213806162079895646757662336651634729042194302018858007860252968006473626991759066866390763700137735922216161626188570080875954040603235810453043904884359301828952558288208709696569677928953041544948312549117092262005853388289341015401458321680055382076401661730086634855247323265290964075505464675444797830433769917080486624250719856199788910303360940744781417243708539742567262167682016702139908040060140302664555682359947005158970088698684663885869906671285339026848655721827196695653756593637777307302348904862818904200697719087940593902719242045789725505571688527725343551426026538067506512448322349886741570054905062717788759755963039079754460317691129988954212462525958124437709652279293554283459188799874483611243286775896973821030011740755401588061013214306801730431273171705154296332786686483451845715214930209948564104219784091891822486300017501766356382353701183454950483532203180031874127042042746518264332256315424960995312532450739083702103576857909058098091358184419565703045861632066804335305825409404833583840292467143475778185067558988805767918222769165065325883577526729546287302327913540490471380038194553939791766445936458409756450350333183656055452685511962927984433764069933324767149494655744253293509247897783254366583945377991933323147801456990788135172405067905121860703213348789934591784733131658201193558354735995664111518100625068494965723908927807356904221710318489475999291855720920090963404814756043690415871168685937056940280239480365441961957790953515768631363401029786974356651021671447433397016328091935490437365665520223528814248874084106474340687094653582805946832741127783473329993239436736231905938673568525345432184244946899349155524587178164908808353951410533145589996013053117217886140164053541668738124145652830061430325993664509353430772572361332785832698630133003355413599802760370975558334599164004050213414522442455734886605593595874870548751095377215334039267777200939766822219333195944835696052524160103835497830075015042902280343190557012986468858038050485818073312602985476140409681286749605964099897389636525825405537348632472775702702558459025789653861196511079317786734679592719264957552012402205434774636665032705876655022494287569960216990156945801367741474227567960048805907425582543535200743061596428153149908683376779193861165408196189798144548771425219064062310132790330871400282872507564367107461536411016304393756312202051795456083544100990174173282567094247829586667828051529145832435332249757339543410867550936354705976001130467941462761975948998558284301379924327166071461998784833791278956386798394538906414739911622145349147194369236446917967978414786564205539317899829411425984997628840479932703580661824815625575024174724782396185624797244308544689743151986785729552274066137305088103719472412086496621356924150002608343899382212268319893182145321949786057931193479552121295467279200993611298563616610728400450445262448020278785713863473449435718627572196519648784992690334464165552426671622729195916117581398786075656467452324533069188126749570590824303010410109231867941702606544916272345160210209716538334522649761984076577727314162988595054952578306204597756118499925238848946268937238370214695163552540268973602507468544666063861191110359785139275509595311141796495561264869149275108023733757168808346392166069675216969512579285671939758900889113589778336116108985976533502730796648574331224152051036572473885138360889520471504975429466135328621890647154789879461132089425430535801065377953343441941160492263626005410908597787570042234309262173769720801863884590429205948028948387789397770525347843509606075308980963971667382462772957173405242907911184507359387552351795322770055486363158979517012341396443847535636535779785427157534017666228738199987439744741112845826046719154669649930079580799892994586044730094044725703478129634029667410815845927904415915394906573119433830600112421203906743401288375709564905931214956260226584908451798858747460748421091762054031860232217176124385954646008115897823822114385202651509144204183961520347653395882819833084140355310462473747818340483880048708655084783434619448030738837106176122746020410595111613633488923453979313249238707583346230068601736717717631289007392450600598909142644098950529339393229958774594225157451647794242725451131173612597580962374399278900032007535726893016420701075517268329868812196320750480234003913001560607511743310623381256204962214883697205088630310202282364942532952466612999258612007333813638218184959151888994164537745871159502539785415013134050412906572032971357386261365893147954551636340810151609366916242829239350937047401731021857731049412431279851482342885148059069938057048290519983099457392449103076982743960712295897461219152020052752315052064986281162089215242529018829784167665810007513048508233316918440912027001719341506259633001624851116136137257191768513120298095342038548134182361269952534952705625106223308481920807536426725136734580723954814578887348637102606832588078381686466422607261679170793813986807320628488571088462515471559967201523479627477316886970487478830990056622777337326905312919489464570634984811356295970849229830608109280567591855607648873613659742723491588619400247772581791362493932166829299359673071210223582837883250061911455268851752541859379041295008246885949162948411436346176040569434329674621642511199051942784841990517718345105217754185674303104844890671981197693586042476760828718436973750943418304827822249303525874284487717823362386150541657644134593821731639117686087330923494276959972699079555050720621244659268548167748472893408502639349464903092346614631417651913364535635769740394781561559103729425449584999394678659160568739328161655516763182145204464568608887203628975413192016090225924342899726780045752105699654502450714444620539853223141721453866838078449192755829745917041241288316513349132825036460724891557984586121503880673765965988095184723207594227771662617374895477331245157750385237854502829490788165221095668983275056345270247886885658777431939219209058539294918426294169092290305637944011735264927988659737244018183194054776569467241488251782504828951045592793816750910344396110828439084755940911990413568777204836929239242721682976636693622743063181635680691740571265050430535405064514438115004388001530826784057138432925564812622352061104194002735174351654087929285729535429504756129446272609086490276103748621611598411277407175262181092466289726853459195462369875181284320577007551663981258273222113040058892734801629743658585092488227904245165929119755302663748176365412006933362554860444397067845666835715898728690410362598156222077252809034790408222807512600873036496236281439601325312467074283695445154147301910820534430719242266898244651998115825991489498553151254781078818131236190034230419659075846119171594316109119286750350527357579834784943397533643747985463792769414357131766988573645538429424518716565062629322106050507134106975566238560790327765958007220259749672677200555875327985981611857295561126434398669113856663007101786620554199102282680934062742313018132309954458067370872992943483768045940814563291066272677953176773867360864395723274539324275712377765926067107168048233080049697383901884687175121548246421796884222109882350959885804782957735636195290882952583717978666124904231211966028967678261459727287711542837716953490416030776125665299256476254932781446776694259650367334233206185937584065349727534539661605511381542500069693249052457818210572519428483663316236191265242042349808486055415761680143803209469040628073634563289351574254361636058010758965911567549325289717174248412723754056698856831621858965883979135822236979927961304076431997820029393819452752195682757371236164062448849950551751926116440654577917510948835090056146239712493590648603807724655304267065188071935752607752853331414299410707088356284995165953805302565352503545046547220976854504642241587150728640167207471589501500075071101330806120945860877302075323888775909334521781355484125635783898542898446299820543108876218827417961300096275543974229783709417598163781711233519322087162426984669476779561635890287904274106056746719414220517898288721304221263814933326600807714181502157577926802823670534563071436019078269015112590632888643728166279516721228029447881624324056169029942933829780614074723570825379461287804198139530561025383448691648812712366157702069028095276461706845491596547516838632213153153456260469529152598755455147532693365840500229061985668237738925644748034818664035563201881501676781570962311137914128760474121846169683983691972526401052697008978663315445944367592236823529385387081109442814725968768792679389238222660615848790312398016987055973316211330907279567275140828411881907379813305105589920880312386453025282909348800097315629692731387742965198326446653390330829613176980665750649516469015993349756571748644757133199603701029422985483886431306302568756438551165698293506157667446914945003855215584027088825186992168483951601443098345611961245021472676390424647014714962374774120789691506693704923503503976083185091992014725436355964026337172417225008341549647794014820016455812633015478539204053563616253671410574777857633115121506139958927131420015242387847835213843301093131545017415338259906560332390818850324332951746918737327131875828090652124787063924996967937560012038833767418409740096916222579398601649905392010586919406475465916558650331941008297485354741120539575735033570103200958991414555329520801819462366099731785621182858127620237308538863991460225357067633284509741149106676850835444710849920267474156165900877445877833713500505737387967196661812944625197134065532267285923725731330070122094598931552093676009144309353925120401142991472491723592510578173366676366245781214983119604808611775829527517561539964907193206637479394783627940146186455642341102701310888803461635338461319668532666970485953228595571514368591589298333065826486492293763098180734498698422804798380520100087948298452331156508587655040602596654631234632273225795578405965476901828086166757918143127370532502172474210164674475539014582672021922860636017293445638902439712355305108915104548840936551538480874251715602765058750368725294345168576935311413792375884994937863604356942534928186858030484674561252999700194127865507347953575663406219443018593952486800835131447991670688935712468087059822711326445777799498983718281770253946281395106023711994045180062678333634797046960307092059833533082430119605845134665072774013244451911287312128428888906928771203890120179416009842105323170513804126999297461188866455598501128504664400970306131986542896492005880327927142049762038746991161712855764439644095738081198435058148194034358574251512045979061239457463696755690325697730077315658757415174561703028397999038903608491727029263098498393505039414176569985635789046878032919182958825355391551447748988255962001088625222879418104536656989129500694987348018648011756269933778419917852592043193148826034882276693445164369303085671607589494564282810977126303756532611177809051074581844870972893938235677136682084907605510426290164125565953427539658727544405746096358336297221471276581655816934561597460899624505294853575655982879032767247747367126455583373674513082123486639659600828494272453079763094437067776126744055007029817002015209910386198626993771773479547244900210016519983064758195653753980222368856614367178572592221200081221859344743722165946857098864455918051241998671220657895846589421678483504418347323746701771117706019328985124430376515978598529782003962937724944232295241691988930805979177544812930707138319046883576323500191629776984288804798774615391423684189013569435972306815813519339413734069578349023176351620001643490390462355498470122206776997348470928649476489524299514119949866488096655826757775629318666118087537209169144868195655678290656182066504015141888323450506749490891351713768519349416313814819197603218305467945060993763247103842493466710026232460256523812066328049089963965395570950354868147768647462546581249788547444243061923347749549816098860595805093965102122285507590884658304427197729731532783344391161866210184871434182269025940193739837615042366391413321410920879371138891529091355278274395919486304098558446146559028201642174757047485027570807977189395186698990282841676711787552379216809227769985084042872365540995570638153723418593956738709280656220751754478363980820230367084022048789999504108427599368389029052387289314766468433294564920480624197290956668581117866177512888920116794092123811669150386733888835756056621223231975294036789834073690548316859320716437627225188152559323018327072844455402233398890244611919341264548379599455196478981259039161039853120944241159391713351896716930137595182315974933012032899072426797746093781285755033691941617056885983598036600129192248377039324165144038841003702611133213608534647960885147672380311967177233198215860069125220321379686373167743654304438922302859471851367402917188762832792683546942768365800053059207692459102674448080107903701892712169998705223014339916010891917637118022602271262744589599445829382016627064082785771592147477090263593092675785209848220887113885928908548749362563521659430868733919786458708890098871262343079958449284837263781476628398648154890760666530489997801982238016704783956208410087324460323227855341880663642107862074260590136967621373191366512249917764000880563175810296496842542270380774767646893417831985438712118184043979779797127070895808118128929993723642181489944438587343883624064728088172266345953750192371993936283891766228356712273711677082963089263582448322076561023093398102238667096458904742882821797374701201958969863265803317287157152801397638099835426500268609030191906529482597716613412213786781246977789603026422584537010006072496644536705591100693530128825787215703878604592439215235180114497676438928184885291426695464681105026835677017937804767341963090426879109260661842860282075732743663364437381706156215919695491202264589498467605698559798135362194985261293269970157353924644785817905513941883787879557633086438501772016061444880769036818678400228770837646050845918740409015163716792001232915641936803779626633765585383974564624092728108353702528554789048729985721525466308497596331201686652917352406761103189212600875087111154541032379131212325750826183209478435526902168337285572607929699869737288580210758830686160961891105389170174126786209555332514393325787050422319966668336136576767847546760430794000427337267887638021969270449580243200571589957269756469558120514893594664240191840674249912121563801025919343543704777267580707916506411476898810410049873157191089114395496275453092146440616442548178440133062213813106857855393215126649197983573783040032174813451592401871389491637953703991759301206263196420786152119168273981083117983476465999690279352610373651938279209058438039188790311698877849063159686828710420728328182978324142486191472864095406593404772841935428517189025679026947018293227342934284542499613559186317607124426333065344316353621064271273243913525072936580308901813282742338704079711808928328678883652965160062889125112520529432240870386130602995536058684201108716969323240618752842977785697498852002338715748304149673409891241073325172029987004715505567157738684222197905120805832687867062923148967046544642684054430556839965290778716659194829569845489231606600946777500146114392163149949554749199061726826654198189346603653027688348349732713157153802762337410760547690498765827060035783596968473764813348052390178542575976444799492151367882242060696155768516772877259514952646488302018743116761171081305511646239354600046140562900360501703329698140884742563603649728625881177023725149116445229289768778595432423409294631074040231878763326444983110072718368916923523602357001881988677112247326689870732155369954384477080958654129687974544316506744057388603191128679434799359060475172684054783837641977278978303656176849392789777011452042777580409656325586000436737618854860087082028230834658465461555076101399773650925682089828902928594100524405919160109426133314979379391591594195002360242310292446496419441035137375403720312000399977660914878020104841767557216539077111349835432222645996091182070276831108321916053968155275710829407490799225461956815923832686350182502097802809983019676263896011607693779327725769021562629437321941075606923202325858271942996826339214835239626120663818070136459360128833032720307485856873127405226213538341718006105022859527030606863318919725273652503937645972451321921422804983198836918075930483661978780829957573462236971518141597560914592766484160833200989624850054650032819152104323597054119720808694065136347243497368020696234338700950124360749539858763626603970392854610053639906502646092314711462398787293444949250393693666460814921643937586236765179755648476690099367487792415829954366174625227696521000002639916316118758649795012419040817982537043724698225432405235333259842234677162049215919097979395755502496050662134177410682159738782909845770297396742827340341813036513452064564490107520837941980212134580506818346134976187730602487473104880265095686195782598967203141348458746531592214537104147198685594936503166101878470033302981377021932050666834558729806494176995046909996014436857389269666924132112076486628191184781460355136459529497944927338884639782865335155979156718785913195196813008709470314793861507259535750270856451179558823670136330400055472768859042807426577247921236039158041987107780050239999031262629431437286160477496221932344868684390208019976025199677196620741197373828967831831852406245728460435518667470363816899321815305162908562388816394959829600815767654811083849694268810549199905630562014568326187368410291682926236162805343293616864750028453643305828141546852844321164976753449673382113715382479001593652037802724136250243319850125361928055285366391114008522549336837618775984031992143833648526833572751287766891655969548924105576597033796741237951952739425863862202901908168652252976549201874238747840440136720998488763666817995895607223579385221682770027126312038341983516069648071283317675863969306644484669750739080027561458021522254121552387324639503022324218551836929042403992251487548731845517633340174160582734839987067111707990055987044473974803055003756532303765094597728428557453163739327692644252110425097387043976391524413529357023157199564846746109456026328490714664902261941470975421934406187827274138660464352720354124881848276284663701780973048021670287255008165633022967398878644153869190424839960422111276782688099936701810021247724651804060825289275032797322597789139252125180040877245065916048663158414389938080500800155274421880786784092184699927066229908287378252152070111823277801970336971486868152824011416489262622893012631337877981942158180024403786682878743937486418551250045260972368791867327304256686396229430878849191860432708192812523112224800529128806197263463019424146047978010355152884824345536416013172898295525194242602638693432609434303866285181753853155241567602688679620908349834418337091283449586499442939906330599253268868678927158689016234481044534773618526474216564097830568360481402315643642738830048688271204693339372671788147430631822947219365761301884594508114287049334500831508657707969724524753115366574382349046599797146372494323739870170876097172353505587774824241566821655753935638905300729578591452298467766726225846261467563535610019280905925033793340556419823639566520054884322818950741703860977531110306840321506717714054059377443857802986987484898389440003728279856595504488862601390850739059325346018194881558266005988778002695348803178083978819050266208533881160979751354107719103142977158734328326055369701705875899122209009162151394722350992250362070434822444667057123005003179654131821179535760667721948086362441289084826417996296987134228812953703575362912731721204009543388259744631419977165745408040888616565680168635885382825809725651785094561180406707845438316803813194291839971127422908220898739986005404354935054982952023815015079666726042108606094027752423594581159709986906467161982226657562597075872346872588754682435957144591058331750382902349627407721294126542801298088550384302396808194267778061646215177679558252417870666298862751185437456774647537753013342724066587277946173235685304628081652872896591604230828161957039332035576937044509001857084289516814974440615703418930067842524104700222359517252797149562190570435520015895642211015686475543408139789796954105297612986202755102348708454761525871363495133590343528699851380914694712342794107571430437490597814117970057904981961846969371439361166547185871661448482538304721783929302496800546360650278078525864300643113802666856761110424680986204365764731986705207925617798642777146137646674343844954949431124003249247029250010611238039303838549532484393726000761422108880006355595613450477371650861511707710243814861160406837169532404867895697739222415874448116044163301888929197019416614996489608808114705999389152809619371478150860021388715007951181551754715801365031775170554991571414995010387088664421918695921262808381517558287769699824496620319361580236125195155066198536999555542543466302240478429560248584600357046412253173474800283817296525233063807729210440309690769628131743269163165287978774938673276685661323540834277131823029368800674807786866784841675671743746714145010616190516339960827905104801476698696486037671754434242831920177186950637418506995495661546474526940971422983778255323624075852615861357467624356975842011325156327720466443502662836279373010185611200332118890777033277180557727647096607006137526448089737662853781387610141098939124917408347153644699628645447805501811874461286075245862914086633011908627261730462351829988563876504728396557363832368302415303186028963711495830977837170843198502823766144156321900578912354111357380579620063028791563315099001568194976775553251125755240261846527102214435067372827895291349368363643811306513457719614484495142895578160917887906213111210022455182482679771732352387842111532221491581113918151829381115559241522717159573523533919904141862185765682837522858907210987606013394003604154360252706288577627005847960266452130289713228383653004113967900111794613153537958685287111271675545446715235492590931033151924872184839416694725073083727614236237241866545389265742637035475809778570677853747543318601330472290047139550856275530073134437127806049618311679239068625742339162706744794016451041736540594838811468240126016303510267351774147772101343941207340578975566046324533301827304274950649581209414826275262494136452571670822053748979434577382784766499872965948455834757418438130932039686908345420581691227222331100011673448308254595577281856445728740156107117138423612888143029859799458532756558508274812899770968654372204216881542451573453591022994725045632003388339552068339183414377765331449497288121815708340249708471232422982961775640953828866380011336784735697287251395222972384145418539189157434184187313522369659690133843180613463795223427558180741719761188581862860984985487654687937151214604149556095338802019338945055090939561484373894393421832417423787320178274819647525793486074602738905637661855763599085202005983133187843606540190646729265761701352769948594026895030522895787280503757163276219817958071821739329349796676906978890941693012489035210741904778233239101584788454556780673923527503954408529831154016973626699203326255179169906599428331748321020501861497998906604748105265059954626782458616922111028634126599473544191664500101029684533090700923252962642131467718645557471697761168232215017774947289388047785258182705402025382330296511351621093971397581684318699552456394793129451248457987374993079848843169042050914134340052091726398867837196784017272222662776568004789623351188534785510639071660952186067075116408680404968220419589964970623334472921709493191578645797979226117429934051167596242760693374234741980382260663691327929043625556803952792658665320282349056388437612821658635794813948131534866920352695733225544611871673597497597078287259905851767446085235567663087593348755158418166889747203315064103368774137897353346514228024038791984723829153799838622242471371991205959444082273823277772313739598860878052656745615938521493605054292783848379222046499312430215856180921544345506200697351867765370022183300510158733164800745300999843700579096139067779268872313903994042055119964816622228425857751158215619284592321923904802080710252638216425851381592739372040112221328258591420512863040270863898166329822181579570552224118287781567974192231016985448701942437425945580728790322938028291356456097544454798735852586443170996790738172866047840406352262114321561870522644782854928727404315122681782193778207285859777377967941364879897271227835151876331253274025375185951595142302915323880318471853665783328407949751342381485360459324319045898907621896611050940213266400983625765296471661187198140190578840086676223932160847375760128694380325882662338538393829529583130962903636433943101434554732834328486235675146235539322158505315083407174236478677430909400302024496727566632582252999217732325636696923069149692233504174666563317226382656335448813352816223109033030228198261428567120313342015221730692717603061313985580301990440523780987228859463202505235493854349698263347194274897667104014226724737757051800426080016007176593390160244277567848924858492234537018587332532362112786920165718309881333059942643062406166930003438270494353589981585018575209306890728487669773801673941372068253697643809052138868843862688712547427392214580729062717267223777065671769186598537292644771420761861228501718969447814061220666700273924020774219501589218720830103299142161690566983900721954056588590035186047821607924271206952342779983680195646579095517714842506473862201080851105189825212237941438002321940814842453718409034252689203617725188319411186890350381712515549031776006437958823990791870074826483843023288093359407841903242739732537054778407968139937217724740311387238651705555413492632331043125325862052664303706329489944520425163534781921267818796393466401150501788277170134465953809033293321476408289158207828811672837679360078907428256047390526639655370418248288216094308069022133502700910456255040130349059669064078850205127835136383228291814029226425959302038053584978928285501769321579753192354229661305857240529927993914452493323826896867522145352194034548434067890677756948387821292328264293130156038343058453153676031483649011323452365984009540722267529132068114397371477369135455678945990428096296861386463499384530897342992425407525850691987717295246726411629047330772413398610226071686146968072252541322835250759064800231324740784969274445262407929902557818490556181740241971326740928901173017640970408085449682324208936180325050240609317461919804106808229032988196157569292577645109158909514201990635022849465645136713044918118857354067771582343849948639066201351073026426294878536227566455958535291003151928808760495963121632859697719565790607191332847197797188114857038681607937145477714228374440704238692510477563038840669450401118553933203378587224410944807771368062632426187267000652555508960101940486682013382116292706982424487023255096729277002765565668142591272935395918725430993245395272511297331847343451243869460513614667411711053789082795380086863500457003541133903160126196017408452425546366621373075529281485129896077087978224901443953538757169758483228849656336155155504635891880412322149757280536002095593404116398594508836447017234980441503792788490583134792547746893789473243573748559026504668432370662972152319107750503514252936216014372408036298546107179159882610677614268175347187550380785462830234168367726831603853845121768753704889736387687398381554769870702602434080744664536630058742818314831408888564023316231432545419619009219428481192543748380899622111766585785230974297350668446981437292522591284182245181457444493754967690897752046242674274537603246231379611581507891510490547127498081004781778367344301996435440023370251863370947070222679224362540337765483631212949519427697528359030187324586624289944406993689953665578833368645789702070600712794827317068649407790784372740038896490114058831325806969646533868260531734828270956204174554157657468995597376823744250112390419499495730980326516477522971399583692344139143227954365878777321081072426398145289281817230868931474974157326397002906508123742836616852795373833572305215587862846794613221980205312138128932879227506118334865763140165347582349384775968680457343078612948749704187648666690806468040654802745476415371176689072107358599179377756118325340562183228309703304172701294673363445434905073518128748652328260154679899795999220160671467521756116786708321198066440827125493714827560542757590574154691862811894999486100167985273915848491866106406112767671922763444808905266515319419194708295700282899413831583222513516476014810167045879157009636822132649907212516086345666193548864959464683796371076073633902983972467602010130353690785812825054183502454791891189126198460498252867390082257503154482190619183834101846415983925251006517877619607951468360862526562331505878870845938178266989018919567602602065659974605496761399167016738587666335226918533878778299221646232563395382127016029656268618849693757383876795025105427396946391823842801171506103725284115216360901727444874800410675874477284402691330018438853692353229892636661478725537354282158975694975913145418810782024892831498571669027189395662279119391717863563397275939579384584822579226294874081706116809548327071755566667258063640900727859765197372019964285070076072395756633132433766417548792232765829098243089129440621507665529040870350124326336021254641522506461732494852875927787616955357742078778205148110437049855891722698839927513525776949957947207225763891499005607287139087164319932799018401232121589065280251064804064886740141655265635786125916264708206740160947624772891755217010834187558221180635279545105179763344320631900302500081109981399614185811952886949319367803885064897060039098611229927813439841353444018998834860929091891611835021386482025666713342105971603688814405946324084993812366332999665949523576992100665670318972676566252903820321267838486432557542783812463107896614646642127908356084887057850431857007388443274406037543895723663581424125777898375598860068616867911911526070725708299360195909198281091340781315898929470385078825658450567180021529856997872964126559864646653478800803095022892398264207467952840631179871743205012658299563099095683201625910472046652958086442584438418603039259094717198030007775602405511027990661177510593655615701818385079617161275217052339757902876661765291375400145403113306909551471932882023636585612914949838952586103189656331019686595798600449227378296444959600738966432633613357833906289903279248446086532723031826719660884419344559757527798079135071810669330040533269303299028674767051738458082517129944751650203794175438421021333101593665817177648876640819753743986646135806610286229588952264136891310061587496894334358372286767883023191738218385687801673740381437300707132379837243099609326835647461955473840461375248258763911151988957947731171384980823728747059540076618900902429875106212428139783239792895562620150234962688830963661039318107082498410766704263730325887285219145208445303057160610485910537543033119300178126168418488527077567615315482323163358585961420310896918099750218230919968432117980485172098087539342670976804955681215622069828884855062838782173535698296884290937203494649456052379113925484056652494116079145067126728878571945910018434917873082365469677656170228746979538132261361727047856664465648235729306617915023026431420371939976375941564362789999616965136487446767332125121634560774374847808468025208345747310546711898559622799977380185816761259465609499228351449970455176418703596545770226575640062200685529929701969935526193385945962484721220605661527866088290803574575361108314556613636596742116565363085968940013886417296641103758119001469304544251437997016303038253870088485280119582570574942734878170155169876919638470290288609671759504271614549348033175665895447958533107676601511012310866975535880373427792179478476800566073642919618678022168522295675054714972349440143858119100191343595753599727563348240386994743853374285770514872723546813408757416682439927126264202150561810706654779918042858128718352200808805827095151481981438961346215017998436113695201328748493399398304048018717534823402904589724538277460884559476150586986617943559939303485986956320665543247634264939906992247687393412048273681464972888144329137527158768463188872121416100604588509915356404370103015411799476649570487130389895952965835951152120762646935263464821920863105320519356244218356827316056769948926725520865288754749800935774688945241217555944951497761849580530310467529948264359215803895552540591338005062864309145738526381275943915942497238534175803317557177988361106613716601034765624987152843349536149905485465716569865282197498144656396929648701178704237705224613083687708866360598925109037570119440510107609991967352714161573266541603917395253507878890788409222991367684913618304111731690393822307866074759147051144444373071028958531881035506660211874205643224244801695069416726485927745916134522977368133435381382113047905212127404815950787095546700447891422446437348865495466985930257192784420497780048503814810722440750449467334976178890177410812875651501826671329655799572449986419845220878838819022288421795918195402744934913696330448491264300459744719351688766209105542932907696179399139149354824533519252271376876684665304070097002512565881214745719283278174379868909772265115974840282784195894846175059665417072403182466090223343009366239069125145149558439873401884253151915242196046716065162928725118534081442047056543137652660588028670215218354794638283713062589192200402904438030767188556412864704212115444737095293891850827246190982591919979600113334257180793697169295230111422755039711583535857937539512336332163808536452431861319307304567728387688114041617904566363442185551631689860620006371331476194727808375568494628992591446801049738623460581507138874782723238678027665917927372740956491341621710488089519007888920783999705206670699211946894717496504699130555897425794753123657086229655906001867097659125050742705891710234081661538516276246361490225324125425687361743027824021383739415209072870661868425074798298596917203118685057367670935111262379121415559440806631805306595715903721106740229966065992582063253117052603814291111523019932497093365073031482810039016678545391766999254003855450762759770015014988181091333826318275448843395980421454696131551068521802161045019754307421674999828356291026396807559051761575858499716616783439198884849057165545226982341974242960173250157936957607773765595105962149764410550728634729600214368169967058129331941526417070262351750918634630388556471693594734185352134067564906683864583211180545935675589858391658483891776143878682414057227027106741805528863340193288537899470422760000373307887575105448045670921912380642952345850141742019801184237595215309556068108417923829754553890731253933769433974451284412162429893181981159467209361272356211882191834309229391038510289377196235329905887972427079059615477142508389237987203682923597186127705838965215187248067978435802098466530499578323160921596640980691251954401773771203346628982555856435884351019053222682851490190077116468307639783940818773070035093985673090038588936148542939196119964669039771992079027891994680897276931879809917770646023931661904585134650644705232667524852091284271815538829475638939219361297353086724421961082345063013080864748715615988684279410277142039485613962008852075429209827231345387680508072114064067572578384363935469070199702091778016405981575266128880529852208146367871114866927393833722906373935607903242356746190870145241991703384474371702145336203834379229377282232990739703328642617887679668373575976863593400383929850715867133496680896693409305843545057742988885378826237351889949792756611638967151856268621478455232532100747595946222161525731203869330951982758232900112650201917864068583045351224531293809539702936282988383208849781845972112051989405934052987055311904775731965138458283856581154252906497040973390128681204419735919587850924063881061472580583081229356438582047295647134189517434552564223549616712360367947631902766898358122440910458456149534920774587829000061527502208315251210450404720224218207890598098918352992582139858471870711516859455843011259556586721523623904260849326698907002017831302563388132144516513858264480103616036327938023070412658184334457104373256557536798898359280103829458925498987489214563497646027637696565128221509257720579526260882351057760780352545882575124998537408205919501665057606682150191921311785926453092093245921117439750930418060989557982032570557803422640910695151950455343671391343046917988846634620318521705322729225389108581705093792437349011652727370245899442038336533843044014442438764117932997909892848768726506287947346473896045575254330975539468355706413360140686692523399309603656140755405724664354222080629955703067399330148228872880434846645202911428645828328178837258882171089492745258019248978342959792610680281518842022876659522747436314663705638341834566502169327080684875205462948267134248365756147064654526264002977018242910281096944982096719620286647956421087020248700234203571990170946681722261530208277237054645203479429593134769312198987257675200822041904058047907719749878908497740184115379312670438411004772399316655108945473373554536841075776947451031212458464800146464172627127510371134658131648356259870061640281053854106358440604578863679679280905328268497968995331393729313130753322939075020956365113740846155254293437530055729697696831720405862901627829776848920339858043648619789357486403796802785321062973973167715902760861277113744017475188363221879260639578644995176873711620689135417219516839294855790244289014491729148621104830901142912178484402266130479485661590149960799895213832068788662723516056594997095220918945357625493057675084143938446961754908719508005780115890048529183252170221671527997003890424306658625730961537078473941750955046618736841865824376871713506374907753917594540318113909513545939988343315050270282147932071587951685955121915327766090429656009603509591677587227131142415249760659764045495844829596949768330935756869340112414964409422274636734582856272466955292080169075418335256529439039887994474160269776044672876798363724482841894076290047477590030634039722765428116931234339984018488585799622923780058812804831269191276729122299413457218162847705355931202563425624013899198989111018034894903472776585629454103872482763804584066693411660295509355021122909538874397273390785625776765991460653351476044340264069565649255196237761224108725994374064601207751906296385794982736358731400256364179090426375720864242224236894657700567857084848421030247383708235482110553236553362602268542222635234628863256529455190268016702167839936210421714925628308825728631760049437773246142905585812372618261748384308270158022809231448997247073229132944042858337984305669882110763838437257861002016952156638087291256125778625849311863753410219025668385543204517260323773450925256422960573983752714449457703565246778859154815854584363806693422105830153881307390345501970206471524862160412927889117277854154953727793479233372230504270515186993457930857593372266732532212745212602285362079547415270157267086414979074950621523438158208937666448648880077226517102498064389275500722463051617562992169910180009134528743344896029710440971428634542970409767518242867281907533909230257235405321687122685203387053446897055653510216345606206242246035963893461269390345649486656860095133139464428167930278294557034732962304531089750109132353169188308432713987056746640165879696977641934997653271354320472346077930686043180372965100564512965837892370583385514217282831073999471319766358102387152329966214572587496722808770785510995836685623036505927609029768663551973180497189228614734400644498782646599591316035750722098538102417891392160218069873975117021256976157535009755208635645227585269784635161605141455854822904989983666464924942397069997432828864711081767346912848858409012317531326363636545665821227403737415594066424721339759096425635384328040799094358656646807582328690524524173344944193566940436152818465704761581770530495145591215956388227567891837625264142611460381385444757297212110043349242825666782826716245708566817896192357136112851578173094981690388137185081037613041543540164083565219296417001867196288969860380952261825616421716265963257630426363447406129044587280984231374226194495056980794466016320235550271980737235071609565398693527919112822572976284631221332432152536571171458233181829061880162758256705163597831099394740202033355010019409475381949232514856357956999028917745883768284055796709921194449005948310613856055667014214881315193593676476569534797721261593062549552784168688043476387996814965411270898557957607145124842252133441900291389043423864391389694552776861771857184577236938893025453491139464572761351663747487812504257820579923464904909180166546813415436599117962002394061264221266426603481284276473775052687208340607359150064726293137789651977064382619594083309748471214584933830692363770416784241028016476365465162678337027384167363073116754469143164718533998966003304242774185029913623411705070089199405221929050062823819886407879996751478671761270316735925870986033028226977724612593645724863324524642292757243495889386169331188680452674834491605036518860418169037265325769676132605780377784677356700513226108744055614763883318654679581815215488114159742959217316909819658938011386829782929241085399964351034422307806499719146637433162624096078249030401605408914262697005437894342676329983824047733775744360077420748892898679865998527670697207032517890562430294295108229254206933276197147462957145998616092087799605450432400673135806460992461935708335763485268129511111830899151911067212059834251268153808444955086007453390127730685825626790430603534074648250654644207977441652714236503091393898144773140574510474273546848478433489643642998254807771165448039467749520672644836071972486761660673403895013566937506718714347865516766471955997722367550851854330438390745103014817764511792329385164559778636674001965595908554798941717862419119018199615272912273301878449839251205497346638081604181872339130220773600578674575448708734052656431954944492379146324689870395007116772498146264600355057679131062857555730829292469669010891661302745915656251120839860246264445811380529246247029368457987900976158620686396458877981857380759884649300369887271160913490728158308515077694459144356484006199873510628781321917247389088956323216636273506146472124319499573570681967616049147134092980276912039563072043624096165081086764761795169151149564349496919797331355100970779532296247115501234288087984702984089044598151744371874841983903082274521771275937927668583233635090284554828126157741948051529693685844251983011610309779979907041325841551847633947802259303807994157618750634994297743987956652979227293443646908597009055289835323746065088253802153931293519395683563170837307998769284365161359218022890278768535233766365363547156723154053799444468050252338473883200714816700468621308601859598895871046313613384235273283330827819979040197820843410924652867064852263359071470003475745438568242062718912835870895158379148328267763281179143026846597767948544870463927777380549809053345220470828804729909387174095547348628872158757145850954696105311618248121111804686143498955054418398986384739505688951572829607592309392761934178071029470141518251185650077904639556204760567258256592310535104893275843733668385587019041162496448025483327887169788082654253245923788057750032129898434400878224465530802786032767092632475306613664823453210793845891390622010642809545649310323050212012090285011743623576816766355518363686338297853873908182656680741002840780694443563826697111283033366924485039973602251521246645664495635923612568194109566229267334217614976212533889692576710068915959346459404633553102100227255773753898486830643415740624888568433889274706041515031691804237159347427306525433864704419646847569580933660620609680559745714780168429055506262363267731274533052250354098847806121677949667394509742450438307381275224470376703015616547750137864340769717467036613104820823205418948717366190492339536863827831246647813376933054893523791384994804329163187639537765677717664978707162326460549001570269852297041085939117288509667856489000227010432799195001633183462240904209396076994993841453854863240861575071126478671874763404334166574036611891242226575642327843439611755854759507077191113982099743865924112691889050119391758085909151616313480797630715950949644745395048602681957196886129559662979927248627991970986380056296286919890714606870381354342329719036517657520833949497732391268751921948048445935213106025398891636152449215664564214645677775131996370745476385244454244528504594469190515706482485716004726295891257517092837229972658955114216870749538378051616203137403645651466130822137038303767375502286157750290153984139238125836331356762154914877765633583150277267249630040787704581895740291209182141463172272639298722886486411317425511824381112986635081170809728072789399365186842436044563900917105861772335582906103787791935983591805671641447934865260210416485737503559096043779890054196179149296852187894563922856518847008376559514617009361297586460936206717876128417551402138406704157149028299192861609282338500586823512699729922537997422249176503096490662426995027904780682555312175873612224745288434155858249992536499084061119108362751748476685264276934622079226056457506770972505738004274400926366114480901668491964232502438501557971026142779156415947171392105273124018487588055119094003432591477809730099092912774129890234817863310917533515629016769994976647488641489062179285815734374359669487246227643189354083979623502286289900859625109947852640113524544664202684787317889398378398090935574529422852526965086064291565729083815735424620430284469052554879263932567883472635857814650883836684103836437768051464322731944668244395778514704722872524269403188922653135963435163065132607246497697976236642772055695768495611769578665229619727033298046419096573909366968741213474547439037633389987619266296243180170318172152690586005238694375637223130377522648857965947012934668406404153336900989494383968356235805560873961017102765494847048255281199154323865355070133717860722438863075602116321824623604947897326601357563547039211647738763509419076559601496580337432765846618492423172113150072681381309039313421082343166330883646408718886563747064631666671169861703618744965674059358160256023049475919372987212295970689097957137694086759379920468796927703858072098139971374919684927426343677222527585948705049978895565738518320979802426823038240136851021611637552216921328496957954890778703010018986619709123287441950257673397441151186512020380962097476556993356580355977348652509641322308143729740293882694314252306371716218002466041074867176489970949558835523685043861540001074795134979545411755473624224992136123412809414566480315082123295607453343947431698986229022629187286315734955522121795903404527394442468638416152456772459054263928557862287596732650568338766735248514514702501327808933316802063332434147856624677687945347190138472177949276168234980894633263724828742961554617516837128311243793741209896370416318316016110952136171203800420517228099148602600852360152746708438151427068750012013460790741337099713327065713746698700631079462435845270788437468014083712018745996798202141134371416406253486873982795597898337492161526237862228473651740173297144995484881884631499747383487333923181528647025944317026853000339493647022911794128201175732354514526616600145185725704452261384404368124750868201186223880994103153582529356944613163425557794867893078873595267130366966882662416140950697271294576912340754060186298971643281210026515454953623934270231438358499380912794621033394930108035976155875320495435651780440644021582547332829185306256249828222670297305745274301835271274034981542596895552228337973139755297736212850953731101592120517284489204231723647818243108469140644793471985911630405736264989359447520062189035151928553475330561576184517873061977203416782399301514060061649642466333681571367165557143094071633882493749740873515534721004603076382346105776912695816190807868611229773797656459865284070279579405653105809034002535944776557961782407512385271588047030059066049433158184736833956350877401955046188060218754206792400711241005232351489211861691952508595083343230566324692366344848025822699728997625531837147816150198401414947307248532933560413681977924231311812602813191102734346601718923506323468865020123118842362738138487677060165569255823543683672202242855561069265569918848801116156103902436825702952370816309815830308388960587093830876215654192669182099647282509710583049798868086834757276880082056091935631670902158963439732773950962758448440799624808361877150746389718519427107716278970895469785595689793333247721947734633639722069311801553170204124788393371118295025489307906880266699624866445548391498738927910830841839125095346160285969603116138017489076405895546774110331274985683097118729535991771047672548626889334534340841683068358418839962474904022859456239498341121594345307443488488257651338274573559026426870700005669257654282142876668582270229494368320236515470961766619741836635635707131749165639539837678275768931264773579679330976485741259517413832838309353039598650010226670312493790734037408032525587376466194776479339955918520561651664419160514019309694540821042641898318442589014857657184624325788510994677075257178179203440006034209313198275994244766864820807006705501047528504294149757798108763735320115047310519866735285570963809778838051775385528774131277546701317623214946838772448434668232055027450032933740283148961933769762265287337443975175377486819318956760621038769727483082215384763452597730240526884419018450916270652413026897769472519314228011414336568303844011992570902715511359252186362101909882112006046718659400823844147166947134733391812294400358969403361999646721544111178725610900697769912390210758888375662782418663733853163942635825972110388040483307519923587565330881575157553632503553781650250115566870174261486831966696191397609094898019124778268580835350312909207467803569859871199061395674181432686168017686696211352974893907204237625697491475219638858166869217349883717375945267520942292671466480790785230633968919246780891850758228858641880696480924939771298337943285881823764880223072975041992757563657540588600761965314246890353607549420005490024399675755911414373596070169529200428237204110441077768831226969305089203113963065732081014558733283963800504981941047657791125445069580078105147613007731140283902947549977450907737756243827688630790371833560841228594964751182260673851303421357217679110247249169001956615969519325042212364097286401031049694049059375459648825800224121892968371999709080696341508963264909762786929407486564027308292756360067721306711951165016496504854992329170410419890077241333939615964082559484398361960508172352222679162580290399809657236428169463074247074260553123938737280429630563694945740359733122456302460790720987684292147878751390941524879180329046533709664949515758375630709702982434620076345477210206430966201255063468056052546230461197012775763498033495904822118651731787596904844681046749452520169712066123097339604834437760978631242619362257008991320400852704585037229390741524692919529066425598787501455728242283293870356847862288539244866145801966423158869852642550567711466879597533422776204998468347013117703403571762142597292751358293296649937400483002456810679129280178070505558650772531978275418928206123265413721457834936520380316855021995844025485894072650357984750743802591453281739395156510064291489093754738981906452172416632007644411764611320248646784160958438771133964100446644972689473836829464306976744537162361097253754475578976653628059553487997901420394668371363305498678451920433051233416272975520906969639364485939937214304805152764907602127878059742978168009104524076347349957458678164722698976281182030855020146862604492864675156277434616687275911586387760760684367829785043003959875698143978727554011861342173899861312656866062923418860480410527748021920868997121080748163824917546179773387291265964298692735048750814757743998302212193529191249206489355973809987173598786339750805665428669402474076654489970225201690751450714398267512544931572559579690475454928467446415815679100026435901425455782219775147200159809422535700110072051235747689601807628155564779451904890865298326342982312372253173455971980252516448697142989591499144675397432715825114154739712316315318129476470845380351241410013291834539215643366642862337776199346605346889384148967950079840616913388922534117538337911827255657188164741036340783015677804822165937509890829490965456836965058965749247398746363319122999593390955826053056295850259505928751229336131674905274521508034435637225311610428483514448345516998711883412747398794326639456925286405306991516744856320958106226552337921038600563344243136527317773806150651062438004176557421323135585265355141312944448804955092855377609849071322182384297777192419220424597957400257041270363586870765300092421153026745861911483383355159563155965024260736380790729149354001656680559108582717795717452970298096031966489122703136104367832046393298100550384565537767952527369124086042802396133075195806636312994923892674041797088042027144686436303061580331197669859786563925853033371797090097908348572701672595092159771029228793146903889515588199817943849742056275771352087168652763922394074898921086342157077826786253260777703550044281123673429852810823013214900046946807269562196095587090177345818061451250570328970175178070358766054795569197435892883853672867772342797409150334533881041259037184477231863456496531097765638004817777295772875606732578113650582644740700810032709981323632043986490096958576564894828366281763459062528500061976519265516601441819544909657659309085833949835676593400584690645469006478025756651110866220007880661369602574367791141352488870831115371623247122285743295501400857281145067825309357854058106668443761793143839780509787001188252196793472505530626815738975570009912306734095688581917174999688900953826703817546935397546873960255191590612643432887334839626592746412429051396519496527078307037818119850211311097865878616228612734394440540863528956846549267998958867351173454001963838400539521823489375280769170594037954684834099241856276266147469029586556512365810686320619172300013658810061989948762184252099994670170220517665512018291236082750788500943254764488989629734013695754996901478540865954752661542629387123087239698958240129536817980220102131622202230440122936791929334905766073988588151206151959352923683899872275686990089769720103726457630842842453962711884102206689193155451039676321546834817065560707663492463671470823161197157101577607559285556935790020116427415076152597732441300055196470078390572587871879908489442765237056653086285887550230253181777495386667059369500923969157455938768912798635998946578536811836126398506728301399136590546774747192038271598123910432842654011218290201642500791643885722562136335952765937308928565635770368155341522899053726421215256124066430036914378127406814430937747093988116034363788178965606480540063608303888096133622846051321037043389848138069365032569460652796764062806655356001749472136096477440163228297624452577586302847399640948100805000196520303696644863832312705437970240717948161359241915567319698141474713945328575657919187189508433021131566269914476348485608711937990450699239461558118784426645592562088443210834755863508498852663066157266639627023390040530988186026154877297612470823654642834625554900155746209102064220165027279910455045933606171071543451446963471176463323080441749181952752019499159889789183588092644539296087435052356336644065407597320178889595590618509804035453699046164445473595412387306576623432825223257244413761883483251720340545394226024804435027559178270647061111218109840914630614596362842091352609461910692164095652782670166320310090680283405186534406702626228703727682308768399258200133468204186555265933447207626261067465386332252134295888711599910761965623982012455335791417213227677613337017771287815759394726436391643681101635531971978581850465312031963049254692119744168193641280024168283831343764939901231014655123553612027673368503600671847988715312097219144406799159390075785588893457843361241314160744813422322599809595011614251762791648428076099067977000368233164283280233427801162403573889678176313072205451915534064455012232989849481721246653317195909349030620613490012045993644344742413570072709087059287575928035237034521431632756652102710308856880662886417309443740843251655337880699578805557683565983707935878436694283116833035276262599328855277230796873229052558535348486776690846561162888206762107185780150198895660019018848497763091246646960867401525547088537837281641955088038497198094769897233249723710465632403130358819528033696065920850879301317495978287979878466767593362845988606805223168182814845312113221202375699642512041082849916148977057918328403990689018166521040975716240759914882090319705864920371613261284548308804187733869937007333778446037229866558137972986494978835384409813116585589231372997066206802023089586773938645659131541153660483259679967990256099928250988405062503944744294186719205116922158240477613199080357242846307744357211397013465300244721362546325695235118782016772353367383988109025820464723675007303438042782523380101540238752646509901385843847071367993854033184110229754877767559430803062436831758048949754276150496107170333460313933749401751173229227444791968030988374416674009769858222278175161619735200368257149912096556853984141310441568187782134844980367539419630057720495757517636078670611024184863662785879655369890874268466249225238049576026151230899653850694869137882125580147656525766452871300639697430972048435122291395356417806747812782609580872843630664896730154211537714568702014213529292794382106000001333918917590226956601327383050117454446714364720409324873019214828590047224771074073835384286813305560957776623913469169422585942279755836747418999343251844450845522886206737561610737740439217622910511397425650452249555619404221687809296719814389801269599690887444894870920263792402259454610425652815978992240061075076389507540524460243855993133453787029497443606687306278073902545207658596417377801012915368704709345582425153489444387827342606361757065574394691431373325415575797867283386619032275249056780002197594306379623297394615742665802824212153589072606561985055142875744274560852506687774104240765792582437154704796710306239330326226187023463068026945343363883257268081127159124306762663930806229197003425818082416692599122502041997281089770344664258995225896446219412578004989622228070081558752376010852654453063955349440697990253208569637565318422248444219587225599267589987496626113112391548586309524003820585793050538266598200505697899010802689320242071467692996689810557520962162424364280506538196206939828672342953691327954755949244308201451155511484376769837046474662876190839406616400032534923176981774666555173424751997175464502633010373861603316137847394957030406983077696355692335994249172398113454315742717162244522504870784280025603791982381414067789248845179620757534266083342587144547634131055484073277610520724859089126158068684225368659119150400557995205481821364202509449453844761429438064432254072006670616081582651155133723097622557494744772623103480151584860705362115353101558408391496272554596870774417545962399043809460412899991232067439766335558629182053293509607465746224154048944260177173329660707051111169829807955405418985009981243038661936726198575835649078105841934245019454893543420361563248049775049644612167098057015611396271776421170315006213437883128998342615382054779612644966899339081194319447105334728870248703906360378318500536365209660015853969121023779171771665802192458639533153964395312991363951298070824492037061938868064112371425849196734078060307059523183680544626950890145390555343140234909480182848908989964504985614304048338353577731622385842319416809178820104719701420625416928490243105402475741593844543245825935055334157143559727996243739700588972215388617951979709580734177344671010464948203045874875298514622070031632994856948393897414052806107565832526946331344336645436784105765090595113941302882170140503161059828017638980428134557595837468233935964648605385567654102509073454378725936918334247113397657655099003878457467089390865604866176798017721517881836240998903560991767479940437548014824656397936871564161125456461244780896192838088131758281467255866587761860663331111261666121955538274776089990673782682298945699016775605844340132128775846451209144729876377572268000981344442138585780852092195086927932316771946235527237596369856958281471631290307515585977516696562268467738891297994511165780305851857011476100974035990552591438188040578159622188465082792463459692023891073548405851551951809942076472283079250087144245267977819026973352304776569130637150601543054450053916358071965456576236252749389372130063721698391301530405028929746280567387969086867328293972990470546205201087996753212861477496942040647362137849988315886823413755799824568419577028009200966344247591512429733010994465806599030492361153952544944890875853038355859758747162135928938192912806109785833311967572394022584049700482670295512151309381794807554255146745070241575539422496087567656376982916752209894943314529478470416408647518997968561148803749373968432982093519500277907020553271744298224761905631272028277542318243636522788400521754360976498630549562940720213006287204516149906453060843853903158928480630343243003260841796343026058381264640378038412289917841095343968542545866232995298247168582723359240743850216256152635589470145757999371772554303736691690714742671433708116739540745493128101787673895231314747162946121395892942413957740395936117010605129152070098161706338612468387190908394427998318727385208496769829301273802305855038413019296519948182106066693478235746630786235387216156525672519352507524729546148628725756009800642496126413342500434775136056307040137968583515614453300577518383097379224816594972290808128937104668689670674921698356500862710882158663956009162012247350168700279760965825776497687218093596891486509427654394013700430832892271997079235610987650366175586679071473339273512435988364982920557245043353106287911256953911708221539693313251804593894662088103142292178224608105007449386443268428472870338592905539375604133444834977642039464955320836824676419345033138589148976101677786193345421946104575775028177785940426985501939544760388962048209944261060811092800520721853146617918655696727522918950773120023949763433054866867021207292197715808171861832910816610915732036604834957923725561716169391875131677997438856060042155896517183456029827531475009588740988059715353368061792696439237707662524022089310276276350357086432389437410398140768511925341830230299924347866138829737975295510661892779912836626798816361139819167259616712985371002761237117993749716403858959084972958600414716505079386254972723321408424407461248585322986957485885277178789457313413770635665863052987454695262180514384256361118249779022745801774609006681114635410007772347279444344036431271594204999385616610314180595062349076157161197778175944365772774149535136463840376226475686850078552464328401311047548744113516050452166118378766514177615244710045409844823881122444313270674309627870183152828256052959949550253773484244805511579181411581802508884459585247245244345809036626302323391585399586506811530101882066914158698155403363178329000086727155932055391721343371043994227679643051994008820381889412759957740944732869317203340606523967041991251030317503653515175344003178683564461995190564916893485512978442149330973091565245275778161912293630768398827264144617926160549883945771595677329745112903509626775916424979399421825566381443776865206694308993972875551569239002050798298924541728147095789354813076689850556256071264500036585493097968491173976479344391054852019161531216706190109984746537358072655217574357110936317540874611823958000119422837777167608029050759042376516452549849252249292852105453869038064719553009635912648372261714516643033104254082841656470969674969872333987908287508155592550735370079852085109602198566029693777100979056487472960451350053414615738665940164345575977692703287313766328995744357007394588770380302976330368951759718982840135749144897588536113261923458754737740397958893346036903581910958288845432749399808985434562924418092131513700099323476254240372858640917253379172140921615133026371881290787330983749792139705734893617550170495258889887076709578136355479804331699093044631914915370458335716103266783360421037727370544227743800046204591342540638901900993409435912585335420960570033465371105138144661812935990199338293547853527191991622720028935746019823309565964818832359927233919569966413139691093268288917047294938626485248104670564931502193753354268030267523511643021185904796178824774903177099841733664383371680425941459345005856632460940383578239981536444931667458131366837177514359872215184846072869066816433763226083469090066599867873527044193541019023396173211332313310113335891999065138492858413291733170533558194925303009953353202229101277944723052258027930440110819949218114737035959455697844712742736901257283406416434774847206621731922378218049487222393689037093519978072115906338350701783088412009016988018204910775421995157902355848070388585010885073629381668855024880421041279162330561054602908555197292560393156154518873231458858211010622058527267770032887356197397621192362342206039907446990130249628201617344617809633400599210732781746550138375246154760890560892222691361133231681563982173438476667364850047474454459895258464654406287032305485382363291691376462193824503404912167388616829779489963232193553477969308255627667365563274904855676446497792595299002424872254577489581057578962037476822904138230557460602622001209940273314786188829313452127808697819809857208474060442998462250524277335087970129423562675540805077380637928313277474344671950888747000749536049055047690231533076008594112149104704339231322842326444728091058662687082775061897601727884892815201166322743241891859322548613382630809504217831394954124064578267383357931172326398367179822998985678346018523595296893461186389142815443071183805946734332085994961130770743784474380093867968706505251130523377673467420417131150364014439454368717294804296872693752955805945932237169874991934713921988159875308159245183473803781813184741925253026944778234779521436018415130062844262484418801975025107979723265420954309794498618748863194990836194190559636619379557357299170872623816755972509165381072613758693336348663021631312586364361395140380538824438649416918131157716138156446739117560828269510520384738880660981552675626004522975686490525074969777483201832043017150600323318986523984360397626516179818705879339234463500665117444005079785929981265461034996824970957556344333022738771453024967504035210138585704741522628721759459723926898897782104504371638470239142211294801538452302884646393429457149903975802723253182228555431819407369703704329167289237591792680755711484564551105277573657723674413482193970229434845273019034086178805182990793108130552032781053399859368390430746691462299319995282178651742446778622241824981937486215698308450786737658389876257709437178888933995049931766338227167825955911430358086206679512800812213730776475107777483188582810015938663561344054737611217349505043980521148289081754385968849486963956673430019325116866724507602838928712914178947079228274415718624309272861510010206819352944600220227537007931723881251560510841577830659113612049811891764014373857261354095932860438007956631110594818219101730729155922478888449825755747868739447913556053280100905620467085094145544651214363944940519532082754971953586623551576019963423642933297083321950042190042990156698329241832158924163874029469755431931120119009722837086066543074726790724806733758411895224164223640459498273415950673387315970416392328606299399152005467482600264517535628960204461270601369717117433019973409938558341552140114759283201159086084065863986839175209502173203317819192294427813648564246700599377166945714235688152153893279763609565111460057669553778598032459427344539721797395371015566150184555421202197351931547304756862899354507681258613426951312282314205490259713687201939084951382524873270761999246751171764508340381168902188019070904784879888992924321543735274515912861554450849104361728513185764552345839896255842373015568355838477650139166454784312311429217143374567169990739402776952085940841109418261777654794623845108449057142630158608157852047301004614511670896766471493986187896636243771370719772817493575412411678204174012693714171697845789124701551929775353387315100206160903655367356189481105867825656057256904431528211176523419567159632227033811469836866114115331341028817170451971234859805638046584119885172367863037549611532156018039364482608877154390147614668897733122062203847479463349781310686260204245630608821505730454130761799451997271705808391779864809707792945585407338623528745726268608203998515540615206004898772175056569515735745322395827930859703389936546202350509906863012115750909449455232776233992404489329042587674266188040108724068193968804933161845583232436204001455375428685643527693838834472497458860547030929843773908835451503886684929227726178962972291213196272109191251508507030346390949093246773587412074729981379738392965461681619690081122928662869139303594801559384494267772162775991302106696926043731799587722031049900876760231362810084791301769277703517067786332830583905135587929630619312080496103442148766088833951538219822881019207689363502535676194789432472141012532095671436628321556594077551681193839821589128992804585611632558431185294762889527156215730498374885555068519825787095846712774353569174602468235667463232719080260258154843770908959244172771166170700984502942734336197900874889462014246290136915390231091680999310145170591218278163130524034733350963162517529885169887891512057802433020207261864919908394978488143215417750567104314695314312241358155174945180910973305708117950306794531275714195005706000239590671203513151391292690992684878402126987577938347253347084875079236113494707459851521446408043752856628359103446549550243462662749885986622065611458321775528179702804284966098670118836206841251682343599155235935157736879487436264332540971378271466264499622201388684675170265748596436861383336445642722984876314967082133096111865724087742012008767007927524843139051024197682648751787415891182762980153170286123966657011866849829278043176993787310199705969651883810812611014031075934279211112744041342434803899584853968775323691770403810295370186395690984408154273353595792880661998893282812815327932381301093679210722463597255092811025871617520681336798671799054787876830594139194708024971863643221218888147367182865799758112483169456932952927420112158207354877434601187374419052969501552292341071431299891444925751994728169531578980831578262577487778531748841634674712271669977763762131026840481921160891764215199386248774941768597364058047453756936020821551783999647702995068389592253419840289748445254631401044019110182403002880440528845904825611631977446031914727002753692063621783043893967037191337414732535677430821733975249033695365175676157967091187662933772169330210105088972471651804517186889789970738939505721118488835880748366304040185106284685658764855533604836501619160814785292113301678113150732850232321460802935056747195330212213274553680328997896809251126926542239814022695405683200560396654422647034041781974826456083535234558361825531716849633358459784044946846216230581118901975763249088395955635004180503675724681658861512355057148702700880921371822394980252992782892601582007168808030357305695640509002913996868568104492473385126364385220544823517887451241907006763203849923196967992524941197335923251515969972508364762071838604616714579403761916912642719582027444854935269474524508001194057911034528508212027110259436552628143606530828813568543442798427793931504103975338931244874075737268676722913078291649805982116612603396155449701258740854662198041510344038628090562132160484785517707590361786469963331619765068378620995022508158283625606608633709259118267581791968193654018719808896295125488425443080062714047194207757346921241321788993405081096237088173942847866644654662540060817692307766970313175485992211202657584989476748444683571139438871406867893537223949325985980245427046759244429627256693730335611964789648487966012945595980232220514567758267395287889439518004309767602592113115310263278360216074559050589145185216751566036449825430774163091065571276869986520330043435487316550972034131115714010204216006577454253162231447503200363830843117896068827102753749543736019675837242738259158024524576953353772145259504671307598655991807933423387775405433361084986075598683868500686885027580003379556843586877985040836193880786528836205181339937346900283427091510728156025458389556430584564604729865729754141974331585527171881826963599935741720035223310937364705754329057529706231729321039306717674772387176604010329478262386715261559882580995303534092110014635497759698550547273960952650492914963327750698886526773169283172610117688383075591167769987584402645181758242170818020515067308351141470967760228867996049482478582986100695567648340438012669641073825952567005098152799590608057591305403206169671235168220363183524624251022158190056233377628788541056323649310232564965596858649935833448236784532534584122373201956590226261490440418443701905796610788979359005588687695645470320514120322748941027416570686270848646752321866947480448111887887852012989751743067425664490849440904638372103307499841325223719543416322671650225800312983721928545249739073987636440718158956969751587022689566944849649164610644285347832803158174281181212902399160579947974478454498271794874754410734147849251945409569685016238233765045108042999666773574059590995610430944198106291277729981872105564570494278004790952864322571290694168030262764903661322692873405944999998124501984593828600847232759676404485460952380724786858355607470611122687812426911934562860857699652511177246092563789390604765373911755863840936717467070899849099313779860377710687106209319854570550628794989972723022501486798813867728343405914318211824351466502771350353835079582542692208462016424639092823366111862063280640330931078105835097937182362436531775402904758340133663774817213235186500534332593792801827735463574266351843552030858377587546780347770478304255720360614409550518920742998807712434894355447283257329572352910065380994703402010716924863430408368999525608806990681801105023203210055885156500565525209317402591680950768787655987713739848830357316734510134793531951181084757037974685403991613016449877784412882362000818255644229645463407358807204011280068392418655320402962554626677919295809584429714944553176079312347306785886243669423506507142922598099074818206243702134858673161278822686119234841649643977684865323226560808223637130847152068132586800037036247037787826465848825936656530349319407194099414646180628172655023853965500935398568229024799527021253641547886592879948408228447845005768345540589884229086372396649237965486455725701989445475047694238476331736753030947921605281117812405118782714728942048764255275853816920554035147185025940594227753867216880444954360893873428762088989510974507520789088201764984737861821097771934227539799353385958592312493098944515660861566624138230530269540580708838849067342616444333193324662620113627884015011993227044625830288703832991411492527588997197489600106990949099072825887158703639601614694248244947179862699586095845557677712261172947195745709142028068173317506707313746121949081094216341483396354538568716754099922568923641469174891186867963010915468017581328545284633119836194464468497711605545038366698799036138679664912447706801536740833970016282034095088057440492430195291540780738325911830931176884450107728449142459330003584379333468518639958337714880961891405958677044854829348346446437265005175944233432527850505819046867109282428184454770277589840311109303801749066333904955639063975895351562442399891350963366132470560847701508578942952867335297304111575633110656066863308031779829590801054558759584548365233425006036192691144018173064203069497355074065992208256278429777241121009074331272517485640885986735720028104412288744301119384360705226609075565049216549100304461445379566633695164593326896185069610613592315462573348758548880266750801060432545237074273456977125808653342084206976564849456810544382215364558958251705931158191916078266673921134033981540540544116151904044629707086110406217929078553780568176270704232358532228901187253679840104548846981712821307359836092504273517052392844458378904872730476448191546370216247339960952741186850924506663806070311917647608715642627666645934793458967314399246309725405678383629212063839080315676921198800438716597687814152350626510040473273773723885541633110197393021093501502066106593679271674534503854185879596962895465154342333148099267440060900987678710571661454989287288575134875890924479077432079428546407004072153264843712429734544060391382760698168394132208934414586299924375910036829502445471440943056992920423120860478772123822965760234415081938977611171995051044912002430249627893270878554295165638358926428871932380555148213927075120991510809039226878032659882483719018150227351161932619179359108979267570238995043373246102627971924230453629181281352468219502823990833029815026234661733032601556844164686165964778758171525708913771897308892665927473055415134683928201355515435733880030858358385278355259758402633208549589320852924085570579242887344277874169021517052103451698244265803593700570244984596325717811071510575165917682634308620594612908778039043675448710572416498450519846042258019536601615633543560668389161163855092989601826802419168402899962507802523643288937338260114121976309016629390055901176651177015502886024296088725663164728009646527891161757767141091933692797032058356808149262639808539754495925596029733250122278706669689008662206816485165820396450358213127038525951217104588049985640453209884320236549415428265232595642278286539701754516011063052701013256396348917581559992427788427834210667237028549621551971057504174517039275777153733196591187013283166508930701853418704754284522257785815366844245188637251385004735394462067021806456122266628204797707066129792315871151902659572789493168982924529987205663325517763414884212994563773953006768013484222770698222322226179180855498623383450213238458574272005942337314101234449472173606085134669219572639132044537320146148301917754040266222740993583193845636889845486734217009338195677150886867290470597761442909715376452505526318365783005814499232510686226520532165209351552578301645339012576787763654845318197732000189964275266699861224266654645549476386198210778823275381506342267408397411948858738643730399071529178364655941060519107403948190966817867842590747141462519076314086525268809627339117329528807107863355390734883585050553401072830366100367257471992089378673019869442268866929516077964977299011477492297645790190975917092841515381375630012827914084659092545934003029380695035135388604274269664086246827894635628908459918837580605820556881741296104575007591732836669597147461073284855037289806394371506875194218791191418311547269655940649854533519233269318495883025408122230123042843768239310130973453405961302731080714700615085561010904306588994796001877233651283723592032146999894393640652561237744480260179644018244848780687628131080284607602378056614824616968270263472312210603655978107149875461109784821015008057530405726072779320492513145773077295306557984678735701606306025344443654854168003073919744141102429346749013501844458231698677180589576948621386916104638235072094076318061031705216391792803846457865313354423799794574164552525123131603317994800130143835382625756635458061294045655509629193300369239364295821261658436314818335014566549842634501001437280203162137151716369955653999483692663570983679664372503564832636124148455413129828263635136382111450065830550259872648767520012611001044016992775750972198484684476684276000639015455040094660274845337332453397118234776218448537453703883015132732034944775407144287361847108120958091474568135830650212734822987246572352305940243930366846196680083113218359964563538794803590877966026399170300881921548617203093365213764354664388569939811239975153473944614589733702519380689630434878681350223045938870102806965162827233480169136464430172946810699350207405119891155501602322508065000690542713918690477020915659169573420723948151905574376289747682640361257912104551949337041587365080112661912816675702786352585754196590256468315980988850934013480685387459680595087668419295333000385841391802127523178207219480697579569242390421797772480288860400635800968015809039171952328979865013849747759377879478709452710462359689630954425672398385541747737402434502261705753450887713314600469980812216424833910477051638483255970242334783856197123918102783133585031362129014260353460157130756526080864870590587579295301424718063057361509710193361200996917480970790500837294533639804607101002630263714002186929317229470294511823509776148174832686767629338776525075999461664733171097334363992979006404901009950085065107761055218573089568666445685806695246912745187245980410613018427999524035994645971578114271629852730898055488955682117162180016118974162859929465799964371548260438171590389187584096125609078270912027890441539305752128544888056297143108770163727950414841887148761061855419948985210838972017380831437128684210952345168624364312079075473901301502053977248586989972714828285013683216814402846369154240048310510270604056954908510747709049668587988724693827620608512151116137334523196812150033353105925006321371829472318726686433495948536738558442417485425554844823009056573269074901561620826854739461566952908744556540819468578361615080192651779034625417566965255704543428891656576644939726650045031549385709088619038458896389647324785385017417437938677378677269292685329125375383028904920353446535836046629382844258191773109245155786470496603351794465550944203379813610781058593281734560883538624492311978578376151776822085674304074596508518638720842917904076926168907021356962937790424111808485359164335936895555444840911822461292855355160533965307767053993995745716426961651518464084183363177762367370828314680616552138775916993099853389479391444592595666405715013556199423816274631332637547130418773256420111238251255236754848208703907299822127862884656625440355650848823970367730698123789125168391189331226666624235163610380185924782435691289063244050552270050191269190838255283264982280063808501555418550717317309864346322877434998551927169872390162042442924063541071741681539401547982105238549897114119740142696084034347660021443948599083965365919641823149321326043038178245962900646732865114874869366006479342698368440479133645479512733512122815349999004935803808504152984362505519262657361317757721713439684007704228611895645760873265308914541260496045319074650987755764844406886547855182975603493947724083209626249542691368053042743341547248494557416135062332437825798569689777227647652887195513112368691773356057896646323554508165646864982458261357778277792850671320406558553387976241303188320647284720193493551148515958837008744756747529880020967310371821977322099155612799382300455200313513440014807987928890370112123417724217641296440495890190274276069521372979550399068482851808604055568613986662745296176394377253301571926083981983742837279898638738475784035793657338809721563004371954870528946914001382960695769847404290511229839916582495973519595625372550652571995158024342127866323864988723401197203244000838676348284887931702796853033764846655784778796890540952543951590869688080947049750100510116423805306420112788485287671161696120287439072304135922690341926683913431948500142164518351189325810856732734698698567365733162926246174276082766120654299178849756569315868518991446473440181316159174487857858847613963595523794396669773834223925444308385191075212288526673463662677562002331575089070422708755930998842891448242747482565260144690132714976844907553207307669869032273206189053444107090549032495434963001093187082648698138246123759963606770850445229680886876226128113699169587198605509580649452868749877447586272849901413068771240745280420368110921562684147182314865537571240998384949521691308788134024567680097851502597224277346014620052648587715424481896922137346400975655448222481829782871955892746519167093060192536794184251183384055935296618019775676812394417736171505824763851726171250335852019109192269250815268231666619900992374555729754808600494833418062141627971957086316173186291647192534168454816540080877535328103693451599260361678207223439551764572964558107640482153183015240886455788766826646136931989088369346094218521224863601946366476910033223285542912399404898296072936147772938562719014739802310129313298308982139990239886489756069979817208386445929909804306779255419948273933713910749397228406747815809109215477997280019428167813932590608657644365032523749373354022494833486078551764560320129690294679913149793831593273468991959320385988811096282811167021927947312759886019847453896974065200777224132093441207551394685797451882647679387399429614058886468244724168095002012785321514051219089945314920196392893928875038567814492794182812032221170477052228619061193120975400270223423375239507273848672762402589979931454681089783620780380146272666960923537660638684197762665535565493934699101375908280992644990098944819585786231512425759541765114220590356620517657087460679571228968280943885150156829183474492342541505443010813787006885779941991938995517673207639243973821279522672454307771880921987768497152469205724189138743809045315429189461971303412061963975613760064531096667498170653735981654198944608005414041723158067428743163347238126562333607724415088125028208589762903077570545159072587421563261803736571458239615258036905277977072542027946864516001173073202640240891028871235916868351199465823285821108558115473530588524491247561729301064689371394625398217005428548267992356037845219271321631575544241229626387801261756531451573462735522742900393645464633016444801437898102550520569539570719137423790798818974889412293916695918147720900571649398575645953361193004312320680972754009560804345594238338444089004819702867239156113056518162275946045699080937811175573319675837485264729458963175193458540931351357593895149447739033420909932534653525374185519397405034797900939735719531292236350610599210983126492725513124451188000271538691241269802862305480975941055484594008515467552640121779345151650998039893583020580902405384746364599654338627178323828167914848007275686062802030085617268831197921088684566812094785954089911692551804656460532275308032892553111803076242192760277492626615516019964003831336656549954185852587562230166758088297649232284477517419429147496172017369347135839244731732939063507787250602387301867611019011140616792080136115048284107529197786733020722486053354595870169320552239842821668810662699266524475051165932801057962777527442480283210142921119194098395924019080844711403289291904228079666627332745666507778468414572277383338290713337681427649946927115756608618584005447615900147802785121189888279306484193697800212663633757070372692661687672875747280347980607245205968907982910106532147653684118102453448630527541963422347931076641527755819241190493678033091325795115587633642684377156409150170539918056544406445912622691474903057728160702935635398220025194905859429301690652323244942846926231056632996560009284001230353449329085350193590352594078539333665495186063104771348572207607190165528861968736672857188243837671209393043171023031936347918937147814592448452209333390213729729975700211689129918692937117520477538369380777941239972608770981182182550470332071427284669507840412521022609824938498916157435314304643479341592413113199265689616306803332691354775609678626305037104067147030823214805094903382819295820333589478826546303029311436895054397445720855004167170314412185332532643064981234161935191457364290162799323448352450272547194867200606421182341841981900831008335677401246136292243463752939362574302479203187612715967898642954195331358167283352781429028680544681877310684120495249804519074366729845696741164400609959185279633917996820828047474253419349255135588966162255705170610129642427064791004772280427296673572380478515212792943195151181895489607125780738610604285000424416801585701278349923616911048031109434774632545118024254025333448171079867317406898184381589618587416736837125163454240405556843064548442854382225249325227621287585178638956434941098725858534952824284565724701983865156777361861230162753468373539811451125067730401193649812677063289032917544230687077511586753950714626972096547941718964590818388632074395706411714297941723953365065723109673339724730285293671246808359754597444199719995773678244099914289509643084276202343253828600108233279676999556779168941528724572059947539457869204589538206370137066153334670838911861747496038074819052319894767416510314178933651483686995365632163237423353386231393170717900354625684541269018404664281086778719244868615983445225077358678064092707483998936195598604792581825384748504294715873847024365537483221693222834706276288192271644649761499063102475861611755779968464773282586324748123961439041095461223308206694104692552315099056972848230393041510743481320179436409894360851986579776296333938115946670698375276040119072713133072205285533235392379259622528240294855613452874905488515042505709393308240461826577774386239026772012919285316591815088130220090732856004994192856339476239942928614235239425131949969842157896225125139379716954605439919928488559150740356457387056587556254229966175000867597071123848989517894192231162775398363008529052007710890546987117119565917640720473417522581813725877383855319377205856484093250629058673087631575665428394974857595347536718658940827508024294998560170984996867349884552892009964926663972549252551901004152712354156784015334661961935544614452888647741161948883869080397889376765303141639259419524031161367394729430991822781923289330352480184594389291503960627770203355223904879324941984350488527069463344414850162334888621493164512797984985888076829778444162867504839915256275967666155332885243411060285957120117078330614568671081193254634868666406900240395456182851225561472296667129499957897953705621161622838767954354784384954167628003030971191322870814073601969921764828164222288185555595102303988228631500961117889477815487449856623412259741412655895392823058757027388177733708620515731491279843764842364664640324477279750662838836527870120712982019194791872999908615893687296303585026109396075802319355249490407820181794303403055223014695703343564461779310521546717249109230081711483249676985748492819194754163376546655765850676694309402485959944832966152257930119861836472136672381614805792073931638464944519708310083846627260692405575707620594776547334029319491655076135772197210538947240212475004147060310491668179269448508248942450452317394437703122271576172106251776398899242527817341736266361036292623434063709788242416410806137158231578979038032842901782253142413210426501996851963386220911677236137033777142994853464593028549901811642468064677055478906357132928488708034334686692436883626424088120290972808008745144359867709292257529688138942455512562691701163077452045413841817797739847713447866657902361402004212825110977933052206926680375735607691331083691706627318201497218508742960321223533232568519769044041258398065835114970885577992109116294149245455377599537734337170356841583459896807840256891746755531688803495985102376889724098694174631123679248637312686378699310747360739530102080468987443428329483613562805106545703850881260717025717286389918880545607721203567602369231202973018641298711630819735463982049889724846810880471542882802639363832985785750415543621898781396742820177724845063544765346147934251377070819363770835483709493088779083492698642006690022871372772993237477306157659564577146536270352176172983785906112658139361706153067609755708372698119373165691649763297514970143191200373966400926094004891097063554327632951969647025023252412489580606544596414080342564813749294486671886062052958829361093839313107597980460516174718521853494288252913055642811038768100139904075287088702777106236656699133558018381805969107308553504655875353936451141455923184729795830158340055796359299158457579901317087775994690337100045310109959891299748721121068751471230262725724675302240180259767021349568850388623439477599573748121471968207348153715703819644351108022803474027208230797885880243334202804901531521817278043949523135744890498155757735398201969749134015668546993259678743760961527891058781212213177849165673645929167567244049158944317768456921164366010198866506002921518388456271060466800032340751645642647556331899375728071608839381242769423528258115056696425050507101886449077569556011810944179941843006309639782371477164226325951596274670309301963664479201282946947353938884629383208053513435006010352995579748989106571142815912573006729552320760315334668671619855685904436598808105624088194189617350150207080334810825393785361876504616363522173338080555031325076052506677053644431813575295227046518329201746097956630273008364475072963374396323506600849577429269319487028428014618551455482767857245193940242412628308522579441957939178359463731809966519254665788509861528571804047936422266374140535904073554517617223325992509699470034930935301618188314431941133428234727121442217439309871287816275475938827973977326173945673799829517075251942037364949059976840257190168977382242880096813243264736196622024187789924620594719840113636593534853879665997028039634907752075278658890473315562193319057220153987751832024257455829450389223762179352483935083976609477998168934657727231539508226647179990282291139174616278755866962349596790192873036564685959367089261882726095299519241480108632710502049484124273375960051909610486679456608169310649677744016624205227717626434185353359239908613667154768568812289973503248302713420535811012361146235340681937442377226096205355091155474034829366572063581365000794758956808609027979803681997048401131581024937635017067090469109159320293661144046609607816482696994195726902359029622748319110951869882650329411861639295885074474403482939244747573802798406584322578427013567363613931784765912879948882947720052959469168167240489682511654072230684082712522203733007117170444402311616544860069294315754293586500502463961287774819147563840884367122975585802595292622271968788971870758839856514173698185951777970875516337375945767404126311535763424059510229965227814113365788824229490066684219330675528621474205141980012666008530096495077109940148273043349309978343626359178255173867964656548517323909711228484418607527722304953888882367325526372805603608366952148892706365672115232991152351334412461263259925201896842700309008311410424086792300769526400713799748609036127256481490585000373414855397354612537740321494563932714889619573240157293157073393198129716326001859488564155018377591329082120598789558838046168388302786022202961183823906629936829577604961158536203734876425485693019864036210200356280550271766903232868806997996758446764986067600083879448032477342976568890998667478132941967663513060698561578857604277607150242199284679722261777200500898583276336941005959357738423213266556077587440373803486484574072844082257440838412694969303406470179528423823638167178113495102120699094952124466064805217190829163024932690520062680885692117019586569750451741138138779522216421763712276693248400004307425813390522312190325467996808190342585983922593932725563630904304375805974543053656887015289970584581689454600847181422659195655252737776295065126004357720882789816859487496867712587285590904485576152933232955020739865826634717467900472582600467428026643673070819615636253323841751267746054565535332769490789612456456228567112043245054650131953764387900163396994429219948379665810046216830383948696229674613643417416272206872016553404617067213460240063911822225920834204582043901259724041912513676862440699370532949192382698864822605724653725500165241602217839666129832968928040018627161279822033353919701578789096584194308892064206463277980674921510415616551968412546961187822356900967236109408811349586442064662483766542915599466426862072701531717106653729217792567425270586540381012631954965581678105199195905695342792056759305234089585215418196223788852973515847870729528951211060375590778989760261025682353734514068200152127891587720133029783221858337100461643019029270180798659404853592992208230147576228654025238335192653246283555570945402077332086416643798350284260128092274724428079426843894079754608146567141469854038299998270539546651671120955552816782364105724777441530286294725505079143940942449861195495222788228580373425168161375921232600765629955683633131573364354229023290631507012946990504193700328981383166962569925935804458451764057862256386155275588327635400302275090630470382372259384168622925461000509103240298992499467326142250822401400877611193807221463463113119008004617131482281646583471613712407326639832629478611155680154865823260532935786592610274268031209075844558907513637924884833246585687328453244079583287719220679502164792918951719148120680577038048481619108284759051933714452110497490965508688262610371458812049545288055586600688550308104631345392917772386146347259881565655840770139331313857046211763365244583305687729600379879474147742874964840454698798303775346450865815186858776856915774533089576617328688480454290302958683870496969666401533436790834088000945722633476758675559733413639609078761275015404546102058729061439432834938244055617271730864240788465261166775895350688644874186259538598709496565600346226651584487434575322816408629107461548828015455082871660134924652765200588024248970177529747987765457583142376425585715633006981394927320307516682797168415569649089719561419518025210378239353746000992737754032949984079505179324810568983570405031474364655547929155370373566944570257222061821603488312336388589990929152975329832883284309999246200801168219392155298360958512303745072614633693550877241953096629577701523730846452131159865292877548068228323433213959634380954388075699814844648768071355767877979492805342202995587357411155965522035741370359830733422837130575942522675028281322653075740455425703475001509405802463764096982232887831075289722159967191998847643605608592283617765937490116284162076374268373713650406446310937798344462729416975141825823445814623899161364826058134928353446139330815955311439869925144627266744793221576557641182447775786438964555553401382636092246375471889441495109700735353941582264767923008222195600793072392692617543606291632882882761946027427579555281149213981669349726336446243426763968129689728054858317344522619314251252404669543691402578895076246644034444131338756036575798715038000142179029713966225605550413217552633257606901356678244903612001971369137923890131266688147642787087959429365400234578934884613894711232295434189228310003416137922399297254312097554034697314034516263748655045466976909136714732639054689033369567072372703888396191423936754667641973420689797520307533056761941921976068166375808455669222642927477551656860782466316348657534023136945795786554896226954845152268680844456879576324889990999508106848577101226582411667952383504311180291266423770488026852673723475469453859150298501392335249301917536103132933581832800056778401851765066055565690049246022575017696364097598637101944271940126277292634800099801392151337304710527104627879105970497195729990087492494866027843238716119355798633611720070736195056568052704251144085201202701510005894049127179100365212708545999340716142681752401184296119590671783141270401836405647036888759669447682032015384588835971753894552616927433183644818417743631016797427568970477711291581029418489397603659529196643781843452722190290289938193521532610643878181075389489349596795019688461761025170439076494584088838951924553445523433221773249605966125216726029050090648066595172533072456776542158349016668523085790111617301736091708345158725606048811076510307605966744189307148824662178784382479858848648895088619867366830369553145677275237358611690710294880479730786159893492118590965511257052006937745166017914072916412358008169114589265957424506397147403473364057257199743618370367032009420086922045798201948456079763668666109828922804426715134484427214257898177026949272188253326891470127200304993890393884255739288926745424090554055402018259749166274525368249974477991015470360971146202113198861379245308583411290815131814543697508826756024889324381811563083246435517781613126609624305629553821776692430308246361628354946831222207219725184021859648713185171694028121631072808725272262669791890504618071268851645932993759480937384469033431467997932533115208630500513178520360271100538990728518311112695981163314191185290383003717771152975730287578808571377883023703534996981299305962582654435306195049883901225033980329091904424703784087914605527919727137238385401765952009521983819912514695200857260365782882805883930327513289733936523775071415667342938783939118813523108030455864644989604804118597556070380035025096638120626515268617568846369543024435884796016653423751043494803321943960744837144745798937885380416675077669335880685547038378162304130238354015693283161821427128992082394587189487287700350383693235801761405235016919262364335200985412753347469647027647695104491682004738641319457159314564786729337021388944890607610980365248931490980440467883189944737533513949533367547235639235575909119342205050590295326492124295516218954491982370447901306173006945837838859268979013166360336997310264056278138084870920668974100883771831319750527503897422509404827605662685100535936662264837385310857753024179795612939188379975610779936079202099282645362358077937074626745215833640995518964631020418498059795752195200124995766979823898579762258152116608575525928319150198648471201481536259056376791915168883556793721184770783101940722338511274540307359725194117894621856653012436709084401277353207525138226933016105638086712361376375439711679338553813414448607097923841069045863931073804993806877884615874414570310613584840238747077330289556518047579897038976533265851350448835487130043604576884451838189688138607068060070121892235103622517312804337267914744986209772056145061915621956499541846298307148792313924247652808277366642108885718082607453620617606784735672542907977419841774899443934271599654311946010532994770399896030461474527891058330445160918847490370342761870916445904225885690958295397764428121599597588252413826760147657845729863383165689176738663127642323082375865049475216862818297408968648687255661049852213452197032372989672064121633910776577212753134878358741884587452286369581337840670933075586215261679088722121738388211458474966894737634400901864616882180231904141962100854831270053071028545094911840081375746834861727937934393958806948084375102984520542563929688607896061180416075104813766277558048378262972825195955552807108926532299117892075923236999895358228265176243630514962104758009893246326264869400410255483207349413821552628643796582339959959386020682344462152550196053992813197168308097783717468743299011387059729045052280642068423097144199191041767465611023325787702255794719564771882600431984226457589181953745825612345101921159572234293550580888661719433915971332856845486907632258691689345712105131272799516254708522779012254617428741867242661633550270329214303643541407248954512995888239816396103418711792477674823302566023207109007649572717327233997652599431274913645682754290406056081243756968917363260794838848591396450139847342346498570869816447751650595538545230213103307566103286456033615613358129717389103653549347671694298727280157254439698765126672783719182676943735758570607284800763607201021522536286972919138945778905122069860024823618160991530923890067865862119571539253271011059908179013503747640548343579172022529433641993100421464611948217567472357809514606854529978900535311883797418016544836684150195026087262456306808185660163621115860022356106009580921960029284553254068713731559702440055882902351853888381710234066578402014537419279886638404391211291402190601875138682612254347224520006321477380311666698253243637031400863509132129730888675044792105029036460753537381552463698395238157902829885449216168458130805789831310737072413805240778803058120915020535694817939135626717371735563139093503064367218254654987130064961681030978520478730412902734200262858664634069789338988221804719179396206368219092731626753684644938312199802914562215883933165597947156379167198744351753090916164778349674546677280755415858285881608209045258585444260753009292945679985627654554267367176877878319846926546561723332096836057397117470859375314172243536842829287258337877273349557273707303415164412824704856495316162258248294260685617415966137101730351615555662764173325590547448286029623310769609883359181954291594015830434045374278400565341142447537236755960210824793508717924963428337185583550415356611045311688181812199856481999043796445999389958166487676113397629495834635364924844586987769062490029915291240492075341815434590413911007241032464947797191999146096183369434166205042623007847058971275981992029309426365946837095720552704089462808366743099264976879933099085952951147191959746941177394228996133199724516425949857899588144155553006832279383975495727592700749940936471561821386876936635128701570768934570531250556475954886377428763246015347219107195433191289664518004236614327293304059342073433030927634280086031610529425931905129864414698385874225457116654058813302616198351048714726192202401084031768303738168582573851067639463480789212200546850108654080456529920179350684480493947663685403732784532917959271864917169428470238225618315391078581889422030652333307226174991407077348208866591977473612812399473077908891634903073488637156374883345930696685764471705141246966536709936114102078475286505148805351699400816261110944150805706389876922360306243695816057154267529687921858668276302889770547729453816151706071336439664794823492506775971638539541239180203964740344390266665846790311991842237621611552482675933178189492634979365858566216891335786864190313640053354139284702478702293082809946839571393681205327319943051787073084332295136411481527040252115337255204980530633375299377381322960590566334440169306457476564588933699353696579891212241287113270694451825127299419591057918364322908617544618937577664973901883519134369343259915872658095669027969594843761157870752233413534990511187342327517206874544557129725480368512063856460839086863033149730699343305929151382811534324363793412259816877421857359120502794113767462442138262032516719506480111728239952839329375668569139180261632512587143745230077041814837264092834804267542111461600663168525565747009138946769176354054634579652408527621274123374295551485817824663403717895426614318768571837500852602299397375626664531832893149015093475624095406306029607969824848768849197953616398168900454674785388061728464672166748873878203734364195559345162054371644416519715241974441491694061468355186686250453912573457689164608314308627162125314318700690120962435013143765124836823141881484367712569019336836259645360609339962447020004650668901524199187558637059811928641734186435235220620294196482824130094590539840179467064386394812181259427368365748011276507976937059022948420326914656440723483744569482457033420683439318829722953419038734584211525873972054868721779048652107676208661925529115004239441282949134356117964319359963065389261511281938446045509100084397369226130826835204657248236578157828232205286419478223717026523133336022723602083618844045735579209350413580395504845894807522704072627365108499484007386898315832201613677688673091093591361787019597547653953759593522968123999671310053093502876790346595688986385596739115076890516237165162788711777992287058471778384769101621126643229143935672322062918978645236204024868464203286540250037022940340828348608609584112506662043046686289593849865194846171963342264053034957608222219560402842677133287934449419106596691169958106886574068847259218399122623527452575236403352019580949839651878305606433731847077372511516802114145091039767947662610254886997510185760424463882438276349116060524341934412795425103830240478391503626404361053058217485448268146791934167104501860089206341994595889809133145397822240957380878936295105258504759782725339675869053317280994998047713479169456101516172369126921657254475775648715807915679487470886082493535388237959748311676146827295482200469110515098892502552093723182982781859019629317301195496402188021319863985637642456186684648653663071210670561331811054377628119330202244561360102287012533143870351142240754077618685607277546132549852991377854285129061084687503537053008480977147603952763965941709161323318372833596939259394702004143562031171619496969757416864081459836382221159509384157700865193311377504990531382102358206402097101928767871053094166347079914194028705811037577090494395693313639425471141736929910449789617080620268462580978511325000271523835151796898197179145716867955063666336971683754448502186891755114306155741496110194378242780356334162396507456661567974490695628317184444086083387678308222187739107799907802972182516616733612639972305670033248198930990308993332951137671613478686060726011834520684338324636957808993352789657435561725428267260608538508563423966200456347247772908751201019427040125046174902278784179984716737029888632988746799648023990366032996078873463750730295263535640461061949062007087514103183133833881759451528986608008538313379511481172001348690191481229575905224673403528091773296997411352853459281193757167665544797399148792809662158794953288850845793424905321449981664775236030568966936325668084972986427377606589045869749274048954925913018588020165455113163301010447172279271534031255733698328322261091992407971246581925899519026852776824800004369206297120765330428931193819428595414258476119807944395239347082069376660227932770801039042897165081693249959600753957471500830555335472804773670397235392576336152674350142074669600120135113929258578015995309838647190267525355418896887313449200477111056082515863991485853245843314217191165266576492127795044844430188810745875242326480661319227386877656087818041095831512398869167925255890455205683399737351427966019719458085344365794993526983036187933444511411524184944028015296669532926792272571763215337286631253622086509251838182397235568029488095460150334191603168300414469439529956123279604262658899709768356709561020805151519888288122996236520664179083305552075387735797418636084882421351405193681674381773699899041826996558964992326935033671276871821625017129768171750393914076425734239877041537268800658711792609974911410757977072738587881973384392621331323515659195021859941151749769708751958081325017928712848181246053354971803301175916320537515543891911800651180900667662654268103792779274520360650145801582294181438642743608340484208391716671561822378239037503495113758384289057990053951249834406502218743278684847963181533924193470371831259956641734211415097414070424618345803165508790754298803756000758617488032473622100755279652800760728742776858753368398436511137181124341801807128453196722409770481713707879665012037048814254662710654274013526250532584740505173149484871499613783674690304520235922268518734532563060801710510603129849423747696927368146444600941317691277531146630155342468276687713802328877521463038603815770650039483854609660887038457699342465449805988467292432421371757907582772232680108585451367592849129074325892257218690095932437720124750787848888990893575347559715324149726672677612804639289974063390139552987383965698678151883432246560142802186962754631033445261790153700355345014328541518640776596056502041484939617576981762709139099098646519280208160723080611252974889706491150702588972910461673791649071155910248362680094827206720299722773899100786087120319248192982944798954899240548451992535657931175334280649006605443523228469896931385015403328258204710395662275775706898248494050090721673467813623015905510226212012715688421574722074093372182446109996775078206049630825779871034335613009823189761203233218840129693605866348824199849909240659718458666919966773863389398391032879175422199138766558933996630100672900776593235120895796503951634175650312312831424915270286764713294729447450597002811939838718747864767453193210865719817651499787151649939617567074336595542861461943729049699093224644981057790382076031123939306725652438583891963718244768717439786428660406636656044181668679549224690376487130594069718880152123835000742031778220128072677996314215232180958965193275090397781483043738030784115978685854272112567231199860382286347143571209602399615457348323455775903709914053896336585005859215744305534979513351915600014312532948840534255035637965083256287580067990563301540181494268096096180645191727596703044454774070828298976022232905175542434492991850983669377680439619714901802949553835945266007462718509311707419602791317168437763091018544201992881503617780026568234649236983770284942255122889368492951871831981383594513260374663027447492436432265758907201729349839304114552971388725284178234736851454082397820632861590717401841371208229238485611563893230652177033758172906641147191667297131872256652543865723825531437695227537819064611561293316612852668812994859849861496711553003008270624115043292283010023187058687307913402362255464113523540239109238871272526463044175017314018494025795993540089838355862982203015454903850925415146997250912400993568689012652280362622909211204784961620553949522053532454542557643872190906975455991778152853260956780605066925723007135316819537336955320251153430510111168658038157983260410619336428606163836437572461997331422691211375761799130589311819489828049990863543086410038038977144675365913043799149547194840010615075748089990527130919746197941802320867330786850571802924969414934091407405859027206222305159268813444116619637434686556270615720121390221040702130868933271428605041896551629874660506923977893913432040547606666214676261510847294541768938155977991295655852713366629944898264033191866586457982544396297394031750336486018872801267998668163464426458139173003418804168188266356778960392361436506902346728045782403526635703771534344639470312690846449303319801137051213611753391212184802450219435513542373668446512152695482630304596216398913207591824401025981886607585268231866680696001368079325420811951285304332993048377825564937568046524760327278998550910184879574005786259479487040231718810206354843597967528934160369869147440479197284404762555140031807975788156282201001871674004554814793980534568307828717411696358621607692042779613133070356814242461468581338600895925061080757548136329504034461493982187341674101453694089874846995740541219917613236984864910149345918827179896828267862997202151319938648298707403908911478072090201482469321797216093399676142548904524862937489610620447108138822943614595598161440605141205641026129983267718377211889470826660979973470719884795074898419119482474995935344415863568772028451796256443227003029793564615122670226156509190442400119394986966420405302409498045279375405317712256167935481948825125197591680306264883147767711186357018578516624436376210850568128025563034751944306023177447277539667789675791413439162674295978231708137906194481267447942396155097591201455196989569997869938162731722213807894545599025105944657645061031911144631054119246073087865076317134362828224362865407725730430312584556999757405577828269340805158618352625385382869904592594448434617588325748551037163024107843295663956215916416403566911125014457616959519967846665967299482120477776671436817428134338722658288171155508361528378427495787412713989575447365965678810132027756761727172096161697823672850588708393637919172189852397949722885124443088222447120441154458976945337932812260155464205544482603798076221671202938528433414948898119989285990948781626558833919763936432596752316695471638732183135954677326656988392388134717038541462245992185531973082054912643688374594762875817241189465875636940954832793401051530345955945176532452900151669257421478218128499887623685539072610284500956356588452180791233346073523356122705288995310075989639696302133739701863250265995680967636252113288041500077499041151975891315753291609011226593924758421213931233905394379986133510456178477114855457710222976992130097328113160789833012828455204671557868693627287195944223027302115501641633947184830631654722006023311214278097789892971752859002397350090546842785540303473714041778002384750332594430311821320663718510614746682971569931529009711873407296735668068995112467386395143555574361045254664322502665550978922482985109090069413955183476376672382106984446207010791726061455354032152787776542543292600049696115631367694427767125626036909442166332648561076132788144711446600162908587911966997034466416486896510669885542655697215547186904345013166345652700791262597577985159088190108929802201783147886701087626404644310980826513382310018118057744184793715100181571498725684045267971782239604570522749465285827726743538131925995936843983847543643014975034890770105648613707636489400027850557017523529570559068446126681817060256533888666379235210373720420482460628318105093271462974413460963196076671903584498994754029901056024006390746546100203068510761391190897276696532957593813360310390772565850837050586273835811074366090507839156856110354638387167806971378875776952243958011006222678301918326095457169331302977172407012704919381249060567769205204737909497701725868580328121578159717933316227584484206190964816039115250998583619747388194077564393072708311953747919227117198724652773660878979491475409076111566113746385745611286629704918374089401799391610228194102219191920681022484906620348277379479845566310393586490627824768644455210548326474390421428934283360255515849460100624694055638000702879981355535059614527110191606367944583917478054029258825243311466722159906216012237088608890955512333415478768586307792150098938402347585540231756016345069483662553220675354820701272097637061503736591620276726272570802121359335541064689971827449666275311229643980439542008445491002360457648876297555948214267067860926879400507070522872544802031099834455808088875604290317600317218361249903726428048016086607413132520999741532198305675406929634573853059209786886669140427487302545797397552495360626879535505919519321168518092583576532188981968674508137886631717415894035833875476626574608603187600862806433227807801020596813032329412851867668099096676846749473947854009816659810303997009269437606106148210210470540415934317613939239648607621474408960981581995310030469146136301660151806192015924453289859639988930258373529397779982822357407802220673669306613286674326026053615646248989895103200438365505028762624366043316395407853162705492655691865327653914489417096280217365885771874662645060950591999065405881766013983705917556678436858898605680999622157716614105477831413306391042564156885220852478693043966731902329598124863505519267939054751147413406502014170133673755122804832086622668530300914348238750632931475748622969802959736998350986356963908206805500883773797119933827690254848939509514807722036060629481415810688321442806216465275524956973941364089495958093690399761804484548455709316582434128963272973458373003948359389281596278971074044119539335153261459226171042675306923769472972095117878219587929152301899606436105918969552848311300312594756374973372582284327655855519348887696076796768443270327885053622203086869566491512608480087636565993269041715795665037421735769873234095101423618412984172295155639169485983854637969130010982499873009400162577630742035500581645096346791923290338387010847036840240748459536150305268488653051568593818271638597038423990386901609581143264138858452003274547931076035775844904388244443604957191900241382406095270826318663235839362344861835876864845731410742237772459390412333155024115205215342639890814966161061117956275915832853098258102666159982365101379464101119300562108068875344379648974667783350327669647429997422925449570500944164575636549228967684264188809958509001707884030487454532984407386599891961892671962356723799960581555775069361373467291438883094608246784572557374930866070663743183384725365194666238884507676353975765373729313691146835044632026469803425618957080653785264922819106544703916866714641755733358526234831236041707408708348507985594321933147010311907022095677204931987483838952241559061828341846599052354278182190835836234461713870884706592529877617290052051238328168521207206520787903268440804490027402359624175846282463514361307858415839720073922787749885714033973502760616337061366334430992574188307936003122854475058441303031502300771198875380070845374283834762043266238350265415676732877379910255448949921587583332527067283160522347932657381914642624082491129632632451385456909453279256930303773565844207240271404580031366394322035404611252029087652480230988574217186951722876228809083828825638403110439850573322908764964598062703362477824731327626225461961615843058679494058124660908210824708660204176554820516682128219971641234015430488057396204219920624772032727561075029002804352933792730504839888184844448854415711699879690195214175590319727217661738185590085006782874777152949176385797046309796076003395192743841659432951006394809625293236043913470794884835226043820997315608023337774350526082782108300782130337910590525417428213436006408003950437331049827948103612773304299600871032275657791295329185716827070709953762436864005823984744749369284445531295261150467438964030216295782962278656569463030009742426415248788555299044881310388836603052072620969801318936639482998189488848394569428878194996592477739319354477113904168901554303770123407687158474831427207633792676863037634188400243234314283441207575288029334842120994495507119886391255413165021219748846592450999662873952612514089843947090203335223487896994076076814516455851575450967785961992871142209908276800124701255086685241352828160929392086535319779605207748582781938993595440370065323643856691334202698147054077104176219122810394923100377029161165186371405167480337545882228117389269119414476680587493459681973371328802260485322002409532035382586011020428454724175661265712467108391040932103897879577400465796387656275626867008686146713772557144560322870409677576996412394927007379714423728157295674435216872928722383943847505678962134547510478418069766107895111659519106551388481332917529142554658213580466376880854140541853499760994615461670599831943109113129272398083608659974714360079926984417626803145959613742072877211155311504356154042335489130873549013530453071051639123637265848421854429541346911907685937532681224334437314339252384744517711326253108297726212160225475376063966597553979613283576482488899076927825004343397240935873825337653265832973441338283804246474422251612288712575730094231720896363249827627581546511349878416078532661511949778692890462257725439018132629141772712873372417657868464040926628825384615849895353159350264897977568230942410627873326396992244574494555389846778883165499259799322289220221208434359445660145237126745202408983616071735611691186554605942340590607869902884969680589288747709462351179415965150074562494698562104163584975673196269315870679651352618448224882571643298132459465539107878231272074421739611804847019874144954000660485611859524406258658245254395012406678942837663794053043950909650020437509410191987718041542129740981338533279270159098911219177926174479510599036698195835263147502183249421473015046717604268727723452561313188645282670573903679945292591291589298807673133773586597890602037749548803243609968857457611872306481623614530358246490769634686252683525952481836265698196135189463640019980714882201181513052345450012983627805172950213399438488831166717907168697035197359487741554956597345769493202331843568284421774386730218184565070424746509658810800723667562394717298632222414999900546182854764113681852193758890357980671518196576877970314818032261992246200958012336314263182571433270143897109451711604630495075456366076250586567252776556919570453324474132892945525627388186993885129583368062798068485248850424629746030691702657991703623549406124875512604754969988381390859570427750448535229737022564947350157235012830308949001239517216301391418620868413603262837474196104653665212104325896989575387141455040628134334175371687725843435710911549397292257686905783250014201974873337976370277860408261996854737351993349201640862127026932699395366147648053257510062657871067305410030305747497589560570007263866480999672799097794180634561811218475039191847671124727131432884069392348793138629209558064639356433128488143095303157115580338264260315526656148467936372496700834731869936369444717277003198583166277180680861009334826723585911331061858274391673523802696480564542660105492304354527999337732472796152682699416867754011285921661323344411737568467899049844658582739269357592571348079263316011156093407915800758599895756714243975450033383075287248033659793245256934192456188808619050793440401760047796455071011081402940538667804346797154261683649043816487476342643934980821817776084930849802313158742848492581378515770548713096896149822820463810341434542661291014576783774072983573183437334263775126309156833664739158232557589431671684278543438164602402959393291722955690133588049869067609748113698874376515379585939063471091737430207972639894000244881939154142154585667075775166291567160253688954909262656435745931033358169139033298292524285496488023907611685431018148475029065610091592419238200112575541975985124802166184232813784232673027455901582296475035110174517683517535040358899865740129648278449541589271084790535502303190208775920973479051628114926224131314466367781527371912026696871101420323155996953150417170075493447583971943814741093240318606289408554967776497656780747539749809830142827899135259564888727321999075550221820362238844445117890873155589846634273773531183867264304862132540453393560904410415361566905738417643741007916611595828500489450796571524864052927641657013758096274198080801778643449061782518453242142454398786610746544352771482336599550399118204791054741080353309053093117414051517882621618117064147234423102078293172847915982182653030230953240942140673934430760211126142610735209236286775143452675901877955673833282545528636523698068058474313601858723518120116028676289703530670122818620473389471937286019675568561442933566282906122392640661115743670698334080846998809929530937064676659774212109326063937789478479500864907992289698736136615723590638398856434272043084099940117930090855700408737728179141376234831150489963408474689441731463027564583352982926267329196761800281623912171491822707797105467756143217226411843670576332098979520726897896377817070044107757390845850905349676169757441326908456878364016773933956256729458872482372928242044122367885476188863669347505918142642048897938348002064673334539462311025336148421999029008886605396180109420719899182234949779402727208083297945192537291121186160578098614564844876546796771354111899833949853400490530478944417072461024303028180088007289946630151151727073409450778094845402871878422062292940538788803519441043981898120279418982267697834083648626205455108543701180813219544211540452282403856578356702535217441386762547896261107391316749131187915422964259281910861394390837836920657345105707067671762873847244020674897781373864151914771364589250361431769597896968763182161278785692146642042379966859003329679812008710197829409578216165683489258753812972088753627193483035356016131695151901474677302592312150951064152850236688432443941733019058539885199125344988671614397612520245604314027241802519204544013976570148764530116276292560651850744519035146604932208449287854998131362197629892544445792973048039014499399628065512073182571165178256608176686828161731160353518020840118324901352578103622395011080322738969414894267347820959275926530111237523600936317881175884326111121807509566576301704162773840284871763748214884752264643971365842555849531163982222067821535431249606978074110879578883724077451862444226018605998846690475994122765454994631388883455638831578157405146345095195075669866397937611449753957533349390011468891685363648951812830559431227227008987895710049198909476053327186642397123138132975666932779309851437115292900338588140290361061283051190374267698088841816630015662765026164475995594182210718698034783646548481637383043381026257489168441951941451984518836096498352216735236909108289410014775722086017651814679859299927947158510403135289534783249796318546024118824349727522956285454486626878622119741706707084210088057663921337061649068823593933746860714365094270575893458654153239076705580200488369172948499542984693375596256584603464788099117428105025054258551082173748671810765060697177045750430953164247605918005462720172559636371177787871738657014697384500599224034190724891548842547517605381311959307359791291370875196555599984938423153916080402287924763866216982329182706355605975642832005258014472563801958418145277256392395179531912370015529351347142350121464005941424430072211523745475312703852966087945008269807327495100354131884204786241792755258129181222319061237417437139074800491993508335906463250570745982649596856983751668856302352263285889224674768366117266908986225164591481719047870575236571884446067841553174217037736978330044898374890891752173982184388629896993721357965678055622847739256554572259155978615533290409259158184891608186619507291033707278787402437682759598107467191692135787150412027130313203839706709701597936746926479044510103325094194160677200092615243810752000144184472173047311795164015178654092669401932496814762450010740595484003740586372047031767898199618110364962214660853928219048483987320304879133023522146580841130625949795430942125383057316300578582011707888545101536669538439538609908356497362009988163530399756285828314253167320768961568329469810960586134275355039062052815317176986245735022157131841925254331927368161381136323391357661459130222192674851608872401665523210305023955225764810584346468478275930432347954366166858234915463892193032294658655710874691517357776953933733043343077535136763348325007665507303404340912607383681167837577733547236457161193312700014295320007809399918250950114206213116797016678261609468810605554681705492005878070822648114833872437840450401485380409850351296985600316103305912463651553323187310627180407183974766451718843160923368713721254151461240419218552636646409003009841203438599037063680771686195969537227233924776822217155214431141173860960718101830938458417736755109897118132673377761659768591647442986686725483996552790073435894696477030975354486167841897919641312465412998799836009389365028540908126093668690299077697631429658911359778803317954723347950988187102695456598571739445631182418832498458845014683278573236933224073229287927524526970331971965446822268942259448705090752911018393492994211865237989801307075685323221513945769125548307626180834592298370927717348782237636045557360659755563627552778155957518775484787783169024266182335548801634057112494379498817200070931578273464523927325492536613431139927647264435643716962180723058113647530478087527300462301563073717461424892914498961504588522954064279056605505993073744087727069813399821524854268733627202800100040749143516232035498206650743379430721795379374155292927021533677578734629297462563717846945108615131956308186394610982692320874699293914638765765333992980401092884363019608549262860443552863955359476116326018844754610532422051281817743591775608834691264033214125975992071581330321854960219383572798527196106987157891259099411413597739815823655439264621540460135282852178968475579950140931986325452947927101171387843028175005975611655323761798207033477037114875659003745075993897090510890211665181971897113123813813938807423164790244664791510005236785435369853639807282278418871413585780660602446039682867532167453710301956059882779395916373401461772642004732927811239680079478241372024815276290597601421263784221262639091291576841008884887794715685376877902650328472336453009777335740604834019174427811136405240711065026623261438707132605079652556022620913153373859863807002694263957346759312735048320202950351073653451972653167606377169628671534285217446764181712823843477574471549826923280135874268761573967913135625606663067896143035369682943586334863394576711469008627881308785144440430060566917453175093010579049207724122988251155938308592202973753048399548256992015564644438033649064236677359528186085536064429714778261301619373337201879551325868396171135482052314024128824947677661192252082066498037377420804605248297950412837481888379103257410549420303112211040414914713955317338846061679689117959966042464751589073145900923306880954748092756759057361035147543620167652678141754758247789989693584759011350683412259620385560779890719666864402481862666443338686893596338152303277165905480329492279180512298625155817120070708531789425932306664916289051991736485165492611725103619731460027241464484319714951188169078805145811563974284841322042684528898826730345825961083463604295811763477670295063071751923285211444177470276620611993684968960659522478230936544022780064209781855358893132450567639129722618788118506121023497706459752956204783697902946972622949659046931370679174850558266178496747263154580202535552560388071931217053509002145370766788735060901116270968217190562405500212922144698497517009114530041452629192691546909273655792564847171018720864524214367343337532583138827380943544865745663026778903248153812184536170627839958566107564391855718297790074380503628897534232395452774556794104490703509231640911091815889568130333253215937764932233888099004617553439364191041823329374275345087715041932939721645163268953207261520260385489356223263173286121733848332824263581300278425166424979610617801203918341650711623181406840015762107203936745715878513621359774180920148174143075861316191320125817999866242941136779958391626317275761688928615089127626793917086860078239576402506459218751522225201264167757480730490949966792185249835166258031725232299945873629858530493614560243214545382043650401505716624427459578829921915408327395018097951318701417445136203398049788782171542659428770270743407082255308611542995830611953279521549784785095628439462629184368367751633514618605014199096926413630843909675376080153240454408616634768563957563664658572766163612292232401124892019921925687371046666590194593218021952674531296528279994266103811375773214469871702558321521438818153812191840252277817691664440300627208425711159805693656667915920411847867101321614592005597628977633783134779491167639248197969694012667564681856322761021187377663684064470654562941976406239955676458533857565038320994690708741318741949013656905803408587583779971002308092412992943419995959190821435885830517577143086357073729578917247816072438922995689065936250283030612110495212609375062295902266981261105931060262579729244760782636659942842348830737485094744963634212482276071363130829493486769566388490509279365895860569551850629268223472734211247321185623661805750602159314580544889279000205140589002611880255187976497916045069899595269798744466970534738404266704366836979711929316880808958717567584534974020131768909347895117402599454101583134399217959155627341419742924755394634280180205281889120985938172544571779820682382705730595903715478560980081464649671485043484080680438204830864535082266320224330921715651097549466763544844798737470647275066228330777379760858211068573702364968972777787973781297106899746963964569231739533532652434439375137753493972362483706190308781351130535784759516062881158714175896397481035350752143886611712667457766754871220900211486391370948870255391921525426615606107009060177873623468630768003116933449857256856495477711265683829903655398753574744119907748545238155955235100018115085933946396364208844109048473718136298268630109971870670540645748951862727055256053985147381203642256345282338758150457788515981114049561662547432989527216703679939110356711795438107310994802255791779380121566596943669695883477846030693375416507356316706493037777293917682161502240762503854045393934828610976646994838342912723972068033900319887607065119797502018979591883061763039016971746501222769169277390116220388144996857965800629194397798355422113595217503872245044395177691169587004742835529183789999369559345914574277570872699633399399526792525798678973237943409584508871966854224454139086739419910763449890004606872155199159820040304202868877719777815671028125169312062761134915795914627683645197881344976742093382950378803694688888487455265694424606351130157467546222777049155775096715060493535687854685874291051610423966408011386713621719470637001531094241666441101224967595462890373634535211277388517706335831075403397080972674661284605780938978944782036888709099880778001550859693766294010889446051361770160699364126787680583610387800678339182853393882630683145380189817409888564028315342171495602154209821362911228229717316875825332234357677844575971553135113530904118772720248583969850916660850126347680841279531408782680330844290609503790680413841267191240635236646746198060433361884149970565630097844743516552926598782213038515811565214575820325330962420664506138623363901971268023482128077665002135100156866911819303048902097028353649233771470286614305279737948603614786392217663801179124166293647436809507760510046888392849218067130714251840347095142341119267760982280125169503657519868165774258173470512182095031195025092567564823898410020630969701210346191108840699856977588263117737007348883330725222755598546986154679153175213828047802349882486594424594214636937153031973865756480176877351524457630399495410989338971297103849743427156505112941376725009545314326036388609085345444452820615195192615655854613373298015143145930523543922153308552989421038106786574306397842406497296635884568426184551491472120829107892495418274886511564202488499099117741581483086712924578213941117745092704640902443310006902844532254449195862991610364091939212862804215751755274427457351919146687256288453063101655091815680444527685912360967351561393613878837215649556335631860188593389631986248607402853819179207757899588241747591361998630663753709841318954800818521528693447597848697924002648941685004858009037169724959157376106514148665925634238386550592710859548205717392942700405119938077479334426941662882057022000147114159555357865355965148811778746019696323832126159518435786879515896854820297021405762179415746570584795168693457203002341629774539887514791139256707469113779927421118474374101384561256409063956484118386064851176951052256362602427392923652325598399709268072846071615175380907736407261719871813331487508353245982644747707519716939006830474333120040827665149760702550866851809909759346295346491182961536292663931743380362781368038096769204446941401532581434679192199599567401635375269467655059538200257948219280148423392458406021130963687916910946594704448180657008921157347388332118312770368081438922020179738539124089296215176395851418379660019248508189903498594171236617075545766311125227132146037520401427684535332380833196744443197416271527848664515526748950561604360631731462683169191422641356899638382302757292076164358306906033382977299454304716627954808466617224752946606496007490746339310444425932534861054632906622139667494226673864682521483135956125720086471089901457563728649696195286846209807038257332973731782707736676242438382417139047144945805023940663909156769221432515662452209287584880687253356527471264092460382796427090495934539159040418424950264856479823778673796164862603917364141288523608908482563779864529674762196682815785808340390274535688302596706936893461353361549944102099245061886035261283625125026881434148337821492484077471995144139539073422940575512359934862555761994365594291864838199472298090072420633371334869411632569018775628564680772948745861926768449649779509978748651183379702798207742201373799831440808275053029348863496349502258863616450339476449675056792883609182965805625628792671340401784772833341506436859041434351154399395725830935819471510063568592880021857943813645391808082548340490641236308978590562133579918145459392111240701349049998565637205608516838557946739294660566084258203736402551427876742944526570014147382024089866953659715777626070169478209572513036741826897099647905669057243897900023941728184160311206374143529548096338504129248075886048390566823694254818493437724899788133185052188094379645357403004203466892840662606588304976883012073369657669039821253943352091786063569020950985042574152095587490929051218263311300450615784135091319569101297185687648287225386822380830665743098540270924520232810074474427612869368590970787278114153120561855154337582404917661183154906052145850297526210418356157535256718864609465050104517076758066130538062371007144640208403603426368862541264632454998146575266885934600890304587705880443874742239087773280247210736969367556971778639695372619762642413654860268806806110090040209389299485033758949023613477995728898328986840525484399510469958804265667262585391649723523655631590250489142292546279124823376540198279246190191753145791282002671733628431286646101798045849541416481758258800986742600289182912110307414090542918229404916945487983599076246062543296076719248319353239247821227757645694567531842998656842435796033721500572983389831048056117874177774944232284665608151536493738606961024293766683783908190035421852678549611659476780220587383063273655098709609428988785301896910036963398584814298800041464562321280857860090952709946545781968497084464636707083197502656638740199628340909238765972035255969201322250471801310592614140892981045532198038718596837078522799357156460118894055992629665419857596512132524306918288437633127918150062780554668689435805424780488568609350083131925597013079536311092554326479661505758082200349982165877098263265825611717768683706507989218763308621642705553478549635112306608141212733059356541615923427164979047724589963174873364843057705434276525612417799017285149688802090917028570782395544895981794131706869955706761535055592781259832251120632415991185302006586228077108712341086614756286739698879317578222563790020958277126041184136451746483470864697933057567274658998487812035424043672594741536691507413795992290930639087018666104745179438199311889954160502046730798057257989108265994653711529320723917148709630081982548503454047853977669692357301837921357182713421259225756081470430998421914833202432648582874694557462144314248805011865870388410896730715381987513482535814799939562858946410361833622705177274656597071483878004672074644693131531008119212329218484864119043346787627512073904206923623382740124913115918937562006475540187459632382403715089200188334351549124403686837143977381832322712549428552730971162144596883920329300902548494454812646970584833713980502637214306500224966534670322307881547045865920852509019608182192792206223494742051638448590672248815788966243594417491504520580062684668305526837123487094443784858152834142799930522382388237659574683158886994749918200062361528922504681114285005905986351089963499415717489413942461649347571092612053367854799687443196795107071043482144389766940629799124425010862909662191762861603447441439689066675891743862079149412277441297945791964081989724309793754269780413962662086373516435501311807121250204475820357751126439539870264418421738562417062138222242808781102292227419204908739172713730724261225559025621866521873787899415002677214357239847434883572107658445822869649269385665821048631702964335951356967971157025422504657860954676236433610329604919317323103805600018700908789233440621913338493494204844416220383808582178983986591612254961752827893590553034296581156911904762430094596529568952994377534990607402285734529394450750700183326443426992708881099527344177033000615344101081125120529498278758014348712993681097601562714623680646519930847020714344618114706135121527929890295903034002816881414834453702486546339853252354945365795452602039230110928193186628667746828003098999455336418044128342327748392201935671139526873932002412151706506260544745024580878259549757300590375613471894681349976760614622744827212296404244175211062163804999263408932357382300324581200558065658394845722150733297730549893332214122536748911212341674902146534574054720830618401690566389824841571004250374693164844113251156519779503956284739783131268340891677030986737565056566238109292335276516023701059750213984986658578581674064752133008288858037046837059111983130969491782800233934311378554779771117530360405427928536801579312398864074307231385137626163531029091468413314521637819324594439346980503508281210591480213771854124100702348244956325823767248562584085370426554486026443936946821467245546425555009361819391772978952591208695262310463039847033107876588655076323198115869731404289163320598313900812515918284719189766875088495152772738500451527447357677286227041236533388460296183810132968730764439755732423447088336608830401942146907773041697100273029722379277390113800910860281622478230686267536608868423867565488890838258833547349919825487582120347812573521996402687081286567481258371179429472982376914913281855263586542458736490131724948596539346436109816594321109398972232563045062216153684763856691421150111449861804099246916786407733108795012195185818293526056500134603898695236481230112848893256924088908016803013398506365308558585129549279785787573526694912245707676569102163404697697066441827650049193200060789065726399306326406963004825918542027105415016652769119226336675915145042435419050536707845141120739142672619989168522703411360665902927810003408816660225216742443651853362255967676299552258420742017606518129384094422730264585807275460659652600675340045035702577390362315641474925083800391667348458877816835487758922890331687204710595665548524917529138400881117409920986635568698374754755489561838892116946182062892097045814485137252452333312711121573993473603155006218473926027121182104731997231723753325938622485761738857315665806306936325425172277531697094336596262930545621794555997301891848646020427161298634964691035668779188065905331649382410646247899311956289042062735736913427836855495116548675976594712716424268605546164893672676730079592506787637755631060026197655483654655297350328982873714712038448180613874349256755526732461201299548098897699454551411193491185730646584478885385937789200999881867675948344228302179317444475789747949071094878571649538204493925813015890091900721309743079321398001886801293044128765404025007864518379608619171591997186144499363333327645737878403743263808866880918886978967382549635824725973669640182000422893961275348196283698550770437852896567264062112587221230807462651766049769709863711275764696400071631550601725265431486230302943028896747502009275066110288130404998938635119797969027734444181583032326133057531494836744247907114969966787408994898693052904004861327226898672130206976724513630837801941006507924636840124211999657771398042019960327563380703657646989839002803315048406607968241002477513701509970604262068093733713303251020050539683931519266214378207005889152938460786346580118855613510830719215068526842250217479947834392753569443669517550277450866823014362312368479625813256073103960745781385263391639201112432448802737345608357198834806249354521066451375515804651743494215535947310599278714449606336651013908369277233487407207176568718257885910566523017452298628978312012852574912652218010653841610977893935710322054063862523190211708381318232506216785254313750479983317851870201883746289069338623976552414164580507161537867314601475132345381717057835354639251310502344339956406581725621094495332985494929468806715218163697745360266699383408482813851947773516519393249551704948653182324060227016562856996179723859061895509703983210684005427710482519714955656589293239056891074002054125388342912938768847832983084480208311291516155719264341829601236643749342297918260846148948906149152843016993265307937022168864510095494721692250255540306594325878202107008156075086716681806717502910871394687129560143700060186056839323462761955570922038928827783305409924926014132459085983302347368328450227493761223345879200673760752597053784696303612264014509797462745182470927444530700088844001269517322027463048365886603515318507740805892270291944570092946966034795194051177275802609025959045197403927707835450590151222497362248225710739412078875271434551008055263511554039341781578698304170497845005363591450089673743524292930693633073968124446506370860433162787302038411080349513111083246984231935898848670141239589665210779117222165872795569042152933171757860099398430239640667646818755736449400735321270598977446717879256220193113161568964863680550083118064171502421071430356480431316424937837626904387465409250380350570453214750496239129588248363697202410862811218353324932786476451445373688647774101961911368928074165579769396945077369557185977779508391432562803376046788987666941239316162836921801220208546672872871566155718595317892352859080496038199546980652798359746776334138981028422014195907233373083713103028256571192710833383080984058990326315669313119489626498102373051707827568742816223491682421197983250986137994541327986169093579402962680332010556841397401091975728289799031325430516447422231374365253395598517855860018549335447302808403437098371450974927837623173428592802979696911544358718593216186002516631211873170045311248399595863398713682839175960096590210079812211668296843238125838063722243984304345162920899899963171622278998725395393625655192572747820156106540442689659464145419983721602180496617757912262633111299875179647771761524847897869913792789186541086602933482246374160014732086342608259468509421743888050746261630123542422544254935970270051711668395571003372151803915642767934694468333301680690905256203921839365607618577227210314729485314692822551809139045275694033962650274775060258272995847169235066315133257611985040934070130521899843556982096455575008447972510740543229065151924676882968208858921230005668635117063284959518725107892203170254339107898116992795851475863238438780644354723052671940903674933805397943073346088139963143393796762916786426323521898176210010492100265315968666281371725475418867535430889449374249470541345836135249521231992028079482533801785230842007241614670010678071440069369316383025466088951650138624310621123126355481411943796826656555848259472707666285739057935169263317555737566316108104250756863048272135872132266670118950366287205638653215366347730842670943340067372985810893225026754996816416269502474167992318575241188889773031236230480057654132898274366392250734716311878667878545437516725656703006541781818395417084920292055838154273806083335162897301148524611782476349258598094619098101833928171305444151134249095930238743931473126175636297976153433231650258730143518477301483885429188902254204757472021658511832594227211679567177751968648928184582405863466194359267768090716580095206369149316743034812953101914621256755173118615294257245784150509344444190024908533942759895813623842960797867042900066775266731551615658822998342152028129410030599902947584801735619274903087876808754108973761115626605429442251011246169223524043771570220149385019528510081461767056085879567166048639001917780976118538488220817849831796106568797882877131569516643288943176971277316929339729736026548003554908861943430133638798877011417553319458807880385602070613440768922420011284043725509505577344446662379827053969129250665347167643421940697556071209606368030652648102577781188078375217656111648433865450631069658557524593977506458234760212482890793400945282131774342763471290406726181039293853277224142391015958878327972193984572065578313891583435262167799777367153079729769122126123818952750836210313775619857301510561069877194156426787907543776365496331708828844367949739504842829960625751946825375123215934480338446546897270334587195751699412415494422038117225982756279393525227246432007870341880491427947979581639849278812393105598507326350064472469835278502260279035056869566057860917016040328955403405533553073420510956448813608741797662847965301067977360576976168108161935315235271176282621194958549512083610888622905066731034593348658943951237850983982868979146955408148210756087360886681996897911273486041867223275554176141165332270714120604814902184209611872574726763526355999738137858674718163909790365864120946257623889779695094721808742127906299793617951064604538961474006114502076734766686091815695247090366175733930319274335128871274936843360744808844879397801116897804767959165792671683177081706818385468989033127711339536192085271920078472384264280137840756925243645419594531076940013222566584483802278244001852909324449199090057034205063305478833243115762660125221888833269341785101870254236405289741815210957167192255110161607537447886515709007023176036239641255909095107900515867742333501358381613120421821376480877543705851584205671107107464482757153616624432686107254808812509905033649812577775342362953829847326872613431344942982323576939738210075214957643487983015093537028143959913604630648766251549741826708239225599867577069863621978671470436162962022636682561800043444744386670959683305481675863074830791702330089834002595537244623243546730057703908472521860708567844398042967721348943705628954491246388228648105858983413159591518902981798267106440087877906574149264247476996783450548486259231589939754528864415965233693362881354387012082158332688394591478324521427627479660589495409832704065842306509095621806437842706155566726378493600163663640908969395558180505095128778232188302587298566868326846807057951228510545996797187059598226876084200365254352529776596052995881567900923386508313773006958742420952987421955019244513227500015098539293789887602444990584554041491166442981677703004381996749375407188328216546096633447367244040646753742750465218035406171409458685301305087293926124437303172942866643179352857591367355290270698657172451507302807945978459107489824375747423239808641574605610220237425618692215507699475083987335475121926361853908827250344972395238855283698408294572029522289006101310213437259837348774214794370161241113785963680142966613354621951486873553254851521128968712297304529057687047767385856428992995697128853104476904915427031381221584331367868021561298290622386208209027837636345138609403167837452669543209463703053069826644643495084424052242684431253190631670986337241697847812191842747855299265142893586337354403844778475800648505029677055253427417531649037379435337913886487161561061883645936747347146621747499214449558728801045371909567699630620518977691315694338712753791796019389168689687097420727077386631112997860435058463766042778411845598940522965757815166118719081382351647911455577663574455349545404810307287644231883194655281755397891859063083834651670789952630530293141338782413111418551454116222145563323681793384989157144480689332981745060989759953554128705348793232837645115082632276955052536199443205665409233873436948143103316509238467672819192865565732223102474336678377133373195729038298033437621272689659107623756972340655834954470866473959231753177799867085287606116746378313791855638573202725091941426314315840743095794862660822820524565792847348424992735191889308400058042577963728636890921362922745082238891148181196610466729999509509018545742293848549800959441869762113204804231837223134857293143545714328786262911703042830982343626405413600852375645599410442275260617558788809125431937960714560209309740799098771557302139119473911405714285486900608462893615835013003814123352368224183751382729883934140345734364023564868644145172312088492256498291033429813041915351799735444519631839164451858336732433859331347239881730126626028523261230128165688940182370009424308012607315487477866432915268657125738369137465282074559977784574737076678102864141222778085803034122712860282667276897094507930585274320025488392258705958776280276490903660364710188096023361935028806235901393044446024201439038464313025658741685135881937328740483847474460232462255679686638422065998589834456193201701915130000141285678338239301136348103199300362261397036540198067016814443778425241214093661520003367092939382999776212369337769391654806672060971193717935965279236439564820713214134707330696684858154332384613860575727714633963317086495821990977044474591623433616537369907211841670869222101312200073062633300789394428305373772661242874171810801271262058834283451817578558741248305623321220210969597382518097688662486268548181060962785682903172856467471740131548298298726828290197715512330356316840840745853805567912972860072126109013734441908974642650034691945464867144178555930857429433338032270499140312376181970720248023398875491239177106195246785258866560731281573369202281968379123815478781139154711334254306421364616158259132426461289674916300743936595257029555991189797456153020714269139033202827457049347037189522377725550800000304271799994785453661208295779348937903596658206442760098446817562987651590430845890984279516610844210483016507122187721310320942111439521415961946631912216164007436890379429346878739323105937683284800117857943479851334907757438765851952031350120370541977520913267140887890000918544401357788121855177198251320108333127997658717857928273308370982165415596546523259355838432481274436673907726921233642018337249016288431125030458177045089031274295430125265581468547176164383300513124319064932648719971039085662021695165010773306715834764242862300015670418877819536379785555313904994719010982973309140827979560890999562270098711011791089648253359142951038872181890890752035552142166718079494022677906167041674845870367482369358392246061511331179759168658392288097548051257626742795913530264594279558663985747413747456297255012956936125617744096895346041914137753759097694974005159306673065043130544397101743100378597159725780160587515382252753970333420955216101491101767010851348224961282740277851954458032893910447574855231368806571236450550326551145861449177869223394859890782522656332665402960422034734521735453762738022465204762198564041150905187206520649615207281118138347940941075820444895429187803604285871567191540170942772793397565241893835845352002754686974995770450004182114144095302911667758101188563112366810873213076808394318571718113256730519651876603197096032719872547425444198025713366605852204685711227296275478765126248514293131672996426967719260254263469902742501554133292904888034464018305989395569438120618536080403348258154774726437160089695909987246831916014545769646925036661573939298040528871968806742862346959816257913308976974199239123569288226130824745063875417240659455816252771458647961894241409959200625856164302517662024977317533487021157609751246769191720324726445237538223077804461023108507441661808454409848883665837239948710016846406987895327336007410307548261683754006771369743670683981988952055579448852985490052503363851144044313710856462489453400444417810673941325440994908931587821311500274995263193047006821866792023145055940538046188055659676377082884539792886930408511565376156980341492324711686502299051512847764343345328591506614407319829123806924019393498824989558559490607515635239237407620508291165123701582425271817242088649116027201906166606827687373826772290717255090284900081482275068752225002083546470523057406100866727199913234287207026960352794301531531430739299476140356655494909745263070060517213940265834962151764557977917614520150366352581124996747013511248110200270981972950491566028181059723128631663527697622303797131594892560133821778054236187069000731075628793017797621686364504018987017325364629270404950777226072999244735533506408940780637453468565129564307755294871602292457185073649759207580394237192408170375328908572961086647195730510859380060811023529279560808158798960404469153616945654879029235151125538430431679574340512460309954604429297561608811588870236161226423318826236997137534108739738892640955779045912268032218258936860938144026751858073634251185161018366427077923715276326532345885766779124429162378244957817939915969901281039460749552063566176462865098145593532757235708787500245164170614320075004891937634380479764688156817489525721145936705214467048782202072668657661323115283400202552321500400186892169894131726726230804630358439469672094331170308678743675550719957944192049700756422023642906045165860179101446354341298716239492058553028782349217515749852132828529532075069291717882019111856590496707289389228900751925571024526885472947560445183958615262652391604796973877661254165128118302101121978691718410041726709801440805139837701087447132260424527585370600085848155880213836520096071127496495051678058450276980363607759477311096825601095128982106842941413390389511419892865443854185370281253585490112401292421310537426047221145262801967121545461757835692262575512336755981079609384019147683633674466855475009533685257298115117561146245573176858929648719181857638027175470480454979856104839217347582248118169990565648186671898496341899824883879084163377567625182935229491795457910180166100540247774163503221357274791003128707531360272035284006294509929995781100183213569206215872406526728477784730294498360844532668251083105092686320682657430962059830637651654726514728408209059933187305313855123624009487844038882880263108819615699654257844187854158485515625248562353347461307528801413751015661595863391455383627453300853325480738934164504090894474442688693906116532571966535680344451608859746795997888286080128728960116899290672662089479305602749862290349165755345683617065981159607972290315328677908562722527646620214404764655338456685401364092588163023877829222354086600723952746127210039877051199581182187003498756425333206374303845028448779136411577938853487177319735164515673933706739782398441881024320338907802713050968265859074931342680858348998433714317569676449898488507479658753415472377468285086606913676276932805126484108404490981995206380302251183174500367745385282879414274206776761656713150677838267983886066202396652394954464123856459371832328193895581444576438615419520141229298692328468520155565759801851485693130255135373132847655934746321458768309419981390121748706852666288777962150778640994854218347601269639894102806671983162567627036094870330441288825442780225031552300294900036776153873683678337126714845449038691872723043846957942520524591074572401315547359685414902992797472506800099874721133458732621979894331353472774410803106160601355550801186082946185926830455310282889734729496638624281390553122128753852566101735203535364564294360116149505742358201310821582792909792948578859875047222675433287083895211518315954836418423962864486993170955661295483324278099582922894126762847950271591076134961396265321930017716268238426801891033157051798033586819227692409589095778802963172783039545926105833945263530782257782346019050250535939633631085649045722226609715583771946135527432717868348103721174933811725094394555977800082573619849156653064762829694115104244562765866935710055046608083268341579903754356083214094434588750085211750425337897107887183077081059964306119420434186788248816887290228285898055387144544509873336241714696228541367181149253133403802448936003694216414914899318421619155352423585204268908624126569214256159981835773252830026235235506159859575312421751652142496065927630087499031505985757892419077563558500143076514726439444287453517484743537726099022443779987357892065718178615788247849224579420801184677041378575010537579127579241271513815061713065296667954183373095457013618682844026160111371528397941292621431723270000276345058749237213929745566511455373838008643519600364261095109287017272725181359904996652440694156730658877159621710090706502788058333328441984014561284616874636715078940798830771613303108542341645572297837761910199636768575216981506931999206077628954946758463857334761323732465729166714658845068297882902584039383452496123641699111615726571644242492116871446590694609569879698129572596844204241139944752199098268024059151003154523554644934101150526469912154123999361094376100874840727907453385174013889446616491127909925622476629727520431050253581076627269505299300401946485404413413488852832848413861564285588495191763932325921465985415793067062128845400305602925656485350965458397036546992019477962216359350705893687311164912845208595244056494805521603248390979143403143736952629998989664246552829995549481316009605200873544663745453027727094700396744801687827553648242340122492904737361418122136866557246404997841441601372718737008184906313249002558069777635913497191438819989311170133706721740795847133265322490963016456566691255931964148021592766697041296564350128134602106275112139780903850461944680579160375791950718688407308092851677832177568276914738585922346939754180032890431784449360752724227757084958714315522042126206016350612995148644744874824548983709496983778907155663032769802937031049960624985711544515209577165459140828703737942490769659011826145399446704867157590241896594652498982262541432538829348558672052485023781952498588152466532567359102313444249029010779578686197112938920581405117063315273481131541160592254704865961792350887075561134251755701177653491687208090939029033208674526677468004701358688624563789856855218992040674712130650443738922536431749536897269282898859517655355178885410808018366729334001742080729836355836732711907996501190866685403428665809198016701064377750873922075407653480100222818337372012135236631904865074019099180160855582331202183940843946310950008033156676548167214326802690820534129961919235300368708254552364497674870087801750484382015866988720779036245658997891349392248570407883192901260781286463279528003781822016349147575799342925620597758574833603217078986184180813872779416547770357998364180776064955520861564131037369772226783028018843007348127031002026061526444866280755768323036668643555032373022195254091302122114196603119232927203097138334626627530424495111401735616405849873336916061894770520708146659166312984719638298196633887933949105206912831036692008981992285549040868572080813932204391931766951948251020175871073873760234580948592515142021717482430300311595973763311085380839777849325000084505336514945674359496741227830306582944692194898534915876543206599200977366486007394412129288257096992935009372702387778931721893050000818343242955959678936825404436139279400790419790376532180145987640050521428897243212597645067727092855198227331045160346748348586269933359472151429020057891404497687444644750619004253910100872890412822895781639074979130085676937956641258314907455110518000543735931323381960915384289069934887062564701166316478029390798370351733948640387319673785240825231871900985926908040687553415520676406254994408547757904576465543672464001733452971445324324409670935779581146199029777263846057155144722912909874030334094029567312264622938935016545759246455368526024252903392330997331920552830565356265789639709776452355614296699657519156277277136037623074343471117324412594572156784804627176309917153290400783699242864303637239779058734480182801695378637335525529992791895136019519620036156686291110276305956109125604350428589925801148546231212897676423637447626023781954494628799835114387787566972798249141967477897153911306759346379796530081210869888418276610317213677363608301859190955344272612484625373512698491066335614182422016031484059925984206696806364119782770341788232641610544399237087214658410118928190891069782981984144714724790593436973759981491056955561024051996370300611408987426766865963451003976761857827066314858215673776979388156952845659905280022547764046980238074532186644940577981896395055551733638666912449451333682130969051395567040585752553676023038595478922925830448300512366033200044560572005253838826450187391888917304458537533545236033762050440715879456516989769808163127504345647634563964713957907606304509017198148759159640258057291156807304760747208861422069731517480070871554018230103962966068012594910821621014650208401502494659069404348053834084526359133700860688323676820550715484911353296220487940973270266791603021044140887785676970888779459264328872662350495104626751556719610165490951360256809097559849837288634875239314449068328538887861159676796359341193423890407822005227728670516557866816067542275035027103429579319304932053719675048930522390664232145857981231469051497050570871045463662319220181151405659845625507141407330217738209207357666819402838268223058661482303782167345275566618669505480511579039903687056299200143718135521340063272549973904264285761405793579993123725712335656965527342868370534574449721976197262008867561245244583137522455735665307351664048444864533139588974967611865374410968639340037863473438126777231583524019001164982612111628483050512753820059554168052227996848097561554370145783501501235950503778444328105306894859627705295507142845644517948946728102030607789348133119196628143849357948464211041743791249352240177684267405389185590824023065584434240682892364403735027146360109377270961024867455600246954183356437241897205410695437356786541514253780344190898747078194105742179553961367848777631951637547472206115131125639658020309766227841179124716731001724462503991409816699721406379210332403181028320949941360052916804412450074996362419381262917217084790908302676268116691549807863811885275456946736474914696659532939450214996430581694439605249170949050271558871824537583303043108016240784912634905614843824289445521658223095850091788680477703581556579410921979428476081265683089325115144133426144185118174811968454222168203786028652390795689643804988994972722876558754254555646339168261800865733996271435686077963542389971945183266261514340826383290485972090928173544526247902121584069744806611747762049433062085748908819085035593533324069114274409132056416453648423987716369766113740225079317122875338807424545395876404545059911583253499299411350888477807954407836884770284497547049265117861263418299848663315259476310472682587198448407298247659105566409353122710652386436672362212315366065951619142732477646610506351898580410235894376043222399595288767594737745240755869377031259456322114146719334678815756100024247729541570983782360181465867413339383136690893488786196580033596037770776091378735277101447645368549200160818420566502121687265512082087614407860302697535281611283734731746348788728573269251478300982975881160489399030327006417303948680347689259886120776997208482413231166929438726493602202334988379288806756349546351109367752562775705802873072144329957516528761716875312832495719753608377295874443082293054799378973931638698288444510497709307737633235136698919690803943534405603619437645948662571198424776415134250539132770223389558170501277585793705918810892595217333200093849402193012304416068317047608658333006096627902942764668081266359269463006691044347039601744239437199087809768888664968287105412168149314651702558859159872825615025758947992796868672341423245329646352190651349296407793239928973831404229001592851492315136152995560333935359115228631738449240194427525124843824788667618492222379295284517910322373801624479417761698719035806781697326509485799356260950402301197080851721009389291036659925678022688491368568380284659471957047913289511133032121954071150007725525948233581354684712895073482430219088836680593780516013003093775172026454732596409209035049550812915760959413470777684734301235937396390296816299800674295205201275337334551114914252817975953260544079041592704092698462960576627236403322942692587964216224773394121077196181867212879023504832544591073311606085924317329483664071453596651966407832591761494061523244022737272265649681669161567521729703713255398307199908536957051607054076761144564929696536133051648457118769023819759843025072953120720865051426618828560100783719103083405113789763040426294163393809191824761019521073670934032534046232461620241601144940552547152871483274166955777351406429023801129247337646895643386094839208237293540539380964567371535837129973802532077536278345824259976724943559595781881611963163747420914355945602647530386698482052819552355068564570905555694110235320307771068987974595225098042999974610240050073687959776812417588588619407203281946996339488962104817649994891803032037665344781868402269744875459102801992556275148779096419053607402971078642005669964930288979678820378308015758550483663304868544655345891106604542776708612326050269445913053988320027371419559439992072055248343762292624844221633008796489548252790699932506435856713361468506439631910432882420323861080088164546163988583978172931358308684260928207643361114832727903841392078808197621421253792391957940492514885650939666375050759534804774280067474985639428375508658711451260603525871092663316146085282624075037180422822287505704924424559770348911413457386350972911094879078847739677433095778633673204452787001292243980624326239724429777620219058465995518809623822286154147383378327839951307034436899702980237695968261493361938414842964733333116466923830437766453741408923959054345310464027666232306422073194124391290697484734264487875673459557688524906534869243533806460343020553712228365774633759578558917699989084265734416901788076466767560552068622002769268460849510269508632965808686147366840764361608481973936231731652692604096398290693543258718108816514406271696566715499939087952372583715260907590814813750298130281613237477617723375488620502077987468354297966074943379244183489559704084382992970417711266836110535242317274152306082212259425212924242619340708920481839177234267882227066226697486787973052500089428421310626415183125596095915456388776119559554354396103647169153193804602425717195340829145860561487148276691810557324014435012026376060262035509086001684696735086695110881032610144571561433385828785159676065969333231144206638809699802815638780739770539218618616132621316355212575161724360720700670927462537248822799469077059781256490266502166500578677062715270587958984756950041010866515452427981852499635550546361835973271870576634081397403560707525895231768790206816791005045139640509826433102891140607775063743110004802757769279433941805155887240335093112413222561934011628190640987385103767436522500405663861386494457657336659222461134579317179512833131846464063918170488079603073384061435715570763736643025495161081287335739410565442828251782449750313273872750996563414860620003084865126815395817241662574225908359232806115863700388368640957639829276397256525473196685732888672341233751343105004227005880616090571348842447956324483106958004272480756243375304900039894772330973668306513104402465814025162557981325815282500215154300452055437737131974081088268484924929546107640816488940454214820078848869151163227274616670355130459860177638732541505088445771477185491008828821213923154680436795347678391166443331687513691990422388516386278900090306626381321832503103713100588839545957329561233721267344154565565836955856153613893096654329383679709733533653008534129824755012014203388877736279198016703308127816202235530998419234482078527895354447179374065679063410167246449015213594873636007531960468963536093056755364024781805061575774258915973975033394861136651948802485347856727788465736568643762916234729547256385971960348758150606872361392613223103683066340107140706308901009745093354713688853990681697455326955771111152861776438686918408458978138925230142516494554526738671265295569188656412278604807410076118687503759752429095894721372587737917746650987689904372960735484487938534250231915221228640533887726602546025384986776999548788566881465848227122894263097422817167474637777996017066394065884151873899633754097320214717151348044142004998541463733024157728020835693269678929044257142112385175981546361414494933061508205885607999858408409956425716289132166721989809850771950296090945339438152352867731621345931887522677721433237803205042478614186221599258333226573980246330530881901313077610553583786340320350825443809120425855312829422166893943966578896535655563181815892376374655583101748637622774653363126850732207080046194618324596217541030808046393604385634167726260409798576737042843483502377104732816721481114966055962339390314754700483752387208277767423673717517927770150577669799303530948184053634846079890995428442436810456530531605156076327804347252545091934505952211304577549021130800454205547134672525679391772495147237963526196095044365064316458749341081624830686803407125933801473147139828825392157682928103964733241410658922306628886689610216000815413232157940039292576193116257646030394019464167950139432567628972177699598467144314381635359223698754564847361026977818146561520879134772144101586834763248559009318277416878832056097259164509490569677503429284536385078706312697370829197485534432292298354852564069639491995972787760813426402415279511131657107512542216073535196065314239245131755158506219923878052435622357596004594908301942539848551595808260210490337756667732067441987238544700472867759255983493726426429545587858903611124109026884012137345424232416728236144320920285016620732774404111969709535455850113018368959715949857597428062847570501308892856197777315227419232480532321804413292992188062895073877952570264789269504800425297243985974771450383558041560203403428192801067387486017052015223741200717065931969595360135599282620549295735589483906097905154702896329422424118698967699313216231053444988535899841579234288024471513415215648381657636100160673140463335783693124351871824167215380412228003770593312135672142951997355389098562327272642930626610447280392479460618270266356777967313265976505926550594902304114784032784441847307144782591198612709787905864930022728300882338114217791878590383701396657436970452918714646566281815516180290486127956483016237583548374079106515684595674453431205404167401923664369808872909195190734338959443184724800550394403867197849965227775775378932005336125706255426924443240763904478345737003409888373286282453238075634424982441829263309833191457263400134850296344158638931722915691238881677208430972988210419975980484667138831942224730058067098971579313676471194449549258251285138110824583537291937689943402447969729444650564022568714269214350476901653313477602553898035506195605885936587809202588091054680498410634972166563370984865812506378558012643082952631136583044300670956923327851841093752564334543749779160634190880143482582219844946510810179408873888342030337985846800636426648918058373851946775740647362331619804935189223244271703854018226594564981009567076130637150501377703267167673343912979859762430110328255764209661851061710823599530738881344743581434252958739516480076477554719823402563148727151245129690802048344080901328207208078571249374507789900771561915234346284001162635142113179012636984014356295279956757503553195769412042689149370115709084903242163645620806826247041124649927746066063922453982417719287546587644105288596518344152536516207020076411958827615547917169137507739851100876484080788538656306604945686656146037389864980021254703900685453356925541519973333988253280397981172566898356559643555518429032226725320427982132282029650958573612461002114420083303861992583721609013867319326808067048527471673825782307405991548759576160540233022396749099186640408175633513564996434113483483891183457235527879511357035082487642959642727457057875869725040383809513142858926969013949084829828426147153464761319429903863497355263229855902854983968445666605682232804052575958752481436707801154252447209404782911548981477130117410985383488019826027546288776075143803903203920181905022211800298282881748566709103181137698460508123613840826274762555174965513127965024670613470844742392003876953096619691045866374092475620264940140892492937724029826135582979461445365559985196889726434801532921771248453616456720273982531019824285899333182938952986877904377876078291417404649871984033050953386508238052075949826676855955904117397255387584414011459288250006398109849227302469729447662558868779889939872793804730596600158428799389583144552605526548845872502889857500529689598780859502661850204698643695016761384142155289264626732553575807894990423063855853048984613509527753975015646895929757210742420207766939914666972042716263637457890742238386396350207168500297902226502011818539061481534341127706102125138685580389655062576567969782058154119999620733461452412069753882513032630812626859577370979124030573375762082965099485261794328574472536098983365976529715760565933681241218648127052001017479553752747766585376331381255533627208043885032564163680673909035502292744787561962633287057558824775013719828515110714129137479229105103986654461772771443876245760668216382340544902416971906439924045323915857477192222655004665606948704615590424542395432726052338442382505431325758059068112671343256150268733243195451543299550226001756140538664133693086846591641774085314406963124234382913897730717911285187701178336937566755927047251429335955190550557623844604825379503148662664881582652140572996867093098039949406439364770670401023296284092348305516625596533562559409213431836606654984768092323287220814093999028312374162857749215925981811180750910832561548420396264676164183141102182079987423870484521540160621702842488341304341920161106647970206475419564542162518177425816934293337392765653536763893831870075084615157624732915460635779265625275136118806792791538875766649077213254745076458216032129653253310364723277326865323276311701190223867145937507257505868825600058187059275033513938921758003439899705441928165817850272478467609886779738973301653083347560854358045129738766953852658984660362730712838128953223470894749747480776982153166864523488584264922002599064740126567218075097948333632476852476786029486645836568081608457905323500082487306203782141634626557986343413779934466490196844153027020748466753221775481654297376506215684422577810314839276387069064766844220250794205690074372367068139424752418368715515968515156032319800129781257521123137365732043777512302717285248578851483463387853504404992888602040062456849785139655195534655748558506594941666865436254934501604452482352444189139311751348262488788128227987952708028921193965404566713229965373064777340333413248149713796555467117119391818093656322152244754406110386381713601533158673505814180071386526717532968292302891053408634563189081623974321213358164412000332580389622443503877365128482067872732661570367184388773482138411026880968151361729860377116015468178642427705052577498741023831768054116002335078353330785755449864758986172827467105224430477009751395983629057532796505412517917995454532632761694884635343644167608419518147555978448542875509147986148282582074412031275257085013397520952798262675822004537701866671361071543498788060061055204893854601035816304929621451252668919513958220075176291186345958647770974774718282903249967056596443467849601319263563675085268615162247807128078300799006503981725121497760708997649533236173318083306740082742263794550832474034722768607175412102082334063809151012539348191319921029523531507210497110982212522875675005836167920537575884346548804658400513416344624787582489650115570827494290035791687924845160096608840797586764562665851381537970608665655570957495810976799263440577382920200645178141902759984391486644764101444483272849361446543174084462066288372886648611678780593681874066498224562914330935863540129069896936483544108654084475578824947039077544989507904333115852026019032796291723723868819992045448316265064000434322473048372066910360912292398755286835379384562319151471128351427592267691306872120134199612168110560833061772553898007142527073545490155415137472109546349516270356964308984058204259391646784007557926977833634073471593756242484668107182200465834881863093091381624757385026094336464754975650062897041883511596322001163703831475361884219238091749603214258909289762061019014102789944593631235839427753309246839013958579324275923608338164578368620810713012264099867452400272012106014523897029106354970637920483934016556946775702851800507645809051971564298880158183773703062337328837288359258353767119748148787810632706268382373112560489113013776039870938204905268401373993554964789685133687360297541222428074068613441561430518949417827392416044803486519559042144443509621596188939520924418931127345961303360743052016180854414059086762755995274371769607648877251507931968051737745137958257243866862754867321176584311369669894748416170721901582653090302111789873569015717331424289159403500826705511420611197165602498019105928080667050420581012002711233534847158562105380576028484970957285728536197217412856316397890008484447542980057120129723919748077677244552784239143375518144070611470037305064825842078100244903117525860320970308179456327629158666117562480806003897419025992734730013739841121181654404792480172575023057671735296230509264274292879518647423970164583844188983358387196091617361932991875587222315995991049167645757642475040412558274925331361141696888045456028997190248057495578895056518224901313126966534925488257062384407980729267633176791974448557733205292641805613162884201962986776585889585134808595352090968233012875327675140832344015281499483244366838157401921830986911856496746621347717785425231157676505038996138362731746598240632331343920428693002121889463050123346259789232646499023462116301932625379721589198343420498593466992327210745709454220875399263302824754139698504066828882236927844361286724629471067825821339177891412025671525555120566383281541667273578839251634423071907425969957010927243897451351212078882393886675097350148723549704361786478459955445935383543664211591079334654727961417653316529223664931477411641626333131083121644963407084901792481339483286439914185227480231667683384620200144474158579375401904961132720085558408595053293099675396278505331996223950831386248577089429746425309027203089187895241227346922103053251377636809715988370682679750511832431509540848559335641467959030314728178229882182659185235020079158653529400613044043730224854347645481762643689611157789896098114961097915121371786558882980154147123413232711925286390688479391042524749316954685551321225981784518223264732161697522124889067436805521674388279276757311765200376550102393155639574663951193584474533776801308699607749853761462841010792551404782893833494607911538089072878657354810380022707155860947754165415113529621458846175303126887712440561256797652038089031055783715883007851307334438975941922468465122600378195609885047422747489390205168948253257995181129179309043871423492334049685166317829535849437421340473371701419496770095153827239279318438021832192885808481516222475424080402945485588287235253272452057173019573282373389568691983000774424851774418992440470403813293238695027336763409074386371562905726373696804511491969766837482144484356765343459978992097852847677459006056414675590368213653570522215947399556632137520556483601910651629136056392491684872757677576226224781245503999755441758670596335789862575751598019575161730135920775282993830256104019847691711275343843327858352924136937271984550422438945607244829749526130580549779578024355618305410560103877181361912558459790912542640088725876712260984763436624767339783187873665268103418696026842983147449392452747691639579481568819186054104767049072975296471077672154624383908036974466727771636502593633159857463496512995978087828680290503007052313343573459852132995130155779842831653282950370236434972441084203651097990505760108390141820867929199797579995194870316157907358506474378219094542668215427582331876389938521412808010572359101493306320195371137329484846687861885387854923829117168076047009546333534025322748067594070918455659960264651796336951328345961748111126178234382633930222347248839742792910448252637580377978322217420569392707487043632008576432137138253479960242354520561359813239044920570011415941354836868164376643524785626866924204785407866880626064725944372216844995184024768536680046317048298289749808864622251480249164445334676412282533627491768641974184933986440392319126770262512172761560383598012418421201503933161739707306836422886256073665435396262692708649428005539916176888707736833154437560266367563901756940909225297198361085444369607327908024595679117217299459298534314082577137786191785722006505843664943209798419757181591241071400889268732066488034652310768796335547487838962596136746388069108254515555087021231945427865083271942431195806853838051588439878152940388784204902757870297136564566845685737165764220512266219448062854828778490566335034978999493104206346540409069626796326280740984343714265775396922211090364922228959442676399800160126151842115015418234775882974476023675311968067639528398476658390105958142147918073444494204968113771037324493069899601583337551251405352723078618700505770760684129808034965452900779814647208729151217790789312559916845904409121412628957536971552436230524560311297880711324759723236834306492053052015934924238816995101592809802224864429708706178054952454928294421693675680680371514959366082134186986622941698343634059515343066235791460004955672935629026781123758398673550685930828677632090943774740492039880147276200264040671184802050635766785540470496742329817048836196478375044607998905946066795484733068050299636506687676061131622266767137297439881244189385372524145403349789535582138819309310534035134577733515552225079313375833954194622835749065458206235398731352021128297672731500476759342441112614224071040593771822813512888444785881447779774065563202080694166217850360145428915783185266016143053867659651371974045893849416014998601234847344341799859292627102073664375106717443522450476774777991534884634622103586659900572316684039630019501705636607399368607430869795942441886307318808133349507593614279940205334694715849266708154043123898888674756181772366912502302202970940302545737483616278359500712558969693080558228931004529457432811330903159289608955587343679995485145818736581173430438864267356429557670201094820020156814443229095786605307458826665497971049693238196452628200903612373119205107148891268103691491980941240645718771006456676133189679129278154283616925476017622735209956970334553647225881182224747074363213473117898630191268567558940230062275129597754426006963901938119528164341648573742531705245820778026588654626473828524933383879482366637001790496440258603536511191320438798756984942318338886149089458495556862986671105650670929510271743627531961752642644039389724022761377262424065847511811456910098186180033355359737201495406343460280171615417291038795498796190356729053394330685932982066059518193465280429925463066949571434773172133748765971875683900642245193015382885967632300615319627439424676218200678882751384022264532397699644876356094072867877179506676526695208348133894189693107571753190450796917566809970274767524201412267724086800298675909593211478926555744010470037768881169446984455913368910412394278776635824013205423483329955739673841647635901622586944159732287349574522273136692587125969079593327838812052048114155673534797376655405456622328451761811476781644923480445581142684537863760215804151162940975503014642902438727996106082089144463849696363479275557950318806507589284234605634568449329193724577207334237954130857972993992202889104484374410266072040086667123362750061616054952372055234530871713075235130905041002961021254983986157606039875700913660226305085313945568400281724426033007123535914564764907000744530523581361116102746960510874482682846371347201282069059558883375816076789135047127843616385408326837526475104440853371734354608855802848105471562214746115224899058272658320883264858459488111993887090558112284961784944330272397643640896736894948143947300196627803351796567845707615494965549152711037538857644345286997448063722092640554139607546140362094042718603814333792229877504222110905695035998815186085143548058838809123523937601185022189198033366034271753446366939658926483105971248706545815877336301708633739769739973239753664979346055196372892882950907877645416598216394713146773898949073782167922480444049171284604957112404853801807973343829919919614756966142920110709988260040767575297435365267004094410770988073182335164094757521072390524687166830338215087056841803454709219633697251529478235896338995710361857353199484882952456002050586436176533527655213462282686857477626077054841446182398760684206970280288850649974442659104632454510933066544940639293634765462125438560874455255711337531315727377608118230281575037037889308029608257214392134654204501041526111631456514164043139440200730926307893159214733410492845914747763874974890042925329195712676568798444892420228996086219709806570487345806396839826511809940048664448439196984338273609402886720826017864795946687134071457760514776634446233534466399740091323002072658015915904101084427639192725360959876397640136322948366462588893514127470915555441393008139614728799568067898426903005530573526371162301208514961361495399393645425972973056876440751055236439643704857484573809838377847818790967022739772279159974042843764578781981317946798669552054211225310549694102315352910593235292107775619674746409664075795713529428600110122381090398270579235600427732275056281402424030047246323514501555337124255304946917894133806270688626342767505455922233115715773158787952211163767079382850130199405075204536254833066844395217392983105861192614505911111033019149095165406042391962579278775715212247484504154496556830663754441115287751118798737582472238474838813000977209049626930493529701290368282795985549000363286211555113368477920604331771710790062773338805390565579501214735213715931808824679663248786384681852505004747059146360051616740326327328665751012587386703120273635379791908071827551701391716726089541904652746928839684607655805484657474860187742875432200616597107728092451874441064962570630655865594070120926748952024544048923677217232246422551567911343212716804205836248783911470926668822719465498814966747480692727161550851729631593295838513203909973843148624088276924782798556858667941731047693658299133153019095254831777730231780585775676317288793419109397933508430688777150609255491928300811643171368593662004068936237685989019688846993525509757904980089895728239169259891420257953107473456699358010430225447489380328470571681811390278442002030245613391267619590070108689056789639435783809150294911654610058518595373689336877853070739586129511462107987088953199960936472209291947123055289355225364499116950670078915430255221458187370118990517532545735202322904714906585507030915586165069017275839868999004742549268806819454827329269073872836412943214761876343608076093239344932159354310002970984605866284046689025741931183399153098061475410737787422293413210853364247284864611937822510828684648545370381910072405446524203684500005084199443203693231157306434529070744378521355420702986397296332348377131025463120430200333428800233664314922891854689133663602339095391814202008392714035044897838342112892789599890545419375484604060522535468259599802591572991222015656377854126047907547231869515891958194896301756245570991334616459505338240556889289102518867633277626710546515658764686613875041502301174390197614790838332913031931061050634125741386731510240390994442422895555919910998674342751460609887982511583518123821942831691471906572756037325973590717311567417989800982547281129903680002865446983242755319441374571696740111211087786219011026276550811423771417106929131227013153444820880456935834218696724574925394009134818506325211688790628046255697874276468986924597780016840960434970418721142157071768024510437779590799029368216615566473952473464618217027111812103455671411019531612996662785491870904707360518390239346088368173798254904739719577136304074832366728800572236560068311804255993872013364862797211281446745993301812072704655630883966313588432397449911686646307642756939241469978139412946876404176150708297272343886260295287022677338835099583359059752388765257705362060044989217679677808572844895519960764417845705260444477316773386660804075968960127480984616646896544552698955885414665689213203299584459460182158827976982959000789514739697501298741828131662596588564037313763672622603546149906747124514308565274294557045535165531515600167385004331503150057339697100042662344498245515874331074357166272572096287116401617760284632435217922139468756187823625662173863413211363117049415744723462680817880546954950979493425607577266338071721855711547876294460953603584473508607678530486121711864320881003700105388296425136775181985720356509905164318463808609973522265861346239390808436417246008708342320026779989004990652260162288311690957350750527845565737237749649717415673437958657527881778930973550628684502066851515133057589207158429612442836535107635443917019358811338708282926134057431091228449056982237440882817505811580396796080565419387059809354897666043869486004364826885621100136254108211316607722631534754978571259665923553636302094438318689264012417633604076707807964233186231468222299729950921262447634660100233012339989001311281054928866453180882709564861627799065223359959794273324664431830213217726013012511932686506686413365977175781254007379622118784304429327225681414516785336571856569246724075398310904510102931592455384937057539339261033793715151026959728939723704052275394454209238588505169321643506002661641308181267026764645794972257649003247272494472981092191608605141255718656647545106129721841386632219597497305786060717604534523650891367332503495140151997598383422833423049389501990091790341620666296032187112489208324013578615654838295161542790204057803054435798881483403210494444847665999320688969855001761377212054779904619074340335499733348962313345140241653112654251153931180452808730021171200231263517005344550080842546257618473707958369533226249172230833015857390928279310399192180367263082761530800145502051493769126897964866408753106240261288789665089099600503543190398136813784234761366311587165032258036755027916452635416077657433878719417723578761245550053969215626579658132275643804494333920137203299599509186918589191960182040435236027216931772180849810461529478498323143312029505481237624150648872104210129838746425580591596833880081149441589700926083548119779156115600131393050972410633753412528481984105321871743222443073774596105765697603735208597611403258646079624076930408866368308381604508470490069353299161763092428594398491067153110914321298017591777151486087679549452876092066323909325424637262493984198563226093245716863658458533855458203346923951396893060071683365051108482448610462227553002673771420702122170992579559715012075319170056923531668276568122630029705439953339589764019884411083437096259156245345001818187745439203772669714593984064095435907110081955818936140116505409761938957043339870516399238593480313531908452394022707657741224034184971542055496595129988808528288737381540456414969520591975347775836404501429990200817589084998510921690755473685703222585159223032709895689133384160500133123316366007432703792676889938552704047832409350690074717453061579584665679462923592439043351582845532553612712937941748751630935997456062165701843676539372690212986563508328946785225167846137640062067462529591421999761152586433972834925575859027700537490592625854267549167618446354233175520854441932114603419272985171165962026924221230575211570999078030761565154875574425869630782873942006999184188833674636474959370694722230319075717893464162427249901293963417241390885485061991869165868410243367371194149944169558615004275717777224100071037553287017658540698315840020776324407715358991640746833317346000289818294426441670252315859089533468712171987340706926232051821322542926177721952928678352682525619179234723961455088551796941181217744205021859992328531717455116470022599916191405386780237912752410715244938118017165789699887906496339528461018731102019053843600705532638859538824349629596323472444626985800884035517864544114500651800490415549918854564780889531320294684522579792116277656977435661304443964049799259388741442769229519205794416660060850049008788522724912360918086540011476697465280566614299609747962486623292493445599972495634704883121107319258378199687755088277866382571280654024039925324315128210490696533341632221896166880118453120863902296123200208751414675683780192570646227621810616707347095940828028207281857459557702236401771692065502264258658721726851064790331287576074561924779480873789750876097730478522185213711541913566157267483694305521913730724427983473669571000165434448268813371667816416695639716678450861217789756281450287156895665764747185017008821458830717248668180498615227927455339262367315940377935008097641691603185086732630018990536657119741540609236360280192609695388947676455411275739446790728661564832058619077881788922396031856467973213601128871374662153935106008660649091815505552644522036427798407817726231003249881277161928170051694049818912602916534067389396831443426630491299812825364287866705374408496427721578023612106490915365961637029219300081981248037085024560946950368302080347744229757070515583516204395962214651272899993412031580139461069627790298644073673714988801471930073550619082741441769399775786780096165346810755215964550717734299388519494394661855260437893872270369599582654821497614259100013307507618894987127469575624629401996061275592358945478135889174040592793799585540645754648972408330352805540707567548539905070634766531741235516735870179207575184883929817516099285745329918185027023897397522016806572886165288762558261302430767635052981111319700445986259009573605487105787849091706636253089487782208107332175538051627258620680979831154141258529598470682955710597507720734489939821640906219752511480566143923011415823458995952617099500714100873968016366295735664164612243562133637523609527998925527376618481581337210713164707638781782003498045408646583171415634520999860580084725259096400277099557334989189094648272022506662386817169038268062578379119009245184515821940218669183580717436173899234300051357984989225871117286768319331890390697742734846733378407739443597485915814500708122698202453288634225127207397624402609153676028531029782724590208589344723172031330699799714185655640212722061449875560062133066729792649590830454344113153895477714061404647000138368667425777159762347455581679885818105416439650662664839020247416306302877338771514777173746502277272161946362018383972011817231069622027750204212591384584240252882342238270132094519371471955386308351725008513002002316895424396599498019472500540104792772696278353276705048771493170787664325284355982158532367888226746317735283287854606005487009084778495038555258013201777394560847366485513751866524677400762768442887706774421478792212860143097807386199260033731617147920845956559835413176180967952813049207017728589406434774978729439290088516357166959100645335207077479826359414102723618799072748809588728662209414133565828752798164041178740296611118450132066199265708994177569235149823447364487693698170415820493481066301230575267733231410470590143852637588431418921652188911726077944827270418649100234100748701350867366107239611462295487347793313259042601889287825292441853989294945449343879501700603877128931012714919123960997865617214753467774465601635423130026217549063569441461001771196617059825514449668919213939299157295606501255784869017805356645984880322228837905217366844310920517528141739111853988027728661921078807408325610630334545211452484305150724983110569321037158984644592424516865801851880167512265214711013927332921829799033180427423441377472534870927134984167637294822239051505207990920131082237334274887197651742921911456945677140196988114770159660984759046974925368574756474508555290147642740433425861628977612545693122621144548267035046058410711562417381843855678950422191022875469165220985193126555093665029951427638516482821846268980786382203804411236900893764059535141967532013593404770291301866055094877804272564928445459174589735314598358924605194619023761479188313800641439722974422346354359460248545088808241581221752779461010055353708924151051821885785667280295474545326486869615187763951376055135765368412100646155112129507870823169286956619339608427568619956980889380454700857639950586872429843797734978808055580942730342408186325387045568309273614231885901286712130113119045266837157686858262582662782964151409002905611476236741369434966055743435984406451273148395746071025756277226909472196954345599481745878400414833607100639450440767970863307163834708460181908391083422238018342289750818860584967731647805819702828793713615276155634178535720772790805212119650280900928125339638360604057778527522438665365741178086897410538911859300679729725288707597431906079316827833843892312172653144895883959722277361646764016689451862739748090919604868813836800740064274665310432019174217018366455219974436375974920111231131206877086705889535975956186736417813714063696716016932883773670024497323452931179819126669484479953501287964166934102855528818616751704243323939052859825228273067488032832407353888941561731192543138356669646104004727042836017762145730340490651308766072208041792713233716980634652447169225169684259592426268052660001086410640330965975485058441444526085651986076102919222832928161618510779364020226384346241542090068276601076045789817027279904367959201664688774866256467308665097337912646899364440175347897005839355817986576085489512168213910827975868714810812387805755100033285759712488147024981949362107778665271631869484262840210501644833547662845227501731352367578904311022726716635940030958946255511169898570155787706344438259088261824584717019264757576589054102061301711805441721376185863068452481221861056746834733607021807478578862291354795649560093161382893330431095120017899892140152519732829346244001445221738153855904898679982022250052482305905701392680462179730491218393159046630537845225932587531651301901337010984913097343491261345747705521657594568195920991678437135638657861188478347985969830293141391071407786190329997084422208215255864130943812981668800939549813520898056452031189947203696310003365844409968321233778395398495163780112119484308174350665361523853225710811727824074952755140796863438332790229375740982245960257988549278239999168170763410450571361909999957530981912330687830894100770996240438716357740729396410845841855499848857356447834788387209852408928580714864039945569141625615334805438223278186837253391065599711771957095668221135829551665504361832498745689473470964880428063290716697925380852927316485854016992076892918142701034332702162689958290092126745050090028757180286058541713906853524739807273146342779529819495750330945148459202501569085331706093742577564221616496168447154741198958968403937716732280406943285974798213743976827790169135241207019751559877504810359767930506171240306075517283656295469858970383161104971436766825963488422990448666995228330449840631153979412814139846966739393493353489891688410966650888936047823854309870019548626858601097572071988535056310792818420404640569503877421184167663810069390736523417634126791211007712468003412105283778201867442392256710454348369634989391742081682494110403052870827830978060389526006863306232756387397031608116640355336576822807691828739659382041080439124478096058424567052924907255813179976938820883040447930390140673299463109614079098053273729543753836846858898667448964849513383726007178727575687946024220179513024023427347933265613494114897564986343681646516244193908302210133895126008923576139139444176710454358759999950644595729593440460157912788509393164747046881891520304113563706117582772518377937948076875982002256614341832917152620567264273109379203682732040014011659967975350832049403396054641635189272503893687315294220560429383275541848816445261201824427477839983802981851702027744103942394700519280516319144516325797990537198229203418507973806665530471298395471030280905650921374885672064285794574209443347592969842729483205370881674406411359697129741287231229546684114843365922690268914537881948451209506643003201088665464293009761425036956817789319581253958656828125405696498922722216065274102389898261947884064325897871475409675094758565648111640734827928579602728251873491078548392942779818674860320431808756401383760135604123812813836655319368621883178214896496042922976415973429260923536332664848420806812058973552199616539885348740898041465179834286533007568630736781769507667502909618878316726182540838176104932739800029305127211790047522106458459808294733983588714370048093041753417473003171104960292534281332736634947682978092885266568741041582171929250382842351257022771024670748716103511160093432975223936143490914808594854452978121506894921318547700156731764902451458724319789086878400655650634074461613249610660997150334939035181458956563688562563587625237520914776647453222455917167287726323160415866464782840017164310966720504212946832533897098693061701697143204498281317203797286687782032234722115389981485420861181457705998580288555041134555224985643175497784151475436175730180988830308496037382301565644331422601895028746094894983381374694007260715221822634539084572059120658509998386063426763964660442344043034174231384730019950709096183358144749039862922385881521532689847560286836909307109400334822589877706868948641891284584055130660373580955567897390557891678144356231179388417951540758200791956025146093359942629612077983663626087017438955024165285359973639337744973836708250721549513391064908352372269701590005092831935567044550854984855797067105616079996723461793500821145751766314023313707598878776697433308870997437032229078209254942936398074777050612679044651894331959654245246840740429927755290235107309211386098832309137558660471978628309191164118557285818068156186172257101768364033369931105110317200452591654320619698053287259514765045366794806907825492044737956129723373672111340301789771822422204442468385658875084031987869179683558748349401524326929214649288819103947416779228542239737329035861665994761110254487299322596752749621032500157975003606078637709892203181981178569719188517478641639761239476655484369275802521156228969769342619263858609325600014390344726944751545334721164275922370683345540023286806568106572239784063715930681176259839777130860363774254292002234629406795718572677265490869629150602575519888701553780623990148091113694891381829009069478983436094198638479066295318405780558110466080400606954309114220526995649486369963121962140578010048335517925073360833287582739126534687204363511633830789736310980636289951207228451313334467043043186558568454809304182458325712943697137853207303387908228311045660807526681644907452952952881366438754062437312702780256976668568848485187750377697010375565160410137205858679396814058533143775132847451385680060110872720626560729550639514715221975284281362215766430671705668495938333204707310233560629664691768353577389484443864360778925739269351164074944891419700744816099342049219412366603413701812402329048539036116724493747167347903892448975198585735921808428191681906057831476799260886208297742533247313838510548814707135513929638999191009501490603788243650360308124600935275927376477960557215461889999236737052293355112725839593634994315754653181770793256586358775320709101690220408809223074773454694107383694154067699922107303137543752152491201494187684772306028508641512098334385219314814153501456971760608726253683998938328865375413006334741014183666851289417527643634710253281929604568764458347217432446046446849458986371776445359294875407606996994828073191243456156889772430562482780213428446430665648916999470337259813351445463372381647408882832055646915816795929873340355005041792264419697416189961250478747438503902969791727381169423063045468989593954881240815942575710298071745400665366224221764938053228590427377060400268158475362597495040260833419915469970095190379302316107499991165596570176540553596354125887537029482557195575748929285802002479347910553765523451887999587473141104754010661249456482625723948102057085193750214057479232948216615846865087109173319282086863370097140521084058242503082545156037978450722658097770854756855860722390578821733888126640012588720150352665662220698368575819238194775740309215146898798783133184332123286349360155123972771549695879436627140304720497841610395580935774265629096547634809488161094790691808774457689905689459749186728719109454735211575801804982021651402983011998598134078295166481275875626159381303408955528569768541081345937538073522334722849058886303418582060068075936752770483507855838881487000994412320687007354873590387719918255845048848161612973704790323935754916928975665695461290413717322485519537643697271629666066993244686448595615734803283091946349109895154587112206920190527053508704743233009227612801260410400130113397815602439645156935858274565536846307375859479250820730882804932073986057565091108603205579198911664920999857290579168944882535792652804158482361792614812072746155108153852755542547039484271594483534305189144171216565875059181454971709240611771705184814859937272714035329781399966387275618477868018032129278913202550366803174513725746798343738076583305119642888987102712132275824516677380257062523295790402304197006817867072542808478810629356072941258620774285905110482646232714337592117182605972237131183016083291366957467692009632273346144429970846281210739348014684446993106747668861278250697292402622781888592211937294140950965373647110473685651163016909802648033145815213887682201832188727161894843248830018135056061670953606047930501231499215460870050864686219800511125985778602691272363388009096253444303731476093461564249348485328974056203099084116715330713427117180697230543446227088751932150927868813998384246956724776504603339883944804949317141839675637439822647656624661581351877946261988477347493555688625302918221005529011800437079176764793530983863606641694082335246267553537978067949150679089448945296730548372385885244870526628181908631604289785999391561020672583319208285124921355006121759958086025663222053036914654383714580008412136969972050939349505630775357734638688725859704012977493200137020568247402588811661539177023774570153536472779381547843011675059060667392090347411034309911179359076352467467703675866449343597576811074510449379705582866498333084721701257693034341999932662965052475809118026341153220649967932448690941146426389410723938256462453119988940419286161009779630347081915722471111233620721849486239175452737446958156652768226354237707023568696930315707908098999553265216120565196705418785261996625544412423523569895800011812025556774864751968360122639533321231719984600079768318153965896709772033735009402548671323415305193198227699700250659876317690492628633894592967980381727066232844253658555895544434843962050998609247649270783989446529815476136102191754624469041971676338847212700570144650921267195630135956396678195125354372320163689200246666463612565060543632340680584948262054826736479500714046008517440511877516314569868014819566180901711321845996320922972722247828234941536731313164910125252406414956550335955269561280951615327260090102482252478409092792551286669764605903126294273838425959887001383070831932047537722428567860611320848065889153301309760653532198752111627841849693674711637163512859695558812844643153415762509722971012518508498361571741562707563608667697909797865532154132447927464571956316044812096381158361126194217345995796218717637251869612563172352003851241670102969558706027184795982470994079372222195621104809207028629906372425585481779692563334496224593879556846764210967638905427221756833221610280705674786127374915690039798619987860849328760775213822308056473155346006964014254932845978069492452943723903891790559505343943528555979217117560818386281912155676152630844897505584596224406522313533935654000828754460310752284296533506741133693782014175917624508402960936388709845430408975495189438794270874478745422155696747458096658252251047482315002410457276924982054334151428840785540841730384892127652076132413454175633800486216244522695135744802454511830853427899991998152777068456857014109174092338147728743238344836709589856844702035420221708795116482762242573957223869160838168981487790176344823902122029802595515853762694380411422192520331996230102825788417293146027982496528702934168676173901184958011631783459473397547931008138185885703038860352033473256198844122248837139196158689825231516327108831091486889024880072902386175653225650908323898251819634413705983977270249083954183202276155144356335539542400250123696122668938902983294891411601122526319747569226163981687440034243731997975472338045318013242064252734016403209245043140695547634214339122064034044722834725609124010515704574581258733132328555061656606117554824581210929157741523934202936856358842319825965817120296499129111518912566641402755552011416307473096299069410947705019134203721467993727221172770225519095976222022179682953862165859755683052655152245990454301237401463163752346100695512519457061247763346011109571960138769774780197330234968274116384999043190609428350732457005473622544571422766678286582410585067316205781034061032586697831247443736660806068557249430262118917689204332422138477863252098879812288754018231575532340429555243554767419813741360214708442614331980434570274296785275771074131159385875522940942637737572347182039729626323411146153604235020992533089059814583699922185732543909082533686957756344001080008929045484175016809273695288578332875979866610027390245401872346140901735398045378127857687086620045732643672047857773423186794088052873409011104459423389386488613913741010899206827516879005680090385884328336381023571118180384124006621831775205389494577271975821356622436845193655545446425840152475068394432113260170990342559347498546041342747555881874746658445358111210081910476726498172870250575289999568296489878584926114729033666693020745719836088343202977243219192949049392639208626897522664355038918811071474875846750475951082111632442799239973230143670207936624833379249809085981357958223860377504644373840818290913952852646521518447386810985929740253598094272497966451110693189397069049063627184812717657311435737534778086640298839017704060629786153319422873836830562400323471612935792007609649558744624746636757563954944010296405454861394090388567982154671543294605486732964737750195184600353547736696094327584814715254011403330126181681688719392177059672735318267349298021775225235388416806348043250028102851983610859506908236630923110056885847376996315044535272621167107109036125755245986494000269488016208705122919760454444355823844110293789436157506905499450668101284602729546728553311160613241250077322653109165727206492481403214394470366831339009540696595930424185501462192711141035029491265175761998023038702940227792197641153597612378269810075929268240059895374734583979602462508319112939070404698348331422299159400060184503136752626760720187660932734010458868439400790854094789870414488908778967998446850784097960376669170191111777418216722632908086454918759775947613445889704659112606042059528602239629039582690854268833575070308841177338380798359569873600523206255789700390824892410846007206921080892668380523478464193483937660554019788015582775379876964435865219264200566630672782658466886406518900383898075168575298142927691851971073971002449654375224650365336947966576749578278849378568549119424195836447309068141564972907553934281426140544983868300129896331722652434574227272014528916270674230095501248160816036851762674604580387312099897558464576098377276208143560891092595630271216697773987051808372640295164631809816628913059939542114045346034070518442985850841149431843057650572174207433080709562022609758325146522953590703790029962089777592260116012203832718169897980769205977491962793370001455349241578380704012424631035914179255494868998621959845362367884330502373591348889040982061095916589102553203621179483522093817982904078179345598657010950985286773555571000880334329882562402308898536143017820225802644176083055570573916511630372184988760911037346517091884232723772740631674067972196018052181783355765005966780773217847470576002985874532895660530756975463135827204665094311019286426787648590851342934929017216975464393943028959587158448639916856969943428674328937492595324861946823786209393395695809376971891324903370340555033025673243907762231662205519075686399776357035656582774702223415719136764943931562992078939513247732497739411708245983607323811267009968934702221322443181099288245057750546262814393105815649671287898632844824102523785915880045165449238639452465170100909840582824032446478454518469954156772539179580126819210999780448263398692859207690530888017705919096857837969362824446492069997531043098011695726210390619020869469591656228124179644304388022327202301531222538545094024286105380921532148687411352382116514821336445576415164111474467240641692226055819750982442487936287464773823900697212880096521823319973030824221961523195627046823594394859686456486749797841207318313744894963582221216874928183350707765706403368370661144479605187804717524985233831933023504218390901186611178178298830069051511942236839417091164449630468754220819931254892444124172279365501172347304345298269600910616777597604426098046800896074988253396938769869042644036691938947094130971893813619814111304631603253968227619941670489745143112553333413898583000351372102189599182547294891175580283732212174665358564326676513025649963300157482629146711075603259411570208172263207476536423076356666503712058307896937474193052595328055936131593664360170404364180751450142102511776843263654559557207880618198560292307843006773713175134682039011236094387780998202372287783621230808865017935788451562130421055263340278316002593355718811264337080073841260448168217951915913036172269996188215874205243865009962913938992798580676370444958513019237085424840735235226786631974777345437889487903173426034184269011201727791993983322801124082212908980931816618280890743650656136953614569920841219449100731027887043350597013950278126488019164721639911635859875663837804582451752773178408626225257459068007304693867633763208433613660229881407467073279836509788576884872986725186951895333149633461073586057946785821141286525006026749523563028781499638685752325231545135732656138272617357001335904399459702176525878528361800610371295546745199352236491906140223256505412834000666092882012017420700176546252920082431299141255695062398594247330446564382459557643878890380999686548155746719151891064934011424112345867646455728381810044530716856079979639955419179452923044473510817001136410372459635310788507135926518983496586808672023109789339634945588047581345422711433516216373600074749559151547520647047269378768532839030190664896997501733031145538186591181221605124432927536749289525897173232221535448196578197000754249764329940563329474110174441907299658352242216218559356579085566025691879934427090851679302108692955503957123085592858684159210844665351396961420365809146787664697368059688975832885416896790013034326308349801628532787874930669714909000025948460662964549699702873106495641238525060033301927015109893430169986152777304911512695218687892605730919118284369371513144050879589259286261886615721911408585322591871320170254994882378389486837401923719383231847271677514539723491883638836109163053355675415790578562198224758025221619986693042374724159498787278277081293320222967038282529616950367536849969935731129480302917036722407713950332382830851578678654392263863954901793413853410423791515366696502575668844811975355829994864549682218783379908056618485100087605286967695456448152931349504019274092992549522728324525591730973557272864125314141553435455135925929249001819202363736362600425795179403581716465151262023742952822315049432042736970164637939453876038695570887549753981575744890337613542004563596624770078894917253391895117901805272648763184960557855430442046831422004810714253668469228202006847676925004871841419673742629543135434173752822051964075728679498721371775321184234868414160809387195301714675194461389201340440593395123771403061222942030067165542415814657044650960511529607656518568207903521057915611426560173936548865806728084092720849332118249840981538744072023743704845289790665770713407253593510532125438182646370194762790595371910823607385344273615551743704878836904160352345215489600901941227990540141374346779633133570266680100002949826964116303611695193497545361451204639801650031764466504609574363754667278470870477696987748868195260189578520750065740190534523508219213914299611879470528988575882956923718450686571100283241063742287932535789538227742986682585064982332860375017955406521429270609638733473450003333273003271129195942599595531662523704548501589302714191557752191707504876507685512648098390858773851445875159004170633881716292604402119584609364681724317124283359123161886895169326215245324419770007698300348040148256827069257199897142930695100468916069099373635926418290861620380201169568591919992999351117394695997564251340099143576371461769303544895177749431447726169845193310123448968539103291027234782419262902842702009439154861452425889891325532887081779823501605407996782609848148092639812126127795239367542928632622879172116632257700716649992727187986057446297166707630950244198900789421041028108946042813182058043749858266070482537758836967937883602046334584163255908537533335299552887859290346887131200858562993897688494001270515795516915629870887319106147582131166134954424024530915078625991943590764321312777106963526786427361186205851958151864741418265438140550886812032129743423685196689581777385280275503374266271910888811108837068091158860912440256570205532017797640158766129978009723509302569190036256820590891000120266228274247980802815209852887249587866090288397396364988521610085865898296693437341694835424466412373558299411975511376618819209725019856819816782091824164081709015753953610508485294574178613748485037396089975576204730240510368016911914937757456203417914581551365815695800232955769255090464492668302718787829776582376327988102474549790081429614201123706852670693351540221473447013779032020546632232322767787530880414535756286878244391963454253208400551166540201538584877766392013234222417072193658174954398314877004227107846026822045315106816123400314231052270110417246994062397215234359951627720406010091149554709904813065695809167431688430734300592775878336461843194622923141654300004200900794549363396816109547880402226505671926251637553226444366875625418189311189613682871909729711595181578085651870866803599614205305105058234147793000323698931252251767977557937111556847895435340368054568390473004864553436027558270945197228720181272306386690295382911849131035524627118360865489062578824446422828058581446381113969244749586194209721193670806992610480110005180896956760154419291132979285441509770633154913675566831565189084106169818748910701038635675370100649786231345478922857847208598243441478912281862700105982692478503292585471475999776949419343184298549570726734400399642741616186904966553611456974393153921372690678403114237508704733171304556883624450468296953648682423096560190630707531719624434502713205824177141470878515469691897838119956771931316391133095929027486957279683590955530122718413695615068699450347318730315336199667134347701494032468330758415651213584084672375326744719679607664243558433436494982175171245991556282321759754965213293763110720804276958622510824184524258455161791117236115767761130751879103789534786734994713404852788268174336582710491058335565977469962531639165472427926883488977154167214372226260910202087426287942834774329137433952497900864196408186308532925830427809997103560854532988153073437514571690415639061919856921975872188760485697578793546729659456678822369327837355008855303070177692668196093470806139913467122310345052224856576624663858675296125996441044273106407347060719847058495255210306032969693032931486189053421179474067647854991490293161145591077395349516220962590939386868372959134289220382388176836012045893411676212158429064189661967522370252382746452095291040209212552398653443628044505878419351958368455571642679745861919927495321789128193274872384827077218983912192230181859068419316730921655852539199258670753232686079340801594169105165486730329613225413717257364485878563884381946528241017738426145253471580133514788773232552764859978629708834256718200970117912467961625688098907521812065836503173762332737087410886288661848572732802254789751806378856350589587075767018895655465399873005933045187989182160673196550214731696168760199909849532294726428798149593541003348671684510038853792441923911839723492623492931913387845653214819373996588941582268620671857041555817464964623653524981103076137150163237995922379825321509169496712981867119345405403794057284988956348009876114711033316690668115472845902882742816613744911646759155468557341730806209628431689671463289389078766761454549666231197812736291877353410540146367596684979290865798257950577678373972134839215803026990890163392253139847403686173972652366727816171664215360297321180752423525450684364787186840525534805761626261152295645180528340532514531636382268715073573778111460472223495070610088320698474604381173267895661890467207368739054208514131628801776971251523196283922210905793611873244284177322222725751879201467167654676564863167745614663336534306096961412254449514801794675908001333357746815376893301060797119663232699715436202007953963710028368919931190025766948335892747678351948664916313567747447798248348960289880332965549400671371948946111278931643666839830556557681706814963187674401820216821054311907340949946394972814981160701467572107285215526308918396548363940396779759583573835809493914006913176687121600474742157139237654279464760526821658941212961921942015686919427352458822349700925012216666931223346114927408347687988906160241672486328683780942843098440546845945959994471121382886279740415358440989699154082094562696545260473783730358447606644153222547309305600588337256622695557964221692877231782856611144605732256245500755140679241798011039537535941077470837347404987402199217856830394777047120128711490348397602044204162236438656670866932269685018722543931075199897213089648074825835140708213536732305473640137041119896137554501526337576626791241369350826180117246418723744534448968348843634271527994875667049841630024860414897169118474570830084261073091418173743150537380803885692054092669255474320176389375472415325264562753631188607126593068442098363158657184999183759228436145919701690423870855373679635727443574529318159903274639815358131808722704583609474437671360369751307937633941463560809234821165667876875812171888678607771128471467395384913188105551559599950504789798781327900293642296758406114065201598418627873007042116792531901425415375355527644373036360611881047102718028686369284881273056593783535849848923900854083332763979050716431055340025647182229064980958696784703363961977916885041768216416300923536480096550447119629646481443876435009797503462751017352616224583735720753413268388017923311733506804094018559301732525611526011670297781135514948621126734544919713575557752209150672935983477350205645000757501498774329792037965322917515664681141185318502722031171820499677484781518875997223627788042607690554664579879583296641386486310331331692769497751096742030116165273755836017110891361947268884368148472580339349458026544417206690068939875450489470000399633106288012870905787181661614228709172658037166433987207988906985479222481098881906467881481269598370257133000656718785208723283313446828347318340206955251862897535718970876488997107163369899545915112954893300104310702235530756350164963469871920061257765736778838286808241034777787200141406709388699156735301020917676394569818721260654692733278134727548692386826819925084204530865712304175551987186855535996194309095810693720467186584440739158221824520614523438996234699691616634612734026669222197942330513346232151891378535091836580141116327316118436345226409306944711820648094565425911269802693325141244361971475006866999255438793893651689832410267339809503315271688366571693527349609677286563181684873816816922263846486126838803194169385841642112883019565647328632493797522034184049469300332055139841068268078433373045616306475653616138958022192691127613207090808740153878881953503136124915828640247845217653517536634032335523294036148786668209506207459386565909335896883716488540178087407933122824086550144026240839518126388580806082654405114288071043739873570377642171623773638124231226641730461108026605972049972630711821377241086890335301199556977703393336735933943173474609303730474920027504650013035813970654548737355107527598920568203089379098019690052184994844486267158066466737622687556964622309335383769340071264442924870707654730773606057127975811409524972732318336832241607789001529668508490206863908599457522916742949372819529027187275673981455289514955187689844155603153899436393065679106905027261950699178750973039270025654487984700254203754184336673093330598001088236023883348024318573134372671790712886558369162418572894082109170278632900038570094880887993370619278270599969988856428041080300426124366441807863927783152775106880620224090668382384418279508014799201331383483469566828395670077033292624480803525929457789951985536439914619779809294363818468016631920202457288950270268331723589493701458808897721613234701863143626579623890555764466895848523603349809247524823624664186927279201844541541075871081904863253339016567588304629003414569497978475946065565374134913113007771838222591994397483355981045211254831263166468044735737309878110283439525673487780010258436278181599641849745581655586199467061391913477411278338020286961980108575717080776740815360647998838423746771444052914157843520379493094471042885329403573380087876862503018138586306104882224635388464290108796197943355654659042198862392479606057306734967764514702206475379479228890671812570036111962827412868456364430033701672182202544846184885373556017323987009133583661835917896943934197651360362361589007713654038446624868044961798496581558598009916366250458541904392914859354463949860807361840645573236905263027084249077485893875943076925094924873971874292212378902699301297755234179642642867057775515164556833920137251715685491991486143096327015811407418342238341688030810123478111300919049838924526757685863714084525779917923923391909036305795282636776622155213675806530502418376793992090920284706879001087433266282567642449986956383459857803602706896640323655351415596690838720747221590584808783854191306878910691838305978992389628885303499008101637972474698289433168800366821377380710939503044165247938256256583973980120606175906494366170021397084341081869580381948153923843709559530385579825954651662355805250894460049851047756881754485387731407399408380617332580379953842491217475301955236514115087069177171211425230620464121424296601066510420606128693974154009239119852073931109293014115840326418325041551219498953748484745975453855755324863576432551177894459133940737722817281713503334112407989399492065480851024470659303100807362067714470417738535513696699802521303787311055682766895428252438017512742486912121588620642357178276369080032612821559105235001607424583599238427156541729059916255783388435976052890184629256175137842160216549700400923380677316214011398776057201787703165775885595877580675618750988249368708423805106309090248944169775146037408979369274020231197657333763197822534731887791284420531341197027920489232697395848445161011536798636803806483028065007443198735560469105471543653946496542618847163673733999761985398463320099636916162969718599680114763451693416801904196168978173123121776918768285198452401564523411326675314445292479796232806260363328594109911955163657648655960353252430649966015899158111287489285296612980785007626088009389489447052131847543010661162908584457279486177012428982996842177903512677278603653074273299830266917759255101524403770469720432166406182594111553764297290357151998455558293296940682445623011668305156803544183017439085623066534483751183069395770495799723929171687556924777041234782716429680513952146311144846725012260541517357231309567446652218427962494379693219762899569269029513115421389692676524094139394115773876345956944425514436075906392289052113201492107420944228803140806573916433785961834043652930947641109752794007282315029934957260849796040836700553876003078185336536250929256551117451679098290609378318370459844909167074077932038569150579696913043360338332913426151792307259253261220742732014833183475836236993437172139157607622779559154164693006259642410717297628142262708950475205373758690965348308295682686270765403394209895108305432796090312752059948987309670764617762796224226594235658536843240269005546615684721307351869282700013494700578621524549996794535021607082218729967471293583200030822386520011253614952358826858815383478726505783599389140444593355318560008821402717661259344683213375473243803660304086904167453533346810480155370178183652259896579766528969038453752416095718801714709633207449254411669269543161564982497931540673436628569764998387706363215705980567139507643557571317766272471378633797480653043174319827530990766323895895353750503540839239360363914519738807782594113765664446508973056666065353989013264120496930222663272319345744138481842807075571955206643110450850290298249817770849867583525204828611550278023158790589250484093094782098707041049334385256617782520888334735880321184177874824597193669691023286121203402496291286077627902798258160101334821258599189975055316540759670075164407600140292335597461854257820801878358041979056570333554974474505901542148403748687524558728666162685208853988360451587430051488099342019441305328008115221422585061398315966694892178194438835708809819920010545124847170464303976513537263084044604613398508494749661392553615443879401048222104910653489165168147641819518145859642044579505232880685609153786137521380847090635054221281967043928157507026426320316178133555366601884854305339786952460674667684061887203332233879835006063351507117752249814035370256231069664073968236835052546228614801925162848282039811362595983086958269512745290294766409114722665225203869071016216586118964409105553859646453428758652444825261037051250296554980144177075608225702631596687538423605456155869355212018863823618541881794238407247705092346352587607164711072491270015349325758929851128424430269082929553640247299055997849774511838850212942982107728870539924843841376154180037117684083872888659469604990777160793964654030254287954582699759984335329127190609220313088005236723745019780181981586219062648861006046823402196514878503892663835326944496850692532595317650476407195025568886694656095009510750818871056667922355248432319632893757999624980375752021645990290272864090128237957297833302802175798800008027637631943519051109124326107236927481349657874925809518872954538356692532484544502933318589171861116680812130088027415010603704868026361856782750096466610476195915718353989788944201394156667322236322890496325944091116905305986960335972172883208896828533150295092931861933549690518962994969200435467784228025925339096606782180483753377460282083776755021885725295508379836655945601113724429751945107295510116205090022817026830440405079267472378542850761465358063652091924297355173906079579726683868123389671192594205942465233893913336808630697908759462092491348395798928149746194525246244020836823980110210526152184410581382641398543390656598603274925061288349153756164806733553411065862825792540248523077497745010880048799724759558965149035420255508778563510745607237890116023050248587614282130156747189165657235390597287565114843693884592352288059952985152835736609275527821627532385374822188206504487393568115930852004806539787039804935385725889855798310539955041232706003352047096086985920357601774741386926350602799471347258454822796605612518261125432834875490960272630942860043632179796057059801873282254537279506460867663659970529610746078102143370086194270138043198277066132569456122095839158721101626392752327096882373855871646849623211999652670516137885387921475542214546966594171799174120638199833756025395898638300212620432834058595617772836074105840736702559939361840220898624442827965636874548694191010430094346117331629516084566399070987888332099384064606869160829446483447686861591094256223382488354360491586872130429298549478853598735007749564031970110321303727572527019967751262393219588032209088035337479174389243163766889494040081674156091815685712135767695615262406955677399751342075059807629190933108724791674899195120815783622300330362820680448376943129890789381177461069883279940137856013277073347011130755632771180669255247816944426133292702418790468220905036059941441116506103776660214808155681327230302560458296274236291522377939230098688549010133227730852642545614251415882857146459866539846309330073538222733343744855104128154912054801497781773220812919830260567466837568784897379968545097416601606838272220837237585082602225175230500908593685866897341115080936483900326847912520915089595144643551965924983367456382841037283666606948670665374904506749793100699851969249262417815315061281587543732646192877775937187501789724604544577215650656980794537799422390523860892803908794405681660022899201841353105413388494015153319674544289993939844743401499417509810813451497584435280685184992312390741225581429855177522832533590034589966109260177744684531430783056667148585223041536030025115451476347997450461450833319733039626340006329368125256947696249965259492079227324083329313323747042955141622957296563811415227732268413294458686152717558030868750555769584135695106277199996820325927583936624221458306034330309647049603498484803144793860266346652913565235506139400067194750360980113704523286222311974014853249334099956378688481889643707250152248143644014675990714002492837193523893714963964532840229586285233870309076035517960433416544561691016214708172018184739161398989550491847606829241821380276061697410739099602489902987839521343961605004350890803928039914372708886080841489233854428736492184295344843864876600708577467874191797193203538860910294608963634026255859435508402219650815748994856387216971617343906403440483614175398546817196180569432914610508322386274042699397812631630244174706580881564346941122634436052960870663476013808324205087044921871517760474193734865517417397432475630429289295372918687504402402948110979910429191980124892998475393483809070897025669636748286226778919373595811907778167714812945750493105006513423123472161682552513022410051814095123168796120504355461831177057987608010700112142394057157818842464071846428884441291828585546646456157271290227913213972035680198925832071198405296626220558440993689508282690978032429012338503881470967596330615113290032932810120022236769082309798529071795293950373457619451859948567858956109264222786972808344511617681884746669335467434844445918661363608764190718388547794599109065164514466899342845342332703794226330949108759454165585468412100466921515968618273408968290656919435677648529266768459725732701806761875353619369126981746162790087222919558830275505221238416406620888424059129880288193992793007645954540665858417356222463820580722591584155949719703076244278439150189135629842989990370582979418936065786837958996399054510414402668328526239093222195681193610016133791995984099676141688864835909908471355199355130633786771557671103883472544893399489699802930705861858034286426358327942941837696478277990629584175820716756131109909621838148295443042111196375862366856280954019258170468861059306931415324057710398428602277751284117649286828388506031389288047739500209560802491275128736980898844434728284570718903383901666744401668758816763013746253552720601337176737735307113520659336854089780214146989359914182960123305137033194693167524972906814487368768003868669539848794274953764630277496653011596860435997949609738953736783450786117277658550646373886467174994359153029536852746172726103662214077369656686251818507417453884166486577622501983225915357379039444284396378583873728468655998488790376788122063078023828534240056586679876849164892861377263518022554613144924348483450934715790974456975524504097680681341231415955211252128766322784507319745412953968264514564276802127770098286632722488854879797099426829050385510083501066398386914077787562336641639288589111454382890811122634644306063045798630098198717262933848102488443098980498510893618950309213842226120099775756388042662973652417622843375443868537558831462298387157241751588834563031863941155834568470410282458119174648090678184099211164962002360273747700829936263535506522474410609059359503185768718141261644593669033895538340162364638126219369374215234928442818481160196155909543413560357711199990154357224376527162299070961976850073211931595208218468155314666829153571771591953420056927997969654857084536334069037878258956006891600259903156236067117834928800268790786026032922305697585171460656753513284311322428734232435908653059791672621590866655631805858569974498599906072588283182582476704255625571992938512063197002890229524008824744321861100448954032940718381942235737995117209071829401206310792055791404311467326193211273503600257761878978794378355428612153216343368261049464637227617208038257478914140795425863820483761676206151457002324383990661709358728776604844182929647461318428841586275197838744967101239686901042616865342589391601709461619477877904157209173304246049707487686167424757090306058543694196079512403691598533872341425131642205891361950561170241407963906997645727927238635130534302608324172753840130715553872766505737349219244234202646719597651936053701630886413774225377078530962486457009514540447812227159653231966643632533185311559237945486177852563079989189550116044920324060905621788980688632076172419240324463951328481290189051357674768992510657640986534103642195772030297204729793765557522839023539382926652657317815259089908483538095787258799065542606774503373814382456686777351989140321242852388197433323101836586538472250108950882643806136236572953676887751959084868539187930139524450512713726786923598991898468058316356186136651740589458132457894305435968183151595071062628809898869389135427854397709184840526145135325712050705891566127072111724761219369019547069335645855330748926900372899819124097890951607554991771609180362551147118707909642130836350717538157209104123486312545822124610879567037399165022406839401425251167681163901153259018724684672891103859444329251918958478639679052626397681810782661203337709130890818703844205747518161354979758789100692426804526171215209273298396799204359867360626954341849743031699381556202350777177208076161018161184050179204548033092189234840843390138630066705842073229272744999465618076599521021916840168130932606321425939364547866735444718798909691462196252301420999066081366451786874161386896849226836405145046646278966998604703732019514242667569041849996933902290911784130194078808953687687264519296895081905190100780874010916276413856368915198894121857522055919046923293746078136293593123295174035118732796641304299558379931880584641387502427746411465428738292117059859741215868884398565536409894260038299424043919976081820436402955768773575417950144642207510716522734387177462564024178006175232350660205290613536106722334870016183092604331900222230173935827817310395404281500484322775965060510475112227131847379707403852000339815453851798998495547033120523517331415012668216717322356601007641906625961478512069226102502981320299268012622970104005179206672931813098449777221445459439446787098943740267739242316006569539681053855768285766477810370162962092282306011748819490807589564169766703470141290807138214284519465472892908247671452434183042453411725160452281199061023024665506643768159405006903748029192457051822996883635697978722662067342276592454881412719773586288897641474641435030184880185012805304857399426878309825405743649553294271744769034840610046644689988283835405824359777455492916949905685282754457132133877526539330107662421093247412629422403133122003952869215653165450333105116366021813492192110863453381086929512978630390712257934556466727394858484817622378910929555552566446140993207244133424648776113100858834566297627421615493576210525289332937415525537817367196969315275244783507328709574696953836746035492852419738411284170596722184519806443908139513505058194591588394418930902757870818232994660751124057500910686823160791874115279414175019603166629788959152748765909171920440517535792725268892698740843149162810589234552805663125770116603672836887137474775483955850880692004468531715357082463579680346297576247720141267170059399729581073405066407513355643981050631615603593177149248834220882990511230565317229263035492677821223759929083264817197253437189529927455704666703983907327663663855317887296157882400845998656937887955115614146719939196691478635754467130866384239200064771375279832249178782094080975010069179061259953560658186952425082005854152759443444997025525356242808432516906005474526400743888714638230644132472942991008757316482504566011589134352395994628266194643377068566902928323151842569865319974373515015656097723322934886829277881288227883512595156149568045230500026524023324814821782024595348575291571377101228248522175308255019943523260809167090683082923001386760038782415947069931984002725982314666093256560478458629404836728331277764056361942800936223779149777466351985221972309755761768999099184275676116712961841852982343718277205608552056787952028467184171443166124051438014248910586800389943763077177016538811020769741174154201875647338647388878590323105159374450279026742589162958672492286764508536389687942261851421507876782543017094902919580693630865957739235131197332360677920824004375434725329005726997099616246972822960807418592842478669049245757221870921857887960385690264713643011480344664051327508546837195906380038377021746792929791093177894007662891973533662096816777596617772486815133384830109513704225829340639038070185504378989952585939252477656890358032198816293802098702119095801395512433943967567773141008082378407653607047533630816669859300118547927416447668077268590386475288903644033413797036089746547396129341408313166511607806963616351317938919290243006928582155096403311653844539814155457526919318710693271894133181959431673546237514062092283980554149382660444415581699911577328077105482341947992776317399044815349510141942608635964736670418276617833504666305874821344704674992023883889518061198353607039718542151379068050505479250734266968006438814086162175103678045399070761982918045834563271134414054484487041165718507683370477077133225782345715137227293614316372388724226642825181222946008395999503245705047292144959627981763806259387372294130509705722590405343088221575551260201333616471661644613492021019687229468846729550532133696732591381172781634649237857681394523978517971316488123653824397291244595645429793831318910341644186797360163406532858144396694821016231234295311053844736435247537218129993344542434780888382631336753256629316550610815931260202122670393951447766266014340383346961836271634700636338009653459304147619059608482994253837056585567409204001920118999330406460138882818661663922673968491280956403239721249399891129204943815414446239420148432520733187012505717485520817388099825833810836228959110218766060611273637244475360976947560067082848590729153582869738479404444063504916865153926462681224554592610415712835303327353811928179095518622211777699263955616870073332919708056955082160765113871336262303641018816716123248170223686503383996744680384962516809771225100859163822072633582304442035978146272006124807083468992946052998529489080279744072801540211374230911212868914932069750562127264698351921552148055192522027472604611854577603624196538555576888658778500026662285867503016814138617827135312868906107564887261138288402215876266192486401225637100819314093085537153685609149076357836348116831362372797256454082044855349539594950777333284777165935765989068858820801371071285404792344874921696363166360498381820024708549866349846491655863946351210046829393368024262078697877431493277413285626992268316553255728758029914238192899451645954102220940055624328056206122675537899230219746560642754284468933421516537664805088729856939610489626747032040278257752158336324387626644824318913149107138649645344149856672111474633553331927014933427001521647667495325194438380432021422702680338185180128373462813767430442404950987299758073848032578558812511805636988716712478026698063306954248542686810379312002866952970932065558734793246673238352235996364432033677214531210526556697603310100674173327876525246925141041023385120519434567390210187998958900985494695594712455715304939163322342099286871434348340664091079844033772202252760403240575715197939642229754353594674592355318437796185247147112408902120124110351777097296357478416247692051595583430032654826598612837212199690942906210212252791716292755465169215543121919637847530843621642611698735131837806872499717283772103949785594479337163347931425168136454217345167401699293278937657564276950776303069028594769222086504711412514673114856078282834616350654491992260720533062236224426031158189975407710612089747156519479050408887241608754906761380792411024209595150705926292054554680011064473521275513831869397267136451739892005045924292131509083821776064930545357098497362188055293226617681426685652715033571530162995125625778534775375058418265460979625808583823038112275789315217129136562131967619450709763997190287903743325455824669972140534169599322221883582427126810139430814270875027447261960865433565190537181099391562594070175408205420547523804221080261939081951855007128324244707321532042904928328326412134500258076624366106252906759184918621887858117736262410555819833104652671403158912674961181245855154829327833222952387740444623659318394758424168027358678252176358144522393226324746480642039032169683829414366152935320669938052391526192275229757344281437402122655554664408385858099111940993766795779260731555254757378473418949030011357723463049894533746035861156081150986502350451311205625892027448071828826146143622288347054614441863019204726266369230010382335286288214357732782437443132690103484671319630191961160150117837531575902045062263110182903358012310825183685544749207051827889485589000829201541267788181187435425199062394438138405456045584833235058341842996870568831080847021568726353912042588606540251826950853029744630598937213188184050366620685437853964934465198428263173805850045367684339730467925407222196437099105841356727338188874037733296359133702152226781741841688091533069146252299967444148174033087210302657817014359523874342211137569532813401229364692748510790428154233075050306845704048213369410961873655138721377901580695507269522152669732124351930932135909206688367195696015296492551561851177293209759722712188732997416300313629294054420893313778673983350354443474757073648787574026467933533580375582805966696139705688271668384463287482796008563092402855389186975154317664921568093367678760587053910626914497702974682972681173952988105733551882880918039452968048542022934574345916277244781229119576177636280343961275828634425454927699096128900267301204391606447455701490082104531059401891672233171279381350213092745205914673705752204211027091341303498299485037017263925215355081424254015501296659602009935032852315985598179893745810419603357081948295186796774273505911971139120369356019288496924187057693282713013468259722927980484964298219025099360992768193485481472945478215006627097923063407846044799973383712945838961569312707561608340403960464475968977542878881496607670474756320223437622034074312801562985630852012544177233774067768409573794021867402858074189270315273623958912436095679448278268605256267543868160649494775640934321229654303956612375235548583488689578175642199725568947134739023669970937885151755085560545366000652540750348139428219120605071513273801209235401028967900692458430614961000994283101654564508530077065795320325623604103596826311084989555875930677998158563542083573796266688152806918416877568292705252124263855453324669688847883668684629293142286605812067878643263254767567285796658196104148584808023453417357019947603854981607274538515213247565662776546576811403321514917754455349091074546163783531228468485959183688496432594109693396698698597895243949351136289467742461260917029949093512114980864219269593818008410325361647076535168636857186788721590883004972560315592357055506781161740015252832038838932266211228082394858887122171296693386268610782016882073445307804993174891131939126170279321952893074711224262400896788728495197178101199331979684048911763573002805262317337422536329296509783679635060495207326251444535704679581967938755846335203901929221037137889290309860035257807891355027843672022052342597406040954236982395892925945791650338864781469411693295848381270444766849224681313993549069812545769093359749955114986696258372393098722740082061364691801756868832555074318911379410406279572469578085648160580364690122822602530292654390228638108274183486577713682176815034963361645827031202939659247835632138849634006029754638037627346952552583795489067634440362533156817592210223552397455845281071532320368538818853936173987710221199665154838837265633397603139878591804164116621140417937870854475386711342126465732327519466717340813597792016075047141929443955681945882456559103711470293546022449448518994170705581554368010833421456773524015724561607794522260013862168926685961800547390037816131792058565376236779251193521590296577903413644987327190518381780536278021848466203996398488421390391008736927101642106286153327322550000763929644227064762129128507754815008829080042238467085507751430954281694335180531336469501448807094254652957837989514841670673688826933569933233209702733537568643308809319193694776532268074313107978245574590568505436191028050673721137347511783798524364662188014505076829807808014255751303625869439368720152062250395458699150047320019393525444679780539977158206170948452594681940781281568450501183903103058888169546748505497110312658192192296048449205939642143683935839542241983562518806441027258521699031110595431331801638359932409428772639663223247932680713593271868518033670333018185504684228562751516009874893934230789721478699474615117665268430879266852193621148346925665835871914593332841929480862754995551940271133044890092292086544497138097070445360610806890055606851883056545635798444423510171543822248188409417675421457766796436132196840997300036572705457598533885040531134101381899617037031538128782337458308918850021721337750648213105841146545496629837492647942996732631251636329462211566861272669982821540194318438918803694517432197538112164968716581134878776497469743461170255208373134018899223865262475527414306653896826707927121296252339853490128397702881091856590280199562548092134763821110183729420627260861591333890825152148869083740961870013981842951277754915466362382767217326235230233056751467660876663110711256856639350718150750595087185429007380358168564833665106569281792697993412542487938676134011309252020073893601695334671471119151674952927437979469356004159204884096614352191432311201431231391963113793087357344098737120949622875223857566600438443308193084450358574727603890023746008485138735225105256823893979190883155149152266389649650423193152100084524379752594734999824098041989325176814624674338682178703946742744601688658642065229952430404795857356148024811995754681751397740805349182371944963329557220867201067331628960113677294457136795888777872472106455253595660588908670970377248132027385062776061882580849887783150722564185557668109329641316858821495338480324825062699766676347641113481731588263780189396544228211581230086570640241342569771261446559471155493150838429370899933000836826526704292234989461234579263996463217926758395880435228114282026832637015704724050994468616297310812361313115009971359226551635637235105672862519601830289358206782634387591077482518311697650995874050429690958728486999216496807874828987157468306442256120311816373470255690872492888596043196981348593689571984086961139432008332394153750474983851476280798491388798112591938028885644445274257472092603730824095059152844254862885207120727324546286426152617144428080943931710298839612701655967706535197361119065391964818699785359985647138173429017463327734213277552511407928453399783920597855827502049099088103409731980321221429306019848752001082281882480893742875733085427553453841480887984317059866196278805070993657338283186593362966510761097067443321362300399582728553758159775771940284883869083546978168817521307082099619230100038088686691654137090101136097478009264525782591192757790825558827651199248223324632341643287318648212513775818711492532555031096884481022994539310629396414977235290646492210253779553263753966806574153178295385976085389149499639948352919759508194053122262442175727822067305139101810102975411784969123271026019581440357018104588356956993491955400731187220501535509419895288952714515239685138737833251259670809018244679649494864766186012529375579715055672159858077432357185501769591271609064565275654773904447868832378684519770110388789713732134004788846035101119862267008492256021144664308225063754049587704487806423949977447245955488687156438346190708763382555363369016053816028742792562111855193758688736818561983540848340657846817177453638740839732613487025766614684367750622952442336290039857909657680568913390368667524720519060037499649209057916125931561873713284377786660521907534238389678699245679538429661640334501384672889630478827599313435123200499926479582936353411626051088702879025181256487553264877055276251382673750195011027304308348673556757923543479343364613126880015533447567977349018412653101537432984718516957465545502808271680857051448102781515325209517875434945078400371381966383583629232571679006411153227050400141192719547871025112687639683855566935793793532366951113199095038697980601094304449572095798060160059896997135897696833139595737867022131557330775680419990502169228894454267391043109491450627565955560905836561036404152879904976839211922423149687670692656603656659366711073019802500686058094418484276864040506465491788352327276564152514274860423187699118583377464560690247298011219314000195909719206000193407173831147995437009179129757651259217466867729663570518663007347847989949044040419770511020749479324834039488856763124785294390377981888953830316912774238666512940614090239372349910255206882695699736885839229374194657135298104883258394641018838630411562727757601459605021276770916571591580574312101483945023968260023271245072462602500056167432530197049570805490842447139695685077393936930069259374734797304998416428901662730010024100846203931295519235464094477306523778174127208726127903412478934261548459035020644553809839160257806446131951929368114621925089826192492485666411776636976721334215302301712768066004540550935757054915390576382205093293118564755054708144998588518959636349488988935161643477417785104717921053262809448390256876673354218426617862149846442286217277222707700721538978866933187133679988835686546662033975798997900620293448272085384472983096348120402389541427812331000059543524686986815826687548212104512280187499995204689113954946758800918103388497123498534752971495222962624250023416372646971411933574317355109318258248883563273974585568488150503891275844410925009135887409012985157686087317263234674712047727764000082489378143731153688963085875033056993345154335819855035549918846851026305370606893850050861283688383793458230211202899309886129314720212506470229530733705712806183876255692496930668310253660465926650478444077014299461577731998116992669125334701581999560442120688099177709307848011381770149699087863333959341639474966281704139928045203385200587224265975933189290387397994560319205647275185267270726759869261929313341668825518332535129160916348733501463490849583922870747761433453015682816105637295953463133392703290555326717118014001752340165231731082931872016633161691238562041987832772235301516923517882698413427812609138573169687569091017808986981945344909200817147591985198116369071661156071489339054935750636896366157412138316375567978522613462971850830304826920055539142151780976939852061267211399810001314044805758334340558589841076439181551865436195640481582394294177279517336127760209087875219214474331264295826705357579805292619861967952708590857572623603176071801759950099674029738185746778279558119306906813330595317494809166360354314902455154464841524700678926629123524842758292859519900156886428535058169362516947012192170930595074729594368034340172442349974406980926383481650547220367137127731770020913288025981848822682934305907355823410802703241763545499140420692231942988850972606704005551508196887695361763131908509612114691322717919088229526604975565942836261389813556684553859890078579896966128361788387854657077404029851929637705316552268617703014291410131618397808012857993047363452200778785470106231236286294178745218559092093308362322132479603969500580614031401205619681459833441087964805148528386209850183428088631228751299433757683979785701898504654225709907312649945381145164844835997093695576210371300876435422267123599358659984707779574157531891885242623153902994062412011110897692800419015695061269847362015134563396589296635881445564007182894518404573654487725351081908722606342595690347432385527291362336065889161112505215193175425713175277677156292291795591908438707923250498876897194818421350586646802677869425374672743149032648967574880714221742153246184142264663945110689650983784850078833278947291920422814255576282280349396153264340599273399596264331548279358757744823051902937044726102964435272575160547297717907625126718316939146492416190424896874128120292099300806998084576552970318982738145211312214797746926100766316458368572312065355070676051722936615392738156907692341877214809411623444824872476446595941526364326537513573766174729438376872923363950096770925302522848600746669365714594015663680216406319205955938516131692165204531300649875363398038933301956337568155299480289463633788756040024683392322822872572530322811719568010883783938824361500715196267140535279284410797060896477599265253875155097779770715296474947951056615628873635452482271945676831455959058780682493165375857751354073165432536610405196222930561937908599604599494669120220372745287742076648613412188498962553844047613132036008941160103704549097442222213400631660805021322371723190567685676152352923154307585420556969568913215869345877744100189011499998480895343438951097023103420151150405159501738407253435066586236962292087991771562633450945319611501293003036915754296274216702067904722952515732833396503031780344913148776289797017748952162599903689138441888765703045721790540345983450249248572064347556528842237957552748505555849983987624666841963113265886033758125740949020338635850200321728254845407188454897349234544434176323003511469478329901870682588466441280419149759544992051384271276398984612984686811341439536353639413350515916696839534076422678222732938310309732834379231778651393691667837672055728730811893350645870065701430392406283169166969321123938651269614619899356029970048532238464130796445242329296324627210567271858731654627655303088795680136973487264903808429757036871611950528861956715975364414737495751999964548948802567791749765412138048700818352277905439029056181289793186952209178808885069995164399697974466599617679187709745940457654011926061479028848037119770029109109171819845518650790442429993222899815903334400749469859790865572799858457075526315868785425743675796609451819191016541762974952876525175331782585282129186015588318109007658268956460798507020500693592794067685524343363967518255663865310072130434555199001125024773007692356851391650438446829767569975180953894942939237097090054885341672032001070488182725395382902537559204935214735802885686530365617259565970554067291932675707049410597605947629412753708228021475117562440054640309632163154911405295394692141058074945457386347376642154774621553986984165052926417170405367620160759012452025879812053300435016411607349589879839159504326978114418288194514735788858342460871038167423491933792508001854828719695241338504532704497315588415507021717227153039368918057371537474400532595715294541878191608153176540285709529045096077169053692105626290912027433272158033117017919636534659156298363301243193342875948021253449472047213624726365771949206110007467270420506585459063257536210648629505581522207073837602767420204629539823111847939893480706915681705776007513298254192890312417598663349598317730933706314946200202655066059569270030802100572072735117963356731005787939591237771473458091792347446625664964232835200214865298760216423808421074618992081390861295425534457514450732485146544550398412285883561316414490286352928158563435631814242738565955704973666951101502103655395603918236253991420562916535024834039041927089423187585039451704332925053421812189259140272056911274814845592287930316600250089849009686849755857514381385497136288535648180944478483339109593803562365026759710622030909765844049540874623806824190596732814526143830751316503822307732060385963181416425214864113064722153614957966049367743688507050387622907469673358516100250997220439209538938468925707372523049119670234471325224378589007929765339331986524178536383273268724628053198054355019623152375118812953742514454953909533858838671273831070565855359061545209870863285025800215578292593957149922714682298563588238863006228244262138110548791431841611013271944140911924088981766740588106215839728146229179918029779938290586225411258353084930589371345687209389092432201712585631586040305100808016392836599949636049563468730212875957771528070755120231160091552369685079831020178260306697149187893590910466459961044810374325050013085848848684300659845749655889501877718392965723546241408320813924801261383867241160568418055127454097012221919099799992575271637301052845430920995003635601262360074549524293852527942054996262305359468390827567202854582890261723209414790925624404301319481645658326272440357424295945085444633361106140301459094797671599195006637716585686476156555622940852075040889439589982814677330735028342387245968426902381483696716313058371158401669665319351348128294838052034528517952136525794805849583811772996769303270335050623807706788588018434355450037850165813205775745930519127729913815306429530430713938905656353696202709167006635793121100125272953524400162164571965406836643966735577449891437340952804216098309205651560707836764502112808935669527596414748739318573501032585514092836304272383792038495318804830374128418797368546662892284649428642455825274389611655407777421506799364851315811144493322582665588958657347930909075688758566104514892388626874310179377075476363919932422062834569103462738093822649077668591617634664247158594958519964279020400131411096853865590403498459314205120660315512836555469717802578404568946316229497402254985589710557535841887133467379160806010032508015110477089739737653785187446646719677018909887339234615946299039903096173175215642291178555796467539836682618780923311102367097472941742375773834713000414093120681825431607315024666006440449067137686860593360081905780500066120957697813449755411157830326470527342262111344543184270165946526599800239212633906544675053142391515182194812725574166193155265006870865627955168557921674306648839925177816129176440936843218047427953888316880872028295392710865203034324074718573257727495495858055182747639694333636094316157873981526040209891820023740933789652816686563467567237909590523124787472837774469236710822342563475193469353724544845124228183828107203847089664815094758056742472771300508877162746334088069196405746344590749282056117248435572847973478826974362070089845780416756441735504015078874530592786231627521902975169627965050864838784116915625656199175426002800132117759614767638317267580921664945959253791867072564526855313073174136585089267029879141696620255102690917560662754414107582328724715526804579427925004008208591018468636259598713694861008674912607907239473823129540692447094799566246180928864991757692475495955388847210155996596413795021857254576477505335782522595224489455864946386057705707590557155145267951550841968656943073409546508158716304540095873218840926272307310918193485623002802756106577247601363208679217995927123746066391165264830282147882383193363357669140540834128600231036169725536271849376725493193987427851278391693836160302496799523545128112964392457771153762111822815841855702952201069161541245134586524133871878092774669814426606677582042898275088292669965576668117611466707636808931953487717600410072088087983501070801034605962107854257775690408240515457409466509307397881659444850571902100238029367731921451504759834264057093235427471715482189823652497584603009395894941799648922860746617148471828034080538421277087811342337597859134055618270587179617203605887084510135473341989505230450385962933660081273158131850187115663124815172450893742771082509619883890886221977066374137404166406409368797932388781350930858384248982925041927315612519527811709366070459958990635180513558814170989271598129104125517947171930408036727828479577967189289995966019104523387754109013560512850565976534873798959305540735998673178926411033036914982627786469517751403454384719922081821255466524954600918758761891775967970382312809205741891049396184954657311039322526794095729822355052006985541300120594880441008331035143348036506498519887560068906564901556621138828336860053775681759500988748144615282720609243092324117619720418348689702721007639274667742344071232307149313249252993989918431314724363541064009038956556933300207361735951072651803348459860365670542231834860681627900508694258268359781968216957683546028461758391656582415470429243316843812338503583659523090799990403814509792009447424702735960029495873109847549192763090710122361496759588431824994225851490460489547359788219601374962267160862749980172104251489041578821311025674564126789466076505785903739910097475382482690216220451547639496604798155756470776891535113534842744319622777175736140844987973173530206110691588659224210173690685424186151736410680327933811738141086382009774622750468837878059785415537820363981073610545545332545401176123138855143662740002446340375666858581927152047310128272855263551465441286529019773554158468317671719330978538880316038515930724383184548198569966511667200832786518388960312496443011230129912621021697878399568055875643113925761498168812309565597759243481617661793296194190485887441980736375485525858466582122961054601614101641513837034125491540700048910497561681425829043221073003533372921991074428076131670347139795835948801534578956066323087400155281516015734897674082686595235618908752863803376689768592917481268472593382722051255208149937254026300901880118111375840768730129560790670208267592512440955484996746757609012493555617092151665206159943700097826915270988142504287592187046390186571019336771640603476738970042328500068293952853861475557504524754133775540795920330538052237197327197386867614839553716123918746679280189266772439535280902068879296377556315812988568077183859672664437883743403595670013167210462550859667973673972324137752965965612634659465698345119965199346967300062750690081023420354199957568114291646166092824294772481958220107478782859030055031167583764459720494686150206381862487327505827632257197692220446340141015159106985667036718028713792660260292064965444477611809171755067256721864114110022046633959770721480957478436408403060649833019917430537685067866659701173204670441905929373656162807875709730891832419005895694462785778218742478211590610504556013153960745573620868789916855447994602091991748176235301710246272694169352074444557246488796586905591454943138922181624135839832143277376283443507958692827267037967263549634024783127158082938297502323604073165028826886705001751134121305389414283817395220704084620523188906446488015379922897008606528066167519904460591888766914390887874954974610737664267422648131665369849593464476558235932304878157310741982154167292054770310841970076154914120520553587088234344888599354693464249268397481442507006497460827028388837166414124277087447309399887850801466905454078610293515963391885031731947508395989184619504852613294236031320127288557039709827918840004968985957620789520959007517412634712521822790445032037084455647394538722578418085314370425670356995922862717253054455342213823100519948773181592067417501721048504938297369230687080197982026549480711195149532257547520780184140718036290085821632099277207618796411971810424894429343538298044740883535110822012233194887657444665114844840700425693036567219485661382776534920486456168484721625592994600980514124046417296017598811236527330799665602720622452187249418639854713101059136715538655743949384064128306481280421527446083040874456162978125530080020743178622560692697957460113235246636181687519689894203479570234467481763730392498658339827094231367206980886167022773276451873157642975438270404794641362368657997806512869229701183939782248026937032240047605601395559400067792320695756448393172546532735126571155056450868200437702330422521285516376537343484565899098928362361174060937124183163396651188190336181174182391254210538190856121821054275809063765619451234187817228791595300244842776162604983613019514707141547676838964274727052735379872654270218590568403473326376600527345533210006947436742356411193371130055268784311436130969242760128364175532719383737029460992931007483695527988924047952223842109264050761456243542922194210698716098277365287962664273495302804600697246283575637052067339127190105497156331027814665388537170679800321309800053302843107761573632735820146674458758653692608171253679200208405569492671166059401097670237406634563610225057530637699161675010755761577118548741543861189901926454769992573920966996178775819775050711472198732930278789449232948558991959500965388511826798655182754662348035411103290688784300245311727136693515734318535042281701837692897836543349726154953714931113581212982189530189803538279686375873800558193419259424402475809821291507489457286702228218989131462609301747536244940448874847699286892846840351237312891305104978836585617973397192944287415545485971869510069643621155364186193279829093151524263304416730609588319032594381037327548589951711908255818382974742540616685716306737867280580698516014360926856642293539667809360314831119815552587078439230921656772227227896741298712902936907929691961350126767183829409798549590148035704141323878978565035486208633543066675611459722715187031504666543658982272228700960880962082726015557017514642956288629663643256269350624982374909146774849913585711997179156422056069577655389093264735082883594538038101600725996789149762569574883762737443952198057728075097953773160396934960108438008896397582960187636526367810629475504124701333534457452053862589903836723398164753815188234993259579329652379595064217834789719600672032446814626893530245703346614831825151695381737270081628892179400918433929152044496538263368033323979217868259875340729756716070259119461492284110433204181924572667669413918463085472626395033911413582769670897302231436832979624055804160483454582457198438420443212842486434786760924282876971781601508024208045984229142877409429485949755430649618391959970548488322263137529773621875108505977203859052538036589786390748798109525045251159427487548513485313447611498738876194117149643794814471934545129513240597873267414204776924742436012621253346956750156086989752144501885966590511639432856787374315881937300489556460062463677170175200798506697463861886643312698653416800654017357335668873043439052444954667678888661493978000154935520080469855056189245761951892052477812505173630758290072579271708699026480499057137177421244111493643804527071345189986227294620087990364090279121625951565059060265766119769477739770174617422580888555050836307815834818171490119248050748385290546587516051156598345938965915071553005785501107500062409223364387752075977254549980348224646993001004674759388795809730691125093858173124765749100723102648631978148604932481314368537603834307586330089392024414628856012597855183429959518401593433817825745136954240843113926297479931251867772203155931538600331721381512934641221763273426454109362327053957732678518449508114488139817414490961100982632737285331994655355022852104417470857866298032098134365135330375524817751259229524255973520092841230378056555272916867738429854560764299298864300607569969655879175648984408677167450759542219888456203056701074787398378386690792646848094555976000285978065123348385279258171577379988142222593083878375336067324466122068328596145400651925594526676086250668990519852339728943461548550852700123510284027917217778357631984942623720794618099802658519193940815182524542221682348800618447950540470573514521876703012228940480776192138561378079418447021967437813429579202731498541604351405202330344854348263016939286256490905233367203480077969924097601541545661110152274670387115343447917104416171281476043503532646500590466571488924672018686580604984273398580701883116556199396957133639656116174567869062993681702688833674347222954695309746934338083519383554469284700584761984395419042866882876514189754648235387738683153960897301617135523147112714565260009169419699917596331825135972277824301000206444698581796943244889636893457589340344381172339357669154165404948970209021770950703774383612927731503171428313869888494866596919119271228862691971391510385510121708782167165487283301736086463682387690268518523727537250427113714959764774088448604542358273833874433812029407721058857493892931410799009012028889886948351377909873846136620241798027930494500765500516080211557587858414914421500721403491278786782462626165022927780189489715954420747278271728736658193606288289405428057897989481584901266784397460283211174448278170579589985172318082240698636757779514372194478404189073930719673632879605759038809682401884363119648841544052182532242898899774410064942964550838268895463171858538651355093113111084682614801820424843872210340084979615651409070892064869505585828849067321042505370330514631793661471344281555312117717132565874579363300876554663224588796345721667409190344334497652635376091725053522287469992494488926464438679422161155032299116657336923701167192978972731704748999665379241560727049868419178146849003530556517560553847371485875965482197692428192947882906501536335805646264342201361960286205372391708383257618733165984615030039823468844744725290278687575049222570141729363139544759557547678355809637505697560841163599964845073673158241193103868945335515889858049977834522361815950793036925122879162048024731130445126670093276730195216486999783514456313765309986553411918391227051040657502879881585257889807627433109492364875694414666652223997853455725836347295040935958053218718891802437890000155857505744212495913973459748252890328131491141383482605357726254040222660893549981126179267095146494590425030667145057809103236363019434950028084294356954405404205139245348774469332618756877814023308096666504629378818070149590986025684190771976379664481919145675917263921217130159223785953266817178951093293019591922350180554038532999176759560919289257865074651676975900216851025401893432313316433184122069020720632542754072081699995941211662882001963584702907138001299423810659483380382722514284894276124397513265967379205363805355696965904297325251646807804141510262690742348735401959309903981780073380345638357069061731269253357065505281088268061053382574603082371020346033262658215017138094067702050333750131436299312562131200315888802605363301096321325983950551295950551231307583587546585215497797862235280998181146562584711245563341189236573157869637736766204812026174772736848428969347806069009624962098369793460958664968795027088800083863014068632527404246898830075529171331111200925229407271954495183267250127711942865314323973947911447910445431279053930881788333057739107087353036143609816944520949699302928736423750070936725386237183878476190573694487868153478515899140850948441342370140903943061239312024305549019875746646921729609420445865996281560288096270751853519203726123494755908648757437910728443737987574171442329394661177092563041741330145498069475616654419387731976224306550584250446640029879371022276906637820193239191326506827532260099913191738230558080507256350139452549817243308220952940431185140686059082354128726501094854281066680309863073854065871144861706707319133851519045520172461252706429456862336725021892995054379355604460462157640490230898537341197622780771518396861756245588141846603059470228770557416108347789036352081527603288498520884599480683224711361018323638859353515354281689117492212717453260575623414193416177805576720159640972467133746561899471930166243461935732277620108111148792074437333360820270761171111238444990120780973604252348538422047212746414159317385995613638269248118151834276155881826212735886924116197694059869076509155372301133943780849139086818121623495630533469775212547429397782342986908283960347893388639078434652860164608588806343108501010952121310707345383943698844898463897106098861560342665029962936392666044810754722122149311010387304543243857168388210677393152643673753374360801999252420563420002536720524035873322722966973847164790953369628224205971325028201022014723355335351526852083812873826340996263323791225272346627183757487128907460565621371994248319162305534719945995356383249576634740261791144427158034909094731857867267044668835100906684546733176030604303791887532795547115712854650607636130985855238578929335790553602136656550511068543551519385756182835907518081387815355663764527028385069513276314121362761505385544590257836525810009293273985515871065640766124536917712088662324398315108820546152893783891289728128941406388218854496302363883872467745399208180631422902330739489423342856407011132674020435968006708456873755696297011130660913244511632993838284025687009059520828414719321146929561558012632141649772516425682736792372992143880527280659473210238367328826981834371557397470429315067678906463752466746830819801109785273614205986737739006458297399186335997515474712260200616372047356795842648767556706436423686885081230189269062761534279888212844199979687265183478348867063807833692359375849748566979033886007380367485766039011404778461808059195727415751836596118916064369114143276764656802559547300762174721296853441211564290485630950541933300693427607606304485346562168085812983510880889525676294796388768147861937973449440303602408381616494598964586172151779077176733056315922467735282813001267646802964396761844204459618375265364012674338468187618110615898013904873701423347821694514265878896470646853657056046050947470535256938933458619599994539631205592530085983253984510383322340945799817852060243762575490273656053145330859948938146628086443459038755973594829429158540311766597791504859702361717790513902395689550676032676066466341107622440643793813415121046013147005300517979401515295855281879946412057389674267725517974917788507451607239216908352438206436625833521106931925328913044580358186554973696634503083671322337254453805318240807319996026352989642926874851097135157923878579168512687587516008718652491284638341933161592950909852278094989397598178812086182782437905176222995102685622816527245869796152020133473881632808679733450026824705337231652363410073181473443515477494213048473650130357026161397258676266356002012566828697099636091327947940248397685040227969933679755578965478343988734075053142532938608786492962093626270560182818114259197934871348023990434071714373180702488973360192654887882169978167335281268944456953944533206302000894342518398106240534724511679322047457783289002117269913243642203040705991238010803299540908187510612572955831559661044049556172806993298556581215436391083222769364152187761833564894974954221219564676310018696154636119108737546875493105202473568790781229082602680541294215181485748399263997136974269327514751565094116359396556747246721331440435273742965192276043180921513697135885421584561128812579019429135502827406506846252982294827564623246445735773427321516773501203092184391426909448403790006293002183871045528125800276092860157609691123762766295745696585502880552121919111006252099678988381987877507110640575206395585986128918461609091142607250477905619594600751336868167126798019002812144137995023871391632332087659603456086103962129687960787795045672309729924406481732015327130755821971607697593412895167691670317696394020060351231185259509141705771461052102849663429290646654201466565026332338002142907239104879472047974842296791014785715133110456025201467379839887622045178034168494921612100064814299331957299993644455764554480543647948864578455970654573025614215866179114714935258085230091694043881920645174621455462282801385687592680072067920548154870600391719394317309912891208488123296339101564183550992873604229980589842869641268009163176503626917112869294781113152502687155197052888953849859550719485678310322915237405286743069959060519451172885511873705269117249209240563131061665234899169302551415696625997396181334605968337961033186743649738919893452557918966787707118059027022972816086182229873139207999715013229924302996462713673492856184051362233452143634864237709973962184321036641982691969275072189316789591911255215483879116346034377575648574984501591745006274205384038358479581546996992736809835563488335964178328877273159842884083654296822066109847596622254560937793504159411657170661584125090881185264701773879373743624448393005323260327862861211526098111379424090148852004913344569381876261285676765035645649197578165061958576305048229971164624984076821360245901541614820386957434999422435005285512373800093877690306110405646700807736494129236194557797149658475099677518488422910540046873143782748889351582133865896045298605589604124590803621960780547905904694600198144368715079755135545972384421904832526123549164200679949445645050713070101152219494237474650878940545850236506087130751445821995051538661018663869329627863038025199008872300207156120952227054801011322182126635557144897209158443663121741135892843132634491037809393447696554708244432171777886078003520360229708812065701040854990893487435368845897380047044442614078322480068809616483431838036344831542960104688628340187105559989250165423501174249430280594828802819176771766684350853178338790557219711656232083747389598921952366162978496493702231511169712333891029055642605936495876026986085843773600002194508935281960304731405723860759819184320855138890668387095232955552921796400168997419533141060688548993108385365806603427480773767900131844342732672648024476900887927525164395484561761819937682640889831683135159757933262175402411760861969574067901479297833727337279261935029978222325070613203690120117650073175683577603469860914768282235738026526294523285901059264370954114624883325075977140158653371646067342857742230626018693097353910660322595502605067838393648711157697071639646064748208977235934086399371909738601757933251932394016361220118820697967625145229483073177940515828799393621774494586268986274184617845807703762743615753364029765020758089321457284121578095435654286608235735559223898885905057173571368641320178858539788081343694216364360364290638301086588036277456171830358756728256869398594342641027243896779558225534256911066085069071445810778887489885717156823702670499574579721388073146092753144314306046133459795842904512752994988363574904649604247993044317703726338609788003942073815562523308574056363029891441283991857234118265864051388847994156842789619978799205129198417516008169374231862639508842774909475979895116972423177528165508379130805080038980072717219671455458151924495088407312075827335041124344663718544513895597623896206870429001072540257486425404935108295356739073902047168126604079788376955907224467025277538438327739202175072867692452330072324568989294812647800263553877029500132423124938014442059546492446869033009513109532270942833496063921153804817357083697057065669265325750846762539042627659303369653798044784638262927174322334186267220307191716137679184380633149506884880450865017271999777595123053054981639495679924940659517599601092569081131274467521254419105432653624568686707855931755826049261646763297513083599731423788015220681297090096639886212233726880429919752632038386133063873171098227632213923205711848104670275125234891538389037467342302994882541835651046672547527875568622969125778010185071973299658577451014347740902796219178811439998053167800634206009874855719796466941472586000743134166604555537410184714460982109628477231265077037012988781088445603919657899787838783933647039528861120417913839442535895986453343532281286132465795938601329076385697461025233490900118634354627458909114877517675372758062761369440021784378177948436274243327438170710152140718569393567298571590669773519878236960260613348936730162412421241030118699764242291369159939901347610884456489854466846670451185874156248255539540757376109122563184469380799233508127394874789798633178123197519433855933502729602880375850879494428933981929679818804218408564135286077114374467731380724810866462574581203898907634283816298093032242689893597344204696413862191115505616702970400023153648828116158627614574033116427496078996255593788444220586030859354586513981680512636968394117102611319511183092860824363007970512909095943709815831222855631691538603386943741991305948319795379036846103455021880651548813633124663038468386379220955026998400404452517162342906762348991830749003419976709982699548448650823929331113358142444634687073506412854434660327737953913690634534312942061428346799103572822323331924927135136280758203269063995458379331439127567002088300677567711953828541958975955639841199475612250801637016984583565187698794047023343163531806734965441795130156905789919399715637964898551035798979025092793235983261843214007716134568734123670306633472313885564521729413864348595998151709414458727829228744830528395136387776901898735711486495884771701949038532827176440364778270634752700826172390324109079136060532089612393187976596060751691522477679170916074967268023794306206534531492086700139200284450745556338385535697492406718983036169520718187363080804246570998012266178331144169910728822975016531685623473912042775477684080270123700732872193725361610754177691071096416447065343817840005434464300206795333288960013546161102784832552227815000119162121241432962780712295557666522380570169701074683592764224490303311239652098357164476473503513524077322368804839453071066237881443963749375832211765430693411551742126929043323406847885289740258845920066212254925679410421397881930616943401381023379141558012061692509267578345769246556783507695860400722039382140415032625877349529896450032057457969182053828422720747251599705830462913669912644516968347412441389508827895994067165412449037426168582245450207536764980565905702216115488767849629407600807671742403210862384499713128435739768727526808034586359401370613541242418733895810191801346841072125580014826179668548316496600761844582919197157153526854637817207764564024556874489622724820537642451938522432041545013557591077281400549324321088207597305514733471124645618994846815927784886502047455677483587510358868330139155177022854086095124990457941959998723736976467564873467198109750436322981587526741854496906383091637621511759066220225733416197946074828369729895695678390452333720683939774449700049214984188399984682953677749289319552125676409140401093440813762264050410492487731157162189493108055159847839601891285131679246638319488756597029632271906724369818358175952483274144211859964112301249814411907745007119182030664213266408649817489832374080282047825926633774313210576688235665397516775392346076119107285788073069267885364803827077061061649037112462988784428416091813387536500370182675680724659667119443740306473473748705665292440346015256974262298959904270376081137142411548852387879615414099168413249017979442057225154828484618652488013554462784915729672052898824278759611417914207241616126212743103576490112029847500755317670874018705428968042902398302858643917001225796055679565648674978345988017187834418277782170476063525867753972070414787969267289996560739291466336901972615420686514643214932164820222331254743129155777893924284335828538103546773222684715423875008615523387372337311775826918696308729368682023592533091851214018689187916374301949509049537328863960746256861849263790458822638624071903071145514192462202406525965311100316133447433411566118327045840584916793686455461220030171782177300870387102063143680888958082548920196119075642655272637319529876610794210306745142038704013697620935583586026870794504157716530929801252173663395027915718530421627804171665278582342622587700929129079154804070053653417630578006761617632637527497071541067361993397265970148010672582424048592566486155457933163474613633675538778818808140968964674132854977434419259990737797762682577588384595503991030971253081916663977061074875341456587929928678038886507026245419356615865681406629999892340435240513308974319808382189378713752458314788166096245233613536539281183656513575505247902691525213950882949407309059810167365696310387046851801045008129590838336282661367795719044098600651888965085803538134785792020566311975853619346032849423335955638477737250928574543547193269698871812852645729050587349433939719427088688078911220096019524972889206290826800978802443527923294705432418595313280216485801862712289528453112816421078638122396953293425728073289764620105497601403682242793716361315376231435964777178600513968931009769870523590788105936664931553052633583308193743984321461506880785926133414832642897411862268922554490708006382642089839541587537612892033540033180575902609320082485558552253708188039057869158497061335136404471216596183530396237155004553192558312945385963041066966514069220705695441878309936527048434800197036605247994471095300590696836147031013059537968672353258742561381383159727201516063997874085589088517752246635094188254497189699571605519451137357413929957215820418407169344008180330176036473443574060182623854299722255083101347088717844237956741798177613771925658776011665163358293434033670000249084231657077491970369456739496915715196805105131896388163994109270788608499407867209139143537494159995667696407260466682846503748252823716447804342025341490472182928916406814786531636994521835143847038554154931365049088542623668492710309784972642201751458701562965654176502201457095349804962189077327526364242996900886567307393414412866783587961510437555073948891058535344684432400812043978329208008111368020752912453018506688891602173872635132679480474577585605799423913113524533177565242421668338790864202258079505408701738229617418629176198493211441635957485402518584760457528721296348630873961857852274216447482625093794862218625451855983674135727204168809094788134670207970943074788310480251110131562351813440145184673409707085471255542273344253018540507690904985807516093753601257634381885155375756113939934859691657256037486303569633392272372705984036692157947333869167298950358813408177238292550803430138192398001680152496842063161983250586615304770303246217734451826668230717798581945069587818538214981571401020604043549199730187389578080167361551221954197713288505735876791273175691875286918252294787341298303312778750050211511416922282003338045539314454377195477232082610842748051423045241478116042337685412156781975364351488615119532642378467086853703972034686167051531409635777238742940909056075991261322123473038515244847958289943543060399722993193098937031666558380567772776020927170999851483314321542147581618291478669893084697698314764599666382950956631204689069885700451113124652194106647213281722939251775298105766954878202119153208310212893700328094252880699646411241348038641241340922664936691199425028645315493798274200740308733903341467730145854730338089409701484302809657874887548123925521052306413616102209209382219488372302350685221085861947362563960995304299272450780481684655775068259912037092155736615666206529900271869412969586417565134886795380457620750121447535323652668536064796474288182880776014619062622227044238328366773660788114271621335226895392277620758108998476798428758011837884198430395651641404099090213179380883789603198625140079379473293423684443942876854632362120651126972017100930181740028683333241405326415556296792778961869407242773921502958295776670443299092124080557991378337617189277500396527725588406553601368955505434486471259951709546064839398606495560736236157404832635985794828471059686069566152537718064786824711859261767541914865107244688989676810428594319480294922195235282215359609461092222560740403396599928533944975361927510847085653211699912463836559164559850852036327593513363902230508167156669812494923024876568955120593921671243848659602162067381309305759313122515846189033857837061918133383312847550873493815617573561727124850370839117383648165990664835324651523173725116872750335717605190150937693838490696065453936212083688453289369516512311665585348050577944789348702410983727680871364932421863367093912798944472166851371793833023340609551081932822281733463794292968176835696529299521771923970251689165771966676468953692379160754725798283573960242258652703611587897714414299808076509816011316230511644405851217249343319016042886244381596586175101358191998804992377545880529474425430386853198755456852690377619061344592390880001938750943746833756830200867107241283134654915651177001391665129494188090124217184192441610182133767903350021183278488935681437664402981735605360022419601143522019663360423376479743106194037342642939919379879729403057499754655008820172301123754796846562319271958947675342232927225153773232890917737363439788121948448492694748015015393421481098698495668387555961376933564624606976923257551486641199353046401076282105229239374251419890236959612421207361555785112969126103205822296011924115421601710660286736079410902743364832632783468616437884810419466187664486447197024790576563173714075999821988722506622282350314024470738427517594605308334050538397652012767573270237680878456040821664755590662065750009901646728828894667718258508438262721734126886209401369622049939060211613281001055797714675011866791408014780028737490441293560901656072119163908089597931631329412019551250408935052786520912014139524724996848733741500614042758972030694433463770403498101994253456240219989877316841144758944449961093908591740872800160136765623647347622846857676583798976321306475818386572522610573356078059977972770752482490951976107341290528348951829057164317546538301031916341228887888060216888207592977829419070023922340380479938617807845783630624242364710562961675006061819669567727944368448008617228921919084220492006754615072647850295703026881639176126031296657587359027354674482012015787433861244749047244701169910625847248729453074955679564575149541688863812056337391004530663975684554044721904437298624701106797857049994908072366453013138799159059491282255680083944854116628676043154657717773573312509249687863529566910918554103923428212367457709344052186693290602577992117969322768126364275141699548270997075000663331571434283531156923248624601179228966495662249925016929593970326874140588497876543650359408497800876203452668441369431689166871616228305332572992266007012997264670771894254268160141649313167568876191017508314590452692994218100101245568122964211257043305211547107233701055469534473599485934802175168049281230149035956793179499076244087928536117687386033372608866855480206629371464275528786727509572514679635513033101121233123129684752476645384862690831919326435528447903632709784093684398680884645328043706485858592679013164233341601970570743679290688151225196498331436055252260940709685206339507061432367176119710929371829370215000809670193611479455865145744830665154664744398283758324099641263954579080379504140775523611113982719460203551429656815657624943241872386407083779678150947002221848091444211922315227709594890534732969468531159892020543796304113504570817808896486906642994545711585703329743787088565147193870810186054971583990589754334001504491027433584512107039063050831468259851461012496231979441597042195538117962944608246860813017104120314870753679808101593961050069111856884555154421284683259072246288644300266843434298637849459147062765192346933998717239035454256402201202220156316863294231970749511315023732026138561508274710809671230097553756066960796303279497570142400406284607607384377225228464936746722678429650328806154085137351724559030275195620070635177115111549949417396440999023436277479825491790688885073264977252724012204903543506158642130447493728520710016985893352275009004608401938384466641816423125231528285956433620984288575381704544287230553870181087743705491648755529752165522496454212967069580462586343854550440138774309538933803081370752190948738405601524892105767206488906050430291382474899562790696239706517734021250012502706307681834170724487788876346026008544121815909711332150061063559955589198469744603770668964955406474964397026033798568523909112418760000776061506160575085405974962029047599296133476626506529460835517708766084046274746304245401571929075593925877378354495312658030196114039786877990693823948742847126133946240087734829020502339183553743724614594694847650565712061640106698302022297037222326407322898515677487203249877585559097658272009343325836438418086926241981571007640441255321984047535557751903086396892773024719749575718792366378021706498452160546337289795009061977701154323586596942193728514698905878119236519885445153366773018905716114447701508637086167432706026363738433024306241273624516535850658877856320293662871484707031089358190896994609198921461164399345390882957774402444033585835242139308866121542636288308420163673290405328557183907486104288331288182008808620692246141554527808129873638318104489493144367865365755127758846771284319812874785008848923310203478866182884186625103378344045550481927530795773392130898755511945951409436439271803518332817307388030633443570668872925427225061432519895466616853549571987576734080130841227512936913750776252871151049501744603955730670694141407007164418078111600978647392017707600666629187213298452123438216636827435681399016217494947497542165979758435848737395226460403544770260848898298233924742213421318068443018192353870608522339100029086656905245592767110609068514378441269538582991611467990263595152070426873257643833158181317277005051064210996386119956747571965710233006799752776951981112052931133926409785823231600119907238522082922104827617582105115394024518327317547739708153413689512528690358538394640721843925890115485838070231680053147666714848165472139923715413814084269885608796096738376178843370593437744780040609896600234506643994264127710868821694237968612822995252192792593258644978258033077715324826654684623475475656735453516514144496544010906668229407817677949612261163887926135746890410589833785884560165048123808152329162597059257538033516605707495464770234103595701616691936904398292136945487453838881429051090217818088806953939315914107048223513314610606323101180879155865293098321025290171466161013359177876585423882864908776272499404074560238070683415245369912052833981682299662686922308975306916076115731925758115198515427414575264726470164001834723251283131734932958368097282314079681283079414237796263594029972718796842394780683595429347543581169555361935327272010547328669108634129441441165752826763151901799127242149022043840608222110389376267880511127462280588566424913143675263766737301835720699909224654765124056087182853360171221863914695585207748781741639137654454906429378263253150151310618885768504060552466855174997762245057203829640782693201977592501100487172139911830298373480176665638563396609514475246916793898067742737043641957613982676866566558405536628416335579877539105376184488780150269658409589078516640984259993475924262176102031255618112467676577937267912059705223640389374902882506539615574050982719836163942913453385413178381324615868254181760576185981634967315105354430002337789161183779105558708784476776072826836601825957183134405809405362576598247910235176342775136398257804017389449640964905857306184184108824564559457782119222417342491310623976205142594809873858108667280372611504331008725176656688635298868510029214956490625295724578217749764617881114122267715746933740834068447790051444718676504922121842539474755000194582015551093975343522633527198386238969307614500062073764962289130420463484667847638394381465992700172964336434026992148388616762076296055119074091355502563451652161540126412848156702007517396056849475394388056970272209212830785049004668673826377120297700062071269419109477489446816633115625522116861699635073479019858805260681660438201140526272321688899281752260485635955257057002259660345676878774128345549457182049151848704061653591523564192666485968016853344426232883737482202431462571075703226620325751331274500886088505138792591839981941199993777486312946345337968418591848709553459671064636288385181058701660021394302189000650688138469073805810150596696910769435938094450371584215101042528963651212515811937390323170288130920488399885121106709375311013346613355700891118655618543618072535896953691237845855803196772369940302055695016899246065023189926549490775594830515114018448960293533444644937731616023692827639506904188982191537196065082318580925179171763230790162320204020424191746546576622111357817170562843965777871419601529284933437396926611419135970246173061857468980005305696724984790634303428153381391089521866819288582817545866046930228218632815549693995082613784354566930250650960532841683026075068542269878685270230621165482134652607271728831945802849970357338410711896169018298098787292498505529343929344690943664008641653013862294841021183723188137761625111440568520464141208738809984537145313867317989829503421784375037290649586361748501702980065580866669934687987868531214805894099229229436005986595738202846901027717818509197856760074532151567079577533966371436314100561753905475119790522556210894094408502396250189624727695299079795524268378473172837278576794541871629030839536989419975012433641586298912559414468588756542488808630544882840636289963503679569280439862534144741623073472665413636815297308457643453997189488262044894805785375755901470128048210343273185005053450209951782724052779544954741479773483527530478812224641071650910513194969616083572341549198227031397796428569115164811021960048182030174012784975405075841844456687428862164599100996424092883647973032735917493809279959704774348506992118251310225724248378871705037219362864081379219088748820931342810554687702441902408034175653447581539998601390126324101801819803904372285290812394272339986279342217171165467204487482770885349435068075980602055998173614574260289118163151154234592319695202767149192894673623936839021881008947944555201079336009662560478709789691194525872749075608759746082559727135104425286239392490574486687001742473698411388367564783328288499363580035935727426253649689274320645023926240453186556295071893024526018286428506591240811384374759975436067295132513413761826650216429708337025317685045296346306375264095060806687894830753933111892026304921609854532401116662216277698324990752826044027799507930583607423666552474202798473431766234553197074987981681701151892642496420333109371163468942651557368502896110218401649026717914958304646331369450951532741485130891372951219042436292745117326325985399227899602696184778210619756511377628883522209242600023227748031600103857311012109571076254443226768652452282318288218192931044965966304599964451764968686681053714628434323809552263024220381034800354225838146042394313038699019830960553429626544523768644826678917582746370064731104745800796718951083126125967318746989020301341359872317617403494081082758254184979300644284089268412457597263076493538200985915843366117394995900959014961504745223856277898365500758460399285473501535011898856245622888893493212285000157895317961285164562713565883457800534201762179615704168301981556781287278439983905967940108845617446112097762659417402915746084202742943087056177610492787338354502415182912471917694495529651473067399879523307062113662895608076404021270406596442906872045746735882069552462406550594796446167693180226996461713754640153757020624014825718163407708186882112059285899592274424888754548792619846696248695488632486667457226671382827243699885099941877725711246880468943384547689423067462158096757717692545310467392756806956876677073867130026500997753289494535889333296682014505689466204459594918982598208820015036122722313149750867613995231995617839997614966396215324872060780908397518379842012554831587321541959998448868663757510035826161706143910894300053722259800052403891061991532695171585549409131564808961860591858250741983415381795605728619004394434641703756228511491329417883710059496311422933934788907191518096901498385951161097231172628939278255479536660449757359058166731577870309896744145396396813140240994783295457610930469345278132003654055678044648772091713179599067113718210093369765957591264241280963089544780210982355209058993007971093843375303003793334256313513401658405313988364638657136150569475231489112539959173502590942538320162385780738204196727061614363173418993920015435038498836743266099068664429445374864281860439520124426401851939741320707053796482983041364971382368577210273722699562112240732724966151385074675759336452088630545849348028630167475395896031965029173188155251560165469226495712130075986396525183080649581031578234984127680748934804480103831752434915012400252440579432516930327255521967550365696148611223758614484527923004049221372148798952551464560905636006281290555711051421030735594185583176789404066651091271875564150676868627093721319645957793403565000169733832652212164868274880720053578064318476206509271292475105629618235317468016592627185415499336403974436458788291625444976691953428894431286313280314867785528609805617157946679413881912994845398312958992327874245035307946937079935664020685769227812614519081837670641742334125711440075667650528842907087982494759352658281711241397411903537894854813928966493514233284019763285716037451307034828218804247303561296991213385994634767625290354742558766932577988320542030513072728027983729423593665789978699997203103784825764858698153045292054681856853911607806583338007765393080094289042533237319505134400643144345576541977249680499640300658664517651572784439895510413241741779800736827057519824814423347357080192261955080078309639506938320537519091908922908334518522489344323630966719392202092858387594546033056638881742873910496331381400371703133824094619750849315010306490756676630813170435824901700955046140211026939462090616781540304256954395637187439040216637750055035770148409211154927676652114320781778466192800626503702710495037338226103671022918739862770237706271814806154488092870392686240989851763344475965152674204395146487422189800935596551641332345571520598712162564192874411792483522801497290383558496186664735275158083461250943951325817106506329271240656701679560042364243963062416897037280842407725629475466015060087968022340266094326146926864005894526249532225403128757644430751615563216507862876350034722364626409226420969005829293906709779470220221529212778445994814453836480675397822487271274418270151548075711658198591751714352370162480856179113310202727209852551650106837941462499697246150743322431770793081876062436323988450352565141910116019737162692295101844255146204951932480633189204280149673054712882680212312857617630168746960041068652216809070056603269124471002465212175330945485388238837473324478573617059897185264876794945778286133216528667264717193848523052254194158424705000986297400785123780209807311191111770005504690059105882887615862178844792629592448329215378558118882558641855974604888336259073721069074617660116212761514650944324003530330585224802465428771041848151674257121755644622238343400186259402676372512281510310859594029604136056828340011669435671759977824338577497635266091935834741136106293535946787151792574308805657515143211948579375100110116520196038308820470643816840274881380150689662506423170551980586175725673055604486746533904497122778746963732526258794718078285051826020192348793089635997300022672383798177793915339188232887685670708706223077025705579734304165164379949337006321067172939609179513592902892589554739257359775877775102341233288127230571434070192225884394088937767650900412930834399317484894668453030915731411892836212334936184575847258485234045565319704554799878032912016450367348556412644776665374209387655379532542262768446422521707977823678694079257510801046600357624596904841054969210868824774441692215260899517230227623008260942887644309325665911212845837836371151423264334547961691768933505632857480385971458763968651724133686204914090383624882424868005867880941208460494606592617518294335270457715459695141106181789921207003947425763616946494756540081266133499394459761539968963840740228993305199328273462021201941939107733389068778397283730312266000990760934918794462589531692240395374176396271519040562071801775021837268159796698449571377586046827912428262055288772656196282902172527924987829102174305711270858150674079593513791604817882454104363478162631019032650814993596059937197347221469442225023508842973083922387420962322410042344631466704552925603942279094272187575016823501664065108119673240056665555233924108573194307020874891003425670644021747312818889462894667200414667033141733179348495862022976969401634928577873835839858663094755540503849526529099525029165079944530630492596384068753397079380767416592112884930903167474054537105115761447042280015211112727890421401413443941533441021963785758067694478502693425668411744437374111880745879814909917876378887404002765432681984656717099036667476224722244303237825038409273983545270110649099375053004985603683696758847610613370049311488584293376559761488639419740975814425885859746958888959136773119830364364084499261505775689493325913181549165521209722660366426736184191418942971822844190105823261731392277253721066492023344620027693949743178207943912373186718026609408820679642956531222475249001246950679934247687830931614345957382863562914946574490839134890859883397950794305570966396674820591726730567899603144257662967523949388693511080643064674517674087429163236776695734365373473866273409032869767332020505877537998309595260424241415484895785984100001433300759943104083261429335688742763427391521138849648673649080835893257508661547850931587125102907100012742458057886575091551164186101257198279710554841564730321019847255741338867171819405494944190303843741406823592355583921290457281828056891732994665931965065871845969740666834571898928305996046320450175694418284693043113707869551317495881106061274293777755556439669140153263553647166625562621178243449042825476221857306053982536857388679106925059060698248110404815990807663465721866626869867299166263133623479899827518426822820206334271932274693060391953399804739473909090875934325113304589030616828655750055079479560632775021715989211950715538220161658927820073632432570896157386900476736628070336973993458169038562909214883263970116567736878593796756693654866666190068486721292877957996807053537105773300142868672882429602697078424165551534970684156454827329563254667025231689388717599743385090069487110903566318244216025206562874225129342198371059544537955748116005817099834281856402971855196027971785119109072338144963880554063458103537869460435671386800773908966672184857292040438139793890509912206347673135387933968836140131463663931150767041221678580428708971574539014326130690096612693668110020770139718132916875910984033838293266249250748093409486474532907242523795013596871178570409177262555323992047397367912914220747237313925215034196045187472703833262753219243986973297050118173260292797198461542752543210547810775968896840591088400456741944907193068148033660709997607329660904205219347297683816634157634798824010773524945659285240606470654016225299792756090374131716523128260801361462249208350836395986201085759792267267856891679307836611778008785077465925727164659929978748647209434451521724547069048746665500227804921282525998201875367510369824947486436702324763433674446923143322910718944968087111289631863647044680505853295006295766382751601430726142569123420550122746905428526014116260099115232919132498362542782897880594763778038325347754308908026389911513972749379403981091024484344346319787636845080319360937305071657020244189898311952508128545352835726460782339198598078525318644150385497813316850156506858410283366376824898295641694206437265494405924077091033832792760206715902868141593488781236576535589630256040319096091968511571818023939093916479981672142424656383012119955132112099742670372219615153395706164058572498162749180711615654618295548767409650283030863509076960000447540947289975693450993885566624073245016708628053880828646532281321145254691084054971960318241121793809089532555217826487706944813370466152796536042043900392171897950942927695641158010753081838265524603780565761880579530917001214594425593310830053542620334463991223220001614680164523687080552134717545990265889374490549034758672569120699846296805464578385923222511932861892240363565362298394258870573366796277905376326236576151494876986482625757112460699121592185257875154291155969982166884486309684533793276391729475033328298634482497792911152866130466417210734873340694167476841669742840368842303157076856783325905184769775206791889954744531727709649716044882343909495330068245700867611336532161993744712031973416415447023046118146380127845936100822327836045168164541452812473850921617368394634516344809115687853357999021886325581882629865623417237044992321667070335628025760245930243296277690141395054483394952168949690610017496051433621851191066170264862965311574777285715878909535041765379187954579510152270747990705060305153943162355587489390279312777966736693528775625444984441162625291704874087860416210434764796731654554633435110508029798410921664335070926671224613618439688350618774566573152429060193089774335093935973679361174356611213861932798686497337423369229424190639532629827367825519904958455954813122203960878890302992527230175698998078302628178641657175600552734459915969865858755053916043126535538550469303870482300171501722645886755442933803497001572584911797016503971257713797269612006324391484442544602274570552824989571001332016462663067818828905004331365338272014466920393569777977885419292916865002254797076059974196223814578322662486944562645282039725273830046373095338677949165159909171668653545616069313132496049587918159868821517346038107531656077686032189526667639571527129297832470197390196487925064485654098913727587974737464680946970007371115904249250005717764684317436598701015621772469437839604162727652305005796925677942558905510905035550784301353885367401021161665966140402157777566423717190847117703502002931615957223403019618759786193857910192950242255020154280064395453506532471934641605694695174841164573160528981473169135206394044260379199693284719561963404345925479125187473003400710523163120680921490771128761019978579665450443141001690569478253599732483668470149531855634212999477746899474660312554789397492516039543289682152252581676560045072763284420288112108676537197605861876188105553616317480749617037291924923318774683480520059620081930277760532738999277536780312474569288857114162209949695720236883470109075137924447976247681419404401811787524921560934523446311719157008916587058550759015515591922488089113275814018183473329200453677510649733199628423943959260706505003353192563604692301808457198692355171512355926320729071437546592562378110652096785792053287522776332990552825045095805993285341579282114206532121923757432671235449749032659174949180734887722170668513888055429572676839502842869223659734170163754466164919784211276224134337742277896108350177976759515025378740763349457998059447353682649475840370984503013105523596407610665747232983951344235976900571266939363246928200815624234819448328405391790381409091373661838566188920304562472538216348511329798426505837887818727737395715189773869818186909681270470085400368951101199202052515739741251906997084306611387028136866104123046550796731178552879847366215684473195330829563205983683404340261140277868198625357506084286530641638636203185025338589147471907746853671447365993020315288058599371454973620145584028606531906769443874011311497441012398496765541093590268430326419876901338454501576990542993810041952923677684142044397574648308663065474935930468537403326323243580976541193057027834388915383999491860103507047551335764551803121014630782930138835628544191171761927141455742651474110923008588443638066128228820779512569702080582318828281400328755343908975325442255686763791928075890903284356514010770179801768949940878433838214322879771831768917458194026987597735834500072218136065085793552265109359411513014436705239688427288866007818825765769605101095005013327179480720649484163356515299625142700141063797895966538182791896045562076205353221803167292375445704735864925878520492043979878562717093001045706163478716700534015083153896512324725574086715156140972467708241820931549710281445195032763931534048043414471042227240313482177505332192185622931953535244176046076886407211672539280210675504730328933551834694315303833504837335554451312660503890815833432910920570877095601297407930022335289677573327378749918777346084952631172785617678299649804257496349314166393874253572674660367652023209056127192143488662455846435571125322662634769186318650925290593728423967830241580553027098441554687391264927715697891426405899014285101348963110343116774294988197123812278700936421366149067435917082341695298592360815204582420357139027160050404619186932351258552979030079833612982071378586045373444778912658454187315273338179325030683980032030192981513466932737152644908722577956985065170753779660628726032596134996720487979394174676681392644569045827233035564041961876639141632631846069682267666535585730957336123056544023120780805007512525106036572310324364203713825720843999262741887307435283170794262111422971045191803316930033086432764722990438308768163060992321404027159947131940730065500582474434518079774698787342486831966487382470688789219502252352375188595378666527440499135314786616025187439924991927229794179291874171361783607849884026434179236259232103020096316074053965721104707566545238920244757734625116674797065511184022738507777742763815317614395967223512169442161424998341466403990751676940747754200083930462030366953022866992751105776893893820090620461433431410170531520386416539518962090523294117291823706736529388570933320039943963150156552738726528021280726059307012897565278462944763263661347105581000093374340111927088674838069397137578259655440024882468222070125153542564237696541570314096129408447404397196979004292943385023206626204836384065444593051500183745538037190955397183228972994191814657718444963726342234752944661843724738970946616576780587036701651325182998104493836366645461708876901373531883267235744440875100010947428770121290819244592653155019862832586181234101985825831769563801387534970132221097112668297079622788055371207791382127314458987134647637744904849224922386681983437877658427906248117069807039571048541189943087765582579855299114685467940935579306339063437263168270220979441418598916407175937575283533601842049867116008774266039448437862190524654698986279766512940764772373336708413173376018177328960817621225206229318342627981688842689842273946356100503750149963753576467539600605852658288594581501723721922939286500792043369238945926000449012851004026893217834556546835868037487389398719614817758397041532174248230489777407852074124260718733700310375668994143756046855140203264877892856973260994035769812746812881835245094710114256758098812579518347297765051796233255563622754167773174145152839217489006445689748442868683751841071775206149285114000563036651527688327908911177913597002887986095580204838677479409332421655109635768302832658324077056148652028353284484394876631537972041434569061783397913448139074164751667346135585901355328139309931194833231239389299127300570885416941887439178977430127077602105105327348701333614190973187848127831855868864002332930370496439806294336830428156847786404115189608257699927423780908794643527232132318215306499887735172302954087428666894591178738063488267339962470445334542119687088108205958268173534599823352936113346343045054267172746731329975425395497948188375038404939346099565597593963122701096868506468484139745343733952710171093777107262763941109162968442597005259305222213384239609429095289933622932341638604042505435654036712820416518991536360389598265048214083769361768950538946183820627669896511620891097685134800652125160251430649316245708403528608725250834527643218302371947018735272996672376860969877675480701734218484487587757338536675584653713674475853751656534308498495526960726503930954190625154478576256602154399610560234376767096138196303627422988224601160398391375402208623463600367523487164503541712016060535282354024577976128695495817679225457051466250695418080295626734681008259682919234533755410929017892818633761546207343826253063038589660791896841667200578411421710228148179630221371996032355433084890556816256815238464925544367640660260980168663796282786170288248774099869091707974475791542076837014297565259696241908819726755407155335841030770257496351109693172434616480132533299707246742403313902180399270091613382152183835531895004165111052177941908267277822722195601807194507447334694865063490151318134887565714369069465994905915110254038373036250876639255110993518890849818689536230203070236891019552710133559892390139516216935984004053790922972945691901521995122156702694657618994216135334529590669339926682790941498427457397743741775638265514997424402740657940867889787151195041184100775023063738815768383233246226452886245992816797214104770918349101905106334776648545116189845823985565916782601228936708748258466212490521009646717307904934936045249361426672651797806074807099419137707268438609405269323736288790046358852077191139869320429685971554005288439815128662510465237583226169200576936168970394846811356690536129734309542168985089010281493783754475476729555156502602425906511082025373166571288343004589101406577227589300450561893133388405963998190205643057523029620127356926461598619891628393819459146314832597746051886440607523504041430465596817753217929162152931564848583389455407051961199905103510261249864253331673044677216684211091830585615735545114002588868685779719371319814209903243348458034949929775262975913128936222362717919710334347586875467433195292635623192936371690673266893983527172323361741756381605822493488381240356247396914757640010204661522800434991132711270199541960486160660606389644109359448385624108286745246433065307315393652578647693120207371603266891449649711972979755538595782899279847489755696489142853704557516071464928026503419017266021932570822348616426081931732690300544866701914514253895307144911896362197038881860442558536488807018103946751320410514153811879596217949205562884928287155038069319756011595723013270144081760219978133130405152656264468806030373919296558236753377356853726325850842290807567824730080295176242913075582035241008356800133413601687547240623430079977197781510156369631818494353320096905408815602362342270522276967485045895279378013603793148480788581528371840130949989249729300894110063784990818833694442948219997036770373834738153037209832081437579984860904897135225798790770417236687389803884875694192626516393459263900107663378767769890671515570079903118462020440664648976672677775160100362329062640739386320552308846215476372127362944553511748016028986740819179597646527887033032709068184748520692191570976180868642146558592605489141112307783577685006489269994392811990345413465970691431148672469869917015708395935032287595318190983462204242323858982331420164380853785061936247592076148029206023960790846487817533432162054867624923518036394346704419596880452602772141978840300139784219936575475444595372036561556904429194132567533874434219629023191867328594330369935423861483202513191662724653475072022573854302092965466380325779725860492773926786784091289887332926407479362076916549858232845672526891929466136841994746701999786194306216720457041794024059449189555523486405708810587353816498210518137381884090009689313455548202932438276240291439244258014453818731546464915738413704886470929471351033869344057955284362912717100984944645699685396029643322580664478660375953940054918120739060863331141894546024513013143906200475556740582169638420863100353672813428494481997039845172122373082529407875769245909954836486387980670538439503115937514543138348152553925447003680797286215728942779584526410551982553102140252719104866992199983454337894262973215708210794175036950883659569223807809736717130018412705111847805683483692685289201226714953358134288024279838946186366875838823203475040480338024304653220800232523226859702335966868133139141993941912799252816226797799120187374393047224558686860576861044588670937172429304687699459931462507937804836338717274490262836194828145541514602135764353119022925852724097383180052727255022725710950258504598647977393019372851282156084932245615046323340875403538259039807835832172122883141419450863703233402905970546536636195455129734331974696946369058310626044369685084592251056565348019371266799779894451761082182437053398225179281065057491158762547903214648790809938174685364367689578688023572601959261754363407120769149270141685490475235541895530268846953267142402056520246082935829070339695579078156620162771775765184839840394193397045766968933197349052501676487507783495756799542473736514494872771955645694271129735911989401085180718022998263759851891590408389153105673394046486397595905858128819917307191548531354415762937073803989545552380758404854485060263144701409540819423420267978422848377403114803394356186176550031342767731500814515113816872851889260176375552271339561868071297060028520517578354805145976900371516388809501129393620792749873769534189821968287425516794303978182218370428729070362555156519204715976192264885660249485837120901745871342914139980302319432746824301617251419746791817464125018522167432231626059384083375503057218622332474984717129006398951408214007226644293223415495473447951639902416893530812336576193992393738495629771185332602921227580437272003438250996176436328022953522087750076434431457197044832106441331926762593130709093632920637594588070353401197766557648357084376419895581198945556992244070642744370870815393279045424768886062203308210621351735327417098749395386117145969174411802208183502838702301605909078848333650077625503891919755058266717031963017669530039866773862941038969364748943181190780972171184018364355669218113283573799702206860920819193940111468259100109431784973325406825218317078677423452815405161065963018853976248176533168212118023399742955580597429289974894102629208462180053803732220390198321134211664719921406207765720810300590511333506564245720667379010040711478614296488880761518048353950414850965023907339095531528478008100263261198655311348805596339358170617603649121460938998195133215595172715956669317106984456271962976288711118634488020971526769076798735272337309174265735510532143181003513465767378377577117100491541200272583680569725021440703313302108301503098997502647191913254266147296442807426552791980305811316102665288463521348236468210542305824426352428034395723521590995857121815616515860342080118746034019979625319245431365533214561903558620972977148064201838631260665523424502974353022783455539193612608876684202691036442518686855530382671783200270360825829011318854715102013912112605936935278962794054442372550684456246852254450009910515498359154630928184430113079106723609824382617293452461251044153802744813942214266754270188657889767072309680795525055574733074022331328561849286045610211276456378253321130424875847295904433166540971418385379815702892951920753836034616823218208130566314316063919581584249490895439855023022199881892918448935951952310467983955650668434850841645556597849336451297042447465698465504245895183469307381524452695560218936904096472721674167065977876516514580312839255539667468707044525601323459967664928596370605431715810445961543858081155932489160947820229140998173690556006683200448559043036166098535762121056199983425870904119374144819363316476133418493947191156949314749627263411623508669128394614921288143770481025077293208754270152868244131542361753637341190339179843531089545915520126895131658517462978411072949246098289617234093696038774315886426640628776464400972724686057297768470933700298217022231005301014179113859144524084333299330091841342257980714097359665448765517581120658161139145684801860871417050766805341545928433849271586059103433324943388717415494617885504108022357668672282671889005069165669057209585880572228543621714315062187213891111968917184147454064724983767463204869430597985103336798176304986223980368981750777985729676464019212899073442393001343768425567097118417513376425672035203941053458100969689895238479076210226205131112346295073063489948452622419530807172636778119156652337719392211722084177936432539976527792899467069797277031149511389332944770387766962814439021068279181173241245109786892384880063841018693598791403704991575319150557557707549649824400027892806412746185103676828969503596506331443690326773950199960385318610241165248388365735604543606468031858340109081473139482782682846169728322218038309522171710397524212933869982039971624885520374550149491432782006783858187430906342152628953841507023834702111528003011045410911597431360949213986151391153165489471003046534923385905724536497010558526821350316365360337363411485228880048755354131828716923843871998459567343302869442342574333217122569533617437651978632058794998961222766274329269482836478395302273786826325514985863338151270677762182893214462431125047768396078774681663096906223713685906288281886161931612998679425831418071497844450069496440613242222287766410089607204377414210338940335403783037001976569518215829162775841312687135038237240851066917388245474316776286998290956281428017662172728853037071299099157888089418933219669062008247623645542401238572990802543976603698434698777997557974678281066640333771324137934995602455102312138051400805597349453454466375024839664983525326028548134548726599320874782139961004282835269250997445816369793046284576985588801492891862412064387559394921036286807169812345911770193835102500769188601752599828282347066789661714779190054403466835729749234736631974181626561101905272655182776921555737895632061492280159830941642314073735759251052961241495181052508593119041411411363441507593339128544629912621036860009188055074097326453532885033186174154659662915026694131803871601763895462719208406525385948300156248177926921859571308235425105026111124653960878661361517879093336660348317391820587729746729786894346488089352676456086131410950046929594829686946282106870112400632326400313818204118777917530689570109577789296003104648390414545846010303660286242072780841523646574500781671526263742857850379830121928982041030375655264059926700230309102050178200931649071598501610548122397598121845945614657447907368275546757941635953596424987872200398519265987004416073352931950547579013041992470539738713030802552040133614698773274397762597574183411658358131076424222931172545503263417783902202907979933944031437791348239295917748121034957722849278327369554565152241752566462344542389161457192550833892788545710122302523645695329698508182558971780115683481292447063017997253253486872145869339163624967529657465078624232051662873046690057345042512264914398220902981554347473381696537765787987947152870288723746653504375123503678018112984498712473233437644363602981532566134317477419834316096472054203716763858171831270185336528123348745695411738063236730168896430264348701694730675556311006084047606484355115308228364895192933995467826645210708884657683126147277220460119176937221891329073878493361616551442827647861153308468503214271503006545557063168242057188682355743854434028056214997337851187253760707617066582428047351342145798479280205398590794185543208977417546416139319792651272768559774059599413395390349009615794534393142665109299678387801923879503838846525872023855176026830054132863888930139886678023200905741584978940033817582716993962709109191974381981325619724175380681182039015869007150667767633338787887975540347954981410208578887543274041275481749885212468697356291566443208143312337857452403058978060589177347585256683630617309043225652145304542349901286883808780980766035499528409265041808869624080015572119616280348233191772123418194579181628233993172255705444406478282902039058939046811919792930308569052930900408838053926413810337141167894661081961075101210706642911909645747016122440226674709991140975100021420429526012858167637515316055456000944234101918149030035559613033974985109244826102941674217578485858968375622341142070509512188327304672387955888026368281541020251058875479919657967175721671742350979749974334155452244689128352194574739364290220791645788897280613573811830890912303098959672812684203308350192341643758668309915687780458704468402400509068340599144817938218759503818321971911239350338630731753832983651785594688201056252717234094592684965936379152623277679293639877696225028124267880254071969182369998563490682461819414964222136350515257934960456113537806663901405129612358982577502829752247061129694192547042664481098825370909159488191305680822254697916052044268844190568807085048194866649564309183614257731721730733869903791031860871629396287029941207193960687419475642864716077845152266447373012748009899086043680590174423722936573483850814102957303347070694238083298208194850680218482800590746820874977947178185594919572920559377867933659719555210934981770334539205919452221758936378078121947968859153914146777335845134138630919576127354978978816585573173610503833659089674523358935009037116437449447355286015896106859111075013096530696796700757618254999847264394918975969318372287898070339951569143876703247521976163084367887565567952165907370820651845790157402778241210401714675261506594570706806633832972484315129839982290624077185487068051827724734509504776918362328186590576448972785719150524073913510681487604201685969723359507427103756494279118735390049387662130488971578377989816320508930307522685917665622568170683145762127991086603790312788730907069477357691418781484285653770450196178565678310152690151560392681626478046034798999475603133038949711672707877759972675566785771946248777093802828530651704710488646747542092751142023083208077406005658346744297472767772275349961250408407143789310005050877210773711689807084510369612716004005230882737786699986109860270657736099762124472133403744393355409097664188879771257188476031631925081813559938418764363193134666803280043523698405831581899879654772604949763149618494364173389312026991279995120179204562467203668720701871000182273625460133655498457307089517415785114122663972631017025810945738457055305368386060840190261481534527664261267184033203377428710649937977707175726425132688452860382208474054321504335414118562444069503840113312354249275751093281297943943262449465142026267398913612442689782673519517668121748999194497414248886920980193881095200964672079655085643626464348452216129004909406665428137431199036287998926299704259760979070286241270750034776289514058947798325217208849401003067580295642069412079928297945656538314150107353521345342500190007741865616824660493280363092670141810569543493536889694203762323355051179446156473899141794271258810942863644395118285336697451076272044224732992958497071667251142078080300858706297061206158306260435315553134783784428408482338638476058414128659880997409423971158220453324710710307702011810343821221210990022675250107826676626494603191241244397001401271247723911333271120745139073166141575292936396992792527667308569739370742246932263473285959371495512008739883006722415271512853515243986636460328692939736598972789351788512478178418935072865457367811532542737828842864794619973978634588632173221027391228596330793061408295907364025774344663650655799944763351575101716111611588516436143285773944546547683371702664806866302180363546563373364609582147036680283930833769406782939911470990786225900720949895748880370142347148597586341415770390538718346914011551793042769257598989309567813997469499914341800901278104459966858527822201817082586514097458276502763328922700654193487043672983071935859450697857789269739236582916204546521991563500743870437075760183294170150610240461971251408704748791059165732433836013807085875205982736489064400876788406015108861942868519457088167005796471255514233529079521728995601546031153866652757859517564205741146463914844681099327803838697569543449255475522268512640265835355211202847955969066045447650631739587273827130826063197071517616267136092581342239392255977055880753563964878189321273014485182195545669449704263392283699528692783343410798394638035651396868617495470254176390625580296758944457693092522301263079004798035496949435725035602750383257589478088015828461151691155241896466066160807302967438468748140170037863404949990415210495634847165579809542610410490915740351046114290919821528440202123868880465045426200762347630967241663586929284060782321025879359530704798919598123803648125392252907175513708693249320160497914293977081256775425680306843467080386274720394483190120580702058885619986248052564676737720883876681598128298892558802977313496378451251413680478839053274526251137874813229386243710079568040538226804003181707543385919538365176756472471914271023150172882211751296625912896436033555731559175966467910898240609183633181972606691794865378935646572114370968501931203950950451373136136839870974550394833748005817807124839727680184593705835670071348590267196446190444073877761756031088571859487471800292936551090967488093439599750650287440177443173135333721112409109338933085865531918152313358969960656961373856706148328812393279122685826930629941788231278305950911642499323253335860143631741218004972785911187870540460372746800466649852085860599363511036880491071459084058887343080317111803651223485700118593772364713644895884991069170396473634386102912997267534545106661111608718659575688559259308503184270296947267020812314010227448805659746073475405587155317183010063327861998674174534006844535465526126047265841220872016562143013450833024656522944921914802620914821850766180499126495873566390350333742355288869189202094493972623560805621347148016351140492239241026024554764069741314606917816628396196132194864788633258093084464822602366850869284992358217275154589168801437876288645297909323865555542065715527764362462146885824139262667095789648385517301792820378610837672648790594886842973838751713870636587190371561176755612757074184024417432422404866320990411119658933540038261433617842124333841497389318533137654651410172708374554737007044175649216267123794661597979902847315257322782601347765939471564213971337796421567329503321457118092778214438443113435674443508913840821809161340401512775908972553783548931206760758405532319549221495080750355050501912347055568154729238449979057961185607001297617439763439604704671687225619672534247989876822064785565413255494716260556830451224217644385334172652191309655385434449272736281364306215007005641472723662291890284419036663747894544165505717147681748922911950451184579634109631328204327600306355199444897844054673020974806501647963688402343003963316330514192531612766197426665069086152582257270149566480564530508522870377165867432759197261921719480056156441859230992912674478238985640212755484074949988243088195346212753784307273101915675710251227152783114954687994499192586196225341771756589417082280352084633444787177473260430350496064286475648647056488037854670947004445470004197748910266175520934621101933097607497948814749140557633086694336136388897961760875030678825986625290974695898652683219928153885277490012657106702334228854377876496114282091897286669186198244487828155013334622550278168808496972925223634906352921715387412089633932172607067218988289067856647498750704608486832457274601471710472600340727318485832082289177544444816829285970058494971302524494469546578853042966205111354841435283319454130285309016840728910602286490337112996063140468475452709136862721645937739445229324472667813942503525991450059967134368736353503661476243690701543093527962077745976769053872093570326025503095855088607625908807070967679661576786451063835816083253527620252206061384722796031287212688861246178620041382103040818523805107651095381803154809830931068397539664778100720459221852791283684261537167177559109129762934564299879364308459082283445562980781140242354200152156144834124418160772910250719602735601815824673312589732884165349317116236281541888426727432369065902234810690969241770126974177969882460526356452944541365703697076926742813474413564358142289260468534980491536244889670486377781749856426394886413105658871241994109996508672173915804412689961333825278173755536036494399087746495146085084427711960655878672636626891463007814071528719102558448581732335044002909168396098114689169443125300894642830129155612487857626362430250011077144754997242564515213056763032225172304685635159795136019354710171570526454539566531842789584137452990816884968662635881451991524593939449779908037472754149588417896931165879148845541843434713565675749109206669094704750732352291620847774489122678105576682885979325615067945832255235703873253462069848166219905681089511142943705875493652718500941930821941828772874949289397919775963271791480021562650082414580497734372338367394873039635689311366087015223738491040711726190062894181204354647330223717073075158865882875612015293806963135013969492145036629031267762620062928688544612225259523549657084243241134890563403642838915450826386924793960847997698679994467723465554372611842356876387713042731302400192201740493701612951798339442137321324519124260277146889665326423080431944165346180682623754606334351800094622775354022923158307737423747373771952325867280345211108740815855126221497183463749811836033317772915073676712559216348388037457334669687689473259725400231410326392673933155363994521001770455672551637229409207291417943359460213893038012560467168384073829389704971532671677600320957728765859289777510971055339114163987508460602037814126258595336207118537014722652945836709955602549387781578040265877834914354284152737554334821255707345091429726582611661900661009870656277863521254003133616453911807263556676951765547876257130495183874848816936999861146854330033054615200281112235513883401444462475837745237945603252232881247305809041991525786512557201122066457247788354177239011845690998630632324981847806233817687176320885725806330756558044517221629499698822675703408671499303345015487660121637051221989558171693412214646058452899682625257201282486345525465713592401825007699449410706708006048867247452107812060000140799639768426227378244128299478485653865213481726880343157766507849726388117887364801357431869014680266647411359907391980492676190859036404153016195090630328466453138195876347214558330974055956337923867086476956583759638819241799601705121890257173721650492496525940100208342986759241660110908082906547546950077713923276219964118600088404230940534712923475495581018258975324039646892198845916977518444292348110217967267751120722990781378225305340344538534544709198839973998711349039881848510810150418216021503963178596823568163195959576699733695555747970607257249723984376911314354253273498263570649461127712934540590278875901581001264286682295170434036910119515539312111965858444047696514333184894129694077398074692277801027321767144635945386053958490258951773948959244999187748168148055481771058731252431922101076120185598319253961062179986801258975201294647850775261955877035043217249062795878989310349193349928916506708706219825004445214041413032336541505400872125187429798638525319120383128789056618654404501937953886781097490516832052235539931452568887900041142887811440877078048722080721184551460136137142150536451641291287477489912449510456041169493764515668694416982410580746160448934075256638910631541014004117618955392005091061492665131131598122762137880338860943675953423073489624193631807063125112890863112472788275417070592585395060411051136321853804495438806563339366614631406231325174331214013325593851392238718052652304470121109069760467020285149443294281121836334139943340939021378843028454726493014837086104366924074793000211755057437073616299250798048114315230945763077769643226961614194373328198926355496167360798642753854765246910675729118908226036903106916308497226856935340785325844961309615059649221049489913820293696950785987074231717534565580761680171559350776418858509124140205423225657646864423619625622320458141302546162225819259579491846676922935777360046670142000235191986540912447296094855441619341763953006169545306369279527178256612162195466685543563885421949613466601309650857388804596427707644847243013079593516698958915864403630504554049522112396084420090103280535985167417807632889979426909182859378234034391158005272390309926579179804247487322156627066173569089595567417539650195017674101732401332887285725500084277964227554796917382093413852839238153261802799206766578163409357303534981701544093890687681607956293635658215969164645367979050715486335018960998186769951007088655883193297734268893387024351863884790408927273264427937256773851248838180535177380711656213820705276942081895015901980445430080983352765163651407419197967117393879839343627987108415533761820470045096492855860211340048945752611809248689836405697310018838239792435926751383612494455533971634592940391342648896836868441925597924199164466641235385540367393259084664424103242166602032075970299572063039645226320191036255692382667168924542603382485779552359048382354433736039389564470306078610840758888691060395922832121166735543322966043036772331534637523249543019085351683993776887355046210069050526638608214263610841721324927188372978102568212970862309893471897948155520538667935021528641950080777332710610599610874113374536559199983029545800654766810297893212748740250247047966064933059886572894191495681886286362378606239691391072995300885021556011390171218461898660547774342944487615409595788878410287046863960212648268569634119836592976023768434944968468097947059109702760725323019245862495850486652904849265509776192689080944349052950989988198149992894977904485560190136776371982205957462312932937917644857045434710507883840234826052188499069997487606337786928347146341833860785015755359643690560439697887885756253168631531574063697079551681241749078425781617687299662446526792805549539773753966629650482429229722658229665690933457529319002737243671033102549011008360990614858557460101663864553695758940146797354339363867820508867155201444751120262807043829286613977979617558659926571097205732114795025092958067342139163315766920004508700844614689704286409536780356383172410839059646123324593731728799760709413035405594558271780102869379267679078837124598378118106370570789352523262404853717623760343420728438715923921568715661086974972481788367349072727341086118476821820284630534689561550274206670356766060035853154838799951321351558949100852739928325776161106271982002855759374845936953581734444839419261830558837567126483762367156388898730696496704466305488253653968616500757341035081238669108576536481009288644424428814587177968624202274369932762112744062473415096762136799083351164863922661720229973450595972974280345101428860660706936310702384204372303342089883047463828465516931696291965352427952464220552971799803272205372438673531684190244446989349661997541430935708535980290867822795795263678823038753872436330125604650166503575727992946731582609484148713559514642266118554738316310880368739177373045861862462098433773410029264158528723089791030604245054761071747950260459465783334922402882591836487414350330443363003119550825489925437176437545267340932636021583392199252244293227270120989810306737512715273486342390620498584205371910054740090883829309377724878658553693733418513696188319451910345942868115324536021812699531927091900559700033481417023016010859076161174216877453852102666331694056806407374952318845475572794756331161730623161641989696834558441191456490191278557505765506963388893083573230669565602035543104475546998773870915000246580387294874130418265321923186085976954762759654077086358242716078869927777283802206936292163274641660154623303177223715692430503916384267409287048793978654208616581776838067953832781746984205263811519072665768484404542560340800686091774186201872300693635300332518809525178252414392538034236171353043470257255480910561830068545176924896506774987564046899344657516751669142752918171788635912274143633764138303120593127435924148058183567610875429149293540978101919185317187010131139847488015079455508389011700671209426797170356899157771352818743152729360551707748757348871203954445408796137138310113007020484577236615485325489173967549415618899065638886481607931289482591893171339789788826815320052723369039298653096134523344092286956310410567733644997956353544629362181779667970359852668151142650615231254293502176677499860208831430929471346578424589403812551925384036011994305970727328506752496233617428228972636770095667530542565877048060716388239245202529610155688485003979495708981519754287480456848951976627585734975286346798025289575185407028256501481386320856563408584898694921145938002730686186558641240679655809571608974871928533108392630888823616775750728708097833745752544453141186534696123413199651758979583347258236476526888784453372131263655064288620198872127327328911858077584060987931954612217231166941690003537304064617267049928914678120026700838568991695909319541957451032102734227588232521957436614938400810349146415420614032457543854676170585131653350887667754000767543956753187233256889859815112303781337409242260666474986675174144728008662218681172927394697220985477826428055798169616094021228089031943181627499755470816077315851907934437179404892547180093009818364274126273032140100351427372573151814671408607252846791208840118435338800002282139034206818782976017402766043745697369465339787500346846502592860586493505586535561080744583838020968109655825463059858208426619667594184757446407237356187141988101336244945877309266085006258967855564381841287271503291378568670420141158639037106262183095699555245043630022505749009825565808399469092616705272221808492534196611973247823881319197102009367923398137350245906744898995948605838714858626873437913825673882409908682983958457231749277735399117712987190797852903299858957410896030910210558685576764471614931227843303568904851985444654530730787488974428008532133520188569863069668147972011936283255667175426641304900468814811165869667185895162456415324456175743536766985940317543342188974860250923443457505100329620123049402772531025952326039932494207960861237125641667510184570021247488094304177488268134717341006192490883346235885474604548974944317994161359957499962127843559815601964952463595217004012603622781125699738881005195092252220320872809215571248363488096961614217015310823748793217807739797524249801610559324472193431557921796132661892428987917110041290789339980752874684980690043821168523077801053231524128776327252218271173626765079323478789292954400927874165710843328281674649881559813063888782606574000662286806728046597610740210259774863593217110871666291176249925138717773162361177122908553965617115350779413330330340772824219056124506669084283264112144788084050055393214472724212436395087317756608523723516812900359718963232745490514003846224019147457504698398496496232454042921222019892158930835171877063997784104270970288077351939635600482066252415798034206923999975005418867213214927633890876869595996265226469116116889851203003101630463181260285982709235141012349160319391406537881761682210930373695956736055700903066719371669995728525211315650247894170055401669697276641309756570219300580188963700688710681976619518186881001440123989609576269072411235561846147827603842652520213473920606565183167482892620829136903368838416850193525304946652321945827601231648332741377412447226634537849069433723341666581513579388428537450964041897547494136789643895909415747416390739227869834751980411644191606396572374952843286725493832773336180742646642604470896364419105110516550322550510607094208658357681925792042936020513675842894074781524372738434254315568611486877457626845714162950064708258924759783685379563704708835609801064816804440738933386570245612868302207412814304262689080575813864257126214365383293901286020462255273947013440640268892531401270470308928501764696153053757824121279285396042407413773851182622864384708792639276976712879588074729503763659832947584058294986123799727366522508266415937850696217246617130795377408800581742316189926291143885095577205824164430715850654199838109766261776295581003595437045278006440620546226793292077910083871560486957162228814549442242432296394241925864926415565368087648128902653969895275376410277635655269842702465167175892935348900483338499514855682361189341661540948533417821254758352790346196190133476876354147433190346595371980168005733761619642005610566177873935011490435514300645642481519268291247761729224723107153644893589703906756770313373234281487576847307439888272725170594427097752771635876395415700596249061743138502822940721207793808536246645664750152637517022819029900386820224641881644769665721121748689377004635778181441691942895163949262033599649206987240476310877018997536656452216601260873164701920214820609109385656109673634048927028829976241875113858994216293816269688632745787354909587774695731846923080162629077239475858215700838490482224468190196842504530936959755788534241417571401957619690889062486984069879897709572467415977902401334094364896150765007526248389017999717549909033553440206866266491693862824401074189046823018662128749928213031274771394347125894751146754732685580113531504628449729707755263236727304077101185943802342231522945363289686936022562372176632159741427575998931010595739415783637984448263694665449071251908257651473356038495111670556648355693234531760712348850319551148322668921914223165212946259920692563558878110689192084464795579301439418637533307635857779594494821749871025975653204413252082260140577135057350056556952857910000602886738934285917439056600963373615423108102367105541316289647677748935226566433425128679064150755246489525235713187370789553836156681895175384793995354381775280091802754035361884473496524665557658326165734473031797577038390590419551450159143720054236829575159785715490367836403603594311992477523593650963822220632569644480300925521660586280490181476658666871508473060667087960428549312459241476568728726224646495636274385319723719130726817692238461528605641529611732054032306501862996425078137899828253360625986205449664071271594530841354327528090392748342136299448565174252549027943552874688727985837439311162301431664583964004142341742454513596929389469979277172678548151751425306279541423509125522145033092241555367856081355590121642674659958375318010105878327200841570395850995509426141654284909316767181944544496657125770936451463797534082325496173305316574854885080532361587388123473328395666803682336592403774715386235404966123243845633420929170323617004594981632256247270405136619644954608052573562082775969772935139537560474871185446199432298973127623983380231834527434866426530742041289503359437707168328660427956792261004958749960159675974255732216688625675460630082909291782582362013191848237707215690134702338719845023201034989859829345978670792132027869923901888633066949002947278609292681206898143905408281549215867598558054844166326110516587166498953708057103476559878771033477626080180183153804119037339050444572605574552435483316543568248666663611287198779304776405574624093723813748815314778657407801980786093120798128989768561377833596872448480175064318132738366180297159176423948846166133452027622348489656053101279308438682557931797431801468407978828498013686063699509436235831201783576609319177947641568312856513409086786779800031779969467398372099732563376837157703890471361811904955742355897331224333033637443009350473820167205630390326109717353928821505922270416015063096683738888415018507523364045116067415096034789107431946210673616772097882287732017085375356626146081767239314917894497006128131115843970035232689838589061536558136021809716012966457827005395669358628237743091347660227935186933092944980953371477512693926297456919889955408933443349911684412576058885797819454928039870354746656406870894039326487985347962542651838423958887333435393425371271325376906703620028602583192516341259669736110646476739407574582322595021816630674087793387483287675887638316298946286219407114001211721616248818484993353922797138612628449133175377012095764499765439177176155046305198143124772886585951335778985393074497080492506263809193067449705506779283935841100621378429680786683636072075736073630620462422119344855899952474462516360827218597688147489316554244023956094668929009513246389091497521462170858406877651686666413825815542992853850762509605706991759780225350256362874184661468582628886115827129400942621542276149816829142813338053444236619183895431585637384258564453272115604918208222866427114562169630535372156859592596265985726712417206502119828849693899793795496796454467608244716676734482510762943676739550503883990857285609035017567807011464646406264823009967090627493891829101518873843814005311263225307888417039787504352057959849571427380301811977241162986484976346474340696697188907879364052568492675841250707443169302968187917379532628652283879858933613412853963561693723323812667429515241974169674996091878854950032593192315377035223001467410965964214264718905036039963417362728724352898988895174885193113508590230450360208918654002575257722874288685007594618120704267553642092521588603948695107697010890020935823283475093298634280513932412719960250406544662176294900696564257188239974848415744019551410114699225193211217498541200221178820853321028911226851940453158232283789600927725629636392695968248491668646018012537170798584378297061423953531554851148513231666229538918660170733300887108120600542355518032768724507198270920667487746547440692968604090144550337161084614179765832159512127033581940512901458333768495046176584163481332325737557184284374655277080333658046688879896402694111910024431928109511401824863873454574837057470867126530937371167728691845901677024011859649339149054252233235963869278401024863173160740918177833417699503886786411053216804958747048932434961338000694543354940600275924432906291399812849564186663760159461904060928500612661212082063726435125728092209322974762421879818893107916057046765839660586686270344745238317465110630870114045776671289018006344240393249264696304147239483207534684559518060425129858953598286085109042708745101860063004775487601048458036341792100959779895913683262934887259578220624468612371308087154040528583534201840247650094534473328529695138300055957001843253729570283909850656712808220449087572638485607480212842619529175837490686222621079022378375290954050175916406780358143955530786283453404948097105723310546666711550554991693132334712009148202772381595369846389435060466347236291538869656160688752302486785495005574597724958561698311090516782064081600140156860165503240573409809284334625569933527266030427374181894789830002004060996998569746188943808774889657884772985038511996171648393316762955787249593645884311776586392632202054529130555312008565408574493052380934824559527967019805662569929695918192984315324010974840863371155290845746814118514344450232195407886989056173467121718405430267784426593912150592268967695082937093932051154359801506980635789952666986884094527752922128914906199363425199188451230978097146250097633179866720683353558815725297807615927650607704829484980897254504025942443718314122429361877262963590365191121325545323227892223218557851412108973990598440320427396497548011307809175639510677303690777928614993573662267208951514301782181039479994449176724104028980882662881773654080481817940538250619562163880456255994863440014343576069322406211780901602383576253214276841108407809634873044959350643124132969470665737792993441765116273646949822421438385708645719108959238143125627918402698587269779598208773880772811950131819813911322732617940549615838046544961391795116602189800659575805069910223678142670293545343358816106049233567570817627341615062131845841730980844237731628207811439219428650400000265794849745672624125559343066415636295892182133758203309556493894339271127718387916687205314255613270548915866237894495330461198271037653604112300834289491665059902559391396212350806010781812729977566612128114591520416548509153306749949196102499316358081030283858899995723679188140672692369059564085727443009412036297444481317675692076926700710859071000272035441002642876856126460480484790481150636325386549021818772652967590428415161494035796274940229027944502763958212194312688879609270535813557433792134856367069232812197375086018947819163738067048803659622475248298815711959111194519555480627837750433365337645373377567296792379730783434565309117818748253032017061839355363941723239616176431301795445129436526564684950628844319849460555196696748901627734015443737063200330722708281427943155924872203558981221400941300090845036990787036727185600505449806708006471879107406435574102490220775300885500809310292443081734534938879502427070289182622199269836757533867497743395654314455416202635762822459150178448654804990533171824841982295946728982104094460655932722416932820940612886236501641448075903619304274271883429100045039640386397723068424796062793387498667466568350100807607123210586925109779426316723422564333369556990793084446625355589027518666076539306817798378199404947216490459563622282322262670454070764983696374799784243640161438196273156363934669101233937293255657915992991653333136251879038197876130118785254474313140795269012165278510274990022313447013854934193615172227902205548243703430559493358392167937784324588570618109943369077794037456231221271779182143032948210119348519595195440951972115287595440696342077953282582325889417074891037474791409413026145863479085369108082559726357736017846043960021672822440175359730770375372080322787171364757410719925038853133414622090744765584201114102992417413407003163410183647466940202576690031216408107490780516490072181258603297630877169753616330000888494753622570322562301587603569921545784865908180873846591166733702025070734130402562720066602765764467876200771885668712236710531109558502729055820129920557718245489378249140842991924594788897733147389417383397545238959129998506681297197617183295169874815559697199702288906114703955627136165639841016923621789305888633555269580917857889365122129371118791503013368945520003883717688054833271134558267857556107657081903227761733136444114991403468991829378568826721771995715418616904362255890533916738631019598194289139537341655528803298220310488680120544684623153674533881448383219151571843556392482871698578807044708403705757461094706647390391209724572483105397754740667430318226384758389682100605030246156207976826965472886306331214121253159068435319071985794800404746358313624024538502090486251571348129855615763884713379440189977953176362164879301965397352688080886564367767104461138324410986304027077925516909220231472145947878408436787289619591052233031094800604674441584181185446439668555157081035245450041722469811495429408506633825428565846437136472008056108736683240293147861794625426165020102608912656814610620426919326755778428922320028623321625185308359104088942532016813771625670787018386056924908914415401664616766433012803095095146614605642000521357121744390291815371403248264515032187927198908396146428900196941262168589210939249329293704722315467796866107576374830373378978266515034276511561669823558066743864508064963864613855436814814266405662653877781033465175814316136379893113228157963846499630538371432267194774252740619938832404509168799000188867640917776084907905306390406697970768852876981646185159069207458338690740201639703960408874142285856199019714840993234674516873697173100782027922211370546639309042973600497332492336477235144856705199560960893730095022101959699924438098438105330744857158270014586478729325834071040882549873014374923474551642342479620845677202860666912370074293309355579260301844165970282341911812588072144754159538522876549599650811269233074285619415152809720659022196876711641163921257778008259078917218281532548970521823218528297145894331967846463144446049954058789410248001205298530126222515813638725369892508906203721561512030006745175195749830295661229367038011228241649307501539553236205264068775300148444780420784948788327244423266948546719756586648158026428684448187772949085865253228505951036533912704543595767583460331653620763937268147361289833844724152252976529166033265906529915668106686507474308297151716660824601766274696490123717986494181761704395623525111489171641679493093625912087212585197520216191885472925618642877179370365235945060920688021229895580964246479758744263918592386091750836703518411356233423733964590623445117406197531997679167704446726616586347635509207378054805316796227917810127806860096991281564315822677163669071353639929338664516857214796748249437359913376920887567075803233154432761003521828540758784449551239528476079290080844792233760304094568475478267478272248715933307346973403454062157795218354984878648186509368486316460535809378446658308986752610345117045262304085347860750599423141875294264969759197838728485276669553070231729213085061456759383321372875589038167866320047027627263642390908933409324496675346341412699576382348623554452355636437548038880505758915084382095065355426398542607792368532157840199285278720275176022043317959884921470460617517161528292988760508730569633960636149665764096818707804340359581031583592881298999080161654158287968929464477331973874167781081308879147017746922681321091374980738751829916550531926264377093077583495583838889068252182339361844694895700971290657746931462026412352502233257073238540569349497977292220392777884622414163266510336621170938839088724955221062181261677226480132599663262204056463942322910975289242291524121979376524024050766182017510445209479193195818782432090936483506074233631911830083201747375665847462827884057904209806768435913830244046741353446211141650711634510210324803453603716706821050694045445359035646729237516618933547398429790759197760392526226153091144543632968977696397507493206230955055690394908715032146039372134095209361953668690170772696872804761720173855676180459362110210980424820355602708369188226365955181872460401263860346091141072669189056104690871511855346642730076340503036233232286231330017028496831293329562602905043069648942609626805548620425423830760215952309954179023169250181403270083626749258160388605777703233853358792162856826954640246334580869334365354187315471830572249846324413222822469440911517426571253918720011256342249884808618229860809413769547220448425016340038130655943331835714134861799820961024512682822135664348031256203364254891722880912946678111645852429251924827682452615431579685516422700172302591431945753348365497798928816132480583755880020324472835564909318693136100856964102483938606107843294365798276780787803140708454242963212422944217713979126068213205277700565709689961869969011499254883704174763310127462829549958234494132180102152439881118880927695729847897385353490337060383795069867081960588111447917617762497661168757076670775586538784496390140230427359696354750547019886765002290679454731986540896828131777388866634066536049420965851150679985477088114770670412854024518577275691234819383278005142240657327257840272114722362584140087648878982124089786929943531165201537563810277654451808295907856590940116223052841293581789400073936434464358462013701111893944849220240015999692809288998632717649284617244424418096725774271887825817597236503339578132957368932801150739248070193288841859229399965273805131541176667809190182220275939365476589920187738829887278228355735047395188713076862977166172959896253512844921514813297791322093276643796237383577468676589750273644229329221005694892664825193637898743516677519696879982181393560869690243944672481315856937847072823685356876629639766537216183464421388418943085226004023297557532257670705192042208765491758602232987858084770936682191820951206833554891991947227983017441040643543347649027724560693142799126472478945016225675271431592579841793682086964112112251838912395627132432974503368953114704032911403231723207090675397905078585086413671041630407113238148051477997893684853182800277678448073225332971738795391359811295401464071630727757162398171202999796068290862035038052861401199350400408448256187414976679677249530880254026144037093888545388404801130103111278433020033031284978590617101904492487578939552099441001550840200703508590971251168816185525329468451027823190788218024417373768620465139449903276911731341919677069188571834712904268157371102705787292399764475854150653765608985323503558521172698023652486524299805032722448346445650410843463810126215672983731877737489519431047366881993628863966228236469041136565937266560744084216465299443315224925909202641384414124730940151022238020433315587092102176052165266792088904104384512361535868001453628642444516009669697796966982416831779250700668646198359659401158433023721561802708998289583746247478690742444561741925023287338367819627953549596684539550886379462017651385227313172412734019487855654632770756858569634592509720334250109142156459995490596684559165392032119173661461563300447530637848688847206865714466985431458625650240272436682246691618165689108170638300479513109004874860291772014748995065801570923809090346531486930165816279006847493136172405054626351718210535955082712848015103793637423253535231772754498044888526622780463430768004949768643067711930510125033564094092719793313589703123629505340085231044384190865242578263192229241101531994636115009275614609415290497506537548886569771479106497894282384836399077642327234583233896708882219796613941324887964390105848344117171716654386259511997524254208085366661525102209280817524674522350702632575767101339641113819344786272992094550762828956772807550096146362408363224988076307226287459758539278435687607882621701228362133093923251701874667675618438923871129275292849099338672909711661190196995873663135711699634217601758761503698295536028297993716072658128170771655984950295341503842970275753320919369941097221739791229742793965145876346513059857836838587608977562786795792791611986293437463919538232733493886095825415639873662187168862714780966509185820559208578125720899615108848232341240238945378724398595988657280792964132239977790270637143427796379587494294054557509662095914461431471708636013867872325241852486656834053904746007579269138422858117186044067978086635133677920873548546538415782675670008000026003028120875664636915789415991930036468658539023844734595462923986116685476426984449799061524979111365673670350002646109415609787026838945405975188338094306557517893360650666445709314412735186532021932318842605006499949346410849483130554060841313989477128717291057439042478518142138648516741667267857232917958105336334731976592688879385514584611606386762491914359205161296709734729476492312155604631038843813921909058567771303922663350450219828430150518236352660346398621647296385873126722409560491996364356084732778191652105906561763609861526847204601041339420096048071263055873522265709025493972529024702270261592575477853045081083312767595642302000292231008488699444474811994166945737284138052808335996191808893179140797003127289505874203215449400079347647805287783159819716331526522449432628344457406753866449094749170078900787719869955464145941043584838032481989715834416534086564078236901699781358387769271398532388633587691236121403105332249061937994048359946790522594478502016927860139479954532509409214274723356212449847776034728837123205670427476848717172317791896198648180297838513172928842827868849797441620693497710946443847567365868967341331345457004147811607496616750518173592150879808426580395390528171042899675533024745873900680239013077525365024856091609004380322582792114967421361803906176983163918809420494645655079549983666329019163165506153963536501043060955637163788511703116587252317495543525780914066494668458874775912715011491762056185692774340747299393470997113708084290721525148962721659748406279140073447545008520828347673482296125846107203970811889267699929977157864456556021849671045987912710931013688662219785528880770207860858197562942696498844673299815258246384963897936668865966953568726275844205952554460068398956939895850382941192234838853975548469869482681900909499319635027925757918931269663716280872981389021810261863963214237983617796242638527108956099858706686004434895271948257641777934745943689748138755029295167950731830403760840283369256041953519327197823661164197649191914136481297367821714603455560540263311486154668737644226224635544176234070684312751967721955860115040428171964084091686298409191399276454826875363476241174884099228749130464687102843183195584495718722656672116239148153371416453598153956405922684364262707780448036057880593837371791353464314544159931933713343862016687871673205053963888255093458357755783444941218209136526213303327164865257345004831583748627600106133651782606601612139759227991220673008076752722783915277385999639370048273987693731973125332387533227677288474769384524877019909452763085094529963076240232287179809777429500570899865409650084276252718811292293707578962922890602282146355246413951542752360846596800543636651120109711848842768380077715143984173457648458430866696626967010997664902743089454895262099006217280899833393778858000426616929067748765966871940650757259833052959173387468791582041220729559294317034865430067196364811501464312856242161490515087901439556019069191592638564574539416226244895996821491819708146039090948037430952513371920153891455527248951878268896921509915229704166895943828893669384635924315023471315566533404053297419117120179464562546680387329564237715207662472089934056620487501261240607231902079688576434650085421026307686659751454591383333139890685531683881886455701708518103619808461174371766332907371465418505236488969297199649741065718292479130999991993586415255368161513713309856433886983054277919864747208175308810409390853263418730557008092526202934386735937299659908555910673343341872526434033156655074548286051246544683552897337576914139164646071219761475570278238601042534689782470484180943198075124022988590216345760333094608472190381891863777502261474321338986017061816323728480147686907958978682567330689290334043426650525589019175310292562640761355877239039728641497977278824382756308953298972373700658904800736062209953238293577200441465868028616351255949540710171659261552398752255549029501828515682357213079683178347264872013279897622627144883991803842124785668998365341881274041055105760717099941665139840000090597330694251703079986928576307737678534935441926488108367628499610341306914510078224056053415206272627692598091199263301795382504519228716113674539721279688721019110396127153067432162435293633941156183932125195442602612134201240745699452538004343670059051229329858933508823596024110863502465862074146869983147011823696850570196270802059213436263583470607923948567251612416689760905107633019929881824835005672826845920182734672476903633600824415635735264554469126038252809456835441918203533862442283455041458212498203672181934675320772629150253759138596756423076304596363359619041012495616327956445631904565454222072763823489654566826437184661074702766749527084148664975185042056596556709856852960075856190961395151319887448735928681354195719126840614743772829952181010059826012000148714378636432522665748430163262427073726801968004900794859092668783361698264098730483132200991637647254238689552052122666311556985762573529774964986125579934774772471107175214615831045696796506443251711413588806909840415162938033781526579493870654896281126099772641502008475464309107672791724073185528393551566734634449578760137793521656047029322521287574218339387946986747645239651695261570868890336207223232302271841547024404258297055730311673037290983084182743129510561678238627639694909899504369559745209497096465415235396714532984534825140925412870003993786523150226442123852720947986161849029831387948149874218751819042435302083826487769467243426661348009262623598344453370373518535025974792220666471450831899004464350855488622404247159238163548434424984270516081782566335278406628076327166086923092722828559234992255082509337175308425343111940621841110692646883994395767837930110352927057131864399264814322332055596452173818221559960904586654553564836689500918627956915565349202272777206509832301046789690550423203624006060948418908227043601896078156017663189707897304189251860976680443985760732008164044845612852161000435990837347815750303175803954517004120343896691866606065663421068296677012452524037612589925819707192156158280229445106301349006040804054757377819932833248542752192465341306690913100191323615722834487388204774373545626244920786918832675153165032400096646029776084810078560082967975365702802782413827138407692923027152615987268627921137133752303619805768543651064669732844058338477010222884513303602545477497895647877723642414078247141249629825770725896131726838061693353258283425181019972731279763032689895150738493422138759661692338710733948083964131315285034803988448180240563550694338359187584751933225783892754384491499938207352933660324459123332321169977815190856924745175499718678163976427655911519800292047442024452631156209660811778746760173690322347581476823217706668579238804527244108419147115031413746319926933910188526426181635099808397288437400657405167294376702670927707020656270929447028205081588564023875859401525619908172252431246310751206909739738451556882874176870887899208907753669639182724891241039503491693970389429537887425607118693251516860829260928533660106014474431832841018087765709795406040764999571703589261934084734259195340782280080217662054300660460388300760328872157202360232473124208019980827590885664125068591983865309536600302062388209864213611869966844707451150105516455799481963567280554364760711518477287186696941220585457035364110976194428315819733322336460144684261091665498858202580170163765227346043653204884890669139498589786363258813955615822377207876002438028753065315985735286259621059347047275914025272821267557353146713513972148337187351892302303707086063274124853654169744108635378618457160208137443459422439178535923731926353751243582513295486254431280238890277030146297333776165159148380548933468576446706944641651178378838558743730808372618745968975093265471007772468118155228161908458461466597589807270060427924868646452952375031874757414561599212104284981695189884420235580870547977858670996188116117390877537875387977779912876605856978008818318290434878854720114569624958207723017902493140160994894919402899983329952093770177495849934340729140888548436888904923236633672392297510823805312278633641522679354515260154677377805245786327194822680885580436432799652198734792262902886356538093358548136912636182374729192344123097386029510751126994997388664225089528788191478416900879165606462166985702690905008053447317550513501877914456875148334778763930610746268484889566501877415567666222720916084559334678742484917754673629344875348089907861969445066957607669802762995325119768939613406950201290050767801220998475583079209261210839333406311433200364328401715878382557609886184693575737171771992751277033573354293176812766494065644052405593551461691154415546210370225167762136951753119215848330265662756914483992943315343278147091309338168230724312803341263471733034953269289321418086773828863602370638117437652287567063157683600549550727321185834938531863262027541234508819388449829062052161697611641431891443473317226084269587707921865893269851359698562058484989472092915614944738732362991298942153069140522544845323055002280926862685364867862794643795141464223205367156999739145572708985139003671634519734773512737360565728060699348115886252154225571940556472761654254358811183993914065154406184719762000683062425765802374044931914707534795740790833342524243257642801848012585114437888145203430697449330475460779321749504371403258433001285324708793742539792332781957657942261407746321697398940290079839624031487826653223605300364634815721627549783370539339319622978999485449203336516007846868413787564196881664857948388137070198419494896217192237052234800240300440017158152627974471136223489595255342403715366192716307665423585877951999949953313754259027447246527628428119833528292911742579193001741638865590701014127813319355260859443834719487989578312489495149644370788975132708880908634612195984381769910090575341455914425801636019860545076191345918225825727278839689823278477068398857763036058610506597248817069823076334192938704176070957951775734405264298677553624435153908316218878951352281218293587536264829842392398199946524498649466339358933389200009892344171409300223662767658324703069955769934570745579492454397654857931953941106366677624534650539973574259837045684083978835366034069602684993231866932273209097542364669868305519434049743754885580964805368646009467258783347467052523592309347305310602022763737942249803174465584742883847642198778981878275102215440858322472284002780100552152850446753312735052505834326431909970286392310238526445142683249922963329312181829245907126569254380978021661068170675822026752437126040303706061287040587523453712912195965743746572054975962933500987514358574619698740792009660999957808615491896432065599364164421367785660605359285049511958099107865826915355365977471588341360911630883750500083371497909640323428438002572188547229885403273170601313465890707821249611313396881794849501540807852995730446449206137666818346094168186461102685222075209484403961733564399327173173863771257778174628938485453746525520010826128821383012121546983184211939351198444702981679391496991875686915939091739858135350484999979293737518660719322476360941436162789363034629693857522601867078977470079102418165944971582465833308475363565676714674960752748572239475333153248190172228777814589132097287746093862295860251946022399937021651140398455801372884168279704827697910292873513440205922107061071222559404430384031116472637460775465999015584973579031387856947251512454792164141907856290915096598947058270110914552161206318586196396510591274908761842160274750856715949718552909495417920402837043114038128005271186475855629989610443252096054280994629025199745234545804995113603513389964542203922164951333017795021975046511645254310791465292940656959404463349088648781702149198552750596971546844858317437891812380029648842914063641732587643460903834310058495642466955716015650146746915122017681637193410677166228951274137675638297510944330831901633560541843623054126485827956346146947714890387636533037785753851714722464213768411940601997938138474499888399101365858450738897742502137483217365525956394957024680020203176012215529205029941126646234000217867305310615649822761718086790576844076442640018688705643865246706221418713382173676342134244743466138340342110000553137823822167754918633317415213475963075162697957432290529394856376266466294083816228036449508649641535511427210931767833739568726947017420571574052170011284628029979132264436068316673630565375596014586476645098011128995078139416287548902836538612466385773092928233835424597416069128960549898931763408123208145581305258157203830302292295575405745255789930014221753551211149575991679811541053284673700285345017701951126192747946319751019723554447927887411824979724113817581722389655010333721776059296765180210410346739957021836685932336179397716109860214633826489508359895660310503765308923156977333651539852689794922117714618070791659231327876647349505216138533309690801431948598185112641927137839426325304167427549166181845853423053772508305746648692384657987669504203328391033973802803360112825121206449458647913998462082435017755079555210202984686612154849565618033837866461306528629957718145722910215138903423960527933493846032414619519601159959220157690007229389798572214640167836510750273970996061187603509333884300269383699044600912247506171210138929492858117576398144913733575831366883589070764482838677768288075271706113894598005000327511421420692925889184780143319419666061831115955486010129424274957257479160707099584552686858564461237970211082600729799930722774302174219657433641168152847735259432562092102407964361726090637230574601231135023371695734916602221586233755715754573397183873850044410630429064255479666624745060480276482143937601555508867150680653399131566766124290458545149637873298073269975658573366027019904675517896399377457678062966549514895242152397861414660268546265342459115816633865684013405979180739589289545602249201163313870086588218119966029112223971640446641134502376021668003502656998586448812388957247521550614205168509336249524312604710577790543845907635488163834799984221682847171606536436237357383564572747529957541180703027433174828833054233251588561908724317356978179112703179578309257123509394338171308599260232426454588064913636765879960544642941663631270874935439516239633237178616328823234844476911830552590918231129049119910582024380727581401306510000274274955390609082221757565351755479411029558382224202604186749663542173235214052836517018329432617042194265840898541962482443992556603210327347343457515672873414761557494745494668347329465341681443122839904616013668364852401978847318006606638016293951217352642876674604441277896476690544773361868210843917878790457615803858221268033299143233088574568071840017114830995540708706752124543993498835063178761472883538433615967502244010658409295402759194903279412206646264718206334058627254222819786820392345965304466100483685360648970295757208889923794555678975439206914728722372243738955551344559874614211912806468843224899020603805961822771260713599380660125768812139138942703385387149436863856986428393659719281396402779516924591314500740318123240008021705516798756076325450897038994111342021221078666081661684253260410073729093685034066844885492909465147400186751341423229942896370064153468156724816452316269203862411148832153395700721736308674140880272928704258807504112079048685140125313067263838004606496765031450333988524621771249079993057820833126537209809037018121859364111989546762700503487481869265251102329613759023179659382931055235699284719499795626917950096142686074427962557986656230527795943535514346436288113260396090410533625398600014222463000543959593223192612769037778877536075578000321739238051596432925596377052110999455283516015966473011108408449943560480902345689335144982153417142301296602016219959147162634429606849258550352428531022670894408648820469617328029723416083559878141487329333742612272460673502253418701361489291088248302516904331667143236128015999843996855423763587560247550240589797221555852151951339645551296951921556345025407026846465892964374750814916178054727585664879275143114093846475649650455781487488222083511157661820870836374814519990285392946555610697705574853153522579741825862212596221896465173736977337167398467314369510895898340311478198099880985489282073116176534679555575702889298607253016217866701474338926469529287193083891895350314099399159388169157802309217715708789191949589045517440245185120084749856446200871719149900081249732460899534180521865701713787946336392935245056394661178404952004181685693504827730304703680077191030241171285283637135705715919131397669229019638181289835690374183562503621571211472439803764829108767487405948474362675143403768377975003027183324385918563176212124918413404809044630347184770305755025916369135471251323570371215077854824016749226535239083290250645393898518058051115492244831588009259193814192706332352267796314159096467725816150326909004248125577855285325619929399596414100204037706158120007237081109332449422890129647857103682156370203296474821170884921052004395896413520330341355690978902286854958567676930320390096427044893224341788979710895781864507701408809101448734598102479857890047457625503901576050788932740217186317908153499700085857032237627723578292325526519868552648426313514910758422978653471596605865275367711617832673924521364789937380495057810241840661313723401513070439685561290616460716841484735912738343673312290404249880169003818159226015413060999817939910553378922785746420464031816939529757385091952473752453958446963953640315379353443896726024769733359204095521007713506307118973389320848838080421637423053484290875197977137830411804838073426005426334592628863684526007068647759130806131945263690291464264580258413646565464232347051066306819982170529563597143856849466293491872801604271902289824953868599877029418995510037152874199074592686904475074952946979869105459730026790745228851697475052443853912330799351292930269753124408155493474538250137402501891982109280120968947116080086438814294050367934055651346753127622891561058742484761646265554962215830798252657673997044852117893417031226584212210191678328764212996548414723435009850992147533359305994725093148936892603907130363670156672349894484001447518033204324577405129732616822600693583294989515446748395342941675644632836450062468603117487387276289351563529025716760001008477319879630696292325696674059452654461473434790504776378147961184991229784460340374080893540500846508250726355636095247838541035707617117234569199563307249162525616887359650735473984003353801637724471692353364287113811979166908702829370326589445588205041893192633398221140845497809875551933910976116996930921957227726848314104766126798174718233577630309231065379999817455299416259189508462244973238254754216590154854923314450318531002824534217995500524991189937224105400453509064883437111074795981404951156312631608580826967804595171514303925478697191254819259317543249226096047287841652905734807768404877241166956603129693590230838386062537830579075967575810706424575966466193451079104012271937888425121391857534246295167561640327461692488047674279554799985738587778036018869065411274484752025491166645847309023101364161591701496339553312438244611402711726254561861435611102324653326195567028965079997687192456527815893087585402724131211283682135581918080835888807389552744850377695106023399215538151193465708673283042436555429637983113494887678151733841824899456324860656558669842735178060466183034598982863362025338891034254033680914094623015389568437447728925963637698695118677599155894261767176928603325596196710340999751116166828751261255632720255317795540615755647589650633962464211510609428005829991025237458494805910431522770835760442221870290338006956394414971022036812487354031636480367642074242109084911403028669223315348733243040892367669779468897437821702570806742342576809788686901850581953781528627385641371008299385302768457011865722319057653179880752039083647673718486728883652585963149732795238048431702090811282552756404138075923358173484924238131468150088463906915734276415337877238657471704916864207902090123014662202176104696523396087110959003392910751483739013891806310333945924858373953954216768688621872284092587547804730077268258690446598678523610710589038002195643457050214231247053422120445921903339868378409103997259473344854016257298742621042549166871361001686507514196626449182405378976708535259103411978412639666187105675299341018390166980161631764624048529264850754877971345317414551347169203276249222970535254622275910148523019592629947067100937483075000823341592652603132987041358635480046654984783656985672153896088346331111893226237579027621845490699735543607044405330965027255530728600917213840115348573279810927574089446405373158953368165393009631186511590326618373027714141342872294884603035742060501686151335561643751649391009591144447591598204179776669913068561753493239634690975710441815288950069196995624522411073141085808961722935054939363792875209772875590024914969709614437410260982869664675244841619319772881888670333238455938437701589666410600508065976157864625976322964822216240816142146940448939247836203566368651021993880331723954029580444242860384142417860467893647838581598869000695971726025745184358126705942745719433731708523030033769362312626153029240772683428948702709406916426297519191458513754823716689437460598893973010725610937787604300436691831116050399161760829725402303282477098911531076310900274619885142076117624937331836252543806696979644683601923940427579941032922507674096743196797059440195822270827443786999826149010822224101427813874319357592861532952398975807715876700539998420374927047788204243711634974972749253305354006024182439522413704015628867611330483088826555741518417128251570361740614339988618277573742398622623334409521070716989548685131157396850838607541350828656629586592773817262114007600150420121770175782743288363452208087555965859922786953323674696961009563164355202237455669746616960585821540536138659020455381402790835446021404825932468803489117544922249302089456394613370110563296802093366106796163802254087716617844159432582583735378494962853567954952916285597508996347082093273938631877814423700485264076051561590951375181698645688107552293499955383269015697028422632845641709250950496138477876972988713393974124936134907416657690687169791122569638389955740163687473755824282768012238359053336006785762139342000361049875152921529849372793009878338720251491150569326577866194918819668131931079139022197653804980438409584074336246689642500182721705696037953454259722912488232294949467151592057106003440907666254220104714329856362483806738655469836471881877166744768601739549687291658528214489378910080226269961577580420067260540572629618895034735827200139700634063280747416333676003316402681347415628635100479697139284678876487533224067298034487534277534030567666269220601343780599614341215281244743389117094051209338553983859611689204017824387537623260847175875317733960146508663252764687972511392797327787044339128775075214557578022266644581704091798485946287033822241726879470376941766427652183176339138847008138236265375131707605406722101800970549176976488420214357448082448573980966517186374202137111155899618326039550555128201622407719922676052096977467578533141360699851234406940245775577845981795647233880281358036082405726798131893670183770795948384212152566048002080464603781021943067539585444603163252296536260145673472422248951570013285161419964476451171959258264586022123075270052711969222616190808780922185997128700734424491365697563325244940154576553229441926696008223496727806840504221040191759097180974874912725923827938513330089107018110181099441300414123253914247757636642808339516914411533488083935543606772779935470534066413375261381972419998066569918409356158797692466082682264107285842920878328025815185101444461256334013886375286234759127567053653926913566622325828461779408092249407973203070449930862722561371855692841327557059729895133743916605521305578153306280355365177474832693000664616181583725541445666373145212679428385071411543095858591715168370413655479277520078749773570886279388105498916191248143196365402287888634898179579451030274404272999821968592325719833549927172990875333846203877648725746432667775527347857509646068781783629577983811578358682640700048456752559337930136106090856953025101539247827046078070374411295716918408731164656194033959715968244858482716822768898886440605002893189596927720958351733382395393018674589635305210730370894003511030401584982716168227756068944493873557216892640559319247283292517308509620651157004075590639400016407334675033705126069559565752265055955287933676196114468931945655655499410317773494182321354424476632963952777368817992143058383350454043267663661572739101677972334869466006617589911767335461059995735767587940217418416552488307053648828157058602547188618277156972487560089250950353329305536154641427864079297789646732597810237111609361776498747296335275223889012645845702434795586776066732540516950727776336052127730823757130957546747501686101011893081450018801133779270361238862180457126986130863376900860388292729164126062433423484431761623180533686253194171796012236186303309369069082359120423620885282503267477226248902128585016732390375210665316689652895311877673401648040886853905263626721088542049309199912444933589117341044995517346063263530434324205921395886704184754746041259980570020175868014129572604287750694118447341787869905572762254065113682865354323189529328915062400536226379901585495337888767640060298731432740334575640506829033925772842578826297004357108601795328214554525123718153771313077183255622127128362027400250461989536270233227203349025520425907210387304494161247129291894575824770846179955916778687204713182908461796551411809552007251352418230818377157786083109822272704620519130252479437365312984173719949715495816443479045798700359075899373492665762834444410082983097351105526556023826043599615644820730438489658936378942512083835673107156569378768792356029095528899696614088380105177562436454546508926276025693262541802130489079107554826926245236217512959306199928420188378304096861574929092685841712020695264497262169624934601754403922394117322153057023738147484945050282243475832054629729368947227662024762502908194478442105431680736420734455663340455978091218279785502208689766433302169908806168890456327480652471489182966871512895469767103488261573708394200916528869765896497930571180354215653175299435012051955374715524602312599866006526972929680057343109453944666804212687347055651201624886817657040727663728975752400540177733713716486909592793045131752199668940589633196190873310788208299246011080976427382859229511067185868835173259030570242709915319833367908087468671604763065737887845844003940597849234409243108425846911429961192235881332288765464389063846340131352158520966760174553113562582101546945798507288651934780777435890473621237482885366310037927777799548778676340941037213254722586504590902257961246207972701066094926068105413933323586330538246134757050832614394651362979666772347480309292023065364906821279361605317057257661907898114988660776548922119048453469467595489684065569651387489024805245828779011833411588735757469084941016352030298604209868072400093547189664846359091257979786869047317237560563429665524193419591366303869528316853396833505384357514367066301381028722999497902327404362570408079615687694541982849588781186584639066672011314777236290756362172253746357066528526159210641961426605637978602307490867385296816883705497726511278597649757720769125222340873131797375814616038832587138152940840450954140472057688675175017085269868990162402175444500049601400031233322754330862684357966987561134366358173210903504493859630083226289598457938169724845345511049005523548506105098242794749399428677845052056598566349499109318738281836114812290229652404329543584633958431560864859455188551267089836248963549587968405794502422763155690681946804279865762548707231380600807547961822626461812843569333104559352552893491555035981292838579496942028170318646471428353159970544813192064739114696152958588339340514593484451663491886838706481053859201866105406805734541759731088850479485955946750824570865931048644117598227667110397945227837330901044326862287475535507476544154562607722054010608096676968027711081424127889786029391331991811802125201167621018439833185429263982977552187838945833759401401402595699477923815973549557302780881240316350469460202597033567494297049197869562859604604167729355460068878680360746314830622283946229232254533293282310637625380730450147244553236657773888915180821145538747807598398838866724114394973872454946631345788099514165043374999676850260161763251125066911034452434757536336527565963374009855032419939159012327980427908302667377774429439235105548263983329100172182209702172546593885491288407083499555691997162729792797064901616252319677742012990292665703730301386999464599912404834775442007336787909964843296168103058720310315565024662572080546811535595364672798412840457451625482669059639844518443779924005361367274106510503957661280750323833161736594334108853098134352511166091341382446091932020394973727831847294325648270577615081423369471555086211042149443780788042010166965198167293474947549518519315590085904540249584814860677430137727933891877869727983895937439783183022220993904957040398299587416299559281035356511840878215344707862997324749576331522040647201605752310538291362511062378905164807793233079370507740529583201602105512093371807958990935792680252094901662835313749911887518256270609775018016319249199825461357721325830448749293872633038616577203150665749185327634305060169049540607731781551956215067091812560801443176734121415050059259137602081798787152613678471444169655494125311278718291621924141565976732130551191423657611871572938661737188489338760558474453335804442694485257505913842366935852607624371042568912788615479626446311741593587502409999755401389882696739675993735986383722050249756515595235149424326896146688443139386672311262305890392029396416015949323106284133060707848894087164545201569041799647487526795594725369911078229774661179765773887413139508936509210046296913969731867256742113002101218286860903037853911583816348547584083883848739125284801729013470840714402957291296838277670879260083022104597503914142882169012845538556552368796117723172546924969718396473713152380183214434703526885848904143451936726757443302874863326286674877374019103813606522651369751744021205356936863050316295178030101479120373126434381414600722916167921068922382609819880022129785838889076572168199466259408118990284313252249452273299842408098965241609646333396962500722128413838122072869220809523633176802879944877191194241327276734129195334379577801512259466714449745489241933365881731263210698118673430868922634713714181083159395438554850719866505091558984973448026945585682787806474525657180354089145975159622965467021196678132537820245462251362148713130346469747087919212424939678648652083945645866295018093739448945572445143176033339690375577397771164013603924579367526915200707631248172239037789999802922656795586472300679402677117578956751073285993361045702466585460016439182580383642722873274077267289684473543233017808809911398523816220224081291368454580084045642992175753663466989465727734812047200818901768706390208296471316897082083407353297199462558775363069847471064105349295701601238612440351220633451436695247147919894061244051779791963449727687356631492826841992233504904124631178812831630274128795658476265345800564014573915298499685122831951119482052839273531149530342614546130948017718653401322271303107809694009103237512835429450745025959801308914723220809472134433061603800483063331414692086327488054479050532430970711946004558938589554414286250665462396892600232706089168930545242623493482077910384957589098702646628837374046886072929583130241847051766220560578210146896850290150186739922170212915260108770618482192498688876226835682153982177756374915538228274393144147476684030315126935105029639739628462956232556839382985228586299285116743296175288304065981088333131031807903805359841555146566953926475495496502010547456000175761259864369834192982903381072450637608186397486269597280048975288605624395426167324568437018722308078639564314465527473116602481999969229175029246890268372964643960009476732819932381485510829307001024984392456581062467389020025795970623987783085092498470665448787888609074265978525864330658974305240206310968418818524239568551361814605026450881131034802638921296045478205586659855154330422935040021195135582608153719489361992880906270256764206621358905879417497759319574378919294388865610752085428182243931279766010243673853663779914380242898572956070804064514069081668171461334251565801278740513895852816616937065300968090886015325066039527314634555113956316063597804876752687721353767592986018490817570976654028434786592551823230401517695930371899691058408301460988698903921332855268429557937390371680175538720091969045366745273162056367980405483286017814627560340519889905999273290413057311656920243114927661971674642712031077630845956763012370487233318040300582955966498841595448378712988202094838074909281112659656281045292399049279680025945894938010732379335175580773581842965404340711166595603228039951585300767103623947164498318467842309424987751466641133208634192273475549801466383913730343833432850061834710358026292403581808751917682816520416373228604903058063321082926614252289875143471493059872296578317594168040986880553400392731126115160599484403114064950024664114664200726422538954975909032292760773162533917368306335915795941274845099574177217982581276194234355990504460833020238972228192712601551021360238927614760882912091818452905267579071258402528163356177867450566973566092956955012158133330692306753328437603388433340299100752025186195464417666162194818005444288879155143947118352872142704010286014034203097671082354003818583625636992961125506759197980736438479806364191473164377867929843967340432432009978577236484672896889765117812262673835290812456753710159652685744245116866397767875040396482180019546378273389506738777477084665826955102622992603966469999607640334956217766945301587924270215794556447093084345932953917996238175737135488319079194974105821348587844971973161133751484995612704561268685862482920589276456811551179066865284922654719240287567031879328472403532657300979586565401165826118939662832728405977273582536215067660631549351231626307681064119111611858662667708242162186231430793181016747389079758886300262477326651830198868972348085681959090243983936456891697036160615825417046516097321140237703203192699231680624821783974279985665194717641469881162728515532245963357175831955527279656721345061856182731642351090732223925797674275238256692133533465399557314333086392206625264812058603799115474718586327182455740348060235553453927908789163495627593127502106433592907938962260450374151959796290224656619820062855204891675761796672877905695228096175323990802506406667441992773965836660247179245465749467291762229444136709865766743507528019042883572791448089527164460560530598709758829582590722703736121131461532678088649904923096387230217991766676751402294239648953744501596345633710438187059600799907085979511257595148883976994722352881292860625377173598940068299801821032184216032416536579037916436459439679823551428409391237052199953209935550238802299858490379185026893563885683492450442236954088175358240964405558619520176275794606787501287064998304366378929873445057010070802505915829281140400198219510722932562802149635389121981143054485407975775401039948734018842264923193899359834748462068559782673389076168794174583874784563976506085640569924036755201794340925361268721264176501056757674919540800800806664085477802479817182096163922971148407239084931980686319422171409469868189636660834803706560778278680365194665277796976191042591049189950596520053906779861770437911438707420758311156153308663110979151567325393701968050238404307064584933027042629860703132499761530539176101062257728994722080045500102402968372561804297301420024793522047063815995089504634967808595300616917742870070627307258712077590608636625336109684127534618157730203800003555640929217124038139225445825130062344397128507271346597746149330869664388129065844504671188156393484372521473685599193038727302773494087401914763251243899763210861385511872618041729473674364590352741384061253402770274535064575892684850295425426684191824477805795654321402874219966990177925289876279568033141119754557687098164632117480160577733634474837873772217632925030569503155170185166608968077377850885750022007793321778087415573597554115142678194374099193935565606121027649335888404030231441105580480018245892567894995108962529056823588715737310379531298432469107373512156540037121455103806554225035467597382967673792952313485571015006729889244905646222690778378998605588817517491147813958621364859095960252089225490700350008279301702687204329514342246426587550962452414783644201097138800812234484880586057178790631153572698232069566426551905587752596406879843298445612763993310357040048357474554660658711518520606632210574247749981024801567238118627277096560361127574494195011116329722147339643184833950300230831017709854534552814427107597145555271038227180862286782301162245434043238466283623854529652030574981397588713324802626558884633738298469459231882736123350872638718640392587572726466486540350508681588544714999989021552521125511021155894297370247357799550622750765232702947596920223460368524579597904028318831210231333152303586280984531421120475037551307878772054707685295856900316564099140999389976915852818120590976547326082754332333339156802638292374069198486093943727472083603306212375334505499087925544178057013023385189910655432832161050533529244627188365777914967148633244481539261937430543679905790606128786964625621720585898437464588375686315243763235365272292386728133870546587109324979857383051078932954235721191925375495589013259929162987772137951474999752731266060832653994905658017556094216650712457559302581709089663012295476152358328203481372256282245750186653814553083530931418099369821505191350379704472655357423169476292003450528144110189370863351978892049116578826306860867317013177416861639664268919064402834447109312145024294741621374866897361630379833416054868732190900455621860490378593432436484634688561441920258424964933200347593262438298551492411628450335072637031383534886657060025429590420508685077226294452984317496080910516667608969167299799510823575870000712255354770649233559939617365514469418546588844728549594275547038941725048766109973719524619468936842203218841925884454442581070893101571289270073096683003469798004088414150740992764051211400508628996335001891335535516997518820169581146066598602893923463816881870692781403629715475374402763243600472293214057106873573906592374467193097659108084251741415293078242450817263691820778208189462475280079168000499139910122249296273837181868653825403710982991647439051842795036185684648899442642243119956056401705475000872515652253085856618714216913551678444083715797234069468121821213379388745215987300705191125658962579396339951468201985527342913829892606415383539144554425980888035123857922538139811378741227877656092427536297589769289906498288271387964888630396550250034916555327029692725887218775650567937866625158700448501473361516705669047694766324195334359985960637170162475192679417624431562058446239493706609720733494667787636810841733570401258385907693845625983007068599428559230003512967954606907706228046464881062399077955916175678531685069527092003581639179657733714956855353134033286363007205998358648271611435919960493050724915267544044982861268044751320256926163406987426988470973414540590814781400251141112095710238439406126500744460806138055836027909735184870838255429601850537493807441736017483140672692908797548311295403025844766184819608002961254827796080594368766863314779097061475679381974876201662343802139217499818953825710737946584851014417778375943526403604303523591272842111108521769962841033746715130718647085440157355213657116488138497042043951002157378758762525320936325229428127706733993782110152574375291491261962272467717734678145917484596191491735122776707996293145825984067284302199817065280198472979683762032473475873304034285731580566997648246935699547198521812173890621620790393592093284255092072645601605122452365590074961739725034334510255643040870651481189617695944668924731395536697823012907847736964170830419062863985589469053146638225414328660379330079628265296513934084178002467325318657691855384864740914890139416482352832579805915898552432886331905842589834648078908598323529891070153300609715886395386159112566318644682072026562795519663647432751839718351802952416171945385184161592207743694220170361479286463083685213655765518155947113265398087073725253218128574856474853918502654587013059627033624449619428570828742766003497372177141667710560760351267707971813150461972835860212975511268227089550013730096861509066975238958030791802160295946766874864040679520265121316256675473187853151430397775290064077003644890923560455865215606079110246840195950356694040089925150774313646899433130757173637657816603671245297589506098681772951275302069759064980306862646787967472235843144739353610234696378952046852021637667469231960843956131028502837559889459417967764844311700030130737766338733862294739430634724053812877648932555062466753761950088810070206868499545439853372626481977555744347048085663220719541238043557780875985953607538775994792299633965957398733873022090523104206673775114433691098877760823470019913829800102538181115662434548374960656688493444893396181239586712501640380906999474551458841833045974333782136881519802119950411176451632846972412138493652355717501023316057208076266719562725696396691481666113296646815175776563977115117465346206125102562502317636243712789464759174597719397365496021906348445736724241566438266270083416116730294102862899629583909807858883136094893081876928181123981066449878902904624107916227335464880141626887149498928786726364627025243361901294975605724454527637897077877883707238986223484883566517971051275632723780446907695755989150269288651409169475452310202926831099300463569345641309912913284200069469337594160458395576523759146474599888393208413397796935695303053404160950499732635792743009055071792676827739071864594057098978738103164113229391852599306938427154885441399348750311893606733095587177736334765975050247308553967764879936358506509681768763429939312856040882326841123434105797546442144874002785836497366033541864917964597463630604712167444707388932130362848290955456720938875478516668456741391812038924914055287781614217679072548723981897010095378077332157480824559670581043908985039097231736245898973910347024690654145010046780019158046902212669793955017226765026813615118068569734029718241132257588121842042602553523465342627902085769826600236447553440603467625812488689952455525062953392116274625665863796331790544586046177307641208636843173415383420836256147948717609262250111995863867518372076623281193028317522702331154734423075832219964820239359004117828332584794296920756629083105957592151669977401984325324656288595959280893599768601091743989880198460127028701695278112407490018717765763474115294894516098442775153625689427025043607702465719567517027510450637595549434690965399326547549848948659802232242091335798361644120276934758902220072774512708470156472964026712443123561461391966849914194855276858530685156630794839538548834827234917890128447746341902861050076923468833137911502552145040400205507339877152846512252889648323657627214539786164992969696806053070485292006070218221725375379438474710424835599372333039661760861741422557279654888382038517086111396648214006445177121904639333141843801228856130059328009261982337580701077013277107370654113705152984011239460755846583553040745565039861661600531400398789608893040392420987641257725085429833274075428660170561345018490150648131729543420648422620898095135239095138277548702961219967001522863757249989312175083310529812833506669719435898271510509417988519356596098547328124147812322566618019665093734470298050010279995562983172801940800090826631923642073739903741257601932242798455121222873499914729480641540770521929501217595132726060741411906221285278827058105207427529125126228586659229421824910162395090488055083381941653081227428553050103272368523405196993288268783692377445863890896424668882864629729847157649891611095214375281123515464912244999026523469308532245950778766886076799403434479740975549405915993563446884067695381516836170323401551041624692902149384497422829936703657622219350190432035707783378388042346018839746572715431267231026966307534158848704730041016909384531190155366994932844903087972351355559706674795587896921425836715029079077760046711877007373413353215977130864341123792286675608561784391785731622632572758591841277094396216236663916011614660045727591275491824307161102275292999378859468153773095023843455635494872785253676816999824011024531161767826049104643064198011406305487426681028928660135164565730423471993598477817232271112170220330514980689524122446287840277079191332405758912351998194643944592155605969828810891170917487862066588543351218263966892814459651423543784282449096169037198232116944513179051734831092250021752160733412662768771094351788543223579405458236986355681172324110710634583691508152499271115076134499304324828664067864607318671416439058193693806418747185374635265897463065416563214764512705390769194080162106319995780725177410224901064337321163213678337703946074975710069886188524643072075768101040015935104308572590861520020846643236706458455035038765078139022018769293789384401731924494161101945566904899811948848028332559798740397372136444516734728649028269340359802612077252541188652451390576944752811141476601507261467852614955851334643430743189133723823715369401656129341996253206440420283715515123959059518091231801090461423046931617078235178581899236163385912696181482394003678660751175287033658929196094891646443026672985336663376796149787948437094300837997580092410541595503694136599890040793606737443493088849577509533950802251233992249573610490722545539473468407308941669907579867287910137689281451433842227100180542428671680397170933229768373322422410091340528961432555541666378092263336242655741514198100302415266530332103259332667378134256852125547602484445441349934705900748841580963501881586869774368876720672364303015113601443347712992734168131071748904389535559832874823340231573978854282626489595218483411449794305900235404874971336359364942546378812592842517701017876741731022162424155267717312019682729424066329487219746086129567941289224516313791825303261184490390936954352377938110241457797053961097897624631755559786396633588009243246927345176572279113877103836581026110457941793344070366316966185043887527750286503436190653168460438008662824400920430497286252325219964236168717829382025729517673436032470579986054248445362766829677293401945921482951222181391949305544087538244547409053474658209420159522015435550963799088939376214369077062409947285141201476647170446151133413240034560413219846158880761153496006438189906063836599327429847344423437802071888290237205305172879673148055337250534825756229639543343598652858603707771143338394522828807494975287035488117944288642996853772105720335417287781001916570460623976677508183173673405404443540397679091900173702741426488843517190150324155968026164928794710375191020522142172732810988033619066995410965862662909561946383490314708266742407604543741141622738272984619199293901540613255638923820743237589617983488586444849482417537049031255434739697140267494577935286516255252222099306134540461782278634211330292214925570590572897672238726577966693579139816487590329304684412006928986827720553265999842236331220683625937119770218238594000300640310703208123702184358842684978616017359498994537911319907507023098518516039740595570478615693340823236292270693791350538475492306405867431050984548144316901685531690467832141856926962428338281157266578384519254258834177332203503193656838660237897154105112555720984151767521863547561830617249853906617319102036989997075543124539918046720557380724746434555173162796569876119071402805473338634711730544811737887051481959595241430914136293632832565747359548009195272517002812084093822622940905149052075935626147938268708109209238434311974238437294541647034036652166721635405940274312532244853811618067836655601308727442394721595019729568063034186636249277840483125944915989138568196417008180672561481899569779763286243250695441387806848893844867770550157288554392757844781171853387056738468773767475648814874325456522574269562042879476237080387884021327945133470062708438744621079820184112073054474721032636654214205709633873817786455856809939289540895152013407121044602158018713591819680706536945448285310212698550912096748881836735500726678248462819265470749011273344745194223975829572806488239587583335331222010798709439226570397389664290604186772070383476250828165244540453631848526212976681090988419655923510675670097034645949083664577251849920488432969197264759796389555442922844781935807915032326766567333681364064358490768265188837542124809316572288573639038611493372823570856387435401066490431037392678183990333217107765161818397873419331360131065344927460786214350460937072174013711917608492992774833288378826800232222409326532767259642137196476809393762092505984532844199821666744818364960284560719158608647913436880279761977522497758676882500372067011152084720000327766160740981904230055113925224877534768869662908300166874902722006228220311106560641199017349663138336330281579778044785233122790977242088966426055705767218699463668987782447851735485815851922128689051769134758749441253104468309235862925366757139305520713855333145093186257466737432034155720030535977145914804063603705942940260715175763439612834846192167983028823956261977519698638469922449424359049092306585965995714082873831808467898100345602209656587017885153048953572404781436890527973612840615400830319226711385111559015308683465353218997236313200519097052712527758233117351151805907363661009068895432348034845689035381257804585959312516075859146080646729127298084101386340097517037887163530351379658740582333600890864011585290637922469618719467393547158588348353707186742097639082344045430970474137367891844759431424863592573736918732289504632743121303856657917624458208339593038121510442886299855953382498288188626125481284865265939883079904743286209449966513438838140418355134406049989802790485769517463348741633469099457001796770517578900840094317157581841941907233047252242332629806326681926804831341463855516527114121203227820283038721595103554320253572963304360485975066861564374270813501136059993075432594415553487701425708755481541201686782066878660134969229140679603411344377948107484795174210325834839079602382461715613278012732457537393113755637558289908773604063557210803460037271617225784958844983393526086671130548550703555512128773258024856558924879576477339226656201249398672092215314776110850973499557016543105147296171858555006597058208382619582596376839320636665796454894853346079876184982867885247226707503248161438771275922255814298248370508162723597759334103400782192315208907220446989333702634578846094001066358115578121168639960636082675651470040177016681169471964920981819185395186559411658195399116876681472576750027427778404737808103703981914911907401320124480175223097728399929085728215324042122542936266442779177129991463889905003335100684937457434953979122354995216156796699058262800864555474331987741176192622194627915677313259942219474427878310492063847021479907355554887223980537321091961287692538421463326912770081438580925658273392141292213384796463371215816955728473648704033608453938018750373168614509541792704165925273481459259908294744846573842523205881470463130213059234278511629338842415457098879193590107205884147238081610462895511872314827785565602158745827108461893902290989789188790445902948801688638440234848020185397885938260019895456244890801756323015076576933352884050564837063735965350706553468356573264034157082508469800434844493621578495141960986204281015804288786104999830989938406714567795782001376303764758785591380276256817282989528458196379657178178018536132845946638491009884601013499590205504906752942547287529948354316371407290341708911264595471024284452737423164104049918626849177346395835051102876414509348831965431276934298010775949799402698787460666916435660392308872786841491317790196006110238666714815769280286210875521638740062982723752454476811541594788102901273828224378397517881788021174779288522769728614001470552979140683683682546185675179948453145342786010333905684270055821603625514399926495202493365122953254374993390116761352168590496069059877075778037508354149119742375543979175016594442890549923474924410860170990779518101892720213140837045741852079186531054293882492916213258173039557327238177840667176634200717622013940405907753848313352124108060466539053827919286522046922993431164625006985596839170609336610640139744315602288472633847281457155626274582091916227228373668180048226239619674973143638048968292616311959454962859940848820259975377364841481917976642543341330327427580069624005613783322979982627159818253876902056703876504439480477172960772034773391621803268686716533093362581957398198872884834003608089160707193408169828134039170561879069539298695949701929146028386475304494207017405625307616738974444394821626733413125734394335880641536475222172549225054550181141409824592844598919161951385831379568693262464560846888369135316318837105539479455652846885908472244625967488415399861127727176753412936582890105109654803939208088564073726607352129994300488678344113723228361517070367008493819151436110572752493540740675462778737022637840777342153190487400038561136082191485674284558491228695383619178762070676568792314390040799282032585335411038642227811881772205163018339716289166582848348645879886227933655295246190048823969433924967022809055046310849525732704920170753513529079472547509499417805591439334000299066838816693950878239278339202027264889150108448460558551928728893262083271490840059298684047817902275003428643211291590872791046757484554532809899704307696127776375956865515556673087591119869268833965214240160435953435367467335571024563182679655492957161976007063482821986722884856263449048849826418172870011974120935528381540695842579692161153028543853796609122382236660604359663063658775204215328278630482149098289324018340271084878012726649142455000870120732985198415026376415426926276616973444957222817851506673120640642406796160738787607447744371507343605644953111022851784357513638696745882498681190927460832242222573629368888571735646998590797731353767078270811126823005631680320228645936812349143056682147214008000508606198290070959490417107877912968637433454045636850373322660870270307079624213204069420580871974937852341269053594440620358849740696421156114862117507282117445498989620926217555119370470566903171671250692809538334119571829536246336632883704635955813161653817419894751976438811772283631860355928751375402378858084026891484427160171847738562284803535224103204791002983664947786739204190197885292676563477919381170316990098615701776907076619870588022593487974400150883617791475769809219001281703767760678941321051301710853333253916976674076894430077405148514830094751650445606336429204114463178827790145851387206407115398911275119758625116279200671848945570415060981272970853961512490983054427674870514286925831349051442223865521804597095616241020685857540244820060381984568893664643307297102036368956337509882191437410637223777607271184798549883254979590549725427793508852707816956223959383088238574858017742382270914522177795057235995063641678506393733936291189324810967417224234701931548482779497583142713584555224841011041573652197129696059950533245256586155827291169803328444893507583842838574015379553280489722710255041455602390012982921028967568370802556127551719887598526269223019851802009729025697055093241701561197750200027835886623391317883037010923438230699225804558636707000971297377702234216550223033148354656424313061747878124991974918817365575178602670484595650417764728562874093188611883421023767587156104068143267045299929941954887097806988440479325043342564942315879422111732364178597426371533577864074839714053704329581634007322304182929225240913946038977845509874737194252501473658300727757850281486286253266948589347189590661362787062156046906169146294312523122954062178380189251083717378422529476565411814514342791461508706462355226438185920762669094330700279752722323529905287688265985467625796466768387744070314931113152664581298563806073587770213395187324466880520554639372644829175585222668650768638299500260507811564663961894578642146933046016534234590643066973196242115492670420564758997318464848654052932090712919477295817488489346232792500911680652486653959126177598612865830170808688694399151833332987682822890452786365336775756754751832611424314158753152497344662282198776942785067163503216134513317712284535217306058994751514121865400961521308554688469858972535693135465392484114843969510048320789910297264521008543452717894825961100064199820093951144984950655046064179774277208919089866296535545949671987876252558574378922387252583111605493552790463180944279579253937968939444500799556414611365432334839297260701939742216754913756829010449460386538888208348746068599017825315855423371980955990025276682164359104490832680975938626945214684223547911307208325906335427081364832531472511920036786685364916015455217788330132040844730145621021415841717981106276096341165523745677363299175264348039152990177137567021415382727094925829661527571337475197550466520394866164254183863047045919375281243099846674795367428402020404106102575798870387786403780980992859660638077321917820105780893890444759487649796478409032717449181281372593569604789231892338875259264199377956294144840788474438444463612010781376892508203603953437264521990060876590777530332281574453082738514536921499593385069362188784165020290671130136290732871438034493047033747331855533667816693615872202807493559217340291390375047499032538882686036419617297054494742721084578307091120886454416558242621467372808527018487293149453963016093937925978675849159406762712492786413128490080903168317062258538871835057436999605353555209644154786792897378230226803666330663315585364563052528785840014909467578073783123139557613213733295474488454386471015717356457653230867361829098033535052020857891566596587995117456189738006344159438283153155095265882986719492943232384685962895891425536642497215250908373368605456004029899545093811579758809419197877961152262167988590563070412578186544948034529779754837842295762884770944232506731721319497467425516957755887482042916998782134287012628463951678033546548478066237852627540365385043528607722854128830250195303814093117787949235869087538399757237322030116085760876624069831128315491258812566373478736913711351509854677706508973911807258409118301377438781359736362646843817400237548445558130427954961359593518238954739075689021384964820698959770835202098696990315940554188505060543153945551179016149467278576325730994466448198731145727121077443322621961026254868664710953414673941871390280550556076871689102947066476733771386945508525250357639087533669249386875790124345180404447541097295661755478429690563331257238918017818596524348468232681185373179052649987217250140472053023883876242011984664005575279627296311786386848766692655600699440470532915434590890608567501596463629007248059756978802343816708501993795464325519612388764751488396891828164641415075809218146972386835909556494562956972828256588389467825233732534292517825811712711928893694709652977257137398262476762864195586157114012615802139710642047321863233511688111928763635730559809842707319384028955117310538388055063192043834403754562294007344727359803407539914410266237982859027431407736798620435088441678955525869101598424449545034449784115520844882007100228359069530608536735246657202555900578406402505044612592125820356584211144206143964369511787840760957538313799646304861103953387399360490495972421083822249497926583685944858651552833856342052892864662352627151417486392239085800340265234584224519992361726888139297581872628856507007599589383990871307956440616097680888296260184080229168944621894579078264595681399010089161116995683341537735212776053599192049375612953046054382369971073387765874896675402958569673364667799385316853572558501923123576413139070044925502843374700075588408995185314479528073777706761160775527832529063975398919191798428649992653801816448564163780411311296474727112031912462032514450915611270629428518943988064635923159308194204705334841743175969661879058356102390946525017809646199325143523308849931778139434509769178606992223075777893455398906936880041278258274184723280971258092868656640848640777796301714097934772328726048730576423359271672613438749532088133803667265345705394956282373153228707271902930314487795293288339853446441828543735062707197764735637520656401304645038909974119748442058125740657451389289728427287322314524892164510315265132206544027132395546560719626518982815109316134706950097226824568176311654219845117345648210537663519003886792914956008649606473807505908831643473338441598268148655769454674918259833045002580838001956121693864206462994076266114319007630528779332039831286424691581673152120562050431655894721956837019926503705344794183141927188604195842410535442576242587074624139156130168551386816874853798890263383526634131532776908737228826188912922847409481306064039286858723597869607696241167148262266703211363650983909554655894464827536286621046190074688729965077625371185361369273549153327705808690240246470721058201960469451762495807790905542484003811070265560194179562910479214444235099226292644261059665860406074504375147341735594492391316303841448049602355124082141299167437465219086763528900812856924801420737268002231322062686588100621351041492623109505750095473477571203318839920020958494358634463826627178987184592155818631946315943418228804042325098161453957145249572850282253932046768372897498277851372735881794696113931133740455416100667314166866121315265558763101365658584289065007293560611666415891059197240166270106583081256963231373690081386301516102691344569179132812724256581383546866923140086116950158184219157297622117612161113955145588543179769550931030644299325012278371782565828613010183762841831834967330782615846673836123509015830059048269751606880398633551224594578171483148662584697589905836203096551366055581136229667963720010740636557964183095050800990934064680968598086854842728632108461044416802162087130546819494531560135802756427001421965477908421543558472605494642520056024586907838184828133328716434974622256714949738488175497578239377558651206536606358668650394538014686193026329532970329065385885578313447005964500316544507755440520431027598814788460450530853108018515201480976510069931075379830159217168287775932526575414965712934008852012040776073865559859629987228341008166265333180531859983266105765618261154319192819301540490990278038869363663739724446405298676984901490529297556967507755174674715473997416911207933565960589200948595169525314723274104363835689035066521792747207012612005885195677352875912458461539784244400506900757830396516420063598625251097340591189997929317741895856890235252017845370679516427163174144878151415509640477671105281467646620116714765662925853018841867556635741342325940917009120495158312711245399241667914070498452780395946427322953216559921231397128617982657125886526339275752988749304572326820966177007815383701748874744063232523398838485965749123957855595397217444857593820271600745644408282169500116762492325025653288790991039127122414901970208877733608403804673056349084294041700616900248077140363419475411249283819444544089925326564473698680322576716353993441294286117832766107079434156149977554075826167105167885369917473402856653619624510085443051802496617933844881008185456324139098341598027932216034830095349391165864585186716116107222186351940645697868591245636189600855427359931375037487743562559845787164757241612031134724712159308571593929716737339639877315960274723526977057093989220698748492829311277437648948151746872637771119839781098298746161250919063975915015948585968450096123980833295462430017863217475306336047202337107452184988668297139535042148088559490830252705628877498820140473145705650212250417743986181577604125179034390035918350186066826702592775994845862162039667983957312870424727193341892179428001880172744723340669153402047711287351614735062013325513854844427750074354124594858243530999161226421200397600858807870663720513458767776549751382071057991520500376370274633744216304731852120249210971529977713168706363173591037245026458549340503220803947812793697753665765746856419917186041780348561513974550527783350081673879453039471712164406846873137712812249503790360580753797291895679599045200507980365973238914576118382716590933929558894983602820935258395524980818398072078711912894638324398144369588718375250977298746565817752725370826324943916649041730493532662223750934006649618986530378747477739777930010491908875735384936035101990319968535861439739086475675310751354609588955247804455382948927797846757923120780026131422584120582661523069867842286832689389841781216236648199962696359452995740208991753530320401179551360462275262579317396837492080616301051613785916982139735637250163271638119612060097864338861643243586887696717904105142727721111533173466941853567206911924454874318083632625819635447561297535899990388444852452369704009404986230168053971673986530017285005693214013477459430097022600545092989088112938438646348805705171223016345426865652452515073523917982114548045599164773227126891733491573462406936012444189718194088205832400126842499474348521090693108153697497902418439615996760719459370230037840723713058183946670467596769328168349830758996549294498455671657574434886210164735226679829644668781602675455968778687634164730231455893368136230761307002650735099914518543568950995247428482305295469563555075791881857969289450930545633829444985565863786568252427491305614572298238102802702471288113556910408600984327836457668305132502788126725905813235149782133429672713648237191908255784251308940491832723674361519594152873530976172394888237564017010781589625710067688660266898277576265898295037166397513831334530151829666121524954855688649023133043254571235110553164236577860009397776983905788496376142113024143132336647636932805272584436749995589571771864921291460870290858899669363901570467014601374471651215840893514267477100867660860645407490574736123007701303569433022140775051942567988516133269689276909333241083560140300703506382336436960397295209195037811851938101013605032282075906965705798857323760199612076364894334084743721000250547984569865483587068989891126303662426588104572942977264429476661024277574474402345365913928703497228836122126594618695742555554256114397971659415947441367683114408098670319216123170059114863933455197249475158956467305896519435036161952483002469420015631423860609731720992173721912459940819776833917288079253849360343369924554569677957427287549123991952712795491468008493400443151981084207900630448448153915938035993104423163450984236426034117672873210685097215066996327285841816939941916717385480736494572067353345406200560126857552540683618218021158210662404720211597431535345025654819783034906286433069128691499902411171230067229042985219561076356403001075672275217154910042021431959975184397847364175505841166910024827094371773605431025507750426687092716943436514619166539470024245608822585309464478393781049450494010140155696160020551294381367957040128834390585157663166027055268753637197126070928966707496529025643826820674367274895137070646928079213489851744890753375641553236613007344854947621616644327962266002419206823996803694193516358004819207870589467677350837201290611587036134454486491931923857104969615376285417219389121996911933546328714697693888696357863537022334182195320230960688564699522129073843225424132123479439686302616307916892668626896809245081337748543031305502813148167543075247653336131948794849180500750180434298519872419834691820888947274475610487296631907523323525791877229156141545073606063721222915614867942569436519429897105633290509540559603953575961914775726033657023665137517382211860698885827456269200399016660822368203741041924683941968466373313421173174875159448045150644653030806633497566484985579175846353240586984767534971570981745311420133319510595656815862965101671435791327850010471667030643736780437497679391985643800090963338740098364609031474072497451243842913915811076470856019308841250505786016657858130971353360503153637227274541590531597183837854051673249260866189535611676767309498989401759165870847006555284523689811457793474736971287041693813824443274346936315555207852168459802720248012076838336617743256412563572872590369937461850881215012646297727724980783833520340516153132573411934852129875417105475491214203312175143761131710374830438795680648819660013495193586723132947317221641243673599826476476888415675041459172703113499197694768403185111377983162847418417176395508269451518629408212467080309695310810991608651496758082004355652533994880946333121070215693510138474171230272547893374498152714924100130418054061527810923534161681156552240070045678980780143868307598671809141125030555918778958929722145173816068373308104633553470346173684861225485424641947504539554139499544752198549602868965329540213190367116190508047350255368627051471027717688470124130408699480408611540979155112784746052402312646627705090718790206513441097570049284216619705114363796045354470212592377790919095207811170388611810739111089651396712739247537400140646624217903516629458667490500696499843634767758654875385940803704422086250203411395344597594055177808563989840074669512867396917999578941404315758769047953886997209378124573701909460779264582174646884038657867157763509036977630955793801544298479914415337542602495602859808707339862649526072699342638721255852544252199091210099424806677741625302113219809169040939944211922018556297702737270043049588289839064605494855601328872770654987922565561182980685151115537913691628277658524711226832379626606735864451159570354157790707904510205812144480956010217309352423232596482346719061585392883424043607287729877150239397170610238751334693994948074697993503990235824692088931592860653908124716734088978740648323902252961374177380408968233583562204447205474961629547204704842639314054122252221112901131979574765503494997674459902363834453600387892446036126682576477305122507952483068757425525988644227252776175582016314783145582507079603602692904450084702957238570438911027995457387965275421824114259327655864974424751941898633180237874932373039895394662879679053608943690209863436521624721678243543705948397840922788909738466681944902968710241115084218351427958741379054300603545991885573900213313283108333531126622320723519213957060784580858859068301904769387018238845726695140037497820761787009234146569508045087922675338718930845312874805632089625882115790732820664475792062964179075419316645345336425195236335992130136506349678283462484904957027728088259207955791208833189669403361796054823811202641673270936901991907587786895284265235122722987508877155477851218014222338322108869634319480749594074269287327641924551726942836862617845516586729296076332520108185492887406450519855574841913244885765060058087156677550067750455994001921320613482745297643987781321844492742720901446122021097413060305656364400956351408248405497585937212068760357815016445702190630343088938785062775082438872745804012022243477545686674032831920680402515126469819764683739898247069893595184005644082681875845926552954049307255148731009702027084752098148633452665900452465440315022437999893843520399071573093846268575870870835809453079198048513421367320196676692499511752823812324228557510089174501948015151296227768794759589544747744722313184891193114807127131055672868812968295203574835699186877118822453528752563975068361910887716893911635053427175844254828576941326477598658434079971464178469840584616260079865815822281944191008275180469288079635566190469712296489302115868672253109379024072459943317056223877297899433495234191380137747153314415058747986098054619860178937585266068767736388585776122012486319010685779945331207549002517458693501593218158341201944533112720875743488939049985883507733774143510418442824092307469988214798296832138401834482042570949613685880323969380149471455557789230900316823667845050303308493911950802623788313225479298289042872252451842143712476461289180481296425687539133207395985676470027678418646157092747187786496465879859683744849058047523977588606925315860239001176311558029066380196468529803973224335711781379769101382562605742797152692066706213736039787342574446664341845562753822891123995481639747996515952475250213301893705711804666877443635299806320719603366798514403631930862380303077497582415420727795491547947095295723874661392666606463146904488624971056697521620980750223597711430798551269033252664314929769504277020864845961731480828374598336293847520134083463878565535644039820942991737510359242469015659612454796669649967176132307911352507759601300386081875186404143754019177185813488402292710449865451136465668924165333910469937176027199034536549198195153186867324741264474970918698153067088092529848779155454792629445150992822816479144859619054606935141707020837378639234380616372754748937290024010188664742281579314519690202064676570763305449683219110146234147747780399455085059530586806639094505789075302709127335568022160752245373583113575761482592710604442265657461573348545439347031074808328226725381948739776657977219462228174688828950644665534266218747084209613253764820032101144994438267694966893957916888568023540929010160075848859230782884200138364594799627189947758159510309671906308277330369239256750960477210284638932778035727193818434927969677693666440150855550973940095673797867749060726162490315467238089521939160019121779887343798591252009874770060309077010501511663017235599226034378905966712416225901013989812567377840343205840516695108703518836156949391819772545152947310792745501318568047133230213205354599500242642755949677925909612857155137717617607806756105875757716303106369032168003874810183766923589516238152361827924206952045119573819583017605023075639617943881294019275602191211496427934457663896571414542774583252773329226106283915990425880185652772184806349458286833744904524425809322631057715222334212752089232592189000474992357111907797919203617991251309212909032080466591638245686951496922805568540725899891308864671946532248128341543534115049006421660896566757469290461961291845867036795547523340409758810145311784169043707859710024789332531924504447266117555549145614950197657648894514089343198958266290347370941189141549963364765854089982117887034478565842453066601538285397583498808741384840073189820667367659602640521125960916956647809049679931331894664763088959194485245471326524971598026860420777159055026428843438189501221607052757575174057588058630753779792602026651779852894722087763787910005964732310592616364196251220659699288678538523153170256832260012112679714768204884817756484638912058837889689708429044976989362466125029924416035944378121330546485553265635069900751214414444526435061851090596554647619194782062333185581720818193086177490358154635433694122499493040740117615274413199235630740557434691369286146740831157102457809703405687855104363533080262139257007787271339343470077617953931591933715106233249997762489446972872996905207745575996077586405328253913559453982969969751936590902322539329225766874082004116074061295776704050601619726001985773016007058410966266923887293144387977102053727768802186695213882974938357095593812566925251435921729016447272335571993677706551234715667559977905645859205511866867857335615751186974291759718063010233090714530577284686483630646798484760191859500649867876337231209018928731024235695843762958660388282738047423713797198595147397003508754272886331834878462485185405424944751235554239223959725926842224611791737862064501901487630632201596204699796462502272983504579412936085278180906603492209854901483217525462169835448688253425557377298359311724086441857485594062463577846494400490511436887335902587476936667479900431362360766898247049029073288010201627189962617559974433182581891764886537404533070858374643494201218151735466385618277697440539358118285838376945631144270811457563047566660855419522544159669383149739944509501510723397714166224757160879305090912933301616748928531296536798626166437336949913579351267141607746652576792600145976955187079911406709929155155726585503030485194071953201382672766334024540060554137734246817068483819665813051165259735281336520333706893692449215650737765830999300062536340916824608101565700283105371950891124227330222891255517557209133180332228819942844095419995284180536808610986212960212982274675600064830577259123646045842101750145411795920218274863711435661406897808017757003561415536055022143614425893839776876172437788134799493545248665877267133314417567511668450977330997165225088124192059832464481523639634544980920890487570274944763632230458553995176967979902981746488203155640980746694411296409990304580464411164449485847000731575235210913941133217708283945367439121076411641436127891018634325434394713605365107317453075520705731173334165232967483870057031131622402115798028519799469176305635579430616044987118999958994931869754148661042310915593546218108930043158093733747009973851785225939878681919960210614086391826829890112514271899902638898568985558553022751852838651943232628571945606441673514954647418736588137113093937164077448024612894387082489598638053705806314599633582659762549494924732040728774305589032111563535294289763288006074065348862380244221432365390456047477121743260349488145979223671210601990972369936268853201664915747491286209761945224585544476613647581091773636056974488189500064909333399049924928384967315188733981716738811604493847259738056597610343734045155113677603617820421761382334962958931742843395092797635528528556786455499361603752734561663515102451132510528123432724857160952716969832124941937289756053206219407910005911576395881687940435758963427202488665019626371976524114788658984120504258125875104300737634966958540114312482054606668171367177547368959755742424215889459539498449626089144043327216425306560463699279335999568865178937124556134238535302038305475880687233903253431988388016008474165992906878126161661349747771961417552279734424511622993100089616326140831906063519687456133048110702324821320535472350247441491725471583298068084726879121415498849849180748802369427545053903654213857937266154908621012989302495041038633147705448244146708354167335871963203550948146043820089336791486847473860019704114063299360993055689165318151151680789538560757154696275132605897300204702360502993727084128550108276171278094131475657001024823747419913523966052111828443417626929859846432590947144288886391174260165636058846912464637700474594424010949481473160562575628821330835647366532533540837587856878799585695418913015878294135130477804930695747361309472730871360307089257373475008185876713525449775193831579754837980956572051271688368235131756659846313890389704972841157076587230081603450217346291350981484840389761032447611744702094443699970878193579561750384425168136146136382143070790631517765011253484445555139964012455883707909033027907711572884819784765302545241846920728850994176958777404601287064899591004229872517836989304958167610231267940787577529369714094127800861696660230051519199189165889742728628671811565742598681828461016331264449894453862879498524422851494682556147578765196260400654914427090780986209507813141566605837931381346893076148450983064605787615330304601244980494123808906255577639821380534512651817724401741761835476462612024005010355905520447281056686565918791786537485889922947229243554671936353063482219007641570546916940075379601289976069330205053274457721052810376146628692695775559291692548980492655038972720028337000796865967101314681097313607048146512958090420167661715265448482594274602971822968941763182601026222844810192147226031431968302451305393614373176040995505490578033769986614087399400277660613255379179055128866005406409463222698575590045826327227014625232640995966618822042140073973959202021718840759535394928475334312413635706761391877389224485150710063945325574057472457911192122703453516931902409989538765240698666100196647680243153237605262635606827660881606455668098764611611088423020036895094100669606773780961742159565036234707175171463379487352064146009139927492601369904398370773808852731020185134884338007482212427908506277481808153065622031324771374951923284488067049051829515415923899569380302925426255043795806582327295978504785478014212986651482472307301404864981020052476692309205609299003617553138604138666705314189123519375934801324002351426612835425322890506922510782620569552514542943088233784998169358605062783939193343426126821935661273178182357085085767539626080389792599593529633224700278983199169982902875946982016611818237812128427671446572312271951505346356903926617105899272400487689950342922622122534962196914306579366309923255219648268304011983269906831948347116386051116438412515345048360908663540827007656153944158528376555224798704660932615178562727271572753754493293146168236463888553639795707484975671066273646423109140507474425678218254228129380227572035951895065355856975840504031877706946597248835480082306593955095186268036716389009338245241783610636810259206792075742390759458555191541767134406599687343766185269183096740376249600037329830980462698239722356659457614463097300711236352069401803342203794066442032294915389479468448428027280449786793353976525053717128844975206220943610983054055611038027673343123767747313282780737517602123346655484604049207516048232714002181323083835000494699424923510823475243359251191574462056402725127171773335010986820635354623307408719292824980612683616381670365275631713346370170858332659929557108829832401189552765021079356625605953389667970379369403222844551176675975420525878027883972697065159969143686189989377579174910456397008721100020692211445499988228252184254337045899324987664760563401859156072591381023781041395299085857200318778066771153104389015364358224248386929501710607792591292761744004338867722879083055107720963024379218412284220549074941676514903301800688632863344992244171132510737438010309792882762287892678456784723675867384099790283925895077024963979144247454519995589912461068872813677432766920561329777998091479282786914660086594551315163805866723933808076150726116627125813671067845425877484729478727182009641964169635615021245838738965167378673804280544124843195048797297357841066448151791320467645905569186175789791840699103980654364208232581823862107276646444694288328182216197389919222621791585967957585262430887390622244089587868661825140428057682494382376873590865247423703517648020288840830105180236799857759233531769708283969595799172553476608198845704987806244836436846924544121469915435700048114623666315307917945884548018037941474198929384065491077028162195270820227787509907746280443102532729855768380594909619099597743300644605822876742912080668677575029569358592383826930975336936558584479385019612164344552391485327574924615361128699438966968664305532541156759660989885772956288613010625576895098516412783461391961765452661246757332973640577821531279989876071989484982856266057947276780072433489076855686963338162697840876157236172403539830058503265002600956347255901147499387683997950729494359957727772202294010989334938806847476756195635787268053047005331170600236003863093812159104440492728847732120684286521493269841553136841419677989215515894265217169158151415498431982532971670817306822320186404130192586264416852590522949328774183496896283258947288062475414447799193078038428593531754608670895254658648797683934220786522579119683591691206094522597440939784126029376720658290726589232170771034531419222694656526177135056016230151730262798626717559871944722418290845357394338841545703089785652209199761024251754030341467546413681166128624761641345228710723374402736437293610572771470798725559004777720953398422040308776183050567415057737214193329439303940131287055401108005694323661455116324703883289699492085662184826913123299207920620639738198111782800863020098735164940931470873916660202060745692134360753306705659872135665908783473934428199782439222990007819306304977156838581873199965996318552940150629937734451637550658433488305000810959554919536649761445143680007677150728126863927767220164182806357042388498678029441703534197953690553708060904762922076337678203660425622392007145664958402573469494374010518904229862692227008757347593679280590303182597912023383242067115550116516098823626020629831421947548134644054154841382733091696099778838754221193431899411348846303396160316637942671641011697025622078464269286849086976343658253254539356630597864396926864832419653212774606793537274267665147779239366355134185255833675203014462339296858936499962257162882179246977724622169464223507138170932524370506286289612732869445463130837675877774209805240961242641730150495787030221534867066117339191145269658842076820881528109819947521000289050339214557323046652170390059549142166897210558785033974425379251464189730990885483371902515209722409728356617275164463234143094226275367252761550981278750737190524509890286876963772751199008427588361589666292308846002202057426167840485201570594303225877522219833855712567519498090063872718907086400268999583603017240700473553294946708876679564709952217886374568559120824810100974670321806856352957113118277613527460309664378818682468700399408011209650130715192780998694898863507935487668604207451004552354142722775222646945696102733940627253355488775975818412621263004594573882558561853639030513434803979743338177992698591340209349611418818415406375080756881324353914292513824161921530354851093698732848377342959878506489380262033745735747370309233929235346978686503642689020437437884329092590044178911546600115049445795376787601544801832659867018904685864301170845988251512713896255702351481570765653432434033070194941672776038460308502414237822526822097228773225227902585097291451034732094858668328404114896008946236843549349114089167246260618101748578477657244538311743459712270520506181416962692687637486684025809731288660950776285316169025896980769264869172694587167162641269740885748973995125877020009716798368561880654752977800688546787443484648617469867599388497639455301937435585719689459244660382084184086044679293341155899689986570798661947940820388248586443682716272076019908942460899029250516274677551207097755295996258221900225761928585640333610938394007747920049763822956784482107218227638193502310151980750876998583496331562991346850713739678945925561660237807024316100626961416858047474842382829620717016722930655821105744401459483526160678844394901327861100011634691271862945164865841908500129212568096902663638019910227330907403712653351956232281491307314834837840833172928498732797244492196196441512339532049263539375238673520275932426054287593443465593466624552797384499008028628971948514262139044112530195703246333711897371660902237559570901331715300538182609464878139502175696546489808945807451228118108845735397823278062747775448044505887620569752420526148428770163936184504065490374731615662270085793410109768128549115151715103706724754699559422389580085533039315119575252157436128090788717628089210554899277943835981071164897793661276698199596958548439707130134092134026300347976872560582355044792652872801116934294259838997156425046930966170191482411156735851104440953316730868263303276251122994031176464089842728636323107604718938999902764027696575726491322092411941858274919831751217125561338380023330759083099658890297585446929180737511919390283117482297512587995509479754969340925780370955841285158737218454814343767685746866507907499093460626617463617235170771808066562731975330689257865197180687364248684118146345286804853909700418923170440468094231711441448212178113731596096646712833997107980085037315581875898741822969341067019225478525139581849063889320881304218543168976926274889304278324468943593675280096074817543342287980144154086246529694548544704915449627968538300554582428502965893052261197829353378656431252858231701593465525190102879100317881952490644601328071352871311744288152641948890631686231746889152554766550058964474095551282087303344200599624674859294296408626615322038979059089965258283012391046812498394600558257239678646854793436573567656848773097087319040450480161306775916551896945708186087941296432312301886179879956343911786545702061363770230715444322722693306909530784133305104284668313638114646010699501824687746503347996651922071657592552140444449971947799205947820921737565266523621272643957181761736801274939543274992297479353383309903003071504532562761959920289940513988540343367242021091957141745348530590818512878680679982907132251685005598764200301216245691396482284128431622532086104512982925317746709652515463864388444296438623522938959671079129083606573755176094875756152033249789423269314601309537864453254639484780146996749380351681046348068210356012247801829386589358842661395188310316392428594919259178210568913179566853224167171065673471683007874536151332351562045816360230449306848510552737477146132601236089533095322970320151424380414551078550761397149764288563264942047909178620828411592462726335261445589008115707260109894689069224088594967801351562027997434062895215888213426020045259784381611011615391456677551615360397233851417212218019207716254407648889809258987185686015505532186059778265171980646556780998353872042988549932780158694579134804362595618358828115260704661573103032719391204103913952660759659590826301176264849390367765601667965144637523079547775282906837632295766465161858190553835679803980137458334910280549790554033015485098542937934812168139757200339766554888312480230789425124766166159047710285089959530473897515753640204810797279319370453711928389231811164803233866963568395048330633964279372730145237528486124470695706148778712871936102102879958554921900550224803549857617318784639506286193730006402593113038850743193007859927843476874854090711274792363610959955426517568137625376217597592627105537371595112439441100475098844558866170989935840665661597742433518767299041304763236913187746901895286695658319013421588783730510591512169350526185243809539501637757903198834207921055325641924000070921218601635884085990503507933861786294692699540795709168105351699895970583533026319036258370269163445941359056497345840669852537412029673525064874247979577356795198392726064489952360196800832298789585635300759904837720229202238911322636996055127964140321352494642573755251348592631481655932222973577821493653916280429480701919017667572162483551899817513803975065516215351332190414447342655945879549172603315513348405632084533906188619273593200491989497306957602507767469792204144730157178405107115192628845217876328375072333151689481072213532918882508586256270991014365138682813413129203970781829228336847698158164014541852358235120481585898542536498659578270820408525078731898198109671749209478261417307428312268991731929744005841141795971205053601515529438029721736714792412284854419559752803709452691565465225183881884329727836906535641608003128869446133017979901185943175785134275808578459511096996587537794259526211726549928682005133226172106562642379344500329958323811406928509954630148291184070832681662205187849462129246413448295917450901561925309685738185188670116172221247968305278554625057647747835805319572609179106556661285626366199292182081881474850243598194328102758955003724309188004088759908724780512143733049596395559847241827014445679212871999536822898076857235750256700901704651427648704989930330251343285356710530825808805016307211094796674875349748261107064672703046430852913541017170666037134560204750529294758613521606136618465282803501618576204193206718930213824128599891182925257774124326707374051422382062252681239065869965735747919738141479913410615463429048179438907970756220841255977742433058112967564766248847060935387451706602037796435615932142248959488504494319893877893290159719752454928432807878174336330080505805788770536133960690011594213884866572858427065680356912551346633550353225074354646173495791271532163452365861985714965031797313056241700743060972663068538513576479670230423878592460826783327861248941832238518919975642535338406583547247909678146155638503265179317784593509448287342805411123519149129600629281849016669222539650753499439709904656844667849297585495301551786014581542711269088049417030457679885392327655649824670630977933702021734282551831397420531051132741798991097394561049439673233426789879671520650646530752162676423703509908950385969711495982957353040527176357947318348889450585330177796146519661294824882081985931901055029044079447312037668526318630801729175374531003579819225076992828812532653735317291001913100203066828331445678490892990719608208679720605302701648990072067515812031879469868492841007946859177021453122771554382004163849350787140981959692636497850228562398659656440310407252580719944978556065251001561423822538507526713050161310121875312916368032479907294550097263533475619029118086967698212889781610148515552195782437929683178312064169024500303970573723341915205468858970144566385008297067822691336562748034878126346029372297928612391672828587473409246698952604211516630618990485447917590137063714912075456520746885810204615890102431506068317067212094597004224095142208272217257146989601792365131363744312867376973408535377547980979146549157525735399559936790544159218117193811618906635613885449551712981041166968211650483721264878396029075317016744541786749493146285582154974075585000346823444463630681867351429142851789731445491478436817191264250667419134904749123792132812581434743380502494241784846063078648358096997432537393586912990000155302285372072320867070877174050697492174126480905580247531612543625153125094892203963499914183016121825555128059033955298096535540926405874491081908293763812683919702465264390296187936997566770593393516577938350709341206861353610423765604592314951040688938342444215919766325229073243824158324915848327112763167974491041780192499985750448126197344740210878866456785755792705312927213786285339067227581327103645282342053979526611000620828046378820430905936610442329384469701957742193006221583536783246446821141182198635110470419271264525372703130643100785425837449172478930621828134632348119324516225524481280239959209669382306309839457292339704488327847079636031836725175503679313248012470188847831623514841991053192010419269743828877744224615818759172135342295095684995776639820975570198658531215025555874440053277007906434730336210659269633069540809055235653607180872261596405477631315202130520285862424108054807997486474666200427516144044979386855934096142809729738431739051037370208120949829106937137699343734266437904206958191410313209257153741938435489076493102013335466581516716843201661544771934604619782393712178453323338083076125873438294227495932929079621765274369184279063301078375909755334494939104049432530489682931038384480665636600943634528273935523318917321830616191952612972975419747001478165270727341874214711042046903723106650756159147234120784587993369714672835938067886466695993633145123106870175373771209304743098150007115103462723089897979001175751650097142469837033195442365228332150036506734226804150060115236447666891812415926790959120139541669429468586347823830441158470666862651365535892122509443612068390615711839325542061649389344248889674109271930684391614686808454763960490143475928756421917436146144396041739212312265093311225241527519007286841332996147648760176070414873791234261121345383025919468752659218038167906221270562276962363710067015140158716953276177697504130189398734241660773548153866033387654857291770658792433727548425377725589436001844747609280098863974645213856605026736491447995540052733999438476843646280252446705465692107000409306350134560034876793835669449267468565473053005600139863396899005540713397398358752753303660412360086850715652552725269820468358731044341464554633587541005776159881307415941286802131016723854783678696941713731354480474148370371907091757832678245749411853522313120997407398239310116811234396021826716229878125676388054028632775451942647341823346114522529004589449844118116425947097511233201134726076909007063162354224061414274785788771968520281647849490342394589475377993641284478026338899196707242667217107799027316262027107048432957917944299016895347888676103915293366735797489215439003950769709466359175453202191558747548829997512271407198687762881244163597253563628146849465925356452409836595427877506471852517055002293760754529664220004459221929314484502266112689384418448938346482337430006652749545562253528978533071827824201209236682062528281787582710880612262262459631091677343537260930644172656609835232920169533442355065672011530161133625032739969664696615576609365483627853138570957027805929271508437263660448064883874229614543809094517772747062237321612356012418991949635660138965264219445568703974217953910512276352277065330451914445295155389758923257586223617615271801620579730821457995034999394597214131461374893386567744074766622086190335722424736083233712173803376999226458952783222986139704660058826303463722206704587375177368636605190926127241940306612274330963627310435701024930047146715615223018963095154666651854589330398279733745326073202907560486776748633621118606614626598124716982333506879398963981418609400242931675816505044532937641880165173251441467335053684975786779670671227152495825013629735873135556064522771900760230483835357688119801440580584480581007095461241975956936149263423632106612789418002722837237463697058621536816601230418761933253206206248007872948318954575600408835883278418270215830531437021509112546439746612307333781147346860777006324062597714049894664672881438966404045293308185332574730734406084656411636450989307494730667039307365059698245268118693436670011811594240723588672515408636647266097893883294198834839966493155750517304721638226756711914479000786751952593787299936854455259637734596596417623707610762201765843345179350625998803313795331678796089559634827998518981766172261965418010172550839218496380328941249651082012439146841188156481573744993435041446469139297079316489789926562917027318622988457789000402627736260055090130174236349038034861177141975205663355310885237238498756604202286887957813789778129088481266994554196949016611317339124961966954115682983474527463754872572785368242697686714599080035578713578574210413557028062299049687414613769860652840133806721641189534230635595527703263358187509482547304945935569305615814176301617875534409662468725471574532117162988425108426619201219498600741927665397326027275689830741105326276693620740837008415151192628018977965687418703255502325446240744018801043883191457229246804115194864893853666134140602663579581264182472842603068757104195410076626398586524428084700843049506746480573928668366230797352734493397565986900800300172041768679057852237570066049976252631340015073461002682570458739398437190091194950039871799587028377395363219240367465504358690501843382949928324648928859122186548028868377270839486639338313558591444514126537703656852856362204996339219444332400379380526232208710697204132891250052670809030751269397833616495659436263615529607919618506439853226119079039889022348103716706673243050269714283423549282947970612227699425023347525069726589874082257913679199646264722440436451967008646195481266346395831202477920449137729744811063941030456965199564561936418854941453842506995973266060257791468919214784026494502142379602984562601346195275400004299458189778950795354738442459604281115173042321875052391969372551854426497711865438810539513934744174001447027743205220272555794490880654711548363169547211317008169723491498407304729378847881139864300069602369974766624739583521205426555260832415811804310095644141412483347953382550592266036887148581474954699603657605128410004512508373652171027258352748244504528900689138057125115359598012656233259863560952454161838766709491448669458943394849961657436431717114998499794156882030550014854390206549526424001381383790775513242480760251319275743646576468389769881216673928880029700647934825796139356620736744478983587402963107292231537365934773141953521391769478261239088996134564188743276479597285043000178454177933197966634493046092513448826615749807152189959785606326650859815983588764183423192816714383046244942179380823340724147533388021503665006734699225831343371279374480209280002760113313025459471024585533074667114678863393361744182731347315542119002451909080608611379654688284333204758636987402375780475249752406113660047718070670692489000927402193698992535141451099009649420135674289169262223868111222932698745342500626261922850571979189564463204055245536001144636391360303298138735030137916872233644708877779772571199882132833802953726529576414689770318351504106069943004377990225886441159495862922824787704019666436483801044093880722490987934214402486245608474725089737961620095752445189733169343837884059431644234737646134552907997922487763250757036699923434377950310638123760576164182178614210376765073597544767113203149311560755748887337932090015231714892602343624788911013020688309389921313578614486022068792989439603020701469043486195860655139214507600175658658281372231980828577762438215201024325379228639066023237246903928802125262290035671143807383936233367367794729019426833101970603696805264304865608468203767958166104767846697099399071243188182807329010115713482434293472801222115349781423188005822850547138273694932386153619221134403914028165987065837281691113018772554421169439799377862758368645791656690972035257579230455807276146859420769774698553753320004884495463695905016547643183840982831147316799303027892282891923544917254483087706672455524881244075809746490696185225366048979613543672689980673145700751125644674447731050046892288462056353268168687798494588784444444045371121619164266724627449800209854386165250189444493321179965148546860620408374195790669750656430527698459221843820283437743619395301971401449365391026220711804646472844961707835275884162542921038865686537795722833192390456039471773168167193456873967245978139103672377575962505746637036557896860955119695304049967499494780853592036983941067385814579367805505328494358202608990239279659197334170995975525535257887006682325070483605097062986975666883575075847292536852845176445538682840407901809206512211056334723507421255119335813881113802152773108293062923770141394358335129274607558057362153699220462362626773631954741180875580336085605640400283562658151988020300140626860316385782677728597388839979121390402245338981752539729307934686841323793803093809384633614073859415755532251458326766336441247608095366642158462170512226709207913430356613444801248355226487666368295973820907819634804540288603666099010900474746854760285518668149506535023740422659477692631833387142354244987231400562631881847943146308581206107342890529019523782269119955460214141144049554017163274829435885657206408193527562188432513579706520058604658964623612959736963704849555165937991559461063297576086943981209551065125058665276247596957222167635407610795403309494220689957928164028482932991349237557450516159532727552948260629502190621674607795729353633049953688146603918036108748246878363598643632570430740804318936663821476213158708513587108146349253329405860826199184007944559757323487060509616915710678727400972574670800514065113456363316276868792450157314446951809471186435492158385076578627630182546862209519638820175146983283910388811731177068553502289926922014871801297091181564903136247290230408372191175275483582321344606758812354051759096537749386552708944157492264408471423462592292533686111139757735917520655247058924879794107466088456942606417608613617925806890671980183696488055372422318854816412951070911644411293152010860389007074377749510461781861100224333241437562580539431106371653633904752312986314761722602835724289465029449392111034152003645033175715550326729436507146170008660837721778689298934134911537195704583775498402157715645961673271595482023537833984670720264613803720272638925463218051157486611167697890781338173506281709213407190896317725985502723412076318480857758909125210806237009680809150197813961013793599575105566400743367252036275700440261551552527448078772008453673001329237935268596988209534336705582221821247223364297076296849777323599344949814873771980744509235236208353095717312115434913388681845093256696958313945244496954441927626245255609348283944101544976327178738318611185557040237214483384105582812610801317264042084060756247353179104660178192456430930642823643255988990825867064069915419539555574159545701529665679386205742165735442871100204473129218815832020379161991851736200597629167882228645661189022589768429602532867031148410232432981925662470386191288340551258216657624607074525843360781077163248452753905664721471217071598177174070199348682098192315546675804524255835984868619579749705491842054966057315277273935322240912839704565512958641797117557771634121500671125692411058691347011897507192980240173844555437507503450372348665864634083244687522043734829648947455169844892538208574890744870053064303037072980856943698130679496482713498019555587161741221870122285165967407473670250151358957530084386621973434129509326833261525510515190172907893693677964183445422047957796874901631850151550835648799925807700810387111111727368000588304629554363039867760238905672686507277569782063673697553326991798225231960485127794527514679031518643669777442844985402073163627203260907901384146141459475788762970946985082852707222833584336356364376294891844408724390167594347052075927081657615466227181289344777131970838730255800832173740501775823347250633298564408637560023837092163711101879800109654314895071379919142599845170159816169379105822695750389419473299814536065897127979028076495115039940756018809361206668790548738016989986665735663859309552348841312585754544666370708299725130145456004552844883463389066820795994553226953186246740103861297062432019228113981884867627256668398105930971775882694372532307105138498909044224846143433077679462007669891468487878484574721871852802879375191845116442950766078772061707380326676043978004868379686290049926724005779044684194760641646284589488621257331329385632927940621788583545968892202834304978524858583521034936626448604089479192432286284882197019698574510104884267318876820861793481621543047882210398327948444266815822042685986543212553190192614552102614731879860935191634355636247597087723111645281867285355801420202075112932454067087148370219557123794992333753715229999216143052023962795583629040076318657463721544558568366291913413289445883513293729412349302258694227245404643062213855473012022659706990420090753300671917147558911223458920042259789086810664530110776764672399618093979398133599109111547703033917050098316982072729963130947603579283993924507830089660937980766234753472909814236549950155539785221863475648551176982825657096535573158304967157637268109277193082640858468743528172999423629482219792985958586505138327231210931867271743170002656868501554610449979673409973459180902076355273188168869895348512361030814207592737501893699876101419316472901209810112901231050907296342180848869861988955008608315646173428524248051563095120579579484020767481557675323103078892595471628403299338322099677009003261137790175532167078381344694437548283048998697526412242289095451430141966698686063371143855744311621603604938605544911392236678283576743421836272329400962683132467268255347804930651835749760416443027822589457983375391268281309137787152633446371314659151466470560589192638606998390122362121900609726243934736098499995221279543142658841216181816012949544866530132708840645929699602207754148542306804774033570394908535669411671610750252183147195902147159672391507762095417189095177450361512315212368624238055815904318988009690520876323027328377361559776722156820728675071795954201976231982527804689772009193781282075573239105309530351523353440078941491598662012324774056192776457888659499122244362282672365632527733811698885443482587792979089055810856807605296759128679297711282342267501520506792630120280406257209948520773687580807193653067391421224798046327347264019717260199928348690605092300812002940617059634612682380888869133754499158193343032112316355751468155039560519656138861916477604884061004946372242554883259289318561257605279933637263609242608358587380380156771524139310765337595012414182934959416306690540906664246902615290126040824438430811401669896634731598893939357174982164903103228916273077834057418361407471267721166501162680432310095509314786135270384902248111523809597011342762074533190089664375152006029259750332188564807779620519614236063714854170986022034472606632105786888955422234253138327568523391445280164312641250698415645950465927089738629976113110889267048310934914695011105524447932959572550420892891313499681932089597783685931638339885850617487974593318682166728462334583349972445459093322816983815334958356761531761751808215024226434576562142890902961650952336579637475658035773839039996628635802053521230575601688595458094996463311017657066556701130493705830380576518027187476984661344263706747424228408507554699121719295472348805689362401417635928870123360082000083325663227766574889066217872001590960519379258427169514116930343587070374774260048657355856610928238547624538173977595114696109278722253776921071822089760775884339317279945177518197535078231723786538925302895311476121017544636740387662471841287403459364815099901541459520772648380159643031813155167549818921778755126631913133606335818584759609403163482817862897714638455323638019420914926847564460985854637066272735286971875789539410041679216600992010323557353908065701282610311952782069887454912400794063348585003298679356388223023417058160740024128497506995801599212408150409244016302653228098484690010325661320459799789818600030293877762045580643222503515620033878294693639656328105693835819023845602813567586019721814555863047429593803444110905820964529277148108539395937509982680832513814443725865653940406589644206737803919409841651575627929652374240364742454652590952364232364826198457873944712833268103599011683198520761714004441029862720537043839769130755282035833300149184720836397163484123043525036623746823170320386129162576157288911420996446094355530317965993968928532423874897766617290372530559625517136939775197733189674514791495577462357168995249070762423373356376710894590659587252821693177779935515321340911921461886536866512378178621955672618337266946073621453873121783682209731780958488943374206238340222041769090527710898475026931516974040526410507823597029611988468445270750771924129980581486043755851654155926665032551310355843036396288686199805731087671104775043378763418916528926267226323223119703559414361651119883266973785101635264268200638481467180515886650922153360364256981870553466357615939047137279540366444736907551478754195556631805667203302396182057714229920529597260060477182608370566298482079597836431250628457166397525518364159875965496822370693462590387728707865168940596671710481235667408507894365171480429765406022076285496482085226874022231900594228625335692881715475018308214152587801987032147284348928611351633338950827720720406606236838559339737734644034820245366985930924619022414353141924808781467486165112759433917126116819640004008636277799927336396508906769513888815513075880946239881242321991084847951015911419493797707556174186226906468288496986553429868025841035523822088464392909836282002065269718701874515289448498317405607983830811058919814961838598411199918226285986077256468238444243463702164540896897715139808706408015330514012242148960968961617184258612745005281901654053022806280365635488306939417273291075009342442706470802094149961905238877849969332004940170471541072785803467557413829513470958150521669135765554240068852204526467545540780982669443444228069422504960418025816682752063380385845361570573032349901877733560401094044103875376778209121778722300280621563315820090671638314923276225342073475130634726034181729119714655802837118868804661847808387084692565309616581214143760259221602472595246914643882152413602953143663301402962652925421663455888868982718363890892116935662523342862788605416501873853088316397469829770914159499537858365700490238242681379182076697637179281323398025111261494577068694905924562544620102320736560132665689662054161419691889187110423022080121779132801456909910762331070159018172615682578123409016123995526569064133954892970168462556024843640250053824386422936405392346387822195362978282680827028767049716460854739119640239991430993829466872989538551450723560578061204455098365234319007482235849713840206800667110079531075987562636729302789319591434577439928956283544159067442212150304780037619463941920444763262906954182839178133798901174239420482155330218674468158369278451210130931361603232221459440073238831977279470734001886391320350235866858671482352090800773612841286714452338246020756478888602163761939174582491614370623436036401354680294416985519584222575282206070153417908341057358791976093502984179964578004179819842342168635064312696002775128858993830010608554821212680156531759892029872915905323847602207935192586090815445705869245727695083258097388155622712533026641417698404868605325717207381665368983423701013457014191174165840685930428119573005433491453157268561609404223274536382167131494883676160063983950582464009427815227295219804307069102213798970939698701367889785095328200070975128875798948497094952206096142952178323346041769871935312071421816163145567392003215497339878222259007352054557976584518468101928714911198887730719769260991028786501064313183402800785252943558040618392085689224053892191142630394416592632644979641937515139193438610965765292668163921988131543087558219344708619052562835456764822233150727516345215151958567888796465780607142155631218095964185248108556400081428803168576624534714524745692575783927840949752866391522048156102983194512479369045874048329573659760216120936328733494242672146188885044844814315699565764840191787178739846849766530316544777572298917068849589314541192757553591329655737594918341045546235664032360184280569724279388394144479434215000166341919248181443530265140200225057963679946151380108435748823055348080538450998055603723001509196513304298543894772784951659594496884622303303386701470507201667280231896040064498879817546840717389950473621909294531378755068273011405752166446634074826184028591302895963699347045829702063245304944963683492556307888759148374895781626810330241310604024881894310880490264094208357727507861351691334979311490660456482613745246081374632538848919018412923794847256634959329456984518856361361662041359398179910817485406008682937283813701724086547229624391625074571447220391808826016112464787086901134861873672476449214477473013920681775778208582265031335556510217183106859665666659869727726423975488591390383633235731914666360035067433119292731825554072039090269668976413697404839432948609067813534312380301676328768071803098427671560054221547110521632511987721690447660079628402252213303666271107384149573605076728814549371794138376722300008165057103224992202512907368302061222584041801501147771910970672782573522636926599455813583087901198069656674200275793822326571233017906487638106010656482364768862161400910924251444256749953668809678459278062497212261239056080694465031932235456985718013167784350510940197685332541873757417126405925726570260215742688971572708194233257578458298822280655720167084635385431237501519476149190254854205946658140155741342108987813833968852032560755080554362215969423878204231909414835309135175971571967884502576598067775413938781289905516410269735981514971823521164414178938480333403133246456718163061509300163798789457338660276625007669586966602409720353249455327834514090003920506288865955094073196330653215228962149930555131601757117773151725762674189556298646590697309374185398342600027475574270330717284536369655470336689081651165948274120300915848564555397997895567570952406984548138163755049032742297053617750237239162403872654043227822595647368141230389412275626373845025399748393302918900947499759129642438944781644238576057429402335223757096161495302373571735559242601368149163656427225507103422453877748065629944423728984846354209158498704532171466295728527049992686332500000862616162038170411332909544450895874992609411903524376568118584026879300354165016083040652414638523351649013823266982629007630081212605566465318069706893418463370322132978379736299290520544272664893960925069445268562021650304677871793099123721551673923634598924921810253165683831705339886470128242014028749539781612465191466645279476017050499709260537273550062323352135947762654035445258997399845079530105928428748110880052762412956773108243472286468274175820352215687589664984721948339869181048255520321191562152711961239057609156594718109516092591923945262712330030746869982101993258318429313262316121560890538529228192524291663294750608180059399722797765628562852160058287848780061808859255798072259850981947385447850945653126085810156878304929414628978777980397418361458593779209043136766781384254200361593221262331788403193541681707775131420420664969023257880655742010492880686769619186152797932052553504277164161490462339401377908002344268030075725603200491727278235135925230799128344939830532041164424299182338425845398607027703398106144156168753835221610119958753299271360206079182801950340379049066637364547124755286928535603881716583381777599406745607223929070107859271150368854460106643574590112227394881793903018768385328552637860092062514051347032539944433018913924216105208180966164220438055214743340803414009192677823569821406596572230303773198962527053044735525127159217921912778002926682110261613927716406323368718132868208241115249528298443107870994108805611383302984390045541097672608784692189214348067035374706471459620212092797927713351295017100187166200074219179447883743520376039300417492436303414579085766572174722901171963813392460583958030389253289960280162807542307517199348844465786312623290986259917851252318034575119911805457126469840322155252730308725126361250591591303970767512715248748304396215793062350689083654872327155525144297283832550405587520788703960758790785414593250941478839732400722912933429298186719287127625514847580088332492225119067061527194459580436978307708263212833477480464136087957438742484325854506769199939812967975200212651133264145353827454531916716508918372216996032343554827051092624044822237875350426294139648239664529322284803473718366118983154074061629880365693440870729711010308776000308189634982901699371730018982319793743944158329336610681829884305815842748320257682698827122269995910650850047142854069403686942147574912241603698351222647450128062805433839225857103374726077081976360266288862248654909348150385913924762967467738874545464521449893154171627709293264166290245529213439868592124918734920662636148956361125499346191883503704421189319644460749344285801893035494735654822632670129501787717662631011780526348181969609833172150841147956684181067515987997362330581698816005095027116585944930431892085223868724876855881041180059327304765322982899492177352597873167800774143835070255794520111688115430051577580291652719529346742980138251539826256068730486891032517251169919492955686888475090248035634838276732112431260615433472696851946170384820457621065003850219627703423660029920936869669036949761715604396894347438520817376389817497275866762475694392967984548014415293325186106299577092897611676177314880615794439788116441877970821040468525326920483211097070803682894579148870042188591414738904124262732377633049677467628036885329689618162988410120762087380295000063533229028845060841437954514260113903254657583067570910982723032760206692997655605031670667173359487081959015821846212350860258444157728348722975341288523313910464925200880917501259370865338503854692311679561993540312074874958805198252920293871662503832241499953784200041497041452191060293853739478497174509631782449243197304494428035604100624355223098177171952181262879520010458491752851232996521199545131490490775849250064537936469428073079075199121869173801687291593425700874824713301215911210761092098763142559372993196292584398197098934609272602564983930603963867196288614622925309198630942083719716090381361922195770217066024939822072566319739562364960833924280534349609130304985537623445310697596153203336144609071245731019495104689299551326997594850362322259744813343153303782986122174261966416031857819612050911661150422484707394513438887045535634852597632147629709783349952057052623265161560420324291140949476439099916129665303517673635473667904520190437915274875556918368735066457207705502758234849320235014183778047917451481939694871082347352741532209961144879699494021918281236036923507218720651666941427249888834213866586527807591802742037116976049254945102783823680420947430652120376753083616724710080929635576611436844282745579029290587914614611509056642290891623070868299674784928268377658651436748958370115279188650542294254404505900221925775351378611239304262570653931081434415110536426363241458567599116210625984150508841167661951985767092524160587624082604524737170639192318498947895051865015160146477749998983761155135620078787167420538764203607945890526648469808427948222872341388806073218314276151260669095787045782473352089186845974053475654038525457783263027611741886389993165324477277652071264342589273061301793416397181872126137845761290049990598907622337033122387032965081365538657647273473426149033237759461145160881367164519634880487861499691065345293219012304162095227807826382626179912265374729150184550843388436733843141235622862586008599565751734888397176552290244783544539419131462408869718207066040453100592507990174259411971347727296583476401585686726931776974185273645888058434135758474907626135594437680141366212217619687920676951693035796287336513075912431039154490086581288222989612150261641771780000027802087058633304278301964244100832196063843265948763812960784047390051376447358807744582000710032335213883988951997055339454479870839872905464239971074895179746057395263899949504516005287984123334281053734730337630576811280824237776260189096018768674695174767730459821834910268616231492455309170316310298051799578358344539782568445987896962424783494045459357871256963756067531300029285364129375538441109191206120939567723504011896111061070111858596810498818710712894999298566395377989942820015615614616963602495230748050288146582791768386726311429481784823654408510671793465990588033675167022636253266973058555235540618988847472832807495854518038682869661322975787694026481173249149394387832694512858905891694169790689657015858305506400815427480603738028392660372838096461723884985032925800859035612161927956912002361465376747930861737324302613616811403329717089062992216040763530990527357805630298216248028345150833263965458163976334603058264904427245443016190147110356391261198853489402712480087624048480276142422269856817155892324939950976643558503710422363640724012318630692954466354998357887484318904027837033849425660023572735531844881905523758779361542368900465583272417504933283672120427044870721079158479890370670611535738086223228386821710711689265148119910749163463037944589791497054116025728785760039611487392489428837834470696826842672925690219153328680727192930393448216749386374582745902368174183909112349639859534559822619285505560655374444125128200505490702722313555277587580584475550086356578520896567810343413747085996023459875431127202148850660375692961612953456109029832859447573978892075815640811423991329236292325750305298582320140338807181870540942939913586392269322170226271497260125153994453931982888784781634544315333986176837548711017013950868021106368032637468214507242836629407669534110452193876765180484715347989875559810491930271285678156961589644977613199096961990037602730580282071035039496188697702372807660391327909296528339202658248449629821719443615317082845255371927899649411771754458618731545397199591326200194805299854366166019384484106184706667047947970126426108187037216630045295911277274013574982309772450426656273142979547232421764812115911615290042498277521931577183756588157438867961224969222854737709701465359228138406360368000071939593124419689647385069799577857174259389781412622840733713764715462164619431253916922540825602908245535640204696913536288180179172060665935207129416777595201291386170819151263177220563755308994482948330138464921874177143647252030690040238546103282366085921967663542605037148399448628066053633117326755081292842093155991415689258843061571755457012218793828674466377478271270950215187651733365238489086590342597722575391768946377597710083473769544819544162889126528892113252927544248483946412271150806587121820405615866346363998624208460985707934852961565151225417686006921376248241020158807850378917507342360668139451073415028813808963417414185434467916191455640105003623294210561873469315020831112097642075624518844572672906793891900932343184536313191484765888073399939469939203346299990270329599205537848151940530641123292957341251445032639409646376761633274738325879130748028607852703045976215556722510100845726825271578768102839146531596183315194882181916805458517749609312418536461100275721498191429582637866080793981949381693036191052663295321910765601254535196048272243893021181829835726786319370129464615199488569841853827491576787565522965089822661194360755471467318908504513716473056711380344628800507299559049789509079834180146200748990380861569643698141803222268567054206794257831190653439239103914830330867402421112908258957209802780550148538792022698227408534609481928730441026867479498317513977198245588486118521277089419956945421978954021437919465112908154267949752585578162560806835236051637796624709483370260038036323776883696727796982766054438162994001268712998625692242623817336375197891728644876970184165873436189215120513541311795010060548700626955616155722535653383180169295168601282029609746746937995798260900074622217565743019077883359482303270993957740288301431376778755643561924695289136734583853933966391009067775597471152343060639001014864061669404755974862996678225087892631771185664264295288930245770347490350213189444862223133192768601829470258128088556991081066293685104780795557288733981097730209068703342603266273106848090013680660010621222305901033522246698034275143195483764515158160387490050601299893967057760445614202994690105438215124344383065361711393264162220051274009513616336783084272780921778188824100882479082946294433639324992080811965109739088017826171722096503520439228709393470422246751835140835168897190882733398893299643713287446971178025101617444617421344559972180515713150289007792948351485420796525062560244524744962024556516613603658794966953536852603458831517354316833120874816081809534881523030887110914303547342939819367448543007632917212159630005290257946391733840088212207320983476892918665426960653117371320175105653247762383183281936846660250021541526398766987375432784940412618057015718632116874082451704154008278996289158614019865906065069415417547355324685186069700465758072566801537619998199622807812520405222186581407915332752802681041900444467048228194891405497842546076521887004868171715411771452217419563410658867916834482692424404710486803740943046586836739577365990096682485859919273873262415889729394519660056999272053286032419348327062823465430496738603942035236355779751433725507675968280689868962911749007156905263758466415575075253140473423027061688173741894260381783836975546062656726145839885522647180028478578914509537534457003773193202806603271697402138346831120176264433032079001680548157067089787451121119229504969953770482162880259834110213461449658412880015182773682376148821646956748089584768906335598392329698055570991166856064297805639641939091926041726979347532558499209869561702618937517124107743033211797005100256423893537987071496735712985242258001177244599119878474696255808603475403200596227522199338750817201035447223528476965184228697630065989501593109465132206736296063749001553154348190939916002160769705364239337160055682423607879215997831174886208125611809341314350480568006580329269761602712067942417313239526247280305382173157841871799502402609532972077729024822764472982517954874697115807271359596276266413879148875757316800209470422517389412458363683228657629375403420294983037879865135164291363930018626693726277361665989794370464957473523383950018798310404462241021745274013933593356474700211241787202673480205943020736139674763623353433742426913628732710288762329471497373534804488151730000545380127555396324213763746249218406340272555357277461176912359459679319521361546048353862999253678367196766971309161757660541131060461328478201567716983114175168850588040220757043225499857223926403181521276145534227097850611726938166180641530738525312619358604176534363962303997424020109878530873848973015557786490236482194886442646866385815570341518568257332023293377580102223498620039671548944105777221348166764857747233133968229183842558961953179458234057734807021946797088678085595949220426212723971095141137805614175540322670063338286997757670835346969394788429427959417119841305069957111602492987025896472626132932131107517733570748018881722966441541920959805932362102969879979927000087802875647722931653086154060976668326289005769340713243292462033574425947589234534330938460798412725031177005374625535700719278115078805794157373441608385195905852510587715437515173398770358344831694234959496285407740434471962965566409812048114697031551722114176137952480718765831067743944561943305200847819474054917113747738853890615567427429870787687154088039751601560193324431227849107917735768230775625367649551745989379256099364616361386177503195803818665204362119137174659444541573551912003998725630112630643505173400121969985888829301591521930731823170272752564638694505449661850020368755678274977309386243356647431609500495886018644775096197652714114975010350056814375420507509764611337191073436638561638644533061848313797626343986001456693695641630204340544531696281724175340638239320340336213292695716078298628915814584277337126544009973270404851230713005476686312701590750290028716240833903570933920109143379375839408095329472033633192935858850228678306852581768236793039432810049496809522687913185417798342411961754914881375329702098079863556647375192286736118305896058567942738451175397801870992740449044043845502392817062973576918442203809516731477792146181315796750170068577388074752988179418948990269842513400146597610764643711049027246417915319922741616230566327394980479797402545673622640821260115929296365996027942982317441383996588054336800130958725260326092659361653501250564080254938631137168100357178895266026027821163327952198988023684244049442879632003419701209650035510424274655348947962353552456029231108685920197607188840256143960377213213854858244491076874745119359035317512620453700131244015583716142157471848672460289425828390945661492836428714962739043614142235043863514515524571818976496655037882130981456357118499369726850267908719645173123002649215577804574655736726821663141141081925230646857104122480708764949747013527515679984838194039067408779249523502452600845128858968871994480068201335701804913128497359870927881692152824069413015505662026892165246030445680708013832914481504869717631414856697526355016660315912227980356265815575015515344914916615965945004072497076313224235155947476114683960464002543633960210297698294650149318696880860336868497557594103844908333405763977874640927369529341507504872794915289419591662181207515897617698171675557884288192966813280862508078965112920663541057351909525215151192595527112676097650070674209254797804522886395111707835730561627159793392613314791974640217366562893818527121513047134609965189465450839797282538987159266493252420943451013327317031360047862051208499954517863894904918444808774969230455302943755997694044517496313720817349831420620326985725402130603867620774458667678388973036648565154280742780755414064809301605283331753012346783446456059660622920006416946214070673064982363224117921253346160952695102150955289721789252365534044141566268984102018942559569272837315640986206779437386055758267316492970064616545851034372434094181654160786346274003908762227682382377617454281558203479060206955256759618598093728788977632373226199614650115202082375686141303734508565325422110818951410292794083397344939104239122556469329168262575525087482083619929931365344265794270691316148682506717329331621533835745261947967866766625756577424594584519844706322845521654212454257000798669211095315432126938728471422216722015213648716157225080753075906497401085810949684109975737297126431615700240029890485350720360734561304015507100359379201477968224869383925330404807509153015813842399348159167094707895069439106925300454630442769712886940937725575224278169265522400311544550992929364787704408013428504362390473922576805895183448851399269573915346954616066009889451760097800566772986767120400053312700572105341617759098330236030279683810868264171835525799715022182317588121092849423917360283771016668269976475859319526752845417947473823935371159318509967510260743181988126376502095928987634071292632096349590293914185872674185403582577973003112250137856876484240183967999687597433133390233756427134665086586524113366729212517161105442407529627484369401614372237726199616160543322210198002761125414063053658690686012929171467577333911746719640360783539437796924829262451158645316380487214139395035907281881580423526833514441010986392742987711987896462801831440139564695710819405683340003535454577674744852202137480031614857678885053567878680519043654496014154857598688895001986285971931147816602768154674937078904978001912812732742104165502462565337536741064267370553292777924909935423087278303498032304349740954751909091904629120425209038721370906518835000138239191020935568474866359075043007843735514133423844342503007590713668650258936392581575384333896471566920576090585965278987102478050348078483673602160008677447452163911469847091232321715172112763721266343902244607632978031890195086287507873997082820827428559633282599906715272300547511958250577021427600763171175209070971045751703625969168810225017371679560522372135623721537387221862337803376450164428890504438119062791052663812986485094032538966132482754980241472035462953341719612658460964433749377943382796067235638674032552104562951009731917709589383570804085522678491657766167350601173337509057319096743134950534574221068481358269451345917247409587817879640272607158951965193795278995336999808498778979524619112014559225966956862266169610219846596251324122538215182735568523342596641655924045880393760471136918999814122408727381222189067032348298218483498024239781769588495419700304785242040276020693013326756313169893486942252705217942089636188657795651486354160949191832113795935677614220026497065944562427166774742010602826828463284311849559594838525996500989722721417952733009649037525180723589529434035611122259657866400081367393374169314364453276634821173046658362231286033061495240700644725063431929370279114617924715670276869803545518116321114011824836768286977155149403850180433195819835307614160275180001456744321439520974264766069783414403893736961859992422943839398010620496888782163563328279711911794793037587401660531752249934559915760688192215777377023911479956217541378200516023056326038943849595278193271633792771118014070754470312876732660005850875117297293833540966025030252057247351903744736296653459099869746194921328741650813167678241185614133594707707949569313535057544333039006683585358955717905705835202505501726296051249125699234651470463225838128204455861893258066577740081499041359016785054734517275740671898387965837286217284476251580193527651056266419602231327623535211401461450602962715173341395076868590417683995874860072309151375655895435287189911342501202221517375790504401104914101853895493449460163606745288959741714399787835040073884937600348141417475557284253490953607821403059103372456007412272169571474870296951694833505695221015572745479240655242440662217761447834966196968617918145439358967533462366666181894649994531533228028430994048323015477891758234819938867101024410200763637219981672021891800574662604004427895977307892021337443443350876899611244534132030892214331031553751516312186855208051594659341007182964637754572105226005636059304048590247299068011628379165060676870536452134395973824799130370958421542207869146600344746509619167405393291924149262443925257438848723177508304826042891296296590104883135965896410501595817077589118869305976755940957289637701303598424341875724731222694881726754188352255268147638235715908098198274325668599209192402004353233745214247443013269024211425395371101951761118547618129648369340869241746311737053045667999949631393100339618089212851995944674959193820229704087240920282758946265164266088398098184709217582585956134932209035738506125148417206413388981040871040194438282496199858462109799367648700771948142938427265295195176446532723919184757200577406415171398059185363613481109834812278995412855783832322857799865436245305446592681097102618197635418918321481475240773742277381035711805973565245731723740101255180487205346506517170329337363860751422582158487500430463035907823535834060498571250356598265339517701352554866546631343640819901656485028094566636044119390468028329976331144879142474633475336770361392425233346590892441743705184782314028386074105937759938602286720968923502658258352769443041867070679137335733035221954729205814156214049373549015328035650064116747698476001894224270670336197969788966251331853982929310496849737588962029551969139173812104168668379337149474402999565703543467928999498249595239558454625828519102840838123434538600132790883558583056315696355424677946329789050863421315870452676796242710194831563080162843345593139292170712865745632229707559219174967014953551144696205634372922460307034746533558121737702389472065827750172136848988043558333854448722214884559093508072981917542068183573754086594140717513441124150180336450913327146499937718337231821052851883990946024067417224190997238595220345819852372124740144228434718407056107741497742978165673986088877808783349623366303224600827977699814619058177554693711365121865188792645574793524520089675400885553432147072114932551935109771351236665525360353402849971703247196082333764347913883515042029705548461804368294489272124697371202158435440728691077920338490228320108311398365807592905175625128594520307105508210000653882286380427736950772264331150495965230759608270794702472348775774490559436629335775872819478686568012411539333348118165758144472701268975916254477111424784744416389530214477920389102952609583646167608480496234809250852331465902334370168831007719867388629625472066208316395060245740045041096148335197951549670029894808295538709854660128871903231635805998437354641738342994504992258768132665050488917369750717609791840701444099463890038842125181231761651796708864600300767609322145842370239079312866526751181765235835507273867552227903196079580214010730126207985282228093057867007048637130708850052636512528675210706297232632810970426331385350372906831948982235685317037804243039809543087723950978177668686704139448162609491133769765262863769703813621668642618128468745356065513496127118374733646259250006676685928741752600248469602663241295956054467932213675590275340710230664434945092340672930248731836446162728019916550789774154263806051580442158725204912537351531599273685140903047533374665099468063774856144567622735687358588335743863573063779085793164471567714292761334120843329249545334657085257237872177077794412834655321681637410338910769143107684480772322641536955567208990753183992047474472838022649258056198034282549810954029353794014005930492523916094259047460766584118573744024873093693178892025164497772221347910852537972145807587494774727382840530793119026652102902849618698617787490613701348353696009186306458597969776728786615713973432627806401537862466828353518956753370888721217751361160651326484841022877903228957337379241595476331662371840021159546084881425928321001349321208984901386091999317719669211033223501770641286229325577916027004406156494599242973681703768197142450597230679779235415215909501274457184690391220660282651980494642026585668738279550223257293037941184818119235942296465451271706709648177745479504986428528102654012816477229941017795497805858853354728149665431652732957766139520840337248256166464003534003054323465666596981675868677146101821173597638296554457277298050000787685384525109447912503896266171535555953062302818391050181168623362598276259671437173388004368779583571436620786713944543060638852828218850331467891198498767740229536061608895547723245951848906978643679619922986389113130894216609351476516102213327720352462527199125220687417411326792878256143406592359967101418788817017986142927575836733788408596070702240064872477645448028078427781251410639145717507522723595164824149817509138304054412737815011426020912261458651276376720687065276175786604584530245303420385991450825367356484159996083293233227436305922961979764877188946173869875157237335294911226641868738720762908199076110024578622162849334275132672221454112910040941343295319905279125423741706253506490468187865281216825751899608253268616576116602428282149494906801840343511314501403727083182346096343830969516414732783411820261443697313652441523000283280922129801624709863598125765077253945665824370371789230716807112518645696693871869372784352593645631047886025878560840167517844034332691142081290313553863225779835104537962882629859514392518646681499391449830174813833933446146150097793284305155767003647236734228646440652495992214698953495441708130147345762012442395435868673133660435375114204093625432393000529692643154102843096415883335176791431362270561143293694181567493153582464246853229549942346218236005910027530354121220636622001860325650235774454315960372462222478521671410986679759283526136999221896836129640806566866583726498022482511827860519485852399308577816953788905297819540039723181816028601104809805067259205773620093709404822486337091538226705612364433852278811582151432274077491518163131401382794299115713080735358327677701313211175633723816638775799754571492933620265097892532282345000096092617969917108554383177059149466135693114595554853339771456833542048748739743690814397341884943238476060829305602927921569376899317739895057949291758846964930141495770960812060448430315338949880138670318163866036381251221246568623284908752964582413762442380470237467099520701256770192570561237986660003470912007261512636940796351143489685993971542583433732125095381217970799910453747041887569930476350282104564941586450967993676365345632392726680704800010591182406843315728223011505689365671801099275693666498062730063854255424986481786891133116307102074717327259811525868418127746383359037375011944528746027844690615548170816014994552545744370671760888152582157792838705431506629237751598191534122482863120535860174109585776144339771647913829676348071606309759719993982798402479654244431513119326028515079702542944732939731094850851838571984355047726460740926554614919471314392447722986643174016337586147745041613736015858801857456597868307121714645478438258755460509214355583991223952084136608993535767905770635142429743004581454274634407946711316042581128237831652864974537827475491920142317460971281031771169114114373224615542945895821722583032729188722719276096453559200143640237329686278829126355013274499566144338269751391852099321806524564218913514319100288176713584603422215818246859883259483992309299138982376371688305882031060257239848398647878739312267447081881142907511611090615853794063782761847037580157510531123306897288051277113818543207842461873143377408664617255274383482118065126134363657196440392708082827299691478891489137117254308847720640836144346813654633349313640984278249321158883885333139659409587647527773118980397082664718830997296890768333234676346324529115447992976289594360784763254602095554053269272083530238236088482355964380928562817810539143744110793440233996776584267144647990314521954272936674036361137528399109433444809682718486261453497204415735463840762325167581710523661965197879694867527441647419666784944629935106689050089859234888556395737989624028297012779155341435168960269559289264034916311406559694092496211939381654378432611373213138413563726634214289406008019101197291371336247219258678876665966431705218562536167833175966141339410806031502591537810605562586050696315256448299434210725834178173085186240001328625734564446847653445828745342632867997706084948131994997183579965627273707248654382687049714764496796655676013596304768667564704269821324047386102730623313306952880043106281257737753866239127808601024850768335724171445450208698293496716068295659624320857277464900847265427823568101141247856198780635134441101026401101511509161707582762331608259623536834911206476612873266538972453530213537789907490469795664507894334367372427550759367213099876132614463480768780505387413250910137622669845259192900894624741201467989853897468994998298154389082083817155954732515754800470008217632831856877670959055335907641501872612419057373424493487960827839212796251686966329356614739212071344147734012701559546715534431177059075515935542359215930908007140030243212742299483283119284378349352318979375124057135800218703772374492100182833625201328584257271991763024489819133784579786915420882946363033325949951762243572360868107554820965294846922126720085896108311921761469261293070837464988200895483302222397828441936167413289349607732695349829372001750453303658497951711849544748621387866643384446209597481759323487073702600505895262028584033161967768054265640024114625697951591129826852497166853554181753390409235553404011379664458885250759608053970269666838887570527058179238510172214044844834385405799042881420409175072370649136071039142828924434505818128533940415371809148610822634198090862776099804896243485026491180126765663904836373952178105646783711179993965743871285872534051853663053704957466056488949683285588134817392977500815006941170114744328058041417448821253222606919285312158244723368210815821508374150353691741447623084083850298491577292558500421401232985879366476249558541445443634170197215014429133709140093252791242156326570888676027665492415346071977844838825036704929083997221181122311299788636173145547489855045948327418036639918348455836031684816986145771188947444268059696056308289766274007843991744168879715939941470733328553912655684712237006034264369801912972620856195206602129420334044892540802619634727363490203548174310798385126260078490368772122417013110738948823464331371033561195943280682567081744502972518480378310259185063941046511763829095387155799346319455916997937434778698687658002990552008178108815366947565906018952186859655126600757053056953733004043520149048885986400405924691289502826983999989637425832495050700489290110829655976288416351446153961278864090326249229426681744940942256251861936984562413576522211552021001722748840099986580431617456169944745470196758849693725006305810162237761338903095513549245497689866290350530481737400146310008899806374903790807878314507007369416367842784072440516736376098960513968444926791315533595733417197204679502357234557865518264491755829856021243365523724401578336667687555487905597632912943047733899660530278406901810322245074072736602041324630230993915698593641792639032944900155577396674178456827319976748477341143995206670697509581646128620821363276708032774084402887963809221189798971168314552243083915100004079575970973988961937064845275268144496300774725831513825846349928524107747558866600762187950798467302964020639644676367667079842754250737307844438976846272633899168058330763087001111761298872990723361287368703483741166365974584086882710173837407776653613704921095991805036303720367513311962768392061263821407740235243686760204506205930011385033429368262258509186302828731584108328279393279435903185401114111611622023657570322615387942171979282148435879729106825225895664445078361864329461807348838277261123293183390951926195841946108935964006650306510064685145753717116210786633570538960390937516151176781680411142826254042108576409465335687442119955002930287287331105768000590530730201268472169625096812972695099897142860030672944291205995463764515814572465856525993292767712323822522842133245892801008255973866173883095373425487341876007226043498771870358223809247551167090497120164268493665776554332390174754195881321672256686446618765339771499829379688548097931312800670873191253135749607840913498530931862686392520376859801286564631004812370276049985804422936174968735390962542021237622579579674325663385218251485633795497095302188567008429409587161138194504011998261051698978830109784463247648582336700080731810347225687018196856824207252584294027893509617691795254059465909518931345464034632339110764430114191419375487915731262970755109780238418810229522741632146255314157121900661463025644722647749159436115239598142219232944745531726334148971791422525357904836370720758993148308147517516779027638450064826181287428199057903741449552427146704795021448707269465065717252593480020110417595084458254316585853491725646744050719332881098480601967097441987161624132672621686076603569259165366567609582480262505499748415699884852422429624291336500210613005857222893526457755020160285495372604451519356555339883696186680038890773542324572724511540316239380781293105988792778549779976445247569674558100471637082408153150249738392964306904533118386353166568276547063208220146534564571534343513670681003738876267862706228004638122769537382033879195388778156066522595217055434227386563413071564459649969875171718790318329671280851758964362229132576940714239518118167137408830751426630634204460887712543084429129860958876436220724970068930768056023215819594870761218926451328997170611877909528579598060511112329690232070656786052579714415272262742553992274141766932472580014885515816319939386023121226170162702319083685134397199494225800798162196711293444910350632013802893915273973530567915209236117507554282328574388774383602581440856795858853030263631645383965290276667958969620584364865327684360304306564742124142838509711649110363119270955390194744995418585548101285336650275763218888808750054682907924610162773537003156542199290290240003091160688662368009050660557047056949023466233206023717124747491441543705537663126822849639710798738605161605771886781895230349140497720201091650510757084169358456502796183632989050269532938666296934009407327908352428326560304636608334946274546725163544160274532377630046052757573429450214927118155724147531138589298456701279970863597228849390742243451423086949702919247636370211419774467301271533337561644145138561238824157330790093890729417006822436813163131832449789429323911637261788961130052012122629332188307171284099639490118107358279626132759400706292292902028172260637803253048367715692872764548575850874263009955069286111703856063245327725863528404169963774616272367379432483025763982759895172218810064237303196947216756575328458160147890655959352203545692487429004503807550272718556067513880711950854929010518540995756386916792235129605537433286252994266141856979516284600017311043203224719132311595618222651818620340276551140099993763754636325305858716273294743912467483643033209396298956047336284101800193144960904579774217461970343418344067116386315004569745386221490345262143292198685942085608786145323139907153574463642978704756076541703994774201623886047648349705480855646621063835480584894116149786814316333853559427761640382097514045461010971650546151526065284975865398802363598963526185675831581733483382319314141737919338637764722815753366333755350398249320344672851538932729959314796427047937587555592585945350133193373280612909594358860896193515860309932750541623400774574673584856619498294434990480564972875096729817704168605494617274901723167547914811686052673631473719104961304968797856076706570952155877584271865281069012116039657200865521117979904368204295953749799256622673388538388222967539639204283206918067576976326623083821372071707533827433418443153904227152106785383131500277288723117767924482196659462146818197779846033780711993675041650329403071431581923118105497753360641120308328601860422121634066351267828183311136641872438526388700876454563605635595191812992140813114581205635509847947085875042135652364319372831939885094031802883344898370083573158102170759537464767261451432513518901811278393864363952205140699513003215519739951699634667821704646982213764531183837355419165073985154319921296855203287314764154988520717856654483106833970629955839993147677125775896363456060678693316101952151494779259784302085699322213344042915518380591794270141879608073661860634182367145381001545325800739484974427025659941591558860944182028507978600684114976169649633952420318954701224147533512716970239089900993280943060754076364432748819212689928324033539130774052989893427648824594527044802538744335565577767354833752788276387684306333400093002178504112208778892452217425942398800776971828801512995559388485232366219642226788647804535409011747843533753046252798709790532264947842115875834871302088947397430085215052049758670837044968962393909101513679606119857511398583826062480246598506830256936067219435738396777228645194856023890565844090597766110706114578282662299787360549339712022944803803876157641406717979491895052912978443998302706845555043658470342164509027131560590844392827692324168321015942058532110928369951092404105954258360095935108520603376556206731447687072130357554320137435329682800525352964864519434311544710224601168320121411825939092266201037119385036147274133401675898130188116108581752552016116136759911881963343149000367661378637738346419277415421178555796690488009132112185083952898913232635273740556650336295829051274480662159022644535111974341426060705454502256374486648755888473988599045241892876400466756844944277756875586239429820538099633679182158775030838125836860137894695398379022684189248895629089614707764014766513159645484202841674505780783981236196071072632846195881238006469545196702057051258460595850293036951614200000387424308249770986702891862456789447689937253254360592955793509886901883238509298863307819067732738058371490559773467498342235495674166835315307875491941684687129064754992391501121333618840466976553813293609395074438927569965229399439000580940377735006788113670635029703306885841795042478055535499631719019348430094891482192359083743947889254780554825151128352922785473345739854858711438731973840322959096253383451081048150686279978942324163488267008118085719669274550144810387830887069815375448040238091963644884815376644656458236721880456079650329533730054799810019425389161418210219072792710404367990183572201077532931790825460399268367350889094528579072773654520616984504971667893191588156807459434204392706654203543125886472955928014609270840717697788919432523333223273443683224140280688676766105579339343340213514330495033589749105824356699551370369849671306583691671692655785433714933071007032500250686602394344253701131651282059659851424784188899230326126581134629349778515885477854176730503454512100253919279456989347287976963750643009925800522244664413644665499980404113947005721765863551404282986983430960717393206976896402171395456619527803038441808851384266449433144289787617690690936264588019740980143410094670566551979270039139991915649708664728433063794716535709969556968630284964715465184503663123524766025540182619476724039935178433356529939225676162098688200808533125813622444983643236731866561005339875975359994217071449749244371213569505493960028108195318704194226974814699901309338981623711027655961545486061687412072302131033409726000298862738090539313222510315720011488431747778292083863823907558536098591574336665656633799287506595086682553250993007429066019554814936092464868990340885371696527546555741785921221729827062017070938119445422860806347495878254459437503402561184018745045176927792255746723403234110139270261517227576234219048485762860409152072088067220995510810058188828490951356536632167309032931003473901056587303725198547848476977921861492315880739020475385550386398922253937293892722546192258227530308248630930165222491019693117204415772372499489480412577515465695723330525709262984056418194952265123938799832856606598399930098198064579683719166804182363789679334144587573600283438235354394229719635594964185791984470367063768881370881947893249837381519693608325664973345616480643031964053258044799153077967499104165337175115161415286521436501696220441685981154238965611718623748875175165489977894955178099070305182483213666613315544156088172433748724293280328876041472934806872917778373541356515563412954382613115749120621372905650660367241568463044741129256012301058538572795677841437843941811936322274026687720580640933700229235336975290720572167141410399712099198654444174711850708066000394743813239283148590440647893690469955790393731480994771306491448861713791562274770185399404451182837575081211188699063202572130730804687759642301430539895436837650778911561170091616062042780093726749146611611565283522993281791192041982638899325976115674056105678676819658984175776354232377365739166668717180828172627793257391033248229185909380804085803347912634914394687626902655172577721148637472345786485789658625689234357589630119636867277220278646363268132634321368171905623493191273350588757141358311751331050822187146238385888435834051215810565740711205929303833821809367356327273044815390802421463381903102457393268740195932922682546741060042374034168917429578802145965805555708237817883034347709390086030381122226772799727924855174331011101679268650635652177253395205946016380171810994454101449856758793993053176077764937550711143979898739150870845083571417183837012241826373342566851043413191490235663984071448404304177696392548084304283608726196507703997272887408632542663030126493424077991744648784556191460347699406844397921203941576228173943749738457044858614093199774317601569530542275255971190841424603822124409881779410578820438541423061699953542329367764552882313791357351468589639176676764821936096574281428789902037109946371880982146477350795800129787394890189226330163061159780097830418069732425365434746824752381740200244975980577595239565026488517829195266504467374151699177509212233812641702585400222075053126242525043183316802090300714227551369634579829331648260276809851952913406689652747313172487967794933507957792588287217228264288622437843843280712913940827340546436872773995788187533396162315525309578814690326915957667725427027758913423314879367278236830758330585154903711495844511311817965484483928784573556010927875471470713973547766707807860284839770609921494865752750796967896006452460462626934189797959492022048516833513030554637565611129579332786008126934529326939713390438883975078153006129092625653493679498844608636782769617146919927326812816479713343562327805843544830086175256830611375671188111905619033363170300454955031277979021641676678741562659994320493129443392611302224189787324910617377533928771543311351674745540682964476597330277641682755344057806422169893788830791650889449922026475753478166276367303103012766792325361462859806194298994750687209105002539245487218214037317643686049452112876843377668932000535635889917975366946581798184614013522325471443858643843163499793616276162281855425169008961859671843096941028887728674620620640613323456111109539952982516647999799649839010388297557943086586358002469934932397458690412376393736894348961966390915325144466842623318234563648931014659449912531948889996353069474380974468036234018942773912237361348724822972880092635044707207999001561772136602790648327332669445144139901922662662876907355994366693244098118144209565018419596163626203153525519807610107182705597492188178239717249844008527569377855965225874978947837308502469787593024104431821493129955689254392990741970710711715836905608788681474178423120800149084414568139391005085286428048186597958065669844400867909520525468551074001099685826409204122920952329350385509607146498716023449613844637964932824243704624714712322164397258567292159961619236059204680503400327289728738121449178006343634109647667089248550236204167722270663516524184621949006883633753570101010621529913697233697666495439534649858398950523147192124710387103737624979142029711245185593672470723645582670762371488706843205450238335069502790292769578521005513474122286830205647295149873200741672915855452663263546794945845816222001345930389574929465694856345105892985346355604679922852893065488426230111784102365369663445646196086527607695285431935118406122263583215474991217197716469692635456758705905887892643669421164375700110705000169533058169808961793297796570930678266111575301181266544144362813387618943870099446852072119493442252755568467350178825443285619001108401051093783360042310758446156931449738049170438495270271211333842840300034490953515205298819110495878675006447644052305309303216218653515193767707989025273148920049992027838250811071668643839467938105535920086456195193574566012866496872285545673229396561499370942147345897437722812002967287443046250706062574495697745930348781413716678381962930669200469937751907633039193944068393802746120642534675995727355308761672566660112285818211012147746756398233547254921988230846291658212164955570458907275509560954400337371735435091072278683801872220874182158268512022434905638691150309002096054152739027049679437873598857822033052091622911396537387526741789373619735614995941693025008200548533780561957919535227491642653982235744088226284354104627653828063907266018970018146662521515453920526989687505628618304568456270419810734361805833888304197236211100685052476666389046836804793968463613622840959384099772083821588245488898624699519374695887715221018487820818705910056408744786604653987924466715547104518162883155700094111410574220995324798538902323811922436891934194649162076910566009108620109001459905939476120563170414487502313151858231541992460445756578151109510674205261510297313798605918192626490215959569494303360116043727590725005526524135423592079702709667602060597905542489335287698382509017790149881091258339055804776716272436771382164298340913065351861594153576591834550522195074891430136619194211612373664194934263516024723244445090930377961260379554043352680825907592722566597363994161042525872975608893586501278416300992680080511011504866123936955107552417564027529587186727809021299927153506268249905477919143513197533854443892692903635305386053151499487425532815704072541663294309706786459952450092178802635094453848753784359734484646910379161838497352536950948441540272570584345493321252205750711568008823485388285075500602188347041489398077603635618391559993021565211608820139101005696091834168046863946805641635443977984859059960081760743381245769219084568561595848482610388502401993857609677217084886786635046095920544122382773306661301529728987314256566458851693689091642829815973857183987349212711682726960193597596765220458011253895536013605168751871641871840063029322169256492079992448499536367355063431395012270406915848171784083985518309370166716787740680426516478901740756357223715874985307872227017775392461376317802078161008662812547486191358936366965248654127824938401534969695223984336305467564633602437556095485765845339844344242748462242422274138206653663290620176035773335758420473156906389403616188985480294298129744341103742546083300258031174387234424207399400393311905556096710648665849045881199764618250360525156640705844549454430292939634285960113967342174115797783204905602141913373475815233409866814159605405457099438991207450856750305717595173256861294918132582363305917127675938197811124435508129837360981779994835393884226175587404652414579608919797929934561187484845248759453025668421359006999641858419189747876759905926932835609644140058239259874739850854465548157153975165228588462030657850720684402087159777762803964552999469601979428167635761489801511371333260682391115330035943268176223269768260409600211876633621939458005286204172665965106741769351854339883897112914506471736608154562888655692577985607367056682957432424197833081483340886658601915070664834879716904489264793491583543609706523815836351380599477033462523933863050032845205654463762399407370678386998274448598652822469553490120583086601159168656600586480081779405445147361612328651413202943962361819969831840855518722015177524404471794321857171989356311144963498176046857188396292246957327776803010672552440326210230696365526603630113952243378606778483229222622904756155201405689011598354415444191008724720482299231496088162159716153585693740732215083295154323677415413421276399367139264882517263024050359536618638577039821678720927933965264505963968886073545690269879219502194374763514835896375659244670437185076107666170885694085536625548240838273968312265607693884645149048248407713718621018578374045811860219346866304225370518940354317891935372655199727810000152411648440537620980830834818442700695873663698563605861754764759457247884815632888552332104733786220516026764521761826938459140597831355109577327038945677562546877290470131664618304429197410606991151826237364574527198583580687228521982430758840045683746872586475419978705705276422170794140410517649968323133478949259791586363294977962776251300347527261216674999454381517140220156930839169240248584461143000011156859633731665256123404761089622961734257400809058998151852550678568465478423964207369861720546862636333707497918479644347445487676333568762393695704864153436632586708614605032628775466206591033919032046909015240085651617342407797697126095723615862622419905670610930969482050123255783463986404037888627430011346335672494667486209485428410364197521708708946756965196361447631483735411507629458729155066557560097150682306528437300974965409683524840208089534330168496419477576207645010920222824893935912164825665391238892996658235986000555010601291703205266169557013272649987650862610419615879674889547268657419003421504587560266988719479360944602929597410108579944175885397633207752875681446227910796772649370501989271779988519502616538576348294307973852307859115078229155987230174599191038324846935892357680061196516065304033987285550580557685146306496926208449000204284206661619790751902686365842585448874614892277665864523210173673278331420604140390752670312331416954317946948634543470287691489294461634041356112675112646239614935715422549251400921316999365750273395062563695897457791857008751620289152010923722790785793473403660983658002148835247654764781643680527491540938930826192613016425463745897514371452241868142997358387409390933561732756300301069642782377603359031509055597667083293199785691494835140785954768388112076214171266702041912532855615544889229483339749005425859053098404204457786125117159098072464274983237788223552817876106267947307626323756420636915499301077436798700679190593042151585740945817338236646468422519422081038126276335446086073460749935912818198451414915750874040023224507534244119837658379045250029730924156982508327809487454167026695996699414376642763413785999019116757494261320807157393588798639564971450384559381310183854488242465535551719437662390418988960503261679650695438955754150155873198191681262808325599673337194144950636006325756553250348021457793340376112225437635493104452391538444509812716166157305375850397368348104646603573435995303644842826347930166203067200580624729088840932005098915713893821009417742032125637256364343121015331266061033602674681613900666762620619044941204158755057270129638618107611659748101875201516503211481650449068281975587366683870260797852472216200342621188907267943727711858963223015930554482433238892550163773678698656805755643409851076651311422762757419872219621272781595653318580424047615102814111055035637986705341777160512596186653332686679257317915617657746485380022016020562491652624336808407486582746498692054901429069381240619884996660561388108320991737942442008783208916807149784031796271901853261726812961326379469995811566156023016815781115700254422643730213676466468898826588896786424733651247750347397575066733919684359667121155969374155144068121909013158371516393809980335960216771356544855175430088224664917483511870751174825986121110189825829875871880437668080476470801744590397751400043100386030775513545115107411363366318956985942177791548244494154133340579497046947480649689294253437218409383000330259674074051693935302190938807855678018588701976766830609922275874458149584507959822353703670249395781019905064955822436381059050676799750339280719999005274651498793440742588557339435118790126067563766033306241363263321887842139646003888292427602560045479359796365241129290920737404686849888898055810011010004637793748276760562715552270570622920925109700992398277827425914021920954004527810342742230228273801771127793401539668456343385418175882697396421041170318670696321227948389335851375466488420599345402090381558500055008872170457886013816706818944683748395496182476552642940787435636837646290498218190184441280856220722554139346329966070976449206967748070365522337837724590701105011685367442847269967248969372612916667701445254596105051337944432562991135128291568327348629618105485745528443886708290371962670205737021832195384937732597189458602860223852046442493828800402535356354968095431246916570463402284086243992792020685999371191992322283275704093254409944957635730051612800549749071526500264219776403153671129026178067487863342234717872387646778461982095971991108374415441740326008189333266289754503700031768352556318863889408307343813996799419340132704362814255383860207213034015158567306127299125311787916117368168040104088243311253685624534282557226826780764785259513746799778837568603531238367257608888779335375206075871209054858514782000011264952299715087849224770259260096760742333893834125051037369577830345364262560398891636384337327895596569915216952262418241786904299028683269226722129812740521770279884199182404686135379941260047031422709849204176042933571652202647236318528109084199601881796329074058803219224964190043735087309249165561640500173856730283243581239194797139316439061944536664934494300920702854118232127295153323708291590028105372424629114788530988875570902078378485323104991128006856883370510172249023581175539193734616960263237754347625703037762748388687721330930242780857130365872617099898671430996925282306639139797737321804017113533239203099501599969559508231580098503172295061040285004879867232599572602920968041472951905480596776764595102680996026687871736193018098642889416552034578227072748576489375815276950573226785958468214137157824794886172482253040445114574767983519092994746604066242146920238603465563352539779264028142670583640544193120783329287478469560935635245714917532659182450811588423492369844398183926063012552769531448352777445957556581713274223847156676651272898009365296743957374246373982292194038038313181739291205357905550157456353187543422187977813568251615524123713596864492029945216990611586718807339835257910456615104530259786830828551069655284764155651884363667532560505247958437458355234232194036214966608316874849958304697372236383208720391969072674287612563330982720215283511773211041066259832583408083790327718319412017069711253577775882925687202279917850094066585145651428253861606732655396300324441635962075161746899176803500460157411921222210564581367080769421509762857360261796341729101865833444124659418119729404488151592577892034570224641170076600311885765435271844034892579090371165477911787085082902758843289142147164117009851172729032895182322939018336246985874513517709837953609665313563692413211158808503429944863589885138612322609976745472871717118132249369719184780791348878248961554247754424387408707305824642797769518572488628088079644143836588901533358060718484894781842225067962623270076109675819088157338811259146410122661860042861809631364463523512153375647340621160063225266683042890427466865113701820272129026780594589638804424461243654408506971631636115255517565714897633205942686348865928152865244359627016208506713844013600363937122966213979811658579606238798434699134169105551825878940469032431023936004354573664458343828473471639287460114381150302823787373348072885116682930760692204847282433036619728909878303545706537839660995599579552024946758522033394084064312561356701178929488819309070961258491319328227541185455920309070013654164223893131804770293280369919170096596902374408417693064060119120031821864507215683479337236718591434456477813263889451931412115731606294245587383672731890635203914638450466181959191112058799664915557135704007687783031122688872711062260692608343092047804851689886176473001953769547611565305262935428044961607511516455136624599630443946914510487384450757890861929963501475642109447303698873595942966769470270203139344307271912998125246743390907392835169678910491609056698171221321554603123385136040894965449004956154430044453277894001808245793181615945333568963921159996496463485344903417015669119752043487254488627665123678235726353888581156380793237013785756643527442214801472027015292244993692333397803606707523294075699683357506643511552235349995236021092713332061840222130769417194596441307097603201308917943997227110489996594492156721350090242778949913517236565657033987996059571753007785234295962871608642376684333795131364867522680495491292115221383512199698128924706347287728195209750547777062060256875767638092992287258241255117285281966665186271874816566602049418715013833282378796626133805167995676625894543020099933329640639574250974444661074214599466303618071398670895024549973192049186698445376656366123468458710557552148006094373896543497462990001471395700882910262106733744438239647982604433153036591773066950677955161408919928354404375964771657164117781953059362308443751936686559077789834999462475684935198189174340877120879368532698522169061732543009278011221295891479510031090990513130951986590642695289443227234862374545498313667861466916397064516111621782746680931867345867411670291314161951838320078835315268874551039629032520396728516401231503162994849842201016352163165179180240493161865504265376167250000400415206746402568400466236456393066825529810602930482247434710273716604121464060146110400019929881433865539339089869355817430132860826903263059525942681696840269632728847580446130207325455391220957993365505031773891623439973532971531108381489880207100882730352063363807683951135486629609265124032836590428135944866577526227749845393800889787488075142670590755335660169309297806906184440890816279280192396321227304392011209314628992744186226685886601807627538697174564797705151230586428531888656318211079131182949568795066435438107815911556323934168062035138320721192003160104780877439045730802668856678218172758850707654204518315001647435764102145748080295644055700604648220314204496038050427401382015567673402383639605417732526649753497277083414585379705659263604451039554853275367984593618987341462645393836243684827415826606871760278741229148169045493087787275920026368317395332085995066498839432639348319637201094458888964262837847301695241659697742163121010262012326707611101100660897808412120077245317269655763611138220456476078823807283350506116487822113250197743155219985829393020906374961491957073515787097576607782783032045687713977482933151138999378397642289281510553377121382389712010432604363704869336000110659173680223674414880651562975795054010760636911911224890793206759150308986239562527470498533441438347992655109852022912703184110905023401656052566306705055074206034391327702049077346898015070444526759358522005649103926378535633092740839320881442517035991869762243550213316869736187850967121107426421137518678217531445744006315990485438668898481965327065733600800465032224290080621508526298626955648584142548142595029284953888412258296051556211020039065198082719402293223746689217590603334499178589223725891631823763605364430069946688188749967276581194840781744197461420277300648456115900337654336259198392917565933375160117173036716758807584755643428449984885105666903502118122438501260932373108905700320100202124889352506759367075963278910251630660086771883448086669709673946601844598152893061435152401849780475634350265501390207225471902037839627500111290251526392967175249109238435593738090126383911726782590087433573698603569342768511744950720557088001469475333915875927269598454687407283015969571285042942055432832273261916116782541460621967026087075360025745014369693628675578685146503092542418483042819148849473277549890267711355441826718867948103199427563995693129974406695640674536588862455530663457523217911844961067625820925244719108864784004989389618498463504264983365146315707960730046385761036176160200728251998060287870267950522345337958183096772538709088157307261922455310510150770536361160148726716126734104754782311102868908300050039096635615900058751313173186203619101067868346219485504909681197439569458565896988151706513159623174971344480323071732200167034741973350248203983828168440364804987935047378734073570267828487951755060685876391865989872790625893895688623219141628937125987693014065757229444753069502233494877271545440013559491003664640442410508445989826323856513262433933298757704848109678922914610608979982159172179169589013029249820513908135577691755835971401821706943432759463945048621828859061117446026508943262002948157716069648616616728701420177525580911640427547506076689312345280399218992457236378121079714294007598910259769249261296469864376799697258029174139784126858081229232655796840668191854693618407438329304623336502897174269924177778336189289205470403822223166346343963534788507738691757556981621625340961673410207186723138488139703907282669832792414228901899874582404927205340238488539761628055778615483018750107596226332229999963630811308548167730647674108628050275460806060013407299992601488749410429527181691702587651340520550320418401873232300166622262062951740950059225346479062409614582939414645078903423098269980994628167151096419756767020223097572966120148980410516223400540095713022956597349182899306953029593558296903055512769267714773647971625385193900366858185125061308992074439876977911124713322826430188271273022511424478356477367131484476687766792604954215081898985019343409379557920165452115995266671534873590945414314899685189822833663094879066710092516231547233005572896258557486175335992237330750682989563338369390547356609113399701639171868444415118865738124366717289613917088516524968254832367015080037375843586285256632345388042936170566264111013890122651868141454208386515584316363559900333325093552270044533207684918531978819196479277412648575491464802321875374096180986203346245288387150386446110289554585602044827878290503499263491729174517213971994847325941255380698542099908291671050655884021621499846527270516828059885791884567603048155677082157655977047247359047254087277466306259117368676669079420832384124206567921353259247385015452668431555680862746321405138937281755364089381036919584304060242132366611241628780729122525810526341484648468871609707199067056141027463326003539853067617098584779517708946574991459132731038752607404273014685545062586113089899533492955053047568984429063362534024269513844926348263199072979949401299851122083292744916162464831000310322730551867755733945707273348021734992151183493175941205137260502396947880946621955370126846861607127232317480862112943109179676405833040911141489013887689455010854462758026975364908908622300309299152667488325634073533842338188438141370989249687308096992938711061959006917779551097658475482045379543862027640098691804421618370772730918956588369929329138195613784248174558831909614428601994302881636879649004339882458415581523576118895044520372668101242710506278232329921285896631790535986315602101714467663220397540234946685326757783100979247530963575999916420544628401394395573278062467124420428403992116453051469895827572385747934970803424649839472521181720348007843784328697895145154606422084677629673092588222299177929719600767065590406021650222432927035428896815339052822532483702773568566585164506542316741370847819705774532424512063451920319428901000741163710986160416487153609840161026303953182095467993461170600087419353026934170905323672520692469977818688096427695960026064371990229366233134535870108448598428040139518018198073806703236996304376058322556016730055071161549362344574086059798340559650860950293125429915780129359197201659242210742935387339313079666737505209104549628773479240416097530096840732588999520422346515151344214734551551358984454306310189160085378728117823175621814103730728501453666965868350214164877223640460411258219964600999544540278401701717476317099674880349208324614929873866012821279619111441389522078259121773924584054890304848300068715745093653212559319801661238717505797911077201666658562783086362970709974677140226532020856200345599163661705508275675836646497520129839306676246714932778493745783116073785507421559487087752534446060967014070991957867277960878464288351865350942017892368985087823892654487605785209964174935547672276299480542860058595866100918173136824622741702428028000481274080069056435865649351885914078760302875704964257669012986008094542285249044959679619830543908050034501510674508865593001232050453617109069116890707459378329274807456346029769340093443110818352305776760927044517312055155338199830411429237585320867425905375369136580798307497030722049176515791834308369237943350601527278714136909631585326222555350658942073362709530184898726693154228239012410899373221817499223971894098240599860268755879125151183552643231952326943214833969769630304485299576147016924306516313445201053156469254479383581914997227335178902093444335471954456996217913118776348206410357961804629108588936577785087314368767310038545737788875667775318467434618766678308520063478105670400225049170406867298400459531859449182002182561691960865663772965163486074523982080213929452768196481731879105634527174009733422368656822858035958654869814239078941717476773312955438574994810167310224495551599323501577096311068566385045179160294123731865956445074650135572374807741038420110252977037928014914397388042089581552821267303898031347721713828273692732602247552295055626567089335539365060281502036449856899977603320815040164467040063794063603582420354976778445008988621936018763637273100244972489361006367517885401443418262667897089586598949764415827984352229145124998262163220036250556272946133889985418126673743474160510354699549649817724964768580486076830942084113738113325307669960952808233015429958642967930399461646594129697214488242830791595425746112347644951289948748541172099183671843775556530173682343035761217673365635127643093781144449542802102167428424712670469108046042962309810907719522417742487589206737790298085835315471020279475939189711440959875170580309272354824936425151643752275761989961320501390696050523047391060983885984477159244881945059107625820088789903625797943494546378223823003622537970585388505395673641983979468201034165751665547123888878535786908008858069183792287824321746792161481778323543611378243751138549739052482670903084744159110710929647429223061930010271316040578415369138593442375427569767635946195483947228059512103675830010361934500431129517283958505005499642247127707374692927666778571081011071644752913588441044845553575218805799694920078972644080014824138450523961355043607863358997693386205525720950832950331531274944340530624348910637605340539593434500016976300959631063530285208387927427381045775265110800533968784097917036829615908774895268204647981945385671610240362481784124921522482418374284606999885070602338363047817381332053365570555434956298720366926771117951153853854636826932176335346289768776405067424700751150068110305731181806996177102766904947905180231232593625447669395601443701452389728685736378880948657988012946159728132044338855486642535300186371558488494740142823939477053072087470757134022865555266996317285063118922558533056484223884158323436523414455934737438452157871785797015962422966650037271451678037340815449398029089947859488334259142324127075537836969613583557851777101717243698435730716848852146034984753532658252266986644651926194422432171343192168218263987767530161745399144683568794637791264803876145692254461298818877504628721596566290038496118367962500325754190711189948924519602852256794997989904159089646903712899791749276169388125293571707027047119346131355046002151600335853585848832102548482060307759550179812296428902365123674417513707022557855655377672290191431227208167107066623156833793542522212845505469154659715370126227721777254033035414800449623952335991801124140301850334541853655048927135556884604674076181854394054497331667370131648828869836668379374376577393056043895575523238877280684328869513984832754232980439246777825052822154895829590968551856098295344401966026770522422246017110323704648320722735952641612817166676990047105148021795138833621861389159932782745072473899030286472901672392966028421105323951850637612930155178912537551056785173976198585804276208824543692810927360944593432329368087180022166346632868422312075531894991030445147176180518163015925090427188275765827667521414323243258950477997191369664446359545285826554152634963439225065919201336235672352107551784059706080005285447464543676825819825273013768290628511837134417129462050113344824985202632172745190998252020096945168807139794393710349506727984377094063534455084385313697655158676942567015926532066731555541512269524446375293789112515139549389836652241557658483457253896237272933325306068013827907114655962840431618062030164487603901491491741461774978713071217956096408354149823064853935187373239659304675246821428648706343013665778538287696084045776865070778030809611795087079542160064926811798136403428293515698704925846200267767011816833105945323939966257987587182636763028085537000178034707156067947841629090773652157256417122962611721304914364103160383773373906055764894577044288407335438170441118668542956654641550229346584692422809678688971925041858906202944618235652345056913577884485964437328095604750148108970659663745904425802726085626179112546387216378398458223750326064573340430615450329129189450573541461687079897464524167306948832399368552963560931550503973584590381594225200992094714370459953908790996593245740409024552263333895786926025905043153371044518935808295609368399706660032217258307418209973504839608742184431220888162761434759218423451397181991858494808781997518638358388755656866552837081915727815652462743780059023727708020916490303661206245234583491176987568540162732033506041308053506516621904755156973290969148406452703172736448950368918130766824754681283310005317887927858818321186700609829786530181552069803274960820608490873819786189234067120756020632797106926149519068584052477845384262314087666386144722951971325839299431139509527059278356983804190456125033753133641604495962117783112921121905174418418045221542903922496935720669252115287141454191193685686176641727236013376858367453553840973293072579750953445176053216174577426229591625086838384549764764028259831422275104710534417261008123275753528438811635721922656162721394383480425014733942339993643414498269185444702757265706124417696472911337202148042138167884693725203357475612628005456136265878711449254706419923108440557510960307552815495473980418060626258036481046507981204243916209682422215807843979486576211033023638797983579403471546646943679941596748369956677444635191240084692868894174533603734204512399694802942472900156717142010180356358299171907628172294803239304896004843619476553751809705249368438013840475703056374493059809802278952913326678560757816249442163056773220348637600642165696747444944942070232025336262537817699272294528580377794286556476470628245450432019807042573106133704639287890333971944686054414250618420618840833341280928382967344276981722161140824123522586372078594348873679409238138702203815580847224922140747598567817193281361424784326233976369197139957671461698675713655374514398393206913574862986516018696067815933058515265113880941326250726920280808089820084527912127531009962878404612253613373566343242231156275216424715955385790403689071006350003497086915427586707150274946072351167700130471403356572119679575771448790621881352359148374701850155812552251286578624285233834263342379627528880771504534918924269086278982875796954488007280960628054534602236669030960570552557003351566710914736760733256979264164525038536843918983138204847788931499020775605973612321412933930792125733556495969370347620642385750101140524792124876470625313347993628691482380230470249765804400676923654468327963092483610235404223406363708525225392524115981843699318075794886535618885784191609133422886308770430252242153996774327284230308206889525454528290191883229619891801580579678339061317597653832405169285969838275651178353558163825801477496731590319486904169756717358406795564535493750092944458105529697114606074641151149129120981170747730731695854600368424507947995960129130541131858924164032987818330565256750430815990718326548040959309258720464863519018509925712590544536808373610269156997778208342885856860348181466112299400645257284054575243351432155694028820029853149409493965875513872835376066215646094181538129123974997619787932456831499410299162442654601928370066177924501740642749829828787064810247051249258286934079309077367888884077916079418920998920978650401911386224214247694644698503528183007476579705110567584610097599612276253552100879237866544059819948724480248632831289339633630053154861885569072492593225782532039647443448042886582556174407088310799656468804894311932932486197214139383711793603013371480921022420153726640119274286808914858217634334337794683132128492556926028998466997370929444098595001656521475772962146406271818999221842721951328686637475518729157714340778159792310368985392436413849230787793467023546208349319228404306874529785027044449864875557170772923609601665960828793626515126643663767175734449561487659658913183064728998793199563916661046983735521193396795176687962074897982110699069942669136887736522115022866736390738219719797147185436167135601829221402170009826291478771090621224846641748783059283850592993847540846126354980020402486953927860983340206344998635337811481502308909129993816577882518784393283156433322172378379973924255873424200022073014246799703948367654981561855496741240729410796351447006230879870783704869255123686121158039275212103579734097374062164854011363833890385185327512895614573720589826513159136891479268218926000249765499325497097530900200225227481336540600790026333719596862987903206434862904099394394266707204767606448051212861989237387232759973746262909401381842295557570527331891559713715566390222456179952542658524629844536421945035063183420595688624555618684697288464407594773063731792306508175637619452643889194550199868600805181259308489498565118602358322829168103901205969866749238154630872524126502368631409683485296940928703913087514147182043521938089347562294822055799442323641249143699277427996617527328655532118659473939092842756066063566435488299049337500572996461590568428628937410329595783390036693793220594296028538943415031669740791654677104486039476216504815074468863877707829401560631061525396354108942629158208528871322173406307485511113686948912923705444103629858700991544583115644791612021866729235206341061918186557880462952513821861047834188915517867129199401300467761496297635158276849799149188246068896469611408361206907317254451671194003129463328031699672517330432159323974844086691667001846929762447852574647630476937465847227070343751664623273864817601920140091272692327555968087551915651217174264142160642664846532945698751128134663969249226357223571045899857692346773189518296595923811977444655067060388608235537854016579423806425165346036763466109842705515632370574373510592039070173388702535683738926875710797749673037013148632719614140471238214883457822670581148735790921009941857719356055350218897708297752174417794181992356920674999246223117161714617607891061182503892655757731950168702879775373025388791879443312340122239835739067304131028077764141104432249786592519092862660419333251420903692622921007532595660034415044360182009949786499505549774595673526752693236412691584193664907266297488573243681558628447696902396276145834508421662655611271259694712226640124587062945589396002899548673056848904024587178958559560147091176173305077128784123605567516359900104868017982248904550723094936778480497239906573305201343109175602526571676371472241559551546867673148897238010045332062132598095817288018126406212503315665213775276740413619180718166020231110396343300802828653935392743109894340238713661105852133481798166951839731706623979061766909770996849385801994435345741345580511901481819653075477175585657882153528787711394389422110772528235435350088405201350798015374374710946863325871165692961388106385029581540182301233058756485045519518012780024878371017543007063610699136773677191807596620867653058662980693778487288320109719010005208714686970320325812785347365464967383170086711062568497768027126071284046031875830321224138158633101724762479972790170092248037889615763108314652167713696271473079292442798825340513430025082987782957559383938617368054649585653792556401198101500957415985952821535972200553453079777237158851246971855790319934344700415384189651215924033627487244921863655200887707970308329212025841954681380259499080544766653218111727550767163878656043665895210091285509912614044603492966411820259209605269825809413848503298386505991670797052093581644207952137959223746362866227400086217763701402323448610629202284322154233705480221920816744951881092864055701762989734554573626058454551206899866422371589096902529096800388795745036510140469367458879654132537960711114849589927793005634987983501475236949709663255678335736763661491908777874392979631481670119636839663643136640775035100812890126132077099566642872019188437366864464693879307462366931595969881860090456420038983385118423855268979506309369176400664966879706860518795324713494729742749500343804890192642964402840284916448151367160600201105163173203141753595570423873836344823577904692784872291736353467132770806495904539112054826779543220903713505438060206818406445294809822537526863588817920747140932716129312952695558425518279051556590704754949835512372051600669359981835386392240704081469383695219448540815295142494013804141351141877668975014191160848643676483288397402846719310520692365975329502216038896325235684939947442579574670631019622444886849997515370134490776605986535409655449212323224237689095860185819715490556450372421556592353452324492850548667555045732175624864814633646028413478696183300595933812578028752554131242684132509172478383615055238256008713879637588500859943403691002206114371401851072289345850086023380156979924902618900172343224209488272372995937151664417805270416763653696929260704184694523631419145096419945374260410477233740429451070607138144852766693474082392285921234109071821986595981933966211442412434624210001255726382953673062287600602489759564416369054339746795051284320197400913082220683393618512854820049260284300152722641338563652263191961099664109199525601322523938638213822669797439230774932307204994640882757371518818002759989679293234444226750788920028276431431479301796981931248597836592631710914873752984138219958786097632386679859978633593257906840998232222401337837993233796762185276380856346136927017262757066438478093491729640691484604730041738181172573891984357640986609152658845798807452981058462654378920890782355318101717478459888740351893336781779743122358593120872413138099580872109816871896260955598940360851886834208626879919622584506608824851211536647299033940026242559555085958476801052012252995848786505236265043094155880661238633347015688329739272120187849460759575276463272974135757364309709131953961064610134603144958813118625131687260991643392373428815133872683240489906310869788604771917373195855148290057194093066246945489748938428732775675057289231473949289006891107292385467994142168833596980691264651548866223760185011252616885994001751506169180375044490992846284447551551449633010659806482466873838958027853663126940987472780843104534870513859319879941827013829940766804497588764745588859734682024000328876764500454413756389819872610000746395053400718730298537376589108971755641352204097025863773326448959803071362745634160611670189270573377819511234192788872240347769922824096228692110508685576888838594173511351601528099372826447047440805306568485276241365714253638532574884008317688998036815291336737411259609906590138222345194895629293177771424620073403324707453433497128832326006565460774970171466507069288940729011304013574944882783408951272834320299835351936052438527075415211407796021913531133257542208690480529062003321676124304993752567823705193519276213089230639621013658380127560708449302645622555232825797628567430669726925166476931780828897210096029802480237021497242040061756859674144607138997773655739890458519573656322554612833792560727005084744662455212074803277787628138896489789947853889528160063882590683751719195208974117927778643447603077037987810764609793905952483599823728600178951901292254838009521371975868754749147260690832926015830436037127156339742112598612999562051311151368188288662090621844439122936542242196166182891925385449964279637779047588261626102385494913709904376060223427393407592909421412102752864970436655496253220911701803910491146193163240617111535113387064495349466001258446764203583168668783197738517073180378830147339224158407010998862139691248195925088300532766261190376059542453477090223606690615931848814695630629506243847991371910003337458526071473839678818048449964066928324420355192673113576332981593145343524204947173058519696749441335442267289938280700460898059400337821103874576353130804172993017190647867888101774687799519074893170982304485739064822530237961869096704054154795172287667791282337479940518994586878255331271879646371300826050991814065375328220405355524047707003247762782313279374014933304128738858359844323033584362741483275804975722173292931811810940932614618826354307881054992772124993725543540560797013749196945479625219971087046279213440819624665352773955786537039134305669609076696408156912933796176736736237047830064628136804294836181311274571690563359283072387561707438179739967987018613746412132745585248660951689074345452898520464091141145299899350220249565252042181427966293477625447696186202933660973575165456900764221540461592923487755625862924336844124860365143788183035495060104069436096787861061665556901411748335535369422783793843780327895438885344120223552174331751097887866913457535259149200917437331717381214033541878713904634982007494834092731569950471637559389342020061487508896643367976718947849062879528193559422718595797520177100836072973663769614142920796243393878593707423000361963158549608403289113040564510671711108194608223826846615689287629274477370195013033114147299072609869040778484332976179058873414014778018984287882149713041001581856029859843612490476081318861723341187862439129558365024525425954036031170824768174083187664316736123217980190285368808598723055555799361825335667937558460022240410727465888962599145114877443144259605188382077166028066113297954889385956803129726367346809477125051246773694306706825766183801432212347056628309171450540629115437558836828679114039224202398422508155630812413854507985789038845204981745061953279096820030124482875154777538214850792488144713183368339384024574222254353124649786172577601389690073963424739697075192573845191439793423628959674988669755349282478230839239048135385995133661913857982045212904941418478738598477675020681066568131519356227665178472839786979689111528286862012405075506452658256475897406673582586586208282156251303841634436001063211950247295592864133462749670625179302267149628131993212331269801790027367712198486846072334997846640285852653219795906819910698058754247370944623527896537461052626849965671430202850972384803987904377577394678940702006719643701903816268403625290677968266775355060451183866858436007380620802365463561536912955570191401280753823475914033678869173744794998762379733941481739967547099983142632351988099081066443159602540814625054368989448910797127862863928404153689296809056951757461069887671902248221401107869436799820564888725049857205524465346381571242045172170124495304977529285617607516991632872696107225706680792780499808297731163698131517628592432947007638293788884936082008440055056561792135329329759493304621150786916529500647307605809748892066846811581104567060597359158481264660787361593197398306392287713772791304506342167977632447454689536032759912779183217866321521942262041157022640401789537925815786286042890910137018118096410537575590187713236182491613493337226158745690349648952893536603958208706147229375631553900006014292582495893480445652513949759389043034577585529272349433863758299935234536788255276356944734916972138793111282095238961087278140552820165720238679218662701541230746102395072377198479451178783436431477048223284536877166879973605089798694096403040014561505589132755507093045889230993223878220911873372084157705964311988150614994641288014233476963037066669241284438893337322120154194865095405989385156992674779882059726509606579744030581251201002703568700631529987746812066506203732786794619126107655860677226748686228872020581548310635738641166030103182632595508032163006655731812556131383693015018525165003482301184408593206983802200459514230683008626743532117185050261695288173817268704368345390389188463220831287432350735742864967547932315364646741330821379191635811610466478132528330790855197050322531976904742066994298504066328065949973663983287366001004153923585405094773984996152834388884769333628039165449112298732426116136312817411247026881607823546208986352823782966077682776314068603607927346677860073667861837070190468884592259646432903421725657895995986926291539374704800434275117426955606137673895843010301489911385453473384168475488820423167142353953488076527043793609657340272163057811365408405076741340954161100572059058891150751385462371310973192782365745379237442542099682695677838938915051330617763552399096233179444967429022554717642451562582112519892764147066491132308433399461737346259971335640101633555595594503366468865197251622252383119567858409887616075993232853280874024538058167704189430717246687682460857763093047419056471508900029324579296237667839313706965285790049033517764056071071378187229084648681945502437718532525803068426438187241018916151364119206237236341259638277496479049723826793683661779074202891201905142990761902873275681841154058338233886414874751662940350882664643602121672096311750575054457308636018042469081758086047374044419547602549679924715596371671704349797083642250506412671837891123464186908598480686955424351995323467023545946496844291512403763089044580735475416891301768227846280003049114864129629576480137129033819431281867461124514126354909472891108247760330737679599516194307027847621998893912524849203417131647481429371862161719568333260397744252590941306163418055377545835744288289604085192560533827642883673737740340315029877394256043435023135410609452061886812182071229007743286576233864255527559153841992888326375053081761859853805296999343207566152783528034934978490616057822903764751105968349878262710715475781780440299794789227543368051857317413996763999167885390071080406422763179890823151694581849685479463904396368290750499032609204515410929819907689762990018886623856704073864577103792864999652811771108938865049093888461552238772257663123749935020621126280989340869404692890435285879382801934379966521400599541940057907853221764829622018447534124281725132791684544687750503547879718833359333641388144678091129584982996416013518656750003927450402433517469296877990588077069401254521392815979245778510131093004488674006805941054471201081631421289416292162344154046922281049294717253887657499181037973302891914964390012698305930878066529513032286415207160888755708741212887665243012887062683423650726749131523354784571096809543676179603058622423910433964762753136770455820199610919070658881191205374379205113011510166670036205510091976660021291057084806039679284091036406207789159928708245335861857038360006118254559622184301390029783935787619222296175765140391558010017629762709819227749636337673322000869593952216951645884943764806469196038940206201415072508177598646526963168538867439313158374533387790532386540054703537318710266691935476548962846549307416943558259517868832105266455667927810088502158668344892159617266963947918293009086451092883489362055971351035874431657695994002576545069743136013220883584945947893883400737234471403206334312379966027967752560758030772357221565765170585802527444574279642518816073016139887198346110454344683877500676750428700264218971011084794398024518148668459762212652818441095299999868122202825086496447397448058602035812251503998548270904308980556721847072472806955548046260620012903162286291995846144140465048943134365137015098336082230394486746960359175302620155055689814753973180321185948517376654009714328827890060585867650944596706704886864280036381793002445562400628759833751568781144480453873255012018718547429526878875885927206450160181219497935513278147143772315548090102760973973832395455434166201815198489770975167718668986072493294538999244893118288587934097790395612850139730945280690446037307087996608728892842405429278011569829822262994458300950689926174719901115207484312969850906803396865448144650381853785706996725204391847823224461930994631478301747231386411208738865358723318913545631033883520965333023333785479518157046745036300605994848538658464308927134704042371659286572386946901181212833369654284941942791233069481993499171056078172170784540681358955762421838704378859746403353191215338512053970357602192437023093384860593382302026074640018369379917279082492364827435387430559646685737933123643979119700005765876237333002859842348004813997261956931981224884145030927776757265509742857231493316175287439574638441222074529187232814792916258153453577272139204879727142926448318444149119169564763849418624273119637428960549380991614905788182811509790791418610102423853162570432758263229731119363864605029028597080654863337354622873906269175577335267192773202200561319246695832875714305633853838174052555516631393258296244101467897043179148695691886914618741015157555213939356161450287893297669195773482984474434226851588503579786665738134379282972419473776886960271958974354775282758442339996135048757139922389911321419198212715140604770898870745979580524778792107876824681822114457380115733118503904086716781942243262680264908137418193396242792157937451212740445821949260006636459644346471253346401278793947722689936223641503942797446972677945475687830628858934541385195673559493635435807480180346260976031753441215883339748363023312286868172358660319243675801495366357934093017871905873269440865318091761551239186152549522404077192316662190853191778417640998448043685424259446839756056499846361254872179515517109152753016386309280590806072709835439552994865825571666300369445551634983763549406576979007710155429953237590918064328666510316640808090351805113197709170005697628855840945180760415059005862295546701615840070812464588844367558113997196116563769916762398306532518573265625609524473488535186893567338808920263213176292400300043909363444192325337260711539093505674494107388242918903066481907835034635802202352200379904143384544523275787452311755068925027487726167019886238185723003140140369324955905435827198141121617704495483515935517396246822706332293819299587651189307076245614427932952822614463822779605480800820366383633697225553296953695169595727503495334573213268626888121501489252221289223860313745886132521923686640373118167854805679223806788108058200795484358093393886921025475691588389940040927450424845625448348623342158290426769138800454819790400518273997526380659839670019947984687618565136142457183279079946458552674603899386392543317019758482781921128403361894237358380207032597088584147004544909949869712408744207057958178171371234893846245551229703899880817878951171997519456749641395544547829301245251886250547267881205523821875415721411399196946308025209263123070770543474203922223093465913689096252959788151165260190523459215030590127037681603034124859456775998329357910918469184907869107218567887198904623875647148836034198763538964070163324071165611104700716474593067225764344334005970662613830671856510110842083773546155045399211603536906991721594589130351347920944501294540568176109376158154935037287180728328660084220281756636516370951901899104478189006064464937983019617414554851713007781678326984488461436530776977426206641843314583684881847799388532728541524257783107651931861090364515180634493396405694851663243808211962718599701454561161131883853513829654208581893502946216163469690110486167783370906081328654978011488283559706989676803042549242944708994141855785374439518663837993699496472495811126960772414322859894151427709600326159223599117123532950734887807669768279252613003483805142672373575559140209882998640290274244225765678606870259622750049592528149871087068313036600324063440503891780807558347303027550911785106916242560333594583402923835343820893049912354809583702534410479184827703991596032504005319455922583593640045450559844488583957688733274952369775052207825350513233906322374120932030924063566354840188504778531135556798556499856670322958367857873835916627305077054299788012458839915181790197923787039113116904835301455465976418182050157856580888227067393162638968072465003824111106263681992905674177638586744486694865193508624553756596836036049670965528156609702093694374339964834217173324826182271237671437146548670747436922187108913322806384394688622924423273683149571175064346170388075996794905118638834403384584072207055336245096756288483824894527439438435933138077611786417117265236948037678468939461021144501799394294452630625739049830595358352094891331936282955894012436826049877964942311615132985882720292615703252447627147623037036027416336427729959886889108991600285110338351652578175901222378673602922225361115768113258730431146882462424970084889668923900991888289332612489121553257854880316340850011573450753619858194729725680505864706896613058441845705070463546076220416740728932712868553248661002815285819304714487495017724001327253451444102076787332774110452802817049952482090261391245875954546671563113898423177298971057334355197000713316470342856837433724102872313698915149946647820543160371483357612599067424555999844152600143395692803660047986592242113260306947316536902666503864446642126214574751173985189243618335071806395858219521222699416336865180209970606432522727083254822548753970931267258186683341856393462283451725312033628186231965020632152270551579467985255744343485561715980503275054671699365660193973932227698642672534142889867079093171854497915720174212336020206596756053157731549008361260082080090596009151940388792277342722460727147457161456078593337485209355504092313634267856831711466609344751324894816629092290685253851693520278872153716402406887331398811975301208666740746462545207130640726062303572798907346443040213310848238108667837232809340879413954922122379803811857855571406816757547027022966022511288062868423860465436739156398015706856403232224416702866326309546463995845878000431168643373827117931814008771635172108269656577285872131734743909038871824274632003901628419231427940206708491839555436682441098662854467282082455005413705625244479775298995997031100630942862583258995903840187434895376647058172743431607787881977299603523093178364000902208289264561134522401339777012001995729703557943968807074226464334336971449427730908468948413256697136260078644506450853319099429632000193923227574940937164864939881699142066479573803171310985362151445142437819864988390228934341378812746936782818857184993959924142068942289944295599340529388130606284653445601073028001515699849883488326876987936883186799882879225612490095196238727454363972559010764635068292258520765657853327201388849351726181429650060976255479504339782956139962346404767190242507488367659859546344065659899162327237480112830554505360096507275391725759213500505309463912763003544944176426986780313673548199338411729940807860406707113880835985491105988589065390062186328391015060696442018741281462629197092073059452744100515313627878267574774530173117762203260138254255252216120305161956582189838961798139394621562664776395772074014603639510683199577791319671122266281014645487907024620007478100993714415075409273926195526110031079061296625684431660115933519568566182748128905517240522476448754841208630887761588346717333350370239886673453303801868862162218704707938098794281398175350498449367785297396186454025264815909063668140256225567034215921819038996253853694397887813612708104915840149791804991668423786438281749996517363526548200829854084081747328905898807568912282435645350543002635392546620307604008732857716465609897331892790556665895560764369322872206016064218862231266705693694507365083492563494956945846579429172812677177174551505354933147832733595406594714198506996878357225215057626785209471428024276063305236548317081776020042022075741712838846841538095295757018934627444163225150703432258760114409549059923911193837462405083509757112339010509905144249571028672676221968090904106140962250834354415705563189297393547425782422076430407546601724832252066518353855236498984980476736155233971595326183890861237139737358882597818415515550660746760616217698447443836545756747238064486822816980475611975350504688376688299947075398514067102791566967183395868177937249160689222544182960916338921140762996775819922873906024591225168509428576033080346859767317387955966299312000079060411629882320312169985914069456929500486671530684593143454038776163545491132449490442756240050345239176498264901246752401366501488234829811950925730753772442565507406474080996968917749814866536943610225088777663780617186451790114566073369603892821438660479246707455110417625416729933402780574260381267282948385902214895412858091256727999593680721236928722649867346038411034273339889581073828610039847107984040999325929671847180947871566153662164565459229893725727771041499266787900872657863742182344972941961689455759101572257186045087503776661179253531476007370503460983414715216506432632756475996851732633477928386415273744054525222445477254950031090098446640416006316930433386701993234263530074255737861050338127530474191096214149559616836590531391969579164449993186290505048481704312219570526322608222381164170872261979036200747633041449077696077386191222949414379280580935008870676752450662788819680696019029200992456361260531095998284161543688095919709162133706391770511272427856389049671533072781846556555743928016897638738577516731718308315221609086727718924260093131900544479443480984171268597575782004390748002268178649625141923716457404387108751110032862361292679929050778943899688336475676023429344444484138258772283479075481607923094664282149257358703994114816163102310954800434134266313570011463102967404710017978790146034920475594919266595304240913633643106012030126371406147103719921723960301034265851815678776139418314878028165938487257730207956979040162145701771798674471554755662974327458004797751578848488083743397815283329348409119698880431463705055775822734415611188934311806948505271746147215046500379998099591725309106009959889957893755057737639858021218593769672108121771768053553620387843264383343247295184572013129522843046462288577020503274959559691004065698492542160734420224964852680392627830627402930915286617336040214684083650636557139707124021777278042596636126102856771355331049178699632718204592700962458915616944045944972841536410038331241225697814660234363869551218245445166235977930908827275030632230762761026644445922275533949065572189383755483866844358425476459932038105024856429294869220602258050262537669470352983233465307527498957871385568941288572380968341805029724818877299731434749582031269258710504321254344725703243879642299536751968386172697280859518088690948662648681575085262119149560683160199709693382345474318680639464247353055785673475995793945194942142228964927068021772299574157561784590550541094508570816688963228917651007877622408622932951753304464382907567676835033587416530110172812124206176672335396168072245591794100364606428866246671228886858211706707054638556209850958404496668296615633959988131425243094452839933238899012847582513015335066029215095147562823513063846216856982796567305660745501980768765344137118213374451481923554089891761570174631564709799205509892157072315823312710725374151584089174580069483632204096204764389293518034329833087120996724305666585783357300164870608085390857524043640785722915654331950414915143472390849109904898175701912993202549657126349077654786173414854900639404033626471713666182906216924122313243217928277100071819162556834452206500906443244095353314569135769081855975393868304627802328635346750983922441750726901142188440746810709079497996613157428010332763737086338936677773934894792734735870005102493107922860679767847014417595032361777632506814451950716494542449098957227943057317018421686106923669875183578983488065651200348778658156701817398262004990120071420045661340138712742058340193815269504314690616441078650851244004803312108111751496690043061985119366503806000054101968212867438341349139472309328743255584995769059862178859024912329031360449609471780181951973845028108205835519227923611052915918847331974541327487517919616876368077691501801804636275973698672370100698909230054097656272505149735590943541067248632108146834676164572572375967959697694478445179887374693709247338205974289626753381299823792475096866470134224921402605621132122372237651777107979577915072194337799892123018122971901079245292339694889990069142734759137203914937143662058522450311643651722350121283712259192492886309775275786324420872958924535833567349513399163299035070037351707046362143487971360776564946774545357583582778069142949457709244516280445780277911700652176918209022931711142069573633313773221261538370537747339673029850905368745814999565255241247627868978619216261804917054557062225183362659937014547877071175579378152272080782531352655103296618747827367374061220180995758766290892541227869511926730551089699888172775477007642172452246468663607687100646623806541487859452717031311949015108067341263777479034366885570745575620430099954501471874852735609450385468775937269969599038460244350232291754024779012986136403181364188971221781585423221685992113917962943535890711623116727924619488460360310761156813915407866141809068368307504184555690163906900750023662733106342402456658198332099770133898076479154525011563939982772726886206145710146241878500725899801849002203500923193409921301187981802539824689794758397805685396905318391314596058516253410772728540058359631828095879918437278796099530278704223941257891823818059058393096843603445091914321689846025951864195949371923746413456384326622472978345177886712715501150875728383506373590297487636015074798162375269535167236196151097460597965039354724742918123151539162405909599720624044638069163978127186117919192471474217557691344699693923051834111380654652064706575523152582616864307054063112620045453847279448333863276421342111461396926502316167639480768849237574982134488979195296246987126579392513669555863491911187261390939281052630370356131689338642065380326108176028490189103405817976711348461214428373839726144824339941286037071647962848925943417811860256252430323324800531334129423335767957868322955350583887494597922333080891866513403320807862054840883463898774217456207804191059816867684611499887569933150193142587762768095691703365639001946797646807007827108239951821976733299610767880776054598793964076874690954517190032242779242220087548073600594185180776826995660250356573789605883496330833503371383699084756996949152981478196868739083399560456159118953133142884721552453780764831133168609808784770988903745213269551821969706143690525865672751792873241584198421048893346900028852228915795490064922198591986342578074780083948161636786738870356707956513353944394218647738795279892712096107592444947136898920480646509679352972616027881399743707275992619078009191596149371228303593180806272199299902625061111306958049861525203485196042753713998406445303464898672410492772749889264061733075332994727519882602511873184782083978917549183359828056281163587994082610708700967143919037928152349236179113358066513378805739387173485796009211746763382826419459766635760425797588491407905192491935269968709820076173067416994752197706143946001907402047148859125511537471255587960414288791787290099411798137999432041561549195559766951203037594693829580491082161123139505713040709559156655079390487560584321329771274906642402973602929928383319313679144244186650637115980625374268260264175748168228811296497569082765148553905784642412895108112667715390234491319253528346082911362546626910654552886950405074502965419607849687325343332243570277638129857446079803147446048431556623305808819202220183220404813881688168401900872255397403712658740779247237983040868279993671682108395260605876339866667606307395258451275445671286611092984183313052924413726789866600168473394997882933899143239169708310332499242986399917674226246911838196789639154072659629135939088498823144992704909872074956447594639015959230968245685402097449937092738000765159921101678349987001173426751474309969411173905157007111991341427377347262905523146389761016285370662618666026758459928613396120545304525867893653631733562065447115262118453762289016371505919542817447398571785305687785022349017845041623115805936202925322694255138133985874877275553208542961965360206976444156303558271773913283089658355272924792455279370931510851230045913268859324468958288527822005210694967493546121093661610375493115931643615600549271631536074249001028522903230105133857722350192391666616860372308836534075561649256055390590673616337409901282241213785058182876108767598213102842013662265277266222194434998233356644539105403010648138067673168460349969909926567039970113378914408213971566985821623051984303005760521065511888632616788823105827753120439915865794052937825069249760694738798002883935577127126873535458997062572635550008457310576970888902013744835520037912269826775744901790046594470647696773414717950913662285051208356930717506667326488922454800688195331201504728424340672095568538243481461406585278134111787348756596069124210291226108722482286896466512038826168396925712917508950882760659068604432774701933339978553597121857806971194225574671660262352490178278354969038721206995214240892934955835675622172051364262700725753739560297684137066448129760433378561998694548868316330044221428034423411508471176303869433523824019574813110262510512544870024395103020922464586837867416924887232031316155535930719169779226552654569605734256687671810643008585259496977066851974052223460260608004393056735150823639583861158758060519809154922456982188087069840680144715776830086923078660043149574861253589586354054806065506540439498519273990034648674548956533040843107723509989095625132515761372902350321253277860950712037497725395910353783141045142411842929392516069515332323926626681890815011548834502799072715763917595629406493020884965605063599555237172291772551317704935164946509647878121864844621853806651204804325484872130183589269565090190070761732048714943729167481987075339165371415288760085187776095392978343212750315824659128145694432815857574755471791307068746425619023716440741799643708107590718593889607755585970643118861003517648210923188291536284449928429332863678921636332860550142361808668204829327711515221823414522285343478996126283324603208249787341573133209608499748760153881587698863478770674147217534856306063676298366373189129033775372204880255153128281874792957287981214142307588031995619553069857121528884855705283388367637027713095549945557343473854086719871507131277501126235074241623526441059449439447313357022082003551560765893089196017053010093090312646431270619264508672686901129009509826861524031780972906957433025811034090217523518766001153658299447178743341845608771585555102997144569866249313612277263479797861343955602208907703016789127588163967172001040192843190646719455806172818770054656320300416123510634591426305609057699428520458082989761872473481838599889957774234345693730942387521714080326150664927293805961319658291224291240778719157244557522026906491204400495715626827614970294599340821948058717868999786865472510531529497991490687312733807357837520066279500379016239817287223116317722155357600132038689349200532583219542928960149355935785231961298360000462735036458949154002635796605479070378043876312854065634265596830395498553446885317787116848617709325491413039273120393632979539811694903510286578058440991499473047576199949326657577176733513518024216106288094230727247577288813701534835761609346445555249018705562131073320902782872405985513140876381697908674942424883247073820126481564475405208539971964683187057159630598963981285089508061173363534768879872838160328257938181359894927565577288516508891496650922749223877140795108082000427505705969552086922175766210296465272982268993864352248024680638723892836679310967425690188507361339310172618806540040168520696270627766889260010826491505240955115783739731059183571487539832973562159612567714042564010358946906271107119879381041811134064812237234766878362984204843397925229709923752907892098547345199998282126364393810464920158765552326914473595473847572846273737770946160851179965829624359726143578254011064330400593406547142791217635466256853435663218560943894505595133367596608161236053775967248318849901120307320981369631018853415047351606768657631835329385238386322175328541672686274327266389476745791079744019520836460617196383549308555887675620678278253697589779228935974915121142093605702704995823081652849160947733806252296770679002090382193722049184203034588953131203492562246711158581154646047764357943466890844610547363364106417501864585987990085925743720607050369946035295264144349206893694618994571261305723212279165173924482918852743471662349390012107973093857545011753009988207458912217386758728673541118439271777542368569515828939110788911721729625462598559297654161006744729387231201135229426334232809769307227910625256906251898410950357678865614137085433003017635599372815132621314644885880646231876597071224085352337960549958446555073017891595249280428336735972494396648394387769331251565913297778517557125691862000372594470206574608199897725777526675499572829194782606991333165409052475033033908950339111951119914557875323296451233348536102424307880718987207121230859606904337930602441748519254957916325413257117376924187907268320079844829658953243814837572938788634833074148793983482899084938241348071153212898917168682825737450938596545536375496257445060104100999392852826453972394188475014546248495503130184783486968177615393919344526889402498319243959955373725448262605400808263323573033942232772508803564681681424486601021069876039490434588866792589164002681284614117231451045912638569498981192123720067885762369684359147126016825214690938393273461026418979605874520531587316163967262069238066409402251898938059934538474521485897757632961028411051173346253781630363339554486801023109217870097813420158759969033137028769382664129898157749369561383376315334475472992478277081281392608141369050428326631277672575510723788581527671219924460090378530639143220107415752435120385862617579592642550629736096583545363442004797904853635216416300119031946208986368508157869231966053306165503895982859358181249340115395592027351850712405383764803357073372368031345394362522775044661801516527879163030356666115892226425714137844471617367289135888014452443995100438940784371909006897970357706186593640712408980519719813774786484964833316325277317239223769953491990715887011125605418236125619352941462795441098171586852715033294270714931350059580334666046062661825218828127847517282135590651772067179763137488372723818634240132935975556921584432863757771707108561239305965287707101968093596634872549590741371957961446207667002583754589464438172023583587933661993277817057088165487010252949740644528981202409741949135873650294667421063046074954848049859720707907843841532970708841388975277139791451787769283282331532410170727248482260980456343130169858549000530642384158075383474859009936862650962774959754825088176590032859502576168404610226578604101474423332613996765218211254027119783051905006387750097532391856878582677943875835883908001240476896169145970442494380714207045068820627950261423199394954193569159529128023811297351049281594052351027190955417335389005514378494914390737610500262455570194806067726185722537523870196356673997749599249005979041287595006414009994212589684942408282257363859874534720568205281919213964869511302661387296287091311821465791202748746334362815666215610861002131132224773860304071773965013068864912126059132415195003995132923175983594428376418750173006571812443705262973248659117410785361763349850122245087780280558974291856687733228923262631618941185217593840333945651267079524206398793150392824088812497422309359389698815908338988777393173553005504177103785088909667300072935684842259601786327748403227101067514657498453544649712506570011443087341876901085258497662616141826029795960173966517442554892123381001391635360553830308058574295623604460449190247288130450590971461113680207862599120525514187728710919681311663051112543807127520059019408647008715174720330592539193533241750688607964856112739462916392675056530705963853519967399073781849607141868275361538196197056399145496251737300245933089576873626924569825447156325728779542097105530699643918457192045276281063810711293304957246014385775000388824701682335361427739943852985251494484862287961383358566168635056122904785450719719854358691687760619121997506083719001415347761792590028912126460861748167701896908307343322138766841741980542472247802282688738394537830890077637710890401927989753871716947000676793399218430775711909248167467100579841878235207088896887468251785339654826323237840901205662700000154575483258165930526002605950992898666998900757772700131764688050809426047198820078565150983759687214914042076194670577013981302346993108684174905377828864855126707862946900278980453609422908376552220644005495077613492882501078907349858790876613197739389692936083801627326590248677157764232856274831036614097366006717679316773595242021210635134308689893175485233121882648434076996730040113942557858128270938979894466476863825409090000489266846998334305611885445447726751686848413607500464433302232223110698726050373626433393326270406164034772507571608113280760897506948801119700513419452178342132434236220478162615054930678541722905381828934684514181193289947032121708859109083520909052013037276334861605570957842786752138444714151672297151916653487715743784526627276451943133942677620012996619970584465063203413222463223024592431314152177059230584430005148650799100610182061967669233065887794701101217707583160532012079978516033461848566229320951255432915951364599408796201394126388054969644532660829415544985732381402861940178182623083089313782967823931774675143057081184466435899587506528489208833050691157748667292759724415794456345704273678138403636628855192498326490936669527355562543755403983008515672091538095947347706196451666970076590965302554187477692753659626839481583239629513682929955893823308109671733079804184414683112801635560857999822551948234238614620722487801536377805690217592230193322442589508448388484553147319014434749454299811384488502236107406754506713355144726141018351090445446385076628677870369625163042700350039933316221011855297776734649107817277570940639771835899136769030176580761633543046181159127492980095790851373345126717872169688514661927948774441249782482698307606404801534738624749975831026534717990476914897837436901412396505119634993535499248370330332664301538031160617522173975273402619532738196922046204622385210282423399301274239244701336131129599415150215986712909259086863035884045402691724606519614103838540129867408244161616299417898836801376385909433874537996038693444068384235239831916906761273319677606445983611051130002791538208325939395997176057097717078810387699686132256019715533473872349698815503754349261662606921347165015751708653548461652899514512080122579647512497037199117668468210592976145247854702324535092366523446944641931248320607533326497958720435424627673780427064950880017273825188007276360704545936613199990655166947057090926366982526254903106246115352709284522425555396721366855157357152871494992754809563773709736152807493740559415696943596510030666297792743346975146487865453804214159873068075419973639626384130514220761067621141273692953753983840509677706182545513492994577860743598043554968401468511863330445730240727455579169410259075455444785909582902154777722213528620213354971871563695391542568950465673727944377729571160926303250957994110926956613067373971071049068032644495294730682759154582975256325029009833082603403070940754843653712667015212777637747602380384215983574433399119401422252104619853793533813280737313630446051938728093854419179727333919379589179102910289449768247200018282811018333751059019076100256783241589293498874960564902829535208827558201092783648687672892564308940158584609529225465027718230269388642564050860993538592308342978774524756135740442404961197476801445451149035493179762732217852780842014791140850863518257126164018612441444780159959518834931988286990583037120220726182904031524037956944786698262040123494811503833789765257653100374161897555072907694850690054954427428392924147778937193745800045954116130295714475729472222575415523944653767761810309987041631932026878124339216766316458966523278723422241615737340204725652021033184467555110280518950472637989163696401582915840780344441066499067562884641407954754159701537753009518888730609501107738020472321882275557594155325028637483374519956192082547136230220387750379927225822060260283969235894569375289326401569220943264176134546153094907944985661459554122484590829401962490507998984289068492339740714741302083294205409087003972848445753709287456669409493501634723364124312940813868244474758504346272031255506476514680494856039256092812004265649745197253450343545628560911063758450004808767848815369378603712601303556508556631594867242772159712495344063322307923548541082959184648475480326807083178010410297701603141206366308157753723546551740157687062605541746539245600798282146179752815324353686521469186732722094919060120533772012499517684227428235600535015889568007225524869572353022038132515484096125757777021938878345993755687839594150845934492064720862408977852104398603776887045803998099753815899971282046712616532672520694255847132018912076995535595647029195533218403037750737734645097670332581801988925686292569441048093528965776684339283081528458485582536695144385353386083101267845916870656851643466486715519743415024701860481028255624416384501060702174149329756209060126480996578296359879306163197762419842642734666916791948338891632358315374821205498496066965954912108341764808991101804083719181694376164925919155277179560835766312833620217982913736748899577614865755800444260325530376339189404685209220518086362294504834806783529293336873651690758020519761788218864707839081759677114740852848938401926940077806088373288172149581138237645847514719721446723105097768552186240872236169396419753692220021733792227204683602109901490005943118754198686060164948975958329554273273885302888589287528843097449661818761749566195343487929654871111390418819485050591570667615318527521538461241913056833480474598118327740103418135524436181176521184450841520705681153902473806476487904732147874784038060279928907833274062056654730819904392244776987232570647027092496789279768119331367232209966195022198517861440295581236166959848667294165296560146674144470111504511946776351030919183390822192982657988609934886839797270268139631293471558829337871081803225071847624334355356977038114585617167908912265851600155955847654449613071047993260277325844860781777241088790729712322379242823563290358167876331588956653974545348329594268066609617792428197693053751378486064050026753471457903373398868029970040428666359714427418764431134958628808060713938731568773076901973474872393609638600995850420629186931614187439792012077976996614581259446015717662522477821102029710791858347835225654439826472565559129416985077298633249176617981537638685549318849624953805366266317439396493429528243174935527402665607277653723643379773969468415861641534141469610394425284804174429195844690132947506389418171108242646300321876402618152144216689126995993500378368818631584294426946942545580415628199632409281706430886891822345429997890492577315059089094719320888771167828385664033883694987901602260198422847925963093815319811434077777273818315806402122413710404031542582460579331091482489527187904331151614687932854499009887474586550621435386186450935796857082409715154529384439983108879601677868324120858715233711976661319954361380270309610632467919358183171997997033106726661564250012363100583039665707774048068326915251974924538216042504357859593807829921024877967380354615380657391494401280314776339808705395799613457860300023230385067543847596299235133630712315664532314072506264027145657061539008480322699905693516948667726597609212337820913119640743419117327816971738415444258060541669117402313062780094552184030139118240121379099153456822650357868758128776520835416128364568985054509278332658037939607269130929488631491009113403316037089014137843562294221471065471127155828113812015826655328262268478563453419880316536549744082195439794656205609803738974241785699205495555733471314995333297071809373459827138022897997444274093000716171489211560208289062998180032655239260610031571636987474219511823650146896714150699987555836871090344290452870135235756301894108605047518689265664945746497909216142921729865304541263109435403861720369476441198887986378731445372781002004710876590060362686729349488232977432936398022117438237884727357600059568419285080528463607545674571515456155083766661837584674911443360002457795800764876808753236744641190654037667769967726253666603007063708723648942045986545932666587083940881025068860903648503597627157208205847945084761709509570523464749008358392875042174351936733530569747187116818349773980834298925993270254707733080061785333432976701716179575019781920321724595179182726077327677673743758013817837901052137322463504335837174572539192027857241767709160545321143343658723677046121975783338369650831784085544844698654994074984662449198500118302417761112023241132571116038096712380810631332859090847507688909324871549282782455952557329317878529845338294896367845347429825751999965265326042561851435769515646435340933260208474669349490279978779798992490297899519083947866488632756500572457639529583245027980107072448950884729003171488171353301982355949428403102010013899187591543319420148195754523899519164363881386155258094133030366453056826031787270961693338792773333572659988863476405631470375673255258371888617451076125093925424644305412482246472367516827566616885147140095106757136234906711345351340380257358572108961272775104949916409642613553522888215001306686907315948303823501414064270571454040708123430376889553210919849965418754948518394453786960539205518607241556438245257927169242540485494727454716988764127503525548983343182803809095608217852023806203855009072601822283422213141136205069289304146467237956756424093819162943805774976424415717036134357951837496543709421719635510361376067236331882625963262279832436523532058082103389150725046362927555155525199221810317938554403001935247253112146176870973138612584607661393970520502280256166292657932089007711995395235102879097133813311168614432578987172226396655048648554486562197875648148732923862355517528348156353946655420562677928313803164461090506865966380137530076393326305512341520006811891158135126531020164221199863989605549226999924273024253749555598472250074802383516855568741719472728834641174171631238377149689146513938537597028398673938578656357019919960375423518714611146976737507003148790494195397410117424247807262844591878395767548930404930775257725079214253167115731740725865195436191719226437459329758190188388353176252637661609386883798487288780624280150398523651981873982874726301446429569923540600432010742383481048311496084224769104157298928724122104926775331055724375952657084623841930036997749867591915029204854313622511659304822823889584696746608986472653370491339224485153782975770242542555968147332727333508288224558680369256456048672354025684910163074105795468211167295828982244326188742647049596528526346978215437919807084825019709134121877641856941556380600228194666821444891161375950542104089253210193077943633811080651498189786847506672954901384275984743890782359850212847715774439989436243740810563036210528027912389934774467869795307783734813559312164580402241488365008255631716614111984614633044593471767854951900082724730175432206764902850323920087112516657112129270845190918331362536975672920053106862234468790829687752449446066001009576012489059707510983913040880244855373225040214884104249190999651704495300293694828137411752850123731908396114546072978706942350702745162324477418258022116445659302250441002681842599646510585193030286150422991781317496753465033848198370084962142383435093801229219441207216918080209763898958403751652115104660251538036781825904082292274956518697033061930584480506940637969892476182488670131741772856622019896231172234920117239973747453575359292646064475162443546606289606540066924019650549763487507206423004277247171252077912499470539717048136261067161368948876182989503842764163952845199440845318869326490761874609232101316514296830217396341488797820851915646112666517419991897327710748826167299134819762394484121756774696120966318251407986803262526065084426488410199677168800670683474206014681796769581985932850874340541229629795415866361116908499050306230994029723212828287619763686108448857353523796448643867346795421869512910685237566974940329434747656321453063578188471572909455600507901630174849128707626367189778079069615136476284605439695195705992773774364984421190858439622653876516043950919215998985956835752785591620520226028075367498295562003778113619147516040869089475457488328532075344550163303151130764163338039498753238787740818449044740276416144064798671075175162882344276859177907868745763862511900894472496873374839322786373463630522702599769580757246056483321639077674017783895615760556922561409764616279586503350817212792509702666794480288312669348977378092344338672484204672958499716498709530698012809540667295584881468738940306116046986543356635498364515629680818653369179931045480364637594286643768561741776007092206744406459103827942706486873548554931970444983662385913720439455131310703340998431808363051469754540026976574674670993100005187602462453691108010786609031673665899061260954655845800138713332987911536083498283182490573738803379459740278684258724462074882636808859052077735355775471456538662357553824139933342658324051619329575985291696519882743891153662169459894105874849971199035017459690972747438322712451947456077326891636762344169800535243124957135879175569983641664728772994779689874940987743111678155080267196361068847244801851484133944283739980830022412884366403007751283803743272532828856036225766999970223067290812034456845315109274887734862838096582106937835260328894852668810893525706380606107711906864776120473165054068049081167587194942948337011286540597473912454694471552341004094687900278047230795193109024934881427432823300113014436400698319182054733655681386936348396257822143542954389873922298086145676208962910460680413229554934688863541752572586658748272171293135269521465469891362018935779026035900339832164471308263699988095964610886494301377926370149525159881038730509858295570981630956382989380936907837876629305905498889626030278099459103755535166200605798582331859448736335823959541640999391505981311111390256193551178194275881053543680549540008475020443455381311713275984837815963896825706141126387483798403387337506889978928644348479952120539587128336885855608019545982957234281713210073147596532139844488246957237535849605974176220452256438165744291976591700765149983013786084140777518913953763850460018206193647429677897507284650484089688909675135481023065999463053096068421674381557399609725582208978076685267841913879699887372494573590987804378114974129290584370503968189500282949995229114213815276588543234471329871998459926892107307706427622123679099894367506543484993370923797126847852908762825699201122836199920212527495822703136953750651459557404468060921220672011243730780173330788073852016951277078511518344765502823341853820544540273061464635512256710962923127695971906363568734919696984118848149461714102160071989718156348750807517827504888846367104912503153168139715847758998067644667639178880774656843157003983783741144414782204416525300156709698150756767108554732293235894877754072582235605063110025120968312233716039686451518904298386948423820926214199887855174808188811515067036678400118721163079962592067504951389347086288154825291187347989739890548957610223728666905264365811074344153265812658055969077122180175129961565744079474867421006167060884479682876917680513483048613418445516955312968897014938201531539979846324186243455763823686310681068095140681883259386500394724830432243583625998936860495641653429347561255081727210148077851566880143453932757238048774970940529790899928784486989185486222311977872919467686763698639755684751338691377047647914337098308735988801457660768663595304743189918481551990083511262031728753074505148315124867230791126523981955951571336810494171438822408455825571062220991459639374403452348393616879818795711384207519577716130028162784853272268866752911777833084745950997278224268399428556231456212337778719540797347815494586676450037766749322533001353036614606768328822734610768762660321439409894025786476671091213065850477774274174660373146890289892170805898274767387890168896946466767522828649219345955368029989515208780352839083483281392652083693780050325759158490896910519700359236461497454221809280163355652158460378918670156035638345622513960350053430523831654744966202385760697767545640779535229711844283778216442020348401741664800105903765962437072853871705477348634428903890464381834336914565150279032715862534539884913948506167502365886946117924937360792390981603273754951876213270881008147042364428943055876734798364489707859254912599771335890536542162112123044176206934595013970266689138242853882978353848609127627107527301274863548510463152503426234175771015103534358765635387517190823046958476867884336232433545423107915514865926225366282009703319329494988883345131399273035106500083846758629518905652668062595727482982565615467281418205900858787012436448542638902063248399178771359712960153036359150749592970581357235137661709863388091991799155117948917784676137652263559729758457400464359563480719867914789565997717406339171968200912010051465716698848517925704092664610199381350702470773122950738272854959326369530101132560909575860473757954948211514161860267349585996245454282710928733665809242035355120926864938686717865091509201286957597944062731265960468178196525453607147125446351238752405697304935923416021475420894535472400633811772146196517607838320124915207149924055354633694734534795717541641223156323346289863691427124109686377592270511113984851181948189882217598008586036967091202073020006314650147285848675016754660822171661239694084141255221587493224257553776282010366613495344269937917352593337860021358880678056943966970865041543484549840705603309449524134950074930485830104450144787156968473317774590882239230191699798756262742449652162579558841091979987397890323916134888542884567609357392733823836747198072320115951676756083149754278559091108705113058422783859294416391425028448365491291412953271870461094075469923802596937576307872988788066947481226684242552201474944661659785685567183008931559268337663079829078217146637530309945098108828831418657584142854004910777760589255586971127663194526639431493681628676545375453655372051426460185403006643984336411045556219313545861903310866699937261499012592006489557190621137443120717903102680112157065211532944646569769413264221399023038430673509498523972235616663923881763090246553027032138090492782378759941983617625951876337927968580509490385962545211699069184350033122878693088400022994061646176254509280042343564543983560098238360661791363350805089422540250274518795911502578966143594290633608375448035557767685645527213632128599584333611963535365714828385454257651520756527057719190215428063099374057397246979785519726704306907429886476245360404321710406702286336985517691601886814344968836682697910900935799461010788508691623850501725064414938022638311337172567686094909351312656215094926738013292403984532359037012002412579851184299900699346183495664012547755501769187771112687224446244096434253561969877899567637658400348457867354898897999173875067252948836367481089835596280032658102211301442671404754939970872105291987081109259732613846860929775135491171006805399534279799001469356327157537948171650282556909503596250004286951189779509080870500251861098668793994773348001672160564494176288971485415431174273816103156110406326995278924353900013547441686135030572869495575023518389526683930416274754849452551567962878450895390576655922801648296925959553338964829676486469043419413728072919086335924883873321321836950495694189160437818336766839774546047122498382893780884628589594020244003902698958305482004986317927795474568243272931140950718853790867615091400389706409303505239574692767478954738999720877846172142748950938754452852638429518605545810972121185021556157103592981161838629960796648528951375496534388239325871957742220097118637949609312558161646116180082532655300734451496246616002856012688359864260180086895231386300254338025266622803603641128452554773376126192829807549196742333977617154768635744096375012382927008647469053252241581364845811535041344757000384159082621487428706104863561241523255325450693832060446599369951097976118072799281680795711332965523352294494693269300987833173663896483509154077017788874047216761833029466910418648468696095095765430296306619664482569437156015911957373890804134898775135036044416133938228091536271587710516911698237499740608978872927689687973190564641613335337514359293119723489776631177229009268938737755772685928046300342581068519865853079878749202510947924275217927189008796733372287147015500756769348893314147270028224645953848039746815197370080009279711030962689664613826509503844761356642109873979454767129670595012506606071223351204933688591261413774956034046862058662874422900556883985390556584057996538791266622762179142631972587782604477023547875465130946047234599792374051681448643011093896941887247928585155473268745841829736852975842299806723728797505635976344111314735431070948530368836947647221923196879704215774883735140264598417220936054016481995392667381323860861916569326653180680700167656456987148656840013186539743472237011708027555958802112245931389588712744881169767547033523195859888127639082526010933022174585272338396969441862811697881965325053488603354129853449544507715491297636265267344268324280545651991541915152572194955080686357758704080512301813115225331649609461430770986996282624151518495681080798278924613883487312448748661508451051214882984466730896222143596603905674163700512105092161680865641269411548617557484869243353348733780442366008919067335187506939838276780476618618913964856907020053908719728679999878189366894011098322000077852425374819994207071147946181271084954481869295813660586275454666160624029369804206228647141954421939339297776227065274624382208408430391086882034819757542353488793171999114407618201326089554592709666333302253177469077400258664407687991949595253806361643220743126152609932151550576809934229618835355666009958855184356660479750783149615183043538099529799631027243660979447911238616262296845749119594941773316426267071401630485760621940925553290550328782843866625567639185126474089109050922367377127875716351777645902129095003826749310509506591968673563316898963932202420803543845724072382060578403461538468489743767494932385180398122695236662323349330078495961075403902467805417034270032577667477564191116545677604045034249286044654428317693816224267919058513077578295541274846888035571634153996232704156050638918265770579520237314853274251986097893908315245853069406396246411069127949948787576081625048257507242690587549014893401000377523932564267417067419309888853538182120853020416849961642037643394637427974336192420857617746165312057944357464709630838703810354729972365308380551838994336098897251580673603685660886188384962921253686984989712617498164194998397772104651247210870398361032580243155708046651725745466226048870195514603087675359767187114443420137988346460949773096293070056528185683218978011236050760293930515724098352173598961650505228131092030038878270013664152215414198672012385742214028804491914603150930328560740062767340221919464470276011856825471449733418501824563552266817206042725926815732915001648618780856537264640684724064560059009393224355143320635436578530269271117666741256607582303460356367538533547775929334553953979683514637950525229593843528832464068887372072132508061236406253309026443663833117833489379521345585847296463716613045589519621026929740340272141105763154920121060963373771487462300731653599780761441407742003559164012305613478035686420495213871382746480327981854322761526014459228150610474217115981926862008713096192328948534002444541476931268356896642896729224050775101084691394286841756243149327837254959646421884878132635342337958454468983149458502025806250495289784120523973866397326642989250448820760594539100243768716654319096766167128994590720787898345885278134167253120328720820478125119162958790018750150272322115962498981661594891631499910311176118267175332010575842299072139661970616973765634481939774047492482774916750676093220046949734310224046441379927637530611592803167437143127267398254736087389746472828300504964957891313707435057375901798921762647231323611298295348834400119565287167955938996120059176043833221579257663997697104514194030234900701062107304405254383529553863100763587958027363694724751122139879743294385950433283712231661502855813326312800296785211443595005057169198434670350647052692278353281411857780791662914266615913074518681962511028371667205346569225675388914831287124645590394632119268419102349465535472168131749184908675199822410242198127725427210657493220743929108552447024163542852524973173908951948269791707689001343588754637620552924206081985135350104095167696656231968253191953810679188910145872774597839779574354627214178033781695797865123645101234641372728418800910751517966669569442601477139453132708320749299237629351015790053021260892324488939921005936287044721571444387982214153630600555413141033762699796479146709456336513757119452476576732879322967894447744007930444847667115550782381765778423331429898552968785034115761451400707077351441267567745777303867105589001157474198602756621602862811850703066619340744769662453297335165121717689399571320927220739227113704051169507558333898092941939562359822480740949801731122445869085979358904965466363896220279790294305079310058845338313829479859547877615489556872029019923768674376359962062645770934605537698850977692487236960353324255052465051475358771137403483687859796901126131677651016676090322000368276158382065905729920036756075989423605214679789817143324109988298190845906822235180026936027935590388433009512544197378222359205973755502926694143472486849061362087430591197188296395543228027608510328878940793114152665612039749156189834756451881722709906989997734768549283198989185372988598722529157365190561914819317459826218051799071080592179797583117589306305608880848469451316948594703869427248766656152703545838928347743112919393899727112652492901638641298540854467223329412406871894834308758412184256178959112124172547107980237656730013438985944227823631394518889979737614333109928475263714264460030207023925637418333795803892128458304076685630344571163651043494977278943027768910730346983516465723013113903117521389054398131631741722373182620214943087412979051769669126037525377886061224285330507750337369811803701251292306285672323765352267214186000535440149423704912201947603035680707691840492598878904367257289325635376092802767347120143730584523597880674998889528316797896881229608297611581768240900154663761773933109613444498774655159564203966940001961956637010648632788100410133656977960711277237556711008475526728928252942665413420146070562684284696478138984193545619946179580625362096503610396432997409176450848459417369874776353133540093962454749518134223696862347317022433944945654472980836333032705032750991078222199987606531054741732480259319738155045363133243721090079705445769979802429669895531680612182529699870006930153625410975031583947757953643742063553441203178794572830822704134654743875541968556816143747215616871402897588290328923909330181357831638760657614515431004162578981188772122282055935085162549269870086857585224564720586535102914527511005591037937310441049360427404177814210810228890627698349869787531753819348575870939610752337616288903270905389038575757855926646334801723415085446017168749799118786840213280501358726749512190329963334396900971840987796281887868181837093625485077982952809628005526520176421783705481570826470019119916115249972452723255196048610534601347954891811296543906065528112204245166376891860659196019483151801481101549654945450917668710664019016371172887633598135571460015910687940563857984840469916396708310101377790391589584429460131698406587828680144672921885482142675970631138205201692878717764550854333107990474988987124015075060054221783371156223752465227623735911797300951234176826978043865064060445884067157141572651232408449834745294763474964402324936986370779982566455308077818446717406039386090579821303873424945130659558608641839271431207939779762485175601427794724936311517216739970295514771224292189982858091037523970939553631693716760700972140515797828059021649115520710296550269521346885564417383941966355016122483757059020677056264015358025345662940126516240672418148318266284516004782442387331988308591763729019539867656773856162486993329273875955265156184683430341740992294502698003404355280882286909664141692213264795137992171822753242317962207480776699821751614454658783352458249641954056150663753855449418871087274205029007743628896944982903908316421851374538938413456513519107355552063019246309557455007206409841568626094512675942977612125168201126429249120764113196766120913488578043619779267851892472055906604504522481902014658485440856602832770171003152228151875020328776629677966281049732785804382895807920663308118399207382238233839933920710754444127310357921888264356229566136423058908786016860506283304836636679812609726811636693809158779793685290683199673790252628950498473071489391499857708874728698709047156134185291473745498048193508180251120138036176656555683394342794197113359353682050072514861384447108750748627734951122473778819059326789687473387580362511527104846466004375374139186261646440481341418098990092945083706379199768877974812385623293954689834205283588924454832069284432073739451676079080805697400587660548493624341353283511494158530543732793158421130577851917793303375442606819784077255678841955587433664173054665223101527182176988525140558108595226944548580728983990296376820602975167775047421018422392491236635551917695782946150079303170315041708721883632634463782185465313386963696888496378737014727524135542545770675061463961260124056200093918424629220603332739220789514410932210827079947416265261052427609445495741632200981657361545206533747482102941486248891813549086660856760301251250766693032876241999874652977791259737887398309523326475042060254403463904842335652492881004333865789209862772092572956154795609071233764609254178664342270228585148952749388237230084537640529173492795269715489192148990010538864296454792112512053741598412675750865922830112688171507932459557438235613099570329373529537542193040874174029943921828112499042154687000557631018918170756161208853216136802907883646823823075046686506433974159158588822319944396172578343743201444410436885645652322387961003287944345275820267615779558991802529788606948082300887892307987964655945458219503114770156805624576490887046464716875447766356807281274082141906453125582585287338657168368370739624996937608861182273328901895731503144298557353815482221017833044427478699973942311618486315852864000935281963813320080295323778469379890783978558022622191470012004249466673569171375755230760019318881148157277594375256865209696958235351157542704617560112954711068474970190162404940016861363975690664665496428295323535499113772376313280274738145711405081477357614786215942611551414880203414072670036253897967756352924238227485161163189837897335617763690794542573003691695027793840698392639535848357873113969685622375602878376068186604518706683831679817612360299005627484430135341738470971408962413411994176139678727984593213276078286442750084018032489292922214150657527146239823103742349181642987163008638766089294482184823365247934490013129382837187924662817795798482380754201463362042719414234849567340164128980657547082865759947608988903801834214890881450846064851968115792843634004387520580502908636512008816551967385802554846498675003027506038422994306580712734006662892749747015100094838088922754889074548026673404035508726609876377546207688759563625514690297706377838588301191042641410317929102245510987679075484881032269338317204836209641123914695909162160954528797878534994531109390456738210212304294550967196596806156834943601467846303473733640121987356091349867715673016377104696551117140417914732568663337216918451045353514936351852220369684011094110031903816561705671274472907432054140688496194768099274746840629406004831399548546012616031033204419788694286238156212307776176248539869511110776326702251751440815624576471237411285709587154936781424986432829455383371115191869012374159670206823711908142784175831763446307374537580785973667169868615923940808340755623239382158313115439861860200316769397058140582633116587438037180477373833239825735963318372498059116335002940058908683443365778251267605431509910162454606309804339418409413242649459133048740799617421789643690853638876901693240064271564761616847666015435765124535489019839500512166748518818056580794227789382272450460461408037948328735556684803883458416851664962340531717157110679032157120871276303853017721923809105242285905020580230956725302281185286531810993232385113590680134774889284434035082521416937271367253745832048705522459590697514926780891537573740141023807989234820302587166984277563057758356288652975309724865840689046049308321844177390632901185530790556459755820985813274667801198641308761432280388859154469470984570188994504795039184971085125543995662923657793679167071170948211152890661782107702260396515230603003287259905184418332300409397732866138650119567466717725018787976305103664357662948928794506761915742483055816699544364254611856916235382098704906882218180399763504150413666302269998764938859108324581678822416136516036483467942030160723523055473638816600673079397224233114856668395875302358487578778398655211318875583319230502172825910165377690098008850196618695551374002130250121435583276259647360232276046479447780719676117209075092104020396829509496977827208087725892450520495485030962088448743732337193041663217357965289276463744514678177653476691484803895131406233833621685627450080960107183643992724101048532600110581162797366447711868144603773338324635175842570471297538198091151516378784472105664667611160627776689054934453501005547210644749898209177763433661986258774967682221119159221056837478365466782314307958157612269431554200650750663320867688158491249217540502768197370846087056270939696906703801719632931204575210686157284884979263143356909986894806064769490204153310438399082922754070579627857888234210962432837912362193713024719210608132850755764967576274007916430444652642765863593436883603214085819633878402100258485056460493015748131885440289045737038701494102509671354542077194588998659612660096321753006746715131124278795739990340916239609153831838111095717055020471790887724150965321383283063235199412475090735013399795345262819680314606981730944813000029805307848453998668484903482903542643055500729456650727858441275794518726236953808873060387628609546055905361075890449523799630821138931937159127358263983754383026979877330889361306010425442536374857349105207882937500954926044885482361846846247875135443604807853056378595904155777763466567839571593267406028623563034294636032167374824596374995005189448460612597158650254809909907586376252757469978164006317761136023986738936049980926202853140163112717601329908950864787790442367465019358583936963894188197891608274855292277271763570670849154488226186989719587982790553572374391035342613034195776921117285574595493180853026774556973339966561903730844577413659545826317818936313891272809980607317339124128714288302110207300581662059140611987238390848222628079993460851099824618438360148573311631897881777383907901058947286390735278225387550294740063591472031723812431078035800208468278320297951629221274234713690378067957243394093522209596141585225156361235839634270545783532654595448091746544989823831189219946816281281075681873222605461390981481099033588767219626729047239732180501476256971627851444424880257464434709819004162030977340954260256227494047706358475203458210190224546921571609111801875953808797688188688085927989769030854975388635460167717585290443320108067187176901865276661926558480822771882646657852193308029332647719422802156595183626415170915524151834166740325563406549779596741554101903111752164533668094237558521183568627177272388822928901143386418185215505201407309917727183474969283817838661815300841807263727293320455526208722185815419871615361765038494456823553898885761207980278084033269008062161697619213739216474535502068081987829853217561685579854597155207356922113701522232208894602462947201336802968344498878755417453673234574936604345748981811710010547587640825584956940958042473925439685302042203400692105414039533162287357643422776026136344404107564885821552346712771342725988716407528486391192723095341991687560814586351214223151966401267597609565940927037418863611992704947448717705236640482442436712927170828532304218216855312139308272603357220711580468875719246324358530901861821838190375742703532255024115393886386328083879196769919185240681434353408444423930146813565778798390033755719280441085551284978425277263708579355224701925610219369463367909649032851705628567433000212479288210676203018561784036856630322884928955753217914420862487015005851235878674223816140517788414865763810030535583206277286399896672560413183122761706654368407229319485647765367834730109782547488020653758851882920438182493424919591165109194432478556739690819278896485905816183559024087296891683759902043029670320861602148089057051453783112255563877830363221634348440917558028787174517566981956778096454406018992987150399081659982254937648339803402317834762445078989563226708145510697671174924765442201880119284544230504296815638625205728550766009878551646980848351869129178329300180919751962780440366911410250152360771567570754654322922678248824609389575364266056965738463709295484947636921772295239608348713435563096854037093874018681518467499025985695921651309690339427488674304854152418135568244774389942584228002016339585601148233311277857520422620275102929437541471172645154453623690702851077812603858842351685479972481198053996509598884103799892624429076489481953757866925127532345428821708515761410457732053634825098703984655701932058985947418579974611229948032016622889509938181758646279702566104312177105580886423014783897502094139740062477660265927560321718727282262848899758876197137122730487830497777075987106490593879588844261561536888051420174917448349685595778196489053774071163540855903980499419661683533837982040858572715134402167347732747546511691433501845619978307770117421518024487037751722322831284291515135455618541844019275862594094193627534717311892176565261349187252781375884593639545699504302720029944694665664289192507877595550543642211200659408293774346564511212371191058784382810566420395574411494148259301018546436810971897990841571744498970871846332758658474588531025764195350245540070785814960387411214335005938261023968570565149535189195538109661351712060819074964100243360452291892219103515543419504839022170733998196136933310269809528382784723645666817663133981139716701630711951220042109594143653843199493233512664886638592257005707640886837557264505167463532426472046880429582608204659894980093187564246124762430135626189130560071043443336013997908191346716836105033215658055953954573917764775718074389827742829509031657070455545212541040475764387253448050888090766945942497001910058371377352772687549460643663637420139745340399853960100033439452681072410962581094872765539300841817740962506532510106194124374844192051864835091543232333002001223952114822304730769604043081670777805185871073016371197306609391127635805009758487787984158441142973940383397111276373491786723134207229818501465341063727466165346975317285644767188755240465784289766474779296392925531241233675531389675877549422962227000495976480147441313915188233763676495017676144475180211732201899225800240911410294657188663160696153447888679379922231620129658725359456968788973598476176145967658608733615897804259166410057540034043472250544035576428769761386085294708575745489897941587445027896058556636798316116193498719135012466757679670476646351859493461201644102216804037284340993509531041737683619680201182416223561458464472459653120202963595991316401883265065920890730475084427561050950800334746586037184070427153773230075454361406839704333212865017467290842171818814843477569074891467807573391960464693806996988154318537147128977704180020336462448898975049200686667278954404522815258741710085518857967063113100365377088022867185842980141061561487309662964738075091142697496790594048356433525363121460945098260884916090239238054367928539599161034970752007316415506625922081239018314285540538350125698559607623825963406408916397334384074686359411141681831989622015529446480277045278727470120593914061236465689587802555331293707215072256058358559692631467043631448253427859339595294816927326452373872281126665669961494421937643687714144084749708407994932798735520157362097409359262973179255984076409832890917188925327317397785848318940563957079855761982543810331181003724004556635362150858669910889441828545794814767096318877037850160257455726306678325446246917888399685699377862817704180889568496035574106182379722830140829019861168188479488670973690906049413179242109410657724922620605283486527523271200655183924557397875728668375118774608983128003359089306864008088121598817872013091192221388855579324456490541491921137628248733060563701100771976706694594287507859527988238118031703349600048010973729572343464661174053055317337874006646415891665924663735226472513188019227764572484204272326304604118609470457425076281542742642943064439764508928582107014409232213806271858020996831982746445606458680911434758650680615181705742714377415295268372739212164244508097349563509112442371461378251082934288851807136192125680609417671524787823193910541947204211510544393696911863466450669630528441470492426209208791880797606170059975302007763094104548797149949585656236040264330974764496057661995695793646694126149734673480500171603535024650930157003730703446522551853640223130023938818789322930525077755203337474436436809186148211989651808234027123826301454551726709271461538142077798762621294818668215993295884848015409485410375025189791532390227779274153575303719318396526438883897069404358033930109371829078744045037291112177838590758110784341795297643520331957393194524853130301765804152838661331609366583693626047516380407504530688536406345139986530188205199814215065968882616821664138151202245955746543012355375509125560851831737344407578143128664414016047951640821268602270979256395557261112937693447090342206413773955804694913977502362265323021048261345597059529035744289050126341949439086874412894542899494109976149714241967077714387248500385105211697146438715676669085013779523319828373977195263986326882032426386044747747735358214440213766910341872930321839805368952698865758696095231394100164603823477841316974565136005929400789035647232938527439809897205595318646911860638203868557056206177336689369148762633073594789833222468858675413240894651610711115090506760067826805606868478629189859497781089979804687970787052311928894605556253575741803374290484680405015119371907396397888010902856188423489329701299779379762239260574327308761809031645969833153480007398897309826279766542084842305217793100759040777173321702080395057460154973254768972240709837144263260973633135558876529303149848263852579974589151246274717221295532187499714381173262499471893776349546010502622487950516864910408052893407196454978568415582743149320736294227148047726593773954730092642894150888753460648570347387269322387899551577649762837229642319153963235300482910679968017491421653309507492174847714386750466500465645720102348760966794395180704630965338358302645185334191427709799467946863380643369018394295643831085862926244021977028535558649502428180309282505225836079843054135946946532296941971862734778530756805645083567303156569500065540644627854350540217832651664603343183841849350522704428942180096186772890859265345750813631680513957866775406679277286811533370747724387658918442298634115110049680854978345210876678915370317568130057567537715952219140846465285552828770782322795030595273977929551826439491338404196007541122992314176496676796609092749680122594658086524118246515180168676079241593552521227745008197662315949576745126684900794918923397376473587959310160958158047929191610361112071237868474652774431740481735033578693760001126510276072518207680138087145684816768787783824867731139351346278571285631271585626407739655126582790881525939652972139587292606439101640487591286974409926340414049235465414419166705154430201632180207495250254561370837388505970039103720308944352342952756027098056842300990576988897200437654082557903150561426013390608996614979551472809081004874944900284029761788677504057752141361083714239755273287186211544136999463896825916537093142604670486143575853484135448878822428252142885433652622636444560954833375386276415779923659884574830987287642296695489066690299045092696035144261372090707462408129766230950709013451541578753481655639008492250701650620168267868356343091484453313881554129271940471916050810411942502098539229871953738252409929897961438812609180521752115832837614947048686667043824384736257299185646603979745891982382209597992186954116603354794232277893107176716455115830160289899788723896581318679805448850874804845313785729061827209753357778614991011564953352266395145204566213552223198684877915463787329865367728681937799628476946467546031872294577592467883370155736827594722153841685978562361721484028918509822629713870903271001961425818832602404627445281668832252538864676856679634213282284140122660542036096278876603140385303937462351555137464225077067213813549815519084164752900881024528907630560224700455983738244753620580164611172087548522732777168142169410566382314896936852554381652389503140793887206460006368848793185822732863830402847372358411437479146499159902703297576173597950928125032318034063627335062443495335807029489432605202078186410802322544899725038758988795702076723545501117569339905123368094565124809579956528100711310945804736279195792083252482316304394760178475500707051911415609077207296833986737633416126036553379503296902861414216514520368603802312270563330718653232627221346612195863006652841641559425438581394002018171102488486093167323837661717899040984049415198491322912475665278532801248356538205680260380525566321023273804533057132546034859853737155288548769023419190382762402664601992958754295589042998223011903705451782995021717337273221913667843600983851328588237665888650837206424418602596825103204800516264176257938829980977723270048416780292196939995096881865436357200669344930725467099983167312892214075463602542632366839298947931948691553673394005808205081825900162405102024679512702443720776501428643951927085511904590515491515323541888251789243542195690529101921921294286533470046503339272688854352854414818836848817065078190388083583843241795675863312256507921352011279582114416072985921685090522713974822445254256458954228855437573473840320293555902207648617415564781428636136163309558011302917579350421490130322202732775144259042585202536963180562488421773252674557380327468396132977993657250483472497123490698123337723584232669928610202113551785411200958378490160237124423988360063357227444301050432567286684467906975884166709422964191957675319576568902451935610039166243064251013892296168142693472118062483971789944744195097365226813802770105886005809625149920639413535295598846852422870361371479137056598852740108576432764725959857060792883738028594626328969213618835008613491133711270638702562016276188761265260545483810419184742855206875706072057710875070889295133897918497563960103215886511744051003972852883915928639586763056127820541490800304307354741348875987091091490395024602796508567753783032203794765023244821086199422607095218787418491875302283159107491107851397305006396273000930996174384480293429751755434095389235033964813595932426351322765110874849016062051721511903498262744200531594230528065145389826973492111823120283294577763966821399398905964932713841961365249202324021323724798043943042766599990036084069477989112226588398242602866731104121683883024862819797599963318857374323517418327831900461944895649788146519306032238372651272194397360989008705488738396890253842198905357797670997937595630753540979566010695090989981948350462418725906893470602726598386290365239211123648669271070120632117274008056212517982569208644117261133081126112955476192175805210298099020897732098675968658566884940372915403759861482033638750594827812015942008391470651799549102202380357823186380871727503815494760635487658027930620098981406169195614051836324210513574608475302023400327760723103399291523300287723498318334102593779441058428904228649299052579203765822431344888822949446825695668808501806214606111787450047045095412385642777641142285480109675549617588819938882238827083820979461466915267347420639539552950554074247617499291912252210906746125114481883168531784009805821185238085553398466073840335655411530316067691527586724828035456882691262604175304290198247223010476382655900887885670949270442365473665890363940564121707099952264932774203892302440211343230390544915479432085907381283763576144740115279348254030360449281587344178154565552911015976075561335599529705635126452470237476383455123428679392115137483125541917920056769633935995400643969333532509694997914265051079946132069576500974566494603928655086708860040999601046115174024527912932809770528511111490170387667724927503668614960158641750487830646603207695894040965903790097090366546597352104713512746802387614610456843131824249892013417669992867789996820102316914435904669357230032485508938912214596776998399043389111819873605719591247774548707222835049096364057525332826361996327350082035136776322899549268452947605947626743241960680103929034063235539701108303202943368931806372640581402893686492098327895384119834415215875074881725147013718149640555955684780032590390774144212848872341526410606225621655759566572580582353136453284209534404861584647193141591384205133574746278936297971940226282643675816394359208206753396032329979202868117505391867548541028695729620596545635982359489477278558403412109103080896142381714527346028522303835077391541109050074266790359184625567590049000567424774177819324237351009465758611188326194124360520636765120724758159882700322179020983375657763057721849093480957005778023383843010692517510604264672316852391094710888482352099231148915666457171858370316796093686140032839953179151926761361506556927325823977827695872829885137851941023618596375478615593855274883644011258953668454841157662377927492128203522376004814257961696255061649427076654972421205392856886916034019667137316019125558135517240568798234187843218842740653278132393331327147857737204833335146751964665959573001693366808160572283684722025815151856474661035221373521355393883212334805570859220392067226861099759644199451319407694742948358010624760224202957337834480785509856120619747558908571744330173505360672153202858614245674537456512468463068258334739927153081736705051990445313425799780930674917149160431757589041547396199030923851571571094121348165546252860214914151913865382187322314931873962115722505207868973860022699141512445043067367340839781726245122003442868937948612177662116816224948658128963453707799674393719133557805407264629636920395263884455344992159707260064342546853158254200727320895118339170801623124910890152866090944321273191137444476800875985677556034499766543668189721277020856910078553391779437695008067924355091490388461312405382434538434763991496249572553340517464800036492938096514734003554053827924419193273023505022185666860778850304264853845216475090002822888234569699397080953496959280644248246127270580263079517601175689717500444596846211330594584535405579916891958998052470546802670178203595909775284415402779032079385107569377605495882159826489184855178846426759064460692558497149967469312274175136185041597811467420386741516212600772828187733064713593383267972224147033464125673107357518886195647182939875695009379179769898553588168889823997054810485265516268348595847669174214271901202489475048261079193171513835345878625350335413022915372487397795077707870755670156622785437625972166559885045205910023176147464754024403882716660236674600731533260575016757402000872812947676201607177506526647218603132681742373200696811600077932872311781884112375906581855441414658339824107423738786920015194151640613097038166497380588957593606343226071715513440168809345049422664761485711713690512962765566643090128565854583730076813882380744250695328706630060410827215385723173965969854537408649653673677940643858324746418772242620422654279447711987963482644416333605275948646614893007016064541203393662648950810038139086974892824563373782016834123134205785262053748883924448667895855573914243864110264809595850213606866423704030449586058831667369833431525093668921907884390083960233054505757989993826349587627452785916429740789844636866900419428099095197406348074176186650888595829483786088916364637851063529775048740233096739107502848041737709703377092500887685811374890347210210159512271646737135221832865662495035694924317679729020692956373637968468285419317892961403712960733814181667208516805618577716888885760693057384440718173545295388130938997036949401722360009425832598069572295008180775080565962475801175612975319360332941924043344833960566159240422055895006037469405521279433515285024829710413409885775801522670510451607899037861013698680342480357866025690104365639139105251270634151043642686771527980283017710672582865878490195846095353274868730086340343806796404714756600690192816481483414004039349092276003155809551803536142056504856241425327442678507241264296341234398172206961844601924756803011048775242710482716735337439340916633315526110707008676221713650472949303012444375984752983859647146663584696851618914246918566088825397582356926173265975050173151863526094121939765394011827777191501102458740718939104916200876531338008399529674264110948938635069216810969292110097445463179532881991966901690894306271989846680947275668011046446768690087850845519727064445534777882355118915703908271325930856138958258961307382277102794101062432519666026235082234700070122819095313295412948467483661941865342707528419754419946136421372208920134540711400536832483262649107690848484604151613079800007033732936778782899081055190271492729145145330776590590938006362091831718529100514416172401081603502236058112256885933530753799780437753329606124329746524367222681193297805188729576281951152964427102461166822495539488275447970891064110327692041154178708974018237288056485890597741895187226985147388982595591134376911399065441653819602241461881927252356273990820621405268232068673668981236910941441450457101747626164925928043137606721381338476004280031543889732912902142561606508234637139958750893598344714560862693415699492184160645033745775040023135342806646702851829134388728205704370136165769204381182591429284589634899646761042869864687297793926230518407122052318139686846074318575909910651116677413338469793881919249715470101214019547186756346096898410858507992048767449567699793565852624034395057799256862134935669445308840520743204512489224284854384000736283697278688353410789177179729878336528152075586296203139376474767247021710814895507490681633519419825726900808075506344483309159620390828364020814117931239615333951090782286727038083045861765330976147063367470531035470474439648896454464195908097522536195948050588897470421498756197213185589954316201466692825415292821611433243112534162724557624311741306047253082728582936552419748025177160414593695156329959962341861816983140513177010754696977883840584705623123510139163998895086333925972636687729506836506530882358706998812166950683065569260891484060745502866056223259934276134401871555947669606094932905981504672966883895040182040064010158506675201841776334969446613642272391267255425791726317554658202430756429196132646325245158212037831597044765354943799286163048630572211235563248643999252976266029913014629174587568445538302992337553308458610788374819043840023885012942900732003565982961252498345803307898623260134212811931464162361634767786633706057655159407903712361299239082763515527289940362001423963964057812732225990250627331911219938200278433916412061565292181698007311295568253079054162866749138900665767045518031389267921095805763328810560024589386052800686484916172122614001792638053827558249462244686261018501869522652537220783271506858364971485080680647818121288218337608282122580474828172961005178728684469876547546776265070669286191762903963240720380449658973995419548071288399797306367425312139726782808076096674587656820179313212960310690348692134627849209036985445631228783154149587737252354343000127711802950328270141072199635433188311401464007513315096294638389499700755664989261908093978641055650630682941448048638354835003011546430911936839489421942370532593729872630152625925426431493734896596471439734129330570573858719952907994960242575741956627381294831870234282750883863396944044441330435293088299612110002107171313713578213768787971312838374596587558008841008198484187631197942338817704410945159035387558179121703574169704004139898038599561361315456001480369664617212939455305734561839942212516892437900852882052412492712641071749461664823638704485258647352409342517746159078826468113441090968029483614173065229601494959166513323268949023111242706785776501414955927291827532901417144585319650158271597572619870192017712540925124679096997678376577407645869874382745596074359203556014384775011797124635342937477426668881598481833768327531754854211831074245363266694169018791099886876061359553736458275117238369426442136192142782895251739191985806614530734880515303045618062820202227536921825957542046288252865455596750972580207631888596718060437524298182154408468169722264895500685857747783963335360575020946823009055115409456731725927076167615752089292382229188252301518702214587744861202900446487668270542822181729881812844645144842922928041613295844193703534734492482118028370225042177836930293159015197885598810862501559133237052203974282781335901122591986879817674507540266217884070066560531115660187717937691005117527349993228768795022887239036707407908631578706866058848324907334496603421590119161311777332971095365048552335465398211453647702376507865540468067992813895751738146291767653905362229484297515352421708332562314768870675906793496562618224596855989034908075860207986766928391869615187812608363235484031841489023890690962087564799910138295031944879575076138742879258892417815088514409025252173086559246743115485798414008580024445261260998588694512218455190747051551045654059551512531678882249264284253269231343761440150911202276629361679114797821843802870804160269978449974463911079289630657301135193098015423560152935387042166368697327522812556067787151609790958864181937139940168427017338739261637298364873079694087339739264725160215860435223182822446431905353937914939970016851723872090098273348904002321107657906539858369095030237533691845671832959508294006323189934358558348777857377475010442037223040152316372615514906560339960680064958995578232928566192125880635570688313096180791907602117707474353320079523873490730614227944785972755970688726869605536459766449541626059405446640090779710646270224897857358080562277383491287792687417044991858308846562313378126912992277103825921990006593246457445471697922726984610049082409580722664465495425214458340035007394776946869596212552561528002699828830814501917557922783531011347957378007552433967881506942002620787571161975909569905355472396165495097902278775303720666730262498931595598334759701908937361297962017222187721071518109502094461764812961012461739227764844940093227588111100727853459364935737182749692118712154292228024149636679179880833216760576353653098991792878832685434956035957759231014138804751256256158544337740786394193353906426624319199725969594279110090851049951025260873292795086258965175877502503582137122880751479826528027923940957904281423093538352482331845813667663873762629976849326019545671832085219089653953281959272826649093165987665598479760002541194152271287453978819155785295808410767132932443702694760571957915860458997347585587941680861535828390821683970293328790094697454889117406274353847538337757716376273743221784676842895630622427944668170037470070517584220418152536874456914732154019515109456612425625720199234177265937642621768396574681630533277293750563749047949435894492073276529287437963750898481544939329510012544702821186639691750948104587469775585924729365940609712634475584114840131630087640023490735143049176226349101552016857131291829572282696450139398861879990647759195168400538849683344177727664047419679906752263434968247897728635954129565420743052304705253064738758636310856283546700075072536854899883292671055225615659640117369457735844014485787948002018887600608850282407477104998626511510054226939714591261400129849239202570838917781841037618212433537218822090714728260165127689105782577965612822083179510996823978681309354736219226657751966018016836498799688779517782688145211296068808643916686326998473314480339409849709710101082474493899271402507746166356442652949731227390769635385950113484844524697035474002329759686760323580155735611458671927083343651366603209577678523220847179558251310494821935852235573830533862389731113563575050652348579691802834197494846349665639008002388739060940832057225366360521526601465430515001428766804784025401188636176640328850123058001464972809700458774469038533856608043657065951478875662137796028883376752521512135699393522301680272124736048950474417260514766653893193295673825348693068618168330957403647040923082876410934558592399119855830789820322103020403967027166572820042866037370610850976968588806019790652147512683993147046103449438890624138695955934879446959113451674657046050550013460637401118449919462494979372685654972122153875092173796484714466150858689373754494500411873891457858604420661534035325840521479320814983656798735767448442166158447769935165653690225630609364132365436126605713297726225996389376494038858352201341489709799635195108262219489250710157110125796562267593677376578007310800590688386876574280889794530737058053048475219631695410883008520020087313171847358670911890421184362078441928017734111953400930069159715656258663247483632351462502672187438924338624341122728139865831430978497089174793779019995239267439018454523523544437433489747445765720648258856943294953486259545841444448223857357617577430721625656929790408280614300047494786221465107020661358937334218792101776712640225195768579833556230445674703222849683990674603487117313655426704047070642233600012532487328365305129780997320389474314244909266503351120107611749350207235690725907024147408092567949172599572719311713971161338830533748559059914176055372610286119487133222322804956960571708185542108776214242550812050594886379780217899191471223821159687634587779910291636630151531471586014522524031983856038315664265757496785863458980629848213072246084911477574002413638812887360326027066467788839909137595412222669052294551147612234182524439433540688412524520061102004084312921089183335828990803273415645962896695895717424005421316159784892167423168599470289656643433021850310444263665779255767162635017100261155328331864398472629881882000087603913972530013368004888902826196188665108600917442184784131438308267713305121578784561037474495346071996806511446357407591749577681285664289403454200153647085572257101689620922096795960939908983594395382108061405515099364398888785329989483240694842897839639738612272051692298573126628459312523264216907063988463996324203053379884313985443065900646885648047033170134146915999403038960683653752807733192160042710991319134800500516231032388340878471831992373303000382345822289840278309895900848942001303909746814938031257838525894501674732700504213208546747481300206358803264550593441181661355017510538179428404380865772921755182330718640415582191745944180067601538252520343836347661684346665906768440054093714414337877692143156882022875608619626655929991609240458318688151323295466807229627293798522590053010682280728200812897789861529438990620170479466398820563225553748974062942829092173259147955494242190394245939394176191930388508033830879466140343042327459089859102460385460724438019751012418041389882331286086433802615866692378701790797356982719807174966219524539917889286055860578354512487113497868362313254180922223790612906037804328950330376002470251815129400101085583852057253770794688402091197495750323711549770997563862153571248511969763717125560269910034798173121555575406665853630086951710916271675565154886762651672388175166458215282328631975090171313694767175015058234521830111386523699880438952318820489432713790279723329640257183211346541827502011186868153119450457271384826403122118108820154479013313714041791103170208410110951781050018637568215048166664200226585579350567161987176510929180502274359387882228359043080184598396174282776249197856590251621379426807359048498665953229795134704645248289008620260391478974625752955877900964732175233085619217416795578586619315679336108267436750371504004768398590446943752692910172859054286797866672013118555210656600358437369209139991129374078062144224498787861328581252360251577455413631152886523451217659242467246581232194869633070473180007476283172007347796132552133077671600809942957718164397049184911525306925337858133531793019942602677677089103221462734182105294934178568347756187027546918355574702009321956697371803868576482590459168095203799785027018106340767903364103414025258560260091238936125825566954315498669803171241713821749026646218024057263261523174715267803757545279666155029423741825834806200488591399320065010924041780640030250485716870426759106568769890871509450453570059473320690357617636449174806411579837767737837381541952549406521249087823532284153848837837952823178499168219984960246187069830204129704786512588147365453422898473506706347102930084394849625694447387934087957973158517473439427779850491761587778563332920048983513895871891651885604068362612649610461638472990878871969475892181766519350061687799309694759280820976381920458033963743351147186878947140562880989128330365336785506707784510257922700720300637966085871692448696321443346531806817288275166860621960062113283085884847140898487592979171313028248446617438134781776346139369268425696772576437695963011915374295813210337601255643253182404471747149319116865348479052638028007696988465163434754596978995492081822166110200148834565735567296987720815325173850045527101450167767014892157708367298295094025415279694201193318951397242809287939645436368526849252300937835487494734604696899507921163076271358509453341436033647364966310840234597554363499458123414933642712903686633451274783216907046240416349952355659488837820626285459314709109791144005426084298179089795336142926406680623456167113915952427840740352517762487071877362152027294404022120670411529449869609673398708774481753651735651686254324842505851167225910111302375554942744731188016620084836611633657317351522975038116924291692886001650292243125506999188440012324652245346110015818406695554955054282065241218235679252753710730734362285788821329279516871763905071456121632250895117680776525381311458839726874294193433952003186679888048180913922826677996907419124254623107109450497201511747415798788295008522409689980798155093135007710510185840522686022394719076780886377399731947885996113291756181717336874005864631920743465098763569273381712550244511118602604715399677521498363085484473453743910265018353228877138972339071802846176248376699210144973124170752077619577754075037014565589494550681118375812927626595704397093653120177862304936459343209456203318180805186144111206354188408872169638205004696044266514112126516878226379663572203500564229540637784315303786771972291022779050107460106666490178174796640870430177055462721867654657156587808795060874822419772078520325118408880114240567218125111434170596274236636778734677179998959606740135129886821196061379467605131804737122935188301991740901894606071879110249020955520160579933141899927235813391582125680778151665363869961684620607797099167865706273823604059631140834617014834491431629847272398614533947046792333708162698886818025071972092016728117415103523952251391319362553890555236417424744936463870027927911729580326075641841017782008410634571929090989603050439160853953961649590758592398244070083079197916752856585226395647707626092822073525713880401118423733562505652523827664100204736350302715688451446687448175362415099730167732086433830954686985045517331348812169833331093302141820215283452928114495440887577785020958795789771732074667577823895201437130890105446063141368492289147052419575274373744759675272642951245629691986539572806621872141881704823063542598188342705782919225494977627549738794562683677741089007569052865459185752360005392967910033296774080119213219582562512570927656055850377950149835775230852346926722908842981931762476196326060895582897916949063958590616914666575966888393816628279562627766879047896842659684887555425495296832638267670501323427390850784724054929328126103880374558949593404583698714388731087319348035343133691469624080012454358792131910802135479605769644317797222444067114685784323046712768810359235210071628417555891195130181273080766713791585980789968434778962716576100582224461335591453412253532161292190904059296182740913562650543540139089527600930666081549858634736975761266024650454577715826245009339074811673684354594200300461670429630624138657714143547258689834401490484040717758667685383417059437087210929595591845410265468980967836592387775172230840486808272768192243877673768597653879470805577456671434867311107190797354608828070962858154432726893103928848154312107467116488143263299354448000649693852472755652769706834669148770340940103730942513450557349563643035942998372325875271080448754004653206558106760720002456368820197984712288820328736376928635619944496403541032395950320139842738366037772873288860512660719075283757659094832732218448980133097434972456760722546653085623076311733274999664391543359932872628008706604546049048826169407029097725789505228073522187680977791401506959800281917947009736081305843767365470840974114521993094209093860881032959923402714191906292679149072590907793101681598898252760327040972258413187792250280253501731505359593963897765343730235518601934544398881655251036551182598714923471667721576399288006077336924505199402971599318022517980392180157617347352597054477683578321690938157778696280460134016555843785780971561261552529332256649184406787105274426506104755195403870259401503625242982420955921681429414154649880041998218474100607334252045855948809468683396229135239943024893357378400233469321247017734067981667367065269168736508102693196003468430726858697389930589915543967737302794387985540157445556357429986609614930832842538785461079871986253234621169332939843899784308322081938873476879105003864077677090428311027898398800482011592781869273983933582847735870316688529102997869477817293715543644420294079520171905559655966753734389816383610008896017202797744410251656501343784864224249507470005698674898361700683761365049903144343160340556965408117570033965937985670856981207646770403036418039172774350613349134197924541280543610796269411576997273122607386680223033307289718234498178209508489305337884897829488985844052918120231728671623606808098567385733183847704053870409188764661091779524551201571318438296356979281123499205340545042442001942311495590895916531459388688722258016730559679903180266143296758296491745585446583196720322307929713835515153448641263506357855143781664696515707502244378250677320878956457624518841183118473327802423185255188768716795434507349384431667476967425186563166866194009431409050762893706836224008068744073980978980872501781567796276085803586471606175931464983475599874641797731654138439993862611173780100952281214760531766901640776412606197115327610374075423781896477318983264245563788958475087588517731697538352857738515369556542685114314828644600015402663318310281319458715627328108966148963438106884704619901200796172739706583660911267910033919679818871003716862506748245138925365117218662766692223748758803099587398214263761620183935618552025143443259387778414988883886480062194789655705493028967936414459744587772278556400811666245538523995635331504756637806209515498355291289721946443168148603587967935423418746790202364060125247082523523649270791772260766366988996070742979595891799946608231229343508045101547466732741003683196105141751832719873021231522635201201601690162211016278082012906888651590179085638957990956616863918395954661472247565330494758026221607897364516309524612096408266660128801621814751798345979534877442117441199386651717267050225484096364372892768704301022925067953288725102316578818568084762188150867247959320423339175387934600846672230073261969712677781074311911636095236008492581861727975600529024195166197314941937459572908211284421839527488997368243293980876286158784398152976052666412789367314190427428125635480469071079513008996731607089907427493740788164030973339365384385179267871378285243153230538393338112800568026128666118818760493612759681704579040822436437906939552201760892939532867675315032356351012105007760193994563269583099299777052904317799809845847224439283870842898875562456106892475648096587068303754581004440184820277299427395722985998944215956123522003826750562234019592691186283519793736159694897349243863787768081079251896336515118149119745406442655267043987105729957844431201425736803440717102149954787910778494380871907302635679908242757297768300072373823377871679630998928851705891646352449671925347464558866717505088671497588818020511138181579554107811114823320869852436830687287293670860365929610705488540631880717238692974246920618587659692758921486403404518171286117751769811774085289540028717235253797334460722966119988696630585867113375913093705882621465981729253814881231901320089580652184906779381421054012912488137078824379445842208780114716497493174684922979027470488778044455099371521890574485477558496887100814084978272688340077730649788175031884771239731774793346741196679038589752070378081997167027937161921110376407801109149443760901127591878858484648232087691035896117620092886866801079893834530217744889623475499359682819331024580381685694939990171097050990191239567828354325898933564296450925664939083211065708456208381142283719191081760211018865537478172258126176498719745626282875464728210601950620049785531762011169687954754323276749567057100669611636107721880329866656720397197747464955629260316241124239506984267400446527462045658293485743272722952717894013029591095881952040507891231532612269004407105353969332500010526269738297014050674152592815928530420114966130098933202955500270023758197715219717113637644974244154749256131581453888811809970080929442073238584838428951492323525525851172651720624375985220120046771259817203521811501886700330026588242871706598109881438661604225195980849707611853765968125604412120918821044637492943669970658822332547603061035991129939906062240882564127298842251914358794730711353184858064241952569739601503157724206400200198500655513560426688115522936801134490884606104903493197030267136018147552637724119689924196133354535031612397118306039783404891546060729075325540353066185188719460734206687116528843302872171854994096454521750016157759538784201770510493873618918668507785938045171040473856067597542084043851992795801426835851462152270040285491987271991552477190811919145906841261922099243097484054708794957729817472940959727367783217940512352178208804328735539409712070910859943919204305262770549395774276769004961886870111687017847233456205992577277218328512048838600113132709983674119315583592380354778329473024036259391566545451211549331470775851772147729644583424439606532447159673511088006347803403361471810792462992394252951884378517190784093191785950215193172715057746162963446112125118880752489102779406812720070756234510910487438374369215838253589987006222093424520074471525590523761880221326320856035761225490994088366995410070414323573285401046993610976804589212042474244216645828487830122836044453905939148970780539857190625791183380126751140691970584296386403350952634499247450176244897364608537028350838627407051591457349704629038397718206001395313724460118763929641680166607100193385662562220003251358450669567967529384732402901658092942368092689068595868062759833142164440190895894206660195660192496945281430682544960935712697369395834752041879900733184891718503754463226547590074112144762420071504396688187148346928358502536039413737378003128808382456532071799989704181071251609882663821637879211216320767074558669368574231353616546081036967735485547072513612632140733983420670746202883783776444083061973594711097705139351224992088395738721502376081961035256430384624415831191829442232838670199976994026997785782970347301811392061905890650801957766459923118388402838991655844240616939656012729289432542592034020279597393172964856460164142407172189627671596613710759386103161054893789970188849976057121656146115512835170805829716870831446024789527658747025999422746960627127830693693725087833474565094749068338019703454359947003391474672164729931153411752285436720042157082631255622481996401292135860711035729909873803166429701026709626290543514493115532228458281944995587635867064565003946526124485546464390627983824083128412066047536590366361787483782201606184542011035416811495691930898204679929732107647644432432637941570187335509898016550498751965680278051504161713567756842941103089700036050477284571990366985049494257418952864204328712692268942679119733642304136317208211311619789136762438726144264431699766228378124758313149464137984105874042249375265333899029882939303116806819675559783913442160417685388921047900072108731208477595979632270037167356892478182126081736757319052680644940700195805778448654337287586431409858682932964514210358387520852629925631786839061179260604892863042244092896702345195379547338856368761864231200281893210871858445830960748605614515314720508079286333831332131490836616152709834536850716657650186032796480727723429047654992561556387538263258335684562514296015363877582571457135475028974354858680674928028928011809349276992287807364304102318794359401521249832601688572144829796470085414220802390732043090114127929932836597503696290656170585152930623520762601630209423865625143032855776003324660397517548490546544150928883056734007493038255795489320800168047975050092795902915650034853733199113193313177910424860831655990001736278570617399587681167543301124697565939408017590080329733744468093200597113798473269999655305249844736911503866985227612934752972091248979575220586060394727220625749119772532059817114166160784191918046661916073563798113455295382038046878563205303172120675140049403893123520764070128063579330403606425543384398882102107406863538167324123807461592972363378728609617331609780344354063408935578910780288856918780395745219384876599803088502808004533330141928706548367620906048501131078061971681829445616329108363811530277430970697003178153589830421333967784570655233818874419834388947344422783159936144576910910599688387313802051993990549625008657652566683901973449275495405524110681480349331767976681649935830925014433230236198528842976591789272985665653926888971022711218363637628554745328587851633616632263348297708231157152019410209052862623108051444832594951084027715001003169153601124880827716491220856612400089608439127068232241693218918711413326013725971879080051984067341696960348992231070963534679131842774558813724945226865314561351329740434136633385962482039719940044500616809843369992719948246260851870942258974222047517419332995269399429719593721526001963972915099376684138486386478350881528195391828169884265750008697290047783370240641154429600228244862744527853180257628732897868793601527670249771443154628118194393928515346079048191664015354825075303219184988943687441933172834454598159395799750761879857108122310993291749681507590797683943149181460481711020429763449929269837719467835000943155558296403255430871628249048022966773899440103422476944775110599609695208489745936517284901315351543936284739350492951020111034025723523978061398644917860248275188088996030181968188752578719452587453276338041888875910395543846468908227603712256709650557233090790344487207213235742397390855157630899209407925875887529338293526082623223309192134840827063542445179176750719534519434806825395068175245618748585842678616166633031900707182863916817357860382129127458259668159337378589510467100223325590668309358090641425060322117863243788115975821275432080019532639603999063710832462815576054572582893251730316082594368146422142661344523264479238663019667398924440932382032528232378706048640960718631537733024547445979608274218288729285794043538950622162585322020392117854191428637709874254445763245021958462755304189606024713231292426878539131806932614863211285379667051518082417978206192069540152642370288969202916952369190582253217671601929898191417968339482125971083626056612421267913345318476474633559793342427844914186965858912143224929436108992333843397845747411173294103572339211721390358436016767213460262233825087086111109503308091403416358379197012230099794549562462953499272291626254555034250551092476066554554261478854115678019845388727371074123739528291510194623539910967616350616439244479206564920117615130056903845116391420846955585008167029168908645519354946653035771365031379345064602185167586511146058186093467020050271230743044719488621958457207557860715071371877776669198371619109284660418457432656624108028595414546318898857450586780393792759831751461792359726167976427221444682416901257493647176255850509685521959644708859070121383581893093430056638447657068973519868964059995937681267862005670859339495529053878086212625091341308856247787218193266227218950153620942628486800929979837140486584213057670662582663694872242827397564296121948773458246636648559317424370215472255201187612744561076436406330887302394437226183626386176848961806825236009086627723779050275849886031884391013675496695349531953383166730715423451551716072058042130418970642224886251878942087986108084623953384246540929054162583040620784117067447001496587689637969024945494069771457881029694318148172235323190247512064812087916936502508625612646048086513501506242626404772886514107102063861754132801486698571305320865289169658909460331002068210070768745472075094674244040314004687235028102391387341817508983028643868151788827895624681762475848877754742829089818311352587350836759411051274261988772014941782276244322324095474776204276104989044939275419263780890715867449280066312609634454272160857860133069056771838094027996477287560596399482033854658636338584310487092143667549254838028457826856766520758595085549596577190909859791446651315094298480815106696620614478611831912911067414514383528527989987710697565528297707865087456732833252909846597494249659272802998356730212633254212825355614925898145496347704901979518270291133566025508725687069186650784456631271072928435122185371689629997917984617010235513074987114942758069829469819613395306199361546975075662176152496335580951485769679292410505253705547338868054397057197580269732357918453915904279952742935513937296720614485950465614356029453756203747907109924203355017766829197811236217394621343942215982455510724771738295635824541028409031435865204218806451675337474344862897020572566525555249773702886228881208260492452074783308717396024349548169063482646229141179750871617253214281382213915911976486342151027773982068469515026721454828651337904375289589123495025788888453209754606154054363544964630902871391223109145798810094266221330815798290871911453229118082331693551236330168814705853395950950638492527671629980927839393035832367814779120521445452179494084028484949397808782843599296591656699220960826354296375830643115709793427424173613256016139283451776706366612845963182487040890982875110166653805831908712697493743027642145060011351155080676635979775180930942829369832897446771063110862567080390939519775998052458014931861931706282705228012971805361241283412441951213549419194785911263004973411039419082223394282828288044904816835283113036138430177970040450529464530935602990269348195923635603122897292950088188838121026235259844032216397230079360246367879590028602132084659535649481635067610467166578029601787442978574021120453262050650001130961107579310431768461042877218881482088041653458408131047211291216235524212968989425641570744122574348367473050512107972570029452000641126319187706648199253008111503977669189698309601947192929485246746633601056279848484467688243547701869969488568795609269009880907516133141601064729371283232526772265227025213577499003070313942578361083911211625094219335286443730477024605369585759273824947973865992303923748993403429297464877545094996386456877605036946969072960397385646339336836597815443383253651540151763172788768938048138196710100653296760730552556965851139920057600881696649183923887511698590121624268237050609835845285223116855073792923761848273060956395923406975826776358805283911075023359908306928143613109478665504334108557035633024295389245408581825842724937734238585776464602929982709636761111792890773827371577306525273836886965012469105954285489425032382790247227234308373275209176420688322757533089622844246916031310723068103517925719015782851351293141003440940680413451678337096143024772339212588147697621540618743916233532396390983065331601118166708817677937859825368061760907044021747583584899549963135568797771504268343192894743384479944577228352261835538460289848097738990542585397214554053513259681469311726941373451879621553286947419216489705668092809944192557064156030099282596289307543503402161587085669140736864453075862201612010806687485745763814548592618762606014582735579532566056421260519550118436819755996708792119069117676359172358242935949097069640866212366992921649384565430187258154575133599451946051284327605646323691636199369704934929922275208902004683108803160453387048031007306685786894135724244588366708577362199187466419060124185529574363398060950068728565891248927667269599023057080413340555455559791878583674169786600903072212815166348364700467245609431428714338358603459221593028207570074804347162718198036195674862104249754569311805148515615315760665384927739942954073077697454534658693582035293385522657595586825849336317971364809411621485857867415880062067534808664556109458950696898739962151685210898540291987392714621262428351427611316710583013263870808024100040998413943007933042561165027253727530892263931958212333398120271681823463037258934642566313777127078398390059107972512582472636415696328675229061502078445791826329301368929197512066911883490862125653581861222589198217038577499050833049946516931888927124780283196017296382532045983792331956671412881488112521649327185640376211642726890933374582124053780044336942149740733910738333506122342350762273795316794053589387080229120941288518405692279139807437623551274633362359311092142644160112113898258385056454353699604064705620907857107720579272249405951204769126212216256950363111772355078621005160216025848885514392830289579371877337169971738320687518568504389731041868973937145668618752282012405107155563279478732341692517556688716932994167806785824248936246884676633765295837470679748602973071016022797298866246333329713060030165872131925122566886384642559169424040225629308313283242153194339224011441107118219105485912806888158630727788662072080579307649826545190001466027506351727623035813668638875457065505083788013224302667342949477420266669829501072768003023510106820960916923001721352997715038773085442296076120969208831811971816053212030371353969245693013583114349157424986706994373553358115884681966554266083063672966539313832329106604591568924514709527149048166471514838220894795491159563808057611393774664285077705354812384702304249058889252374531448542519082053678569693913119848488255946475199252817048679560070347901174233601634664021027910301388723924068827234706740576149889470019766996961054036439226382872663267402218779639363679572808840572144220239212137619353754452435324925429345003803580187124165948194092310413353136017167562488923214248790019979637377541817778524467006608894599413917608784165936801250540803238275482769644547499586665405015323800498017853006255374220371946848144627649133267335157602964483754076834037523918051216792020437163540594508304813150267659263572906374446566428716757705364619091418148655789647607492669536129104092719153642144917556175625523037237022598694060964114994887348815108829731775254361220565455439090012694781175197794311262200119248337526518057821079598052878014763925717055689709288070442204984878815835485690964604279024837332279374688573294107754076206729566561534923212772396360948070396156872436689472849378330391021418115959059506422531940330730089775230791386725745343831622564974587442753430099716055702434438149615458621587492766821513573823637301369852570107621681817665060370000280017773256598238164216409649756800750838612353575291538502112939720810300546597754452148055328681771319856475958221832071531450073739516650721796166182964698177784635119453496405365955664383837735316652221072450731289081985704544523020776611684692657823731055742540675130778480258566684708939909988730566608470643398774288839390900076539501130743914360486343081418587116398427114714037794483420022649150700141487809274221253452942121050619402336116455876473695970828335699526114262805013456654107492541371202306967516874994722251950330879541699914138028927424765478489202475134381464331385405134472562295422010913110527446098673420771770868378829176437370269836815721337386229839842441046396159726560856282456200403652037970169653423601854555749029558268366203754080819354844331615823834120227647491994943974660044538252393599519768788339535002767594804708110228017335243121257683158964856206719652760726559796986240078227807081306400634923391769926618063534417709077012419878001992414276058297717070037927069460693001604246909136567010921894508702157029574554027519309447880083378178893189262639924044069512466729257830391441471868606393146909590888985771423706256195474042568570632973383016382015470316665140565616211682110292450004674082829680947633472214988828719298353150267897607739342698436415667349591805946957477443515977404077469694177540721265172360685015964173013889470958043913672407886240358683203352522791235585672048654941272740584462131931423876564175744702854892303620960521400781879676108888709674179314586134914169949719158652684101806438345056892697132121753251701710408937394687359790865102888614952609081498946174548656088756536153090505393036522415503647257723640567940470135465348643075099547604655531087878663056821171876813629484589341426994250315720615775767309425282507632440955173598345399207175531560139696271079355325520882409581602216276977004915359029018419619380253368009210832503839888853324685272240902102230330234373471487635727349373322275461792980273674393970402290096506285298942175320403638957982213907143319465127290330675658095746201194518156521298489310708380013422792113577530675845354462841317625603969686149415166599466234262482594099573479837638958284589853015995176470026747609158936311128000183704621239404321405876993821631935585838887755162325821649958658501998306011820860257953883335964287892297259111449463371892178159046843773430145834787297859019059726236940429003209637462322812919634783492336655906249238164174105883200066312885218344693006425327423545948429336884616012197118420237467929214928629229576994940070307173558497897296535401427557356754768347820118385540535365522671585165776474632604412221573675344403427647350830377245845292873711768643782123059903149581207424633567955485197622754779636176648339209582833132107650609463158603444905767025623593461522860971114069834382698934030542373378106146709106638102351465876259164613550594784571858577072566441364918036005404591358326820641393850233429851217919422811453832608506951754759767306438801036824397369844269185862500105079914257757433661928542439575838571205343843335104538505061262221904477181506637724740724392692706039865135692963015590639076495393615430326732806559118947339479247120841717668670917456738605099364852829975807154127696793272103962751901930365861728747340074158673950142569747908459516279119463182182225829843187568343953183410744146255756701320769099346228130448836963305556466692601267510456737521055243190099101815386831430026912409246109364155038578759328309001977294824206418173217615915063154210569803875431155000851130543186785613906128323374841254160751913911158663759285762175514207329325059349186032357756257611010178617061176122018356329742722910419300759437558130132221836140429600818796359073707303706903713909959260577936192766849374035358131969165644605541797824099587336769402288218290351781558450425356574165621871060730014114488595867753796138457689038708203789321886310058516032204905893720338672147553017289046116922355964826849962829336265090179570602243283225217044758810520259989221994500529917686688589679387084306194948113486778319216798464977408289210266564461372507732415549902666454098514614522644098279939782529395222481386269137452356831522168747104799835400696731507123036257081867431078869283208500731195129151243542571313656055739785379042887824745783860628177585403487886541427140515784703795472736868945077601862722782735009113546330516556785501338482331992377400627099486693544982349460793948594737455908537764229725682657319142042122105702639851028300554531818909196734149365409712290943348486860066596838345722141014103209115304889248600745225595294159121319106367610398773334082122165934362222068683834579280129053860779821889803267367036049177669498646568006063051371348993968427432478510787103314257679675358561483676203380450881411414213552125864247436986248923049804503380111603596157364058207306683711882674313928938045242879994211936796642387759929637992052301019188298569917928946662604820278735145907113470919843981436408292037451381758378788831776529269964507481783489931889210072732628114830937928151739736974893452451063003851902620747365658986394621067097422436251670392494105230710177437067328837782387033435586277875860967414556261217494628017413103230352999390972565143920553565087470218837006994136712532848114609093373438755587996658849346329301459234583312629402938384856186380154056505989332458928109806517116617407386006671793834123427547726052793630245100038349784979987275733142548356092161815429655002456955008869205872257486193294366431772117671763979459615570196006520904204950741178061497427157688961509655838890111531935646808357214029794463121129136840909107759045983454625721656264252594903353297630532156880917446405761131885980893725861518428081124137762163633172485116845990601270276173530689252220530218973364655251157430523341966450743364659537566522595740903564365589569182319335585712712455344411366493741715035436200694571006110761753217651636005042884279162842609282756750785469502718581640155723905889899449414448324033275740995159659934199446170303375420840018574565325118194447889656902423353809334051774828616807848798159567598734345452996471679762391627466008126230509068033312535068572853999350385273677254895820392907384335180393893531465179548602546940324978904748269243577980451117409873676190286988373098635888251374809197305524790899187673507656918244566451842961436673030090286665514270227868594536287955827152211332817696541557404746929386303682999234857662153713586607660750893062896583758126719000945128014666786832664585836374073051141511023196337139722040685321767646107643814999384503295640056759242243507221449670335559870993167891353231134674288831143792813234208940550380958318659979151970119619247439908663580330970442363645444193907341411940330456010089538146841661271032182394516825698888084128315770108686287290798178450075285422439802730333514867542793387310070528869380131095135910476804024200773917864477501762512119242649288481463514608812009790263977456475194166646097657003463363786165682752678011566458367491027883029385969723859766212286106822610412053048591886183205487530401679092584559748649449490600110320508845553413176531886309681554496830659197928656805493158904903222941703868118783602618064491173341604428478753993766916735557067380780773170198086938292421215945321810451037745888457099840413620267109535647339477131973586403231260102354725507621222411539358549707605081206510481768759932011145206827572481003617682854805327415674923606251354534919331371467598298388633948849492767908544810171551575581130912457020995951983078079996002810856063492476701771760564907416406230304275277402160657048217711293982701717837482329212614527448599874329884597093994656362422789611887133375130056962921347978472074859095438669394273233496983854707613886306906908616481523104883097219923934208874696843216801642582805700761626515454040330503722097401381135572330434015150715875582806444612221834110568981856532454964937319149296775515159128901592113139083959506368166873808902228170204650115514916903982999353672997359054080568764323341572279597504834915892136811811590034206422124338235369195099173546849832798024180732336894092491772875655122426789255311593205069558123105154568369139008055908335656803987672012938091753185551780370110948368113290983384537475202832518143854430442563376173964919620797454239088648495352876690966104378356377544714290218166186255406125007489074643169208866290045804773618691332291181412572268449208119521574388292849621114984583330650520779664038813539978763692000544205613658178157244799305159181256516814774793090772290090667725022532718491143123241983157841746914388358622054070639519313600168569169522397499682686752476563862032213234118400238935668583684165137781738739356205418224080046999370049379311471539872798538354574520910611184076316992890572912086147993100691954263098532780485072583480911833873911948717061400397088817522633794022527780964197322684335701303789171405529636997507754468002860799663625787373990690581436713277887765776757684202981692303032652423631935133021115378024166322912525381483693703203387261291922550292263132252360176248180339234476652007335967026986310217641018502048732197429230803802390581605444318004057791400667466712936063905273752262092873590862229475436095529037615494432173367954931004530131187342374979195577110479858887050666073445672308997671984455837011480075464820302714978948946483328140974029869982656980320199331372393768012070333783930256907236107864465452143687302649073194080636409029662423000693562752636994897396691387423761205505704256122547401335969222729005923233512356960240192011211156288319301465079675699653213082263334671549770100022964834175478937056119807540880067647210062365327364122989271985121689366591350933165926975784652770823408677793026238081775788066192306492312665069273970551189577026497299289288543950411338214742510595531184035925841787063989708105977019538216014135306592039351502001825979443944512050934917127076133678599001265961471211223848799153708192039127698949664639578749173782459832099142320077782640153941126841122813081867599098566080829493436472028086557253394201740262123906346327828268076665756930064859100263250459842561274572037200615295482436220724879591271494297275085493257678761096096380049210149298654621204594622170293582330880495151821609430257338708193683844010476533364736933989400652402174498704315708099772978229320446578580914812089059746378194514888182516057516316058733951923483804995382250998171787010632478794857688500671335577258881605773223438836017429344260194712045241245061368736991596221894492408000946564519532615468643924384595112307647163195209694647940328281378304026023828237009893338884993784327275869472714371015550757009108790952526195546772934636810624531804299521919421095392373502147425639571883148015108329691625577445543373211615339579149962081804731620871142062527361658636387520490733077533358545713636574136926539384507516960169758789516195344695895572239749749924443278577940817150809809019302222211846205194892787754062499164432333855128327663057057175549815376028436302167733899125293208251077077185493645342339274330626780529490511840336324766312842517119071263699803540966738743141039453819806403331374894682593389177254931883652509658243780700219306521322101151592665751467058447732169860265586963491419735801574781218151174606742914221701084966764217991271457965750778851663976176530017170633305978475151472465411795135462345295623554372797985605269446519980700115419144261002573240635302246577020406436764783861512707060397862503983616396850350606709799185088913870826990269210325501918421993158026326323460555266968461221448723188368937143378409799633043830046891549861669637242559386559506932225674725307098812148947632367399914242362119908408883737312640599561872492141512154512519251494115001670759198524776106210653648809601926689723843943414472988077787655374768240249068460172039872700779953683886768852985249525653003502552368745765661845786200778101482277257587743103309585092011074034085260204276702418167871413654207439666543331006821318080516642895848153366580281261026535336699399123215661583277228523212061919579027203451663668247803065630394075265035285570644583328462296332749708140513130687700168743948587357463407224190095678006713257796089691482394051302580112657386320124632029211095280799591684868010329181879288625525128846272741024125611151907522771587976478296076919311001517916965828767956818189633697477187709793102380411740945177934118677470777415962801148446989550731057145311800274725250766679482866097474622606420308664428105387319595308746786267623063696430133380694042029428295082426997532084391986781856156413781207978696658370057323126951756860172548117986982610365947827159909618157278115617189717499185547727782155007908675031927470041065106345943164658981146084286065325272613191493242963927046923575700302904487314536795666512187418396270673515268731316006656751364387215960479810448326815024251572264044736735962609222996200169710695073210259260528206469624221227312004036033596093575141304651281969964506798568283315058711280705234429227492946993529033555779582007455599019779888820038135236697672543325035588223215272473363932296756666544078515409228632720432339976935363595852925877632412802148157187311213730920899293132988083632502627092562211173643139893553179807653414229728109826156024209198853530479674232329080393207349382439790955246161746182498920583644680135393605867219951230365110198558254430219143556415820842099133470256296957854098003328568754873621225149442715505749412698536672900026875978386340570908931131980430620024608641544078271134702147213733356247986987027464530889923570204601836181598720620655319205911957575072424294142143643096762333040348084347896784014648175356193053238584040418584128686082349744897692806851594371779780697903493011986415655396989671035148566356101777849194416732617042085692615829751861556421365537236125736563502649330204883433308849475341000440025193476681071495864012272052308274823931742576131996176099272213845763099758057476942346134906214664144305889158672162657196566312503630428957477379490349619569518623409938801386510350477079725802666199442050154120812852999224382345865731925707310329820811812775806260797904877036520409714851208334812261639912459338464864626664123247302276829114552075705063848456887596052986037144485950751486646779481371937254721380502816311449561494111273536726958748053793748446270954703465905005428140269562859941220381103657102929934716656145628698425723505058650952421743526815469176703229993537486845290039131360135216192152756627186126354703310524065323702915344117976994399806621407788836282831421577813164467119337897648343802277952042679396331264526372090832155106986523757490299596389691047803404436725223614483098525786338039147297253025572245983538392021680509531852802912145416810250748059101153241338436084731910828108551827129040572669405947531875637193180830423952811909010715685219021026087496414077819580042550793052980148499115129684417003926051411542982850506051787800723062478150344807334861861738973554680027357218626108385051804000763089744132905107662357095496234539052293345332008830643088121687886949750582869524117149013434431743591514978022921323120910532702544107704046828346753324521941363026496587297200327357507369567026282480689230736470120183140268024923668361955892277715423918978167658427485503969224552339088457225733704157701227080965454955274786620913402354341443143094096964995746091382288498716098683254749139966407737845394939374472996364738483457902828540383111576086915113213675969178621792239435806558505594817274575399255801388797356988640108696244845810519036770958649833833688602097257616390550970409256306647172577610328552597424188690601238857407043695568620127338675491937820151354503688569388901220595163931225819719705885272138410475339518288655552238383522776019094361853147449842500267049505479832415035537986285092025986873929172575006682628561137810420229694385199678036631299061132080809748525041970550406663682678336367467740456125855915412610016081895736447260509595980956163350876578426308509320100248403261385716151175021409111886692723309242880685280290233748099812009659752011981729684799554734147156444177182533103749153213701687200632336844842836434668485502500575451928537759606109922331701689985791279814230677563125853918725314421482746591777241474292486104675932219221841786946229161755446256525413251335829223129786810036618775879903038197572470957506829468911802196478454228142455200108039276736505083310979914376252580929790723010117783523439896665522733318819214472097597615731327492285081352709170531902483250123049206558484217933562793366271557845702395898816062988169187810434015484378510351096774743477570177364075146726426917645039373700497570761138672518832076729061311140001825754507921398109603797926104200582371097633447557452663284116119803224699547528176674239180033360001594302431880634554584029969736839569016066200276491673743327881226694691135966712348560115520016871586717749235276858818619941826180740003829462188709981994990549744242212816303871137097809228527451031876559262939225558848336646880350716674043655880175372983472164169082150404925402784733821500667061962133655800909843013371622748243596234194744039880087752984316460631478927043630935805205635059816529838942913486410125702377519706985259345381758668411005771701478159602897436610331394665050410804743153788644669697763639995612309527637726432441959632049069932017139049904677465233182183070715502060732228733393000381418267123975013549882378460014553073004645820120175946344294224493727215795705330225880944313982940816060910736809260991544097820878801243344613240038679381006295255990333871504940235095020192916844814171736032993129353021754122784503728363461604076226292669409022757462301771868304454129952411265949691143688541596150675979435569831502172503434635264298404189068153804493851277578744284779968891043863293563542440279028589979764201696568533757054456599235181254624536287961414561149861323985087531822910959941510868163656959754832209491374901899386419608539270944222228414151844527436248666691659444621990263352036543773113382560697875386706493353103055189535963503827688545583387787015314089052213038083835239178177232525115015913084363399076967481709922399755012951525036707930246483180018181652067860681538873241144005544576674441295649683312010032013737568930162827556028551981247206426258766803713077183977274246543896261033563529320304391626348534562020169599089443343093285298941392605024388341136535056370925751641116692243451929998677195897169211736063879385834867149722145588672924480481212970638994457250042813399319553581176698876215002043419304872277729622895863613476830532844745550573946865481589268415352817080317797925506390867666553227477974774152761430604725688455771282115674231171863141948004392980683214014230809400098520612511825465803190892616946426705932010801405406903637071234763050676444175337996241907136805394553781802176648606247858455109023824920222933627448948842857990106745731445187179584016282687239773735527074567441402571011482511919549049332113584634996052276922186766285271681077151183962595142611363723117266881170538968466998977128534130140487620995936631686612620013286363177064070756505808995293377880461823655826856303311316040519358147303132618206343988930550791137082672896201900936524649481225953671062192427090811796823483436496104095259070050299307342446318200249207496633125013072719667354881644335332724020346856278933380318519630245890319677164761489844063963767776336549003009662674078241909079346309798255324820879076403589785366061915163991469618132527918137634693841939594567431999146488265141597896619969992377650164982869075448353395393275811672985165463465612185714155091664245681332133562357684832467210690660334478261148316278759378267550080106510661944989306121898731319721253002025708232906529163115242977391664656308894933462521559449921079183698823394238595989788518927275492108194509333726041245525736927073908582560237967496413821340511665789243763898450649666501672302923690535376699644594203133353473281664079877028601788040933413135131670782866752733537942837991494128839193247412679262784215239433564592000068148538718963390068420128320779846937967100900752453661066054185984946557807098895093979024976547908842926129817796972788574170897999676830314933202053007952337276213159938512371881968897688124193668166024575040834345855118562543147057298888237132492382114598767006728701893188586793706906339365430660813871962865473258988277551471615709772081041371345046854378250777484314278224031787905408647608995615554649895326464331131394734835495282202149235132736049174701192250333561023230760357095627963096140189932638359283549505819018172075039169465182183174562051319567109692798835529679118714447383165420592384246473676609739191521495552212129258431109659961539112216294991633842912205531445936037863385884561378932115255243323389398864625608958456509197255152127871946534161227488624226900748849842822490562938613262565845234280389031428903603368341375020559395026161823922184733938833780585795268951930405547315544896551349142585022012348604895398676218110599943987172889203427966419089352989245915279625670881711665951787024239224715232709218837447759988140767312003518320777500197453821029744088932485917488138698890305279615547058664563316857662654168987528083249888927865980575496248325381196574276597044592313275107726236004463384967909852498851785704826850880877801007472485578647668295688416895984221236066346880037444904732104649339660672118309079497566387782589120924240969546672232379930151987176884192428349648953673840120431196099903141960299802876955956574192779228612086805355088291923184905555687897933253683975080686209242505504572097475014682257161780412686991639056631665458702005675910510595796268738326047122940074592865708388636425335872334044996948927051916463834451928529114800347007955626684069703449041975567551815178180862364530988957764354095443905667781692515346537299335568246197975703697422589390905759054963083234425375345077601271993509610175871916584746184907750400181648117612862520152692277997564049820928816780736055212214949120839576220808490323087989576631590973126759758769436877202768158393413336042832151309526718640135119615136291453448968579778724814600212351428385489967253347077782158793280762551886500960971000311535833956375863150102180497711989544908297569534767099912638679399530979037462021198999549940071134102271734545587847696139398073847255713246484360477420404161000141615703496177374176722061542081194295594417654880933193824735354995607114065448250179068360270844077019231806998119771275766861863267094177797325656640799675722513673038902985730167941916331864955874402370275924845154367349997565400447374597584644259187456549828371854434780119833780567073466149715567849816369531140069122672233114666062389813528496321920726806602702104284686801142845567826847066339517520539659022453585398066377252792972942184727027671882241549663841220040760051866339222361916138628198604245244586460257358993748385100892585719316585146030017812286296708386334474046347010749889457364294678802431631902424455617289420129356107567025924197682911512299836379783986179527599734373780886890702935793225377872430450694867864543989783916737070641893650703723323007514037108186439968561319154548074435415857294630569220263363987522968436234211751747679753766430247558019327976269885618396188069690089218597596446812610987110758865175750415748946541876953774634754616846117989360236332608898741899923326900642936786605630883291193621405573702174217897239622568425573883723638620385761129252850368372977929436439529924713399178188656454550765421114042404308860077036596421892020171020484684588961164176673633854978317883902260943302265447463571598338741229004012038262772247430684613462025902657511949359842062854378658252864079540438949595056250600315559315197580241443604809409129660438091934473158746545310070307800513903912283469896128422755953975691352187509609612001552150708078633357762798184851857425389103271969358083572492409737399847165201773383145202927151352072412325672814982077900806984331264224165492080045949257949004681734928226491534621755242486304282866470647779258607515926407089244603192558850095753621654608094535486599375307519344129504555110156080768728366441672196651398186111538098467948795740972376541963839790496832518376955876671704426523847907451331357058440855249065493488389214033895686969099403555566264592996533407569111962623722188969748254921677986765440047280072176367070060796432212657218964530517959879282391149652322805192869031349813422364097235887467168755436635333713506122135106453405029341907082983594950758331695125420450769698725017557846523982016418915789809154217428780147202369999278854319870581821334123284224760358140056635582523691875847955902431499546418818727648771496323210223783225292612961179427559547978069705288773679693756721724525089720427921209112951183175735057908744132503539493861435826044668456285384699190050415309555540124894896164967519505103425137967085971442017173524180837664131460264963594240062998600542595683514235081059802757829303714700023103402923634594833738874478534433795744684101255669553411113427375800451264869456626052083761037307916363251833035714126732800881447383982755427588259304869354851079009322273989297009574110458433321616888466977197635015469324106285125102020329280986104334606287354449241290021228615931209251664323719333832367274493524704435424323451699396096453856463100611131803340118558399075192927831197636164912484089015536696429067735464934978987132302583107273602418549139766023245091596670619490634506046268641265721644662762921905327536145754292465003035914821368380719368548335810963211580599316155338953845070561977799261511786237046341871209725085439084625131507700129175990937797029737942648306138741619795330206940101516174039453129634877990054796344022307459059738354167824217083363593339066823765617476580098764013980071643216080356057567177242630393548896301594172567387256808200465021464714180321525451241123113361478609837023833640818276950931128090998980085625001593446961106293901734802894702220425056952480924283732487798768803929714419263718771668281005736259447057370463762226483646984103320994755057729111088047403825106489631316904562486212510842357109138967958663857900616370386446352036561496214378252185338135184169756026587491160804489217031616000091881469805620388308586489442977490386892479366264811251818754011547380802519580605910790219823230866817089104555961358070032682439590143835220736605436973351269325743473393144122608396446932863443317361150687293139981172015577417177652838385372845807615790460982177712142946492822583687666554191190057445468338299122803840852296442885197751754899308093923562931111094096005305258176933661246215753796468393863568829961924979471282908504256604902957424681996155688176506428436505013615995586538230251469530848695164798379568094619054014260734451352510861700175981290878075740701330237675761051470708595858794266110340819668878014086350179608457544747515632761808540372240614871719785710411117578723115408718229817435352718230022909891871780484624463746149978827313577988198401364403557049729439712768448882924581484898885078142069773885464670147001326309026900104838468944010014337635852652517343172827933748192391794360459511434893345077965807325904418445114865439733814972582643124289510469138840201445496911418921569802697329256044673506146760596703519794771625118043177815655682398567771016672905173949773824478658009455154751937480638594069520264996653899998557996675362842081819588432713961512205085850813348636193586208386502199276751286074088949133798270694777648837930524640997771983477722971994992285587494388518472499698445952815348298424077007417464767636614824075191741742424899835717795307551404522151686059882265237325967829978900864509112582328916619245536201697398673941493125587614800414427283982666805439896357865480709289723842070976832884660977750304181133396244007067845119883654044295853502304067564466738063383376618166072300357633017384120228490525096830457365490262708103599592780410505311309639287088678814889078455184073676257948094929087160966177285746311998040258206189759806658891234538550092683416384176563278644921705132532362950907472082181236974126694105808770150974402737377108812869172569233493198145657058096460000687509706471561300756847024113675620655289524938256140946908142422743256979442130482467462995419901699246340987039360430431522285061436327169843257080436476656041917846752337705098965620476735957015262910850606979917296724028122848021400124126839126475198773161175288030782529960103631975298316980457097165282145328814846085333612699133941335953417903489554795118003816813854459794677978345846206388595157870198826814837533041086601515356669653868905468965702068079152632936060852661409798403255301874999902776372628722133029884040661344559698819360719105537596569094487986828646093404706852424886813103215178443815299178262025429576567178502412748673258490422981361468322136428276400444567770621813508914290539421352745334675028286339176677818133002050027921582914162241441254560774276328155290552112532636961222187912246544241504253157537469236152612100638430968709543073995204409259842508767785570954711892148253515282601371243764648066089356674474582827480857626774732786863861072506184144458839332028695828807534374679480089419424148228195199609130630104181884474139580988872178515081066731556014337078917319286405869563793140995294179137534428324590408361980053512346640889740563931574220568996962182190061992443779003988245860908788410881630553875506403579103312364520708992367626946829863342134011028429916095560020876289323937741477266291626301701176175759687802652809618241691727974209493642192078348671227394230985811964612103917258309799566468018943096261062708659289754066408143650439273009021672659700875737327311951459651447553845292508955686455815446340144740480327618117776841742285519541706113155507413183271684442723310870392162520614743667776928262159151890619986727109039365291333280973369367690604955288586982620453448792463963938160225133657736769307551560590075976193970851375706673928030067109822927017878734475313121604429137743181547538780370661088808831228201958156837831540982888498957660999717825976576690326203566116265886105873763690008330456734536879894498823167686826583397922929882111651114925233211622614006000607503600249445926728919815100825243272358945893856222965980154333661512269540989398837916405619625057518749898834512539248091062372132333094444029802839996323301898871792331571618965377931443590832379305043575542353873172846300249376759613363706901634778865219257670517628007635558897525556467828968264848801017257096288128261254405916489210433212359272832474643956317736191552169721521314924464357581587472518439351850077961057365071187577965042803824012595440113891897681420622326729134200271706850014119624030967150515694963230701672362101536381724682803851920869316525650371899031243579545618960093298953828925319333931733006483772011187319508372702822706392657421329851267996283893403844390985877948956244639736680266171406035922198024481709790241886183094267318960290206423074041322187104725591243549520770301840061898407875627157640016497816415334779939592673817887868499187914219556829687275012199220981480063457258498433764884115935811237589362705673675421427862397777499978117843982794734082224258252844789406627628759266464527343592827765287685669744531618796891433938645024075159675454726090066353632463073510958222480794524334815789517175674009935184573384317316213922734797962211332142145082755973861332803384197570629918220075955943966282171746905954666900580760731723331685200430916564696789226039636805774841709750271699587510626231792571762666971913967191002844582344155660675166636450711663482432065494913960276424619728462660605293225283838160771869261162742350429683337011094132873935088181203295993702659124365642750906841290332395728633366927242355498248332458704002696012226726350055201135230798859025606747342845671350621651011346893364516019887375288788189999543982659274088379458374404660535702365660408279605849798460019484567690853059811283049030523436347366813455270166752422442646137141295681620523878320015327007223405641671973898923644901046713199295766784197646890436373319100605039277169837338678330063132984361887489637870066659931130438491518737108664397856932883702717668864884069719268461234101326631181609130188380916806836959160471217956058960064844928581992950653255587363822024794709817632692114657064842202323711323349801044085725043484059659968805922221810038041985416485290707456438018500330246905555117349521748136089205542487451205050355420464954544329405848101830779813690752136390247635829155355946213254674041462243545395472743923178468730292062902231803296938386684933660444130975394576358049833733710138500235235294535803407391077146576344840608192829834597176143107197354868247271897108476556255798804590264271024773007043323594883332257539855703164404566132749299192370466948393910202563920066552122728321743095969884580257027359396203684749813745236248286633076524816256441493534380206886182980488221992404670268632148488254833878538804548163913418108332331933855295099468738016088780111511491804833233503990853868319669772549943769588847214098817439020800005830305877393571999330146171230174514541416458250716768298181426193725286116426526372024730122501292795300862669761210503422326943428028772890497860984913436630004442237649483040847576511508965073385245888452614447589113116930971635888507698434202816191081746302060912180203348482377471565952914569965768635579788232751295594716308976521801941820628112934797440844609662508405090715346233685434573185132304577610245088184912973199329104036829742936987118180729110429016855468450153025179826326066718291281424717356051205603313440198729896439512380096702722445513318976058759471389882306822736388488210739900874265882120418867920886281978183606759635262757540483257565204707972627480573021462508108870823033102024278171335502780832714175121282873499041202612656432506285338185680825294685795126183255076569077632951928813191080035414931103343855175458583652484188657547287877776852589651828312184508001334615338691391294637985068753353687679011026340316708209774825722551980027018892686982530165974856956359701418134709312904931471911235189494528577286488269016132085397458399786498719189519106019203053787030623760788977742373166908304981102973553198104468288658512237488133156125156298665130452295577174971950863014837994415269236940806738875077237257956623125503825834858733127335961731143264045969392218581821876809349330805743761169009676800554102565103520874145510864382879129998295576300982707575809448446101526850696432784332539292574989198046537788351940471456439217497402124687184314641597770758719501068179348743117472851156562039202614099814651138281893942641527395212966789606116119098306386575948192580543680405954751997947273719272346384877013584720176319209662232694780544297334253760833277261281400764218612905021638682254117973163606954462209130837114529781521229872443899387437977574705134713766052185168647853010665274791313910258817766334033225983635906336127236173568595595219622220484948326169796324570499015110949667131042497186973128118915167533185726422938083837782441714565747627773590989523886597826901179426238347262763286776155855708093290492273234068855501570890566492408968670532648470560180689687937963222609044682628138044587970257454096332740036182306116815293519270719247059212640902270848173237944132476141437226381755013560326619823423867834801531451773954100076564605084868098452286710042399861304284010309121510965787310815586272385418875295523730851967523994070189575727142848518668343948448835441199291853160257409140258214769024901574878886275241952087804849187550345209916874748959364333852193264063523102871336931345716149017595906561767409405415209006367947744768729542804827183613753610455958800334907199675708855285156896274057563619405141127887557383242757371530382822238867159451666854081371738377630309738700638348034274772677874035774097616084056714314764369167170007299474694425950354117081439875081422133903097002648464468178716235166764969029975844942447464050209925869548333422004338833426687455565843218445476680091540789879146620222961662948717703587238316237105114926875768032536603939668249185845874036327729494463126621738156036211720558084112197033543379140144258948305532697837668937385906037291914161273908614967892688231776455204151606319539662760497519628755351535420278812297827928470938324584684986303462888911970933590210803235327467162412181837670370547643368873964899930353746269349216077477305420948076060821973939972230435849036461181567431681515136784740712156066633582315014883204321007865085027020316720879166652070967079005411394885054422643361292846146748001997530874025787984675646771534268426748283085978480645294610566557387840197031376867869993690039111786426563403779177469170324222654516464178339194556441363844065277588723221610908665765208282713429313579252269360039386053580677520846521730518629225708897773626061732543883060670561636493465180271720690541859531766058296730825145416154695584073243877346221218649831578735897665680925954412488293142906328589776282088497990928167403872093335484294562329840938044170939853488882722333787112988499413092061877363756394874404046986303075962726350856165988831110107304907905256914003773485733418738891857922517924102578920536044330418787965009728636523305224982613131544671306191226667649902277143012224818426210295179754325649891089624050265618000414184034500857890215572807308332195717216827833988817491008433738656227864011931974073509191699578238905314349673132792182532883432080765065266155522405693591037233361829332217460687506436680093458800196057023274158878226744032209866091597672801710454663301976224521771074880577250021273224462635899804041564158556777267211420038099837294836371784981299507758612023480154022944013270534524196037572921841530329310788258065040101163688174969889033311077482715404878381897217519252388317920597505833146584438374632855892323452782111900748237941973700813576968761658332613418472442802889131059982576100718607207765213316542740546795491215046537955052183704429754973414023895290195454704536103722192948416283826389369294323361953379355335431344250367367079375579860174255503686220463505488061419822033835172417077387800122702571370689158114665403132457817348136802565440131574127334818415369145009850779846458682003020362331864307897458551397089972468487357361112416814174161751515419286546081991475221443499661607462920021507611560345708092383768560853872492895443283461487027789967733243426710590487932464483216486791023784259630757341758742933145827860236934358957358017298148836943248209102835076922110817346424032523591890333874725776931901376807040104358552504899860624836803376819215728620156797871540259365715788839337056655753304017565412708464032495683565828872814436006176860742801729470589124865340254719114458021406952112082271351247118407229828577903035213050860395460994939342331472571706953008847046665961027461397769715945782455232388883037802906523856622617451231114461013122000163408184703431745654087295777133358085415248818495551232143623476544486291527491456874327796807760424628591927703730497686772518034467357340027694760036489230342252553434861088188254040058049710070246341522806114684730269925450297601697496067035645307054025741548720147892390187688315940370253694721486939319869294678310430332056131755975411125118547499318834949002807512792541359073505771919096160822419212156748903975166287660536300589617135534754217084802769268928739282674936196006790443102744587898054789071258359609462302252233491968779472169840615709386510403424529802235340712552956701643421681097785714366662492634952973164663842858278856550668762790279799791123269909197357532710156054819049754060592234231821799052786306041753275959873744842993413858270654497351110882465880087284577036925602916636883347596552136478042406779722550055608001688465156655864065950616190183664085654919304265174108363000177375242883087517156413867827611012741847102696403542649504894658542309989324714902502197697828708826355170573572295915792164905431297043028887089661094631696519850124487108922838801728421195194792265935563706953273124228734082731212138892154367658469350804056462249655152386732828794367398131848767784943143239514293292487206004574795063629669243030839995817040445684117057691770704615719394214545199146091920493268651738693995864702048085012160858460495735394928954493126882318961303775123717109838585529234393619835125880016267135754336360121076295173760321762101662921215617346713212971853896549884529349348353720949307087062886261400364940853114923117810698950419989009767419149321293008866704270207338974181809310093323498594106688825188794042113061174071947572430528861382441610585434273387477591233611743826951983855759378650619650690934417372979572331255783500729463146151068953523745598990041802524580746902870407961323864285713660405520011393706687822804569578571635501281969571378295376385798301586731786373563170404251411310738067533833236024332726398642771649780608658516877767500123833725693196331763308818264639314388728612560130951934427147962013869635260141232985827740805411018045065943830910803109796067170738978179414069607588539708426237930754763277512996209404801089581168117746603429886561785660926258270254215620251338647119561655504028891865837660305794180898192678764226585332868978545964113964938252135113918392518690017944974721418681457997232727891571150480307260375754144111000907233754260680862850723754754836478147896189976523809460574361581689948463633038081501985789450838374000735174496692630502328368390194451772283042778526040358821274367537204823330040253637010213923679445642138978193708186847008021014603177725905233902391505136614637901602895041101214968680020390846344234358200269216515765985303832214089451972558246657657223098639154840641045560656693554741843160846211347685384713337024961806681371632166730914965132094280901859797064896132811353082338615650060911112411175618969310680754945103822527997065798619674554965177415737734062187051141776571898349977267705838978505267365526108868709874425892291675245348182933865390245269731343391694271962344220441399200910375872772631040825492528405129591778672007532750808188961176355597429940013206730260306231910724428223423006881500353386066532104664779107912846579561556813144677064802409820584964679957040962045733089295514552167251629339403227822122810398231131266512106625628026275231203501851497122766950707914248414226613484583270054907697828773010633056358634388303370484237744237477796877644446082421670814232141583809362117044669622169722484781155271905403148725690301009807427596686453053118911822843999722778326825104624147478269163162120388696088126516622662435440558406966563728888644256039583812262641890812882990220870522634757939911336393714984514301582120190401745992662067798393813667680822205641290891618763367817954949462553088699979771475055366052289039745508462228992001339145126461673305411111982694985273434261789911883845169418239266175808164081939475727501950282421710508774888219808242670770415974022132035569949597930936399608562684492698753898115922904735592374067396528703677947548253541569130764201032568216919632199749620835018947935708864181111943877401276040793537951406218070247609789737905276765749588243222784837881223660221822025885333907561365430965249025695661369277557937975881901152994264814723590431247431321028961273657888798081372680342320330211786982645939874086829447639824303501663375062480699212112512925083974479922467299174229831126179003680566831680362476538805092479033216377424522671306567685210790601010607179498324088295083450237589650173663185596868363561760069531894398407052422592844579828635418657851231926731188874920643028940775312757978566679352791320793770876505819375827514780380205993712910395093411788464792631368492806448639556766304309083134094753802640157062708270105797461793980168681812450303486371419799546133949393413865190037821136957694701297138601686781738539848435527651580897095434836875019974715241464052037257060569282881296177866516863129064700409574781797964466959960371356917546318393490297969405363094466983728940055565430405195155453426177034360326088128007482250792012283839761712820385659337562891946654293854110247516242558266975530281656612810075237692609094961681735781557940203128226909733636010334798680359612309321161292388252996176599731723873736072483639374845962404997853007621205883699756931614414286597289687430299171008155034325826745391638757198606581990446180582780766592305564484332657810330743888585837440302393473997944526863059725949280905821529809403989068198058991738598663179650676061797843026319499141035373035465343483630229666382504732944831510358785935496194999568691453789626679880739369221755255900365272274278907381512013323368613553028446479622635630747543197751620886037021680050190213913311449903666136848421367771038546719335540290153864834691667917128464310407310735830324480285030386018622401900912312585923044904798077463980826510014728445176713597257184715137763154537372870274213639663338766205885066185474955070988656740569803620967758289488742454361447722195902904227901529850810782491638298208339700597017907860767087059692484768619644988266924998506080163420207280353756549657253590191142400954646781916573748630502517640238652574413797945983868220342612377539639157221204482677568504036486226051701233745920494078591137335206356495775227210527094912659133535384475392174303937878951785505737363175592063516080974348970285717953727167352329306415967657325474167457408056964659532497261957269243917047630826100629173778168551208051980823505611243814288394704134826745541357159077704690443095952041480366720104998726010194072557960446600548127145014128074813091768752856212267171283455403684045420209206009222066715915865061425835492634283712480411073150049778643194763983426546575052307055994302065301380875103154769236513281323127879727719737001968240126652090528756309189654537272626303802008801322405306222336378962637826158384745788620786414925175145363842370558617620212945922548983579777655830880711444229301002451754735962314517671814817448083753796965583957245571609814888345542020620747256088555030680068233035384446004601227396917362713923826129590427687594873860314651409387458294135570986707734992322628424075872012085916074830838594006242957061490013069696627722967891480662321445001098744596210644960774170726295682236626411839902721678808266868904690252473000322995531288514400991355033086092479945847621733029072543115648814131494474734107299959505054934229913020292010333670324763344745046119953293087515117027075972585382496381764145908231170674438164081328103358828211404653418674103017400278088417088854438925439237252345819344275470876917113645605192416431011527622164417175448257451732824865557917299241930438174627695801529208390054760514081371236909378707195163159546238745033294099961561280057353668079003177691421458983614557345026039083808229893685410997100477909126040864147833733069647058090863585623054319452967289527587009879042991635760381009553033514668323379435350596091783081459180833460846304539287052249956662550006199971920721453646753045364966129160410438976998061009363696973405453073806585137907324376958239194070842031157053956675920828254270757862378515151040311132208354428181798489907657911023323115240958320206484599330755634540007058324083603131967430943037552648648996228305565850090924588131330055278730206041421444670099544703191881095326848857254158767002052152227049924141932854912381930004518830309566221249016858071187793338905016750976462246924945381157439323006021359850240843914557692402670470640285188288499110339599640209239587959487329722294258451927283982709764577335489910018220484171144267929992852128519797215855145267029238604811167734465924653982811415090662630325332603523249122702699146541197207423406299455919254214357857210191429545267043330851171030242842813185869967647254494543104071793023797229068090574956511985774186471232209001186209155662480814119487459826625736913008737469985248957932968276892506869486302805380764467062548495612712593373407721214005797220057082268313956641463306005300709707319797003695977283375609642766169836295104061706707790514211125824477112640530019929957981122341697857771335805084239926349107391449700419344896768169935811656731293382353192892000784043288086453369192746687095481552064523587263268476676693729400885592264798412972611946928216868420450640831742083901567880952120228714155659757134622717212388315811304073807279647188915871725181874024690969316070627446818980434130881296454408549785991486015876820871049792532394559697819705018491996188371842242758028522692575354441943240928515276877806713377536864450315651275841824550544949128613658363059528085202324404444143994087387379559476915514963110237033135626226031210242750143516929795230974972400253081908145800123329843872337193521375230679726329667051506964155764159120115870881425971330060550193734374586673504063575106234263891796373937844672808631715527034664324474628902589743325346842727756129582631660271078957153884495656114210976066591542095356259783240229094859427525356346102748324384902375488292848808802017001130168851321367169530019887003939548627242631705131684002947122151749194885303233308144977095319389434204993889776124897737850833589164484746590155839653791975907996663844453168140766672006364740102959454034447835914642478660925805722395559310722146189141451472643991007485460170123414845416249695667182713948464286035971869011800058336628524772078675748950693425845392998903379695886807014819397630463306247686753810445894780263944498702966899495320662368498532093093811912772139972065674203655929388538107397669252819041322831053347659730688142331070717429775566298183582643890553254076592547372002182503615686271834563216571171064742617046642582332147145286676087438911228604202042099980519042982005257467432654132931525730727658403037571272299331881089587424423045223040516615024474382828871165341079841831184918447762995261622373108690002727682760716927981009209089314195499994223301528442776246723931803811629287005815064132944697099701584529915847641668275536057545861440056849399309209950065792331813647300164784594131191015853429970231509720542529616572324798227630940006388122177621941023249778370840049924598732282493362958663999577533640046146506339391523071006995712418320966843465611867923077359347297369784481311149411364958355458712216679949858879599332194988380383184031731562459867720457814474607023871637239164235313415356802065186307544591258797495270330403387451250570362576569060521654679073530908212094214451746971750546133298362299501950958345350475153049261135570468265879505162113527127206581224389588453367545320455036655999240567924109248105364211433183217589628376045500948203376869218019597524974812877981203913948724896105673649710279929038422388098983029349031422395311064597169581540156479972371161344887152800157925165847640204792568863296010521703759678577842137203398930557369311225317299960597502485040430812545096550724478315727726528439078840176943781767609170659896865942430579903299544392235753252637404528339167191592696267542648802320995222298977312551575839328120200826488784187369449505860372252978065156923693261374228301448578536711564536054505496284388305757071499730996395657357413342841190640392440567892655819959778224185984498214561936468036422246158093320872251328787908525386685353542591459952455386839356083233226142647618685802193634441918017312773738198199780975375166303311844040342847174112673857941778312275054784607078219055197749950661714420499949519725960794575540174763197919251117189690612041141308262812968200370210133237232219578153633010435658711282763102082041191261527260576673776838380684277257285752537094824301435805750612201397361551958015764781456783121892249613664113459624238390792783801533512111502795463187996119679100550587830837835606766832539600423367950033395142250939369477326631918150818952989939457999616415593334013664271842724896816176220816806001157602407959458487524537064101881011986843686663331011471110833002402630920073201373156674917608498962151050692725666168347703414480946404728040141066193952184518822998577418964436089377075233059172317714839801559379236526744126162172408412832521006242716397555078677767050106126309215052859755152507250630741140551429253276538523810576058579070125082545401902236107392927047564482358150220612263758019183247281189602987192536410743635325022630798996661470450493582313553852046929780503742020062345660925277161395519618869463184708354939323847658309064148071019041679014990989732068840803494703116774425507669741563980649780611043340785452945173648901213282134947579022009625409824198751198345560868903412944761436696524795558540518651638042461310904833871172214646554315944789664109215770485511463901088212157888430491486759956357792338321855670383821260352181318502617740549565149113778648044462663327130060722212184125160141707967140569157844386289161313755513556860634832492842545175728832112749401115148986281966233899761372767664735103409962593723682517230445037706852137573764149589010715938390663930479226980154622187075905868647666188917171612919368746044524506851835729408980374171506670136008756100300427002938482293824229691992662419179187971382258356141961109652262778012541132812023109393493606858733642847892939484507007443228839070655471886932403460899076370354871675009896963673024824002512370512392807177519061427730791476917721272724451181447893824101296097481878223617074942512959634441822441852647964761265817509640110793962311544170178064368343563787261882751620922509176884686482584072488245063222572400419018310355014324206294785189176601476530113771070067490825000729092237754506184195882846732662207113028117732539467106640083314597232190816626517779505547606586036837858686324066417343968824187088130741782334793361385948375539620224269051948169432965701618189166251178208747492029219080027825256005463169349591278660086008172833745452751246605390600588493061905047919490173111997343555407717675965247416198105348614183785375263962031576901499424800675514180373918777462893801125886022339309546827481064565369959339583506452438918491096902559374110555703428971611530361872673660626716671367456404691796209316970479134913684910531411072122037797693944588169394908131870486519111749329832043612816674580839085166996474826163688668892319190939420206042453022730902313979439082863330669850553737724325046787490696190280558179619542037055236598272835812462737760953964901777305405356562786601121303172160966532230128287291565278712535322096122593036776623436702432261020061519204046585307851321707996767939301927596653974615876441902151201096282341488358210630523764163243165137463202019409439247979657493827193731112621901076880039435975538702203860654930056473394257423168855574376405915665624618980952932359243602658053300338480326674219564807705594018697264816276019603725301003632783686160461753120875062546441504258930425590487111774499020873770526163596875301596625087696650462862180029407822475458377026043699631479256922422431760301681670253079894559559329518692766287210623682741637321328096593737725515085335406000695826085207404151022247847089246167010204815013430283797522136000943687310867865856087865824105295768162013503201589073620216605609209601576775764106299743976554897378070339804373349663700273218280879295734606149120459005277504292099281080953444356551114909141251220356253837222541859999518657156237191351267435939360821687143167766898329262425202651168752212234162199598738285473865175598873666161319236256621857029946129972619280565930369825643496166454202805169102206590070555034867009121989908454055370491575338294017254583754301544408186800601563652225042694131489703506070241262426668791186090712828101937480017373654514525890017474028476847510249596969845692643122795707032990010238291565280952465246954400037353314325121373518913710896904602845230639605190652178078002439798072439143410372807662212992509305930338844853861177085156862065462204604179166565148430302685737637010712005797612058584441244310205970615104745787809295240714361082791364131211629247469531319485727633560286209176920614704510736623372221270976263209401823042000390910562580940374879943603042720577807176864696266295505772053469923275611322705110024713956715334147902773504252375560947734127871866996768260181427038135442443464129671192203669316996331937989535509997869245610725627718861796933234357992846970295454108361283554342361229195508874189057517383716772347838109161990584762370801747658877083414442957970575972203212401988555345755769725741037242540843738035159244055914174258759479628251244032395412929792864403613053732097975086414230716890434602118827910485288714915886529258986341174895580475176449966413851891575313127691632564520467363779822211078151631482544422265900714551921918870771864783014963734674643172992487979177276515760047359108274022003274524976196865575832506464325205034219607165457917604138538203468651122961480143332136470471291547715891782519564024754937418133133525728045704679818622810445542154941956405226756098661825884550822100945583584782660372791860241085907701215764449054561204757337076114219030612379663674748074737014708841709514859812109412935653855414182060736887959965059698313519832005932047386562931566273917553857160488946958180297371358344341764075292927347176546774175577801446268766392681594421782285746298443746718054069474431383105035414203150634915525394919976270516416823052096197776870816060706850331568209014022985137078264543224351237601364545255473962074660912890688876188336752992084217530302911438488395054915907911289816130886663842242555264206965683575807827241590477402072530867707031846479297405013420930339836537634255052158176236880185807688047920822960360816744639034096968217190535834685596495535586340108915676248080461134980034965048064734730928326467681745306625477752547688633966604111784720494624849968063871913517148578919666794593525370359520297641656168882925860802586559442997547414143518957484693144184854136936961150371818078292083182735144463447312773434066550069415255067990325178826745340384998829314077413068756247198436679294112918822914393652760143883377868646278839471720526519713197780788391931370239170203317551963055943587408266878152267428606578674377544432662333349029214735283992317128107815115391099929909256566426029759820377790947903672865792781324101584231342077262266307547120450532382443451960474547174831132621693301705692428243271953422222412312703094404136205884685251284729915558680771141250265786385483771399277120968303672867444672812994961737003400103840352690616959241635045281793634398364822857159429734293898925909033355705455832648067347358070653796630621732622713475153483540987968620634099087171245808301555588497194977700844074478166389031835582348590549661791957371236818253502695438902241810234881574742945532453162493433495420929394998925535555294931657159647782192772750293232149728313103918109342467467660945995251293609880957710863923177160128132769912311143415626777997149378235636852278188992989254801399490407698566483996527355528192497137738017975419514629991326697727974916448667802598771162024678612533265879260159429876106802225337346862270319191614726449813404233153812115705788832873123153548961844289610983665853185478337990039184563207599752166677120540191807702837451379069876268247169488726073623376020247199232371139110216267187677835303812197230644645140584133685273404492951364953527571986388856507234225549049099444648538696268485934256701800724432484817087670624692899056586073526408960676904395193150206337620574914736209277245425733441914543973922323078287089304628155094642131655543579671023939057115688644038349716190889098001543514381802798210447465874631697522761963537744430005870610288288566209785871143690309168065124586002293867141707231660236194598127713206897221491377871571398690131000038933566821065129699291235116165233004563961284738385777840077955019419062733972392592067651259465648949854152148994215457779971451296565190289069921614045551603006171187950930849874266618732105944955830687857806674240607959840934814415202265004700513743442611011645052049994590017409383031549568163844853621534363518137292658053691414297840780895354896001380390308146610399320902847663339265441361739510346440353044416272217113000980056232351171104733298256640811252065267098360444866539144378951361770461644725025402216877661551584544023674294943651860226238236016785963715077095124175580370336925573810320039206452379257857156546760199832950624382735785168345209265422767315006656469085438935617901953413757626754660092727739204709004628054737325147305064460843310328213753943485055349469592331898671545916546785970081309467009315583115309126161656088603309288338685056746223817415995397084324219324734369639860863823991385980118450745578715260556891483179512849711880249947678285647875589113884574462227961651543501053916732581021214880652422922757589935979394042234073268242087943649734036449852978365632999432485813085936019879212456226600621794909881705591732287907305075123299640009673936263974952634135551207860845655942266699531192143637823797878552808883777328422671065974608017793997542232786248072689933805570548449279904556539030833124497444571639123314288179107402484720971720092840590328160704568578219383816813318402655468805673404686241096463841023434898503994671437425622857752199367493513287697312547965388776194569065374502347957490190911086843324352487073343365743664683086519080623189013361400300852019976326598693724410790385132056076166617160571877351991899931990480969346340469576118444375877233970341838435829913577493191408324447823045582542301342003801082186580761694738761922607054216498873625048363659485136246734212699058171800716502369135970743868783891481069218262240212899266806758754196571762411253941386426364299175509077827058630494433984458667974586525882710902185831552570120871348707016606879739072489966072438914115371826257975170960301478909046098786647286974177609154862828937084014641634564323340504146752616903095210874522701015777925334968089884695626322656269451684171628467241341257524778224473484876836828667799323074023436190574058693579396085279183110602076970821197081395398507758969233077865399120290305785103361941221951524404419403685728789364592076138283998181916398433372427468916185837949090517198429354425311495057887809986567545589170344628843508635652574249255222208028749910621752516537456337439239244325854060742659264708047336652896272512098591437494673531887803717433684965810919617925638038270831520452976076395323307420196768865361019090874898356356352744092863886344838578283579893561443091138832691241286114876684292469074227353105715033324996942554827240086008026410388676561619772546561823264607374582746616804155022497438904076989389505510028237218707036544245292924860251634788280737029687074264412245633561401217353189904424680093239482576028871434935858539575766438876572659851358866952677720036051471785558210949613477872055892148770630376804250589508521075452438683069276768197806113556426182045899084103466311240699636927845089899280364524490792932372589549676212142700502072848606975965806301569051317261666468739723522277547648313532322598819460038322926884110129099991544274587626019999098523707299277500257724903297841192982189629237065458579580937561674880246875123234535864073489141253183007757858966958946064554616876187901826832303427418149966406314864828230243272137439350811425728561203020254266844145067089595144367100007278856340917644756169790510983443789300048473458019183264278808541034985585193096845838171324131951192534271648291633847874325072751126191620462966611129862473018293557161352838991374790987752816394144762314523402794701944830556448754056479934474644156100735441827367939293170945002882850292448320000811259075618330010121847904101468962887442382693964357779990474248751672266749550487623095591971916631772042937308468051163053111594989446930088564449244833508665403073859029743563364020112218029505845600587015819294120110082678246138850520951439395882855545110886276210399231565287312361856595772394923674795672592379507406479063914240899795199615960348156034033685702772255778302868845555964894368676168747667072733247635505926021022258337205303872021217074137559940641607497014591309699617132881776569553096313477455328976489337580086015393413233517257991205430026430042728677161306212856776343629030721897723695502672747411126381474344358743857367328560567346115094150317510605187739485695558376593315644180391238636806352028322985793657184369011597978076228999426055716026657551155748731135033377190172608424038443577493691752744079521351138090526227571003313160760250172219969928787926611444506346053105977456570871328790325608949431051009897284872090720317693923591384117889846150739158687831069204723457953246636701982612089866805354991785191148548176503430701730390267484532268800476874777013880431837481738895909189572439717059761897499168308937890054028103973704626999536468457415647892432121732513173659724981853320074697955177900909687864841988091457896064931924302368127889237428874447906313133888327707856680639703851128891088795133097559102504384253430504681860532072096763208080198723660658136123309139418638989335274742123064457841152670750399450634289143976045655402185142206156981029338268242432365639579319161282792965339310191692233969999616270927596917983535300686406273359903544484627761324532943104217249139879688319019706982770212063347869303832761246051810860163165258381389934512119731710857788048318314225803945599547507644946645075218913055257033032981059657827883823975355346783825825753341163245960975965188684904061250813558306390211448176235316784802241555660440027742919754978651993800825541997423429471049994634041875841275019921459550311525713052301505081811324359639342811437155351453452268542367437401955586812869080441183898893562254475319652000601195397901325871779057719876785531203369192630165981041166675598069176088143647887447052424977246475366405888165343870751980002482854382232169784701840093876535447484887161044076529711468275013927648719779473192988132485829003568431467145225325261274069184935721755479230572140358917821151198296468729736711732858201389865979788202049222950466006359715822222533154803861473800325911429518824429816113962379908147843315907797853988017012444116797946565341828079436795411379379699986022669723037600053073063487707785818689931653242516092559370848334802695634147227570353161487405075734567447947821932907010982061207008447562782650144451962251278716463535451785977850817967207024503924517073026298723456300469881647916675406142287256473723634740709791732340266758710097395997286547159364128722213644583918241052845300713181872881108480522678346602619068056161657604685683353506123104004351081763940833145005047643078125437510282032446773956588452941162998063173882887907971768800855494420791652048173805490246889704085663428425092233913574734849646607577563577246374329750744122108641935667250746229521371117865433427862419049667062592038548421045629307880915173616111369523640732078083396841769656119645292799103488656095666877690558913131949218579489607987576240505585095426313338301498606098155055480549788099646943505617877690147371029412429752009903363170791795455627310785893772866762377032750905505710488137306813544695006936895983095099266934302613277902496095685170299455747186632427809635209785571298820611250738747967755646004536799145639482894752293192422252358142795309631865057271938277792097362343037407868510410552796657908989203314337700183526377426877321241211904022895921791297587778353874695384760851643493392415359844880233737246592943634068332290608764518580226821045974312043590506331746137720801539365367172633256619350901137435661021887886503719939905120025449515598871722730695227403484903390708230683450688813201924971415106099519528175754953642963314469420949033657948252953416735422582572751933798520557202675279665753006661955763593913182519269541128618804212357139961867721062138223054729143651015913025275770079047825157336624596279974815920288881070955625682977669143190628887033215959542430472469990578825558949025409275999320115042908743165599877723894504585755184392626443573778559864129327146443622492706175680995258355473394213801009898386413154637874416581193246596531923351183814148125799049021128196066867190897692897058090005684911875763816027512146881400670837872213636625343730958831071420377600881791282840658446674709462833056511013537055374842249208064267065430578430103984062231256404813919550651173140467702376039449393404473922469125999387981769487591634708289477918499846866325855946902807200744696341198040084136993710205735141105143694188693925704782372387876680510094715142370055572642531069926512381976623896849450416818778058812240160777896662738701111263646723286363763423270700746136179832567319359771546122383170968179019741518984705656514979979179508980337808631479823537945550998682104594880304024481671389374656485648104256922331814216374090254060173283126047410293513265256137215496367651805312540200134162121382530814245522366602434805906417554302818011383028055470784527459668829045840627606904465503939460969471306786679951539081331143070863656773159683442139643916706331145201118020918534027230364815895656791612640833624353526131283939522338167768726882302005948928019718708883167038315441822622726256705675954075379659912967370849099212310151613101620576686445970719761112889429913178696655304051277039711634997783612427611591089504726855394662553370050931540188337596963496064222019151086116842637042540319614671062405924648926949106077058603575114850401047663915371359278907684294633092004133734518987086895623850744995101649769661886496368199357853205576474728968023572623220198857707138050804679032793205706994565476283379957042343820414177328652724725162624992361994888707937916726774198618332877962715943410956510533071247629619584865808277105494597080724706392540307088205879404269111266586326330720348041292264905728030710129874694531509420275509932892203910749231532345236398496942478931666314658578620198299404954076423811098253840224563080228476484828074696467789193615272292163169276602105492206954824169346811447239100825067747576896933982739225204595323280221302270849324127762689252143376439795366010507655144869239931550101038854076864896182224050212435889452730169777755731598984565784373538665864703978845986359158828364969980088496130754654915303791323520746550420531263502725144012339766983302897216127557305384251198880551004093668556207976446563916512131008549563907314869670992128030395037370111236116100172850152329945083767409403966177860934951511519334609993964555859692069886421292719775393801913359576225363840253036161446501655681177616380684414042073321623013600644025651270730414134032080973166152785248922673941173196713063755102406365317400588048067100446408083026523334675934860403379458381977133347225234471674155620791522388506599999942552772114699829036360177946695866588881515070860051174632204383605438254011841452131894621055865820767787067799062431117421376752371009226823067066925889898836051830227816304021726434218402377903427522941116894255530099621321277343504623137658503188206649874867815918435711211616734512089439557231666723149685890595589555702541506665125651646936072706305699631030269226430080151742253926097386283915210884994325949279790803838364059474832302221560609607048085764314982135012550760703881638862891676669952959775329255741211582679730340488306832291381564928501525432228487693076587693931094614237507543977855331759297443409765250719406976475531725845492544384137699385111341737037855744278931487756771134577502544094853791480751215675159020629891972268333074415726441496219767407671340027833654833092855021219952340853687875235257730481475519800856496882284616529333194360751702801748472582619093640020924269844201622577930807684259636817688104478615684339997960890260983788575013927139304198458467977908416220282777818317952715586788965762374736461001989590433687694746277166026972181839415694649404957291075824134431395931299191790580001958708520335946743428816544260346183374364546108733904904146847444452035191669068317054475765596667810684267973124141287992192719956079705397503824034702217534441468225126670505589188819715123738327266779987267900997107441649669001577065430871727545074368592798640461622165917076106428800078798994420789302561925700432458864698778536628403419365953678311728810837552462168596182745915044500215271758244162938238972753734353744891545360457179920384515277898962653059816771903595676559130941338836989443620898024564703112002942976956448243129659109361868196263661245925149383977364931124060143113160588939066371341606895192947102379397604831977077856632417208202076171730257655242878683527117224566634712612939056045044281338108684288042847841877914140105167713764388421202385788865055959404295033151579482819018437385764457117853021640416337133376623232905947725945791847772344627057455332462313333000328077358690500156592757871427276569727046652228033022796967334774318242887842380485123481686109149637724527244736742530132290934419284925170306441107544485987698261301463440736779679795023513108782848604707836442043589891359376372064996380016309741698710636820603799107731471968009714516076875027107786499826764808341662743901262977043760508673819403589458378084489472489925618001007960949632284184324834924742953687534181966948775844915411980927606086969652384920429404828993119998187276246918717976188842305299981612759130360923548624636206345255881319239316613965406735376920250656067976475583599489155189982285003424273026272026419009136538318700159709278693469405795442760210685934488306828112866110001693902459959192514448359060617753390269119229578820501307567704688596801531144640716970589765728260986059441912900414864233058777218816334408242091653209597373208429093831002094049713715385786433524534676260941750286661856288102129814320347461414607748661011104257611885296902445751274155424223355356151054107895861332098002233806503233022562209997520262358869663164532715345518574066382000593110043558572417244946208833503400693452210887463863104689532587136403077590228366048456208282713128389370290717120230924537417033434408122058681828055947354035843121226758513197062049432100233875661314721811073853408242873466119284585227220274028612696131938958291257317297034191061134624349679493032090292873711004623518114250691738750535771690205669630227388048290430402764870268192221851633866076204970120935431192516562822358178868427105576101054214083685837299941746451748669664948428036203656798440570248254651016424117469533833405924300718953047365719588791116829544130961894335058705012560238506676767498655598189536272261590325658372062146815588641351512631530734101206970472454015051434591062315408809261574947429741800313729276176900050182889104771197826645557121616040072960286397672104710266314471274230670592007588260384444493673016829174061576962546740886495327577762792141915976427772741197004794491812396361163927879260508016303892655517711846077124057352844878142859329410908509211324397507271387598244731276181196689073862632578976066442206851605017718073569151036041822847040058975353852552470199526018455925515694244993069163296058215677757293771387741808001424978391557855354024579250161203945235361509663290617959535812334740938350330357976593904104967882566818730886606675824497436373816208885423378045970389738590465419388714851727182472134737163284200053021471382094517256346483004922765661331388282292262551844994671420672203554290552273174201825133334802486225914782213813515685262055565513833586241668290353893412895041793404942756360053152454891809279392631377282012385506263543514387265838566379629516418712443392614581235091067419097048050899652460363288804042383773135661225105775576475238267285133980085622005478095839362078200674293399583930325210591139750155624602302739986598887855460207405803381273997073906626166924332624909566360940711091519797097279893730521865771580970832836928960756417580207453554156815275552515119178474199803567352466449610523648893041722502712409763481918809535136407611398529524864655768137413390892963858668524401848139081035683582350975019304583189589121358804761688311223762757506152860950200341296365761842447562212809383905185566963740586522118177223676363513648401709137132588154834689700861402358488978261005525795861581737814198408868361044077977326570838667028905615240945265963371240418263335502128664619037701743566941378818022887203024080177001319435461548611971574654504664080953225002641183354008766719794152783890183452178059522790024160474966203656502585722760982567858792700348347400800022035214011942818153544478420073586522627694263722914610601744358908083477951283740026885360871766853914528781059850988328231343237810024132404735320803726955828505369969221182919226511870184299169280784087701478258757069047122083154952723157961655289202351435507490225169646474720306347154255585265489269258629053580312435799507431662331568858590574873689871217902073660570540435614506940742446687315303862704729000036223856230813762733241636492388261189990568473265593051543424140009910143150809132705006143530493177984921520595267407071440408057983868706655364119160718096455328580975952187060374401685792797839258916382549610862066694854164727061425682761721919755725137467750334088599696412423002264350318888246265098612129379388530452511312363786379553629652542741253120356264301956641251764896465189376888801788947543820300467741095950513577727567835673798148760995295385854771168200736850955414776547231735710529852958360074382937308699371370554484193523708166263132292475584301944419069347532202471148698733114781940421391971281667884199964782328135461318738576330849445083682444325362238219075310839869064600017030027925053668776605082151061229953908882673903958726091122499543409909066726613719157663630372764576612692020639080672332153466961721739222987034516757760420959394536612192767747001924897487921267091105836842826620010835532395919071340817382052405106652843592758500917946584166709716737823907258818892772452582792834706289654811858700516505211251970377390228722683890176193672297400702898602908474288641105410399315345152396531458330017900930597137122618569781723508436354329165400127388342702031761831822629858015694682648408779001877235174556024355329322521331384405540028737079580354145659618540896020771246895120331753277544585505853288103074862994892593779862164816204947691309365178471216838526363761257516830153979480134642523794730358839231324103477067708137707265453339065815830632692910292252680301429608772076180427206246329708985883172373986772446533614942130534578281923055429753058771594054681857735043562608881944150659578370209827139701687281681753180223980575256494508796851192949017292078171681490700163394476881954790360497803648827369486609518151803958413142256693548711523784373663196561806500713420054221129861397931797747404394234399497751123045833252695175427688201941623497157986295019929962325997193787605355844449503227402457634637704176253664379170752852053116880217846252312832624373127591479387060828597589202060113661846065955351965448115698700220119059464900566971866289141396794786632208111722456362723068696574790658120700714000736354946173172409662914983711054964639078239510711874398343977059022027038982832090372163765084640850580845486918272784765821916437823853327318884761886483500736973588150572216041470703946901026333065678521066491446987785714959283423970402239296217787977035672623128732347013420610472073261004329833043906098215188482696152384041120679230231762653819982881337710077994082991917855451003493284413014074561091961136312595897237283449835874339317582104520985561561682465285785924468935975178823754642732344404941799769994626957027602594869332815404247284433051161315229684752526682725837892099563885255850969598549098435264195664492779471251662721965727508783498485628137686550371809446640664665869894507004779156021386002598444262598650975284130296099279312620559094695314796594639495114221490624722384781012262402858702989034295277220930943272769659357243587881632422110109104196727614392950480303373381561189059279128634130332267549751145906006904644296577288836713575649563136175830607023456116773693092727580173684903281170185565503497315876587337644100682553548185908073303259881450042425562024713615437649236882945367984407242777476487905174278597197701275749356286662691328085877137830766026387026568455921719949808461843256058447564895457475631321415971789455168924105423349146320195646494700691227353533891440307033249196587371356585351791352368552547399283894869462604680771376798540550172907468373528095665647761297752109270142727985371087583863929212373025861129929547026803392415655371662351650664764993388541889109158199868386655769292440738773851178481980485723747715441831190653139281476009479601188026605244987042927224363163458661202691995864043133522971021191035167840409498937154224097441045777859450299414757355638081743125293208158350733932020794749918647601743825853894939094256891603972404305454769876594616743332003811274874179946848624330076023117850157960912834110392674746035726740546530530310618006500556344159157492014596459550096460303807413394680953184952799217912331061778219029818014383933016064367853148471467745122676976819877698787336708946772921794178292931627548391038761829177588137820824446065537287817907738028242655732876476305712912032855502826994965249632831381875280039573054312531408021798730381524180874399164512830734985791695883778544570060112870807568619586854669649791545671309164875353688540177364126348758259057093921174204885219863741328735676468214159651923627912704679567005140056060074942353264664972263080736652503326054298620216308395522942031064363227973237524809511197870588098303264231990689661738037229347190094270843127120370781554864588797324180446080241066788849265619076971095179542035198380085007797573766093434009826463092147202416394753958873633810491723543998314886368503567340493153112804004213738202047068278194010101432694382393921597762293640545102797544613375739001950411259394358979349210620322530144164172368284226606939538035455968542252150811545754539637846667898770777241646655083709308898073828703412477640470785013290242627116310250067687076160426546597250785445119142583888293805065771195490727836875356826549079389421703570339624628242586581920889240744552406260997565252136522151668317295003701457223310865346647147397983378829786165571983542061783858339371601398823128410880705612614721444098466115608570835251501810481898664282728856296844468950311671404964651160861365988801845069730597084999587881922039490586941509068659461101717903468045693355834696770740494564711969093062727272262211733219936457046852491949230926631369776898854770523254996384094662152498860590115702991457120753795817325562874961109341605121735712245522324959132772080782144937405805576649031260734919934848909253476000217343409418297679406973911372435434887610136330539747148539006919458114237238352877640481481480986150132654962889335696584095202780761078052548151796636407956009846276593177946195639791408721662298920158363448410870025823166513903680029334309012719011694914720215362723917039062811126002912820452508729800773600813493969177451121341238147167973211993612797033568595049647295370018322451177945240826583435648416943908597735764403376544450190157139908965942771347002600899554960915519622961589444523047546253215507204125227576161480467536805619273324975937949447905459382914414966316810721750944076061031076657181089453703040383694659434588144476854873264453770597460409405639102087792024217618083017210280167194047419864342150941421097051712250121543133671840913055494919515004008466388196171723986067758258566863503061291327374329108422988908141821460139917042646092886583500046898888670947457613726699126353801513422614341928271231963169615253679159216947097403947131821929780062584980051933009702075599011962857306514989106800432770226952655630151037924735328425100910807901138919378310160147502570354421910746869082709925794857441461171886440608644408967154123419476963246199026798686787002856178154664561811746910554596705589478689464794960035901837259464061712742563068837233287058112948899702266304439518937895062011137770920448668948231253827892163379588843651367192260282089746608825961845753426513003266774789792326334590652486163282006094098182508642195686893182386985256442696313862249643165156412094961255720801726017125501078972007113139103822281454192522755367161123859613772733897108884394613200939855532078283779457256646329364564185539491907855436310661824849340176841758199588500189639045364253685001136265763836952466359562151330865417396643231454671209733061379275494597031235898889801707373356239310488674427935840428964785502344831368569413752263795627712958422585965311620870004225718623798398298038223985415579250574137339120396949805179681566850527500027447066097558928972640241700470395861645736887091446487316769309584049991198132381457956399362516159805169438121847289656250777112155432517396839649098384014612238177984578095968514295002815745512632587193141966998061718886434718775746226742484957790981243885933438820480146457790102831278535194581094870351792396532894586510336683755837356038400878923851607305008015223982162980099890470280151661679470464713076274526120408958055584338037564759162764244389686224181382077057788136038580405777248823529886595873111638001454731334551801502845260966080410680408842719880623895807061142103873574188237758603232482932347960595745370120321971879159378745318008178364895873691187003768357240374889085661944990533067479415266351894184925659353501643584858945864776592708439777820254441809034324340823795383291011328875368194035532303563380499051768229742108218816892486948290478523792617413168086535667811019877843764744145257434825348607382538868671931955657919769055871064020839817350167477165155197249996631941756846808998699506581123517608870265583025185780920548934769278284426404802177567509060331622714826555376975585262298369094124819954824101118729239740856831118638224269406660995601717319100760732474600158283920459879981445758438029192880713933754149938176754374665731096906729449972179956484602144423192941345293921914852215834737845064353865131689214607859320211661058430179041737508343367075220763207765658718769848749961887252994613060693302340693274191432178715289413162303666591142080314092320465239990897741551285104780622402816162990337256269254295176402492409616311705625049028480439251147331191494377000802926242143777361375949337251650636849246585154192493248623173645459532339379638840979497224375502611908174781033414290687026366734465463402976007042719866685289139010681756315663024852583387169644470963516743940046908346218282585185433900407485082442429346935937174501957055454836318635274232072985793233771413628059008517162001327009605110065262600422459594261800948929964297019627478851882404926861280207382734994464950119003048046645790403043133313845884245244227461550492593530264261707145374910224229672572199454290630330791422377780964041597152166975630962977363180249950225698305328918672064201546080269802879079731781710615552675171333428225051447851662045810451877810826003929432481170114067646352613553982870435132739707404652158357093099373657776985584705196276195176219071089018044723147568995552741593263015541702330958834966374902011718216093450201895426432964203252508807879018500255408360965592011117743596964806170609644783073058403352805371127564472635741770856564657502630975457339033959051582085896579625717828614277745262097107479631865017700220099672176624566825955808444127840787806988819303001074311492267809830513736155701351699216950765439698730120402674494070639817625049722495871240425950807698799364038646125828440348618767642588884614966492326270706740275969948797385852036189419063249350035747095526228427062591647780667780834959328131001720276883632140254153613324572222733867602815573791571024538537667664211666263742860973394522310601842202858772691446160416636881054250061120084938225873707309537498909024265015048185874970158763303934207545979503176353446351864505215597489289061614265815418680456964778187389616761546416682898746633136061904749305120452947583673625942354639215593981998561876358354390860147901772677708070823338148018353481783621401092140199696890026197150240921937399940006557615352980192508253116946913749142096031414365945008629929051134685465078679954326018448948216101651860026438201410796532337789796491506055629709770677306294915364632363834863032371104920020445902222309637401335673088998287657744426068074816767738794585348655791807229505240741484583317135614170955200553594644698697237079015526111375317840759873001799735503075723269842798564710246265689829976502537101299164935860877714948999352823384759788297125352050952030906039783844051812698122157903817756757900386358333568845923307208847929306576431722334305735066306623888608585573789495228513297029006208369485686084843831193781865292678737282045851175168283111462558350523680914079098938089901481534550923909353462892191562932097297664845618885075280882891579675459787739356431890021954826320388105046431463443819699948259941299814108642512668959557226829644772643756351714885921493144551130919196247784152625336799722412554561418219726776317408866536907775700634780565817287585014853709768138278093730873150416556865992438733587051001283538002460362763202160887046179018552025351235634595677606086771002073249673248499141924031488779106621834422537793510819903748561037358401970679537030200131081003229401743221506798634477347597016372509156814996503076985554610877834179951086497914325989554347444704402933983772584992674477643011278673886606584549781358723562274072484912205729791098044771271796297496892684493171948456711753627869351832631516952736289152070929619669631594350872828012643949755089296174309005169358021502446129562050070809042750415986580024995136761475111219665364322824491240695368550002005192964500484987248178191190751380521688919497768510726487782899192468015771162414463210929461770374681981642315196160966660520163603932686364323053463731581596924316687532793026635417761049052543981523087394182286494152066002794773184530006131674475905835897276621333591357244292231748451806310022013862627837804149775382727994768036753484806005746504841764160805877553838010734429840465310308265580799848759076102502143710131069359191720867771518205472362625671863644216902512288820277036311869965098732200036377762299194840007686329297706141826300983171797116703041979191962289369568947556741967280581447136441798567298250825537013724339391446249264143279011480967706881234494243817443309671130907924769999896857223988846728196296016218051574739085832307230435707267867144094692563353751030639491352160924506811913977382799468167250922505004907430666860751233859853726768784338626773016715141145110042056807972726757095122735682981381142081963905305640463257948829547616656167131035100538210889066009340134330936589003657803070138662471381043729362105443583877342090407823034722398995482986137738685906179638910583953405544926589043762216649906031652864581317499439828572399189903384377533328805758619285723555705444125900913919716431820084635716128411045750382979188014687730563977716245879200678347908771978038945292679675390441296666205373301848433836165395044092533588362227428495743038656397470220974691152129195042372436745628747128223218497608548504154489204606829872143388201380116036582802794497711170126775366465625789112986821391133469372837481636556491464091108697948545688689931763220769062968627242113053116614683547327101466867287630286654457262169804849662822396658551413291820562353298827428455276811503026004909908130576471856243325032620854312749585980262217915422244466326968014225613278389321953307697136715840652664043593508089578163579662988770450648174013701344552627005209283216490136827147547632667443577917117728010829519303521255481872039315054204508804154782594635767118166905528623775012424567850551054522121067889836857698608546259045232531046532613796759799034319132675814183794058464288442491947153895998757693714731413779145436900920812729911445471318140511088895102508391929703061434186870648719387701031514088316858021357138902003602115174181421421049354422340903831563220657066535113131441795597687918010252957661714128414063809338989739203075317554857000873513733467351782397213373571951513403879743535429540206587324693634911402708900221353083567945524220041156197050284988718915842594632357505609851732355115849769893013721819433666623428185096111436315295611346695627857396319120265495867070321877505470583405443409170227054475950165287682291872471754038366183654104689037354856297560488903818401694826428866938280849225022258907490911051893478729470363150037948068653647269052706473939932952420149214450275154001249424262976019903248356592127032731623005514948416180407808198097848550608485953674883393799291843428508684359365758431754719865769930536125920328154403337014516191819448126486111113830608657205004782571940214290480380158167409512293861988656075774662398294007591006782677499757548434092879900489145449066458596773609328878964903045105611083058961522850575216180692832442391855982801891392230359255722410148677104450157862482396273940800848279042566985040299318366727207925824149307620574667535001606583895313068499589098109072544556248190282402596557986847531428121069054734474047362793206164941788804546210352717063338238934425685894317243618147834174434288637057042576675029098669973782598811640699430485658993449558720903575947091245267140202805809550459342880574556521326414690265485609826708982800882631377877480125231668097430617639401497030778888021894988081496804642469931186731872229003865560177842333225438777268874530933054768274210937578929488027845784619709201516267313386740884154532110679131733089908665051752369329041971358413073085442325240497572963279891062887896740801293102378479934010116916318202485180538994176021942261731712617008222595794853262988045088906805930584281546333353801323676913731598877535830261652410264852680382739217775858442716688270786345900744747420586039024848438554504154820767288066624485153764911973921347905976914606858080326934306542483775947793049423978940200786429136284989960794236677873397511423885255455090538959598582794636127052459616515220050651294107677416723739004541263985688132679180544627436350516661299322960624529003669773626003678379852738185680677037745526804724231772357270526530345694147007771452224315417051836981612747973845234445672815803951684626615858264664387377259513421579800997499421387543828831009783016797036598095076978438610220190966682417397116635224153878163892070572071548123919693708920807681922772667864521132333268123407984872278314844917629899991637094959566946525924886304330392871237065555173147655239323197908151051827488043626240464519316485151609949950778684725205991958199663173490252135819396158069609413324967889533304692849708149915384677515849930914406437540226427359525796883767088361166101365340849693438198427866948577931868162528958209386701330768929291576858952809274863382948581609304411037126398508495044471296355239748425782196290472532655118068545164938148498206702729215741600549098217270886949528507969640731365765220677398399956172102016258337563643460577653250598150718206246103727628001575475738692424238255654452246474572767019293983657136171213891206123352729475549913803568942364002565900394884496659482077710850829682407765583846156828152161779190492031942872653668159568104610291500990068220845926842720122712114230965686820677060356281287430890708678217894714713984514034029249275923137286049075610397269189797330495072477048939835988166274264806988020942730676262934569428940063670667468005766949161612973716059498498392112712615134060859853699207030676785769333671468534550597685504663625016059201209113022521461955417184008365083816660369859619204642491603734056489649764138700497984976863739060635839318688041919093632985338069344224284652142974532634683945677320713740734482708691841650913949111161675041452537621466219551890456548610308760668934063416188980716757569735646968465140688895144533024578419923768933602027961549649648656623788406217100392611596216015708171620381617492916153013303977418638727866050352362756245475096794399681480812807584000961627010608569527895692434103802045917161966374495884169189051904859483802025054269913615506870626302435036103055112401644138402609677324009535178082604884031738408247677599277878294324581525779746294945490645986235521936566552530512037421221446848832767164810023764762112568440688408845208769121334779185117815221443722365223175021413290420349416739537975952708936528956843652982386192555906469587269423146149389654741163400749574758086891044444970682237413961576466990942246186813905439325833712894969496358303514996472259449308112404991342572143822664735380306966873186783746356610122782248992329666518230654386088333694896124877066425419934161324504859258093810159113443998101346997679526647577658228567679593113365046348599415620972899264241103198401990536695327144692543574570624098965405185222035147017869629552017933655406096033695494797833273159333302295277692886940429463867549876592978648499210393682751819342207457172209697817449014323238777035303076715508683187720531021130007319006528324071424582166238128626348250814024320906115886814823177183830386392896542514556897422664600608951739860058684625085558454300928318116512728085216388606482249998546233248770077194344894423362009305072326529350512886249980356753763483616677231700138921097606536877047981206415721648876389478027526282622116237697169745366256203751342423737555151215343274768651934724181641819663050556823740554700057454095353357108680693072433666548237610429005268523094760721130864237893352183545185799147230481065123222979706842709664258996840784575955790786486065525989648390086306178400140999718544032091705535783327189723756317439845317359488857804621662099691568753615299045094879390346087166019071651337678223718482339830839312284103305154048136682854447376534716276001090059830902995796720271485347794756484042952048895226801790273689564568577787723610897619948989527461195780636896383828418767896902895701070292133713123823423570859760955707066017990358432736155793646245673287489750692247163097840888157553082271361175665477929161876194829002102913724553818719528002774713397889302237883782488422683138249465089908528911978446294986502085153150935321752096357248746140735190816987819847966377945426770084860173307089031574892747579687666053478799724949498364802908282387068432178058271141419031161297257554103914647647914577879569014530414630171286746549298290580394281062623507548428751876877932175139165449244183596706566650925180337972667346933226031976815476988272477734264970927122768039846988500952661261918668800045533104746094977961764660857586609127087512387129658204333955288116310268268080777448751163259213181912283198675402865287878505841891998217965577540484825806438210176777964505914735961023187138439456079141770615035869674372393203707261878184407935350968751095888091010867936159796268136242983494437647664660441677833102353445530743802349693468688545175470873948894891010338596260430174665414941680012839239205411317212860049100001058920402039023598984428621616338775553339086071420223507609105305122365992198661584148865483402157946969050772949751978202616310045450203205623058401475434961631305679215113076566744095391352232568262350817058412339489174251611361192722560273582107395832842163966915730006347183144222171515416267520176904561420116464190748415190475987827383036487545336442411830745023207418320668400165061055897179791946831528686378148064270996678557190798602777118594901959813554109755059546651512160410965252281481882445370322132401235442497715847849397563116410920670577962532528777166566754640023989629359602067717472642598413982879822311828645905958230951914845855316703949357980362839039800236387996636648048840666739049952144923700352312597130466775306671045270608955427047809851686751866845248070970543423917460227811311317712698239021060807469063838414777015831893693984215291472459396108596842288886967572181262703393689698591157259654987244075408045522269662846113094799536662128493436807878672085999496015292975050241685690995368097358080960718004860072483607002259075245619968516187176441908082898192400651909030420860811238556952959099089727510087886492913432045219082974320564001344044947858531531105364415820057683973105196839547165397148561036929915559548851941645935306391415185163370718122757589172813523748553429960047199498338068516669461696341078804627052372363900234827983287544721819152762569379078918836871335026182619432946805850787741595905688849245678918165497060952483969041696765100994357014376571690425698993933530619897678764002788901652687809687340131434464866984858740401821802679151112613681473828863861992756713698833260198110884397403767224275962735960366474816761711383768994861600821038346347260982076508030652758249047643517440913508285948103432799422423575911562118841144503893990686200089568800044834757425329616111413258917538764030758336905347915321573878918189986941500378669301911697160446269042554957309649193319028124660932752351789573960385203271088481421744584872056283059608981915986284861907532822282939422345845401102048088875644396930061816292561232053730540284906954509360820910829715649994805216056875075810653255543712919290744566158788490157908010494873996980916888716757298666471573693129403348046231052958398854917886063186101121415597032480801248508491120940359196140635599513627422461162763622703532142504100778096272197832909906948649410262819275300806748779132895593902921453526397701038738361414297399343678291868330249405356885165481450763938447375277115221912617906789937004319848193599699604339997975936101451140873783522756625304732236980628808483916797643993708828420609136500082578884522879717143324611407637072820543133816503122875251918366060227821110620621867659959539579540064678295975831982385805123376558896138353291040023135974023409328831764306811256560629316865885111577491573315697294738552871722569480734709723373667669059658955200490147707738808046149627155099066634473704758205425777900761405056856828771780716653502110168305271368520310296973250983559952541094481731318995443015082193103500968686214397304083936849002555321624049208317462372244472721607200796602321008316005506234999000866612316041156443061752876144162457890769543445109229783432910924431656775374806189911520169273428416277140281112807408205151077158354560213627038206318597374958985141981554325825116658047072970154202762651116546732690620386237910260286167314447520039694713461830196640651683116971033373334607690528987528905229429447510498586411046063301590165422764334250916842913556194076553241235304486926879359331488658572021127002537421320663673069111286654294518392161220915855045425189930957086178277455718258775458589433086352942489876079551272858502027224822266123467172252237107463086496147549119331548678276580411752620567899855149170624580270751130075842144979952829172913058885826428900595221309268948778113437998933160296123163771407798990622553410138259372391530687190660463297606575831085123252427215094101982618471057094499629605056217051893761634839945287167403741282871165289114761519450057853812098904369087468871472947067296995298524940063664808600963710667950209588635436301020940520864789125116661686363757787509848564359044040703386762461333653252835415652956490097905667485662012664803034396983750548652487843183405530461870673853883834164750711043358115525224705020801210184954500590648728691273747566360823517312497811952290782682494054400702529524472190478411318569851895762530639087649712571271887493508708864539116492556699796687922666519834355009680288046106674137711115478047426687158877500156902704764898682500310680616380175542246262806650002340621353948429834175904060400768153368050388902575552380565046795557655579454898473497383455307944815841708978524155134905175323994890122100811129377085923429876528287810315480959718170241432513640333032926331198095235735546641163522956030600881736822704013361079872182561921926157889943854001757425412159125464625328265416828140336616162566137218050280378563676122148284956312525762434461774390685399920160991903883241213403860131207497725488752600226591430043877145032920802551008263333609012214673212253807889578134879461220146666205382896951974818936269557558317714942457782910232622034665894852525595293636514681477933816040697356979830458866336022426227407505092245213491373424566683227355325148908635968989313681930908879954768739620907605025337708030673823283422235382348353427771150936974044304653188821626837443955529446292699904949837362256560065616487194425654239886641013664005415686733568690125297903817976310631834274786176728918133115960565481301878438030587565609151752009109802778800497970717257861245851942669638294220299844890237659013566073390625411666168779035047778188158645960341302544202313215938066784923001227147253909351634824301771153068383528858047751647543158978677222211240324567977404500229234266610691616482745163759816945368308902164374577114842957921656751626470522488431276694046521355501412069910022933559723884245187227627549396780967285607241665919171083217247079587683288942208697786006263561025007095603542109505936806458895649292120968987002231163005400130430749289455824954072743558144190295198060528177471842321520772968179038952500137819803939738020348271003142013371467676013215236846739365700450231257377337240889137111763292105537640004744730931521674370304172678452247551953336103938438839149079669979455328359856613118705296357972158320459353980426618444032224526770593334518014579863745008945140400246103024796467278690041398952805984769084532238652128302801246022975282843746725804014126366558785415330538934166826795330120010986156544966623753422101879239789741153127605284979993241433518562624693361731439352663018196766937128794440198367722537647426406717012471642387040979694746242241555763818498148618141072480976896192754645746738574799148791207917449405741862284977689813692079894553531264399506194635744302322309521543118072912913665754409146107827275333004132622203242214138111383698820080974976638889151624520741758261490257662233960864817191266148407518791244682569754455269947751546956439623152505667761370799334691875887466181921096040363144998072283202533138357043220447969319496803034654165663987916117529095810426867321887110903174019497646958976498609605623861533676335879821270447445968861524055842628404750816236830453945527397091689902584018332436487660673941832191628843816056093112249940264513823337279711707597566946985329244389208471304638635978808091086664555737460756089369693425602984397035265415692436070178272279715066012240954708502801736422649658100272060813218902041541030680196092893691660786682810685252329009958997842337775562669083593830534753001757485827118804904216103715048465687535654496475828233221785672556271447493288592957675601621873432324130718879690907951622668613956818804209020272676148891663773588869553194485153722544379736666803353269676119039189506455501332367637175430126482923351912961317388013181094031948949901529655408514095923217757302275327133430188444903674370260946687219019426747184699761000775293439385315343300184072747322115680088825325924441862307793336680653703742250019863712813346656296433576163796684673624397397362244903451777063682896549628539870329326283375784375843597677539836198759344809417543034974211878592970545290535555873779722885576061024956611881465019241237035930887446529629139163160724360603972792144998698970475609021903796152539271148285745198559979358160260160878577307487749951184251056186009426576698801515149751763910792416202206582191148669672214479869030643691850567894567874845377395853203960768771925122152410305927429772051467804580866912858054162776866432646094289664921308365347383485605918710252946687875026512642293198188847527957456121783416097693890499579405288985306188070362563411280742927572772512517180456388360120186627462455754000908335899909171756090357029547376124625103807177572571659083048834878788966940266495905195818568122016534461641113234506994300731967734217942789023183291476232079561311522158953647647689048571194823099861874418577210352656509064353177631559997682063624633086622193030372841773929412692337319035266466634373841757918535786034857271325744279071552487483778618190135328606689976566233595755493552795239725991543915308054491545712636544422038194526962247619017006393358779621000670950882117596479195349584970768294750722367554094086750614500715138732262593202750886305906065659961611168647270531679419804234915616794961452976385276907390247047301865406333116208789179184834102814183702354394974565519282430575131096594148898442068969001852285678320482857332547432180116456872308538894264255944238071141449007583477406177241860891689703449997181013740582184375150856415096526645920529693461215196371684536334368543009075785383307513885009081300380692508851884969612479169184914242257380353278478427977219138534180954716289489550218807936291267928513356466267246874080271015025379913863779026687390354007531038679877585815535850926898154964733192174728273733613235523962408816742434362709169628818319518670656170316886053666069721746154664908967763030545515742574973072889802436071441228597604235221390846113262122254337693381086443141554076943203529607214433033354887234881427595429370288373172158950956228527462023551019527602095493723926882924580374000224860802132565281368855401371192459805134964280337278089644826391795272002409512765946465946976865006246719356250372771204514490414229046074011607091585106740211285915499272460419793126844457911494229272017977127600337354008275676938378124806509149874996085540046331908969957331339632348345871098070041438696998889310856668721961560150005145212960864341496364786035900311839599536190726817223545367354293304394585083179720322099132849862780242586176983264899552258305460759500902465735339581570351192007155848713161472665710875356652463446783302753733882773811899580612571830037974850586048153570125513599418558513471738695949007354018877328647031620835088204263707972972749511918199490184822795707379632082882465383202147646634229389707773188383182932389096378167461215179982688062713577315332685643584658459492935615854223107135190714448605269895054096183598183962292054036955176891599033092135170307618440480331905391260621636064412648266573248845427823602840134153547000238866175472267870064688125291819320546374294634768402065426566501296967004241777811300397015222465315124829710073202378845933784525181156488884463527502559250239121598184669188387585193420405825616890937483379019451382304273902274931236864398673710893298068323966234365468631381835668333558142802994294405043160086719140407881078223052309678356063038133838174375357456491372097518253919050752352788953091894133836232357951746489249871989826657155779581422922565805526070471093567290886114026936200576325728906658705547825021210002923832169823788322300129896565601086168643976837115753537182265273733107298775688803773897713991099373482049493949311940607198588524326085522661072431393329483906847923916579442223862651702698783076738963347404934087346417500924382819866433935955342251188868495582660405078857858146807091909261823222995174835695432171536611264501253134249213238339840847437417194944612192028588561160283224349626631929609700041537581452772652806977943819541395144833584418273246291114819744326557755599592281521676033647219622571540489822806801359049249492872938559009048082801438444094332193920937922482449285630534154496600428399293481569696614623623352122745543880066596099847333360936261621418244074285199090068905540639137809143213547359395610664424377563351803137141698533389836950101358529106281178946235651188289650258582494098349687618737688168214751572334874030191901241374459405262515211016192371460752271375349635369138691040915362999747894802591257729910165020190792584200443395237885545770630869685415945108274051996417462901890550513842612680949558648571519743253926551717657898685965109219428425187860461587115560853161829663936732551923203248794894398801898412493449580930919830057053377583342219535508082518969686514358612139550392724351037615504183947666338247005814802819772752605900431037915349290360612186210952856494090291750046546416883590312892095256263493956101195868847230141987233172804500739914006989717795835377131035947231776344377236990531835712198087007440531522220887335271503689520234136652169816217772606020407380697418149005028386991575455777904515301112878673854004493270068696712555975388329416106698005696575848366439898815772847008529603617763190063650583052090559586654320346384609963964478668843201242563761125741822317290472718529674453399132125106359644244752086375417527596622831040719559703093441750288667904756776683073840033064827812171164363688938338848764380756187677084239630903753039916737832244821855204392363521615838221589489047990039729379617854309736245490567256046756788738544796670993125442141673048339723372151049189942169239267587262462767988004393118583588263149019985379445888148225705926105903583480845936445112198033316787257955820728097290767048756188663501089106427925951446681404825537534224559103504612816209083954464156982586578020071689399461805301873498646579703626182505076427632426266801586294983107068236533899981546955845955371161103430323038686454006308652723081524047018004446168344353283422338988934249192809581220077888023426243151245583894354460734749561727819023520910587691765815760738736583831017407914677883323799035929859144350974709031619649369426267532734917594619277837417545499990876024210674745490730042542675389314581967857432688365216037265491190806397179120350518795517322041922077750249666526697659142697794922533506380181844201106210152459967799430674077148411254750482900512286359639340445111134638264277782763781148757639427225516505395251392906793348817045118424397196307926598326554423487349317800353310522323522666418979180595602412225806423166929807723643603133275240295052571700426828344719280803305509381427848723767969717104128251275766512238436145751282013432283189777612467292663085262854022006733263242806417001206641577057060470756501581381675811198622741338654901645045680323461905940583238962063554504439721477466949347495489395876350219162252261645048820219359597092905123272468897232064026761218237632218229803471222348578004488462967574326660788102195760981449626295598990150419648387841645816505608772745928185325980225265469665517826134660426716018694192138731683322004554662106947482004304950910061673257688400598477084592004642754555055296657792423682024220741589729784381546728668279338501918470030431933481102695939481588613806540375139077093173676415688915758158716886631910320461897701717334106276161567080690431753386943240401391803412029880912788377505209421186805206815247476456801262438336594251810896160243254354885829178427193345188043989754705256931268398351314235188902752997225860871571580390444312482260214000887478224133209995477957941304177406757881389241327665684630875691857655734152585327324202726332272773132028583881702534127931473912212186939649828501949752723053652806396293925948078478185511309005646275995021700879113222689655276770613508050042505159735178990584640399423978848382469928275599745100584002856800995844097456202258400743430926891535537362433623055938204621300913282240354448605774306195670509071706535503581263400609251478755481306573575661916362174339645367677186027664784911615995271626229500187198171639129792602354181764561646502385566882138246861252971008634481099679286849890556133532630297972768670773205016425948015906221524421195856297612273747542326925542924490269517366327292361717513801754022610665236667535932561231854817066592484725127256965700030276035356270827688416285634743986092479915175975333247671538218072993646316100179890590541467250300744762990796643058126502586299712426429165764734000783012150396014006736768191106113228039754373236989469236413651724193308105448614977679035036068795556965554852603521296120523346865769383429048650547622598646810717102854455176776167207747714571962146831840478481852274585289657863910108469396390719899935538112811253373236049674041397154500380492748372784233585734668203525854910408335178881025065203519103110628484935804155414589597799606182995646682229419573139975933172526384396406181477400204418074084268151711571168980379800737861487884515250593355259090192841450346776164911537385860827782400879117271138263661674039497250700446854799570350682793927309690554970835079245606074018812192288952871598835547193765067884015659507367839082103846048325903325708960097051298555922053392853758093635187299775020270113128235704437857623801446440775588418004506717488307213356961359231595298646666167507173198026228358904743280630715524502463806717562525747190865487609276446209620044166889512597920024952029566145010758548985384165499866561833715878743760916014103485375299575010717928221800374030596129790344681898919727447557434930598083703529736071118983796181105177533607734847803445486752561754737835803645916579497808277000287795274429289721758107148296286170303804626076177431560842453456871091732010790209099420314697250571271075484454902190971817240977569863712528061503116042327365565702390034938907294668348027614225007262738303989954110521431686379399445736383822064625002882438945901357510693555899211955638825840458627485255453385988626464444871355296422403269459707128218551840438719560073629726366916531634844036992233158912729153314117544226925449782313327083915041534787499683504271295086866383870540239042800350557502723160388660044123617833044187223010211735622879098527732843592353389161930949943600868306425913336399054264904497533700377272019681377760290217624920485310633793513888908114432926082756208706921286799110003296244546919653288351019584666107233384575840289048942791536660115766594483661259618509152218847853749644909109518599075014902849939577564351978097395839794035132620248940391666424487285106846487363733671971893503129392106185907822684952920497551107036832541453577240912622721171302798524085923500393759117437332032235912005938565614550828923237219205375570812671326688196621496688372405586794453038565397349166835865215881724579269677651412741303721526838703029696730810198146118257675783424746344618013286064252263249277729602552136630606492799729472166061700367735659769105294448802435060620871904352092985284677481721703601451711615608791004472934386463766440781130004494264420256485160728793442475685721238409974670273454308356964924455536359341344119750108998047344182664223370428319725699228340926259084107180928769809643427198957548226362635120828803402396354505891146885920899037474321262732886014472098695549664897632616009890999804520338694796610111929455235199952744694114746339222829461079396001450474265039241915239706201600973255493318737018151033406243802270948020582136068897502664256113278949596290114756726217388537648644523083426879147699708990270889858522270118757778445609638245861371029379604168680628606596998737240984882254274791061821423726224748535899122157251231565346659025942236205531453942008084830921985868621350011503906579523421828687944870549858965099602850688703996909050054783458457693641524234691913500668369087852090432631660072271864405949821928957672301126750142132785445126787182973362118543320055649392958261041119234616898435117235490266435886158134744572596174729410873257762165194978199353370293169150220701205329359534725114999916220205609585638701725170162483368095147438778978004216374327774033246428352310857707845320955205941426025799013833124175280535795574300972702517016146853889990607826877735738478787839179401878941414262660419776255838908986055421426489971046262636039351851738883445741064297925233678681366174509125996822941149571516705966106361202031973159387009006828566515033756746891045848903043659473700109174300394630111308814289190616509710413795341798890167362853659058991269240818781147598137234993727482479540840174315983006661260888274412262621567742360543659155230942062030412547692836771924879961223789557040835839191548834709342201128484018211248561475505057533396508592763031612336903314697313238305580139739280543821361973601857670906903030875990402134459719939455015011715221418955188003768780725529320381622616564175711560270903349186256373484628408351115554423492008566111206370169073823258467403736894020223202339409236435832496097276261468158290102025817398032295360759043540651819464887881795306232596349113734548110227885263091208293872680815213389751280426310748754664383037411986600465292511584006159580911233918820042901136696357773908140364876716116164565624453032180322221685861165510402138052673329908623012300854472416813036748974455542937147087519632034884331762833188187258664231699630614098753143841004415613152735574972341516078947414183321402274846213382486685435830929803133115232146517417498551553646543113632777468259119250169216089531887997034936409888335079027175026865200781742614058291597186210789320681287431298344666485903479619030742525998701824404517739111933674143886333229308533833798224410473870410425008390397400929015620666889058870254341664349082690156878013431206258049108668318155522846272264509277988129764885742120060568538761051262402192948732181188504532167387449966129188903328543120381824028435331127498586250507089480974929220946422932579486729391690713254856217249368288576862435359071514541765324379001548381970972753222856259993502952667678091741708535156533687231998853611476964691505102797767376743297874241860065435450018197528756002260958539957900817266376654430483529828836880312878530853320521652210057345226908169155154531431663213420007362550048610552158646995963964311348540937568062708898695274516194850898573378459329325852252522617874426299490421212015929204332400742067874913246963962705267588630612752360029446668632231080353240110929437825968036248193222012013961441457130381728937610296395855449412745878418795842670702495063146044231994872242304149117833658466325363979099105099628235471133134597008728074904498807112593850853380405102962888624444997932549383200702846520915546261893904349846822511375134405137787833926233810631504642038236476800829552552946907354610947734008506881934824201430330928064979657627485103832140089983054811187852359586486392200236034383252238060934822517335204164544485503756759880462575098276099676676160997170004110643193316544875572659320134537646478556307627659730410719605422733349478191658410353152379211579435074789147140010785567754626485662670276198355137827485690694123288815952592171017083928068139703148749788224965910298458401826633847618902848799304382883501034792484939147870462728265761226512290331765510763060345475370575140225069115916811044863277973506009390292726714248878561298369212129797449330333550664758063817143902069819989710390236504743769872221162129414150694445791523058572153429368514572969035399909479099861549910105265810201981354808216576240214762200071933452303472268829163276723954266319337999563105442620106445747197544653266877533696030966171264761607671646481955099139984478981638844036937698902311444445538330456855234728959456052609273389101982147301775198708671194653895228026037156212477125958383458238628565459388465064501933292287080070035245463952910835457735276239771621504369752964771074437043706331637401671105166699118612007181043951114775767767941651587878540063185998264966481928996896653907067606320266360406408518019195078810614817260976969838989646218350359186073353877797707777212530824850238929180709760604543620863595887116014032175485978056364808746809778164504137478334933817710330804498727852636898867792232393055167481496514502882529562270179684972543580040127483711165929251293356388499101714870753870296050205485581803150216611742613919812730926923134656811962829042407387489867343281182707256738437506778120741772678197156051974114649403831587305210341152653520405842434193274351809318768830558037027419611608660342606470730344111836450795692379392159829107412110886190208061332984951995196535802816698881414592837054123560546486612369150452521506154478974922633358874567284280530475577316183991406300990060130930274755352147775574004915622750389050569778916450624916805869573552666648029435542765637157166807354646216643062410261279151355927812423875345139181071271147242789678612428268160950848186994242469076093687611657641433180606220293702353070493302982481668797742006027906515236771815543476039959054636186343986443486475221015635289036323694872056671999107274054345160904832721810749178114515719866730974358614223527690545503785089649174831321800270113143043531315921559848431599979594705612573232714799652423476254387104483587388383436097515412936192271214134403485570155943260732024201524728638328015461687496082086423364995065320791805194154226082272498642137687407895242577620618937890704796657313635047444894306107612566060063474079764300274176088941985630296688908105604589849449222513922083108752925142626889731136263236725532271168617884712714462086528095571283235358966933050473868635262368264270454530221066347031164290770530094367222346801528238433046987520939207417919973517865707759232610049521079710657891075564477097747395957110490213364319179595118082656551304753610993973443992587489693116041638457963425266550070515723201216179661507024303598124683788185768080633864574777207736587486605560449604337275961218984055762221807815705764436316598574802788843359100992855779133254550406136883138331547958085878349187284582376181563001759906377693811686801084655138165003601907411130146877060170036456685436360446857377874610182461828422725858884429510558970347394954120772517410759833769268478564304194456268808364491366779098923451284545629722430499152144348407509578659378564562209526544186830899381597729488934664606284279073252311645625065084578189202403944799359697723460430382871589222847040534339018113870415445927431026441194861520132874286402884533414232713991990179410706232706323258337011589836398054325273707353064086564000175711451952363138201745918361617194583628517417035344713784195207944257971364419837155313236377643205266927285717774842314885468619741538763042845691341647257713206334239043499074414337043055127987704781021012062095170866975836656032670161423358867306234360130386605048701948732404610724244705736501519927677752080705820400489606815413600530787651149399126746167755819370579064020319111898244153086829528321846851170796994182031290506162884730536825570114769764749218239481484969721362778042740595866399553434805193000460045147896802310704070772183588703908126817249377069096429157763123441303144122997627957130209776402954316775789645209067007674964441931513628448304812984109584707484795893955492995527972812948475511057588168144668801216815551912823704879984719990708728775433162517883558469630736333498739775232004679670770922434930710937778900296147056155966338860891542182849207658952266208878821823644278564415411949421255823578260157684762905466176188203101906617350279315249267472732701324929155160657662025499319991842354125662473844343322554369050447146839452362807731908583172266652870227556543525158004732564077288032108048041195309053827381684471204170245455175481838749841086373959347399300868533449346780534766412223589376758188035180552658355792138989647060395231017589521960279113227748306276004488290960556632728086687331386614164503992137056219448673474594999741911274586860397164449144069145085110504141098510549409621256698286445982949628532997572201894144068409725890661451089518402243900134028142331412967632799099329641369880500542236862965340117235042611643384947555036347151434829186472288836871044791315461716129478530942717047208185495096229066548154663415211700100636489906850365992649166536918049602108476599071326565603437098414377151914466867735705138098031229133860487949098258630398818319492077418949643797754460096651260774679397161931646965715305484481815295562023579732901066525928775630661924797182815491719023863545299576095901129929516292931054368559422323278082453215476378288894135235523558197448968801550448271902171836580995388658955734971050661641541462529460905168709038551536395404497345858659269267161245939597808376415022281978576904130392950937055415782474070052199293708356987130525658630443467711108746794397092986800946602028518261911299950672788178120291677834760633299737214057832364200059426845642253330948989904788371794092798817329796256223057928949911597595580607115760652741614406209674606500398248209821021463259613808095367877609166068087990101033978444212579173425953495054361547810121101129772535867236444264715462009868433160871845815036818114889572371532620184224818179974185546013805308127396651906788971066778367416010231646389743367467341429207749888693800019361488705045947355739503729483805239333602540378780539729216366726085286795630653121800171465011123924748866436129323324208785364819347101734140384575807953624943466878261721980926197598663467679397431144741578675354388371138250571883534926755826254687810501172729499034714816487462630183129751315674475935578059819930589576509537025130515795240965415850156945711430470008019669862080536071458737148765147416968466469917702851090082987816700337313075025301380537019128016123160579539427740680966288184355941733816729693059876692293731215095112323440034863399908718853304192391854622723650770071617527257110552966632261609214132389524502236162090872734150769703878432031724086167864028881026712282064419990678434658282878769622977002963166826608359839811248341896439170831173910716542200841995154832935714845509800310635062141666164058187279752177101564051534831192297381169587693580251367845509111849726109207130139674655128131409288885328208335448651751788087150044347186705119566320418514984288576612355895402343347673299620100483881764072184061095661677381564267519518713961375796959016387936933249986141054177965659380621079957507002449508494271113449782784975603368619079114432646992137553945308265660740600315147910284514062098769852660041082092003607128519970655027408736499794309957214794535579928945153569706469115932583537889724563085844496423723729144942864397885579903493415044317470629695492505215900946977806218604471664879475720605993909850731908063064346304186053720050958410884421698125178575530271902187398650338858189744781444455921170982308412834121444856793644107651259186703079214101545072565241372321292953714248404444490805773073836888526988282615906031673744698051873229718186209914484050229507806295891376746879167137675934917690153044381401111595718285007969616403522598236249577100388238957741890795871189964960961542026000974955787293576230597086594237605366679147295478881623216880821479982051789175796617071626944254357954749720624305161141237533304784551917031534758253363858948630656737731597300659086490863090330131551612103014201928171056587723516289856580449086827430131853444787543130868334170039556545019018840235283550255522668231853146851015814780642380951419876363841325635161766495356871301026445505576071432297808280484149219968819437252216033466605960479129349055293037928800697358071208921035511296651501587951500091176685675130007526303105174526601757816429641430948131571987992791900170070600697013691211933090944001174660406021359866631095982409003021162294450081657002983940592201717775278354657118533799490858681793939488147269050052650709853105469587895232485046232732206025590469499023234521132037274211743828949910008421446868625388570779692275869594899580191518974865015708943796278637522212056219641058492991770091186902343884669183168206356630147877595768642731932361868538707879577730847590375696869550963832447872005602044295502055255787337352605562007677639470799100922638404240409878740124473854979491668895800464021465577065238433369693087228701130454058963537536708860562698802561130337102661531007392504712808532455610435759311789379593188412359876830138237627103922979619046473229517336223730482331729460717339595228161327966593926763773611752063277373033549703046313019682094437338752611593288433992877437168539353122913799469549756610564402906134880411249259734103381116906382958735868048101794051127498699132071853169644113784603977447951135125113410285143749186626203641255867245101378458597025194944041608329141487164908070035025546303085520225178038041884741401365337372332859033128018818030871173612518258567569324259602097926299824737258760155166370479740045720765945563239896664961036259927616898866134836634784651174319218647971599806451011101239948518577551939211827590539572996458372594000186683157487153853515297514128146678866374365161921944611016730429179345999326714816439053596690639942863469067589314265044599824418324759870628301946009588952403408773394026411737879263735210749518366210229702134332977563788912935776017201572198362019889593941588294450235561016938421196214238600929905777339335866728513121612810206797204092498632331072432756605429519446796208465170167066918769130147384666185672824534578271727457090856111362441323960917831639986213596091119890184021492100042271748532401304414372650205889636631460208743603522526064221660617710584834734825140909694394168636000648399449211241675646598115598295877951923807060930912976903702533049909039307318036507490116309573362170199220709601613002113651031685217565470028688535352408231510643154877570924743739786403205341387876586403797962572989883062488368749424647738392988457598144731109331849184730862995349778818516758408939582202052780262141907417413301830692441949410027961105119250927042055932440712497748729501915554266880196284800526710475895841833792691902470511956540645169220967987466302005027711545647439169237594716388766064251181639023789423921692236639608318853108998972443233890364652313809779460922016073546869272629891354799829104123662458930614961295734760856657926519285193610410688074280608491210445856876206770199533904743015297184408116013829229210727570435578151265300135773701973363251228554483275229303164110720940912279050713467623432582174103774617103391864294823950351964310092033646246805269689246157386206867895951215778395308463542685287554495590641943570909728010996708327144073604289926965620713962348619441398422405341860794619019869446895422438240446311821846521903761449774210565619220545998383271489651558577421175592287305484296405375618020136776344851000651866357707354018581984737964434083125090778239174732497700813828888461996863163324229128125359703026986216164600541427342798921818136915737445012436048655042595253327712966220033346751526164941975034129391165805487030778380408291273239955767025795175694470382560459931376137170032726930635098485381054811566117621619226604415894115671992106331664115693536937082035713066671378889554978835859829817920975772250942720246018353591948852467986828029039606314502529058974340207164337270336730179426046879349867660727978600885878663543494492672946085377422596777460191064345566827406712847005926654641749107296213299790468223118134424728906793881159021308314038680913971946652196807838068521661627706039928253598409879711549040239887802620550636234224305987713972907365428412407159935355562814819801833671161035852873534131596836900439678914158761093940726728217446247339139794103022166418274402796135385182533206897772406188330062919106884760426624664445828024458781324587054265699221701439303228800565809427956351214244721789637368802630907759153419449694228309024604456425163115588309932929704651495580319086837796963162564812824729694180397483383734209874812286241132023216752200191842087475575344025212344868697376192902831164649593405232502232586740877008951031157862553803089124077461659099715400056198854069218302831105683664031596696413125111243434562010652692415349887064071624637203867084941639987379595301992512107385028231289393416057037452846233776630356422249859627165065373593564168218600357788463946078202022470028807508251408674140988683589279245086148734412177243321817938364142471268421541998484001412215012818443418427804656686301712433661505189679759318550569683152661555961571260164630200518214810179905520665519385384634251724224804610695454280819455480428361344449159580164254234316964423067017954664867162881631257896680212650665882680612570045228831683462532751566330424715802594120334528878693727983911656825882135269018902842817266927224167875506148806071149164963505118282817383061579579103974017488965193560619754511528538212582109426807651533840071314995250567154143221416749482792223267840032311791068810748363413048002706804786603028757938863770803676251862208489728539284336501800519296385150644023149699020629772876409294287783213489960586607676170472473817843700199146011889492308576870477020127116775768146275367351291535129032940842698689517406131329390605223739185860367585492160713405362131130851690023287214494397773362205498313684985779245758297015202042653073206808443763306801047435341202312621321211284918101642744432472981237851182162378496086235514013234070363192605534211766762113072666498272749304669762185171532166931933207183556058820106510531336139537762040603952460113124398718394586408997998232564530237587142814549416107701159512195862193010321394505564144396157183333972213496255056918907831623046731606425469330167094419217684119685569167541867573382101712661813284109834821920646567738990728581230667409340751894144787177484521484637975515507418543952543717799105616289768987357091600708292987958325100637038437574244658361904647731733175150129026863261149941886204620481137338662021187404480622512348599301096650976937066634316560121732630223201230364056273720641799892095759409171556028429865795943375616580052910875742637376960829738440147723763824010746146320998920292183069910252725424444747932961686962183746857353135203076116148575006685884972230495384498753385883102969585064033657641601987687215583317645806812267950373026911367585282511245468444534003814408291090528896152082850281899283578057405038365556108862113897238243162398995991483079997689273460195315884387671178684762377431911482656812555252643629846614992775984207265500604249286863754587247727455113143495607644003979284372980819058641749968279992645591868870492054727197980370034652943548324191073651345133993357779452576873942985723874086115570559256630416814870050165755545309758654199223503939246893318805953969613967878937576787567391278534455224513924957098851560430380633487461993862081212122002192266331237378041852170367505160642777475542235288461543662874134849988762268488798630510472205429584409634957624288942094526444775876490302514369429485616445121109945659286310344405908079074965799182718050984295978168844918415339949962710631922460117762290924538729515303168931820169002577168931360797392221424751009286709569310700297316564639635870926209073745090656638237822341582142704422137695576882610498064809570082278036588812151327034533806089994543991533963734677605548897630567191974588255897181107946377527587999820834302032261348666939148533929119262756101123937696776211780122596271703694875745798215391311459991864303800334177455461138318001894721501230052317250227940566089710199125043596319299818617540185883326432145790665883984551893432041506460257004660763649121321951609885932373118218906116681690703559219919926956401155254288037021405415497120811639670349466260532362315059339547760976758424103245846068515586155112554176127074048416165651342693340860513007791463057246646202941172094978828032237007588364341704783489997187103072872330295414811019511472096020311725228960845449003177509383479111610530109700850996192228814076234269511505691994246162695003289140500939951258397260427950975548560582213784399497238460249440815516099666001435944020741592705799704698627036277714606903720129208406855152496944305031593197217723147897820285858655357266242970570777140188736192959683500784947762452430728750124579722317149308812708807680070267633921482308186697317217534227564947470985060474231465190223893912916128856808294341518498219572116126212163806647221985172806952368365300938509560953188112786357556488949084591646558285784166382009408476206357109077830357567050870670406666111118758140599363644882181171617965874723674032339447118108534563430084080641928342619460337502249423822943162608865143118767326173319394104944328984663131999893913968927749926946874587625100875254783542883344129355792163794146183222123126310015522239497997458607679391638083207825317944418452460745729563135179727988597236198421411885232223877978385311082201193151910747535704365531012566819655301926688118095244638502518678187781574435556417512546837803578980853876446623751595451348657255399813931886905785099179541151617573572298802791431873110292868432100207049933926999423288859902374677690359644015048221597629517215117414465953913662710967781910976588614897161934860512432714990022358106284638633610013817284307888141358237776153267053604494721491830665552162863630485090517704649087815274232044987456496917301937319928658799905675550849513395116048848653796504238892753112568151164840617227143180402807688752380683201752360806297316299871847326084663386399871726893368159759409562146145577625988706373366740301008790197406556217121293584228411392695794350518724598562889168965220046973561908338258910818125345938798034666426580751559463217703600030540373238243729959486073204244564546512188386620168595932765529868871106899038844236572571501832074762070510979910258398486490075139430891437464027553251789218805455050704832696031465077613405551448344583445991850345800992766661563845231649488530787480561099239858021592936855414457541657842785585732347110457688621245135277199524050314280590275267437384520948881635885978932144780072713915190438542487067125414860217453556514600946052563670970099263436262488409340041119831169890740749644080780410035722680425347642870441094426328927278152516475369448563392671625200123719053741803643383496504814361879966293017672415575396056739966056329888552376965114535315322881687723667249746260947110493212952599942339159903002426990837345008008493988197728778751962207967082987908954375010167999009019063526238039006634509670328253960112085209869688049501661254338461179300820893954391781269545422758786825923672817072163027628057975984430778093167955742428435285018424920719467738368841124741420490011699951076882317160336238951217497174473974872461909486216581673969367445642591174149456423497815074874922155724911751868192173845845184396726147332124658433614696753698061152539758768109679240620842630927508420098787686088622677233822751921185700409381995964019997705944211051330252184711379444422898393607629905873957219321647929408088807327554021843957811846324636719392884439214102452082288365516747809373654260901448829109025573800016422658040830483791217615095728209462265592248288991965555247741609296559880084946859538755157259297824843455613405539793290521491377035514498444662495639207527982464391246205542573737383498674513369069882724876376365275620525832158748262489144186958375041329187083896500752215715505578702256314868372828027632115362776400894657820225346858749161155273012587450210439363162351358128008167871249791342300761406029304201610209609058503150990465262939265326776161321623216049568567502420407425071266765274718597271574821098121343420369604120069307640523949687441831315765762886295694243010762766035527594113302318643195481204692290790438324941076121695875920179657593036809558244023611963015835692141533516807316348759218427360767344378347272578807941725093361810695291409202301515893957212246699910867994809093364596861532325977178230281180912242170307666655271572545669854966904920057457661817408818429072691417103404000176210164495701013060456612537914538408867401262965405877066579534085611582938949425042939663849856038180427767346388345349327507953272846317082252540639754964997868354200766347244292859806421752403704025949746041465636224680249276159410435716929345796806422685485341996226917533673591492699844252279805949453986282412397247124892982794827878085874355863798789490711655307431861505498637650647606884577135673096732672036546510016507358414649196932081690226568156466482687544587039813751486763987533856541502057468107937554272240445222705663236203112498360926463287056693989489047967692036641343713260547478934360949946219261571510245065250289999005958268356859602105871162514242817737812864219055656689903746940175242958603526043356922649696965893236303306702961588394095099539573952097611871977157769816741964036747153534495542572878763818108335405090167167448109320902480449366868696081214536136786154970417022601862675862785244196885487327074531265957801974889510715553498001805889059065571850887555653553480708817503440003665303255976789485923523293863318597588497889854015950384433250631373323183111757297879488944750868983572765740373627779688216932280551218602432263414061808671858805106366423235851394345509057200860174513313237804786693855886096573209667554267178682929473609106325171800008278318640579288193790969163557919824572147478093070157650642109528063194148193539049475746179050026441227805946125570248928021880977821556373463151133799532391545973725488860328763025379081863755864162444530877990703912575488032551908581462965547324459751282459918626260768348952927216945934592239741741013443342417737719395122914756508748497461885246866696546334971129394535810683079268846375455058338846860456425389678032370608218225072205967769761858607343078294304816476835808712570313445400772570641104728961993767639194770641608364291069452967820207310796811900658108498374934016596550320834029188919225535319113276023491784299299399380961074873728119285976533697184368841391417395190786384752083637107499758446120580590126594026870875029046901598857493150109480164964337699713911979389593977000733082378261995322558211321786548845583577025325211752196496186487951989899522360702776044290852751397539459777529913488194041070186075930408413832726127204077798688606759648345767786824325364792926274874808864986462151024114290298290364992406751838393662229079930042054304939907371470927961223790483547148983451690659969888150200100474846769798159418370543485082684674213806240001265188192343001782692582310005286312292321209926606589742915941956688606421713409422182967858520389162613788827587433364073855610867860202932765283088767616147012447842527398938164686232828443636456497546822690721238557095112566530580021480881092000227893370225240933638294306806342419615259654141285879587540688695490011854018039416260873536293493769494906294550735176356588468116030998028614959694038212008351244515854479936571534276318679341317664963365135594409548604886573324018559022019023493363975193459691051633723694388692837175875342960135896044397630658266073720452389632955548495658568496999294881137416265970329181205334348143296541848886344602592119292054982436960915566493331321693707293000968403792154098114581072704583839782820712003156593302930463128714081839674672381604698237193608990360816892124708703709952162679913725297696100741037444157750812656208981005561519599097955407704935774382058929428063581492595723144390630314051171851893359469030990435478524443420470229152168345034218580136010431406727190867097611993995579278606745399598220635928329346339988059673966179497101138320453545128327438950336441953355525242772402972398141383676308527796779396850512837367566730441903880415880444692404587516431942664348107764209169287361807231040625313478074394758326105413467117520870585808783074621397850648969749613213427259728050359553863068006090530106413161871653293806910444679675553910865230796278456189132382390167206532120447956782520670138481167929417141016287194431278824503621773224782991772185404125162690365399384635460268985382152737405395384268314041733143529396090559084649601545834006203099375561831941944569044589975807494726249560004999239616081710809936254757923089275445350961084025051836859518755133899619493328915392266527959472411252235977332546451544869991464000787083866204028266277017253823386507908516155627177936297490707398578828955882644804283765845845633192134244038549476730013739377101654516889891809258884546048562027356963247463705851234865736942548644987191940287256318373295658767960307621105421240655013307189836630334998606193925741203858266129968956542355937631768414055400180387955511812093346982391641799578504381560448354254572020363600230939994572328885137592873990615307939135103672607715817746294826709930581253604358450214954613669283585184545568939320562131631935387440022566942175082080655534013979185209193900842986117647047408298857461404472631748000364272414052657259414338420595800745996901509749231066906785841307914429156479781054042930544787285931567595771296565981290402984688955536907607936210615763740088936688353040621043200590975687613301954284084659700770074897218945659883928788193789627560383250173274765626232275424725193909098385250021611201174217115209628557849905701998977500080866098453468373225611081126916187967503333791554481383225810179645401782125475945866915529709585606420422653635785041543499738090483005007307905742597262103617187316614079115906444325406544556453718003882016124382864149845612062448130815413071335661429267651731844159718866209704195634175679299419921661460767660097102652234534382899980635414111792753986201652527089515577083238361081117179228889490137363055602150162749063485025983591968284391195550491636472282960801050579446884522435853595823173075923740999750111242403421297131753126708255854619153744956113414176286841439011751972934582348959684562209277819601281009558269975368635082214194375404560887780039490432819931773451876444150648287798935732757526609566949766958162010089034568112877326368051432744082110656506274148993740180070729645130270653048203853293161474181746504181267008612682029131580283773096468882880848385134647767998369413275030544851244266064620353424328079454805527679412595362457710811942221601546401547112152683136448143604780240201366650980455115006088488763643895376354199852719787240833759461970196336127655289609749397812189844140201414784669267262458316250043555289480371272755341898442654830255467414580013132730797687033773875467322325902253392926312628151639359654911420474573841248884055398137188163016785590922152079010546685493313392341455203463625842029432195038587398254216230600569878020973547059449159766501887758628868131274851945011931382459422194361050485670528397203495158306074833206813194587602227852220152703998943653579620030403095627805548711910419355612467594669365667254796063537973402310702523410102695318256631317394357163222338056076370171530342840491649492919891292511587643592400142855757769771052766409397154659491549313577417655240549921842071838398821856276472092634039170834329987925872958491210987696097106072787653461582077045515268662831567943264994643793523759833087018317591632686304482811794138018847481457888664207543640184564421335803478350510962491513464493909621697324467392702527848440947397623847514905121977134588527146934635421452711076849513212911397008036917711628032223861166197188563482078469585800187678714604943636935617288167436082107110843953611437653367042803338842062673659305929258041310337650923530934392704345835757568160996231157690206554584798019281260654008112883134189662135294869296893593266779463515918125291197586229129153616337783509496196668275425701870959340128216752101813370959186715104642711172238338416693149952314695308016593457883357598025315567105983465462414185221884092448996580449084103101230610900040004276691389134038635766745065679750990828068792171694010844216319448218728404174222529513194894681071807074362344683470398641835665397485524542989028350534706148951423021333760265430998720710914774139380795664516611155349974951946233221184377958534911553121689084996360158313115098002210807619334355397217125583802109759467940648903755603544696034272643648993115936259580356290371797666597057125997931449859533098777318405511394241701199229444544271215475635737885595401517117829222641992724651346474785833964598268601305730436508893673266332471253899276924859603489766948876579282076985990780979053840251133711529793131409371162675004916239738131989435670919077482329768759442838099083151724697940031258454751745894956700358452496960355268562293258098627327120380999620387102535737783969255536263636933254659163192136282774652684958303527771152378522878167003725420887556774103463887170089917792417151888962582337199316255171453463130179202515826998029439789008843191736519296727462248391419207325134690446505220928581812395309468792881957728211924051188226318629107191223918150413212541897886830598115548827322395549635786715979402323902317100011036361591851962181145650737681735807050171004211135238275452698042926328928110253113062955404233336123781050808550053088552304930074979172638743948635005983768991471646741402787142421243265523608047220123292462586895421912501811708307750282752683935853875513604050381391667998766425615233385033572574023801448542676319114339355247115330854234196527456516740429655170012110858998056125707735549090755588333127130282883151512360388456632518429551429247494811431914928125910357616773881916208953041442132115879082277743062431338696543732157046621958621564065924125196775782734198384740938463095754677266794869663932349921646198033937806487217648638770158933647749925354462820045159966597065207018248531769062567557961181696739563347901086459012516576205130834298196566561205348332768092158649949059478098454117668128546422010512805269797076610979898527058010725662406329199740329467224495669960857402495332309828846240365770621896589833474539441143625958112836776642252988922941452116729473658319158897808717935466201894413187480999435762834133851839191547685151874868378122004671763474210643790381769934313830025505632937693459886495221338100234646572261131318670892800285391498787447553441627630278839007342285549791559392277189158767645709453777977430785700772526805476234233144509098656206050042451033191884255785280112505219693360430739610128415119737412806566016365714151419173436455724568390611888908512436984002921689813550424824438793183742641381983408623402895510744469042941582044059320862924553877177155994081090545302075953058988951321151402922986081702795383895166472909329702916612451313072336460944912379409282564614756308185303248269311357997536047699127079688210484712414161393152348582274717989476166828726946815130831519271929973119133236408201557645479882067434484496729384905082319150342291877621233516401002390824917575520630856949917164033483811231168458945630737865564389902141393920187863464562930386184232283068131284030697314278249690370991232920106130781797483132221183910301509157749734541719607236907764674528861964245771607026292346871320947511785998695213722929067749030714275475836379103686375376702786566240122863951539373944262614193087133084321314195628786471136442290873917535930716394888547903326246536805800137578917533573318665574038415715614777175711221825832269158223325066176493746911118966152580508646700134585941479982597442882727388570323558669584895172740294674101044710110945052402890289131947429482614659029385243750668296923221093673678311603486783730820262436610023149687759729624662390330157824917524672167488330971061079160197097550273532299745214441716385946799689261865584790981511365189583357410535185898542456351472565268814663620920000834371947328468630098882204203547934919590631097024876303702638428858459317267785219703469318730206768409791793553825903741374338398157435376657020702603186703729207543922422200904250854845517367519152099675466821901879109099483880557856227453427378113764758091109935834740562490695535836978078844317720941189117941482856284615424367148857607382888392421172260936575840952586771345254684677953641671873513081311934007041666727878068380998737184790099312723432178815887514300000769135169314081315335397107278016965823707232981693493159184503626706473465356842265509623765935452465069250908633541910408963086957438391390556802785687681358387864080114924983718094638652498248605368902618223555523948818910631044294022402788164315561472405293602835046844905259076325375431074557643096914966658331557181867930915289521018876760146393499069859259304147954218327489258139866123919861252028030950204142407614586373428341935524512343203439868438348917811250519270201076492562689706238089750180320588934824390859018130449800057748654902159290789249802567673716734178961999086908487610079490797961789981332049389576556825831981544679916508217822712692857037985631474924958295106744721848519997342031622979680829907547002135395844527762487590644511357007080269006165977755123368777398332586849380653841202795354761134972512787538685616580204826786290176086407910579373307350817986177545479243197710615137368654881051831447838336288036144384555420351893415692348370460767884475531781436294941788706902521145044863374683046461252792030539843898359341703459209216763655731396326515521703095269153498800741569899886277333060759076372199075177390140846683128318391928616245139747142784912861916366572098928321158845121510601050841512518869436423836379238848768683002866228859137085646881991223323570166182156820774466841285089202847571007198469589048856232055673301053797340394332810770690170657192064754714539853128198213623786364415402394513648039323395606245853532538704986615938963680366160233030875056317092073563042796635817236601104329216365117164924197344683361811051005320207356429753075261845710454501883498826533315078153366102758970564177316181892130693333150833115326824641714196334958404583125214820133862117165078706340120877891702308740756658191761594490984305102349239116351441408197192994877029374782576174335273808854476728417129474339191790576280656217303928181522956996154948338123287217115582428279933233555502700949230751303471027692663791363598994433882261185394835137744813473337859729704951078422434119065123961399859966324012140779275945310084769391332498938920149132565635974689248515131413415774545842641751994896873790387269712433173537191168304705882346096328993723230631961191167514689549048207222679847445893656963023213339740049583652011871993218273056702426436281613352657452536955802132342598856926271972758389081106488102695607626973232226395730177132147120252013572528159743194278338578174691915353067727185216568438719973904853985806855387188916156727873950000268263612504428285466008294627946100316976972733759383793723665347555536610226961231973604679746974448380744526967957970409253202371804491994028296033923710708880642009303498996936382537784144616394396412842646925144293251166649220784087101683050521468240926988029998440674065752150993161499620790936478779516560600176037134862034842421486575006510158307955515530062852802278487283227075622968114938178991085903525798479848970555134580583456724710745583791118773580749907006571130373976063802396875645716196968212207421211093581400380891223588208584253329921656666783827115031766187598081874583496922234010042448164554265261627431167624736699922448036592262166854679604714311546103548282876213134574759407684633499131252042986062580697614237978323911865148053054380035509918471236400660240656158619367652861832242658663045539049811899694327403652445044825193688813190387942194869979148676469311968504869806768390228432529824298337838821949596065948723396213272151373250681611020703285623011684735071166929591843246321642062947734082269946548765622427943886252820640414954523723260752801066518603841106596714903432497784023114047875555743411544171623732368858653451795212141904093684448786057791780393361447011456328108829961531055497467624974624541858625926474880627879424807230136170300334256182510747469993620399970146491222266855589541147821999727962452082305254355375770135473708656795905928913670271706862570213510628903395459178658260742609655102419782966288577212141973767183353823830186988697712108663122972338229652273343849980688454965555062355997654491447351525426740260948484606472364393785990823845212001291257645508207432774792359236714984691263863195152262371985181433493916861411374595042898861241465543777005959129871797421156232155854114285873489231205789087026282663392185221668515375172427978378116400913514928845116557466225197176442159421502301200754323484798491548028681655927072882674394203446329199910921077255949982155943557162946218286322281355531448084894473297059253996316992742896001185748454551666322165336023085869873216636340660898754767378227315849770372978588057320038411900368920778923055695035815075191794004127164862490723451586481660929291506688358296673373575853625944690906832045634713932503081575698859295467574657105002272772136171244968246446859911168432074986927608294482445657601539463232709120646340902537282962137618613028586422848918793647896154442470072666067832656395832579812499941762389283815225274216479618268095959692029567931537941553311004269938822759560983547666027601235404817181930666299730661926210318266381509539587139843618582399013671195243956392153422908958654742838712622774516310295423704862198040058171267891738985196662807404732969380166751203091060290521884287971561260723076256251373863208674780503415765128066182640843189665153244892240815821132939101849895067169211227281094386861169744409993141924798524513471876589345816475385323339063403342507976805809849608192215038461725685635352449819888152079148686920399437898678899237663466866039662700337707724759136909831397797405709032198259667279806696998482543713765163244339190895232559172322771693580410737082350181922983196012553337746751356218078204253430282621996898456881577938616469049421216866173163611047670233019390565929685422287607267180155872331379950543831106140482580027070794016537220142795121233495588822228618871436708729708876909490521702057419384814309850233653672550926898962970320709827839286312249694769941959476806672374625151763920514078609932043158029676559508166706486502502985493029014906251444628163920492613391216892466461283973961054362307775090322764332633183912630232954106793594136784120917157350357420305628834754982342624291292346828556299795293790789598503250689864778021866852017049502526890510916431500813330818900676486082720517224736250881578461146013811505098553535904293094221030301055870075100373501683347996886900143538729014182338211900412755657260189473269076932306218742092350552498168189794342653651138154659358352794407521530268834237698588427377678729376186336293417126509760736910392547641330913705136147989956543513087774570906487621805328823599165919462487514734150321227464380294576162483808099815636080343003806730356638904111212930469282231047324397625862962110583790106828005670642212980092663331395422331086276214281739870802896464566966616579242580183139843910399250914969494197997333195868795644731937819524054928920917241965937225804670655440242574000534992441782535477008329335071125048364831369037227759075950357114895835043209127860614072638935647293042788235241296582219375934661726471736629803984062642086083204892994630519779396380216794419478629159423437196630791587204446092293141382815874191014523960349709061381652536749083683477274591945858638969293199715377083170477758008686288118918851942837245083621395498949455546647105662561145782326813744388409611914825326185255863605183737389330969557861001404822661406811778138922463434896198500806438449498333913308748839990917621438592495789470953326493759036991551995910223248494508664610589915860159704392824753356070807047568931712187667722282262866907002320622021678595130270258503480892208331720599849407849097160076679389155565975306085782124232204627154011239543809918895801793349043949493917604602609122313452833782831811121396515310371525972374698780256330514262060631954576065764992745333201924993866323472869164920370310157052849799674363324507103690126690890777509518716743867408124600112016349012425971940500883415573387572391834845208473118276317593528852459940272708887798072465823884664511808944326347597249131761051985352651985244329124805450257836889278034422447798262398007170272726736056336184774329494952166154609443951684517262916057248321745583562698988747470367187643807631292446558578164805595686445695747957211062941268413666263374747670077206028377282494478329777853782016226377988889023839377969014080525346149855659379800591258448145355050014675444760966974355942039438319454316458855015696502407564843376363728342380355204413332245008112921502286486427273234063383960219417223509272661741206635528868929702825288879603440713286819184163179027681482363344930910532094848089874903378540356216531776577886527458741672495340026367959854472654514087759654224361853475672882277647023801664074926902630755030021898666228912023464079844372859316014885880771358007606249411543894226919447625544730819407323339272139955332796787823581708156702216298732847890837211064968049573354772971394059733513438105155056085887663516824534304028906733067381636380631644835065301251250069304566505823475979000077509845825377918306930402920827414686354881455416819725590875458143441699756724834869891742954428937681457863797808682832191611652762850718227685128035746216744396574174696430889658956859248944058108491166597440326571430673252119546022790104288511828816593433487095454270062324449864610936095343556699346966809841165084732700786562314940981409304344432397796334047329499108464595868657094331261898996786122747853969126940260633253003266740789964677497489556403224180849940741966919692455579514264125466998996193141532897950496088170604658052617479589199942486715779767112331371517082971035282276907157578530819753412738159797118998773827556169071087597766781408906911662736906467257179894827793864558392821954371504589694735754501798394847938603408355406889073798599999695114803847007980373767193398970650409311354248518087460416541511130539331061145643888198956693628714242377268447115309556113074247963252510276739949972891125086662191630058077875577332940673464287373712921793117015752631479583055141470721555612323761640216715636463842586138547135458519432629045127892903061566010407115999743486071450179886219465753287085455090193185532860152364946585053331123939180339099406482897706850084219138195339500824321132373347906999666646005555823106227761650576106271379962617176899677435287892255262338832199347777739118996817300546115652835474087451918865519995974157874065685569893087204833931661429146700150647171506100083323934322596340124007828575461048233769279668133463118128165605850631646502933143436324818945836783305598711777436260656556869371478033023940397955511337865875556212918892481177797889767479477274820776855052025401570253247372890698528580680161178407212829382246239694719083240272172432238465781891495443382412532791444366213630313302124898832073834308376925745585759269990529067759479173836262403056766288669654073948010162584892280503250071909069453167786055232083897967709920592571684004648289211564478584037313762082482192048125782672545900365984811672454824143958992714278765449235036597270415837058525608000164608842010574635871863412801432727101781980659742558251199583318283470526591034067758131413050974129435717176684437255745035752240247638126165313552523243375780952506422940801203841275364485808501076618010041352485256326294502071391177592633623441307988702236337484394618468250655731672455049321329357657582840125091188167516941479844422144216371581415106649647780405533208995171971917348698546958997390575639453474135051633609739418091752054569119456934222390883324883405426571782194190451185119756495350354804353649023532939845945567335463048833466240836212338904450350378063191788671543059347619503249256557750837106035520577068624869699948550368457955174105999090837049987296422518929869613410851473688252376608736029302916378261157373828758036589179905788001331835151392304492112893032731707382142753958040112520353658583059194549315696993131923296061812276624453895869390439716991539508683144586362350771270496715436150483099211489300209303672810628509831384324328792727300093278047550366278057567623611488421200564812097374258250040067877504599377587873080151323797185542334463761543934298261860753798462736690710393800644132529442740908448048276017672862658222925800945927751633626040271930312543230456235575334762135029556450602635111264996183857950888296764297542817474558213262817254964481936868705969235722836623482023476733561661384499256328843521639639866536743180854341273034953469331412724445102968994564945746569417551677004880604494236207500818572294054126471834518906368512557746166256941412537273077674395856921923389765151752803749102994057462266666635994079222089539017912281945798254398652976969270284277105708304466546905787815059571086814257776202885664770280281708521569720593965726576610735676066369725714999060311124168209259745982346593061494083225385860458142763554858615123175989671761663965326976261336280148856261518128393228019815693822320601667828424594834484891569778974469363865711214938463896315666009862746581068361844633876546437149470541014448543089678056234511674821411238878376650372749375923416865465671425756728992328795757029104480861866226442122103831887192594413743831817750995827396545190934513748984807164389236943556221615982423679433605172385225749287001965626209548399698069572394602247858702901027599712746716490234993039717791876179866892401271944652705855271330539591693224171750780246758910414621439042398589392955140317427703219163871174469856853024295884798546113685376916532410237569007581051183127293222270023873285546832730975728873666649972031043569876588900247694606826640493383556491007033536113424122094154108478763507824797868400636974442511254279417398249295527774185651776459900577783392663650991087354469759005579347855934924745084416512676420871389979174356659167218884734253741299824262760174331996183395184856076061428665216955962919677880746104237400894279094930523931678613740452991435287203341570358595807013758831061261585333690545881728630181228506835621848211901783252232259194388030974434484215910326571981645141265879168642217103248407874215564560233826028441187721031476982941027690304039066970410411636882256944589797364006081546275702401434005637253390656596699641969046198297483336639737846584881465225457741477549162493643028768367595193364903851688355515136856083090373735574058775686395676852263916612919202848075521855794497378793761484690932278631100777375171507599099861957290340112945865778334026818940662959628904807518243025689306045988029477607710643682396869162584656990594694614147302261690421465126157973627168286204534849059732875295816437857555245016830172326466423306839304439210138109155423767137557968701033066996418447769266424740226658982236907779734801916840835302888679171836512876988207462383674600139472344647286395938638686171168646634662157236655319362115958830072838258487571100196437038493381924467915005925652067737568705926894336836346570757503677615637718443039560724747427156680849762998787583058438234551568880563788104623068265985050306244504185973321663625056198715174510314124957110260065893314571264693264665116882320986270222234319099526700018096665063523582529650222595162787784922216031481932204564922483608603082958833485575051917497655595715722913705498936739431991414960147115091165714239106162799276669898393806553748572436083414714491779308324383619669066658719634718970930961469217612843084267280589851183205842197515912511621398686896134206742093062259381045288347720959576082176515312835545263698775712038255996242831428427869453219140463246675735461975284671052082976389208159973048195372859116911713939461044232466505400291067841359122378358312431655997092005699726171487167600341464880331567910895993593696101881589576019386892424764964959740085602328271084413157559596451461481327682901596739028641256255042107766664660494216180314624683628080543617284121032563421629225514346421502266116102701864823306796379057004647407473360746976357059332988188441675972769147098130216232649049967183711163419174643619858854056125366018326962239682142071168891365193318783205721607877119921210739277738183075813422825588154057067561444019092197628411854331590227374398583316838965802696099860859277319854937486659798475834495024529922536461379579496484135775407940513447045851914109657630024341097600013898617771469824593610270426436959886658687166019686511830119239207892988921007990532736413697720498234823466664291958200004726987501319400137155480117868938948957568819741210893363987299682588895599375792244131751418910037054450737997358874875941627389015981400831733051811996943269463016049575925914604910065402244006847511639099689898903977904786066523464940652649358962187552817946374993077257591498296421850893962607105494166039400031883894905295033364583461669138022139889602009984787428817701975177192993836739452905970738458443608515349627405863656305721541178936134541465841136968634375238675502691547342114566440225374212465664320301425271668839780195623539259136126063019406427663973501072639752446769907150825112951127552135871822631431814031221387448689833061070296534903054327594087806054615402127444908877813854678486516299631212651475980683117426309122396610247922747153940648550320344842344938965689324529955864527520676641451838520683156165742846943982372836397079025507192264117683656971308366764085832919022091210714964115970361186432056372669620163579472628185501440241007382389182625461066739744736859215011383822456517124785487767794535013088352161364299103261988694826767240169124898361465727855034482164243825910522335146784947839039017865888434021240037808670112713459799957437499612816883069140239718717607974647427130638844161822665674372075642728299844509380939548490977912300620204267745303401634023813837765105607825211425730631004581290125457596644781784775160397531427582155306609050140700672053898943158619216056628262801996285252160475552058490074845741563133203231667204798418501718369266405876215964880878340150532397556439347871165839846893879789273363445657275684782923308350418314954360419065504152825090400917720406145806168107308518899924777285244919918484512844976428396922262903630380599670253676783096513423247351347994969191025260842731366266783255604166832413184552697561286172051484304686010971415413389047667603174767129992745569084887085789050182254763289294414540761168030831992736108926826211728823904992283483941002346540404495200715590864732164859144578236231439151398129007260959012920095327360562029160190055422031081435360564546095765701108470040046500522912076340812072644183789091496525068396482880146598557732598703932240235896123409448905094676151038010527419021463705593925290015216713302074173030701292917601919547189005293849859485833586623707448446618934585726152175555189142373294495806374115140285660687116045292447005647575688838118817663026623612269387215366066982218850759125175365476749580001146227480949776822874191656987908742843497738228420781347219288262470731092526642273216616860097960643025562687154608819531484646897255073408565529176830049715843173529384171388714091855801567261621798933252225595936616700425628409084377691867542214601945548149250337462461657406607724492319675696619415237521472713639471325678639669273034658347788788069713963986699114731586555586295456120696265493998804475839374097974429097981426985985840472585112709530514804522464551641692958929479318654116806825970544284375436565425314318449181611521147054527364766882730470209370160959269689508164992768942391072340277077224717501139155696972280795194147478985562039570443066454510303261421743900695040222714268947489978361227178917637541136096159797491140463799098363541420180934986198260372082780086483069855435114749917516235566597059720676878542645408792036623302997809175337121487278630911628841795704522138155544673015468704855133041307502755088216687736037028641469850877562788541013381693031809876363398544828924552569710445129157847888721072539596929226026587691974065901013091398132343268905298658270481589469828759745832295089003395601841658729559978886384060169040513037379951148480762735509982329304966061569190685335245038255012378526173132172410865315639576580971761829284343681626086439449596975685885754672717741153501749280755860450239371212616522784646614868749113518965335257898099590658226437752008828917428600009796502508461060007442324159407723697938352465526829483005674981725232443309167256768104288818298994797352727072893978952391199716325569486123829565238783422858454387215312411988198928435587644390691064570605174764760849499109607109664019043121520082988313488148010225847594469150807694314881696246454187305143714605141124535996137127072683569763044451193004353925642700976335439192364625343031411075271076655440779844627056991167262247696567291968748749661906307550029787530602869551204615103494665053823001729132915854549627838594696932445673173020135620688795123305396191243105505459417980344069001603889415836038804546567697357172411418175055925847152594965021053850572344939979440049303055903719695134693834271239043474598206249619580089621344512209814917400285582667760955550691949200531409756935250494319345456949806077992144321801474632930270565605387559455634343570113764439761453938619865129198452711992912199080757901349290042952995800607182069758777714106057895713934578781422386205180754571028033477677486971862312609084575358617919302762381858051753777616960632585244543689499447381858395942568276256273873961222918855976645367581102641634323228232455019728461017313905337702903608036667885452744000352222858008386639669934607072239193114800126696498613232500382647647157482739825799271691524216700968795528799001961182391052992698290135576982439133382420103278998583567199608639009122513174146967449879254343663662922340719451078328147668473095662116507921606896534712093579943379908899039074784465471681771835040151026494728492964778917529736167045978107568739928149308241228737730290044107631856929071309681487264781645087226437015770042841087300795726485306930427698050947551591493570733255172659729559103711497993405820523383943319932949198139859310356489180455436927957027114734096558728439675053587004023850584032271580748546680612726391914576764775600057561719223322206483277248554035963686804761868195595422008366481870907955873149404265049959457068044507124988376175906093062347802383636904072618955264595408240361650339505419840495487517346596908689209800502720101527957744290931561280606286336328622668227760694377628642151847677714320025635304981762956643920390283710575641703846555724612775753435137510006229773581366809725563582512233738655576455390548086105484577575312389373211461344136283775463061725313016504654683695063115817792825674744149077665082504355458071935858335179604707786475158818681038250855451558752684849092617472256481328165700140917668157311906904278120379516709883101744178642990288469953162774444299934997628106854462596033834837608485279417453576736432528745703479979203597300925921177918605106731977070198425398780140894929191857655242197217383884411312565350129526128581591707302884692599377209682175726922995091457720960202557092095666333892741838807797512456679672286143809869913337032263586368909560444964516606346261251521418256193535069606912921643424817267506203711732736239332939662214573143310606570521529502483884944451889058972048361858453560705072476134731545699125595805362805717848491067185382800833405803737341686342236113781225286650974786541119508284911555040991987043390464958632369507209438655660302472505804472331796732250667924636851311752086427387003030120932058520691812432355497190366202150386538837292919813973731637393367799842362269385372305879101068133662683514454354787562134432944260381397978174082405382616736272069406797739008103761594436996109672900802223941114863591971546869028642679262560285122726780806494398470752721987680292410592441420490389320193342301260886068011246312494343676149962064926989766694571313371258107963890271788007784828583324777154230434506799935996855072293952131069182542560509307788800631239698809505583970182164370905299119729689048831988175809889505540860086900030265678073220430327168086331075286547350088132597747779414178443462583692033313139776231620743053310233995195444532349428783960288126912778740086099536675596049802274915995405170686024896008334446904646950710683969521395778075884536629776388460020579034128056844765690528980135926023364975850631565167091325887321777588958980200454020200852456096169891615746475117827490160407772529629345159706840853809195223001126918771387477951773164447626114734183469858306543414685161030265597176578855270842214890404806143124172797369810518896493904902304908860599728353262275353893684346485788944299007613167907066497628090786809666116386830690772727262739692089412950751370415425823579943690851436715175624911800608230814989007296442428850659795310857208397542927301142444064046906805060472558926990839802588725539641125284487602505793812765259846052783570759265890382910825125531313351407926261631111450295870297147790026528407756042567415058857693470696988228479503834580058881022632833757903816334015305328231981325562258715160968803910297795761304107678306672336735070559260215514395941788684359345661632008354074470183760603695124983862872948932516226055083030578846155397362364196296771995905351130362621631942161913278788792432932041015374954047418164421388540004468924900023197220475858464393184931865277104929787293832009936456776071229945805084112984894032749852827596301645583191648094143154907059490943322189637232135981134894340090340451741631500764171250023139296908310905376657366849352905023714933051793617104070360325367203214302425040537537108035245444716001988180996877299453076294602843768897746453935732351445931428959329108795340923409066559147354681316632409581462602203168432415043862457735753615660890730326509556720552201545755074748722241813419333802297011277612937764209065081214396172480419681189672708551664469731617492296678008297898353095978506465255272371356189683397810545063045481642893927043661737530096540781078414403899263700619538640617791565789332231604587961769447126845900241642166084590138587370792994703847372286210181638314712676569164316902559112552399467864919675973538222087939088355776513154479081086706251199087870387612839932567634431188184105765254014002109993433960139640946257357884864168611595328284025133525770206108640729140622802526057556691289617680453886870832251783319093783512471619957443084121820933685652889856728686642102725500594398935833694198979832585821420270062237783089621777331615471960112678895947196616804803837412368720805631903787779932629442924032364955722755776817644366977035523364764023266295374976428470646698591324362720985496675439218613105165623946515127506037207174952192967512082503641630443680796683160871111083793961064253304318552519250151328324233596784033345218880021950141871031068503077189445272954020125596833203119674926549283146697708523778295004588271015310911025810827184682159769874989243073361818922987862308997444462890850865807437851461370737576499894745771422669774485683035791865120655051147090829572762461775054360644579978416332544080912120752948062715036345765227864502844450134272448759943189332840796868511919555180635328777547084167888830181501975647131015179378928996484836088773817560852810912064641611691039879935606327218213853305720357437014099134023576917201615884313720826698223331230517296737039048012803965975005459709754116709631787072426036424854922668514389366268723112593265216296548801684237536831290861128976281212145478109190230482215661748840281004435290930793847036055802919603601365050847583981400571470226455627826609483576919711108969683535739857241166350433644980217853525685857125253119584596475078359044764689129780956999568439244807182225960399315036606735933830489390777904439588089215528182288266296994859672601625204776736387145350581630143813061703287446711543991145839408240452090508693362428012608464252416915964862616277072694460358715690500585546526458467748976245385610572379165355993812101538072099406843311852961893010141803805304060453578600232229806116776823152603613207280416411198513093317767772634005693498023289099582885588443528261107860001125769273774694681064591455886902961497609160223771207314592133412057786829646994100320730842195301037167301951311599539833213355281276032983728298592375098732842881977542481497492549337242066212660666912834697699208900888296087701890889367610269844704010093687533100805881866104634413825168381861544453454974506143882788698156737086474684746463571905786821948956138436020717739546313963066053597699200665966474634348634015703637860991092906592001100153806232948383859836190058729249959367283282697551724481769427929560124419745907325356115068922406233881429115872115659151183263658039454837039451725420569178804544799022150281293674197143178404407868960691709879708608945465854994842380375037874103913680168336347124597186553143427822157625976462035224753950943551480492211706075510030494159512656205093280736266577980643283943831664738448819099157156362593194855694464844844631662691117730551081975663493726073845525558874856858814941903113305259196603343952824770178700169604602657400269975002818740198962399692827681990398926895923604383044241364080542363933775073028379547867127733500595821951403846686551515726982585619431910093756232940839603754321304227848394476049053999507659660241595886370896176972770779209315883881697490244508591158833745561505684412697243918418435850720725634967807081891855849012770300468094759161314529206152344149082328987878685318378388361556290715919448212951778439408784542433070662806598239801437440567695981669980387580885855516114947397396371799800124526706324238925721499790511513402170246320554863659578200511677994895518050637801594114943529625566813016393490202440786897239809197901367461750549485758576791803140779562562958594512054232287815835291667393101866382096165457937157592979301038704801460027614904964302498417271657989017999987621903931921109559227971868468886996422216618996984221722690714306762181860842246571438277498291320554142600442401938276771343782638715478576040028551266633455865739559323053597689876209910880655868074195298634879116754480273217786105436659436900435252282979688437944653347956288907986412530479750778226120149406172954741246300439618901775392721468221936743594869184882038066998536779773655176590405470022578161795856471755974908373824360769772339695405453467960181906277725664201731196354590693473889541307942772880648292517932040120982941829876179922321037930477946498722500462735054380839670370206774782205142827213777663202583774681005916961331801806474478604260758068582095237127074756193284551169291038934163595834088375631640094871961964215726409651614540378682356748372748830837020488995702575302464076061378910516583148558941057967970062340295868077688884547080622752205938051313820240931648369100281296273479872870145890476957232170440918269635220596260741233612574686593822306807926324053780814402262910682021587951462707168208613765138535637966614248109724124597693930606600563514826589270196110458053993460250118860670175765524168063315893813127547878493607573133747631472798508504039585104574111066288973568844844106788114852086290421817317681621272743984077353009007516654260213047461179466151082454402120436542940981793836011271334744323599867622624908710606834877627600636291538453260307777571890089548202633325685427002942273033003393644031901489095911539450986144163354926446803157759689623432005331446934363053006814777342167682312964884914677844204962723141934857037518647422448283089641875717113342068872986052509696352490550938752277305570359708101124278429673996355710446273260963894173766914988527878635137407526709129120388958917192320580056761093137817996507453152299954342931205540411986575659845977610444598617900999660885855097977311860164351439171190878742783232563642437675609015641130792495113512548666315979428358253422959683938519939042284454700624703056505037805512504416339540917140065092380513030751851872260609865795031648851762861811637536930335906054129880671423743657620503618776002547493590134275847014878606865324392429557057016637415817039043517716044257051541778547410854753055636807342659397752276363544176681632761614566268000456719042211272506809714211377834325100685530033155309387491580929270387225470758003514310586396166347069905623720517235540704801441390418087265076096179203490209688505655944156741834063809921459326777758617247830895800882903186098830092521045884530734417150725288924587319286847679976517864197516710075943015397541445123221135993009891255020386536577865522649763974949102859427155931369190727843595283412310883050976116254341209281771991952693743797357389010334909257787390278567333194489345037169043743445416990740925291987181317303591939334928835519982982414584936877604132322752751764671289207986539962917916500847218307117798566604620636348033153449492836777361331087445656302608323464011057626416752177235387927992474526101700109495818700014909184598722468348659451653651350140823409621356607243943529965199353981933609785441446727969311118654613916728457648984776897755367212146855961963236940780754971333489532209019442648095564028963333209471783586016475325644866802414930131611925125902649419448860432765433158578826077043027346887093748637635214973073879713371848292834274863600778703068722954320289268685468935165197163482806726789343469744168028039363796468335221927320233032888389480791890364851740925422742511153343850653623992626803634972059627697698862834805683436040281816870166163517823621873634031249303625777086028963257301447158993363349110602816696285743997840788108097445584520856744349617076429315682899418970796721864811708216226242994793875719734387020814441455092511295624114729305699391618276069405047993645889010330402079816385961291132576955952347232543910757901775141624581480458810295225390273678090488433094125163331954764019831025660848509533190349067198208188521700258545878954903463513876087271366806362617975209957111558255676476210309800522035482426389431168967553195977678614165579833932507458121511888434301362260318020008423141013170027212408062024704228660178068008877077753795024109396543802707103193391133892293789844232679950350535091280881423036477942035551640556031785481649668813730888833170287024089713990866147416701611286152260666094032252435604997854980356228799329287342413335412792094500773537496214444328781503577303474734191606395269068849697104463177487072709979683000368817599051608490515088745815085457352131673250339158786147827298687182214679061139644786723078228631479252473813442851866841795105958224328728382590247549524373245371981454891595808404873026019287227063501450869850752008428464749997837945854843214788156252404088052092851773587412176311131519211690869893400528416908989291880637296241743955024764687538939220730211002884958123499420669199938941050938240766573309549718599403929801939569671714998805297047168974978773554899665946501429275997902944276479921777332057611470228123733072487794667516376053091539207482999740900467411422208976711681796150165045618466678047609974552728966506632706037725951925672863452811445327928056540578631414903782678375429074009354896780955835397371956565516966835037361942258504957479474770940295030313526127056479895101454172432950260651402693895023079588669261235638932751283020648835908765178744028468938441617604612965385857195798021805765639016392077803217273725003492968261341480875751405878256881599558957077071424935985370594184174513693337435601717636798025307407007546761417015756095679899627164690319954050593622096765430530203436480047170031963626762108990173484100465721174334463982261681722916591916333263311756451513181356387381371928161147545460148023509466847065647850851333459843464971874269450784619557800965927395872144820266690033017026669818068461433114189546022489464782015783819563234748891674718943396187064264791328612298755373960671741952700298800673920126438494479521419741056749279140810231061273675024794834287548525047915397509725414870233101449823066676876876900122914875962161804337824814258306102445331132173527290945176978030222946459455946763063352816937784332817317756699401755969909275929023383183172654443429785610555749501493836781466115439951972068996660114420168988151905215861376709899347285489821091274128712020894761904866071922890843157254914481631427187091528291748380740266683342433430129501646104011070763807271799459204945102132888760722545405406780675812295503300173702570830883820381002170885906682758913956998360486054973110007601751314186205922310707142717621040463906128354216546173316757491458518198911333965338526228261836331181686236445435360687579810874185843054588191483128396407732891502704342874356614958917684899033469429522723338224301084049031462876251223869162239441604027550114425089906528527510540518276658427111752583432129395960177200023465283529952151592634679692032444913922101236963740664370477312960767569915181862383298502473241340455086143889151865812345556383622019766844916684737206001477064735394987897710867762953634342061425310418149217762860889780381627532357454047165187514260119450800853910255942666374704765560906861480208415611705420158759522943983269321286985953416993188470924719879657390771096130531442100797905991769949405190229458756051896948999536783817411880301229906785238367091405634878913553854571170526282366378855336523905595045908277305016772015970898128295799938011326552611324382828617259483657985852391203188732461603574116576382236279841722430584214093554742363019077605693682092311651268485522940856735077879432679092392935092132941775442306687308375523126440923866523836657568766205499609498385497544320451523644907004097786797965483390675099843558339229769652808521707710363875349619281541611886611322948679905268498072334773826603672361370964817065219291141609767393648869616793722613400297991330299272398369942249223727486257374187385860707440116809994474768268329713658088449238838293829536983026918048373822485778621047203972956589268175148411804266906784379541875694398333848255509552587739041200062515252395192541009242404150341310528507128374800323693495948243042518891777263921330717417992136404599187729636914711675564112602847256763282116860717342039733680791887579853004719629391794163502681583113827446316196910115190394460874323638588688888121394266953634077679320400761696255095179612034439843084544867124171767207708881510975794170279986464677548384460573326684438096650230874323000469240108742626916933952872259069795533726795583326741243757515880435879599865097254161121606712452674577175142869811714100177543182506430750804406343582221430302911288733306622864704645031783343022342486410222790248559202813963807072803067282167656341990716906301019975157668073305196575202611479964439620563243758890521942470029740895511714227132257665584790909028601293235701926733518189628669735855370662718650340273778290336954417059790871101754775228577965013643897787648125182826475532910906998125903312369113220231092133876568223440398007331177024043443477666414651644845721751444545128197155618374673558302962075264916812738374741803651399797463897818890877065849150349411696850358982907514562809574698191246534425663374801979396488868332464518525821688445553434827226583220451346312828622379514396912108237035916730624436413091222644938434464935106200307100655473684897671214285381133264780114388244245304316700227405832347394817173690458883961000534773395080568383844680518930433975364846144418835898149510240405143264525639269428786268623633301705798365232581607399894917142415084170343872393621105463803833910845180021632410603063226534189823931770855897655234120532971714880323124422671502600569268203977822769633538083450482867795552139758867849389922401608433079169733994000527950804447081984082094705301692962701111149165887537038628282436342060977725527136920021965316178453367848347159526819660792210224425758066318658885324255177722152057132961896404680048453553798998997054330065362635054518554057633523258145675323259449407884084151278377740398248816714940877388601661938568091901543919450122178215969773585485711942144565389725833087937755666035316886628133063422653017496970850599188413209713837764636694595396911925174812326558940872914985073552475102744699315502562259670308077367653742357945523123480037663399358565550424729617642392864762563528509031367831075506513524075358187815156928724829345907835454862865626734965695793070614864355567816973375891008572190543674485749368647787055891039553210832123658036125844580672397419948826878752746369854043546536016027431982931008322960223866477057403059509513972065103930616557351039803632466077396216212139680050805810412989461066308950105866211347349730477416928470751813820828038262704110360838965217845689169947996543460081945336363431129541354339691047814194454263698509459882975568649591753625869575901262704493948985773341357527122932663850063934227200302202811620259214527282588166253480128332783453856412452108248297320904245942692762598866696758163108020791505348300048451976345760362889667507889872565613612769736402924240460462379091971282457681140372578099774146153142175501813471890791879134369494936730067949557760011913010908459704435364889910915432506119794663068164003213745448593047776580612713605097088009728596862178617060328098871347898040045208344799525256248847940613301364465064936574452203194432839637875023571056924095536172947810873522649735601735374858866347193946343657701469451230426176390956858935310118271955880639637748336571351199559968530235637696618331105714348910827495187157276886804530777043627547868611978068126565771990254039940170048960796837635659711379909069252790898159582041740261669756239254607871564289083873955463655113836299381984540628953002089168642979803797927736996055780861032558697930595463655304086700828833026458241977776455098807204032901557556140329482037200475828465493765564444747220047628647077785189423419388862252873442511711825488853013666971748988308762711740975834990558362447915826921864699725724814952940175512256607563813478088119009753252948433118384494353104410648745501742912649111875412397096022874763981903398615428894247115780415719300115959091082997860707648305056208007557579581853850851110595231827330501370476294327617701836529974727753343000909009759363954865329731166417261829614306527486791129638954062220578415127447091169963595145818876707439166803896133662976205032115834863108578768746263993702749623031217477170708758790054168170266507900461267171153918469083426464954007485845145126328451498286597852646065632181506642177513347667604488989272648701442072509923075080789672666783679048634783936651745092768425470562756298466605992527305381542013022255778358081281016873484085815042506534398495124209584030728411139080363256869784145573044674136428839511663248941105156465862536999078998341556424899653255739624676823265262522983069109702748633217522177227408289299037532250622790827259845363897024346317368419179878826094780516366615892373603474790521708524806978988394298461022827558918606256504638067449623668628142432122168256791023393159045593034592281220917864727235091229503799520299521113655004445954978856742014686441896053765613556419625604547388484062734419748908016261524720442370298047744322561631848320906218554523158060164380272889384276736242040241441271557792393603472174269372076282788461835143743700975630583500101314732651616375018095794104441031749021945443332454022005234473649443861666350892263393735794748515883644197742173912813225854895813082690061437789888083451941399837730763463879139721746827894161890981799089187976187445426505986454690312085055238570444741896202799687763732030314899326608213046435689017757149594235768016210759149497533804328298987427775623425700578804943629918048934308078170300400839701295154528519921801619558235292800954950648010639151512113353446542958441242536565343135610747144398799133945285602776193149943312176694435790919669229709974721312542643525177459965589075237432763532991209465412393359123222427817847478813144122997502087241212158167550107724800436613159133560451705066580461800589599581277794035225363295343892011178897525928588506617736364697944998767767612843325988073333904890085319451529968253912763876425808630978020916845404325901544853162008124598020198594255728361886217357282252533942292926996430989444675219141329011376018367468107395995845922744671456869422390611840323908368173758035242724644653450401427713732621637269282305503357117782013772731803845398364489608840098981587073826668008510676044012364708781408252927339101011908268203884006039031805001250084446006563304420442917418559021528559179942985702087690733517053442106018562095942781520733004146708599123461808850257678811018038167055659206906238131096429650599367633774734573742647988106451135848467735895096559924062510168291697712377873867731766023911537731350736654779434745497795984123170265616862041749261888830714329367681764131751283531350459752134580656552365981699887171829015195133943410705477630936217259431009773983525793127636505526972535670145597771306587202160744706428835605283817301832354163097663258769467044883675885353180673017493073269002856501144732554771556910159176932743135206578954500098028359327015394665572750956894217702458922799196249002092437087856575110318752805797892099240274093614451853857068454401825870133309256629193493136750141299997805951732190817667949574325342185960427408553119491696595148741175999017013190040770628144920929471249725117972931989003733545632398355410525821801695611944094809256145304792748091618544548457207332795005576892542072681958663942745480216533989200821810884537429557283914431164515225619331579258682907174564712519302450928683912891736310073433062427317056997818164789295476978531909989679174754884950604088943676397406935876464211197483860238667890000068778752548738503794557597717438522496376806968277530436385723575679978692524210430388636572895880871408613886420424763489443125709530514245180049684298998364758044783363176130393108965109231344977054054036586254491298178796505197243613823165609453434288378872571619622019480064103969328450156960080741719244709208515087403887743016656507306042277388794235510504391537415953426983354390846271551378479634592923017892459864325734490863792892775770793971223363718389926583120441905648367747972249776010235868382997859257588471742806153727026424562411528120266832962137327642612286157726661976701658164187051119993992545417997610917071778496086589355536082783832369812946859765924742674707017311026713670924410836092524002681893057120853260880215948212784073991083822902711689844182741942437511578974990020778225032164247990337147731412755585792287046044546470162687474295146996542829948798352609691739536881860886003188739249619625352204258218338835426425670318323414677603968020801780965147132437975600313504451390912095800231905932056468935608801712447612074815405137120041870537279062285127921757877353571229074195910433830627910137162319816324754067465026789902581969497303504333722962852378447881203643202863541702292509896725192813518813588261411173421406780628129069060258885582781643445392506707278676044258130879689821716793588531231439082236601138758873611776760716606981398147397056752856092812532208340819913457133451593445881453564155269687569421957058276992981618119767323315709099903761096823740244698372775391168956096761610351135246977715311149301230501557203241666920301162524719079060107594876895366052719535960245435573538882895412647296344849032876047021242209156626265134124137631084250862904298742149023392871904230689981569947592798412949361899030174944602165662285589662022785993329465485154302813352950564803565384815596224687495021725757604178197816867626940906097135846850577274359304528499741466555769743863993398260855228374772609194394877424401423878063382130830211195796736899461450954255460735061329127588421598927234990944409224052160479646456789886596160808537878795611459528001207920125129254449291269337976758554989110767316931005995317583176491124438347289367236527005366938406648172921323168436568964551240578842863723005776311429204952169957001028233085168036017657405537955582991781334385699795211494077150162707278023687595882040172644138604322656216346073484024149054521011162858037839066072831520848230454759619637213781738159630732605904107260510294897851183030107728852256108381746560542373034673125274711292134200657971373377447277044163363212874031547631658817714811095170675925558755999491388231620963295167986812698143855388886453255431412797415216555813912805582531725911695826442303279573376167914087056256383941873836554330739929215667406158197646656836333874140569281190983730218203282384160511513343661091469859240155785439101433270197809977947146402657944906735543738370344988993505594344719645184510007037336005103394715890311140475174177749955789394452424970878801882554890619862450115182021670538904128946821213765974036403142094934239238920369732183522045244838951592457827682300493045940888886958871865098132251399097387055056173238617584891193941091617073164070252923265191534652868646943468374124897801351468069585097092425788051614588947237940738115647268134945926423219856677879143764673008291825303192043267310985032294166941790684942377509225262361988101934430902023752614543557813424129445711867749829089461788486446727038250170717774150952162985924862748606946644171703430776664724392158321822619948626367915696732791562578337802735511982653722379676642785769807849256479871601952313121955035775362422066805581386246881740553354987178685526686310418481142320635841342330895906779359153622080478802348547200893155257618517886509462797696434364748986921688028953139569726165642606245706520288286526394133777499434124613988696378082986991068874857548526455530923979219485686887801928515084907708768598215220518691014856941340758982812257762461654514096217584631943703922436301973383924396916993134785912102680414143535510547996464159864311738939801089637221521731292067546217266704482387156559449005238947766610101758775402689200347727104142781595581241692690587446410039365192727491148858662276372266313892130595625394744166428760367644408657164745474534528834354121446342388442991098004852853690210645564372947024040232745798011876525148015453877577819370770424451004643756111025766903018064655020801422248707247074450129639748748809976724606109320444959949861791052130684142047132666651310485758678717144159726571174000890207912701522689296634775003600696502006682056201400311964672724705395778235360406558628859148788971820734269118880371223994759202374569645148897121583783775274384069776171150647485774221260022126824582562350922429846630691156190852830564087922252991218079781448839763312586914894103793908170777853178533840237351000694707660200836293438242604617281050133905912528792990300857815644435592446036673518055386884412341140063590588694796127544612508486098760376319409128316891041839444955701369909979742427486654657183904167132739369504887437569955271283549995029118992290330943066198412832315406562859907483813425523895657018734936501971712617707643754067017866485024306554078483502384632518637052310638869142141234269213268032887706207490558407305519752408147322375194529234740206274544649094165935209892956368924470431660056066295025568763151560611751330409271751560930723538400314488602220801200434654418407972815607092807474676203268858690787612805725518774435268915201547945233006553604207329812232416500418071044509360453242832562493416730963316295535898390796191256245919940717298562438898693123577659785482025691283483449690258724696110037584981130333914619898680344941225571141607364412651906445499812611562921639392772944574790866748823361913312685368030101653426556302727410299933215368283389657147546936949208196870808876678467416823606536774911565985252809202431496732797329441649833010456430425265969645241469361483791045441832425731220821692561573848818417404381789359329723236291782769101847609523117328155669270199539253540351274005801306679833347429313866899276343497162728529334674317946789388930184702904090381392485803422446551841186363270933680586351771206482454704912056841304111759581008548052756465540378815482979943150641827910614695842076909046441323750070106675164894467306583001666907862656040309045651299452803462732225900877513267568170300389955719642981202427664549117581151063744357086417048887721052372002960470885493534330243381276851713876581600510200614655778267326195972377732870888300499187312913683802303131384282324150126736935116098556662078846794898416219379416857255276480618524003169684535102807616982754465553000342880833664855345718616826165695466632784469959458679416653406407680368895438205453939083279865209706044867185330043552876101563990157551195173032464121672046437347280592803105279934294056137900963798683974288974028309848557196379435232217238182319961910628617819095073922757399157052672447370973009030159205149771018499120794954903303703038113500532328550131728996502957144707124100135458731737016534434617415365993586482445694423203874752870581617920568645879531767134949179306137481080678952791475188235026511795374963279236361269834217720734270390488642912285635934448750979709199960501513449934111913821628238383141839715415406826263320025105244767641028232716691180017360365643227123221862082621172535183734667257037752682690848504583875553197758854794709572776412248925019571183876452822726620875130712507811814687791015798477710053780741588976529911493151625300196808642390162056914124459426014298409013684187916157221773773212438049475461269942973211538962616278868795134992806339313347158486570022176734410892979674133722578297630629059846211588247126504708041129313790503268027346540561650577038929963457147191535864495112272880600920412402601496940996225711654225640051222895841290132824144504568583809076158338576952497621350174451337072559494156997809507317044792043035009517229621316320418780500581615615146551886592318287206973900871838717822353281715562326515054128470145697252140900426554749333214699969460063305488342521152535019097710357062496338811365060579321506133492216356976242878964456901594717869777005568023671378402038926664405385828047113028450725922499521168073453459484139306265559590761315572703371551178332200232421504023493610359537033182473305172056705638134549386307007077437194730658106969029824352860631365578780279569159267908345825732976941633234618083319074716187779363578230912968901528440973721890937555962277345532930143341693481604726425585718348317857808128511022149071521892020825831852829339200828442287135364040602015991524437612794180157589008367369813712806766227984472577293130892832127129847015541525971984903403080065226065468354150112593136481923055105681385944451652726782188991796397833358324640700579479989208091361821511207840982335680608730213801258764114205583305165654136078101439701587562360259875655273299225616268060790465246711683875434683991807345304328435847389602189461885038073757594356433182354458409910308483830865463240093836399885592874901132306093042788645407668944190406351804716331535724830998323218715830657987104939720518643995390582945697551104213798170877508150945873210634923161788401895683747538755143113877217418438147511811337908939770502863506363967335293549613607448025834708632028531855198802840045887832429358036232778817086839481467655342277342931681422970689627835591932154165578081020708718293108823543137893838687838869231362828934728044363777745056076748000015263874608585498217768647638421109813560104554285002708541405805091896629342061277778803295305293203620577334643092438046978735610952807781310665373875135699867607622361160776710947504792642635873319084752600309082589112745790462935631260438713594175897408148042813945525715503694313181308034098717015383299921933949049747098456850246138480118330794998837205028189213974347752231731116438331539910206118653719737816049372130946658004345487888844608083433444617070300462271241928721387556480672109986648283731969080897250052621719465766368998088158767043689671773397782003489035419719085223750202241982566642762672947031522927864606009581380263460783427319498317084505565922891301172517181553400393367822030592573359482804150813629919915409520064697745761076216531384253232539272027104183506408709070057775335768940101924302474223574168070459622271538209654502741888160962838951740114756417140561100386212273856287827630997454957465421973123336214305401908321115392838517364365085793785490066125669752516099011930888992942437633339057360836345166578087673414431876279130185083802305426051713827723777448773094565663226285145610542097376737647564286850744294040385699821911401044138942553566922586328101780365173001831639593159333735042976172761619291102201497514598783704383202770533524313089665167583166957212365291648203273677117138398568053891292190709012466744373209164009005590949870089933254341118170641840709595732319668926001131356600834043771660624070482394093507013584610770741859186915348836529173334204545366553179093826131578806092467451791725663820035782480585473460425934027179165402155098608992385451876878025330019641405472300616478120840764678056289058808576852305214793191728094884238350989731195605930189110424386403044260235509286437290492243154235686878100399394381583252165084125732546043382805399788777991142463869339604599712789379008975401505501324898944666282045462453551967788580258744333846178376535212776898033938593239016140278599848645988349831923457175493869984021081540163733740565886056863753085384546510316929001434406932390285333398371243200218356670681914968976731827477477440235377258173419192890668742118996982034211995978123958934650965589615915335158483822349912972111863809812121250968218107060622634341762784606074357881092294041976160901063035039477917181388886501695196600413631441140495317663604527445698023497121971477190127089479193209338457997723294045886470174792949292034059820879137992057857074569476887897298667053347477297029214668306958490222735469924630102638098500058325452975894796412361146963269371491369602259183107730043507916429174185369041787150090595120253011574119926286189925811551345504106092564564453797669644622619395124481614012250693213916232072347837511370186912741967483501660937825819408314705633692168471884015568241851960853105832440116450072096726507384332575367404313854843028584990570143077162184643410476256402951183812930246737529052527121896438806244620560789824775438149246920904454299302912969266231765234761592960252399701233525677567643858868763529676459568232217177004708796345038920209399018521728942329710639249664085779039740638193656298080122915181822373626183433582398803689430355906497993693347940095704863901186450113517007981041192497773535967682672735802119471678723966004966095880223140137333038322181953808221033579809385226459751378127224198638844000543113141442822694827375123083433836653896476352499568589281412361429567326267147095696335008039687425896258993326416169214937445370308688245905188591032112663272646666443056797548520742394614797253507831476037975520083683834945536919680943707881080972094987911698984169572283892606543672533841296649502820684465701200329355284521470758000947733178385066731568525552271702408635315160375506125403455979694423637586539105027127486215456835212156430144405427001237462609855251131109421516739506616438451510919218380199789141320747052741299930302458843484206917727420670722278506070928778586834689695147606617870129087800931023355563538441222077703325034826497984750827529718061950868707232287425834119180263784805284352725656300388264808878208483329137557170940463999376066731193850579964773976085147675236928336789794915869855537615292365537390455123898142944372512809072637984459591175878709460663250445559452035169333344592586701739772357675534166254905816286900827188134983541592210104380527990194719049642392108594009943533196701007727032157205840144292145275703856543935090883874570485808504918569863810922668729060462853855350681207227716814656977513386278436883786587756488862130635739271158566888008960096471232434301931559538398885948137763579721259369125395815744033575184392623698757294731598056195580855444399876151458686750588486624520534028520699723829780026557444539658166994782555404755870962483872336947707037629896800448678654031540442457085320364958440746240726944454113980711249211048221454413293221920226324503060918626348808722314510441808953190427786511777378422854061894433324895666461700684341305181342750025958731585545121096857646604889873442314251217113010535989351783084549435173078534767915111217715582492690689537423417665102730602141352693412794486760227253738220756146801337205152173140702541429028942078059052964285099275554007433212502654583075467197050251940590970861195929497485601359553163373219602745640055473631650351101831923773722428616054026127916862078206373627325044954851722724836611508923318090299440235966835896223512807073416369591507050151477402020215976108858717442781324371427552234215833965882405919738225876866382730599950662009542381745611089476237340472825340146577708452816609687005842246030883984991172059673927187247076155905315301326086175300993027607374293377596878766535133026475212757162938654571665020969615160059015567499132303276979779121082998988516127590278623567373029860719489448952441333058041228232612687062919293102254132002499922908431368343418211097916155444664808827360848029165724044751237024192933867661701088304749860729743115215996519755352257083912958112588366751813180358116279293929218754408600153751966907337199138524120788195149156386445987684865483876504909319696542695079625076199783314145920977013276478466213502166947705139444182144988508284013381960159562061862908298673835311654524630534890191357813117115430733990927622527003685656604242146892757985508990572130370776037694675877363001455210204744349775068437560751502936356233725830647268321435470041877772460579558788380362677050135362539909865483992653024316109753286335128256509118018540973583830972566070228421556462836913062841597770805104422424783769251719908172362154383369981476173561920788949015742656734187390243965660099164555229329958044779808222519944711523215290741131436505242502158659200775278412095217425142945225449618171756226569776185833621591144314857597583060908850142517153963521064148451479956391813041008888920297742005259383419484607263428358493325421805318627808052872096175583682025388396660531980579409312804897133260919287222216458215602946306549643529524019916664055885778541084248588489465151655709653706538397243561681701783758828314494252991592741631638375191802987500988433388999299031051419992025456127234942784900267612404600597158234467154491099864240104901921825167790614490669550528776241970049060455561892277519909385552217509430483686982086025698083925789872170921352990340129577052499751457687645984112109250226089726726020871116971981657605093453863824459566919082952140656909278611448728618995874747860407812190080025094070029260851894530044304931693819488001522003267102377770438542305832243754980566183880873374331919500246511073540634931815669785992196481893002204012791834716641944178517504903787593712794330688536772341514416643349006729336247306059495144561363702459872389915333972012114015134279781646110926830720201550916246077275168909192319646870634564920894172188245732092976398595988323210242479826512052680828273991739577633374410802301130553442509115756248190304460811336155716489405641264130883054120729887841126308983387000324192155590479796133609033600954805300797152890070937959625118965568889152383165304683327369521404869347546104052735462810462115214128879952523192489423039699727321114551805007045204868019700622386977804460751659525117807420604704863981473631830571830917096108787661760225486871329701802209920412377816585319281617345389479780915238708613269901482055940388200711435025100322999315098832486782743200365644903537502705071558811176243764592597462279297726064263529535437190324784558323911268176724017694317095085187073514937962608703149175130574362128748934459147938919726133175969704397887089233167467398973907698044217599208543254838192712756223981961883020878126283095432319908716993864844602776523277930416725507608013565747207114232830590013902122045552423274668722417795104129116682438907354525482130931280915546520281293112764885209543691374991104259976939246657383787218081426552804379814109253955034650767345073697481664531307891799604818496651850746894346179665607086327336859502644995671961991289207220406402107396636761885847225743162944047310260684181386745462383694109890719115136681751740014481272838388742722708827685539059374731920755141912417192676869190735370402375944239683077110459270339588333230856647237429404457111367374370556124000063049810440962260035788637533510031554810336909517295543814290465513589690882344274894795090995894551502132644981399951526476119780961288997500565449150777577195996316484906471405797768959008860557351440213296074372499444511408790443770103914360085139542469110956275721785976015241591686486795512198100485749722906413971117798099871067856660063875077638901179420851849047401671537410849479751581571064579908818883050035478906616956160064082027644981502089966542087164593162760561873129007974200335068028373008371154475772763145282520151488809966493360677513344058380985369962175296129369517045376780360438539397697098055231220032474389203935791503761160904940118120047117431744690917057227262428499043881144898951329021575405186321751157350719679323400030369845631867577836533198956630706273558872052769899399904375766252038922479953553403689209757187880937428918771604002924167331975481321446602267569251991964334928219921447892423529852811081513528687723282724800041262415477373609962035276811270236761468983420576214750871371265892770990583665971052849728970109632943548251624242675402354541939273266451480761197959086434951339152098916090549656991627534049579189552121348444797942060800021666354935837712316776256632448347818577747034696571142980863703111228260786367104923856452255968009510377646088141373508980936306901669692847427667638034607372107480665080373010210565274404107489417766876274398383701841529558950149126691585488507956497139319562803115413842592616048155015431278742650219179985073733730718029863803348959743366827356704207784033677903700259611863380932774327776936742767167618190008384827651906456845133159172873964590917333123536400108825089377745672245466714382259324015378127755852835046922137038333949215662185518299821433240142798533467088552711699227927829100933238503253730452984617515699541496411471341221961568281062523187071556482539982225426960608042471691379004901469776592700739750171479333604178973518422605041124497787078033829151165133174430561586156110912553426608128890317396831493874405553048932070582426742716632118210187359103301980515404568309908498563280548613615159940270520818304116641726844026738308755744511768461887151942770446461394949784863200592673891285069493936907822407656603634253346953352238667264685833815318504599645774854738005208994254127616651694939375613524535172075437743394626096615194758510553874301342139279582800405753111644748222000070232540236679590673582096969863733698092981263859119655055968259059489093302129474463533556813205315562513864637397568679280656284721211198847970303899099582295327451456889399134749821071639415812113532600711740250595610964762094292522000032922222763630548644184134129851975844670983709315841190508301096057604645947597253014101537176535721884916202689401134351543112380744460333397675783482135765888295357682253800517173537593398870208314670381727313633228335683850727725641917057872309320359699610001353397077405590962253046502044095329592004976299057903075316528108369548089495932221916230098990974263371469536411659810403431200300851934637710036635933463538846089771283404481149937603652075901741477461036175638768169026286530317389971401020400933464785377287209251597357016921850849450158596026817378963486005760183848195406879360094654036042633899590597741495044770861052151488656055249262706853197119286477207466330862687076754677522718976852718129675042550050281516384769566049305867193286686012840867159257149099136440077052858264234490848272505380386521677438709392976332827491937378277057118558332396935448052189356176117482273805332821034299016116945623488479222763491015075917089948478736908017541049017897762323213257442100863776219145401900871820181653785022145652579020001027145345772185538523534754798393651836869843699373034429855570087272958436781920047106283401394732530722186620401119342951831174716820383355188775095135408986399312774174720836153214645142485981785339530965684256385211076508429498587080114218765206773200035660415340473906598441916349007637259927711838939854522768585096719465413924443812780643144204913138627466886640933724818227559798486489760222995423086356089189109844055603444731743311012206009949758627637758583640574030982551769303264512953838422141096135797318685834309326943846748743271936938735233964637749322458926058269011457373040950101193995927342831884008426066417951973007845533308901052235488989891847146302369121648333768586525448115596301355832173232037798882467207430263431207056959010055730051086488083396812522204068629373208516175959607808903892686800609697075711481490480381204568042023769832830469296109325062982647822814820001658209824782486651495323319050519802958546282713589446285577308829810581819145814279382971712987871513239215266457074135672228268305973645722645957045908239178987586441482218740447236535401096827033724529174935634486817305989301840167683861974671179632109176280610903662178371591607315927762801900652244059557328244265452356911951285535719241907825744279003454227525311346197725667826295402243447921873960006736102995893008051830281131546441407219243369545683584864967996584726400097602998798920570221610202885027503284035205356549008909471665280147646406738348779363751019620752912909241312250831377229178229758289427512403946781007787769308182724793351520325426763189749493838611945268559930034344834818915619234949520703424863062845099915025455216968860608091062928404815707386175809643134520651157621270647266948752830461256917356061128775805076494089159610516215541927352059273866242172642205965220295274214115296454737798683782027741520122718610351661851898903815089509847959917030536514314577006391679558304966446465623568984888937215152228843538623428977834279539767091577863884459755137194387401639544866770374160889669074886044308182229394462433942623588046278215221277395538829278606932747398742729692464203370158705898208479641450017946822346756567517232715557858962045399553165894381236491110417777459175261494449442958886599320201108756597189238910850563456640779439349843155639553912752079996256394669017848229139445598285810522540084772070232025996733255567291185665703223854194907692655206497363172163324418886733013720373794012279720198856557020212774276473100444900039019308401241849618578820846478775129068426544422394071996615686600317363125504846904019212831279021973278859757101010683863427149131722331752094760627428934135267452802805497496898598612104645553006539137724810377873892049647173109012391299043299213320041736560166568336910114416548619019457725513684807780764221764245284514671444023195842454238842778213156543788312428740475182773536501849821359731313868915236781111735818478711898765819672271774661816266319388284079825588452120181508840567359460532111953950929925298259598389075779297258947680025381317659784926805166167025842760177924748731225135785195950314091915031771662033178192961451579648221776384997852098955086626949912416554627562383863039264704816373109632887882800669830344654500550058809116184834964987262738732935166640490218347529072173700786364197690300839364786279196126484326715989116554224406666119442050984852280076327311174613180127304508742100553510157607557476508192005977566550772806959020473594424474918674348591424676143107761724078680763323375242780894017384567024181871686533140754839555365465631461530293445270780669546989839236387912989524861248430419461791615344133440377636580096323153273022620377176070447254100999337350458895522931365612971479403899539675857507404496042583176316348167366025916972753587395990855626372559341188789262998992174206563322762369987613775098455106559200778825197869133023107005744953041794380029868162981510489687845085231834974509809345683125998614098257385061749376419980486071507665045937451084334979117919108050192836110656641962763021918444227516083072602083272188310738480615467967867945801339828602051302009234567642143467670823225003440317945358765591842593574038630840498904509146589476672994734752844441733039546836262889635276616986917580867400678557580553706928050545835885281378043718584626341579489750500065740589734831999905026741751294330453404049859404991681089317439077456971326291886468596121011029406789209939699644493545332789674666468443028328640423603295185694910420941261723999020121613461422192643966709987106846742750247013761482245825054475427754806689151295628882878291939896680488956670072041676818704635483650424994666060431531888731775731963292216281408926543059536907822158153226355616384287241259409228888504358773198666096884678439679298233443011218280060740780260005624708562255431052035278190376784899838017354297428840758204194690557098850106185436730633240434693203612750254184220351504416849683129032479701954488130235442800933102230989592253673260756783031219355240858523248891704284985126366260951445123254561692955350757454590277699297659607641223407872129176690164978238499009792936094578804345254461946730431991649753635710058723236962918991341901272910839758926522199067979677538904957556751307350424110226588350381328786873591470096243275677265319675189582793747953312344826634477814431952863459650684242010296512149987149944971032658719093815026355125567782225141690848280511637905183381938653330424371065192339687413216843718163123015384494021853785540169281909983842835750638225766348872036919662160181739344810875748961570789049977170095645009304350814315232993409048892973751344649624136867250400196977617323322773373947399951817003961162170008564114302183025282352253017793672489376930028323870991723381851874877054761793141706038419653488102258868714579926408833412354996698183625809051548468307117579339920171716749033845418999808011208493407459845630037636712410228610548536988325616207192560656984041597507089608783785378441872592384521177149956561159954953998957256403408883587067540009849628977659322568728305606176123715346768858340917675478779965684422062823492134659545652881194331223014108845860287831354794918276314469257881528514193704802084217218779774659653606517542456582561252592006806203620059987627999825095964200794785914704718625235253929808143728014937619942287221736260730742435897683692708743170737868905456133909954607862250787692144908233422615571188569794802917587589093478551900863890164562487951133017275475825692481586619958285563253330120153365419308580144124968738400752256856202385048371902204005480020809614240001580993996131378857062526325004632545295609015737410895425072290673281590441631940550524965920328823557564824228087423996943339704299997764312109519956699835033458384519169431287205919694495309202584762903520639984215926068547196481381224330513177248250832069361421669768173090803298320852623041538131955015484290484169692330986120600897728567445429047620242874401261522577443062792206583472227451626689961441486718165796644972630931554314968178379855531637948994470306176248267708968150447357532294675900215293235028788006777028047671116565973650307010339483412564472527394988931938815263636233606060792896789586959577182178609318531628455485411858819197870923436945559020909274369021612967653384409322403492602536763350080373046415738849335589446225465713833077572859089273626535630702593720291927600025665304583661780362866391014310167157872910901395985140117401377113162453950891712374103220218813066820736643129823502664574468730222290100101371127118759753265892985097425877940565036436193116664696969947958735480462515038079281059886022382779713832501457212422345276419832797333898721190927257637513649418232881101048133650884063442047845132832688142414200589572286740775576322463144963045440085158372261596414684124364438321802545668789068547341623552052849692833132115866664858678809290744265647625473821916456566514918192787003093982308320657644872165060504232846509871650437244767312802248868826856486238248144960415583203536583566818871994865757676343681695491890357722107294417084061928557354402770997787908677506570540021202230520006305011852100297889854147396383245876233100971791039248134873417441406010704376784945548192634194541161737988425545984806227489822977628152351656473398890913678215196197601880688693187262203188445769167183858197678999696114193686852717954071803475882370850421968315596530918437401001172363853858488628959525012979479426256162084949186704687169804588998468256063852655536464061308756901797375842699977286432391090149147140470319897329462931618725768857579286342096285637534791316106202000430156021499238524095798853273487947368722820765009795662599846638350274117687934892827191947667266257369968489134063785202981312172397230456302768999121587787105603660276195409852674778859044846386573407916108390206006762896764830697541366251948799667066837008103088114856724508602689132441063995041861500581933082646731047608771048616916587494553055294709361939548240917027282439424079493775517035769800842318326607466461735841039129608869809152355480805908889373388536600196309341789431780189623016363325377658425748904848954894059756681728468279947971187915807619860348220946659487706013151430493707582321057801812106478419351016169457997023385183816303349086395222090706421682068745282759221423722783360916103627495120110016697139505618366440093635252218751369417867382496697552451946366271834490907225261404624054634231838605924682596697704842983686159414274241223789310633307647360924720626750795925935527968303814746230218517717546379900591251831728684155307320233345184794483339034065077790470309397293093030261149334961885735414462049569906007210168545834530231256510557300178196443840425290346154052171227077447079943263476047813428882357265649797677146396666033636526959341722938157373876572132374080865799720769657605621411618461951566182703885813241847909938056665690266390348805250209960022305370463687258306705587531378345506992857893274877958776359543354584832908894063393344311283711000169344110410147532619617010574482995410738660664636909069054139841198062435139954591531098971931192066600533251446035651897882929766072638799479367122432779333660258973613270596597623963577163751631223964650697120110478576582969105155951171769257169082562329323488537371862743855099335185861421790437525142178030277551063322444359933626339952713229842985871514240042315889226327190109406016174854947407554035948963963643342597046110772559185568508291613466524142586040532281944096771944401307889591189683490207942821915422839416197782445643770289506915294314439837433815415280926721399162295763302718987130439004608937075735718208159075095797580513196763661364035430506091963936550821984017693848781651364917047373663290613371631223124896829069058144966973870763243393635954058995697385972683426626827015522096839643038793184441890967582362653641392310288101012701334463387525601636772603857231142889063630830040552169070971735356671145785376609565553518431319057953940082412644629688431056261839503302026673593625333996370430417721300918997542411578190366760381905099378413835678838355335091748162118170051667048071319522307505257764973747171828738612364186622901982513910464272493388922534380818783014107673561034997816159839230476229121263039091741407686738882242908588348684700398515919366801278217937895388396178646189020029619958571896230954272704466466115023349100952964036925387194012411027496538839519194184770853409378744603271104954114548167415578270374996163567391533670966655075922798699582740768712205954942697026266901694899855513784723163996206553091521741528420821142943621171167288290992800705003022777000082171249816004839377504223638755622204733514200533192461916712817604369239541072136836376387248820858753190460108476208674603830599085773148452289209759838093890132726917057847102208118698813683123669600721976446666915933189452747408970651642162401096560570202897232351804975321030480911924797157328133482185263690036359445656186048807830953607907535351227603534817257609673708038630291395798011084825676894658546569285513209334568855353314859109417204000686459774618573116379472430040230474636272102783820233528462528470031265006614038771968858871528063667071448895381453058281202156030369402174729037043403884981912536184784066156885230730096428332371218989733698460103079354106255171483305594776442433849460394250356120642589030085052642893689783648531894674610280127929964596400913507266219975183872683658993028731601425268575594158911929764505292431714380858317677823795159651549587742597990571935640556375527872984219433881978703709414384341538787587005624322955189178439118370113107476065904513120660326935438351631237659511262256658181834893520376169320464948803797628247236429911643700443903405232435693911365416110746128127281135126917799399242097890445279776023211498546303211101379329190006294272020298325974475874467973308074766581005634795058447487333189703020821884022057013577381164453808893618777206488749413584527202201839912510764034862332888212827519614492080034570744341167885041529843996030713660993074786351521734557655561624680824868364632227329918574516330859653137725080073391925866746583712600504927099689123351377569179212648383909789577904689481447122500118680314268425230153392716034549089532651135140682588327407131722999445830284750872503826498461379987666309646227259823807436256691293355474696570348412756769549273608163981868159686022651314846676911048522511817984305164264957514450817033083789861324530017551391970388246661518976699469987257946490324586793751843199448139891662306803154944250302299667629148728420401106511932174226761875817874842119360697317742595755796596658784511106968345598060673002708429628656711623164971369931347163191242651150833536892135470744130084591691968437010906803216569932289300084087029778008850882748026687855555415962813862449803640508442281580075410406700324534151558070599265774794011522490952083164750604998577733537788744349996206621713708845639991975957831108790595894866293579003988935909081412787962571525970644034829250739288770263418406846763335795057557142618135502963189549492328867456980945802606096881734274091474896303971297535887674989342214847792895384099437053266951202876841917523069740045528745761663425767934506357872346897437565931835952499631737238281449589059714626258408293375537442905340710061173191675111683452454481874631169843438169009863232681452139033511384338744273676136737663317058911612950400758396485535755371464538602187048453745288090041589600669116118451662145230618985798287456998791289092630085069279083903911631950653451320810811415294897820242434333336257832687838859294735901044566795428535102781769451514556434637366839747081890249764362440009396332045617584227887168262651982034553262632360553747344392777834100271180666225452983352317589274959826597506171544023562153846475871656702421013578208945903509394571901577380026040526146397944102648215594455620622686718160449371565534015572236712945234254151702675280986237151868645460647725267095594346270598125500518548539906869080862115748010158034181197348294376256327976666712271201611889097705686450170698672085314799187456572727210773866162586807850897281217416417054028585431227948050694418440464094181517238088683341267589388492391155157217000657971749278368572187218345214055547534314695339144518465772507431936950153324178303089885322787534881313576301366843483068233520403915676648260148252589411989525798096705471234294267820027308252464375117898630684668402023398378288087733366760147260056109290294600760616024399730850188781803543760949468504179827866929457590424378765480953094402188867455945836125171285032282828846418174719362123239293222631234071374729307569334485919215516054112656723464392836347505024110109602126009539694017196366401747628832170652577609544800174755280866979602914278973675493140696219865544722877648717089217854670934409222789625434010210746432990578920383044872959014140586578619929244714711140559836861101421319173584287366911245684116950093840444293492189601605920323027407059839004032032185418984317077259617503554973189467193170916944847646080120944010468895430517165338430825641467167127681675072556201373657510043637526957242601979198187391907681372362679766556165467564635467882831496683049874058125816381533276139174560175858865926396340440202623696261035299689710258344868329664290532665205430910328417254378221391720014014306698746524422501534879444428580761799943455399425049734657472388713755651725329689960563726837720711474815441837415783831177095081659145601788783073470470277697195901272790141974698549796561873708989262673097447545154771440881483218574574895101318504147477827969275419068544932474367360276750388666408697319172242548076653512042622236179831267397559532388295513149163141164684540007785238625240317825379648122646939601268870316098728001228119945499886809534372150327803729759601466084826195652902154999484608552521138416964637249204491824171763997544943234785132396061296282382084122811067860376542151986823862040292990209039962891347072640007120070327185210740223383613332929520065918289094115102970263609380834529082187758042320664728062824373045465520384501466044429809386005707400118910608069022698091134015563905726915934622270618531861510135532525390107846628063972436791964111739844418128157839403964888616387954464440527655234514423769780475628569677112728168619182381439794888024300473421853238695622303197921977724363387487888322340734763671826833876364514587419646833351782192000505925103765088013473605829777685789392843914487132271018236354424393944420628185075212440597024842939014544136450862711523657616986841343447060188892987589288568410589503478950416654492256607345983328523228366633974273185519220856586023160737369167809393573846937700220719888824666836459659115768798620924355335006754152380254192838024898117112979628700567425417381828684776930158235533062448993409500707282426361693223800558128563276698218529209056337378195017504898383459228091652755382177944348136330788455267565173753025119126122807775430690800431473843651456670666949633508736116733201146725267680511395143343454729242912031775193696326321003049214426180969749271260503055144206750709820611177811251857193000583858695225370158326856551332297591817335839002386480829628289831702252537794119459534282604563962321066174597383608200096927100289412608693354264173665899669063479851142240011759829642189757856341464054660854657963595434355038374590986339864879151596038614801136435745958992207493805838284707988020055707968173775362979979089493155243710235455833533246241359571092437049726230799449929647097818775024957183423218079809249105992162507539543080304116879205193896526867948604792030772315035097714564346400389240396386479325312082565979711745797343088988188096092760214110044555186177764858198725635566674536667822439633898111772126693904950012555351682153643210566771892481762954283518036289746564711759749197035488508105083506472056740859876867186529335539062882737385046755122194295973518935309818887696255059980841092285640666324471639533342735530096165120069041179038201780635628362354194008556215220386428917659525010776041202959068879687974511850307442965882161045032272628315442376033507290377035681146952318291386552196612138398832339943441492374182622232217320857292401947335592484211175195879294724818471218205556444778563148922987829587396469491565814218479386302479203543212237047981643084453414671105140391732326337564970571586134465647202412024014880300577039754695803910430155498877363380701473427740052671928681683431091014878071489063820418004126196918416906869395692413438512321126522430966567056624529989219899113312124556740787014584378149140168173224323095467193873137186939305973439596758025364342662860299782448216779855870011010031279197189770119474948105249074626027912568694745713862861278658349269762302843255882592471527604156325839889998313264442321958184154687421032899590668516879760400220340260964081106229140535005160944462890980981300758552388010671009436366807386867875580956381129796315383203021600880945817020065133035212718314190037086056136017336018506871723380980780159056253707576355596592734038363437451101252658116617332590083404096849434263601485152572028295038134560197797398254892291521511579257703077852997197840916327238185857991367081152984580718626866856108228651748072852931071938579841656396345782470945379940583394713115807434736583226676060403438653613841274459462939015266027297846383405100631934926557930741494897188725057649766202568274083219927000171799557131498486575067250036984854037998761570212737778253385901695926307074971601710325671072294567860911502104205657994308782511847026501842754561903433500008004008048074848225238241519488991769143440404008088258427887974470217925009879569683487970405238340942957520697978517525247800360922759233960461515668706986730966219134469976641461335622133753939555591681316667267633351417991713231777709225209232028032191700976152047122008050780304181845526296118938707690232722421678017119121481045927227043521712597015521436405456000206614760660153007997087379859115726325468615439896484458194967649433809453214808779941326479136821803887102232595025990539506706041555618861031353986611721662600884613150709488392317717919889927486023878548689203122583867144868838850414248608727494443008224920001413442487534480667702392821299646049430484258014101884245604005302944535594170072933331329159760612935140612036836441255835478874799046828711875583924840078581516223137281465314917673297721506783453836076455276733955910287472958782736930602640557561224656163689702049785608417412818150364339738841075856334368223920931954384273582870827851089661590483216278360925414198061458523022567297403615265655650652823293764598230644590584311758108777438194623125263950443204832488955192574221196114367565452765624312795360342647663212640825098099295128644522954933824128821504894285712762948154771359939720217160662308990118218298112986205214044710352120064970701279432300178626272001410358946695242505595458683871243137837186791053643215706043485002051955789659306001094317352034365817803417961417305238275085067719104938050807837582263923572548593758772281968956313224223375783126778066039859946013378139529023414103399213766775047208808671354384311194973589645389086192347140574444866373255957829122226566631464312156064099437178700932629147665390932756161827214162784149949477893698977038639271073461356960554253992002066956640827346162513890934565865523268025392594584404235196577252713141825500069418169319461852630432046544598447939783386043914076053305279326332676824327251335827361609538563656162473161966254253823356198307625616026505293264820932286406212963112884119525467298584225667971272186527448100798769288778769088258595078236705917525219246232774456538193164740329574381940926065408339216922725744604390663703158621908160372177683054849845666138850621145095931916378275881568422013403087110302436379893304584857575480287076687172489557485073148414686395029566324190476639161022471002473604624391788869112793994290010716536619247978442689966971697982631529237985345671292322728048603187851601213717373956533140291086979065929240362568543336199241712323496553865604710483258170938739683220605439243817264647322587586744487390236743063145726468143780820446477191472975850378695120651531748358450631643218087719175227244663316950307788650772671864175400760757524855787538184450511752447976397249771502365480235118393107260781085272807371978519290736521305519903336380761168720661073335895147850500586842519870047762503363727675046395490952901031284224390780009004926698803307549511529835211055662622379956296146361156889995756217740930135928447249567723624248724751689573385965520348607199231921170709991188399306285848032746463107196298487115955001813421162923080505874285179959825551971714722980576821253321212046786989697170954264065118247655427869838300252345632239914138914521790337595971541571915926583072395229221555151111666395358168612126087060606999701169254986259943631605057432467114579578891601984195213816610918532693919475278562511479631772251477262043149977702759398432676109021987824043707859556873195009223322396407753836904113856029674867261328776525610949551934649791632092707351694151471734339409025493512243549217722165858954527969775761804333799009029048883279740574303646785268958425256508279698592176829921017105941180236826805667255648986545491616923692903987651494831596801578867989965933146195740796565986708738565899832424800139825496071369082466691181104874189565836770222605490970213414632473078065797276561092286765646819236968634623295636392531647300744251593843324000514628089752457382105875692796127493221534241323492343170319701254751010081395964375371288712412655731585937330307252845758421880316608129966972872112649881304440769128381416408681178387334104402309878235038718498353799901441522826490850491205249209543298915431213093748554158740449396198997693525039763932641800240649062143752139855026772700567885261725184971860739282837675539358735671305822396353830335252286604829272304116499850643801167589186900701249537774822670393451817211359969513645579124154929862275570350633226894054231659919657948684407082560045316573017882344093574633944336081055509818948496329976678498000243699378949949612245489322114835139851314105786548960897345852182274305367323789012338869155365145299537686182036865636097367643406213766442391408939856411754737088558589373727716812022680330517303229599026581202399264572427378250766025090914131554334917618384983980141505505132800080908440531860577711113359246137234702764061247657416191609131823716635871842709912869220431902160260512410018905731733120662990018900154786506190505087036436396271734313323848246678382500240405992053036965355765353857431927886307848501484008782255289935496340914610526347080580566893645838283243402877240335436504206588177249727086960612094044275613524740306297151968001626052927140673747702263054352704501321328315839149375584971538138095056860438376047246371810907595534645286890145607699496967581571492915595758131913935343139986564886224079907690158352597249661357704439452006712343574032468789732252418720382741451406979241863733247437821994673856254111202454815389213863938862045633349551431743047374059029345245210997915619529832977437604299876909247967694376673039463671376708885356172061679798435229987370977101281364575027290580593435091419191800660861541288874871420037747721379698039735389827137228320537661137901944105192971891201683266787768633277815500807285395800093264329225100119058365654718143305193267924461933965539230691277804752143732329385297406176905704903657776319519858537429677084399373121190743836598100569483849110343572000505656684776015609073076866504921495797890748833228351321421049230264094330624686475832583211620843338674177425955291007152007926511916663729807293156144572514134664135956293404673795808109996377197978286223543377272627605882549428223234545755059958702154815923884936612888677173242209715987043826232920602048859274517941173339474429861074455543352710052489305197061441777508416032116898051317944988518485726673275544922062280757731083143335622522989939046575859216253834723230583294841687723983133315085888196197115368220413700441859326032943158513137185769574050821672062040910331580007111074957585453907341134549193269596220140551677882592559362743139831044083472425794201290232450141213550346815045809266805221302350743355915115710602366697533805592812551921930271926858004409649660354948631649114733468318736528752902520292494904126748385416174610273183894112872195896696756632767592641240701137950397101543618279844181474371797849271413663564931663911418986316567684389183988969605212642443560188731872569836010685273289842401937137718189943767999464195054909197244459663911451150653646617824081670169669838630799425142278896981525076671337386624707970599498361741217959092017412834469789008778682153958325208846409997099406078145055575742618444298944091876779382783026862076622774967078238484767626220659517184755586983108713177111564058511504445926859435897750900572805809974134258038513694992676845554035146080536748265006700341297666931735779628169398072640693064795394845100743626840652415939121954061451210210700647818503836527640160732733786879636113875878728248686934064667365505297980543026154360119561473806051328634928551180075886281557330151682442807697392530144870217864481658557730752227044168240787599787742647363257120787959659187398526565036826225065607486759007153635761884797856647984019077379281738288389743401465465858401541979813997335822716595608345108257645355064561769256108625460485779599618503292823177688245216339587227081528555512439855761181578766859375151917129782557799104680699795552901180080251644288869363333790750828051994516601291055482038980188245770876874441437941792942389487309758356798910597574755188056355382814204964593074183822210033670319225361353488835026652522123215239031659065906286866895150839515831510719507010023842660858852361369243766308551153216039354970116433170855394596979126094161487498115325906537470551164562141338454880842373331993753561707900918592874808556370897720612511063639629816574116629233654648543965154671894081680216626147008810640094386320657514449326959239357137358524763832381615305786798093454273585706567598519262946597737730466537572902852619063356708552368546945082405806599120107056961126518065293685129285679765465702008549325151915701904195855567793886171542342416592318915520420602825072488441595012249966340546369629090042638168927468611730292713102659660093901792857207796090482194917319697183010928386019993537925858088565577715432074695281353894460322931692767509261585325000934151586767511862080379934535198563637432868791987942871275584043011324775857083084381581191927194480438936719315680278505189928585327800096635271622065766249230096054640717816805717874225294556203743203183122193114797388644053105635575192197918673587173200035926822785442795827710068047888240004324648268609668128940865242450253550651951584728425033880616271666296292006893450089766789187828740614863528439364899807275161930612201611317855184391459283933228116893724876537631517758351038784816926671037281394462554401608919897951215426981134962806414562872358789626755052760583279181309446334011078471535952077551465702584655543755775291238631947802771935802639189322169339939713285357212783593295949847259924494260109655318075375907341039976740851766424904678599820215466006680339804601640546175557361098705018255468250932216017903813509545667415088662860694295357377521060770068298879104310808761924862305654282455212234815816806273576309307697716597150913270601788665429020998547475250969415237521172658508724700792960932326286602508080892416943338980830698117409034494789386102914824349825329233735102396915271569901047764225354663584270211731541654888350359874129755781618631504424693375337732109321937406403989180110202670529874822332386518983074436273063501595416064376926689307532968002750054526165345855246415956072043081829028442945347842755561050640206004509014289291135106442281260998091281975918071999727375248222047742804576153808871291660743019406545026206467896481929409121321108182002406776549278188434693127536133375078158964241292254703268603038692904362810337327754933675372877018700527580312384471983182019542937779965328258744600332006119018772110060973243617330551165417370301612858179758045481061602311996786454914952087518025688908234206997976628375854150395422529130994875057972725962390933810226557054696254439981576817247667026928739805165383536397471056965944808089672471295222478373327694722218915540573848801825292750464123188654723995886621571137575190455940171724541107704216831119646006363067027828429487709907444167694187253804557943790635672911143238974016674146565104759911599135029523839948462555566706691993191584507076436326833160922453769703342119429402443053024471025679982953976036211399619770916159013314974344975268549826489050642761346214773008035693981906168904433166218082921921818113108497440318086200651192108182845094508589300168180322374975327579809890430606042212282019729908280059394918324036363714393523913695642930447054344839055598954406704363607910719752640142029188807281542394718244522606915835169904992276904144714349346923096957788928535301133185061987989109064066120535079876809556655402469027187961394198696294482114752249779873436808770418507556888763622014258049337573097917133252367320023475547010929546479901760049195150439170261335378045039099642989287530359436311275700174012711068533932135780534815628219504060750375071336683467327085122866386600610074012840771186229872559060650116489368830169038907730812076009724259408833874741800366182977070707329776195133082217300227628378544840494179924633124223609407952702584226579210524146496003324828172387769270369548621406982849067430288300281004744047028687221039651617524155887696408528338018677013228005277681041067825627724750547043258728893882943076024286328188624359710152238594318101550938781205164587518038005195361801984179704461124941883938913044088561136947575341642092975893745319156969997720994781176375384641141615233185309697010316139221358795314436896291922781637458874270058331558728796583505970435530487014707233753954725164891589559899698250608912689744196296695886116926716978154232234311223026825794735414861223350976024123600830104438469361007747765335932010597064906701779776781871045030275136832841904471453302364646709541033239844914357415658652566144662168211652543058390506528893653621046138551164034246686887661087997982451151804895378339291841256247343137145051336792307371345164217057104969455340556832537216784004975889100897486458122770588757887963785089065645831511788569725813573624841286081444225279926304029359166820343981459318278635927245822991285577670882809238210446585688748931294820943076874981203402531592374832243427108450965316611248557822172795895557924554336045968766988811268220573534416095771986661850623556142914802296662194325481722621945027532308716790248477684007407614886686158541238241399786147666447810484384002695422742084445683389701003916886313669893867104878182136823452453613243325692633558603317042297116230398505076518927979351597072282779437188471139286927570761851908494395947572627760984419811724353595524910401199360580783684248856748211708164814756009409042921800445076523430271384231917969485854635168633284165204269885335753987213622165666462483749211472146409220243535639645441869932827660196029146492474866984238921522791392613029631901924863865388435049482802799872408928386706795174308139922948657102270576699203994608249196726873687615652326675150783107735799506007912128628390224807192683206338264962189157468647898956178743962125368617427004047504258040326659737701601105140540145105912964823172655779520180799619399916260561674710059344587850420425934409499245511835847669347200355562660035349230322411696768799021277172194348229102148651585413803474073696850254382875582762079645965941407632976394652827958000918178861092382206479789758422881477885901396131528939470311366092008649871115556604173528908752576046650796142482898688825642288075151059700708794911881855992142198885549048650052135027545115289406511052775185338651031032663255433626781930708073775507211856569657685414389974922959653226943192410002984262706040712190895784207393141314986711765021383605806520893294837747922562549918075096933456880879192288411821003202179612837048327170620283686534686081319479924168860612021449998349113711795261935176075319531699850335052326162073201406563136807489812788219245038886957306080655517406950381716732680418128742206368103175735161781526235960306003492989147307950734466363548638726642365725074719094968264734581740974920113415778034587084301277684743350438806824710521081574730772965471426199557665192454073698773282323383732787133401161780982250788516480589518723481373269051623201863034269986775106259426037861501311990718647530066680037479905438012374873511533508681559417984565771695481099136869135491278640029044831599945111672613095613875170343568513533364719179086620001602802845889091116395213618986603575822571510114199492853935028801600949840324193947185171355457702257901261890613977068701916632820867593700751057740897290780038523327593914566451463553159234769520252876525405034051491014334207499554557640728641461942526154472634534525734988949972955711048510615319912743010339823408177067003954923356271094767392318977061168182530774075712477955869662478820568243828422311353623294567625612034963616507587620833402262372903281762652929429647100908122776159082302689711047953460704887103834208320272762353015089740386849297074217792092650277540233691750159064353482100490753522370509416483393731406728881923776400906390186191515060709683110402387837509031891553268421301851732745522780568210058253743804491304158207522808804299838852219439926188507028384740966983353576234241253657002565473721608194611487086591281974231890159845499453418604934050053588655927912318364379039225073010222407436186354643710247044685844202836858221956581756601428976323263578325702017660517139654318544642543439321695427468317391801073738051343049409462514947807205687630639252339582166841843308941326576403162229403761427502407269760390477397126687495632341483167042365071585610631287659453470183137238784481300508380184690295319696489047603516411478931738218321635044744396036853143039970058076181685092505420662058346266510508846614922326436062914488256360925773678996661121017461924868315994456999084303937856232707771145362835519839766075218015285098045075238350652142655970103739479154678466253824707331680298206987059548643571856562559276907748759845349657223867118323977285250690458513723953009518105973181491227550121144909894213956737518701263219248140137264382628228171817126735250782274523318456946115382990070431974675634826830424660740653617521827960147569177200518998999017573048737839337431148064881097198153488800241242634882871211151670978536556114898356699420932561529503229547707786042378948573251694738546376356859675555101813807942277885042393714018206812362322252222029382859631737261314721715614714190622817068332354448556450383872660171664039397495625843210947584171911169141059538471491676871891406849032536315296360514939382017889325791193573932512565563120074761778939080509296470661661571772530948554349880335805546062112297699486487314744099215943707696515887147413544445126421809480774693043960060967753553344567313183980138201902979946705150553046702071201020032134223215908338642693315558315723926028556447614741117565676675085103914983425644539396377448848212237811185765493716674718071295845727352286702691133184871198279648342647574653448165221802628554607112192040074049866380549290803740935658014287998279784960784875907953675709024903915628571169521874948315774184587422606759883941367266901102848918032376540078936906650651870029621797523566175415259430324830233437467583877954829064282373976205460052575399298118234574926732341924576322522299485128560429115464393812978004973638575761780146248918394301977066550559940770539975337900330107072101511229821193259524601962380890680961273107645927379363257964622705187706119950646445853338472142803254504145329831429806909517844316392313227105275322742285454564441455724130874064433729845523505522741504021495429191961017078730735277480348510640412651064314667675746856360560251827770000088507988009009373949884985735897682740930558053191675104382535327164309738749950172937752922994842299426087665987844412622025460545300877038751163366656012368273671995783657630967081717809524804722159848735058661676822628393255989581667628695487625723719251847403284886783810565087327454290075873906281223047447010239537654784319868024662130919846540709503905287212568702538647168482783202021220589745816398854243234782236311409441253960116284862147060002246816696756581218017271319099183457526605468465394323477457138971628146923289384142651279071313485439069422433515853204869806681754450309889246747152391653193836848847821881458427374831161727397741210557613698391409570206670256056162733018331537046914166156740864399488560266166181839702095544306775245989786246291259961598142876645645860548822000782021430656953086805407436758291316438705190263827959023167961159022130109694682233186041890046174822513522340795226010451004238136077988917352712819124334088886642392708054697189184548264465982689373046051754203490404353338728458674868693536275335807182801412135832364795702804646782930233876309120434293847337829947108881896074703249202303785243235432089600716432561148816131424427118399156753779885413586760933855606568661811896150540520813293201480571204332587349701140792355745991731274025556585100562158046136372530504650379437273874490241034641609617335322463113381435212952543813602991655227141416677356849753757952907110566199321221595338600517747289570434023628530339208039135085866018144701851194004527856511012149036064338531668463873149033731676725906942023279212953764961753544538823131816890459376973694570823979519934754849169737628305747196701289703384604013882109733852933485698694313831451824823361366432137534322857546095804501070394957526854824965389467563451973690062922098609188146666109217817976351025566071415655627305604116664815586077049962229963511872299181969828254940910078213133996558425823552780473563668508164785047951665530574511414861644895656917159589400791570263652691723044424762363279183381968017703462281700877842106149339033245386178431663622409300850689669194138649577067725468798602581218514094345535413117749178114299339485811068688414475285318157547276880900222771319357325800006269587539497455319772962642042497529455765083242906848892191960782758343657298174568328849316190481807942840428054839369992556537312658176766329740638889073915568755122714931388203454618496237561605171634187950801196429000712828724896043641749257458276825334084469040388481529714990704729357501265530647009980450638898939574755317201920539879875609441681804620520070425701599811243456029588760390489659397893815826336937918520055886821408123263712499513230910032601426521312870846848191757856220311743075327564862087313235081581171201475797205808711392198395013071269711235170046557706801567002237930008820140216302228888756482025309182152985681609075379776525280838399417877393726778855215768706851546160061630629932604536244809760234317640883962524738264683308127383617608335017073869274010520001717980229984440915036422562368117404661772516912769345322973207662744625096056481228212235551709768690972585815974762293755120385486882122393621494342244581722268557558491087243629879567963548696709728687994914697573522827560678506060512428888684240272298335052289418121967399545094355007781174110785004720838420484690505520533270782173578057891207915833831770481427009462180895977605556796967704322355925945530477026898222987137520839060024201737966872243191297418361427458946905716825461587603716623337879778355001293391851279450942185561396615010815315121351664948500721469122070015744610657842568867142052017985928361969733662526642495749218744758863935201307701339716508089693241693103433623714717659983666644525456972756715796286631042994797790724572790695540402577771122058858897622432661619125387991123572209302042630283548888979510520539649698838135573454417612924168973796402072764443553173841246374960615188344911614515647257776833293873149989514881123857288452635633879646272186762738573141927016054436146899661967810146186026196614260566263168349420000555200435675499657638035324231582600117877685560822902065232018876036551429419432549087190795828887928756187821106189845922610035910972439421981715944321298939247718894609862446297327763521711334621148048908397161205619925166421239519084196615110026012436113275794937113422077316652852296287625192318619125726970498341373999191548100090845242669140335830271110990113172939789624452417593347069860253716625135279560487614056772007874247156929722287246070766577851610641241409868021002006427367454142197496673147379900388022168887146250681304161489553205639966203193027083279209664934270279184891209596638172048924753915525420588999412001801811896450241629012292345548975473266277205669477549814628712241545156855849191380904974898995604897787706472127293477413558339231082240807257649456112812152190654832782384851532284586296273290639621847622586909703309017018330535616744157450190677995327773653916814180176625255351231318225033834203236759507414531447779839251569498789689509820722741494293318625789149078171140987293564125422548079929690470865498607581410030903941797283071907298018191034041796637230808832378017449565068660487365653689632278127417541603210075421496863944247360528674095004216702521137463704929262216220318703940584133007873728099065233798709312032854969281841310841723429930394742046613886050140182871925763815398894358876359245126552743374853046541585869137052437480636528927661175343792119698463383977943281315454774229899333933936016189474207561793988484832114690731364926207720969410048309503394995505374156514727020127994989431724577742872248856848027363796664577737387172493068402136405041628309089013348217880728008600977490719769723128056527413492459139947242924285260498391043380470437824139298941509470259329962754555355855220092090083798362477171660070271717303055003022702215432227272233063872070548868366963253096535369287379107941931702960506189325122630766678714522046175680090182472358048728962042347833063727135866376651709299768667323273363618090347888573300256340999189834430474477239796510290365890128891341823772235362721360187294969613754270642548657492828527825062775205185065927160951396886613381101898735485428418916648790453170030583620673748373591884527296042435902583594299589057996322227202934015846222666117827920463987954237834520364409697066725167914135814969100064335783537114871666730177778520784878776296634703066025108652885582620350918492768004846348413350564858781077443364248539123282380655099204268033400353887115992934784842702686392217897436782756006399049244577882950859018268276655393467782685643026741847403663274294969445522295367379997879711946535631413924448744353400138703969728939211734155342157819848303041196509389629744652642024625325587680449139337223108658750082063859756717279744144856549012511913187738727588844342834370466037361282713946133115501297435114816039979691790062357835177921344982778730165406086329989590123013566621035527153048111020785438109140102820281859137675319913370795618775370416422163942997784191174611189659141206974884843516708735657446776873324440983468472189044833918773312710334280388897824080683462520429634166786586456524956205131240512157904254533892524713898077732904537648094895697144016403359994641186324465179510503565101093040786696615392909684925090970557883394761035006376945017083268615695886224493236443627877573843553417837425202407752408649869493388510440058139336430565685668255878224199974092083397912375945021169898669892334949418643855003576173056326582088338173312175975324555707647532716408827183504170297535331376725362453116980444849522738403014985982870701243766620695442721130764828591244008444479592012094643417549101669398689225552740390245083992786625906908344438523069483457302236257312169428230519841238743377843910179740310340631497331048274854210261275895797631878236289550103100291926731865976109462842638605791467713239468701478858421841932346214117410371761506937719622619221793754731920145927757976076202476646435082228060524419770889383017006493078785275817582629608868999788751018345260316120493386428411900551273402055095334882327991701980105257666668470087832761507768131634393146134572264664913095627350677975486893866672125550723649639025568667422206862954654190090228708498382067934660162893737397981086922075520040531893784017933155384894958015196485413641450959948806750270471514976051867675123313210676950621057780080496593308176955534871061550687663445248439669736831144644737842525696942268107059534005594540203524696785881944820154308640133791858157363517860941148119248606729012668086141311522387709173299862135812215726898929226877103773981815479390594604335096137351879309177130463522565379060965231754026128854760785583906003257429622505523524164741473515794538700313846447763522329262057167246420273617697009014889633406663742457901546663875109995759743619525958570211843859330347577864643949032138584907865572063274433830020459527837016667747837953377495589234811852399179627723638247062539475778031119085944429598508973800601503125736934837572969416995635030938883456110561871322250176126504139958720976562256593419559064692546966417397923610091326891395611037607094806228247193553048189394242433102979058602905847352733909585639617929595538818145753812411542004719025964646397133701856718282302561960187900123920169694554627015787342473323341669133168355483799359812867714804214463347783637648357563445043970805085106474401728135861953303008257387702033223286051844089299840398328629985414920813338058374896442242175299432027594471716883513047248535579050777730576060902223079694500009148109394384607332083549191997374352273616439208676836210677448607651735763025832944748286869825853820652791500014253037552251113567912688017913056832625607615107538817985507265622985338039539954359470261715872510760920962919049829795716346787758853353543716649367099807578252241411746146414757356804999233130790992656534801083767935403326893582668654505007515722332685746182059419788486305644232547121238969698045418451931178262829564013230309805961398462880044549107138340546226339242799145579159079102942831403807631443884995155153388281680169941553751280063904786856809646166372010613884461668418880005037401415450235729010307918475027943886786543243555179876157901897288008022386117987729869803532249655981645509081663131344048415771498030453207233771710947751497233182187236158717772644988996378952724963842100176814212247967179737108937331279872574477233700023812525816943217260460728195800624762901515780525499340610780729802548883645095574785980348482025615408463910066746185954873767558628063459057009643640571785914691086612084217826612406556548027728995793709619683679462977542743607473720858648490223848150621453900045285253176485306568902113068133955725885423408193333067070557135332044623746123235788726268324507151348501737133383855187827210051926907046310289192180245873028120285476760924668980785715170526047781446989121601537765613028274699440140693171104509405434819186143372055375468762909526172735713892581930704232783520432969700765679579076859399462582695757384938896770541937976873023653205017177602362357883139618703872411226125610096859160580860139379309540944082095334138014323900837914654073984810202405680300300265099160294626060830274566683043268864210216184375756277537670586251049954097108706585556695624039077453623004439383235048939963501263740483604024820432906285694984405357406200011149633671526010685211568537402146021422690340112198411662014645142945089548954501268487608299226303799084445640973326543156469153056652052672774588014508425691646079563865741110246435091104027490046965549218434310708582747828635156034408355439626172693461690064692506498045875935037563315352080163593323332746315111814070862574623952784722913413659286926912461086934134652415748216914612414693538918463569413530548845873540929520963858363320766163251339871596935557763867357886299932837015663636425943575747798190295242958040568015612776964429535234685773183013962546337858188625156924560439050469998918935480962105484571129907110753235809233617746878212419572063965819335967704408694914169794174753565941835212153762367415976296525273773862515507322058296102002875368636530248522692932678608434886795753599446871108149009068218754296548040131181096137726932342012601848881277531298406767390403018162483227004562969381389452463206655788240114717442545296639125580744573174791349644234894857151930020970122060128801831797429762503612301818653498701327374055633454615713403055854592720317485270269139764922917099578542784460281984199657753909794100935592951599715778698945525450975629750010734123822445983906629231274238117166363534890932517580923488783388580261048586056212683141616117636723546312763269915158587154043895571007629399187313950185981607159734303562373878601505390845952115351401936168697159397531438480560360654164908887251068992041831431148026076266294152670114631549606210533635680599593085873511471626608117734870658008066630367920744667359096442040059609165192181870670553933756621111342821596140397263329162997490869742636047508509949652008808433596133609992064397956512699544676955381753147502668752289218467728382046769791414614120853324753251256317818169276575693603721855244566938864777924122852315566433843344129847432953680622133612460696035921614977662377789093091221512747774377174852096854531066230982259966588960425079813084510521051352915735785114667427402599410069261933283653273213878706657542957185839110046352607942321327166405431145181515491049772981221625325733094596687609552915128433652694728834840862390849903561604870435446803363147920811367174488280980385638133130166803164226114962528923173996667598446612736284476542785600281292937155127686313309909887055895711918846657059534601568258068091731506825906390279539022310912747292941876833042150504026252133747770325267291693545055152749944742414698594785424502946122505656193150140298574602020884021596152144084886146179415207948752603095949056091110181988917027232986435452791457663630911630569376513673549407641061460634597087809758253424976387249784426635193946583799568609247993388578760169717379469741289890046538870368519827863784927957200576690476601794871727876695629588228392179090494159610782280886533130290677043069244666623714985444491250751450072244474253773617850420146284338169892574934745712208130334148232286644587880835461059010569396195044419744195752163823975519400226598684943756958277414390421078903237190601945041777812832593611095775142713569476408792553663722317650437045537287866359366718083741468710853797616580681285940501053605322242350006045914587929991778971710997028087140894026698202481923753143819326628545677302420919292833032092672735482354363086646393577725152571527609590068199995493848546166187713391859236102765027090463391829826504223756165394502930656011166997530143239802546882394446022492944939808285285667652842105585686506345819001117979688314225767437510570460250030862324090337751247270196757455810402442997780517734343758229528184662812323810019484583774566613518338990344648684825850966307943919737034695046452188066206474110571812251009085392304648893146555432289071218931712729963857036316261644041109445982196934918078543081318214577963167867357353224084207377517939503741374871966467465605298169869440380122255769898326595644433655195672322923068879633746246546547829316132013035724901187573232723866067119019241150938254632214363681439216165215645153155273449540685008834362698108491067007603466613004121096456150579820005077960590180053206043603860836640784025660138898915283055728854344470273057470566753614720655177107156844085232029165419550099134331725925715511879385796264614353808995788197073165314068323294911825338530662753252060036053091965888333361241778120784819034794049015250059284362916379704587861760453137991286274938872829813483738996953558150023687480558679461076933339190551544867756547586231209395868581175577141770335675567081253010922966401261350830702451048664151441486003301477746333308228224471193214364528731827782963990755695161289252314805901418474069475366240473362687489027914949219005334266255819858473581218163022762327654179437903320317100618405116286196096227187007252927424850928616694578404256938984410229843606093433191312548887573722962712020177533660388140680320954252995025219195230525901164809971307142686836009259967666907522860671999078392399480702223797495046058192810340309544344341771767291091756052775745771266276167379528729766207518616578437717654855640948651763332951559106256276409348243203788919326457485165606380778338830818851897948643943438869959950416587425137211059562548013664023160987131260755891094889060331142741772423780015608856131254180787557432741645495714642916309453049225850982335642800197085832553484261271940646986125177909115594877843211439154970871307320489793983376750880848082381522473500187702383914260376529699173757679171726721221958393462317210081968314806737973271760583471386931453841707932212361101123351036885423776570876029287079446408836856686282251998121461725437186999920023113750653235426536687790989002617548982263681765911242484507609382478857772687420510188164446972573497604563674297381297233802629153348016773729471826272669570571570788441083811925480666140296526895019041766041551686936606506190649501978713291775001303763277017790930720284078905881016262175462145178450781882443169304026097605831453543703713117137641393328622447483397531657958451234920531286722619629029713519355168867912963074653774778200233742917724643174502560876984445801597655037435415905587999395643175419704238885102532430948297436680381370349889937203440209008798028385410504162457053521504536871441933438411146780547042013080232405994701778278916056804490375102161436525574869336852511855917322493872126465335504874795481476361641595304473881142643988564441226328822161879502859621532416427438118697133253413110056123138220589136925352733716829502245370108118111730609799756222580815178265533752708020701932323624812332589950693428687478264649586635569143210799729159355348557747031077457948368608068830282192195430489545698580270488244631158113212066668948886041931724956819596541165049573103147815357152610762237234349935853840572971625825190707991922900876880596160600923987334112952120486266798386261586649077024155233599669319439440111303089394269183939779114592587958075761427304505959130556544127164726043380103680081968213398132420132357367990386074196889040875383770761914691769511654212488904068557186317217867977736515105088352082899215115632586353197017429108136035150433769536602164094736527636312641925085799199352123643340376174781004446642292117369715446354819225813737851956430350818512487421897080875538953731895580665360328642017131897837471623249934045394231962190873227397119880448471120915074165920792559493757953249434296693278779732137959613562634771099727391447381151881176723673639956739233106934645329982877933094227769446086975972922644198090838137357339865242966067989040055382612703006717173252044580467058164061475949418926637825901202768130461146144020568752823620114804386339989328967141018263509332858414853486269460427490977435307364141630143687011986232303921555362968537803750857485949483624576642508378731297892295242849959582872462540427263884566644765472273768505918437172162487604729818883667536787225532603043686907405081475742182803493237265233310445079706867176643083698916350381524391765496986955565819301198254912678532713531593082474788959518671651977204368143868884797190179202368492254433439627000895375284852417446358146703050009411195861639441283382794988697907711473448022648604150805098599181199176638115679906495331467890057765609491814672431587560515932084326725833956537895887667000614969543828591151289711626921842840893951602507557676634186168409994013156432576868709894286793722867019745603622666117975101125620103854410815520645710475119043191947240944414578143755498339036671911121016871897450865134538721022081100509670483967810168213225086683637761637861373522721120985632374706830839327387439957542012668243842315418090433716030715498740185724488691271842312913799615301766657227153829044400147116732134087894681981155941341668442330280460313279888743572889637450030849295866907054566439200476944331218395686573520087704834852392069433848880709292761232190889268347788969764333666547749604276356183574450821843437708222829277555271674125371533058082678675719524859899815891061397006326560260454701472729715838516938284151054377639923166819375072376765140667479677593808988786106386090231323621075108175649556375042857883256294135401784839138341512287572618864179262459495146615706772455220107571243517554901145030350610290966551579106485251056506797725208466651800167470406135220456697628516467075115322830295191999973119208823829035017531782250294303361739206681923899029636043608605660180014751550870672900283315168696481653420032304930245409588177009467594518579890454739591134018087510046667017856981938558046088849687660466199540464306149725914804278519702891625387427192077953341440028592148832107094763042486974019597353795065972261322033100470615418392919031135695058877364642655290870276449767262641320510943733180237561524694765228878124030175147492265332519066795587567368894198804098105417254463837200558233111470775507526546852063517139492520601794046214430947300365339736852713644065850577187812162305011645921487227558701748329585515376561054551019857291700294595511176208624265459344292116084006396737285676780457261780072072551954801055111151074320514955916410334468715166773140410798301245854921779996261228164769206624234335316672360172207879880576168785334064055055809921270240388002499916564112737750036853705235392796482198083919149448081286788621176632640427231482506533190511833540376641742200460013419627717101629228584069436590381212433234636482376269448092617429976375203556176916317096455151314115983531361787972311563173148381556321649701026210926809764772638371872656117345688952618294175411047821549794848668798439187707076941822213062354403194396944735892252229383970866729418594497934395229774342336677484974742922030825380717521862747217661367951546355619298676928660385337012921817177075434481959561883487954322278342116453871851279241734957655984894970665864094097628000044635578409729314029324017991930067440680939897866973965121899479922092130734164172651792681753156580815123229849670283324713487940486873035991217524029124818168672656774472610086875625154197184188867530113944412188518757635790866203779393243665780528897054798194633468330982220683095353762467569625398742051552257375473043114512009759084124190624950681830599768937388059820686612808631376905263226889542487044330535019968870869511646843864449378692442247268044338481592000967607667060542406780554935902267564042271706344286873509784029984557763332759670270495216765411766146308205510384102789015058030071135918899656238623461457006697812270740103014668332098905306284074614526689967784814647514961356009985113535278738208873421734385886976476825422362667225801854121067159571427410020774580045141874256881524413112585677916597761235409628699845323639930856051820981541735843037093302152104294233142835438618006504802575094157030776448629679518736243534518699188382346316558925576657440693838827069546506274054931571775543811095241679767115062814765940392691283244576705408853433644541745820274176462720044531224037325402576536063271707999938811376406538268061801111773530304511664122455480398610339802204912451705756639432603006387596122509142423177438115099542255923692017267273576752116988305730179258108488358251390088852526981348971702445917633811041991233733774769491643112311825630319771260666877526827129191677821827477455881044960535069029019973612867524628062897428596680678160128235769159839463986713552128597169950793260601368650657001311982574201856146267873905646075235419556418519265241807999229591413251161383946083690121874896891374883611607371639746997251116332932335762020568872530588257483136418973530176590742429147208093275397464548847289630924904002907528278888952849916338453870704985897432167449902239370522004119869573227675310057004024425266089688718872964251257367344480985812312488953938269829220356725384237158724220312067737815739544391709014364875336168134977224030845393649240395896470619386848095240409754958688669866697337126437450923526320571773371716443329584183001094158896635930311593523994705911874930058696345957959014891913708663657162729373248208749436014383716898294919307711063791275025509835659824882946548578626778084459411336771519622442838364258482221749106818276043404988003733282639423393248061653344224091181491950080623683575404840900085529936491902599721915120642493508021367278618095713999880421622394367740901402849746919001775595976314494709961215327813609104800538741332346559732701410995772281484341812322702335157741212701300549573379405301214722281606881051745888376369536384458636697785432829032791677335308939709604691226987590940890432998904888348939975876540793657518680850389255142410265652483064529714292180868742583540188561926575655312495166505108098107800847605710509525800925275418214411816417588845395991681648371076060856987332335257752172373189744940992436088261691105159381454770903279441223779880493899969960747531454272717193232950049772220304646630386559076127699279943782382841048702490031364047875376930120403096923695451279100567053382147222528927303529919048274825139826425594323595982969178190395157289782004998593423727816815816352443490891455743272384857571600083743669412265216380213923671997616346225342586867964138842181464983021037502944410495106658545090644276593570754518501301945858999147176779178672105835137775061134821784158195182566628736242183687149715883748903831942477554693857927651786652341908510654878425912311294833852014583510189240159605171442516053164616552763547707600291034464468157261495951880960784829157338419810912622561033486875216647694543664235229450991954199622329920251181352977200632809991529123782501463600166968402140899920833357770525520086678392291899930308609371494841304714926796430296535682261199769602358406143703224623455969497666085880599686377342318888325869728525370576399013586266945597473206286223053963531920618978513208830932042697958563025669031481162281556538604083460956534593997764511469267394649323988014788130491347896096487118979362245784483833667886257923833526569263595268630969733360784308117355302352738482704217496616452180328122381962352455600759435771536439172068596625119858600663918349407705129014075999970298776247605294708085361376442087825242046470568676173569038368979474017561588488472577449946132090869746526207700470512959177706403962088390643531939251732232544421766979553668261825486561835816719591658756704083600369603801043994290372809005649074155269215502088209479222589175315277074792091574035778157062520334934783912431154310920960070571383305241592863045313956468133632089981819094148578175508472915382709818577932980358964114341504731176224395098546898982858601820622991434328645015107086653534368729232384420888752862025316617642479524090077145480387326553903400623104093612326224302087220957610557900019383316243748786246728376260758486732476987014201231046228191210102643671975658389002005474719279297669869217998382292174954192588580246237254558914340390576906115508405284363949275228633777900765313648627560616241676601305962034285433897677807250680892444970944323002717574314416230074171950102543315601498428825049186042648085229167305116551424419393023256695436177751595620685490193619058108679121170367563998786177539034183171626526394383761998973487935498877981932715786900825209246760268665774203718132324473032797106454595297605825031104636604171307407081220938335977313532116170723060326802951486413507517886066579409407830198227563774966541923418078280652444904940981474833922764909479293659454315928266976894514673039947393263147164370060146435423148885435036274614058067358382903373205569998796665608689016604636425167183188198298980825819509865216765577398032249434721516428165292614865578017395798130805656081225754087434299856642076831521109699503572434308373380309557175481775929617734532572981248806042005353719666701214437844596720198436048276279286756014422179886021288841951999457734428793379508611944662800311863332256907658585976234767543292253544120839781800044477337240771768083935464014477342443794105184448854517651687573638940304609570142906950681667934661043103058193983130298858626331070025568730946199459133753666566469047005095502334538705683512176814066554534971109822381385026559621612938245526250686465228692215254585088491975518579229497313107192258865883781635643203859737475572338415636381602285074580449096503181880178715914066726812768365211149319749233426988031374976118116340701207092111654323008749012165671846485874815220149488617977189632840291603865504472269846486921011250687149671293498414111453038539223157213461753446499718129955724880354567166712884037268745733396846117871460602682746377993233319357510696105272170443408999891156074575777911614710061383718134762946753867517419310161300125903039945018872545846864001283591555599018956169272147181974609678195909892062599361756876431849395410446701498884162302498598401875638702237213370828913360650598661275248548372284574874012926125343587444599007185342256006630674086791058769742736303716497871519341383054750531998912383995687494570251312917441736915292957670175571307254061399252512193912526479181890402996675938820651426942606373983909047438209026812722366112390750970841571279877681767203554607447385845445932712853158977573642140240625213098729156833967275686890337050330555665446977656530901691960323905246830872928844141531935396957200296216923211998425003467926126721086899284673081874726517977937892985971092417437913318774217278911885956270364484521704440268288454814341063567064310856953280419864834150099078065801408011654447580487674918109384080424457125699590319554842576254019280481800142039260907110017900517730023907040383882615370345955050006488969490391360464777221685412588971648842557614615103230679694229368776587643431483602641981153724480527475132421192804637192434724292811839418086546187578296369345723924697988120273970077475144470277987746560194461110001421944987299967109627591024660226788742086344981508217296065086893244132950039664609623397197440211482630154760064898149345997093723520357539024209682281276405103571299693449280319426367709984890689002967818238279629523178336466729638143405772150532997360444845101317325572011127930925976884227082355741720206925174538602194571782406788259057057819194618362580806947968332857609683930654916845987191814033882932746001514682930172179655428592714718160620506500499198310991000992039994788830307662380092202872593455070874140221252622444610016295421483723242441943596279238601528758798536819865174514284435107305737337508148298813609568271659140714504613965187318274292939301781149507636723026530129567075839959464635015957151433183025390259146677184967397823482119600446189238099839511820146759760842832341600159125853001892758376068596368466110007651542979400671956664223362110468604979997728368698217838809543463281253499134259511983895835921073395083312554077963238309967135270531219757602701733548991799618435055399563843049446005634565748612741580899668101771468383031593524572245197582561239987321081726402129265312774917587153658015272966182333161982589128232679554068615049531052725569359900409731527986544679242086819116563306403187593992967587683529431328817372269825056684954823255839537370490858005836445504773148439614206843636346939693901329024324877909700853079700306075900146792322278203838754908466912503174268278422602882913463863966538338821030930937663214770955154435679413358546930907666423031764240762575207725949801928969295325055528078730259516942634358932714864579646106608174265045225411722976361726599523908787329977238195077117438215601370231435939193253739258066698173910876864761673219007314695593150242125424586394703632283195380147658106294397947509181306973528524600470999225672854466617543787328548114835953814036071820413053070151578062521139008602239228800948149334639769673596241332236026716160411979458469594305244805533070959151552127888721768339043465969953387909820553637840827319605258607720794819731261826156853248058380884507086692326446974728864734506266718023387924844856210142719354995279334588239720357604487271987615200517872639033641664983914463611121576002853248269595681436590247630582825704024732434843826955514121387080241029729042210561548690334269318899074142201199164012534727733823087834554798126903824459635283449437947039731017300768883677744376610851609111261219274983655315298220238636292346199990425215970746232573941525816953953315023459065662305774481219563963492955863948920847137233454743910961770443125510094293328286846926015864158269137652338364659008122931866496257335094873141022076801313585549581727210561651713648560444754509404647765472470297334301526235656499952581728778420888569319778156401280894661895365360051818752574068141427840542927355260994451975227587776864290756468344294288517488850841032398123190354040851650930910530317430913387275153578382211839240805285228783970005784153618711723829480167756710800684887923751513693881749572035302627299532232819766146441487684787379390471344104704784092022009097439225583157998882237617603851568382845853311911736407448023876866067765650037922703289593945659792526246701311274019066245503632431106040693138260908584330359128673277112274892411928148358570416145543684842757674151240893229441699505032778718336961673366030412623140619576518446368030497305727961294423671367009454476969706540621972446955989207475195570874011308944395936405514356344371924768622243409343213681046528628605630502430995911653305332540481032649698412467706890129523790976121423322404905058712544581096602246108264758524133987795724640413322639826045082608314036889954481777804671043780548422698491032965059724451648409120145929678924411253360727502701465710535777029668664285008866003799469381504215740388615211870315810927050428927795769541576206543494410224975189134463651965210199004690523575455543438953259545753676980511676048726134601606737973364644951407191255685405624435203099205815934674646569807242918437139424899949441005166256163960281532158080136535811435054168136498629063614829998567267086942771535270072575663994272208892805361986812438545377050724674324055877929400293630767659215156419908675406893099783235960182054910106946115175382409280007376691700357133202746759640716602872563605983646751925218366786171085271320101433638996598436335424257389500681328200939569768910226784199684494364343239925332357376129897197849032286321555394028691845032823851378405046760732688396942129680790922084294041027418831974693294529128792242873076557383092151952563609913968541043124563042895396616049726402428338458998532095896863421971270652469278288350745164941790487870754910159463690118567294925353357583009815224225687723246283826728453997694837946527097681750985873715456586918154584445129926494446374650957497934103362691902294284474156745206882109908212734398680955620617469974662119978083809774574929594213679938434452498918465841748197824107564511425869238624572093120082880320206194865255928238877516946291680903192478496134920182932240977379698947498226693475447512035548330707435171420180777450133873270130399391669754950623383852207414115465617220365455050092409672279678575815319175469654227759247937709537222967445721143091147685724184316910673432111244159439843675076162349045754605104438119001940791701516073297296188946637748698887861810952324852110018931458167134262341978932023209874756193996801857610291291888488564800761004550022300260247012153691277654328469437174972487897999641076540386004351084054458134551221848823762414900468924133538894909086173274922941653738860533805291608698194225469677033581593726379775750933042046121976635799703383945752071320223665093851304903005729874236803209330089291504025487182199802127365151311700051594658395414988599865472634764735688014618721635635856387230225166468122787936832559568304625890053016796899983410803821226496938271984211366349598132301339099262381734932920118313152854856357963403233717393769161865182559723034811713711542796921892680050656687260073186968682549651946571569770807516113944931496840325069807334502263086966532592685775379052468243604060649544869130495188662569912107987933472081093208005943767975142886321007381844768128489754632788820533885879371046545785529020663379259939017889189386038441228482991596469116692058152706327273391373077726405474368831842270363811418689188558656290276798003390581732858192694254421057409325656868741661134669088900321325858668378384185097495349716992371901130752217087610912771111827459329433732613101243390072541611558746129444599781698696701139076228915680220036754413254744701866659393078247038904817664731845464630725621009259974606139274616244800761563085925995907313091759677508083095223697894947778913047818757346346639729340241422202624601833801317265828429063420064778717068837726808498116269219913264218162075300438940767695427554303143186110598515187844897617420033223957924730131115982439383937777816485809369194316992174617563519717343013190205121279759357056431003134452994505499863254743982734995641971729636679060990637863179694382981354470983903542482036502320751651294571953621664064398856507212656045298269680783947071825110108423604106971531286754232167616842624320121317393783195160121624251208397555440100686020095339391826264086538910709465082814677130837594493199103857505952628334716036857379550450619449687846878667469776473273357153643491816133471065722179706330727529133665215238863527004384168847096988527906167335743743954732439284945872044695055774493166625565186067572609299300603953188694958673390618750436169173305136413501385974556589924734046767991532160909967849004272940605765133176436224368498831436368817383678137479737857071886487024172595781889929524128722818251193760528897871129018090613007453954680321884276252211308758797253001832250424571965765294852288057052249108724445282244661669616971005034346018800019093853624060332340276432690092567096733294561219912371427022536640498559734347421254067864074988285635095743859082175646851829000769099048834298091286604146320516985465205541225811485764292554627190306664480817687918388123010663677250817955643999299122838325435351987549692920801344433858326596573583099947087015621898175098342192540361710831506166785056736268065905146529412261367174761223249603416133584139567843884632150755346761707072790855966923981085510373256031762737073816031162973912338831248671062056385337086388204467923428513886096815416163272978404329198366254305611100697694836373603574485591743036366564018512347472181507629377565183759332560483895462923952466311880344800092863630811258312138977665751044730167360378679446255406895110497282536600165153254065800572206191043434337421461571264035605880839243267411760115596446378129053868339520598444302148721021105647608358140031003294758252977999089547424093020081362481758630670861754388343065640768794661765269988279764249886371635430266380254763871235400976022119027666790476790762498737822109629119421295366353315305735343127612620163567043903433511520541626144644279047891288539481763182638064867552306144217012016634430318667202750700050015033393263218671495718698621889782585065554034356664345261919119322165443794122283062569792841165006133257561274095012917984925374623061642794818331813349123649224507548664127259625262731711092309348932243799121435738052774411345962500248077993995153180577383190236947625228412029615232667902971869513499517295569334170503944248289744312521943589252971608493100223413518360210354518925663086349409885319462757841401269473375920461759547505845417338313506903205139164972363538391284844816012695308342578623018680673145098809318629207552144061045723290840523685167024635766166739534586994226102141744335954529230274310819855334234836391235688800775613565341858244405189233875848490088647858895918693804054304328146848927594330238293035915150315198828143693586623202032101931355205136107366077625190037096354642051092761665739987416853708083498985539801059423594073063411101461383731609411134073764653818908246142208022295251803291678639919760784162632870849108736844319568530527250376115767436058283735506967022915220503262459442181445241557566174678159562053375747243953736006269225161905694849172791847592884290635285215648309359243912679513731906163625734370412308167352903435479705120729487217754669582820320752353426139988472272844858562160361647797294725557437613077279715066370675361613780067145819553274518372806691981715338135794752923676031600278176983999296302059959149729606978444797649557142052235061528276422462454717901833791758112205479678671174417968554405710398608898242886209466102137141745522810848670231038352603158041923688475966703818948589561633636550159637773261785135269338881452563260188617882542508772621866466070262142584906985918008323952293754719991883435722824540938597897917828640218192824685862653684349326051110632703361178545043791093718022951170634703334853760125710227856295287861355184040489416230867875666232847975723771694690662961075582861297298260230863294952746070347286585375178680448937626255054909184583863177661446191550683331569194484458243394343608876657342303109167915480740205466422742289997715519122037016572928509310547892661665199875511505417120772276687299593624687464570928220846219003932500779123716807054907458524072866123142037495680560266955312502884769117539410918931816375924485726367789934711317486840897703855077072349053375610626841880035235211838279299783213205942193288899716802866512261435527974344788698744800373120078122268394052901921630154946144027798073844697192853351734685709043069607918855016973413495282218795728433294544003729099899575062997549342905388528009018004349441020070713630934419242418305808124189598710534702027592289567929287964462816076508113232513341643249275686342355592144136817282099132008463382982603803165310605781945283180548813432894989764853318362064090751968159854352424287705399647931454210667669120959725727330055675618261216758029549831043811127662313142983974124090473476221645718584370458318146978694565509204885789527718710086169778099168169955559918644208119433319549161334789898964394098936870831687543076141574771933395115338353332226616237060241861816467249524197074238831590211620578514458944889188473064257436938432078356676951963537865242817893213883605595033507226338923390452653807561448870872355631362735253103263658036062289519069756530203726244632447508106328171538954993015613765330591132140336012492701294631354227483590512725460477004410467454235545862416120670791544837013446088170777152154878246346677051269289849227198792950135315964485084308157501309085198592354941793277976390393487255071167844421774564668336148121441355046856302087235485375458115112531079241195442508645997757522724582482935399012828706388273215650658726327371584651790112480836703851927758564994304574365139897450808893477533940473373621005512975428469080084344578214614644673545549482780286668977183989002541414583102811366594096472111038673609651064420743275245676976856561932762328947875215790047113110102824030138170306910361984501571138166197000690544022404828483998391161453727808189933238392700229511686557065567547007038544468545928922256772600008076629011617449646320954482467767391723152377675511159960623475855474967468845549225286919590954679347865394762987258595768890537454354349989519447814817807534826726807997050107822153264010549972878490880206616389555093516169884076657144021960451723164786865056526883427340617781621184986882854667880917164019011972905971402293070759800800405034143890321129232557270222304580314992055335240950303391578355120104277438306558585804986206566767756987960501432563129200535305957489087624066328244201785196760558249841504177893482769062703119582327989903803211345115249547844868281571427252182879104462815705548528099239891716556673850558400971227508762406046473342654157199502096664701481490975837232769859873651997180703470206240603480786618887221542847422307737137152338265825277913931930355823956154450971031335010114354953585927770379913484121953098028850197284697941821215900782726834307344889369839260763715101727700811302649872092735492111217623100846291749824486884370168791013622120693387629819419977599047556384664494838654261697464980322554822100121991804852565897148161705621681738474434357094564708735609875574173396587500107348985264962754281538272287181681072585335329637855635870087461987275761712868513736105987794678460257038713658119193481800314283015631229220532432076520798923785229954026595353316954823603782327964891884641835303911528446694663130034330993575536897083107043979286081172448592234016755048482779951556873688293213419099290200802600257124448825167683442166999419993099500981655960812828665198741414024461617843395048122543844110238206004065509216007318241916517395208492773883670585922564830436199530377248871383478978991001431932479316479238951436188178385032779591869481243050226711311026363197148423952464900640902388912264687725622633790545954395486303045990110461891710461363860835467178878853697788468102879846338478449686917931914752082264985041705214313223916908916939462907397661382437584217712748592116937291438942904560592228738295655261400077326529610355473028715141838291211621836093900702599344430440257368842992019705710118557699917194363011879330541401768759271712748718041124728628857792299300877100217004180351174432164999414203138337163492599530285927757723856449303537616000481715886160097136957488658484509230259297913884806907094330274369374423552541507014821001112098023892639664239944666282121903098946964171339175625554493894347046039804651876553975480678095728735579924931718448762352434842782740903953923600157988419190108633006718968827730884025099703950775092886150402744009529105662231202251864913234045356248367582703636838125879913431444049119977785091548661865698141867036836466014452449560046159177079199865367139377546439533818137206961145271101639636623777585443722232223886665041059652987953625041852129971916074263748171226101742087630432436912863344475640391517747165632468976866657720887838995868428834337835435136673834122910115809175758197975167083196478657466433654252065458894831592905335924303388280415406562952902279453712999376091296856595304096408307250041055329633977713905184985584193827335577363022959167340144437203943272118276878875862733723199475246865680999176501727762160031343849553807038228400881184291729844749375020271082109945146790855347048714499721544551036339209513800714191236023627316635935659876504947008362502660097689347281313756969702430684112270806129856418713157807423809773129053475192024469454902091363071381889336170055064562813799562670941113844700641911367601166863226345494875894489744610210415700467493111371834679796612138327381017103008787725429037056999437768861939863128776454164761785993022826231323785517269161451253966410367819936348199816039831057796103683153882197613772381359149689678691704173668270988526109731694939756211169108477482186709974431036995621866500579477179969309689379624503448642208164729231880549086154043468081671610475978379763480332222394510407160476927237125728175314515175805405663914362353012329883998608971409628236388859926232555858385994521942049835805435317884346188245590012979158552781819544699753437015395685130385881619756309737461990763816299995266238732845777065868974864803969830654909983783212910051671059163957206800339478295574562254412900278462213906425136396531871654344944506092597716937148383092025424198141038905360100808845225253927383711485996400405331265117120657122425862742083671350179403193882619062195142720722496144120609408166190837076180811006719395894527591588900254616661322872143216263160098077666917405671622596457534381466578027459939872126311082381307212055788731173264948642544704964038747058721830248233201673127992183579679974556771274820221451607241836739658883008396111772591237151424643379701340595001039470989215668618161617869987470276813954798938459913125709126868922664946099200867659811688253511572632007968046089992180099240055766194324742682700768355902870115742810088210809386130560219810252969176591791433422449813584679619338314981255443849930310364398741041110407640829507594725813941563898362796368249361511723723594142794767280429966625135112449043574905126531568809610233118299323026887227541323336074974519073208330855622845634773267081071868949131259626074981561180810290632023720413270980679304525062394755521493633145629065693639988323977663121974657705350361625688089377103127572182879215169299166657129691354668814456425891011263996987304663768585631327758691373475340997687097298234950539911630059484049030864067545166929315116012090180968215037428504048609073084287278456609955992962902510261808385574705837107350164331924781389550445924158775277035759997723600900589392586294581496406025561222943421082777524234990998271060692401721262366637041617169978846945679075490684580050554887044618390393962350860332699454499752111918670371587615947584800814624525901988836801325938208926259725197916144282729630297503230261262358436947132206699655091805265881402450322731190435798727783335680970600846924788648550815990364851222702917039409724815840457043311491122282449775784846995282925651351794228864997294704038842786592469226056667707312226283678232452691104538997609425349989271926364117552359340115202900118707134057409118736378559380891019691859504961316838238545343559791510524590837108598479344464093603052637505747583135468243314945287186509067058612440298997481795642190655538223929784494293467195016252117659376548362212969834164625308458818015408897434491938645775730202310652135589767405393344290154013191660120289489974317173368059223396312479226179936634673152146980929919796997754321755842077543787903670872573469794495494904884994989682521444895929860499195558710769662465559637053514920734837440406857474945636925061228162119347050114752799000415080092252323513795309499949162701615900218823400716049712107563089484594515157983039988308495084832407856480201527315629707225253889869158456079204596531904300566784280431407607080186607011675033651384870646834521061000109217811597333107696823432572206071743848896332049959541665164568004945269621259739479652230910968642142024085906385866368613319350823124307670586066812282747376400693394413955367034478092540249154602268563234540182703926735543733362967123554363269084861667882768583575366082050713227134362440196678751557347433540828374966386332385222486182026001975302599783627408752496133207098694991877240800730398253550592732235821818331992619080188474102360971986297152392901019488237255456856113825268664904536147652595331730113224402709703239013478854898684824286330608782204333883561018075147339336896177862591259978901907292380331926214769711805723042046308292785381401938699267316566339770065966866593644404424224294806104560021957050250676376801942842316419116286469144047506396677595420180609688720630304685738150928610223047791948762628365691621108292368717729719337842474048699322105235714886918799788106251094028758997190642864585377639292773919816529840740650495596606353474488022396988027852149579021103027388475139656242549596295163452865159947243833086818699306729747626967395897455210234181818223077232851834390311811485619244912668378910747800504673264445551783475956747504386953302392307435469130154079316771030550243660791812353310951297825474955695791411285306937171103986955313178207093166655898789999575707753321754430585486284247477590440308667869812701256963281145176913659489940244002796743541485573112964944494273286342403030101395595399035365435405700402118611560145280220537741746463830940659819773956116711208182479351423003632721059998198827477791729141193901685483487771886896895399004566027361552926997529774647665577776772116609428673628763441627514431116845436026812809891108080850362584598256170297600093296451114736460536264485153971386247507391907852754059162069312710893977709524748511398103999726518323175039384774993686299166797168574140898654243749408768228943890717619967681412775944197794462374210722565177334290829661962536450801180267510366074505741369950413241045015540485988331415514583744017486442278619342478804598881226783779577664027575183748990195922388441155694819653586798663988931866704336811940716956208416904008875570926756894625686503792738993009253982822064095145627573963449525807628380038930691962783596612260900199717348900458374190334777658770369624542589116598526012389157212977926562375055210688133362930160375223207824546699391477936285017057955839683973864125240217394058972234487944062434039137960679266204465812084853215593195210768928562545343397391196385727222254284880304443122653420735533388116953329116159378447526179596464743446965475326382825093243359509858256877674541940267279525656386793254154568142229469232305734442352906744237698991204999978438620414806091758676062554643424030259805398061941342602636658151332759808256086320516798647249926165592315496707845275071903160726149824120700118946888658455152242784103578605652195073166823441113421307798244649871896787365373700550813060457926554039208814763082815239698010015417800692347583614191579970195924236045389627840557470262893946471574265186091204584987028715408566104467846128693834784044689995752560899332435170043530876529169715849858101244321207054391099147683501390474907102108679128643181347036416759749157110147237296679018549456518857574089733107901970359233379040643204132418739776271988213302280558950381153309288906663357040368034338852918686805794595468664343255816366285120736726587600701367832139512632909132078195650246531443300396836541696634965223467015807301202807300048228363057952845940736014778168557248451464027401088898970076353724451530647051071154569082736417784301741393464761591113107748470537678012447558464672605336223357540873076863835536820098491468814146658147565868948425059925616191203627327491614681466826367489943027526761389416936453954210719135363595669297774021049769771395681617838925620106825501809094056083291364077962458874727089404745584668301779777582457584682770907828745764679962782990283489091947379698925292618493389107370767862891444390078360098883379124624100266780567777295447743443684772485034977518821006689771883655308458332920559943643151442065714682344476585537943612465301944318848783727081911924204058937955106079331705238139369337717318565044756735311009856670790688976589265831630105401459450661905537013633602812646382489219288943131602440567583307080610379899589474889834904351782638783398653961541771413645979715566177329029725572453553387593565665937262328831883320133565938728166973737451387419904428071284112499449430592799633636194566222809382048920591820729077508713767927959496061116180992832191163737552131861427516949418913176732045629446384457870591505335622717506303138786018373983480363020918669284634151039223436496739257502055482749143202794944483815318597882584258665588836436067127302092050673429726448981895538832229971395940756040062082690604422963418980913744310182315867271832278766883658867822405208412749725997653176351069141240885650915628374720218026126037730489891841700231352618155472053767881807931366446212562557584381096423790848583641925188625535273540281644657366758287915252541499276955660935797235668008499036378565014549962756891022189341858088357786885468405504037164478019359562141470351256339477559029524247846694774347347903874512943443629134595590813874774171004360410096058312890073950493094720090432406913072747289873625197627783632830644496248629234946741827633478315367169095867636761250777925069644517432719513688215382610100679295644879196061263592222941580619406133133922987789056496071370790199314499356416228552603451635441534658653702775284711792551178088742475560344347571196686835059303524224241011939298396771123596010401813731171850290022045180329549958324846800515056736554070175330041096855990526072412048283359204180410263967392592665480149900363091877247330417719006795454105099833830398358400195003445407590439152252109034301294287096516363903712503585893541292860765521601384125478884819211504163497658101455441376464043853505123889982071222268810783917533437607757540666638880267551323134854932974030468192046329227916078303592037124266840208491022148222712565725210557164018553588105398679171819738303841891995881689469085515081593524736586850842931261804230469806017058047763164910240476747764147718757743096886542617087280789352853234258643492995940760307874344766820307830450311654444148136278031619534691703367266921004506838867247456228772955034852095446848680631829780916372713177028084270060237780960916570023984763027640468093354691799193300595503429373081221141671821492499945884391502045181145255155973542364961493882752389271305810668659945885216612209729655786405806831615200316191166160862097589001397696761057805218849511642455234581833381583347301759474185309096969825899686564636110794918160475585093299061275224977945542812485925152162177634814967807985321005643934013803784484931255481378865189478812372074714988607934247048377495582987944016372045855895226262089973334333266499410365309236055696547881502783995045726414034776478169416318773763655475663336029380698072450552511636997785157485628196785561664053465141258978431461586642625167049388239686546857212903561321930971662204872922910260738323006734781521576944388312045627640058689043885822472519766333525398217886279578730862007492852767603340752203562361322950736476117968709837364842915538862395323166638557855021816608936541145349555926600006427503655064082814196183992098903138413400872372175828803623372304677956254997497552328510811334014389935756353430077664620604917028254348117266293384744436822108633035478815335465140829694600058523673049594488735463951134854153404899160121862377276780263568402917735083947417392614404394487416079611740296230420575026020446960942377366400570689799015907233447433157012000011012762806301138114034523244493362993395472020228664456231689519492904018612904289334785184236815687244358910447930962291493087745677903866738098040922086622038416613973344143841692428811591980912472643023000568127686722559453583990285116362782404580149958953633724746652890208220950545548905062038708879556453624651593166636030046232228994632583292861509539803987763100719347852346994226840727955069485518106140230415488151831054069768037242801693071479220691545722626922457897836277489176291202188173709547219488815406413336141078048299162553717830040116789837317193161576630828449911176327091217902786468104605377773273615295028681556903509844139289947528382380251082576860862948721755182176275853013882692090994491405120471480852072953074648457389067122834938085684224019689242067856713053072061885984107547878238659694587815649910015334211986748647166843656924270420061727567617167254976261569999764450666631858369417723426747879552527742771780085787177823481112872303155604899093306650448972641860087417807982562129027344394288495377149919830484183559253055007857828334705493131981231316269771242454161272356017828388811152607138556411735192988000961209437179960341293834116927713707305480230337414310756981659111834245583303124742258186724557355902073106813481027563189607069781055382437911660364456868070931936852368455035950546089504889986629031210046223278306210152307035135089205118611869175864417106034257928449238338112106147673278545070106775098325076156881151893957425453454134159079150520932659141273547823193124626156881449442215760373393477280207060898697839714446407003239959618598799850792006615859600613614961126926792172736528991586427639974039928740417220360375430178684227962145906203682201626805741510258481393214919186913929542318895183138239188483428184820073086496822656589903319391001406056580652748247506432007418392265877207178926863205922476256172076258365319212470753717068954825934111638615713386567921200248148953369159229310402665433304149816672381641191628693622389205245984849284771801453120602322603609794834969470449110103794101971506418508103222264438704184534050682019454612544812432580514131988033154267514573030976760042313356912195601419544028233086216173159936651747638101468251651963068357048392497127528839799749739683101278082552244993046843273288177677966560735401086451551432007452239714884725960656750380998927232395789604111315118301704676042443734487640483328898324054588812161019507499367640955570818936631155613351363770403540176811865917916360862687480873352774329319686996456093458720639938417215233958374556417588925616815720246653795391848545662459721629893391839417308678971992150646688301893149839634621665873515870011273875063927053840810745278186978589763109513333898923681062318582484750191321869027887466098651049859029271199015663296625235538393213739770709023116216820536420757680958262602158456895867264399875556566207176946771038817107247704435912829093461255134736217989213978589982022303140702086852718492385755107302528473520391366714410207874917546880008297595801868845650686833721789139706685713312003718085960185993214230644681901401995469776787523995153033311860881787891474704752224599898508967635610134016551228020633699770074865467355140721647004598989055680327675095134653841122643628191464095501241494092786619301297929211542974143708704321974294042007379824055051058382210911347055454433843502745151313831038494061441272409640324741869113603185310625504467404168662587068286824337496021372450975418824921858534367891866432302369195415649085670548108343069386993459496291139169525924818708428437210468727705843658838818294122322361854626126998982308575951642877368713205257811182610587518560999363451970451206228822503835274164138182839797045937648542695664747315128445159752806479382471053069251967597731957382490732993292851084576715791827518014680334432032806595446045181316196683812191476147628438598889430476053244737784924644432798619044559608891937593874549723962109097444154557149568788327370389498303750971599166858282717320933414858207107353940897231826819261760754664160535950931025850013442940667390600811828826421138572423399716531506060923918898873147033943170570616857363741158311853446091942227460114706339833796009346021557699710788707509501567336947379669920212590664006238232672669568875658784420961529660790021196871371811054373050671662409144749300603919063971976864936025305249267159008031210508365656413387060154087176479802084244090000092045630250005960121971604775744495327381531612621138246268268922629546332517507488413497251992467085784456226300213998224646325518595854306705068488522124122589924339835009101508400135482140570726052309949492581020372097867931030545388221826722622789029490126709478587269501228338174218968353430796915678726831539071898976099399986560074079928531858069946953713944171816467203596778124160117376904278303452015533090577495019319852476228112118901890492837578198396881715448852578165544402274814703579625494792955380450741382193072667625121498526347007834826833865081566305800860826132099430046923072325574325525622670832321606266642588052210362443044182797642174281164034949905654782474341675740968200681550416520594498291194995856895465782670583113078089701595604031562974601284538908095915603149411058520604525690799974124842463769053598763898805113153081220093214992952737627064589250513974707095445235809900254782135988831089756335343021353976961630373381487303758351405444053003248347127904446866277140572814701146630223760793044871518538028864597593716361772738681878238251900378587402556300538736347955703731126069562349152014363357287403115760838417893038920617608560736825820949900999472848415301982595908320478845227881543496020804040467768139501550196516094989488298114733045251553778493266931294876583336879113332465814702147901450667601815985589389719657578927984450528531828058697377014859966751064693592423826805389074761068841672136151230635177484339224046567959440805207569987768480054121843659198043040661632772594319097834288691751758872169538313707888528377052850434475389202563086859783494592103476629997920303566272107843556754696667788262153346836184658748307561889170232555034705721736808026489264023612883659357616136072251798048578342031070084733534048991466871074749570250522965191143119075235155885546740034230804992710397041028963705449848197728394703476470011047060046073770241536534041149644054781132334287095013357366636827185041429592590772253178320695978581749718339205621154885417316968031226484854839418851552349863367964352956064685121807233678041312716066130295346361235997437235993402275649002213377811271965214911260664339546212941049549171668454980820769741152926627114171104790226159127406996274491411392543278271897319340586429325185169930566918721588617744445055946335830563907942454843655367040406149632110496042377529883705761714868742090546493777459629067902845550169304103368843757902025370846336370827365234911347324085360540612695113583890420854382972170856081880389707009593414340494386938791705802013517763990251367140978236020978469349473041379490618771086574719848120993929194856325284185704475732669390053387439724765329117155788641388303943590043643844834323946727900207142765275577219389362653408732005737237013937238686340936672291344914865410356296705476752928346615433427629702030973122425369786403611719187696995662594353823585413566972161324806042941067524755444895887772764797084481104850432026097233883121421172549696195219876048027016179163512730487243669106180113827948241146325701903658345121570555784671516339887100876147263787769481672160060152591380496357139290820374524150162430295082536832467959973555483199350745703274471363405593385247649965194376361245355699785576209443763056033812582073328514014947058354690787772489343057842050738097558561251662328671030239413217327198300617421864986526893822045156306095971437983479224562811921047198342016067409132688279410622929178669258790962619000580282319699087061026110325016057634583499388083784013743623031955640374761493716741285509754379442952771638928931968263608418991358823958664925914343978973893898885424086436532788305292457171962632353714666944719307464176217331504071770818180115140592817746643646728037622512928244764484627677712466347017551543953608053069708756348504657276483176527794161407300961915870790057626527532045962174686282613885021453659528382869187055899350437332318596185686303693826739010687910845371124570599338943529638913205096415643779495269662232361934228860285515869716591061917418415906127893169990644218551677425786039182879081138211790736505238048800653302392125095501040650021314351116013119646955190110724383395234342231008712701914270190324522601363968179236299391875195521313042756899015175967865047660094986690053523235760165070066401399801999492800060839647379778494729998648812526205906781646617072787380973000996629136329841230567884568195162566558848740330943669085473895059428284010701718445590120238749992703818845196941859243941069246728948414439379252596658085010060770670230278977062602749603676720188747455428164547373489537578663510628840738338687128804061951762604810333268667808388542762871738942330056560617481029475804358611918059139300701429174153688582339193526253959120820903681927102802061943694122820290373084915889281720609908226393597736030502589782118256751764531403011275360994690421897865114969566827383758774503535615358559677651341286203873166853642534010241625594760851544825231717149401381696691260193031090391070942711311374025591939566239285998780833857575638371416578863493819901212190827213074515052751467417371760658832876330299447800942062261387425868450676653115991083289630406345778905544197050024937880307259977703471650984183931903399904738601733980235149137242868485671408875657321509033462910739531574943267745387612739535222619875873039280409839108840138844770370398731997205879179829522127605732728728837246022522880632945080104485786342904149569216188688501571521434613903547572205062180992240230513152151232111348064661538955354347922710787360518966850688692168133258933817756223524031194637519494631587314403363729538253078166567524147792260037938463596801953653580371873601663169565183438759142726011731063265575179851629726050984871205214061190727652548274762674451028990911127952955464643611314620228303895258742628660572654576997368743876025131157532245571976045570412726727432140049353076946946013218968008900226275910228190212362647362896386722125902782672291693003733987215503590669198132292228116278542232895500371341710410517080267860763344589270524880458541800270319929896870270474195852295716194122749042672261490522043941070660178751398923039359369857017680125633120255157434884415548379176083113269761834891913881665232729282725653902873461527126554299951693045391163866888114137570200496984796120002092555845652605279445746011620863987929194845112234973701792507405599733634719478943941021775367233506928149526788523779685149139425079882603386039198170149725705938588155114088886311762315378420824964852121900806546058355557354218316377437805043391804831107100735445644747943288840393582335072360457024797652204873234352680084761517799965866977985674299418791520609757137494564713728939455227043236500449565606697220291293772383848400383293582846650644329796312564718687737562836563166180745527910985473979987394378452784193283915235764504211730340533796090392479764651696650266337346839647939991648841754493339325332346336210972062897780272968004443552837064751131384754412698787113309226573581280006151845036908212678056276649587166761908315100252964666494122100069762078254018713185942004910362363194495629737560189739382931825498211617406197681160785863908783271891646807018900183054287848035623006092356456603135735930796716338316099528406219731277745572283847276441180072844429610356071350412444369819105644571701682698671608922019951929934760799809427569501830103975537382921774375832669810676834150935450508355153176978379555704532757781675028748095715333516124319325917111718370441885234744402790303857720181853923195708837857996441183214761418341774569958423667432945942946086558029197723440893692019296872145611934781256924172358512559580581060844287374609361482867198957053305447695690764812467707168626588047556864486755078735282428754136494257924298666487562898883071705692006800812634373902497325078676911959213078515862623153747364228191948650177638451621536994030614572477624633912408195712281834470611041577673840461040815744136104765215460113099048097747010627236362032377150503886397558101917056012977058802730990813720718540931966941039475992464926388330344492296428266147142393387581486591298433565099279194151019094222527109426906547120278998274203233493503910069320761782547540492883809733585801330407522286115836190141544023998260154549167314800390042126068516302334041310009103394187517430067039295914447925674682438899991754809890725568302767880981964444299834005616851192728963771731153031757008941925239716098601819306537919000626558210045207840485767242237523059716690547013092475816230693566230301900370527549958862609797724763060160513625286303204109496142701072609616733767049466028164788132575088360671683780651956138016533734322167362296010634741430193751286717275218442760087895098327681686675837979066482090731974407300704111448085627836885563499117138309789823980400784748466477976091174769051771423430626332585920058908440938851606461931511922473693571243602049707728825687159079811966897335429787788084137496989364680063377293113452475199935415887168328859858595640055078193414866641668015721831831692968001725166538805761998423575232633727164510833729508713231149792183312186753099553389043720816071223872997963493452801592285041292477349521682578874050242308005312437729584531023820951888467071276013061435891793341274014012692279535275084662079856111799854268093366508908336219834037496308928550634192218798079986378986348359950358555156384114086947958839214369656078179248562729474484183592930966873688367530033364910919338044702480526921425983789910854671075981453250553921008740153727739646373199474752633815159564763793796010705204072138249615618473869868103720560732400772376019894320670400669125094147985428105803506900704068562488313077497058584698231772582294709817552194165695884376663092672393756635632954850860905034140348110496373391980788326715262255156468796057233146709126121883296070027886577572066767852887502418796477755349265295514887158456491237444693939014986725138782661403078082960667876853953028983462062189452186915881511274583203016153691537220692548442651802437856469697903844664453409825576236779282034738774342726707715669885708554148017876575517112783149365040610778134984307191634406843103869394867393668469599135837892589932337098623928020538926531796413832785469725731926819308113820943317148293192311724999059764121751076467991297116641722623717990166566784228074176519099909110053479235647806944930942913217974211799874819243708529658540363152192532966571056939983409239770700848303798041197319173545259914229428867836070752236534376967808293131093378770962557536538162657098799144781940848858825465704817435884186375634126914199534531840370019721665816159499453103851197613404489299713421548075259554957430716019892780653369869325635935312466374424404057648076343521183578870321573718355435171312992007912910035520236477351657220493071827478665443779978287808393179693908735473620927400457329845731322267510891586720848067576989559572701837893564941525586737988743746001192614712341474412051107739786649498212744670040749165303199212953128758101228992796911839962505200749246981850271409318193288086228541148160270834508104451699178527399320429143895783830360548354482819639706513031408817245643844709855383436087184600439054961461326388932848541360031466317223448266312246902409709068120124427442396250888882861227087261704478180601044331019885019127625286862897349289963968953719901764173464926025521057826004577443556290904392446539498537701454621543138770598466179262726624257056121721723646260535662946863752481024199188804836917022481799560851266637228199873004408238362003329556291251764163827111178074697754507891121751866878087679676127971995690534751749151455383603853642846171207917268441304380057033675951701705407557092725530405332150362376300440577380868121618855360132759312460934670503154102548751799293376207467784605311675998395129504703212065948784855119179600100697375273895984078170042309959058406806469681670295386232847974747537300912715169914093930161626550236033505086447643569541795806183800815262334219608642601060384670769149326606933446548581700731884700962688611573856511200303093924968048222501023948929076824772428378455382144012910744296196199609193734500418626158384237689919745556200935394911176208110727730097334558006549850949482428904333840565252688270369959965024281046233739033782011692465196348611064887183705840102664769717494473991433621186927590111579421051090993967518762453491314875767431895830798684624808468386361621860439951699487680530134626098032310170446474618831489209401566501409503774815428345734452755348059442606984699328422316484558050246519672972128544057107096179214598441886517845214835073935389725880098381998077447796564883356859037752449182469145087108951085191426416942551903932911313651531632955957128026637237433745277532074025192087459605590714165464055483918351239492034268239554308678654177402558215410102391287134028223140571860815258718924639554820573300916099451059047194443577584975036816869017896898727386552041858426408619260534897207731612558344431440183663008448362317307578649109500020826848496532099678503152459098907505680870529741659377328858962570129997374441024274559885341111745899003223412329468298850626573556156650114830296330582041599442297884331717945314051355393876519428085293121495182994093231109652447313083769873561061979411255171078918058911918855389345271936303247381699432422399831535512314810094378677919120759165577432320297646999706691739014348217656305372979610284827817570416724564166554412461069271067352304786396816248566639351755029637519682947155298898507660645742577825387076926250922100054199673655871275040065468869276500722091979719550302031211343271307047274015409974407053245570127038944413011097463194687947782566979727314970456241555972730960057459450192113709132090290058631986726701676724337343728720675000379056239753538799821793715223047994211183474367561636983348070878317802502173925840871859206930149685494335870810499216535399673215262710871130300731758294688932767577844442983660485992222219734144700502372792180744821394068338841655869308905641215285213563162325446618983364923127695602901022513747003421143915267017077503367021936746992702594327750578421935952046329415373195259730448333819947570882199867769598230853601525552743174119644307360166728629578089014680182885046961163291749206317767233700593551993699356797511925593255657856403142400177171937663258145020875568693562770618598823707638754352019003307446577003075467629703852350086647227106481718671790224177577133493910222964032573472361169262752595275590600561626749315522189809348171400141918564243330936387654398029365377477426871251266651677165809736569526686851751908766330814907592463935023391970249084862780901127997964514764273831094507657521148455590195239843724839028170149600891362052831400764246403174985331331999269594348634743352574425327185119594537437831321964514906080747074909086431099697263026815130129558348301544268204247779018747158001881653452743258969803367141813372001303697542398370053332429662356703067321777719025494402224203621681605452156671552001107579282391934505695125381872207617661191220036999628860547656977237858250129671627885210729609006277591833453078094304774690469747719586309474105770822170553994333761988237921733602428537185981376123955918556962001756344027337474438127768363200377678124780389190434702734758574502722563977488703679263913791943889757545494008082146925562704976990672535660915643706780888450092753249238678786179409976451371747642451365681758594448378173345583926987184069126531020203619257579667122782519533696079977121248384414251218478199422404244485111822572254594229314572960464574795605177038326582941063855414995288305009660343672346286591391211223401103477417464568383654120641858345384808478608501877962109971159395800633396510317330094306097190580911006317353042099274397603078272385617511214675605660946683345419389426043147744394245606692320567399184778568656403697150315012762053286986104393083702658797538869140310531530805560721044738202660916869693734724788481349517645106038078384947002352632661970662435655676305867071691808711442840036053498823029711979530442604629820419334719162010931942961150807270212378114867533968851248068182804794892009303572974822543543922253951122216754875930099793893574185101617210088107640644660196927084688473212839572818897985051003886857308954935205990805514054617942634407298467417807789062261922558346556967972614295614808488243023685349881567512222623809174801741199244046822581762855257442575208298292781885543038874500300352587876665076616070276980806908607196710636501239484061192704252546226498158618740124686799669909295473270863957036526860731592241268357106401392875556055123246486570870723752566873189866722671744467383767078930237809455564343850928278744635101543012338862211458003930591928208372409488825684099911180562321696026315684208663747369780720972711917974605321113442377530499751127832719002843469681499629012956578242298458827283123135218735688659755724593465203112526682541549112235461000812733659368152143127960920286473029859618662878963686709627379564008686735619037266665342638486521410662252743249942060755327158094233448317256887484822253305160619933673894296351156477348720791248398835546365264920149078079979732726598375453655232425177429508827902542724299182979652751681168241052874644357397210147190070958589629222463100994913246170459149927086654526012962097223577962439348946972893294189046964889464381251382537664789387797422873079032469383893455091198305212549342912375758072401842521266138488917053953758580124618431096935249808978188173192740491921135754547477298012150670581127642998367583372569222261074997116014859272448861233350184307395130580512709996385477335915500501170704425494209079482592238471344813618788468077988791007707311931349850562578714032256816705213329322494145604908128032230226308256770313089923929692182562872829573707605251191127009260422629963078245019591472782720262478398502061709879726387613944927104444928438714752134825988201931949236217347750370398970322024653885711760268630253644813626175733575143790717131999692192709009653850909055035980472659267760591014935218847010504434120788895177867672108619192998137400145850490040390861332673329100289552146335506604880350109435918431957492906296448605462077335302970013599221036245111153955224610482222437311591312343862014437749600539580813757424135823518077147743027311124601538681153420072423384868556593962899774201835607345488244064447089317742821317979839769260221507636334678938483619504386617571158442177195333410129077615126575694930256596143910106799885825442883742983288349449271278700635920703579210387617587737852080555021173040623154968898645102123058824565509048797016819451326416760745531986575498992615473117078748473874737906887486876195061496740969860191793029907024281779182369945109195175509567916051168406989506548016732219979895021120932208809474280959132434929288524010773203577909984678103795579316257449851147910400789701763990835170940313599218685759360483677326101830390131586600458729951087560096999208965676238929695603370174327397828974326702565837819490327584355799107688505855626463527365185359808717496108011889632888467825904380243038687117598259365656995613782871746094244523517612642090530922105621572329441907968318820587363682369403925849808413374189433713174503552082203268833136391203052184080285753859494274133778364229308182633060399912591105583445455128309046787997758169414479754469797119196450189163639747845548804555976766548963770330459223457335990999175306911628767817102257550694789087822303908637112132941286850643625856747142361219264250966776853458201533418424945184715465099236423011550752648452967320118160863113662912735322315355915937638148915493702003536754302084569224674617396477391982561780351633681117106357201005507608508994910007061863601151409588137988895285572510342048181742783635860312247615120501697779162682808690677502847254940673404623513654243416541437947249725100694989940705603594472374815281911306136570153656125929171472131941987900840162803889865849387643644139229381972771016518792607268960510848031853393737019503398169739417996752590447570702524425357357844365277564611239458997811761200540980204803191698263353096391125327627570605778120264593183930389103504752108971781756703219222996348800334263330935156761173827270260335363257787222850506060693995365547511294620867429020976156704047627458042874758899710735566085543134462922945478749392944518557633039196235615137524466842147028782129817247717506308764244215538538359473524240308568853171165546165980301521185969175539182900187991862439448139527107918258607149870764961987700737054237198979716387390519552678778710250508985565821351387401641516414568032295374153090084174410402222601291446723517541569422503429032992474268129531321522367782831871395951144749691868112425007593900965837264393063904365472383274864244280202700380980765401959405584518168314362600623226262599302423229884000456641361564174250859147190599736974359169034790367717926337754483395612963589781654065505648640817793782097921645638545466748891175451758436841359134654160958960699535105541625036288788930282236576404852103365615385787690241195029787174376979523840386829106076292438265507589835358562546868943769648350521391470811515313088378596278782937605496608246171801314959411432051248479059900433871174871142504263933348965834765936401347582871207556031828126314836519374579860980609278194073072972265401847152306818313654713429376128638909457844200935880006095589689373147745298680395548283849908059306334391557815823436947116143559299205253540421771682123075711442154800503416595225373210821944994436395260488960992033105881106840154247471107972859236998731274257560766821663159626739572699654325209332497820715258136870132595732538511605736872427412997535285581230668730764259272885084832451035292895679957293956837716234642798377911124345684893839642433964909760676266236728414990127197337155926328444406816233144347875978106225245905954520270585953851955209456025913379830486959269776210693196123149636236776642671606013422851805160945640661880228066908463722017288116938770278975392227873435882609827825755276270668170731238586311866988529855420601911911367145524022408405282306939269941070051117022558271342483100765828826542953268476543756493182605028331017836798956142649389570562906982691084050172006348390953684168465468466845712717476254314124612345358814120857897212834614539695435815604182916968347724750592928343946208856273365940392725711845691987919649795370283724621836993344896470972400794279963714179203837906878628526373549608008686669405294013422471856716020190226757545236885713857405720178223222370073485705398063639317613996400334288674901288280850311407786081226340983114828070311606675142827539383272597659105359712063750564317003342606454961570504119716478690541536778207826110862277305459132832945593062666795723174723296828840115341501827146198971125473861165729571037131594375819913115427252517631541688077207375953094464184089567902007575239566997996867135911316870693476207509825541897090791099022755813417055423360741180820951717348023948172418987178300509994825344330172475890304281950675909902535358838961206289849218260226625174541513638747598381102899549921556923539522287477342866734324025307248850386828893832445084683192326924086922232495047449179466690874696182081945153506608779421470670421464560485190890438590514645857203408899418431379492644136424942087381608373511051467553092926939533543437465321611128254632702192566714390205894359461017531659900796005459742960847187471533192972062378586477083493925201061972144230927128457653558235340370561426219932360404666052684851976184743417962859464194867097648538031785712507342024166167710376631572259341645934584327359318668202930509172012366852367368044662191638104499171599900983927735694580253418830967748345479288845425925363442712278148092109374268356388119959100279982816485546248289925993797529219809875473675461073896365570055412178111083398631660378381770077051585454041901048955576262694899425605117294622191903632596134803998965613826879420221467689859444812474702821059020564791788598176795940025387285800776972242365171734409305251690412891847728376987790976526033137021350008099286340225228483733980363646183539660623966178583774124500023768599011877094371847716767641104941866817592358486410865760960668313747017773461106250467414451501238575297658694174436549480072616373586187184594710313508970638410917469996677112380637534138345774710467308550064118842028392956033203780233434976249536997832527680008245330938162811828826156213161566257169335848970145673470176027985048767488994411831247791345791614636289362555358066389153822911042204643857720346793024141099750659538826358369319406978676567183290948836396724577535306391314546552310183298851662619596380465604659694711407482078068685803303124331145257889274558617371321611265102847133520460683640527561148543434853168203557886734465890497129975931538000956361637538610915640499905444198555057174851508184750600017471827821390203068034029406703795016758836387189359735435497102084293021330767214139549600773002684700982569829092711951265074211545094367849169396536687766207956879756756686425511760295553220528529336554664773802319603520436776058371848055577628462733988650161240613348786767914082509343675321629048668045127889726558389131991723144849764811021180878665387038485013238221015723038855880785612911080699286463093329623763097493816471865400020878593703862054324897304077746031010176270274132998084395131691400893770472475216225756875873361118713079955768741944351152277270230970402374571953502346449385040302265494594527664883309291092444525763003414376667159655336825534815237350761341793935434532823608091440301911457196408330459898029721485308679526071376958891622321242878683932943497831992839848174707673830875676957835073568273236872997915849447288003071705117530923379860469864880355554623307416987558037020103520772408092032720849325026677872968328305924921096694682880748934810144929693575502144020453539639363534359356283648477364327720135281211604373613218497285387494277491819068097368122062001686667992565958352216894068677233710822319461600187394124630978182968842063495407690713954065400603650404631467525222773508888384284794735837245928069041165151183376752989243276111361904304502960591644961868195192412949773607516822803677025803391842196753059089491000257077486207329880757020149554459219370534702497413934344702559526988169068709741530553875851277074755803967809857980675883961058671935210658043138793520398100875441461884316339314530129700612779340342207549511393808893566643850273094719163855905618901283310136052315885634428215521109937877640199544874292012382697070492006646213919773734814117994375485445188388628101975940213357793638711328980644222347697389062356797006982658748047443734498176461711586991231042726385105847442722254380183653740703362165917857729502783439434517079418025666580006043591811106123041035268496112327215182759045203684057963169215697681786605690233384031163251926952416254973200437893108805453869809657526182002786903539255539206913728042233244764026579928839521977101007243945947332655258872670210430472538400341602851149853899219625452579625137688231306783241509236103995393887743764302643307328002166979448430286550683649767591694458664770063960668606339536654511174835253237305940628588969721788896922566676131798257675586146878569518740867577140514226031237335308508421115057588812750971401270741293007360180525656209797522958755296081037364829999797387848704813581448223944963646506378319124160070686833566311058017373921922604721406119428824738689624271492037663690151808869769172489360304903532134733623946098689649367917487221033273357004281520168563712362068665298911122065396820032101971362695836551005336452141993340414500712879573407311254230843377648251724165710649535267040541946856704486527176843446003088498706762804808064932941736529331465995831185508292835810403851594229539476882878772809093283205860532223618856598124930270887481050431381578265197183722169777357774602610060352124844408613737336927644979147669941110599147788133787861090585679686883071251496414168915701287940382453089760022569726622597500414320987320938558214676763626134860514461055519862426010588464070210673326333796541337076297222027641400390138512714525229258166155446629638763898439336969785325136003269290673259044474375295223029264925587787022854748927374910084178159433999835139927290145507610716048017129521086858680440308902941560508077897871816130639401655258214070817982195552617809106680123197722322314030345186218298864377733433016332013067858889148170449863548405627996377200735988805876416125987664157528687082768664111416985506124844538939975359598221462921218339405066726990527621201397908421353294114934302775763861118025764640291554021062664364615364334775575312495026702433414344957407432688745112238143416369974246057072994084140418449197235489713806367648606502663775367324895337836532844265002544401758149498172345251075716884680890920340611911794592481519769100129832938997746183705333901473493366430138496106958175806193760340232286970336837457322450253898104903739700106427620431536484020012848448774231218562830190668504085259315355246036822727547284567028712045146194457551856930309167167252580406483602329299541324339587315545135067706978279754796582560322041427723573193587186636698641089628618762011221019456547096921051113124473841520099390578481283492550266416619838641301892797613616444896554269030571267539623362645537873984430505162471943223677986755561203696004616154220341485604874889225452531960593376460760353911836593796944388625128505928579231166595985972906313946700569162893183615045393897090495997113475684536110790413380699467136362921600193810050237013207179067593143824765584946577626467684009235968576039949628791741622321279452155255985291885856210332201569475242788151235622892760915590942438716966198772370869264097627587371237139311975487752323160080722321571032041013471457886153286049869871485842105384674588301189980850359325996296128411310140070058236421024649542591449159194030301043957214539878240990122649945484881109336340162036530033926788497995854504154082138950619683468644074058257673811563303922007886162535460859416780032271050991763373100343449507330991718673301615953184924745638600523822333389369061268101131250885796507805729740384200635050966558569147527208398947394268448345038792012414388529287022827725898457856428646282485741611158558928406223494756380611119669885608072339176030013507333258753377247969444594702141955736630933229320821092087007136052216933828743073604721963325382126968344743445678311150702907885160790064714872991729667767272963088038104480257652998406766511687743691887896780017793965955091922124965711240815316593601535820042295718389193665773323263927430557897560474463769721676777285958157435242841575245228944263829507518119329772446937690088727979402216499972206722367475754738972121109182495677524060456875683080337029666785676561016764563467778695344149648757328800024522704900569439739564013979908834400487802572439771257915600702896401088054204525475421660061360903346241461990272564588837458946671141943303448840758293648651630122334410568723380401257028448631370323870945982860496836345316307492280146231794221255157386505800133401443028444932120612312476202890464420189602015478379394909588177284756332078717050987376521842210221640557640989070141933145907176549833926372259231236391095277052126324831519874157883121697290506306024235609714926589126208431365823830987444269671092773167794055977861038165165722798187864421375656863210950604940134133015740970065346252691226215015718709833735894122640329682856284967773089397675587196406720184839220860111297990991990433025477189191561461884413837027880727454437249769117992528753169444848056910129776224189374663015306303254031522880228020782024961585971230487011793825769932404399236831177272643434337178391731188439961988623896111087182337638830869563628367920519314769529404152437539873893571611273299837805640056016256349431240978218859699183809106889746636763024081789003992801628724933167704721604922298422521995225370578430004228705443655462521628511404546401894628589931095571764816286317874300816262175188986872734716262779599953885459030585092953271984264308812797273274770066755707741664220756380437917508038627093182631397379264638333205039187610796376350260887636328649449893499597757899498699647353763765764586941061360961673985376574040071758841733098195753806406445010303415228736050398390043827245434370476260896719620806127607302018240504180126376787390023744867202511909524001435538222481459807546732949712610059545200659611363420721940064184150887671225025618377188609627327881953771396201249880213610852048761115769609879158439415579865613800157504549063105858184853165005870262901484295683925342339686147000576845901086140989559874398660800165761152679990465473708965971612028659451312532858517048601194769148748573184403237146467086555212414622702196083586995294092315655213875803624465853876647483629787219802065298245010384727646545340631558957552428645723972514173585519759738211294314709815190606391945878336745736412322067996838250817659654411283838704455451844806964100151090980795619122561538843363522086106560145892576948396955589994248145079050594104967652026167045169121335430666623053921362851119007728264096986673493007748134510478791975901725029558329670821095585746093450429513907946731284727522042096949498907959740224711869031470542619426590581091858915268515198127756813375247512342947236163613861171402472756626096527065996418160802860557998858007130841946223099666860092615590347380174645329610231908508789965268862243787089307895313281680752389948486600311138723897975532173162417431800708749130188510075800268340795847704349497459830803196161445382086059047755603222387498967551722399081031182546528576773961960167242843348769995643430684472107753105618060176141572605708962627350731144011356662344833057205738483637070149456455818617429711946963010763808894523055941929725000572521819487094473935587364718861789839120816446708062543632035474248483567254709019114264367004842744768872260193052055547142835082303627917266748578986785828090658252126666288030457074538818777321585634430777224173690697425083117641651913202642359808212797969457489188956334378914106857923824162816780515494877770754623278230741673524214352959963540628508021056985980261391389389405017485077207409740014783451238756295114505380722389516627502489226928754619806580501644547490213068132794846914159179157155457380514290489748646464807017496433104706272982692383195526766774630292481802628296014775916056256674971801645054300506107646738308751169233866587111387541935352724537655130552787672125209788604452262878499436978538232293541722069676124093503989794874908319715507580008823718015939479277202553497719166158413852368285495960205593214431510019577370168939739504314323876908722292960821775391834071371953211252478404611787669768165633150589547322767629921147587877546294639925226036031018320078476667548532971151914392385765230268778934236388144725790201905619965520243199003647578545834845025509387500086355006375443351269125323970872179072771914827291915104924764633681122633982497318927876787047911645027695031074871525922827946378158959756754356908333042619420194578189683996967717733992769252848170832296116185906468604691339558559162793319104080484013512761416759645098498129358941030865772803245405939985713229498740144452608893023062503018850700449090932439763212302841110911392699182939270548987467596582907795244708511206387128190007193492415612501388012680573700619910920990280926873704681314753618862570225003761034107469602130216604409694391720534010950848210282622087328955343448514801246747413418957715441271607012543811483675691599889965727462109360457687942896494826091496677037117218022065042137155206152429478187081059688532681981525743259371659795084320886326196960568001517683431297482388725341071410604993695383927995882000391574054168211595389037315984864658968891419372447667667623368341440926356732621117622725142665530678226592630614642885485173719606326240016649735595527639242487725995639080786396495102544821678189044225161380975939551526895254640920473576394421662255121023465363021250248790822935017705700721151115582512164797393263139292467201581573249045448208960355456034362090635982855618438691633235708377376784501428153893034876515841640568224077508692540774642805710122833254952507562861538220863807561113225825183783228190117218498737831354520147376458722997933773911182087214511013639178057628629143498454194530378229356331971050123104054343621743367637298734262628492126916352648041566900902146638820519043003541931673979241923938785068887178825627868674929288606895243461014405047809059331978758925380863480714050658706679731074625729499834434230774945854529830155517066946180307407350984817443066755411821493466000062260487786293451463739682640831570731619443984757898227878385356409000217654249269730131792606930517195726963737308223345996424111429676652555241495875587103185683016745756072922497486696959659278025118237857084058451496100617656783748114239163282078800519874419897042306570132844012639120195031512629249600519655508580473431165971903080592760807508059605998680782942385274596637480230073290483346142814281561439282408779508536249534320183441498118308424571462464060018152716305795288035126757271998900964847666408369827903431796577815108769547466436180296001004673209460239171194509947679802117815530565471908519392851235696249634660275016606883504675022508825425920383419302018516957719365410191127379912745037358951821085360650650447716864630027909149314355794613860391046680501370929443315079726672706982294697988560810485737618932972185329937268412801742286285551930499617513533562004160706488090788225598542647156490754444411161981197396463096006071548974356602311807161659754908550769557346661533982746974364371515226166072625764240794980594605745129929060632461240289399529395359811908618460817554955856215460975386044254511791550070960891234507931953410167899660850114672261571591930309569554143772235163197208504761321255757993195540262909970655856767657139709700113411013264678001425102316657710946039433620442566325567978364297709784550166693551205907645224770358849018916606568666455544190431288187789278534895656080250393588332854007689294134558038959504833468842130636838878152223281171521018391982970901656055116039259692608180387011762130995986700002407181976667553186103991759576943530964670989224741336335770707354666830024149765145737978198629041499392365802360480787208952653810470640271405334321151065595566596702955832987084874675459460022868264859645311493202701192575689504276100304269317332861073305372074672962545580570802272903231187697049357113204568299038577088432362217411929762197280623996105128671173790416379531740931344602801847668831320390901649519026382220258768920661703062496411308153673641696581914236100399457421375913189306424007441967466329291889902035506087615149324753270322163061168293537785861917777632738044914370340883705990343297054379224333213591047426444432180567937034279452831074932283373263928501310018983994858227106577787625088355426490327758950499010516308938686509637134437335216342273617020415773225565651471239311050734577784927671657433794271065121671524106743027652919001255225563815542767327548271772267526387862084736267514199418333064969390269441923877978421700511723710936829137805034428661999013888673027836037461736271862425297419567812281681247220613444624746638841654269712473246640545051144909061878944736826200213276481789665972055032788258850765615719069995750276145091250990221773724573939160895603428847767753991552039597693538471651451771212644887049810936358326811957686331139837206274010828951212477300567431671480627014790872107375514624323630893187640263896534313283085283476917262266460497997849973084937795901185906034009796916305861173199467838604118679405475173656316268622015887744110217643304341665302036824969749905860052252280065157185729984038935767878528052916827192627667534859156970575577811030918106888127456220028238194645671871264088747043238417381917524233365772882014375301282520223224083858341513262010474029910115802470134839700683909580226763038328656976428935082657971967062511914216263063857995052790328820790320516491582279509496557154089565751912817110067423068077235395362711474276413537404548224091678448035464167480613973258120658244011277382927782427751272831641199410453096178604960310771633514470783981225205256325073694678894805353062232366227470024303091545521915328157493532369232550979018902258245507396738950035875693739642530560072325037359203828362465438014421993786878524595015995845682654431280394224011422229028333517330415876562434053217479741026192520183679188871940757698291801453728093322068055061905090504117350708559544116561191594102181299785770987127537206632802443874684359499389490616962923594727139402134570831859106064928426553528049431217545581357917378785263859024233886346318577147587136863090798846323950057073381945746442598181542837560332188864760772852035104836135236290903228086824391060738588214940037283955139920967677046119721668378638627271645231332107337678813314001459257155993307622631577022382696814559736888749610400406001398854402897031330681014200267119343500701577776595698466476462179436728718352180669989127152030689229723372958047536526091988525270921567203714513015031905131991930121892027871756197214598335159089205021142238862182477575961963947034779746185310425076342873993420390147905335797444688032674701100051502731450262315897554875521411294012628216115115082260547563319372794518308284857041570542661964619551016430282120008667201552172615453793632306790517174662868880492903311796306901971310964763177239044907184413302534879734721028266616349829313115717302454095926557274196609746605934161144070604668588388001581570295672949426147558913112647784812155211214346434167192433564400362904579249854619105643768654768076160932902573121280760057838393662775361657406429370707843492574220460471215468153520215634250115288104212152961677405607704690756362950029860089745051056566802232760530998394740939967811519695222240903688403685334892533086784100197754780380547393614169054367565770793654964761283794489126232206191535249407707724491935415636642114989750274098879422564934942029859539539609229354528484721382510835285179078779832304447963127793637816104872451270113860194419017591836880828322222457593809468483972945377658053861573662251465317724097756394509420521905543951407214586879729737377902769420918233812773600021234543244186451732443459625280648794063945525922884927374170905218012753486883183288415961584977184738184012838588750639169409583677799627230370940724076118421897242858213575798082712469002036250842001340017637360984156373329737262494206124284478112882650657048194932491301578979585908798003926904305412519662847284005191514428236115318727881971299381343808281006959005878402521618589397758877724788545231594497126163282159397893338588068009391987175674073183317244268623467190230349010872057846226752776010003165619819506858885475473561399243184732972724592385551338331357444531457533926327588206433737995724324728126024373084123835503626102633449228026172320593501322500196900461391160784042485612669109191327726680487723057556937914345507216769476389202426296186049010648344095714324441641677970511581044856742518610340554797765976658881946581045039156903954157997064910964494905969197941721405123297233929355982606884036866385129597887614527838854954729880312104330526015638797628373307209919159756871920523173502434343674873297121376846247881371009371019553791566614261967012498154134011372262780782399949409778278237387208707138916385985328304748888132009839296127454509193290700637881349113936080176043241798603218392268670547724116830194820620683374894714670525028669764337629716457011555422965198542097831177864752120797096226232378548190001561759706996757783476962877330667423477743948811860266051783486894232866654384749927204717649683120831068367838016296967371827093438639986487436477577858494838097459702174093017653619166374949134226187245487304613765126202008206702799794733420054353152187016718194097107609600759786111436692681027561692868805369218531920848122249829819986687596866268548598816265982167921947377244628743825883231769406629258574909415781207924414637916349529132449558905215973710867247836565168574590320287732937567933871083314049627419292375345473623246059894424273647576090508757602707114902165136194687281607389728377876595111548496219167178616600301461354191489119190299444988205572269126450040078257210509164288542051202974961947675220097746685026407260272810742537820646547488619882586401394309993268637531658354415174292094677600520003264571423146911740483264387216293640842203508822795051275623382863958305437687018436560884469312621207837537620513773818222561520079590528102557893015537794484677134926636670165592046172589249431989154958570769571798092190942753845825913018300807669493894067882309783846553916658626915225519619087838839689942632200929879637620114026947711606050315702277596075381866145851225278500376143460605935437318462232258855504783445513164943612635688118240681834156994412839635930118203329011130958711480434115633374525668413849873651831436765990539219124729013623406335852883770756692419150265524632813643139959228140210395084574410561535052431309232888645172379131070993674249593469669903220710656427214735518526796245845863418690360865348512338772842759656787105852838383521583861351077147659757065808836732630957777697683577391060180962822243888996952529077215038490549430808628889426104272255162429127641563186357238040729479702769137738986481939712926268527341120463779595418796187758986147597349242636602078577383486665159058491079751354194023452946525864166056007712748069051581969524102370648153696513728915902883278870615382344106857343401472051124922189542878451835371410191022469707604983518591886340928941317486157610750403033196619843869611598848480526066911668276861584432646558147610541741227757109258193424572884465592381994983440493365507474635682342905377705351677117634039192603826629556374372923123467830379172137871048640638163208749419461048333082588347835790873289674462149787132891268012903442859413304108415125699198794793972081796199872895667117160647944721945158377808807283279349998273225712370926015677209740594683955674016371007733441879171845101662594938799693066798689124193869374490565214396465030177280229030124555626533636914048306291571386297291650604576348889959661963502406122302573285066070323612576181515872839267025915518895308760568254571573438701196339089120111500338806979154387766001016269451820145744684404268902954876129662116737668678526827935571590168430865757197226672803116241454685116159999265771214588760363920263449888484489117372536286969499114258553877574658418771009185402104507805426232366661336804728244030045520902001575717960628403052163647499532661629860247817308872507786115481358537329412009417952441703467125986181327736978217514084367278422821412260102316451559051106291875873539452188468211644717177260235137792278103898287338636001405540720568482062146595465484981712737254792121074154594992117693404184796773009294059574704545100580134612326480613536483720540544738218915568322293848104253671852263235151200144637983375455445472428223655645298148139899914747557293731245672267031178154121431739880120089886733561947105936187275991745688284570046835118669774416410315392997481227659733232552026361791148595691334586275800666449005998502599090369544214473984956761207985262934456891959217175602155122958587367191261639296142753888069865357016542975179974178784289417323420036318307312013624881866848860396032074641644189428261705679289321331994599655183692511629075867120322149054711355800636362970666239327157330279798513518433075474730988984634259105992855552486224779849539132375152131176559306940066311697448115382308517369839667789621677042053987866072586678571378910913428643360792370308690145839504050455346408700210372788821043647426512335586790518832773510037617883822486697918399183145494580505923286452915667767293105932435216950586106763597619956417602275970508111800274111078201466709878421789685821607038512375553615974204681025371261251520626381828153446179124225747153671575737842927643643306735393378932325592894688902625080104197898770362028945932521202814207487453353244109826628460150831607709704704534219975449483465771053754694908599404457052286895707065598628977959729067118298022369307530871742762707459098808606075411763910637552276803066496834366232699126801295193472309641836924562577024155404475734738520332502269264968917365752848533277459105732607858621711040225642729972832720327277815299440324587587731374363856414513082888081281031084511309829643595898386745414317689719918202173142794087254746224604234802174448584012926585730789627593294318143492972208836970380380819768330246247133987851438193006844581169337912298221707755110276275638407603053755103438674558273820907389724757857615663720359978212472259219685414066032936190405002732162466670489899399923457499388529894269457449611806602483636217865590505658834698281371683422459602212495088226282498227963751082180906048026000955933665689603455261177290654904146761446530455895375750019867383332561973872631300643583741201945635224276266335122479645731869826192799683234177826617048424282167420045307530432295468418425855918018618741560087539067488089934185658492904171779780289102392571260830572115606992710798524467273319751996456480357417766141308540783516912806615059443271727121437609571364189886482478652076677576051226071264283976008183213263296329750969347251715953564014038706632841398101572907833003999690440410544155712238034810492990557119156933801744588327524873744785760093837155178020956042864722396288928472657109571900810037774764209775017814079747248831311077833190976748709986236165976158527898317298727139496164990699770495961874379953339974978420744554093066317654839093721299340204189097546438965286530480862785329160189593345122587119997260377532974255855060796695124887327727471424770827096131422530641311448002223529882323577461566203255025716283219647455727000025069741922461380499767696386675186473314871967749161233923100875730529310116397728948569748687764277112385295345485317059284972474872749534771199540893414837700638215819570526743987897838817361797738980735080124361621778934176938311886706639454585616616948727148315119934162174461339271435857518073243832588659749047107273022161031274559090164596771322380684022946634792908444564184909808593124081328480365797219886856648182658403867638596898479661135826746492330963034376475721161219702060408135153748946206485417645926975002868349185188728110968443469593392818317304731213084797756156226197338614872172816240812002964806114474754566914522183839650789385848989345073309365825160923361947751750496920420836106922059543408775876973323398008298820333762009360931483589432855423558451944444678179738117658411098725443890845963202908538841838553269244051918912204047432129762874647854454303709370380356086152767731004276278865229274243671954967604534567328792724693778555143198318424814384983070238329223392169177887332280357146593610517398610463033794687416841705412113764895481156452403213694163364702067470747773588716503613343497731512868860656168824047850058497360537100972098702123905707264036871235330412659436608839567554678969227730560547729355186095919962915417170928509191847247931149656768127164837037254041522160426753699890246003567771047097239662343410152697291523710196916451212566173726722442648843320233752768672555203394836893929784941328236690202609089276290250438347078567618641050119324816865143265627202718610465945701068471238536799707038847372095719854841174600217977795414534691311497424042249379401344372846528127805075845921996099775360725046374367184738643927564415459953688540572309603740577507245577936627000083047863018168667241522547451426754973110082919425554911990947634084716101528499481363744407466327279931877175774846829059055445454787529916140021434874737210900339263545966775406401074958933370687702708805386035725129743389560344298388689547070927510610900390976885565629914961613541036465448892395339326971104761825913790052723848920055997812200600113073292200158139385741430678935925408222562185229596978649381352572654793681614252154450855436606882093879418782404118865176933407647516589770685061045025063877402635572354044718696527014459217579994645979284145299335374401375923997706333817196618268169679456538751871703929260680064948334611369257162046968631774450473809584569988556941279195011245947233368355616381846374413667186466868782084126577038502304622482789948010242482002499324155823372906393841829162787316624299437252183096961582126381520993748043583999830622302877189475341825028329230616860622550318722743977717163648372774252639699004541060237288228583872121814531657054620057466636303835538655667409586463761964232322521234661969992158811316637291573843200147210573646847803504788438491778220173875691206084817393501996239425841205966418001003231158903268333159353790893027508435704553178837677447306990523655986426270027687091370489264649995002499443957769689011163327006171975244645955373909805897143052423601096006593177504031383070622729046130992550507331165722910005918125429532656876116337009506726630434539269380194730370427489941211441386387206188648768324077847183813095180631581213323329777344056906125971525968264372534851432672239210526736931938547635786241745399295629508401027877999499271587936296782899281561924407954342115440772839633814540761916386893597816884998788587063152632830343236946373333674410985828720080520156350424473182668273621634956755293466939068345161442631711505911452729104155584167402149939062195180930244146957587071531544079315001360751605839004213052252778018393428781858019224713624427472331309800749484933179732383019969779621668088064279865653347710633880621658090261191337203350403119803087362878568874253934513894222885483517310023079851479797293168873136063493455840357203175700631462240579826508172047331955752228172358547736899604701927365877827600173980245518620755508184552813681157847860674025538266752238510243797254044376609429376198090626435576223420453787380829024397639768858811991173839669611574960279005275893817727684080415935536235767129840842095858663335321131192819271205206217233734217536007524187280541570985486891153805166102626136920905427151207496716858518235796977991789718777862473604434417749891160746064071624149261861110381685186586004169748784950138321062749744764134864960688265566851851269315284152058338562566232127592014624381916313885410546163922821855881771227730940334429323308781818283666460960515005103789012760540779701017112332106300697192539745189433649412580108789901392144506330148168063080988530273469818062141537054225862157658147309291419181550140508257620007283390793086266052964695336217845501425990194270129527812083796370014677988229657587630847927688381011216897770345140312373652416203800379999762704499072173496202834930414075300171562630730558879930747471107099612664375495199853147763666595253723754017788044531522549030930773620555169380694323662185951610376842489557305788819382292361702271452913181261947748824201308168441830767625437231961548381183478900227480999117027867012192901460257538140385163446565297420957949916844607511617650990624783713661128015657379664510916154114849494834799051331481586328752395748406638582258939949603521213483921344872206330592172837307666736140250741064651435181370122622519387129895381357793119132782987045897208424619303041247393873411123951375322786441694523443631044385280589707416068324236038047157994206084461610704224158816168507841672349951371658425254898278616877739800698324423643968532885618878801055685861125705361094977786880364153691489608398628327688990479840515250646920780905894487736904701896488512892978576890980602078184135689149627210427688153425112800042152140111530768546510495772632690192591799863500683984605334743214122686219817321472336654139229034605490232925879442304493056511982968640095831292133714706535926852355626877741282249724197952791691114199405442961411868212338818964370798034404691213168312837171163922332066124769988247000063094001474254601921859639709314298514874840955471256202600045040866842437403254714002306500249799125926351846419300578189841756129332402760087885594802473532758024614051287701320802778726115768147618884635725402078518927548111061185984581369346741260665425291205187398334877574189536421897946647524265967101077405589633542580891136245724642048444481205305019112545011307765846404527462084503745869470690116873587555053946884729101242050508702082906536693767008880934939786615651394120281993549058816281665793393136474403419881676612316792460542384767390059777872854669915271438619204187639438223747031706690600078870119030712203698715991132966968626652199161254445819627159927330577922808606512686957827057979785602153665352946593868192168935878251594226674147833811909230301346801511812631095516725154653720457473634037747829584602020597461224754351559361853317480139670149078652999090104074101804942778510859222223988338851555870299758933762872113226847880270206221504273676661615594075668460760601609320024843064257984048976107121461845411008832673345194923698800514957198851020509337681822609797770689048174181785258503955993928262115288223955923279094104859882817288281182751683101474131850877639443724167600934593659798451143075143037820131752690957515838807184069375259296212329440491643059599305154118890218560137614004182023045930254265441531223527702294629271843086506876260598466433384250160680046123124301425739219077470114010110245626496453056909762884338630252751647612979993595805485954701963767118508926535928244186799477712005248338638813893566697963566818670404000838253642800620917856350881507804781510882120759552126170585288222194601280273568594115423440393693194692737272114538454048880890866108792326134174311042400087384291404098609899888206404439599794333746226406415928488342902185703974250761651359616611314795480577916365260734589240878873753177578809545681861059613591823768951802786738314463679699522214473214631157297146607723210588060227375472398892049754188640435723292825322231695648190139892285649717250872218216374683561531951725061615345632681843790299790107639738240042296084900749521555069500244323915335605820302061870042090789774303972000155147323767742152994290170910401448588277106679017028971371520076116960089088454597094114750746798905454113667105139870679482778896775336690562477676898938912639578922294373958239712505126607415534548236711645844119154838303345633994117817737311253448634411165470815160493195749273596085803676929061662776537255128888106868507549124774748014846350305091577115669903193471642411585965786799892550109967896451821853329989869408741685939315234775430474607631634811887234025123310101535240793862443449006092837842111615563171508585632284193525105507431315386018918100000601343035449940263204741523184654003978878347918716714706115448515819266476082134454312679022784081712906934959161917099691772343378993680989466391017483567573318529749256901531200998670615227533806358984409232603774581759070549017962288817128649910614928450168305541247821168330176921497557795963931516833851313407274167979135954539781310136654342138916875234248697581083737185259311268008818140871027373513497210308588385268153110500619460321890140299193435266574050565014671213251411324894592873842057603670382798341973237190199112452324942684534179251960184345151542889561709420495897345404874656387053165421628515563747700229304330086217509379801710214669065312012225080245667453324741739400818775759624402067249802427537760195463070786197703729277945027957156258091993247119746716544983245800832618770637551732564563710535050144902672393763080917580129764177839081082900584349748405501586106736362315789251742800142962300586123240219152750008759865774803611112542790297409596903969072904150997304597998930964783896013067925469149158306704785634362657637036735564889532018600795480819898441975675183814795855019394935237586055211095971738457673347067618045902176454218680397595840342611816399291873245819097966203923048205813201807080242237944633262030718659398054189208646689327565031998734758150854354877881777874194087085850445635820986019849846208033151049646178797774736955030292028140838932875247125232057769586197463329280842669748375794034521095176332920703331323607477924447391256199355670534378023482551701972550701076010082840326306638110742786660819445013199633010831004824416355007096050708621940757971412541630937304015298224427575544354844142452154149238362693908217247657467704222979863899109732961350916617652654257016259913400933789821471024153459178212737580466987639868656072780503400492815210878351792726561334368070968450365833984944860345801662613579692393735039939221879610294207754335251709249361501556188464873326623572371463571835837210032902148566095472117878463054392135965774715268141292978557050805307123750274879951635016783490349090550409863135328885693156845901385450680270208876932938448947604242714143766326154494517668017608625308210994420485609427493910481956496042526652956906152808545463731293051989150978978161422682469256214452727851994939628355480536453512657485866453290121523502615054616977977228452079692731791347477414549568875680501156366231015049129862547342561230755277732281337518133547072674676246896576692324227286624036229944782812335483778924879065416386999626158502181039600373172888121521636461407596788226663888578561208115246202954423469619103301293568092337101779952557873527191949648752784434617203841225695309965363205849459776177456650969679103873551891997268125658708958386856005787581260011335686903853247228005764166210984060024410355537087699300261162784422948151011847564152906724715561532035695542336930922513259205323352778152683603821243067863221099984040313137363522914919626934243793170854248589229935007903218806039377554233669936194461938045693626322182471996659052538017079350383263432600493165057270673807174206937421921418108891473785396107732225420126795436459595771309847622729228605095383755808611358309734956111831144351932776988507268662871944247652140058383009159728041573924846014020797287996940351013991383475358487621201906897369194952063874435790938612849135296691877861194933837651727471579923312623259265482511487347228218233669751505541523330379312321657732136754459594981901293131828928579890453608476032376177825666675567051661642695279905165552913413169843190256761751584815179366487364837011295864934556342715588290134553703655636662959292929894002394615903450153547325417442086962314617094685986913387994686174067034344428273894074710623408867592693903833401416752924178474885042277168028168364417866798698044049766293358625559402462823771655186290037373334582577482059133323347221179042675940537878221874914106008052214628392863014195250649742499141692189164039529664599820849094395514534790661470203543556819465654969633185702888185870737142598553200573937528514895049514572529104151846465249017790504426391598401601127281196084478252369652524562699863702843780859076013496171698049978608063615206259703725937707559096430690960436132915968167144630750498848239896408655341941478046919997403298464848690704859202035336334713702567384842078022913497920156852007744863291210402793522386286491319455394059802964156584019959391955835799861605941004376999939407629491262606127234897021527853798551980891060937002376269297841429322754255890518302118262306751547372043278656111651099010830505223192931508636196171802496868622952952980023659583504224928057849119906910970512138481202412241186454503545324612203439542872764619917627675898468930962654749079785783978403600194442528951341282693366671381900600666106300051819502596740033728706215588272123256782507717498444904241520112818812703975769420477871738121829482243639705036974832739094578743861495437613545597493970323335956914644040467483932827723292060500388667212906146785678696478556931882131433316490934463777638058369869582386570522359497757688736645510217032271317605391171093732129777858437064179590756054192554436428096323189153526644442019812939613504677357040210019006853961228697645405958262673099846486530228156330047002586958217586050622849843447720957553195942851453040305308093397872478663413919364731003032918421709196656580743899434442346836612464553897015903690233274111535327788148629106768184189106501540083510882986961700088535961563348169345942035119534391912783628587623420060765640866197649403499091163491028066244564196246627041810705591098040081516629922318016348708164527757497008713094868925170682782716995477225348035649790947399771564934512134435842881063134901135375257864835771177362479820830616488911275569304679413029306376850976888884023092695616334589190329623985509025509101021658516085328676964162695921097428413179966210580478333693920308126539933995788503566431375942040723709893621623453563056353811570051955178782686952907238138788800699517324226936610432288351279940992674118517900498868071472130200019742549374392554545808172921405348285809630645201944640239727092277566003520232154794390999934078571158390415340057687446161448510968933406481508118748646092718070050087679176089454515739251051528250013668644589635935882077385172844125287391209502843531370724370766236512435316744600863470045803603197808219005554469883022524851391350160572924785514985964240862766713975408008209440821510010274866965145081647993077197702737603022636438607503670411272603611418114038884288407119033556609248426961312626631563584695766301724022753147880258060867588702419156747061831745983270242998026217892395051670231639933509414228281687159991267953551478352592968069487063938028955720659886087066885776450449147947306015989019157710167293184498232351364895305008955055439268041882717618557092427165846838107878043528607353174686479113625246656113535330369943143671885277537945871736312141891560258023648315304649825676488537521962523658155174941403061968696494130239333674302379398789978276347009653738947861966253859856109852215869684433956138463154409126720710404657685640854829348347091747396753612492037041998176461702364132056438812241427692236651992730893777831930733889234371940420241579022703275117547046826807375719420983722803198968592203446681774468513597955318125408936834981505264134187247001622194536183784009324131458534504350863621053270607757449465258593228318415471239779145696953734306006728749801509249140866826884899110619367028064427888441474277269576388210145208420316855455973881018156604592079892159163718595501737151183639631703926390258726840400947892136887058669495079162469994855781175743085422144666632725739502267627562203733520648039524909274483090717080402377165003359729137377121696634771473724835448255723454256741683743017480620738342341926101341809695302605027695906597016761420422593580095534758283314525112212872445540764282677368768856298927114400455343470933436221736907348206462758556358723596800353187886454109468265616889909052772555520101585234844609284883650024560197133839090398384861356100528809102313305958444249021941774586896587236631661153438722617975184386308207191572157186340085480630607524441571582836707407710775670028966460119877868891420439602988494404233241165160500376130408239059125726612825416450072231911214937851688085562445017144475952601079788716757488124147803859390119077623125381195911123520925518295656913652679291514399821845293797494437406503944853613138220034618557225790809112774314949524355105650404658532030335414830986546224139541277309846196298180405217681170420369193590275303731232106882920604304245914564496018674492514637097729784105854004094319208283241672883819849608010383510387725603375792098412966623099127730276994906607163050596263027378020109459514405834915187481703318654225565831480415533459302761818599189741800490347115568318434805986886981546442311028338601672788537402619072371257280169178157408220003677925925790039963794098709512914649171339662787888796166563915581417065945818839086420021022453886362600736112775965801438675382255737164367818521764368374104673777259903074698412731938847871855719065287079223338354796303898239080394654345534059744120828387997650053177987224659796151499197051261130467875626301420228746969763645016185094843014791311405658627856610263063948705269224954314087059031229227759587754077438667480795850964030199586222477708395244252721997368319403180564720139987269646012970008172128045311100555098681686195682521107271040871491944736267670796258898935411945498837760329859966686205963711811585979345038821310093741317878374882275114822035157394063712361773825691019106995334209057660177404982957756002524305109413078920670304197042139544081779027288844884787495060352665280183971748447970393846206985927468222319292913319709369217721795833108684578655153354553049683013099587985653821991190096377892170834792107062352894197681817183162792189379287993324519199831102860341803743618135262304383018575405023770255643449100684143692651158997067081258597947507802703186167744645660255946800994038707033081417403627119441154577693427292552113183200782080741315740071847357352968099030397974771165619387871493633275340992653911717802728352438996186898131581440001866881031530902507881141445919000684075639915593090414668488529397843990270089764476771404674270394521438429962034775607186564892649931815257530840716665872802913410285095529648661724250012024786848300884017379690578026318023180105678473478148558521565877044531303565622999228600021398179396499631768463774411079607160993543032262474105117335635202802089353812329844289204865753385492443949587215059564518350869021352420352535894169450156948748594746424069944084228575713205775985619666982147084995935965690764632600881362856710115272216609245569044189368095419126189348269718087288271455546565254814963298723450187660511120171332497220207749636688144505898385484699173507898822205863833417401452016975442877264787699602543178175708452015198333594691493535735850185342079006542338895471994683004911106265916156593485304291682587341952667254268810584536446641848044191825836660087786039008776100760389150856128131663421858731124493963197928791102955178031546479066080472184047263130042648955418491280273032225592254919852196218689044902275413332904105762237468874329676411143280703456142445837802199424607766917339337137965876756325836934160553544921864769405265653007239820831082174464898778726878749040117800278746999044021911436637297031009151807230208982906268968907152548759507234808519264405304241943616795202087254890318876945451692860952007842308231201995112823104129883419890619479043892236096974534010981582547841505081459275966117853968734198047206474596244764493307367940117068689242011696063951922990629097819494059809788873139430181404460048614855036646894877817893986067889989535256249211716483265829465303818310104696493658104823395974399158472951488329826734135547999972229407654513671990079445245719874035643087676004633460546931027947942494017234601264912890097584008717349825161087554371600677610084215570482009505167944614199380295926742692516675496358084752989826960462285983040118002320752477155063147100881009200115946459164753667623451386259991187122119883425306864362871015464414338482895740964527036418373058642868680419071397742695025559444806333495357551763069881228608253909095306964672803785413647682321622955006126017098026251350783853938451000926642641125281842775326681714472060188098970241262105941268547162337251075338995115407717447654775683722971260176455647520732314359992761882980549629804408226936185833444590348412890290303293741812064893464928678910857479392733746209251061131220035789464834161850907003102639834954716617470991656071810025667407962343588935574882725876637619813626442589629737534019519456446458917145623036540038762854089528657489376545544137363722662547836251723155891823966743408944263934967210106647893995646722207205696251279562283864093079280095594903751651151555906666150323571696071163666665194253789521411460587619926905666336147264086314143699586905156829974359396697568184629009229378030450691299725632442669172539499194429781811198990712846956561796720888018613920192353501906095523941966395612686182991349727449893317706116649788582971939448585830708799877050675076898603375846874040927215795363899239049584622662365950158738807235427529220992859823637821569862863198306849241408554147011013246309685666903225750840733892944769521416523442712070768444450388044249335314142815008803316797104650077845698297963045969338766858237602962702828590875272317892590924452510101771942516909224586965237994654736277297206149102645242183707036036812097167414834162697953267288402440927290770846278849120056709894433194690195477208301760102289315537610770903875393685478771344577320266762127654805431127750082103644470621169748678114062047034135521039438997636669135615799401690715212566961567022224129206514317152063123459995259350485678220360558416647200663267876378675095924517160453959373055586546803174617198446512306619046046736601110838335305968200797389359207201608833712682075580103892441715844632501990113567514649200364824687440938229375844661602753261607114358372062225290254549267158533577251100381858430661625139625929811451158543223057251303920633910001789561841993652651350959711821090170503128043052490747819219774617363461876405706899126054276360971501383748937544394245267605202702663032488639769776419577173477713965632219847579511230755306440467142527500038783564250421365867309101800687999284112206462805127951638424305081006453013793378077305177838745894854805231211323066186236126053911571924942237454399602894735584706831754910624459804851482814930440004535453856859238562747406649485578294406844094559781009746718306594920352728018709590946422378238920317893063714607042952591154378505939823047611427925755769702364741467876165286581600455138604429309928230227567709283503088750611115967484526868616692838108750141928507727144780063658547021945358583975815215884166626210205913032072064535936736559655387923810603398981270104230263642546776300711777340161193385168011971896640631105181164945776976318882080769704343267319789034387703088882785956360032595227730847122821412934155263558711737939586136925755451036858089850279469886407434446505129185097881636694790773517732351031852651413695925841340363149187524718887080041490089986112801474370029866298908182763454665014994935825719098911197614503105874523541760797628665962774915592934068185735224358687259477986782958548116649579288348588070488648771677276800188418801334337186129550545120603805815358216660589664445925261234696092643585363396936489369680455574896404174633941699131046166517551065301249452817881569262667755993384304623500845524370150412064799051810149631083387736225799216711210624987865116615952532787161387033538031813142709067277828937953460691824150835248222619562383680920548567657963718850235513352210760496622624396039540159626138188212305626744225400755966944700676251600176649831586328410219091590304507447505256298527478149709724436453675102080674512430638126566702995337181714482167117670074528440352663287887242237005308773284789507681804852860494974862050444957113447324830440371768109174623001488155867609165650932365186197097400570148984577375619010729762624210473326801101570008545346984343574241420783244502002501107219776847971626951015484504575034486226517344129800065205653728587617925433848596636362688058213872232599903139109683362689401377311900442722893865361884929548588717745526820161447983877047274425682817926408382110442116348508382712341002133728394045323759622283161693235121048547992108740806866902275727156377298177826992356951292984543263748459890403101363588502761739690496980537710557373738748426360614724214997107241307260054338825088452899604900072574616148789363137954128197934575575994278437294827787717010031278730748723135781615429723050478247095079773669540418628309571348838761586443395443774042750691877608198177480240423055636898143453008754941447025929583879188265798067157205031421507758750153996904677502572023615385057367551196191813131465345625960883047654744905291756657025386826377237951361271513128626052776978388246763184600691977759353895435694784052283748791112463599456325074206991387550318115504818528217668153204722451807852769574599632986985511488024010941329952694303547644262082207609678989155996672907449706427620350905305385743652408255016162919627701386374843568597401119164075889701679874144573362792867480022215141659593021315651953756789520656149243243618228248054991666948215821120505612373827355736183350934695470146336346401648497657172232876282612590172176262780662422441052467355527586613245173112337187609239675129014172712318746629303285246011813683659296183972318642983323679386191347140806797719753010160270744030427560093484185500585742979177291196995370981741120276105886996640886537160555248132619523894078060354486901926164326301932363551405207315999613583909589462617259776070571820419326104206653957637983164806064679596450207797766211636731302859701232257593399236771118474580191603167164623810341761378666140457135604728118768602541646701915488542545301905777483208436717151423176493412698200124736816029535581541741353794180713111734738135490125134818557915231136338347515846063696445760948472222079466940969865934768175358068656286579103165892735818103010201755933400036016421544931832186400569018851401735671263691960980497109946022840887824888414918531018734075840096439111262374106944657233072721054394499061067563046538640789918432608860511865178073838282887784128838865697281909288348068149431864530469840556781848424501241684071376104646086000917982516264973373624662991811677515173813694390794852548561616516317143997954628307268778622876537942712761016118384157802451629966511406649704501794676936652957288684280474894920936935801517906737825451818480816680131590286624030590139142052576897278966758633209493231350582514654828448619812748488438724050124504579459093410883244735171983816756886246222643485239463125839517894340806553881643550675870545771322255028711571660255548987214833838848472690157155982157029342699328403597704986630924691257501082919461025563129672483440583576658728421948574683443093233094243273815843991171314895246181972662969282912893204536383461877641292500096781892077727301434180101471251935661561920295633053505870607788533496271367089562109267522735605249443381464773993113065190880269883654596673026083908149396230888230231402627097832072434884191040316986087331442964986743329727557557674610924609798078216153509675898204133133953281145173582064009489198646635970673211691490731019931933206282793034379824541058215298924987004699815739837661809587015064478535823842435135640356164797854365897424120386181168956975727031635436565814754898917344140947965451712442890185915660400831435199019482521846188657978604233067357806968648381194010737014302425881768655280861217588114251638983079496172438076168406491615444955730381063017483671801394854391602734027527293063637341080199569662309724459584351875579643785426232626307706476144542383234896631330084149295953800965915538177186060780122952044391025744839952582653909350037365306748118746791858044799907122917607290083404650673103277884607538248906854480294475609138929561536216717890246902501701585206716763410912972682533318165633634679886099052282281390146368415128843321521266356290769300175402816939718693711588632846432958132222959908597506824680261605167067188951203943373180151252638943697319058578520306481905110896564068087057387500773240916521007896396241982839828873586945274068164182574458115303379430325711838408331800871775707835533924479135688638245970292631805968011589467978304470838593336393459710530685724296241426488714049487975218428983674520384888090021624083469313378849419093597690367037691500461046142947993368439798956428008339803793203796902469497373806732585412709589018535843634605831954434956943149762455085091494267553086544621289065675285301890530746216338340083090345945457570098282593620290956347510089423259418130524676229066016353057148421728913840226870515562971430166051442324807375537528564065848856571764564921747113814985900567017554379399266957449171714952888378699273872134328749403881591567747838685191101000165162868148161361790229034588367789851424379114053795272126323250429067562764856924044890128458929733923678341883972528665994990818523154709342163969479635206793478057132412490905247479211992525048474817338682136672547118475538929351691405508570760659326909412352575242692416217002387566616967564428306709418944738748378368806208133456143697134261062906507278511398395527681230219812727577226255069273604155365069510806936879553315777235272721151656679405059386783189155784998437168480802922338016324873611772072416623175422344618814242239097339967235523101698589143836008354823653003701243047981439521806687602211055272523891094787155565481856827060139248383256649002301128142942626764121028328267623815697366807099696377086614404144856260435155419263760513854259401010410825653445117574174224952534932239661168598228395505297723177639006761434186318156664484191824029722101686117294757704102689385567126819487499412634436658756583564277308078431590605979959683314520982597915687034781616934682657175565308696208914067633810328329746859495435759032761064664889573562000385976107405495548837319159729587572586942077581142345275593574767300898684882546749908186322608333090424589553629560639014412839974699573545224514187280673044381950812669608829496837167797242450731644467723299104099176620206507252976864952104705344929610181668187490069894729778812149370627757974774102911210148233497573437621289130526573127559055616188377138134377234819142940955158852753692733058778559527074757228597456084979360147943184182103838638420953847144890317747164951719603106572894372111566539890103449013384687778531692135848691313465615577808029681940791858169950660910781273538556068654546472881417323250734660994418031293526496268621249403794943401777359561930120931676669915182676226956627038247740843865555025258710365742413655151845340116957195088091660893940527379522474092582084629024773116759082891766376643481930394226778635262195534685556299440346445516066368942953767776036295549712127618392003023707306829087540484618130793679639380239806576304332576816532661682066707475023537276750472462880166060755037727382099763201937082937945305530047767573056093890998956223511668005822455863207149307882865822104171795798926882671319573727283196540718171532574328995658361829828607453889084863922675190182558894362408699041380850418539506262381797263829688250965033807995928408272135720011920523247908695833380701724077530082645032262724801493754036919113278992735759170170265590155227119428535829058452853978255354549500052653363146556948538983234861267695406619303362014463461227288551285775819770978038519175732723499856165947311970561104763920145725755974119945860804643619980465568074600743128032988953894958260113414680241612544287185581636417482756018698304293985334115251771949107250310561876083704042745369600776866467717182652038961524485435477534589390982028430936846560602199484758252410348906477609532496359097642187013433964844591642223228370526114217756256541784733915583656484438479901521069459389727036860225572239937692806674940200576264178885508346850717475230036013146116461182909562015882142032429634208260120940950624125473169861641492979675905035558815131209080954119211604948872024579494102090369784382610509784723380142814394240595402123571475920769459550740421180644676482786764103235716935560209631737422715512977927144432070300252700473992940642072086479423941192933403477850070807004525187236995514932038591544581158321335238140782036506935249166334619021975971942392308403302717825829075199281063494452222600832823703259518202223099066885478294262080193266375977515753760822832283486587471433672214529761589598461521561747935951899887978583875102941747355537798035899229048999357388056349860397617793757489371558366613198664683520032986044083104880026408730924444432474301631329541074128130804491362383875429236882094444693725391236356033341459244025340968240978506696373605311708221489174273292076412844587742155121802647358726441055595595793881046048748821723903797029040864787260883305103068905248021689461995697426577006340383179615747594801479914243056200306564435674917080831280208152199407766682429770647238896476926088463400447731355923123767538769377048400973519605903863096775240635876174757140673713883925176602555816238784844477344829318019389548351505056635406585139288374688707598722685167814772555214465081880028811952884063964202060654584717388985870082024288390311935970747550299341003605646539983921278084576784154344523340037043667716193026524180301192774547175219729536683038425317828589235613001183751476169039770273799169545768640912315456696676998410450472551686635952226454699063998926360074382296188758312608895247116579833626581923359171822972061429250517562737646473661335651016338000059001408180092064703995732291314612867922186093726330633709323042269935930724562399673238931191599857275417175818885579789310833703606045217145137880954301324160623485449606321463678358341740112546662181013592472428035219850763306997404741398211681999858183291361236710968645982224992791721701229969573391491602783097875749503977962080687500767754537850044333187371888357927000575755982070977820287017311452617462973759551630230517053503658420661366887314231330526798107966124227484662665939678373955617362859628210391724999679994172318013143631220069179833952290084446676676606085463663436545002713159365887764498008955900900746774497634312890583518228620933934225206403249172930505162472022371533034868985977617004826075519103513881857600875992059129558397014925497976656115366143734821844816888829228584056698950292052797754707620205528097225594803758000591813565140860486716636050477502198309006861530394663923117120604336161277780902897522549476592356215418161682526061301422292606320486115566036600975895521444280305872682604540584015398938573541247741507972491581621174864256615252053345171187356253706004101715098081926480139608359660702434449707524447293193848733559222287881223942086458811898133146943582220382416303001963108079899123532739290205344333512347540810829551774412054769700098872719295626240037585960855687877910811169877757426542937377248803215428085906059898368888321284716164383780135403621420271778163549304707311359847082891648885713609535335612192844224045068228312293407695840464081823036596445771626174160986579106220431396867330288432851913457533447112193468865467827489688634046216377988217615443947750027173684076496284835954465097680969202508449827853905075331406402663864945930588672113638588338772777903777726127105758157338246880878035828157617819431531330345467174384648211798635992947360143723487689792606122010089636491859714022950416549382690328575139771196720813573292222693857909310687393531570953205601987112024591845756453458286240349340085024659548961275337756511886921551250848109287534417030286459754014340316593009618929163279309816099538571915184429407315938085803847115301876829534560727659960959386005358102965339239921804055946418062635089580140349792843182154317157762387155012044146042830243903767254074088903625992357436563991476175466974596075889354737262049294640163907805359282104065483915955842700426348861875423132465884599539468620171495420160345007067128350820643941075433984730575361391855043639357109395448810134353957051392817183443371572796064886256592546391687089782115598388573155474674689486894784255038334477908132273797145810079684335183351235176611297907790884608689964816799254848545066332261416162499911745439536818818193773420771094377906283264700170703659900966828071457709223306625548541301213145968046097935971576039191152529941471139914049934679969106159594541375945079065222373194066747479850831026015697412340310341780221146527437591301278266131794044180198461003851228009107918005431480426254914864499692547084430345026147338305293139972618440552844066672063439247415119380481513545428223983980449562543903213525243996221748341893310591649154530372680612478952479888110656242296291190907220887564817802960503715973423590053074434050390899456797186349481013978657954607843920198325220485215314155354793643750053422892833459534953605908812750067022577781222084399588453968794992692040315739821377274938012315336384173876043397924203472765128161880641546714278140578009865548729842572530322493926728087435339154323766603660314192123583530531931180781224961632634744222553081222251714026866090403990185799143489884198695904893709823038125357684784370800871848050196487974848445071816834450281656006840652572260341831206899914738266843101449937061794233767218253388120400910743165834604480073055423947154923917507348829556176371011341348871539622674899634963412666830112786535369230330295201622718580418333014686868530274352036292722272954980020054476250746470015655386507158730234281221042177997134566396267932125163324957092872169428779984208953025289208163646421483538923354128536763277336614177407734483916464017548446045188806790966626019358746174938213322911292184937031604946308650942508195789824743780566920680339817894564186343978507737651400625408266102003692452542640176043335544903195097139887890693612700324432929674310482838040343743211388419405863966424644611942361754322945759665789359903027967794406507103113853562674519600727528411017362412969712714186155119514804043031308018616376774912907364789967638995233926871387859370284367130843897704512769086259568276313446712512363350667049878965844000145737767022072378712622342428030023099766304544274615381787246224538791593845592261925177442038919430937616489790113043599212033064062138984574265836475638996237272189930030478141388824487451798601561598627464965425255621916359464547425758765765482960776327903700615625371593720257920624445256557598631850226612038733918607440290977952318061211037715986830980151785907940864678200412528548641504075365178646938564776197787755678624610135139772416469159928943825356071366596191819814971369405779309346156278024511164200063244446633310610086239344769132807103884259975658069221136757900824535776653116543945447859500137618024517810418187527198248234428109749714329951306204391718789051902736068756966967822257232121912627898093676425891437327873898377771345134379901350659462163747466711676087060702438430811319243226040467991494918840190370968995736765008012115968547345581056593471119716526507676523931307557457379456583717139816479661866385354016592488080414524397522664477726375310510168698256039198707591012269175213355971155790383059932090195217212695271707009147007000746008212640253215978081241195067685544625585270876752053265640903582809993118054585682736199301418555513297953103903350865727072595229401424702554658427387290280774094251895114632397649281145372034270514984027342623888613261922683493002293138842691419268559126897457079846844753789070487282283864067980935734180109704587610073837851028938597213753761357826791754457920864550608139411079230887367260691543438467318554428914613567367451061380020756387567504031141866088452728458285630752330718767549658920968400834631669771837484336394615530402571395366808394516117295446232384622171175220301276216574474454803839141380900187897963450771126019495105062136426628031823243395369717207941602679188884376230979151894657026944534062673863199458287925412251034228146441393217485938747059520068213816198762685614256962850143182456418772675077283355552289379642303210954729709497475262500996470643549232553008931251333341538230094793809442321908634863960154721407022891655883851508025788877124491159223648546528472254258129527897512352202992209212468209184291128587562684415231713690820051301613581267412795434471809443776097370341232099243600623901009304719888438390783292154241468565849817187747858926630626233185195344153176033263943608283804458202486785326777343659958337573048744319141505727459797433249241399543382134328045279477056483403464245297180582461397352746180301219296855053615858777840060608126084988115760767183057238310726554914338284907954558755499235776465811663746551210826347150311809808055849194673971867300244057726893092442972792898175455600677971574157484674662106566632360151507275763821047608266898751333162376486799624964678178512145690674754565896556991364638837527555294283797274161435360523768555874428782440580842119087536503589341050141842913450204698999392955959866958676263518997693081387433820670798062510283589382969188085701060923881678814748932380345250178670367446576084121619432290764779607475946516557276732757523940038485109376394057131906089868581426140513403537184573569751296379512676607160691946852868363515181037845310553235322338580627113955742070756416783532836046205402048583245040836820809996737607406224225642552378592060886627199844067392848226777053824599845539229198098950154098657104092619853486901919675420079634906032342626387378023150277947401763784530461736172709692658545484986977574804639867180298532329520619106400965093159885462142116263861994706977576699536482264216037789175093714495006589949972488846230141403621071032256477661993664692757095320941380829366925962504710881846307396228434352268478714973598455108896247742444429449482060458815209041073024665023945446734887453235756110539658280271807428284955525833076638918035836148080010304324236014122967427709621191131491896807835840702109106923887904448310892067959155196192750742846911139876087301978039893928405702065675688239264060411401101173457566968236175304547002683329147935691706428606901638450187651581765990402998023256707236602826252419710169680541128680356428091384921752006927517427218842731147963039064088298896940081046836759530339348568287273376906755606527692659658981700314634075815363287680069694712839209860127286219696306775569025714116296899180532814027752060199053714472828924059817159755174898619271763120494514053710939226916580281300736716390612491638033321654541174070109761894215762695818918998176153942646868930747059590419916208288379111535976711112581355306866203801131720296233656414891036001185302582245193297786592440955944688383584157100736011905267247060802741303073979719089361154387375753090599593019851112730982756996309600791367404243826631014043768229814149208455773728783960132642162503311379845446271444214582666418214503307622296951471232479938755413652416843909745675401161822493017245015318666392853590425472347744653216222539597426419602356611135710428231196983075647084799054821939423814091827802127903093907599167714133243528177943064424541967749489259277618581458331162472709195306767266452767149285737452910511546034056731942555939358016288745597022110847174453417492833445888195503347271725848166208301034584768376512572338880009886211945358939337695740754928986797381977712679545283331483496457224031190721179593198240115691449286381860090667351004982341008232788037345368135346896470953558468382907466171382705856612092953062827172248351500606518158739765654864610003400031316130499466698645393786719950891387900186136706484707828336315451885743240097934469372110479065596659163193427715102689865067617643455782478043778690893596506308838828279367892016571041446059933289839080513609846033691428662507302630148562831059685311289832040083652981044309322457536361268083159942176954922678745834252324274947686138098454271539156447281349642968087580750018367743647947491662774443555526301683982630783888137989745539293232719683694811716787137475265952914668286073796814197091801684009392846436354144607297021746471490910456480751038624304912720142231811894837241059018740464325546817153827679163559936574514227491376064978963094695567374409901341465860949846624955868844529393480290316911154381449073623077837773863358647432771894127645649204604911800357385409709039021066646777775603270242636544071720605243749786048801355078495578019109874258571466412429300175191247929335871571887638596623839710221517290706599327072660237897575950459270372809371110209218625314870678208866617718617011598548773972216423583110310843048743599702501332995314982844919307362494265025953711362945192070538661519976808706829542117006489358665216226777701857269459740388093125653418073873340624103920256852822992905328190430103058994511771342617652571358061069556248917564728225694148764499005145984435132897318443652686476369879543442128620347144403586642406581671026838731589479390258263382914198224620028062477353087476569799370794111927325818629283246607044368486729693696501701345459908093795920646704174538335254587896793932345161065796656195770983699063617622553621921020057007436466964560806443286409771336330018634345288556948972621756213328237704033351229405522752595687416781783331462326039591035478052540582096734872027641744172540624928643318684864827998118132620612055507873567979789620373582733228152873856766685633713891103280855442063397313588127976244856186487807215810860753888561903012955886745258739517543125846979173859340780734892137306122905950623553908633051455253912646993282283064234782911227663707146148062682589484981903831652981320579923642074334848100773328155657686876975663669933395438302118461138069481864391358874634377218974524460511051010818026370083186440675658469102310690544070596071848972859128650481951391954516513252336279828729641708603857841561740348415017429195283994158926298305360226003998706954038437835750624686219234898524035150118922925044055699912354781867973929133814644948939418589107738879236225971808605260564163792647000268704935107605388657467593914774610367013194211418496990448838401900260131520529893430352409976796338666483939473350662046100597978830468156989151931363437153922862042426149260759555192857400842217255536319955658682565323705735452556093864334166047475171647662267609352519523323425620340194726522246066774572285341870064772712513975474441598151396044862673545061346817167781964565279828242310902617036140064811272425946526096137730211243217236389213542554427896787986403753999948815533085621996132534398134076004925354510577393244661883999116462105465558310666668506797630089734196997406931053276721029550034417778191607578677664350096300454489237729949817238450988228814313856237864475754142575176707309190077189366382188273000610838800727356818786512281514725189203620432318606556579148143062717785477701240389416801762835885345726440133296817478163213773377896328809980905315413843080213835119084901550465968180790092947712016645816785136877797927706909847816308224512201587530162045693343893913534036331711700144993634465691289422952049232657988048286985274410321362585990948423161844863541210358914936898006493355160200827666199088987089317525383233963330137812543513606782166094768814816199550678395656887479027187626905792475993932011329818893510492114775588811305907792089904567518503933561474380670427410336649371424255062284146573805960403692346360050188164656402383523959100993734455776847360041639626051702654348537070920350342247668840242078172899863127897131129810722378255894150951990186649414504046162475373867746148730349828499930561345443626307034647723319999745104850979329720789630549058334668048116888691721325195987891308625357577277515293442549370626122883551634578386652297833878591066296186509016987754850470762323712557654764156333449720864310961707504311985464919616186900737835601704585289108973648748318003681448090951445046139025974898972861394557814043059990959653828432835200074400291519526692738675330778108395480458661272182363325833584825458121345976360139132835213964156783055291717449622176579454160547340669848094646584337713075276391937623732298088000763856446903647973853002917816591978852610066631171156874505930796244596327138219569396509583529281727785626054725351933680751962634283312438222623094240647303631746410600511671257242858624389724736511893087221637551574789758123806142005832099327035297999334508745460716682592453578438694540900769168444338900364570609984016753057016206303311772622937651821782271107058230593690621081811084599713271826831818518116828585579838214081405192441535637084990520874779961569252762404097636036793633071137994831857734317917874465451408448126523801896684012800102032076763109635584350451237009476574458735843400630980199523239740202186029923183599583300244907963955408190830139930573769745590909271955040021945963350339812306635846084714932452929654978732074281683043630398374319802137911454257108109058821990794949560396166574103260768124743616169520671095511172623754435024820604186929371606221000752801731047359215808059415377843338265057884340908255010838458361787255080606244893742287039701372691233104812538129132917395445732129929750070389220852577818143141190170633640405127480120519661437253369195767358556313269916006618807590281652039036823042712858918808484168803603916642360307013435910756774252942117457358771687337913777535249705616593253206659909569022810953275213266945839869407266369985570791110616632969887099306337879942340499108943916064878054402622957486488544537237787994169471378196617250872219987134703433695358489940040287244617091115998251021067951636430488503242359476227133065586907494549441658124990050410395114268977236128306393033351751027890693212224377774677323634907152929243717163240481148411330589914811603708440978805922838825721945361648053106703490360523890173635910853871535277825509006204545583266729378825612206859331659090374033387324008647232013905234928612864865882906207049032068575836222042681384073951814060231271296758145411188414174949923369634464022891905070030118825794856824701371026238314728579548207632812760812999236606828680037902433860557272419463276210260986271883340144821495241158831457772802463846007934027779900356058457136306184910447273790001946777626495133984374984543079672675344834348011200059559627866516914516282168631761949286487795188746742020262036165300824380986738865331406978395890305368282080989188363732813882109626839014918564045402341211824279012494913557186658121102365416759490052191713214275960862048836204681005938294765477285566926459610269723236916230632010719523755309249957016344881422663513265695521869427267675563844414923926829973125937602602194668285492274541508297336489059721618935946122250410681956329833269759438624785711085326514233896799604483409863524377523273730027643155902483236861141482799700162502781443992852633437736243959788567495896923727026180847819937286737280299394952270691455838491270661273006770220072107548697569503697685869644518809096173817000986805975944701924854400105603550071413215122610254475530721321323959234726470353990974319339428333523756796369577696211659027301942357548546286110528893599995397247758616761806908407203331002081798015375172842890609414165083685516038471596205810807385187606788229757120955503586109292130880675326907252544918623321751318519535318193065168889225258403499908047190320416226570576984250097604289235705044432280276446457410893514924965475730256514606310182347128788546785537062753524622061447982589733412239996987218884987184507427586093310494940538212116329405966229652801659634469056200969980387262616477784436087876858346042226019418766190469133115769792464470430869338670689235592096779069598799228332826474748661918782650178482228539456396175728078330298376207821217760431059101108635551370372287706851095849154270386575334999603717440215833463948942411585232047824864599168309344194204411933851906524006910424763226224832579383169265378230440496915720902356155830679308554068602114569338823801788899136081765643154263239318497475405695988439881647054496577264046549894854928114497698445184457619751404830844016032301215258606036504142312160610943627082690724653069487898630416817421853869129185282852153814068932837291433797837417356666796084790195077275192824822703262562689878705452203269598096472311711307556208598365892430694370579621534043779791545084338361935567784878923605822684230991450685108146311767507996742196183998970904253634073198644983684750151139677126306170589667544628943231138704322643062400128804284235036292926050759239840055435176403193497623398000878697902485402093843491350149043523143636220294564599689212117723755593695687140956110555299211973947720348377512891409238070145868267057793466726260450669062494088910451823542524199974407367002864887083287297249792983326665346928316471054044626706467272488220858901284115013944772911800348429342142169023150237808013673243423006875780205267128853237031633019190777825990107877592447887798570322462503591559489241659284553924453958124472947733493148499251504410130305749740068283071853402543944660143264839343870285033293485188149004596648837921583043912506679270642820675017720259545818273773216164364920667962161681111157258335326983505326981464238952483317345528712478782421071268158022173962649875371757008181400376080821990905459615087059823747489525813153248278657221821499353012944930311530943431706234324538972089395484805025793975895278764722975031147299957334878536999324508153988996132090506054650713247232785517859570625768438296051969058811463456231401340974919224888081992659840335939437500952688018278016324720693884110567348320497548443755995531025319321882495776504565307727498490622719192645435742178377191028987078978035502954329506031528811826290193052138227101615965913163758601029270597301020300501182843780512576957873344038710743021668654467093635695237641198050755694385854642131055915457866176350427405288286360523706375024669387438791311620807809424100221809710062274304353947294191032491610366777972468524260256388565635784303993861976417189356434337025297714025514878961294640297317436941005540929660407129286326924113926179353948456681883021321234987757960740594358723844975029227900677674090584700663020042579306164180815631398538362111694651508973275408807379220561695447622190443600799373078395675570688833647160088483420658161314748003370178903371555050294925937916430526508390107463796835772477857177641065375577127089841285537559633049122573471242954333476253949185404957376728957039729716833743685012315932887426201287142094975470544961936880062291916755075915675452499991930941061164362676313407879956633382129863644570880066652987210380803182888294893556194824558990098717339171213553739814257317499089131024219398841161983537358909450296365312003293740750598158908554347860524444355061012250485046403342229069960147510930798346121482780053736239845864910507560822129304702418439284037568792713753444532821813930387048812255426759944136161185508376897048421606317610116593642366370768887336869144047757593126205725349330928473104562276435732301615493500078303644009684781208964466914453799962350635946952907035880155406729563457623773906832908314068937352103239891000471920530991205759871425577047099597518132440002680170856509918346045955591161725602540128252906143541373388700556656716441269140545722466014495943875502270456079868194466630128407455573903599514419858883770895569923043638716229171404196491191128499265005509324462834806429676429808452736434062695987934790203602119194685001552357248829973906481972568331223776734150587889786346393285914000864386350809720161212023296351505609782575300597954444222698797912176158414710509297542744877413473219428414371810914578477075189507556852069068490299036755935726593369609454582827017933147554367896370204237618464138824558562876008158908132108184086062168974546351672447661862302407371745320329620278794950761745581161080247351148296810259379395729470467387055291187691633763283197849480135526036312631038744982802613258086686189542563640536261116598375863262035546330144378129258186715268018294590633304239111166237009192263249912649536063224143000397948838677906241566526731115903908128857198039250634793822558521640489341623266220912188376586284797546252156492559852701671296888889971834707525474557442887292033388854112666820844966189287342082141134201188508040676073824117857657237430217890108841528754380710908176673942473122565477827869135541048274626921176880267593277396029119976586174101030585784943863541214653437376328354738130040392817564399167150168730539226338316924058183984866100309133556629748726120218239806362027637311646212469616944347972112799235174865486799147077212313681739789282186141498762783808000716567842497075940126988763214169391641546005488530767575264283680117251530171945579000824148446399264191164997164674985272671773574948747623162808122737479931620737131784790504615132652137818131527259314919498265262169170979203164847539149989932421352383646450188154730761151761579193783678715450086798799080779992004437493320428103108098460527619256481833556751672646960739452354697311360985023504428197088395830323718550707354816175198661268146392763862052950923094229304154587651160049930776526175108610014637995349531331875970360516858372150163091284865640693004523307807733980879728143829992863303312146701130763520746938015545348902261006167320124750741280115354410505373893069979451150061921768374377398850690047161223283578861196163978549040447739468801471375579073661873251579643670344451099461691106096642948036677155955756984631921607992327658438837548757765932559450176935856421498428068370435785071941352288828759438014776368409622158658461469939661457268392126006851859185808555837833302425635831681296378421432454355035265661849452221869992423025442136813442780587243503356296783716822907597429994541381210092950325250326185846689397104233314707873728118941766854508978270040702176685245160148743323389538855480391511544932594220368040231044507127004178431963427578089254532884457491944826117736241233605877895495227152193802148137551768511265445175958226834527577699275887408063198764141700418858096520095273590189616436614516727906617592682876872715160759477243864550576391485212375098238669653817044357133257239806769286901508149041777448322235614430191661972164136244538925860675740709916499855255569382403510600856791208931249522577446637946698785559384609272142383415155928916357537353051845802245914359431396790702688246440819562735234516312052970843966737176137656884793988069082834661048146700225520322572176054199204493044317176696275846162290582745423768205025522622800386346950882431165328473834012838903800630751468046693179197484643033282564229838462753257714632646273624700871230948051266149517449549758534768958008010807218235657151990545436348579880210682683629097109035435987492216882344924013932639709043087359468942487529676249511284428156537643363520953455115432721178718015036277764937077479212405953459927099251256120495491462784207663085489489503584095220079409629642827299003329201681797538979561805908107537311985074832306094987194735299487353061295267679214649457602032591504257797948311820198586708751737236928397332776926345151528349633213263010494551906696283600980866146681110872327174497950272349407143110339134642942694344553476178336578212849826862473575945000319380997643087806073985037097899076492861697885281631144540094294824813682561782176092149032348558615918993755243700270010295713366634067379364405162317569944593766952277883508099251766325445085265787871591254415687123137146977009880719057346954528591162548532750595478041817041756643303777964815043169705705954313031892245213131175445136536323791894898867175898290986973347197581168734238387342739193457032721654658673460699605376077857444058197140534710531775109736438544844573334952210236460429705146588978506384805891055651272553530080699570951271546181885069700676881722695487762076811911833708741879491332135242750296831190081537840673274411562729575581782241456233047819479649468338016506585690900619803973994814836465612652104943188908706466727980023103440619478159809815196536693986867297911857957884081364471533359758055727250179635709400060765910396674291617747079791835891890941334932053808311536758939747878332901023992845109165453158874618736492691478275021728191614905290058783715330745454954196240339816604760049478721027904638745593449935412210775478116312930119079546172860955568397796897378950069329869676940211677448462498781831722738433243829905921103535587968085203765183100258972124553471155591721684213596312783660875185774101746070880426751111745703033404615105086822955404898877200775056996919146516166608065060947684224408354607313246152233738339495889906088663559543694722708024007494429794424919711006213596247148637337308955807842054561242692625110320947796343851571603382843438622008524566120115987725594554417180368522955376217736781427459125050488293388173150234366896958870116654276269670768696472245987589346675693005531097668026385528447119725305142330195291802229296882292906050523113052988120733462229642530171615139928905077773155255557503390574999823178869337579134741672943309659761183408462735316905247381208211366419148905009420306477412253774018875788254664357795312173681928291054350927107097967055422850053144693533123980437825733970732362046006188163047805826232418987538909777833988134025610826193565531185376102931394939287541397767361036450055627922058938060247518506659375894242887238078644887412225473420227422997695124146648680437595837439149734054439093656671156391700026354497284850443851299871910679433540100915086472187917337421245810619775772952738304947592857241430092076470952944366389005817422526691778111985014126528552824653603209492523245042667927863664957101057894042854530835428589676343000372466721834257272777060442935005474513934072538177507965086490522738210258947681800705426704169653342048185685148062855101238697963211682299374635445533623637197810198303595933075385876935478922914836113393493250601406239171668995446652125574056283825132458863096355086876460216425946855173596259642270972347635295481915945130091456861400214105723917643422412265673702575358872441255829209574150660287818166056011673370522057333617235699556537580788646159524822115660809245057080574053125645638157396164255490012699404461831991039344423990129378161785419005019362246259288090224928381334137500259528162797237942265610689327337487827152262758986113472040451997165117381356827373711409873074885388065420505588106619200123183560223199443309192165889131729708379122525866825556067633644395623869297456317012953123456733386879477479208299326204445982815438080848468125092964993164767806111879631247451908376937724183572368644162351709714149631866282952126680538446375864813988232650192348875262820695497229425921287581599898915160865096668450475022207639136557226778932151177348092883871631895647879627253962358532301449618583841305176796853956507313290520001387537990309521598033463143698754045872981423528241211910603850263959286238269431002982044756691656674412913263642706778395182143807370111692789476374061599661739676466000646224639370200900191724479410301055738810952030211232665706749785199644295453925966644527691845050399443801241617489296716221653874124092888836230128235615213536688514377842728516166598644192836853896057472911992015463997889006286994003364582622288773869210829395866768811358143676254282922550069917064690348049597421470432111707390067624099034698621362602421906337931575980566844942867203586335828330995677818092293350061747410762966616649746390907016965538914969566311151492836812999733134598268980994601119852617217897793520358731015897779218477329550961375056144964659956974406792395502510491120503664258394670896314750591058953103778673481247098071395980979293746747615243839579312972751068680537484511488971824289177259435547356945207879489612103913985918720237049209851586434365471133197494930263812264115039116140248827222693982129062358409417820682153910038669498618742270195130831393472764158462434442894293889813656573403612904610524931555814446048800131460823102465780594871056712670632441350808077635665826610203589582812231929275243292078459284297557121327530972931501526421869225794218278574946968936203408504081151548979104079453909342291471660659374130973715813029693585002259512637758002890747804743106271764587292591998670224840447209699108493593856350782722429155190458080638297518476096947726911338787927356263060625379685242247665934934215691507646004336686690752023568240429548714811244769199501909603783477063840840415998112922278764631501579862750144249737915193224512275674777931301665964844091088994741775430916770767004238562665926989324996260934814012668612535180642731047912583982940610166592735475800900038000229411610157681617980239982384722642589649119006933838775653632633718221677744229986167575911973646694499308590864747975517701637044134026861552307980480434239686381776819631170268380106469731147174968795002492841515124218251573469131013878106014014350109515334720205765120903210308879928305396634816062920091976661695482488362232444651498239402853845901176380289464066372567886585808622754050208141015448966018952689758163570742519964091458162786473075597886699517117845724656461496496161614364420188433865942745361166974744173331087480229888268815312999580532915544536053175897325858454845827113871349146104167555623404865676154062684664465336583560346613842286680695123420411825566405052351479492290691962428054201810488278109853897171123753448053811433285978667114956026427366114013012823109610121188198034413557743176847414715636944312796955395546052313291130971162076374676658627085535852371638378551351218127979834852744810753993290207409021659399137493954817178970065268685869630297396443149434656126147077179793077222102512686288201352785036703359081673904550775287461367506299180410705531774592905188358970674981529998140865797553885238703930946936203326131245551050811495462239425108402995893839217022529562286697399741613024141470140045025143558347374670865703024005290392217831552267750299185897287026007514701577863596596703925345918765131691804665042790578069409931256534738393285479905872743756146166571740452830287364192484361129859960171766333649549698376245495413604163605603429574127561581789908126352871932958623091553245153418472674059665856714914112921825816361813169330670126554523103563900317925624326315588946511831117997661584881476414558482128307675937220299295863362401726967770993059477784485992742798578454343405846926248458840008418896718945885709738547310751474719171965264263048174749719201450962327463231632452075850529685912301314597025086541034897890617203378980210648267609743108735726523450944991902371287411514271868680770899681661845202229038915668606341319923375556521144335266490926923378415153531178997251332593539916414822521821623107669323317052453807608102657849249260062954066152473676301539330388362823473468476315189724104539567376043486189083905582783058719351333510992869522136121741588761278321576239833346523902610040043654162074591797935337072492293861855053663507413142196937318581096744674878209974587288355528250382973122176682417242007165472648054155286069347930772471487335929295322080379483417023124419922942693598773589783940855723820413628419880236425799904381791392170323420876665433236910176997554652165880153565144397165635679693151176873784432299542322537827695671775343236033983139267927920866537392056828481778857363867514903117808474635830370954378391558099970317727117607664537851791383197961935828531466556668406508391427656053941334994111754329732982261248049533648162955371475696440563321725341145438478974155857371137981551653220628929357715791636558439156838510964755046091710879787094528769014069156011574952870832064430686097330228519965930037261217887098175404782364651145821099095088878748048038181217004188482618241773892908465554103862513265094381070097671097996105356101851252286952112637302390730403977708969652582123688371113144228049822892044949593236856753792797036993123763281134250104734568104894248537997234109769324777165871558830942055181083182448505562538940947323825251856437313666034900933911250952430568144490910357809497752644503249807259624204209681879569134484197158045202157548020332083448618784879246558312259891080818402729730387537569952628845202265591642724395177412442452161922756206147140855236425658358075598555084805878525931704648449054424891688406128325101216548565642305671238388257612206432999715891229239564219748218081379122539537970489705205251017670079440181258762207098295069911618208457249599059985154055146213214309419406830290943330605780412592111547807221695673042372929603860608760608630810122806793981250092067313635011956938815153481223089348877215655255653155869662959439045761746201000579067589956807119900751874176040481451658243515965745977826650560687196369214892562162635462103469670383803128090560391601951642114032009801205979784454270971788547725106119530134774978805952578085548881658890384930723690207936773075271420280060667378108173144953392453697168595187917496963485332369707347592391707547102804022404400947742441891689012669809325245094707844085822410142357399567810211277623679551026701638239830104635958682667771399510796099845467683428548071143760843930101472039712137242268033994956639303181464545352273726124521033306764546430020584355251888631938655691049738695956442476580747075816585071857859444849835469053788816093054357663057097905368183749689913621547150514814013115337261218214190895324308592622844512758627209602637357901681045233562319232762699318296457021860751852880947787962512744919790331724263967995256568605006705327284916927665602156393919585671017686854576404447018240713658862967455657270785441234220987475777750686466043933712185381010851482165741492438213789736161140811296181226944416681573077061588781504325874099076863160586676748544143780021908926991285947471312536671147246988072667994576707694795186168814418823854428905323838676727233832113188087584530555956669715701329572776327931705245477194440627505101895243755921416384363607163823551498654263446407907973877528741122410086936870270311326681234096449867935769190027352139745865156716033648096550116486523590565393755826395935136152032355895595799712879599932277478599926328489495339609026747604466335973856452157967881899777738000916695796625972456541480064630639814742831698326195091445177179405211799558456985303456471855351464928736048471082800895624762968288695464993690538285293302010262667743072069101523678719421649281171159972378014664879198760378124721797748866412465676443903806364147353538044839567420808708790881305635922076862079335022921509190396587375655097226061625992577500374951156487237099787045607135139853645553294545709324333590818329206317861192712145331331356862998084599958914613285776167937538209457428575907918752124303216152327966284995116749251083454766234291356291947533093414373433571064748392330201413717744364699050427028081494290991980627007256328022535428252266035769941390550855434589975087407998908672232495711320759679686797058799918281582674439371901677097271116549815697027549001458318000403891883939011421178598448973612982332687649597859231389059367231438075092239797343276803020520975649028960611766259861001528688170129966481478050976264775803580908092997074837420729630229945017441415713111057569462203850981351266028024486442631548928515720943359334789904490621800713517178400117386404435157347179553566134359559089796978154459664577634690082698762197530881356314741041030993942117214089430140843548877643328502775107912121067436589003769137873554951983823845734288630873270334133490313764751410998094285042920812333296118522242038060461605166201173810867323860247423461199631188674379076282261414877562481234786431931949203448939663026891630074866234077861912826207684188716673927757656558418599067247132785623472180898345370057412068046052630948287492428282418584026855335889316069151172120806437706343564698197882798371892744260011396116266571171061824435504327644149880962447095146184135915843218350482986738714246383214779964415868633717471601089079672298734941409395368546393794537480158950923354581336640946816425629215912431288899957251560729916055036906218457530264966810708498613575409001529145289379106090592723127997124427640963464324096273277761119962487624556726309749107844914065605575644693778569266225273092979725085752279397408999084630455820390833257870468474490869945488049799872064895085901967834430454676411048392380752387379688991862954140284188994273262700164533349959363155171191719012070966212945625055479771693374926085115338803294572638176440278333660641294261942566524818580768943536750610172779633971634676142010021357923289049113994435523742773367693679505409641202483329185764425638126786769059605109594315840656094664128529847101877266182809972070351632923911473024973316918670031031744104322859847037758843681667427251797844035801862615221487315750893613585594886574527019061543831903130219178072321204549970197984603454756029558672835728376480121878747688050906814915807211486630546642733668185779388210444432760265904660451448618447533103100309311388427917399986534435249257980503868708778455183219378380890826220154298254831663645771701484328579161244409721139652176810325410262432532043265550824993908813028215909054824874651750168800509119360329894721212817115141336821512218638318519072281752421638483736724133001221813544055863119705284901848028628433225043847865331225626622845901777836873033741296478905401348838829419974207634597984674922519912719586432060998653633840810460909686489279207563380843603007614545403936675800881384420169942517345569828521000479417255407926287235741888021462971020421328358884823964878289691962760091927643794749367017571288449704004168209006750654233060578549485050126678997093394472457606046563872370312520579718671636991542968545610172968920260180782406844357783549555758738122967115791562538338016275375750786006357145900506166494994864808736806533649375919835287807543422309141063098188290364126981334380139163758905705412228137933547631448582393227306939381160199621253712315846525221629002037548278100743345043428195600702399945911264435771167234847206245328589044339451391351165383207811131273429548612941443939091068939749780043590769252563242745322587473636739176862485238960890395620289424442123148236435963482075135189278865835467658907832220570343419940966293185154933627942789277390029249448425111452150802798415846711832452344813671153673581546603624038587266552203633137083155459766864656619257442705123684719394521396034133168576730236451541777533592071915055167053092372693547735710013526575203793325141828688726085479436833601275347919002904558000474848658128801319903123362069820823520327987789633585529791932115123012034157106824720005665250812837746129937172744247928540835291315284024259009231755780643892271464280568537769454472018196647582616789712071159149354526419951601060652648653306287171661247144720199650760087677406245845504026986493933188185089849433761363815558216522268560289132818982568325800061952046282553732956800832727985120057854588303897325577167228202743579134832410631746352957111978871852280269117830583382147119163204204060115141365360844576282272914581055267057664644369474611393903012256864517752079334096411129485500236706157880514390052988950465846139684745167444295849238626719148652064238611421035034729170487738997115290861745928667328410026536188958095521748604950292088245000469040462341156708077446350360560518140635490108658063480851879160228631933362115661799057329065965454181833934045999809464257543941419584782807276000107463927353261865508767031409598655765595696568978295256656151148058022734185372295611444047396055199683815278865088726733373051442091607165016202563174513049976596759879738701143410639132434051257722632055040256964701875314641590114501986635161024230686405807288395363764906952929811419337236395954879408920495380335921141711784287915267288678862732037485336921902539430696219477595237482599282647238204345130011032464395199163466244583845936520137135978603562508790474989783824454816761200460912708332743102107736363392348161644909116503903472316935934943229598915748744629327934611761671547195745712020695976320597143600940997881020204174229073857217965401385036803402358313998879519149862689152881995151025591899175916751607503238201772161670746245086591713727551920592226174525139337711685048820187924324105637430369741545937700752287040653120138573657547729003317742602748002900831669855530748932534344844031277175733664827950535947189722888108209760636144317517196484936886520880671837075121338919216885927519775246200808658887428244251839763719221553750952498342331819457510404724828216982117549083063423388549609220656162800316622086715602804755095980459811381811334989872099672566041687266696270215607253773651159332673848530838935746826020998172001243715691497992947364513340102736362621907067488357357628199325524901664032285041254059163555756920386590879960045246790437908697267445122969180233466543985219306178987827939215127305496967936318531268025868175991781579107081399645198167515699687468720700272196213048463511265362730894955275127409954887221742401828976285804862115098203977234981079979818087618025252504123714395286664935895413464379276481850758549459524968966960042588862806595025679330293947666954800916681869906961719142619459235266788167419277853240196011844059737265443316946749631683164053233198693760236713056463875717819035154156022084449502671782011001489476923205140871245332252672639692962048948488048846086378844980761539360459632083021460697832540889513734581580783229701925327310570771148969855692721901130934025411788624603313782801106789210089147894434835453450641440490722492857275964232308330002016627356005914688150585095097621840733507794532606420195432505395657272864922269323427755601202930705986079360751462020144446036622659005810485304004886821945525363731543440028052316972618550837928205862541191411254692048955885231641820666849190318896772676984777519435709912013235629866718880472903255957011845659063452737432757489483470196516060423849690244923437566919543400973218452064257977209748012414879157273000542634513491715055577198074653457186508818910728034164027534853212081179903804109065859818011683734070976756608584467726021584447363687832083459765687119805194881593205438308968166258505843676798330909386362534321628713951040336854587913797919480062231054308829980610049474391460349951012417111406254802944797878489120451154772663122969753180672663940158413902021387857328154321098439293866813223769053170368773658548367599410230388468350479235129072738275332462284116572643692468149813828057113027353785147091125043178158874956351969553982907350353593606079978972607539466072527180992507792692641382332076425844779376531342705274070967228087585811226766650164411202545160246633858732961417833482913560954434880673451974446102777431459613692129185130314719068713472699808912720956931161951790337343702540164717747493533883034618513168161537882231870600665393318815564387035856974151488195031201267218195861282103281638365158386811970937897325974122370211527683528180122671126569867118925653863304991212485526604580067744831061649663731102396256300676793707306550002584048180592636362182223564373077096364831805350766410073566863327617130467121953677586974591827396767809751528409017015074935545701173173256566359393954477599456862611527872462996478499236991215438796422870179730320003393473090364891846335031633377688271053652972554328429125474246870874701393056427092692379270926699905705194430904804025318071624053635743701172533473607801151604611571012533221428242757853274421156922610053474393469607545472213164530137288273161650964016165393494867527590373437150345121399881720255342148150789862783065935777517768603631862129275878744065457343150537647598850574024187551742872443044818719790043369428581355713570025297880982264970227315566675198080979320958819135522247862308215764617730394329180090090250779609711598092277080725604700972298637070133528687216995517705071988890780128694891496799149814213488030368618147191901956765576386421655902122387202731174006901080935329581314535941154167890834641479323865581004596687319801704438308903631563468074616945345299532783017500537559851056173245080660087296537917262325113312494824140529661504396730751286148002202527653652965234829043051631345102146151399097858194751471688135928152631818549918981551420932871738680134534168285710707835454434377098613766592509012382806980865561997392323102527922012532847135446992968730503456088665365763047811375308592740381793625533573931632198463083401245491138273781157082127207314525870952627360246516518788262191960184859100828315018572993368498934922498451479741182152765348696383314553532063775787398192093495289850461028548828051673461735256299350362620565279540470071373930444538920309517833719564240401170050563875159963989799173875036026935565858883366216236386270565863486311217877179381968759520261039828142479293932751694375545226660944333887896937432273966888462371179744744143172954167694556536341287093229345624197344212029906301144428576139549065298758077723313443747279503714360842322691575708154230173262443128538016088276721171160493328272442467229214474004163156572510359382174171346008308786341803705566031713425134689524525954118186921390273042742944004614423853312386606650795982655957953233978479944540464148841465048541372974509818775246069955025295160089207255509984526597260516159140443722592476415042934587034918504057979985847216438590653529807097706688169603076232919011620358473559959049337490743453246578408109922362493770171293880100638173600582998322581387075167297529886019075264900574975559834516750130394735307831963717483073618294294299041304427757532782855742377749210702402240617611680930380071224928895960072735900327381386905904020953844180979668957226643396696676570480265512001113130275492785725547533038508928258490434055450248866640231896184967160723688944687907734040836103889020025815960510289815332379416189928350906506852805141107965936250220739653479222624947718296883248905761024050409489159571737393851166098196786075313681648707759468699232201674424939493456540891902305933001184915545573781911835823780907144631069468400068440665953571490728583154567663533275851065050296028763835480311665842592299006120873726291705843366706853502888511739416454236342864466606537821761983480126298333173800071076700204624986822390946356006699555453220976818567702299600728421149370728960526059778341530119018093866644153866754759945319437247333628977717318266415585189801434367534096825345334507252102521161110444529306883385335256194787617333715203821594380735546336340407986474378124354499414300467437147599352094838586661694085551461549995608810285295722010492610267539753468338616761338716393718469169575545865029527127096483314764128883831927797975488337094109567734950832286877777331822311884576971433002378850591847106984830262038690856655957343105060921030374201491093483124851933572602138092610488055072294758927973955618242305398696237770429599080807914650585213477628278663028738793154058478312880125697307769188522894238883157202158196054251648530740724318616773209002683826695298989671927177014209468803208486050428380593333986994102015101031096967637663192577036871804279241910805210185520548000942086159706131277044617199196479739106221480325734293356724640505251511048868325874062047082980392114598299237044185604216022782955719298745940228035285815361405368664122779143211363695067458362806806258822163098893355403654818308952218073935737201995938957217162926616174805617921565285055084373507436575413035973537627225231604087761539625717061364936273616803457985602745450062329357048262432553436510398762475274395930925836463589786692957314465380081844948885509283927039919074181947368498797326143830491024219310304556677700171413249396880093497178390134431040590598252161030584810337886487710534365122763522830185949640128974218490756986348662115009027742484097744381445136380514706480322861697618978460429438172196668389741743992534711528885307614147619245233521882258446990355963313834739755191764111320359554867731958884415954256709426939793249554665910475819958338891394577555948265579473011858843978859929015216715258834299705286573187414574990723766092765783070378462927141369733714659209276131523208571210567515493079619442903278900324358332834588113065938633905458770879826281206509462281338045216773658790555710832509926190459153967655345156523603160229519099772517720589705241588873771820795490648533030181562159083270874099942405414010585623554159877555876944076331994371313303126390792771659413274664951887263843747196325334100549202679105194807829899059781138152179005804691958458857043866844604978264462672960480231826668116202430679034934291926356872941934150234227869355342871569193853928785149833805176071157152670115231833975513206038347474663140376756225468165162467469718672322998019640123683508981984877705804013550070347988342175556151210333105493961216061623223597697317099078528557249158413827267950330084403405841209816553901550614854705282947822024230721620233877380507018705765355669795851415315381686933909211758039522642028134662285920016294122247461518941107163206760144904975441986737042076061619800145795066094808852967521806466612991110039409873104233051037318825720241909390416867274575755936687823511858520643003957777187926578441132428445891323577497328293341125663366379782404893231084915158500533101974049445952829655550992261361600976930328961324102036781569737473958796634986466534020489291566260270047477175606423142418380139326604282815899366913796264921792400928489893654788818735976281375949598569943062795894815984222876328140359477781321423993155765669471425726259388230133423556225806868955878220398041900508315881927605317807784958063118624336862558554315752887507978672712794502358474226341920765196131443438010051126496262390635269549066124486181571075865574735383035327236851877864469574071915456474473278646339471332661000244501421546122763364973337586994017880703037890900312334963625336187082282330914962608244346548529737507802298545750806064353288217299009749658720358122998029410617070966656351675612366983915484641860386813834541056856003945977289466286019628294876099366940286782806856151067558410834459733306710636289678500118197332352918925053639900844122806836362718993678423551469287256568857939582782230554982319131016622647446726539822546108159670411020155167249851131811025112981859602809351971397709986249516308559393012764977325241222477067710677749477666038277321063405628749815578983662553232491712383634963528319153809078914393276944429939476521041435762541015769653641102988073381312387701832666279200098047316143479743367367028661176467511896566934732642317724562490337420090401771512545040339122022710314893538937733255357794716525681605923463076395060274376691127195185225725449472088222155904403158138942923360286193897933372719638523322581826905084625252924105211679991149577635590750585022924598981670414747907533056307768943846442961069432314198395898033722458408931343882349803799590597616991822013175857400366741640216132961061708399476310437716307674627313028524411206082694818619942691056758162254590689839478251794985649652505853754532094823194541766878815023858722374379869956629817409991021596322307957203535315803098804847842875984663238714812047468466753434339679748989317475848240370484958579456467530982555089347673608694590745384836911616966724082811978801825319057575318946582817241270196935048771762468988957836581034601784625501346026659030235951865515037718678764978692034387669849655045589905880466190044752434867477791808931456626943133718868383563493782499392261646809574586415926475664851959278261665708265111062582429291893315543262138891698822950158077757863763751883635288752716127498446824113445125910719463848963833038919282087124803832081863765175203355172612652183852777498780353798172029858005618540448816976041239382338685236168242575074163134565041713673309064291575062143990314966587620570852618780682651198151334405723911185577586634947783756658814820777168386088297656599075359286987468027902297761249372332549210875214108537131692624644603429991654798738190053857930430016617964539781434124691704438930273459212678448152355926376189360860633271473641284006278936402907084516767940401828619229975337321335348744714076530690318502297038867296669985079591389447087755989826739894855800938999153691026681943688441485455496288913978985578703441695373100422659166424324035799034111971649269278259857287522941286841669089716712409430803811636231870623477430843515662893537505644196966398756930703809620874598950039041303934101753806581880124588211949450908778084638065392034080054034120600393734288251627205946359859380694390037267780396324223623374819129886397272076868384975280226306868315620641656434807006700521321284396811558068086377969727647718765882707545384356486903028985965092224851076168238573980877883352074772452268898692246111827564155138838064332594092955930782608593006869122250922909111557115865925213235982377001996978165525485666189191087863326256723438795716052891220097069797094184843134334382149679760813330020404255115321983790107527315155315971966600595502676813573691581675107602785395842443857386477948031426187854621125378852245573804327851078983446319004921060958532753369373921309389605953367765307085291000380116393727590075632177462528152329034318586902989008077147037223171812894847480611051890288961571217789931040567734340966261935055259089415597238791940192802002372978180457808757689173286150312591876311710505390759790093556615996980341176263271400339031379192745545628343509357453728992283567796019569888464351301603570176264124585005225497186088559119334822312918703811715870243753810245340285308013450128483813441166659135329329361736713159689518841466143543352779855959595138117419928356896331372522877939377246229897670474741688695249405034164125284346939332803377495354518098680820749467885406374035819244758639194995657572298148110693315741322970641960203381574054040521717873754596975324882639989541747624583927840299397374041718566730183496960564064065431109823179694070227669089474657674200230881832586375571103469806811071750913023829974023412760005768663278852595193021178133809845387859290388639334714117438551424815406538777919423437497042917471619085727720344033439761024348967601231163862485729134143471252249500736687335967341107224292693721999416237184625782922691979715309263315183233843056669260211053840374550611457725085182593402706926472870376808269217466165503017712593482328769958747545039125585678772955800038749059802440478437642642867325308332837074770735695367825569604116735850821455864257288943874437119616699389199150038086609195301279039081451984590399275898332042486492706297186295958002412058916735003054941093670553147683991000764912086941368287318426325771427585857374847417401502452999463765495766277070947461121286221054805904526234952331570464137720308438759671736285632880197231070955262714624493757969454082433089582499936017341264768870498154704384974869672856932610127198037417765562640089928232838678282119706273343219206441561987313035431151939850310241409465170543298621853246163801827188660439219765310833011540380778766768257175311835602623325666490594516229220541696579823468699970823875218394119013422972068804694146059459592077677787692576200241629347778028278545677542027436226752484137192158480333300988238558909751201920483465078777424949580730570332628055620522583547225411112312196841808620402618321594276346922862349924589794348638381981720827972483920469390779482368489408317938188251603855565526626478606740714690159289138283514486355742107271108675076574999872926958680673389194008439046758488754482919250953057892390375188107822260886857643916690359819098150422728345539590350319586874224296301654915659059643834142740021488963596651324372689723185048793444225530081630324966340887927306594804965105164038535451030947759793980677396910920134386648652436315846877032577559335458557252864300510946047221649606709159970542129093148740172338201991065082718163453490794569889180440488432661153053338626077173056556544649398540176266758158366129850475551458028486895410647719295156257897576300295969829791230248010604039125989043849453103309160243826941456062710414258147745147908513100532643911054883673893882685378974693030627952583401438327696896274070258873682885824869161031370920834144555076397437416961682494339437569707179274289149996252818298147943261368517692262721504020844732806478108725962969360172796943850356432282496555256956639340578677002744488527606052037095120657088716573684385116351720989303740747096990446331507184638879333913888022637726088536227006271660159957925230491302672085038133427990169787451928210351485973305398286826749246331220546490255561955520069175110298364579804440436413475291427879679449173093549675120023662080663023306461712134837972488045348466134756129114619901127933134875802456105405583206449588954059699514332962812422344851538167611606777966901877160634291687615474788024088394937689225432042268405532035821861530212208697334068934899388178449048648217402021103858564293072365726786349914914143613006356060068168740459787487188519653863448803155322465223467224746598797357567560682960742758079973368243930167585750394801750029413806798653833667521592825008169003456016945689983432455179687212583763050730703368974246163771663854664800069360229893169725780862920299562436055209328735259018561639741226886884771251131181522587119119345744422484909877402173601865305597479277022868509232199130767989897183833744860443270743118426498705916715304215330801939916131363944896444228742185733753600173641805115037939698353599333594813050407901616230823544913232065338764058664766896495226512773256145143985945261524420293947115447905667183883593916443238089470526387175479053127207662143106802552442486688785396176148326569872650547578145152849323389413697429325759829114869136133907809478240549735193947535957202040476791384799695746452941777403892133718633298417091334139577660649878492465176299234395040170557210083964541590585293573627933709031489173737617802197143788130441599102998081484392797112430979575831315730342893357885149596082119282157972676044647833209239372597112409342662283676826949798571825293353362440065846820720879206287583109684143783464045764991060775777544211484851294364390021994460251971595284224117705215499802661457423752489611182896982491627298022255538419630089970984440329827512743299577370191532269039267910801480776484964126168772028828935807334108872949783150146942942158295739080065828164171420344530189232772632280065351327003025352546144142435228596234669311762669141297942799949584305693615126344855934071314121038211153132583378537939039235692847197364523486069058236369552305159810837435104217524026578837621092417947794293057333639351532353629670975612107990424535585500317833146802337173218434763323453240213155445827776728710146137684022332917165461079194972955039333002944062735132141876550113541771417463860138818146430383848695489113235033164383743704353840646298613153109222892824052659235946707582542687307277049172603275169165120915911215578966094134322253485981556435987804256523043625308028650996423048697712709168667590916493798956963364778764788322424354502605441175311451672281403082864202529432190468437504321694599737296171547451335940904321878520622448484074534636437705112509916187202532226969441642330535710221204094690988377920349167829526312810080502766084482064990889029995469992556952625944935853751032241947374828002391179423457715583794297010542932469959574738201222315764190201089658096548180707364218855268175327782465786801990092410469388250860784583988133708456808666064316744504778741302643934233394551217962645038839845609968667656734952755306667429737181059674659521106269547732428348854001955867476854091653038267396996155105866283391236123498446960659949670226433958885778134663998837418080658414799865977728301554412589651720277513266157069656548908083588558034553585181110592012959651870171072338553496279655653181696399151381060355315826155285538048396831045523555191580719520604832570711691231270090192965218603265070323540663806582087462307478749814779752605680174989550684564104808332930152862441319840715285857983381151719169267259043555602014747029429331206117585263192418324482659928904543785783449425839348471012317929467601469333187112780529084176808314687905983961314273758857898036354246508623683261489815569474879809734418031415024044284692454849808294038940207806426882951462934168951733787603862677918948286585759367690670223969180163619702990922250130574880557187959118715379087311471704678578572513077154891406226617611142306153099624097743611933644450151454355228791145067497430018435055033508676195113563923989333928602024769186514442982796241568145693803807578989773135550045405798341659539165331880336260578341516878416004504896498850681260563627620043569691030768422201360572016054925521262231558504722215904181662386199857723816789638442631198182904659446489997189245357992724138325903186591119085008597977438093197311716705656734896268316747625644949301259784536777408328773891241407686726355479894294185535517066714908134075373755449908906095098333366435987764583884316159892792464546872963019355776095740732039013091867176912818928338272637604610849095578202980175168394550797898056806510918835291935038040274152459395485462135753942069824803929530968966100979748362643696317720711154913258995644736701467959786292473960269078864402001664878604968806156199823539895063556125404844001045954733016172068882732601736724863113572223882502465615620563324635099532530253590195136134513106364748887744571948834497064484720317321051358434283075992045315629511904747680124839669620878656625619984658123537656448673962392102436020659444017374061851657862906757522205195067387570609894474493252407874290166706454142360948189306300141585825461154790353666606682802033120801078092655854869299719662189196849980841393340899781925807809699286720059391065352686659277615013842646724267500423230808906559870766624472488033365228002750793083300902047384233781723628015389029009992822272085169299379709194036310534277119903732875626270657481660233282856968245200878130400878442526050341626571442535965890486781450473052497345300602813030430006930474339717062546513418412284270502742011202740675764928292209643340616320284099670754648332106365026247892650548957436422228684996512588143674888860489057082756500937417701574427951580335633019574048910972820403844788247058705714027762593094492613308656608564517125099897539113187960097254065902287948211172287688907650285615910097165395251119427109107569375584306746036395721449508664517695430319070748746974001103089777186018525032445089135372086819898623669143148055023111192133628328008477920671545373409060414583341601532042109818766814267170008032835469271585142179228987489295732631527855138036256670563641263024860669021453277565522814286100452538602570060619098681795485360688278186149917717281469495633438380833441212837633581511394321437383922370300433577914187795506961888186406728160909577937297761587540518176035864730839048860109104036296325092612297234870027586229136363633536846854967035763416864486216326725422335784601046473899794494143273600916173054135211928877968144641430741604738387964493029241290050338357311328960335965908146747499337424015120015343372762187582640702933076902314666134973821561868610560756896008294035519969146050144927993263479697394233471427171473436997812749717954478204797809088656319193926460412393615592463872110181917837579286480673292823240367785548307782049337700837996161228445868834073074035452339878453084483276111905596119633466911816076067867011235382292536689499211662494615136676834864325062255830894013353982336947174557119179324656858403754001078005947496027836613212704994118355185964376111074778051030005039926201960493946940475866812666477909757339678032243145857082760831286210824622322766984210008882862756995277540469648714352801035966125022118361196542211399970940733956357676388039319253583125846946413790644918584168998973282471391126558313984312621301851405882371578526225374094237868547440605072439428867834688117507384804905358220436220001086075691165241817426730454012321348046584234950984322233613427047476575103766660508781641772057448416781810331641937602726096730951078540417607912448794059242870861930513400326435204975394566592101768465318422668368955691831491830179737046200880629902904184338093124238765348164990549257181843584975024682309497715264900669062142337480522749007201449939866507639851841184093570203380339126972932089690494548125155496105944587539843167782048054362694826963364971371632990723428208032116123596559375927196382607581559199831611051842964297945510367469002749600376653147127655430421932101436730740048462965680385643549469321684652533259675348137032115313799941751431220006218913318386306440924584251359945650121587378685984749838997476887031754776774159213337788731479789515081196220340129504158770999247744388392716194870471957169473391499934274796578724941065609053505789208130672597214091114442766373480419715778390228022469376032374594812689528457480650105661015854678360182015604574106464405380057178786813107770135502116480478243056755977769954601713528457996611404485205111417151379158390137122090202430407585325574735885104328664659005702480995890617322590094593275123036442382545341534721939095147855412260634874909208954367618384480039809306077512349240802653338239523898186335060379066782553672791858246345174970769192223911900565794687594949980262850766487738712397448451973889333284082420965029913644652813747127301434703438872627365295785732706659243006660396336066959019091919927386993983633854472860147166338262366436709444135077098784341164068896847385865683516290793584574176671027107787749425659493190878348665064981706101901749892472464374494016146526501455741816223230573096908678447810965283378079716671280749941689754209737374956150914628644625633383710689969105942755400349000489358155588074043321873191356346127665763396041532090453418782954099718572480341269341676056571857822292609739580950480047728567655577243565627277729320487143072791701733282496877933834586910829302212532530728910125410021634501713963855694328702369346316543009859917331610026098417462184929153630520036683569626258147823550323760169419821228100627186296829041877854127035853716925157077287811077267085984129043747116339259313423274443542450930985325124522966299283754749277138901174403260134627557730306636304952704840312844730584453079400899102045439173914510848214897899946950586802719299377321498082157997867911902051916276006958399739504316776005977441324580184581830221553167583826480266274215093886118275295537920430019635603865792950057984061453169815951210254485250717477642353873862566842764738695055759353795893470701766036045660515135189502158111556486492882134210882443921313017941266542328507311264327945750190014842192954435778228874224187651516191698923220241236132812258506100777173713932194264355489306771631638627741483663545157706222153573787690976383356312459650466302732284746122350542937960411353366771185802152630817585882345251551499142651011807859351179893779788418504558088407790820288675537695419817638693113658345366848773243274747614152723789786663805558938631379463183186687206862012318741892266281748363279382760988197440114656756209639465434987870441962223814568911630834660977978987159823787022373191667961387652332406669253456203569318162545272394948727133401935731668058541132963706648859062486390360030772843025295387747689396732860056079802850589315098295392728878657765764977542934183946101125466286908629439507796832374886236644451775950411950355342898760053702273743608664250354093730253868107799313499549784350684488794401305039948053387092783155790446565185411095596540209717472035842379113406211993402492876243460522891518414322977604618748262471200787758339440829203669454490049154975435560939256850104479710540385403081348356299842610570044559769771320244686036196846674571566913722644561526342524435925941119765865513994015225880485467502531980765874509556716566217894465010889366651578923905733458344421466595360507199726438200166532414376284347793316138405064343042157265660696779292459661231929498381528032290244770439435380438430578519102179843064425583999813106717949502062660812027585553500937198539165830551994679469625918048401207108165561427824323196864039077009813613763087802172939354472556481240545601115766356482329038305701449476246163250870056699054409315723062033679218431054867052590023194677928448930303139627777098212862673975972588750482737801382334995056882899156035012430523962160471179826622049479625010022662042973342922798549770046130620098689126312831773245736614738241908569730108916290833430255804593045207874525622756618656987096914661865129289953300847241669986508240810646293018944491795090204994388253280911074165762530803272752088670335056737136422394959543124686510454385199139969155517996417637996346607135746484257377897420666432076844995797573410136612287795928890964722487997340053400459003997462226279518657597022063687748283611667251493319811076144773118530304671587678682965998767647294883064477396326856686805881231877539218518734164856334659701560960657460193217741143904521653673683186116255325334671430258096557602294496260911279413480962365251080962986806106581024413951928420006119468449423937354977351315478526976147068533439026781325870767498587421297440218761492844304939088128530218850167332389745264641168554645639121117242329622264266141558741455287102465104063948504516608256700586577062621482012286102587757209046240697366197579755505158007149284753366140360695986026920009244658085151980356270335015383025856553517327284870836273332489027802364648025772519071130750734411573737828207207255110587124194094347346963699513802809029435916928539790004818626779519342172851557114192467817517737438171731648641048995665435094153743489244029508099992515292803868905300086966443164625652888433404439292956645990399708505151511733033683167626461978500447296572949703782735075819272535350575291177136161751215230200211348502719750564165726221667546897030609677961800720307153771320017838380530621939061784022336228556313392938047098082170844367000491895553387123465207326576821051078593753096955465961929710649299496787951619967611024680034020695066697965220403916037382566055149362732445201594247334138338694165654876170957318311462836167673538041708651322612097787917525442345134005584992283123948456945642083842974053912576703639046594584760491890479432250323823412211365311647610349718540430206217405319836780260479454883181725470047967387042235005070400662627679196836726504732822333672025154220487518957395635290391124505226381604211104712944336403085136559245133021264638465671690621376565444724530637644064551841037229313758273547038369528384948345689441246887042065045578697745238546804275995842862777313701358243604114060113678418918114045662302664594118085483021028194409614453927847968770624261286451620681076028879166492809937005570944568661118605965865604707801961364433756773132199093378316957121747898798665289511111926470967935680066824393398616225278069320898111941628307659053008312511607320340958200523576169209935149529555739358897085552797486291030817078488541538137340422438947365426584490085950621525116172324872761872086573551643001791793993396816650086172116512722509288591872497981528547823579722891636966032489764627130752924523321597235231358078500346101566150017902366735427300077279215426749525180341686543915954093156139975380154659816245966290186606301168556622423351485364646724084714301731841018467896194205782277889578236483851174348830082435550759028377736631274408257795150951486959762499543945660631098623460371632029070014785848469818239584578079645952857619158831363932435414646565210846038299694896898949998946039934509777424056709416396074827150306942739846539778343675058105895259498214312118108975143283351172536995086119050585841480517490884346603018180318655731066271710399463598570260809903475261196214103305191167027571012142095867860747681094147124901798096016544014092948910528344369135528788163086907405084842759255551968886138512707636302945799800194552183743760824204231796852095136385587538063309081252293263758277542903951575046738270295975990112420003255983962756165643420902679492331389850704453924133833863487615247688742230313318049740642402896253522357744109632649404003471337798066475926150168278849355334357938299372121075940962818284626509630833696302777542311432257966805839245349629252104725069035643105676958449099748990083322145841160472718123147881930772072649289856397169557871913620757254013057601194273027329810246379853312322234586777582572461200405706920041802733905418636841265146985022696187200348730361607472181941745524279612524468648860896272846088905973344393916634728051012235706151571360942953887938242153927261361261410670406476215443934420803015318499461910146761255991602411843510729817697653166581687991671358013025992882739916455475343301059769477113546765829550182224517666552968448057753788417581611831286301418706792384555952320145325974143725268683744433839487119866806104311407959977421069992988570277244555382330508636159696870382335520733496890255381217298552091113818070667784056803103267757832016747265418815524385551174232676284932649424351705459641614624816368304181646415259205062519324763162124824047043258194518825841787069158261394737148775859123942518128364986931284238809200384707162826073620565110136198081964707596224992218872441930977946699553277191252463593126697176098720227703945559777055922612835097339309342728502761359382804286407380971299727224787494100026928563848182014400484239870156129997747970437858974039288436458244296249491462202881665453631938845665622139195213264009198381946253748402157863185137075540325086738586581370452937055194397958156939661882284823479057702209078131367410701258949406795437593957559057639344863009288578453563098605740321715689596724555796528257680933722903669229830010359262916716540502927324729706267519898887209572166800890383185445565391004802014407456012886087916656381802509920069030087912586674002243242108458504787043699700678091720387409966057298747825707916309386438344858822354530817973675964949516604849381446339415045984683985904993340767431715649336740387213122021097981455510136746041960734619694906813824904618928804102036607854934771167254571482038417414661774915906966128705278374739549661072860976906353560318089159770065409987024127329840604081061108303591932863542494634282143934689373277240958405496591120159537089347965986458924796956495550219385791465361319248497343984164211888947190229503096779548554164876554450679761545289312268386059308364296776242211975164903333561837322439278090862883135331707399089886201946472111796655488527218870215769712181327151168684336440966706941335412420265558289002072295463378000711937390219049461835609252700220267309439133818293571471482351208606625877649457401328292650280714389718684601199904158754480341789924440870847885882820944303799847217954688639422610889928499144836894123229719235933895875963809269962442588199120634855443122850337114926723083048606011684135404321132577570944620047384047594747414719606062969504636411934036765877801028915190090718210910815148593122877683755416184912684704695463927184917669604937932558854465743120976344432396746987373920921729326909820232690293932839422137950863042645131607545687213874341165215443015884728162890105520878230898425384712585554604897316506640322997930556032060991339668454720107825515040853675871244094861585486966073315377328678279409352096972082265308535323241479674298170643071116098814899266263804975593498821592505512347521331178042426456475618437813867498561244434745401515023540607784306663907384775567577391700332040609870276411811503170480787332452542430176835892703260655693814784049080578408560536135498892565973046416832839638124599523129668351751442982285692047166120532736364989497832259801626563184094195817264554651535212600057571758877967028439356442668066229041808885130320395370303717289060682785476319716418572496047037672555104067462204449239834991376115748785712591360191435239911800101707704802328367446795205828243495473699924462085866205628821737235283119085706173085660964755245925449257865801225780494202846600282109555301768389529230324355389610011411156119277163463118875492813602050360038608441250582316277899997677137965845162120522650811302072362799681376464049408263982400614426695228123931314684670845588201468223462021202135483982453494331407786028751274742394440895033933114206276499814150371135684215831278942234270075749496586765637283546388437596239399129848967679494618840322165733645020150331789028369474702520669405221483616544521498390754185733154465231838709866877814020521702905058826843701041788322757171435935885417215392155989126673297968252226831261090930472625386679409334975583705698330990674047768566936516262580405327865794558382852822259674208970572235918826138616764197426031955064124986376119238951255828430998679557285014673259604845102551685355555951152357131420387588740426384315853439721075155470965324713571919157408705864660101447170254119716628171296744335883092839155658415303259101006850498275651516737022075176147897391127968596323505174296121863306433260161799057924572384160782144587952884972455630507659640604755405601045764352755118057340196293237852245102216963185475576109809578071222624039737742501178300538126797319610658476415985686570623362586004029356094015841873938725702736212096116655550770702226077337120796842836740643750040602850045553519387356794305830336602317255677038239383166251123106186284310176712410326698511721809950599187770381915199212744852708767186301909709072665701888855971476365941710905244780713513627016720186181033867899904092361170630192020338793483814540523467783237480030220210236674247481557932208206845213380736926633861552627461185427180118634506208663695085325477162074244653370890714785354011450364916573244455566009161139790579632947104292838291950584687227821488687061967115706595007154189397378698881046593409558404950909850383277361240474695614643950141781873761517008963665466901860270856716989723382388683557665503924071894649199921236889080589212733877537634427041666361244441428490077450609043083762360361150449034172664461312870515624919489175131504890869516826668890529779238212177786681481329807664531268666490189471397416740997197919146883462308863030154778054500749278113093013558857369801022451327847710686963815581632173690533932583975347552944169475970308449077487461093412309879261269339091242214825746974291649296781100541810648693167462152703741598055785579111217878927702180936770207326935486467453310048362014487486984798649809518888023142699095226452021550721667221466662279202523010473046990266292777276114314748408064566381305181677651254026226312184751294835622094747709565584083609348703904404301440037376061318473290081725177996290453371964160013072969411948243908229560774988847965165294173634513779140203486674245163738541850835467768626024067844644382923987238546672402196792860121956700385165724674177494741633365607871860487936461028609142072786591030390062631070239107737470592786508961980418686362452361875061802181454974460887199038621037000455477496986900336685508913148317912801162264077840678305083554249353431403217236263679050749963394044065037270809444829398338374872683916449362621655156852630739638046182699613229284267560015423159660366252215839260198763536936326992171118652159628479512224186518406013285798564912128045354608920914106309056900304682105094786936239670484375171873434567474235604400366416077502275878480954954445886064727769335594766690329031396541600873573970219640634401163720028137982898879018448716164408101331074687038909948209764089655975341343501453794840365555361179489823386540214566230260922070718852810190425361353546415553667178993590529985431148114140152671260689739699820040546606230616075208891434419716845737073321789956733851044687027480007109682453926664218497860418059284639137679389911824466222403667901320169110522122055793204383531151594516635026883187531672384564309918609466806962266338816905823102949214795183291118721555016503043049105933324620850774727671610644412426590154391940008355468020506074225214873668323750949237750494316032423027040067802327681568553195282128678623007707501132128193259410406834875986417365365822156381391302978978417391791310325730640872422722430192110040787588826916978324000427318690636069155281944445236735939985163279869900201890619194957721774743490642511447709742421005793595619235632108974109063125756560193819106757871361050870354791262896726367221334069685528511473654450904034836140267629823701745412032241229925464933239283698615720503829423307470679198201138414769502721586467037905108964383213178222899741713411651273479706074047665619495710391979329204439723808708045657340762260840361151149793041807904781231865121187168727449382010359914400263306037026684711636722134070795882118655429186583169728796482891784716644673319631709081570662587798924573259772071032692391071560205637402875214560253268719995755707700786696454158946962033605817207824401186229837605871288026041008838361290775622900643190848360613253064471577002465090121585460090212913783105270263276626145329854337975276269987289665572687076098568067650554385148278261602802446740614753602147912083846643900517297353872424942094781012048291385905028740498326403825960873087146323543220135855622414736991286247225126107179917096599250546486546716262350137930540395007996102400316951075935029712304612291558459055834108996230513477144039879008157035242860540385116767717699885469079997222475900310200829330456970200888816927846149971990409574179761560732116037389841169061177582319483447777012760531113955417120930570631996604863536821354136428543383344638370672677628041927183088040939059726448623412275423396661096004398480981122811700543713453087613803029067863054889566655081685043518725608537037632510058308719463439227335540498465775780075759966294426815024892036819845922914907227001588242705704251730226490998515487624879841388691286892833567272817578125626441572447640291778879784753239975785849348339947571678436081077745233786749581379498878078905343904429628672961274720843501503290617483124863527657199778455883928483067180135910021770797146716265932104703401987687212096642737261164271807432420302956079456205946617934339680868307159926819872038196150031703217147781283365752573114834746813158280907424038005630502481559499064577806017332648776324802973977825257230126795139622289286403887508255884354222676769262701814835314155903816335373738105913648610157351656080408666271569121646117877025918455138944563028081009028410844208396635724816899374632124393224719733001677122436596101719723800457186826011518484712738248037106515339584562225888053521220564282471064691688959092506786545601767896201200296219040857344227840361381068095396378660911273799943660471060731322443042141667412555789583530366193244154555764715380853405545642907578469782512517779721773572400656753552002310243165599048498749964760945376793224698265614455941861111138899893360324317305543843974873273056329953799119789858329788233347980269280733939854434691182008902800315064090317496974328825196940161523271282675699102038408853765749231495305945420894112373689272968543094690858875953022481502736014317704882905263954280745440871561854295007276941623214176273634805676021847479116537618031035774229146023061461104126040795621052325885055986264275962498463989878433171193155565595551942856325290481515629733948198061079414384926788787208487181843814956997689109239320393900199409732707611603435890395844167425804774809864312189775011966341738350239945749399573057051419996201442711673472200923838357849905158879657073403745336403624412380322560798032467034836720457926623049590090360466429501985130241215753746982370476166780944695027673867627844203365776915499134364151307253590925293758069812224950929531436976424855351879808992892354723721039233350010484527826587142279322990105781993266186244808680626037990177895021336443044655001241507576937298890339004353569821528059651567002473155254805903036278146708406732270252690413562616131290943048104655965599030193989945566831595032478381582791360174595987465364185000115805024003116588055327469811781170821699064884863934082755769377283759564259598989836951394371588526861032327170795910201213265202569179419046079658438199739397673078378627882116138364010936716747215584426133693206263057678030809312023815129040563132463370591573836871120476292953891818939301916677412774330747893879434021100212020415077785593575697175893819998349346840266464295176103560534834005344531226629452791391471289648737933195132519319693927733413791896268139067562837854135074264645086173040880751889060783419845516027106567521006100411812093380132234102541070432138873651142096081475770627111386635901086872963332939653331801095015841755661713870700690568103227435510532681865138179202406201660563596608419943187830996888911660694891433226455027390049837564009751132977884771009331239022995957406397272451323672310683166536391781477686813899819023677589824028090124797288329035692371997134940584118073515055156535287237920490780559223568020833207187953006122216422133046617473015151788663684269794348705617136638390105664936767332166511935579009638918386239867313068862220422397580678820951513159455838135984855957394478415624069766396744822060550398802563893760589516192068091773218580060124120772534216985180010230653654173578773598856616924677857269757091916882158046305997478688856381132296026231689714903592837139717139696944542425371209153156095025727290537895338128299560772346556985485934979034633838342928060637801381217767807120593044738747956172153984892956158873704377171511046672477157222481746080672097492675074477393033065701749645244829193898398574823839113633135498713672392456350965171261081275903833684758106836733597503660769502318970112160754875185974408970402736837808610462353640333428713452576262927382270925181673458521470919842078778084187170394979342069623461582856928829779649896458217605609857251258615786022028346391554402157428219555720087370561113870614895220640375061592863118938138173136662513894305345334559076914892146443339153051463731652679519862473093356349711532134134881818243040256859409814269902949205059175795884910082271060693981338175144023880883286924083000249480283613457084349998708363583052362197561829324087904606537908143648375716431872589834112845709691458235124799939626363736649896150874017484302381653582998697001272272135478801386823125099698711252475913877592535842886936608868285179038571186195424719144749355973393485056068162449558654165886683474979893769582689683613389037777344388938088842940729097239715248242723315581359381990654958328844452453513844940850725169120558332647160938227828624720192202243498460790546393032530940898915022180603754906417285930200829725659393701818841569593572899009195144219444407687518359133199621974020627061607759451209667791924360097097626516946059618590756644928490552465606734403162484531746514615946483602395195406241224627920827828067149831991380664309626442455611763869122580674023101196386011654801040656183178334815964696902882963703254902839838307241419367444790170197470115321333524290029640742637556029667504346536624447777879267086585026986210871162531904346888161248979977850889732770700075000423765817477660733707665236359471002102171028185807413266983835042469725836107656243717613678643386878818268933300622330715640953577669536804091438666923438093129750889035262395408402841314403360677763030094816010089787190499847604373851018743276705737178789308977923155974913482030636928987933457038893929461186930515579841706555944455292042299109690854667861482046535650265192062915648784737691205285776959238532113785921896193001829395697768686859508975335492984825490267567755091666031653207159277199439803192234438196970784122318938783384232522933203635608782711355928069655722008296097483209922390290405617383307373968182415764856329263013534056138980027661309973101647816129048986212760964693189791252662020562176088259552008409448870743303656514846752442718071039498799451977235215149561073933084015260303299661050798991643384963903657574524534933225579446551023885523985402850616644547215655896774604969596063509080478823560923787959364397136396446343201660984473071302454267475281671787606784535682391814926883388503246064233446141901493681821785654737034967352856079788213974510909052896864948256121791569693053665277178726611180484605350390457904707348905778106438973433007372167199323354373102099929476536421206807018330888853278366873712748308544316409609009312274400976190475028376054990688393479172484748504685976134551760119383710963814387785747276495290333950339248579285758495478548939856347603916773896857265034351326076393632969046474728253998595882056513670546437095208415876586785019047889471873722167279371922796691760700179868461462247383592809612664429342212734500191754443702129937025625956432139792110022958583816322709216329472224813334498357723533776550646736537882271231852786523638743648882975832040758494980000623475057507266247633610645606772380001281637096389548878717411526927727607406751612796148016812002708790477639884481882569298754879722420409961467503906398967563852871272450845501158298976107130664414849016484759928238456722551733767663980834256599586401966945656944644141517536369846235222869295740809906463462098966331988201060284110282684000202499707209517669127767983960816858666405212576481930124899201427470407270155531963959178301318371840954777477369830360909430477663926990889200623242570082270293242926978060982024913111433455585210829451628288481637662101225492676121507602119617291623455155531380632669543101965372841271496806644407985171956205797383281612300037640148442730444696934510158476583007098855851779880743925598866257625302940819721285085141066767012620537344150172397242608217504750799585704500245767565886137827823422884327027787051211674212768928144822525036355647977055329610728642433724996803871087898445708381896272837054892171863988003995436187612295361213643949990654581816524796690468946191344504855242895588563734098201484795357390045926690284033751168360592906568668045913195612701814627757814079460627313160662292714723930406682915846076878901946447741343536997110759128294480567094774334943105278148107122669224054136815280394850644051107682994864326005823225424829816803445443424438163238559408384654083146511599299522643990796472550262656069310739158103173627813633205627731131151043966518732992649436729956555322748743322450151606730909094694658362331723185658196040098081371082131209049106910971378232374650207100493180810983756095545448463941056965253568849569899393423908165173270546103313120429834666425747722893641244901663278751594133530644135507322322757240052731346027623850653793148906636516703712712016003126791357446428356128979240169763501690677402797049930168521014009716232262838314181234529460898016807147613878918959597128484200514790344963396886257797937916971141765158958023511109600686301115743415962168492644061215559907523013536753827128179428109679534424668611949440621226440303547690951214863329621070344933684412060129152839472603854431040607507098909207293816143532565600699161282138709505052359905965591923899225931923704350730158585070640558856605208574249824286944084681541005834302417062515691084810265462810173661571007304228594571922351699783087367193903679280955975362155294465818290610551845289670572861286328852195773989335766797031939114394291077037430328738220209865230521118553415372955490452511112788988407057871017102749067735099466272991839735961254901492616986848786055402103948682790507619858087362502111429646712360320165353523187456212830623426874827225356022833538309715946993150327945069617465185822315713886315529834179851768753443491682908382798408282000229819044820011352452581815266820756805453492140255398625553089694838012597357550709878976530624122971342028820616446840522102706865006747373812939329419114254973178585467132471703817934768063218772457471498197797449688090275446181878833521092425538425666204509908280097311398325862308390615579256368432025959973863800214375019567196857561391269695489578541030572327970077271985323473615994921730668668988224799749926320507081684028074689985435490338588944700349757374481617387497774949658977263600322741210688491261196895833873274005944647449493781711462066124893188700178085999136579496687460494993537622849733224768874755769374335170768699359260739401692974603514347901439625597774619353323684992847357649843476114927524811525561532553944241458758845292224043096888662988743299128262172079873193529990256678520735884462991838857040881446150386570129847588278333380959840669868471265905511784808674682439664235575349574074005594650147705347131100556781538717349088229009691424893765253444488516825083733767781605326146430111960636055305498480551933763097716044300597859063319659524768805952983336621508022156214890114107660784832128548511450602408727693222980766683746566761512742231412238826969293480160823526973164108550130808241679837488617872652512408944226812522744636914618288613396526572780542512936530162499132393657760526383189033422078268809993127360822832005205111727893743269647661150714416973069639477644748909776564464915243736390184293711710267113735725723383038928699990557603281043689549901493304725908608358835393227540989311749297779556864401664654375565946045987399267340607539984760131874134991181011720271131789100879892423835355192341646467931916668793035637705546255808879608710684337063854153012240036230302926687859765159679045285355538296106300858864863733586808847836545634701158761978840235597908127586189143459962920387969538333122045326382439755080583396866586943549486320293425408173761496251243453034192130002949691837197148393805775723007773735888218057004817189431609903143381450368968886310160526929047500762861056015511670606942846645475400912548436753652984926993436065829919745666076867740877326751052686068215844818314499114518302283502377457780628022523860481213383126586252625114594754992691310601410438934842787012575831423595970819481224901306972938441509855876147023024639667758498700298473928550217377403295652125652298515978392730523026165666186583714647171810950043643886861387487271510476842853979794673029981526547246627016121038697412701913748990156380924435111461323105564260983128369902978820961467299942004883011862752952792985886819109153317877404482927136508026534635579341704737904944811617156646226465891963187207010074506581818975796440872128813262820380633229118571808076512430874978438426795113982088207602413748456455642762478079277835550815091858513579394086956647777156563147460266078106249874593654421502519371737694238676425000655103918930959689452018698735115390394872770106529245652765904784327962558117341482263134551722304584968259535551764681324738990341241099245054532067457277994415739177449506678887251400009540090588303066131537863185253706983580976527693098735277229448322250973358261851670834913687237861573168194329315435622890460789256303246906061370674479171293969384250745104389970364519770570679284626804788837327661719291988194708080217152259623858823083628331300271797344251032466539773645753717236942415929502213789556159159881530950276700306604486392445671219591691277759989742493767713213278888394161176290436114797146310380135370584082896230481804234772457059562475964953411276356327594095746578340107191281522395359880278943514158670930454398080808114825054701758908999553006874864676864498287108047848531359887174076589164254645475241287033603646542806794897694175106024475831205699277555126025310186362114853483667542759826466829350785610172298818252997817862665885113430555816192920182036017101859502249523988561283835147060538924055358981440288679520543188857477563527484053561371186166086149813580980501079898103409156882068881136935503443757313475528087701151217200734546676860680577562943754438086172832290480375945688847770934031761323938129469986435466799836156104505107368378615213209597578103563041072274948874710172820501362683525147805614485946498259904666919287608421617381462697927501983042936477447301531363190987905110363230828018372859394761885729070530228156921535944511123694554188735066535172497015975497731410591363909836486249346112355535624676853143588335634788840273281983561612435160176013169149907229496297686488433795609242539906155096866476736016665722143420628311758084855358269615595357389577186288623624627918928475229408722094385286692687323268598511763162458993343567086614547702602786913043487092362769543266473727420697397001172662129200318970028521018179330565305016642101467369776332175618464205349655133632994464410829553666983971906145360613248265928436658049167427001209537930168204176018746938534508081982248046688874108994405676026075891250683562192493683418558334272684178019542253624136919300456197460345982904613116538057239778672262255929451488989010039477843308096193956986531248919398033945410496743049415504772503845000768043550950653853396325192921851275127499395064484300380190777590519428814666720927602748542360775579302642201196223480923722105222657216879995789435755564469949894979594883991392967048343801565744354624502215080389133674772149385392290892230558024190405944387866575765790392887493324540509228771346150271334069413578753839436733507417281703795187662256318471750759527356339037728697771744513996366504387951298109325381888326951031161911489200079673803231767043787745786935987488169731598290933592030284242791388493835609608351508497645381557612347302543731427186785512570656197290617061231419382068597758819511302351660568171530758637340523998137955727369940630326928521146196882847581372936689761760773611762006400842339835086876810252560236699921902983034647789732350062172787267240029097734232487873677241101254842940184306253350880610615312909549592627471867494876477881706572013662384370159558172916073813776087118567189187597665945984707981449863436915448781079766896365347303352143679115741759828931222304522285325777486461041958115654830238685292486316101648907066528922824670944456083331436088103091510615643184876483309283447345539350168902153215167101503708831629344803990327288194231362047911391248947382533376357870261756435240343071064574300343382477411565578102386198058778505962473170805146644587410695905640855010880893653949242860827985168427535175552480592075684610147430373124679392841826009481299260194058843006194000739491881337112454239581519725203394101267890384710355961208124093011613943833766738861043872481362789323483538202618245370587390197203972380793698432001532669036102406579923315730125296178101390830184590271070358438418386793448092926735275105520493520266708062248584436427493330251152485416676235908847606541837029741567061901652508913348087207112542082223761110131161758829019867811971674031598891008918360489551566526609715812022417963395116559473696765003488512075667734184929098133746158745159017412519012343504978783623599261864315666460543568894739453279335945389216693565073629541617199517876669644919436921872991451044085588936896830909530930153171238890171582454958520140097499919578657599645714886817253158905190105459586546856605482447471041814351811394002575912151580806390268712818700906405275720349802047284186139846250877966128148988656198263757534211127694093181813296524887516412250278762006806639629643366578202270005165907811408479897176044810206639259500327697348905511304020109317264402197594578393690690547317952503601157870380418966494742990540994361319844160303565296075790943491997291220410581920309002228072340450809725591838758325669591684698287012906849529567819668957109077295628785731244698179757295312556785565470853243410604088054071956622444264331720082935816559735111097086973150360329674476795724814825362634534401777153588009036856145234196673266287684923298278540901909644365654977430659930503948576706912427513031871078069326001334787442529981627136187964937261942033807207660681256245228200317601503142619474434898505341118313165154639399774471812632092554144517455187203682933300688789405087579454116039741192384546593974928755492864805161988632545172534262990551578210556566290380452202496522224886628684550832108052618834129936604636909927394938792805392030159725263880201813375694651571084547670317263415762898083409516706171213275109281879895994965586189382628793290592597577231702139330926338059982675817752881505542080180189994428550408884060246932977670601051186106391573241859784059129468160204804034421124365773210774173951695740864834697579894698995310136335788646805002407961174088229982416383096614714635652743243965842932238470116788410922418625798070206070177476948909163656234307363666013764890205642340362729544509120105911679943208165418109386366620461062605260401927536342295120519692282682213203730380191570708125593912864371467398438399461424876208949864165383310517844539651357993611722341168603043224434042944049619246653783462912620268382929779554515582805896870827241899532195661597490078809550474668664494941879801976509362417004281807408743701762535115711045871263364698398167170769856300124658388775857195269447002222531234890699218916379948521274983006105811421028983529069426085785511423384726352297446859368508783806832165612905141989077034453886586361991969979694960059192418420199648168259903395835613769957600780112832855371324409081059316977290558195054219919191287256249648973879691022627054471068757060542987408243012169848489154855910370258493692819360331620485668180183373297412844276539320960279662722910624717039520757615183053562704094922196832896648789912351787226862999793534378830219239508659395700352159117503570069091012408333154983134177610540469193644761159453956470656328130955644621548145186224755916313101345508907813166738473950197715159227351823520862997554977363539058854037662843910839361682342151197260880046936034501052923177975810897252203999311504074998933566944439859698589851318923053368751897047172326262394324610202532998715727299067959695091028173937625337449397102138591016222422008713434383088412094581381029287025453053232238365402362881189735910826021358391502237051451081986930766240347425302556011625892088342869311821670472486158519549324497366886428667506612764152375427980301174715964948105503745963541132765137379485184065055632100061674025950873504447847436718781051896647730484960311396171431443412363947377426731346968318289758531327046560847318126657616517463602703778291725804018750308135845630778914347128023299640642721857751845570132686075005154122474156046127145568696135541617973172575617078545829678786420296043909902352121192655713675025806296124838560425956004256742411091988776424632277956371122154131844985510915963674740101206152645980642575852732912344413619821909326050198709942633878261562261248186422383712292536210864937720274466485652409925585516739743737911447055026155158868197556924175684559400889252019456692229605398369089058301550376357318426314274994921906292063771901983553335321414741356729480298392695620231172414911481234045275349898708496791497687338843422734874702305736002608847853888542975869984456884393496688060873694026357480367032626695011951114074875149156478447286858282634313914415208856309086733445444339449361635310014757076114984710059059845706430360033409182491205613619361436816981167477188812871108505572189092384367334987888588980159087446367293355970565279811310632494928986999360463637542130641726699322161910255262788664354566026189787001121063817508618593940521582631994435748148414492701668068506392176090689444369546291754760541662256760641232451300225830916466189409702409082966407954017141292896686856190919737434374328915430619743840759068847370455880534402431468474721626653952590015013065194385137852201139756529787432634651464229613823199861721859925595277507799268521370121188233772922074792614225982161380936811995229839260402500693383081680430255676187476916671257737345073736599868576500356002937404119652161271341553013553860366149179317315411461851810803704700793911141550928114884665823049169848629354896728274841494910730017289166899753074779502714556407739004800500605493445101013542496383849991164333140452835743246670399645795201367568732647677564171785079189040289634402663790735311635760921220589832355449254411526472174055599999146440599912122303581963746184061056050614076883219896688845657414374029992273528610628273762552131458645441553903416213632624428486847845851169746177730617387286248340124009294857227718528621967868836478045534675174183016463293499024046294115343859985210802011663246060866974027774959134488562774383859012885592756467244339735589520760330308998411578897832551900713420904142453641695269003908133278718339679501293323626822853262078658823173977272807825823709889261624197399543243110451533641330038537950509997854544154520276553761801590485126848590199902125116607785486023065810323920858717448031911313064459987420639599546761390784671014979369142275458720059751216702282348441526840254423226359514935510084412784388141818448343457527359717296859427720752402693589696876668647111067470796394509006842869325233732988145284254104715744151728526123394313578243011551094853661923771239374397528873253959179138035029085345191797482877890835812992036884383279796778062114168653767513294457408236495868827642370583370894499865256469423935271317242331736934874648416964088552450820228830996267615698650026444335300852402735558636319236200203791963607177920054488051412809982781860225266430974353991158225684742222800339085834550458861746645948663276578303758691811115605296391905235203928626572228477849834485819765216204765144393489165901489747283131644537937762232958858811886283814658039394964772685096029935670786160485035707139953163837950737677300355795544811888675772110037200288517686589077386489532941401448410748547401607141108457649006114863364102932912011574409282202284298395866290087742884855199540831083972922961205231455998657193014256824592066566626823829704551920848295530026719598709653709465517001308596249573128623611497180009472253974408314464177792382540284569921826935123073448019647071262609172204210781418834914275861013489395386417298294493831307159659587559906018314935593619431881426717945932882522091964336009879397822431104515459299547654566024517652870119609659176620675657264243073073595280307700651300495704216642302233975158286626226584365340508954233882903545977157048700641245410789956614361375092127346507442348927947818010389077029529249740748847801910510295298251906481418647323387291723605096959006712367635917149187796772876874914350490934412836339913162460390090837529019284430626392579228983648506059614095530008469068317320207304483608689852391216326389707068685584271200431250402455580041000601954965149134742478783124131622639941775968432903518275389213738618095154068537607176224546448724556061439118435264951526294644914767498486264383951498778662987115313060752167189568618802664727823550508274816349480123428675120356340952209818987070666120309269158272103580500344908112044395183351419675503894108596315856279007424314198620586103351524181384441989163672340742794245311297324906944099925055830290702200435345126967753207898339759680092864103009350152293140560858173314409342148020955336326348322081469012446226831833278957585611770356496768738198393730910842760412518079478538484501102484672227090555680999989520950219200784192615208274586971419960010189142977518295511267445939936538721061016706972018931136339452624400858960298978796809702831218221756868344201835857874728672238962207029326002434540747515524162666215966440884230041490679932604365426861398085172442739875089433953240368479150971396880936361089569353750987050533497270932211489931087246826468194095114187841279616323370082384303866256030621535364152464547279274975227012020934584291537663170345920033410671910887541068641652762852427653136731103764607935750822805260335328173196707182124548557975342331183603379334482105439027034061288074734702143000717883923070726316269074392446463481599005842535868942540780179650968135372961053949674761188247078764957593017251266686101777655306861778535880316138659937353404697580387220854930464833564996260852950755770474068775298200837240830182903644100430418526224010456888252640027958345607518384020638872964272602976795130029451044040237484412683542702866232225344883776357257261890354543275799417066654979766162100467442846547474169259547585259549478406345508567908062650590881424255089561857850792823408490018603499057247946704558752428931588015007246534681780469438105796166173339874013262436368123702113743533714317743084173228231407060687099860253598780146513465638083701466689072180497534808927510077449325736852805512018870795902378255928554459557011206468765334992986342427722850435565556676267016869708981132318986194911414341055507164180151950070681496505397725881637325657507819445866105157924846907460252646043997896202023559174500023353807360877607795574304278101040753176566489646847004831389589959598675596651052013892780588937312576361541951067492490315692493475040854825973967810892171368450945381896719581328910051345691412584597183776705811731793913955415706817300937918445231351762089410204168264914364584473444924416361575963847075408442612839693478642502810450249733447416164926785141487974369620518633604104650210021687686376315261348466867049234262636833208236196859293328939927276855876677108839477132426746828719971102761194931592378769897451578097512509317900256552911941945985350523972906175208523599624954730543522804858406641818953864134541152663048183098461991334858762274761345335064679502111013096335545165163449431267661603778693193793820955381588177391689282592232539714894541360823350446088523057187664434153095723472006996319964933765240865626754918892622322681719701003559897646329439832306075904097491092467472734946372837408865517911998780713620347898147860283007111840337788281882059986048013006111450546971506877538217588369529072908804513394606760494650877895470294792087588444664435312118062253301088535186147748713984992825128000301555093281582432660473822050220632421144897587960154369488166331352815046440322416008625197549858595146245357006984844359224852500092437944526454560540332532480518238963556503485907778206164301832622461217154000359285559894975082886133233910263278563541184389368978990780694831777865790171712537823598375990674817324857086667427296517441685588993219074043494114033514243355318039091271432816146008729486533608391833635965496478063887227796222120789292744164791502355631087195157632591288731816426182154152991270440046632338761976601489556910253275133705346270963407322603971663334236940606272505797236034212649820008989213429702310673870631866013369566074787061562569289673559304309457114600273032333003866335924234870532071161801831079311500872941242886063116726504933102044358543605663743143459503489013057578355800538289867423506463480324180536681558647909197842359664274804781505146953451550579710006770641151767779652910874762775193427128296500111431980894239846889380050579824030874632138804805451671306942856384981980959307562836858906688477500670440209949626446958490369702346462421825626591451796322084652121886737372142415110878648916533669655973595390862248503864242070639644708811439608100863980767531867231240673655405619379298790761966099746111752989852537648009177937316366200203293361406290038255303702897829729555911527049911012114840122241659010101696105207310165227692681141786367859885175308844135964704326388533246283547823272513335514943130162278766845376583831820661431588452538487204372581966858422345179741786038600450601531942736336916872918637800203528541582808730246003761344239831101095182127992286563459723911669351666075846596283897405853060963420655902520569591035987469867058039183130757762490989706012068967179960409814777311262621161201418072167136476987588522603300245481159486338079624916589042000461617276993241992731440436684193993244835965680797476804304798124700758684756702785850359057750171414989899689793618464543623158367978942700206600008078162525534614534440569495213292459058323903801251380301166257409029037829071261511234702867462768278567734670944635563071363263425437658213350178003668117312286624099900862947961693655943413295935464074784305181890035083749155349576291056150759583979889565607852122258198525688711846167571720894704678982668434006641299145131871996901353442768125175747079724591492783863543038830934339270156753546035181245629209178174764664209985748355574726131208891888112678929167952902203095876707692465366954895551690302732872328117888462447420544836641718944257848272494408630853887597376871258582213088507156200710113016544084707768128206749113195499444539344862043079379006968122347811562320336180415253689848670263325280218927373777120590460500639740046618544596174109859423945690464070989955379260789050711788671843969947677904315459969530619893495881033906280650549450056272771553541071040113732694066857943610930092076825668458790600175082674410982847422135425409960749494367250073406496991140557270205654652616886274793480719075049012854562018768607736634637528877047816632034391858529077643007787808904528303277974237536618935521367023224186093175923866629398073728625327477660361021617610510878223820840945392676954931903319638188656898384159228060350091171335748435935321971847918621353638436452234289460057392111643033688994679320969784543570455572642161678766137445325709380194470923150606148420329594259625873474879484672632885084238167523090770801084257769623995745861443599249383946850524283449645281714188571162874370252524393159673296260387704745858852352602827473990764134058930359016708211045925125060181690307336566389094602434827753310554213093288483565734022039316536505197564316282483579644280900295955016734924193074805828210079019288021118249818941557744862315244491470331440047553545860949064095679504751390738370918576370165515015778478506165699020334528446976727225728528974339175095592027373180367299056803207177049666729375631257092785414280568370910764903536478757534342410432550591954569945359691057683228441245244506751448850645867848036360417104187154702706722820599206257694330232438507953636311836120451157109087330060915298499312985432224528425715840125749937923106523580251956346043396214670044982314788371902628872590683920587044127322320387684779425569801164480803327023861680069177215772766303249971037068745507793938119084307403216053275185146846194427763989700107002512772131170766210861641601538136213400759331936976291010098461339366791654355799658722048531584928409976017698973178432312676600348882963958392132304062939849159755644195602614872510115558688413991604015962073061822233304104709877694040800788731019996269231983825358642041856062390454312915371967203398235151013988596439606250487944125885253674671136512308956242881827213625036510675204872724125661982339093196230429072272205013054347890707437197427609649223239627021813874218073272799796507199191661596419129724124562764697454924231309466255863992728020508398194829313656849025252448731694757874117849951035270806438430401241914367584062264805773390246688736777900196801939412447129221783031244105950806952009185708544744729129416721935940203171925737143756552283619230581408957526062218860157502588188613728103122597364088337701759674600503073591326430211401230948131287048860713479845584116491829978111576618981162102677269381492695935014994297376040409710029107651230454118805706484785228638157825867618862455469560521351358968513633946807639221911375743434733968405859259290260046132263885782770847589266084720434637423956179883655099881765793323451616706871986893346945299048753574150989094769292711116410358269517238391767365987609267911499160666802762855914815995442515972749615305082265232237357116273170274543261007534410404609053431756913486145956809210408497073344812964251887998806381034780226965732258914904057265264779153038815963250792151467262905573298778699322038351547739490776998618828376260615963895554728021711492127534444504935200306843802484558981786681428626864013622053588237442217523382713475309070798880665445313358584002613467744845203979366676732402649397010736437176064225105225262624649227715777441808867205272221850924550421821691151985416186441636147443472522344780143889883869811254033864281910236526504232365803792974000550296565039006771806379881832066255974682607660179129567792440844914646989922676830204538820904069839240393429066992910472802509962361173323403712973141648638167804018347086542840655950758441647771389713137019869302171529493771887044229564642220339100402869030162738928376918530147872493285048513823557720791740713669054815983472565544668276460907158818288417089703720062915641354748409822454351122113595288609110564919907277675381786606012341190797410166406154465782558236453823564892322571951023904783124588783165835599483806443719185396669588818358531626003701444986953025908065227169178522885923714493165998499766752488393864821480221602597264059826255968478196443095694148002633757926201434177862159829040296142234193769499064613104664227917517562503339091900680562800836044865299036334368001249672041236337971786770780447633687022067394442298857525837854452817697154120453600614424270145541905431259291490197273471089827866016205278025528020035805011465652197726488039652073692401927552721705883929076240151758057032476107157476089706318215556950139441459446974106813271889824975768139723589669520875982712207149596645389318417372497478479913230193907032119975846261972283728787462143171786557603951272697439495164453028414005552995459042923338666146087357839966735778878715405088504609620107156723590832886577717035654925379385758486657987396122036478690877411172549723409150550278005044213942625069049729056736154880130376346518761780415612055506355775830073842398275692843771460837497856386474762919624898684761732369892390721485651861597861329556131818942624511937593924532111605768789121020307801229285934948986647209731292182679411480702118718201681768612285704809168978099870789543864977075900194008146364159875526295288302685799822809464529283087090230711749381863943722212304909058070724251866987563690722494497946999614310697781226762971249101379852126241599554380608106633112857261594786403933152573685605002976445808449881498417426960557846657857133145588061669559583250466893941238814312709600788979701774589318691215650996097270290790505509608249804095436532295799458508210624439418827175893296549030504538960431091042800586033338934149817603702610566718722222126958849679644413931934244697827328567841522016238591242275845044085955685328414399047087157190626178153839161904586258914514870024460438047155959687303100471183140424322509823503139655375517839145476052769870531941918967897823654470687400003613084166513749124687707736952313672736450703307872303224976703500171649052777417032614796008302957629257086694308359203849415854860887004111423758347172090090684762174147090663330722737496817995610837127446845730894421627382630472973524839262126253258428018238871311114470189695454715762160903856206858765496973850937453912851483457272807755376902629909157532297837053888171644438758744162160483196629806136333121647006586431715203203625233891021809095599354851775717170039942875650097714667827635257574760531718193917812919052020524062989459183870672228730039829686637447051495572944580569686947522439911434540388177929673461731732706574818698110206843799100358160833414147689419301359390623624216421815780303876887525264531674303138759090574882685220149400395527554231479762041615978618940278299827241866664713971600014300539864748117794567917629722187241060948321947926195858041808446567639418619493344488879055341722419035977102187223847637036873918375850200797133672248797127817876229567910138423928594361364008895810493965022544885095588343050922713481264038895486265351867485181340991066438613168735697914170416560201485768568117088852536089301216956142391078339920533098398766306576905003646529066531619418644820548313556693408816013898438347421173099933499384211983441267753282975356522110882637773045990878532734875528862456798567923240256082226836184255583236870946500038272729643167095552306296680346598439392424591288402033772439364056884119797170781924126690634031554168782063435780353699347555595391618452148295786499362239498443074311621844208601370608067515278586298228752652675259073741818305639160634350636651625748543437717428990986471700636367979687371794387501368786805931548226221521685272087149269867218310411563840535537561868076731774821109864165642130544677897048929838553072431707540700090892841399690042348608943948703062505361105579710622808586419560075400122818051961792748605858070405792379563810039987793514691887420634217283705970994185224343726990251844020254643609269906748344997534211317050897196231498120253556194301054867874841943752293102219097767503531719446897932231469832260915249902579309693498436597483351308625878886234618653313422198281956738649330032702768537818537936703378267033216452036231082301306131712594904639371482563510063750731568304510054083821610352076086660364183090479654413017737320268347574895464837825720416278055337985149234811631966190797139038754256701258792663599271114213772044616086137727087936480506138294780457837648531681107420829099188552246772525389080915587532273302297082315005484196583046864752256364078122020215094884652630848333983257681169402267443615448646218936223963754735350972854311878435034597925461928007409327107117330123581377755421890369088907900152124824194212624717297140588339221416807355987988529594011483421107280037215760627007137252076234335352872996830256170944642579020755902054152935818718605923464085013138506756416138498716056617729713222219903990398000070286764788511697099738026261164412024585797021860657687946367914295061565856012914370781207964471827106354658802517126620210679439862945333938876062400499339669347482653716580608748727847402642115028986447528182455855425942290874051504234506449922780158095312155832841288630718752956234582643201221876421914904354290194968706230499954868181316431485636073248320075286989525776759135576107901861183476904363274590014980952836630750290476471800864752306227481710970551606844293695948105304214923588448776702285341171361710305355934257317993669405217880787305142415341991108152930248328357707999116899941228381178598885462453663204586335966084509340090193972250255744757096172308861842754637829552676596318745469891292242996434262737811281010368356438538836274310473358314018328854422178353242693691710758156293318617336087277705159667214916438219581335695397824860080972953944593409925886452057104760830177320230761420019974765865770921232467266851838399210587883941656608713538565166442288152375320851903425381625784503504614523676124937173387616185138319806460324292168440992348876788148207793411892570496195666930274407307149298957877982208647598310711757812692595906432642872055465751232268272032290443741126552129810893290788575780699269653144196550347431379211977023216390457142521451026880926664319200060709061095215881175001571805118583759024448866070592826648647230635552495430998546340941164125351209328237901077094609677824780277534482861067770794893750142223192748636942928639324656614126182524570934107566626578414930780684382872987037336716744320919421997387543465175368672746675437071433624230685472718381321712025004437278965238381376322029791278934977001975677510912853164811032360477672243418006557441224751184067438144364050361638540153777028405351756513175749593569511433027581509144320527312308394738529816398933981634173728423071205464139065559255906681094965441017931103985631868470455758210248524399168643840336664101799404977523192342004272673899860125935693122642081189793438512454142731656797253325176216172496800079922889923338711712817497516534678636031409903951595534349402827227567189291336084165558804558437627984367220532693887093895300071755965048981350650925091429418275005875525995513464760464909581280142915682145233417182659513897720803426726656660936527128485899205148739593594832175797285471343477563180345047389317237364780033408767705379663230131143144755920707373905068758560517342178652976863242857925209174608584679375502561887627296190701362500034599225386840096316303305784323371520388688176756479765649653137034623596894929122110187392751362925821172445193293507517523260906783829604149162121103636895553610063983603925647149484972365547510283892219729142762488125111901046968183678780660017909655082301913031105205070192727791066091748481358979511586213664678830792716240580125906001942303117439226107605428419722586259489938799018951254140340820102989397733233992213906495613005375794948519820279835822735127883016804993875189841206883915864820702320976955026266979224954973803650635246100876311660029612025785044388267833681172875962283433566268094629418360225929423486329399206010742774456487626644289824898833502228662701539185588584410421333913914584922278428106282432233668910479423597464272710473952585404247118289152643661389519483160138262057842325437094259679992466353115304904108256086266453646322583996893960113023407627601999466246791884214938094216339943667367228656718619947341595393456682267026587588325264111315260656137308585743815034292971779312028702107038755237497419548499079207147692567261345862057909106780436797350560752885499680619647625777631353088210119196996785555899563743143081331423461288125195789144874324317497865573069771420130906242050221907752770940232207492450667089827823409577444614488508290313012023642254097794868247707368424880240563935608578036618184648288351555164050404104547817118038414069863293630393865652517761241864593335913981929487033953367454603271860799866307915693846087944662055528752295780248184289834716844557485198728992267395672918764831146430317408653717762162416042208348056668092512854395617897878245191912157946682077731495648818343017550632134211328827011062573582891168681535957860882360135196619678132406321139116531670482675068890732127329429603244980977710651976397856160846318982927412919188719271443498375802569660758146937824647167571204038865133211241027157486664090018916790364231088897951802769066099233241775228545501049246991193992304051514411701805962709272426095085950307323374344317521239670265570046656326627892412177570793665378005518767014305307700271483126824701877823210435959854639008397929151851076465481057203125066474379056394906348807177664551063402743331020736990744149482174451672967797659012336353201340068805486119791752503798594686506009307107062665709744912589894836832903995239177643350485630859148201470596467111712696906397284878660230858456243068652155690464208218188361434011042092687385028182607504869186652859764809961897043069334145416177647203499434809300324980787999409969465980859320871774262754099413227986204403862016585339804342309117591635797976059272607768445415943494359332739834315580038934579804996168273814599600942332667918437691896908385649126878078026512846880918118482731391590849319936081183149721380003776287953784893806341974658773904067323668038247732661034140540445510785413311029449708020918939812576880863013816590419776535350592500706799489820243618971449952984571775478004715838785153858986491887164896432004384551875595309541171383784606709526019595323853038470000885912681774045269358523432747643183130174972408145387858529074677456574501718147509349765162911646465005513815399384379080227393854156072671100652114887873810293048898479429921720400743375250784244229206498786989148646895096697826442538649657224669999770628144882379367263871866722220875577552978242545481623470979349412404670794122257867657153246339007405356100726375619494053372087908913268344883605579753264774597196498872171919333139076130847053673411034406579036161314280743658091125683661529607405280983046956865926014939585893875907793703198937824001384515111688897279319940839153805096704304783133607765240664525136129460177737306021809895045803157599542112278399543825737103394305594625779676846296069244436313796025198276392654375453317088432164538505446860207470837052343840656704569109980252081462744353085074634003575944533252643300120668929474499017427430602165598007984343246026610066732986069813526828568938634808900825024130038286106118211938018165692868600680871039045498959471524838071894199685357534719941568392759895911145410477407621081105840794524021912252199820700390670041438629445257295696431303186218407891293536373425383159330921151824578773264050893925087057108604669801314002632151185731594917665161284429883204895236540525585782633452070457310655280730041751775335820392390549441737471247746104935325165593503314728244454377413507969934958228846372733699718034429473628804636575453563029963443371246987944175059698774112853244481480315691538304818527396820420935521264835565303289604130582877676284182690490423058225969942199366647810372795599087416789927658982926688238995871520309920671108984928906369817158658687489704895535213207937669331686403552104577319545484797439208960666007926980606149977572943543299155727943933177170217476157501633254313784517990724739138393022177473164225718399063878612054392061488382098046137335199767449115019345743307325587049423101528772787042119551894509179449112457899711672470069911983889305282807081607727011069179836099950905189994063538239191243751395119870330887731411564772066323330078189943262373758865927745046861100694329463993378548321418784490614428760852386991732933568119620276200919708433143226278835859758696797968985250632296498940362806342493944097216445033623870241341839088288343630086040307079417088891466949308392166977439182946143900232201822763735717760076662715358386505047589294514364560455490718944944219978279462972556257014014393001875490933134986207682366364395480109778483944887074600383132548428531134849972419937144680712854774981137511744764915706604199056587825219989045635374383995127957876647782768443984559211293464755021668360438419595416247161031301292527628752228121573691783190294959776052544144980880541240349440622775357694000676365103908631662971418287494148316500303292369108367240105955812906589028686691025770838085895549661835543440028187484632653094583631890523625210643574611369429014403471386646772116861595119616374172527982367974630710593106875307224860339438257282355794022269291401420225601229322065068912189544577327289951211073702388646301495914430084943766001559965055736010157657994753215909853845128619422451394685540617836528835475691176025308592701063142320047259489866657564954032542623599728883557640623131781081914714283627777330883383093828434012714946226540216205683236349401267496216399621087073229324978182749234139251611476879919475880842220288442305333143504854273884686166743019307310905291642988167863443007292609806128494942658088655885580858576818015437096203577780254020418859603047055048920681116915831717653041919886712671468984852658661101854812126423675483295243049879897603264179945319831913779618228998223589501514317120991681365924231504637417383414354104306981386751403319206998886435334810672792442545956748398056854954134744361052892868627237774665973503545470279910717404865445465292641553106163071770963044525642548438409172699501543614851715427548514259936688243557920573472881129520012784291616321544173117635156315122738983975334943275044065433819906970628331988405900487271397540060778372747713928183742653173863307392113206361103250847188778600209460561728156066278247316388056728057756928295811050263752225526756401968056612351765455049658885350820867916399499772648607832771932619524432615671247309427672906802594783294771026708179324724002916571155108959439294771444089744117565923943848177118418087320881941509918441142266835729655479516737202074755328757426271272189043840821583279864839215946530018311987895602611702936067326904315783397346223477425241038830600495128010561786875147296069664748867521652548150720497205832849903740219729277210303706955104098196042012556996302409823714380822161773146601557061241630012181210968650439961928440962894781263765445486229645362368496106523155672838612055253246941763015242572932989109230711523106916080194352130118905094851640650150875234551962535372255627198275162307613743364673568960735815046417118164532140454794451690064716361946871698077332932411901151463401780367397117027253501184540891815881928666169637506407657027248483553984737542895238605288999817854102119720642270736975051512687719366085861561126219346056039589448436164958388919397588804171810843257845648560734362288421764562956431209044517053878037640113434036610462018545707432710671668104367972023502435677562476419049035982432537132192858774827818902190254583616891963884882548974608413791965890862121417368426914956244831062947180086545907477074054702557326272869447666805847288937570584090436773029615341148551209145977194499722901531644521722107235893583993661827242676073912110839049911236866735182007917509901659825816132573442479125485630342283925997651210226672156604322616351868823587747608202587135668882204752563281545798061341638161848378113062460408979554185992094847963419617070045110539306040713448010272509455742013306694277235493428556623556791066433620291454262036952630731274479795950830268908879748755424102941011023963466604014935450571032212122986555733799671681290309196795070370557059701172925971389128723674223614888485846959704126358601671600465875995383780588271385670947704269112368482574575352345322666541126730250215055514609903022611095900399954660347470335852388117831225848915763181200627478244924955338468318279433021408327439087638830166900611898067932019148364558871517344738997192939164499145630533151885724855232418734875892494301381597829031984808518307719617563491206469165623653816930447690633123439235177595726589103079940359865057819734121734143185500924283355933850154370714476380562899182795285563220257052424183330653537349278397235798124591261815201015392628779435033182302077981981407031486895253108572423250919055728153294871091939762880875879441468770286034568056299800835674800879242323469901677810154936316740099102364094980927827637534932252972411138974894398132111558391448910114751124084399386870023715803540672912357177341277100605552159442373731426731648999074677387077308069418350927684187688451759625363726399597224999108314269837165367252857649361096139611777622658731688083609896592407727188268682804028857762331995626538521610058897583243896829231555566742044007315634251415866199852177418971016043176642093503988268205256629084052877418013468814007951934618893362144194768644188089288128487284233053075718686695791235102465316896856239550792370710953271232909149245893899864113459642239386689093170382924048635680835736094595280315276948324517469221762054178218564662850801670403312737096157467267159788751141165107454540492223730239588158459268146957000048979342714556325728253256934449178363297969402593747946345725737643825595849191059209646882371378688879022619205485587155239727598884500984608016328468961803891551079824902956506315373498246212546473035830018745630626052626785344961399548063280151092087587932850087928073705979302043896071722848173872757723904208675398131387236306136216624226931424400123522220792561066186407958679130530671165331045760882250919760989680515099979038232071083077742805904254202902929684784252483220422158479620033700595400787822990882130876721442828549885051277415068109244271119683861332546925662274047832819888150243928452295479173960886229639899963142771639449203540859425114551921723286357103513821036037616342547518648312512102706292619500285358546751836213674729842187773391636416345205527157170969819669123497337144800065524748134570691040163138806199819156722957874356970464055322957775683343589299694268062117780241065706085124858008110874320593765599548732237792691098111381502088186527038311123864052426587526039256937590035025622285486556093970312644416274694966690109554293508203855252527167128929488045686160228301440431479338518512256277732427087317859920196506145562660427386342754149676780061430295905323984584045099553585868528243822192364192574058543211538278668942269817649079588416424479850796543053835632884491681548593638800208011565801282206526869073957397842871311643992001599517048987576358120757275256029517768880074306415868230066116938347655855477273274590584667275545385470650578283128384881263907730554152849864860692471503657127224004365152363872148179582000275880465464920820106661704387085841209518661110626718741279257544317088409159109733567480464305658696623227747016624349706671574935273344923343817949812060936389431671110309745994995448925405464865414016623902819750117732771056033234309638955529542190546709200717472950025083153907319195811915055197831296129278511501943715883352200991543528662915152863423108697221730031785613510157431195979140886053774872727780844060633366716055619243800335424050570990246092381975475333725724339357818055853915088546483321885193674335026302614954449329481268968081735370808155682330946684278193546536574024673901067942666613291551119420150235586061465976100380347743530080128377228303713407364461897874260708058863571028965170692288094655373983698297417027989795191736746660479119885122143119352877608021937738612667827887889435806220153055460270115323680395821820603656498605357797063229192873053546336689641383487975439687293733665177013143904977441825287692449517807500198763568901452181242238589868203756567023322675311601890352897259716656030155341495939198536410525369784159840941297261018754140806633208656820987407646675810853210814232656819381006140316258883123751438019877593140564012928272255739356858327952849364487715689081990227339211681586686669363404045379013487078169946225422517730585728873402329752767794156752420222854131888131765500448709302862086950680777562831154064580369679953542208950961149439933217525007720174054778625385751180822796895854085895533292718800744178457481698239778961895172659898317393264202704662791036825606742008386804203579235701415006790646864538227753656078442157658267702504625651698673492319978430768669742666663405011466288566777328311858294640901426602530184987511313448837081779225523940695546364694790109217880410659387353842843275515876527472552450777993068944512697460967436561448215204575250394812728942152559537304174904940121235603070322229298990313723285463292030662003775790223864842697176427612380351398235110330800859546088743450953809315571638672424016298822398374407435568679304976513789098747380305588825962316914338203405660891182810950100877506076916817363475737442039452074361297844424748521930095263533796985101015223957414634450079933489823252112845609026454997353388923041957264824794681634633391058623099963787856186782751423426074222614211621692955829356531563378419945955138113915543763718340227287642473933864340266540607846198131931651510400184037404965990747939130247186658217318723644041247432446204523119986446900027725087300097690121502619229210275253206628680139871451833100260090463841371995035109005831328563772414682575694974608973551939489337929274116827317708773110192821410628044563455144301687508700474871211076730336310689423742526512028703650214465935885681113343506728847830419714803988714889845580018129355598899208454505813985300332024877757113426768065925211031250304859470099517050098883826358781961154956325459630741848924828150458462960962174407119669862472202791146737683320280791752116045999295988824942806988680877158577449946330225446015412283174657496251341513623378105554339463418966005008073805101226451323477326148752202842695640517810452053722585404148940272091048604018353246988360319303989950106011164107517076266514505461046870446843544117175957101572650033171137779392712496576131378622680729801291336274888459131262149158257070660228141695315105957815761716872910350003381486483193171326518361337785696622270605826049195310032922405662358230996824947932381297655220469194070171250081975371339602922233556195796695126944141420775394982148328652380257373849469825274803517303950412699881239943767602405825539779816847443707696117117361367736316369149426338970539347458504847218138604545443817600278144722770703693662347520631224309862743892903842129267790618927638604662867707466208178249512908701715697843181211817306803386067505105421387937738540761887664913604634078046642837530216406383178912489675187485027629714711555453339772028989994301652037298596887823473647591322966661724930149571306963934560724879248976805787528552557142617447168881043795417726256567762257213494927498109953712274348212746760278679554346459628436446155249211006525719635335060304680985648358737304571655629378794042000405156905199882555557750736970820986745264088617684667292525962214484590231091804114777216200358259196160135466029366753384899898577477646590632534639553670181550674315351413081528003467417530896020781757778424417254380056668650890823977348051177820236992348411457733343371612066977416486902363792343312384889334649965261151695947543864905587731643225410170278102782598587386243625240591746140082693763851324255521588492757917696859098808537754992980477316942018050760596862437256368032050429754385807416953574243389700136400965408944710586851669181756721707203229907389419730669618811747047723677954255409604907803657799325903442410521083892343841554830680982134950621485333941090121675344329888671003445325244015149458529601336809974173846932486018929538299926153333464477622780359490818933033555411733082292930210336651935103589534853585737573651339239655399579786770252138724127589895799836255651510349091463070069622117625739498039415419655463978856214847527986317310063447088572792408663196989566904558126943230115070074364310195292012972330685957262632210393500275426540085102355214763287922899026239926948773230988042829968548125707219248676970229296640297003491608158165309003734075928335491404428281053673676870600288456113668750612837077078826281186155214158265378583207193739833631504563373394132108943451717659987376188142230292943082287707268394488621342072137104314930928856949414622346932106299732377652325849743112996985135702228197803278104865533409069758444305755986506174594922085939840324746295876368847259301496160761548250523726672610015588997494450045115659546912260712049883119449574589646423189778889548130293617573739040323588567237252770228661069692545941217734857189709376172535208683205162862725465987020363289347399996397811814173589834999498692170066966243271340313533152980522814305540504482277016839823066350812952339673665123947719289583610837648524719100694607588536180287251113125628700882932462321546491459477266429247031876101438951453175990074405985361551972719878934975640797115137516789918272123253327999548327665946453158401356123599367365974723760962969075176328215633981602207178690552204427563874422639896812701744520542528062077504496947464688848221109385223885747089127687445787320507037447016039472256937853507838621107047940622946252059696467280355175506969264354719303753349504707429191229157635953505762859750718870757654667137850372378903586812388261179196353267896036694121997480453206371763243965445044443328387405320864801083789912348965545985956005551726255075861156812992739267598866154435941477730428328442403389336285064864129672808669734380421852330728098970296912418659220968356878417992076172584437243814547066533592176000916838696445360975323169571990845744185263284929316914052892332679698506335730690186686419260677584431121411064854465846144829722857803887176201661950042104333730649062813753080515822159606167985528088987142798216803866488698954538298216971906034268930149811169579160420782523138868602065646920888702243836920960671158846067936685235185214369139644175270228796498270350013061589799397265384702572996131838002707906255309091492026274913558961239048927777904475661721394204889025064879362063854636714364841022861840110708921956106106867062139831333455691186070422412528515069221917806182195752087195801203927889433708048091433570064945147930844631759721023281026021013212630531687688417416051025553843686314636913693281013177103561063732869201756678899887356602528611296417606740837333119587234106004228617151327654123675579906177119757901168231376448057842086409066558761092428594431186324628432401475032869701953667108381177938423177588921248214141697174126460130122586526640087743669460909550903263340829332093395531178148952515475777181489963304303237623145514197801494609372783855346883040685719666987972264874652808001210138709845650190333616513633948119199392494648165225599644669261380086533783357507804212155467381728969558197917106653043217692638372904072221875295114205733381995926023274368515288858812847482049982791822951540240208201834143767921921864793859396400669140203153190642358120397395654474336406607137539921708545846242381331570907921824685614793622227232664063583713629872457585390123648082727468184405879954805054080740302285108629149000092408550571544243664643246933109926076708220036146850455932235234482402364988333296290461653975192031286807208570317079906050253641753481074155717630799786921159848171083951757544632723128785836212546715932677016958803137536407330257018967691536779246568863923888598661958191944449105827253977996344547020095039717558114229395363680493953762255292911235162788079051993108937914153020193356422596742415303863789780711274496993567359007107539874914630720974678754894793741743337325895534666525986102373548099046720301563150214040468443596121893809697367589537311157347444083624655531007800714491009428143892071693326314564224115978522214422191993168906801940379220390150547855137082377485036244275321278266046341201276004629237944531123173993519946165289863773566040550373196148555454839173937729244563103232852858750485528154337964672662438303378913428859751108996882815532151171814373505241425951788986040518535012671006643174335987355990806194643269307086516377271857324389050229248932781164688259191396315291279263837406739054768845613311514694623437014771413353359189642003728253988622078000906571836097618467396523799515602536735307752243086151645041919453072074317763159040006838729820866922655366537257406980658277743710006136829335899431199182961794541657618504729593774751329224385794968555742420227906177634611685254372520199214228506981460762628135524921145964332970025096094718581948251599487066930435910288185204431325586322924415758184050510178231366276221174507069534688317163918561629508146639862220999853801186439931561306416465328117962701237452132660597904882808229963466030174722781028722210896432208190159781055665025814506009031946103647915242732549339810387648262257984681258068377605003605096685825680165280208226312941992298400304441085925976303646174134605768250226977008022537499114941712075629722673605701298580318970880151832844269846047129373317929140118653772096575597247846693391417106526915587776286022880811887951280179776567307958858457258426380113218161802407359834057720977479280734810747247761027420245615350026337360791902914738056359759425442039071458394725045642080791607919238243937382909028239905344250805382071593289167854509575416169087011444797279011835147361497913524248980010360737899908776495806585936048322385217957215540124734661427055559979225169826783813709030578086670372219211792353400318895514620907911923430047608313580071267736949221992001191069417746205983361386615221064458159445878603733036684163911869036508531208541318107674641663212028494999580941905925574262889752525153683329090284186204587747324948645167423351895990814885206278402311048946621424722666787862182542152467320102607624192471348090929586144460288437156364875451137139247201716767927993543973533428634671573406397169037658690467356507756492066228215701557388065424040062567270395241466802439649063419475925361603942609040784296758820588726587344770881815253488913289078663255320429805334210443585465078722270291707785421568168700843362945663136779387216088520530267876337982266314275350370894501321841531222888152146353076473145391186609549754501132381511563920105662805796559954459772089574672680826750004358000279167964375966406911830172284948916240101165056030698390619804473200823230641110442919805570775250516925101756837269382822435753114451248069159527031621923593762681121616283438311058782760452903727796169685740946614506155440297829546776978822558042053017114295205539467360598069891930222329555652944143729615273285863298392223904657455497845724303299549396780252435237367262212979401652677588425323348298377235793838282822867018572578656017317765541977945721172791002187716552192823217004566691419481242230010574708623600824102369947583242030930007368316148429510168672824078455645765472632981554061973109560221168311162660097865377155362471940739867163359905807295647314329949587165415743085809969068498168390775568680098778668138578895121240048038000333482611693204068538366998077681564740512538815193648982044934951933731037043745912446503614815478071677634352360797670894930619685572730798554569715184213903432918950317993489508800727798313532730226664588083783898909833300249387036400892742727791615729530124563313607072799122841339247947101441890660222241607309722775350211236640149963114094863650165853885293305546707472405737811284532886411563593118902730818904376378882788926861678758348463809090782951865196004515715967577782008231918475269830594535004488510265370234007445743424044101911989312941737284168156025414205452580390990838299654567527360478178948473547009085590415957246069876338150189188409639957764007892741996382317518986185086083400512209237362337055297255661235226307818426513815005416301176713043457462105033487040234052486145001069000290469685140522215166256396929068503600124421254925891217557638487244812282241394663009833920166213379743674306753316883118550013561271394551116027940112515297250080216231885291827554502342293120789388450537741233753158965234449236197916780770319211529743175239289292483017169633314004410652651157316141573880617539242589433582496465166549442467606984737988827051129981516644701983869401685790888609747653635961644275647106196026867935553299203186160477365163147169039447596500871708331984255636818443586521965922215395964280675294922386825715453537117833370235465247803219770045646121249307934713716353036670077125944558695005411587188788603719000801435170779183158561757147920741785198345686362477065186922059664479974897634092212699336707820091404093647939604846306442328553086112706188472436579162738966862261513969522248859045426745860216937008929677505521547986057757519178244836139819473351915836557425300874945534702323555494260394395356128459037346692720912938116411700142790458674596843806425021820815257627561066349630849294487821176977391538912242987908613519019584327700329691655893294277356923639812157144087428431949088810435728456250231490624859349738405786627377752276779303498656813010207449521305966987967136532007290629191128961466891681039135652098339112662483489913810766493428835759212497126241745003169633393067581991365110311015743111572763465346961049227046933831507351607358932502659450406193616372747820631357803956762385465318096787960812868284634706999880309926233241005197833607142791692843485048182906285173233884309282778279448832421006391949931818905428149457039045775507571693244140183344476464055858371344567643881820843611105341820960993955875453649592479017590702542684424564931753460855957801646050812259196750059032065616121133594277716706603607202057020174957696343719262885448278568686685848593545761502400563896023780303602482775990742756313293944596499146626733821823782140079146694294507492412928505264364914675149296968320764648324015870681507414623344794092708391640615331511488672561475720508418093871161663762804033998932706812192689405612071867972428336093821957902471209735157225821801972562135740069934747650958260782861920248599511858565242952365171479900875489451083237767783660731096928249242488281927004713439974411430347705463823084447918891226117414989533017191112345362282650180729959916441650634349050909675873084249227726820902966459661087703068664095230603922991525048354339424548189887646881625713964200536581456784188070874954114458596752642841496560381635807079074179377312974179171010650063433128156455180410587422737701123158494462816410669895987962701492150934754635997609615648686483150575948201515212657368265545439281570183732271043413970905299889198774692687802305835520986518301870650785292046504164694276381810532219825124724187300469222488117785275018650946249900063829088796729962744270381947645259553286481693031203105886747426209112800201249943434806711096913929297020645855263264737118089053725873879808001064186489882157385594223040939282711691326668142613330083044416265370893643633867225060424402518043590759114710735096840335583035113013256362853984314713874727024254788622991998199426636811803695933069870572488622621921188552807667482377419572155764436090384767359437166254679165640104405049496192363098060383864667003618093685617701543456826947758538406232331903460474283792648226340570799118669800151311994155616997949660393133583126168675526892614953500506371439214181208355119523812713706523756789404026748603911544610020859809150566351521682908919958753866412672119383534925184269186906061306751245327317798087602477515150897812268130429930808355043002417074411493550795610838440238703422659302989907216126014856786186165131990494706567070113600839299757988988090218571804603041716543657319333436069226262913208686915722031686621899333308415850898147564303797621026557487398468253704951518761919943123410784269037749487277255977187705484489298600578672956250822868559286949723582652794387864827320919692554130420221299962217001607104530253838218089188847793523650306366481849874351883128525556458215367806164435680422090765396901768264335374225150387045563163329824138728147836200950849653218632856610790858297969530344241074273986609187438101655624827213536220166218234064012398963034274362436251282477809054745005931925242335417816664424777967030630686579570393936209158109597697247713853360063181893665143579928032466699516170059508660313124450946738266964805306908370506051361598648289970683073668252769571119729124124444476668946374100891239671654301117179776265887239634115017448983276208667353834015574936250213490345318802391318545031703994257618779913735050028525110999052287132772008410105658006002338835290778388089729290271305306117756216008342957795813329900881272343975522179249396716754366634168054803518435442009522863482657994487129859519873969613791757162746570094499739357965232912889582747693076636867179496351399490410648930506682613168792091752898771288691243247191129162619870411740349406763164605143064903374412088233340445338348270813645174805082310505161786404861415789094280022321471075171546485058169088938171144090427998155855887329118337039069676410830180745565955825607320418494675432202001431339231685237298895416049483065641102391638827327182682877174380688435502263790952291924176892440110407892327585725472421586934025698489726301890990237023932519419296309552567232960801934611791468816152232348788446566254918323220015645238059705488240377807318583743186972801068603200702248821978811060486907143481993767636190608951968761851625344531702711824537236129103518934627788545684558826635901029838865452876357994786159201655970404496330794748618132913307739569966882658265385096933044875490206181111428076961128117263494337480396716502814185683850142822175192873305099870304803848872140713313947556660032592356800542309055263273099129155908903503582554311555685327556490693139368190079270441296110233701119000002934657316048911369874128289315259290894868137898295793696172255732042328189469664000433508106156321849815158169710397091143712995667293990538049779721922257495986516550573300554749585833575949802569191496635056269436841808314540866124855522186934455890157950960990773706185741474310639025216133602977597751336370194735199927234054830408195380551748542954312390088710547869333279803894302848765526992115457980204379270678778861744660515895253036995124709114023395865160310935840619410526881972621004275272258176654968104877711667052060637999825495977655701197253778939274666987884167158244095796328056521417732502576753110950552576567500669553033444116931276456612985270978840339279371482998211130024510617316716034901442226393523870416115855181234760552631312194679055460071648988274851626573414974166888529182322573185193098573590034208974526748128098844430614427114393960293569163676017403771017542203364633770788049075967659198379327063212173537866377022324106857289233558047303435587879208943356594890641781991326556930447928709202750867035885857547441040297149157120442796833249136601260310553430045745174952653057563506439644802121658795273067394622658457837202412589541946575439977973377433174087927313117318995248107150136844528229985327990032507763445049421613903550379412984753598588603402244183923578833705364840034424080522010401797045121837993586356497448330978851491961110856782743626873992180269963201289532486867128806732291844028988613120973654238408648233539830944438448243765165296494989573722195999977236367346419532327018362098877039760120067841856118800554524417592080005513279080623812275531546750396657049677729356980739074981814419025710388564877579992775616579226262310135061784514176138523655011964923531240510198466451944060173700064226530253947900656794606158918382226349027652815222238935848533446284632224209524529574635274993713724770685192154050909830764745405202443848281802365388240048673409140272244685008647428857013949661799446449050373477816541908531769359607149125846373901635349262584801433590936273875294291512985421038954384198859716324775535483735854401285026711471965302890763024971222833560990508851418986085755253945493236331669456924884725996572887550515357397557598842017793928988840468209945314227000082940324116039494783215643849845654415978922942667696547004171377018401945679567653762821060969032118786340810589823587867643360573701522759431130674210284517173445606613095054811044109192948589597171275204170603596020119700088292505140836715165994303102587799537054108592398371505042515652578940201244004294773860507323290311714174891569524651216548667757458419055634874664006189685408434547353033076773823415182533660941532948033565242128268749815400473722184544162480695692142675547274976542115062284822701410080732345978313129175490067142074163996985355263920568069783731795445666567858273931954300537656876477093746647920097205653042372689461815070281704101938282854040437445478615100517035361217457298869629664476333346044159249040842399793783161608781419480343860402338057309587245643571465379575288715001149225029294397438200245193645847367424725222482324399930511529764972281919220762466535900800046756616147253909134942509010200455559491228749156884934185302883619690622662091674691159073557883857778099661642998524290832355660020843839858345820379792145180115467181744577453606701436131665922444246779041718112167063982320331653016695265949056367123320891296643647716247876247490220511048881003865853033032454295383612047449557071432998993816928072678880070935597135118110976287840598552749501364291791532889719489003295055400087615210256737729209888644320503998602059745239038245681432165284873376166900233138816262230294652483322792123824347510001488284303903629074034541061705892448698317026319201907321587282408416424614597301029821417330753636955001302152265987943477079922263661402270997926625387738534708422842049057157833875519292089332990023358866589565215906518492406342958637897036587177668141330669570714590298414807330400727072629244030635340814208700205856045031924545660508221536816228704421205835557748875452971872878802120978819127920554713874672927561603503407616675343566393540400002915288232825579506481732486722428201232368584950748995291560904433405137229657931320054993589376485342282451784567682536695876285076307501070899274896076801571551461556865995411706140415787843572204080839879089473548418553496380734977945686176128334842392617575568229827978115381311520758748360126741720232938698269387176460932924722995934107265185193959063455965914281743656557051669384260143892974474157842588449589434420305698869482020875050015975271172905506412519981408563076533219723771656959251730397823982097378132647759849798505944719798385670869721130164722333194654378427736329670237867685451917315492518149561740971315788517322856489669530317001567576307310314141924860054021546193935096451814279532051063875659103125654240530208217557160747063363781788829401271910771851387325998191268002614695947104065333326488780228810188555198853765054988635508215292811944581308279258870323123391882495709303524433334275564292223212058040615643206823727290228109865933909249723385861285753840634484203148313911643698903679192726271039734182736564241777421937929546123910680471731423934482227742239658055519455300231700848230879097449811286877767659039612988762153446249590800225444508413546458434667725092502285931173712218071395321907804656639041906460080881359895507595369660119353382835478681587630119850199917197937245078686322065415992780503550454671930191567474471470676223412369180964354268610167404107360143553032238141024930386644066712600309751921557844917798219995126155981653843094490865133646987140874444724604733627333064844256110020729227672092601022890092003389930386177609761118338773560995882272151374888716495208606073483304346922956638817460425692549809035173409297123186699634576585600884941705116515718561578630018171815118634135159663274399599776665366255291115578510270207133558798203164856401793852217346149807413881822813506728931005334064251212236803772141797198566032062941837772626727166648772781074509159730578956016254275759977006939562933266102045750662294773939629308026372458287728446001516433673449735477809065227936270528694071014174514839964848751198587905728635326082350001981045083591220952909199753833882113167049089067062023620563623317808198547187523779331735844384141873203554415624193684187841839563773283077768124051032924820310755476632351344685661405000395668782406570267552172307246268379616286507347174504970988850058690627343926901366424919382906529648814431581155267736325804666484226866051921313457927628049383349560526939286564561462460617696135986607048508994079848318564870693924241227048396909874475806254871869427816296323396341620148385138727439095044862167832831216326184062148203865824515371292936657505684556832789644618641269387334760515142158181054086145178534331432285186277350834101946600991626097987230140808382346869216845362823889996533651897383338173667706366989570389308465820701066633296208809877897433679184185974045109720568406093486019960249562670902045502749553176759541711925543950298125143699033351596500571333221376749561187088954521795820418621093747343290905523132974170551637837437326611425803877196286703033157762260384671938278287348005370889126675930702005258447900039609398007888397276417587231820049031406578388927258889246197170251956883014557248044748615183654565557790099147314633617767815784153362236058897141544204570189257178640253295603400505550016712017103457892261238841285903011740292686254255390538596672698707007168873977455512692663196883505097985890036218383271072477879320540136783309415412392465812328781095718726393813870081374539566336111455797912316781962693170024057515253106764714986670434795243282317499069994273796901223215163821632231558368963958975376087130338655167701433876255461870532419103929681186503440972082097518045499340790618168103262781613601520319549501314721834903532082280061536453796861879778927645421086925607167124412864928912057397929990495365620285946859660088080125043541251899633581125152315995737150938703646635783155004266497776214871457641067788642373197775781989410535493056911309096293899018553357280606052434039835499105659814775118521031895685545408169185183799082799542226892335938663549707172053279698283001376649502853495160410951083146706493341679306613961627447347824829697171898598653602970745913910799169481440901780350622615589963728718548032344018892053575130667837822747211892408995756032190003800137763352585832157902460582072418182894981431685176182298400699809830539478618999975120783894824768555176566777172114704966381723945764077394597836538395368530633599501526469651398390905748965493704475655119993442882832872114130987343406206411975163443621438652686952801079734225580819450133825865988832060869179202622512933366944557235948767720161621294698843230013084590503678395141422186973324113316974943501770962865846638276735858625003756945536082985425522376864150038527055421417185061729989879639670963536920846741659831998283560242692535807699433076752226280163021612333200237857672981724157493950283443625080538387870022957053635504528835333982083815483034258811080881628916773108452453838384452469668335711920062239834109619477226109860427729784656815733443060791289617921937420684313692008393278344592153110784197782874792722704838718773091122472643649900720770264693844866445624235675992603876097320901192463858337369579530414801330772769152953960624205720046672418992969375357729843611651382762429620335763859419951261263534035376948451895569980773685941202181182634646246773205283738698085013017127912358719828542847386999474617307479254779773234024972154292137706855669596647945593993660587201838111998229355813088044789180679808103761023729552022243699691922501418519636708544018200286528511440568245965447942563652250431986625456814405694471672932487281036947390375774970803812982392501930639662006708266380478647856891871290357802129159906572883325519879711686066764468827279997854830205448690011110896400694515743072983999721884340021282013625571059824175080970004084201625242031000043923129961543130616549916678277343140762950538097604834835311560695181319053289112382178157040800978197776223705132540384913386229768320076335625882999910363148971064251900842221096164303264780874082729547255020031251250938237403373323949343601562640858587641386630239289368710152864879631292401508220497452274102191097664636307236386612931397174658184766780072713952714532360127704853851136473215800357679362403481970467546271513426453617300701870231124504474390071731286558458591799148057427732185156874829423212697975152134061179117165427352377636915828026017166406485945513644579195802121984693685430245223282154048314103318469784942661474941195911594644388719906697096240984993251599531562463821990689046737024840493816202557130657563491594531220420412745944883191073713596580841761292679925493169379196700768563851761724193035971485648205987474415234836256209019605692118519549356614718585211318089473600506616773797092970183340511410534403154469293689453503283954216924534060819238671516158435674234040957547902390665401830169677815042796560637873371561882835677614328442819315688130390711148608578396161064595160121438243194985113068842715299083602114419831690835828154655422714016319238021343899243332022432272511847212828429959408832327575567762019126492929272433265047850464900986817806676550928399320774848786110056760514973836956258624991856654722395749565283646452437211929668647440039255981253758169565511105130894327045757467480313253250913898092683268945429794189388350919977368862915955203720638216660773566177399222206711919776715329566842900198146003235589647580528661254306009729946013151614495882722128690182249748357627878595496379527785726642492702556594591470496264601170177109787468885293368632499354947469701027623781677342938029177579824430403618367589809982888772493259749165737648130035412587495759005240698452230868651920128724627020655105503154091678228651509338929926417730075911003596520005379236949723219121782013037504965189273540733330070663892223095501945732890232727408668544766681369537351870154960307708780092637092123857357190971732806027379068571423664985850774527496916894591329167358121451854619189230224724255138862135326914114900489857989214521901184805377704886108569736778573827775034478135688123016782285779479264577997544772598760697278615021061896937105502230336118978640618082068549201575633025889041863913177660136533508484339423645469737390046730635371558932715816037326153751819272456239678274293903525172729667385696836107597736620006230045428548734927314645232609859182046303455573437628669695050045746115462317170976490706721584820631183840395261567034388684115440936000209001065644591496574718557020967884783436033701201953417665413479904727101367273722409051434114560962637226196192409770050349102325888659792133642319122932650775518099870596974388036306818408822633533744370665554332431287361646297416690535744126123669398873587353505903902093717609659736374939106772125637867348416794081985114399877693165271870652390236885477265309505009612012894069803290657347333848640561859548964491852969523036446038996015267802204243072264882805554748524908546739989233728438942936163347958627680477521091261475900863041118192834050444374674364160358957979832896004716092370731387679042892597667807432215806585565882650626910511339023086870623453978018531742503166111308358547074197068735839749095426119185749163780809324436138614013127022827087456589456311593271038729603768316229893242930283204522120501920200251401124208366441476279991452174386081598057895739794396060189355056609425276840671560860658514825264619184042639350777155016721721409954476777381681156048379294389885615184973081357754193978536127173094750878742815120860173741433291746335057469603527065987061636042544760638306497050752850192381313468552290257058752882002943823895305811285199361693651059892064629745712818367273478542173823232076767341266183756560531968378392858421778441152634514489333543414759755792066027613206072538551827339026899615952427800144815952451446965801055461562722560171932995682032372982936544630508935902795560771857215543409877321945455090100474477191329454367118981106881947770354717390510810924697403493382906203275669531869364796511549402849857998729070018891700703765330919648641093434552008721934234587468294682367436504811205260533897200559101663075017168715475096170389425065320140477669969160284617256764869143629957784892305902752824854388638362599973509339547457828577475744634467068085586105248233170921370729937886089501661425780691236712371165368912525219010827257858817217706992876404050740879106275600793812765518973289684393073134796507600011520697849984442056838850847028732669170140071903450583869509427912352164149636949707881854112786450854183175845801686038169933155472921124259705908856574141476703674611566091756036090364609835640237555888951640015538628485246962472222516302282859579198697587137929419476075544416141423508728158669655610511595362131135503498547537630158412834602527871136508508536707888595980254782727216769971920762137923017634174735230581863689201911199233505991135331734364736063193651494205061356286370530452722167289534805939475337410102250513253160333226566599529578718630953018373884920328585378865812874050336996681561159125948406029437551217037466157324910944226896610045344501732823892888479553667490932859917688390742632783055881285729786538708283736937933040269173114378592301964344256356462523697149406050963094720493203237942237838932190058989109451265694423969690787851055210868011418232478418439181234233954634339424666172235864421077022403082497520575766393989478803842188237892796021603244323849590198868457794440175507460691402162426771048972765981040154199706311966392507126001813624413038574427631467184941023609189361237335127111975661775241192843612804574706926988824651319075368719675061317389152211396612278411277544769004112008948082749135929311519514443469025558017875677537362723227503970859724962145001541850032284679227212147116869853446986652036955919294219964037957111182299033438731703438092251750089129806012326964252211278666133693605708177642381440912486791450273836462017216802805228896150155777993343758778545234495139367657820705364799784882102192168175864959601844841346508264702006831704697981292727690322690841300407499622132291926181605222545210087889416623428473071903607377746120304915220562419238669798569923617647046617625191306235134246931785940605385582198461901987870723214620997570162564494099933778222037379745939469139657196064740105877147141613658352973609962809488508242637210426987914138497322454994428052748609205939727930408160692319049726527464329064137099998406534616593019868833861969699109639055374853998969805954972025851401225958915031276585570219179858162208907382446133002347449455176835262758742021508998860452846824080131614343302904555324280637149252760500804697433136484618137283403287500157877161768564239088666528596752157045795066044362898423522928874848329499697123760538746346654362362465582575477794961438003643723302227865295894935550096495863960163631970960304066668280227454562530980307946382673192750057712224082224253806860086845821880072743372625412567381531274553212292304630464729472882396138127101599265278750152785070289912928390062053671306386135400612770250576798065410662175701148892410005604952848954969463524681449399078304724766937415780366504180001109764250633446213062896028316241755857691845310198090398435008015505296764322151214759355940654686160219131140029095249314565073572984890493562067493337708679759326898088758125974330239724719036560483935752356616597584590153849167806991812672151167638421224421091108300789726388325323656505855612944321920596051434142158739061538000499252000215739234400244649830043261701068833758637975862064379280938018055414243148489652073796882527158608266242144259963625495622156930840539140108037550014044276382032460232700898489157915339199019669356585426017542456949749171344947731808082789962814273834422242128951941756887473176577865207784707877394602178219035120755303298741632511512877857961012436881301966472629560612336439913431985039976530227281985035487263968502727686612771443424776781818458349727556067220244695129415942014225157287689939334747403702559473860039752045848883193782821983050196877092112282678855506219002614796421635351260202861559630045094425407271430226472678622378554941384612518119806794890258696359828229875633518606899120708924871399796249155003163998083879526052129242767331697330123524207319232665127959028206475487543101176628683918729846548089519782456747576437026377311090546249373783260046340355882758024484181643234149158249258371078204753967769627437201470252128749740663150522125810523061586330787907075538080385060164952903643283076198721333333475389945527051559318812809174709516229422587094608680427259387125262898949147699559985535076074769840213403241031415164330925930531649695528552881260314990806054889342377091374489157841725878963177077056663238507740386333471277113114939599439380880105443063048362752202904992612504404753928806959653943493376870572372952697072371961865958761062849924217870320288232957306493180662032208603880564644005444440529693002871206770099022258918698953497277256585267139081611968258927227774448548285107866380540871758295128614907028174384921748171623091003095324671800034962489066436123975735038443521508400326838949503997656143385185173270805865919680214264757189947699622378373430562021201237383383899803004771859458446383927318655710859472434227589879510315960046276863224171236005407337167622814311260812504295463897809376300386457536898150172611527599774047148742074200026107389089594961026102214117945188620630544630778323534932166954613914522783276620229159832463970700326631611152565656953918330779415894832613584162445679212561987369326356746568205986473988663610690342679220706221322767697919201069139693750945078087902968487534259849684080600104513522836943945830796809482620689156096735231701783752266632451922982989439691301335401427749274603224467801131671397459505532310829853091929662161043565942160122580551338634825677991068907596686899395308841989823390195767358302743122606327344367427363954432379400067240178593399889446336878904382699967396827634679605395508804039382435134213542449687130954606991225019863539210096686738021887582714500174568072511465161100484815260030918235707595004947253106210389853632037409420462943449405522506616714984947851235864651063244341188198372010378937258465821852143341644733949227012930772925985598646368402217858711274464422700079854252653184678539306405306118758458720708864475937459593946504956007890820494695256411939365358672610304478268695875851574476550814078228420562252694621348737392274011529449421750438458177248082523590123340627253124309466714399498416308162286660225385197642622981024864093241935507077333236008338125301968838820593700975084103091034383317630765437367186389030748523592762687160533389012757665138824364876511232902466721257689141899826113985170745551856644685940525243672218504607266757913843421307533245110190798979282569408555880147402624918996535897795819810176339947862669218716049339585978355259895135817208956930524032690071688019653729309130957199448814645289632364615741285493339225455365659444313518610416587289310659986558656853531173575825493859177038679073917539841420249160555895662367268985428907898867515369360202842484648737477250609781154042631328941134104212080542956237812407026406613140925612783995713628740697274140405838871070324634952720060183053457574985880805044357615788966595044907564460692527691862800084531031026599137433406551744046943877113102207435774318498583349169939182813916178011515099492001281064694667939998003664943810484695691078320349288974801617300588857744662816946715787927734154026254773562324569135650281655516125236898854957513989450596474882905451480020621692822971956345052362779849533046784474262713110273721003038992278947353547847950764994979065255929323722758070248588181690634955440194321570596526950731602333402335653093222370012600483399288579003844309374690828926940351320076157663672932756460010510509407751683408114331581780168727041298642893490900755984930400914981020342568959175630968794984534817226728085987433098578847313817238419270908602669553836241332297485823758993278476211070043209999127279781826286751788319314137583002733538502489293017054141798676814412203395264538636670363335753347692578000997678475222504708602326526110389086429716033403366377536817582731494978939872402914334065697090828805253181847650545429618743196882435076088774758492287727733196481338983791471362481020398718801093722705960148477030787440004234422234351403408930257016855246625629322313594866470416217429516298497438191223976122876758963685376835015317286840740319815665199365548997977095354203282286700399482113943320583011573750368801790975601181437404463275704132526756748875636880859498826914055321313052267029319651385333068259444631492575214423085376517231328799992515894877888220889831005438109073767709711508526298930723353938749536464303958827341500959201861443423018623794813257144291270493171771892058021826249464492989824913350124139394634757003206056884881489183896355919316388336295295846387715034351923906026378831244268253516118279946621092551642559648809958233353930748449233956137120440609633896502785300938468772841471822317873481022725582464597555689915558518410816512295918312421798113788898809980872213313818279816674641741124896884746977343138678657571301256715033545408771719769728324042756698000145819924980045531249842332002665082092161821256402027081085585633546229301027953111530756599476865973219610775908193524952681012523456675293840441429314925502219323286871321229097615927426495445241106873568028568878291392687390636523205386960383935446032382730095991948400831074528606457775790826479490373496565612914863442112694879940205378809254529755770328908619315367105195075529195364704758621130425686429686993713234352249105873527850840325823180892348506234037696011965108621057384837707581586054163175285446367984658453702275521242583185815130546519866112686087421452081240139629928414869544312228448004652950082348213250594589451053667264398544127132948935920879279624398323861472460084745912176495446185266157652133385019783476003992255614752119540223285198396803967416793401823177962815412290872715732724461298210267690177691352695745468559085687899645943708596745364643116170703332773055554499265787744050556274323978276081763495769983653697203962256194668956413975228554109535609562573892268165725354391838685506778083018096459367468546479891628759399465464040833879524624083251018952956194373353352667283073313604005334684568938289145035979233828310128473854246405240930433135140142701658025471347966407639190888345838050436069269185538951788363901472765269354897768903209013617037122974923362832567981468956866608442089345865543068384503752789222797043113734751564911055633506350477454996339588142926898300230052240336096821985952344963662162436045135951337600763414511064986182683484403329590241878005598528449564696062986790091244019373148994932630655536841619705208942086221994604498497226798302854378099036610338218824538295170583594978832078258409427744797803790869058023120836936621000377087424356654503128604596977996024619985844465187039870773854781918448425581342704134675100264004923315219276493922945268365749906486388828724555349146209905815000692933770849932673069558466026250415136618743887101459698279782691571666466784976202376975961588094634725103579440923280638556287403651721798430938421102414013775377733295498710111628051397510365395803138760661831277266519499778669866027750104569768452390767525250908928753387981839824030966437081480586873294162921686939069300374323097222803662181121619299166386204537343881245509446206639540020955083674416755096786986704549556007089616733381488106300531240883192944576159201605766401719813358957155643525362199734355564867242124323577161615286912027780159764858372201931938633843015323232836097366690290921037501063466292833921861932851245934878658379392841742963037840728549774954086172682454949535710491022539460741742306985776715420909908449907270704244322724649099131666486834507502196346853647679334131650613523348284452533658267168538193601957178448617433247756887633983231162632517187240205612527197066681405226571662593976685114711648055255680761879159311710737262719368886392721591038059686366166395286884793501580280059800836969746862576616340250610733888113780895063913651815201317113791632536112510478285229252725310486013431638486593206888743654997793684038753586777457569009112880871383532559691137487944676293681628556822193969205727714154657245436084185265283341282070670468436764738911790087671867862846449728112462456475864954913317989827505019173773157346968074312506558996129935466602080269227350351695136833457502955727228838600084469932192457169345546101958396979941713777146608208940715111252624655340740647835126838092929305249282203059047010512892708786460119450427559581587066904935676147788120743004670713465789873542797049620947605292682421542650354123178733750993233731608137622807391947336025289876784623437417735397548458059623963766765710018049655115625523002373256553553056103179820575115595735155228890653579064037773784729901988939875844799838154670101999124439339205727951280339345263101371117503437805187469217760126305419492094051638378050451328558258654259365642367516945745241417676731580884024812496592135253630234256317305893509113097291950878937717761413872890757104060191738733197290140019339145197928059386534789211256984688214179906944139973103182405808770867913667026760858854538065157475873884764172528020087534456678946034168506677191470130618773808720304454337317473411538669367093504999258571925643749220559840231559717336997351809595353685098879765808377132392336415974055392143813788835652078583301969131523466544855029123125879887662543857366384870537446551103562353348150652023659383292523589537568901050867855726797840946399376705471318265057921283256071637357005603289785226542022343706319051460902749193423592983984301549881398867188613907048736455473276412100270758958582651023538451491771994677397700974352275700706949962293044591349253318549792038068986037888624417635764110062204511533423014452059784570468928521597355578456290428964658161580011708091256199485599885788899061863188543217912167659683307631198720018060678179986771719440627604024378697345857695620322953045751954219866634240278325104582138338022412808385138542661953609203747282399961682853048748207077124302694286482556483757587746218547866844658187651327598002112259903143097266558135119798106843519304992293881338662504543682208430677611203610446074176137597949833762846693013689485677397026126580374232484862318176463086227210281146049635906369557062063937363198861235039151326371065890358409736419203933915271308337281331517687263034421177265012400088085700917796778321011432195988316131929973296419270232373896159946788262173415012168401814433537923536063208953743395746992114625850251384157487469084774339872559222363607832320489413277295553224420141206715886244801994926244422619024810621878675262961991603697876082952663696972983216865353976759044393119310176640413677820020801536276069252336545672895009057819560106923728131600668474846441157672338328900782613968893098735130964977762169691973074058071324882949094032530481118761340984213337627334952627985091730783131922228020439830058200353626189653463833429442939505012777883676063033910572376450342022863253848278635275455982856102582010566403707693179450983566823465695055152381306136223609279334694797426075127616873169535177191576855816249937410606531528407149726880037535850736594376765186493519146267525646037689730312086372009101602631135704475024701896963469826790373765393237306097162065059427661232519054796132900728141808783696529048073286578651853530188763553679708450168824147258835887862369308327192870074984165822491011037579230776897917243273855059828856536629216189883113993777749139836069382794456375294853850996805605618872963293795481441578271140056482012075388540684355790705873350460353552091224384212458842950407557705251456836106864329979932327562891178422481868185944089476589788446029993815488694361053178924419796375936658742412619921381753600177213489608314730035224826544170229042408549816042378427967283745146259264256576620152994601770589756925996976698026281011087062065713094086882596409489797779635591429829479245907868956469499684210586238946370223726984235610786215535778365231634643486296542601343143397808324671768527528316102041631460182824525859983225728643449436017331652320464847699619852568496264479281274533330514834929006330590230604878245688378142827778033133368553798721672331430176465223527044224899756313845086856314429739480632467927749985560015744598232160842401046796691067436188523123453134766493778514142769777411956087228053561041841042334293337272766959316337822046607689652518615794556379533760088405038588479956605101787668052843419632398335269880156065100280808634687306873146819408021937458380086202087055608732171887517889771247798687146575927372463836039943426940613753618326357987448474576149176530597113518084442630918059654167860410224423168490261567950086268310074914037605762650679620251467633562658523081971670628122770649376680624413873481743003567534928809525929454533087714926235996166555627590510475111408088689081904018897105781513811932299840770618464528942539559931876676637469026965019166905424892192207493472201302412116519422858254622852464606221944900209896188013008549367986197297617954668914183361017784953285203481223782273402126039520767825744751955071455437239582865291482543143817106665170743195409149462725660736656936331808247153664587154448121825788036179351450654617889626517214193879184122033515237498773462803940549107013021402763948469773432500403018905389885551100195010463874083021895494096794448093731200844414930263719073821852122879809476765680483982504453200514683821500234338085960436701993640258767705278757357477923845229937089268419459813573970750807527490288160642322595141435917130096599296028576880972911406263447825334714133492903336886262697029332424434492772575763358126754096786549963296631633983245281272198298342528474385404187889480427874877167196755530852881837162098183713457099568873464310581009956727477171029981752484465117471381798269283872237540722141856577131002545808901632391033056029629104950348472580844163659931215342940892667252515194668707213487471693628201267620471896237960256619504742854966467331438766183428361155818130193418999930437856969099615501053354551798479530818486925241823691369863143367233297552422795205149583023274334073933707619634886944284618939503009040092226190777182095875250269809677975705224298477974137926113600589819821539357842278221371978256523282693699029390342665963348391987393691040457344475532484517426733347669890773309202413062148766729787894670074043820940849949281880393745138329298804733674879688894881083072647618855143538592343392965196575018075130552247096791580511997163801423643913696887454732412837141440013844357245218929102175729424210590438672623218860429209093195609138731881032981820448995848437199833740553872465961627008195052680588606873680808997336903149901713524429334855527864249270226248220718188466102655173045911223968664127710246442245920179619713235869290868447306280957169814974015965169989886537819062792050288151837465290266455396613481932101336584622516609944052167133059770197368465487359853055053493913059293890193950666946673805245091291734140673609306327473205061948349031316221410583326728601329856869988173572464214047265458587024837629175231246451985673838992663144041264859624337111661616649514555138013583466513242236593605702052463821157226692559892788234145408526986927209323081239149472225944922446781566562856559980097466231149094702007677695690754897345920025722867275711382842907919516138984351044932069158641392568117458433097888931261231002019221367590938059542921840070309906018742423523335891441692499582397715059975656454755773148336001907597421480042527759121439747566757506993875939527813581545073626529250535974879661107616204716408212359998589763951677450441684030303656452202805593891566773016655989843455718704419457600644127121248207690940645890813975501145066074066889434412230172937015645813122129934527931165543813286090826940818688880278068187061338999468457601306736943638890724176982177724233486058875710354888288565564312105454442772888672106229280805340027087832288814244771852782173884192805983114531993739414380099297275980332730493453083920364419172556249023326254932919862609560220447297140991729464993956296821447110142566658265946309474624345645020138206460187313144359506991042320915207285578031065702903052249510875415162397046525330666382094507488664358299246996573876499011487645965859325861680828621878528386946090465466364194809592759982998013551951400233160458704578720554763114824420391794543728727115914658083596701184839380819986013348661819567470373483208516413781914400517404720396089778328038608837375508606269248560369729874502191944556573288953135321711842905624572362759203489011005225544236906720099597016543388304591016447272408499374591759027856475474502550705640612141092213476763861771326071177132423546417382578400881003020366155574278904927218159842761252498737250951927311790551614545256519311270353718132748593115864348322989251056161637955451714964447795333469780033200533203981156343896446980098258050135786273170722081442080111133851298734977504550070040227689527892611069861195911226135573041522983968372967683312454571013980675594428512393818615440120437639806399219481086730489839572086484323090882172000191492526054260783467489874681595550060993254285146511762323671785291090903123831151143476390130038499390907367615536770431199897346828220391578352731523710274182526202247715383988603319790616444565098078884108067089401594493594988169385439822008134534153962273536288187201523400431321270083031477701571790262938386590830011970347000225055353903612962235209908188284811051393153336979976105301711090417326382808796778685694126212739625580959657031044274565424197774460754100600226624253188161329091225028627707719446733922739778887015985388235639374423655961601554135584686791304533071649857665425355416500080270489317984629862789814535856205727832609519832113702504972585890898721331714744405952771279858055931586796608249131288530218659299619266647713678508205195168624488895953372472999406846657176341723873149969144709017128324522264667363319535247789345958377396273870432771630383392975629409491851333065638896371440334753403611783647667901206587889771157219007415389401219894245817742238273654997725939639430696230397102846382968583733232522296161223204868189967830934440336269569799170655807238356772720533314713896705789796547715734243266343265072843406305406921846444565608495508813403007682838692066199961883007527300156749646328669624670804516144448412091402031390016552131053789291706601944112996069036007296904293440312999518065742144459458995537740894862555720618721628104717943489978507161829943084260425087472273843393558971021701289545970830546763465901466857057330784021118091938575313433446044969847149926516045060935355350565025264962296229176521160948348553654248684656361909994095687550224301583059306588090355662231010843486015700506801177520035887561910841860891797940958180876620954879889260967360613717051055454316114501530929061724115344529773682116057869169243761137751259725886178713605047504974954960653147663668225679170594631899511026231416526292534949259320878755930312751938950169546687666323646160084623526423667177915369328577960035592913029881102020337490474295250432791865237281412383441286083792114322880374139729173475126672576824571896735993576422158414626753857867489919591269392636381931571033336605399978237678357181092537891972599404802594520741307655521096455406014379546032555222534818299825867632252698528286591410747547280805731955739097496294174351310009083300002093446111972537399947247586562218871813865187958454260666859855977144031041135156261581233284233778862862521344206609519982455391396549333741258918498287500132444838895087464334838778980730141878763492715225594931549705399577306908018253473562804480595239964395339460992142812688057905231418295320630906259273335013783267969945155136279987680545113382563952172934992696264762865154085572698719944416506068920951814395716505674802491298508437926165566177842191243165131057452806217741417636102747825355747633474870870914416487217084844340739220495790391160690345405988126585442677376383362894992321036604596832729772368671487118910253448249984318168900550746492626273729813086465083365955958365323002134039764307805545414981754904157014091239068355646636674440281344652238866158009024524164600390152337180006861604795042731390813662767353384428252914957358127988497460842729180374812777221911974144787225734380503124317602091321659498206684272984823861931429033301612277713072006883476652225439165292469452320603597025282259332045867096348074058306504120674151327490788313306127300339942120598386403759490114725521380588806905896784373498737118535645797859695706050071114680537351072378568203310271755648875841644019661701242325372476845244197578344441071453632904896850366742789411851643832259659676618047729842080813977205566722324772175110244669248796539045426038421241735025177345103437071887775967644105742669507916748120691213278651442711841974074699693153098435825970344940948119499276079086434190390608652072736573452674174277822643353121194364557084289555856098772018278599991805080763008896228077857888237223444062999476305909151908594882013175551077421932568844948240494471568958492881430240465934315387402161712646208930280814660097684268199068566545615461209136959400515220622899825528869988545444029051666754860778428991715743153419399523512677564226915206754360178253525672536449722214382165675088064866177788868844112510058329407013383025183092274424229727940521352604950284917792558246330511500026764332118976799831438283220164997170064951096953368870390507137009323651411890413959047609190804188154633760469002890248691916595795656425083946197972075950891763592091759228262926849071523362316757481223446427805041890643928352582771661384681156124117981885498519920738023740996357339558749731747451490400874309834862903549864334926747267466744784828712527435100627920577511793122501662413118509137729909659969600444094186423446248831445063152416550004718382698029579438997998793406211264726983636742570693552340726791565837144854910908702229937431411693942167213105543028704126593591503659810542046375932673531789360651959508088772379522826014707471850663095281084159731391860105542983632747830207539137434698055581568836262597298811487354980705644123228398935483775696030920916067222852187528403142813780488754615314887603572940881340381048418242952591533534037533357906589541042561221918094225557428524229229147148483787918444128108420235743423423538764212895634111262457684884232775767735951503308886010920832475346800560488393781875086145003082842531091979678405270485279214242697452908832109803137957050326143464630740316204319173268618432341571757775149764690255489162322073082413305174909867889649513950466634135981038967415532459650616574872065914457417759466100357588409194900420140327417270565775802810411886005131477454564611157722662151523450150533874653490947545905324675470912620476288608518118831724866474163103329077017928455417706426220530220466403728845852074341683663161186056429528711392315193603514609637205220118030808433376361533541796342122709773046548094113350338951828707870717059804203389652923827918380687549451343482817741482612195989352582636180721080265937228878704443355832973035245904456089808486846385349248740570971641419586162116908652302274393172732378255354663268356219546266812482894977249562694571988351686173545190752595626057849409819934059703956272282815951110117574231240124889238551321737031448399424074506876310306421848845731908481349859458229569938439343133288080256015971669326628560687239422528574625047974373272685103601358353994182690422869593254850208083037926957685586214130710152789372936891128969895667780120287026893110536268182814703265165675612281072373761237813386135189948263396579760044206064338386703159500621750088799828929969993514857481518675867477509103454605288902930014220469896443110836501866162502599621521879443591457711581181072421100130978216301165430900097237822020632198652097051366318641698110391177642437446695706235415407623735950247979316271178125555995317736758012529181929303114853681119828167967562315909163181551499875601208298245386332014747971385857970576191046563570311677775606732015795525830165001918215372679539407075146494574941810438888673242838983082420620533879272412492691308352614439324885954668066176526155565828735183230362062914273395041375216992926662768478553687932358758336503801694366186883066870376772686151882739368838218990510908239566718773731922201180659052518740190089984221829609457492858066385281030323778305064344958943571762621670074426514630607764155609344784464369922736342591495751748283554154323329184587308991013901716484593826223559145816048649840522457534148595988800546293741012371484800066606065114101063798117777139783134125198991558604066937289587546914733644724520531154705845745121673150896720411798580026005312218630622676141743314894957419880806797953689787282806626752909394328797771068195312508598071268238020856325202200676939132016206841770509491220085059930191077777223814654305015415586576402989764125868012962386377208513099434363619419461551659591520635902209576993587707775347678031783009350837603586243027259759841407763256456623806119000772181743447968860329417969144379351085500113225075346563892669027632040234365119033379791636225047684950412517998258310814633263332297702879741455827102230296226871684030165489164708808151507572445979119251097509137663484285310604864450067327876239285399237604668721771047588361262573570620965659634286589053131833161589095475315162656454331742690166524227887284623000367452841709436428244225009447353626664318731793089982655233325485481396897057040540317396331674740897892886269177281940697437593649432136785421958459261449891550453991671915492395204335260536933549685652116445328823351157266710687211220298021391158713744918577057490795715681852650712906543207364544081853290258301203802856524001942030461154169443383318700504021955186506181347798871598308064269041419768472691987010747392222639816126288941976063774719345508334854462119114870952724889473913374697374628786324717314217383833257875672489298053816086121731020764340306572676514770576659904900683177948690594522482144031272714344296697506848903020342177741937689346440579035307673486807265281813188465036203693429922623561930432377040804109510348294416106912219687766209811877455421557836701453437402365282932804912064907199441624194280006005969825314780601361061326273592196039175897212074808658700533162544705028459461154593554643720543142081606256794684505117478348006493372149486853350439710306298327350694138102948317594111359111004778076617875393222985231089281444649172662130602433227112693413813105712884642707409326012083218151516683753774244945244992782692994343301033378532099162242506030084663686476298966816502440406464868480293386138283353189036094820751362998744708157302190184182517114820037750446312513908193958013526759301379534237562413887175885927177479553220577837392845012499928359594704129458536616266235636267983886780858144043830239263244621518661153050885407704524825315976346662527664345836619426344457835284670082557821494134851049101858885204624810494579043995978250094132645448606576884114962584786681537851482828051225774221562860475597041385788941501788748320860416128554807283261546571921340764819436545585071215153206658432854187081127492063279663936708113689475937229657348308055303379461335614564064960089880739337194648321708045480231506172071764472957972577838816004855841869352838260503007794404432905114330462028524676691810877027169244180371943122947160671970212054084640821362439274568555025163771236914239569201122794773410187327233009434867885325444036829988059409482497740778387412051510499132035699382090534523064136840987838722542801059756309214213110218402169350881347301736902672755394379050363187670389776095570586802360852600354114904080999275428210610966192016676651980710582297422378044421123806980384898088413113750727051058115319701276155505173360946014868771045084740480819568376254114748935177314254882521481215857640555750056150183754685190262000330450944352751379895027401951246827399572711430044003262942659338876156164682080665704930539893175972829490373894005016027909503705807020393224176714277905672565208182281611949335952780330362731813966156001317472474108951549178490569536525127289579185202990115183290177612404577387817995174675286654459504233354676752560681330808911496286334447632312937109442383297517533596051053454362643697466163691436553735779908249865228065579666029260706198972085047171759864247204661505883684350282635793131656236403420844198108864050404064097204138121462565279029974518151926796508549529211818841589061630447144624034660794599235691550949707645681857474084859522981518999108876023688417105919106538809050463756730832004602283168659301561695648871088104059931497602169077512076471115950547368142818921906497228599594059614065360543774721796261740322187171154838450953931482716411439983127719811682792722055324433670271689673447864661253229121205097543069566309602121888013623734689483587363110485505164843740189988662271675075238494522016313461470928992344113156897626196641611488801562393319767850211112574170690803320280818872910310314723724190748031705721379009716659111746406665909831989423344601957301177000807145112359257343113823733305489439215040165739661928639873220988386613999418409910863023923311401071601351262854961019222361286422940446146117531208478918265213702260169445118856942279009139393337544531364777878510588686311652540323757071384255636763883468019521102744127781933073744009843383796020955671766018622033701438472212195371170539685103871964513735893549798677702916994840590288313770858308458026964399121067885152282812946208913274711830672013422617991582823003420817176720347508045977991460437763809423697085991423330184594118104668333153301873745509804043486609647548375849187867607006581522041675883028782979562016710871265423933130917271701150619743043404745747718001531166288397317869408862935830839788662167415134101525521069778536802508815464138406997740147713871518820366579156572934465943597980869760870594521930217782718374812155656350874216888011522078104265110512529593539667294196783445296011781823587711879510380313050327286196001769813564384357644216921147660063311479743714303274006888548504513567505061636571697286002113669876489662070622860099089263796283023417655983300527768936341813828417079610343729174710467952219072917060677119923913423131391406261576187675042303994906101050969408602777198562317557722986278670344616365017358996855563438420136653589991991083112523410910905514151644963234605080700126301445975113037903969687866926582744406971670898165103799013597520302849559711548261266777808221610384745982566620892823319375265923418857058049555559256412943094890265507763232945429617907959497419038520512500034363022160408717210531612655083514619117459177419995003778410870079020165485275246722300099778024826146906919715671403991579675186785631096504919222257474701007274441975323996949825726413486385290398966872550742223678963890086733322407203393860708431174464903990645400254723452902132219093103575660225607842144938457645254212734870695703600757519721436028670968088183518330987961109282261178410362023750971379787994283908526152408857779448372303114283938312023579373210881854221168777402117311854916683378924657729414809003824586966173848309269908894401913933634086127983688568150269760765910605251613899745123460950036901791326629134495308601935296325234006492443805447776863546384009667192244327772514783850347529600784036380175423549751581500118478168950344372457572033375988989820065070645054279771170752053966554428973330234431250052412802138362249410628968236747662894637098651542384427906167424437398520179137855951217038873206957611414042799424589515475280488737497726123417571859284977682772930463381648261009177685111069190498705511486712346822991466154651074465904730324825437452730557962812519102524069147814429733718640604734643789915693335649772617891226515202002607134839589763673683911381915185788538407803559031564372631140943140651382718845468559169208466792596475301540439496506967932841714489528466538408660613377946117316812665574140592322901731192974608498316029140366971449488377343982588698504252166020384116676751650488146556093177634650710048308568129000651469220152015294409542781897236842955695421217072285881795617173999048760923658674711578578060156173995999936394880415085321581815522372857418081176700418773571665080027276988277088505816274069693255420200273539005720818896229208614498906706132343896325017049900263816338789571462987176284752896819811139839528643176627361555157529817319613671369363609910764731599440203240735215278758644843980091897817504942479546143249917756111775587411480910100588678109609269648136360798155167055253623762811691743519890876468143825896500035521945777354247387770856921453718712986257953317330618648435927733147068401587064555038013274238208717729695323869018889833613415802252355687571895324612866512354185857364959624769781661471639927203165783564925853707398937544159107746124094603048048378487475961876418518442419403836083502362299806421211511093095623836835789620795688585884728166022243284246475247843992661674829018030091453004144385770247501387643595217721627033922898507535379001735080949619479391999901540737940106360277271019433271590432357961877653788052153619034343886713803120835286531082278902230037242894093697291994857137807438151956630897064680566389630655933369665271042072161264384955308033212539211462197236308857115012818430367418204350620976698075502809883703331766125448820782791694569252180339809573906273935501120750922126702452942915545242328075431852169488313881301633820511339621142162035670833771924923946400036208815098482201682662981513970502181849392521845061322644363822106503345176106607039106063522441700107395381705590525864973918500565717903271220698963299311283656363441817051819681379140295637515225007635160620109392265425850884697522305560046762683723723618771286444148585518624527876157754338430084709731725268598740856146404880078176694531719190642451340894697362273659633190954991997202108849695235540793045897869067055963042789335971565616331012378685978093659104658047562590795402961816069109397968701687400404494982933573900233206835695362806100716515776391495670170891794631531235666547496591679792964842304372219351757489548916069594231511659361521653737530621289225807859364454839482460198237459865790411385113825200413172423904932026626999563087007358719706491298397722333146049496424099058644455242147736740749527588783577313540487199367876634781052590001958650778516985410225130934034829640591616573417368204697172769777738442483186591699513737118023118548505221201511701379491185507228800517883368149782707712863716607282460666170512069721235528586980967154215893960368919062447721102305998210378334014887420472665370307057106180734974827793281868941927435541572930606317544598373454200325976183139890824170768393797083133136202381213236091057945520834592821025292131608442664406183059713886601240822855940860279777301698104532890060584674317870591700503478555894315256888614147684479421853847308884855496851213769918591995381361757424506818278326107771952560676350437374596992875074135609803762479169448557369330721169466591035384776834243012217977331113039769348816017914098174364262298772817101041222910823535662129576385766514495353924388029123178892561043035739371149835728952447582775736503288026311043737430949891761464612358602235100628437417657669112320163990416395095534758078181673997315742651364897367396158048779459337309206552846242665023102695171788265147191068776271837391847953464863292456378086541546102250269545640521231810091684301387343009142364818847431149965014675621829366310778630759775291817490672404930038140515549944227709377108506783063866165430587088011790235140809961587503436611131925152527479667841185105166829853105318682847712957818728008364733919425823179458975774507828965280392940349030248808988207574277671458888575046257998698944293866254311246987137074681165725895308082999816112245778476678889634080824348696765064770553523679085546658249794977108630394154968959532150904822635081129901203783885297464110585761840519831633263776632967825048741571041355714478722513254849555268985085642248887144252221856764561241430781649493913836993638455121898155265937726574615781066684083394427054477515116742489829311569726208533597132720771405451895278998039312105817665767376828760884279143039620230761795217726544056451610046926090608368542227088217609502338712109668209330312120416239275065908007687466099006189209229649173440548531937408389148508097559624887807299374000049583446682831048454669039340761784882697186011232304315915538888502666867974672051177548787705780686551906643827276760238124707478812680218450464935107486128949523218251808413095347911667737078924170952211310437705783097651117333609134932585702467406541573851998144165732338017787565396216697762847718068848741657561364435161606543694742948924087982710793141732681001860184988714272959313413819195807574651452136700359037347998707211062506898769741826565415255628716512601182193097807550215171995126446078221044305644126583895831161314795840458269643129983583276359509540648405099295905392928255354900980802848230597180533924804782137311343803972803700179259882953269388144055985899706786072770551176103930975491969149572288595059786718525763552420171303497210445609573172433400087433345436651904292094514352364549253186148522243326940351632318171578310311625366012335130448790579625714911214970542581797508066643685531782147207349305141269953698725438306816773869349156216324522255173619468594188073534819103270049337026160441906860788182541467937802150880124952312017932301667203398722746222317096480050978031739919252246197143985593309478239307822547020268002498565062582109119077485535212973188461008983668798243942506798705539426731764633720868835925906926422189572837181513274416637481956290929801481745966034722384055914681846235372497665115864187776437812197016914262726752717656030865377250284757048917664900185911417124988161448568531158990588661105804616598624947617773646762740283933468609651528211320774942578790395438352368600829464110759054046781032914100975083501204252647632180573861817518198987361892903730709002630494685954135686999891641619099774564096568849288483513823531677411205217491332762089743956056855931189472936657885727880604953022810051260863715840626347579138303874977058253603114353160760341405832120167298223275342364498741534462798900240381806980935871174482773795224622654828923889836135145683483154507790833503650094983627683967135588528156528944289515263664027200012001509770111258736308198927503034389371529519964697055745971516303476900054437206903653134913536922862224757984710516855375062741210276273850356778234708451023833008194976802827860381495511091900661289636026810767911193806178014569895048437487393086633639111309272943334357703683914943033095898254542900988022212875884673329919740356092010375561164088006275109456789006636077145652002015578006338446742756855226512912891017833766082872837211639880659016500085056713903227985678767117277025998100851771512998084769143974089395782048587776639923398825449042664034378461353837314163345666233234184786430166876138031301083272174134106264609964949600327278047337607173453906703416506132979906342811753020580212656722721348509788861404149318456594930718275969840313081330658819429641811186354053257344109922460275735330733378679287386333905913578178843030751843608303452067732245223485191834925449552037291380091132566912328916660689888295127221959486557743097817248608262965941617222842341516970147100305068274076655087832473716484334774188237752879226711363425859267243079711487121008606779661418447020810818793315649730176424631069985410055174983572591933430778733671474952545421018170894237847023212508020566900296683628799642943255045115313617504765640414448795479359650630484203548154276403958649164889310392183393595331785735043161360610115425752865995344337473465689691192108204172231969382885741748086975637796208313020991156566453101917154097352948388277692886392799425327398525862695610498781787673909800515582262163197287009458594791024473678838482658269116704839373590720381922814021698057246478719258754768987826693248733358715092550155001586833773941628628875736968607919429315977472769344601732553244515482794289753305067407319640855889010101304952685844787952185799392133512691623157165184177119285579259143593378698948283259740583947941038642065756546646022230679446857910789267438207706098021512984478145280162070943554330172250894567300563048782460628553259833121378253845157941343743260383968122356646677651473667684013632469525789722814448308854090293318219301114604249443668490121865671588201912398008276181976234820513787008050659636297439926549970150730594494628578353947810192227127030892549371976163438063019470593652047118449780885862565832707210557203197290122035876443586032580778240980109394427895477418976140010930033514576646798241263729007554374454320361808371622130331349665588495593611487288301195777683470440411601502087515925118247112271482287434964760869387706308613426448788488684688501766591091713903163243518233839688708840083531088990030304550948852671284957129080071239402093551633566470672601327564174455329973243515872401246708719140403265717817835317773402919936751345113015736059232646232447588808691428362563636138876431710725203033140580858276915023625111978697157336161604273575859922571839516766553676268667727903111315436998437818930395589363154699099084252763347320879140126478691432091559558191007425937616269084472487822636877394161944617724587690050207317992125394275334925941452045108151039464629993033211916866578399418487009732958089412235523555807565333418940107054711729281389457084547103151171022426538038330280567602167720510323886588367975676075765523068678844877813864077551986826953962754697483623155523583002110430075078577788925196914207057193517867506377238627778174542713860628856976299956306075942728956815470854988537340423436186750742540633171585020937240263768132088934880342483990062710035238173636510418616039901248911520529335374734883676112217020186653624040232207600897940569094534539287085018785666489503221337548913774253582782973932190180023182446340078183325092813610918264549901231058483019281788343689624984195294775680247574343283269501898609172553572902308244730963470361219704190560546542552184132003276778639861359773997773366420105360772408185110063760820128989106967066454378454706453260307076005002507419048780221472988129244120258836101042413337408670927017522110412573552342187379700071379520880857284843036363102177091317580381250898783221714000019137744439050534815157823190783389843039356610216937460496529236449560531168762473134774780613587444834829026326770440428343961764932411672777183870987579661542026076183556805736874813374378556095402917312700280946796741617164283122475980147499773719813495596366059258952689391763113575557538507987051803531476410921981823867336529933513884063216293653213763694144745594351547394430522798375136103152581997454414301843701392959936663769238930586113549313109545597322128772102255298600040192839920597714834636675546944998769798090523461372605614131202636622670886169684490405826105353244333699930124781786284593485074822093936328473446118533237070001234611542131464283828391581150025611379464839642588734528706431958578229120168400584655722160906459538956753346069576735465174916423215321557524606356383011835363514378039504885311871823920748819699639649114911055250341299788131166028553438604969304171336266885975714151582869653974850895290365941511264988127472774378144565435369273464521426901598729036936574789726208385079576093834945907696753762673319911685817907401727524649180441239800842075230663681794233914396604428826545414703793062634829311830772554943495807609819856119241976505110163901927358485704561399116156939757767495804097800208759210980707936115675990126868738506883854025024910804328932196165859438472111440265006494756922305666542163556280266948785203894895784332274141175072288351258107111674221562870398246002834406051906576056042686878057939975942217119007150998449671705683774864221385172908959838814622317410958113792286919356814991358441823654350146102815310247556198808483993805754709734143972630381973041708090431101108136697596227589407104522378107201001872934540850395377227831229131943835557380138132887654851877024725906177044275755575512226380213021316151182675479010523272310496379313665269798151032960704689521996891208137872112206669962272913943740913676290630353427073134021899169048447758403332008485815446958870749211228520155318940254850318489076618876752870863298262720894706246294047169533656188903877477921498456643103355697960789358644101928898541857080515238187672268216173601569483470974798147275811657033209736352705453954657195422427655307279154509368330603001604488051474583132925553126946017351339394773379749144715195195744346410833143903371345150270100758472235137951632202343301708184816171949503855404686022484168212543328979298104312946746316053260411897683092084710807906487179250887364174260225460966795709044690294148067862554770249271534194404909561966318884530851668896967965236625012032838328958319133891950514540460931273931310213218457047771093245872997290514134969220611487599102102617281658186667096211383305968383180499686375233625758276870872771644594899646829731394873917913530448933990549418038106965475596116049684416934748512444770961433252826090075931474858459049152505535334930677273150784339563858829653007223153046159203514884610487701289568716608070456619133412682001576448204692633461748611364339743888034834164680085583279877699817006912584236628675630665504608322918941338509878584922767967962067107260842966216957737015916636498587899200317636791981821781161081985260335346355916323128871855299754631797170010940100505487007916594366014486407287081087724842228331654836882322265711997159371812397551291136906888555266914470434273958073186016793894248084960721896735443357643531933790543953582731222605242327907800407708247021708017782579255639026724111502037903921286714631941988515435584785097041281692779948861188980408852055256148543679590255737098815282612396833814629247080761849005509997113625034902996943276461842677132611216038441519551026447844238753717214957441347610873466018022803610560342291821883068847599776169693971802324750225851688226232608108137986869341684003970956699698916443330373669895341466401015964566859959720700097223647641826748865831913456403854995734109487798837058662899001354089144256338028966438391971165133496197282372242941129543864164999926697800820471607414233232139633698783403069382169964401169217673606574267530554802732655407458927261582567222106587686817467539815902166417298893351898835674330550592652182800627994857391566428479011651343561559204190670720253809795308552260277958552975063508068810763728676764661812535429328346423624201647842507720705423289606864589456669197986382239308406570223262479058177813985512358676647342398022536527111154513313027893395210517183600418653626629786114584462154193384807953597918867965744313385956507945320519739081702278549852191464214479202169744118735148465834655324774970872571999360344355021563133848054300162706950072149943239658528138264241461543010862338371042709448936348487507199783186081087865327468797168088861859286322523409019031670321485820739866085350960249550969042864783812377423845620749844970747885266048660417675747891605492526905771620141989055428624716572470468183273404692644201035006988679206739430253057717479496094182542424065162776618714751779509410374231073912616399979881372027092473200200612689976427777902781492011933447467413176314484120741777338095937167110912356603955484736520323823633221672062469077067214661892364150732111571470722691976272576776390160887258114095368687731770061235646359975022106935159309728569405734533320861338118647553875565431167633398225213165297344253050603816501303799022703783430433677715858181318020117924754129158615030817998909241090534980158006590943526936432218155302881171620791939900466263022098562361516937055148071033345091892328365673725524190746770642854203909596610882482181906393454248676455655446849647729714510228754665426113302798626730353978225927225278875848841800015411047753365934604033648945632463586078321895510239362490750367884449513609791462144653887957608355279546787931647421747049051576101892190825565999635850233041394658810339132665128741417581413415485104989553145276617759728552895101980792967900404613780319544232317589405631534482962630177190319118261067660020823043632775764359894193213298045629079585276983071923210784889130073477416967793940704965231696586217982363188778373558252505005565705474944091437097832942488612318244538859058754300636400776999576617330889971887735040352861032619682888559199316538756932718795508059592100161203935387395737403384661493421641122908743217895231233506715424391210840452997468562417883359561251100370876891634358907649330572862946528517025523478618022133629968716840209979566714316482478468889758592404488092593787863486165292659927795970834731087665121969762799606665216645959426364745790582249631007545394789694577758246763461859127292535280455515465354514552633026347996524697036667297370932898825204843328853124126425997360569099998699579261505237336963228405416658021015995779188929151575405620111992346592506564861114504837393271121588605725948792422968514495916306002513477606044295833107104582695512220915749800206491617423884812124392496004715431746757253652209663982408854051073106482614898658848826636303086102609766498745800412454510399112187823602689515811665830719280784774125700326193353413262037740530955177891436914049172626126539657089730685341819355954624429553184563148615749729242558206484108498076355158065625782468207323914109585173726910357700256340680904385747870426795424486212045751881239489686151537511446974907065491450702161119280270244985371130733039854604949705192337263818905632114510699207618786465030469702914684153566522187055069277083253461887261630947397527743280708710888764217529108172700291543770578999612141645248448897003582881619431836726729403513765047637145634082869341495410152465758119824089465655633496647836493514091646397758714844936318367224366959286050480402750355019522337681592222534557561074127792877137798761062575212136920533820302587259525123363472198866267644587124868804300720847994398947467503015733119957429018519316658720338643552828518601953657566828958573070985801633557697148600927368201620190555675035114954110558282402578525289521254601581004655979682403568802937763329845818944917759415987400729536466224774353820469671933365837262598772416543531304514130924575325710287106249857481912358096245484773605078705032591956927941952460678013321419889537390391707866502282483780591791944153024051177801407924182246727999270284526226351885094516016040611944386415517147444130588853570687824154951991952403162235507893364808066566400434149437147619481230160161567880974205258933747054856106258929319476820447513962617111394246203352253531341296684652967162262538182944605165069612842019461307732483594779395421248630198247761396434546424636300018253336397343794699437447834726347396209749000434134554067387922674320033615821439608239847240366408299185853884156942237721271010979338598968419148842450525846883171289884659602585833991996756342665931934811327058192290011492147643319160269045001980615137917346379367337060943274780337294034684812758533910471417776473024788865831183806779827006391300733995626167802634437819069260660947752312352773266130473912852754891200750394784130648057747239334615363819240686604012653171895790731311268021530352681344029543712287563840542652627937650025902919340011918180138311934966749870228372974214265269632423522643094792091286747807054210984975645767261321786487092866006409314925092774247150884772348556780659472685936298400852345157318683346464823316587840947635260609541578134302967411512309983407843703353359601187073211049781876797893328100107746002930275576427063429579949344945893048846771661233097257521873809711716797698702188701383857980176357586524893777965359603108886827924416153548901644663521871849714723386639076048841563198543876639441927066368555078969154838530612379977204681713197583721652874386700034387850122808505258432639308580178390997066574826708816320615908147306128941581416006797587183878607803945771681032310724108048412345159556649493838843868629035576162549725270340821237874238046292508163116253883823879599359936277718684412055121159947004844605613066656500724130296608082283464595911993161766549464216862136314938009468464304930639485877745725984671575862521033959815445972305132583740106660703471687509420074180028917056211028668797877430604704619431335866025823276706952208318448267066362771305584539551132379450192956251985293909560282843204294122451842879831777886444367444869733704673539312249309512768699349081589802481012541732292711258007750565457201894374799748187975164246948521036217294154300897946506693383811656651954329088799944671466424331020639142835599271531795527673768795086927005822867690121727069527891721652413862525998245888698785200900998234032536166927346268882476097807469947380697931499097757942607831776392050310126523297050957864659509913192505579378481121131425286619655302501881544892809321986312827155801451297225345146976266661042344631449195455842757048580463571120376032262642997932774109765342837345902801697816644381837954423074341505221985664605364979071421298980327405049613911222707864667519324316779475347131389506826559293356935419375755692632936434984336737200762109327900244531741435478024774074117650526473215562223164991752067897755476603430067375980494603754718085752126489436001189005461219048796024149062781375074034694834375139015228442032279384125989333001418371841338516746324550854665500692783870174878419420616084201963064901732055198063013554677920757965754639653975887871838733630334146511365684384316804039513441847931718987691735682126062774501338517007029017771198672087265543684693677871391116851845470659090440982772713644508644692661205115042166897665678881636450028442102469778631900500389379990898627174142919520456152851231133080145663055055801018096264347301674678647493620895117886481061672148032205844882578309927300317829628624224762982887086625702948240571262076772227256697903781237218874434939403747856001737700838046615528058463797886956270013089671459207699352289352864487086083058616347277882915757506845293295515428925679832482381916720573051516936952896728945824060372384297970881799986037033554181970283453320375584825264405120060622710585758513269216916275198927240728913392668196819315573487368176031673102819471395195679497676827037406811390972633114640194458375916114252923792479866500085456319111336301872424773328544931873552032036174645835432216430061533509315448865059413970356968042887259049949464956846822868286338487022393944651082413224338858383789484919650271605604283775124628440166843580626003583889530150113788167454572582200695370512096386448724108523735457823933192773709605385183723196540281062883727946003579638303708150281391899289364295695767155098959507557929538328240188956867462403615425591842535200113482514351929973925201690994927109386462857646856352247881043226964753468592949305635303902321622127836499118289895782691755593495251878623680775727695058488958600028922972904853222785296602291604327864352191020339230163251962265236332546011805720925136823053693467992292272425645361977787443151470907653194264407108622451674177420696538154979862494923094135350124996595629401335993278224830273278869085928137827647147177432060324741461858621970229361181789904233074620060084715010901568460166463154610928382045310002851042076102990277450130818217596263418949451438406289913214361626915664656060283036795960255564062467451120093301145897397009931723856391536121043089686448194812845647721145198448177970421461834790559266841142364914792244062273278316997506115549374313477192301236760801613334425901849993970772231802081615295755286766271867004091474518096230582033804807628680333563473709626795299689292988142914973521546447050813855526767791765327769599458983830381221923210226141577563800204793086968823816380711452436862974324285681331420744939973585304263382639702031121447403468441240634180009638612990193935738932335947420870349470059349328177130451341443910700469573919547444370545366642585829301114021878451754865250264674712852012334226351899944633411914701569895249949606741961844003735245094617154806415053053635377287062907302417755295132725753681269395357600747605588492878153466234263744337430072658839850832386001991887678520407277095727121533655899680699092745714033441181614209978736724099315113786063381209701423095923547706952241778720466389111480285109861830123578458555023954362837529535260314723108908055179233121429101110517689494030103283453919957204988107337585888148305490469978633798728072834643195749199497746116645226329117333356746602089067352983224361709375302558466046925496647145539936617020050306916523924431568368104202445129369308592224714674466825046076270674079080364652035252069940138108931560365316699363431870725099113705641304261347630541237879122456777791143337482808151389623732694824443539200506292172492945302372379295443832196376908313180539523860267958735081923727483484583036257485107313006775772053348885822161656929590738073313555123229868862224377738594581734805720798320262556668543135934371280380927960663408289279613380616654426610016477209681318654815315127930908822940643721588628219189099165460983578243630078253656095508379907706105443573950255917356151619613176994353028846992460868761257927567321221213717701666218812168859909851012275258187603574634647856027711042967101015049696055210852908677799983708512679757984941864859975599405744921995452679645155985373618605815056164406979385805198619894994418005326950583600361129243822233732835426087345521822453838216687001783319300705500584362935041771459521066049568061353393512254472923642339526326738872557918438888336703057515616803953409835346991593099136279550618355727955357370451448264892867753688890467728282869940755514731664892086315736152492632112602763127211124596750688050440353782538692156565882390060592314278632801420999488545347335036987626031138322415233489092351836390694664854403019245482225586496969954014515671693708255357294754668121024897156428572731944114269680954365413760764089445204205974363870762701671190567089478441444551443749024201381740846656839390771189126924963737967959140666253868003455148300723393744182740198532116962707706185265249429159926977615959890349231368558745316076261736940038128745442566645054529535692247647979273537015859328553102976142226457350569075336434579430254299443608633789943966379978341936157898791101005221215045813482200717274511532922597377732945376596914486843906485668124665719593319205676730447736100961497687714483283498454944680347648241037305690017431441175065000331123242947437935310140512566791583888070414826735701780420809145385793036025588979389957169856871940749460784207024428746046790801066633322383644530318128609588011477132141017618457413749177694445287611072754579858878382808792932835866010473527516939678968312648753526350785685536333165832540679893098431792587463524366201415372587020181359810327033733372269681444045720265799551887799493101417537780511658255791276610476165605001436434577172337901229492645844204538705997611517047158595120429606504918420013057160866912377769437994548621781230931215760631240014309282123946685865267292073869126237362665061891449713764288892111055244864396853324812568080528996407550229272819088115525806651227618387998542738799274553899935006176443733965190065372897559358471365767857162219265437255293207058708434802589555678574355294164168704743013731592408763934430403875076659235885690688436370715836413144116100964631733616811318817788364693323689427848740407618405015984837692006055710617170356222300557666513931883123880331865313558327626938289594712439340167176564912342194848895708126005476895992835024725492437285390252340927122143370300559364201725571213440160132960364589329715990467308835011776033102224025489475534090284362038313885893022263303612778136100562513753684346047698421204969121993723136392317799711760088743147261062470725549181659005825188190389961314379545823423283042394589588153834582044517276632388705240163063348341987586546559253804100821490775862892589262246882995007305959058209325281421399098388198772177689359571987315630082556750812226537276269296807360547742712404438779187021638843240322578253300344678438560998092340080223102343865538853336157448557760804430886839325468208721107382857364189353035354074609743516402553696207071667906373845260053630476561643960418466266031803497037412957825865517431923001610441141934013205618373377996602092243785282039180358822778688700754771289563045334647348899427037625157984713309778430737094318579809115948226550892794131872655823761184432425253659217178072754090639345887709571795540841219430933407921264990964472123883583390904948470156834817253346764677192145746626927278768900046096551722590476920041965429992196753387074284535740609432054618370274922535546096706769637352550335131798821888793000731624490563114811458949572965875824388218397666010902540214441312896782028092962180077402242009482367475446137204526640361802879450213326060701545626083464420295436463977610570217219773786106069814960632983234629879809137409387930235204598588483607658481632727751181437488790871644114837866306794858862117187151226320569895942482453487547856599550038041544615901296670503812091337536815121764507737240059633773104644114595878619183638141326187461959495269940226258046506000077613407986337211685314322130618270433645909147382780304292505656166000011481557118333707748390430016046823836555973310569780458141847185106334319915613918668378423668052382173119036072034135869843327639560029306563423324408944737262249231883142458247719361804493558429088325547652678295201652370094686063147504044611663956823406102840427013437347196243644360858776805782460178470264817135329093634420997922406093902936634937181704244611260815532293519798678729107897249062219232630516474860460107021668030054209168505456072771097676786827591173810897563526834497281232130311791852648661400710825751481554002614510540172562448199397408668813468601505998734196551645748017539439664636805219923655260786126237962942366794500765771305364339157229328474795192598432141734407603885077768913464737254319696057187156039712083282396537174079317988315584086159186396385491730694130809077464499109566346141199322361670946035408257225163510497386610218347967110300909533917422622683789044551073517568047822531437069354275174885007123078123947032231336470504721520261003160097605644978166422539742892147815767447155192139528774772742562382593374208746106560612911058643250442661053476055549717932231242084412772506062304818356981291662373731349312007235126641653200143306386884480957107182148844467661753455304022203259333325321627310982207721396589737396279585942279941379521565122060226589228346273045741237588530031426545730147785462277712683156495282848711592080181292166823982178822694807487979904222669307701888237158830566532592959131695586675474514964146278183687705145736186556458337518926880846255421578728403313020601259685201537099137161783106779239033208346959917894260298932140916762420824089689145816013200633352481605441769667564775063237902258445325953032624185894399007153150133121181854552824915964046494905248459110225936369314728191561179931986053411150318980424430564301572082530880220616810745347828353576547667285588561886251146616161664387668290543219381067823423373182022384543248306732204856494909855678384876824525492763051223551749170458517425110222989818658252058382512272161489516564452502379032670162338760108083761944998042175728968911915247333090188260662669016682272870921399778274474755753196833260353034449195453047685185928952367186114514062508065955290802924980293761986299945116533779588194824485832071426783775506596564677248134579663480864593042155981701294077327267511543424976935615579592630300485630478108857403194619969198447039640745826973901761603475541243288613332544419800156626344644738135520522740008668531012557057071711671585629109329093343308372722285404861005591777991040790893019703672996032645147741006962723046141446547490243145558536951182398862551916123891642448284231873315646601398903812016890580242496185334675156616911161868141237417707552103011441270398610837274891369079055183219322740792286275536297888118374778138095101860200335764312967751833396886732412625302472597166336383269062020818998065577374843091291896063789224889784714821868596059409794480354149039266899984974898273280273972529431717225789440241443710074585817671508252885897299476386863145390675105500527759688217475403099373692824125268572353208963189491762343502261775045210408708158417385091174892726423128287830260189821421459990238669032485507729074817309126191508217673655359611858044693475361230661522997114903020130270476850224573569218746211099226748576662878116625765217981834773936999593188155828279856703453105496247221832080108274275688308137637872139286872904159794480528877628304513169473406031033043480692653072201983666810580907932924496332984606651931543043244462055332881256662276179660937633129914725357044470917789575115298055595052348440677231655969224568266016470398572885759305969406484885895530768558820806407118529096244217966378549641605418291559054046900159151283932963295498344998032220164610710492333110775551826820291670946861079294530281654766085118835040523579677856573965168041027064689473966225281580566030491590506691657298120591926049813431292711447226561156239918293867576008027514176377373901728450306748663070452352290177366723255706494672454877848202753489958206794892393017718168563379609836615929053073604379781937760888844349935393356754567582661721270991136262030642965752923439033443075086061182508454498197358047633742899746750720982959994624532669813186407882393427490493214469590703488849075979833181866850805098507810285381563123493605755092169832265987348285410437760231019795275601785857619887436922489858999839638630215899700595187109784266129769038562001691074023980119459237669745472086215166664595048112600677777818402201114346575187281357223793331538546027485478307282252428354053891265498624238829035580673475041070375604435287799858900785613864447884383673079468451006191117454557543579463101396736325959648531761398778883813388039869302066871733817972390091244768226747359602378092849443594631923498760939828213339398948476343631285650288462374003494958849540678515553705322120062556043492351576282976898087510829113189053523285797107940887227801104176687440396908127765973007248175072698573844223505593333017560469685555148151103566449078948344108660799082297006574872212442552543823465054038423447163699686220252940367194241291478420061699997920341973955309249534158705185586131796116188827654507108318915759083515803135025148028733012800853039327182896276084358543077647208752301190455265818193609782131317260979034805796489738678203884048370887424386348881249663802699167642641109355056236693243684981989379180825934512635051767268246876754152379648891192485545985058383320066669780551503491083278642746891628288349053533091573954341225696199492169176711079595745465598103102414091393215552244687715142212213853190770664714609813094178566035953512375145005146811737618304674286158143318397072442872664904167117919009691596711031582802817238416152505587260768453167700836603105806792764686741765843825488823753463101073822442627855760739995801374334016313748562670877080901680550056730647134909193737372586464393096536621167269740331200324676034658969832098122774032673583993484510596664829271468454158761297500614217929241892581768900040773997529850372393616060884830124604165044872501526882446989001251461018507686280288511757616224937660643069008117819180192571499161211828490797530937289675109368074613163726470864655953365000713081331120668397780229388478353662511264125072453130212299461632864428403739328713551296998245084931944840013733087115014134351791970401453336433365964672774785959682108285775842668929260195284826326881455052948924196733606616916481314612482040149980305095122860230651991559201902589896623719259194249066800980676695993204909539298845406119157075344379809855704122692617102397139455150126630687049834520780197886546251529594068367513540783818198461205985134287745651916604353446450897520801186969423865304832540584439920418385437849105581314927561900628289666808637447524757449809749282509385236473064883689897011078830698920650287896618050914899047907218815756665958715483652706011996822044896328652763604088248464488075677927951512084458500264938847514616930422055642190219582844866763904073066730006179568135445568620211726768173830431470504762634756061599758615861134656981352685704087242035083619505754544526394730446184122117625551101540072888699749295247652769449128794671279418792630259455733780416799858473172064596679345413440702032252698623245311133313662042649186299997988615202560318095039460142108670615835735394770293518476141873986330694335049892751412415472218872270855550753105498814284981217091825133257014508649512033182217528303450733566289719399939429378217305431400824781073871431521947105938799092321047108070554204052760971799281606328423411742218412286927390986045233375957320679631106993843292152653312696700295658347581710551056927964836867673133500511034459500193223908683645252773915300744005491471290307081719510559640447503496354920204517669307839400642237031342770864001922132488592933322156151464424490501125934925851226827689899604828196533748102289421210685743338499400260876799681517047404980363191103186066987748114636334706018272234056184404378986929347120725888033788853785171850339149193787694878339387527411693940996920180629973763440698451569002399265094499719631923441081364288267918644683721008132327752099300491975190648874535278836933368615842620046112894572445869152062529446224680457690288451328976876957719213762372316559879715393061417328457795092106677765531049834211276654744911369833772619881980128767148420068676221640268548597056369494735113720486544497233935065070287044383218459536121139310537668521624697778761815034798688212523959270285328660825748986392851176482857479657905762633082644365298372446328350608111440160586801116227622268191198645914325866651147294576653511130079495361184457056137765315432961120570048279818677629700128633094950941818739366166886381100553523320709832962094603529964990038037844185784329653625679800853792272023106828902160952859415601450658493143548016867710804698540222917284884667667498422745574638169544657714070058492235554441582904046896628243142044196367504716465169113977415956178126828467340952140050847526404116778517640240913169444553272708493627776062667584097282261071630286499432130956978485753038645548407898655720657070859223579109187849890397441363453068398839972509133418156829637435288035969454543168349691482513611612817532429528649029574534842901339398135432953701300895170426598490967070217441901557757673011527667808088513749003538330853964100213679971909382747096676640127445244642511958188792759233838570114355072742370568681671953471307208126700272564021736098589331027521824090173015613774354856854023771311023405334041566657151003515838707855227402546260615543299229047972756882143060378390496097326150734158247899437764012817219967197993746669982941937851106603889674514517551631766207239461929679259836569058347388014087942215834005615196606504754774048735264050226426017108501020958995946426522865824188851051697405669925919521907126752489142258217774838989429541188424426032538956501631003246667818773716385973474916306234695849277712564828872829271472781061469970887557476131169009676363498439078108498025930565949523915189517731086791028353101146074093067365089399414560102016764354351218497153036577421920648803217114297430565549049670779654003563032539236149198466051111086901522054773910573619424347596958300619763152744888832503504726605439577495018865740697095912160883160891428443213599145331917422086160036370800661304722159034778524188116632511730405922100271139030066676374316405639476639811626327341018070696516385162701483957210711075312364175653613746714785222430685042779169627419071627990913277039432659856734190074178990002040528215024960798497173156658492657854639234942464298562071574288344257683143270431017751314291842639147999829225993070316059918648773210792977412790829438943290881503974533915768969333224106841054435825403067293537318216025573311837911490047002804766223510017564147300587879173774878790725266442391865650220535444808828054485781969608211405349348097925709925019453213132570894907585879030156623925417925525641965650702147568831547432043827599790831359257295022247524629020062961175505317109711654053077835860802486177783282207098574568249755697768423609167695850192857914664637623266651586293081295864265195407867670014923725849633382114762948006438733839364418987855824949187743346443216165333778238810847710433649447998333018811601558192613113250415470074990871775258721313405089226824501469046011888073412637098676015297855341486464648163776656801918909739860799522974769151376057886600757564434037715733359185362083571734823828870559050464855140319242529409544198808076567195314633228301728900309703054889695079710516397295158378302098569222541072351624407531800224733468700148547107919019557617991025632477979127399855054333014922206477374721368082770636088390157036808444955090867706059458151623369501658360753722558150830137639034736231118969669152872438581211587916930867927046987733733909970609509200006380842241052626905515700741769739205835600781213644814446165013215153020231357714934389547808548239254110713374439714342884850678501033778601390110646371481929827743432800926124903780358381026589530353392084730887161754906336308511809031251760013241340052585227233182636546833883722314966839275423373183685817252390473023522168198515906533149325722960862293632232748499956407593646538841424358595673773964438239105274013568332323781827624436621947848008115827152829799802817944390268208375438429893150842127116640495376419547338981665321848617163318295721259492745807696937235438819259824868374371282814528285699159140198979574005738530500837338639980563553775673189564348889963769095974921104970008457344040202000868011326650652568967826810580383522511371108163008210490682874009338393367820055119055063342179020899870319833754851105642777965489230260925643859726866724995794373492052000078360572536111132106454638773858141493192183631887934197762523370034483338340340215035705726822053452752930362308949756944157675219713108262884571319445079117220970413312165062744777470277886743502485138569570205614487613813452254134433237744566631796938666665850596888459355036027256863789719394186157347289474848586919593746645088983808287821662004140264142133095445139609363950211369242816519375333585787271813981196565195105057813128436085092677112083606271662565834841057323904545727361493161296992087464438925823029719317173827702224465501739524980018495899017678845306495542417297819648061560908982188428224077180572978310479304553024044110213687769996602296263277623919008693989393512953104171331449640718624613615120866184934530761156031610627026217938002331312363603115242441085271132610148919440909625884316931289202125238586907392173785675216251932775938976311981021977779022121313495229896502859235359779839470567784487396399605415071582997656898474594354289066651857716850199650883762915392593006969555693009525739625797117881596717032914658192676078054161671042768077560769621690887657239905647755782089362283249908282714470914057845389471730195535934231876134274518246622882448089232447285232758038621923061619557260997961993538035124048351148198517180049800813624187636242579886570616245039665970447756666826105180262994303540092380306918898397254669050073398604156774455744471617229814756788483056197774302843016300574505732195434366444554573675121759212627888033369534165634489498109084980739924434216709193417967855741651798418889337246655264102647065173625640189269982397584398377547031975182844473665463348952005174955927680128353373173054158973136318368528480602109029047988423376471685941284702632135947057089863803861314588912945506616622068276025615513647696097215019243156803527475482362042065110795594897439106843002970852634466213335846909768337411871502794628606417034019866585195985940994970858398584518226641516321928484441055877393820411878144389028506379936526230448643312794387510660251246635303925056510914710287433439641294349636259308458573664080384663854165668896784560228237706966423266289722972647160005195783649077518155153357862545980629711074691845026371227443666504130195159647551273994355884269046908761086972525577522843475362795119159068655843010419192182526551136795033283037800089320466909580713428362227044663656995745316472117723492791387117006616709106986502439297347006758412406133970590348390318784271664494337233683573430567973907086741718393387407382623508312729851165831456960517284643281151486783870455098881893716693503359015525592880872079839805164203479485278589672839070607263555042156081479783248831883346484677380795865284889883717722286390454164735819220251621057612469178706939077868850835246073659559970109841382537876841963994774873961032754363343136062556253721349080310424995612645412146543462614545395712562439663277715929869560882157479727431297478586643971161937757490374486222393110866355051745184614097988124422702141017736475010596219436608170394567405632502154306739909702571546593656597405980592012358437756874921006877387893199882588088272066382849692499412585986946363085894084963685073309081241237193950980206720514502630753142660000205407942686062432118744037522854507180460552824241821034518696347753896712281015935488579374136491687379205269063609754237867873908296760665837005047947542420291155986821195160901500798334817238232661258335017707761939266590303384044723541877365327808490718545918836303089044495281211858869526476264265427796484310455347813424313901568051627908281518591624693335076416735248786991226145239596423587460314432748601348480447495976499846331423118063031030177567711040755256215672199127640466425314377046478168248315650960780898765091734130029015222744792337121261961936148294565886112708573508649088160495506843468916970176526249902054159530227947543541103079877758512862965226951358026078419031302425838102870191368834033546752657436651099342501311021859846468222926932820614049455228371525494670510921898115068012325544259465488804649654557061858441924141418510069495868488174821615208609052262096156787533799348160871744788951166570856635720139277733282432202657264772474118700791245853647288830552762963404357870409663717644069918248310086905401979677249800338012253728271233235536771610425115457386897363781770975935236927631758103722040305842505658210983534390754608635672582148046027449461118246374254970152682575129991582718105128340924994770332661483694016665891494590674273546268055629059276725142948358167352086231268170806228088152099422138705427031666079648995451316459573509619464089396405067829777935348482205838002651280447658599972877634791301416093504922172628968034171138215717544027939810438959458176126475756500718914029982059321670567162935094885630262407769396590540353303470140878554927316935840908913970107384076353281011459908293252170844838961267884786976812324056984933000939380821056325931481494423213285426400948091606305483210847551077633557008994660999208478765180870833670957887473026281334269729741329881191316666777615698917909716657940258647103746984355449311933646902007405701524569597822498503124667291098805102945486115738941034150660193610469999488878594825880977312120389515292495236531718140942610766316925907785034263609256021687521619547151611012904568856160914457767539783647358052826852215695285636899297868423586111436899050208269311338103411615258162073737387791985565975074140256764111710359897948444140673200120868507417531081959498214295337127427919237311827182733140257889700216934976017046408211687313388131789704629300106256210032384108661182213015188592493675231606347444183929879592579225911923719664615651165081002449961667771365371768989757049836122528407077522610174567404242001085496323979557275539942569076407286261699764803363734011647592711202299354398955885537364446332659898533886780248363135529840224679909056770935888032394046653015763613673296499491694346965806039295631621177922352080998491682953089065088978130047991866169220121018285875765937267087283478639339800128520754208239944786714027043140486590197721213841205296769443196550060313637711670639717537250063102623439433964836675729362891291052854167874749270498826485352678542612112928177295349170536549199152265727776147542637097894926021558875903135154643031325256457246926410600873501406752205676298315286136488843327773199708007184808054980018151728884202401655070629992242398412123122744514296392616919732845033127571002615196233093826460533286762454854497931236453137822604785403633747764249976441215624592460245452077214950332790139449132491065104687863325517841645303123225468303684085533438418459641814668045641802819633380431718778553594355351022871952748268324021154127595655168377938895861622974061199709193539875902369156494223539878833389909528883959077468132347091627489705470698414269962001639516761638788871637328670664362343762904881580071711799890624485696961104938723069845358203363843420992026947038339333180189749853107743409536966038318247032733423282225449574402631900747948808787746928455143027770142565113903203135217538480413446245068613280720623810647853848585144453752217935408601537089579294400275960617164665786304678663600841178602567810455199339189289441805362371210596074588606230504884662051858207073206844280865480109715919511520766526134020183251365366464290897076775560667075958734262120884481032507851702285454299870555441126446276423985087662894418213898330940607036832160365657522310251319693096516379080639835861176144665840274199149166272891630987663080554926787842893085570180016516128912121291442897657465567661039829603865930523337957436065349944501178280964674306261032467706393964944699640829258498573496628202856202517753840968795915418947028036155450853095956592026705924745892113399361674565061081528174016462561496031139782360164781206017903094200152241865220833564261477304620731034560487099302083712004797811545935383230444699008048128028162067643540840949603729950674915525250805269491381944793366737862758590461974128167824867769900958136005589129737274248577604871180606607576109419936707353065826211803479224309638651244511723942127483514165890915740841984906273489391932029247690069636236842608387679066092771072028551795737541035408800078090386325029553397331159644750104684385687020259547154338820918956573162048977006847131423926133581562813423936918977082487578786510709239116391066930708080795193619233765855946094468976289946969045199537393074498842933761441375536743645442077074818596265083232747623201847060457237612896580317863722746157369463158596265989916521921930256453614044215575494292473362354607759522327755889398256515959662190236426897780563602944662485948569319083203485699714809234489972974513090293857077078563633092722337652212659537890535945646131162638640196493576342067313054037593329402092533238180614040385604747938682938984883604364167518804445788091878581977182563829240477059026829936126339980390142266268014934038297050485910964088650511800537746950596930761253725819932286402393322214230498921305330958427290416942736424911118985445114702251677649837878349067971798725790830126969982136745276787842387913548728256146724195138020304453915828551500310547119362941378738414732125185461293414772106807742898966199532490696427010469419477371105361822840685891273462573209168923466632414560120886900992692749682321937481505837715324108687973409021826578071601113100713918860141284102442477424552119388061485395141339721410210160657763607587953981226364711980334415476972099796591859884810299214907286565883316428868881935453434022121233573145920360748626207132731638383824224473195899675882985978697613226293459672600699014811432311935544171148731091691485167059138071654535578970738270302116563413199474525919479457167178708626598699865189789787303576030047692479690916333648685883540459290370218918741525341307385091228055612791973442744296764122341555121900471049600588506710436229768512637688108645696794457734002803693765815466439372831301181121897560913080378991288265723071939480599577607829267775897108107167103048830735022064102380618663168622976839601490040898689761989117512107353389017267096983410472580822104948359825207743737133175047765759532668541155710309667155286691800950596092661693965753310970355279893389605144208392778287290318209376876047256927668010455467009435618591060466335292267431838982272707235770892983750462636957221694192415663245698918025679761793715296372430858074359270889780242176328785802317183678905266766602725685661429615008922570868623531088650397878171827709274834069442790096831125578766201607658735958269828487007916403843387737573672683001748338653874926218813855560478752838825337087120575761011420912659890608419317324879778470064733000205995236354543678469950233814141161283381002443851576141225115610940440066742840422916905087000799074916406771396602072601261887638920321870547840131439604342960397400506749979199068489754718166688808158111049436027928575824959420434993856988510795338728863941722544655240481639809356517286577443039623567829748911879089945938984266956511051647535552999128755245104745422326840096951025216336592038625952027917916438096580918016193880292342323692967058845903831460008597472008908008434083130310396515731117559341038615691358785744612867745425759352052955185842211094597924539117103760953049036462319908788831627997784263610708328600498849917365929874792117513297980495754597388587558184724004237889170973002411716820638315161519791198343600222395498450849827978036979222628175234250311266103848365175812159408230830294438311386673024525764381636728310053730169899274848841682912740063424809369485925376281349446293129451382452360634160281973589832761568503947511997914591307882578542672636487867842636076628486085905546678363201678726032058752230620360593476635054300263797885535683819132774980856561625448639018926989880930964198294620836902495491612441287800457064384807839484870839287161736180313893609931449226679022015683761235691997181644601564699909715114135633660269207181208371798068329899652453275638774401639406734568542860950812108106392919164645652477896635605740949811588282073965687828535854706636349847890245364532637309509155975821200265025274505010384345858792328168014083141188103436078583464406358382669007400216908652605652247371824149412924454501808774710531866849256012978131597655919268041933329726386813848725474118055849752786584837441443890156914016537577403961124722870831312767322709405238498429955514079128266889942570568178632304190108212007591122226336221044151672749621637184641239335395276473022732576445218850237993878599003204660699232381332114385209626515229492913720079009633967124526005817321646695331934167027257770753605932333653067121624457413877501846369899727434034853261061409948030328321418413888888099202031775756342405182158105553164889069165835113852167251868844976080146710418421173693231575210931629764233676279708916291307080370214507361042068410732510623911353774952073737443008467574027464071142071428899182374692144993717626458424484244580197445526434905730290862867731876364861986897112960637002718716571829532617582404097559305363601574200857863335946738037303395126736943547769272442966858608433242485249825126060280861218431594329024002523186287202776404393516353519929591792241359214453048307833884804255014957430335991743408861077610291677518121905536550971696302589776389231149057820937348406912075773710977125987784923057326525787462125402756858487385013181747501551885408110266661292010337270548248633477819751609876845978425396483878337364657555056901941023141359152913769350672141881806393487546948379049004994701752225958202438956057417609340993622536243044206287332030285335475798419797402583343262348767757036698335408605474270520052931569199943939765011834225878538811601156291633678889496381519562210285360366310363046240661221698442797044799727437835829518865844573953653163501674585925252774880204277597377770057800234827692168232196312048602623840242693930857215401205570814564930524396385766465295580763435063726499537678201552278873681003034650851170312318434537940393696408990934884213304247909260915324790842615296916748896019803503893605068263937212376513739634019745819965402045603096528938132153168429540475502815844551019626488980984241429712876045680464376016840343109382180704439854628848351412794447018808926834829074460962683718330848497458567712760094613097756473431928385367968171315664992326383981444250982694480514473716281187889899284378027630676456461604327788973279935033211542604022108275557768629325530108517443461328615490497779006913031260543386954434032301535308827677371904247675489026445629793117534553281722101692754281534639959595353096934765266896577661657568675159271544146111446843952761554898872846352722844265198182740946471125251784139047101609516339072925939165902053686530660011652613060801405462125352782718359594358894493752359836344055759627533618991196427680340239886285167247203239626640477277042389844387303317685619930172649218596885914953716703422458324950576054994130796009035171308259592985841118170224140359247393193316003295885542856044014457716657854920809836787861644041978041596647733459327789667961304931953493152043012317130157801680737245008423249071445442397258874911714337011437887412031389902953213719361114887320957480645328492013856486629825535321696099680292400192972145716549187045882459754901727744136522997523865831615417071611585614229838768947113225408382353430228631783040999948007468104798796597479225081346266913954845790234090346681915023237602960707821412220985233083367731201775046548604802998547984087304679569421088905216236571740547741220628681570568522736839876790409674965905448362256749614436218539463612494957088226803324656798793542562061397733189566981967270829758129009503049658833560705297006552679154587002830793826511369848739671955821756671421770373045817941846917464070942438661708975762131742326718669700137384019114824167332172020903411624115962547121385028225097808398409198159236892736463146667113345562102517621131930404796080963187937191881382754186568379537059004754604689913877394435771190587526062607133257408372708129143508949431859029095941834888420289566590496928418709478690125670902316377423954358778632304918012075768121779226459098124561640067285743602977749677754412956544792764442276752705136831534153257108384057137105600486030503154924149045018622049398620087488653839088824517343139964808224671594522584091354569371830822796869801503619727119861459182430579042889567165984343865027848349267239393119979551702661914765780591533491414725374242987895976158190473027763230343499381222472788430625883589098148201783597558527924108175744405062660245286578186468671159367329174767500078272651480549145045189198720603705944165076279228826715025215123648455619561013579962046337552745335900883884118625559772216646460295395794229815745378107202033608642059879380480959227734382291617042295258040618480488874206148720746790698863163678166517544253011956293088068497141895940677120500071638479857653547177481043927981721045496249963713419676323046158429216337152059595283950038572873666376916083496307657708781350787193025578442719463161970599994627665183996286258450171756704895634990295351177482308048263892826634807677128580781408635512550600616873413274522867395256538319152478618150271426902603895506436658221795275013989494953767337793111766418376277557823417107223661907533989823668818944117647781815581388969334772542111481605242967356576334193744911068967443827656485634079504910031086630328518541433218680492746325727735205668551870270824208374046706677678875127878322883229457979721082273187558180085037986344556665649945856591656014498106454851860636238377583846295142388384400297824503651182057472337921621113715509857225105238287003676021377125725047787180384090762608936965374927086000653150649421901940696054791781501684880865637716060121115787464508323430098460937217765920393133509601881297846555841795304495990241219778556651981672517118478690420243959714180817794028819606155165272327857562427109281527425802551715927762253392237705239901378184977151242538574842658668358668343832099822945797350035188169969792727539053090024040188788627178326628092747383015660059384990842589485990704863823384418819235848758511997784136683885969756967868808039950306281564197962815055983230352128152129696144858337748014257435727033874898035843769569634597048578683223707692119562223500851139484584554618507952755800769382917666542954221744558197678307610127842366470116639446011211911711210338642387459078892941427689707581682998981969274484144527243876743672939650412982643397460952682988669189262638398654050950394926740653185912770613759502792806707754769327895329401836567576609078206956283616600975856686464444923066632459495107551279956385196390805365520847443022069030272273281213862625565060358182628649089727643694403709265627518804754755705212249347405603853779546819891768456123614423260208080463255001651141987052676777339925505337460283401382235549492331405201023582488969588287111816284154964716265003518810191058529703755313183708531300774134433739582433152758895564753599828839959977404783943331281301309677537120473663307673326093634304876126531920071874124897232433318220447455992001476779423328081782316518505473111902292817099719008803309733247249495172260658109616950566301033494198516735348614965194199191367694744541737123624537873032633090409278525577863519383885223690876082869264531025941838739150053685102521564461171065362744062992917752922166735341778073331090427808685264517910176648524827421466315106959843573212111337971614162892621126103314374790583653106097524095391365355329329187761639668089004437500884450109001868853753779241367859502378670651279972321708064841672669785618404168127825082082494672977267016577757875744181910228676859669223860251920420828865851104312181391270391841445098525819993828369445704753409612110479148584206463300825244717505126274205133338757484230029811748518460864730018955146276867025498113574952694796873082076192586858683758106417150432191201158999618203006081985054749576050337198557165024366591166763473459016683386020073045578467636291862840218093856921127555482571669077882235675709450381774664854574000755719584314873991790354300012844066577592457724728907348400064281051826225970374362081837277096836063104728196894909112042312337471271369104657832777274757739274088943168707485681486768446145307267929773934458362191945357794285848455946656585850377847118298039299759948965384371079106135184776961806351818689826084722846977404486361783682421581903602813603749541392581294918751453115845904479143605224327352024255984091425270041421697239579705370728090956442320725841394109150711587057386839320602485262793459582371266559155247949215412534615481327724609073318529217972503485667430751704715654170475712596088910429176352091289189328989975978685642253466322181374595347332201378113399837468145940897241451691997857313899575157881779979308998300015405129629041264366450788279285398347438692020088931927676672135164960510833276075131814658444892141719851743862254179545970739741074072014268849052121486260139429179122375048368252793070299169838597831891971744734940703453426108872286149884513434226378699142974504030466537391540834784907525742100605523708299573703602176264184815091817091508761587820718196583837956822923968948458608426435115559485436841761672194184208691441941734218950215566011688283964494406519697006284039825739365754795021689480322219092126859037930344922296080450958455479396907444474817286625765832431735452831610215462021792996219348308029312148538577465936507732816832033975730214868932999507004363333621024188085696757527719352861645422483237368812499480365160604543630401175772702256076802453814008703542591511982867262185880863957994985362912637861842749061718410377547314199449120409369108587745408347056839159556741413375038548893680198961188329958392239983980732330896841310476156987898940781314344116638001317022796286393640826855574106188199847840185692667773015148244530546368895599019459416632046222318649844044686093828825489035455598148126919297345192152634900034253229662129575281582809681526055061096772638146203201411238166432942217184657668731922879955865268361875505545240698495338083512262450678622377757076314053764269689574246544969862149223105742542593332493396444119191226259861109379232171104316834006431227081806479014800883219114452460885852596343830406457011696795080970679683760250054389149728868070420273367982362422214913040608035037914594530449452905991146350202570878359412788876890574721426553279866312221732651162211690126236473749739253077694922174510094772869327326054659617979853298039920950872419262759612375293040002472123972697064677579904634529509798209453779405198761174523165323952154061063078253506308998813176758043273529101086771638583514433735173100628719965418360285205924437277334981513301512916003791624382532419180437215921952863342311566253691492665897469902986414666655606095101795201455626432884697397130295559427535678880427321239810105819876705037597270673795626327969997804940200347277052438483477270224400766610111069966979396054537933438069566567764332464771551200413325863356659263427961817683119775291594559950828030618489364996893978147539833135354580252570964397134011850065062370416644240070756055712572100886447392344511367658631907544357159266806190571470258068646735172382352345978893239949456988143665568239717675664209270841964633561811471376331968320036139326588780221497336724281456858448979885414682749355692734748729316628676082138534061540581936834932566890093265794322524555718227569302231929056597245566254785388329559683953889565500268193706226677759878248187398145335005675839670562513422974302492166886489827430808966355886200451284434103093067515282774060313286187365191740122043161925974022276842798528958134247508035057921651789820660951151784841757470021001437350469308965971720647377372183970048440389783524506958430248729944739945577537957327158246912967455121971725125620908704493821516231495940754690419481204912503842559766264840508202367647896701985536943642574985385577200221450641251152604919491742914647192330870249998695590997618885764885402012346045245195744751540742504286495545552696701521640834153326228916301684060466283829185378887800739334061369268912001809918155514838696309841389520945506197193013897338761182503686007877445050571535316658733012979642529932291680929736404398435914018637843293478504106776773146230174867913964884965257874211646689695690209710340286143683794083445704062606312179606460145900878884054287466504680023688246244468496584914851808643752184031775807347879740326394340601412512956638005608251528524258305374505846205044977894604676884113704696478961333336449569928138573017698037578248381470288179499001032040499909050829165326254955533299939973556893495329492795197132572908564242969362628881756838144249737287436073656733171564494728948139008498639936269852781154073771830772475339672638529285555645972460140054623206869578871630142545061948482196398992243043054194144927177103838916438637791594900251753504821815759368539791752500920842053728112786581109152237602307000413209368442964100763626716688789881016793826676341047773816177302749271272762047778024868694570904800729777920506537396204590064061876108314024742614282835646110841575150629690761488684276500346123750685859019950659940832097709779383306008633792264835118850760697673244517015894343593153629750235923086972440939401108090309344630322137686181437228751437175196477968300644746945791303559651385259782194608426516880081141048762973286299567674941020621629376847817217901857827592764329626344593280799224236067422978080270174459718789284332984251877712974965124425005342647471421147858365283413222526825146117155091828313434940455647739632304304218101168258489212128520180170274162879370313235295641369118215332873564696615785180962703403647212716972209644300682699917085481063394480464599868939045523259575803737480233344761442755261641589113511284383459266017110721202250928585756859234974967575176763203387218677345961916679186318882849177826959372523002000623421871979860373904818131385678008937859443908348522853723943606873009620130778056512312940082428099649935402795755874685866803391512620548087770995050303850388530707361399599410595680033946768789064419848237510764421878186095754869583882328595503238650465451682453910362132536679159123232035277122394354219085561328157473869780764397495886720108701163895280264531238764182208557828435153754111380096473588024452645870407369939315623246782496726003711602777649891934011332678849425204612743650069881759355135421734039819043067311179367149771143835710974259667542252072857328919159652946259653417864817403216220941289744975900084255464673178991950731305877073291300917118094975222241853212395191830752380279598041113580293180972074702045166532978239867630500161613937727453897327209003598566451916623269596673083465210344798091671797062362966389470048545098921764758277509913912249524523435928116552175487913484749761615781931567348713330796693904625707223151284735638348480869605786759850864874392375984204150950951513410081086429909204729020441614080175379261966653105338639468916222443272293911951195009817091215206437815526285409798129224435874084351626163853729554365283902391750214004370052582073450402031297163262075482203567300394148909479596150838096586665330544815504250459473625829890929536812044105517811175260063874088047613050681153762060061138091819376254522189296809448837208654447519890963922549704918203795450045493038641386855047813642205898598650773178346460347430462145882183229587549487241046455377162056769273379883023248065598902726428640433207383851941136215845251714233023402692908294668431625254664723374372314747160265867610564554957538397288297100622641416540947895614514821655628643590304254944865120692210098132125156867937646488962074334056199606513245900093276340771503140345363121690676452939125821788688307514108381402967681892312581966682878430576628411494062222207401859792272034957181935421837479624381924668974833324801349336044859945840326748993995587391738573953744063308303379942880994510065680814012005052437461608390847877999097121397496911375846595140114456894520762794510387846827483447910339354519087253203854497859289151397274228251876196098519237465392742442099106089168746807630400604720074569392001168454411346690323124533184583928497052363881637793633320452585273878110553858789557747565523678285577373728093471887987578383839453888034490958991281057023161825404387806839142150132805446332432753244387992402957631766634393451597357081946556872264652984152127323449151376730007845417974917551206674361051940091423593551443889501051334237984878361424310989337547996385326053480489773031823532699983389763126251764508671301374957378968190678738782326347898596131054786716525869566176862658853552035663548551761444949201878016670807770800222568051554691154069748272485656680288084331196826745468069806370290949432573820308715594367916244959831087139779090920443707346867228029831493636114918735213324213690578635240179737628274594903734131402373008957921888155898355479621668597948677908718182339819556674904391872506996737743309951354705787032827391240698925580166681911782720401920773416649108596947908892584267193208538320563955530614778593548582687757511017776248292955426224576391303643503394590729534931753412294959519875227027466311804076874185836795164689709559320867500627405489126107486446885836361906229263733064893922264765372178355644477594144350991160393902276394875933838702098212854896343942972864683817906460106465061948669013563027917882445642313794445849398317858988918574541838896928801968744735301695464013637297328999453767832573073721033722696144768391485429541363992527694320449464590456188898440762508215183683292442536636604598075161640706534241052610151596480704797457019105448188524568270674077363952875893171294728108140035123875591754847696773827849973837658433285804786222215992692498195194168391425092978748413855316444045788516580961671494415595391584288867229846349466243085618405056912365950737618634143820638872041350341905313958669364652084319063770283294585643291252370094137601259228878310753976661737342290696639030325076472007676751871828076639383253541659775552769952810051434998450511699414622617904566650729851491161644338625444587874846508885084070356781390529229315188796571717194080824473565464410627184410924600301045950341256561397757465861488686839339379059395454631030017256276530945966852747814407792256023408922796693927501426094892675866515333945808963134229800543912917988666500264737899486613031828121461096328713901348719895262123326780567103572632895336367753927474003674633708471281904468408191237845609896454380427763061923649172668640183114319961943328812608889936510337391990157943125784182264114676064847955006805486185979777750251377312132836137603926817450814120033826895026717006889000333337797332713637626455560836347336911295937732250530302389320845021064156961240015977606465531222825198359482818563980607677902037182377267297589369025057611256506183840176325570462321708849988048223273827571011900948721801869987196183558359228652210475657396936378518319491708933609665293867182156567896459399379678242620127921473230483515401171218154112056957117446861437955968225630284150957995486572279282333515278548180969123796280056986364280541047551336605566468332782683674936825112716893729194323503643140144267008797038302210130661436621675889792711918517280219673153105184495355876437393839420536229344771265074360857063735033329942111609880566733854502787287245534027952974501954210976051174448184312945308350362262956916192340552903167749590059464312993492552261907429581744162077946545395093688171038110541204384045750845097153892380428215454794423404056528536405240985151387621282955518428285906597994314340197228432472648317309056767108011719240215766815984880735876476177188311895102988652502599545611726440840506392538222174335246296719646048501745555926033410515676151114081288459682791564761887194590000337783260326142402439975645782795853775201775786023030236361357915921923397350315928133044555893688789176753739036255615291984433229243319932465336207431969709048801105616085817058124640954812658187138992967435381196781962888371327745001916329071814491864282379929871177701613465036691971796594926073345770420503274477290032554518131350503742603434858100603273857711868105118648557771285430801259622231053847529472835610546783277124646435377258277575838009801105953735746131924965856299968287883579508402874067203839614211060434384786294078293062323405748160224425345484342209023134687242133981066258687631353261437539952278449142149736142943040497461872429413534546852316134687223477467857545266645542415842130269068906212053323645567020294784541797356731032172899070742606657638579335613530352124864907270203864508557142313265349674559285034280906497689481225268971015782222079092249044803367015481351132594676573830425001681164192025711727295885738806707718906349716719085951841367330031424142074851581412831541649451210124237627047459670217688005213619227692553386046897622860914200172268922111914796800076521090324252140138208788829408495714146543055663557970456908216646020616798411981639719292956607189608817723694276852405393039423935695848511066005661055641572561612177331796342702404904073679421632252577447541800296929497933340820309864836870746379180717244752073009838508652752165122547281801398869704547734318257200062830049297882616396561833697735660183157071252266969948620370715279533570549134310602199360079717984568735213500095144021785941314306647248509995337332933247549856729780648831571177693451899192181479116327104701236273884035932072652816071638136364168379689626928178064182670421565673688600406637526018931609733080416677753240404552257644724460499913195009448930465046170426423689294414302590614952872123360844706452520457074626760859906533589011692772017329385491886837413198831458509246543549544840739672166684353519698064326204396001105755274577338435286526160718368502142905230384210654858278013007254282427077421523522953860066874507078828022230239700674129540061714051786486946124182451287214680400956792803902052245623365507025368342985908516989858458889767422903091881168812169794582463646439320168385459550962552573200621204508151840164288652980790814221723805176130107363611424026540057693859772529826940669287230324531586253338756583358177100626009222908884909926388185342430360258071239091948715038221176381729809964606530700834091256974623235707886391308248780446609564591393198814299478100685285338808280188099657687987128336419425792541745743758447084638640529722701435064790031653997011402023336422344367154976608497277748015830263062543752098022028127251607935842196945788976231779831585733935716123826506922686771303074172190483011356977017498366405746863943947543579623439936532887784602059509313186557583266474513491391298261183317693916043435597039542382652769911789118482327134367626305635408134613051031445961278252120509151864165147713549393245847320592190915156497384458540440922447207478957090326232547927068802978376852198826669926268151909378413351894367462371952033774775502808826127118683410327032034515634553813133649311940316429670865041577464238542597380063996630900602164380238768508581507220824502670225430653597895986707902488310379344380427305001167304056172867928867387444350544707608292729912278182578046272227008247732826407799468113278850862437532656288537508091099045518186140065462599001644731469289459332670633593390039585765179188854323969675166469153977805509132759044606331757750629438342505280854576130275890922631892302948993909954914527441425293629875227819575123560378857622717999212930181008433923265519482339312396066631262158031472943990259439745821606130926301039797959876236806427482507588960726233361391148857664555531179866684791280769303611466428527063571184907202127572314793894847380923692854762184153140196647839833957278247039414535265407628046256369526403125765913894667119515749355712912975525204623307934407235468235320339799894934016673484192170111642961724865781926819757494372782057070435361897698342790731862773132946635143858589599739566388760641395135018823625411888794936144987703087917524954557402645924153182967119955676617805657376284835178435500258897588352899039746653888695104690327788930018291338790376385567477754818095416272081585531203869744980952106020421497854572738158683996812303795026281482825652677536606954150581572795899712158210460629676747575905645693030213034902381283260763783442099604368655929118768247850802751550670747251133970271995401031849564179304625351969250991143232560994373250232982379047801926806575837318467236199902157461235719393064056560974461088279985670884004825274556491273765283291375962570166406724410775683190385860006925864476357560696507889398068401741566044741167630360099265847788180183479868996702952079939679387038091471886082897963727482702183277508878534717368139196740618871635650861921777944109197472116672766174301085561739388662858222382028499444433484904385633604907459122230945143270479629602272290037220127586261455649565196405043301034313142018105811085091573745192785600756073410634969029183751569860007864421335703650761183485696940273718006243448280277142543745604435069060087781912298783617842723117453923583098295984437039620418607078509058905769463818229033206921344451833770379831195738954735660079704717126336088917991416648531842969504777092842504710485312833979219635818152366628797701434694752751775521804725056677064363784507751284953693420627585862725312284983225495040993458841106106532595865378448304308708567463690299768908869180158557439802428348317604662446381548634839773054061369946041418761928426938404296512684189066597078858445445600928304833712033128042861209472144979669895412956898623833213339407617808379024322152314491200289956660151817731068867565608297244850812834755174985966426553044013098187078287895549058871378901259697228695312974479028944274213278496388605150385449253950758917672232788895229603514647854167416583127949362588331964746236892293910899490865307209106315882929083772428128945239983082031462799599921913040473151192518301460929774198603064055463964861657325950446488962008534058728571336678050207548877290475139276391504522794513131699681132381770368397097013021940972287246592951086032797827663837240410853413150345586416818412705429805620370710643174588893848553384229143181983473615975919677568830238849628687123256403352822262562236361793278116972361446674040288473299721733196747171958096902235748210041314821308041490631903617128930111791509955372637672367010646522156360136930929504525092455352404319697222870625009442321127542437611570722294088028733708874276589999767921379800464426437630598616427238874621958033619899453665299752076845920366640001950263462185211056203092080188448828384380402291494124147413272775450476384401352040719453009335032086533035014085804344494576523944020247700291008915397129661186850651828249265073800089939690727646506657580858302778634307193489813522560503093071544201557641201660747221826474616343989314149992292997133172059058936882454568090100881843336153267838457159635710972741885059877265913457084483821806857284518880309499489033694810853673911929650520722877031414535837920215978052542724207156706562784581176725301096574904626383720805444978053274527305922222061957244377505716593907589822931243249812982246461260593726680901212155903586313487373369498815381227199062379666229665419208258379883160732314486053192780669931071983055684856111397806876472916022803198447398560258626469962490077293652846193138545675181240857141365415962206898264834600892785509299730427813704074838394089948807691823713537728467808891816547842100487796320049663254962781198096615449010230534601277349294553928505852028525078671111663037188588571890727260430628972241375022566934880694834368471623870756423404049634266862657361949254969758511888373437185123076563233629804521738190149657433704280248515513736536543750157680537253299998852874964742512495549794622026301812958063393321620155003664023062979349141955932280098852359197583524568408433153964544393342636387770904644986717925924323867514978693916685708277563944786372561354714827650795541509297290218354191594154952297274170300685715653864870914928361214340275766292435473464849281740284028552921164810931539818284776396669599689119072943865358525582968842823794837043194867787348350237094380285581149225460169528785946442418217154790456737149365890137012663558314293948363933471888657118569035038567764697147064961278046754768480666449344395234413700680373364861896754424928120768610556465915303263584189714539587388374913891866797610143646864857084618653362330285102279240529609353143376877025002312331529332604384812384264041995913752232008320574615252827861784275556944849804139129760678311813336086898339998424604590740839069184250742143496445661353440374091038342255003335506651909178439451471979149850319681532313234068503999082075996590911038312979744314081765886006786440772284806848406507036821244999237471200547378392849231529920469438525581825673444478594634065525870043747525164523290693359954960772883016402887553626148746123851017792628316384202369050077471705768771184985201923762382983560487195330328784655627297579289313864219139307818280096675153547322490259565590101873921883780315014988979767465459250147737221005196737283020855615371306949083546207910784568144190443504470629173445750159716559492817180843073690112206411820274456579445563927234032261991325798710596451000714745123818832450663859105689105248819979500000662585703890735754681349617993039489812646614627966049707325807381735384271809836326645461867996965907935844519773470244958703152482247091845834374187683411247314781434639252021159899337755210865275402269267094913494381922972428551366340841968383502167364643192307959354091500715434411077413548696763927615232709892615008796470124741012508225447145857968785319080747911970691296217043889592549444347823746349409565596578441621852401110049194986575776986083673430451443108230766706924895693710816622615881901374842798875074651663556324705808741146482201653123476664667532758590345299571070861067709410407666956473321136847419714865508519322448080406256849972015056723384719605454331868868773496213496657070659591531467476574144765411833784908219483975311850901980250472230488049156826004208291433729480357859876111858392372947282126075459326778028339974309944414990572389674088069033539022771366119210052319305023885079769668511149510197920773880520291676204856150055371842593308076493417939193087981537291748723794192877972206341499205836767740859793991147704282210002992331141737117290193563386953225280862135978848990752133836683566974560848030558057897513547824118387243037633917968319706731231789485328711788726808897540717729774344080280793933592826929035452301795010662507478743801288482313070058055882864224166337648713753442665771671904155551736006719608678520310339540830358597791156407318195120836977193671653814726844671256324895938335695699982891318506880006871186544062764485096384597742611023030207812202096694806977018098755468378433476618268286470380413563458891978708056137371479552311849316224528174835152042697458129227548129056290697644562315421911964254095986676442923821605542935517893307681360269044788834934755043899792350718725798805569171069420104467359956353883272335122552543155359889023931994710163592965229686666191355029532709732043843143339257756525713037376562573958925262805319262446333481969018421534254344191888920808273528402056081931001199456598577730586146607959071731400802084770242188966575445419820739832315184112015777871389863517706434548825113103257584491721846227273619902219624249622893790806333963911861355501050194507397459124293467678386745004402045489098989045377052643503722809304149364492678027980053345268661826476790642193636943643020052952036730839311887490195095478718458058871585575929607585962988702281069528457051992897112529777644271026784116926464839066291883109150201582527373812619487958068284889226528743116661694588653808678271475278197606568527848748112506243427732845588636221974016255697630184248359999226353324386463478756221176743453473348411209655353614046835279784235280055833167684717418352544837079659947015424870906724511087727714142528708873291077395419785755923555199087446416494162223747589039378168049673171108935523790487154948654269064818776227479235730148908587068069638189762144357313393068688743302446448942098381506310993800231292850089170628498044654776810715402283006419155602069088030556396162786569328935447107278547695184433197871273550925396254761856834652769581315133741362976253930571202948715369581528447046164116326777002055194109288667176031102848028199392996628974197966231425107672796454006834828852610291494627568569886792923489016729530121887620054758789415082963612032374250926186195827935930076120058987099560069105648919605655643521155564302180945084009042328817751386042375026401615239597236208767179150219154134625179342578919949138540639588474540243064121374121110297351259779913437762287840101182574928920305560382494971182089140923749800389324970149056709324778425280141653990568466184378572396279765589749622844487210424902346481584777824606966190123326278973895453284940926013234444209956121827991936268382909552183413017360722990531796484005233033733658236652691731272883427232943986124477136366986861244342568323551559416890781285005953906183351136667067437209691141669638142454382237535662679340798136144927559880592529188188675524156808082223438885556676038380911044106385208138770049791135802201877846274934612207245951565932124335722990420784741695340202705298976345531229188444186638061885373400562839549765116279322838389237116466048806355773906336445961875386135740077866059566955453533483947661079340024715239250961078531015131172811956783871347884868872782871027571939502408891342448697222486557565386080828788932501218103469264671876069972033145682619091572718744075128970632829639287200115014845977442531813013300716168102090020350636991139528712321586497045854008414909099852800899234591315734350763418821970971372284597258048045897984396945826315310607472771908978915925643716458559322893985234547858762920001190050751670518712315115785990483916876925980642964815712430399721071771747127356706032071293802357632745536465845628032339441209202836478303036594684447899069898908157038344621398140586447559215695770414237366370229652542147631639923486616049557917471621549122605992830778836837279601885422637402223868321909255627122219539467745827360670303233671054629761825412584879288379066270965420139178181812242620539071910394623709426882914048686550439850196888865190795225905863499905110365898242745725537814041106149400227963340455601521035246677326720816490954352618296111626318055621983100257370498514738421012366306173530260262635919712533716934814690947405079742251214704215191693207651065205015228629352493256098333558340541168284538169774196036806876922630948753688122564929730670828410675681598581277953587418102344929690815708777138460330649060302189143525620620526512444212102623807316950842224285979978763421777219601188701080030642411957076854071120858674244927069056443369905763246624844074517509358094675726631390141594506237571691551974125083551181711527336503467332946643864732819527162978054998463817821896868597347982577031280778514010893060418547639749147856302684908469414419335721041197385255990973367944797330853952407922957805501865236282029608314674212053965901560415735641681276261789979394837035798900262746134996387807740644952657919268120153879609865660055461828274197809132542748571795744772099498743004480412747306065896988308502667825554741580229997921799548100162735978646310685310990126540318322904979355288065414598301620846101469503616635696527760179002604790462856782149973185489546416151648852997447103644152453730865420915549367722565576506358872699783111431028237614654686838190671286918274750085673181833161258324549890749252984421444200945128461977614130363324095764101902986049129526107139881653128542822205739536235018588622101603517390748247740419233263011637639360343705755439970586911355304951009121104230461666078477675190115782602851751908052033159493369705156086047954710478935022787990180524333388843310772919946712059228589194128652851260978677403325508736416775532037907019789906310917711237171826905192164572450935125581476669752709015894398227557323523717074861099131033321636558412837759298815474131773583115474492280612848365176573709844780371622900374124039720110162829958018265501512973522705956823644110462020158039264266545301879636232067356161134730105499490549699142890961183899346284336766206503643147860036360140596808728667158508185696671806954690099080868130691351401113786497395617612515948611716073318487237592107888452221248513897889633656655339532269689566094437249178815057552154864189902488480762790111587998941161986048797998384471617449960911763429663082891634397685323083910277143361282786578403429789870752661165209989439827880233915789018692014086038112666229371090705645945074816342563882681021115258552302365658692240896583506602783297062298618777567481303261726178637202909444369141211523459148149363959383556604721639753363713954675348367677565655564973599865809054054138598392467252846211096378214130038820687800328305546310167678729983737779049651109962458583224313610748170159260644027727108147874187299891858026149677546495565248714080431732237327554644029726076031753914339523128699496458098266362117045398065750808362318468371697397357799692200912097893526213271157593371563513699103565645908133242070986009597600243487517007482730034052327177956983238015279576965417062494419577985670249594715602401231447526991001318246715268722546207395294786590859660905816761599870855599210357844146534868222978935091505618951056416292349448465382530684598726839108224589920575709176584473484616999477016175273461404487949161702217740145669182804998727529162812312869793594172411604818452481835879660506492976934960541732822781619027233493288192231712536257110742394183944909064475964845609906594434134974903202404896034571512245799518883247102131094667977309023826033224938070944534541761423601022096799308257674288965253771915983151075367900677157646453610322595807188944546244626024709046037876532179586997126203568644749441022334470191617591581489079528355012816310177732631694300731825934426802237056232064066139494373422504640256524270625126891190155597647645893165998463397573798449535093513799472467473510318427584385207399257286017857311538747539030061603079629960888846829184592547015377340097813658399597836545796816341939729584551919447004290260395445026507930964809341817346411786544067093465479347091325836377492362161168548528810855387757568195239512661437753364781848623785534500508678746143068596502308537109431112989138924904534884141240111779172755020248906181721070739776711811322662221233634515809992967154743769430719489803749022109583786366743410869204652823991502800891662740557251423186265006178547883514416912857548047457567649694309460913236783956391643291555270203376880173360984405551869831488174212659222170465139601409305780945222455466686477007299949700634033960201890116416534366408317814807105919742879782854711460054287101490705873675443509126604219441411082188197356675120902394658481799941947165329529999174156134924461971416050020255484672903593937084415458770238353539122566447339912079993542302264781257532324561957064702300999406379780673234338784914942126733026741975696826228524107960958373667381449553188576186116161897767792440217777634464703577205577867686043051864992233003805889546009561615007318194436248658804004409486854761625607261075110145662148902619178323437928018133534638798423760812591614011567798051697807158716618473542341499188457334971262946162330951515179412409282629074301424792776568444693888409329031509753160448255705307555675867861681750216086122897533999773682492036475306246306859095948470165135442755099536668690668634340772554817578667607784237064053770035753233610079937789154390556746488938878065786588852663445370799522706019464699374227293235593993425142604752990517616773062859145388868372529256477119271742692265080719280198493158695933717742210089626408084083849786374467047516228438199979873924318761433303232646678157859126465114585051188008066008057551143438583830520899821266555404936573140360196023605766480296819092793960661146748089642550487678173691184477424529061892055694542272394076862890705402495770874468908875923434920188745906300804249404733870303328726634192993030491302806553000424379470331696910426784324724491660380849566581682539345664796385994523420841007975128667683273303676870447496082642021490264530179206089998908058284134491065316314337896954154996838933704525652358556587072179775707758548685970642598404982738500106684522047878192536287957737194490118193758458512237348991368255878514104107049166346837297772357719771623806244043598122307799335861566713759226720932702374343637799142739755717657593611792100432979985711967541940252853007649889562424888329075110525371625487716648589684880860500663054619508256674973698219732104300064856008324217704849348697057704057789056147883250743651450956365022571292321769704712303416252411606754622657556828014677677457604088133464129790055720380486966623455008884688642650102647765782969548873357243991263843160230281282774380826628087837943184469291305116027408079332591639081828079434981742685648838492541044308849461463450728272064458180234733217767382966789027389746919536474046470962174253461753966654251372671678813721948008922602407774008088757785462046183635358148197911404593183518721321638391926975685436587296376780188388008241839035530026429187356931871841089646758959618385106142841005038500068326514861929745833707043044164697037526759918951178505275955245098497026570458037560905544534449426446392718558740535386747511880938002585049954311514082304056116141148957368442582690246027162847193387303852101929560471669895789403930864365619430902807824914149616120339867242162541085723234933148775677033801326723677388047595168883427925122856780533337787777148390924514319769748195751186520719093661221878615308327154464614470713386303864432437028086538072780264341259687410036771369029842890296986662703436558082401488963441676505201207980777104943077895819520977699376069768031300795680539920823829469277495719121530443789265068655414531784357145707383716641028613418694091710710303598808950634100369088229662507265402877244186119205676784936993666809982124567856488951086859709675237189176064533991862199883330967438021584047952596653630397179693530310654784979313614099948985655343308474371837833464763498072218323978336503450579775108286974064405301402327253582062825941103506714741254818537081155715362342542257783443700220848888716009812060482291570655118963245808654967232500913161795596119265250624841275541288272505231835747367087458324104381152583672298745976928944208367007953294002027306307101236860920436820062533501991484679347896018287693790790056139774741710622473896567008400489645694354700502005353513986415265736569047013906384573967044486271798649672157176097071970125305699878007105444596376763105912767861470814139677021578278675302398361369703263135929708847380315138170544971422302420084833111224059354737424115791861770738222086489163071368020489199396086895240538616044844845192187474453386443847276383306336162468307075635696348164537170840612652229586948717408752453227450509327753277018336158291408182497265153742999511000387050813809269811935722394951059353520147486727496027416719349994762254158081343187076091575081067871376067287535673552481385816032657079078165295044959684071910805574040178650647647531921530538323868933835298256403121155125354602168367864791499476466725971763461315167618334274568872148495048525261688374128615129440288517939554964818214816510282379953777087348744301837837923177334695159121711599594204706378270613099543767014245522322254744653075660821775328344333680801668897924520473936526520484042349459288607794479665143061250453621345313669977319763773921580089457053892866226411205376495922010717671743636210416787777420032815778401647020064575255254040770568871212316131484742671202072298971621979693981387350724072637881238597288927336921238630180056606606364400292118679015819076472042719758608728559361989388216302240729650516547495799090589732687233913682606430361866121447100590342567987828564769407837518493689649271021436789258862847740558888034553138070475220651049126150748611524068642302385779737650568171609960828132760937962042422431795359832077702645808274550990987648247672963997806813777377793695088814932386454629728082323860391915107522997715099778255656649148023408432468041855586917776085280037513908304069585100559135560408790279382606917890871277078651386994723042714891794400031066492955415642897810738966195442055183169049679787828179001941804297867284342762679526664560028703254303424712102019332242993706814154209667589393810013664388632048775367251431651319402115063052167476155677160228576110403189115683795611967678032950389404422014282638792372277361955644922509704493334142551339720031254280919318038633492193078840463336126464313646356806432159746696352847563118287720255647879913638852986987029239025866412394478265422339326820784221152688315510920119235186775227197993640536954895816502374400311349638562181594613700324380027657680836089191599143652871072468428980102642813431093099495297597738109146337472313501957843642574702730577459991324380607311062075459179805437281216127559075510941330887329675725450078978650445589792370061674678608034878277273556921750986335973099279786210853975789231246844997856764731676844721522988281911018735980695189562857031908626033330744801620725363865894800597941944929186305492038776892021327693516722399670215452782862305972927066236030659140625411855960665988284637504985213097891741958955769736687437689855155304655390088973821399709968006761878532887174553991496633438781228324970797539951103644948359913665207138090560239792559946667250929601697009908449844191816806047217546302128342046242003091033142492402583293988146893349252049254445177426017911573367149538457936942007316804079445251302536024299140228183921488564936962797030724932436774025524419108732139303912229951029539381995202317082815394556386557354645757326278786241433424412901878934530489361979473896415055416299023924131652938318567349560585736833625914861208849854272858535413254099843404388308676371632169341793663544683479206670224446627572685385133691433883590833429307681596642218042181094243932631949852061588964022467743493339024549306858782981103238866554791102981323460974359416280565385194337812729029807560693472439217355712337172363640513417923521419686400945581572545678885452647519276849833142593465726017065166825246235325413361772617123873026220254464345116512738025646683652639762290868834118847166254085399722474610451180845078632349364288152259786940300844099594330115228028449524374724428458507502689621976932435982912803446274964253255824617203702402552259346770783321409625951584924216898410732994868425167116329099368993420646698029761405298506384651485013799991457271700850269357733943791879531268691356364209561715325701378689453567730675786890227487281594807832683518886969892582086383265102206884615873024497691727003756562080765646706150904853971287898200915144961231040058290932086507418501278157817643276896068365550511081320313329536135850424464609747220147907187431418159779263389895982425586502628921921500004023794834693180232739137284858442183200749148760909701668225431571965845089693750592173210360853096512987504702101172619497681642396445558945971928939449229923455122259408224049074610015138702530955865646483876418176428001262342889833764674298385879777633444689285069124414589247483176189406344484306586082628071069587583054553295499371919788375690074432350981467302225243873198578215495673239258649182877637912536197509877708042035475633669227382881236259644658321759409296009936646743365942470077742561085604359010798085295454718203733288886376904691146651478993266942144899713800011119479316373809692769463249033108272662141497327419544558972618178386247334078815996900733829313906496569424775130858989274243780587857212859358195937295771687140580171115504160886786869143547578083755343312465388729655177693893448587922553825345089717924990949267209079612256404423768120489806892740652499031654633068278472505237437150553415727196282398510907282081194600044248500829023082701257590428757592060709146256736474671600941477026458456112611026546233632081055316556142488789651690250695658369388153854201610107869324947523412590734865471564598625120449558324228700554733233907626157158774618265841361644184560025963639958401525885015063828518435745380948091434235460857536556258175719146748008054450103855078083506872324832742723773396771807680361806870697558927381986208078519852481544112198437444734882643181551387541015866022646123576273441263451279444657283050465051015005375601481053763440335563100242924193103533917219860716824937048698520514470069270399262757890858203622890083917495249383954273062050704379531198297945630721737438556502481790697274191318452001934403320419022428532705937323832032411345890466137773313215059680313837263880840772463872091911432442134893960477997809885667164961555053658699540056374434765237369852955107122131976282194088369348209677682521073399032082477455341449339206329500266330274570485808733374151860723880536646591020198494367792622044810566049943533803212894500794822854827190810538123351118929219240571100577008783677458083446439648414272649290498112979617793234725973055106021331648502976272436243625824497548532601909071939920055615937140793913081619138079938118252499413744996905584299203715454723349539726615840378548444957104707202560127161488912777462556990825617448274529056306923780553440281429390815697073928609801016150359237502538601126697294949560103644120560836256766642778681248701394627012657140563242900006443210677369874704672347625407987663649318302186894703081429714072026057708962943759418477099572810902861999208637795799255608614329662126386708867106141204169251754654787879807110310775470273929229046135748568509271257578044645408243071256290949950276908952946321299129779010421750956292609437469808579848704074170307131455519433754099330277069570981142029629758029715729329525182011420527387242502335224103144022666455892139102876619600197552535731369477351671458151715925418020761506710968685636955039088086734045108075349559319664431403977611814857019208565784461406227808993800299789158608735202248230243317830823608294811836362793589355557309468904315286001645558725636006164102778270138168320459002814969888962111699216552393888790308606894179341503133420525098777350290024160338291861963577005003611856410265926469245675912796815984593107763507127528366426894549138190567787583244135174420416855726500006130649224049029590973901637130311525762135767246634851396134697087347323607552745230433003692852861933406283300661081621158739213797347390024790419463555433511283454408496565333292861432565536349942095577128066592891574079808225628089761236794683869305128313827762810668421882223411121079994170864465972780471584522332700463144709109530644219306702124190036303406353737166730694088914830566387042513669335031362702616344998866652596164372929344784679687594277125080701827729421656792328650040022519828264584317258573273599627380867166646428002947689459851947134765673776032389268734853671095696295371895959676578252862614609611450014754880687166393422728772166912528247055965696457906140273938662425230732768266859369160530604936425212836517589797447668643213828155264076856196335730081469471416412190788267691686983685751939249084104510797386364313007616458984287873180434211771552835230211766782183082486731102738008837230131153316818069713646709793266871886980655869406900539185110376637446308031512972060178130592249020540340196896198879844767260890352723164893095025958816019231442903125211230781075917038490604270057380506360575784985589036614416306387364260504648555357624690283061561328055799472787304490231155786456693491390996229468833541710113319690997825120234249752038525763827835237514098445721938575158559778287513322333578334759874682859786090094291605346597397237019482569904305844566546220389518890225560460469334494966691027278166779684781648344552215521573328174579577451787268874250840413132141398568313379219786897192052148985992488717581235271797980800313716393654791343552517170991508825520048381164058858450890252168489219035227752163268113955207004279692091066600089586829426223117282155003167187811969274716952458337337831621459799361792992454648498163978805044532074141020058003729317772282805550193655967142590334354957386807898979539396722314655976636729087128874532766412557456058054583737350167118313772517252884246883283682624069808388810520976790659070425553250564038629509782641753280677536050916909088061062937157840970599994293560588658605450093039859672269838869011903204908159105778672907077995637261325530355439758475361837838544665596339039694630753507187828802258767001644111871334246656840382033588227348335311326466908813147049737007006832972333427578030697488416141699644904930119093780195149478568389897424283961993634705508827820843925341039824767014912514870014712214398165059680723127659473923940654867075323590010824022884246342566207129727334311028051817968024444753524647208135986893394571111243438712319544371293947659140789526316857441802080557016185446153976485136524454944993625737341500532709508211861799750734673122794145623250687314027567512467247361984836232315636180332927501886206725947046301322310612833596301680280862630145766826085382852577619689159756709278793273796965780533593330294336632849407247387702589643948962184795886241204594441115263378988156756365668895127253000503159605233070010337323532127632478227425005423534319223496191602462762436578437972251139106479977502752975118189883529372500113208436951410531835465656050383519435213225837452198652512138138621350763358459490285410711670970024312837895029114331291343937679909953135484906151065303842370221021832449323252128680323152919967149357524002233887076145631173120162978651642145484970279773908725139116758180331567028146573567094542016774304049550325528690924729661521848339399544275366136403853088985647954289981056092669545800198372829307475138343944959540751210554865191035136465118445539999953373998723856273391527039830061830462367745020728443371417828840959848525421021380327018200625610621576682563373224523925187087166399033095416970609606846651643398792827159767861233038374501299511043470893988238913806416657025931747783132787865451809983318343509825378126925641174733925946496413310963830913308137694013547234088174541147004582082751191818671833808042600519845553722223889722297022303739596835152823154674699412675231292047955629808136751702534087339637949934317032599062574558365477473230440143735609441858500314486650045271730439015888808179512885657853872635180371439336148409873887145533579358217043159764657038675579121681952321718489884066501342333106663424855901882793083027230902289792680304435648628775723180866705695092887741565136309779125919234244878049767201897687259800071166883757333010873660583707520052394717580759536832922353985304024766531825210774021701166177298387393558630646509754424432845866497846226523964675936919524405985824496893688811198631386091944035327790720428601311550313953782490941943738211298319353371361579052246684078656997236374579839690794889374001830589542488459939589011601183495074589630799536142718861579112369288989670939949850956005344083970279304222032834187786858272626200013193610756111500559366102192465093379016356209172114376581251987037827563022775593300486265879070443531272112055380777333437388939074542543016150718479529367670513587655570201011352498222670648016023910096533506058082046148442407542403846007089767701752097071374948605253396779175994059568376843679954966101165678178300594028902770038805962426782847544200932808017338511060645492529680730998881941619324573526423579293262559897610416404456993931958233197209507923863852622588250734001876812522306614160832727632571021083894599635099797899485849860309987442937000051865751655418892930801689303557347478834322503397443157134566622549821088111021628504394246143462285878658902713428086801954526787260567662513941210701976722710862744643122025117008836393583244291832664517096190717595884597163521713055915892222279878397285257596034361288633388073381887069310362986005546673757236883462166072216490816149447752288449958831362522899812713305299309795735855639869055420522512329787638065551953449667415416998587915384649003241777773768594516720437886183925262208458940813260502795587702167034861970837425610731523912105323526367662981241174599155020218223991970479240289660346090205918544939845009655692656141930594251845278203926241725136177308991295490383893779723793030791608376187083376572502147432731948230616163896216605777473727547199400846430984929994016820703397247782274826577030242309638524652862441694818124741273019059483613833303505894251561164716771552837783792012051410971574880793502784516514224607271504625128652277400712490886090350044072761795710965343629981007513809116360564807140415189750356471616020429417673317644010929517908113873828078727910470426000775127681599082582645441335441915260728557418934994267587730083607115835220541986245259153753024588231095764544750017682205860207350593389593517584607880853938315915620703931619473777107716694230537954329346628382685441743369406932203824175182820853164529665423940859541984092108791950766957793336394867769080568760721167966534629238022903471937661855449946874214933573835853663611812334476267772694406730623556015384122953724959423062995285736918937614375652111175634634423101044535468019998475867993926188980600736332705765225607758376929569178326234071947247858862407618639690058880837969293345490126287468904994194698618938124887541464038592017158874544729655850795376720274509222962380931133866436137465436991448668269490945496455468174660204369579012669966706513620431783696893481669922651310511670008989252363100526359718553986072734324013067756167990956729173983287300487115921169189242498207812784361706334001891558607478147283467045720364588073141809464184987200806573308565625449558912007109450471615442409262063399441212399142516149463229200190842930499858307873940289017501882899333720462996059614487791873039440103661314766444874757483049865901739032510238742890190313058993524346317101148651103124030103872908391408369975549927379017086536350355241272456023253990083761774503932399671556304647372424087217146012159133981490432627717892394012469084873483403904300418267288732117009151108165358184933445082051504650150508140834942881113889859198079249540311235269638579820677540486215246515652604188175723839727966249915626021090894463037691356067996973118666217311425320377803762231798064632612029730528737576430391432920981726976479109782728704732832882336053509732788568909354676549517494258905242531563865174008721973546952149370431112655026594139026990513616619923777192573032872643728574131494488756012546919299621170469625267143548327879981331909463740099623869906485565887286010561623741370956108523238857248167596989254932519518751933128761149715955043032335056486186940270928150049219768156030685044843707417326036990799639890493600889400406347850104101561742054104826843439508676688412351278860458997953361860105824640456272453089061930184954252608693290619103464086892792658588457509305617147497734407780863831936098049751055373900267927205547724127012067083480343748448798338058979112037536605735592483776325193751234840026173666347702630251129283680262818320542421768760218260494307087006674330859312315842813552228005857187945698830941171724749505393364861114703843097597113129914971761454545644744817498413224710122966941565505246126214472044619489950526895002748743520200252826154193581383934306645654627008714263515752359648225029070841987112529895154491731245555959944183078430940025986742010974688752184987518559451372271985570453541570446568368786212592724371922641293612779930395769669705209936009997489513376023816817948970765477301434537114438077693057361939587454070275113684019729537561407301401752059948126787194407144834380391614781272409556106790430653995154686653890571043019382894841023502894497234872032295032333394590732995311591503626820189954450541462659078578367196680256569402511080981572043225741489627499994250709195571001428183470593282616766070352529106230520146414454957437364681214587850569728975809755100886448134009062555722996611127173649477340746699977923131354464231113379980055473431627578289790297521590781615271998918522534333984278859822626614750323766941409838948955600654805605431587234534875801507969305641694851410750048174494654700671648640807909700594047648510468456479808259738690843233740857040162964550404140452056510124416807213027099089700120500766572815480095867007600970590446363751728590134838504891036635321350228908009839603024220054804126675913336407181626096664955125525888408400104596743666666906464301088190130232208271071264175665964171928251293760265668641940786642697059702680610450303065553521775718493833810196126044168038689155931449223681799588677347161662378273812312976421833231923704552307350029247645250241410239319077743625544209849433448591321756265996699351075859441532095475229296665443164651124902239731386062258734663562519946067434753537903679939883519838090177370345233582140082765206213981090292150402035673138422306008361870935977065920646089053771143730749416609927460989433046980518599398117046704197092649829412423597575205040591768846812576612137666094804296551943519675165731351398689233121234365789602202816520758009220363333389251339200853527940550172786191173768727323981639720653332738324415157562625756307188079599448629548323034598178957539330822144407837331188775073905404569561619218143368217691786539417354051376120668206439141467156947413233114345672912122641111262645342519969123997544005166648277925296494083077263641776609159382230474867202715089695848121539545499047652525977034314223541484913112320102125354687659499866066710762496711157594610456106616609435682497231169859244936704690845852673510624583491839761054290485836720130607518631055460074677068820002037467493691811379464996459046725757550821736471836734934251085728509528545979508000992011984361044500593006397586343464358116462952082142876360038314963062335231857506167808309984220013145544123667886793528656348121501329222227327396694865276712328998967230497487341084953382663718589502406971874574073255219086738577894052282037994931186023263516947819608669496517934742220153792105756082000590080452955984300386175790087133674600076313000255530512707426362013535714282365374960155994337338798942038216629436622946984224905134415052985438439693003917414492410688437650119421421828712157512178101687978556821357276511257825574238687390539549521845347996283235142804172049084084912453714394245819720191434217601791817277913583452694584326981177899877471940908471854078029199244068972388173169927046039813106565257375782900765086670000929932859256342652581368844019131307344004111165660232404699935693109297866722654919077655821611853338809938979714518435616692591569430035204310443531452075152710359871582382866742856348109461449589468233171210035110283133148202654220524767125216115323209205935670657504407427435777510270470976138422731823269649337816616534376921607889299135680991550436036327442381687566745370956512757529546892570501621971924038574541396298698486271993415121354177106106565525375199871737787462979358694247460843606582083390374378464096838275787982516450169542858370170328641501673944140355207521112053854116211666021547194060152590941051007422278262999320337386111719253800530169213830305121737658375934389521212973392035547030139830806739545639348979122027381328546445875287206725081826813722038553390744368534297113601137582706214655637956613863732226051827026871018495435530755407825062537749119942419580885955724222260225947882700240404914265018558978895443710364989390314880960540471739434420979651708340407176799230530460818639066902079785175638142784855919995312787808576837111361876243212074294888662066771540618151207349024758673860480068139942795199281647368795602538373137840864125429450332405976800507055353343936114478065595736285553874293845864832567661080615627155559677537924344702791422980697003789661280050619605720110193766174290934281088195358048190876396809006908793271537517984958478425122777705471191036364628725896660103434661326370787829734482188371250950879159128660898939892509423054747490707231236008287375205492264908743482222861043696021845486289719824044155882462389566911349856622746921790946755008971159018646714912742566797515608032771446300411489076034300945370141556341839925684439392642005625870950850240451686477572190918929069674504834241280318051749106810696691205647703222156018823673512346899406200042487241541815234755628335765939401451912493149211799256518708824531340169714864575457234268486328050439834448530657463056051161847172523825201950504917820000662313613061611496427372867153149787821256690109108169978209841933947866829849094857479855189684758369165872263997365360409231430258556685640403353624119149842488931915132313670616019017986515119389345016271493066759437686234283081643595576308137502084780925081896701935709806435003932981851881717813867036225605766842966800045440420592239079340779923765124474597979246302103459405421809136696326692049349837784203357258054890712467640908831177497883107693494917960681558274403893171400403755279762271785266909027283168714219593029434789698343898989975788806559072988164325135235152774136452949821014822036059493594538488072529931470711012796680986083763265509663395879861551048308955698228655753334954403146707997971515313060784731870937267456174439082627375773757051488794354990290076427492854007630957347753498134174635919648183159549790303303115043236155094464597508814585544668390265477737533144357809420482711148641941602788045745610414213835201729503313312309148507669670289706960388981940007893198448445461937156435430470445575442614761042303387501609053142102910188856378656227573408225975556890683461479111761326854764277675250598157643570058378471422737490975508441357668607087659585560805414150205344417528966479254146622107292722574225466080707586509957204310358720271184276973026026458372273234436033111488669648495177803706242454834943271763378266242529031074430592909001993589919308445738909173189161203500200096395456388845297661617711618400395354981361345729465274233717151504163043972750687708199077219532622478178220756076187236690327641552237287453435067074365163439960334325651408564373563642186908031385971688794454129414982695559598441790401697108600414987690766708866280757119780998331767767954512714921437902999460561499362376575401039402558103496921303345617248551321291135955738195215359849610381500840565365145671387077268177805064668959499914400181342471249236726800809426638881727231915646076796234182978366576682853083325638870990478060637964081301921878201125916890462514143592452046729959156134410627353896969238922593504106526701817503605618934310931025784665274791421329889100931338330510442104250215772878757002915486453790069769344354798482815533344306638102044040368751280672521612906246842586756738670177437155245560105979328987943603291987814212419955628004167823473157844360020806318178904283298620242705937626024084245958331791843179346521709879461351386403532799593789786150537990456962923195149457992072526978471149376209377669321804136867503152196557347778206579818967776944188443344930167744553675227651351507975195087534256034637186717290291610268934260006797545531601273710090490681635634881967673602117618548949839892862106431266718699564318309952578362599114204720083525904947756638693359090757650620107143803341351818907903451784028025100947307924849322871472509956132740493336202178058170276145940256930397347899963731731541960628548175765402632879315675117550955233624809544260266693640720245186875290770689803772437905323260457620924401159662853312228409329874735046282015787292480273855311711500104032078934218777800945669169987773819761775880187583391706973828012784885274190372995225356811301794114420938908834768054440773524949790466098592893567483697014551727010541079936734818644226791153106166641325122666269505886395111889374127384723572763508699054812022136478331910040906421661001620963983069161454728574518901270574786791904157523723484045507694786602357877859926361765542128032439051449092052415065217481717394995281617959964042289506042678756251458113513373763242062178976881194661957156599384051990401556239362067907011172715084527854867707165738649468893985663426272782728143902668492444857099032919572234222806253032157258729995968574252039067156551451907055192350735337722671022146700935466469718074687971659000540784269882986778919062616774744382785521732862235505485360792044505297167009394086055343944830013894842556035812749002232736822530686794473453979987338978666768142216850263705249139790957234749340706426108921023034747362783433416273783003196247158540335278506860823829936735613688885838480411787843521097448082304509050649827710880761838814079750223952455946555047715298569576868900188548639731733504110245340133055098522222765157720629664269602536352409529119030503022182345044158332304975327897333169204273331882182950495023322690048372226230294770926284532976263412969199864330137750749463410710454420117774299483074234742200667716234906498474771978345597558507250073132266543399595469917804715928753313458320545583374301121602260792828319310994275766636035615858763136057607425037007454113895508477958722301381893779902112006418619693473785459952775327189147122111563116136942408759452368793238862350960602213475530697100114286542699323538271263356024703957415287958578200793871563226182802092909969914938577849391447355937885348384625058611604936329748591141843719519953267203082431514087529998589441764068308641831430844363773519008964364010747322445749220583988504237024486511247725397782973976757225646434267492399256251985486786380259055191911861213222693446156560400296605687771648893977499103575576285126028469272803395347350585149851737063976747224041583208654029345375525867426577524913971282839669819461107631348566092413701057917222534062207698994941404170429071111593405354636611599672662644017036294352026453580119376798653141743321004940190882417992285675962368645779122673135822087142456347248122669720473623222031336499051165123452586179955846833129085161161498360104038179640229854215620649272269152587930528019331423482934055488189644990283149442741383716395794527883109132455304637063565651177657561064077189605265529205151288545926098547965680554751277027254464178610714258134612257611930866398434149347635147002457047449524897190140424143857782564528224880965399568610239701263485596132909753408966415298438839205189863392013956317169051953919275813962426312757651341885756976857433123524864969138033554631728807360006257274494372128236621787607462553155773026753230399688677583063965918184588592047654633062344225536109714511596109157677558787725547502694114352279171925549888087001051126273077449864280656929531309889320030219194461262856440338970316052307671557065999613640569919848695915161810285931659724516983961629951240971442077178738289407494933445064572265815060605624231525553903797713008193789298549186351120432228816691190557787273472807146007638598912793971083879815214523852713616155435090255078171946386174921131357623382791493372551842640312248501326923943484248513709987787330275859074875411176987670705610497147751374024167417634812394935222248002486077039354421343119962379015266912988491588257515743577971370348822860374814422502701773132523639252600070427310666654520230405753564938119246647823916580796204647985367800888194799902564071328107669193650618575497834428433184823353447024691833117976884252585245322516615780064200695015825934554212251742212910541687024535400324437903412504036425125342921387380307979960094463640866519910028346882279145631408628270883659076558502587511105905803133617424541000864116814835234751234399858072673492523112239594089084539209835468783318938857621630120477702258091294657430404397058191427891142800847166067252148190364755047707402333264055282898121210741340243926872553417341753872221932657124151376497956143625717093052698920183219999881551329206610777598355472092709654724091394310031627421006710790175576433130789884108344961062096544303392211542609626907565676874181450985423218625039148637367570048945736496268118244889571239624917497798183730123679212374321957169897486209337141464772767164323744454905917689339472914687598943170252841505406719735733311398151186867974151838808032672121428095145804839605397717594468301110289222200085050656567806792377469442903958598687542598775901827411922442466008145487605600216375562372445079370411282112052147416373145443596853325158753148486665035633170597911942059451444572904962361014823911598132180319176272762637855267091082746022370531434220180337479570468609867706919171714592929819814096835896615966799873584017776356783748134898719984242748973137974131929329526940957543753749065120535949352614645264379755232077284943548292293592956127674814273515678782653581372951444018074011168144749577494370040685433607796182804348904375633000701102567587375747519025364060449577297437036333954597004534715623455627463732565051458759220627715236675451079836890157198810049601377041355403882302553121977157335156517858415244175647504333242097552577831053809420626157429243663413276800109792418199848275315208506498396602789562037820287062989674983197946268092209865801564436462204825386803227350707801762631492539167156067305986019837966035291305999693138750420102676327925690219459608324414870399011713751279404679132680379661207315955882477294547777838145356860124426438093187059182161678902637334774447274324363720647834077435395787770355547847974739375305323399041352019669193066087702961886199317925445179203852752034775827562804992884646577698067804164332490609177904790291930383138118591773875461309722814571663352927749901804252604950023273787272462542859532418328015812148305758017448671508577443372462546884610631900691811287641213357274152029190686826163933497236499641453145359658619549695713842025206919551714469899520521745512644050806613841535485710856065913738609018828118867998894746109010805430256616968293177149770274085456690329320088662836136285376802563441755267159705266113615753145431639776742251781291721996390245335123711619595050693078095243987732822823069326415814116077052805134842526977149288691373725063592480443576324810509279639957619758587995156737469571459117650793151646596699228398183359665520755317921457125564550262346379782290628507183779937109412492684119512059723299820399447138961308400469870752181651614672572380880716036108623543799271938527367483156795906468956389451417606841676005769963070574287526648022296362257621865551849440772187667685652134600195369539534002657745159414827579974760582334266573010897199914596820907529208425650978959975961650901777897354264116506703003275892300877115196326514724975964790690748147735648522904427518033237238629868609342637301489255426240569356422867624326188466604192547088996320089072179184283894848787518713907583686119608197762040985806483693882501302846090899963899993650321448412068351434278666084527287053201275364143555418511946679223878413043065186574055566396923517645405217414920608993162388703283256141708439849064366455804152749244172660366470630825436102542562473331105245757606393719236351890534530983567001597532772759814753310044539603994847581237363593941600501048794758711663394533180106875389273931706340713427534412286933889334493456210537056280652811044672541379840860793040806453370130821655170412839039953795376077947255334266591238570276607324601054851080925831340128781150238823522691107988536458173670818428483280786639215664381472192511269914831357827654273451633347418578246500910541542018320275588771208739548818442148209669172834742649300140291663061590963024626502326482733303987467923302155168475040999207014100432821869514008955044381477680452789076747845441239557190335425252122295633849217942612597646727849142720742593380171250961827171365250017121193805226986658520461866596594216947882956780106546177099405832037375681711250592379984396716471316967872044435119545086176239237882463603151505628922497385125363263214510626563730318176031476394028113595415927463945099704595074790985090887306362125027381527586810429908450135472754726355319773792517387100867959847611398978377930638035552813656945160328053409791788862550843517832835477825706719731343583915409105344121890989838102055071367395890343487229928126116166119157741967353822478445682078734017382929722984577101910857780914672240111767991125936093016961217558861863052062311783068124105295429256446738716318807881141701317836552875514241349385651063129492822874404887419916348776693952926591048069732246141622666452140292292011168042364820183911572716803791568988091521068302405042730317967756269225134615920462022922808294611386345083481180383606162092975384797979895714055489149565095809695689213203154075614186208829438823501662649652927096730936339001211921854681143552480034485612874892821946044012920624799481454732024312084145167202821050837889451166907889307158830186734567169209499118151633656401798331335133409703521994333113370460225914148801058964395117632598329834074710648412574286275005198462819668566349638273359151107303551794026788261253094158971054792762948682365155892422953842693996898190862014203180570810887451307013310884581451701034976026905601869664334701451207941802124703945688542609207526002458139138546714378095838726009278143745820595833552625446637160747883336209090191661271009355083427481402122394358617069345231566535953591985548926563073723962109944292860956035878188407874522145560696608354541983260365214563914573346331092035322157549344173857948874758815232005721723049065063315746290974234329717158403703636374562731456087958314678653495360663673225868032548020091146201428259227913883140482013495752387889876192662340429616897081664021880464871357832420416564106944890368481396707496284448923147131229186029102575940056454207647939043524602061374661422868021950476965298616131499685709895642891352885239376779091740387672363132862356018307282508936013709413571007966868741667080493873710538755630217253075505290532247888023009660831206044976424717504688940003760654153204421441184595753530499128237731452414568605317066576442736376923308819338599344051938493334896317689117201625522252222681849277513577367397789240584214233182446417044866423353698635301991153235143788230354719020942677117471451318779145477101166522734115778877259140748075966616799668165344693012985114266646107614504512368960986322438135343332556723614334588260666369602457100837342090343451165376851371949873496869468946345565168263490202705014597081095173773542315532150104397798946475150927469818939158444479646999001561794429095113994849891239267214351790946862994260348795410790395467043689252726805874411152864165464859018923973798145990604057674352985805405510885815299824932324505247856361018537902243632177310414350721320130951419615181616975805725218443777368382231608040549979106590146644974179945939848109545818897935739929597848031602640995710372612759076785072360202097052756581372750494233414774044797081783918687197506090439367655181669755439969955195382682287819273720018821174769626266462726595334426451377724962902697279373876711945838493115059469056961363666294073572104228536761178033637717737763714600918715014422221669024961120596464054920514415918744058606649980623140908997964273507573846735700086301616578600512611334674386533041374524865683236519027293426029619977980728977775402389913338561252550490973771406520010421351809994147630363717949400281936580293426659358828715457181021006280877718716567460543419360457930025298863686048013478585706092316735401976691564822697420677674758737827986806424180859250290097894032763804772059063195443880178819246578276485042342577832845596227575848146198491302671273001558069190994656923890930798571798425972421899471509950714083339584982741309934292176329358252366537537416770781321464355832595428418471804075793238321275618686668674028640674021499590040066041479532913053393364440695620304489060588251042854215470708366597995574643792014545113063968304188171244045014526728181720756956602825814197774532715425500264458541492629603136405093988729155838578024875111842230529575737564699790010475145397339115837332620842587743311012193444530803648853192249697957343250823608934618534538650759460375615420317256797620296006926970332594727599166160763273169159326962320367681122343273921978285984937667280559870072805563868749934271273488679833160706965070284994815710304042293645162989724219010608924087191172593750494221898422291492873045547181523775291732914340339924846684100212303939608868179754700297797320210324274095005639843978346562136564362551188374359647172694398918719368493648436790740126725463695536138454364185164297061956781309696174481101953664993010261103017682547894390103974067838368927618350834304363151929814371167373095434135319896384515809070842399192440252646499655845786021754895395013744137507682633356873726942330488603825998526392099754739200713819533773595070283254993444166279573360854447401905400814966832084201633685200270422643420010551413611019953750125260474781849111131073346967930376085056509473029106412611414361711876668282943374503366509284203854320248341912927171434366463768987979223038151539805582645649244505141691522639370612785205294482967586875744148535633856410970880675618136841271690107043945371805718112268925024380203271780782633647529294328286115433949019777961878903084629777181550394952065623511616831253485121592037102755039832880053092803582520680632759622347495265455291823514801364904480040123077489729635822126752950553196924315242540287141366568505385471079324059614640496807512722520034082572654740017720962629541022447056416915121617874019650587838700913993533366902593078954917645309143618312251830243887716874728984538454106670115710772008842499182218876405336484684793330062028986507305800246794554354585225077604503309362618851107286550544042298216158098659251660465549734631741746613246637786548512501192615046831339907119553083083616156017650725043135797812007403311050350763636456033131719153095109750168356293290956484428685452317522363555086459737122238396472100142793108321766882504491967544294992267382179179075638845104170872522537379964238115431889728259461241337107996296428243022940273632331517175419002408894059958684841393109063578389859069362653394811780524260142824324269001410485560325280125973149527993746957663075276599784095845348817041596132040169819147455236857122565995221349757909088240339803257247954758631423931307369489442679967082293496994958264284570533722242288319671004906480913134980572452215198180612527436054514672443030912619954988607844622276704075428397620306486864984655503212643310153941843852144213445402101357775621577581732461400498938262040161790620762243059138287236555384606726229827985980731318691263794410799115016894301598843393587910661536271680776403816996452110350974648035229978804219630976562867201204495134641360229469874502519317620620828401856759726449330265226333048656420854819015264765820737988492637143361797635977169530801191589879311414967188893123108076746113164280526559350468143475997237929464062771254767692541497650097863895445814852920800854913285148080236343315152130662960890525991983184711010967447583264644301555961838586800797794931186873093854884501026940447250593895198095145576087559490241913434377732427001690938265184084887617344884183166602559360856291703598425414321329718155689976085165345522340830427741684742413374075682490103138213259757226571578523933400414509191064137013522419826669545002511180227969725879854754058062452570024781553031086000989320086579404306125567830498691888890125146541047561895329403266552292702301945618026841546346863494122004136665491586375291387428279869194094916290597708838696448640692049852523768760457597352601817702825022746791823095501863747822937049393771043681656455416187197122107616802467650696774426268883125715646370096564926762861987210150544435840454265645595185723409717369473831413232264697181716619715756201144951667859969476623769698960651550025323050454784308029985197646538728684206006232720017294188341652611670932514658327439866326751520358924916871926104842746054618600103954730428365750380075138196948270200121527397152883055901739717044111373718941024588423026145789983613990605100018356562845073331686028402559772402741783573091573897857420927480138910172196477652502427274027362035751742161873458204645104701854366339405902590681762969496453206329953563865172274263054004949275535480566480313703989958533519091487124627685505382480511627917050773465062776968526611026821945402778927258691825841317362061281053579647494175095433510709033680174092600857114719689717139616407554072495649353509249960554080000252011558767833438210494347752102586171738531974160234887179082259016880758424924543183282288501339765732090973433861492414257707306276457967740572705189869935285061395152036406369917068820151735064247959149482231610827565056036715030948073019853965460653914848600790897038851858030231135971694126901807467683559617854437874226366273790731337244064583959151199796124668021826049051271378001797224606401929512513171465475178464988003672285149462767687420461577699935508903267163110213251018571864544742430790208232671434151556192840942801101277046916270410053514266390859432249252774629635920330856028995895601383001027717415049922136481818174972705928860207865248164075070039771064948189951544212738656055854044074287395129140938085229830942729757068012807310826234091758247038825726980372731138501168248701368535634109361377048096296830534240299133808799214156478730801208464699131928096224269803144681577336286471499949924985682621428376985985127435183985796489664658237229008428098302664140178191408168078687478442907683240872054275814602092972798634069213546286529278060199741559908849852822335226570073914422678055351189541470443732447342691986537664707313335290037983016044103774311041478400385258095873196629224372751370270987962192663687419909699397205094817600494819437612412650590431258884422149734830487757599932795925965563795996321841699297048885856634764241129094439067217905546180783828440937939289674426037774046157082954667044108865766174264312110923294865804935485236074976196112196173934685844485539041921724780480773596218161058941848426009701994680654504750309387636820063863355986812812594262325427305027779900053093226400551616530312683112020255751149488675018710072813803438394968656410803624472160108066754512847291688135937513969211485801204992998569434077640586335006329756912792187781761056975720740591114295469573062159132189883664199714785602809396601815117225429942129673408526081148437612246485583429400690525788088135889486503304041944813811390932945418892468186310613803227081085629912298566852224295998559632621672020865255330211370358692384490733802674864970690510790216399079118414052261373043209494610915150806793694131949888472434581856272570224682448096678870260323616505197796640429785454500207049534522912027837143284738324312689929503227369723799539055969232876397027788537621115849391765053644107639620514236117887989738961338305760275009959737228360948907487648684419283372301457865717231096478121380827296920292468608472911045708247095667251784037227694085360834166927012841985685377759683389856159842694642674831496690561068383437802211883836670243915876147167233649239585930938745687897742080020730110963571847504591159780823562380136133409840101972272478106306962414483703392501427431651399548041826745443775729019851220109930167787079684187373252943554875295504020364757906980871841926692293123373306838708340086591813168899420553201307560221921206497717668148131849012099755778124727424909371079710042849670219615215907040675767564376352115032115175299821577468729534393569428443465000995206950298101290100763845866456068270527554387169458948137965188433847853639401527692140278074660403902167865932872301101740327198318223016194194759302189356721843808127424721366717157812182211697696868786009997792634172155379610117715579047132376604974233446633254023898857051213362467189328540679673246557952767212750626426463258274140946509802730665213984182132323944589318376389499583019755379227799907241852862436103320352966441174390481048114822780264727680606532340510401842763720436033939881000545808841947806783988595607678225078506823058218433083479006424414637502051902462816570480161668890210985481164389219003505922611272126876295692709167820270943280769489597612758085091558028183424317048671340052726650928384130896927397592853858722040278284333576445851110016114322614996652539521888670587352116660087621837002046999710474122702390050446553537665245496014256526293406536039843910493594354178019102478754460507428605569031104495837616634960949573184666454367081947106077017126792091300197634571415073612694885933596045715937423781319042941543416025483511444680905547508712182217624629378250770549094493127910208063465754980284391765499269491091458528197237230303673654267929169713224442693727631269215451479451069205290760309356128525833577508760178464807082005762563412432379822190491462645703496857651015114561339902761373137217616953003326501908341802757696538770297850708188216472389026503179279239672950036741578758162273254675961795317170521839980281957216265385686537246925557553645920996673049049838108808945950262724734973713895452882358931873461274997392293424736323781995484516040514158011295465850571642327836899684972068650391831288783684627538384564447344198762710675801981501670019398546474159741937669251743579336608567690806857841918588882111379404654885920069096260406109589529002176167544402237199867621689723514590451262116025603069812605482178487431842204053560449199686325545276417484906972327295786765060740461830359043271942262503390821162264977551590419023746440160840160470246938683050979045119674734576635643036572217071826779911987344961794292419253878520897372479842392517997604955836069432502663124723184325784311885820815361654270638274702105838325945712775235595821429022906129968733974923848895568865363711910396727924144140514770371399829741576503632256000511283416210203144147240876121654720168168992504588765941709631099425784544237110413350471512117674670640720750215261640529190029431511318123443837118868552833057669857132602369961773380503808979224359797445473568179952712857466821678107667054518422754856060791763541561892321191215949957198071898343708199412375081965857543763102875046829352716352048012032189201830061445962125575064299543574966356601967659348416832668875650234358929244732320938083954569798824165350187269916484956889237063584965608578081286990549710230582748954586643279960149739762802968240156386405227227175696116149133472196828053597883735885494665904818747107342371513751429120853823586962698898108630924712568504159060408461654552998963795639605364718930339394685313711397608015910715772371064958912658855384859293266914461599714787780335505096294748643785654706450239002364700338111291605672816705615753144780439109990189204518001928913216166111070379306689947027386547626936493592654153970790060034270487069986202389869692733628665848795810175833535332828972259712050116339454237168286952998828208332842868964981836992514164233420256247031421563632960515101211314271520937962115628856433145279687742519167174294259387561529635679429964316670689606086408981294930108015014514581400014861027367091811865749761843878952919380555543002914816031850216322268902939007456552118357717318505125749397718734558844697290467553061925122187151721599302973111748618665373025491118782548319344014118470118920056967074496338685387512412666984727134197793177825057511787135885586307816179462676445649439603967916958903761443084951107694956303735878778056275625403930075749322107293096416720495908677677728550663563326818256234917058812126455014991675502320165418379068243553068897489474410461197874518455829368788474803602089487901818258680017364657590422259048650532585860973264702048058633456450434777123649788629133291711098279633240343612095466804020785441101439962343588992648616538124966612417395416037487855161329611143247250002819019519293482433937503751599727039610762512664361505760229021384559504912050965665098732489137729950207304772800854834388263028461474957305133148112136500106808128309634653071289930867147038184255832399418723416901957234048329681905961632893255256548408911278382195902309374089940614742124713408668145048217347644153414672854126569196870239326454839657313855841384730525047408001538749212083606161030164487015085156944898414357727519267421806695203670797012805898764417888258559334711450532062206092899802344850845551300375846664660961831144992107833947229651470677616000165939425339636920409403243650241437885466673500231471799526762394414857945710747909538554232061198974483479611749731908384379564963583572063585171491441406350384637874388085874489046914202269673120807763984046370264922230328369556351886416257819207705369386562258201282466599698248239010092506790487303416001543045339094374591782032912210695448802962198919950462987309277235534042189613820121234010123318522539194267221265325794255407408550849990806398197760669679311313569001458138749087355778915176998258140353834120360428920546385369473160452332107273646311654778317694865570982878979802818848113297084874927005067132188735600891787079870097214698515611528485531034126907617430336663671199144754939581992565942907787063572171297922338175277015285793787318353975492433117814111148767715737017887395751965856560210664482807419747109631715348157548288419094264832995003562935285615237356636270228078927884707574951729055602829417252780854022480266316260305749918439060835104678078840633330242372305824661392524675846285506844047706509539986850097624436958900558287927268704093508028892925845884369432248729595257885401384201960092846131007181027452708807123143423395472948365779950752878293564884240726858243543386783108048792865036974847979963935861650440695977006951230609286344103848700929938116723673617124606400934486978092604318548574883811307829998393738821051741242532542941125248584391993874362516225968923559604611747812325930054034977204954645538237577943238815141468015428979448009277610205928282212965418511485427883278504949703708932822134464271347419973015503953506923103285489437069605381300399310771821264265799029408670774093237383579232396925057988977956274046397022100619262483256384988851021813145440202817944518716013240661878578119182760923251962874071633681990463942342230808312972387888553137836733486132980958095897606804772644948039856107910496984358506780926741885207307690194791115834210125477357105040118994105643232490814360430716944005533895572141799657645673285160064965304526806027537745331807150571221612931778725720356271544042530564712614075150901052707604142307148178587249732234024466429407395954382991701697549967243389447320965120950435075195350204252761764723056637741422011749989777336908529702377771767389718615826296363620220158870089124327451598700510537874077621545888606160260725809023520229096266522544014713182344212206230775633419175298537399735968303880061601022476123376833982618815409486371520407320011501893964787364362317400970297413073549541642581737451064031378170304902902719257789793529557713766173142698656058049780406950384389381839541047883977846402063764999939753872962434009259218825448232723890771852292914375819668940033387514001316119086086691718298959850734434507967373961121880165367540208565966302421578341119308592869433274546102781666647672937161821972619438894464697924644696113499206345548058904156417657318386311104461656459082818944761347778982775582132485612575498535857827872355244544537737591178617962591399874868466403756052485061145587268484985742178295165194913743827662116175452809155729879193004799596529633336616394485953212044967119684460052162011624179766819477637529733848940562966059644759587732220274042178098338800009789030168947798575306251573301764807481735254151469446068289947991840218377269680674632378877916551882402084934462962985003040166432791790648040087508734075632545098141553398438947495649609999073122199147324974191601512318339300406957516686462778175634096420363258428147394995065718182308033426539494205728532014307012411031141746442013512588819594067571934716176976770112895163809347184842361355240135897646296632424100840721274905313836026475012280627141267776907001949568983413122619228712803309688092190534166221131304983509155538589654030012978535820701755484991859926253458571443048033312999825251516513992750536015862354092758061220061907927730786116116923156656192684050016490937554210166124493689409885485874807960986417196281238143225203626403780080068983799555020405391976673377350625927130127639142100720707936588476564355072707511520856471070141716706762380146812758155711329209939793678776279472166820073834738187809789821332756575091102360992070224868630409945383377294049402389593570371571999660935488909493545354231747896193188738392163431275637426912963499399483267488670506323938847548397532399090585873690651970556204323437194833306248318149290420735388151186856835045891128410011509122146792828835822626084366724211051233298897304194936940814199963393528022952889728797498023656570253860846078264388288582736786194193301994550031794145044716339765963085679151183802927296348620064544022843752574360989809027407160258152604469915646393388724689915357464050851161437980059166641890279856480662187542818558360904795529600633858853826345317470159905253200320431637568321678995756954609636001676582333346511136001840485916785112790731059231643535106392257505314102643228074260112072537743642269238156857944731044214811220099545871744741370385275006920442603674203720034432354620731490032230142820650084949006286600048137108050311101368645886206709764889993677999744982353153244700117960988911885344725073792021576042003106780063885772205537046584197240361594199301284766386423787843032579457320683639242501190708598979343153787660168301076783406277394661087249813509443934901168320568872840464321637397861990315998808092071979735459851243084876948563708501985767431307294924459423733408655656161016198353337664705637985070606059199268249529148344175923140746975075334929420904651537884572013265943641701828113599735830749586088600230739912339488399789924450076081932605091774525492307746824354187880559735682856457986908823540306621050587300127486781216920851629605615018613895030723039458567650916460139928745559279501083638488799378117826106137994256075806080811995877884437307636837172155111779707725020481649655749030871030199138425698091146617304720948324453737529311271384412413383282904550051237429186995154981860872879885045981116496667182927460543893796477492004388068516715071181427435925459893776552758539087695522720226988535417274706553140394688563034503207278106771779739477530871766159417617294108683249585633819769662974250616370209605924574987763006993115589818819605765885098593958525816296728800908035979283150255213023386939080527338044866516575121979542650137362543093920123745932220914723463183021171384794125356371168305831568463923660599893021733819569749995575301621669817991457861012954098985786706910052434299207961412141828014825131019304207829940960643643110227797649883562027047717553146160769514994254777401830897499680687089085580869861458634077611333238500295702813246187897247408510699198784883355856467075235366525358624414135938454477566719135120196247078265936022848919015270807529946860446505254382893894395885099022630405324415020519812548040823007678229833313464353737145422420892841340833525630473351054775026669140158251931007421343182230725274286795038810312386201543994021945267489316318433087140536667797816482563936841274221187923246377117290324793491542535031406143190027453644198782664246533569425295216790653651997708813941999930839840908076031334689236542280097973378354784240055599406978026155401198060527872334788804219565732573734520480932048286920149672631384767318421371226568285950404756025225525526910540448610208298305477134557735531228769479971367797276619242769447105934970815696735156860304103298808655504640943511273660735795144403044539383805350375102970002806077980802854311361949655046005119164803249940515385964270433133390199609097517444034338124881151787792437483099564798030242832643146928455698666546362744265667302913702534500401077304299053869509493753217463270711011495838199102138899427854709019002728654839071856514652246446246385107959295622683178774118689375736164315115043400956690652579473265979180246638579058523922949695239505601095868965820522712985303690666313578759897000417012063693767040464480357662367305179404000940648346946017792073186080659946772331843786745852575361882024401292630056435332385987537791756594411893510920968816375120651937834378395017036949355095613186013472872986066540515086981042760199787574454301056166506962460433384868233366506552717293094748345755861758457962399867884021885197054769574689469616716859317451091951335172987291848185945865117600865348326381448806881236976729698030092363375884232634532334631206019556281154114746373473970691694386029032569833244486202651947610844772594551257833079926514779821298535461331970522276743064303197408534876753656560366452317205226977937256938733109544630359246256976557838243020698067459663254202018730834974705342785133081457938418109997855625614076747283500995193983255951315599045924936924668179303722702979540959031538747613714122111006204268549077166148400576528725832737580355704616185245742649638892137407762125323264715922219918602342770888660232780229762144645780576761220601303329116667598790670635949833536419723820732818618598005349871744247494161606864521961943366561191230662841661003173108865029338698034581970169331264051316805137045673501083981749036057594539627941124764057602661388921514637382660017967152029051018522684152014405291522314527845614363811088640596382858376405594820717368738096078812958557412558965498551057050094872917762191061940950406837693089000599024930826542535831373451759531830382595264056949052417735159008640000699321293141512656251132586911671389527009353952691877543446904129112214996911530971565584964588197801748411620838994738285831255258601445791120751076318600545513813981565740675840377134600218227395786655672490626575675682808721868539078880018944402572823496900862909912199002958644275742300625422673697352717610625016895983300865653615604142831304519953814811455992384860907558892914877941009780934821036155201688396144756875913353950497724613820378690146134808944123795732814488749651194787668790865450349954333706850983458108503538472949626706377386935475972066272355879236807708906298446073379388763476910760826607617179330312428433590473380502735079939976903428902554111152873191377217071220437924428700693299766101047740078942532160069232151125044933307168000672845960454880244628958177560329946875900021747555952744673408125029969356742207094342653264761917452555986366524553999330944355106997908146184480268388164060419862894177679339414211049867355690208832943595185276527413997940816951618879280769744099755433517345385274028762118420797974991474635941226810035987132335211468597151739723056733178955882331232722934053327768048462820042452150712101530287146628791724890926147927796074672897060709054905247909512776754166033261983687640838297137144293537042779432182774105419031080463543565937507506347428596540704427237573498466159109763204637537495826832915339692931341944901662948591412166139992746254382909843770112409221015382755149592415511388100917641963294672271794550921407869468218989821933909185777851609508780771332687346187052471421039753409149190220380601842355837344589009992953443166745033690090562744674430106161350790626875885844128721065236464027565259197213490185123931561458391438647221873762312184001651720360688063987542550027132489098198477407549249395038876953819311507790786694632880004946731927329994077653388646302938856062490133008195729433021832279234511582458931393361621440699312971386693182550180468086763089131095970239527618082874321654531193209329626662549391522323723115974950604316234791533351362395987172803813363176719035473345838099236882829180832784557791429413770433218898531266633395346805617948485554170091732674084354022326094793230599320841715458228148439086329238416208669616547205310082312080134260359277038387263216025580284441915392367478581090882478231277330437962900892640052356934337484284727917974304712246256155090457672844464236694849798539313000097784585827688270131042702898551403763374075348031305251702808926918400156508734546311408596666823009230527803286684623721064159426118961277432809110429375908766819348584902550919868047270687433619300449343630758443960921412313746677732410898158109533148856174571747725554353373918920433012622718443355303119455346647461865347319352887483646466290018707643599224525187003308352223326495081337333748747012747715972811180769653560117003181032211594278049880577860938620785362120519247781094681771052640102484807301539288526271397172791880516783497456051343968088740156740976528002752063045539579068899844454749592542426743625306512418157379510825426293308158408042769324176345654687402829343813669295444695760103389892970706997832369148665859829616759320695863312777284783966869437100856297485431961008059237769248200446250830800637701962820100862820720313337081554824136550585604327107617378193861880845842028007548477582102416196878021534088416886036581703868149844960090843747790937869912174008972046731938426734207603328248142487616223764674745767796523309207663035792591123802486052656313954941734918423278165607452762320149201013872418527049229933073938522410924387052970846610593194208417565556802193596012866638499141884865278899756619837242392073365404289747983456277752682755702110009536444701188167835054048923807975816759499604156814182605618692615247517579930498980459578737277981489630834059510007975622457785250321305420041656864491336259779264747742104234239272601051002269530585505507637105985660307482409522416012999866084562560852560505803135166716240799717884579132626284126708017404054488241112773743596405144119604248921936507291607475068201305268726710684632271919643567923419475160920869448920413160257502257325173489611859758328693209898462711315895741463619388949268736195277412589925202040632207577593210505944704760153219182287223870772298876406653536476344568365148655907116783746359126171473433510993822153959035803427852101600973658997232027796498162784774727560429920686455014908749082706847746606206258391613957885097974382098815923296868041524618471268296249252223911078683383478970892715415406413305114308524541732965209291052414306098842005898235940196736994862832450218702202174875852081948970288506006341430710875389734150279063085335422323138244361026340292271079001915647836710585379963233627263619053116212847280156655498280211751438555151456516190617990582969289856722656173648322904115645815684233771798857076849632926769805883882491414793292497115694469457386897488193187735422143184554557969496995322139900473122207315751575569375774765538980259827728294676967361936857815897156901763747121565847767430263094455334971165705900486150607449480296338012083654120926284884351835562922025167038989684116759183963928249915295930315955680611547306519964668440738348128591430265829058829234009262673994058201784873382057455009162400365304321708177987480398115660305828974744704060781487696450069538530668371706734598691855576567960274625334335392770407199385030183350027338243191510658414208438744283996689401236632771195474070116737324293968102825076221409324581774114699164004886434765404249208580984172160278964361788612280282876368437030745992199377050187706216276786741912302713452629112246584007094620344154609301448287361103914655189505373666935174749390820718553084794034052573058126350577157800880441086632479246430958426226337677823757737021918583291820277865275221070693590607222102349386668289924116056042004797860834279279903952418326516773294997476329109976436937829307948449762643888757048876240999138283691492097222146739141260199579274366874538208532225874538181739290435445375124500190799811400149846706988584861528077286374359567609550461060807476942264101038821674454050044295328964162381010157024711012210989582382533566365475993654182650173036348316090636425200709128510744117721025418057899704454516909794368267982534876218382978211373371146870238644388372142708702873632506342928828824566176427746106538535455914478736440713482201526111803781701740046271141429232993842241149862821576909681283280073542375280317114815249240223894806622912678358440126723703458083344771102534474436517093076252806161040191477346351788378476392546183227560483607297568629981388148506717135610239315558116262193940610595235623724117601646472892041918315241782420201218446527371694067704812388780634990709287212242846890843031577128236160299489047929857997260793870952464158869894718969183509430244160015997360731758295835523978182399069488534289379168118698375950021303271966671509968363426036071726901049853343083043631666223488682431107302084358724100578893889001701448559734229215534707444328014854480943871084002760575320547275591870134433216084650729175301635159453341901879983041705703518215360410212381402784842553132345368569036708237290246957291617320392154992212908612188936373428035452306710206793104458196255454733663006513489255961405808885393282396895350814909382285614495050800556003074073066015577968861133961936799265635961962813072918779982318023047344865920855314609412822741285280480601921430834476276091885107631319945733208869740553003328152460280685863025651501881234266650988183307638159371007374245621481493860879192939446284808324241799492843276515329014732474364817019688574501995823620140378739585111186778034212168271077478805230062787027278911102620953042131306826581472928126628849114827211804264858751148049936744822399957313381442182548760684448916283742119378438379067657487754097942952964624343870245610689190807060409738476001044712224239144675342515548833122213768561006863131124796402091063969117735977079298029155403447937455546576594145146235191648289437760798664544918708838407609645747774845255137034692079813819693288015993262702249230791665052960511406938043820593727003180290640908903780498919541558174508480211150542699666522270838385762335374140570850174027308803958085286076225238123531664004166861706855917643941391204761325209998189952416491019342531354068383246027989597500927378109801639676980414264637551600565440265904264326370914531963318566325310223772427590205815184828930320746356240173328464307365776404508189769970568515558585151671759861853292990306612198352812329012380420847548195550268948957591347760913107466817473841318282928203219497479859717669203727755838457915093727976558266344149029595905348183638755774731813231847721338379495704281282148239492255115859205188700730519542911282852922471798938393600989725020246605649816209940688147652264463721978036750177671649407619892157922944589955617710134259313174044448641357734894937537722238578734444646661558480532466414772835564536825809994324015279154841757825596759069880735285144581365039549621448898959461728389787440513477337693920418988970724561444311308869763875404297786755265600913946109444722567410994986073960544652985100824299259687355151806216417305572482095606445897445432238845643828222029492920257063415797716159481172331129202767963216485351353428956671084956392203714316966433079804423508115112931305764024805774086032997961647373094376183910764418288458383651038614220290568502812911307058584313477948252819552518722225151697832888288578611831873282944077800720314416898383830187649879095278034122629319803462180986467474291769130060882526459724792761093352874608569799447629556777503043936699600140591042031919241090730363513297610348409789437785825285239810151759163075952675485930417811712104501602410079118397190882928905818477412965857492158845675379555827018080665548430024487742785680506281035162663541856920696455190129635807721982360726580198231842463872349455165409118280321415147723858886972901933164705178358953607967409890916541494759509494782440414549891666685974372175759917281577477108179298689316839333464137794847116487168188959621952178156358171161696848667750704008864905281582793604635241589585670403338287125745172568045733063267406386621112120870867388529024652897114775266310254871763974037680715249419265135963291231168271099953906669804159692952448718832753435607047901341640243876499990367138171062077966552315372084597753929688861997046740917176086079760712419179008888467520635397864605545564329876492503801873096148763809319534753915904721259227835796015758009094652498793297083413201877448116377243888514476823058228083191779756771887171581732410271867589949554886931356360161680411936967147313243636731858730927742225395878514359599099309432817874443358548619811422397300751412405542164512701395525313203894274441441594412763386997439660024029417863896982628515968694806849399454109381949595750635037003788132045986564859728097926322199593288970724438692085545835147955521433494017273044363091541075527497197303182049383893375571098572992214890081539997504112583780305288762621200768895196429013969552370949017213471680917409120165089885701808052464223632210264707328943083196728018541970842779203495991510699405839825634077329659681221477215494637927734887305459909233250939643526956601354687804645128171519133055050197597985530394142888524164185534105467086135933195075657028011044523909803205815000337677580004895310517859060880808845646301866719120876483643487443134111373954907770156069316736585841301721473404145187578052053373838220081619965439615201296543277656342208450329066585080235861500281615489197673048647742446131394166841179646544867709099815281438225254643726477586651390313432380413578887928100890145492406484945680830266929630033772797791948990841737013830771775512533977978784995294402857401700056460979801187665579561856201187271256810094155181566767544717808543431105005404448477548592241304259812961786368054323084016442014779842472087884201424998069791585299303687789376970793858087252124114391148783998453173166460678820695045399557193677580810402849783669994822110562425034264745485698659707386533308671305944608419925321211486798381923250758052425191580278495274498041375497166884216999891209602525801428471418099699302643325497394113601641324792459791909033346248440108618573637771549393944514764841410445191139097377147853760659664561423425139553536583578518943498644602062740360818815149784353094297979262617804252231129856268787946511176108401089994291794338805060125117541884798886008073457143209371190788900162015140423703879948700635885649380223896772852921343493586827256916474959874138568271082187361909806217875093713858550046301555906305766618917447113041305135583068629487939814555912434410629435021318985767760272432789636448374454988743591494636410531855945897188405749627946105864090043971682231790706305823256067048364073472563166736758482629793642822139590360376811536853277407382692717721586079417439851026113248719407831267840006202348252426493049337469015311973163334628332237712568328283580822864600250552503864380767716104563232132141492904404295325355708360378189511014124113519194894192652355715858094641128094691752681417716162775043877596753255715335453668400605690455015717674072893557905991196760754177376087838885203088747288946731517529099344723590632829429992487996771643485680929919738412678901363954398556107123834913633108429772522642111302170789827786078359013094291361027235109996605107750523669849202563658773984062662827323719806870653100312561335574605029358840561967563854953406780088743174023672347232610329333353781791104848555791076925500855789057146527095331906249652685264905422698635150496172766332741702197865814528153018838084444674769282510120965395915181379681721696973518186597128600626334568132589747399786808279009071671594325418317630459717722553913932302979100454582354249011095606388718985441734824677720619721732701567454596373292488068059126204937349970642658811588302820178576877586591441637793552355947721065114621826474754520690007481760801817885199171908761862842651832556238476919469253238014358904195189161856863311548875539111817379345049018719459862718393907183211784608521406743160164208919543300671283060399810835959579108641602616812801786680209781553337780981288018695148686427116017475196544268654096016096883341891404689783057855885324822995404333153846968791072434556575031278083406029793275083171427390325918058782615003159591351933508719751858535330800279226601424805428655801496610010234531069433254927386479986819516771505627947867410546255026954937097839017918589291679061855056596899143689294655201987122890220219489505355674419431789801420456817527655485066958346131944556512430553657765109350945112979554816519871131928362737421477211658413249536675809597843374864971370525890631349833137690287139349933256362456344711472160526387167072968755015762115566426965482158060037804716800861234357260707070285808838608033874523802846328699538796561656627938652338883618776156040027591323942409696889993738290657305480180436004433226994899352348748159139513168242185668394996732505214012010931050820663454610338671466529968105661006596692192931031472944340466437629890447359812767920960586260575378349369941670993286415638906717471946153758228482987575035750722220286570868991926025155641421936878350522463730673127317302379992160715481231313157336612733642044210547096777987741479195959363867423461687881651916035447563807533237347879763071477381787897858161047287887877238393803747287477636578984554466650701579825788775985011191173649910253167680915768754275036301458142890973517677155319102814733823263202822195768575900901697704748971694677865125366963859507355393518825649132372070880309894519496603866686325753888741456001943281257937480221443232837215868917314173570156233211993128562841966807446763881962395923666589241165679931370226491040647031032143134762541597193287756197537041881775105122583593356959686113142061578050292191303854700846228099700745596505556426583191390034956644074505583297745830826259008700124724969796689521663708023317759724292603624413481620571433602060415584219057681394615213918839992776472435529885985650570836081635131784448004751510760198741992829908430542480274334903231975551106862590799658087956040348546792089843892403991230549733305133310199848283932159255236722451038173229571370359057614528490846780065675700406201596441748018533353614838220059969479791854459429197774159814249744443982936827335468902943704007956209938108407634079977515008509916426110720311368867816067415209576189896587322556053054942091136636397227950886745124459341379826856811925969177916794294672257571484008697797396506518965612259260061963656638105488414184180294898770508137461666654771758807768691837213421387985263836836071199595799880812183825509670286539460378502802563196678464142053384933161263308988251299107595490068051086534536461600809507508357193498891223024078776908143340344520083136341087983565634580511911624584528458233357048244204522358268520845681343984883869757009970557465224028296311550937191990605948016480352093986507938375566653007479505374142884330609236983088154286784655125335178031755707820793440275548829785182224514152212623964576967954337578162892710775293811448758079958480957594799902747231958623237013361752490589354790821631874914915762202911252322955937051918627260781424012817274605191803493074158222894929962673057818615263046256466586173044508952264906673190463081996579123649097222040928826301748216612446299876941210106268522405494555099888822495795059377073261719652310667850809400004137700743537795854973619212183345048808884595794523119735749198067578307480579628320811456167426383552112938495458762280593938838312251126074614488296250319982618826769532486878046631866557019803277805838567482729356913950389281496586892402706742060321650148292715857672471116826179296115121040588934716328326393882230276817706509346342279395656670315330281350489339753695532523984229534931454207029428991757386711641174804178210249920967311166538215452789280348886861683511110932908566758629271910590703771593001488936820120310240735401222495306999367817509374989529172201946455825041493448089031395315901899390623858513737698439940588590408074458225281591793190938999191936477137973789723169731756887226144856515869045652877077944417734805684330906885335526962288541928054501987894114295470272574885056849482131145507564922239551906593278529908403759859829806173727304535983561051815685615088436151593949332952203407839866442035403078202355043988244451273632548984058006561293607326127054083046875616844933226578517286144708703371030273978626038362907185868213237456893882143853700531209836051962439659541228763977669671602351870275700681915552316476577269878077799474832304538994573789097703334904245495324778331812543980907830844106732690692787644967072387697508408321224970562761964787720920504347155733871261914399082681901803009902749949638810779978775240946112901287314791962433758938238398833234782371923416534498328868166327788440781030038213633922580662904912038844220360101961389291868436557476603165844887628849475438888212109543065642361279677610726805213985972844667658330983193453760738000283532079181621680439343617327126538676293413405599827539234941168485765294154795906348611345797384583891177467737340792932293965380056775427703177869808538017122152597821219340957158554272291146822135504639945502407863114166136323919683940240554275052820798231097598913543583875107206144555744334245735255188842531974627413235217859004737756139042852687225683731891541674136108475623549825900151787587407942403735821220928662088693410758920093101022652383494504890876028099637436037748273566534046110188703952156601693496583972463728783608026957647272379525823676451740313400614953624371757629435967724913374741050675516543093057773801187145997851104654128158299916117303344342813250229993309428604599429212249804882272118473422170937373270107841123307448293295621889631409978981840315381350560702056944797069419169674870954713366793130434495737388377107253886464259995388879209219849177591565095214725289743241062431254603566463009190738092141309537074727572514489967320367464318320677017705691664341099713429852274444755729567414738242735585716952036352823568628608391828524276242589029965427593770367000629372853255627934669363900435198383050338214751101202699613111656750757603251262413446338349240257808047660935188344988254075287313139220228223103891764927410261715711685428694175097405194752286309931037379031662853738759948301303219838073857130987781163521800479465358496442427716150953505017103536476836748221931841833330218885316583522487965121098909665998408867297173182209234093079395974354380983080272271780963575803547154857894332962379331997931609924139773139679339748771109180723226335248821548542878876628708889262822130250757041655220682773812259136276159706561424570876496322927188784047123365941542990483485470316018441758908628700567484564319737887814189462013310020273590932200825433546167146383214149305321503220994659502175191102437394625786702258970138322755245087939465205962976912460649282425995387165161500493456336277612120285707239158313956026830512297720266499987110686127640506354789018818075778701046467987245300493054894621431755805245149404566706887227377643789565053329790818797728067700550594535634844632210360855237015282041787141326865614057861685433252241945088986262549460018382092651175517749983656153231666376823050845412255400064397993171610276592041916188168191598322298099994422577322893488891744669118833533836932766800777241319365291432828977922436741727043793320345007190292147292252452351274769898003938376404247301542582029606530379292038563509627397589375830861169038121862391655265685516357046837444913505310788452148586486835145058669195331953011954884058935348299298864397937925664507199219916618331834195832534103424730268725516117511936180927209816091385296804630847266070174132333316697303447214125209528971682450509034143882075909188883627325399445626154925367690912905090790587722275676083841675725690049253267419565121955720834274704326704381704139070221514340299700660996243662547362571247975169104660399048099944723292355660939738681384397969282927695389262725341830464876544554618132391309407817055891109168628251407884052975601528226662428401266976438556766578055356264585579505425385189773231390647516279638361821796563775889376919526247132067885522821429311414382563944603772262575284352514572919317799592241047953491564383970116598286256346940197453137512757024175351890260286570218678665262367307314308157525156739493381132140503256807100025502900667036345578356435458293486420695577290501049255671045547076180375800904082724194034127387996674831020395110422903746485858591521499457401747224742877872583733298693171770848025813544216411392642154080146286067049741108575412619224682191674622238072569252927133460736464772426984138612659807511710654694805265600620156433016945340601656450628472054623290232333968257604569278341189849402153987123639111126139833589464841932681985566123182686824944952880452414305873142004567545250046746847123332327521462594539436972312331734153992091224747199503897359014484721711242775789884984449051285370200588011513470602656278397289461727812720377718848289143675513099381900132632542912699764084061158551007967860687163903233386767735703868185575486267294409991313463065736596977917024221553957522922131767746796933677568991681989927251979112431234695934992460688505999256538954981870565879355280206297809748318999497632998208151469653353382584041721112872835668072952220070282204340516889658695866381636547069903592217560110866050148685047973389409210118837060899944218605679494954591206095342587563823224123640613180213587667313871341720801538390916726622152814283665838388793006568785041809391507251084857056615891924408802963979184922297014597410562606232325826225145068769103933188396487756008826390660410728833951248600138547946894631962773714413365041734868570452913395818619542461426364974615575662612554042832623059250343797169019719705923193359985700270674151065232241740377452936815909015649888738070290740542196179754274169564764909631117614929980143135775181067402812705460435798048841121460114713568312498207659993378751352807697815516688438156419766625703627104116740201888866293776411689134510986617254651221197586194498776027439485435453542793542469760366597751793552592563731802668339121719979582119094647164702848372500454244631990856988025859879425763300610689861791114740996821338409884583844972290161260492762176399519662039565705550323234262982358686735463314586156436909836876509845099206999954653461322372502507770007309093135013976817761030256138178465371927825730039270545393870321614698629607861332473110332919542303471917206786840699059166268295995902021791828755358815458156192123659935139211039530750722927367629020435447137692364310194097304461433099472981635220855781265271578614146489407292900883318169703258267589853167617439373631655666014797614952354866417037593138485453777554116879490295967586947850083653536151071992493382474409608017422402244066260414700953218393765224883722585671257590551663613512029629269684792430308997647533240628162912138022636320080169715684942873294589708069487923327294451864378859664803488287375112781007753437744141604908673999823740430136856642747707305122327718759403759883694031060835770170085938834320099315437962654395074841395831592428947386590703381961506355973463684216558519304269731655788830003591236158032943497554163891343135370675554040817630106946428547449799970317111507058373265892424990902254938596444105446572753778180195313823915727049845270775712864582415634979502030804480337071764691430423566267411017862627341565587950456487490046262392171451431702857770319761123930907140065362715296429013249714641568012593602681619002216247335456074460665325656671922448813732332563928856580643916677719256269497009495142696345068764433936946266380447150204704213742564015690752476948617720520999514174077453292190891945729389442277263595532572477506754719204545888675299319171349509050019909891553655544824523687461163442250978416699516859329689168113155352377240985155787672203913313566475604804823014097111283783627176008025427085076512613761111385837669949090185598308132192718215454109203758310300010576788056970843589000405041505961995484772540925528642017667108137590913175921716515835018648807357559303407645621857863477017430409194910041887283834615559823975161425487785568884609021026009164024431809879082695915473907252159012077982385015686595176587225120345954308229079753507137984261623527682276487878152531325033433355703917627502477856957060861580023074876630566720611703314771321176458934549964774112909243257421668929601396546120727239840031487554284064360350305108605810563914475426877777229268560592474126104461871545085817910084320900908481641918096081607824397034235355657262574184498081827464976393802164328145027907619384776381914017206689362606743500120153767828788695852624697190434011796001201249334238320178703730248088340252644475464761821548547988446575958058849330216188750239229696089594719461828969618162058587258748202038491872764653679356606525585053856551872662202634654543522614180389877692059461171158869031027629590726077892813668088913365661508214529516981655361684437248337608878663247062413734957356508276778678325894157112683834105049071435279610091454966367021617106674535469831077803115732498350283997652522562210265822883018571182938671193916739889284959610773082517744922585417808610192159986915628669416710298649971239273000431395025747025872486971510348482647171918854097095940026576122097255433070183056674250383473712275720933532711252450501282871103333944968307269370260581089041189096778527710420541455702826453712821430354572062248693218860103795637950196225178323629159896666834919524863985034829723554373723337136817904116427315715878816678889858641053319866258773482804048840718717302270741984877128065283355229328686061444650678296484438802696401331376390720962960417235621949222772727467214886250908804643129805072735605395470961678336110974815020408543280447557621974639483009828591565906129859567604450684815943353933733148323098472132576044921913668471348901450855008458803345154787751180639638042223306288709629676260177842759384901067631034767563459317205676689500071782123479415556071638678124699865701879497456892110602655460773887750859596473081027932231570318340082646646211600291841774409659403733270639535380003764606487516724893126703289486196227565826689650388753006877544673017170803511084769079495594230063218851767980393701878791011929987219533762068985408454134397845045344091131139671746842911360906619273094995018880067831554317569632377232087365700927971868512736187751013296655529727649570916764524292973837948903276964953677791487733252695890363658732307821311677972928496424122150307275181137446284175907061835423358694740877185684287445381250026786931040130994397641082423370425048859820928278316892263239446484473172968412305545232059485417023816987564560206134903142620907924721431124557816693606255996164373910036910580444509857209129403805714077641616934452955496622110003380081703169171252438783500709992185328620195484133367284308672325698336229755605434812586242527606215472607771773532957079512377014321347129026068906987308777313311369389844048815548942259908465532204814629836702815036535548929682014891418207513108997238496205243166545607256628298203450254912521915681076955426506645054093614988383738360046757271192478078332559252112888450315008297480049379856363681405857364857835466068408261378501608718225943240695167982193578256847905469888261674861958657483913295684631784476607744875045505292466892604490983657962564958693108955965668683344813211899715912226288181854492579557360950545717087853952402187826459342336008614676202325256053094573725622897655035348473161372805382919219951947354406697774346018612240070564544453081794752753503759187101551163553153614533164366454292351477507630319637382170586726030655310311066078235184551350494352270897885680059479296799305733885886092177597433319018395231626743696717193455893284659037251752162253255281840166215742898120760613268514387142545362526770165867478301260918314334297327865940192444150838446434873048065686771682430839682589235878543039981054531236822353191342201943327124191457040108431256430256495204498162312514365769035364537601446609738041414181145593361978845563762086061458994986129492386587926228592089546117197979208000282796350849651587795701255767381524615975452102759268422081960192212497296175926804623664598598320371230349695615869038650574138252492726547680128706780720770296676152293577718744594416729891690072638925436551289652562252570685918746407733353632276174269509733432203766318645345243846815874585802542475729544133413054454865327049881646734855344741651443028530966238719084796068223569636124206876610111858106571566668051010988062677440067268942902133489948060777639753914664143505045617728229397970513087986338669133602144351497341512344674669182118059220157076828607915898578797078771908474801938336752242569288615945778161880466496887934942659538746427333322259661185642541157809449451743399975734882292906879713265017411345438318752381168720477842729853313056194413550629354572127169079369873771155839442445437061904907294659690568657284189316138970714902463990202296361966360553968374961230157507217680139446582884916581371158748289767795877674410178510955487660472970633265430773401532474391708451676787909411547390982037332726428632761630544439225235332269625154601730115639446975613533412424773610719469770491650073350148277078839545005580748910571713984455302414402171583959752479809730449568628333407370844338104822747843217184596133920643612378212230503866614635843994314648198902583609197079610391084477332968329751594703892500177270706589943813836720118753046743049550836279385351252697363396582089756257190663079371424817318434179517647420008420080162495683814224390375567336001067647903198613437272305601041584150865101473343756842694919945583316370349906654742371238949392709212420312314508938672040188250708515026573763823861783908245414910889995971268928907776689489257856170421988467577634961449265015209602683580949769920396412199916199143316992186676479853452516373095761291252745058738062888214160964034497230064267323136059406536343286926816880263222471385947104960031842616116571651886299327089094553303559330497712397036272479244825899667113333336269575796005500282717259519510007696911620792481584653827486020995813482100031100494137744172197056816481948995551344434363207521432290979754435662980912999382299583522475879717169496437040895140820831812360586983737889532342945977194902056526408713534655436116014899893600582766472819440131840025365503723768777890547840418895284148031942230800089057473351418716881452594631319649028719675147310108845948206414879284665874052359257242146799602022198397969243634065713772704515412128125662694006510092198682078910057430497143907256809046753492359091018938148199662257827055089697083661836259238079158747790417639198054415833857622913603839152896650355326339410310703744724318270349481803211086075315553997563823375277155823435167018625542218428444150152688683544465056214816017015868861010630731223424021824143479047175330024264525455862986854363447855355991509748975407423736229885420668761987001305327876808392456040909535989726099135838464332428666916548263414468304788013679554309788113968654866917081818155245916426252616600214146156169531669613690504029277994075594923760186123838075141397524366768389988919607785853364334537462540450925251816189652268953321845153005126119799515376364249173983431192381973431402708245319405111035546291545999689462025554928502977626506056416370583589344563610264586580360397417483315068255031770652252094066167421254503009114606423065258382448490526669821352756199526353852121083078866283569264450088030181882434552265329916658274525211521681296058923895010023388157845411495053171311327807974620474682606536389106773239851254833987601918168464672346898412183008825832339055193882815973942733080545393020190739868779164842250655319114855558240455371439435618638815239232739353945475607686013823551063815370698702452058536472650266150724475961485205850753694082017611604177108300484136032013161853948568433115335524872023016387976703791932235382597746460422731086733743552348511716032469179969100515804187742045888004916316142582845807235308148969064725696344783840761895538468144357806349153488799194955178389923874907533979047580772257508461819426344589583530033643543894944041686878122326199136711445707437423235922664064370196505669482711109677987144321724941131869419501405601941514216294911102672935106414677485495664079237958449445794300752331619188371999529868618849482845674108522409006131836443515767735712352493927420252145601727613319619369067196044894566766696325110373642976066742442090547979240412208889138853793079273380341479806206576652168774185315401803317797605588556916307731324832581535887831968648646410030649899864920676486344841580193680162730477344700567915061637690168209376837154424973540230426962479609027530310476160070765341327418306489701534311287067827645229424544080459523412623060809469182029845560386398184224506521817655210105546967448321736238316643138196515800532197616592718228251701798053556430400599520109221551806510125870967450786340497967930413946471958783243934945605616451128563803276977623008916964638750994719611636810314408741814149399468029230520771436529530547857998219551907849696167162691617239372360068817668100493060942509473552721420678845379576395768226277326815514767450059957782582927398899655149304957526114794453465717371975059041915669070437022823038222217605747598728698402867327350189169770179852431120378783694802224366937177777220719348733559412001567046109077876618849729633702156631305677034479898594847565306417478789930085194584997706167395923611058083773121881324047134969356768869361504513734804068328929456790564691865199328632758136417654010545153463184737150182112309785335847977125391874712093085344395598201309532411569190061750320599302140049799927135324516745441699267412258254059272754187616007943890557646028003385822090923104260322526354366007489700325864496108008825563313835973191161030400372922554404266581191042499862937972628100810971566769331386077969596824740070258125980306222676877501277489293074251131020516544301967111055870535739155133739382540834046421205800173866675105174866620256290690657416546727601488151815270291065056620377053130726466477335135413978904249717774415071671323147010843562009895969257617061056937765392907066791131804727345736052711114826695863789960405865329622168285664497696247834656329919517139057137388158775898942802476015912081302551497865172049570366811983011179025811564338737502904180497940007606160406432641984235450414397177689014830781660040598028821041455497703169766380122736535910948176669245628964291578061792159147259205136308305780188009673018940100014396548093956055129693819597721151610574552794196784996249931264544209053637721595269268391830628777379124251383363470519535146924201225508741431678756356305238101286526632268805038744895902920232360510078647041868049045431329627906169209072198978483411562075506326092131312498896463322671473933209006035945433369128962996273132548642032192093473786163604674470505337005559422824023550603616481683978872940442000685168005497161287320949251309260438795284831662730452734937792774240501872590233855377076194018629067117292098765380627228840151345725306459479876896180639097215357357970637608056939987431175949382062733248323102921649182404228601584372371947265699163592475145368124340114968448505239688300182387064239091622011095563461874678297294625622675276708407697787872750121764874628959849227419855963678424137496440416377146847312757253637307198989176943227844334550160503819737448705268776417468201824440130531461413564191116772162035944926271556573698877886482327678497875123712937343900345592816684669239925183975253735891826309239980640859319665758074911486791879239945647448941361637830676355284292440926878499644626903683770445209643412268413488218988281024764114756471169118702300389658476083315593790761677516829229084349767964738492463558833635764123786063995159004975153562719437754531100921173754884968078091648572827910238319505806318946410378941335854136092345132531477969291610789911376947550858371228137022825646992825417303967284182236097557847750916857663532427101436726990248007772436793106995205135363799943146936734613550378658967356382637700855592602234202797440144383252688002112039391019766853318602689244975064306804230821930438802911588694508468405705008780706066185462046555585160033161620656480263816363648601864166984391209451067943446754086075056161289301815893872113933202633159656966887560838591580576031488696453858962367302937948539544506090796118841731329301380503300512576052940151578333739664267715275858887952649069306511752635612923250607479051594784120124709663756901774311352256347949766901906175926955706921982057859194302540616151278115153742837653690601748500800655942284691554739597029214281857764825412595185465591280704644755027341521967598540059404549082435960440809365054274489040654234389404843830990850414593571057553911569915583050763854965356536371845054667998822126427068931150672230147583867391787992514159142999230678180056577171866490904931481720301952068637265364446141709431120027178483660945682453031454078484505585110451934021418039265195610802662190293553489548597693089089264558443696811754843193137836651449324894475357210588659724167594073119148242118623040609963261431866996297044045384385367177956039153721057643976660527855160724125598590305574254486088244370114438785676220967979799955722822771331498250903891438862015475554179977300348146999943686693732195697688007325197021765509640222207531866478257882728426691024628237774976594940736878137075775358600924791764199177641938992362414009928383758235679700408187902127757911470469583681331179276664545944924650988637498738971471971390598679447092631926770623197988902947601248992695914807170963467383633436356821793434318720538528722069696764178531135222167741945486377621126094236807350907589778577491560532797967152701049260569625794708387103445863151711892992533213483062592726486084023618746380348410763911584588480678159608872027469477753509969134775534336796819601023270812035839860652719961338078155905838202025200093195798805008919789345813348433005664733628153533229114557146538458303170155793753279282139707176003384893794771797220002475973117098622321489949787454329749521067002045504557097734533809995293101396696544128673423820259023717862291903373417160899124256223861271090701525677773168010919372298835048615268944626103296210613604815006370030182246618265773209298141227373990836530090023554209258476551809278194652666730809684013236450061102135486403373975750609446723709878261043240230849496335436508643039554778521410159132463231517012275998518770068072314378942543458471784126649327605920967452965595612004449323624037702371439238023501017595340639194055834713989730690083325664710382919502784686742068619445917406709311404176957308299755269093959036441487030161158322212575735803073236689021229620707898127955579976809769224093968192481494337179058249467083255187559759628256722777369135528014131753681585353653572900408653035675002478308645247758050912620787498992232536450371374260488838573868518795610588487820731779725062289245099865746099760590976647663141919310186450395831000253858622122545487185663087837587932966549707679279539415960494023474131263406907704091338029180494121623822097936343155500693573888262804328113611944151845650415360518806973760052046312795524654325746514205062539408168676265709798074964832339353232631211127078157303860380338446312643688832762049447808061870232965257834943002960274056719820739792057208952430629422914035708146504654231424216589975154910726030784422971491321857500592220681776248318255185457371434546170408116360755332956505591362841876429749519048808542882616334115789809974773642114866640988890719850992569813324010692587659617718449232099378795433030537880147287516896584464747888678339373387381087509114228377336034617564367199847460199942349455175079444724084873043671914418762319468940126941547619100796127665232009734046835991426615164086819461732928110836969744858797012277672900320124763890046495568884076519134600725290076913102605695543430592652909841849276806899183950020916367464951695889850464995389636043917888291215886930128438182015819379672974053468326195058478058256411009146526006075852476534330939176489372712936844185927577162898755686815962225680498776487480783122435226884555746254631320728575076353411816907959096846569521731455900285849252953219174709541471824987951072474023975938119130083188534662226803067577451667158795108161526072772165804810787613252764606047108845584170406458374655437403264554088764262802317399873458938954887093137594638987542371617085257288736378523753357518250421163645941549990956312005496670159412434833856763566436410317262443709655170719773601814600234714740879962744865106211748300945658133513148139930211956000149934934342335033863077298878285931531532653300076725871322530951242618208233111887298910700322934513113330430223077001883684944896038275325380901839064677295992012371167722114254821699786073139563888611825616577677856620399762194910067457642945997101443417808634034404425737208401005786741677305092955034177889255665133191519195578357446968250575134042280308798457136765196563578211104529984970184933335687213348069342337943940290126060984390781672917113827116481198464261143604478168366924708870963224726153858532210212017312732587233080933123518301566273682446589111122680948607318768847416064587874702021490691444754384159981970488434869162149600342262833287383876481278662793822009180156145428872967852461756881775820215311604440055972978780788402347895648719512360523160027789689607603600235977296710973912410102630216066211378053973640744856858076615262062267193953649155469757937297518856166212609955662491293532563844296082076644496001167063576242389076511349334134842576566448786334542578831032151524242954739892674154429092201271613866197076272364617221679461173831028811002968648202492330434713014856615945911009773536929534143903903380926096040107947312737538668500421595166971916508601198059883460213810470176167357699945816765331074719292787700425745268146596358985216212620414052402232531259690105629307625103150981241260761836168306561419967427859607122748821989301123210158957786738434398400444444356463485516226928248051937419982058897101677808779692712518942890451030529669502357177420251779038965309240768128109028413165448314334678879439824234492386441225595246438917899355912248643092085274500183471011148449976684690566347391405520419293417324460783009317045128449301722798114880298460108793035198008024978544652432498835174476119017911066029794818681214431433487045587218636878205807969340596473464590044860144584841363890376545074942818072450487359684553894973766944433029510750529528211146129145282484478217919164245707117277520051207898872871629614297357204654685969405133345065398705912156917413779228880735882941664125893576738136767479954436891946248691965189930822611830529110360754465109666060285968054898918144439311269095494494331152052511788230119572651359370655611610088985355093506772349361695085612617839186757416727318894081443029787614617043131734138610458391812737333326874761178613038676295449291977589872722565681843638494183494418400903927386434613591166911323522096822989594520549699591950031745465980022138155142022714785464768589342456879194346229774245763519917777188710603224096707186494816533215388674759719296883712927036275339849718633161589112369570107399725434810357423224336099664231532817149693159206941172435469052774862184796481039377274840462793296180027523934963264377580652519996387262461343414424903854678715859280104232610795227355234928098812667881079640924219276319663258367393928341887321813985604947400512946302230133461207867105384473106249828478846183856843441854211683625679913171858915321715445867005634983722783218484067624644018838627769960656147191776931593765697724307087116607104668172574921064917460439344231399305028827582570984693680507792411506035409416675471232650651046841187993528679392308335317233042357735221694604327100577802017639079478244306088318079057962426116695542832100386029921509904206616789801295666675917654934863335112066499017654208401799213378947074993468728888211848624610955370152611669828889459463143613883873441114171773549936032650385006166299337626864402443121932710802760047938487485902006517553306477261883526343916142449442187038148591459108684626522744093205255088648512771605338506712918850036845567732730137804414014093999126953985341506334222447684965819250810468549494818858074087272332923663637871128135846298948322995017917651969301141545498183876787358607525892263811737927474750751848751053700312099742959592180173740459186019282737405080349002993749563900889604736504174542259089136710529656334558936165646095094985097745354588259444598203157391354716973515534113248963464647203043738823630481844506048175734687078965925824495763875582986695863811162860712367500710673108443008416188004190569172852270949909534727934302861185956824996567617762761080273062164675259825635755571434722712294679093792583523135426061163689342598886186279952567367428144214271473542024725833807198561848394751039842232592767633950021456580784839430884202320605889849672306785782335524783030569533545730084017300935262316441553536346514343975645634156650869792761810019240732347218812530369137489369686904109874027092235486692021416216626561961777267128727618691218108811912545508765781161132960389220017899504306320711424902052304989076883440216405319983168835772881162876207351064561240059327234801067487701126310658195875220536434490660141251266753972649100481421536232930203261126986254197238945679513984680714512592324991911050139148515319547841578382753380660133018832937113583214233685281441108682417429256455982689789626851527952944404239623544181147598197068455881808308563351083194152435108859214273152664405562999854334794038629295735694965800823372800461303245015585248975012232549779217013422479709688969758052894198023492393049130294576176378312579484383732246499338285842839095390251662672620441691691156361876851335835303157907442266940254410271026375607993746008836794680780627310787583714194062648277361845133826099669060121894108420832557037908164742996955542953152071707658605624081515483991533737621345316034134549318898997281479333355562134173829963751739047504329389536221025605870434380286475590150418881273837530560899449345820668750416572099942379370317457224973686061525851350032154483007838950101347980430190841234490043900536579000101843041770985138823695855013513330595469002478233782102126824064844953984876806426825624076127328662998572908527921174643447224246468399085161508277512822090936420123274451997264453129092271505041548640473945716013712883684542130011266409080518121245335799748612846067348715118073228410684157346692277486718749591099975737817407144744210208598515972039107370705903705515603840916026307270522223881225065439915188960268154451736288245062725829433993893067526348127116061697485271741019771886685951479323028564329160700855059657827692487368776064618098683031775186115746453310151955140746260682442167751560696810530113041205880211306218246491452545082399263856817912284921676221197858742018154872086778118352172484615656872817984089669975857487090179688623866504664131566151365072022488117960236968028854770198122022794667369640313668202306962644221166851828387759318556365116241571924594777531396143903418486801696576096839240543410750509084584881090804501821510128180570662789098439228854051661016163391675245803870073997643885819072831593893553594392819682770698327632553334253026663844818785785701107135307770077728943698954748744346045824068734390958711737661800138330522742207582930241831965610588100028212582271393046336900291285229919739590512079271548135298570888388759934858750401611339046864449522710409210442295542306627144061494492059688183291859180274038472122407605310294212855569640656816324305372591638560046678147623625800224122284710433889332258080878843425558647406730960581376955169374169595634827696603405913294525326935141141663552531453916704749340030358268066223598647642546470585367450923051827352917192329897756871983402382765952074623746909744750317263010697472454420090524863303186458603376199445437851972372077459969686684685746930281603695096247507225800314172728339391181036113628590781955700183138069758454776882316185244033287505407985547928858642802911604602444724210917812389816038202475257108252822533777291847255132937590840224938083546722598226619762238287872432081169910556923928561634222531266317287615199425711140967751349645925045747499522907743910975899397503428423809910657706836741795104565200990692468418517221029822151848069257250319426635274307187719680139046179357321534898384593656249939420489258044544181391313469668184343447354150072712343066745465285073280209670952863448751125957083098013274816197330806683994477728491780624483941272154961531968967410604232815774120335309368827587238707931653072410095983612389680561112229565922567265045855859001330236710480576063027340125375637034771454216883662173281126246802295296395971950636662596625914987886753410826610902874358946343318742046501885919890213662015739261892845928303950944817303685013630257514921359147484603858279641307095562538550205827006531284683530730661905645436745760432366034327612971520830303520891975989419125997164244142659850095031366296552037030244717367958074965901349519566649699907044051134213019775132255513210222644524141481159376488034543480849526056615601295053376395344632363445283221016388729334681263759465817627564544926360235730794923117183269619862752021425783511159893338401465698776083183425175257679616341528183160935560604801819873515436794713259782750970128283598703171398283179480183051473884893310939386985966384620803670327676440718157260361827704901279022610611089732608893495403027302812239050154731331990719896852564894327345018954519635526302255578239391004713879907492727427777512440079285184891452876564094063810270082516972664555463886002038995698819825081094039391012912059916506535723758190991550812861427243068822628446107362921399334585449083929259722688425219839041296038950677827955864764182394558344263340385948256752460933142246569227309038346187155422110783447507725192064287383095351872986933131634008175152838154414993993465100424331570060360292604703151486355726701573588574386387921899758756928129612375542416326594428657731529742423508337204857064967300364159782965199206254794708418560759766072217344104459935670283664684174755637246336014092416142286852783184712313746654993032417033707369805218098148446725712752100419744630724888058971896832924603099046628440978305207179753385831623769273391716280130864579217866228121871366109649126167126676637582809896070528847282863908436629248943939748671079779833480664599831857000582575807749963633049202744005319711871029624780251600466880561490469523311879823909893341478983215820442038422097762175652655250413923354120463068482988058779260952418976844479809337889788963999556758286331346106879264005460176227235742735332514301232005747888289636920420405742469561555923680209940232937288393216021177338935570862404894804857369852511475828988485673133078962190011226704173734726830036887293309325385380380316003549329846403444666189415699976659422667430615969582575401654886533804647248882358439504818173764616244481013555548471744602320735373153559274168790137256520523038203106383485261575597068692247043532126101091935407310399253376000689648953346440238133263535408494178087520230636369676051090822383373311089221753140214896120907124746596248193281278186460040532055805266102931485783218055082439859717693999453648229840877768934624469369207143991949873845732371918607705602962127784413244181521490237831387021617131889560387264415228685961394196564597888950568461532336190923745818162589984867817797988846746857652732776559712305578159066564592829404002653499065321005539389443284214267318795934224989191602800622079234573005182896688162474992068636000339457459949315268387875652538971539920150570524427304194617457666512050634976092350421476800884810602274751842682252383978176771241423910245138455420466964960201770997957320925260320210719779693074846430917585612234342169384020824691793716756660620670703904724464429268409379424235106914555860659567485546895341109353870207725158711737968104075451395013746312658001103722115197440800737902221442243574011621700684302956380484522387742312834326540295210626509116323659078331958208236120308139680562306461691835643719927604833673964086671521853950360732875361096874723504458398232528794905078662926993908230036684104652046210866860309135269413634247727543169639891721138522357896997711539099530819755281138491217147568138968356584289929799502154065825702845235601823298381777965730016305345002886024061860944682156251937219166799484230721842021721073585037671009815472950979634936732086010037110252145964467094874203158779130736187191730997291030052569299044517810837480054601786915582687695026717782744952488874981197223713047086403958260701612759992072835935908203015044253684598437988021337350072207572174485791717643243685839051939021011281321604700470012652334643753143224789962048081961188280507224111572578053900591108902005552527807588533006930565623952062535481314609351202060067817676412671819208207707041882924050550219521646724966243524282232103886396598398220777296896310386209221670199742233735750112436491173519735152705636089008085392511157212522619958955674117366660322088391751468348918159669394695575760530359319690177623498865399272108851412889771711696384096042256258473191121450146762276896469232421881150373433489044409091627131323702635193707852188960906713972150886917789014000948191456438721033100213436885761616691142241458979708145775747399296649712547558781886082436629126711093658492975068220858811256179555718151367806128824295360552894683370814515173556206438665541641205988931505577057832542091499290272181530300465730214673616898997480564346625851067963366364235271974424480308311708259913757288445902613249761051895170062464777238391018403321410940854853673296182086126831340356555802280437966107192181996688932586388109095741552647266888425228941429264880109899360144763475741114007678113957479978319520732882396523777446232073640839026395552005323147682708925723866556533143252493211443067677311187891953733655651948138580307065174136788249987674983074664144313456409919812813467035400568145816724701650483344598937086066912529837104259625094193274551053246112218299629496917717743724659771227982242383130641467420752571041715636561680169822974250053843444911208947409961242693340550875506984873514417579918198778453183205220901464601078188413948590386215980393011976016132716237188370335986565599836950914765110922379419256993907997863706200509626077963174443017590511621475430041837855153892086248234731332619073809075982366172970529884796297397875078203263810991290447600182873003050133387342349663594625706180986249368301207429295491507521937408442799736153134204437091601847217724468430828381164518982622606233614534052626091849102383366768620760128943049719619965128930722719212547975046621038695117212731028470600726714790209805911794416992506664749014882274729908963464642910631915074766396093929173018512214532374243532787885745189997998990178208763019877186756615864292516095154522488601714640692050920309670500591570168171380333430339827510216070734070265700113123530194034316260168774647187950343252303642251694420615018797221737265175737109055250724441465183799616170152652513436649106484949717624002859770687564374179426364313806852878009775632145572867843391855903793778869921674508634399628943529860595776835507640552666439626795998126290026076897890332040930329807184302476805960953743380188107921150997956038074320806463808947112932565427394805471463608317310686631749623627078796560212256780373741872658544043087717408647037596661048295618616558157376366588803904496698038479068977664439284548366015285954193906830276468253378795633466437555496383263646127843510893651241569239252583782488504727787927474086271276333857684631936800463936820367822468444104728134666201518659079898092727375487717713028800960935762518890805630450747221740656199496404010439244326880434192740510146930494246222217013606129120208319840736284973939400654343375175650678012401490425253978645014996557588596804790662411909708268129475702418067161758329175002550156895530618949206889800390721584540915819624445415381368374667198736015132445423385763458778562708427527320959737177118032168086080483482513002601745833720254414270709059342388955432734062911579735590258631541230096678671539948463763197178009142032168338970195690957502878703647958899024795195991266796697101468012124062921421607924965059592001842371536138727693264267408284002774650140426417950553182802320240002256374885487760197720634713590929747144251785860580729943618317440420509599253033239041430751338807557716516362671706270778916139322472991904742634474157060772009039414894151598536716515783429328065386942323259734813880607309131446393384361984588582112246540851469214232978831358028215812238039290062130701383675862847263787941437097893593206311915708943257929904089370049339740573053165584051453762358475111075073217149812891068486638502290077380102683663824962490477737611227428172394130741603373913508432098036762895277819955746334107232800289251639065764389945013048544026310358453609317073050642988468726823624619789757962773698373584372061218509226642480421245302751129839729281452563045200641500332688326543728306093615476375656758627756178845382096977763495088394254040230201475914372134547777202223795722902675896581210708933663927417069866435375672537156073747844478699460006504816763587167784615896238261083672782111309419233568451474777448760960341091358134610075122396681119509314631374336981343774426605139448843594435198425784597992068015559791323760813788118747654129004770721043602214972812412686279624832227052083251659815390779488329000898920854306379989390517722991710558004747743293121745265895349872468528863873154841160151845327280117830206515103448486020754077941847691904356140830919979767456682293270886367339579684364914256390510106110700380576369135597578456506716207263692877895415145425068369865313212857549185060578393857473170637391194647281231893808670592994869488381009922462250259054579166121015460810642722986967717157725568630509416483596704794542400552600196015689579137734413068776420054132092227745681562002855566954739647426437849644237861687048716475799305584975485484721875757924752301995100324292387591625705922789281406422226004765994490645011217793083519914589131706859168038201357984828282842090210400596149535461811199807638826110189026075552773593079318021213798766053606077583986842508286434374165929369164563410047773116566099466450154470522319567992455331785925173011517640617907033266899960688665293873316925949645611977673266074934040586235817300766000944383843083258852073133723251133754226293785137749092175897195034808752907829474919488377605543229069825848626036909374591989827419269697024932361157330292422944460267922713166229897674069159473297772093461528925069655203250767351277724289043646399434522276600082421897924418479691054275197148399122194981878528895111087315426306795671368973811758282191506205568478078634271103799942470908073206858507878856943575556898608067291845280590826204356710161431985613014649697848884029956717485591829741854145157155035828638870389466987675928170919101241043059719293439474504099430436264968990531518558131312385325152091500433010728441987692659899211219511012868821751155213650399065909073565631098967669522390860178362636507469053024538687704016337616596264484381239110056034722509792637042353886544211060519898394118607467712319503333100113469894590136452640660860566311567702329529029184221424058436337494557268723151388670467991711764976939692281170355248712667670131788295143867404731099785126505278381127513915902842520741295503084071389018740208578453814898468637555150503093032293100483882122624140141105188671600584494753454994471737097548736362704768396038577856962183627488813525900120507301095394309809817730654810055127841444387260355966620016630374211369790279980656742924349554890780165489178590271627507386501238093086642473042808993206593330940157387699932740764082672084962319939175817286014216235097357279179385307652415708410390114541282302510193680876605110727589285598862470036374463175365651601341005943461077575918593289974896384234699968932172956742338153906057561385081893083040951165747043564313354045902898492209873421431770097185701507114463220626247341806627560712906932867172838252920863665229815124969097295171515288572584927779492616812445716503088275308796219199484457741184946044459638672021749930088523564432126554027381485403572853622406522073931356164103423974019821391868744030308888040995555157579040471279429570514705404834253458508918816035970223416612327107036741549412578083012794533214360468266584729233550575833336897650822312822769456292058355156552537694234363690301053585235391247461057577627221029032936781967612201377557503237791648031660237890817116445135648105997836842610618368012398425096845678310422761292005438463596910466603962157974184749093014204490568927409956452385411501232099642880344609780564157908125860472216355807039523460821971301168415355124131634629846647653152970523224551741510547675261923642364067492149755754883212337912025031861825187664345143767197752741564830285186541078889982409422835536190364386559135864112279420824840660473667434111079601929846654237154006686243204183161369176512644990274020938716364935608656739330854258340254930296984828244868435957445635694436466305833137190506721433065297959276296195457613109842937620123396406576747560977624876824374917063837045296636107065048776599802183458314321440209606672816225301859634622576960418794793152160053594798750694008826863525568754760638159955567020265673134534106059845327326633313884172521763091650148286870681655173991594125294816066538197568848278391675169153878422803980112809535169510002169271038265947589183460584852077269146600314407200184965460535588336014029868819329393118814775210151314761412982521096050244631330447517748453613173690532518347616313545346029809197479931351129003757411794145392778212380418524142665185602885578980998647086084873297847435071762079445558273460241066951075113705592036217264937282995911932465786977115070556584784864624837337029298400878686339031939127334477671266865945749300424928485500647062436964684292919983884045823420186163576111467893794428286687797365112294972635323397189277384206578924439512810341522376552803925474586403818381722223821801732412722012118027989319041074561701518992375532953572121188450808392208975286873221365188580223744953958695734154946467067911988278169205040094524686711369632223419539916124947172306165053529019858758621385716914613303935125535067842607725099892427588146128249728488017527530851973172742227209903934642169027876692654342099915187182341830601139159738167498591317596069580607271306660818452106908553808515699130600024542911142830295505982068323384446488557449662912890660212141221021906273945286785725422669814080028375771491880960365810250063025758023079761919704461332681241600020267198815672845864312952091076701843014627358165731779557710758791996780616310634286192879805721126979777369733138099333766988652967812638756337455740522576493716928657532026759774462252792433697965267916045585119538460010895323556578792501921881588973059873314720558918774159554446333385807959964586442323851311629314323254303515159221175871487903622748297213569447875481626950482202278341384181710611927964327009600337106167810362412364797657749728801390544165678440091510191520429461803050818985677422335124936483024634674194100144238553534322525489694713318316514412983957927129144511028927782251429902016257455388063784481061874657872105580817930689044001144017469556230956907312702513430151121590817560320734841611125628480146744597769379870910949864252029216064746881378234782972797264605383571210838753357059531794347684404475983516650887599007141623582260093629392824028072644277786931779765165761267853319434036604476179283468027201302864059303556277882166094797635213467165337606987336592265075285642214032283862377517368942678511264648093814646349941281426135820748979899246652136805904319278262248934093363349607977569654453109769823720618075096712971033002162106177085803887871409926493628200571529974943591419282974633767429481450081081042536851661088989025482325033237641621984983457343298478016311671654929607509091533842229638977680128567443326961488250553957305831206079380982649655623006346618023320773792388136516706315452831579776982472513383046724601089947342295933064856709096894170505656717634014674443172100630238888330107758678501814366024191903487770166231474839253365769216738794742454037611499839361676003161426235126666467923423556280717261456429959707961264083062136914657331964803757169533781551638815650565382820265018059408698622541048355520458103956205460003941540134803817365940748163178720859859471798867647977950629964882725179454456290516214122563070496614311783125280717013109855149511455104302538296095430910881974763902085576382911511425009722479822119345154771949192694693630421303240713609438498188314501612865205750668682085110372200379873160913384902670398308249727856577433390308084010067957904248060422034223134230258670101761699454268266586565684268870510158590099668511325788853467941362665196808781180786319917985396392870232904316151144555914709056524119671300198824485436447178232358825737345543425089540643762729349546208568982799753693589277892751421726790320452755816721935816897549826354392147328636161330563125622709868653973903164184445422957225091915611779232081786354111069378758713346979406366502704891428730120504550722337428830268100912398315636756595963704611783367686140637935148316064893960217406271961855153125467223794266164612248985675025627229315015713444541754079580316516301380559302208412734053437414946962181811547630393716595302838367398262363540630014244026331337835752377589022946576292615799173545710463141016751954211658825563049027031296976264077727302542200294802477824434449268651435224058922746194908833622119564942317881624440583977834760281811139943909940449005500592516655638754816864321152102270406448811304926613152145935296645366687615618108129864865426029149407649891038065547333006169141723813722772144226452267209985650552744120535839835643238546177883271974378378988723979943703261637127355022253553815250655259052206251941768510320579177481683678867175799071123634991352618289407048517547032966438796261445995414131149482944715839440736424013225974186359209904455405302365030030976686423062989625426335554833219538490553356575752824786509888484910175530540286902238514812788675465993477274613840912474548766487426716984478969413235747726000903267712583101040082907384447314375625573672679823122214504665400187086501513950062143045760117165874989932839346046095549314575672931592988253321504498329424627304734750789648084133051417704152569852223664267033524039427706308006718806842227410013296123961045672496818080891925660822314887510413574042910352576630292993854552895551606994740814070426761447827578001635745500328312226592744989388200116620578284160767504376260137423490696037020321115474560173192446472394964463502778647060906721937208526589982733441182898850834142850724635591361286107587477479813981013988723536653134417137075170658297906327485112088238003412561973476146328925179897659930857544969315062125322201201779963384233103993450820225696574611385327190478618879288300230906132082994120133718778984368575909343489283091925781481691695195355530005532579185197311122205714228263343495681613619267103616906500579043596343888402363613586378277875929703104030864432631812205493481713932330550829289253374217822244473115798779720627932467891732148895313257900663383467790193966134506331669578254964207309947367440441372428251193097587469610392716679773153040799248132492832956982970097427642498291839973127752721652092330881223988698602907265150439526892604848165322934833202658997779932291731729081130638350481507762010342189313627204171834063875207491438709426432428685352629754303031788176296135697457748941262742179560698469279510534728103426197336400517525484152282176045447092213578763039581909715292455483246192795162609553093995344046415359919120569414099651344497951478203907518935543460561321574776202406814544588824920621946366569786786854419499628895655329693424880981984437504829588641646571873157692846196211817631578424722232466642263982036079519300285167230779276844732627941967212602083902357309144743145908081415301593095099840644854186215146938783765449426184111542246016121085902976377826453548167332953246765705034602680010125070804169192154135513392655071393750311453720105235854475538405342919513622056158574272971278087564581084438141000113720895804793786672471932607255514816802097570382691484265636775780430874244711194308764372633550376801398257681892024311464768237911149138864749590381138451156436620708130976596519685062941801378138583820888538729186369431405311653520204896329980484938628795691723401086780726739614694536975450658596268041348019963932360542022986641800470418493666833300028455072820656555598702363147663336275141266477860560257500213948349631204484612091122605078513331644605059521292578038161377011341381320819902552606237616136051765880605255928703442589589880803338089902762395835081927955784159006828000584537114028560087020263545984305520664196347091313875759770838894782220315125059287198142389607694505561929328271246541599072044983673517969665100486308140124451047048040312520106761481838704521443450858204871127880596530896903137184791571610532101474063619982945517161787503161330704325598247910868061305972579501119957900570887921613321302746935109810972452564778036018665661410542069641590476246763049452401821138524541959397084583503171796852123584777155207074155125159520291212410796690088498790204337445273534506280639409303709304772781812629466222377940701229569442356207717065608528284124163752191878061300852169931496423107107397445725864384429433304665244931523070457415792414780401878446264096896703560265928078675487044464689722110909013854868636863558246618711135073932874257689677032646112843905026270751239244799620477707766972340007063585240369800413681408028584570543794199110724387886806394806049955003540240147865833450682128870181214979204117911687373726757276031048854217203926969473914025534054398124353284795065668420031568993852753323587864572736439198310961790367891462943294654109279762686910880432508084936064723300320346692977759144299918187297809886546288637853217844488110295529886956840901543174952326174236259448165850331149566216216488313125142975783835203630357782933457543307509281998994155305070959492523616263465096240314658740890748732662580858140621563395627201038201281992785204079666885071888065612199663024804480501831104183760347411710701104615290233302807092679810009276434279370922339114674727534970343286557013287956651970809097359380239550634408331786349048016755102468568101765370092735625478610465788395617675847234013689879660755655360484540385131389479076907585548434772405882904523617090246032720275251804936666920927689439330053182535857288236021708070133652169644816257634817308848170115751479490097093313848160884133494926733994137881427210264264453414313122458172660231812831355333478735650358813504755049594576771948321853567300212927544570789504710978110253583416422291723301735735886975888412932818005609929459926794798022189438267235348499558912355284910546687308731195607683789224322662124173705154364116067412334947580573852096709983269851602723462230865829736247421024105040180693465259326806253095841385414634599175435922501480157226078278372783280755065910806116076399685113327458354610222981725905039492429623980373725430973017711098557355134418506981691296914951102320134742201226118063995751863509091447509110228848726914260328826506051309531695071039967138608376572506945869741155097463609650044434581729191646015374751317567914618625072315869015565795522915155293591685795563620823076436339224880786446432074418173371850002617636733816654268289142766895986686579825829875262567374952952499869015526790954829812228241052221283489028337821997605514391921174223127421480834775485859831475396624089421110534325959948571158919664098783356143960197769139267554659973325261012428010642536789418374851603771837517135923705198569335067624021881594432654832014407684499935771427553012608117918793754786395523581003432178898702750423772972891204698378481302046564859047790254730373406699529683743548737154221839100144439085108323385887301692288663238901565525260802802167899495050301984862888490035492345008572851178659972458317311819047876164745773333029420914165103416772819780728611380410668825938004079819578608718256295414046861180236530916318144573564227213272861851153356895009976973817269242993308181734776659352004378805470459510630934902962187734477396983577570733812844302450846965194912732490032314973999139021594414506972272899161605591583327987542237171630212602300714155503866551095434404705744362781566127429178942296557787025842049543523360103798042519723864803356442254809413810366846214455252511005557961608029492888163754666742265942080944307109063066031284850960351794860469515917632399772732224256108237411606832210793239802917087299094101611981439159637659423339204402434476440254096384425569035211397210770099981280470985048609546079388680575385805614572006978600103253865207952401679347133512788461729359935733558312083973885365669918729809442776592376063459726553199789908502318629910380329475148657943125366626981820081759699753886834564550389334887879694569160900555545771352287259815248892682079700461452743178482582598992714961622816144109242671539098837834406166178082838865856958212797679906583710743460947556793506005953092715842000339021683774163864664969724626569549258175711588725704383787604032307173662455061211487617658527350158401299251325557598152244037814106316961840719314085750654400064783651294871995485211667419688336520834733932012489241460452043927054050007560991914985081172584423747537197269286068374059875130070406140215112761911926631487845034963902412334715703958355078257380897134837224706972028237884604160103920814364992500574118855625215192040978554360926222728915767369295692787378449812196677408326989348846592295360614888983403345385046690736457016933016811823269469701430545929072931498103846514167773395785531868927059214830115718018343139238537540752538202719864455792717308787186803264621689615658439284626379495819655425072571951672759115910047532557410499011547904510842702854274026219528976284061104536675996387303510090845409639915293943534638141445604154330278131195520702629652526412184643191826900952597396871985114405913228585658435586876406495496920510965917124630437580895235950299372663099564099707419358983801659488170163121622530855066019289921457960250951143108435254166827953953127872769221016648659364610232831989589384713317865607358615448934282745377178501646519837605984052837144557800607449909099674091386724973741246366732588084149314919237452041750274919424098785512412386086707725399216655448741695560866962407767278260515309144498020161005463512369126515894859641989345682334417895302611897844189488058615971747298047153605025894714690584289426361792020993131103934118517239603977902365758786577530503170866190778090247645640208347044576754140603560327500691336069504079644888289687802310386434642756846510694772877625272377324292516607580655545829878684775274551635490400097882602056195128909126095117990152191263014722143725435991868460552697016770563051260013065620440157639148131308461336586627932099268217144384692309585371098292986300049482285693355136569019044181243658218225150800372415687866386713666692958499157150402605621043374538864018014389092114817559917220615075651988290234053327944093678870026902704559237816035931587280745816436340134328778496757519139494428108781107299751590457247917431705712114488799973646603810901633228848831550204579452824929379628580632604239119730969135692506513338426688535886507750130770571158191855348599127950654572874266710460746654610677412617253577575264381665628361575572717923046599503028510523691262936385653869064980518283802557562851484743264048232253908576864085922258395776614619088048960551428462382232978099679484772596647749374505439182691505346028405007345375663018932087543804555373471868932153758075569590944532819783781850924760773918095125983280685570722245034112484195933832693042591737244227558067640510399675002349245253289004798467579077948804287033385292849557730248744466069290095620485742657990951201346180956731464035934365636255859647579774730651068621118508094070451653064473337055983367168139190564440705897362680233556747186025686313621568114618408608746200502482128026223696952527792558019941731761798897200661316944561337795203526743276780868071619314079172285136051109184742417174866697254981290256029044889049989383236968928620243022855599390274687390554972674800285747196396761514740475025562693939950889892656766419688634376776207738296047481581379207233286796132484980134466751446740446410138902123796897918150606278265354468240019449231092724826643417837606271489794211407309481459527716527408364797264279426534139640793229225452718812589456242430785622737032428334665785272858706225481205569754743631269919076523562339889437649380209477200717321799182413610405166266570249112124589115521138036977741123620890682506248255924538476458263869878835605365202225626964764544729288779564372505305623288248107476984077909909320846455131887167043907920976777343879432853893674785202913076513515226209509329319946246368048806891463572783952674403939230999978010102675368601008065353540775417126591801477444841122823869101673847248206860692573789954120904591800380971158365399868657385198517353763082618605520669868018156878584902407288505726204164816370638241148556640458036685881901015326858617792208841936030448013264822750407252033448692340571513445376337675000974778045383886337817246086426855950285200367427457132339219584208993573501936633112541385853092770206331542724499007579599311050982775889184055223182403302417436103095685080785852879938808648549441464437189210511095302756636644265434739510406620543371130732726630427307118250166120708487567963522210925621508941799515928059185445040907047726026940234437051766014873856841438335113688868351312901358078275193391782340954803299961456418986501566364188561131022150405410235562843489633747649135356340535449144068679547378825537805819788388535438165243965094261159663518440252229547949901130595924676468336227747122401609063624141092334948570747856981884168313487534341714819048416959943349868756842940716873897854362178578081933507286139214356091819694170146414300636748669996304920025508631129338256176833863624881937973225848012367940937691519008054897207824607593171832835847914803522710088148690901317465063892563891695194543003562733025775620432623894392281879914113307414814639470652553104105961906059572195055519573081121771031243709041975311646425239600368559153755586203545111327273756785499183754732716536143270701530065456577164020895304692315041900103910122552464538900724306413118343161464802388057262500164707858452057658099834114865609495213092808873670186892636925497714302735595356047692258405169384914717741188457390499361436486105901958041006368271701553695505514759148003009171374560564248793052802294399962422349164993637709436419945770399242517049754677108911013460651198364708506050302838383930399828349565117288666207750683598627550156394402295377333003237313897946837907685169262629730225123416059031270242064903025180649190415382270999958281093881993666656983411644360523482678919107951460762335503921924708331053152899661415702809653880149105276403516960806049437535831716812656393310020349203409960064921486121310467179035189920143302546911886173723934720489040608820801862983550234516761502929543003142480803459009726657591176481532277657836203489147462538735073564375866256290569664411832421473764949513413385514941824180169779281230805360041609824696649103072260853002221707970888309824226573266002499867200325914137807528904225225390267364159827264698786995829125027603526770214739656066558479708703819235888560257472872047861978062825635103237117439206424522038793971399315073651329771482892607591765664453651173039468975301343274702266772755830535577454403343291638847675326316284861748030460339080885899376312601625110194837280715542224812146278858597878576033679448693385425556411835075293045244663393966879117867246023892634142185858645365279229617293237692957156061562753204193796029738481191735672522149315238856815011296788600532802104570614177487225065650178886763750070995939496868510249523582174242099693506946393792887503983643119825071362652340642782523391284948497112451583945505464509631574816945949993289249643665554722976171584935859401062225136647191718522582560165508534736866333912717372841633514255256112909622986626783402792960902426060886841760713287537546013538464470595254630439414451341446522542232705174402277457616329282432859952210129066068712960239486000888167050655929334689126038573925593583896189088265492005322435223269068926759423995396607267530509001920104603775733454838896623117625162693913416606612743430846614592117344660294212847414080859205810684695094306703932983111725820165618681159225983936315428699279924437998426542442826450123993936746679903975670283281312391412981316473611903775995293604521883076920332124468265314093133723918651700476796023378851175562919024281617953094484669424283790528184821351762151348652749128308338942176509489755815597884773335262510646572557552981193593648257892042633346325455668509827786065352278614238998607659188361793203579430568870227765382785762083982845084470373443416207987886565010816172696415154135624206343189814156800672130379227341041558075314906989330743307510902159191860813510088705322707693993250847369219278440827651398026604784113960999871345619072087515545080664854777087240953216365547910353665163062174068027830706201289715070941894684012507469677302844524290308168514159535612097063431930635197991815834642547423756653696941016610250320115195785164673407137069167889747586759608325379443126710711648982360059870811495938110735249009776969060510016002885275891625360323412165608249756815778498399096280240229601936329192604875582465235008767595278861365862658247736428990050148390410298421016144041040571152779814271549618237517924629581272699864747479144665528511133136722628141542404184049672856402490033652561654499701757788855651879538807566650857046309633506705946193302521164521643506503188056416943028557588716228641740544710406490781106185185630932031534848666732813346938713128357698815127544028034566314899031122908756400071551585131460719793589553742492053966277484352718700852453860546395620295535711763070819934887753981048126470638756259731314335932090717752299451821067241000333551513957547203678477006405191700333844894445090198694369614028524769336864644988480729493702822511744889947791435593588709672657068575172505349700270471849067250279704662786182087321500918759233913348721663780280046622669448336430143198467045681673888852567962170072503900138553394086039629601081899716978984895097491974111884461290421066618076876646223813371999826568775897721227212178418291271497320757264242418069234707423240672139699351967743914742913091840703869335313219018259114649621288965854743175119083875438950845916166813607291367538192949849989711471453375420287365768401179295532856670984011105412313200729911322793092638758072838015962278509157507892709980076543834267493472016035434850183576681651972124370992910030419909033913749935035571215718434490923445122529115285216092611933363190505757833109156556447633519933545562087435628553138964734997063988192677466236970885476379870236352120363093599471482677567287043210223943634288174304802072898786103692980082325133137725624711503711293416060703897269748119046655579408031575304992904315867625257614018042192823482923180744737300224889708762333532519160285232068583546345423207171439055910789354924466864814547714513784440039081506835909583956767585002099967798384782631846690514605383084609851357027597069181108711526272650154036263085687622405909651802917813702935245926067924839281676045457719232038940626758896322834127738377163411214747795297190616165158415237490716917877276802973639588315436208646299267330643540037069938956696183090483690868838488474077339415694992358244262884088219792856246489888542917048950510811856316405279574093396383095256015558823431222026319323831392347783792650620085720416700343303095677116816132081364558218487062263227397128570746552783559071627124906998136668293427584138929585285178401209638599139928319025109942110837887885624455257897600047967604329689474740977686133041760547797557593885097314320568400608087566682005415732162085247808290546000905537425880805645335483833115003892151239030930577172227707409204299231500431125499408459934699588704087989565931912876144025359657452928820561431265187618838556792346648813298886891567841740796762158844024102831479366187393486955780144233187528788348334301686204980351530393526934563349787881481489437511046149119457107750467643659613745847408254838583832543834425968155507490815681863849262290241989796087761826447477141008465895902533627295054847413018579327353642200222904264936262168436344270713409088295764892392340727283330775678526069707497462903717499779076666744246886875822941239011749568298002930894739295517768567114706653047191933941436263688617384091881847763753710441190890377911999095118043029970918641689650144123499581991561332099521052367000949220941263472849978384967201381937995771136234008210359144376613007366604765908220515567082520174522004588065027912581111814212294405836298863417290546269127324760803214766330197733551867034484943413407096809227987588238076004599506321574592140644429336401049728632201162799170240375542528668125001726301338495217719422643626169981185064603074151702564220179873255826071570737198445966404455190859360045310575745383964754774029084162690951471800508158480368566127880828753886799562347343597888565109641434107606708086076488093908818311501848864483816986244734403248630173498700877056458668031107115803214600598798301427141721534999404963588286413680069634516649680418833156862955446800703108910863158467923163457000834450124087493461276526105356503634766717361507882905377914523776023558361183074287963517611859588936590909686339560125156603368131430269891929389148364759725159329369112619266581209009048181928349032855543662524482958655483128855578686420840196910422886232929497888732828266513511973828886990155077576587640399145539892352154578927214717285359723571915312087314658638877579784599093565083961286324511749025673525189777432718796478461208352325876271647049261072128782126208305091085490688032686159847294580731808958252122025151808250960223076078365789375840241111770143944513561279081056556965735892363546624730721173269995754277217573275433162110202676424107644985450169445552541206795359533790001659714924299696841996584858763352918975569039226017066287995655227815925634257317124897517999628173844650701022658532993665748517918306078697283798510253338344615527892207889500953935378159617168645917036191480720046874493667727595896297370282815778396760789112799272901244994592839499411692071086749157041982704673625878507165693886218431063424288261693321215538857723649761941060910413275230273696856124394481707895184167473341110968011718417055917838378544387681688952470731918571389965706797301608710454913352096336878945931073654670249278191576912260062240414342701549136260405082011493812425392254909564500992326492421812396004282960360624108440960314010632995975865635119906383906561245900551260630011615708266784361961973638860535312127956386143914350323316467646188897209120127009951587481648468400373435111240358218371817165097080025618000912702464546767157672922552839610777893620839377202128452381843095265672091345142473619258340159060049995015075906405899100170589425692254036576755267529575799096564667655560017082078019978723691997062495223294847401605953810642544798903421775093482638966257222285284133060550331865099738874748593584685269187262859675383345361675935938708765258376931686576111462401850905431010463919613855013801333221435861758795691113405723457341461058338323884174905683189195037616596023537002151863304573396464751808283001401042983715370328162793121097259056485756395622258268843830567555925738135701248810152589061782499032306080864201954987757760938752712478777245652385005052161162220285690529410149381421647740821953253061327562976036893168452530746747641287279235413438237188873539077002501423418216138835548029049741083737572948394448943826093017481228870211693431242075150099089431998115675717853690606084835931556729588369406172546971809490710015880633463102025946995421849578947173673272327246950588564273864891309305263074678362814164333001662062899405306936247536800967712344610104669797829233424260552653647927316880357364349546240210875543549931927941767109555394710096242345322195222312864119679526354141162371175077640547550846349406342659252661104560572516046561108609692450810755814360495109331440391702103471047082564871196927388152518109706660124868718151383571563178504506893667766159949709634165608404352724151602904986550649123949337114370159250903452824969195474528373617000586482469151083508437077894699118120349606394225758265158039925014803933278084629806692222797533472737705010991500505389589221585985330917921671351209532017393723371673219809329438991754180329550092204989897075814647321362524500602188500454009135094403326584319863172585469694541201064143646822917104736755328305231564006600266708230793051163773268379098896692166342176183177983180778432379038762730704248131335130957473798049356527052110983170099410293283113541342494412649293933238859092875509019559083138820673411383888793895478436065850064146187077516558276231042642830677106820156027981772003346969839614896007313582847633491921521407102837218214162819454532550501192543473690084186865949838470583853414109333447674508845281171325332217754181672916810613725957848188370675335666550469137583202929011379792151658308210236833300280446872310786345292839570886768576658412212848249377289725915464148734072782120639244482972023924114751907373237233284868056885071379739527534546796466131215579651323107465094516191219116438880898125380320794018763808744155657263669048024567810006594250095255156111858996302069629129278797573959019751948813735350319987889959100649285166478662193346355909399034193843542909897035736010922633683033104265635403023735413108876545125432357835973926357458129060531212296273706040845558874849878643588385129473645845702214155738334880108891080407814083699573281409541005916470461245549126781468430069639532706065238698403534793987539023979771519470196778089449368701370103417264316622432951828700972710049045262425002814053250909808732855943460413871081486668407166393756930249825690521930172912206286185385151325331999125942007417656478857997184994259731042747259094926708136422205672269855857713136363281941273156660655631708347815188954439985750994267565599083749879947938266724413129172542080874166621162009712724267254188035577253933621864975614053708419813194823113193169940168169969040100693404783625866807534540832423817048512542820067516986014842854500570701488402279244331784094276337896805380827024005664404470243163586017874137381336506579225292884722055303084935978806702625726822463218819609514670409926470020489869173468102480178948638490425032270764204442955160498877121484975841053184571692910858621468487334720281629206239980162310057941216459479369430937559264267030870293812743193862392791277472178293415251338468808605004163196326296497076108833532879657909100616865460437317178332430681251818320344295611743789474125371355210140281251641824743436353419034480345392395622318810220388012617015870919615559001135229783930893039592559745154650299897759722352760431864822248157969367456942902791848707448307627799516863242057673207383661018964218141623566234978822622879653281734896020029167623723715640312203476575629702636401140031888156033081940743455111004546180894226065676197001178882118102897713090386375556080628526721785317820482295945254442950626060178712782056031250118747094211528653126893619774391241957717315143835496157127138268330814627570142530800452566339340726925037820171927262319595312279077392774186968466908421667814273146512805251522161719222138510151774124238700383770927340064726802326306886928057839396906086785411838575725471823357591147712137100463742518810610347829518015223735805808896173486814801497446515926268138511101710238943175387319025906701740058140479295800733102260796246456691325127671089607191949557379575340833861851837904740490830204129745328421765056346726898354859259709832772206380899971686486138185082806318748464079692004182436733471721684898838281838626578867651995094974468839875425598071633257624122569172595040662848521539676940114065606566834565366739883958275943394961055936888913126331253528660293825210526024051904161789452061305062080358679256204813474107698779515978220982445979974685092479983176061571819380294563543915777183025892171031082710749756951939650999552412670139870666615336756855858710849229059271629587116683024899085766806177628696647797774657107104745396392320794204054229296565643221361674653836021587555818495347094549025570452372374783355979542297625498666159654066214010526039005960269660685097162390997360216844818728168364531435700237935022710364451041924202581409544792914469694685589797512517999015617981324623605964957568771848959806101358438186695138527920333019596367763371174792610235752854056321199318974390948594018647810797549674124611443798803689125646684882082935613485415282547619527801949944649369045597599681043088452752508635573229976942978997148441406154916071781718906745058588861589888624597493480772480312299410778541976827694478520711172135508410441005142438195481828645271788812528298274801065183499371850496188305685321198028446564229271773430185444424286522150916412843449152609509468423881025566151734617425286024783205458665507019727626054539131438253901913600519384292558676327139878699146589810998282505704046338390046324024152416749193311703308984474854211285442299610687940829044902462486299856098506453729679018677629057633614606305914296155525015045749051832162882777125443676421737730084602116716125658273928682176637132414745822382835529400118983768894715512646457097129307041161087553269147225403376202989764869492254997775665615843930757094613751460730234659227386338389594505603734451674835601038663171111902323239233034017121951437500240439627163198028939045688618146660994330330737507862304527544737672478653641098159084677749933732602963336421880161532592499492243951530258333129813985049893990680920740009399872355819594845113632129690028545448421640917626879625744988360920687930893162206199223883632526823092629485198070505704509942113000701008386062271632296942356957872022605821565549473901346418986966282797201758857452929685219072757242042207398004975665514389312179262133547566882813216190760249913105066531547145859316112723973598918588569149354736184665755312818186600288620058824616621908327023051990731807345022902612442968369718847864396577346370266907911512813057400656274159987550175250815893715122448755016634347221298355257574511180703380601520356225497047435293208094988637266669273648650000723254679447738710613886340234035633791818199982269670202113117249073548866793984537881787720849410635771747824686599274004382805631925970560123721361923869356015503542274071037791219928622857349189799299006660129319438892084801416229054573101252983232794180108247399202004383333992570750217507289089449269771315491484730731174483456932039943902577457171681265081016098174746536649487136226906326794575254496585956066949052429985909447275851987983381922641835023037193095421913208505173629391514069646378112727915357744448598585482355067288936038610242478639406765254223297778903945938731291264556644117317041372593234212518575107247492441175367827075014919800755988149851728424599072712993715265887364433620847738275870501007501447220324359164644783648513143796657827252962389956684412319973747750908973779719259869065152112486115044863709744697180154710694343466025312585526504092844968359951378075622679334153690976095647039279602708866085430791911175448600384806568642406312639927534937616848201782761374547016801937273457221013495569643760156436108302614336059175547607814441300832990848490752405813081578701203443744323915496996536716405074032895603622665746567164565989253122072429178864526413961372182222365839947289215174588696004537805388944465992649933640813456744710370028669513674655442517462575553704878104701530599200618047942687094547815028154525674819277325980072094462732117188164649400291945867737369663855338428894113712097672933366438143470548796249901776786122586005416578049205665759908856423911883625064125945502309141641345552800209440150878779313817079205073539276350249171428123503909935248706675396637453726931767627154055746885507040457628644149450914971573917266182351717890734655580940239475565631159792702627917090780414845323305374991213900654033460878407003686045018401592004675155784992996463940894890712321612679418262630356586047271232661133642454563936307280152526367673006020248544923220299434002826979607189138466835415602128365498961815358019411072722343244807313639093298877640501099275017657548095995040172937700128442952968299406627003657402923741639081682299810208252390219075818217129256090390809095235870666135837282332649570933865715095110364701997816070112489044248658568097564013422757756801999440127545828217286868909679821214301454032868211005438646862923952733394529193576486346092647510941901180468701192512017267663643431094594112869623940392957975122167004528798894063858009476115454738505988783255851414842127583348424337622134659768579387587406480975748484386672425865106785882380989701701094369470254140426629868697370540330296209364462084532123187535300618636599950267273399244368012168136112135328473236591235078887130442510767346035469001874431433222027787240250129976803812303845841945166467267358132259757769298179879918109756862833841719449488504564289729798358318680413016110858386317517846511216444799493921546360694211934252609962242916980313610352058091012263221251907681498757859294063199755274316133629972384543176234577873794691570129163765924984356335030518706797329091624078553521729385926512313274564466189853492131613999498467891446710150522711711132223277850705468535944174992809918713505739257089330197119287199392742591052969109776423368844689920520102819834036665406157186162560025815304350336578784966859029378035555448259181287685953551575127092588447829903235235831188579584917294304741301630567058980373459884169106704778442486943806384653361368488349338578618654198762016747066920591140111009791611152753355115032687821781638890587156314441141183568753621977905456171240134012165040704944034569686125772982871962035824497894895866518629016637424808914915677227521837324903362582790294210333897551147165966368420943908697597840111512587141255467972473252358674845471841094677995020680441893880170136658758247906432720800165450106126214674079204594978240061429861314564579216828122836490236199074514423051821499099605881178331915662403364306332678956284851806153937962376651536817610184039229520154870500499480715415681982324481542220679032559260675227049314546952818701534320399031305521469079551102653805528167366107196201321664800313124723613417791182838727673726044874515169454495139593285305652957221241920519883601502430756415493278607260216852851517599324422529748918132269985811689880241490491444440232125426684017515532418952800385318050820316889265483859419480065563169267700907555090943324014476181561929335952037126022427768850466911416074165813822263962519643461605268467241474304822959303291425225287625995092589268943378394461983417326164862325638995816922086327021820483976087618030721627971862260012314147987683115814720957239624100570071299855355068259679460896668337081770988053003964715443685928643564354142816635636530074620262802156428350182473206626759450263833212074000710529409278437587214447175302562664528943919517043918462766092433053394211210541658567201412174950008753814130289335371088370366451515329806591808987771876778584662175883707679714582746585175149959513869457240156295633732097589672502614993605171703015557114465485554656568695685560977338865639397505666633353292658318688051385282900333346068855028558450130715811461735545792227168053206442705477288327080230770117908117895898898687024650015643567256472707436229999913748112635258664035741000123618290332784009005936060613196116042601003014588945639402812824641361945725648574143032760370972522446114912047175048514170579490008445828197490745168439504098777202279218133048236008494025404292059103610617231131558001743400830210287370240357210746783864795580419550362587601647681940751428498732663361504630455870382151363879610329896422227797606590873076055071461955320516292041395784732741654974509258362036622363885069573373525803182618943450568983569047432578021329067402119359817560087005438429276544906490049506460173029520926385313870018565310341576264690096697930327774826926313315153234357946455210626274641297908165221824386003772237221061310703595901480867789638860252878321106754632868619070584044381012430113596072096323672282208283702326535016999160180820039388836725599199186540228154577111026126064457200271261498729544109885055884044043678305908372000828357745955086933815017967276946172787572693131908914630756512481327812459998183805766248252195158871620346295388323192522012753867883089308718050570815074269793002520775168971751435685696276229285700381927069955649968076738904914448367486598136753523109094294880496888450894195221619700928458499338865637711562362883336506667384709035912626025711540939458189593710787784779788162864746056065004490188693366573582184104501424620486099821076061426412319012271379832118127880553509587227300672770217032484453126119460652674814303535567796455821998146123144729354753934347614803743943944737143314374269856568691977487722579010790223934332027382609721483630343580805341650383355515342068487946151814926425666189018168167065095862800529341400093134212403844586862184813399952058837509762434104924324039209577219249490205368644522679436371115823972019536652175224601646238183403819570672354143327558681006107849044845260842670308429424297940521979260206358609085875155637923502384106836222882780256865310290968240954022653606002166887211173865509686457599859413106120780423038330063943245976371948655040496610137717567969789012572986161395291158006712550146036631024030043126670055183620487736542591388921134428848082546078672246307780616871157093125979374431662440674013683815121912557421699924791656351887687867342017090645923714818786782420225845573179093714113783482695709107596699047178421277721652123528419960061106835635207338934004965435575076912038136575011108728240428114200062584980725349195321494436190229947547441745753491490768516129132538952496379237158208633261001476422609665028060821886418711542130038474962505958400278603336222792578201361848380072515452085395388533454475084543623935905324597796363585641265391284006428672834461143505401566948728699839998617558160191917785601807259613726199958588489472562517977096761888986244072789256652274266013792732450988020916727997241289177211316675966746876827172109066881180450937990256967592289446918053170143877809394454295600995185752895853992257499259933355060064011107741973572460634158364742358248063344586691780269679755961512723344556128758988428838671228578001629157462385477463291237360486945936916936191964108495660607506611617284738032883670416827087402299313550746721607596911595365930751808066302339796975812928638781243202066254721040406398140544696736026583899564270441620885628205238818266749787962718876565874053588453336718051859807699974293887885115019719640450582681360791266428536908716699764700125973834468874006185990706944464596567882775624061282680164943613394439440907060460320346105196914678365636653769370764865142356902317785806268794295823370895611763628496761177780486553515455292518261731402535318573635558991270345405506894826062382674044847749110185725427237989408451021484012518131836758209085557069451922476411573655050731739704014557706247260193014391480005689032901159139214955628437410741660345015176022987280790036458009157131240809232381236369889090966469389264693802898005134149097849006008080653211693958420212304375266269432321392638143385366576181009753976437466111208415500558223620455098508320306788477667033020157815824402164591781351113401900437600006907857029468990674977752105234839336477522578163929377635335768232318246861128488574944321201907360813227317312115728876813848827220008762489068741536445767970441720413986214035676401703951437319895815579539988540604090979357493628203297046728500051035068702534392632816308616672746152889118918207269129782932235305881130370774283253284312834188228075114734711029439846243113253661913134496418020718367324143924106567857523407836579342034528137410700611133688064951562498698132372841984886165738815463295688259736091114711438242712234326640503900249699385293421313663579948716655466029267509388123110947051213078918347158890584800808392928710115829929853326082292638655273482719644937551185455388530530274508527008319514041441628405785124500069968982108368386907848448961944056454616547516043541216337146204635868901261730792981607026360093708525787916956721725437762565868961603800265344360221700501049324829735813665288767016334506457813490250471704811371565489798703971627998027397576166479265471809232978877462248389232950049289667607099780611181594533209349647814615504514351508028569952839229326009350955379466369971563753235578995120615022622086765632830189346850600607078360520917563539290380170134525262706598288309604727770815151059016497347723818925999313576247269729123874034985687208087717658975450608910701934152474812216671407093986194365673653517389768572287649616112909029355627677650704571390420544159955772989915700983336099390340060457232407260252789903321459861848132779114062337619554968641490074557023518559909096673396813181347749567559679845295698271812422004746632875769514541345136188418106839420466942978495109083961158330311234781737877720762417155316351206835053974111398758834708885004418646964805717329480109663219461571802706356292853536870384955767753341065625687728176545105527912069241851197194860689741844536298676484854824600538881785511759287559376482382714718589101756536989174467550160659931748190733105262623196301868537843167360758427319396983299776796395622665849427977857746844164875227175048062973292432484985470174663816331303436475795353470363113830068876078290348121979680981221137672664694741620841288458366500870867119533901999320597565923760868167961127477761727516536678761331861056783078913233300981862917465232951306518641891183286818507663262295582190525522933730917274428076001269059602686582187260881766060204278677328715033373835306481245279989472177087510830560641519743671286708789878019122196441757636174886011474716356911101736070129293029637942450051797292193888581172004530122024568096413892039254532851038810417188238552687875974763490780394785677825279510938043846062283652058757529625246844800181271729148896508472179182404663782011071428704873021088453398792089997826648247913495191636510424248350862088225420317852001484637737223260713214588264252330237604044175814197833869539820232637601943416334303111226769289346076787998657565558513431628025609647362460567797768719570108782707406712956243225125749634800808531889728486723075794735917575071772028144474977710118066233738028876287117245027587892980944441262396719240013958425938791430164280822031858939964279186916024807416267371107794694837352616632914048395327385560222121191076825697530616690909412567807716248019155324847942001928925239158597190635055108584015503705522834953791857279942535860706461947696803670428559989269501610888738151069306063529126223466274358002802163037387913113015150989746055052250324233901376542097316238015867054593812167186567638329166710933005460898005634695013931176459212415217908766387478773345263999815539379533986720167874166333511655667111525439539693139302549482959188379831840433856303690313821961162081822308314320633278067935689054962090187599734208157799261495947207402435647668388268719528427120038051162696776001361240549053719334645468527121317482041901407588994890980185984137256055369360754379826508256552115527415855349023816057141617584008904387928389898631499167596874837968186127975198440537362699623819170790323512778619565995680772634696324856708547799769979525013355494645816448006488932107439681060778868514974582901547029522893061300928174437478876220306186841426358662627946254997577027180827939915847084224983098195104954208499393958018004242459040344452021935220010712698254465742821355676354452309587301108143620079585133918104671678073733287142448327784242354514057287724204050049528900382750487169531607382381559323265629157217515642717230641239893020531684084601344783272844336523234592641991806199273208692582873700179256946300937000154287888458536216495564203045251227284577282534804613255237627300251934870758052857832857441840039455106922080172647680054048229254255048682571135686062336951058154985877137374202971707314329973941459848542472847240289273875106027439315584639509721898131298431164922183336112819963796522611071247306941278026656184164698402631581273256418844309584116852848287532716480804736623070420951787597292820150926192894335765421139688745117793226501873438963382524817365876727148103306242404613101833017308753336458012637706672334617383199054986891587644326441342615893820799841362127130878837290760650281131396267868092991375355005614227952210642445726741288401208739484954909951940916271581185147029551552308334804629264461427271589558921342160449415716846320605959303771525455356025252710998446507921044178948637111332556160418113384054047637102324893119841785270874078290283095011429472580419654879607202215633239314931712898539839969141858342865847263002367715744005816665913683657230837009129534564629729297289623942345056623377904285237833097114203727046506189946782751587831285490805335296061515606239281450525983115218461089081247892119529288801441583415023835403325903739201269081915015720030967931431871091942695175241147089452323558454993265285924319249609836317028285985767197629088348606190494139014547049847514619580516443324877805150892267080467117547229124615195126670944349695884989067760463234399184238025923323213679887854992751997481801749225405423887653273426456494866242016724855904275264643130180287191560442517663931811782424709961658050677191315351875362037330813883930250925159973589202882777872000807148998043545133729411374668888338536569136101835871010940293889563638735732887468869627547610438497657388850266636368882524173327593916724024592298011914021086091299447093242616860806998794743115107119239047890644797509928236680574847985619918761109894655158951131322189624779687912632328536082433732964286107929358837768535044651992117801767843669673693492270874085203927790953700277785898109711346575966583406328152034589763284006478381587150938935858399023010061972345420196161243831268281494606550413329488402287602783204991483507328588699205304637627614442238227499967319530579539467832809477451035271951946120597273266883649869338156555211321987759661458522824430591796407716413076137281913778032555074002372455732353517949585646277703175119342665558034051214038604219306957490231892778201328014104850596058086819596438619545607639745909471085379311697984654616760528737878148000684037331174467846558188901822560446408693445201436721175382759146478315425231049551234604900229027808933862951449799508330593666444525141152107204148664808829872188526041643365865595757738293207391045138276728253878869388625930859761622082331752630891875773572505374747290631748781179490535711919493707720441338810416005835160055653364328751291864513546821859391562498505099893359297561099940701349536277123142148630735645456870356222469951010401802243513298537052143876554022410478924265530481342253902751185542223468715700788307174203650521849804519858493405770918322183927042260484059916245848754223788744253799078391753664441425149192447836573155392265092859742884743437621123517558098137742931938158375770911162726069829357748882814128633302936233157649486091336321853702922897378232646865964773948966123388058650609911899526728630656704679670299692231332130528928709564806020890799659515584756202232738130154535365908132916208173489947606980984192114367227010500624886978261270149188493348603540755738277098944721703208390715013848595957532438162418319578316461149985074728434933266924853852990078913885240032742397467676839253063624403017685907736724327100747044938897708067489545386262905329715652496115026736992729312351014610655424815765982266773323255660595712597848724700587598218514033320702564578254281198974876755604676283695093409956607628431408274555593866109927805229081158953225272724021219165528012666571733600638392051645782591273934387712541664254110387061637274830015475053940519504236528431201042726546212844650988755097072991562462421744095827678433913948296983090238721246407306824756915343282080573402951744721550805093864877510444967774727408086694314417617552238327973386958626375439867097526135300786020022170565555458405649757102431737084379269482201104521440002760329197020407456592037290696913235906689983772623337610425919415520514028743286385792958666279753611753427428501148516218963909716599269128948128702665190320849359562441989768534124253572484888292865866740640505784818160896450902941684389959668855219017446528997545876972148153396913505772540555249262815753815731684885110550129768456146456793214347080112635073488091861544879009397154928276313159552604074446173744280214337760929504845905134339042101460774968217330570408201938307380048819523824979589084444299686334976676022565120448836013984779658150171705480103613121043292995629131013142015104382476627775652398919572919777325159968109627394795954078426552299699439885788737817294213000478547836316664452866241861847846286054471827752331020324845358094352146461273778678068620115702761893983252670242979254336007607451305681217039613537872261856235635635933442112998756154811255558951532649922869470975380184854162912650226586550557812810684849103472386645484679569212057276136600667317165167991308411385990432671740816793046070132390569398342205414114742384487493526292351048899802716659100812278689377600862800428865267962100125109753201284232918960456982201638918264551280409682097911147465445312682331814423509951130673930016549350600554836521765454052214761051125763457030840725970135271554764886876687078355891650212931851927025971402884021734409858611337118666131328477478334867737066094129792743689741250273454602147584955732503957808849300649881104397707933559173694948149644343184649463592033270467146043413026093459413278437534603754035141125494693967493022250330391780661348155266050199829408775384955718328354413177773072306175971110639600167172220510445913701275488593617915879827012392737750804940885713078213775362739489029340885842599393673409234221966186373840162534708177803311612512578755265006795415029869114904723714266615834174124088239758906345153077067131953398549559510112818815166238403705191051617972500716628935954885773830587387847647615017207028949369565512554126941903136014916088034789549740242724573974881129012926502712567941518394899013674290262608587686602437431928059276587260581231786549591631018105133796036542793182390443100467267167490196341273063792659607919352431904805545833361486918788367215137159325323247702822988233764359061341175127663019439022368147220446806283187332800473074761957119974137926776659427791456918756782531222044372832919283980193991863740662056492934360568252122855841070161383613693853565243605084601317552763691186559076948948319601820399453536909967392355959844726955465271437671970288287417391885762355869053486452593322368555490610771974700167565458065627507332642901252748578697453700910739838019756922796116043408558242278986389559913253615326109831470402058498950440206335187857896099455520125729600414808560522634117773094209385484668821547237309458400152795977957167219844389395206677243957187840711353005669554166187163831517771325601607175249338126876282397186901813122810539706485102751227012682585110897128029337560728943142579608344953461559653260941857600736515947968282711071399392897526216264514395999513987031153518336299180875206477226305121885773222295258036851239951703109481039249928471772952346382705919703683348352339109023759419180544571510331386927596904307684191388424225153449207135566194368346513321888798839160611207425990613028030195793041225612192701505520802961380552996297319915012150700110075006094362363758243421817987644761467307736891687910950119946484129037081895619209930752766616865951188262647234488079269960002347418490706146413926244286762697171311337287142700583501676430274095460251642245062426760280803722269955168264425418257719186193039862621110786358712239397393171826155220371883410625226495423414823820218894956883227104954412584765072251807134918423002365096088021205201185733164726481619691787211328896109775409467201407312221028925747079392345826057295843383708118088823533462647680356088043174356296944292240453633295347172114569823174465761302291608502890312266304636280841082717310729530780903169527072415174881957703730495974718180562568926827937595306842216608214946470630230457075978445279360998563018121441633142472343448549422654759158188874375828748632629479233204638641562338072218718663170288568962646239528932077694593010525602397135288717523855414501084490930426477010526170186552360262506138844889922838884259889438660859858057049785992718248030609872563027345600554119815775881051795736869297042829846719998252500656622319832586502295865449993618179188625977310140250824738163554576968607159769538318214757099047098590758009030608779962927410881962516138496780604381165244327074174662455855780534083778862351932609723619087246725602928496768755820904968197066906238551191979394283528220303756099817610658447803167884584730604413344738501259435773664608944806877886653723959777511518883317389957976675340319015830124922349196229401116312605872155157479785616514868383278464922329969094083128118674747974315476526087868407070175659169859398154409531935773290531902092113319913432479897693707991090398871360527259241215325097359010336237126631246171982837742577507471799399708459386603523971110547910651760745253025101767347564671344159392517661709738187354676417253354365490236095042058754550619358503707759763512375574445343282495583715991104196049161184265328011888007605850586782954545956942241301122258381955594789988923517029870388413407298698349705477335057120101183667098426608595309126350753511640264348551444187486517445876609971454898113944591865052173494133897383004253800496380516823326426479735113960031325032934687440159952582228583601571359938356492694621575504376284883877688480997890823584187154592882042748386589900252625189770094858099377870135345622230444651231434651051933788654846721364891758314095435967073484352047621483174119545983969053519551604743899636854044296669405109895269717371809820680146543802794099233433670756907319978812273883444447611422326749150160611031617923184601840036987834888514648479853572960103203179553459458750628970916547412957055275851509685516029044995126436510564758539568476361135699884038037859772466167336539028462099680442986541446519851187869575621799857908725998557370432066904943495380424260554668978644123269926487624769594834947754959704163406798831987235038255514304092733614283263962925608652068135677883867510463557100251435144957339586125547985433938508688744746372095016262651390605883436955319527597102536479462506823292737131624168077237648343805457239555522320544946071368672779382711175304486773766981609340730011460264369801706732614148527378647772601822771907464934277386941277364996122015794083158801317084009594826501246074043237836518663138170120053241230634556763194733830674977798431404913890772867429732265440093874307928388731545571731432322241685168084314087334892481483249239001774579158819420088006835638706563143734641163828958020941943342047448536801598704778557439173202599629645258469869926717775937115750470273864169373264267601179061660644477735706609731471076414728384249434368548197593391757722059743162973849642045601667721823302350836038310491238954388058976094148510145484193553965109518311720397103061762436755090241417193919915036510848574411580223720100847436982841530480577994417321590395633985363618499489871611287645185920586191967937149930333859641845155288340431699632585444952468499131346437182729199595816470063894517698632358251856186084707486255848584850507089728212067526760761094510681928715972734633212496351627375675989840576943935900652859400831340015718883356420819692373177104278490601062739295765103824760773671619459962641149285652582903525714893849544835432178193943559260838011442094351214573140316951530548930893419295506877989645397151196566902915858139648674125535339958880499122746371208287447414241049479714945434727261366108131277038077895793869788117967079479150767375061077645182876972283829452667639262665937980909622622532622349161984146453595725678728133662476771691933959719929220618381360873004096967758033023983940973922479815923601190694936162601766607389346815761989863815837822956638122744392236264060169910777784680738202921233337970619493589216232938535306432392455692934840347792791646937791142033442997525548229111997343437405107482429457834228661741888188441892472609224873170878848382146786834295134314896842710522062880212944755203979426184598994454455880065372415680898846232160167776832588436578301197494986392202715151037276938285510385695702858767896368070776152288350705866738648852628427908455206273414075397756550543514945772295063070017021873825138755807675541601623058306064292949714028425867692541698892911774815515473135537454832035077971456589007615938197225772629999705416712539336621842865022249292616953694507790364914853176451362804626843357805019835792095335933489913330159720256780751424931507435738230541652335032925670592832997803929722577044128033706484905278486702897603456119142258334473053765673075107676007312984520883048739552016286198063867353950337474616577032869204008120270484896766231635176076651692973332479785809646398177100181495029222812013601840802885555501322932766363690479700801133035921268369678419861774592080390875359231661956018065226787844741637502146378390698414707909607208489670687790262627323825336351697276146660584934175127046531100711273453912359371087569928843536439783462642864025462389714382708312910926058846347533136256616239003170751259323588088933797133662039651079284380417046734078481160402085390895656118474263211344338798287630464448269844902838774033886503516792277069894803088211980514098539786673439116453282490711150292879423197682486811681020225101967708985822607459498000527823852888238359659019819438389013214623225260539431073177803642222128458378438714384349376501017351280615731587315788765414855203218386126356743901587168130493392998563104647736740201092998515161950376246223976834216700672413874011796375596836718311616434346022439827785096180719850188677624277847145743842181623967630697563873433450397901926305913256328709802340257185853256415947731037906367035910620491813451073810555756935712064131905900518650118396537157575366987162928175045326481489026846943366612653910689082541340237211047344056924179104509481720753335468499443881426700370723225994808128298982578221797820440512363388551673538371620771474998419077133168964492271021902582109647047921202557482946112638715696951695509758951165482125886128216668691540656636836752236894396831595804246532475340642208147346624368101988972479925384009661053720435077658586704217273322921480629029785866893561692507980358951746251338098376118573369255496699580381084775733591066712863704752630332207977875363577542340096900543617953585788601125592552966419275974355372480231921250503653808483447748696672450235762507823733141406757212387765836579573477537756063052232309521050689408007709285400548767144971735034150255859332557179895170825440565968093204953911508048957337494961089019338812812738308884246370534508097602385561156836733482221003147812115721621152556518642004265039189837262963673523889273639086243880501734761392384049926024008151729714735669241782745902658072625417687382909060866711781974173187484531862282197950607567365066351443201952630915003663857421818229276410544867922082225538152678756499257006737704656054956448006508127118769695992365471641585188267502893377999898157131277511891669163638244621542423467043050617041460201148910180385023727771598057786204611794572490430831215788695454767394611053281880613282771544867587483159319718712191118518832087683225256968363343226489187433354199147114327672027512999525337648429167006753485053613739893242762839343102905395343431945924924527669105642911766941641975735413813404225188511895521153625470760985956999448845086391825634465650806727685455057101368421893177489510696731397869960588695360540962629495525574358303441045986975589376633295871106702292067865047331189961396707969585284160835265434165288434423845523212664473734193606164703930515448931492420723221113248008369951642343031979673019938327472126990738598711063094076883925959451932620782593008729928443788932702942695434506859109864960609451970959833569340088480876752339650985563720429291094939211357572794819793897358345873057278831983013208358594602846759882272329739477104520568876835294142180057259825887113894069311556996600652984695450627969986466906243989921900209642925803142229633367369319325311933504155995708732674405370029065943582396565718967184320284455228943626932707538484791845294709755158210789725909114579284388018667021850457380676712178979604891578594897349142181521975148051216847032392020840824908618202453008417899197415953425664414461080964364572538620111138172901573993555573542760809136468642148476164351951429424910113089861467601521724874763857485303640693725333418095455809772552963592591265553983413667226476868131172974833182269727650725114497246290155501069886091990725107152606775551757916666242911827873252738675666229928386615428751611135279719312119375816746983907045951031438804041887154661125019249107495777157797798961042631244072969895373251567587675249473362162136034017644584423887711061410612094272549597228842283262448304366172648106468493398591371296713470670896818092390893648280733661149914137927597913197996973507738202846146423957768337855903522517609781318137434623466154395564260666832705493784942087049427606564544923646136426875214020826731851545989922151882954268842654510607463371985021415224940102728665473749294283086341312620722186478517421168042667416618473501992239140233653538057669091374494300785043576811436678982444962462756404252669298775347092539494799939471433824116316564416496724490674548014292963768340029003808315416713649850664385005893664009335105556425707727077394036238579818206421146395815121069089107475314980121613886495318602942920865004087161392182819725600099168858724084178592324282195523495999393989161515298912490436441118148375927994131636945123196365219630840788766908012012998946005532343400789787480222491871535211750443007261413452414017453693619332877227217436190439449083795539810044014065200594478656467166079985653626617849128531985463897814597708628568740411916619895870661449334487092703938302353363908418255152130393430284638241999707898546849319322761227579320569182085451982382458793165742651233248079755075094026327456420577004596963272024616302304592537559312161728040103076205376224860156723568539608855674609727489669290281398601251357981557026076440201134650150877787187735058200598260151976944755214241648651948228934386962790972497497878567228439754835619693816814725358318050380346065289852690454867068225019438681506305738433964747154856726781472215954591471139200824937727844810145876465717236608230027612857454266655169341132402565707068637475450889507072220007402057179226477563589670392078023671821018700895771197467274167634212377315324574951784356588484211629533614179164105302932329049601387674324243750025449050691426110834251889113348013741584795132702653660833968643378890115759768822207533889635531137125155058389084830516053218779924826033248804320161401553474545294345902968390155210625401188444929984338806295769227224322327197897249824583570965331240249596314994446406789536675415167068402377516847201626236164982114728906101289407869794566513169887750412753600490158364328893879154905553838392268356269115036053372639519826005201241930077285502797563128672862532320505988838596572700541517297405740810705720792663637905129967504052993416300496288198830710445035628861627358207237571849499356054572242057318823275715992931414714422376676286325544895789202679656417151922450591403006578041205314920455091933743376370357267527155671526376987011859562089831248068000322817291868952401840334385417789494052801706271856037769208785052004899946039748842709376944871738231616163295460128558646202374928900336994066834921690177066517957292436018436583183595507440558829632940409029546948831087825081571150106266736320097684635643581166683453065990569376251249575285456158842322040652067989600364087187555977431732856677124509413165802074127479597704357002395649157064197674610399759247659721409712124737930694720932696183179156673988659142067447274110699337681532271410050740999596989337484794164878064150616306002461220442527539136708742823545255340463986123690396411937092028157913702910639888640683184589132020724703220182194200354804332134569910195324651277529435519111998608662387413967511628011603152960539509886454592783139367581763766747428909955730029753087606455444895970397364941905028852833100832857216655157622640081894713394806371602039434513505115236114379387976005868302667934579195808154863054362967900075458067268243395697048375493616663659578987268967627859206736137064785044022796101469399881456278838760402892605746101981500125999730004222472232148321424355644927622838970391213155838072528842304459814930889069258151450190632369189533059850719060899056715184783398597656458872317432106968860862169331122464906847032949437244954025460131412411897234105357091018586360534482540316339332775444811186633099938166513000378730666496820321710601667385270519547944445092365081145668597117368052114545734509728628226518131467553513465483848899256414710226284437441316331787602494510824450193927622070237234866412289480878513471470270772695530708989814655636692178562518634490363102727068698442606697247275067616925015082838283235234861320615083682176179502480138664117223939673803075156962328892561155954679935459290504634869553487826163539623461444321556292395747845339841673994992435708026265005500731292111944155360040985005215211488718676575287605392160709574102639547438679567603769548297159820269193323940990628965202790654408994801937279566956025611792697426753210063485998401047196133789946366314888756407326293469633162843838708912849447620561400165497868390372385115550925485566958553622598481172753265052819739336516915288582231049919163104109563916497513835630150623416766700376441844096885530706742886537740904543305725844635602692832971773605727618485854871049191188684823832557138105638920004411087199439931800835795245712233338553527711700184244368401186372117791846997799884540511903482842874772844339730081930403142591585337640442147227779923768934725155193439273847528620865828253885302918234125480796559513462659093988045073829365967359273731969186009248153037897330570128989119467227840228306149723353089998610106216852582610152183488515353641488887038827800774468707533464906737591803572844399998814898047062117174094283335550568991982760811994226567393706488341162898144382578089806658466095873755539723603564137216909492413953075074744276708345096430751057738231934780144821658453216491860624745341436212859317560091534036372542620466313268593272044703732970519428224669249514964758203969641677345998079703097276235405078704635908134690004866148135956323275972027686845267287961887322034727161310247839463454690773425587741391654100086614216771139809022740919789747259795727887771307653854388372283311902570911290331399517191708294115048131685131800967548355042199461700278318466451945381807352633378069105400990630838960483471155409901794614860500940020465067282169346785350719115953993113656243387750741043130873737090646626421618714219435268740677044708101136159872255144290375536766990763722276265289536221835333556102268041082225960732777272748452106989634434870639987080468476471436212713793271452264494052964244660543480974162836058518992721182333689379581672149558705075377065896260808743314794723718348445661599675494790632835686823265241977649690205657190971915763535210664130266017792715763342306877205102579105872457624126435023593661123728307388700726664676145478710464964467164638966399819936017576224548126059671697971762629555133705487065080997336429900299396003405789592532609319240301572714947918673596233020459711490572855459822416396266368088602152551585377092446875331842407407455714983351835509411530233154493875609193246142015213109540841678836868585551383196778886920182814816428544781861789655576818349082187009056023496262006849162777522008707697259530287774717332213435278779084108806825894885309260785741262559547581694179255187893941919599182844262238500285948232537081291005079143656098651187673183533251842115772449286046739924915802085186807828993369501757274072565632614728567018489870764806874709984089408293188301063610936394475988706752451487431983005122071591884998276898783121309063847360276852847044272379453464210345999384188662023555309379304884479752746967259103542362733927992471796451133658774975713099420633407391768624146327738557052551170180377795125516866320311316226658540209790120222644667174142277502136371345092074178324947874978954668584424016778318325042220121100779891621440816461431473824692548251879188522519998618259854781316710652280842672358307695499626631148245972508346390388841542300991491744204229544564786740314234729430434265960265595205631902789122870161927671131568040452615757059438963441731385413969283413511784397793765063148463924628570652201512398262589815999970452952008290794871024240728459688987496662684428676351751848361946671657489064412170888091062528338619085233412106395438698102582711182420842655322943007843799477404944203671362768714545777489862806334194509686218897702380266500519832115110605651385557914860606673627543349389070498309496669500435727289353829525859295818399191048481516813604576152954200799571697574041174710572127652281129081060663246402671220576007192522601698292822720535512914638226957714667475718013253677667112832111227987685517732825761324594902204018208440657434294395196846074466019089006858960158486755782660011471483498669686593389726871339005994527183617121721004765908222344494959254360731922946747593548531746030941197117067892025902911114338469605667252117972499198007558413463955986247486443625792819410427987238978214796730036213821208267365922792706531051486656697939267567171572361804677509895547504483930088699939023760894188753473023477813651611712168573101831900864583413514892602522216159998988475693603312784757696094627158779054551328359747702083019896036779279540393487275364320637866455066378964810283047407998318055819767891839754815425511232957731389318697312133637414620655324691001872758316255479547859231532550862527743083224541601686862017287064304611367808293803327573129511086459739510814405449968423349181958138149664528467538777532187656348579541048505508078082839410286763710630886691247549914655711827449084601456299564552820646493069906443670936923773955523091483326525167172789253645018889272182533220074993727922040447504469246448847918545024452767120311671049109590508674634821322994765618399231769543286533390295002784103322095556615082581052411774738306540024986014243966034927627353490204386153780715711178021495333878551430456887833252170933091030542379736064610593882516557864523215931683189769504650312662139116724756622915876979525049599501294681259495833027435794786766347001366393064873692692725103085682647102859953367286303267520323910813300467151081640628318519629237409635807047272860624023864068199930604607114672946828594425064971766568664373830415968493480672193875170053784009339234675189605838097904435750848566972408671099029340007486340924226717402052448341984243693659603706758987041852572978992366001266565853441653474199025839206348909222697477451835212414705863823276957476188084111895208700886310833076164894661939203206867562406612439034604783688452101664765247094915547849399457544835607840722942813840803868517672381067447020519344041169378504726231663989657582331368473899320185888436807233033933363890286635460340653708425049408016731546730830320068018922491146248002773276742941643171559261841330780944341489020453820673631137025986067573814361033727581099394533965216273821944549638522291465170828952344151444496268051862206745294993455993906219700527641534266147858987989844652551762099717825218388290186162837038005284079331073295671101601208408952045106471463380246681667740203106663068111471509589128624152175534447244765644086473376908437092854867282536023097832716086076930444489354461242680949215988150433306750120459316840119207036356044291873083484891733454562159316363548124830967286907147197486424009537710518519640706148670848695528285549165195185784324342922679304423103676375354812323986231463410066517023909331236418644450852350225642051809479798370056721586450735849140733667800621083202959317251303063258043707905376802440863144483003909568716812323466458401700900914050531018422376365666678456008201964190623522356504682193291839040882685962476637900736306516333405955121011938428531696838226273442283944241339601746820543285297660616502222188727003643751309765269125432157978389684703022756503538479503728803014307560688581450905425005527101472876625141427695076877281665130110126313586286087162672907509446969156214714849214231104658694342546149612589957036810724303258208765462439421754299446949604699643932809066187024831573571959330115432135690749703316831500704964279265351809219839230348378337798058533585182798270749434776148202510071257077999755589854755878562913325356467138809024016636368155039128550366740545401867229977270584233141984478637585575763193824512136080594180223256275873822125119914323372926259314634981267321324234980658743803338870205446186035767889047332176409879402509312460427223361502970400318879282571735758436920288637945246156052435889480118992437746991450867294991496914793405837780516421953252098416079017087521866009901024766507167654981993026908862694277963826660134229681404879670612158986924569507216683775417893970466939054111791314567342206171501986179535066303054034074607611290123597569759463435359416463906863665592373019004684702306892996070465913107449579445130579531980592980144943007648976763291923009495167040325084004990744874910389935282664289116137513782846800689888272071674746423419922802964473307779705411629476054960193064840530076301901359255523818676280967027739601622736849815429031789565328586008719010495612940199185917201442425300785969955000258986248160477040631895083746208647446178675714764422275628973648009569389532390709586861872913934086522140601817801693745465390718916252903774964391904962873734894716030461037194543473832260481843748047681859003841198006824705675457557061171984297175649064922975449456509108832491800579481077080778513514050812376815529046648380861870100595854714126243983386949737576898361033985707193956844871068984514452641827861453927751341213068398125002220612304467824751091084698722362712374420769266270285470232071585388596661273816393374506926050819782640144699389985197893445981147282256999699548430304319542347275125664223142941876629587380170769128287291538327231220000156365226072713265918098377123404327134162284082634639598880444972460230440053070923369277602564881181725988246315883418101316979190437821042327615233479295321388793772026847810762807789835025115663598610580659961165360566638121233526141483130551631414587311599187837609791738484317185453882839317847569264823942420293200092791416874842950504357770440229004480891108679249803812170748955616087717069838261651170413637534809608854176694280853779517404964878919325885726077576639626610080300907569762521813262920039460452689339303849298289361928368763983294736972653841594057678781357192221688068780617595510928519804933286369607251930490639869306180477987381865983496034954144835377019617302239891056637721471194963912503463996047340064090341949424857365548764521842127514749053067786767422072965207060579581567998307265228549058753968960691039517190020279318163197729624006559923396953409264710105118995094170122239579021345197007764351010882174817620117747316931535613298851051588477379649836374959503366492180038303925943483869695100584402636561415069276555818824274997100437950490454230338151639780219802590235839836687714624200152625305177214421993225836280671341464059358287314111172391143553883073792780210381269527069906921011100054069281347546354685392406527124921625483746011779230744746647568700783095488262689100379558713858491847384498697744654279109007724750381589762331229070442854693104390606757043207982886845382939840482925499526979790017795049742765889935921684090967890439214232140653681158667664472504444420203636229010664252769802028954781779774170384423542191984784580453244039668797816062596915593953361488331439024507702517794545649966011597254604362665999980921380473812162486317579046322432694383051161287128421939806211548546032354729352829645795659929398567252078412629126910853956381694786411802827977027516415667490021214014697472679087374779770501810876111101134265868005505735781810323339715666902047941514742375711683759904390602785824260274438153245761220702114355169658064337542991007038582801980824465622417791657530353633163579848450865670809937336379215052688392028897458860097908759582809200312311229819871263826122312125868704104777108539634602788395856839620484153899722817084489667169923719237705596096058347883034148675116860534002123013269044585591215039620038945435674364581202588866898238396621074769222703809910819886408778333997061862987496165536729058965804397674550708156950945767707563436794672546645624088624796248823388971232263564174598312362045117572580109724177516929470586784817100224351368556462814965230588532506333435298418811248821159494504588460977120184826432446510025138215072354409152926288649784832037337848295664300852224812730352742879093900833070045409065814422404913335890802116272904258260653187992197263264497524818259639073672912181575535733228050578704724162316479548069578215306376448867125110177980014439642130284729951704705418522634034355219877671578468037833413657592553498200032439654478128402494164104501954964112240263439743680068631311328582813216402135648590899493013722731311964801536626397634346942787057989405698359640810835311234950350018755343370358758359896848599701577581499630274994514805767835590486144313412842441282236373579475531286847377012356450452251303592040262004869051859772866296428416601611745424942619174838587605236709458269362857370929886083098801553963075147347203069102401625727108421304604619686669794238939270393691210305717681664787227377443535957125279720958263521833156459025445459982021850340189603110823783060389834597603943087854688786050167775338636267280360369035618472013151009658274840948309305008949521664030281845273649233345857284042555385202594216650253304137390292281232867176260237780078332349713426880985552625288064508319858801755615106987385625096439621818227771682030123626859834927627103095352254579424728995315955392900670139103813100738765378138888333478774793888077892937079018054090239722291095723657171423230763803029230471943985204726160063395115503000837069896920428391599695375049902902046639953327137854466990670019447290290685099213907793536374007313290227184486270781484314267352740517959994111593898410597435098729373211987971785556353783699379498940354736417292478396848111099246169911120364620145768576077681071847052382229241049478475619569512661204167810301961922196198874539438082460522136562826233128787760487685636590925929834054344017558461305901981089434520615647759707186434646640992529452681469020725000671737139478023311252816326981144954548327739503407537284796500871091237971936142267915961024684564735689408098605258979378201864615413188825338441523530623897942456388829696505746423628756570410590823865933714059036507387710155421158680269748380317595241578506986228072451145816892197649852724941351623410997794554914887632555666111989734320144859698064059677897762609121993607576021256571799317832612917860672859188593828251894204731431213922693411877759430423270139163114836645997533993118521671180431356530464389760025539989886263396341329435760705761326969161355020557545584344710742044443418771322724318294497330128600408996900455184262387694461325396183047462977638626561369182716733097297597515630510739867580378640450194039273592371971882736874319951769610851779646243588383414781453738302356576016052941490628993932052183797292088335323143898432879950947351787447294771550915736986796053013000706406292551841168243169435857921298462156334835050529343540742345470427319143016407528051690696596745407362589730912327298288345823376844753127580444313944127352246655330767571649003757791595139588185001342762658334586404937001848589477245683251381401864771897993596151275711217345991101089244991512808190096177107188884815779570618415680102014176621664218431790080521585773444240729157469603492853943708753302516909240026906649326626836982427013405821934675741743725991814189720013810703278919304497025629877570406551240197150690658635581244231753021012649128843857413806717404055627258671518122305619357817723413135149185047414109731279343774630993264832973549925316565059793916028071970239075822851562931762859407318442897199449085972332476590631580115715348134766015029979624862449976238038414662037578318986503307804142617453392446802793065095280489716930962198159336791282682796695171470087099009999657138763269039605191901305747282559769657064853072218413874524520021307168134583538343863199015577761058173178420462000563054395712873407306390004474867275434986549658822879134694317895678843925357087961139271616675091777098962717329650226020793305524533838259850122249823042489847983274538098554756808507683403330559597490290572702862135667528854600137859554764113773455272867554902584456081200616846049212021670323320265759508362098125916985531271983601598654045973113506039058891030102578221586262188269904916165995273362537860269819842545399095847178697439105680447579426285354456719899003381002233338365871334764739291085818274299031824634966053351750775715344727455236691366560942727675091425509458459825571260302556135697827682315094767609620842238244912888314373449541674992859498373675288251869395897907850917000184541594515770840019657015021751910056938134641662429375938289388028527889159377963389750379544497062749291862065831459116184671543165737385011507952494549925897390170340803250512747028555950304271060911303001039946432236177640095235944396669842389465877093104006143748455697804569527168890072791180711643664088989640982920706503531113130970247178308237911902533759706831838396323071396569566703071645037726849372445623546810384005589686331455660119831679470438659825004638230197692746993005244662568706837621657326876934315553818520779181328630391021129528648606004686359584147671439555035810535871541921609458194477143433306294237850096071790008199143568539099080548102844176295208997446216599021372832627495021099292711511343800732778440223082973203166765277207478219619555305808820333903315515450262544219155527985203572199277043227314015393449974015758908671880478021584161360601698364290017581514901838895835354645567218537351556556242361414415123028486646656450592344066965405309966003590550998566482417525640701854646997350047406055641857850768588896908273259641882149469770840099900733549644184484267169622826073186542369908063118385578199501989527142211752817919577196059825085040067897155302664427691598140782198054607686254679240952366595506590283218224088886638928455359004964355678529473464405608227540790637368973871291559123154240435607382763352699441137393051312884700474738312269417505164436036636235040358355459366957418623218966954190660861413926156140597401301565641782550729114970602330828521691023250706557076231451736663937833255664757440244245817719689157174299758564970247174058223990163544534221199910239267125523649835943245012513803021189454362529681671354932382037647905184004786618058579612897539289591586497597755649273119981662037143350311855923771797852937335839195973369439676649752268587783869689491650940285268543307267873785072369539358810831223307915436208447786887814223273668556695992707642976477139115013434280885338137530143237065813849017282512344614172703225124391633830200602861658533460578782317158639261470471467639033711076706662452063239625723598987659712243912838659905305502168781042853243045939860145862836240756119587427406355103046252624407125382573085182355145311796243790137665046976797729786301124723499901627186582289736378867926286969530069646890605544931641502042425115711965069842298016590280782975791726667479581517530136099211440583872707284028333702697869191624949018273193856869241795073210986373225529781514290261760280040002582850273325878675987348434570336802892605196461724178313428745525750351138090534543550860309519895415223068395396342492324308821103496008634586744203550032592335650481055491952840835119257134196836067761866643060895126125641232579348158969863829466126994800142730127133108971516230630790413103649353332323976882813855407978227895602590309027456947653771273691290005047978761980576710546126358194074771229141276249241510702258097899353941161054564206800335980098409769088040752689225404843676395616724969839781618504916348782542073859435432038683164234551399013765479978099534838701560013751981321428815527750189667069569290853043563177558002136515570365040566637720554819216946725863615804282009260255619739904701965080547126870149638626825682848392176096755630770327934357257809260111784543792189461415630808882180611920558492006106278209604858211629080067850821277521687973634551854603581597447055286801333477198750708694886482159900066894689092786748581180384945439156429996185872557547977401219805159132912017899247647700670420565626187475494781053025802350823962691796223510707519023741186838606025142629411439568559338409649692049129727195322573166581966019051583376608398544459867941202375229679226627157575881146203382336294368117169303932137642957525988957562772310345210814322523307474074643212223344375003692570967703227542456992897754431695697596572065709989059147666522494571433213606251163404186586804651808816284446920198217416823280978832223087184634326998324428304991829893803662301691226839453937486925742896111015666222506441181946396411111499769655090222943544715624133076782810534140817930419650383857578147563394308513428820184060159638326813261789496742403270422638127365761541172224226721145610509518832982874707173652918573534524368738464902814196681071022000223949381971425708868811920407939416874602182511817232864841564863312090320823886057318280725516396346716588626431060901025257486891927368788329365926986971548010772491121827770920412015503546137024264318179729884262406421010253001961776135435235924174833452453506439654047872047618934441601290187816891696436697097317263393833379302068369306364365745226420614803132795844969590190892758847115601186259500013059178889373762666195179302959445246893383343689055993890034638752767504496876971441553946709383746417477715733903867508432139052818931408655693274835148912029101630247255261250910517295084411286859099939311455685130765770519465074207848091352691902742435321145097288140082651695619059052319362088883825387185409980225991216731477134888156407963082868806910768135348190928391310906171670450142731429958253289241664773832121356364008190984009871299392704898151795215279316511155307477989170242519009396428821024826756559504404200736407959903171075717015785605052327968436572466163899011157019864062032254481186986827161697545965387225248958906678723738123247017753507945690812906150306713573621702279553500231768583881942421102345636671324798761496864446874445310405559960865718091931292673484853788812010728834540167453319646983302417157971943374616114567611990418448494033298618512350044806106494278579138563157990704899296253470714834861949952994516735251579929922555249184809325912833276343563433992177940084493820400049588011820513261254004076669191905287326704041306398374852180002268045592452941389296707110757488587703465863631626977201602411598492583559545355178787209388285947896855695184750682466622247365039539945990888414298807717658361868936702527466002610312696133297279203120087333553708797872417233503906789243613632605287089690726129142166975493435066442781327233434494665979601060728432877999760931724750800467421681756213156766591683906659430409128224740195220965844149496446646503474035917398170852854632538369540501250938667982984016362573844277960585990850756256868108399399271826071604429158986659407037814794270012993099907258162543643642677329958281181540381436704756457334406087943996402633820148621172995269464509874009428399082161771540241588012969784751754832402626437924719404086445463248564708485831188453382982955074878274925814494821866109277358150662158254035303073497111353224167448427941644133281258621619051775713764807609842099183900959629978134116235281123980369603247815590454631469087831219268968283620511158161480070643530577332316780576319895958522330309359415370346639644596124108636487007492370620984034781713466355536240477728992028270988327922854954521622938430860415988818513038118256577797979908335762965148414543214349325882426471442100296708636929955504701419213269008771085717428031463700477194817700458131649264769527894094532204593875861480222311766154182471670820604661684624187936085780663202305839500297132444008987851784082649060872848545720688075847595830183843038366089399406423160909310763731577578941725799982439865937610800625762129907999337594805983644287564914712813163346035172331693310726683595866412589325573249690396271954374853051410141203220726157088914881820649859621469649663424726389456616696200844657582576783299598758072404948364833377162970522199221744663590321398023485407311361934893382222864347273252529601235665292842697124028404158381740274928177118646950430945162375683009593236693858205081949763915576098777330071299507270974048830258965039510659388507670001009646177409159869588054074861489874280763442635829681770650045781393827219575664015167292506438239781078213820868580145542450191766693293062215071413427523138079726942411506022387483507220567746470668399765604705759203337928054077759963887256141743995667093833049736830008971952490263111877606948130913000610216060762532053318423435507463902254803389246737887656533948207092730254565841563572701578571002193479667834497881641509272227669936611815762739990738388471179719715524210288212341196970372577504895059727503139771524183344207151290046086897623931655012994378107081711866966293455043559831823987400586991078839653739868934470251443226319268147830314692312659092211207740056211980227193865630896290598029818597989234480897181918569687626817979087010937238261754345531095762878458538403413371753301065655696303741714624828325127776597259475753655892349699234433521091772036790680882727539873612297318758225053057612170592138497130061521364850880918838533405608741894945774001542339424794476662837728230489493728974019985481072807511161357344961757694674426883266732472025078560866725785946994812016846277979635601682063701767512249081471474174528754694254130635930359839715514704688787169128059175595549713778137861294023995015127259964455648878840978173393710523902043714092837817980538141999890309535412572483925060052087649906012172172329454124337614728548707254208410801594472492339793529410018481475291043564987074069969737741860588305577337688541620198608124550675791671842937040791756890244387374391486546601217350314037133862438893791297985472646188073824617335599316650156575657533638189940779508907323049542982498824580654514770150421560158278671419035080548329819192846424190578245513554313435143593357449275512766950917315673627923332950436886059446972031389267158200371444436448834943340875887801187710023376886033362000692569876237047552824920704182309615689409572623424983128856792302978225988640051471277503898252344777805536565934679446259509404882514313075575677625185313121812870326877217288149391300888467961222994652964745759950481195906842074376539434530981551492925211668647812933186296261026375461715910261724681719564483135818502844585047397674998183019023779715003881515323191456880781106540278301897502064096241783510104278118456018029247384184497776413872264493345493021328064162211843847827522023907096731381726876930610679447995145566287828921345122370381835137331777908865144492294490656033340420347019319466498588179305945705290653132696527563611805888208651806327988120406412879629387030854973638137117172940524890206095647706955072924020710718231702878936601798834823181964044014086558132787887016205907800224815963576834295151474162674417116066994306067452866638521404689974408145770424886473291132010788334413808486099643858106008826187980947388416347313461764929833812368216625813209660424691151927435005214888467063395785768495685260323025543481141209503448381544631869378794264240238642597528382936909660430961058982753060024728012728342553629934127377416515550110883880027523287969867734803841378649921989734426548797121658205194511429014797204010703811103570217334878760799227883336879599005903978724135434448188133363038381822627853799312749468931376179497624469206153360911253241036280507621742901060475861914924309127063184417546610276315568526288147741988539023319115981398437874175106399586422640209385302486489904141531401217176996728822625547230770892913934814900253704855396661376325266530117098023909975986764396428694675388170382272064700236209109278656768472862364931302595457666431435352435054936174032038378875480785870676933787528701448201118227219848701708759388652093188955649050314776786450796700872026170297904077462507267314022870419709572052122465500788328807967057975057906658082606041371270675896997475768359595020141353992041974476547847406387769528543784102792314175008104272118158273553454018381156467022260872366621498481462257181118418899280195834376648832489675260305268133353305830137267355826241599152037404384358551352488750393489088810575053034865298087349324512006218726358288271814408529131133321530882747871646445685770253578093206057431862132904118560515094405284949972295777559696427492028386827597182894096570666333151747013130591486043240955217471960479499679745283354518469615965623540651801548174170322871444781710380234863238425192826882505320922694714440210703873087377263605190764545360313862573887803606165587908600143392968512707451755738072119881717782934939120758260525694045861596321589229413509725436852738518484511607090942508402296894223602323018778035578349217605768734746910570773155355876328382160761487759554952776596540778178571582427296473101500135651679018789141748859984437088890933627745574134408315100546569906975838965567426240936669667799129214154294954084640482922177625175493822402792498848858043280102756024312556991022350024927614670162237565982237832682473867183561825469774675242714348239769203151468158593845984523081769834714075876544757888279949873822270510770654745917559154767794685932268347697811842209273398021795454194047323482296131946120669707494653659028737915682996485667165117343289232005092548857844426673582578385706868792718831511454283499247694261387322037502043109504632053325460522087288464841371762505573297118021707615636456348644718314771760215482650191430680522017877891749710981357160158944128527012221800302796707544268944758791607020869727560690091895661677744515680150822860166929596501774243646549790973329438649310880013384624960447721813798998791942071467501927140363797368691599862695923874323775029678647651078997654587112872085705773321266627374161169294737098041398241510937234437704621016533904793312207760389512301470186548028696965562170754683116782926466429740963030199736779050159745388615314173705010033722937302199285887929010244100722032302674850982888111404687329961845430916826813556552051691643424910941985556031903143960318030348759073391541201569657116804519976906930916052581270030349148043393910014303362586668030990725898409950735841557380580069617528906185476202665050290473793162828090926235039956177703251038282139210408428879884552776895133955159313149384889510609188424243593227378689157100782799154635882437930095394138618122504809101123994937441854796108341837940908813811341007692184646012669160591188681955743760453813660782733055894230900058048801087322582562931301139450399265464244542712250741269699218685309960431424701583898554264185490451398428888503051467371448265458104434761013752926709973996794781796319570493218818806553434502250323092618858239435687019485392698224176217757126941738982021411682431159146933986925962450135615126985560190049229446327880243808903392457483606250837892363734381697484857689287830404534030490498423840402826786310245774249494874326668177078809590578823859516562976477902632583052851858478804172729689049876787028946588355560968456162154016215658597304217634901354085182455477795906266752857323636545079584672499097212268120165224689732402961563167382154920821587988415829147468975202243002709315379664814944842948479542955741663070011259629550392806958324046761923811531564838651807118378229019954661872790084145915086595454122238519849467817062233616300412899548053934192960430305324512050297130303480476495444899031815168817901574270884366356323998945355863162939611921511176935163725223401025114050874716533714104669755271240084061911204566851290716567868446325570795121761644928653716372179610601046073101715818498575789030110158855013702572493192073347364091845110977486067662549370421158200367107933425850939297608799222449411866815747863031680187855676212319504748326094957315517413780544182308477987650986479915157699859650488328398344458936754023191652808267153014886824233389702793328388878130616335872996266555626695426674708488339250364530840851681503621760279034991625151051964167981579246201531006160774913979900082185043102468823030823182230658822211191728589023231949712824305767748932244622272106570697906355079005463648323015495074591174225083655596077690272314213632726041074445124536956986929833544183029822847165275517850407911228500190182331454157134939113048710524833782457496866244955228442793898931578917059707333150722296734260579178425622049035437315681729763616274275401100714897535480633632239635060999276597691459501788622220756663295377116297865200985868138284115846303481725753107786167644626261426020446088006914203660018633672343080436635762937145577207743451003850785615885659477864448004271631527751608399138219610720972282831234757257200925661881279331703739523660344978290303137716050585962158599929819537856386308017824387634171692044476775856571628559880604888499318938948570637757671011035465322753782625347586816489339383481098336793559915532818804948742569222672334717457592023228503201269065540635901935494674735605301391958743809040371338511763093331830316501913962881127911162380509801241157498627276432283544793419668442390368365287715459967207211228853825365592003942577860454672161933890446891008819399279584180872679380953431025156634154524484085264396614008189520450138996080088954871985392980206432481655127664333134194914088533095607072384136269294791117906604362805616688075260244325035622432894436354159123882959153524113486266220322808101185022268888982843458148125763632574003580127015977194240540467844766922777965404076053605620586264554039172770233067052768729922117321741599761700440616160130902778270437626387163356608098743908429311340663212629516737517523743632207158967462165072541880294686843109117105711165045222253857743198041013228849129308484255746999599881241940171733350333261664285553258084880621485999329967832321129534953113457590142433043598768056711690661595123897638044892404052345046425827958390928323052854995573458001275880903320128680400932651577491963332372213283120729309975130754260000121249553492226882438791883928840920526118797926848709711387669121893058265401477621581529138369608380384716119691370028508397045614268127739724192409825649332771502962568624159129951647955539268196439618905133389457766495902807907986242802500270967629960528905063020658434436719652664044908910559857504032267370310392702761097898311747089800833262198236427334331644508631444664946375495465856437099388398867214244859027435127009251615439036300668683542798904369796858857584608526650470352222375366728369995339136023166296495154089463712807782100454627748490393037993048165962809172441982803976224084065069066687805293530911067194296497766509080337707416793248055906838367528353116098367818089899297000258190870922122685438599313798518318676529660293780979453538989447344811694365976199410038899709991365661604194798956656805949040663238373578532797339964978473152449741018386953975798741740067432920012943221153627643519068245931727898412404052907032068015449347246687848357731942871638609558835959806300804662494124700030589755081498037086109730600576869147379848193330673267983300840871756034464153503254689803246478848251945496522556452083814672167271098889684502303479933794582544890167001836191538555851656810924080275084700927489599014298362681923089223573559922494159351035355057632521931816579511420868012992595677060216805839757482511002354433064457903754876458193968971685684894335097413018315181761831396195137718087485331081036621279894568997902865086633568899741938164060330521331560229963334125409939873704148054309903420957608283131483453897136873770053772065810489781358937652850090664261477608842159337665609106547498675749399509720936372407270479939166561680426259440655568591593313837009824179213613596131347899098497549609931914671009169801731192201319877311775219852030240078411653385731370232978491663142223382373761084288734608187655256525300200923674004008682596316727289576465521126194064491922296338826363361028073720044009524809484870217767793921607405175970541360671784747510449226705487248329565945316894194113272897412799555656558216131840566291871305457128154441089468368036437921406624307758413580118717024085919450693074714946897679982036554183068057256054206399944834425664133534645002660549695407144491228118733043560115466575189280714034327901764022222512677862833630336905028966759934955633754098769862982909141734914600260207299664756940170269444748097759550319752756885361395288151173152043258157331049973792233428439249523453705016403354251727669699019950475213982827341907166090989685045549660908147018340105976890817950179642572835679742619473139496693102449390451451322400972681839886705304524263705180343686777919857891899979703873455883624391272546623792637537969943954841326954263029677589762225501172338653374969098304967863018418826735103864330715797521583435577059394718643256408081733565348067766928943590473024809109020687449297748758588530909944330529720436362967409144742202933648333990272713607866014931388758430203031878867255110851513105288628779793123534276528470070820756067358563928326050188145044177150205348261404200790810323737330281398098402684889762680292725500311221730870760945493665464998287452456931959932173015763999121544400179690736801934230490926482683933541926729037540312500422075087872782718565399639406173062384891205079014747727804278208892415816903335753898413478274820821858155768093773676388396846505226324875575947205246648740344947060210972477001888005155217839945617467207824686510011787818253759443324167623902422074442653828551598518988967892011434418428562036733341285711378939441882879841263320143548405834797493133186813355254440638438474580281735950268690855378201929716912873879878641097338399520422533077646105305964072011702528826631387683214243083265183366396002200861082994748324329013268180778594089243565033771637161275501520469118825270345761905656378857171216640191096554678188372273437820084091199973072786459442487911635440517766092106909634653426129136683540136652961189901987369298700884253236814997794304014932726450892213224255167004902130971895118188736571669659066099092929208497219188732774140478966744058441613713142560852113417669357145348162238809605039964741683419209443918575028440920294549058832032194632185241410979481873632922235872548338566464541397176102319256136310398088938009603410623853360710784251641308913366724101409195005619654811121449586917205832682468720176900176515084459482688561017178166418540646521240569518581984302823032883980302308493269562662797344106913934833212353179136427025505837296134880921167632730923618566302258517880784604636966584167911764947120261773478151372637580349399599379507853965949647942861946626353368700829869112212565618848169650423502701422326153417727732492065355129713973030731226236231522781553238773098637459430367842294833418884542957722583074841866783198533126487204033573587767067907577389009305947911199357417547448363013985279048083019605148583683447885301056177210289183432472696379541758311181907012194542184413340663768934419681213922144829845065544702142498358242998228689380207404185535073459292897458803261658436452683629650925983342654010082342389169207152750491788802893437542987266113391567919843883308112785030217726430504352512404453744481542783506221944892727081657096047997302860069210947528562390510271501687240768801877161017797810515164960140978867640200517169241711991188129963241379875098085246935959527147759412384704251981590021305406680344893580066964082132133976476937367591172027239882876927796890548465404022906324641773323629761814298037243548251865404541315023995271834246142916819086043201226339997432965768565443413722339268968172353561154487880882337684263460650915290664918512174571132872261313753651051699816378651174285538343579936963577284101818804595792820900400073117491143885053188282433040514741461450603463810705356262001755887633556084809146095531875214663296465672699406246007864321998724764510024112828310938964676970466714089329534105190621036202810314910679586690572036171203058953388078348046784876843293100495614860525438183734475919670402379760122395480065136429603899729346193979062957998997483941880602786315006410947917239140802412970147238454837237558679243517229075994499121876144867504158927977100740051928210683312238429045145728285453929380840938537881043151402374184071144435887612092814192426364618632679392631159327412029985838514516234199515453184157971404914556141326013535946103998134600357411247874377719177242006048779050939385800724487886165544268568325347766250277310720392055192165230217327432137421166351249282465183689343528800920950023860930839002131783162867769657506407878624391752551366541540202590878792094386235658424313652727393164305352763997086788639262381052209660417800494118591092998640984651060691082399914706983890191859476190729093107509974672927953809401323752292220419617620781180714918048064525320998677471948403713264720223079940662791896932647844162743808531746640491751621428400002751967449323684696181365631096008337363420450724569120787776679391219378947952398729534067495606772613013396147765503159527189880148331666420068485231125416865008058437888715609007608575300716940809674011581538628985408217276034185903831300356285613264674208812243432012048128530569978184698493320086714517745488872220838821728870615582478920544576554313117742832208004006909209518299298636879449349613550838506075991306380848576817666412796323500663017011502495888776613950243354940413976412742647102971373323026505970520293566687077642487924133324347797342802663821683690186014494826808301578647275350388057863303612837977736947393606802483133833050336578283556442397538606127334979009326865877267420774337097486558550686005355504307257097271535263917039560733725288255599619215265073864987252985387207410125784436950748027393286049086116609975931246064018289731150259231817970427309259403705575121072966808764855898554626774538296899832029347354355881738172998499439854305160608421963195012502485092168621005547989799876758559633825649627507552635429857176540814302297802782420249450396136673759295332922801039920682596626680362161212932001862005426211317131570311197888461241134494442145872620949085410000374977594056389033284504691650901379732292198179158693752724596685613172685292061458115745728876941962375895594656095226357287899421168674758127081006110045040248426421620332816992394917751244677531529597265098901793154716648715150791355683386693023558873969158043175341692981824238102678477550920778943634547334423877645224915028936440407587457032750299042853820989835522466765375487769819053096475103051900957519110844015768955463511153019464916059228640417786340101511383396356149501867477620455690129962458141314981108287911594802544335252885581366791448183644206819791306361850966803688915674141094931729094772808239990366531405665958978741512980728898348186843015386968100112591517998421823118971536333306726664659631684801246262029311183458626947205808552597697682672632596523913752652626705665381550374725155387978317442676014770225802000995381012569916573683600032862579633539194878050180626633147870683517572478689750411831481911624949718539035031729737827477628437061518008485828261380571615205846797481341555384905495567914923453100509117534508479424325767697151208644516345768560974438201386393432782945294000019514138922755869314417502978324033862593640114622423777003715888009626837655556036383128212740066431564238886794278318425884249776899649445636865888355749678227159551394045738678230353497491593707171899128677331316148195583529480958993535392809126410863561430524824281896634558111859497124786794218812676837015568494800097122647921922545762802597583997415632977417491458065365396038512694366615238662767529662406443799756372026494004382974186120209883012184980292052734802228116389065268354823418495276975768629772592219929039789951915597118933394947163851606115684030690773391125525985901165377176312519927411840125867930434997984061410435375258937986017989404771062715973529945280466308940282454284349182420252777713777824410051396971899265103953284612469243419626137739332477739846631264453651925679351821615039103999965723673715299903130988737405558981447051609814111915498859024559724009525696511574102331777394957938277288005545123095305599140665763120735515687697765362865334658100413347688837541622718851833432771059817666065859783089515787483199452640614175983527419992648756472903063058124678076118303928463001880198463568726586458000789973073912330662260736722526017723499203789903548988386118543362220729399504636002372957410943764372276133493288262039131031354990514850823750755175038791347491022202080888358496153667823261338831046280530238094048386187312068616345791581846002463764847192723095580514849411450671336764107972501291603067369106016519898987250662474952628352340074496384969487402415351719550711433612013947021408121652083225846781819403557340435112126627345977001744958029825456733799229616740129407910340650743473960006976793937625924417991147978586566416649612234938190915365743193307696548380532123546319782235301434132294881637058144735677507443230739836606945033888261716314630410702655596670588089647250946240763756403082698820808348304879273976905462840973243253286961445674151678197159523030315949167225456386016474948718850945313006678371740593577183985618691704822039570165998150442882618814993015959289955015059787205036070096214106593511957730963743948995320355748249669343921491281426425870794327909221847563041503489058787848289998309838504288694296724793245916374447410236241493090612519414796713223474624753490167525945851591400312275552717845038232342446068806632264117808240758357792052170404043982175854508631068701984033653350819507592396320583626794638748597412424384819726997006381225125849104062132954428712748234751023726561394196542919976729299999193435208014871425720640091231918957260840626512541147597605173637837141322612235414361417621806673434236903377494556657855740952649568381176234682380883296071676378340781709168973698775514360521350888513881799470612969889269530072402138716320561771142618090203724706901723535314030293867875581834736647027296570901263360244941427616126791824187198011818370039068879680880734707855044626203197695682123589150326693721968568642776871425254958220018960339740921347523444353970145198777419233980627448123620880026733250965011815629750069689200457904301840397684971197777187039516156307583134202925638717397134526101306150043381099813538604283955520838638615233797506561344393960701384131254821414714138188881106267102255804104702837064234488122925972184234142419141901492763084140542896576120968304224257633711396054664025235243828397138316895061994419011621653661606017555285108848258486743602504420473901242326720350041507834091292419305073158928451252233097947909785903551818085595023892643474169048211029350547696307002249696705325933064028022097898505822982209839241365079869400973834242310119716252236651300017470366595234212791460405807061252918776938918170880129547412034259639499606467733529922389139649742602940130154471851800996476183202140481364800558244813068910857787663414250667565173185637867935326447438755655870352356789561212075624083843212238673013682574294830113570070360173417604027045373148490614879455610704307613453609636964627201525249562871665124567925943137491680199403467487966010183815509525681071087259191913735127730684969695971009238089619822968724416758520440613827522632204709224497014815742324198362298058808552169121580602847328423229940936082932676357163123702845886485171225764001896907990019944582831731014619428542859899409249207643714091034076452760366188035561354228026591531684407042311055520547473119727459225810509250137577238464286850083791548585972273770887698997720325179746451058269522000593982960037034645751941088254501860519352531056375178313167436494165799638081828998254955637966217000857662262554863743959288650279084803927508347121655213592044177713958561993563676861920802058943286227604332762268446950431530137910009565354299510053345651756418135074647855487395956157830703679188729240791222560186687601917839825436538200526038406612293636332202388531491604795499213822169543949184530748552120139006036526776169543372693507040653651368321177335742729740915489472193355496065780215622632259255705825970391955024301843969429995196229230590963965320995856011569440125092217389696206497599430902953193568113297100233222818688139721848422671388450799147929706645280844016071396270888333525504301912865181103517132705082661946448865237139487354138698037879108370411096140523981272617740297247349512487464028934650589409214159060161913774468839915860977721538275555231936356956137297775581456722986822949075664804398539464006682668757217641763342887225742532843401656581070168481876253107075603123050194781643667283929374478383913893984202451074980669088689175607622966497801129358220696120467946219090241813071077500010894350405260340558939836828246791819266996428289497717857939977069292814786022591591888702783547804322850274995731040023313097288377888690200914951855979422108533570261291171800849382692121918069077149482519657535513270671613555657397397909833711633012352385314995303343222892553115959602539538778426093512470315453952341061306320473774555262710835782954969954462131144109403568237316502335678539710052574582264279385533082921799319582113480737551565692412822100083311679359021480935737234230014316924988857827250153950805018286611698257858967136099168772340749483302197245930036718704561120707965478976250801966419444855302173943831047297074899080985727427370870513363682781174988431852245182988225665212944978287195940275742638437586564573988414033386018488588006780236079102020620397417962770323904532310618889234800290255269513977227050645522685154026844259262275056341997103161480282362798271617438192546506499216122342010881740755881578614027046914044241338752298603923644109950498382013563030809512201031761901242604673524056589666673237910417533427609130643510020835906300776905426564426066323107252602752540910507624972311150334148390025698268128815141285313245997752369755665809452779626561976356098793082841693138340330771131684651071185629729950076538534677372480405643893092178445786953664723415992940816321494317403720460348278439795096060190295368483752209414136445765990734826002427060984620221470119353007518063671392780635691800285711673895255392550668550868297879288910631925206214570231244387336887195544121802060728040197326008756142413098231811986607587673637473616854000358535638351927921368196881283575555825015055989203252183059759645150303317022995024530596887801614628243993864063804135782073527895611991051787274716169738149197904777165558102064718316395501264723617205945652218178710312364124665342163168213319339687655410653857964711461492142414208190475534171242110910463312176618574866183839641756072564236891596880484669299401286662213336770750424072623384973845029394903911068430413290422797065954723039766635260090220874074404737272222142191136371998643362121635222085095677485511326789743690264573672560153909721031034192235547136887476211132801248575129701326387389387613864385027852010672139366260620826729236758879593381041609608347779362742503735254100052444431412544868128098754635998338347154060960774674351085672833742068146805301084720215382577567880278801390625280672129839000975766349481595295147675636342799558671992378909942877206328870436793245647990956707444957333754636447608962637216442103297006570022680122131217291519114864455715516442931698730169181441857734674711304054779728698691683778719719439391788210495531267528289529965794413990788807647045135665637931411363149196256972749539812411144930359308412367348089781811314319355699968022775792046716035414107337004538079655528836537819777296056772465190048412147792267367618428187471362637460619813949445347493464419215686818900002107634793349292152539685270386854968305357845206585807979381491738475594574656115563888932429236504675730662518303396464797602492592188948857722721234421664770429508113058206323597845469437603079129874387463370254804861326613826037894961193573401581595842105921809883386063141303904028926579908588624387444680255766867446726937211043774784679868477081506663004591695762038351160322863078445169140997521530038299048196091093172426026937127500139385282010887080664649475526001990976994908131779008626062898767606635005961383373214255603952223542166121189053488629639337007828509139585536861777491531778097994157865972313576797215006097295460085076831595564331215332979033168106459689779907585790121411963595304792184426955016811935987912265004705059834297317151847881952602140007868816983430206920071033631794697106466600947331549115344517561325222316793406395232853529413448339238999168140238348492994330750824648951627686859395966578205083107162357630028399961977514970646546947384355968017069579207479637722653584005139408923149444723488955862763261311897321769215663835674540331731864991686408153491662626047489273284506700077018565172327234576801669249458154485459915927448322325720929440973797925718087719833618185532335276559855529898447115265768684722516216684183194101447217539542669834970215157043305448550563713155327240882478152261642326490476163633104333727545698977320685690368947857529305224395700318672417563846304557887640404064410333285201242481962723863122079217805246591517484584742129444842182588541617018847034544946733060785389763759856404178925160613715846900961989435187840498604705473694670330782502780619769339429539224354788015303398811825264410095224894712480022101935326932190555325490434185664499633815891900338262243234806042072932838198044747711677891890003403221267224688495044341657240043537869371226333424294422693133634235852144835669881131903391515869875814586181530641740139974863535420753346968829140782866603328671866971609726346655313792775281050275763159105904486415685263501318457511744756688923069118410005327075662897882024084655893243874116325828731959419193105971417856278411292844741493723537004311554852619727210195440235143186743275816479365383028224085736252471545440082014818474443892462962259554846684104317941448347969705635094651077956773516971220260128108509665617269541800796978901135713456194916692351674862244619907714042033966598161655812194957198191769251235070393206081824460183105616267657762796474939444595750345667019223526481553436481638466318222802272630532642372903432874305014477177081514509824754571050562273827416722804621295234996218170692899672507060556509416720620024045201439009215360178208275989680440494833580826294563146312079319718975378057375452638955662209213212068667905406996795965997965079048431854274973235995249292700066537558550191677531638469030745547003514250853796417126635981969602168065371034180645644544546234099807511208686127818916178839108359387672928169207016276163803955960078932582468659624921567285939361178665358225392991548255549591560477179748992315557844198791197567675287612309059415014146445581054119532557748993033027502334832589152169197794768530293379951758838173922567683395816707628714599686975039139057952517356396742337217975857494186199565716595841514003575807185746023604490538375273062265459616082911996135892038601380627753519198827127911076558769352715352896595777242051755803894167770113899067163039554426136676380228534836996613248137339231616317803555242995715044061105942225520584128002019453684736123602817519761231514310123107863408597347097355451015804258148659517954180413796969483592741515830151891767785671598706437300317057572906966311489431871128627409605966491142446414286136743935827306828551059799069777880809872690365070939733102202631782678986763958124351272058153095514150263550579218826736048206046691532562703365205996135596587181745593425875021654770704853628311334991599352767169848626310452556747123331300436050813570454409727353152659677388892333046429768598018788699761644551538232533812222803629099637793176569333695842623638649892313795323266434858087592712628606968651331197786748754518140969153069590277054785479689263452816079768228156240044996555403425103709311601536062132121919611203212612030562181094926946887712005512699698954913586850548661076728782898601804123803561542113734439511366451098776157894312934473211432210898138890091063722298060003614393740504121209044921028579256649124313788765135305957308156534082669137284684063431700638129895467954220816641422692421221993134018138507632383408765855655900001181261398548328624656540557712306629022679106916625473862163891837454475075201503559210629731406938174471661112012406474598660150236936552871123266715169160006221505743127450444375160443674302149833462377130228482825760089452571760779742212201243797277182625764208261704532277763988959461924101926667657325672324342271916197354255737394337738267259341360519573352999692307257280869059220551253030586936796186121931836045766755502837922088912983297200280786891242592122225593569423195996070853694094065811340279633569856471543354082649712639943724704343972264714470475102180778100835663503052989377519738902282316770028531168456630672345819836730104590201771372669339891218154066103343982370837938012823366261286835622939340798602499489574964865259807448856377326667645541565631291724802075865686275557607394952938875767424197244374502616290309027669253912095313030608164036031466262428814205251134218228904188569032825054680757013316008771545169555757378804152098810760899092566189694968594390587005184308346698723249035893456827867679470180469287455364091934609395239436291538992560416158010188814882806966858965250959684316037657819663094994326003070678506010590527131879419150279107782847884537872943356246658779901430695004403377029724240216120412850401956347209838751658012877279126404866859240337513322409443448396848266309985452762101203197716712345162361865177724193713876488453629955037663741178925594648591259120227236918788117305622025130994645842931051405978293401122549022081616381406262396960571183963329439102867398478932025671739915064491302723603216743657780736011068463630169794291414174635987063866124047937448162438827021158804194286330198177195144788740353630841805779788098580211028352533645995399331092053493706911079511738667525067682924997392325988559319376483527470557376869880220142797927150361522948927144018551498654853914739126685486520851192764094763142305859298713480372349944410779731583826858264469863326837764137045022735157597626272583219845171730991723264876606663663088319289553060982722743744812710761194223649267977106272541084940643785359003257272271032682476080815072729688392079360455590030287936814047494481756013223181966365892783950952365882533449572457013359160811755027364884859397792192742881198064500521701916280069654431566931388247603825650367132622806230802842360023065528191624498365126342639285363867743396716753663896054386894142400194312299658820404677815196304450014382919142211463571362857102285397482435020744357682753289443016980930258118338139551692102496911997716331688292313534884203589320122499265795250517579427779879777064622999263529563528532429264414500780082872280354638591997653485649553083329785716123773673831653387483796293485013125475966426475434951244619409854396171842667827880191018293578421488790585498297654589962780846412526170468375188486983831220454854081263490025619441361137575069465866762181013351254296971419242248620201411024688411781964242344653969593845670516409066157153587030921433726416347254042310819370943127120927315624513537049819193177840345244858836360386423055271961962550889590621867386691089225553345981528891138907940956399631067417310324366403890498802367527744777993522257395469071704138440569424316313332991624113796098452189129912746044553630671251586357559486016350924782074254918723051195489308635410872474504797662898771649907213385574843752913068424485180800637464805679564025838114413023534893055840241539304240679343353866405824090993350301116673107028330805316877576135678599550469357091185639718752398906878352511314553545976870553667775572592543841786397298900300657685102339395498193879457858107801029839860064953966910739346757718987247725020289729472731995201491377871475248231423395531350789992322611813283652921798792002263281072491597571558196765675752211183775272846340734364355682261032145017964946237090038576777919003351390794963066015008054038719045680683172448935757747001475224240993153836836540912745225285529537572457762024176750216269587643050035028923619192173857110324042367440124396019860607545939801572613529613283557611379165422036673738098411587020854675237344870577259503543748173676727433446873687521019653595050046322004363336495678155801330905475242466259275133359526219215751101360772591582630579360328727405167892942314784267000946456496347611675444398818133668477324480674765216067413444303104565973648029449337815798208675870608817305643431181477328093635700121256955299824971441974539445154547278328248406429697474569789079007541369849470351757951542798723867996067710888661226056242895586659689872803448604638656652939370287468666101817035255405235878608337999284721403386514281353231572848873703978271943913605464056744704237550697148686322389003073152089882557632680687914288343038758723947094219803122593670272297489232022628768956922584750308391474835934311355594350160938831986909249520867723430227522436436026037767238845015674491319972459529858315453353694009426532920387849965693071808912966426805087572457357762745803803971376391991938196018042415368103980616356439619531585480265945758930457810905399247548098402337703434907195433385648100776313518458929834476998081645267631379373411860198676568028804639375121970320295038719695413519637076474054920080083773262934569376980491176516068162275681039691637675060220165388714786127803983198820973515995372371171895445058774936265038154856971100607761026143412856894842219079737722166716754228899113048801177836407455437102505240990858947758762398428906349164162233203802325433897515446789467185158144234115574324742924164725685144399375818893184633637909352164773235596687216103387342020217290114686353027573170990487054698506101610133060888702579590883914006456974214744200811392631505432025708774537275802230552896756262918598075451134078814471984195317661345247904178251793091620444268504308980508346816059821606530719467129005701061735858695811555488203639508874149406738615466481672179508477890962859724733258949318181229857352764442219501022196297220200872885455061188668933578246057738178352668182250488527326405941562070032358340262997435260698885391300061985784608858540682550636802494645233824442119205115549220068997770597936075055890935471922838540376940934219693411050011724366339090039057768626234056392738549164982298397246200820552402034365961533363572184917528847708358932759695981998538243723571986356034214421927292924239388566492443077984097951057354505130836279620348456628936535155559050839428122319483665435039743351999934449905758607705038697113626408151097798604732412723766555992464931064780580389287511983071481659957558362310559385909621059932229336207932586238075476552874487902549067636490388924335095336041604315819894043724558655055501975350370295798730109124636928495997658352536059301900059808416735506584081524391716461612437969299125049635844150258865738916567210120895355715896078372557298373263172377194016242279149786352499933642667713154774163157891266242426997248801572399389620334571535877435836938503018378301740262973393868661767076707902105429799966648418064305221122120802539629848470929734114920375751682826195563991259896294611960020189689996228130186871905892011761859322384607422597150117951705207072885989181154676707313349762583231180139859375354967016341310616205007663446432735234094213782759827518944173021352817318865264456945847617298106846470919870316880359602963147958114434865601337882440046340372553417931767529139116624525091274486842970523516963060122391955658133535057047872701787826692993392409613166851210757265674266103641546247589445657699154188323886385947440306129171045381667045475198269738659728860140754239654457674466082698815790753280900734151463084322860142092667991584859886606246688358153933295781334770952554785700365609386152185497245516224097806669509158307370496750995024999501189452929900036646193060769547242673905569405144565890782672914499344476653220831866591287208569275102613298235944177115338019038704257493454397427972131269760509280281109081201316118293518320161593507897593767006807735092783340639722965296880845178181123447883313122264587291014300820610425026274050538785217065610749351976336093192880091173606604476604254953602718470173011499124255866952169208023506772527644787057468062238382502060840293324406292960360914500761778927204638473499034816248647577832680955204502908903783249412205708358737979006794037705100566514176387801008086004335870283098980438841372919170643168167474990469460626544930434798248816729722187907973832615762268308802786283327749140659214505444431125992324106156305237661173736317701975595337838767417443509204732079151509810474934599799871264417124323378670238033631213531421107794172538235186871938434619806164893261234697030579785870216424755433054883849784478431948594109085939323203408399765488618703254514795580313427820069829164002325108195295658424284370281232088292003159932939811506791108289903478049526643084365550628644229341505509025764753136252637242349220763113254386752225329238741551048479886845943017258241731455199545477576602945711921833905771766150163672664018268192996119832170198551213825212992689895110374463667527494150148491577939242727565978282538169985243674998867023518890598963360746707083422263966889716085159677818196739685014194399769944160689277944648735626043562866351084847775334218296197171769550128506631407164069372378316152969727585987268488313926994711537826742072115402186857554169636099712051300594657484630206408389198172953026470874567079414331185605744706160454703821102635904502997702424166572126900332684201118564004457839820754995283173902199481876605227257674564923579191953345420825388583963645205912871810253211411167377220756796187191855561755295476354192322607875002593552689881940399424689344970041036800753458007333237061667993590421423641334581084343596865434080149431471529174252946390188310661358280226967780653860262378002106203750264042169540439136546704811264001848729584284148638693211110514517344631460952801421357394709537486520963767585513697982163827668466951604897185173347290323565514463912679857362155331160087454788952334459032771247008981638500553918970178467669138464978844084741684274293729299616292250546040954673236322628259463784234440446789163031141089304460127607687256063345998137186412782416003587069698887974702054762490319562826436044380179884574610019760116337576010806586429092778056634841922140932451982701496813597611502635452340568288554790797042041154695915609526743862410717133046198258916867390398830489994720912657197338495121845918827773738716230958279756015094821324677879027742061626167062343621809920720881285566924016025996539355071449734597426792165024313694991179648683505097762691537246724121655730576121821270196288892752809617322340791138392277195124909679438305292417982720409671767616001258765594780791103012910003528228155815591176809527880882738216225684782874050462824613315660395724339086358770491580001291169025328446566609642184756153026146780969787244248499158273511211901969699355786014108028167009118473920742177442392832427409983781197667677275726584995236294295425185021997581638724997181095714373271474600132052276064245178259349884976619674895434078589668612710726352386085085456906073434199259382309457140584451446428478342476806002520790961081951793141567390390393397182282585895969395231381413754009634712860749622942724525249464039932243685762398151955802329742812975987660029446534630906928474166798932656609602852769620398732025296866245132212036250316320897471736087830009386138676789543615239954330072035982536413300620780747926540061442638260632835804509293212450542297001046638108191264091846111411645515116330918980350483640763341996717717921360478203921808172940604310477191096600579893490603243374633273130051027657514088125096033418038012611764901717815959983807425155976666941650904757221128679588312732980106147083918258027322150344689036458218406186336220286992798082679259270992954161175873267121816149864434252891130212162740541175827490434956154624577778890205153814389699046284482587864612628253272964856691030438334459175487185812016050583266221438147895417513567954607045168911761157734509637569791421584133945767177353075345078071168099985364970434812876516991595956986808899624028927268057630921099168258170111897392143977206330282794923269640231079978499116658596812331373078830539046631356342671844498894824657350981709321283655554972960073619647887837753242230823286915764141915453016740928036170506028390309001197812579566287616964167679214192109129222102601361184274992634436103416880507060995340545185190908575659092123493603255560846674211333404559495149422730753187084518421810196987899173316640742751056202741745496792728465800431126248195572328134326752579780658380908616835137114806794872443330001455557055379162436845347040791868870728335519868200328062730371680698072959037578825940989858021007546185052047825730779237182704615224453946458002114898855591000261022281135689798956543710765800951211575971424326097578708673829071211522560536701804354925898256232965560235354998190913491387625967194932554683236738688322837743978124723242164929353480828002220659436927017636743291330448631049628132115329007798200233906855630126297617292531174770049220483609732877140494187035207340714336872893383626641601447438326923217541148514823104860238350938939756145269522335521442214553754909784778431072710657214465780468271616969919726543694687107596507638992255803898495115893945027916412433005138974073255034710465201692864721185533523800794396838333934695999263871029168092028708154123883632451762789886364102107830179442352293845442370388367533349110421259004381604909849964253962838628456619371296537275168355753546303277898657980017604695280937526479817600055305518517357480939796228972936155483488684642472560861122931234588662298798108916474809483369792923357910316582585502771587695499768950866895499748796219279326266654123805703597177985052460768687902761489445857169345745657408094589823177429378400896791177351760531409861661597842677999602248301193945715461515820798925835442563906053390090857071953773091225950375173215686667277692051961223173738339379781141009328052228633088269403567847663077242226045357524927533718964868170476454730850658421948792171844203746998146222873077718272727919036542396316640853207254402237803573569663806888761904052500631622381644582618127612988208879978844187504211917230465878065862408709944363336403063637911717134107611137848313373356066722822565799315731537541937733559994807493803632777191070635906781954103963053590850985137812561087480179991631977345396032212997756604034325962976251839538212018813388686356734774926666177022080439735147342550897670340227446547913087008583457961725373054962356637648513340272575696114201684604278045848759808266084141521171339319519567537586278782853194013521493312865586869700297125451360507310717493428125985087777092415499472061684101214942465996991251204236369130049773746497634950241257420791980479653049007230123736181832548025487016801045933101643325200767637363243989705468539068330384210392617130030305253291698930909252862935049699154737647426268606734104231352093756342633066650947009744513411515255461205427183764948064839728140497766166134671689434154770919268173020527700074403807790296096649311097732997232056823295414180217571418736965120623949321560529171748524651355258341700438368562777827070366051392229736625111794114296649705805723750973504505183504393381105096846861203128348947996866924017511262365971966643129225141141346107771882968661408284975439445194247284961411771632853157819006810531169279172103369968578842117447707973116720833378469334067033970689417881033955446862152682038472377095856071317317810236090402800273630015777011992778913475496365619732517471509068854527537017848803736193194886874630860911629257684789963451113434178239917950330414302323620020244319887298908424107491144705442326246796504658716885515163805924544366421720571313038123592828654008221564251193651347703797096991780761700037212338467579776858134810722135624478580910801857458512602404087134177908139168749330040523463317877942245278543055500118460505024786795430777496482268654801759994744875746510318308359279747857225931647103494839809881089034841966426094018288568235253666534310641411873098552283156714550931817405696367941466935172364449355132803774802317502228552371531934786286033357852541296313592439559831814323365524204889818708137605610499344099656434120260125618798801228249721940139991741765027707026735195598062735143361572056893834138737990112719296570903542515568745175023535738464320830775575990734233583094185212060894941386237511521819911860526517639084122358487338276507622458359079685191797035621564728359532068248528669862852844215901344319726131804154471619882902968118750385480218772985907527836128541414280506163256868274000459222346843858022913451390792230067453164472671660875942097112142407615373335676229757178399088011570528428108028753999155143037913080329696084293493902906953910728900614585042081535007184610134288946737102807369845109464744955899331906366619489183420272251323943265206892277535076264011119928991051491058494139613647456057347718597451145166140683962984816046542935657604626736580386736323530343084558497317594980168117349751694622534327807890338434825628442238768020816878508040974798385865463237042828928529830974547119430294374296006988368908604958406392931009491082085013889258258728459272391248932985752942637810696976666857009450284045236347772721942978745344686931402422754384991494355323939051396190976728508514915900535963720069980072300458267309626249095331333486054966651679928486384226898840124405737503517565599423609834375319529449914289370199814816077741754638148965645755646195134134601455949723325576439561310215183869788455569771807931170610505449503475785804720035378246636823891355720770287784707512306471585568450250431141240965200258755641378027906074246721088233677034795844192094505056166392124771716694699285039832962668518801478853967031072895965420998978414928282856731607601162097286663389036693914774336356892138263205656285608904440032444174736745214210832635936858457475668468470794682593191795149282174461036319631897939427737485121616538796537880364636553260412756795880792887930628138846373919691151654903721968044593755991564927492005174798428403247725637725239616602717642347930151347130981405748595415319142966240316522767451105658998701434727553397373373533087971413569163054997880312750896045677205099172700869364745991537404664395407071916687564639980805539289186213715804166215453428694332616726157998226263272572428795451523628978836861502366240311249325551453802283825382287546917474471846821416950186624237335388763996735655943574574004873188198924787833428488844671725440926704046948782930572660041312760139860380535442936224565793817882571294323101187228132648954413376167507131536116240066895417996821113795279105055210917977941274398791017901520711694997903912842145040742782068128073335040009823966525462061550789225663679319835889646453411533518471150492012909870129711685011502079693892042804754763270699340147810583052796368940054946318409239981456576396239170237569487052622521773046381159756511343072916176072985720661039867688082395981577312691204059228293940165778148495612672874742482638043627740114151930832736272923919963510673327350676155533668312255452763623031233732604251752526422301038723368606885532049756125592451468765143554230118849575539942060509056615393097096758840775088280771249879614722768792669659685545367850102473069338056689948149497703641760208902418612366690585665346825107055126511066244791448965931952074910865894980656480604065763907073130724318382148801518459134327559428913471260027228245101555668146794223195244516931014047524275891121684600261415739664726371803818278906180700018749884288876899854670048419393318899845769182282149598014850004289806831329965378270189937487231210312720915673110803895566168251272428056808425058671389124453861829788999724238017763325233374186080709623616873665059864838975727255011085156617716036053714753893593836398717819246441865534531300488681724918130470743919333745844368848381418936572503422406085099784252516667410137519389775098173349194154823808810583593125906865196803121205866559539383275610174887836559248138089486389291800333203162520518527211843032860449026850240339519477754071628357347418412928989383857379896479884148291484571669675336764749508797836870980477263169699029841362133382847606743057972267732020968079570284385837526222452939061227086829442720072082716576638600029925355619715315902627445834360627709328854118516971359815060438985953487698652937856049973897963817567084706697009462253249248318278102432721725372542394087422981228276653821702901395943161229842582097079926815504746722629590501128899283275823342849362495928697452332626898286549433411766520898899049696529613893652673103171345259146433334906243184357636916464895903100498154763701485173456313727942516117750390435184209213930751604024732558707273171786105313329788890233174555856344065060055289265457675277528491020758764921157754937092123264317258267686018781160393745445476081898299223321497759651744926671286102446923654061018930087714957133207860322751402644657450078831954035061607731989225619051612907638657273370935727519244215773582043472201755056303679460292440825678102498375457781345867165489130773119524499916057943477356534803780906586140587132997176524637073623253120466408073574949324495929366819689251319598818277188284080805182836196927687426574518137070371901485192112370278962397970316168074985324771335764263796190449897876819533260935961386556374239110025903325195862765298750986841699600167038573835763376617503280515858313691161486261620266179348456979159124746731652516772541065081626929716470527793697381326795113914419749150795610291892207330030965715791761390432386709767026145482712517274056900534602404643794117452964615248911270212009726557267361968492194701526805110943610878584673205260959254230112294393729819692108745411850512303476827362950618206162301110222411111805496658976524739864258629344008573450832788281299765559416838886901040351061683626022554439907987514130455437560125507820169196308888899680385372591134134167759059209967282947150450038674540865252384993573473296517435930010336116406491061999960760166234878597528191132109898113353615676059736098025194158240072925370293663154903018712364043981389593578965895439118094113981630041461289883310061864490655457798966081607640110943131797599179745291405327028132274151586990019996265310121318710021202824278060131865045989862190813266744662145806251048149826115625359593621946695735701795171709342785057695394458953060747164182111627059110201086272307493542737029662053302722369370155044956925032374420646705585980855428602251143039389448975464465223191250993777610855784273142274753839379069030937891871847138693531590555413787114475212785783317843561258325333428052738163132925429898669755282792503008796450898996930499156327983481154783652838680730743451397895202458428558606616401936507479755093677245230804302597278125042747141350706360977431582057058928850277355733484366951237777887795748567834197055891471324219393091416542214728454417340743568369419583560012179744505349080522733098421685197774616530019715178670634766467022893612433208527172060373310797700675464557441396280997580612758627479804154589012523336714319054415071944864457395605793724822770387951749205840055143152237799362197499149732861129440916291962666272131072228565767907832961280009858128943082192418271746165913247262610725123021993797112479381267929946504466108147421225771636641493345271392413974596578571376877553784151653867520067258564483102806955164980927114306241362008921136176408002036355914618239421523455495104344132181621711808254853130255350641960082939075443534999487295670249747764532729954776747196024120824497765922230848796364361068697926354017336695943691200980854085078962005780582250078804548719076791747171410477266151727014878914533872306171051422513199245067255217094760359482551099968894638538282612493103331920649473897336122860389858315690537252867640280373468441232339661326399553057037952229414393961996601652681932202404350223724849620689948038685098307645874933868249228270679427645781798283941229506740476014489934677076294138902035414871184593384549162210743451336238308364178379989204124267933388397576749050472364282854951368093982686713709964402275556335526125854441185771251170297521784142616473070364374606339369613948469815050967604624735224179593256080161816277194622094517647128434448492741456587102365718548811260581330525005643709209505718910410334652171769596078467619435844297623854260767097161614039489626199033167063933784960160403904107693697655654822368600179463306034621681050099958313075663514958275343855548487524454112929648705117585810912783915812924513167194181211245277123170284570952082090618125402367302584366236119656173653136208539740288391919259811714345412546367810710489483960106193111122761043603622240823069866841403455446382380287642039144307630911501034775313619951319377030912393514370725287660186714233788814643080145695464248902767018604854312535764082485519040659511129687367994450555422027171205547262484062240425569722095548699615911348267961801276241436356953972286159882649261558558974576271118708291258046194301374427476019290318723608601162760494745400925060827694511501123398123486849939098036182039925344694917529068188126507919867283021679004102240027661021610129297848197042151644571204422389032929841378996876341477871391992143089952434847653066955807564443023863763790120123436132581656344392632383711876501264903442159208888179953006516778352760628785472662290428460939009170213851003994651735737245652129437946371911737926567944090902086054140346901457909298989186054477453557656404405633806542708977580046564240636721632327698818674596715359940212502775393640915689624656536175449228872684257372601444449112162585068304544593975441503257766478217903458861778235197264452424305134109278351036002882770725464090737841578522042726905385246250225103268161528516749789602211195170863001083495880594056257765514735960220194780198969697121904584357632504127416166566602740687148755139273905976097789156408651050753877190174233924956485657068775833260439831737012430304149359684468386255980660960588270330710015486235444539709332861122558100030650355048876801400776879178975622856596803604324584969663532756311536398918975102874873716543009509456462643762660633594910454286118011205039603048563669858478151260512697877255043267525513645582459508181359047746305753834926279584469062975295792445062020565250983815733775731898172217427220669575961946446244850777019383779257502256498067075129279248703096740318085925132439455919023259474593938045522407931741687864933128567456561968972534840565307438687737012788905053208923404965411715506923938667456586003507377889422112063367923842622162405699560233585282376792839201920028015194889186572690702106144937799931627068816131487519891535139762930549128343715376046035316632440995818209498970596859373796136290484011250128392024854965223866400808579536305237823913174173221319353877812709825016126554163547489742053581532203402363776950661628530266064030082971322872046224938857607719993622519702128392046242624447985816950653413033667335155946987847491127048371932442548511847976171322271943603203506689985940236714550254228858403350506519749438571802890940213540026663062334500855050300762479233624620493041416944571350104058469065023671668784609933480960512384499063741675131770687162934742599535037243625965702669295796019293483225152576814944117821640062494406777176403188107308495219186124747962372448421044889456977975351121324794082670891395010597602589418333701123977749957403975765970732208719140387448087490070797667512784932005648447796618874894163632987112108462581695753381654152560403298913565096295188612599997685159592311939693611844963266970325851399527709779298160163160313320902130455752566599395722488171487115807421893900223931171938867886779248229336712780229892153781951383513177153652376602976439867920777550619550639473915705177769214583125632285281261090041186207829545993910725102633778868188868551101489680899192961579528412607868418063936695619861099952149405847555635946536929792024039724891304315772117670417323651342107110064698690544032485231602625272616726376737924364894049069681772373148361715590264130388598329288522953875230465966383892762130600968299799081495127422044969310491981984639628652060058076464324218221331710978526778097812515438526415032393148150557464246021785921928696333319551736463719564272127302681505062833591456609243484761181190237129964431844965585976315682935674285271906970904809801534867273978461232372113501336713036233300527373653049132561281868016517963389092104736153881512330135102442569632734966140687057307390435877802398326351070129162600893359471854136918987615275187532294246906659951255972137494145228654420687782779959444431984862025131284435950012837827842304507692695805152536812691955564258917743426298671527880532670943807503091582371768740116718038430987224257632230828128580936717973267719492435454380499627217819886962255624719810954931394571544458330185660772577951641280069019264089332940923001359358358472425231226628400635943097729829124893093041118319031324690957489236545701421611945335972498411822373864926866466136868323058982569616173493888162387571724514307783691982635931551988386704624933292933375650918146358268939357784693430167636644336713760057107997679250396048341160438640044562332253339952148437796630391312729954126447987284377854363857829031273128778260527186637246211379119423608257512521075282090765133850169633159692801070795339064166261842531025024442805826001237637078965706537435264943876795929336186131211343966631213490380881664329453292942853844525273742153355977510903789359271575381207663910584361485121685430250943680093099134348385850285738288553220648389286186771179839999394393013972822691855141478118156664545349042213317024672062152130070463099198747211512208974816022199111530174610816808956154259459891016441530587224135143049873891045252864276878359099685050152773138696899947921787956395610851043397766526685923784564754928521835786644860073246030742918521774836096444723595795057930822782759818332937895205626658089851727075748856510620104546665651417235057119007587179348844573591664385215072086228956113602053091001936454108355224873447098673570005828400507129750030454482832505753836364313811597564671561063201423621305499511995430338275509301534738830186834567960273372856605264987074906479601946283609266496983485789790116155607206710781681127580970549839595691831169223764305082499762321302186892721071139980096712398701374765491107099695241656649414443866641727475222654383411591272099562719564726997851762957759142092508292593136300344688106619558959173002546103400093149842692521413686418748137340577984995707846301138799626267998378393447208010304940158420438727529235753885825686864387378700289920049227802636148533279097296844188284302383258755805780675287689618424879300848797094616181300079418311074043079086709940163553039104444274510760618943087624224218321694127440985421356994277222987986581220711976608442292978045124237592048678430285908575140767865306017744392492341563076535599417710934709614458560672885961833620352742294514230992954809220181362605743414503194255129241280922007427131650753725390422468401294326928986480232443874913334785034642305011123500295104048052385480078297194388111307421355020295696612337239781945604299959596074683956110583703773546868608378898926594373159449419441440540985626158781064986999797625409164405036022120564974945743568191403377502436133814897452339544505484014166401478199060312478238943510618199573035532569903857840318377312640292462424753081370853747951984958150810361920936919070044440027308064577935955470972583604634067969816084642749865542754761085364104663620478066333880713851232697888586553689040251749812934346042249136850789287670811682532892197559133251789825444657220065119393641554027636251076805808099043474627270016677547934309883086159315148014052397007332915021290854014164727953292684527301521444772629360585378182417936139534495891755262671676433374079729597983164186511847990437420030184873176625317920070700359474145438621608934222471549520822215249698393547364171122337845481016240791877971083882024176014506870188261095729201739814985463248933492862744301467315589644779103009573350184502842940525556959392725460858514011584417813428598577447272084922746477920358594297731413416217928829665574195778947362218168745151411296941651598146490558930687857200267599752357254626567678205340398212381816688705860435244345262824938336229127217402289112921678412795413979549077671344789583640317747294441320548926941427712989695676125503023732387200464640083298209569275639333188728226131914775040769766063972941202472250028833896603359986122439573385622514031203018107190237991613609316131418431716466583090105503581259378648164134480773282815186952970811903470702468133574225073416988097513927579907020425049414426150335225168717481212475922328444009314304374839125020831801754201037205746740903500177736459160230379107818363196056137684598342760592894185858187657131371360399308847649280949330648482420154013535966556385687213887400902409732694289997226337311596974367729724942269685315483837772614762165275768830759822713530594470731106666054342774137055670067688023226943773410726394858347003526175949356805568564885742775915940495543353095246336115609134187203573464100354458623286944202683708938901105487454628204414083704795382849419181226336068666187905746889259816611295308882103841284197555844403411432318598450434729539052433405105417462176751179736478338362384035611989128361540670998880196999805496879680490878849070828617759542379784845422643026542367461971056617889811166164938056611435213365649617722425966476684088215688026595307635316243143173863546944508726210708668566484370332556009534025788206324070279364020249143457512774649959042998913428480842356593323003312914189310552745511178179813539796776284941673817496774303250645606436194911229347004162528335263441187263846176597553552480350142335491204981979165216613291081958437014222265267390287685956844292784146337324480273378992150685892725056384335934546072169607583585258489250603297009145359412477643355809797029244752046682089116425031664623554799491592753025138828054555888867647363686926057210934192644658046588381827907452282462038080123107681263904235622381733529466735770249713511516054463601622362246025797536474698055305863998367160284686542532722299586700478404533579134148307147389226565050792721203288516694543094734795301063083963433778141719056187551497531973573153919827782636662780243806421846766453814335439732774795251878041266755583158008817024578300501594629293003952369968249327154427763973910330837274399392724853202164447815999158102270418085575853043078657186269796573612418552538926103101720153433169325306318321979917713267934330226523587839868719266392841088585113794648445258278820382328215555488573329831587449385968733292065755358668933803414207893518859389123312189315468737366266832758691789468085892179460066161133765249832608592609220084181399610254964241638561008518322871487946537110260981468991125587671417710548007501616556869867482749247306492532360763559557651955800465837687509697318511642618872981257210884862638442871007002569120715882003101260789491422525621176129637545446605351974251111856227012004804090189403160495551722170851116909899213722521594081400272434490924519138716129443883932721747592254546408402780997702340328515870815547292143480802947342241055019079634416890535460169177165815170778944752967854048759264997627879097740577035391007183602775722167193529825186551497909287329338378760936779687642168677287087087352279059495944072895638479157013765042795850530298254415620010092473892706233929237557725044432729131576771356060626548591013276655107433614565412727103930484736767229682111776886650225442662982846053933962590691763349870850936700874169914163454915712282410299616743634135930740691627608467450274892899619719858233454299588711234746832193031466728251310995707056322283918407424968502973353465721108665362921658632654215896742053197831312546337828049740045911282762727073374624117899051204006628932406769471442042355206482214716952657991601350151268223564922705608065285618493772527430235651659310793897048716949455211635390820019993394358414064638749561658989770617254298820546753502419236032667539669724076189630556200249856194694874537470397950158734595035366653539573783227857680618235405689818433821798592055238539858541557574622483528759522435321922783627363284048245351770831694746028139747527889598802153627028457887831293484639460186559879928043284934431221393265420581451119705866412318116133243197924824277326305970014050253214999004308128990265519267015127974334161456488742179119948910945837626728074962583357081982724024971842559864219486274798939381087692778674670058910554748380471997473491357723193502843513409910959615903759087212936710837723125842410762002505009519042545200631277654768145156331580239810614904886293839495358985340252141775771496020103812941305651027875330000227249541223428763917590648681303172288453240711236892602209114669102735631688041528716939375432550068920596741809937888679197051668110329338913916991485989933633181388460452485303505481097559702942945182220150784489597857740071106220715255074952822845740384655216034900776226086521218086290685170264151855626305320620903680004088600283942267357980159142800924504198055314042424125456201123809853632444269195503078412568943967965851351571170013494068921014335927992379726946741777340413290752773903755414875450159369523156581007237584982863846710075316238269488556071549947768068195075684919724329517900172460924781605624642886068845412802297085140288187932478229072144687413169340706577697446837511159885695442922011242235555914315231314711822430391661831701847657353203574606204475897424314772694192763475471736727392163098916897414670552930695741329868240600400844596634074175559200150268224115447837862635200554962276445371757722862309264922448477234432789732527064654034233157398948716452722549452342741180873819234665992584788122993013099616133279987254087597722932415453177564343715517795985620845173515082710548659025423378483607166092143012099466362545668089276206086544357289352689222710473895075840089822195231476735565998734061857899118538434620458612535758862864497587533844869127170638849343145279384626775606758572270389868385188950927203996937245279932595254025971943371934430672624865917525437713940436850791236563106995903844188928243097889737148586966528502468988468444100309493342960058254743714726865698319321045401347666208035614220168294423673312698262985750484351733357363586375645206825106186342146427076949098454272970257915177000004625615434032106352405753955172026803309626380075153131672813253613095479840936400647278225979975907215667055908650300814239106707899599588429586529619864210441316534629831901422427140918744896020900809841723763849646327509257432804350757388196132923584444694749638236489444212785780811968999962706147572318898763783371301334283610883408084567081176628295399759147231049881598021126890777059137853010574981782473475471103152534567055798905916540110719153574602474772806568188671983198987051523103281247000169174061725750191224961682216264050777539138952323034207507011993541014096405103872833393738791095902870550681368724258472510502096957788825314226958731684601880766027191723602288125670238565576775354249917828319899318796371927397912088984273493196521840679321378828983737965410113364796470012160815276527179471991029278302252880245907048260438410125040703503729863529369142394143214311186858065947460617531349722280900324746534711465530173163131603991469910975469304102690692571987858520355632864112298634219245017177549270234533548437967549535008415475809699650591897180177900549751551177017956427519298246013367509746504684455660801106685887762929728631523780175746358909405711967012957171357800402660462058707237431715681309531346613263439091605162466075114171144336524286402410891156496344807770428507804478230532123055864450311700165321861963501246646926899536266924862976244467015306074220415850610826297278508314703146686199238760036988575440759765709533270537814240321051445994705249188615127601497956333678427071357543213081829811287657198833207612431771966642153433674544579880913458818164548799758082785666392734190525858523690161426834417623505489488010402824321233717130173154420978548143083418687791839236065777136943538568886945208294708403636246900184546545330752555845345661695010053221325494453180783331936609728488177155146686079007079469459430169120369155405851257457782656749976189339164093042109928720772958976116013587018482436474750545713411230521766459097349545607271604750313457149396306978930609286908396936223002252664604877229932775566290675518475940085095695886862221421991211492960694717743221208248068029015974160532183901042942220251363838106358965072564510699458843003298855011953336120828501379736716359236987587953227247778989490182329352062311387341244275061978510778804580083275881884020052991597411803359578895775755980261006206762576839698145965744794399651412555715061864854671814603711124071634525688768881350024581432309588863336566650479588032948758478998779270066766038080145015108772186339337092636334998463210317815742692298442105064966418840053054820972293572427549217888511003579264145779998975868062090132803627451015257519735694792939865634072809317162388923884566025889669854049927245730544069490946386620132672355243876169509813696847122952253787383665092156235299902353534143544420017157581927848868461336719837421136387739879264078351767250244851039579768457783354199632994227359875854742292017252913928683543824668596966300800477726525653968834010059608740986015200127999788940819221897292982581696923635644458651332829406959767047603950446344258973319518589285718916866189491526892740981583591037120781361189378913211592693024955137111613890236585917185642979369151492057987179296899553683657916015000797388077541825741538521510314112869912443952810927892381995438723897218294227172749886646472872753356152162907116892950513261920959039930556141828140389669826366317951178030014178612410443631847582800158835159879023215138273476441097773355820277814876829181210255284479495671692245644465500076547602891661937667766330102394925572084367298599053384581862670722703888878588811065518356857277658222198979506831385816804132169365888717349971520791170917857326123040922391649726943566241751897145149564524995866000006983722980338455993832067098122112531715889928037176720483395103229525539172177220751434362980865993601304784179212453267904972461949547630540328041297304074868642624543065483013602647097033989714622055973860062446821249149159209776802611197866518011679835536913231481608586428136266070050457522215933497428893589412117154524573115183870267708288198057418877047315642702278097278456203634367069059095485887468292334728992878081408717418155271591706550601500206348038043475333997039061419829199434277569593111651908524590973118610686596085565183278311859613007020247913357361377354996356273660702544010714297116665494075938453442969637087107529974740767909612908021922030948626234102889053264935511551815696620715924532792281020404401172449550403604612659844150518363375498492698639488673612625134982183708429709331885098631142068804191948119025510862099531662715337362122447209005441025867352058663534402402019232935604926899264835758826700480196974269663486731223876327550992156676389147077710790900656242800658684732971945819991693168161752076802425557372037300861998818384490456557501111382939316095523589515610264588569219492800390603415762464675250231415382101645088399777077441692471250944134260884440797357062163970100148015753097807636412717117604022644570254161070425389734594930073005705139644383726616918916998296720389404389378242720255565075677208257182416281742089174455589458932902791648784481931928199433556134573959895043579497611318595475769430698618572610364483064461633451753404443149798615079108976257934388487646614661438432810296304320411806688646904772940881511898051348061644448473261212606123812694943829353290019363778251028939069848389790843612497398462580573307234873946449805888193818929900379733019081880101032792931559656185891015659601657504409086698324291218932970919893945572294681226298696920614194629307775038333349867930972876928547803343140614783041893609144628131475994067796357700132361962914863694019521628057935600337249195227250576483804103379768487965281489883399398969554648999897000833474535169490633741835373371328522532004905834621662018014853750754473211270290748453711978782579966288577186641131173299951736042984202164767986264719070898857570253719907406529737701818472229049571810535513031389742105610479533471116939344030147903246157891087154804890639892550928450324031933746715101254228561299326081540189583882969194365505739858944362311272612181874044943572679316862399393414299794296248016944980080576533745047716335721969181351771218650769902091522952165037971513748754620870371870659737535441206675546809058666166952519310185023290807865284131809456679808878265073639559012179070529313234785774813976917654819436373679915543653348032771559852090458250694520135770167311714193059687564909732489423741010659936282041278552090728712684500261322184686807593213151500909627579171059197677221014895830747757649420012823244734896069272785739846800180200310458706617791255714348004542902233682119178856084246313083172253611701624118774999325647454091508849750753032174881141549013372819014227610276311836657255985953864949219891913890408779886079653830222556638220916618868754723507173980269654476489862951898124383117024106428769834499478012883452754622454973519188715351558583468427028184940520048960638788541821028831515564584658311484426593601548187837788342124742436167447946252419046523902048572272383008965116216469707015554104874012138478848205395007843582235637905946904927755030825155388472117034806740350832263436382821089332879906014165390930342821074590995015760603492642682331565216949616983940506686808809012556732679359711550604081315013364191590312760074362791415041793387089838519682355275513354764955594366166703426445235979821471937223254741213096107542264422864273544295252186963843412715012645373950926584503104227432427813186278876288789586584491738898032002985243327208458764009147242951234215594892264168308921025574863678599191904652070432063960183484149053183170588333453424705849196914443307461271762405665278452114470116396145294992322737426419427107935179573208667112437808182508281646359011055840347363440701089951989309802481418018535258106156149037699855535510781722826989022078304178024007559192789594988397931197877044619053017811755672834769561032300470343346836904454382583693614565092060495106735791773831674234237987935061956687261364755346691092474348065852603371886043675904831865818779521821398740359299699286551192305134170998874712354567910597345250548823768582790711955202086554618811847832000570168589967319771676571153290807831098595208867312535349246351016098291461511684536087777568403950498541242313315096547142708530474862576739352892760010773993805381320502466035681079409099471507990274847721998248049725087183806769934438725462331565722546012029970729739856737645127102384808002037850406633602128117269470547958248531236489974159118658003689870641555189904267700500210912947338216216917187693375627929744502146454855809870907655340074579109984228043708082843118750227723793488133507915743201691659452766990623722906112007688618360324166017076210441883374792230060378195456435071995418492569797530991478056295813551553985815785794649190402306797930314570512235122111122614001419432275835104995320254451838560238636255147321697533434789896226519844354392333407758204403311074170765497672583731242292168377158501368905635788941894697788619995090750843232233968915020837817837176072406385028388617653694859003687629396471300092124976063028160119086035556352266052050306569548415452401979781964022813338323983641536084547852855097013623690634550100616071941985486844192778683527236836773478970829497802891696029790015601628615736255134679367723420683189964495399392053056620220488275511821467331762530155586993600929535179389784616197948793433892325204116641260949334951388711993660308836810738401237764666263258339578418630877929397938339681403865326088838399796815873872914644011635427526949124589212079070725068570106037533992108260677568889437823856767158038421372451886339579414773629695321679722224516945143746553942418309425748966574578527115570910430257003308802992466659319357444749315971048087065652560015614444942746312065556789472206261925932836787528147424191771109862854974770781239601690994112379240996083517666079844590180343967833038955340110977130502648471218654595929468694429341474700089243287713849127912039624630380545738434998954825482116871800277767944464716717692931543977884607843674713775699097819426312932969191138187468058460305615599966243586918205225163082059480231234388842390544866785285852093751836356019992666510883976747794787858349774684778025583297621439261247318458581385548023371201873576926725424574198800753367538072582391593701399669563229571776296493985196353144790610918212009007851714396535955307321649991552817405602029455774856843367399353572121279464448392635606654853930671955579759328161839794880143400659141291967264628839789285601963536076234193446235637834778454703550394260353196150292833012517133913294996972475459560119072983891303905878104929489476993309421625277769227975604241967506697866630141006109959852670504757298493759865271006881951930112335972056756892291861824681398157756911327303739522778530050132333550360193140171083178006500566958131584242846890531871474835576365018209700196137416147841957525165280819940947373129171944648075768655585765556753665478583475659795040228141579948563070416036267028181472208093823436720258587331653990422049633979204842234558379848313115323648149578458023996678479019151266874466838004086185472218931275995915822601359018659601688549311549846440628358111095826250247738398515083630208976581984685110983536924632924170494705698828681203004282066734390552772359411045364260576140000298854870477653270236459154775838365799223843006070426689592360050493601435166747428119659804352684345191283703957966421576448998489137692094926445646101035979669782499882271064084455985129004365621238016890491678736258582481795806296191178308516391697853022229117116947552927215399417794354911462830609921162347374811102716600765345429312982302888201404486213141025269897514299004371128095997483286740167458307155643086532184794964433175834319972861291069597789719881560240579675479661674587672877291912141692645738251944184860250494160386512200669189387367795033540360109470787581076830241879448125940506667166636830264175191225643749555476723229589237456388151531168830119918450810925119539617526194246438012904993684735076133281531246456164642628979696349361858057958966134197667887739294603341119348033692066983307723901974877475565884040314561315736681433718267132020992286382651170823771402323578993408816311279664770672273767983219603683998740832467050919656383725956044834373198531442466315909750198329505161491943033509658035268352712284927418871169399682161625729770142872232376785749771536852954065798947530116010538468702198642510998563614631188479950008133213827822319235163536227050319719986280485266745858953637664153410119712387576133411440615216688187872262391902491561440343073132663268285145442034722547423047732012061535618028923329182140043944755167750858531960583753247884166543731977464600929043439190987264541167015023320304742547472353205575228736619276452245654882980296024985732440006433155188928841148823981412967052223854683705864899795194766847063407961027385776146581627599642244624296033187950942094474349353278817579281164215543420709201054726379470663364192293864361685204497127617771734429161302503093990642889041434050135988497583737082027481875565251042619688571243027983326922984113215510843704446670442772843998013556245119162795490656971970242012156709379577187376903421896949687077848195857328437578568484197054968204776759185369702154904435856444979581302134440334270177831077413500101159088866964306470639172052795772954139986305327826969688801848361529896945038484252632015955532401255950972198465757875189858582549981601344023395129046740353216861673659825662183281515152194928768881222620893934109996511324938201476503131271898834873577930987385597299546240325073102174839327981554488551795356407854954130069834810172055142862504612382116122584769812222819327024731748924803817918488661620815603434964451161530511697682319907994697579487943599627893209825467438578600614873305974883079957038134070991281136397980389444678054452154893109808224986496662550665897244829213351257730626786542742438744928002480093173379396814723803337421027875200717248542710478975815381283961374708569145395557428445886327043705462327282689481700858729300595969102455648023250187504560837664528892329446846604446310484445037936738293423131276016341134311301092537746364107491174001734937955090247303230259970144547274142059543766835796522873532733537383727743159678154691451454722636431066820136045651380645868915405741146979317241488253782230768640468700952117029359317650519936450607176618245847154414116156269206540559910035974084184260300541429012847138097357036819473343971163618226773938463161869797101633205202398780316692262045402027219012765558664790376610981681685293314987401031122244430192123905272232824102822762487353749311706345931918541095580175617714977178858185115966885591125009720919649329874161980037719233775108049638810993654138996492689087430083062397998418278631243529476178368940846278584025587720103633121619279036028073401742275003343455705643658609623576410239150614423202171928180955357993861030237022155292285853551903214472103947042655337219773759352009273248935274799350131206513480217512983039432819219836026319000351758375888444729757859172831702223787457624987068057642087905852159922651199100517872870798836531241755569644382270711646745377586778618530134169108232837836521496744037111383073336830544192879484529049208377353749688814110186998598234783429861161913101559257371234354581734789809250137288539003276054506556228680606026681744171131135591812926795188018619319984229401019143367402108529347115495120455235871053109284182127255608965849474160284579684482261949580922943573447858928010031839644478214022994146717446566956200544254312587101059675821899575112231708876631930011890787501615527461883309007130849676437585330248345432818315343373807779302755637915008017450711618849581905838099427809359105022374324783796002114596424278194445468225054686705667755464696193168689542632649079252396257284684460414237370601627175531858836624919597772488561677134852232208318654777974384723404569241482487932428081699668040296473246715634561418117988752367473586666236335247149709506370399741824919799089301996170233559839402249223869653936476919667274851247037685369629743183095403944464406164641433746343515536295918479575063472768242120196558840234654477175191416413901226562441486684144507859741149101045325423338202156302595900400356365351979314452132628796546279986646275976690913502972257312119552482007083701915415443196131323450777285709339852409463622414129610324225566426333735886122069050727893547912268288198866080271642014571754522884599267201642169223430594687692677099320542439788044770875475531140692619288886464508235678833309748830534495120881568226272867107107659322671685015097408146531587732393972395042740406036827843701307187132803924214253357209405637698269949485295942295957132219972921569616176803960864191114905379168163116713872650342967851314437712320165860521426046592261912780107871543785291807683818711746309431441441715967685999128502824744572875731688728010846870338301123688123090936429821546380761995277512168314631888630210855834160159775663450032391649675189831796459559996343228533339999768407764442684946355423126517104438443672124871930678232573717845627888872467635711503448365062411703092726653748544370018308577242492734269172722417825484355213647646187038817039058152272892759541463217417351584775164677848899607652177119742623220137931086767843353971126460337069440024644613969160826532368660071651686902541763824199770071835874229020889679206465704032239636380996621361676217904167830935979218285492342562021487423572236757275848949110878826462502019772482899426066367051684781302483689251052281574874703706863586264407357670610519292053576997560721378923166331526450865646959757069441871577190312856238707354395197990560193879380742368811757142273914276975378534335241918533154742023472265936437227735617785998672124701492786342527671772984565322382449457945457836175866716341195494342025718555778870863121977501951170601815089059748077291226760711795828016914972590790978602599704796281150266920798893052423408392883575126658999861255264007882394599164529843217189314435922409154713181864823848658963040649444867710807929164093451182560453751664129559343927036098493453489829216028470772056881801687950885189142529067294752528988966680453485569102452694065685097735001869099560705364356407357383675749020727331145648576375209634742449237426479095026745983290324940724987220218377893887233745332501960268934013897604201417624440893745765920628528618391293900612645971973475966337130654901633798137341008681419429727596785869538922157880111435749584336608691806719411376775980050596400805440046149660880743779314204598465287735175470625619612434850869096719045137685033463784158980773234798219828376316699206233863975660180265038405529757610652898320224088033660944426739052477931778627204542799073604801086896085756443333358160895731087561230562093595443640888157945391111455345239563926153867509211537702681415057294341700172262683007210368148898928220631254723273075534672612057590591985480478336458464397110496112000961500564936694167063906036248793999306388471120814849601284469980736271885497010853571068769090662069426276814688520704926796122482924136940042561787109943199665267888113109311096513400558068272674203538061264796231963062991729815896077531467058604211241394449249966414860727467724642735826181511729669222195733229420789665324353811948202087698701788365140932378950843314342522060721391168298646513819127581975349385448373118029943686260140168248644695059089180731472820587167814454775062980351317787738680491100343326520843365124316202199421704959540704646765330124585640141860606061945606168432423068477305072764142655110670936678627632941694773218271681740206055346790193411224625789395449583076922253921272000184066675274130777802794639839118354309625329676188247212184239870418406050594359302426070347521104555383757020358924257708311449017129632986956017558067743535935477145078922233584980093769987631971341585913768865632365845939519449145574078592424050171455429892704239836698871508651994233161299657243622688934533216963950107446867399906156551250480183062545886682196605163745266761088675775266718672765520081217630744863251854873399174233699371700392337590189132327631888854785771341373168286906403313468929287173956559823152140691017350727548552342902399431648215814065714940112058538906078579116203400407883832576222320434683260229711900830501234738618103125315271644789426954625724561309424460416491905089448051846001320583560870465329532694939778659049601261416911884548445101852335174851155492992815111207806058462387869125277071070976089382670623491373228985549994539292512242277360628653284286235798850114637801593557922658335522247184423821416737942164728320718649051322174970261378788477202727900893369252915251846471058596779474136800223626671975952553080104607726536915779504520335026889786867102158405808428414604791917143662893015809704898076782353965775292459022182067002332365160603274495658609270442149511354080828404563368127760651337386040653430176926232275951352199201478359091010382820246208343674043440501429449131205136866436039830248245912364547999311063735931858845339174047703492064347896255145254570502298371232352975243410527784997521120849344674238074549128301018338028771661780370525321112862560659931796539244969305362463741644308984007384632015414376584325886699258495965611127735863851441688483331427448606253876272031710714951639989884509876645786765727641542428427139488106828360772797093855789635478495001341813851832035133801351399944051687918879399382351863043107664474109582645443568497171562260088107534385782494716093812188483655217415776987745476750815362850494060648528830011847155444532357278312245623977294870096825649897520599295207943969993528026608647447053876097304502367823602192753571670001502556307538327828211066480819385489048879263149617529348014534376036422156388631865504279498101456376458374129699343684291762963728324904823917789679316731118958339290276287986240014205067187051131126355697721284277888856577062290065129712272250076738754702326983680014637871997890435860317895396756858753387114312441887885867762255205110270124672601664927000923303210605754050766073075028470762158886173298695021096089528521530352590963787200438392920360957150668762288295490176639786525482417929091824524440084579239192470920232804431844475914561456405125800305968103652051927690536627579761296319691977224500244831160718505003499023310564329612286812563051372408311930006598710053211343092195134222472034206821903252941204806101592511467519932734854684077723232919664560887993109000616070088074668651687377764170345394534301479703549892680750599517944471268685553114452004349337774796596706509958163442414379847416016224480332535731404954986515974065339690128761877382210228070784669166140647553470288841109645431539149073899171639263425025496227191076344369559954616700559684291690138803310420445266492878551959431417889662588768208715079244039556740198689045279732398258318948097212070062562486604695838970075946054608734158849369184347733856503494783756698463079745455769804069353687654205401350860487946677995694318717413413112937556620010033565703118755960275949258394267454652959318912190449435411667041589163487358132241300459245660277933031559975401105992986348451040307738293991933736882080186962613261363414255509318296455866485705182444487876126824960305262540668377848658399421109878489955921687528384923090657452983551788222115787214923682302376851387751553825307564203276012307118204859112234409562963318465684923850096729416979990776008620835041192166766158114717144470825051361911397797686275635727782941512323144022978961223230069142866131134623633178624028203316148804896459077068385093440498844853586380696351021345202938976209994701064290488958449326585767353412313905787604428674141967988962229428072696586688158296838674324147414288818363720407153363996953764284959404714052485759352078206414775810604770183579663188718981710333903945275637117237488164134897105579062799020423049428940969555182877918858849844465039681452291638639596814288299479078673874271956716419199150439535890112482658703221307580571673394026966944679981466846118269206478622360957128567398503597341278052315745427084746831766984496915017712513777033827602905508833719050652817274372723309129765065142447824203603820630590634878543618467040238762588760347999999761754308344996412327616004281021923745729397013328612712366289821761365186340349053886946075042082554349259169151393241330276321425570284783777962028711011378704960905976724428464900455277640349518009627477120887336111112221044379934867264619954213835699643912792926953462038068348057676366536557927244377540817681645292724645476000546890573098212929827268890309533828006321511399454238273849647812258424837710254099119665321202922239860760981049491483945198663054734794375722691541346548102338000588007383353843448123534351279530377953499744042137619339451036104874546276879671884657793563050169747058274024865828999473756941506757281643448122694386014657685873976520465102210150169667904100986882726177033923573522580550867311658643145598237482337022091190848558483175230547898092610224128738115801855684958736660657171625544145831429424832664951412716311773544741534220697618443061032607784376097338067332852517163275707080405769560450432504703871880412049631532310347833420322388578830712896231809535799101845940046261500088393335834539503060524613841195798076063560067029754685353257796393815616301485378057881340664847888848891300788379383613833304653548404728030866992304071403876331512579821112037722126489053754085941660883046892723772842258249172705978033077098562937480880123114514972298566337864523672687589596290226366525946815498984448369085434499315391900315910748505091155872166261223485368630482872887689904269305536386874680019587318382732430367624486420913580677954692518748889395034969147519400827247318933283493724828488594034398573834771675608708805940896845436298127403228100279798021730940016921290534178797153194340465645585867850127896243747944158464660201949535205873897536698938697123375292936551707278565616488462472005995181161558257063341438477319177524101571423995111695550399308936726799587742690687235627911097117719691245152440307864098652519041288705850667447471660128397618332179184763014868468483888549910434943632529616245919450787864025771524898223168932451408437573289910059434379726369394082989917242556175422909420244257679238452767163146054440563932665651268148279478186150399651386138175580707832040432762254413652842158265366611246740711416786049541303152173921167049651857350425032459423598698417629010563000912149491407571243794089276849225028832724051127164255288372369502709304063279367306675795014389270653163147855528021304298506409717284687231671741253735850460345588473237971866940659517098243732493933891005120185559763228789361308342284017150207539025418970327250599255785184901699206785546852711450987422356569335484291921699304317225117348211311869123786214761350438979368961330232334221310453978343143153609749592937998311620971404371673491931376967012504492345772149508539672471318973426710213415355730456835143650484969227204359995375353920736936646475303809108122322036826593542704083868728020355673651519984549528802571059637284287383212450590805053798869242172939198372505040791492709194106348821126009989793208763739412397607906262301850571869007989926721872979156134396280080521775770875562730041102048777988864743399584748136908711532568406833882601504716283244472137390279461157652102160409841542977400431026205894987838982013502640055159544942252238582477168735997924228670060521421728918666331748150816410094578560941779332918075157733381536415149857242504145181606932148695593001708632407822994753507817610405235736107205514260136770442454709065437461213830704782757212766605198275477153364591987005206049841557340948187613173406675974145877844332246416868696569525712297467756693434614245958845754198035915775148025997182926058954362324697419019004120678169678096918709536960361166184760030382648841377177928112745681669788952159688506830321825191745053581599749977359164416902156939951586692490502373738641602467548258688200141026706143303778489479302790773382034191776921510489657936484239902314821500567199170392368230854308494140090789250376616875406493275271145909470383751261607948435992241977288714577508736734570593785074276187847640723287367242124674315631677631932410035804301046240120831967291122364915065752581936835314701773783798077028472548484474817624503352065688654340939062418455755824032734265261987658363516932063271415790727970820380667568770885874208149729484643078228722249848725834490995597691205392369252638584319451070362202568434016371081936356163597115600276493915592273812249199076001434952582486382343505609123153406552511288770129280342974341629752594607676272594777243048125462424199257447272582620129961970956045697874087866097950951702744020239300690306249181469962904773497756545501914837549683045216232898419776510559230470217092456034069724753790047396936685210721793104358188992785223796856580321449476690247066972279278813328613724964919344559315776481051885289648878006992174540930354686191280244158383246985935634321548487386160151605295045188191780104982422056690679401097913994359067970394725816008047335753950048482844197360344288855038494611472635060439163751971077078209410796918782743360181508187587364863269840345899180790524568415760259503580854332193785680144971948479946058284574764232519650109404598241250977742978335425190387062790353364377861915211353469441040189471005202312725905083472572965471309938834387329069072753724081514753201202266497795472705175947236418124035496205660501357870636048243303016389120389582249978768706200552345372717667738563819949005867268411350844329343461269109883752480197355521820149770360224452568649828773761350239077554158873904223078641120946704213221753029452408132549424823521804289735717383693941174362385688370756625643439689342773430706473279805755937099824600407815158443894594011222982303473702834706916469036399511567384154901974871902339214390364218796491274938692912091603100789212672327358326725615025571727163921136159484957277043961899932355790646997478505958274734007190127684362199981962298911592794615930699264326076467475057011323291606668894531669167372873791924335029402786584373040186600493830226821160582390580649868346796950186253990090160287100235699405516180073210688534767934695655392993739632413695334482832418372604153322241063029654042668907087489072953192171649136251765873750157706417190401573871867127250405848120156417044108512366334313834674253396409399473547130661650127978098260016932584107547930692150248076745653911184077783742587571688338563412904785459712140791513029668702233860829263550988316761544032732481921398908579363717729912698847295329759712105740495743015143631436901243789494792190796291430364396709301343491670267502440327023688181098232950548247932403363014594758799279324270249219509103831544670388024157179201970873420464427492495214990793222301626606233963544867757399713834373739558031532127275105394901846809403308866197767256101617854505212959994262722229386588138643857161510359811955125039632787162229166940903831382908737391337631496627397325189508867028164949240141342009337390398148637753276816747012425144860661192171739382789693633193954457982420829497703316571844679999553852889075903317039588177296847442212984714091428016385637128157597201327118881778098388414438396459883301984066729248276125584371727765597468482956035900560367367830393328381443173137086089113226906223856153902599248900539388682468810349061149881858999175485587875200026988414325923202238961095765185777186786870353101727592821076453473310389041266931385899819607622029086223109173628470190245541547274202075898382374676183134396183786909091344650493870699856053057432291144069503801341668128948894518886467506796115436226219810478854575969104993150232064179523530499928222476355486772315813169658671053720199698989411109860765141510796473886815871794063645645531820553466914030623096442196606852950146127482411422329756603371025780612323890788931706875899535656008095306585490620006631080976695228794663692968060020817655483266674312082955495212596930527697106961642388697848943971645301630410566517435211986886166329018645744560047981754792490966173442329732680642215577974788082016408619606781305282874498693266889844451854188532634604835747557188710610184141760385179290438310341544962191975930572276943975182357403747371880767788944920154908827709658590394073825163931522275385943060833566988444619481737453967860230977940132988012938848990428606385740949288356177194685349544417016586757823596759008070445757293887830780875322407041159863619671471905130683410273224183594201899116974517237933665200714536696740174124727774301168415289169970078431635474306558524013535621429605815317934183321905286087915181995518212061297297767502665897066549421443351326325842573221934746964953280835808867363968754305625514927696497438929020059484390022851832292325705944530983422992224082000983249016078672476531189902487185971308900716284653323395226688599007438092901839821259696209842266174726934084280552662824486504874972371776537068157094558584294216911963013054104520106974618716845279601369513990448404902260632044963552334773472897996510089917341535381113464234101773095719716977419642108542446312001934164098427345172608307492391745317187529306415873185746303081245244396850994929778873499421195850836158347691106034593469342805217684699367879148551723131244978887625159784896688926441995045109383922975265562716299165908222831884927104763821499967339699791420236109537383820612003453112474912899229392343569386468961851945072048375811673236864680500268583837394348342687273816540139775678076634008384753636152032000702075620228248289972832368349079085599391861503050618304772718642000228385584224072634827803682232891194069345738930440883795590977965648766509604151530518467766918545851161711933975998791641453134813209420514065918311049780023429971934678434155976241697909411444840210910751397758753588811523685467744142102400769896362222143108189818005913026788553150165153265402935609851379198453763327036617490647563506147785420081365542327052708568057392977931459368975975001535951631513465674540201560026233905492118839665488311069434734411093854431781300867773334659499591571256004835716987609474042545391931694898169802157858196889104923077658638025548465069009049761304526902631579649866752269381285677914827363818536945673458556397818657914653233680584714765615675852275188166842135464907430043404223815578186097145338996889396857278796510830562686349148449822782962341748268317309367833681370648738064585556883847906752448878049421824004509438796625320118914870213461431911041742111966428446114882578184402774874761780457318355234188323339722622576126841706566945282993093636791075738487687915839755502797359060621227909679772565787903642759341641471095855665346414335163694138870534991223663181498115568717058448913833206863761245749762952407942201783091749798758915452409654589367083604379901117627110106494850773771362997907425482404787750681957683864413513237276234875522223527768654544742613900560803634423661400556658995946588134289985045647477789543190431006050697660944357241797770117691078875234013506089652042839025887085768807885035428589820688753397098963830399758726086683535700468846607841335006884665725983270906136390511508961833629081334979978252135628018171109228261335160564520006252752611059072418122486583461586510901935399416668047026564660471014807119564302223073978969117811724600114814844003401249241202620328191788777024257299511857267564515879318475830621118966501924751462148473507029248433633145974585948778351460442317024629262846559571967242373705310722661454556291855380833489148778469283971615493544892123525669835740633540704033815501916960157879042083549815532936130718787517367326166416802174069601226332660463564151401518484839104419721399024054992171180447294317527327494666962747001308487232603410199863023391414982290877376346061401550489248596552035972881807781946626241399009416092516383516907764085788022608143773338824552450480471113471079565924298637562545143543892457497799755563361077916127037821423824724198952907614821161748616383655331626396439048779424498913936820668932757931801369943148898491917106399192002054102814902468095318355385782699046389361512306257020535777530713205652137982369181625110062608638759883900337596043645472116320750906802924735615875154475039510878650665765761998103239425585413732421479080719549557706502394503487659333761966589568077505386611587394655503301091810553838777076434658224806587471352512002576615880638047460902249301282827312872860798291772217715047881660940299241531646014631324494758461105566665562662389275586660455354348960574326025387802382873023974110844282997643251204223819316308465908956719830856961112058487239032473959806758040025164002098196708756845519747593829708224444578792337987165849110913853887079115830511229691531902720287080765388924805944192294481959688315004905770634961914743363138515807837067642182710195680494645656766194296761338047010876802898086660525287797549514081456830541882443139882868725120961621378111579832865809786922986996987353637832116582411695687855593443709421063893854299748720974424387772647026646150778737215645973831317262427018011458551462055765333372302295423656725713906449357411082623813875662394676311581560961692843335726685846883051305741823479629721356802394035037459207221685593722164819806921554556742228636239356233980551056990801288733984879397862410057260495669994936952153748848575698939030040063828299596596958913218074905371093917064213825994603753796380698992954749480547388132058256738500474961824487836651249782884675293322619877965510922281259926396690716854395205229056006203283794607180902616969828318473213948226840981120527975174943941519790744580810742724528007723348209432376928583720904121990737835888047565686408678292096928735298349274701202874807019649231261722612861338377374848560712070175525463473252260803257617881929946281634930770367102529557669390338417814029988155829650920653660772772154299366801909796493107523387041265145158099386686762862882741184065414654215397022720566916032112902147027161278335581201186329870734767797944847156853416849819524921034947953664854636955385089182350936348566737557052785258541844611419248375734548986895135569869774977008985265172369981128489649166979769076594189654724424695661986167759036937152905988853889726741819824117360230206654741108112185376332286480917543937822536809551188737670831754687703232879853337858379157163189979251882354252483740813083525616552515026674681028379630144298401382750451057163766087188131303877100476938379200523721483171850327482718146365444025767890566488469492027916657014258119023065565000576092932794863671224569153852948581742679310364308645776229502462055112080132983038834656745277886748038032153821363511235068668343601162632492453216865923744262506285485862963299454920699331236038839995973874857966430471168833466470822517489141827278408154307008467765057627779340705873325829200328658299245110636781434004875740530712756328892133232929930537748103664740830143347481764187039146880508457491481445404252705872908151501494631636656806646923514746723456764269881965284663604041909761939827643297147048170502760818958157538275249086036777276833669033793651289049668147585233124118931613670022459633195640802278479096470885221337123303572744656257185375784822645934830305621192789380144777419036904549530549647618173489844479042267032864683889678069498861537971640651887619212307905489242623491266613790847051452386562170729284884217578610193393889069636893014752256774310965600476646550799008624157212395213431830529209726678025435551815924726745438650456248253277246374848196770817560815379249626585952694596208709715703859930386534055347618078733844193980084278138883512549049231961149560715568975052596082235292261506440366791613644119561923078431260540368632037827469963763295476771017876158598430938231800995628288166423353985025570478411951389644565881498612994228516324222475594074180229747581758557166421623453742307989353107077474635386332580020708665385988205662178207289119569572560932367090656653285517644149079066083806571304616802687229185057206961638293412627126860447117192910023372646687829472235435138789886474656714555003536512475507726775967993166194908162896710783737224796984161931055000583620851373858238781599975187512990873422516065248400534150680166975803817776279860200317201709228737302521703468847047746922653969754874560137707283994031970788683846717120753707945284437780974460086663218368512427885217241472328667283760148650626104916429587304962351402913003039154410897135774778394172298951303898106094712958930189717466505284643957820063994888564764974334347084100793373381111437337368118216671715668958781521387296415099995232143913255458775296074046792002231182640828336012207414831568588668181847331899082108194416511965258263913050491437843743071261301277198471348537573629302119442937866251313482930541329768409018421797889191120567095736533259018519355491365360351385803516701632374227406996068766632839253873719514844706031690425582643535032668255683113436017224020209183530580261134350709228023593992654256515312621884659736151789759398447738481577861411152868886997451087777117606796361374170329336802791139891665607044115577435004779944116587911106058949997611021459427465178365257675578625788065509212786974295895490578193017596913567524258951022173857420783557140210266611005623928918331121765879685841833269670654996677858085541005074303551603009443751716546723502376757901119198705644160357541288280605076267057819542488803077302534064382156776939847705983639350638831238188884035418696599593319318067813539071905419348270890935957439752262563276380990880128226823209444356394954973000101721471616408738036497679852755939117112808613852055103513152372496308984146502182199488841180531738945534946670431927687952380135004661979431308312784503402042117308617914384606466444560287319905950174219156955936721287659037094478659269974680552835824894937291648667943022528350174682115392264533172469614198018466273996708195679834973449038674255126681968661950543225742886542239032084713504257216820028956602567182079215426952040080938221847757098604839764225852277337998960659547211414177764702809228895697552759854435067296490412755380195537815423259178553517125334133392190450542836456980446134080560904261034699130007789215285192658571160869089610970129528700751560583300539686173092243617675588333502758113977012910055711853053696895952762118634864730612497333920106964624761225808993410058855704023277760968640042660879704205686424150883609475559687125437278392882658868195624501416285874692232747717387592254655396706078709435460862867147622246882053572949204330165899333925321601948282391443105816913120116981486473228255503863529528131346944149960801341914697059199887665028702278589508144539304406359654883375572441309105742558545468606725269756314667540095920671327043947819787850984825847821246390313331847567812060056834074834637471706248656185119927831066537315759659181946652847611318219938873885819934651892963916248511473929779991424511375163407004455138676285916419293159146554469897541193158329941738442815979090076124229910846206358004714662626869010851986806910797461359888878730959688689326144447466289849786948119744545768381280492613040797081949142975000203548189531951567282424167893076398186498519453911014632710207909514155555571533898861879902149212629988283241926163502792049970617459502920853371799635081697328346091383331252657055608432539607987902789399964258208061769606153982751185182565018416851129342323008620468607506679772072004893452088839767738582916529116718769885402841973489682865844823188366638569671579947871904529457691685408056516274254590972391119938547355844899369387213111337722838988479182917822132954298246058434408956871641406680374909152164508928938085203076832153586985340605575410611477611519943416774470587352632015888120513231620271129116553146288427652132695661385274758578549770042958171506970028039066379459710791548091171620456588274692954411293872877581995751980664267435420865049044456814757118469574126012281809928990324628896526772715356752531939159148363606952262132224603693335496586973310393456290036440529402803566470561181828223609697966805663181188245520596615447408457100324266080852752267582892078948496573238683523202393694087342494757374378188832505057136791805982958760886581971856305793886010533506448265055371860105469340530079431626412173127144410735544003372705420715089504569056696307244004365408488267276633472283916921226982482916041494538677640523085505426062532822248482704144972054204878671067045409306866491684770864020998880484214110842307831399510394135327056703761253329999867976039032013878023992251377104438710019585684622060741083122893346797521645425352004451233259829986880712004041562183393422439476070238567132488514600192282552282237509466625080278976537261844376013535652019588499988521238644425235534926060555315797392358789253949849413281240528457769855348919118049388728916848161976243914297844005016643633685873624281803593805974900734019555881064902907502227388932038067493696148950716655765104092239606999801647605364677379777807395842026089018683837629504316152657046486494303160518104434289722670255517695409054294512524180320200423219195167756145316996393610245015199433420460851294442840536200195862441502703702705182184220235091737868905630048437497373312672155072532911094651137244276016826291513649518938460055111476993278414264124782188125913619921444023591366404813230272251937513570573595627282545730014118630400195177051539734307176364150191108970102511919871465944849804543750052033074460896768442738666148741501074422959272151325391374299678077767464192267228995507653265642397254447718676869115320727568753599854210059418184266906379683111003779794927277957858881554556465815159576641398080039358910067599001318376987215756154240072873305601820854585752824448875800417723924730664834123069397870971805209249073728556949199761518220661899637799450042561838537971829342926391484658113532945474808421240413922938244708461505524811280057924915002493839606836189040920058988453723728579280808673537082018969443595345195707843664663928800457929767357791207489728706656579909584940808888910690753460540884497444269067550425962311612867437887864228364186025221841987230008309350197766669955161670422899241851959433644278438444247798252794988831596590170665757094202963147309491879712522013963841791522956212386096336606317064848185642821267727954732419666670065633383397171807511997541737918295445000852813062023011693850341618280027587034002727625360702052924009058343153131968727683749810946166845381104847646948064569572963709145008186116491467677067279262405022780790333498350893135566543644384535493585019009946876024038382952356008264399387909937929386374896906035221011987369698704252626049599431680119087302165835530398342473946139420260785195481533362966511183582047843808172974158864443738748425409823020840683751533627771181933976908935091845484793105839377554501797180369903239454483320703419040979267389872347098928686366586774205597015489574375533886389329046197958500977296110303209672061309677269580688302248656276077404996234938717860725940418829275993361780825976741831842351472082504038755456965883526528189696029303213053198775957322179267564005384308470351249444909754445893841483740038584539881903314380846326050093179339135039799220748233202746094924959555963234772843691631374388219691494758308795247402495064804849591342935861478495080664850540579887059019388720276920326641806612823903344768308618495072799865820525303654020775167366723349562773635323496619782114953758114347200567169789782499289843900187001100774294424365316336585578208889185087661309094074815703131330280074053522797835074006541137065292403792084342878499824948745305378337981532658967693651196769067562302902912080398444678062852186127804415087134271582034151377785228665003767425150674017119756246159757112860743251195742339146806710122040759592363030603872732363431771474600543246938277083009504511475171806013526739118623252711555180921844528284991807800427977976496902737053772266045967803010473640135133189058621750938257193447942784341476801038030432832086477751796759219703035572710672644950946268212489318641969489414569579004444217263306132956295172670402394881976730564666907212889222448248612489509569767326945552818068777722820202055012683699221344705086790444434599930099938951489749383915395367301082286986026492443733323071038941032585971772013140098291583939159118682515295612494694428781203889056111253116671357996827558284899048897517211344907129943493715812343720595259623627795710220065098397800716428028070235709030352011914245839783312767682409576020192362739988848361555995755704538438713345090555489417381438438496441976495038826772435853784771045752618744631175684418673550004298379882389659561936799175681106909617675144710891817748306680412967968644450483021282820851670795833407243917441037199329811559524859964210332133700443193943312296872654136314659468977779702407860333328200133446980327516619251306383250306906801800317060172179779253971349691917535887894622793621557425580724147484783405480094241169903493724597232165649248996972834661329409511813676997874064663412452418188434746051803508316573466896800018328855908244780629046873882538852759283855603904694518627584339712879402678569528022032112736242453529013473550785812863722222388580982006912813332039269900694369183673271495813061646175215746843077509372334371235145094597310118344559863487436010718236629236417749874947475272089789324812414396243625892053549372280688812902317919664001003131422206906485339867599401440971614886744416334874345090613869164550127910570755730313177955930245776266781258649509469193269978018875134704621699110199459651934996906165120027653445738072545025004157479195400339797989437938953265503687063952551427449347584106184580704614976609108507001658695495008286080661669061561147298573972169417627815138250405654254150385826907261231755286027946875315110038635181072646708534655346992204355527605934242683087353209039786734472811433635788869792997544321820459053183899681310781521450060664722769751167369639352706272238609690704480015621796581389293449717360973671508909844489429516470395830952315977313606307622848308076455507079436268453014006249725022068208532740101092772205638364726499955074290041714998730691513345769465200833744431004114355665403654550308986462881052772765949120884580329816654713553529036558065910893422171402592276713691128113325965309211628629350223990443009614480448249493950186775821977284279263071819431830175112550099721285275621497206483789626545926119476085758476104398835051685533200784698418493916615884336479018544976972332018128591512755711660782881773531447097876970714540664906111782256257676203714545209706875513251176507885630274723258959164755494169039555372979520577067947586587872459005323728180351286911801688967829988758831834952714970631561564169268322002682231368058177156269345358264804010629278497115002045788314737499405753873988224997789421961426577889722906134749756992096042981002469928306329375786007538920814184027913724288828509511572351503413169450040792631550407290643652331756033830988955355080327501453051165340878683888126883484184496928305211838390474455332689145987536439487164086327137095029194236698666379357259964372218363548540279975904977021388571620447591666542704584094386839699001516675170318128751356102669280230508985777925278932536602287897843764652289949516553759649968695936662757431654917117815752895206552963400425920280496623979974744013097571324673927862949590725750300509854204234550551925061051662775589059203364741973638175730908193373692754938085212499745790323709265180056788790792097486560844871451487677577272623304121005527132022822442060576335038081769436854286287241977735275337096210319574714713363430364648669707266503525747305829779703398646798501871959006123194776033362805109100222149443924637023724066798054796102942117720279067100447425576018241822932685171476740196498760223433286021544399048731259136690142794023589850346921911298294975246823009001379148164985893977441861743253823592197089713349291506159079016585387096594762609630987526052783068186246701361217515177927074769238348649833807084615255291503474638657215513777768445260437970874730959621023842759679215389232623501396881602785900965882967901217864937480076146878770199760575954421431835284824133304278385657182546642806713827853874616534059720155425403940947892406550700611201310333856260613811329165808488738072606631752620772046133798193630051249094194833703525423582593347887593505000712799646510478734697231367210681154776209121488331086913951725273228210545436598951889064778583469952949196562818264663609080967170512067208753201934248579601713219135249443822919605996939157929294300433948823574938128490255152637195632990309996234033654577515175416111544219107319932590908339415638484326478259029642679142108609054577309491794105738740841501509782175807577933163519232334777306843011524685920640576028882036384148084582813065058964695405331408867647014173691420477025671230284729839254152586026577764303230900546123709414379245955969452366492870889552813056356349529865579482267946355828318701730147664435513148784239626282893020292950518377012487629781300530052422011243642454543740416014679846377010538950666074905014829502443552795656058325441806124236641483772438986794946804076123739527278487768544699827177482142808782057718196661459973041035742012042925693511666211743261642469270846744884583169414079757137747697094744271657804948587027624245677652493208938946313528672173236553665328648090664829060779605981463024336862732358521805347490939119766711420809591911385360053393180897210197788225687273349372640802568509583068104247443295103882845035650464876349919400303846622349745353405298068821354198027816256794793265040448020451067311401294804454491934287359849855702453005877282502235264465474659625711438383532084815778527878523252100852089955934717132835065919703329908206016549440599552987649621586884434115161767596908663774032860128978636643225135502509318687143091738909275024206107558547091841455306417643571608046198091616450310523778517446466339640993840497021634605247584413015556551380732137154648922799212819998558799473076569573887096955179156328143643633493304984054778338391264330804533468509659292104014777557247988177471845898509971061914951305497902407791470866773337097528348890609487405918256396897697002339887273071151542076303117542758822402044406752727860865398234730406448980607314575294961039629381949647627721014235379066010128670909912109717262644413010875331091694926007216900358054900575221409739294887717847099844348973170079534919551322674781971425462758782950070228411721215620356304925927284837976586128821992741718474929737201357392023103927531439710858165602668523579945266714669283302999453511108304451181038284992454237957901286158320065038229395041876791255000555192443400304611964012743653560814721406504526401033303915978163506969619897831138149509501369494084865153645909687594152249810916610318233803441217364837796898001865595104513093333578465857188417883159255380645426375747379547103407708616905182216024414748822171478202327263305786472779509049600415695898994820387942852584744042694647673334091955243600127205644048226362290273420926867483461904046376764576382889298235727656124006888951214078920487743530638689407768191501129419802056504054432172402485403951585155258203910240424574910132156917545731995010143749425146767893065877887142309118889473744052648971290867509148890107986640712812386539655843430207738996645535576951583390193688105450649328145238482764006799774749147951284745231752311759260758123802634123625240709707633440876899172102399592788050420700109308506211586808633885986453572956268643645905698757539459618651089753624523947006570777849629368194220214382704388149210432144787599416506064066724367852540940512544831462858780621258306857797433617828229279751496659203706807360216933023271789133874104369416019057875247274547542043374599329500369573643145757248458208266072458733032354624152759275789595369024444907265125054260100793956395990889977216250044956607900118084466141389505834816487921838566699539345981251941114866015068980013511361595479948581785155133646381446194771264233616293791120564078506218653207681330707037502130698321667761647291314236496313742127241073773101900914717999588484834908443406856771245183130295473738323514716820124035482188853905932882948149610497973090090173584919388124895780903286447877393905737385586175423231806793729121451351716488916159380488623058204055410280005267270623630530066917950158848827743326070775565157679258295102798105379048831687859651361927879035896728532917540360260312493843124843230793727358341534786142328496904764525024492283338902333075850840719727580593758143333294331588363414928803513570354396171900353595656373774884205726339668445043326314613849801565938827818213608928694448711248086525984824345103344954478962642065246973526841055371729784367235111340834294412899524168136925225746409997280901236589138042017002323800014956732763437384673079173409648359787722280584500899910777223255455237032105620919143163274203536762274847107368667115584884711873870449378542529596660720500383878240886342513273133073378997664350822829270965542516383100017768885908592396394750625729882035877116052283276737228855730280191078493727086081131970746181635646865539304559798039647804881550115046608438846891291442018814938291343033307939636644284726637321475691158763480989811520739538956899723435750610266048804184930823542593016387192597974907044822648500422442369936664256822452238695326894820966543639408580190178020060799069503716471613167879147560484080922824139995902006531422320121865856444996730191397645871152369455390862392942958708651581253477922264306717124596685967105109139160921957705378702788643334546212296001662607986462968125128715415452605827529892384196646400014425732430087505564489268043151889832531194427674911328799579102832278637632565735503170062755725193530507137462330126703842981825702177202795468664163830298502353862941872513458302412453173648417825101579952201972815525183963030506608883911951178037720112948427818796989610521908450378295551057111141905153494215953765495681178495602056271401319282769938215037260426506456772817755236705454438916511222044770828617255934977554012750214275195880990304099099938480069161660703981491315591349160707592536949769070296200975632168599433398686074815301950501113619583654256214048685991108646422431964999261993144288022409595836156863831640602337645240298789574679362335439267866403058948191907203392576427467787073823978179398922126797863002033743649099217258760305928962462193220313781321616556351510657777976454879086601550526302946041842449049376635080628399999092505083586341020453254179882178156198552554013552211676388068599174536836125036749612691094493768031717674891465940574122173812147969514703874080341060028349955411370729273441079228163934452851841437528609897585407644829647480344294501147655452543696135622061653768001921305459250569301985314479140327822073517576712716985770024590295296865338236542311674243980528933344153823790559059181100690721945367203388628586180245091420133519990570907500917103061587432686847636056801607648298781419524236682995889147123769236983557851098039388430730298998018036799852161675576754598310162193297287372411945922994214905353029144425070784318809434183409044855015975202146877143233833125413594321403827101145496106803175382569315033916758104401246430756522362485767737735078812557500077738719900651348338409775584524598925714059092058593247321308561207907906383459492694916366069485762432362350258300116462360623644772586198614793999608380097968249531059153310066248715055159327070301725034886754442618675568002368541224893575293061577835694310748710083516096895584516645974998909771875553869097431276830816156834540245132387427352854672689941221774800815277907219089425269460593817760751384807479846592671760976146375838163695911035363793678949274862276472116133723646196038117800215562899825483391798635179452579592263111538465875050871985189450393568423882605445238250034807648945993827023971059438380612808644498573303169580449064600273369467866444046083805259944119484937162756919652022383563796402997730161649661748979050611311334269905578678209676855963796793928955665451914507110835704604292231340321577740986285850746599145144547147553335329175805885411539078314715251040652591935480967829482061519212887213790770472474277048274106564487951671415462743750981023726994353527414921544605417023785971524456575274256371823047896744983771747617154732668955722773530921117928008231391326452000430654291879723681635896909584688578249389085411757085122727835235093722340929534604368389185980824778578662810544533998257508242877327665754379510524928437946944113710004198789836892685055439471388636700997842862799829731953396026943409885352208836733919390228460188040422230137743822431576734547954295560677199154910267444235784246419332928651125075277142929784164758803292067238727279601274989421676198088728054003430739082664535026512884260440886704316667322879882034236628766587247181143334705607546859870484776651768366020442637370080386308640950635946799676415496746519769854277900072937696462102383367673701522980318391860275887916005607350982531081201471686198428200575653270999328003962632169459513965886322079829957775432567796995558418183919069106953909475237274454893871271651242153544657758030660500542728228259104426715241176805150245625166675778512925543477259677305693691910160704017753748936854615758799754162762072201603844114482339130316455151411941865617369755488273388789159189166422414634284938431003898964354300007575251204481483808510340309967496269673822880588897042842048228572122464321138682209270676110942362451140264310650908368227236953646862976803919649547185513865080550674623788933432807790593788580822699686400788356743234558810670580944951008385670876984232177092399736251835746648431800405054300944177722869545817114457023916266638989466391914116052510142898301160141182543065041456755546886182893706112364207788278243497810233783627309226574978089539253525238588672874694654936646330969449723964823959450150136569857582094808657997521534650443753908862813672907009852472805918381613098801685631726533387693083066534443677240418847196971453010166467651367109135521806654617772213012365175239219592128162499308047242985535983542850241740460247145339469148862544289138020324382956276929491560038698767017542295120934166589368120961017785943946827630114139310568192626765323613122225020649370269519799635013403480394335879878946237020910538525226287444604431499481880785502933594806176630560465605687769584639692341705231709145956246523620319586303283670834255708727765824858118917815322109767110388977655214495332317952406884916229411008980234406058322814916025469592914507327755417088493013485975504006798602516997775670055545318061178476398516041634509835871490499207797464499117822222444277091369567617546875161289269152646540918424844366248636596712509829313025515737426776458746748024622702065568323317594308651379397815144059945848391338427780998419688021287920584296952258703220666300899112773202213625576036939546568433048534718479662835730833347441149382519800592098077828907600094187076608796431528887613427700011430571733288683010236604961470903480062327216019527590810968190316474957930316873035940905911455643612633358693342729932790852335057817422689999086390764825259159036236947529854012545988291911862849658121210136465382110083946046226013930781470065791708273224445395950500559359982230696525319765263004660422643987743304735079588320601352085939264472882963067865202818590639329233028072314398960872538158405430281235896883327824643343188590211216493016808970076349526363359096144393979653060482974549778569977055646081460973845632744489398275028409138806143387604091770033594111000614301857344989016114579627010075765723433035315812533130794518349556366145798777998439914278898941784396115598646158225095622201178036548714097359483086919690459859758697843746545050887590315161251992163190237767370203471981349460882581132095120915830761582299548130510581388403642229683055668873778230244023639818072222651035480955467805733110137671068597942777823769774823504584165121894411922277474516419022906318790360323285862993148435617523244020641796605973454640930028748234765058370344526385078126485716049005252407815043950897537405455122699117713654250405631430546998184552836597614616451967504555065623129933623593905614182096797666473593317851383266972227535815792762460898961878329011539056121920926039909596382652980713751280049960250411679468216219036809389089541366172862305839702981907083297422404545237670255985581958654792084060420054875970577874820196755006503312014311626977169249636171046897512528342565430649491401547095067594718265647992342883111211007328678738565048067509616428354558298260796896211126403171087571085029381992204356132418516206646264775630574631016415941599325143767897895215634519815590293514056971242574640633376301521000920781754574702002583994508192625679664938448272833406025704684341867847657802245412676408286835248607316359619227890497294313531099269547421640942000828482843967528607208905068753953570774643473627328835449502587682783884629506623325962976569398969381803552967244583887933605793658025743233263543598123801935099179865868639503513921155551016898376121906638644641862637031487749239022723424598005144419691480333069735817774036760003510190782889930422392460291033853880981064468159555481998066470401557820052053277496678805019013510299782568459464871676018569381149031099028431103727139168595478327667849439859476993861312223691515118568411930925244990999266894823385579974167181089570135264774322832586612490709038597923081611161497151591765095194213998115026306784981682341671880124308565399020529221896095637428313505025348429587005060529271279896293280227277956040156440755211096939160124705741714396239629233974868218942164582682302792045885777449268663320875331931970647727318172181723148605334226128044690706577582263296982753008458923986618487448530549540718303265942914094499868012668960129570826828104686530788843465140512025743807502174237074532524701178246950307936798859980901557545687284726545162362285312017524072996249305438127182949153391128208796806742249617107299525027133157707517352707143831365108488217295995804504487742890296599375052222750502017681962832526258723054065155445462058258443300880605863447153835503913579721235028810161044977966404602570389556630615188751163902214797751270488620570601320318087853814927488726334958438935442233670274046803498024052277818230842100557340570791709328479695075188384431982580151422810457776577677242194174861725549651364420892624356104060395375003910843835392382348008173909491140430273848415347109424955587903864526847953830065662838067106903480690334751343964884770961868571077627070254286947361507783921620792811196687571151181213698319348985360244039322491070076612620144890990233309452157410539929284963899892607629572595607680610081883255705840612054060507275840877292762919454897716271175371910182759093196560646923424946831444212929012042695697230909704952537906798527307452708242057388227864811491148292357985729265088063349286309372411182608128471295631316867409314384955897968997351307348738150018351063150827308238780274633017682008003048647051813625875400555897260399388487771784705762035663337628211714265063520304235344053816059466666388643530076151750964397735602135192983825865841743740248445828580093734617070869295741185621801713805885309658534893274366117729415244199773139870968641569397533065797751797981832152397450199066220577912928507707900627417887521396364543787232090814548385927886767831803281793623499928714012817714722709486401129614161564218299710444391247115561408242300178798334547799751786503793657986053893644241365431142200960481501354112155190823848873474584437764722294821614367460447366444563915923367689009250602095776131738222346730355149649933402479516654569757535135598234767575041223474911839932673602830470520967733254165543917591708171627599138845784917555536035125420876059242161830014295916366468740072087174402065321795233694565550426922612391289180836011583334376220097774865459928623056877567801659144769046496987301179459047000239966074695773626611494155284651055749092114995421460418925561955015135824787680893560436617200739658206283980154259471905339406578616373267266187226998734950162393701454294021791596553785646023983795494838255864953017019653095647087576594308873600148326219700544044001565999537564472001790183109469309327402155741588255075727295945251592974862602177206951099956643787154071827908176658937851304883399537472347640885061392014104490157146141269341667141850769192569112215283486132986557696339739942780271116767884456261550482187775697077760272104885512788831019963945531191909917866455521902235474282458462669239631663314554625756509567845911225504214793909492465837627789333617187423968383876928878614010038627239172337771361323775610759283643524070180898578368101343149395154168212056933617244744800235178214040363668788442612773722898872546154585392999633712296347892588458096986929767736151856103547438321109091415645147687982264204154433096514048457984946119869426452484404344280884936224293626919206660144219530189334634525165077881860408514238613402409039711712331995102146836539809865647623764800168734445318994489815439924590304036026900540721760085331425101075315855260717049129242096831687184588070917795917311828460340959587829306004797518510902016408109124940752973856514545905919439238377222211476413257723510946176553119662258948060046678710547874740136652894417821191563419327824709463108496008308410009545532992412101386702584397674215146820772219672657297797030325651908017448929199509546808578578940529263653007127986316729263042267606312789089000865227584828368814204445727474104212049323141907872614441845853412224513481271697750852102416833490470343367101774094055922654268462436415899227464313329255340609537500442439429700527567294901985694325877797870380470270439751238312233259761775077862422803776835270607442950615285387034091344937417845040658085948045434448209400831196749493118384910659175105893521673999315652207355093953350506729252275026257542235588828866754604526130172773126394741463904756811932054786175645257338819473863129665740653311610678210254228317569855147177156596814413373691942419870154108860278837680420908390113042488390729610698285371293903260163854899870418790653689846820745517167725175758360377484893091589462335906512987836523036218171248209676452189818566544097641860387540925980619404591396791041498416110027411486826753589875707467673086012512745573799048813288662999249754234476599046012274477567549240657232851084608220647693421368659078834446135006703097471535725616027967512244304560489635712832557723417055951788551784663584311461691609579283855727707149580105039800194997502895608161756184152049981657699884480046625118550889821213729009886513245648706549486582703158318904122674879239544885437916304667030932031985868669496980470088777284491992368279885277529601690275755477639575873123794841797035020138759148394602288884565916301362519166343976660060305232699508467728282623524877215323696032755598401281016961338598861829643648137897914288419433589635138205218969846771720407310867396939464029363656106884396229865434885343625583403226830088183937740854349085229438612782253221865008772990077951966945841130385358399015931709357587219854238405816399602331536027304481163860042828619483429267699272009329646226906116045585823742604738642803536345537397722239118418899651659026274922712836049796949659977910901874428628064265817613528905493422277945391563408857068488363130759953610071585262762098541402232111542915931131595650528726088045315524423497124794314183995167295902471598187914843397071445498772924795444434113939756621967869608438659057599638074378246750262116033734733359362849345280492405386924297731302796442884758345185755289979789777235741429619082614752423808752499275832441136645642482790407624654511164836395943571310373452165557969716673760628296008651178310370132239935769280323928066489780178793331927043061246357322808948153161172786563313237276294631719948480633475902036880158843254168273478621196772873380210213961673234016325816291979573662103580249623500906278914520608843213341984663102411304781011335968545198239749950318385589425193929048416884137693534903087713221198174420610435295091594336568081938346208787472155551099253976419489163423095338092153390238146076002987704042395417823774211364579585239506181731985534274817254495059316592883098351611231357213212134879494732154964606598053715451037833426787775892403781456791244534019118736189280547018933558947341221070870052449300479109172354561985028594280151526840060754678082179248607362773119559351786411904154905644959020010108867771873006407598536267457139007346087959336549249813544022375160940686806287849109370015574831455113111476343896937991689739939801380050281146984930033204321781901322369165707368174369584678515541686068904133024057841817922405836728383587288403150967427221422535868943289189163986581393608947677739334170064108714624098776213586218812138441634289742030949127529514039831296706247161125759095094811190046284879191354529183836848331690444383389855775352414385691205086261531475787050975651358165935159411965767494247625022389753350754580928425194741017538943838109911095762741750261596344129237381720563889270108918080751527746188218442730567525389314734054449478123577660587210205749603652467093207660531275213700159068519771997620155070008920677489896533906345434478118189216547538589508175374812964024626068899658186018699438490893483495185946902518146124853753792100331946789826522215830512890045374102208347143276549325197149928798461768082321339485586137698298309461357445166973651404554613260408391886110754363771408689514234310306420977587948641581390164741396693423796847189007848182285289163492672981624240843043874416605667667487294513466432254720993176124827388025714269086490458089326889846566842860902371437253127433101399284847870802882481308895694723566754715786802591145857456683593301692115911664218694887471307157607623746248081920106376396306012012106932078403774347392401695795272104798521559684140743715949382387027148195603043175178716756359413880691500502523475285269597266020040667952253122074083389594441089269599469548621250054217136840149166449563409432108712481428450710561910618659738005729053039960807109404095729475282041639674243851131854679225691132681385085231618263047039660836281866675647723899802894215175766724818212795645279150989566303788449657912561440555540727140012963848487455153891435815910360925886758277578513490405449699984530663458189928404889970512259518099302040366215561273821503413568231551089182012917524645626188308197155119831013477866982229587156256933357714066024091862861895052677926850925980306921191297825148005338041895429023945166500941235680193524105588967019379659060562043565303293384223952933109686697721780465897239363216680083788614532263454059317871411718244361009122087792327748153274438374476434569868056388499596098636429936594733864184484978708064991013714663831845093055702949170408140405672252297138313640074522791620098257343444268223225468940735789419283090335045458467301686414096434658234783773779463445426439781264358685364296736998061919296021648730586055970351342309955959083897298176962212329442444947399772931428627481018111145828414884768994891450974126510674166926777234885164097108924915524242359599019918400248922594279699982565022389128667810709956005052981322144474318426692221535044981574081739533379024553263567804998443059511945961386371705866477412728791390315765507603883610307531114812152661677945578503683200523021610306458778602598185662864786700823299869549467862523314029200893092465548706417882760513890596698678437833106989264607942216334790501614111876876288791192417963540214251934164855013668501172118824363662789106228889825086571509680361566589175227597848248474224964271746651163242303858248843089701702096725265787539799906606787010338641368912533529633679866278277159757025942086799732115345277015436092717311984241325541869781271925603944787063655044325145910944679823295449125267816710545278598844875299167838425022416498721793749904454825482680525430697926573656014412921538574981683990791400984825575779412931496432913284766546235987138782119719433614725993790674474948320616491310026569958567666126911298097884847383079784769036316279397266683982609744710080818314685252785469181838410861612893122799939669972429641689188778030943474618692761212197209945010798066003633802823811910667894519784891361231431906697279434603186384208026447973782701783757852772000702645289879505078104497312894004362970807258965636977774187800908949411643084278272517903976899584565405339166695737982161402736130122639518516171350542835074297354807999948064268467078108747201825995620418448627547791370237881432319241937937190583522027155262143372484067831602491295948777163947452522008739540753554442967787169436340381842322343408378008547656781009404181465984063073946517563635418301331449651235226323670914787851363736741216473628689426698273284127810010892252345333423946062596721110307606436136250544963376374195843658264256114881808231824481859267842994943431963180397129590270640441137625383536257386088845347798749431501266709679799849502070225718971268113809871639645352571258017944685324623863823986166615661483329584167428449329870347240130477836797442060900008518346890893910818864154651177398701239994555376481636142646151249599672262226003909751721824273400724365598531121786637698021649396713686962580204133533327435599982664565499893985472871687292938178109859345832423223667415127916947313182975997426824724654287758905501893989895505503661801061631692398196139823857194476305343276411403233495216581527376209188600164743794996863456783078210650858263878996530626667372164153850280568095439592523487715541114535498924265017544376449102205287215992409126481135335433687484680488496325722774476879033141970018269929092392817817584617325616873167243809531246183232883533516310869624805081099841074542302620194912285706737399183483435626367047566611473231238997596896057840125827151677192642018050357609503255498525710829046658404552495763726723337770005113079263725179951342412396132874208423100085760703409051151503681555321177222865773966690280943199073433285031219208710242241815093197074229650973751610616928173151528181349493786887455140535667814674906395298313033895481603080361321303618570197975483085287429151603878096813903809110289242748125146327586663991682371346476333090339983461871165333015554174950316418388478114644098424137016318485722830720945662181819260392701000933375489822571244209608445030122754404293477543655159467211786985774810681040880643556411128413288893545860149988564326168596880495515896437015077975140208623979273307345833668431703180768053128011160331571362251432060395696937360805049228576404004995343910000926392602206139257589927381081666851016557459333011581085678301096444770614270184679002391824457533549290130998335832647307930041464220912550914436433297420369729097619146685458639776214400963508866568298088825464094462498613042811256233120894051574737397193188174742362898179889003521140486716516105811823824851969385786828432043407767652482865310826362414337258045433820503821316760669304880500074003794204890144854651747532861113101631122449013126888171446734795653307801542961541718232031290350665190479617685293176281966656546967385623601008751822010251193478916348241793325795036022063961070402615576498880840887748249394683774592873930236712963363590703622281643111325608855584692144584611802067707368841418793432845331259939568786401547380760035309391057324474757395103356221171971496739610149998806275307720290323459205584306154005029332220949421160583481689940114709034878812427429026371091430833532158833091557771178253445546133171768563252602230701024344559620266145383470586534904200711871335081987420970084500405414223342164757005501134891252999304670454014092920849848231139638411908429922939774830963656891625952699344104626303861362827741261651864378100865295406776235131621103872110905967170610274016639049955234555314840813084893380796707651290737615539731194934008711789676217453043909270904764097772950663635197294966730347451544441735870274323277446516669861551259829816946525009551142583571425843351656270042362304521401381807232905886153876135741609692119831685262715356626894535625330849090156218706505724309244628099203936264998605771576213852564934116851270435732254952004151740259692141674945904206754590577953932624836624113758440546995264398411813003594191887810852627219767079923109723637070182014756507054431447298194196958492480071935227440925430933617875991838527591292078791321038112063323481719557082472096868929967108371236103613403535042162249019353621820017397629714638833531167414431997932969625802890646643578905062464817643182387764985957399058227922572005033338136794497845575323468957314080433636213110234110382124476401179019716352040568494391479490339549973286173275542168387824547027613797825657403759686942067586721494709151703881929550471191762121665286328875342988563256642347502639336683344121417556946200114918201416728507893415685260923224656312728402427610727423494612103411684462313012514997827283966329381089416384694402105555636773999103205958428591042264340380518010004642730668669462628597872449166740633172967098482287089414704491973002875798070166464657131900723960853183179576780119013338536128595689071688387686311650639657563903265719023999596159054079348847907356051564920306067357186604971097969896939093290046851773981446433386119520537741337328755340790332509326234050756118866690950540799778032222557663773860163949470903940572458957245634254046970558228177866968475303092315514283458729802165667970322405063877761948746516928011253636701779771131863308588342856114784641463409338029584197767684796829343828101529791107095124950733581606116737988310652488634356873254169636140858525275699505159192449855462687105306107010766955649061909593178702488305168415480029489104147447340648464676332643810352989879227926042152598902506837775757252077316348495678966806131585568150947924422015076179206871472098441917757764863194908901492320356970324890515365353091852014077085449033290931179439804264615679869334047787234404293310428151389829081422638022457268605349002635079171706433406638658873512308230989511018327344245048124824086991451598051426411348338020863228689490949072570154824074871684273734677098750203145642006145814042664399272750938218492810261249125852214906559283004462556427010489326998771734655320173632171500756880082526155027276920211007769094810879809391519356550423672179234469292288334488455520868122448125014054552807309655610675592351270974345434251389781470274672980454457807486475757504452353446470667551700776087533549882178748855768192559221184225634966903175766280766277985389524231170635902006360002829845487929926424112693673834838866194052799389427880211824323360665069385651955841442444869856243992724000273307261897828837214408918313764042781539750081012986512475901862745669580182728264751256519034786891366720741491468092980647752989639759087632876540202024900752805178896340482247894899567109138738852279951556210800251747732942881438620790456374270281609442649846820704890844660184196249524267961596508565800778824625457945920215939348952099654646745905888730496893826522324135690327726648196766480807449560235646941578968706010869981891089801463155645466251445244109926293837093739585332463489822609911863036859795667275394262477893655802132267090819095782450936850922594695739959559128252618730356188034870832393754516967150752239762544003350123467114264462254846262124588403308377504992020691746464995718849898556661844652757955082323883229821844726381324775507247590014039248185367884671324634199859728335175022706203801377218258801773559286926599408730659185087266661562658681860479890313505452221142469823646901835594351572462068978931151123869202868913624548635122325428080756419594046086931892561706185237754657186551527502432593208844062444013038692398130077180885849342641828476501090902039685211932584675958321710840361673101676214643322962894252106990177682737894087007780768770083702968378849542753792760962792859174936989795541492661933074699453714527346059677736308026847945343936975093518028695680032597521463283096617654462656246545162671791301371733698942706242543846521569291761409064357386133089353597937733436073758867505019697994144528589399294814565171960941199533034015920079437796349580107843828636029990962192074940443976143218324524932093615182280148121726720199013714780212779158165670835551034836519717392854714484278796807493471496553405952612867594832202671852781002935583796746939524341778932097024584602364270137273611948505798466957643502545301321081922114194462254587503582013077356807757255450455171783772236971944799562590399799280600942315475602474751266649238415808370213561491289240174643778213396861849702766413942570946389777711635973987609600736133825697567533407475251322491518678201992711870353013443047151094753650360866394391484579059561218395522032254625369599309349591828136559659050148105132338142622505531836144886421489402437720282339424632900437365339807033247778580457647712276271237116038203586073970084050619118215141123622149112597905063528541953286506992976508700471020136091467251092128844202098415951357042411040525094479285589874734489446265813392411294474529038143530937127053754516352416280038574923335434518533132304726388836589645822447690310165201934623811213901284717697411135255038481829996809860844835622829799898451531448745052412871494701265748933983873157635039286269357612472597289177531315111799026549246848981527327532558188805104060293092947866229333996650628276876494202509085894809163306284633443994645648857961613631150724618500425020142034224650392847155747226192409127113726242024043214503354443243091233997894051897304856488635780953627170854576641437370857255781209143997057971360887411199833543730564792137674117161468774659244260227707685601040333398959656584010977155482825168591167493948982295487348120119861402674400669510383604967772042419350950062157952245031859107285755813069660067872561289611068190968405204339398531427562320954837131267564594030742020191117463098927563978445821635449673314177372388581677585658871170965481728853658340798612947870741006311245109500966211445121580500080484441592673781891291390714937202914237848977966309025814392918581372330533754993237645459065826694895213028049361693963124371095446501725440387258216671005345560824363756491002045348130711275444696377210246421794646730532674944867494519623397248749610517440934500349760186621315925114823002426091635211176479787519554561754064912190836783783803371281797801649025372608576000952911713823164685302142348046100277451928218790310426825543835592282857847588549938913337507699634724750895929371996980411272531985043185507901359920847664362861519100559741294203266975711920935583144988921606638879269045902175033514499473257757460491311004748192851855035280062821316260011665451176439445361876946500599414761364889391656498840066425385777312534763516574251920829994944792186363448264232210450722385164315606106047756746740006722684078700776422724272388991115988967997113254479085381247528785374009546721363336336806651851078938495206907261887062834007561577411863390267717535506092613999297002054077073813158997462746403202808823414398790157843221069448240252682619898407577146873485648101136333441981776657656677839829470807039969085381928314569640997979487028000952440546876863613612463552587258103955784197629963457112149374147050711030788636507304031866901237734646623592520295989523978516449139026423444543812546093370201241851167906525833731054826980720565749158201224241828719182923615811459456321391217214936101439412881802491768489413670523205027670229837520853241484701246845562143589329490292294367650139057005195337020031616380380371373022630512870007059628679639930345556961790248202482629921115526590091588879529203694673455462046450120961060065861120941572439695571206529986530729513047333841322708264003110838764620671406622155482787939353072171979922975526085469443868322016038402593260463119305184100023434683884705564254386081806138654879030972404693761222784127661025518165995451142873035100513009250589370679434546812947547255374542471025843240929422426203371955284575280905831001170658634661664086247919168350829412996249403979006822946653530806426889360437687899301365001687158290178103518953497384399756284063087600957563370007416358949660410626245469858579787096606136796583404872987137888824282455009478695356432381472168581079126140643734551713955525257396428236601475271823426208922333390919728230697269468776140050844980952463159004157703011171093157145556001279078194299069085161792630913701901207724248421606909864806777632217982562267617653390253568762303179310716667575308194790147624314946671991225142843592778230574864351192732532056384705891636615695904094056895797219116073378904728064365155837687256933731176538722653355596297323629659852069405505639250892070077996844427144641072234928639222076048806283554435203034627131563895951721191733422184856663679065891145305600723548757805760094028019357588842848611034909411751139149081224914733380888445776234315450417508970597791317940858571789900728699345302403676568477782994290301829877500312344189080220921659501178004468772419994847126359657896952267605060242443913382522473365398897929663943153982326243485436006787864504561497401150721509305231233712837922073292314142446277154945492265532652639834921543394232349804731776900842420603863422524868843303905643828077133215555587214168414804115001855831751877083173728783246071720699679070589449674565217900700880379306627582996844216562825525052278612255539985356204464542633645987784261646940333101416419022682484691320367176044567238069342114964804266096361090764475217318964763640005284739237947012889586157482558237120683912299768968507261892243754627248240969100036547835468694288884147363207506117204393052644640859050748057655011175895629497982556214630232555916710099085916426414219722666003080705213521012601886022935956301071086017797235121241305603282241174295150262488975812442905292618202927330636876235040305505189222793795623027943568136862787095731791744017139551077641516945596771219884149194053430400500898584620932722175660783292525270406940516072371591611630091858344300014581288267144429369605507869911646929999999098256377372355878415060800590025561180663007211871521641242014965628849607531640458856095431747767864204353892307386399464610915047258194015625958990293898999534847727131437053591290167567168955719026973562548414756752052480863489290276752971579891124379038021799989002855486925995363722895215143017830089124113012282990702839025396667619216604725120286652977965815045537799137871375040466399008465937145694273051146486345999137434906259476846955396864973685002624087539305471694111210718121820481104578352917529501171549001486336056058126842741781661613034309303383241503156398609103981528840181698580216146436260100816024474431277735070831129069318515014584298161411952424528310076785432397024571331094986258449435845940580776831166818389015196075277213843278386761580290217400529521714838208668452183114326098369054407347263607899221946290325952777884424007851350153246150747335226503923019162743484452830139505106973953297968231337056589605366205676279099047973332766165275492798019567582494432065820311410539074407018518892068519559001677837086926305916872154301119391205714626247551002766862526545818037668426096850897435033541399078004350592408686210839811773077453751960104804600421435664555492243079090087901601794279457112135205653709047721684299050406741258004935913375587354607536952856833654961007721684245388068273348180921666007312337822460877092105058578580985005912379880970021011462151773453554330376820203181328996381256207695680348086853886217638604047126706452244633789948773411726889667626530725047146103986016830338697906699065557990516269500713944429777888211240427444068505569203465380585350719082120701265298908709520448256308371733657499616079449963029376932351699730739545581391973468594867625024893958551446884960780915629017938747430339873264049420060967258658273814111228829614534713811390422786674277068084145284893900368486997317002858938697908076284634821341053989208073977603147798976167448065483817377711262881074988904056565657051010003467729854531903304678605973198887730320316907158038291638373354923907448922703904786654107561108958787209932197414917120251869832798110879913891410560138554119625090168778809105497563159856762958488082500845590117012128551459738506707832611779768980756043147588082900823559327851338166189323886888323966309391221727901043409013484703985530923054140501095286545425718355108722695497913982697237408335503203674149832374832788180838246893409091415817115427692779230655890927018955447534321970677624063963851036876160314868634519720253249783508544629826792223131314025640054453878825536381123475058619413763025535500238968743668022528355934451150969986235977753571555976155053172985111185649442607255245162494406082295462192540757655093927566236182836247372805143221193073864231732254014878798710822266144718364252905226982690220762482491800491284027984194138123109187369881059331885356757411051122015390334573075637169872554986523888658659010718120866547493203831320570729900575695675096837927271561210944623460534482883821431953327966434154761316220263390558659840967562908925708097829661114881352011958460204394387149799444240058988628968781135408297366219281146805607656397580109988785929455597668869147849342666363655899979116241048502966181945739712587558895507015283526036687453795622419740171144220894406910752471689777029986302848086576153581136543468434597060770168327146633197886142702960612029083490711683256973766558913393650480351972194742274820829709162547429150553874133333284193036310448109937906760438690278065800089262306668353328501212262180221004391754768569177988555707022248784605742001336622781687636278658595118287980500444567742526931246959307039223201583002957058153456213808307285811011498050681362958531545328027755460411268436278959933392447800416119604771085185748932361957354373884810981135969460338128126883901095257553341347225927589254049364322020665747063754655820814569358288306757462921730167003802586685115072927779551636827899834566114285349104128452925629426035761611079022445371396493288690862101818653533634349366836846006680446566223221187679850325879703887334649262627851136232766511839647821657893440455164228505105815687064307168210585911402614035238406841844157328778466475674451272148236008340119307414780818292918008901711505858836371197997561548077788624022109338754356855813676206309153429054137563114432088796759137344652726433613074450342399345353752497193747380285903333345432506759157807948955391387006793531400746175280038895551651420178417772943235287682844156739624489366418630104096999456557729721939988616200624048689613515400364698275346956799273822086062824804806431756297470348921216845548304266008949157704294088079773516319798632333623418722949800857626707463280174194717799726596414574586463577205936807906029571102954627239318757947302945322740118781616814319723959825041495690490576185266375863515681466646513659116868530763037716908308240807197962594754939489243072787964619975244896381037203833401876277847468579880043453626132025099337258981310397741641522114777700929078620116039734214512478004719675610632606079321890113364083468961097499500065767146240667421696133216242894359064021800845579006465259698642988820719841381128131794688238075386690059379058399838661711209917519858679255019986764928185215938161619076187549273538104512358926399913364312859064123221867793986496526697317634678128891595823249539856475601913061763860566853782394245770426529807304785733100742170423485349772120772081536876415638143196790180019155665319321918337765365344446846871832939498897137075814533659191054983342360456011987315185047789042938242975030889627180578294443310973819094287959189368119205335512057472661502009052343451724225778969179749550669660858758079560469160341772040439138547048070914820939083161357700357234616566014008625103548441552084597640832727800849265403090269717819199424545800088581061308034072318797850579626135450160896786712742849905620292077355399635834362767739900101247194955259675406005162053936483077683587148679101375103719081147301181759717743967266857456596389078250578566068107155039542349917030526643530885417680493169280573180897481843647117481097974878705915567684586146321744565586738179113746263407206047552724696937213032750863334008640797628857681329743052906842235203837069989192098438607720878013491886075906757843072464520621416018925771640166053216077753349116317963718852892866959644032407717302262079984961842699801464215209389554473139575581258470557836650866588172258777561687679106522798202946909629117432815776641751798790085904234416187511792018890675405395989846634450445341136798205842486657383606107760539386656840575582545348415164189662200516082742372896182802945992130568003500988426768179935726818597840305990170778142138076253833220165208138443897691128919574293977728152002991136236570622955962703498222065292008203451224382495063825175687813305866041210330747193923481552048232032188787558704647179054370606222416336755670207215351310884335401121606466170555423323446162771936309772543804879292252287681406788190930678072427103279443286891619955051133708105741844890968810303114714584418169729545217145150965046406384906622011829588766800520178732981003801179341805368186717793225012890551171347338083387467092950135651211241017912985368486062199470704709561005738023280818953632701870511099144779060227021557623018746478494274996154426383651425322475675078838446096738440870668248658631819054061419189631983034037709945801184570026147235008215503261714183920847697944239739250860865544384617718504296515794206051922255720203187689856278070740913153006808901872591971910082012536799551983876635176892806449180735012758836168117544152884116513152881550296156728245740337467539426086457073500668278639596559307582236261340786257244839198507749775246376609060646808754661300728298664058969397283883430796263824362003154881483229130739158297589239575236289226595940652777078167266934216564058419854327158552247204882006940591767890185218264047864686777791195766682883588079688509560296368250211377304040664499720559945528302967423565875352860042293667915352557157709777526159468426108119895299509754257985967298922673102021990676330135551999970102138071256705741742939838966765841661854542854887847262242072894828737948881873234626981964367745434175522447477077279765170072819641103221892746748116067644311401789103154201003798100911814494205633106408202671982366041531038891326797910474892724013315940790464168540119534697893590909888654662584971614830691106056887578853584177059193341721753871971811524822596857310303496917877379005307727249552347837043450069392451600842562263418770608085374809740577869782055430939188550987676958826282091480538698097458949777574137237569509464396932564437120689810207547673323508556048513644436680400394587433545719970270151298670974348728824920162765168843088428330771777770894370456092190204193766081720581731937258762668711150592005109318105904825533450770624028609587427109905770513920517860938572578512736127847806398819126703905554212687352999662890962508397309566696125012431470038051638685844237852172875332141816418325740112086993859947584319448160004329453383868496039964453712490548668245736393452165505602029664292700714653124625138051949735066414212257414022484494780838928384068052850901942939087744634266031280614236437642182624287306830432297468636899893923932404024459985600113900579160837358712288077716870459561385332099641833026120118310493309150803466658886332795885942668014776854403831264453394603152061334239871060763863453051309741335686744773015844387950697397410774352994673874346397942753748229042787944505248047965927524840327637019590689159380932681877929203906766356933582219498749186369971436095584112014454064752442500247277464755420556492081040636553942052003126806969720175137945330278168712424602475660301224483632577247259637931928318988572602414454401768584307816080206081458652045365037000192817719357492736526699747303135526511632991365659810682358156864710049877944191764614135663846773832515551277657411856310228882221817508633637067724147080729882130693272903397509705462238389212728169131123331494891996017846042556002639206789610254999112671884096714094233772271850525882611457133220488414355393709475210431972036570707532663539362104680696596648503365461858124810655369535414016028303311924314614191422048410007193636609488789200178638180196190105060652796022526504549927132060947347698478813924872026583375439060976298042885228932636585805478280602861900652782477122513534388807549288105839036633725909622961185020294917383451405342854132390868774737624748501105583136026574490772892901746290025914983641843770394486080210753492938970469363558090698866810646718602345185438012999722837202383246087499894607551905012253673301903084116959173392902325134363138764306776539742213359033756678821762774717333670205718024727142573092173485500340720523734190601592498671095028096448495304431752383982109218809236258656183636152244202639029245346496706859357380618466336541471449550545648343343934523041485500218101875095181772282971634191351541361942863134149544651161889657514502850216436655308775778153460114283128301347105654634402661419990104807325432748563935162730086881208120410328825067019682472531860482275475352499263828010460608797657002989737146236227966828996810634596600970627131569358082057412177509044034366763050825064564204271666941705920363776168423131468428590273780719678670347209624241411861203805109222576294672194469307651104033623054607087935761727275623448205912251787903590238937752187065386027882137586801163924148467482634411652177635687163892152237915067097633875943165573770440980600811606262860230767065541181625335345528880327388137210426295792562100549845407044227418447659511330248487433026490091123160540151512271430232170678017176859557838121549003722495306596949721420425765039135984476263412682663444326995905012313553549537260230537322406833531305724450525038491947475305293494985311894934266282834308908472625888615023425315298650053160525335386721150827621919295330252691296815529808550791367618810750269712299405141318731418672151565503429796178323280745922349514990035404475870651867739431574832179294831473951742800894545036531575653413767170016556562569969106604938750217086388097432944335895500730001781570351683372610400428273648608475675409147119309406348427605806389106793528358330662711019793898431245428603408850678329618930117555741223698258393485339610349601690745533424186543251222593675352281690211493094037009225213528339274120286929360004797642681471449662714835597111325159944882423402821533906752112798307362572368926341440000330409223548539284194976331064269868034208410898776548626910211966964433730236081701529459546209544041017611985256061546876870594847010317349895918364551852323739546494425580909511318617087674911230270909832118220381310340086582652881122916027937877897120305137274562009113739972132549289997231336909312252772322899349854109249138163345432168373894255036849415187485453343974743129566366175422742378398596603665015996837482734281133037216474620871090867465310304078013045169097243579454982374251203272349158633488490431367399428048959349634328111836719372750904753038994321424158674078674587153915287588462219369449309474734493697202578286711914912969200015740166829281466980711052964254105583558881407898151203640245633823237649268849679219706376499622507481069335474743443125387469468873405923411432952457439116025339170242872245438009067679483300806265019195794317762352196314383272623388303891208243150599203732944214377661984577457374447565567193705255892424232005720808315585277798224491538989281000110946749039883455983366190886126626250884151407742214314680339509127749955597968666388059083175490654529957582528070128709625045464408905242894064886773008127423498146735304021017882756334982703255950021841441739392994766614558597467826463380029403242705861007914084318095141212896901459400494163019222641719172403420872000804723492575250770041110459345625987957493232597726588688918849139522311453220997971067406784118588748905103343432270128623973620425122638836736338867946769098587199316187223706622715459648632727543560907646262255382586701119968038948955142625873950729895853439496075843717079250998333300283761810776483558655994019903134946959004790212200914311144988253457115369949218768878393187171128923171289858186302679551910129138860157684109334445655648996351842703487445146305593495611395762717532586463511782547939504213057106273915128345381015664293397233921044174253123138055440895442807946684436217468646402328681660058962266479056825095923855408272260114575515178025546591368621990767951420079113967794444212607859893873321551675058938993461028603524604172513416584936260766791526405020365284328718990692547171122393017976397724048109664743886167613103971752903507597258061821939397980119407853480497710495616241768045352962333048167448241565254067518463360162776193041003016170631560301556851675318543651475073144061134977364550081594082497694516442602545888033603233589002234587211586301715552946449872095472101420297588775912668401608779696949945641806364205609234390281717266870726496328511971351288378974136239344373924658532901299425475033660127353768758868328427106973274336350556233563567547765305356297577387595909721534757699987875636208321630819408117102285936733848251820622944266042766197755636346397819543114148693296987525549724216122676606121962068917285394094694846892935002656712521227585121542123370307263535361626877836552617958079280040820341847918974834135559522060225429275591770825593903380795812525413222035507414693104716340599938732282537760266132124261071912535351209614049484732664823799488507358854700695718995156793671478853062125430590068082301225622231511961285795074517212610156557850893417959692660652757392498708229885003513102379601088134987640776331766025491800191915993954221860561318246990016223264490811069409704919345160718918110919024936858659698124977702106111485821334804860334341070178621244850159862026818747890474025902297061158988484918338409617243267409295928746476962721694910618676897341761687080002935663970617247330820945859120396314162573803194104393800598897797450360242030418687761014832888176808758655109632758295225381714093260875206404596428878381158510309373801306185682579523625484322145399975842635676056096084295961582649378668697533226540851846957132300727438254416434438483401540619033109315681257000697278610400545141313595499332326191069305709878663828988505072195405545072487544468947964873145791764781708609377385312779099686879202681419037035020506044169714731979589357602957644149338997895224517526080209408973808578377249492204422221983993326624154383022768917559096308189396674039792028350873886290894002478975012070413452451164939622029332207373590890677398111526989484908178589435988571950138219582423302872887114512483998791479584251579258754000874711054271031187069949356481020750527309759867706777894001281694612720544007006416095209921078043769452946699971003139338785120185610544207127601278276724230836979686531806931852034509226737825462682037401896748149500757485372450780997531432010066154999400260930229459615283231074492129604867603150615697829542546914274964986303732106093444397172832627447105251819027136902144612949146875602024555101016540414781503377739235244379587921341830988972811571639611421092727994134751859769103140991319615706106765316715340521346612578501427610886799843119968145974640762952384975575231288279244116057009055070696423231624730045967359847164521915016968902810138144486332608963312819175329139444401135088075012789417058979172182556601179182651429300423297300571130336479012905228524789381276062838442670653717114356393392474234726834043209567668895991231948818221714669227105447735388901630163942576267438754185429738464638539471312576525148315743224880866001409580903628877321669422556433703147359697564980920731761829756304442442193846150597872086869288839509132565674770281557423075157000251901817313033162411463324312796721015261677810811808370067196272077599525753461703874363813481414981290933125956708998243453174985743406253301641369148891309294010165604579902519355156530096239244997413120938025605986213101155481335229423410100479182088586457750081829529498512912765746641783848056185825793708622122490369080958116310809445454244539096737298073799915749343666301688386325276821808458889836655758947405945415060439029302979468108816983893377447577405483651429108830671167764106813780555543379979303157808584616115591973815317572001277270680606393297603623683650275252372322815257149671391421659525338466183346530022792309411264918102902988989877258565494547841765888693238097774232227563231052328079886758117993080376792422093113798116608781085194820040416083281026069123444439703847090837302570167567891356247311232373835066678670892342120200254743318810267590019790920267439844205720482597443450408679278400851343647355691419909074335187524268012995217215767151586153933233031051215772569665126363795081198781714382008718525710375539618535612638814727482270481816642147301013619715761082100712309291446528698033323484963032766767346680135440862944669853541653501171655307976396188767984944147042928032309567705008404572998811591419771173292206117795891714576338976610275003583499846140596300661343155187858887705237952615755366859434922079784440442149882842805280626869320503655904644135371253384432486656520186854025638825432947646907858265942586278400812219189363705199523079622302344596825827038314877649690886803188468843153712638595181151616324824530390014102731081209847261335342239502840349561121781834686575632281596968712270769817525573893913874789565453021387835110699699536967485910130015521983150731918319978381872590427766036368044328897265535082656939060058445131090747080949698268621077765474327196523897328608871984599016953675745227966001914093047603547368759992893430078480642058464140434293174040477317596418031985232563889442530732874408237136781935248735439543771146369779726345834792015916614867635889171687609554536084015927503770431499772478094156807978944067808299503343618878599348848223717636765915005259333223078163036075815269242549244899340936549657531796933833800607879163133546689566411339037714479759386041118814881724636680548719912529523779017681752159960225094398139310956826863390463577868600548953661107177808459370811136903280889200721647770666527060576215420356933180990492358524375578590868893016416921744017121515762449285343319190849680430362359113068900684459802868825048844956202234543106627109476183438985651060935355942603884964863248816555491687819878097168632745637549524454898456272556641308816081636614257514408451751186229545398505810360824889551243203053558464570288986080909432482294392365960193505082681718160832417112968614339532207145744291012069892211288288917564886516703551160586023416848258077346433487240796911514324449250462731920337108606774244289655864638347550313970197469828513612207033858193185001801499102015764331319237225279439802058956140517426268175381359066329563065659289040548272635664227890652110192355482463989205707538130389400297845736672156589983247421089398348410195861780307856727333485458702920352738200580180954357589420076327422808945498163773189975655959847280256677689133884887369783254155533804651828823864350839798881016453957970073649205550148947705435712482224593774455065914490246062247114569090461047858526281380087861234443720012168008472134748781281067875075512551584794414447720894349668304872856446523297622340503332342641049649072961686848221512613085682490447614363823794100220310275532400177504888935366937378212825305567558534470395188876575045400166950320936325452535567109745339459017838395246750078184696554002227911561020248226311136495883514967432868399777827499935409994106512546472520441332386451160644155231164059900447976512255607924869156982140665303858837908931166317486736824808167245432002270586728487795281885684894886494636077452983607191776564148893156682631107224217393478800948893382578686005033416184738060917505987868138793833528692563064447155463020129491591518602158439966185991077616982602620208624203068917714688476279296063061105976857717540984496735390382179091752882609738912634739515354641739188818290575121681564413314419168023170079219766604557929180161409386127519961784523849572843502057824254269604510697992849791835001429283777769188303970654877774515649995413793051790451565612901291916953705950909985134202158779240941416803386614904303245601970710530350365325824341022337078153328418460343281180515369473995276859335710123907197259015536984912851854626593838486729520477229644551651868822586742091621248111259491569416268250167736844708710128759475169126793498533431329945330896592266785304173299427926786016171303256254831167324695588425384278485389962884606476841064461262679582932642641305550168476187910762997750987939769428791351918188297412226334661575571086301584025105786554092921063626233351399399609945661477451153337596175481433849519114030761202247048003222145871259199527831107539101699134358606357857896501288490684074288417623132809611009062150631890966281933165598841233656177545763337703689811869623310185218259125496498974303465816383805964673409190453296878662364020043424035752575695616063815113553857280513158851235368975900637153449085956488486275579363993153542724370829598997114739688278438755637803316332327212377596241637225061757294123739409598204894010428707899725757864995938731502209599050103125045611394818181792128405541911309302375940831514947308399816802446507417185336568172162128647816273415494929269329991203972786646101433639340875388362529119949211026062489470472798727787549694519126704356432163348331660579989151860597158842341026520235254123418261883443490647749178582344274342945325697642184835787468315324764563451640862225643975149338527124556704825710124150956644818327468924287992354907324961027724185184826631085151309793806615837497569498370928374889191492512288752578055632148881950784616622869996174476021435861798423022878144424745639483513296659223862181433637758234668813840133453310763972558226857364125377404427704504158576331796230061642492691538746695084655057809340896465660311595941144798913919716355541876014718926284600677401043358645412390124727707764764172442840980026834036114941653174945343996295031224219686203735017035349548546186810556118780669332512237518150060830101021386215861609051864700750586951935030988612093128856174360452936617685409924085060346080213402679494755235395540296443107613219528570888823517196092878770175501394353282354250740995229364067219964895363345981642773456759144009914039336502537597108532268517320514846946179134003328206937543863567468830892188213593282145857878062250670150798420261360881731217017874723108154402845327657488743567075599512585258480742681365731450356357770659834039937298476574324320266819737188500263487283061520336943935915289195521117313772513975176287805523288228060784114495938460807250901663527928969570185835718544759775775995294139501720348683081414559290026577484715871413552777419847995759914464379331081370788463044105969641766309859053351885855312747337242291595443009447172762292730116694943582693294280463585567429614118757001587296769237590039042356270225943021002760513262391545894529497000191425969568544471904532069389042820121954499522914547425152918571925403929265529191996016996911271743368279193998676953843616145548459013240198677577727644561389610967460566839160495877404478553943212670186461180706884640095488498105489349663377808215026456200751949634779833309544803863602502039838247180666557447092617911762518723945255484968403905157546347898407562922781528919473478911411698708649730987618039569403516938954145035415066779693260610812378479404460910213439522920545064589964533099434171011553163805508229711822507452001992168784415082018321756606847414680435848566677049047841747482791380292551642854633949152247150258156245779328201755355768374253716747956634674947044117336192169962123780812458049375426221892374821862277685354485867229959023998348008585362510796769140153531883582472656289046856804788182304342776045781071526913043050968742378580806531977056928459517391229277963445077514529966998484943583119733460137569981103144757957965982638264053160954753489590426322384344548370621118769784357835643370559821482242735801673916906742196867273892062477511781705360122100664893300147812245403623710468630836760539783087742751822454697001267422449265843695341107807484447569401442482484514550608140991664716549073310620618174111825756295712201562451423279045384943748976918194874802208205533544550461184748061657210746589585656550846915871450114914829777386417400348229538780877051632620839252316297214872558897430443953289443714975731826681822312066427271087434378876474987628274143202654547940793274711845738697990419746509544862705842259381636346136461963142971386139808972129664895779518321778803110047636030123382875270447009716797842835879461262747031518943193062191779051415363220151728897815594798608673501542424672744976775746815966618936583512598967576954964150635765614541620325192779117917015653759924151524610748656818440647164515149091076888231897493736451785790383983690698883167676300359109856726730971905427249748877811137577605171548999858493369049378667331519495006815869326733469957436466863222640461073093312125508464076441050363699724647466982288820040295542278330013960225601035718963970430852735295293293906683763034643094771236815102318460324206481538889872895840603596460355575053655002509050984387497600687638416631463181263804856204544858674557112193878119480171429524078007542995278756265485351285300312452789247262723609464072709016542496320626095596272277714447506737909651547145772914961144377260251248174646293965332904603548262034268170906711338555564439779173349657689855087884900691846714097986425405446110428248422637851973503279162827693905021221214286002335947889430128297328346916217259046246388198594548399043032533442245499613429250888329135162308505943580775740880108783987786992813361663802585255245714525755202620514240384629001849036958372550984412888039618345532617649795797956034120048812357624725178535038607419980548909155469144832407489194284840474327328181605703520727213481068058523363777148691537785512505922985762953295511184528071442913827521526811397396159342126168805522141642199635863725556251123336765361886579192107519028700702935925645145322494114846505629783523556064414341688141453338608583827455455677440942474965641884814218064870799371438850889124482195334058621507593952569316413048431869118795003714400957019374179226255317743958406067736198667083496645329968262473465283845938529205928540801814390270694414566991969019624818025463313769628804077144738213776597350865910545911580129793463803182781319022383519653156422595062023555772749514595763809955307566278609943964091243064197427275822962060020128252899229633843554575004438049182601869993060042144805714387605065747396058120443040400745831501061078928960713358296799857029268406955232964076286216633288159562304100940043574758124113627515256209542414349840486345654628539076456266443299740314748033943439650530047171093764288646039175247926511770673469704309888163024047443520546011617625711694162400380409440622385110600357879048571733846037718006011146878182215150493602501628146299172019945188883355528739588001818415828829247181876263462114695653090765969846994215882472263903102834488718814997941419066405627966042489167915122333635479069889639638505268003676844068804414337563902197322479010675870181511935693185147279231610912158160763629985465586976278712219461113860610688404321275715396499150928325428523240590600742197553382538025206359457246787198146883529418969948022001673769741814698297112034686425556744653797527079655555886924237469845727983280040006504819765312855543608733994392330974523720913342236995517461581749249900273095133817196877666778385419906551451882971345464692428466126425756814352653464784531127049223585371552990213206278740574932393699732487512765508103427197659920586564832081941008205783415025325400691037872442198755011384068428044251432292706869365144547925280298178776976089779472664524432224897290993539572307260972136238666019727436999782404103263532946529723505868548513094336234510115973645384897247854344438746615325832914653596414583552950047199352026589873151401003560913041250890499365998281115647623947627670282822068768601855098887967453690512965955051004139856797670680783794338784409404056150073002234301944476041843708505155052657744994686911736838686800943598725084878533845636362421314121703536851744916738276618007222512214737495360282919816875213112024777347705056926172616312630709454730821725494045546549565633581091638813594524889803511373005371266297999534891296154098655603020049074507151565568605083489242056932566718937114843705297511948481372167343096817052049428128273497279921722880852652319526222978607318114563119757628530202195140088979969824777367230253850709772741717637325517839351506325965718776731074547074900809769425287025095224579842474124672831547078680647374687302631448601040877153215833152702082045891998306251083293249184982840781740276854248129901391787495248384532071718689877614709880081972357828126508201350175332889112783197663130529414047394882500103768573180602345772883985605135139381513071888942487398560857401469942412820477317978370359683668838898885254693323821124179024884836348559084630903670197942998947506976138472822083966110413590554601782172074139039022656882420817554550825116790578511212962016053656098747505852890152077163774563675087162986335377284436978363155238629438225809287680677678592792395922600546929467285996317848685269949140118604628221540389404046029728389158784027804321137048730053502755001250233240589439384581551280918040762449178617114945230860924545992487725345932239249934945268203955505454940197167472612629184800004696272885356124644104658936722731765732167341402792339278247618471317659546360389539404757095450958253373083537046237566087201945873375458046591249787016476575409846270902073340556388272891933459825945958687830728371225613177324059255957357565604140729886573765686588491788211959483603127954216600575528457723911252868391634702593444475083834184910916788771033061150898380196459487876699138881602971071494094062362241891539013381456886405731007870704481315689529306501761888953154306894927409315566218814725912205914517858553104611338974969035415140828946707543344082993091390382473127586629590594463705148564048267227904627106320440350010798217536598854621709691559061602891381922875148339645138552222697998401880614384088490577440348794510650803357440281427750830590162311371493398553949611889661551560402162092549555138528881151650065567194879552434630558910654004814251525591723394096870389649661519791330662376650208474075793056780718744146180010825792232366163963415532595680478068663224761482602966250572543230906879926606977465551818064776956652987263525525701116800221023222460022555623701408306219292256227030674409290363116877852689154557498149997892228408893917077612962579540715463210753782885021426945884704584738848719813969406473346921627087458070362206807881186051468454569196871717959718543387118639941293363340665844253111445395094442161138194220899335176766340685040290837271482579117182340783627995351229822104827777004737947541216630363832134769444852778162514045964677498110617673791671941075474444620996729941394399275446741764165846829423392562232176869771972623026525102306179126125162081340656072840682651596981747712754661042718541968733535567867975982838691793055557451357453839578828395452132350559158441576093914279195777406362692968187832006693618743286309138490360935835137863633366255101026883987115467740531792363814896994419743750123553273180572436018938479779158251285561442189931412599845549129176671648126547255158589422792993750214977331286383755839536441499989951372726230764682758332615683325771127950815965238769279458516004420032577549830714263271960099991670647267717795820562926140634177088765138727852759041417560514182087732948639612687661652612592179415582523511505343390822717204512273203224425348258788430064470063749965410142647836648093498335880497534835567238083304637961610396653297796214598561761460581289799096279758612703949137250571790647811825247535512464495556827565626194080506708926167165935142315301353524008268967850760057659375285050996234244157105732650792957107900009813647307366478958620485205710040093163432611428749678019422084155114176604282347350958640612244930621191284594660759334484114726335760770688021311025263898482221409169875933897912871745590026746713138076950479018705761529694565359307842160063141784335256231894338342651710655203056003668126989050962127678367220409199006074894885284712021845394666877065358369461889064223403107137202776891861200156440351975531574553937297581107911590156221897928607297991789805218339738051518873530970448542683015617804375424665686687832243450808466997885054885147606758865739509555229793910840155563172841962309746891635174440823850345374574853252845420979266384673285258750681739093987670775397380684551703049887853698055440034200594417539486911180341186083290846741168826982262563113058963064610859932530959864972053621941587049170261494159675232076103832175264582037768089882363182335497161577566888143649745071557586955237043570772356350482282005765174419599395848963783861830146449526031047585737955269224208453366256281109086687155315052793134274813265987474396145876027833234081110086609603551183437379477289774657491189811037530905841079813629022275002766385957107259048501317815157813313001560459071225099431139243646917280982944730681369165147979393252908068898044518914198020731204897066887014503815577805203964438601761171658888331213501001768750819219942247139646995395620129802122286120985306642366457777191663860370633297151574989852300917348412987137401249663301230516804110048657821401219888415049901389969326458539340080775668707300282175861945843040946151788319071658065476192609182452451181493857490958388855244898898446307281779102389203042712770236964121515644129121516241703702421669424992091753800252900371254385917329044175961504036031700745305726829702825394513537313360988387953542826723010910547747932387202881999606156336890983603337307863493672720202229964051281903293701926044131091167239191280272402203975336873238885484573918319558654094960657711867019822783563291740591802733376249584722942301456035853085873438515580241523297376519481800907610353783641288830569812589667723781838959186168114557054660444694512617746222650567960666551054621905022128391297132915826727066722790701707720559391043328079271224371033501951416113550935502985768389712942018474623179998467335225166212826268845174318197184938341207563318809708988007612423610389244437916978017282670634347012183514208650734404263537939071610167230776812294121206315707323525356157323105710849408764216514408880528742456070472724643919852547208569377318381911984852706788977457924188199640240159493402805627248530591603922530415037754522609670004987275713079928715188166910472106718895243589633961988037794648936344102151531177925571793466759016041607236274173527110407588865221609755215485597254581959972898248379513483857164181434845372152919199945752429659738955737960765921856007221720033008701228516559624754033535114298872458891024652704943269272808629439171654740853745730928114046566255360632741272833556788920138862944641639677015155410237288791922949773212770500968774694070561544013914096016425647776590913239990461644128183384545819835811003480801917569330396568607765732493445881604788905059316806858649131954950951904645822994320339731271484153805816568031869961466700312371654922093659102016957152492235850835131673437423883712350331265285873807280916395217011498169762967983875199773599149045059111704684432208519449217715802376528977970047870195038168667457480027844074996016849687176329494868108656457579675906027103858649508539642774870589667774094272382901965117722818442379764817460156262380871259268768583581153953521579052621017109313379865897727442498403346823439902427612636240075353700476591721447761570402394451859810332827256991036580698363176565984612688039846638092006706193749187551855141392469074793368875665408844856505438112739228846753629361504043802646182160493802641574308501356091662614152647663636657791905617677891865697353004308219700699321368711133175336865069140615810784026329583076885528919659124141276121113567988939131581856253590694932913130340660258337497695389916108312276854794603179811078335663395508703470915041440517655076949881516983917161093217899832064072785992414908402495493781814983355213840547896772481036904368824730795465174345637073987816454022212212294823594941805607730100244468338200459552950901105046771415521753781761648569265488090724470041657118192982282744278316288846966418274241184756038310713918315199251911431693399601238216571015239817445180665813941555744667030298191309143803113477416564856244176100658731920967975843571901267441911585379505993093136232975862616946798579071849380703886189331216238532295850700501392821668157513247146886342868256401170477626682195157391858726742459966098426117201213788002612493315691894150487060165397050562230837335048776365597755226223128409209062583270212653470320393906340001625741291302090354198765519251081069776828743245332890376470247735959145099339601547672142864005760141276767824754834733944343943440365301133852058525074737924502681907870052866516770356611404218386697875619834662412465734528961601248313710273893065758983867706074437044029521549858935235851508974867763014185233698766436836026529834465035861400331373593080901077915880495929618077444453477707757841284527080551491825591740693274559493429239623018169843189416552151458055301421671865749040967592095603072244936942829928553324688810100535529513050297107991223271468190565425522323311285378853175785154824924072384897921938243062041806533226273740143470941676707571096521213560591746704051901338446665921918176865951824376263633725549070779126449460712152410167836174197627510977162120478689297306320489179944414184205539154349232399080383940318195833763321881752942827984606154479694067684452735042336337837603009991766753044593275983848920641545979876847151154909517399202984837139499023623810183257044572646065649103453769015288230687537823866834906609657980314776999456462803974295628791515063518807315773582132855508472197264165787726190937799316145095758313074362703791388502988381926127725725370224834166258085418953524371492838321822380160543916959177782172896880182111414175072951570312992521687753436607930315511467222119881039990642165542940055412509718729876322608509163556810331799804041974120646289193581257600147271416066845562181780086431514459943018868048675575561030022431798380309627327206549082199179555987167717847077801384330220948117026804759139546969787987393694593876842784079166668359971114638259315041918099338293607338493985961285487503549251672598394049980630728229037041900762103666748101281826796360048649293684817974295950081032633811617368490139908890287377576709739942399945958066511988140413221990390666012653454759583396975526296296531500506758945361052808721479696965018910126571738029680869876965692271225392191227789503428981617156863010344388674866188368718140878640209785292357047774761803021711517583145421976600973855533065983122832882747151060211270519965344646826476857651191669012318254607683994947321784363382727817259313933209411016987410120945332218979373706148957006384216527808404081997741610882588813276800917958639535926964107977415457129587882707500141647224227137387643524243831416884736734545904197158321340602662436994412651396254983499855037398636120301038301596053980363420228621616845659095998480904731363134323529282877411588196694459608779283577793443848940591298838356919196662164449006815140036803715130909887118917467075527827765248780137716199094977412273143085757314659145614380424777373382861776015397397864447564403164205044550938831427743939502195687396938217749398434939443716764986917410796913163072405862610485857012264213333241564685309558700670113480718413795277685278338324580717495140806013355619118851526603094710007626148463025490415589918808186193446454549845519736907355180264838054675824385079559812395708607089990377912416806230163015314868074875238135744730327646435614229898199252842090815102853350421810535794238058213765958215303163795639367062239025905966029169334789147774209809135644614979214934804279298598464467098939101908631554611651695150691450785398636221860848779076573824571728942271676772123812492347359970189489772671854802286427645439699711125481137982068471534012392384535983541707577189708631988021024301888868272274417923087821791046277169115084332085333614399922648392987735289441599614062423683744399492587277436258909161404188034095402875865387734042078382817227189473134584903214972215814913025133728286917876318444413175080767723490463540293022299308547475016949175985144236888157377304331588225090228691118821942097049184939191071427818579816723300250863964580846579926478215745934324961850610055602614614402851951440519249243257142574832690663531601410850657787337024925308614315101142268634922270144582214220759406013373923248575634139271726584008653562809205905344165078307519153289486753999520830688492908856820346770327510438290073102278292693244487797586443141089360882883468693291447718569700314302625448111592524878561220877147248286253021359386981275888249001471566311375060775453039066129835678993862105526266442080905796498498027073568498510885219722857872721995986454804314303308023611745416809766586691284533472271766839690555670573466212846953529811333136374496110901446844891285788163754753908709517810369549677513905226874624505744336545475468732845286053368796628872592822741657732323992610462268644828005170482314286024605944174701603939149409302349827359717370193726737860294818427665022922309006245684785526025324574181508026556356375991505222627880317976388585529947324216607212640047952691864418423840469984030578787200511233087113413362679264941386251118472144264734876073226022182521020984316062170682077768219622043634106829026186690146166322280357664933081053685376047563398433826999537205080573355290680449467525078955714008782292458887947026673022114739201286837754462377074721805542208525756000842373704693240394052476640021980732827781070320196329673701001130684473501455543259119149473402774887592129346621061521623584874789051412673210647629413208884137984010384211602692120069335165924665482426050888652902682743949381740140712468541652843266208011687441643716076345539720612680354202907676994600697304675265498054820250831867335863190428780104098759152439527381730065976012558228897988341523158341040300030110872798147399261415510729799022411788997125604150884479991682123357945818776251485860754779078891535418943653634256238365370102017249775833931602244034731210426973005162830346690842355589911174438222095381293436994454238322533669453954988561300739099785121368368782567065323600004624762936921872364813751153058028020482530471220015265868619431572709362583545485880321009401019393401457985909170472603881291501727046527495738473088218860493599413050845798444027913822162648217349150385429328829449182075433548895549655582242723663531715230798394942836937643951984083329593458132703107664060329494502970519981584993208153960422498898500040078493446693459848516717437187151978370140513179470036454119646953300400100934505413238580754572339864908022692992803583361678862101655421572940341435924430388591715986256317308904260097559185615074616385507637988542174367027873662689597444294666996656074470588699058830366732781311348071774445705692358109880999734167511235619043078838542069480171293494365845851693844278163506192199140817328517707502230609544959096064069425242411293194653309847024197861524822379881759498879595981654663592274600158079585349351267031205571787635529862169783286642553726292606854580208754939571143881520757594850215609155425586119599122715812264093445647256417024529951831390684890975340870931697936819403349201726778113399029519707420162882004846134562017611686243326698674463197279637649566435321538986927135624421839520312532621205719318612525890574899477402414944627691321917315967861711900843245959254157161086626150877665806866595993785045623280499309716548306208543503131566394390461337488839068845096399357045026023711022381850824552146741525048741867211995412820890019466506655872212304934450656987411221898629426584362142932280174011132336435258938747570654403844447458470057783023005790857334938059815510067747408433078827181133757964609309099073924458537253583694074970047118712826629794344206040272180091558565364018641579608222408692317774650166616790807001006242368117230343787552751538117605846790897169314533831704278971088064476083933516764647845107572740627660862806661060561788502805761906621158710224301382466922986928057781039101837665400874893532560221937292938556954713111189378879692427268836957311405509092976214581039585377912925719071837222844905132301662746611672765905351062193923805275812119129460770200471375929017654726957173447470743871612092327435954044945086346513721008731237105264149237812166091542544640117051491902443618376912839528352815137578780218883622892178826523869478536800696353176693419655521070559782334527341747386009254118949145910402747254679642477380035690410557388148101751545587948637064696008101538870455144333095950672695474182344061053568275224386230683591521217008838207518215996960831714323445097497620606385982813843464807246958049386605744870741876765308943241038406784780463130093003742560858522404605249628415694585437456749635190145172018257248486550521881564184617122240249359397177545378839066320956393726459113171517804058466698184629059653153987109090289566763125690718071894762565691048805158803729821664400310641446477574083679815156172265112715443001570405944950146144929460689951650988177086332885817843213306679325081019198111377299453702756106499284062754462348246095645095350280325157867768925403183525737987210430463181994296455018778476309214481815085643826227418121666545507771900959541764411970674835724972051415660066894479874531809470331497285312682560790294903572559651331309254836510030080349019733213678335502664632227833339839712748950488111454334935652012027883402376824693818216062285867219107072384118825514656299953349401188815427213497867644467333301190397631940876900723859387655276108704705691158891118350156582044506383960913933962272577295643824710935201760649359026913833488506858557041469498957593075482878640444658013451365136675843005118636754322282368697069852017467486688083783050246673406754733311210966464506035465579090850356131435453938109661292337585163266195007763051773341254234617160525436261495184264272754418816952231248960003244540584831477875939278680636916356854315374802004105584315977572493519960588690756602018819851687645703255083359392114031916257368793620270022719840076660322310388912176205922118897715061785706194903909685566676142026901691237813650255722357657000805325330458685780736144610418653849731764753226498106180086788549037925626063860986957110796670228991359505041182071270536345226483628036314387358556124188308995291700710453376326782165455471439486892840769875857873273944235355731490130151565341748098921892334299857404684091000458259287722758587173374138760199295424051078658270396589541843280664749115039372323175836443662580482182793280340492109938722408945398504488195153095811275653610725032774376166642146699972158470482085084677024427574000233735971720177040489040704330965457287439669101101899716482672225053711103826009911104249477541442678539842823200280417662275195125163212499991517828340416694184811705839125242491760416854658177464837855585574620791743548239044625423853236862488270548341964130720429107488578059332710615218766028858632075446978869615238385968949842229141566460975355647817307839104206059674810819632417403630220073761105711905109020105831291598932356340930397351691513069654862039676504923468136986491276403012610955346307764032158066568499116939130036890201775568501678664715223069113601716127834036188549724270741864192676489211344298847696094779400203576792973574074176245331869879996951011236179535577915022246752663811266070116298947466726486704760474194696481827944880152991694784388654119685068121226787416806847119748949184834068966281308411502262242148346046609135323598565593218134043945796518201206926595375186793572028021197957338997549551261765819684754433904982139401119285625061210129599496422144167068189394299831400271092895622247337827802827523888623148366014948095173129892917576769067768861742373684074444591322794155914484928503026954368324338599228051374548014863903353727008751106244397117968708121093414605985465493615425508411376501287621306817315387940086575952608174228303286091721036401906184481280603660756993696488769435299973544004907667399926288529070860910185352518978448832987842178611710569574221076516096773052809322154643176346710334576331111124792034320113145825270917587374399346930029543966472770887819788060303200590228941126231468829511170876472362361366539301599950939567069792192600349899881203106255014703506331656346128878292421951994525228584996564541973035502144863532575051311755464737560286419703595303256747641283569357317135868356409204713292646133138113601267303461512686193896317590232384681468297435538789738248662089320648485119507798691501606067415927096078911858575264678063408461438062004151070029113320923980993958598290024561252643452035277589944973618516392540922369188502823525357240454054319102111459939713499221840639485907144334636476022758753061261028632658750275025286079626737210954814555709778393393174902313931873337647002548095687655960296768371260733688145809634753703762194755601485104532232771138624574923512757030963141215118463110666914641290620204848000577836023535985358174837517152712520548516236030760823417968412083580098860229197327638698208415477480624329497240568817721815405920828745268487909960362235321700753307240802889119991433168867421926794428263652881868581889526813672220217033016415968223976694696334385411127263672402510132853648508065021239111481996218642451283914126016997167950606582814376731499997386218783888610378297940922885238576720201844722303355879580228946403064948065517677938449442639323361968087272913701989306025967224120966647415295996585788258209897302828825670059318323814979099460898319472962632293632642135883690889894540612024722539618928722857164689687990994927994017968944832056432745829158986523294292204501228055451484810317814522455833777252708135076067092199282220897635641607066424700571200796979101623126810188941294293868522595695942230288563891724041116823515112035328526845756707037458014788619863797078787895075826263736201549114302184974046104993336689265864694208481452787377298106731997540215682218120821348285150771384943782028324933237774983441432334770270914972166591295617947574843862529875488504049311476632002079339063045909032942477687203167791890518297029159699711934320237783626418037294151348175966972321747068676892109514575350646321081704995237818302932089884021968391128928143708576558239031121716729143292904729191043756413155232877065168997080879430706966250803884750655863974564790238158531203348191274352720323776771993334609818601048575374047324676164895276813929101603669889114756056225564534172789232286764373911168162006254698385705022808723418413071601980451229888069468687225046805908099412150316611935988700024414163131050003048004612839790042405747755834407753723549218590795839042554488366289858681379748722229973893172208916568357870191207668786474549905734584458186846293277736443155947648008991861346759362678094675430627023143095082134302580883927542379894636753233482478751198263448657865665148381193532210088095556789656303683073463818695059796450387057441143474560665093931772099621796858734783052064495287439000731530866004827066083181700260835845200907377880633972899691536205759060077940806517258914091865358715392555608197032826135497709860971473452745544372856585534306693832343964869749697517684097288438971795241975694241904529829526140352274830535386193913878738946183302302710754900488283242738770287330824650347081344932388675073602777150180034746721351315171584430343315386007656186479139605665623623083582830277108284874647622465504672798296571823723340915076373789147361292134306166575790481946487610792760243824548002667368144794831407250600650647258188660149350919694853246137312756119531312667644956579462499175419760320963619818172003241448247007926191819135817872072757310444481393624726176992789759920946368443059692155588732937001750654341736535194100967467471256444086665579128322312519400529823630617487657108048573795892736307494814238284585545197315924356821393373066423303041370058912744171804467963017308355719704387273577067063140450069408337602775202199275836158746456478931758940538294540804738609363092795794935297454404600111257270420466945884609642992009398997869156688762540145146902177223946351357156634825568661221423756672385089268087867364521625741907498125246399323979395744637639015108009630782799693837425555782138792774102861455748465939955563862334786013717629787017655145556487964332607198064618232145105717430609937027486769495761087608754439130466616581385384718832503292238474215826957020561094046830834834573181507535136313125195933380345332820907100053909103844596953706897301114763025079297685749725600559429410047357202807365502101891133111823813043581428347597374321192993670721725736556372244819594969628726612577665319385372372323475458741408061920623584721453432376501938493524242757616013808790523248197021550952026210627380384051492686945718675983095878755971382701825048478079332172416486912948375644268173697160866906880961045135462749015340942723243321128216536885590299584439164297963985684650199198650204975668083441237874064544085383862058191843148860366801871853386488511662700324980251488566485262156524718825149180582323405406436297622333092342155200488057791184012394278871841106457936453519481753363640616730151174022134824389008102321250355543041369929297422237335467383744889054598508303910733489170546780435619585519841445628943197941660991716118799790069806396996201350108694766218508945531811112257605007283174784965996042623108745988621763955456465583218773550478209387264744063024431900552857221806984821148428325104649364651386886669513413161459104992272623228850155864674858975528094906067051565185905282462222849361423441572140384423203806168197973906829966118162075121430135924798875890559475450326122664950438544473221412768459542020386677154725660256422230945228743091692195503985119731639448185480334268907919387403718575927994393336141867785925747658973855188577126807232693608055796285508223439708947903403773360655964692363543390625797097887369482065931003681636444312508769494034175565107459927431608206025028921105068862502792447022850774893517793600743380269861705092001894868080456048226175859397136635771110663687275223526184905163300265423531214027210515507860365526425927096576094759529756283571160303879582529763023371509624288890157155916297706644303418601911774003283567819753638533668157836722615929001569434804735061922552171593419422177439206652473651518031330372941865668317157170000369601693809247917247406715519983338186372130846282581374179278552812193890186576040833345899993103519497730490762629346312613562147897448687347343228948037809021765872975455264492829101948839931955772042863529351571364904814391763472940445453586672040759098925671543987636798087144883744223458938142630495321485883875080114538064325779085250798690155388828106432590103969534740896143573214041665348313917289001239326816526121159145040972790432793072833895397738060483893622415373057010795109453431356887509305281432837807063261524198587446585912989728837825040991099668107794697473232044641096204030072826025070067297153059065780803248424649447719386921976780625619579859560313190487924362722080918175100579183971991577332122794060760282420537242485522786252523251542377486195445783227319399763754344282570493382303749280295186557807203859325833772202219833285627297728254514506403759019661761666675072062384237615832379179571464832434970917385429831179579276198662502169191714331461625490741877977954501392682118900639911529413678135431825580117623943975853764802342364203752504467469973005891138976047443115243656653699369206901111312590164931224957734884018325363705876918856117495132363199160583585547654733976056933399477709815951090163412645852093538124234790523570886449878981286607308258856532339725221519165584373081642307780089288883417247115797180063992340880033714473887130728896316885457604664437670425776826404671333672394581365226144458867481577336245681886800715626390459467085751070066370659540021180465533963066683944200336140800669365101834000926122733139326365026271763821226550374918765516087869515822679476702162065429902749507160518481843235678392722202324697213245741855647263751829628706491481922113922471355378720528065816282291779179764825526986884986435334602237640958413443538756146266780738981580244248900075203716583739251518587744319316571892242598767662929215540312412335934721664378325844514451138158432622718713454008000882053834010131890393733209142273032877572573556010842763148617236932857583490620696562834561828812770533096933731984693738533609455866492246090650148931873338060841710976859963737045676707839543475501288025856070026818387268674064114824462610572611586315639067279359548784229572808665175507689162324300796435236248465564473633071476994074496610192426093763083185499011580020800822844334965255399247438024600942882694311568600501298497216284318810253045027471633392194772323359998720363368026322436472261574916202083605017357016094366440396028437350932894592513026441000890844815941683374242430433430871010343126345005205640338010095405773145481268336575842780122897746319120139470362834860106093807336106368738688826022861049411099828880210689673264991068306279888883004692462725662799514445766771219736396523988879286819962459428998644089201719552194236320996572996974355828068984905509754881718563333161517460965532900358234427989634394144973505763626841488140134135792401851829536898012844725239698412590638699825928398266150872412955078850327920572613947732746874989181288472413329279487331941379166107625018137242965821929298946227221733165189794780918641104868973116705322661431031886962814214003701210995530618152843987692514229586055101453301283216246911928041200858581266276921249402171284250473817463566348800848837563618847940399336187736708638466944226372916134511744495018993476974340551348566269575148756576525177821268913004246147140555482972968829482652253028055208884683454821207535563305102235398947725733152861998936325259685093869971140550575329561154767565888141199658815556135747993749628207201501803105653072803366915181883230952914289314663012203140301251041001959017423724390145040266464949311963286440502774564378020347696571223396024018744026855104854197807148653976436459683036945855455566898530309223134645105210976780859735620847976721817170108154929895963195327737961788581587915623865200689472252991211267809078861157193524409655317421497127222201439121601574087463768099467584326981026377986376542490645733811025881295962434379276826810825609574161714632178061137066446113505083558631883157476777311275511479962453764971639487101075872115929903109005243830533715839785312751292296797654949514629129046790914239271845792854385085760094385087177517018250758869589103273013257798023989894190959305746406498235608021699506699034810061329053403528243439149292313687090679096897799368963807777027156750345135050763735875050324816701452006231401493509330257738013194071590579740058660520650156786294957272398070995515263617800061286063575685249275580233739168480808818767334847140872929546173593249216241342300399707003476917705720195470713980835347003894878054096122413477914911859898428809892121558818376770852604009096646984094808748891631688835484215529310251656865858026217533307216711628410074277726251466758867103676841236455991367863491762006035658918549523974557355832793726977965803873894728971103022581104462533036304289771443246714835403501286365571218654834883384855484472079662205818544343083237193915861309568313358114828827869586664532018757534338885457943271935027242182174974523226348286527333307629015408465540218584267767441766907664339196265421112514999754948515180091694959514965181496219964863426404809838634742977839243459096322376477232240692342035846644131222570962989378255584521863851078406232118246853982668584563541957323990991566699111971041560087307614326687637559378553574785119261753423710683149653799993774325714754691765706120475736700679054272452731447181126328247477727561062636348899179431278969944482796866254697545242124005085949707193852398841593388170046524224737682405089700107346653764204754892009873926925453264274780251474800884959938555883365223368357686916015971880299690353586469590165966051296002780062066949119519827755705008302913185771406669261687012702086373220188253268860268486554498912225891096396576714564118245418054125886696385663960945222504668829183192348214841467996809986327723019824765036181359110454483183633286037652998652111561339896677337925475578051550095511143381418159509332981055978642347579326468143117869878884679310791955139292140843621542661934712356015888177085366261853570860992271885603600588173817431086785000414285704029405850577594802052767218362848521870048038515577812102276336969318186507352190539268834696527185771594500499603320509264891890843726484521113878459388531480944418676799913777095518554733369131925862566238163279560448893230578524995396141398593872674095147211662538953159811247850274930460654927313580353635139376379612994875262637026173736637481853339123288142943243995199783889512989366068183902995383603525154773702549810407950581884714382967648170065157121532401530169641425235739758768466681600317446965016506377660256141659902562979902003808513777896797264507472231707928744688689715276451815546002655233236507963354733628944492917135707168103074746845532932473801104079796859476920451699666351806827898981741847672018100763263689342726962955230625891741636720168689439841853659111848079618027763699150868776631157683391860576086219953142177895648605129988290549107254805415628574162588495819154041944167704903188602430306158137858252098606515963764931803439557083199607939667838272928919125035116136242667294699586566538496802687169763793959806159179961232177472299899104778599637748947053203197507812615745157856529139328163852157930904605265745252093566541417354711587732087268028643851765432495702314058025481439468041591381782739100674171007139656395131544451261577503517884785081080631406975598917269324121754046172474478438975390144851221831182545190376632614366870449250508052995951547958487799125550009266097716264453006049767642051089896097552297894418323920376185502776047313638566246277179424623556933119650948355231574462888630250810877048064694828404131162985617653146036133665066730454071684746722457765483810095390163740926199171815996696395590372708180080840677931835022470372451218987889761938975816065384870983131331798147100755001044947690489364988431496377579769506752491814426957521634185542556822527803696404377431912723016733356671933637671266027090733722700080884689211198746031468040601505570612263315514978517057203436484554712431907892758007762571812292339852461242565249844804470923358132830206065683966141467895434296531165674300350636161010902749372967812307513290208200654781366938479174647627950018777320285475875618564611307267615056883532436136926073453852171950073106389339817626762875090381946826515054036718600637668753445823009600718621763730973176153264155844960084536805529114351739635141517053649322930509525889513260167254179308953529770060591614807624907447968099846018477528162713431231352067042072011355246962033174322092874247571341662759552880948350073933003772256814397638906092053398096656946658019446412495662702020444569013009965206762544589452451688761310499775141873152909676488770309136068012033192542287450227638386250517706371705578711795006094947074720485379534603443083465290231806528665986803816609107953377205620890311665300009285948220909344325765514727636872615460296597200106911552941546523269756042010554564279760006451970780320967984772247428145293253140671679362376501881634498259320519213378954493704326624496714870248256739142872328309778721137643545040677425052879277252052705291804873703256811739639597871496586077870120575831698516248754067617011956955985923487449067866382168176567607210491856320301127364909622339804903479826886235270527704579554958071433585819809296465146868282693611388729844554104311444127043507756713826669332421208140814797496182524451814256582971293822680730757095412622705876429404094937029812132804133801598703951082974520126956075438179482988205289179881914024799113308175499108643158631843849402302045049798785797817932146038699253310610780811294231470226782134610054269522791804408171073374357308525134997454081200288472748026006100816373313968127629913218509517375229093622203980222374721842446257240161883093601656471466748654512053618720775604008532663870383317676941115195354775348086365256177873305305224445675206814060332911348799429762714373247261434402414742756437274048143323536385832858085887774317721321618164823971858168646455487803422785280250056731397554032651589200914511646058923663646050577416530060853303793410958423812640257651267651337204460663831818822610183585365781271319267684243668048670351126193286287635157647060715159615252443233444643359806216520057858064662394321079395052271002962225668642989012909361045183714554145553731231184719129378782662433705558844203312481588193970794511322826769844665730761877443348945996541364870851831908072368806000010061387104255963490953286068223645708086839667985390707728217560318736181147767146835064770643026529134715100823450971848614105894871228607648793381375375006072977884685976941142498424141465597199112840470294226906505366896192548015908566133453971194859862328509473846573323914799161656505380342267654300713637854080420533493320470743696648774207469600894760310859481560609030625359029170677998986987444508427056441637259868474543247840275838447329352156615525582966251886559749893806720551918473093676833223598481072889395703215862506322570599144574304424109013050924957952187367995039264801027287744171776470710397222079549580297454841899587111071520572351190791975502603970674020944319453976589678345650140091765248128291624686735385626210134961021623453962626806132561928253150137762588636439897099323558698493895185185747212236740340049178533195733783771424143068874197877395971028576764793964266662747329344292872103261843103148488009933283604087309003085892435808827887020357874480864943344314040509945519533725004017847277883528641484985845267355654116407680061087948766114397010229487315074875352477914260639942509109797035732706639861770993843630491386978708556059074346032427945321532746527855700321644956751557788188847100320713549866357128643047640581532173372346137873611221906067939149521861261279977839393299947528153728110133113965515225922685290644043802461420657792468308893886992189228990685687349302830517009405170185075079472271643632971012116536319479307210909863733248782185382887949337748298331392694060379625093578791878455130576594793570858302518294861682818726975021287539841372799652632976828869343130263054622197516275750213875388499590522302710656440724769806376899721402764942413927834271765367494014218282862176189463459439468502499793901284850429819060828251040481953220200524180364546088721616433769749710236243361337772155014643154098966090486027037162467945135710176111459370273581944795542136615023213656347101443446253215951414467942910289115786177195728855376321791116655149146513922675999102419180837515533153739363415976361556938458303306568877770061766246768187727545990545888894413223763325767502563836649921229764633782709584962435123233226206655974751357037523396413856774319448126740437898734649229397110559590837277421824732920861603426243822647951681935612590562779405084375292258073720940929899382157495510167136072707775181582920346485810837211251144572384770529100302839989123937195941384665082017264531628469875086374396785120158366474355281818820043928533870559742897573569499594002631690857299739503874844953450285449709832753674070494519672095688523017010308316546677200573340689690493809372435132824098865225925486894859407500632896165634342476777361574232304231883349526776533740066544756574104792066304761828497790372651545477127574494552182480350419625907317128402500943198236716862960589144876938554072788161417328001744804271320827465912641438395881419114142531553169708733204199430220569045089535000605788687041773815196144482812960832900833034116079403657549340729036027673826022152894944481388747647621129554591765137510706731862077422950362551473479220752904446426704874336065291306222861116320017630333300630195387242651845862878432262797976360265149664975570330947243355511216225227256746137275489117103921439502445004236823417825785374171857280826648413915341918554403432903990380899243561323904416295104378559426204606960741705611899535399187253853724233260605974913192694862305338212980512190134756914875619336544328221380501687638526227393590847948204296744461501949077948826440980669661889942465642445810473229918139799114859285314847787980056681907005984399577698966711099436746361491774217636956706303154305143883033844539502541047273550383322474226487954717266075214257716334104005712831193400586215788292988331295846490425555580529772266271507230620998500318434639421893063042887913478973092187535049223781853981753095702795859713041011996550553299478149524091368647877198447408876683326395543627877164731521102657112702537564085969519091080195369607252647516681847994901802291403527870681201930236220715116582580637401221499365322733201948373141976456831360104168908023995332689141631761622660437972377992304900343300087452290659046448701251998184219656964526942598130015849008911207769142740636225874766580114767273474048891625662009076279090359374433921342384344098443607518943957668796560078131464296907163009750550364882372397783365696967186691771214572877873740481750384702807441144410295814161906182917365175859431901408230582218837949755205706923461827195736365145695170874970700755539213079445667180067710448620606508779827880877607897560989694761807628779135746573260290152234625188102139747948424020129245286482576986285750230685995699183444731949998508221942382468758351603094594960632928302280069922352880874805190353236502429738337049981430051562795740737877061007945547848618788387632768342798775937083055640076174209055990027577595027635633370309337330699554737652145468149293378071668748099889096384420231704958942249835893307792114584272668158600238101634129050232096449931811746940250986352151897345609841348325409979547521526736755565059519298652897375236066572959911948254054718173009378086439952173279041538710603785636818978689009034311727280544879899954094020349038902820385449017968594546238916515260859687789480512354421270349631964430656457076410531741138779146118370565985193344007053749290335878541708153530217989118922491809170492482272138922317817398029078651929038415615328187130829982148034224118187488109883539515081631101065837613063624466622287813034165920248118814551091862958235575963877788958301848132447584883737269832947852575917172800696109587363784903515559036436936582142462329787977054707047863263375074577239781501249197849536116384617979631104777704577348317660592060421864372490344007410737407545272549851443043849137049980135864597542441852753315218349887507209151979223621562792223468774845249732222762603570883749142806579876225493961630798135496496857093041864794942234354916929329564125705332750508309045214303004944451566178560388166983515721108571094723339111710902427117709706658968965509968573552453842388523832344410238679265146958018038838167295006615798027684603006016654013947824893791708361996905468448274695068471876596567405352736254141377390852443861393934236436917978434099755117344251041834868957471431642010093936315026257708496708631712230543094989922839230776382965815136223846166783126122541192718743393095946066231150308812408122199746542096385461382178030801003387851405188722766020723153175165621693404441175658189329161483816737576763022782286877450565819714196996818624352598487709652202537117159175040415471337012813598839667963744126122992031874174389170524630441203030135491457604579312727589370033616824389049572462261276447406690526588583900476379141418866160905232526256108090393835081696565213304669796879606883662006515602494445661131644648441999106936940915558544685880586294322487203781563383225999775102869102692712573422909931394314697225519799034169587194250686837259528123799845059832544605222944259389162277501209436298228032231518251281093896087026940842188583590036607392000987024682463732114159595397670677980591273324453303008279061979693165595726487432929066083318852977133841999710572706657444257398173955838879098607143902421520633339909518473427288402799135922760713226486462385586785166441043064615808454368463662127177173749048998154039792212568801413919487468552870687813453732776209092783512142442728504515350792413399088918063784748140671726095133878106840870598416644187700429335414657863787852628636391522579677959453647053744261431354232058674358871961928707964308850343865832310687593081061396113129049006971614070128314264382574649590349548924863979624098455465911095070951963021309128436375066208727317341214326262551455107294604723609115419348536279535204450394448701535258755763303815749719269938687238337077100693890844552299159896126179422948801148470567916732277283053029829802890119305776472077482801858284011126927567248493791675830189597878671284931061456791763116739245896108926833862286853772737420765700328143588237105787459857760072885556801170674483505192874317881824905830921942362602157525909037157577778918063948376554900168069685643248223349988222021761664462519074815693646757426750909704121546414882353006713081517138814829806372878814937517019752253751147543666127870740328680466357413649615807843243167591157535547384054323332113855089954287789741117682611220409803976855894592086438437087965331613296751355194561843097565588792769118941944127918810371304116700217035515634137992335186728319573590797734227682886334079104106752448192246638586789150110995641488296308049748097862270690439920989663914860620616797993077061263325547958320933410251293373636009051206732397202195674526481102181580921597277701051440434516931182551237473929405964595057618971172691522257481296286051452970364106227177793219253759771186822782998914092002112138322127389158875049166451465707430726740349376402812058331886462567547038544454003273857528834551877572048544306756818853599733208109871276204295184141656604288897663956289280489050009074677426946770867644800222225942106139211070586285939431638532999075843378655233266548531099243676394198782224353418717824305172529760378614302267326237955630437450408037853204990406586550668004612789678039508934703916996829648077167889900368751908036416181812138743518396202667968822054228099158158999120608483800230016998622877128136986593551847755487184106041799003151996376913568657018956135630937181658754942739594584571030814102667712601619968464415766035204912885321291244439887666781673732204691254303553406126924335826902364839495541026396468239925547019875079745038406206962083155966429699704727273087285799070796671192235873048249680806701583187667446675782246621209391567100515618081625762058143141167703575241750450218298432592115352961054741609621956762289411119719768630318424979816247647584022934558582571763706438250035171926083152441777767567613995825396464353639543528697648463863002089120689765397717187501891366962680075058106503024281332230313640923052073524432735183722223367825923752609207346773268278537539738489873701116335816388704702339922817040388948884874046108445526201886387967014769902139492078892996605818784272978453195300616350825592009018899728167678501490005507651984474848084380176689378882073992268098928421290883693870786844048300927034446042873128150313082451485743598628418194250548714390293251203631258655175977125038238311233729359986689504919905889657941614343337198526454776639062690229659725808024393003353836691890362108739827874521719884567156008462892414368736156982599319008816799418658734716846842607146290811360403564254323272907498943578552784035957710694080030074359168077137705386310905164270977572101312002020942951881833983864523583713248002402310731023163236518160094588432025614042781017870701687944597530513877717524537184134927457778667067221431790134341740408936128433723130683488766958652096931526249249917619514892710286010445450369929977920693992344177565737859684308908598912995905711558975683751474801778064854410214375580113538539025498113035493576153920178618647348669711796818094945852569228557324344600595175618689705101543723805345537567670694703394140246904743059553035403421000136345779238978591494440971341022108514456415423746884428875179842687076623207231088184021650916680521339795190535785974025271218491545888523090791893066810827694460182717384935546966924710188369230514592554990756519994123736891503350511815981622880468283068450302385054394791776749682322731101410151140242358554234054873958698543786191441215037811096477250474531449304279243853960880295959082111582470835882169296115777194207499563180539619549567460421181639986265114561941620702228497442891101926662699010108796202300338515471244788710712903859290701648959293710126773164468515818749829030771597655199934765128992016279415998517159258868467118857505228558313184636330377757076160805430622555435909157123817124477115072174836898226801995340774420509141938878060545329840854183591495326867080870149636644141226547713716073479533033608551605451367034699097028558888473283050562911016017450579714133771265344310704633256130605865313286752076312929389098460206899901301349555854332745572224721390724743933814436126532499587755486073271171168058644370428822978963886619240294899017718409975155725066311857005247437230089490074919325021641035062645842110685733011282612825626045612866657099959700697182822659791047889079953105468438313845638439098778251347316023889550058289821991333321871177852413011059050494386121905352079414105361564283300258612965686736854794667366730115760140351169631848364888056128831919923727593808674756126474784490386807398381176716918587648492900762995436907427910683177162708550761530370118676659618606433270969078388915666026904270495246848887844065487565457453104061274575188209128017547315109640111936847214707637514332020059040021531921609698944552310434806909131672636390695140513740061848911745008633165910958360778126098534167979415368862512570240268811840126130597260371706729047521486771912706999840556702833348006819001356010347471197610131534752754075769987655208836136745441385332875568489411772722469392461071945002195338925771935435271793985744409428683579994512487636816246102064238820450600992252256399050255230662508914587356135907679977413636444294188284215542650245445428613840681922146823619158267342849857164344610868033690476752185420286557852584093992332451808866582793710991250018576977196450307272051855142111361089296582407047885395110489780949163092150208073210381341454506156661784936842625323704221077248838335349487088266764217596103370808567038946453966674567169668204583800732516211492484342659566080258428163079352840447373478424812452087584256531001237688188649145144173288723914544954763612923190895010001539214232083037666005110721985004876468603188491421946579517557298914625741617417530735766326630873008065604970512009713250270872355664394729737942828021306148883294891212453643565796215369235703411477563166119268951021568879069391305693114257045695148935719575305705628484388783562635696069648979144021647216998166536076332230307910934782560753417844208894983972614272148159339123426701978810269319783605038511036938722527421135031926435906250705340776294102140839657755945350025585012742674158311227104534377648690582035880147389330789104663212493209338449517231117523420643140276283530659556444647194902302669271166801435228009058710617433285793052316834761047285839274523349061439422922981985094672486540264240061382000086077625187947501693670173747075758480097129738803065932270078112418218334482900289014884027717057231089200080865134793714538328203645681744552658381037900198559188290862850823289471430318420026125718188626425332186363689204497055526935172681663974788287711345681976695719809308011940541279856554063994844597165072053356044647101759365230584914367422113857240949422477367575300102179927770004554675580214265197016793165062769755318487403323481542861768088844544575588982303600573916093306091843799669193795987011893640007793389725933573073201650627153113337326962372927592646919352619215124815204267080345005795308053512217556032026540943346350133680314124143641331597927238530165559010361473388157272949003249511778995507413145008158361747333347262670405589805350347306511503555256743025825560305023182113098972558856723387425106583006590782013457522809995613584208421818486769282007146393107650166113128920069361164310631185514251110132206914384565742685311858670879984356483155962502152490654782311472635177770659791751579648107000729713216120023407561767085783586594087687672635336027105948793745128914681156121793656294934332975470090613573569985721217866125588588382426796831178181688756919056160737471066003228346733473627904672767475930126214649251702154246355805483290766424167535055094331233130073537060098626943484584181692215660013888176070815964906308200741114196576101198819186792767636007350192493864006690411864904098651347498975920405363122432358880220986098476655005280307451749899672237020564108082700347189353166341216832906368670900265504079750343712558355462502871415654101247893717808429255765627798949812883958767340877760628818181911721929162761320818102691213242431310909284497386228110396221853452410788765326818625647979203429862490904307708579594576563919643716469842560933956407397841195439725007637518234956611239611177024377958448498079676769552032962617350751779045986651080051947298501181745015574470880298504903072291435711310718269580676324773047420261549860816616143448680655826819233678140147988581945395155745753799578827467837311272432830811980748776092525099537279868718473961062740370199993219443997224969117961684533792609485234718461774123578469212020926489204551145162004556588633446270125175960688027254370492423782623419750529764711249911139643438863618226484516121070769316662930084259759018447986324929859094671994716279805255736349738623730557407030121807651379467721160383790692194541599906380953378906177063307441226681733919748194958040899156098228561430138909217788309887671870010192418599289779218536687374158053506612636297296421576556422174857796528782683475417543161225442802684587590791689546486785236053920146685368172667522696916538095065132207116207299565008460740053818345749071647941629545070604639454379598932833907138427769262655328327467737511045054230353276539929491949637630124476512097945104884050151282327552309881716743065795810685915008237506514734023643952205525558930750182453106325044552014857250737905555065972085660043167635875818907552141933042615811681813090228202969969575876607075658040173864469877054680290603673463445827017298460177902081970171643896456101982627679200131561023601210384778954842516578520503141363338080907340457234943776395714893696688100438381680323962299856360177435384679872285502014891469888111389049413313227779692309336173099778556630849739901613886955852851862952854852326844950245462748865551034561276564411891461072554045061912204469804720229372032249653219700765393180836967958535898347150102679583807238962781216434669265886847535946064006044342982888124479190165296758446722387091199656192096785014425471567981542957814537000471068688646643025088488710447679438412730428743443749533108322429526157990495328833322107208898214094935832091189705308547943559760399713023164118959717879655231070175013440218224808644768232365774571361924597369646235153450424155348467275284259151136254532550198345793905558535616171258006015920260479685384490390394282477798406770541923068556203550389742251761605633629692470101855160502916138617962272646079763220983958485688525605393925291400349440640407470881463458443664684277979962528921981508371460803814352994104203165243801412710462198184614849633527611957478604838978807955394300730103300573623825719865219767984668801996466355248707244044827922817454804110516242925997183268616667605843984919915108322325212712478179051880749117260011862014815659365550013143784424365647442944457035441240596923532293009605163773793265121051612310430295278376147552208032616108845147764567394298924984456920458283372275689867770120551933733047400050041786215126978597202555278705256307939124136602196393471364353228824691609141723856155076062420107756882338339265047956478831876384720026688889898220591697347587812819018899554889194642510079465036940963863357499313674376296112203275055217098776530609006876564797840542116479530029379277356288072675607996987201503710774912345648177516990276154972609674608750590363887488043251776843269106017194166062245081670146252557610545869077384346765923047860998418651106584397817693171798744810581308410131457950306396590233408093404993950801619412098119244469241234650644979440829273291645877752950586436611766936684810817501464707469579079629081296634169536165951183412695254525040964610561648793167721897193815282639489702889789403777673371032737479831775992175664678670299333056720097781818126765346539175181436153692382208421636242812972022244514428788546753831377016957322391868824839453116027552626555988490691379986671461556666859624270352813084768030258679538277353249486742581674734287301695873432547284086182215579530717683265902472610909172074538904264441554401076413837312577950914897753248708523037832625217726720187091044051478047858927878413300020197139652328777045096379029618754039769941334785930640989529680657569354103978629570452505416475323482227554740615959619320234076727760517042994413760823196649067620527363291097661912234846563714855196593799941715515687483446697295089506514096610725725044658819180651564440085722314756876453747246366249397754102025062357249715799271743213550565493345702885166319539031042213700834723183003388205270441495878549958483413112808263772832119744679351660633236800238586926221337116408382317689600508078791856249565353679335425511991589882760782616954342654304702779290236596482374989707484869295868455407325101696210245640392115288984775554230587758991908337099908747789973180858753016906530867898323392482794880442200219052642835070161185270720596547559630290166456620367474992688778624953158380416440482759766677120157966444378582778818609629388775601553505913660164662426982531851582172863661086158134814519478924820109492476320666057803166273134481615122463205272944004901765382993171733699143179039175241866221147979025797203587239495209200335853422305163717282812728375388730224750747902368227493380405733197669130438645816445613906829988663949174497144293119297935376519106638970769903082402236843467811742080450565630106254360442027230674029514562218773996915828037092379195492848996232904278710773606055343275870846542214528217006354556402418996685425046191834027640223544979766621146531560299751956550881603162267487592999212559369443181401670607544763967558186250633908159962066798585977724472939071269592855894280765590731130004886458584201934981416045046642043558697907955989221502549976668161265581911508702480669437399992065898098404668901330740959215546181234962347678874160847390104174265213614470342786999872827784042084545129471610106645853183552917291662628099321543432597943552113917843445378063363653753393250323558629661772069802762821543384055274360129300165629908082572589390295550593977161717148167016168803310294333898993831967013587922829092892717033715535210914204241439817225239619866227179282916740791072828480145911878041789546816234951378463016450392492072059616367383060273829751637728467033598025250093282884512180552977048872577855358588504237506090146713315451808945357497022812233622847833306775400730069701405451354775433766960181109433172128544071862595759895693117672861357653415247647660139377081272126623637974989601681008427578451964756061830823955516060529805345735177286853695827470995224100644312694789540823525137297988880357247771966303807285177673764757607207061769765705455391807986719245049706079817186825696952989663593080366196679458282923975118570336387604004923065021939921619303429475435821157326860021228169318269536940737383956061298541730001249385670744491676809368778755835933383330099598025828329486039860762435629779140081875793675337241125635815307602299559080396191964274562836403848863885056050108489571367407363353415131494906308201898211780618689009092026004873384918670508636612270095353327904883095454934360656450560533756245066399520975560144326705144098217585599674584418264373027809040475629723667595916963874039687160927043703195539510711151443884673074554065876404570938796624187469833969060764788898349383467194179845143773706201820840518128723186334008364220146575009070368247310297760370805035140436875225876990977666716839218066951137444769182326125614520159666803067048633977233310568184478316666551957241704203246227734571040232797616318933280973457420456541512503301641449711410600810596520628429604786407390060090785707174518430234866423075475606744342472993725768527857215412058425126642729350500283417188325031895572378941051811470875281521181037018826169113864474021553260596133682110818979073509062947293424592056189312878741247360061516824052976649713770387089687884327816026860505100993462002576207271659020340191058679450498357817794911780013578171743575358651294430201339720187715848782692769745837180993709755923895034462286214624555715191400948594251971706712161793428555661014675723181256589217748579663656090048623137588493721947426026593496419636264727168778297149239107426579527356869762240109417133486395906831274911167094096814369377090548422259030853073097030471683084288830835492780177044506932766227101524480073081337390376667645983245778097197187905557387851776664495544130393144184493108712067220586240996915407115521109874324943595367923306388796991013073315422318847904921042103758062034465350327440097162231009557227009383404380118631053102765752515496461365542324715534378796388308387292788314672859650879830954402150867218528130808613966463131512764235219459107015923742587275758694180630824844267110847460607938304643921005671620691239105288687948143793916041685034003674797123567777705032426628855736958203429288158782438708291729933743270400700450103635149683869783914686653556067035932424252189252265222183813312686492707323047573529607062735361148535773358350508197477123071893787663403502255701561232201617961220588422575833682172565015523260409789993495281328278530551253707680383151650531730023733701398993241374525123532270440555343707999198998071280022337830241282491189531909557904146061433232597981269331151505936069721155590495573806043416914077435905590378860444783205176475926361927581704956617449746461591629246542785194416735227197247039144706596799380074041213386531107754426199672367699564800525327762660242383636559932700381127205072227994786267406736316905076426060749478417071413849725562573448506132526661864986510084178391775108225160955922392847659679059364335865850468755475008175506158395287095708033081031537433871367085006360731503400054885104332761964905457669187875017080756580323289484583887122811804078975087520827014711663583587111997902996242712842569735840506513378267666976624745292071169658586796579757293207526649255456969046351376240599793424616529592840080463704687177428170045702356199174143732793465972769253408891619161029979759135608154496516617292906540500339280305135808611562227380641434163482868293231498532375635175867829043651014783612671489438937217675250810386638763174279361465345786987176419970220711013140520406624719960109725372012993686759547775375056957748867271890989822667123197841912133747249643328658082086678949050946102656435591778685050057885283795761956908763860923456504768750595036797494454540593017142262378346011381157504040450026865041385557616272105043079340329219881728112974302722854644816123415002067098030304281551744122071332876464401821989865726205153878292425048796685514524589896816945453031213059390706282241358656485502667955253821097413998470362436202626302079050357325293240288083835254919844132626902848556334579781906551722352530164618462189629563700258842769418500260693750571104514489822770985384841988671598673039416398890065371694405633418130529970018349281478777731246319077797662873364628112145245995937166978587721778039416314877564558308428661188514065924778406063123839310526762287056209500705449795646048675364747225124829552916796623210424293718063009654078420019397932872733555780670126979272056024936445953899300406192932680091762338427643991539879923434524488775410676896613806179991189425317027095033589401239445161451558515176464379902585885438042768608396992785819677039177778031649587470556991074312344501448491620667824008796766854637149060779956355028682147181861344032071110320578489909610503487572943225520786765208344533957214090374319026029458988222163268575774203982075969023652175379533935066095876630101624313341106046051408879005337658681043980424184153008741123037996779189627323772636749001171875462351699889043717676533755485754538688336743997215338857465048277899359055884028088672258702499442531976477626696435715447232389050107358732259795918126856193360542696039010275527011604489578630096609263412569946817093656492607765432681140175777921090187768118067269062096170848820643581972944431921415216099807529490535689041608448184737074049428920749350310328286267726071226803832317157038622872077990975463253152665314298097365474921071824064591440729416782469186881977904609644186622071441522776966785185733443904573637193925618580190808647037687513722242097985209830733491786468580509509351540161535417882821101517581522254278014253578242168909389964450646840133910252332712485254339152037313892999649056002891808026537980337573663300580531736822299973209644818849529873220735098109471388720763288400962787581673379139685063173047112719350025625424070108763346605406290546107105067080756969410800679865421029783434368587637530108334259069425069487843947837138537452558548588541850065402082790768976738594005727353936088034682964333233667833437454628450938437608648078141023365642480758901707262785661059921189441492881993253148295204771959149036963558713953013424399932884090496596191662851579080642380041422148695867688149064050286068732904890547247275061456840445208428003043985081200317476345520328350287028672910423170981279435859220016380006250477942777655250418112525540078242674429539472224453848063657883793964025031111468154109291181878198600062344134462279615587293310789789928594661141371003872324349317005961012574969598087545147889145345525458512645092594323931331356498741111781196163969471356119096594872156469252365633458916052098809414052919322571794754078366269227743885010486477098982148803884223740471187562655218421546457380107721595267083324979810741428107964907381534036512327360251938542263588269174637230211962229667739986875436829540454792921139927457283449501094690812868683903306541338650898389310429343345882120287180019519102454809300182012604631890678460267264017031022861154469799467130157895920576550252150048634366664825807838761608500284039361414185009552896501076819698473708098771757209806445357623574975913098780707630191983964683781579538849277104993867521149560249103531903090141295984875830008985528332584080743956609770448815563725900006958100686139233327905426018501820677265883714061778245519230570300325870010158318199926543001529977140995148926894673765940978159139079815652461059898132320196585110069045637707549153799269799040465311337326680296821894154937050588902201042635167651542954378876054708140124481947002435939136928996464004486580055893067299981324480841581793061600606354790525314376137423272571337789714139814518192773514087914415461437305820976353002533001676498072105631317013700642026050841821166985842393447299411555595509446709745565801901782220248135257881941569476887568582620033198636633775043160059727313192637942686076129891243295642943619037869273792809980544278037316868734048747631787969092922795271671130226430375888304867680722866892205923729228259455638402800014590926314347845312338886709569862342928662635069113508959252798231812819652598792945008999067033016623089583399903759389484848092845762065943923831974237631105285467535333335220913059195996807606572934287930166753743259232833701155899000437446456452667148018594043491863279565730193078079626464640592984259678493826851424345731676356599667801274632433740486070553082939814197917727788156929613940847211234232548950552270502685964662490096588223980927882207569609966911321022133154544980357881035295614215179006014789526545914009859389731083760669473926904510457278467818543565440716165346650490327893116887098882411395977214317387976937647477803678225337873885659402457721487291016997106348482836553512511297474695846584136414219305521285097946133037589465571138625298790200883045965840925089402333735894899506835385192132759256450004788761610143744815325810896273930375876130849395026967284890839917578932022902196480671966578406062610075095818196543149538175277861263663366216732926730419283432569875291904447907548231469680680333711127034798426105108722430906762113564797460639654694174385034791861473407747024512871814138647572876476921537390725796328613111854710616283224946897285346883446832856092519860816935100445732469148006420623678784867660546835366139063031467067774446853134001613446508380569435362196692214005703892763137744615912718545802433809884216748328783850895042437721227268153821461131870176368175250661504442106427689556052226020783903786187937305914811173753379776841925507783041887249012449940097045349280900648222458996843777194640056981132139790344404374623090418257769767973679898549281177821038932059146299048337590299254928572933027402862363110505790495743538489441357510028986735171161901244679731944089812012632031728260554766624454948263902437004712497971848437224208546736703047925292558696156220611538763029556028196888331939690403605091169560351309861839870165839591900733746319537494171096254428458808691039005339504393170983032706742102130964689153955187128813190874326442518880856226068661465908727043021608322935566320894156675340282885287881723176378178393466736756722834541338105595110171755674183477363749692769699379418923275749081267014998266588219843022887012807230879909794882824495549502082933825863147352985798029450213956139554530105726489927465919770900754890565094382484476002835794370082122244420307323374599283610900547823957788910439231650093730042937118230676685702123759675592766850687849651503266654785917644764596712287060609437506176509312475753531920393865277726421350329575446200688591971097679596055806726319989341795332820007756327820560570303035362845992123559198725494454984693815259487653661572049799971845304081523010825758517564175913059194543040742639085227819364503002253269347936994929826664233060957378091150809617594146557857823595132879089638939994985145707710402264585775626289234557710469944308148393660073200097914032274225383781519927767533257393250602738569346385530533967812416913419390453876893385652251825098923887964106161050025820927295119047434464029345905153590984126834784946701506407653433407436202356059159077028364091179790060477320418334859493294295163298211049146843334678507265622199579952881869803383563847469520421009331139523443633336319326643787409437091375692157047241780422666250415086097392486135420890847461055976700541371676249098703436917620847657419889884430462825324627671234674724919831814119233402396679725608486877007163373262632168920870079317540322477536926932507235068802515843859297802488427617415556522744182633842342892034658807648397988206606896150952251339711806736054981603174555788406660191573524716430363551339572561413747558991909165999803399295791589002436841894125580906103847558912371368176755576916509805561881038889272841395540054977398634762507338731975489498537462795400310677576043803370129575061779247212434744977404750481819440620170197791143453202958088443467442720826509025612839487649739794759053691853307108517554611107875368505038033143395215639129647884876916915105399964934280545065027294945772577461705280665375374648780328321534077928569679027409087011944716240250528682503115941987244362406285730259154694191401645298909947147559495806454741565922714449707032329551570240274026780640430358625158762213522528980216555695604038303659065583184084286848266056658662219265121324995693166670774379212204736444718750817780274321051031837830870406125505010056754204558051404217250601985863115227364496201029628557853492081216741673382183120363632743597468188322470333396352362781723136177299113363091541666891993249650611230099722928320405700460079172970248346294250766947715747388110254349277537320693634764096330883958836960293143626029297697392376742080974780658561384925344812414973068660806488755749954284244427373165650721460460189364994447630216419504875570169169773930529402619132385504825195849765383236872491342452548858434813509826842628009892862851639458435469261483536930615880168500715884748223965180380550778441353619780323757286642244096691973043478536953774127505471635691348040040155334926611271358584198557050355340844959252138050799865901376428997853417616441863461654330291949624572887632551334057475612568451482325322989062540764311291289714391152022611562255459486254462116201604989185397572212262643674530073810589463695284795824148178785630070836351322552448239743800428677861760918458878477803721414354858908965158645424357521330130692835959025299618517356408707571875742999916219401615709519188575445230377251719315764178838380119065664218720483171591306709744203720406078141713185720718561908574137465882079171082663698825891780606836501204773982068854116199467539519687387144377404958804200791773053506021774221851638146739322349559542349733703922894636158590326163632739312476946098809459674008754746302885071250294386788937070226055974230272789343630965331351883803420066605406132040971187691759648096138762783313692710953175006494705242905092735342620140608562650944654826113746316499379703526501167063962839133494952171976412258065717724911617512536601304903643359207840190365283461717517168245852434275562184480243943201238031624074650895942616678306313006752505227548841289684381563373828841032376217043574400022304406824689218650749906413516777205457464977820695033549424740256011134637339780970706891311316188816749724416733835204370231034816574054934078257693170714726938836081822534843556058411814233495069207013469152895445751888914023423828998196521440885708155685698575483138659824823551078088730950755597851803643167710119092759387227631104957401801238257793449237564281168942856922918513806159989394430088846603824523930858449218933179208096747392170749449555855622735586998705896116273814886384162859949384351137381178254077297551024685020080342605189206247288462648062461060826856384531800049809163672775272739634984282457890671125921924026087417877641910615012537059446441733793795492961581244552651359148290991501172205896520214140386131963627824104734883030860025668255543300436894322991687692301600545732761941088092854486148166009434964769926862445963235615783610013319397555688180722002034706745981429860399869424611117962806829578518956654773819526439123880079709134747259229176334913006818121377872088439297719450425008090763934186021387534364424456552893909136715918458406752931969147772324115813851058869947491651254060617857242316421125808806494754757229385365628609165169380563231718008076322977321178737420109670505371547254435337890503474220989514108158520524836764683524707936044931646890924208975988613812811271040789321987668972320145815764345097384628423839298900024624892492714232346483681102931652207927842838233448363819298620417895219628370254563784209583561446616137041176140524812141535159788533313778201909659791972043758276068411038449713779854572947650968822912397361350647400537653151288192272997000758000349622041051607507330712753389359702652456162434946897476807143806639865052006312541460330259981024738098047593154353153349740650071780927442418918849072276948831183806459279770766799552482414308451630576492192133412093210050688723646428754189937030290411212552860942275434450110712961577963353649265280216698831390628339497439778238134139213307892534255225215063190923799820495976693357900029033844056180819051338637555397318009613484435961112073662674214591924329256744863994851355164816822877281929740557263781053801376518567426457522797483286284114764524351812044919037341339721920742040777320884131993296546063368701206534138390853689514211222372245865374906367165878706498453295997360536392340796953599473776321011643225757981157523553937049367727931229738909278123071601378673424031665894992154125168814322161548501969686008466969963804762267608026766858939007228024870194572646682580243326408975335858740869774973821282142731653301184963346474384296172474142486849411589612116218753920054763369934189801495544207498200136750086832119149037417519316480786295510528830680265925838752340595694751547798419258759308588813470393659003469482961174598809584190164238151817152266564753016350070538559834592861438791907244829474505652059329123173474652407562826183514845469600218200317628819494169819924961367724339257884190920401814786550286523585931620079243435590349293080078590647762535184232809053445701219061464489513277477017855240209282431699875805376760460989187805829227276644694379747473508115860516899325965840548598786415052702261739929018818381761548673950338191414604878952006337487419081526142290495911137325423839522515240226888122661743884701484209079266034371080980258783835861295661738917614399785465372916965748052641493248056126648060645942832310725320494858502489812362502883985119862818584868369959169390398617420456077699016806576094832773699726426103744186316997591588032354070899832817863330047323293406575508712468791756940218933493650576228816082008890034994162244727303485091225807552226562873020540279359231009434945883659272049355440292894579159627740691338653472037543795653943285538851864300792416856059378109185933379688039500100889607052868256176240227138935361354777887059950201951175268151870650752775515888650646446520626782110029904510110494992616730950745613109628509746043724808933448349808960788737021299966944483892322135928344997353202774070103045204964059441453085393221387191930039730182291473364519685999805858145996021725789198934866723675080178091670341647261147686238682363292502320507853533575703826120455607897600051622151891164814572133763612914813302165957209083810592648622801001342081545241834361913133939237710197295107588347178972297306810886566528705774956665026976320553857046652207305474594180846634370633753279500134039344726152632222974057786436949860551192550587510435290463043336158301649741687536594950887962050248412744075838959344904227275012164290620719384175372510040701267249475693070672431234765285890199971956638964106278500771386544535331777912317766184872491429113520391796088561706924081708199442175870522651301182033998661436534151230826146325130812995243929064566823335493621719934787154524574002803240040890681166720681987924444601883321288132989672760960979419511875454536133116927731640125230072928743299171074064645301204304542374097522983047455473810969396189845130769752520278870214357066784099239496923479719785041611966916931728027289354100805151240488391630798615442233629307634863162028010513929446157020760557015362660386839787862760549219883743919092520622105282093641902352947649089234228224795855310514635927471252960304508085489381854481839859063974666994279682205789328529014762953291671299524698751172047440818728103669698497894017115805683049797068859958351375893894008954216740830945163808429251561683437060960644356180252432108236081948119304760173490008449265133344082496444791420454904736513288056999645089499759581085481995558880661165870287799772745732607192345726097114205348250454453768717128875433893583486572523255614734905134520864111572767961888813627873430966409136131459556116548887973179919896535540843934272388548732793819848004234154509757983848007545748977472859501521705665433119675495693427262202526830036102030102453476866322460775311296115340476702866955304569852698791081099738866190008600647766108392410098453437556104187358205250466490715000565677652109861938610621121181555166015822443706462226639138102851363625911263277585328785980909540468884075069596198381404257096001594119939992421839851929617613560992049863799216266011925439126581363842341097319914328412483717193270882075571030190139409050207624016828905971262570987853557269909571611049486477438849430874738551764598450373729199558208240112728417053147764033434777110894021021904412828604415159927314113687840557065848324866098261750801039762575989566841249332222176437255701697347092349056113714425843509731139707720514857298961061542973915532702299025294797673400397090470489834440463593115500905430182854897365977293454691659797911670216883225599276336334299558614508376272867933730796855865022172878125414284077064978939911809174146953852206676404604711885220372517304357290862403845779840458435487592849105246934832246435436276191801501398775723772711668020169999194883518040250149941443223100731605182547849044937855697676283794004496250417411267339158370686526996471484516480377609504227998415608286435146104727783470232012477375311334104561239872122323931264517941319088109662034351461772179160933051833137673608023932509367285051023317064797052933960350638126706462786457609723351482261281151652814133519885097311683366284183000254971602418893353921559849079018223916347237645620673614896655295902361544461277241186098478170781394375091286733523584862133884730423418398654795150716636035894185444961664599735543920044065943959181429383913400581104535531789744574721742753772211129743290184859757295420666262770420566937967095765408901084717656668937107332669713012463025434428772190598248351851690372833526532183125979015542308472114242239922319379485646648882762059868834051846564898364561065332986442632998145786011816906222503562380729335604839837120522485662823288740759111269784228786657893869154367363303520699605507647807505526747381467107635358835221816897106447769262700452214919761899870516840438493809799097656140652654019727719180367992731678312547064730990736336582092552033516986202967978662827894776920155954896996864928767964939751460117703453040063919260576954752201590670210967709649110255290382221248589753993641111113945751282174134847178113468083133597822426274269089850312667986563319070005441326572568534042197041626687145391821322017124856200366970192212952742665226573720646491133104268592792543040984739968321485207619083242059989854140605624458834995548092351032535626289928059327630373768545425546975195173417900951525413103168029983143448686936868234079262888975529243102637786543653521699895830279879945679125089537496370076947197909474030120703568668417467407802425933252746564048528887565404110008981169951566373007111282762598177979361190418243208052957980171736525586286907591650423579760786248315857427484394726480577705219088250994191582942618407596343660667129634921995032528494942728491805386392993401849277071669057141374438358337181576855831732655653049755581575172897437980190883099377249144383106616162132966046989777783435739158240674721930045283026066895974123413847068874526068470763363615891828565832864804903784819719325778505850800951013743416483228726366036518348088528666927350739484053640757266790379496444152393682067594169493014006045625057541611144916994234278446755630683841967309459307668067347247474748453664844357361937311382199994630471958876273853570740014468291322096530819574858860599033891985868126870909635289203711890360919549037083495761360749433042113957374695558509407913808779281978071908384939451625660556627663381353039627867292827442231389669787430080906523915236576801673433089153250238563587874483873130075713396494555051122756029081652273975825179707862330272868429991665913308925095197090985764935563375288892377969259453097499534530827643810166407009865265618121607764639456827246079148431942058459298080914787374553691501267814820688059658903167247310821629250251823622814782041330735689137004131054583349915294146654579285642027684289158677903193120746329137900609966269630136618910509486851825818314365765892671486100747580259351319225944449806305150024381997364615700821385985666324893850993068320238780955677519817946493814121661701427609641908472660481241562061292796888474519097553320702433060122062014585221767492275562393157355577915395930504600924304524566908883644580069113616092316007799791370395069046685744361652232383338018539540184816366397190874525338368328080577494543419090962280906293059160343365330882886658273437449440969825799362134125104906192783670204063001628644873830624708199411967173026759796927209969802248694746704433491995766551409279714379809902675484546075989039929842397648464480757425124995134887317677947938578763824400639200693119171431422599874348484438438039782288375681442064072672328155769202074061623259274624555139748263601043601302966763244969600625515636971028006985061908916763716085596538008405141097610025238580732470459354749952720024674320354896222180455587836164364066865261688161141039894325015293384841691084300007359514693907293406086453211378869478413880783783569483605063272780681547044640973885205210493969762890870787192220674843198563139433478401705884527847168572545822244443859432314255789517587308488798004497358398684796336519676695934472122774649479343515866758765356621999889029858951735627551355919941504723523902575024931937309571323347845594832770750471653571846927100382409439002357020945535612445981218224461427634309768533895115797074669111620320696965103396707237086975196852663488206266877464820964907054637185449267389586521587585719950389021525852494029330020421453373631783486948096480145886413260308814373736242542451316361786589327363670283357197684907678586300483454334763529469130502278276275144004778052158950746838482557755501902131884105466538768959102394260179603327800048349855355634516193643718172679636600960675625394556485159214291089047680779215280462784842089275909275461795756368418371695006701871943733525651357215192191869232078278810267426496000742202021942266501625273176099363923856705275397536799688868220045865530746806698129640050227241361987977499772008879773568134938480463720023362695214433323209079946648977493675780110298777550234890814512525881652223762074750142720187211190952944177467036866769156805354617339828414650813348663427618370756293012590859401907341279027926407592003789262646467427715338117593169771262673316923109754209464425730133731645971451346523056166136679101727056004242937219014731943843367459786328901979304805640870065996363032898326160243323288731629778756369688088930642228160694633864103445627782601808321336446992627690637553652329318074665441256197045339065975009700642795873176083535252217088900586697791812403133744280046643831708513353009292007333056983611691166573120471198042514746513193240135043852360677076537142776397079464150380774656315416511474316729654163830037748599257785908661491162497040698333369334495127037354490640049416799820174343801455634123816631156472827292102342120538099521499097971556770473605877047897621531021910572461749418671768111740125893850782058544850943038229193945503003643987483078155735362568141295125483147445409554780858134659179848663251109007279112144411495789984911643674264438273860999774526060150833725602370812038218433140708685389736641647913907706150570576924458744684561517822517736960273586324010093901147971429996117072808388139000518735538561812599827534828046738924483771098848342114900764197048170980594398388113658886445766105466252565832244943906753993510152837458312378425609142895652823136275135302763269298114280004998626713447853815488639922346992104587042556507632001783694784621595541001498346972141925407379250794725018424481875702503727912392934831713710664562749221369549495282576451787502408796900026331034044345425253301218546627993127792011630859924247783388993070827260044401134556423470797376589090209128268082033329102626459230549130608695565905369583700668475091038115748951074650307098857398092577330514064696580574142298168133637459636736639545542632208100347559912508714978621086603759118002562889256727609273599102327969294032787837958598136651136503524519955576499603535335872401712436761392368647435798246510148836388159804008280936804263208197910750913524576821078935448545356980136862833899097512528123775620670658364193126590649660018779249298639461420591423994117188221837008546634475744947913653584246365936155817829935225024517684387467481985342109566444187908599805253820420149147518747549362065969783172310603612105839369397891428304000592439736633774055247249184045748309475323735651939258551279964822589359168285420981056505701053982218400530549294747568165631852828710379833693477170621885862804381381853209063448997162431887004190806712249858386323257558460260325314886453707017802950079491430830200999852950904564790979032585595487074012816312715577293826491318021192743458172193298649648704305484359906042055471049702609768941438714432101629683285117264104574340722179148609798460623737634967153957384088896277620203301786609823913153497120333129533817481076322774104922289108873210130193328589495007948857419045860858034667988536596559780962965493298222908623927903674155752426658471586273207895848568923983051881297203071351466339407727814302159879051177520096859004779369046268787295078625019969266571308807037837713880349527704180398315329671871916227014472858349377223875599860228101405037867594474057236693963097359167463993818052959193396230454165924182121345661062377230421930791483666294893948596058852256305317345888171066769633954126944248963298906117078156266373604760268103240284813441942129218273841627202933735491536111834410824101005628945312029290503259190409529859515220991487261567993718408576761295686105242943733278312321346904469969671015212578196696272561321154604917313911226547228341405316359503898714303471519011469352899947440399418883991123521129751687601105590695440042125649399907107120011610991493982677558035379858710708233821974795472630119464338908585563412776971414705079341662518013805077946263820142694980914556067234436144388245297864214256400649961689628021305812551706693462938524659975510913697207884528041976588343309850745385142385780839609955260365733603969315967988555714632657805988527404241566932565702590372152940326876066907066945528284303303492744384946461382915441697901571164828077325828409424026043031290431842071801905366202939049500457102849333628951217890503852711614037761706833179753682856783297377444328766244839195554934622560743410973774875008697245871962968312174386934942854405874437681575628787656971369797001500339512999216128031734621798531408131070379591038573775195013440006491554215619790333064130849165080139704863838208644110469830150798146828670387930318872628996340465509209629733631497931825183436987659882863122155493545218794312848624950482021580789953833745780373944815620547504585217822526189429415851277484734143444748169160104180690580283411136026467679480626963880502635945681777831857649900312001015445565703554158569738831601215393875750711872877403149060368734084328470100686296515939009091422773525769656126365006996931968651561917528655285187224780219539094795274901469243110965841752502010524590760868675982908852961782846019566094076692463721674586050879853944734352514019331180574365488734077667938510568920766990748313051642363219983917607645352067507351582451379263773191263194712058641073536428621230433691280896409539592404576944595587602315647460614733118577796388502166034731954138016267868501657093402410072145510510680701417167779551843737262626125238751729540724926171886638088564134591772697274023883930952388786311115076569858950505479288461141752142963274723936336141709274085764215100412247396983828427867510066167999935621474785103227600806475703901540762619175713800498332029177150994137893588691031852114061660471107792055564762182253110268486093190230158979237652364599081518610804898945971847301795296108361636929740304914962958859612999654166953986798515826732310339536911358135111095677329205023191728175076529552380709468800842624206359966045915472699245149933675470388782696959225095761905987246919999080570264720445511140211245891876156735285435799633183822624235726340526145535241597120139610503636170146004745441404965307755917481719913618835264879998942308799072817616052908627611906875988054289268873625123184597732713675333433505340977763547130044841276038390933993154512664916743464725883296777300635144006500916538688588277810711599348638563058464572918090254799441718294690047181758973055772820471249639149632247809166601232038681738603323082169655700227428903548562480086529152374591325404765511183843506021259856171312153886135208348487200978194084906802800614062989785207174912497258797184950171310559898822292956353536665857960907576267960203364973300906475905738791385495919314002099299461777770487598617102269346520045449133250578387889288658411248763056727793998962486433949857748875842772011661103259751027063324572501554531563931479610885327536116703945649563114081108480236194527758696419005023746578774174586953119066088972221483550012658150735671479914158501954582822937745898688330453806389370080205686673882202815328709441168441149111515813017250291923919047977948353794351097477550172848093551091885091668980418233492019223454253722620131041848078448843717762559515749445455713617136404476388227625494446375466832618093544631292605329118772083599368885939637618362836026443512837543842395513319438563882333902484024766055493380968254205030203977373265058827345944646496605984328644993051847121597711059179187709862380852863019741765521729716046562955669552069812606905075984551377116964050326455382101920159305899298352675364628821754279309037660117141430690323345413184255360603985676410019034914832082745141023133916000876576701421426404816646586794981028041556145523263963594607205449497909327441366677503161736646882497696870441632923622600966649350746726633008597562133105573043653094201670361712804244643174408482516128773955564582346783218725606063147727695418557293779281510872785608644934349814101648132544332030010938003941820588418387644715129619836958715012485734152109362194842132854790209829190504248570222325032966988945742242969008453780081478786671431967913038117552481664683957534363444370579430276964601313980530022536762594045778013309292267748223817765786630795341997702325703770000341503520990499390585144554220170282381799775591526990982457927355737213332773317924619161018876593673838533450192789361201141713920418964033533411257682442913657264693832739049206851941910763308629388186872006922321487888036647900864042761613602607403233465808159792908047890742462019344164972006123278730255595459699974764973188177705429640362394138763602377031447373847840417630032475708432687130006079427478784464564922020155659030984841244814814311080916729986627993987574639697046276450076679427047491744751891197266858023796275845430653690186810113415834947839841339154154354274083575693734060435388159416386779361975727354963936934789467644747989724269307017078150903438957312656649796330872066425805403447429540998593419385187108420142178772845711828518924170639593366597824843577872990678920102389810922152095976820859891638086919194581906971751116379532494204520696594696835004189279563175490409241871701399585723831948677296802479826200768444412692321528763026804930534422723396295588722522930795738097104874882366490625162045733224370866846656587924866043222739423990197930146211291781780866317131919401076549363026454514801753935750752627274328197200141160576965086086938453316671634182708717512847268994040512829086199657111688638613535953950501985060300908275268526104857736134902033709569566591341648879996403113501307297853830904949755034735910637944284642254510542922343070441175625357457714731002014379896598611502764768968416901835428520751301568839992214899677221602338316956598568444015766158831733767304844869568414176506640061921890977160213136552192474625762056794060898344805785854408481694371609250195371755563587035682049374568437218264988105044752150848616301869828397519252173504583631869705024038269677896812713859308768923589896886393832886197358351856729998829111656059116975386145719740507161372562596232079097598682976487631984369563853442216423634848189035087482295476925874723681827771922490489636421489960119857981758562563176732724075660083176011516918319912714218208111323292590646259439101919261729224847107324429955460033807860948386777465637832724076828411604767403392099221416431597644388015735458268732915582553021269727180989671421222928897605581056575916352659984978663339516220958499940189164701808273257487140495846891234107507739436161540272633934578193116999446134483347936424605039288771415672673788811890575174232862482896218017986491209835050414339474668024008137768033054287470272293136305205334947723121368403719830632687647740738614259730739595118306820498053035217228967574302015443747513037335430117375959298857246741957097231589313982564878615595929552163132007760033892268705079017290146036324165437377173187297698634278964610653611224905522235287143203600697224741998177998896411532218391583558652585290100553570300167385506833263748947299797217606578552831446700883563888578072826860330137764175550486745160729823282985486651464183578094503590923818696938854258269474621099906147207623526664286696631234846685259976585826322695948609442484961647230022810473867528198572439560372093669595867624538218889221688328172745796785797008989506982363010341869304220452123413304750105004989537421162170261944807702815290482879870576366462181358638289368691301882814033076063426467332476738829846034479505571946564818076334198710794078738390041963957741214786768334165246964277929254301831039971016563460055989584030935348717691808800764101808152839727997616112510734856586539337258069249504246055967344688799092727903535530662065064433086842116486292880618169450050851959201300559115088243004442449298667555253626906887285285333535243681323912227104608865487452697388778519049888728148455308462223879068502707388672823742735570719587217079648747916573948611662318102389222522313599146364012408401681370617400469864553133906484842219822329426158204570749842721645262906940600441819267806116494873612270058046445051891215005871151413349323181715451733417563079362019060260121448537829510272803904064217582978237595879534184097923054866924297764997371588182521653305770830629330170148103834654119025164596658865608641821149914058279634510880443964169210888611576488997663814381414119482620916982414988119332281550505153695284059035272972467059846642611390815759445444091785441880648589424276099002755389042317615490446582113278540942168135962742382318491112231008636477339168000578149232905738018051353508425367170550833958703962938502260592104945794943420329502185401645000576187359763134285076225271463306299239501525311931536707541165963843727229068580788500510301009711832225579841361560441451542934554759042162748348897106740343197547203447390557079975695406611062664303004324887074291010183908551905452971751410127299051224710100573313628177881957872151414258236662574792302472067027943338005626870835195999428320433939863948720565286909847094200848187455504497960023237232097596674201543764009763917569078514492458766760385335865758858033900599409238293088402821597809316224815658729844431886827719435676103757778353986965391777758849872234259312064086727771634267156972363462500521198450037300122587409751885276522104927917442982072501766245068929585809082819392775579165986269297483518750902338787186829094093934711598046151941291689992231494662650566163393483176667024894953510342414191610366953387829399704104379150719730927798639338961800226236758874059387824807979943568314430616047029538421159382641327619614079163266802570296744349294704798580136297146931460391962677398831225290454518922406666285966367155133781050925552577366018223879411329465365514846838859284563649386330286266701347981995216969561620107279558900298747674460920408930651030531357062583425559039655361648787215645920534264612704247518547313902508974119041791112768330352920120365297925007191313843091076738244006524074228965310322262807118153105894666358529455152335203878385414445413041070699153896762852410332737662967406743037868706376334227332004373831421002485709450923949746470835833256642216589826193610122455108539260236288352330629011732282088522367593977291989635562582284451224356544701536220866192758376988162141834514919432076110735723598566532401011041366067866913717840962533237217677399262243092066181433799896261640754679230097370684648048931999408768518732453646145174299720981774682378877966829805348788188047267035148078576226301573231939465187022400910591077724549357576444900556197818862261209655835788837886640176621049802747088217877118642420484783497129389644937262834537698358668085765586130151889811092187552688680447685736041679162231015486547521013696059815961309151914859094145204439327294825094183790042738090396063360379687722941092183439844743663641169193358062646706724765133729038685140590129939756881800134077637532676600612056520118814761289401471918318246304156017795187769293255378072639757066029488414379693422593928859290084579809910201973519780712355979244900141673823778416249051301897957769580850640401842271601800070865877523530394250718264417742722598760256277080224796731573762060399703424132907441277784292178328472240210057228181830219476556092969209200831737060548348027698328699304362730886120568952530333279910939743399321866985616583833455929227772334288008805666744534940559728008342952477495112352504641708180757648341166271381920762651889060932064682853348817887972264672205646625570154248289161688161185011970358000899478393312340495701909876114993115728875780083628018189968368220548485655766391922366587572475980868473941075106240026321802046137039348087100685877363925004275582420252452787745035313638332965090886808400275283155410350286153493852427650083501136208637646436688830180760514368865090955347768112505434546634977806605892016293870773162501594022274232978243915138496613839997611321352727895953271560192558949030906742297936434467801597695137276061854220994682833112607399779013655818523645774386458574889856200107433892077159253680731149207258848066590388832322627680182406829999274371591659015362169330046512092411522011454356077526353334357530965641290231928926747221485835558320710410827280859614541661418548020216560010869403702923998136573607857454561038054545125584927408270738700838000599173871100685777676813041458114239042989002423703668335678131192481124778065669994962572290977430984377356994586548550564611316296094442370258616494646012979257853252223155748053201263469911372587550757634287834200705928143164531757856808769819559683483856180072938577951414312108454097985472257701760496390743259181085844941709576328135671260598215233618151253889624644381176635035171880831477815294927010218699266147113809384964819001371580494943524076080172613427549883333634527735425259950418043543387814572977394779761102355097174083207317559847040739643568670565386611103283756883222900115384063519148231013666084949544509964161234616085928028481497180011841377434226100623853687437634076824135522386366891033368349474001345236319587845047014078018771477546873058766653779572656210393521862727373800257957179521233746356385890182324431077579056894644815892381516005027932878831629888991014574807359383236645271866476247676293127592771981390654516415682771316936067630469522162628066617279227210458910338450656388984725028106992903730756443231415585214657254150581180219463950335578943997699113291099888685389275370589185230736004656662832309577606090549067477572313296463735350023581504134652263357197689250269570482012633665232378652265843234285091660926092373014919810068479928941832472925735127869029024168198137087991443434992365105556417819700725409813548143429444514017786579332540213180854988737313621399644187793808191170419863891228200624361072511813527135842116798045290101752453442473466757367410803213099805384569798752318571222748318436202246807467554436911637986675884572673715393319571733685516491783535985982755918592889032047905063594824968562470252743858545830620379480334977510901377648882873460077953365251807196610812729790050928287484551774225227508239254309918031137698737834415308081937073651410888754212625971372878582395393080963711316089834113841982627221533783958661257825215375833606741305235005999535225274491528831305846788659829638013429435259390957248688226836489770759858258956574498500459469422687739512828447248739692051466137528363595915264882089053428560968020852998735661651193809887865453070246574348944170749689261195329239598193171019772498683107692441040574961020577209055647809170224235804926345706893494532823363608657326223716003794950084463956591653029735475386371417063260608820227001433550593646942968496472475755567655514430202047718479463428011017134624951651557874979048307965050385842899517881923132551037157805745989929449617702218700221579816711980131108437645679082332169681434720930374120674750568394831156662100382430631697341209826083309286349046368488083654365515927920115986255504627608449928756074408464147277556518717576317164771511896456358244468108453307024975965722247781061388735085606417725041847545322493707925565501254623807866162289709511214082471531239394211347501249311166199749763940589245760097317782739530546214700294351451238282201863061004492236315961388721983747116666382114360233039892482283715142181178028871817246458132063320163455052810475373309204344370570762271422314658631600397359126422882333958198241627449135310252004598515080061206019071164958608282424983798367104891692866577938842572570433173145377461724111306717967939931876795366469178832865442987749597473238292004308031612006433818417036251359140010951521584815869296680162038632400547895221482481593742859142179748638690815820582298073170377526974231427160676199757881539085612813444812628111619705483850647743377170937520978808040843244323961926400668692169184728248032132075135032556263117356694079568881874433262536168698056429483733670367178686516903995294938673361681928124158603056115843143783825782408104386940352072481768878463124881233468962603922930987493957685205286267881171783859845023879961279488920207874229933820383762299246329683882687294946898884102919115014454846177503405718571867370977027787773435141048573443970289829016506772817019623245181833275015780679008224545137356476914118123394564562899317657281564639482577745804276081912145216572978881967282153257166585632934518044865743811579481321414726897293204042998777371850057785026253603961917319451338693091438799266983862015463527703213976254673179422806654416071096304476764128007129363993600628357697388093535284780474881393991184349609172945654516549671472339266105173006761408510798723072507973432136964677480360805081677962630835706394852904072417956002834375121877524746068101360205350121011872894357090732710157852591413373970566606004602498313001613758789686916590584113945717843567487752262220978188678932481317690285491222833198530303415021614614314660319329820742406177333661678106492913987150499531646262037179690573457664607210326557016714861105165273113237159431446530858905017371500820961035175594692148334077300980009146168725732757235989947280216690035334820001188684685383849333307552806847054874750445139155781191948264735620370332484270612821609240403665802338513850302560199669576699783722423195215155354383374505470892308792820055446507648542777979430462722598256102172289934723445522522495197850258415539839660956336117748267952640002625582517763063265664770302654323495748854638000552907650461180457860967569047726644493399083723992466938468329059345932807590242395984056639445510164392229579382082855329313667715121335698873429197037610550866921048037939574690331629728774468618103225896213137773442938225330075130186276471130604013661241181982876807356872563753349893727423672000815636159242625869446440071689156339239573612069782755429416460222771292487557862284182403153140355127146479372096996328573222166998752833383036395944935928068850510720436437159327555838126385276363022691754962281162981145638051311367139986692222560061331148806248859634414779774205944532551983361512864901413076390541485974327687410057351631749668420543839198714392905279228725794813433014923936508554306902751587535179387218193116566805871695851576226200243376604438425585429908474473602180489629769698686211171773049300288017175945197913644314839722640363571167745458801324956422891360369906479115306633256572967113809919479395571572148524104218774045987771509212692944129248261350530175125920208531792499983186767118105055792225795327442208159254597619557464487212509063076616383469754254225408117571345198302069282658491441199347607502266475119827226050026575648698873578707396490027704021259781230760360605609588245105340039694264681130464152284839236167476094994285640479429865534314605805312020085748494410565380415789996744450494292049016295957375907497535751599988945467028740490049781517360694735295547886040528444989851482235931970707881284033782086605116895649020762325960220217036243880751577229379899498020622931154521386502415369164376161057002439693770412031160573599887594876488788412676600885608318069238976294526978202594548154874033249849763351540882339140794811677642485114929695065141098026919454927013035804136898946373921348339405498618748993919473405944765714932098354683050378646614984938575678519594376185831822841310956010433368503645244948443574532736629217493871238461591055148447482796324544170229595367928574184378413686795558507407075063297879934016020324902898832959852367942385797337379288270499620332177694613447656892193897857810851210620218500809373827174712781320232708555566229933905734813692060518764723828003852448954377285751340649494871518699604215721256140294636815350070394147821182451026263549853828779037237429603117572096051407856841551863659715020016299100513060404383856664192170638721030853736757865440971233896901599897955751415407164617305195665487998728206795136441410929014525743256236879112141855390404612795422995676227987309255370933232632257077063914489194468550701572724395600563909202021694910339003313646537812964581734897417805615843063300274379129634170331913224089554150448935924832120865690313765793573570791993724600895482164343863641969789927638064702488561227948388555348114841015445736463967838282514593497324635166609931706632504822643862594639050711729729809776293692331058876773601326435879187053343051718048815899397435843951466608367593398152248819332754300242705396645759812758472008805278462668201870509025348055641097213468258977717097705450739765511236167407774247340743963871157287657530915820978273074498113550770082758103809210699133669112034920171214280832199673489863031927254037881350763866110475371147317455451072829639018421471210440770686833482754676115846093334510399256018233294747486778086666303548959103748240407069895521331774295055052885604146362034658050757186678313011767595966773166245000394195694970707621503531621029853710350476704435603445099799819600570508445220439882655947839284486827010982182421521182639443134806260307260658372809747592056968174133651004006245532491927102491843222333238638576042444013182294224835085244867006006731440479054467125351033134486345960210413181349571257782809424022012780501860002803211681504782386322926219766032937045596140235470287431557890014324446533412781798453445353939758539859673651988983626540758714372175156197993145181105368956679103802750581388250841594219100847466883649230487364742985828714276335448577339910046036119804261361703240477650810080738670793509675883925634529601473461505718578529612590235675306579489828850727360905649414159208439841544897585107047220381842997207741384019971296935891813991469370335923615799831331035521648419478253880392209236401707540607523413426279777413282216627015458556281367417620237902768457352945713251036198764228189120554761843115479957152819045620681026030869278985419520018434692345752556439968209076447188122409237096128358415022126219169700541949695957440855283911001994314954117441920777070562542116241576114419635003028616028650814723228206920523734973137530323768078040802440933378582606782414834053474393364299734195313814631393164337076417988470794859637390171973716330245266258571203757346572899285397325772687023365682669562544051070929421609680655802877394007093644814627694360220545195838951666064967036021114776750768264127887644928797282628584405750755112113234364435365285413524061433939154013267474121199895841943624316104482306484434860228839664347707496419812220009804497867702680197943178771612349537173426446664678445062254995302872141952215141421102661754553731144872164586405004576985542332462496768669316336346982368469355148037625161050805715146444599523171548562349359353357880755242774470158993009124962196918059200131801761522272188849475578203036802818521073463747023938248481964461754726447810224758495239793472796734390386487944983802076682649026757508661165494311770068773955009303924742387828192673349530500822917942584119069781020590376765353747683851990694345719360511703510332754019292464705398641459868074302731597388145766664505273738843763523299571998237475721883624227440957090049744255784590319901943727154911100109300129625184261013819749961279776130911433967566653560885936222524278459450369446479006164232372585798576625611313471371151764907390987407467179084651023359668332720592340623265457825453080778440332693164603215899583752251610298877726478272012497894214485169366998968840636100908813862806452271938869345972433715506088159962998395114892321483901849812200826569961791506393926901855213652581507765901045104865606893710674330509799338028983118502233527768289108465600110552162449163200628777333683523254097950564951659714029612601695023826831422762651415363845551960647187939735009740992125252398936608556529450271712301922669351820117334978956332310966148632854765820597682847347148477145405063186448814076869779354873329833141329813890249398225695884618645730494888894743132848176450655659680467246943522483238726357911545803238293468280368139361421575414057287077873243994048375088902510370947377329570088734689417065163136791419921549552498500556227729410340441865438050851018254660252013969025470300846513991922227496061391982322920521931909059122917592731852885836897762450445228182660763725483255150503399016779714591735703928929168275718104984248719044498587885019758018768172441118577833705512154982342569123741410700722549338176153304187359740811235582461856730541045478296520213506923012521171533680607841857180061382588394816529894687208288564859599618400232788550898523547446402094714361567585747837955291559643815195143477486112821382025658561036752919535835749587225126681708937994987420843654381811894442580397924102721583349814125295849479454971072247514351373644832926105640379257695121914059591259058374708993306057227425745775432167254375439443330518736168916877188523047344414069243026041810932141300158974751245470934363013609898674521607560372611101731298583594517000325623072718723226710079499645089974087780254673761963357335385610110333751349379388158321514499272644664036574688843102757040092812632291749599708726531855467889392538245551258890551616004690065371648397233973306366709197384609411714244649215453243891889348149920608178426193143272525454117666700172346564358004507796405134591551234561733490774178260118055213658668592948023008172512057418124583408556078712365004159392931072878816673212659246562999237276380319314193099226459236060779272942079714698960721810150486397182439736765072944945088990883288277747987523412313296726983033815206727753655683545338652418381087392469809676894623099378294414408309528575598049410569988788348552597591811815477058641209880771161338093313841950401678390022647768124048507751714657141645429260156596873101119324301302557132007256261412251820921761075713473446948928519222297371826886809213243805236086601440289059525151317812206888406847383523040913590679214864950058995642269485636845787399447680283643329611561740444459598254234930057950612770665339162851607045823549457517164306198851503486583273622715864838407745412465572044165878753202163812706045505467037202873961771070829664205169231132558996196583461971278015770349084181699609996791046281296621932395260885079226859400726938565469243364945539302012905092135192474429919744803277510647382906145455931448311649247568067285746063213317423123438344767974457538088100926208116750609707414660170214121532057929121617450123278103448058183842846144778116291197289766687158087106451035706289218169261667685580969699077797017707207754369648565283150065274477300142745905237549434473484687292305894587915452566934821822549773019870531179212319356202496788674590007367899297855561988414155331646794449583509185618136854429916991319659104088178434272556319274921102310335229345578660108012699364529351994476112725692345663370855131551938383672883135452366166120791004908717234203911745454911435278969603477391509682791748925035465341079785057928369358112467069633636386364565039381076724912555580721408546600633250307838211897208131760775465787586361767753346429969538893384974550760601323933702764400172045914784373712922196963267364868447288266749365845607289666742039896902193393378488414101529567258996671225002555271460194724171889833596543553774176731011803765303600443700805466063916942699203222026358506898611360503127498994778651104421461489862911873363262386005183606155308039715321076360143454172195291738951858003893985937753077302162191513506367552998195187139958718279519632037159839318077174546684813872815393925156111814562410645849385514666703048860629700553763074689663336879344094028707871530700486811805668782829775397302951243353237675435637321548307218030289983470943355818095831398551663722371051293002060866495476023972300128711923011769443680345022731141208801902681552018523145612093586510741938043927548099763645415564607554475156889938678768319910464614710530132283785282022820130909257303327455449459827317945282407289812848251012223332912016407011121658948983466986181616925563156137354119935905776431000427084357592362505508920101728877140393503626991703617987719632914566268536402153553703202484054759355836397461899698158567371866467848238072698388530489197990622369918604960665338907023294830485352779281972616331437016791210834549748688734601256370638574721204264736540867120113386794028027223741328046310534234877773896227648523005179101104820286213688784373471397333380215777047641756488099563563839207568918932029756967664056955734445034986843918291859696906359259108090731220395979083650084652984307613400335246479120442317005858352404454909218183504760763449592776798800779480288068024440768097522186723236796711072346147656962636078502392730409638253800089878683359447454547034987040520793770234776378796993100101033455019360099485808782819937590147245863294640965962077953515032569030239473624818683009178956023175038860797652266618146420863400979503448648448897086143991264821309267207904978484557809664443336929327287062223959197606998290692263620356687798390752291974664043173817038562220961534636670383759598955005321097211299953371918619156695197619799653396988296359215585249896382994417732278039925191085035434629886813859499888070618463042782592878284105780062094086269172090635241193038800610652212090787408222799933935587195280104445762668150801021197606286088482474220571381697591960484250728484090173843869096981004433540985242370255906327643660334503841308954449724514519311474488743206236270760591992703423800153855046314124183593822850217669897555172512472075314968250346385315008161666088340243275763992434270952428462186248689336041372589963312615800670813000298856373778332728802518763048633282998129996678788171239614391607339788567724869405433267430841420512060590285580793552590328052211619313683982335002140164534087153081424576140102334706582478575877120394392862983139191473559133877516050331239231721437013243961291169376260552708734630158259203946609442086918507174197458305422564172509906348304519163156554297034177609575577512707833350551499072333479134763912187623424927060723546697242021674868262429479239452695371137976489951820226215078729589216273442010209121852559413697578187024703695834901149960765325798362598623868773198890775782162106525942891483698121883369663593011510420532366080942182416723259035387598844645601712397615964892346140251305887215148198698063227891065570529925451162170479025565860053092185630839527249607717107214502303582126017115662632403512748819734907937467261508216693066507004275341387360290477365359920731226182238754767419638802115627268993008988690230306790238804092576274034375462938985978674227750723714159742621540164521730966426344482789061339987127048938142487931447946966211032011322394979789131208573773870709858122345419952458362931315031155314727891604556413834618770772305991174346877678931297507162018856361473902533349743188588678607874551936940739080530682949532689696377023440275238617355451822809197533793820552568608250305950996873120506398220922059243913213788797121332577331386240122447454895009661726211034506494516946645904411745671195542667822396900914358395490931058644446228599486714581189832256828347423896265432907489202997923350335305966386750719778670983927350185696501848171053556128980339305260465032250919875339839197497660536215339059026467036447596541122574392299256104178294065936821844709280447935373177643129236894506605027620650227555114090861714994153093986611726844901603523986988927554581401592631418825572969239025044714718944594577051767625999065813411569898417234430636210138415535943776907844126290361196817807098775198382278159759092719618387551373787662516940012347945278273092229762356780782069866844781016376133943370337584814789254297422691764890850342865451408630422465628290236252935687180976353469102817533603534610957439484123180917214623267757677871798460874809487029386415399754409475047854348601758224250038093155419547695152095206298866295500835029284993810777261626482000814279134595717670817835157608828285418370702077318469180829384306222768037273016618999097170802874247618063327758827695283102562412371075597641613446570839477288079935547682182224365009230527038628972246062736874323092149206422590939076486354017636560893341886656320235276655328898142002565724513412408146376080977601583829395671685185358720426575601107261670949797337886020924609315130149850831287357231519784189841016076324389939892396897065341898046945676298721632978183442241799874721242098139516603381417651079868895198709099425886172786097293121285516890448938922485525513503880656335247954968883964948595796655499294921187494730807677706227751813628080558045072083146282517660693875501089094971830338117496283624510936418794048173524258083761017051498676505430447943115812533352108871912275683722415594252909758957319919723307991330474439594344601499451718828197669044128566263111773913275655079887835054941182848909121756350188776195904200917994461045186458093301251315787658070020175702089696363364932151600144147627466099416680791471222294794208554781426620275920198596576086305965885847372008510085924196744070165645474743652694364312932509286047661226014158824901285854243345305513931653125126605056742217669711334851838781699871828838955801166749261216023491020411666591862343377526096480292501085931412232073862453047944306849522950594250719092221124305844062540376468130240794092465436520480573081591050835598069441868395756209240478368769930311686257140258385220154180089169483190201269596096224976533727457881664675827740778645492931796454353984061192537566705642320852495150220894879536351326248558440341125534803067822979499847389151171517186018262198543617727816507621871733950538706172094045216113171196308728132010087461658454683522183915822408567702224184088075269826280208426167048565233819922892631792557087134987038228234488051652251239954078804047631860901794156733423323483869338162669197444613101695007441137081488034015287536263581841463245688792027088671359558037840576548080538775549575388470003235485085084117543377997970216640813488843666777057477137280970647802552960174654520734112712550159390026676112626914289953621940677848980066717485053056735978144582185828454833541636986742089014984033816619948596002967712615489693038373877606979337212149387368000808705429502687918751285119476423305743642104027701728948854951212352858925068635586298935236899491387966236565593366637814762054102336708716198637184372555964752587637681559391409173472272089191452594612987716232900804185310475206245697715854547742378195257074553740718654130751785672485413014723958424995655490813305019046907712270349167693998932606313600180293382479414079684097290893701951394619043556702248480862008371691614159440131630347256831562897866489708900306893130285441500773430284140712442353293878886001234876697004008998393740096823022877182655552497089527241286155296425403546982657633305389136753768343074367808773230814816726292993809075351623407796536238124325463734601523318237175016692013848389790401499424973334221542374520918328638998925937484597115413270286829715075483968065676828827337177866131996662280365948166047619651313768433855337116039480816980032821829353420322993170357376158072733104286824562387344348035837662135406749794332239185401718713576322086320482473970460039868027368763923011733426560456750038673046281573747941041522215129320644866615851344389522603284877603813325381941815624164444375213732235450180843140161294128460990792164369670589263199609035046453529854871025353597646014542421691598270930545213536235897629896811320531593093519715290209805430086327492589288709424601595991866628873433717440594882045426105984319368486005178389841491501439219197200139739286176388634356315028062881014527631693403610082769393643303821196400539958603162834653072166026457063302213588116958996468164937915892462452247088682090165189181142780782900253837157281599937313372654989616129141842637725896719747356754817425112210701203858227569037451656732791648975811254717310132080320523558474756826756714811842400851337400847866434294052996314200931027456596523555756623279588887299860850857336405528654137544209011443103986582648800267795238411626491275708687579047066050159938852789543247022235621746549032316498353277271233713966566704624839745510471303017108067103175292473992023578688101111372007477847391542110574961585695470657374952979997722519652533541737382368786845407852629062566179340187871735582535436445278816570546416996194599222612044453939365708821122158878747971436625992145703410237152624774920248377389907517650736772460061724400427559198672330953536370683539741268364150182353231448462311698966665495636411146920860631584475660048877699400434735589216600634724547522623986211478421824618640542717822063238328017211534995988839926549927860404210056970624962033331368665276799328899838265839872495728817473470845482604762976710528229369684373776424135225559055502519182443016849085576901069743816803298257816121424709771053339205203434308457240900655601115517462932535515600117260422003485061335588814622503453286787075664994668122731203349543134422789580873565967205239130835234781192461882665168277278640754922959048092117686530492719685756861524434918652638413445038176476856560616970714258110388939541373500458513589354221107705099055397327232577435779206469383300141582708699847134314533782115435071481254308914550956798271143234590035915815245045557909260503092010945947017267741638115831733245631454399503168854387498355418642069535730636066097386461675959396440785430876932037094787810395577735341084440308948156623999109937739963000742758291748271857229185468433457289750200591503813177849666398587886516783625708721578754583683165138967751969150537916996886375129965583775389656222687674291021523323242999768980079266493194632175026283319242855057421258844210764982037685339345384213334295620101819209921116463170949607818086391848974962774304829389345775327448939903610689671879874635030633392216506701976624758606468152454247700776528509389063506856300328830512026208498793678699903017438463608528629827325654013863506678391103743396292776897186974250961994744754542311561891111429876063374432297090157553542879633877874583552245485514147792950101143259316560320336704588514591443862127786161814612233511505043933949590009854664347577782943964185471456032571552731565632751570639659055684549738709928923977448910493940333367816374808778505070248544515487548244893414037281178661867559147607016688596164144755038125168800696149704918095635623091655738475967977047855640625622459263461011389765300557892484489749102866121086720333709013366785511318906592312641316198838582949742807499022445829645698226330095692627731220178420981231069188832852497187785213310603614485690866425665105823721982627477750666659700853724116401219203116392148923212768361551561962886410783626565145158907925867530499559842203501889345962203333218276923501527748962321287757528581946741148469488506821660936882972619751593327618385744820750077097993813638028372158619737494244995146769849313812930035267558582175033602782623461839536170676559852246045264730324034057922596660618966392144030150319560634080434212300811996075874784103275774566673016694091524815806141512044189035371877084684582821704601904121849460927682740575894942765866792335388121607372669086319496091720423611043421565004031844632829090720478336539964643061485949524910847022536621320148322442857452659486928548061604672443122487830185934570511670892167115861585924781701005857250746226045769928118418771181630764516263447470476313875397436307711183658768244021218719395525889849899191150649174134350670279645016267427184080218944730457691637833077716110105423871279997603496360836079526869103520964944525356930660355209471097223924073108810641117789032677874978359679194599427851452214392457442129570109960816860219916732051788137427548085963776250122456390721315720731843807825075549239370968526351146219924507682624820776968296788902819483637213156585931320991929518990600644018177377509601210748644483317726079027130922804988133964847769429114944293698093421535239133391920018470634054856909476246595082210696788427495566054857156128630481251771757257925897310421879912824919782143216716478661771394902695775729299074692365066239809406626882217369721707957815566932383565786670505222029573068331595232723174348257815279034360749230467364442637368900551869253630302252725406850854779044188263826758967463778126325500435888554896402151159236627074861625170829981331729217486337539380510432454518706976662996318868444238243296585188995752692612964358791554872707084811618953134214265876107536811194978477325217183394086367443066457435406756189123664544612629502794398917171017537210293843062835912697375039517838820138210197024004930913625249503563449272725455851553296363968869236128440744619478153519222573180207545311584246295456724088683996431736075435809702026138195169193871034023295406585014705027594727562384761353021278099176303103964291262127797198052956312515644635443248258977567452875399072770149519620606949293866018362249575537273772057866704453747177879266516345032155714792922087406457054526484654275288689114666798309025216205587637298267580697945187287761903864273667935750700761472511241918277084458782250706727221040029124290084946066240533902472476327032942641892082380589717470388104813339636323604024562528688581281251517221296621595966863856784845387419469338199786176847024649084336718707454096145672632623772125066674471260139114019585658916223200275862155072823171191192640107133255281569594031011947867944338826841550374076178489962471060085705675418505980449875149059311899904378438801169608572606123086605019550524337949249142488291085594142615432910614677970182222062631616614465743013735951749067588960233030632577896119462388779651394096358216714377201642962293731946475934149447997271157671094081725747067741284906592702548380311115448118663982754796795653045790458594021426538436236908962724278255417365071773428130822554733676387744780823098424705117860073133455195892861838774570407100997816480253261769653634021429291163585349064848112121687989253539563555777738250956466043973015450245818808395968882648977101022440595168470469442742293853497735957952206912111162660088655658963189783585288383814620302523080763727487695572615873938012706119836674952036132786918113020579459528225881485504842276196365135457525747525780018676294317121571534924279503734031885274313552656710337091570033712983764227587411954962416544804580098624356301817944200959238616974384409884791451430016478262672582498803109941572575233090512250738240767615734873100944599497382465116153529722618487141521695582572852318589347857619270338088204319776379016537835108815676407186353489672613240252627822572559396148202733433727937391055479046069332410986398889355749083849879653771852588108082561161141282268674263283303945684441155104492510843685814053900886344737836306581665599144437820163316038590631107396833898855887396674002010428373073756166329340492976726726957939639028942510440105548297021945081176909970512292776905775394090369468141202205170427020810717856310551271491487299590732319737104991783758848721163777456347539485884468968084588773699889040717824719434197956279467516266950097093307926391102326564272029018512939024550924186191344916374456262659708151433119110443318197083604665634208344554477279219394919011079398023428710191014596414284833941844145224922976114353975132790920757886304898260067529698239872665862316436926381188425723538930807104526334110698745655048581675457109375316653605062510252516003612679422415494576875607573415275516731684870891784401140905958864897417221093852655031858081618180760871029988577667030636292082968289318798337574144262106514798905192564168179139020603007858371857529947625244309414249012797937283696110271672795790146509990196690124331664424180573808865072754938064669833777404126714921663298477281286183328403465002187388977139955810282001370025051322946909587778296859487755427388183187180553653778020456395656396284320461419537706382112437043095066569878162345865181248069492038794086393907271640180980471717203646278209374172545234528896254912190915036575335377474132551257187088451400961888809566478014302284740820791880379164089336891444033821956620075398978245005783858333226880114916246708122118576440207001645161176577933348221561693740955508746098345380210826374908804617738465058790590994768632894693438387253903119389056345361229373755846384620229122173013930978408657544460039660381672255061404909634424996515759950557206739269309318918487680420837638764839632964512647758224939247874074048868101464305099439204037175630593936868848484362702429046944459210453865516168886378129445643717191752091615443831521555231598484201153717453286279271611959890239313566479336286257896348233916919354617183182345644833405333333418061285977110019094475090633747233967638375126768656813150495992525498328957169160633563945608947845475788381753853913570697335565720862103290700487430006623815530736232809322640216546679981523642409845829868113536108383015019448392049380720903737991921751704727887120992846986609263537961080623919546103085869623850881236251350203466053281970362106543818902403302297491934142153228489855939023329341582608683165269366065749479292807291034868667715518185570633762678731213139643883242704390917886836209589137665031148995736943269304805462279856035642090563292959226768591006556456967075059674518564473441537777399894702597289046565369201877495711777670074042892266998324559252644772764706163384383119124495324988118894671466420301552199664873570325535740884209069858768397762228976835006173944252929478723424920104012030271278069804893134656819077822221707956002397849262461783106732114172802612857068003791360597264480145679222202662780403010991044863376533437377337917768296804013760574351583102726241733555653184758563832297112322078346386684695540083286419901693460603278132201517220600126426219097298079246000798751525703656859762080595897977103448400464552589973492132625696380855692730921186072418660036317096815935087858706713533074462258849405526164514133324917911791950968559196088943886202312812823809005414963314184559857695588110296470612894076521331347231209062941155596279532696773223551970486937890889589094329735186937830878519609254390690316108326529139544648401982321727667356300821883516883364930245197313252239197546133666132837124446859727468369481620001060345568214431522214586477573418258313525908491986174373648354825843970166135193515997770626761270745024436400640184996917517209261740854651829967130305483322959441830618798487611803332528374639452786006670410609028786769156894511990875542867593128866717878271698172899219806155369405543327208788237195176797121145542811526985691374260211153806507480649713011537246283148524505087755812222953470577656757213673025777262294027870173549290978169435492080603112420719360532932006080884223234182405854954661986566803397734974191677364601077701090880741382331967969193497296929459902101739406162348241085400989815786140704881502029049632701435728201153931785609974296471483231648514629514050447528697693239598958679184056403714965710685133584366781608311304784218605477648433134942843952053511155117297542612581867531828663392945124952430287276191984151543936371018268447919117204394168374160073339994580825000558669728340257504573111964663217157028029543274149700993532417624538058936902522508633408304059783959152675516871394386878952703326040508327930961547952671932000454291735897915920638129286739377367172582047332192514057033187346879869641743078462444552467991928979984289720269100993952538726514950647344943120350622808310998661135083935767107869911466439824464294834211784083689347303377455190898911017209296078203414226721366507045372301802133671715980221425960155952259838481490313704655054798066572882823679138804771013025219173540322812598325710648917256006156110470285705630300304414067965027984872525674036500708385294529234493764329446968309374933633123443194242451199903084002532746267757262891739756033357065973908922101989995665402358865387435309683545157252504134191712613253555459228134678133502586988507947813688025750620051563186027545144656075334910013379424706397762097114312958907331650989998878980868751557209237005267989658296085728426222270440753885998575641820886344933253131628194925518035246812981617180258057750151199957503008438619354559907391432439385297697032961493262419562384414367745444478383180767548524915625149557024760816883560764736407730010509769726206526005476267240607452693848089503596605429663539811048975891690876254575297314714436365366592396530990546658987977883319541549339735137130396884249017316562639865633652958159436633757599749458719027299990864874981925031711138723295478989274972365190168676661133557792504539730193536460968329260912705745692543679785681901365500600029267895144062067044205256134468455016537211180123731700318625882847540290984558509888616877248879920642708267598095395404636455910705073993439301931295029936354310350776677525371720761921427616255690480207773325050818775324027307644027371982259733095549393769929720891798717265747658733228063602252970360364349696788421344712364881434352239866291454366917100298142969176981435256368031912815364181473383376994501712283232895573676266970673059120877842743855503792851374459272206233421547020062600503272040605759753309624771332161392389913916966088772628873285612947110461082740768781406748870761201632045631917603525469017073443882331993945780353278886959545914263496665438089336523499266120727443828538640600967226636429134155587153228067934890457283990810360727279106297673757372674264507080187269040866428641478038265802892771652785379514829648248350942216046499757552507050835740935831791733811802310243322195712371643415856232216043531039847321768077025954590223374432486049369206912749724772482888011773539641359769091507251791128356658707726492447350919132986164418356861829722809850116280550038570624212854447533135097402463012814481116964264694384909543311440802032956653947384147578223549565062715643462900578989979613639088451801372681228438350073082440136112389614707794619992735221384637415762342577134574651974999747874411448218725190716418064477489786134311346143141915159874302957829806051567397769202331666862531434663001171463088958123655123496120201371933017970423978799895040583582219199487001627378917725194101990525939821363689985691202731198519005264692483880856046263228470929622873130934312558821140549892707785963059808716188175752920068835655540842000926873563957807941749631134640328277671230378803771785442602728783199941238424494517157103137645420293986113644617955724251648417539091350816480641700300276132311731358072095212969705985422170438872456402150139811755392072089036851433922313130638051705107125347867801197986092848371262524921998644921582635703464493291474724773684375738827719432491103252356876102239731579067931783922552755980774730433298829864864612484898235895330786212142498909665600931107386483202394886596502767367185178905643923559705270034531506350796923844099019214961874697772006914553882492249393262593469522620408518239103894330578634553060541115575906124128347861334871501805970556548362209467060489610308591508241787230866445470052724334678571477231017238291802953391753440997483816540946445015679414011935371674007574595506551374160059732374170837100971781675307943158054697723973756625277017747374318660433587956628029696336044116024238031319605842114650212700778692881292710434521417358903162133807008895738084931196280579178450030164937173670836555344217283495918493799824569810044524608854450358066652612948206616472925434428172670663228686745299455675175417310101981796402826227300894092739555795470753255000771305087928975303563140326678603584892832557442219603383111757229072229999358346508818388913040592365575751022891528023711761709777713235041169511444699103974925942845962284508929565182198014043382238851061272314487683032903164348632773205182066334162440270591801397010355694070335473375904567350609306343750355694313093269906401942842516016777201969371721583813013299940995643848125834462091097350889250771684262520081932976905139422381127267488578585537885849542185316312313984409469272357235551851881483155514881102571454849849805389617504294605578960615376964826381857795552313087083597151886038022028473807454468980351830559426587992815725048893317141052227545084758082648023887433384249936235248312358826626718780252641417183857472631011769700806093944084861014836054876893867164333810466754978044021926157742353504117539268193969215425862553412330758328897342041077491328778755637811042612096169366150094910603167520641719151803662780993394284342281658123555128246428887566158132840562017938504746536604791750976142852735573301783001092717521220703630544905483746020268614719775378984625828164822908629538906969085552501398298228798887212369718203544154097697106092869029762978877618063305018580751242007133292163294417392229508858868561075458383459245028995849712330124187215521331482903727712896613184776884656002386256588750638232881958453133926547086447965000409137664501903582501229538356180822747732404485602131062547620579170624458089609087753669794993697723951031489267230991844639930488453615758312026605695178644832507325672193406767681780685346680973900674516733899822854473881095251370984290778627781733532244014878101271424782474774930444556716416712615947322584670857691302190158743492033564513120085481255367329431693443487175137323165354002049145943081212992342648266041132829498358450911273503622715366360252720929316039205434798319588219134305393017709335186409131795328309823574313969214921730268240442871344949514019810423219533772703185359766291724970074419057344729952729268418583793388445956779940055425381221574697417893086519360034605871369100739242428448222259055797633244269204117021208451630787692020508503969437739036739862364986931623252199842043720152744703628740796094114984418314640513963075932624155664869750476189022976654749916627541453887727235977907506894358857094005046919296902995784225385395702560510982473458296068418968986582500435608062203335893438315372387956534046509799587559291553170739004324632743513158066539233444001865773242766970379338390195361557757537455727313204028804346822680228595226063354647831604836921694695820814646256499481253204305494081567969339004787462455079069896578892129484775693369973397278390401951410029537431557517359580319498023873978251018775453450945846690226168772079340652148698590213587697649637360054026552982901110638241764901510128556847537304519936906556189121959957282716048769600520584477464654870600988038096873110822306282538824410165231971500660206424169881444963204556085482280963984106920473041083512878090740036287682314805039969311801016584535807371174390206043674260266821652861309021489883031241709949752079352543176910122228090316052970076543668903639773459288251357384491277599333942708586889650476431884262798658072582140321425982842157088533552420227601994247049002465666648895269440849892783555501595866855383548290125711885721917298917198261186638299768638474624039257893462036645669842943193624965644679588756381993591231037089478040522710427907421141519911902190561522965181247251789380704480586470975006620630402431376851908928398751524653228034748223051020323456761884364074328771342940969090440342105458809069295260167873986441200592627076244541591799163514401689358639744512624938061918985753462282557152138161475715005652209351254447751109615084386565192724876666209450465214764180047569465908887896731829771820091716253064802031165106490185356359470727686043437256764300194337730393239981974022028983934081457144923146186073802020624522073329655648523320214571351671872281556826700713112747686329623549994339675867278641055908977042240178914327758343431538795067441513472283739157805071031371606510307728235834889915332792300443724770430652174981506670835207695167281719411633193716853438216975429509784490802834204440580756558899127122735929594743298488537836216332337050327952960574599646265884572650291648113463593411821039660142137709005190860012116691707512016190727482338294782637284252792176116732942151938724123396584783814137430987119258947853037315519977511151698134916827083694726809874676763513089821055529598473318281225634914313211252087988346005377390015642208695161735680588345389777406763097908427466021400851521276758236761468869523002229857714371526108205357320547269362418565198484536381461237031504542573848473915439782055413990343826055763586334724061199911461002165141696680734340051565857341177762737083911057852456735945378051699364966123636637318346228886396945604113628039133103596475544825555783084428345007703031272321417915641621095085260677052750158405423425313196813491890153930070358277864785140163120960558194862584325297122243958257321951843498504595156808366193224215042668022544963443743633169915661607144957443187548182353176580599191661603183011499797589286081874985649210666334546461642472044644938368065228785858741470771319061982845700566214559104323625040361704571613210362248189980956977143627775954490033237126397789429408943673966659252735257008633696910755041917308863727846681818055607891615134627700337829867531208147621891267877331369490762811201968055877906150311525481032150444264507426926377223049728990166286670591641815141680588447294089261153036511880363911815803479322031553836161249007670669366551051697826562927912795817535857337600789785234511113691074460832959366635108150398376841890506506494657255710140259057361898317261858632205562672844298573221088143006205975970194269891981255483364385041902982443348375073022531755446799001511505518520186221245465739291867673509003592737171379487372492759769385692357940367174549030332956211949182332544677003986067739216014650474696185224616222808473719742084764227692373664772462447949520218240471100449786824483302105404814299264284717906390758479553943966198310084579647374078705071873839575853456032634627019912101062590933808157775995750314133871410833449829176068885633980681520819908355451811409745024878294579266233118352499274779852215110803301705005581593032726239608522463287188853336457609271526600101659321433808926710577163280900833994917948830397115730013337143872902975779839457301168416523601767429582825472171613083350612194108872680917542293908073752432161031468930165734766503627238073098393259828487914244153948883552645585155231885952182230150660578365527796219439150456917509773472785341653790104260353214124108744709673471661281805055763714835388856010366839963591649053797086250055691333990156856131408634523025268840437606497616874869428323152034890328572318648368039815705692299052080056790502614228651112233588273649716359607925566998205230380087487139433226093264355361602290929753689793906820086739012816333905053689211621500533201565913631678717819380719669779696061831891222767252055012098895556147477901099787036099091177629565223539999500995308799348341956732626918053102137671426235393393124446415704405581543171290644954656944164344437248803506262342291758950293241152700495846038262957663653353443397739592852841938103087451295903895030927360410350683209689064310326536108908424392261362883139612891484273508586500140901747575988880654154736812188771041994132123526713117615445606066742569711951381154260496011626370456266984537554337708286896356105163612483145312811483529405120965669905790833779442702347670445371389781975159476945413247690421218394537059258137189572940639195496977957984670447574700029928028748373050217158744507142197576971583096804393389153902867893220573961604058276991044148300565973899664172690221136465871536537827056829842940030533882684743878869793797679871244733257698150006773504345771923367088789567277808872492852512943304017905699794598131988691705077697345405615641932583070455210156448787358681139484742415995808378998810751943728555370457126655743714511771867603183584314020185590002546989004470677517165087089050909021510261114904820903674761671804465712332683335500355561116856144992446207836302445100957385365954348884265416531965848967787339871236638159448273278368065457707052281826115698771657521496475317248658247434034771903395210093812511216962316429652595026635220884759385570840848045310054798685735191207672719742245932757003181711371220256083708507149893433164299848366071705697009728277308870055253069370439272263035411825504435573330358327989833176672088289315980603637509803304039811325930579217580692072539920197093391407603430796350055644822666990114524807525960996890487955958616213972217625474849704489780695358114634080200846803576858137189575482327053618184306328380227114284776615011662658230572841337538171133685848177114855279177000961199124549900054075302817096745379753222149617472104761606979167988029684001408017175885807083179727407764958254417220965119929454204830733958547901883632038122651831494259132470103256950038303002552441590702812059699032058720657411585759946188566214018687390267461163740507552598928416997822285139987884567908206873919793248986098355361831219525760201764697436151597726680921975297324581742648885737946012411610384668861068936532257999908715974687866733139311614016992431948882119936662877697303576230453947555254986536396703258672601540682928674518974224802754184121722183311785356171096595332595644299818264870256065119509180410974607853717491323056193864836112693671927035462498123801411299842921048801294416661040648041704223266793385310415169164604497675240442742121886071001451715129141237881595566001077524221822242323449931365439876767648971029508255318920674294477952128147516045431419659007188538224560851708033364159998938190436266222405259624488664830099806296438151462427828322247734326182033715792459011388813506790676043431136765186806872210343956700176807710844195420226865762499163052504773994468489245947753606177390944064017675992323859724672549241065168385186550138847391990094304937629006585259557951658586828161346482269631252828277012625760731090036220889661509557568526726999641517193298292884018830627150874269741634948276063062043496670008684502981173647984313405684115102992568495656085293796066509060859084303649503659568558407165292246575118614073738958197664146139619992466989419763910662745494251801243762646747752170185028472574030739864444474313432841039733031619915172747545551988477946811977705935923000775640656721358796494189365133412254424417926728249514137441384966213948662283199846219916053601273941892161446744708771497807541456348851871572887139431436469907914175468667698823417795564977081596258266243847609543467638014414428767059206977799307855699586854552032672199621264267338836231966851855163912504975016381459535643177876731735171142574702422862827260173096599052167337909281449564900350814063234876408062552957927935352272527139320884841044833510666307399680277631911283923291313833152058645350616664437564165493376743089481953806706920544019329259285909051585023699232114806988242832249108817124832613020413742100328349618484159223964408878187395527403124462090424625936092743443919121593797739834430695509557009893047882173724710179302617166091351985167896893793127274143853138261004760590829762552692430093169625190611830768735583917637388323193441919583139158997766806560086217100307026526996277310988177403147673416364107438648871047264596586783927439935074007021646442510217570482240769423225018642864242426210252320782193289157284187654487451786514462769434891845041880057847033506108220116242860246025820983989412615359801644797255786613366426419123006295587875811408485505414953216878868343822524320864760521925101617978426347540028752666068382649894439615748244987212002203775832256534809409114103763929177384456314326857390272461890521055377697760307984285658126278806851472847943767790913286326899940501963336381200862562105520996657054756625929204124719802790562596656211914587085755628169512211877235675137951320209346242041304128664487540125773350766504944892923992008372351793173816967515217977606881347081928277573461026667132276829236903356702102300299167799556553210349354277104218581915560284311362088730047054240254170028192251940843523848804471559419530528113839872181968537926008975836740665309877296572158084606547413863055157550545216761223406045573696789552448545245252894479474974303328537111054005830591977321945498122745492179960527925151610465435723494977193229461633135722614808021333006627700528964841917300338701731107593330491339408632626428122665818844832656909512926473542133871173556342000101581019314323963872561815194963977007951963626591191512329455606642296245493368940780864220603067882924052354816345023200971230819248705355557605693626814458452271211931813636542569012284800027327969085414601975289424659671265183080327097700238507062187750572914886731173452775591154398889740066855488708960775081362764989658445304635039097466099798234878986194531797720535540811715545128137531778621235320071132855811355658493895468818445074060059639599817749816558440402900869140915813584021484681795494706743079165973973675595062254679194587809216154464674122248260187855772224307533832074878258155310340521387704454872428833121968420430910432659821365606465830058953073424028078716631202724070967307662104098038260143580149775437725880907180151362261835580157686950650060969639705209838264914333193356517089581656082935815140853455132883029723361961474006394148421682114745950766950035639183736896120424320168307061756251471660634893121088060549422728453938135326436746748339585672546485517328756493275674638410067174353462932894865332807130833337630845704422278911756205757868199493377390648708149772700673749709791719045597813278559923539096254405630047881649799391234266373311151154406090867419247488751390770187206618010489083909170622186350926035145815363925281387317484738398491654967207174961714984461777330037315555394614323620163748514786030488126460241336329004438114186191109513025072959252782114605007956744903002606943731618666836654621181381833247027400355336580146597263869580408555937824293515607247742019193328258899622521724101834365525782311240928558675229377820134943381486732367929706043614294270885213605295819956941049024524443602869115394952995791308659680891607660576291097168206649011962357491145189343499807152998040877658823501230815958092761277763707540800810956710498711464179598936314942743262737509034644884953939014810658425549355238192964671299536082190688923724746351945669320729874616129437294115809518046603743648451020200965397352790338710736102019839349213158656386517603590741739462366917299083206890592983624988507372461059223658068385442553737877964252790124120824520591108513450510928637985999576834080690847905084399265398081020785197100096348421934157164704192772859819547761768157434528582513340624727208581634531096312135542664722913112131105046631212623418238117851265040694598069970397906155532143248957513828107215066711300049308670947197442573400240433695332778113395807240126934229552899724048954171666385638467477567910566177443049248859964862123687862115421763950260501962564171670135680404885291228934428221603995655091413745299054351637748976354300723780060240258790346619663734262142858953468844722571704750270735876097022594424437886035745207519412117925616690933520280928264282609056113768812349024505877263710693089331359614621664987292111994205649083984502208825628989029714071799236847260828674554068236324441187315256314662890247567317661193191294471858496232260352553216121509780299960209322237362665309713311005972003029064453841208841129252052566404405209433637114695217560391097586043661845154068906535535966999764918857846422550274453651539520351232895014139374723997249910612350174181808370660560433210267159118301737963781440363546112546906799473500957628343658671059580282449938123602443707615477492700570376709011536623792173992347372292072368287113802885223294495430731149859734232290457057335704476752152415890307882565937145322550633677512663352391708348935414989941801636573330849448401760812408083047727523466377720355129134209176782043603638389379435119394172874520359168455390997041256660339985080684434859110992375157314687863673169264784063470334787942241030669530058405260824698859454879855347840765520897245547026905321628151896574320953827783759896417860501687919363906621415930871065368666782240387711482509685287387582661843427473378845371904716690734359115431010356942769540443199379095113661898227238141648316368051553939301171214514839071203575711555953635773308314154063262705739084965678364705674756743796964151628864330822405873057433747457142219045053300903065110157693268164368655372842602853176380015334674997274534180827800957904291940832409005175835627304413025646514486385550772568983607136855710456002410932642279365758958579964442644547549744009117919981570782020373400900423876792160376344177082654269228267315696167339878953637525097127619107569241417407271960830460547326805457790290092336558512521737493153916902134851972221413712270373104852322579789833896991955424128543315953914194770376018286148570281517386799210519454549373696025009606226320879109438717807066382517430921198140877771136661758449570912243711814428205430508515383934478251092532673897313991905193603835225291940889622185183166478573643995410439089856725931848269044294126694577988653758631506265755710216425027728591568593279608024662594277540002200223718655960625820291316865365941835025053571550436524228631628963092753895001431549779809799328242412817704358250972262549648708599050488652074658188652170334288637614691649803947749268322585992227830154671657111571124403550858972745218350876968215981117924979750190281875497631973494466493065637739251652911346425262941405189183399713249528197853565818040327461119929584685145411138352231467169950602389619370729530008432292115113843060165511271973774861518740911884327213642034475020607760588453079511430764617587779330672602331314373908304686593359737613507828224033438351209816101794339046596575846722103666645527593232992229789726457108000347889566196014618621279991005091475198022547239074578739581690385489630580225711359231966254938094317693655057638728042979717462923397495408160728495580319089231686331142103204103042908028820835018267759726759801218716922418074419337406177073473034335765663746382047022476975382335214290697400224808778982632865098068313791986208857506898460547490990300508838650305087039790129567368831506413447842486892538675452582969548513020268679151379107412227810578294196677675982634436794568037212226437267325236028668427360275549878798285173825921235594176448611427380032620397424495607991989985745190429657382737174932308747463231658014373375035520229185563907412395079841340621227099034871517923451369569616574839236533366054466550013979681543531062446277637290232158643533612449161059593620945760497722756722921290342277962275829006699120756423929028355652158283988484354571237193284991816497967871094605660994772590337218212565764607354400868598517705977898735132241259580441386618854096086899999190849305335026760951089220869571956921214113680156474726523570975332672517615597150236668621561426181402526024671817466595835214514779563050393827827019776985310859682687803875257860970323797920454795360648469327625550026926873543467180135059495728428763243531790301410925538662832640797917512683284564003048807474402100105467232016191823287020455469494207269817962300615213064041714521454883729064015122067856063400618886429486940831501922305908322067184590454109440851947089847998469782244478328541528852678365009001115805978440376558493242610519886034943385914527933412062701164020454915855699973939806549384388391208572655830820216808827039297126264166945308353095372018947947289663952694546184269300153189966506174129047564029149682372214136321032239778416225813506936386763953907565121021604833442735470361769074658162485216917786817472709553820329089159119606907932907263615706701279197972957769880949026097035853655788250573952692047313406923111590764689540292132509429858778009126057697013369936562716901197528745291714949298047483003683147655190639362511784332501555928271751834172834086436758216294666902234336960405060067053550944956795459962419705053676238446299718914501711913845987630994364477875227590806449956840494486560748754320943934101514721585551565225227211234036549964893351770296787437116273870370139118300027645670699971633977735774762110687042554505151758014225361633348974328310273050510753214936129434955102051194935799232382238108647646866953213620719408553807446185596812574639670257210876065248579966316298248625010043211704383119349544842853415776391747915682626185921232597308801755468338498912040984841218353463699997628230150273220488906406541234184196155420647357963917955497123787397155163534940265571199784239285834641371084372938726422754511602611119640109352692696145225102174320365641148067249700359354866190580143383114784151394953834056554527496619580817692754727106927712337201775660893077619644201691577304362499842413992437049478925081564252672946576744847949540403278516291098427662715232753033674621393477829729363714063531799969727960126479874734137257709876338128463162340924598805611802487562180499825641660929594756231528412657567578409361002753132704041495437382954045415006960272975939898097539661226579477174002335833700438571785090864912423217049723974289187089321879130536955381141565044982915958843357397222391887686348633874686878109593394281914989369017042914880266332441882647022558226598250097301345435335820022745973578719504859972631630378633377879394287211876602776031723870751430819425725277806736045097350316296372621890369532017021252372959884058547953361210742797254711949489966667135403579060591805852319373833394128134976024662175353801135485456954210852518919546245811630295697021612813008605337983111310786018636472160160893548906911830245494130111224477934631935636236815928495720931332093778893746394325372332916931724862347041457518478605405852839888519680393724492239200544062642900600529698119904651436782998980420533152365359000047138596042509479798469203511510214977280892891180338450803360834442681349540816310447565627258058847503331069649942319423137111261807195436469819165397120668719617558833521497497088754132625240437582651690158780913124203291744239131454612272306564223847360570055536093490349964115355346107554797019350447010545722510735212338623919726311975021480337012947400567012139449043955926297013050394204863319448832307977035385708009156733777419690621731840449224823101485960159751398523839165324484451354113678893755092635428321026925917913555380660522625156094089604048274337056143824403884910651590553744438496835135376727528018697549735423948220702651891833315438333437869139729339585045657433004110418379286877885169823603365081647950678226069133583193208476383771512017922900799637458003450214061917462179171448010714819977496739123553106423242653704293556749769294913558187625127394864427613190297554979676989903152476485252628375330681125331362379230684156009069169172769793613237756812908190915252976147930010841282659079619093102603526500190316276156094883919175160492016258041893929665748492636146264036539707387011339842687976434074790986649450527963824882018257630019012570272680378731374357204528120062959813819528396303805570078323645967806525831757088878472430619001545322623409921869009054143275837635647647366378452378240771332361385852808637379883456987917278669481384904862776216112541210980918249452723382424360592187046779673721481059240830099371543117531585212653327836525508477575225142843259789427033875923865582922865664415614973368300188242049538392979096462598972841919386907612231080459017222114291182944162906188812810445447328200555698733690455691793369769744504510258488282582784426800714119554350531599812950347290972202435984804539872556339244956867389349144415710192618586138077093145063467059620557639687118429207041542451881945469251353605272405615856404681633319603183127154928553559629622196137971530826622411748071502787681267452607806463208810798913078386700163929893087132502290841281140758939718673700182982837334143349621153787477621673914318736533376029286167637043325966259525882028649734287141856869789788213728696643127467543058437227348186285467496648218209847160679239822631257353713874580450697099682536534106438226481826654256422214287021949628849194821511625252031156495661570731432399917290655725581830471027580380069070900087373990432772105004236014066255054462864148658939747407608812701402177663233899477462208092878759787828083863778937260076257009113200148982996329747535283513618577159401228839508287177173656443944023380333785802867185882686937190192260961294110240174780735955845193004711609163134405396009787975446025496106398132494509256935062192639528756131018628712590636284499779190415916104654942160493775131717732248456178139195865275169923449379354288363056330555179469324783539501282371390789872575286103552030223590819995108012480440491684063437507561557810538104009547459407761643618245440707749830434686773472025557853985457176361852319790159369293151671692152988174612159736867520919783627697961745372496627669120435133704931662338888167972522797159868844160006441965829289133541294722256973779381251137011699397410835886875947368181017927865492737644423362760801556776802332678114705031417123474867850328766244237025129597557255182522773252102002654532585707641343720083533193874528886448791570914265400070731849614201978541743512908016677719912261279236354642633137330605237778343171697263903005948888773401454587952234657270326218510067629977237632199039673165491121113680282209786905772984976104427658225702371705130359558326510361250543360086226823344175237446014848773166597519151220938856311360257547355795872276429946696472511023413689352526654070548584154180760288871281702633360921245172718241685370580923058531991067868859366797320233206932631875122924951076139232598029449223722785900429007523109599735441547651452430203348847854556553126142834536061875580664834374668213607219384377520195603323088501077036628052729473507323339597448092396865857602188033924253948589930444884518017238710333380273028129794842852928212382069863681541578680217961718395726237606089090011906854287413448081255914997038227906805813276796971288032920929289566942647864622640182631624589810991084854101083941434552551394386684678838881818135860825154289230420200853880311798177600070613245776315285624415302750078730712378811584311703572730870042743476143481905356972584070930380444293653034162698359778710117491967882745867869654155226792474451211672277486628001907307436701458489166864244983926658168565143128479725927124462852681248519610789467631558323676813110474677478705054023279345088632564800343938835573998944156850793047923538854889888772415750302763912184630384334981251738964906699419078629782072695822914933608932473032574319242800453236261337446404513701860661155235282081447719709834677069562329591037270198131665167712364361959782987600436048807713309278245497004648759973374625417279485268664385830894548496283783206264596886163397613200255343360562998933597084895992845460999507836694888620937390254650728805272383248465488772927425072977420136722656907914342740894370642690383164945597218487136239105308690562276460337653272314776141811033348666786966060281194537456796661336554189919205087995045493073352465698716246073174950969476760357956605305830984244074237109825683863243016289821302102897688679750019563848633507790412321351597848146273140232082972176855949309590462905146369953508482975176575063146855418788090590896676662030342959152688633298332233307460936393902517743870869201307724139351022022313289590954914403056917197785986862956195241999840398366529027306760382213858109582103080233487081516608648394714488803972676325776164725226391581802424745289860716763782280542246072420468907081145832195621978234202825612213641993299937983728433375257772861774464525846341861472279109900324438008065987852893199612592257174376226229772062479623846572032868139989571405578361147044794177053059766117134913435075570411266223011702657032885404155482703655440918458896513703322474914633757771858071069787255116386270603542421355986651359945529669564492817565977140992209444568538910345319533035753090796709388257249237649022923858566383292159673527062421822652348659935911915601795609221024335082809340210778539129528846227924704975285364788303918011384112853526254782102535893314122975226975971772557225556345800059324514543014484726459753546578118615125400326389723338447640860210597054346171227921077853305236136650221148066247723634373267547849505491699561678598795679677322858301303452519368472164053794474908156456107531375926575333053149280669611423401406112244030297993480658435779137984372118010173069930241050587898329541908583503626583968829916587642408421599809293166472765069643905242657282628544390450767996029023401854639917045368256713740817254878432302703458626375195479572112017186285226149152487018559306855368715799698074321300702957124214642698744074279952383782154601828308403604756678254428164661465959129177090058397693529272782963142185278692551182502714000352388919132048233684057239301610377180616984412879498535886849384097435071571335414619288511821761691856578411109842392111339164081144292417216723710275974728898416180733199448540652359653300774918115773706595384544127798289001087188920296124926190324503189889914370971626673415506193092582901797717892038980914473969022507923770639799244759125857009780822327911862930935284314361170288721384064888092031436214217415566767455700200550376791501826699380012720835608109380559599685770938892589572854207220754513284568179781951498566347596118320057681549312654747111070641528131662230479948030130322785952035523788273923984276035716586099006807036918144308114843425595460648534148430654409590680141556498796108681571219927169201138026559021185312802439739264068082843485462043595280818833864276659738688987921995014001247406585660878751029654932024249895553483917462234372531829215132782493313198182745315320156188411044613673112609287357056206779157973055838226433060458062465143437539340621858919081932588196583250018865695563077435845463515560333011161037219907014672201727319321247879589114677931572919252579682247495407532265757051011249197747788018999327622360357472299680602274354297467337266551702713214029307579625631842226316061658681634297436411742984346626230256374686218264972434885875154815583896090880297795040233959638033250253293336048842959906318114377446408528091791677359489708495649719019598419537996553659068035296023311317033613911421243506799464372852147900458270725392744377177159532365892888587564289054889319981995255044638384772681706465754263889907429858442574468014764224387215234440009218152967940450934826550608431683469743521954105514975665910146119398294503479909485439701626009629754336615029932717432383708061082969758224332162177375928866304777253225175437922169927221581721948171913443391728357886647017795906294187404884148799131960660356875388974434840187348379784705554252995077804726853958741157578518053891204434876929544208136870283365662352440976844338557834837653433777561223553414286318483351893038331776264137594009671823237692551672510128977783866442720625760739181672581167019209576963436022944169386437872128515134674974927088167115821003626330446422412933801518258304790110675761975380053314664768329295433476250319683374258802317472527540449254300616153911696669071251572539041750850259089590457646715446215940221570946107768342811236303390755566154380150708253996351394514973842363540144758640389698496609894678535576963494698090292241517122314565100478433980070989340673236566085812146897114037331047521689130708385584008509744585004976251342869004867105152069415964989053989366921350919558457176193788076089452116258192469861497641740843131157405294063860401641222422752140743634316691037331276120863665784457113579772454423337963622053135622921660635423180701905874231380073669962773916381562221364310911238243801213057592952349905616622595794919860650237572394407137245080430007216487997215962601807049328269473925695554368810443268590002547813618570151631182338039175053947152755702218763173281674767780653121869779610367676325427554830786019427219581081194931643703347544205934199777004561963330053306759912357179189517909307810341411100147605188961564521029608814808180795138919483499424060005597098756195099248694622782737496506200540122685987608455819929051649449597475137601234772043692159207409555866421735950097693714576773036124145071795608512282306494375762429688714050157363884336758283373230624976658342999192218888115048932592666038110147665902164638974245672603655357004040709409919980289687631980371097600949413775557475066209762587871757720641993625973599462522607899802076103438628856409487348732042594954706113930166481591932893799816142642992587510092717037841654889542252139086417413712327980414179086661063088533175972334091580213577536385111872070427292715586262538404719118889882049005579588434128826228731709109216549981066136496285862695440605591756014426280417201782568425663116750830668648193996285085449602700226134527765386817139980333309309977939066389626028370207699644561474207747690609134978442671904592953413752431706768462284609697791414964235269669198940626947104155235194554955312286092320235863388894378198298991574483602174419102401725079409862197807260708857954022843278398503314300977934700645282314858707859652627495264767349800447616448058328573055738921027422462012975322662974584779776970213814564685309550745057834283666743368081825937248164390081257208045978192303273688403599614951780936356632163533615323671036040003327925641200896682124203482633301470161077578232068933104386863938902665851251278471249266522209138016988435885545299919841831801186606256363980589496145855457353606783779533598621836267407444053692219321002243164945563488860656534768734779399180200003857335134210632451878679899218153731439594261563726781368949892563775416407903578327486582675921538246782796863734487958811952686156579551972792427344741203404112355251146513510860518155486980250902670889508577357409511648827166520261590903635256815952844030565126288084112277063349938969419441605480910827665110631723597964434048095206976483187216290675866442467874769696649516687550771793120283755508362329511830991389889312458680584055369538703766472859401694325376886700005583121154100792523743288197016587740241882307254339222484888000724332775081348540625159431245464883196172906396290845248132761230309797181918192273487910678677518880244141660685039348953114241481210063396790551736218320872729597262627188090748582356205724476149458328069475973353685984695269423081970844472150493454047732216745192797385158450248419160850751061801497489496203102979610649287990144316708055904293755750973926263429073850419811760805874304059109482699648531709413481688027800990793880928693264168872787127835756120667707181063053713317721724213496175511451402784841874124575300678210311622310318380851836479577295320593975500514161545767741355714360307906466122856046954967718607636014794670393333437297180615945285266081862005506922183765281110946056358432151027280500546307298019278600361659608060576290684136549039715673382414965207018703730157215752064272439133813364570616548433531248510956556782630151836602057463876247755605763171189368212121558359694183725244014172791833686419702474408877682550517415291919598550010956016997933390467723761600782471165890086271200377331077711180997697981467945862568648452600903938874931429863884364234264676748535189899806082762807143708011196336161995593616165590539424499052443208750806135379375013677642006170973101076059598750174597521224512664390631964476502914616462940736146057111958432192448949766847207669351609043538092463463314425517484699238514488207228166828973823711482860685248626830370861996142038437431480191131640732490819027392967057189364492275754709287893796749021766974122796890761148532452483192475775961533880421580882940911217351092012012299262307133215451785778108998323546511876237809306394270565441722571162752277661352088844948507683201787042685199492129720293102276104823325154661311437980827453395135928771718281031518658130389677770260444181432388605745761862536234548510643282543204915430528131551054515709088806875609871488111501146343802234677813221539818211062677153743731635965765237035077907883583858345673489123829494034347700711032934142130823346285114864406627957760844570790923957912504649854859170246566766487701343635608219403410536900467475490916401609300747657286110360074656074684218569806050582176677565695701725296573442550037561087626516102490062535092034888980804586233291568123201505795133626177418319457101803288825891822858998204017293219072979086092119783881344299550670581099804800978027804380237653009521439202356550105167752329550558920385398637760558471131572206850677737696763359629773077940885759825156078646715051627741190827182249447870425029109746430413651216157992712063240015491349509795126164779184494831923047778270893417452222151187960078649959448556056827590727881807560722129837718528983924196443283839581801321903706696125618580042086851782459592651923483607908937666564095342478822949428474687985995641517898776600654476190877559683780918992427284210982889342574645491824819007445419416477518269114329990940937958805202152890538651334799766592480493592909789283160722399874852084218062363788252043032113441571036004320652543829039034730827580747918266367390927360789138134095183495035854673965525449432736098311504233722583700002202795287766776186641885260856482395078816118421688616716549060163419473816465631073006462209097834784242733418396039584011047121975925806604115295872602369322800193472493953959277834003956485427515249769284819520506870082044235037003709660161793639719053986724117033679501703279842079623324587258557008472852718307362069637382458338611382172479854860228573809226883921631024486170903344091654665198339850944326366466681932625218856363744710709859172703747719279677347753775958074414535077708143817616591628082025678130524358241373675605114199138756081505109885920524623897566751566865928010141403982847594021229795284102564872963101695363276052354373694986687646508706577861105132177388913943373612942313642551862551398123454791365009033597689726138531758422758860220448523684685889623713710995143003861230509073904251641247874442479557657005176153391160971695150654745728824939304820164733293996633113524876605970014577506284640389090099709143458856007195855765288199570795224455973682112205849135700529627898504584584903067159902961086741036207379850491113111871705777097201239338488143821930151059026737350237720745381025228132082201488858323045897850607745424037895417777148281776734374139825729188924327940343317257563493596097713393614077119632722483996277604389046146304943042951704363340371119191587785362785890328812412217431375065172836979220925548446465725654423924773659690828186298912805012858063806391249027921569120327028644101629512942882965396910582020768111622741498964633281069037321632826264894017928120875411702873623589541745658505406519193948437968631097736518431693325804301192298127457423051284323636275167552576507496129626930505454936689294844633593016708946131146171688342207572929153953096859539487365611448560138316798596888422875399469258163059077639709628637390149812821830087399715743016162817210442781595407611447641050455673152139500709886934562213444703608722859157711615316035796381508514108594120718559406113721146321560586793875059858601659099325183682724538536556166422527325972968686070554317906345789423835139400983455058079141785059957858730802197949015013336015698021766454925261469217595222599269749643521788411907886835883625030946213416434401753630046668987892027972497434543062863147467382557312041597496791849557725571447236450984132993848531037064705136484625450498157595270819382443421121648385254872160880933407087898256352579346222536687072184796776755966351700959988534641110174376906452538079421949992437048079032600979011885507478556818839814181402735560075969124166264858717697971235453022457912174120997383601228295444674539738062417825345422556624527114694993339661480988471590687960370304882279378663262408111195900596452564006264126618042186719500638696440814101477405857173683887728010342533009976579297090871077077874543733421069383110457781189502789695368149561830070167558143680517944373188017593472615057007014717211181603715423542367967846173111030819038772323543231171229384787248516511751648477021525444776343844384756587671089001265623535061512302435838825093022589241138726007416407403347770115351794759486334071535170908366628806945119250885245610889455604114285802400780772696109374050776993147087347190101385593780910701048227591673884627618647494856634625076976900489921256097875737701947824943780855784224520615372247995407216669759064033582711298996188920581964181364459182648355321848237755089010066787724915341078039718439116733210764412944647825945289614433466401019152207405707320125887923192464083068591509805278000593868378376186700957018643311717856788738200812819484387263950371676630637301986022832360169999975416253893634974708757977258590731794907725389661410613341559364597459422841522458787961480424562178471672348869198253132679628907409952229341368567990039392640380797107319180318015053707527870112599211009483129590606837454243775223979895956141363364700698959979776247231604686304319526142044027591302446207624302358475440801569147885693844666162989381154278286928893571867180621569889001921434809774618832114128877862011593511159099404208051693092842141941639844807510953870194748102401238624822073023726187865307725550286195485609009457523803387004476271967540235490503605613312752850126813615047701599766638196780717155526562589546864488757033664223622989060386097408048535674347482709984467856516849368064726663881251202652047411369671026501668415663638797131731039940031849653785081184416126103664607058009389296035578043121161564300184999814045805507266415533941340105879658949149536605458920069112324262246680526677019367021903162012164637846610576183246188233953397906195383170395061269972865186955868799847958201432354421349960833887074052728688216095157337140937041938601549875854023601311364115618065935546629949829061011109860133374760053238776533062660551292668836415917636769777764114352675367542516418273793999848349543108025524297769420983629518461441889303554213358925398419985046629358968506636533200727039368915695127212909828115390568274085863581380114419320000786358173547672664319700429116896796961764242689012971756471442741376142999663692584046515768015835630403709533653880604338241197925786818813737909510098867750723944956239250701494721028236857769216611373709618750826888645692989915969130393079572201419265555641476003717680674442627793965329474250720229346500855245227932105489321667398932048680327575726993359339060456428538997978134351689046272274102688803522692729113069995571108315307903772878036469410011345179393115647228079917495938786614861990050186366441826376746298847081332339099634609063402785123009452506300621569000141175237873647278420231466570598054246702598833592040787087130574725356458434576826748054117404249044856229003151012557849099236016645704493916113914899757903525644819922220594527039762006121987367150320758862316461062427326800653884664571293419020577453889016895738087559012337644549889072556336347002275643442208913198501901150025272697632056333960646116807541814339365259790670475614466519081876934165176475990584189634856541296324196739951631421268114455391325239554414982815471976289973443967976544031184043772553135297328650589311532452773966170863549862024547167202884709045848867114822641776827148489099791156180117902043481659344531438583786503578920039593301879962994663900615180686615039640158743743737119803543935181193191326833002650107149447604348201028166366694784622570570284696912590510366458006231245611233541797266521780800757745567887210742858356902087309788496117001902998711654119164668126697271532502386918552770955514924075242812947528488682031815032144528546469578800756927144079191710184131034190368438431937560815413315301272849965258883205558612446297940104883294112498611707198808304912121712570953716286363578634516044819680355129451373465334067767870115251946183368378398450011581400330591063191805201289188649742851613358548345970544268477908334594236382518276220872379559490414541747419573501516041406321234137813237712584082900257195946477159059678871756169349412478421228047072861192940454529034020445634207155326076985475559623781752887286493524189060072524094015552105159454425064950194743887093540359243911547691534516393401064627262588307366173063231363323507852307260356465431894966424986339595959520599845993957881802924396886930187999240319938914524550785825801264517144135572115856159396618781975016986477878505908688356818260190058189491465210378271999786128985619342999790617910769724586930275626306362979346513386930260459347754954194114783873725300742374601708192659164662484956679826684288213783390137241437040701208068481518607081928085305635739949866285460505132247404912915144804040755567797913061304370389430206272675176481177128440601365027957083199790685727623642484772988909814740900534828736065327482604662976390932104106953088003268209447457336932069507263110809909111553124235792231321801068018349169683366752696127222024010470623968071315435830130123107171780338206096433370418294521035443863556520729319597666472749073189536101029341604320880126924880919619298412769410327729546909773000931054398370716300916806753073840372048094358073362368380671170387373909938995494687739803294941564611498978736824019303956480291632331955491884717341441940651573199916636130356426011097774375877337477700875060770101587270833602881759987137736053807303168004554226441250042332040534255636058874395827632004960628468225745153277492228161851959697820523593918536847056706717158040590731952825655436853572590783989023626123152896506617443085778458879091384800380233371306505280835706785625780030577895571043382509691604081300127313106628216533408868441312598715612985270974197663634904532451604458888414069288639624750545257860303794513967262421663089499778207464909849261518680999352370150291459750779161277165557804290368962897474765707123683798722052276148664750609901107193035777653803220963128442726672502773922881373258681526907954202124067342874966087543432967798024411043908323339688289520087958561057793205928432657858953008985762426981256561147686219885517823235593007760745874060402715289108427015470937120219399469429053788347415189194340222522957467606628386570093163423486087054606188143177125080879733885008202683204414389867901063806114719019522723450191415917803889892088495383098278059518517955933539035726030136216084862929075104850504346339880277884997216258937508780825362170573326137770993591568203949380255823348778435873830088251988188056858880845172617772199334025199737193442314633480480355559412067154114530018466662354105437827968323540826491561870129083554011466242503916374984900297970503165590366962490569682082142294966160149996589866304991699022006966497181906721290501643767626695324883619174846115640034400505410949406782012728678044789874230357143915826148286803655373484588237732826154693154063489404156418790813357776312962067730820503041707486998089404140552472881794499557654102948705498726944320390150728815843402454848273769337990857255645526696890653701286864184522777888240968600316374338921162749076896457432386605307245801355214806935563479681671980652413078613290294616027028693918386111580958463591781721578991451351451126083213330488172094100366457285052390318805061635811508438101306805044484504197040917977339367729993569507395527864524011175151072518053368171083303849403278252145778600569211078313373533882693736187351358231244664031038066187687511471941378888833258971699267722645714466174428976784410864163797134406831112258218506252779991922991422618534138918813885615462061139883669185451928223574677950197278765798559653827859600602224072715029870770633106311903837628758618397662599234932990442159228100991061792519510286161846628934092951749451165800710293452419225621181550497050096670278280789620643397264833538996917344939052167643270492840597563825693538693048960825919897179339683003349022786098991346943714225907663440467929147875092249147915065568341366038504978511485847548098260443249334051683172409782228249874176202894496314635038852703888031846219847009229710427001389067375949700930894202555307635550469627670336521430400371663212650381156904493204772545744636093585355524935652942248539327335103794185249910699967984770552837536997007102434947891710726876147470914727604047639299655276684292213619289112192888564872846930354409339288575893731013402362690388279159498942514717486818208202240140358214203015815301644495696408562332621723340267518948143468492976026077293712082732435767299965092919801038032209352589183604919995281642840421932585991698277450583678062257982566538039377342791859234167601453619434261861069147681658401675440571538180591925238986802855975928431856900622227302156369823329280733381601929103318401496962515410581460673715664373057340737670574024548147137635758854958933174661622359413098867686367988984238154780613437970970255860214801484478772576139947298380102872151122453234326727844123452916091005239031144606396718703344206289438195433809645489929971571264407367111694153120477926628136198424283445688626796949640021252370587219802896981116563072976482105174388166648038835545516579134164963360106635137623753930371726043359809913403864366860357403158460185179337805035570916078614689261477004346971464023082079227400372591621327643910286542709117233719953609661611177983940362596795854937830180217541254823259672853190672112311350222984967024155725792049836092106877106939726275438066727915596816791427437235253109833412162949912732205119437939697817349999948099733384869620437538171593855051314862252548653790705962054105585793792436026304794517288940834207112319156008842357857590320928649048063497827624643362726480229249100418253096056298083682253777844199465501729932083243189840968211370088321588574609980894527077203091790069968128306384450299785037380707302383746507604957963797034431917091530114985121505270518110357587643075682450817348373955733127081741200280608558317318993622659828380564025278649865946706452257865367821492199901841950344190650822908951021631757764379169621748368689944290358220465840082682353446050074044654313714675321860661384307486856326882326022680109181907498625650180613736676894890523073766667636270944070629514354589150414253333924614051140517194904256581804300407206307699587336229716426207391303988363141925972980325798003418372730295966620301499735289424664272162770337962706685760869988603467274621200058528503876452939759057315424032891207577957326907910986234946027928997434004611210093652271231884328680271115456723806675777186983426749495843867959844935086389454951733199285371989104874032476337566013249125579031153876949613642767559676140854157448662295180733985942402208466408681964968932534792897013878341010880906365049096560439675174457486237820773778831872245703390294027331310475918917905958869824059164650241630396127422144539960442167549014527058538965007518248016310527007588086366417140678204285835471253086776026618329524419998627596556928317234443563282491289135178610047398443470081716813081220268060789590096207098813039102109911810562193122862203385391227156002728719970113750695105880281779929127524452879525320852774276666827850446731979023845532842073792095048388753677046579510176878957714574379283681517338095585765823721311483183896158093783517681135999271011485470858679618403017674591047517284688329783644278242476647594740509457685304667023310022168775047036634843271499328193736092697029627127228556856281096420622920129564889988956836071399830257987618231450468442201656993601256166217233423192113502735302040865270826823061493037367180355017949990933171069244397656563643658382594226742545834141151917902118964564352302251320588073124227554963499773062608225963824903572415935776363794341410592682977684274976109270536710049609691952641357780614415292326244227550048422517883058149829480179082495175054529547550413258470668251250019588336221916031714704942116714525226243961431138027217260117986618461436397092148703583329798915066711085939611187011834989478908745118914030251523101329045109396878931953998705276930947725879791228327583298335394939653441819026357948034997279255404775329036716815305286260406838441700638868159731811982588751602723394639665056540996991945850973884302122809154601267994404556316908653525397570061315712022119104597017938943251712779384391329400366674451186757620635101650232624197434628686302637525533750329412594106551597778102910570425879091850604984548926855719968501225865616680382790997483612761568309865375675181659746097669378760705078740499262736912122488308641024415932598599987728406722209162593075884612334024747808776044991143223975488574547998478375933354893639045009781104879445984807063760459019586904707965292690328277124706283488164841006900550927315727100873002405549511370820637400149641401471471183892845535270251689773537724489014552840279212509047435685997799940721108790598455786828897968292439379278646809325461083406959566829111856996127420865920326266108724952169572086400873231641249284368217530999213950615432813108815152846871433929622195740982857114398446747526990701681080358476330634027132034453495818743901338728711713397147861240271662616046370975553837742468774697295723350829031872976012244085362985943509674666692668176858101490845368775180548246870357915249466467211070078171368969035410801781966645005056646764335232494853177904445693966737514201407413116115821815997764803393749228528280796995707808388194571762145371729371144275166398841101022501816116425046254081995867752921962459288938817842394248979280734339055942199873855005670258507561048953751767462635268159586937424149305664882270306507509552468435175149216126111360711000907687392216342753504175754408800583325760833291775013013468766046432101659035761007274945535638646598628568189126561180847084470724621034817406220584181085241224852434684214970306839442905362167355789738704814727488520806082725883227429889614893215347806517082177341889106336876578059073026056424029075575064863279696925423678747349596015938702990629828382628128691071209934430228096407037427021526000869518665025053081420318886874581931598165775128335933775563218853461371601829119691947309033815444053099650086785356017295666480877064949198633746800096188645472450695234672387966215184852280270009426420224469700865386641128983713972915593261227989178088249872348144461172065202076090938633070014131048367324615802519167437024974731269004726074034323447558715880457439650522282292920596064786467136043979339671286161379852642373869918107084780697876209825276810554850433814853751896231542027739533255727278649047421872088012069634823058964574557835906802761494220219230639011827553827657690183232324513422245719135763343699179526576425164722717730356091572522483485598965341800291285468053483055529703704777200263335497305727965621497334043010255429283018879975031015385800229115684906794684453323296524767552593932815983626494566571475358546106966744582787113181485783942907963700711864098771722041807251980381624251155209828465486124507799646235927787433703715378771849034334148857453342068138124827225737370435012527591810723312306239928492361902868321358992852318856826003376588133481883679496561678279431139551346997073970203873100894952074766733294840703888383507189938034112829836459882717507540210042236687747692679981080588087618536684681266335083919515147874589831531494354339623625292871643242890203182626956625039470045997230173824190114451855739763229287592729773769182354121173595677891462427411127442829691485106099258818271108691674661118884868026668652618183225149697323508806237239955014301446144868652518492618804930451121810232508504874960940692403753717585201316800763976028217218741622336170287916145081548909182312799691876706212032421694186117787262194454434122827376240111297539030632239083294369858086435843495419331985870050478000474836761251798942959637875087184943257236744868704898866980631992390650944243941775524625999710226949003066227272557217955430663992742395633915432789284446399477830636533237791859846218458057539566462215958490832173336090971853531125369132977454472126824173695000060562431286936393138963853043873662630528288719954475121957331541570707200736363347439751413682179065555223260511283870177497524583878710035883775812636539023602112126818096158695842405139151408120342710190463527418067482059683600958718217262320844247676595200763056026851034605934516878617314331845479449342951891214191043299470335415018460103575854239332925744386584665459761365852004972215442173344234051146481410744776957341247343646321352934848955705278335807213752233774971417592378232228905084862378886145049904561873754397412690330794625766696493599123353659298319308681790798923331372853474446860534507407125094562036190082606265598586299466542916913682933727187808021405232036318120382223638135369309503566874628450120818565598713768870017376934769698814732645899146701909696916167490388994193490874466512793147443148891492228300036158247600988791484973904953855400533129221505519874879905620096521207237050384139219448053464305061982359232021832163100573974518353029839474635020524038948401354306627668055756544156520670815439513646378005520768170804307766809584041800830383633486617841704847256015060547921537398426006201164607646086909950907874416032769837478888619973827223741366194727317736046663961691843295737071695270164540456615065325037366241540694206746032846467148253134272546428116622416755192438818625517577781707106895347632474619068288791899639275719131175427090164605733045421103832133145429699588400806957131296950644613693752572042229179119086590793173474639711787731479442896109489864447541527348295287440592405691363888148115573515074225969723576288457334630170128151956987332984493122680634537120497601205718647163927982240045763334299357157588770950264013250301790183955154718287139109333268098632208054447393490242843278306512228189743963349042079624691161359318310779083669243605330894098145785636476757481908088547479272812593697072329273829234080204610265278887293538893089071160832811248502511248176701762031129530988810177344796392693462196971077113835910571967736186714833359458474494124674852352780013394341488506833869171552955360139740873952650009638714201364088890706932198162323289369500882716247156859685362183931285306137543246985679804482880028606802769018616312468179364861446936642828642552137524081429197427600371458182275949082815950241431294592229040808475375302648773036139500916365869541394769298141593634445999619120399314472280163017200669852988542265698056365870805672263353973541601255987060741902837160724867361875375606600079163685642480079984145660588833969261246905403827996691044966400144563443455812264101567702696353258611687201899509494903259203247928814747678198642793612211132855499551343494287349650078060007624537784395687520894552155938357196234118030108215217100946253323384021779429237306095853559063440393888769887294524894399470529633028917669565419952766230481681356578883349788749642741930279516666599700089312657437862056853894439804326633099574337057037066761931273534917737005895251003233832011245705904045380718976321557767585506780929046569517471141510527160977574799489110301432239018162979057138962580395556400656984449856483045827434066559688503124925285948241202177680421911043387711530057171441582898250185478421771232904917295862446319615181308924614550019485581049035336544557879373012544766551801932352932357068654925012702371747897227969476923729340025675745474519053568744280154987079853641365518204257440035899549795964552832559186231843021024690573397153674202165400291775240442867463400077325583709484603718553230523165310910109118164316997291355303876845451854091676650502237419416344444260696889632080637580596094347762521999307177391610124539765042692691901150387653427095984830515400637105374529935779444698408848138121210990526224153915553748296524938440059336085464299723301959224828300924142810941204460908283460221729190406693171365495393790008801171784346096142276284465266807450283666329309819503371615146419077511935222185762145383776273908798497889258594355393029999867641610786156708661497328758896068548082433714480276883711151775176637634209608294800932693611918878367572677519784265855952341115734143145085802226702977436827882088435540095013945811836712925601046151407770761702379764178187241017471683803420105430035158322105445146830175054612110113398095412011149347042514852929522672183236347971728056929495121288291367291351074208207816553262908702278595105923028138215041233981048543182572112171228598194200306620356623213021074078281137694335992544952329086960998052433430567680118145817639705908270440921455055391163480634342543368950900030431893286722920731402528504406206769679798950867869458464962572005119597535778230068042378249311154218972114441943567283733966857767238475996011973957547593030544953805555504394501732050892139035241383077909016941737132185192645605780890442718755462656100344176129954492491879255671792753030732269245406587645503079062180901547814961036226998690381228313417863907737550715239725303362425743100717988138521852801578304702573235348592129867575104344701418358529582976406947431317589906661217850834239228755208865430263939985639296586334610528540041403500577570225468057401688990705273451473647921167050648636323443194849834046195917217353619713030708814686253118694276685460979283258312629342575587537477713305390058452266777432314874742549696064839564874472025887530550136887927578850260586416310417836051636092877456016325073194992249545229048029717810037036348872454358156187620236832366326712657967582529594950372500357645725098377379423449259407720396359357003657100905038095955070434417409435164051217681148100448993656453262565035271647763265127934888669767449802027531535505304236300088793802589096092430156149873491931349152248627320263093144480189079331585857130149533342606773922637036062039143284577593067602961093267472965082306915139338509120573619910611097812468771847213040457373707482311484873359464009396109540275179745690203369474529326135599612222642716117162290676215867420817839963926079606243379974950236204954163691695254498097855877189464786527335354226393623404058149476549094651210593469084257600058445402952061593324267913998681384259199427122946188906978943875298754933502860508299783769637381902487733443712272482075974995991622376135862915426988633089582102021734141190884889936183436094431948548932912885373541987761014026322010070754136108253025407753921168775085889444029092876006861000005797631176166753248296082845150168116275095920783197736574589167087304146066466173361115370875752725928366762633965969567476158389285233333597732672686599337780950853661571613871636487879920332238842436846874297956042757287024292725023682962981569896359445258332213972691264466129779426086835778943811899112362162665473507010099556757676081642685041231511955554055632706840755705148708300148061214193809365215714160569705201378309192319763105841936394820131803946893770575130992225644570418573089883326277011390086123084673789940068414994429276251798973616364395090911786778411876310671386499348274990974295640319979819345790094456144298843654947688303239363859834889585029859427235194277207047127185353660299863355834069246084842934123270853648164033339052219174788928245525304391438754118628158641556749683619187472514534462968872660396373244872350439244784575931791572014205313729504693960330072652643611507561684998672382772570204044436816243067503311324913272145462942574675743937335516824719818079009138821991536178829979484676869707889749940626115163828904331870230334298850085159615979449731388624623603052874162045239092491947823254653985967049247562581084634231064078324592850014746367359210656839639764786265127342425152884350399840390056812296357933167013918384718540651027214490172453831014418123439111502047462275065502856195294211592952112225883306228199758973155747080842939012170734172361525833165900708471585924058330384114207645093002517620786565025417875794901141869742973096351317948591115619924915728629792723101110114472006618754171960031240167368184236229432210534017876994155037704185860221729729895014643907545382715064814274524668230707706632158614085493453197947471455527570534487639959580758681682389271153973654381479543127208848429887973033096965531208853561907927643223665572145845340031565351517810334901452357301672291628660767788183111619405436495990739550656288787854000875415418592613615899370374948640977748444757519279530763611966912941696547488420079989551856370152912168126037942520378924938721377540151414169395201398764561946793262991833360448051078781314454202780925288157697812283992054116943930730978215947902798496323751966101766939224874550650306407853214842182152325300943392369450329600393725392992549107038256800981423671336727689453545840751907244661629207281168082508004595485248054159186068392566162364763873915806902624383156008309884865404448503425856360015113657222525770623754691632841270691943288433703643947570146287372337594857803293167166160301711405482860314334285879246890365516368924634342935709036994329197172048371075595581013782711764843993485742182605202547214199319265192526652924227055640679509137706833622661746577003627193541266320356071852572756164284240243403627221849946102641904860789043771347545728212852791012531847301470175140508364577210650689368241569549752104370291943018472946478510881087744691550656564198890955824499939832014796321025278466872559766310614982263495775233212935760672106777235305547698821706885874419546660529688050128488989989382561955104685684328434328045047747086710494011382687280700175303516678986486765603847389511747131414589853678076973443401033023358014303269481384243131056687779769839382621384239814981669925264072349723950163708806172121892145676465850323809788365494025441478066043353393416092659600027519870246456887784682079777013188113290714001841903786388072402423926112914034526042767676521953158505241109518176472566885561497182320350346690320570225801186148605839113702450648104750749836488161119370480123195514831449685407811809655568790453660943681204047366622267712482896136045635193213872321651737864942251943983230442414704512973379433338075109471703945096962719980306618256637442818721814755367012150184025235007404400791459463468296421646635802919893754394181222476506995411400017998066846794526665023864513103410260051934949755234966510539828886167016925959621065599206653587839008411442403227510258725898084955278779230178030487872360245106291612051333122304685434516596505114333682792330296907542653029569354708778839883242887214725647647240270782418099450220302730304623790734613709758120920763680179832862204588316403663669435823481841977890326161944887764181645231461796602891044335268929250150284219694645001400752998126436479277468959287204983520734644999845210394925048836030255691877723320331453851308284807846910118715040747347677882189109625466607695940087113868823072841636331985751259676164557741350339176528682837031709335571004020974883068785408153373197020629216399172331997934632544096659750613412990516098727579720957865291050156365062134489543745977833117140418614816857086245585714714267483590108686538500946702130262501179935907105978262574029775905590467162651931513601339454896744847273118112189388755677972608535477433388376041015881441428439268395324274705345048230549844403263144505371814094357805870289586827094210595111018089654105129801274502199179138157547138766524922972013260027284843785683521940679084865419845821481264206276370495136841939365660352856359476582072656828508725499494439635308176829182843476494518660839191263629015495087130549286946166661534493432157665955491917214579972214428486306037062424947190038461517404372006085962462378740526645801600342575323792585187053781872081493273233032275005073788756195913670323520400717207877892661838141157470725883055058019683715927584356884365233552742689637057777044058288046484701603582251910062982789996133081824300020932137365725345885088475309224241146561372489307576039122742702526561827263036118957560006926766574617194416988483949672332718682393346179957061536536253550061797658598731794571027036222358327075652001556835057177905770724130002975627234775904399525083176776975354362636062470564435214115096420738045145644350358681215274202922253255203361663243492853098789828492269122676573375190588045282999295609090323652487337664692394230525352230785693084718513590087865019998722103910544328443851925568911369598490304600989050753219129149266530372972374682203275435747569468760072378061470253584590870651306226122792714193186210145944423884402532022152230485156984569470929772584812877816669350121487766831895346238129104027796218174577213103701067217274791698435839405310217881060425299622833939145495978924840276467116346748158480415730835521865895047561868625174798621276464559543065048363458745396253602733793720660804762213637876616534483950418995038300384812297425551265393894463496464832476751863878026378150877484227491810725938234019508694497473363194540045898187702213361399672439931810864465380478056516257439554954249293306116087526116852317049515882800679290318395838537337092681133099625610363190273207233309582760583147946738042303450465073815940497033002796339628730037421806594365312680943331124953475724527454794698496997386805857112588324610089271803994150253545089359856439825340013790223340335623389145361385607862348639494336938633238545062553574599287597164755449224744349522717565705685818438676488779380854874049336791747226885684488983667984410149799454885369274202789733470415977166573843387172505786576955727748530046673209630186657768956286146076633590471645325892718338131999510660268090276223381551906226287988696489040374965627283846185117876477223101775136004431276923999722530931797761810657578745808810276040885967204623908636499869221394473938074915786520568371626036431686788685620428038446891791528104423856023577347020696100015626130207053777857089830717624013524968946644012254155709140223462087688692765686592396895905789286535260272852777128000081671023041279112760509018003146184788287365986027249941655177617774392436123824137722695091628119478302315643897846791536983267192349044658730867609030572902730926719905724020091588962400663782693425996916516389152064290864095573771775975722739600501391192642509581380679397132388462119822142977306782622574063646939389493077325343014858882600034056343574638957361888109028069006754191307458396068021522020418218633433285273605133156564081528764012299223672928192792581598822202371925652909411198597503157941518499049589972911084155111122919326652971942443875379872367620233988692409551892048360161908550584231727242918460848585886173996668926310429676880829641472829072919111294996897764912200586650893145338110349687233157509876008301770393992338377167157675798617830941380527543747136946343915072556596569774487862779802900821551047698559081662452795495344628772080152602245947360387373418747553826972937239522165697025635007600841645431275320822315291724801548263533654650442527511591776577839071813439990723424562451151636444758407794300600972461594567311837595467103984070955397578678825657728073101993139598663588092387975696892031520822566102538850953236171040418071764151156281885890250690204666425343863003009488421861024429812593388139095174593433952762090445063220415288763088997622037026309796224805827469600094838946198511901974546098584465032224725634029650120970846247658072296348574608936676463152349646109609956904404532338341473718879022963415052604353770140346919671256960100927521550626662347200386064797215521787027050795034622933051149968007728198712753877711512908223120203133601621140671136703943873925864563664359509561060711906934285808891070040095279267473564643177703361232219476278985409598076282996815378343448226696749043701812637871834915493006242631286395661595047660530959446261535753111727498661490614252598046193565704346957181786534619239619005010776928841653875624935520089763123515013196826841890180051103350671152638712940878570498931040291332702332482568423781893276441457027103838303306190565573986590321597392986473876510237139990908061807528506229301764106434451173884699372981785324565471272825691089153456457616647603774501853405014451796153796595339795297955781445605803459883873766243579609442866673472445125818856477754206956472068515996023448706345437207070192630246094134275654688214249263766735289145310028927668843936664606088514115830887509910917376421656697100845556647425576726432850082253068185805399707491927349282525599446643579550711632390659167726786110822313898715572256489175952906141866810138858465985552940504906281311998864722765344749287725628991266668805774404529478779508421880095059896498638661162047973065899878830480790365284923744577225756175212975227274627647697428508553990464657102856139076700813359637451456028571835884608991396035328594155120077307110290937864289420122771350189937863319428377804292141025063984848969172929344063292140269222335593285141597899962512568554732140456027980421376823259335595597419428340218188101092125381291252335765153996379793114536794823972070716120675147087528307519897985916256887806329053858833040498041295650393122862329154752166753270793338461876989090040422155871119320043169749386134444398247514169239187043950203766770201655448851809122149353022496745075893184246811634017137485943573849922034760025345174417718006367491701238155157129924537520811468441807165325788217766889126603264302238591768719792047691030754306187811376705838979297952862572714694242415201142602652408440132261248210700565211616012468642931383465190531917147198371030830417032647373312850693645103731182651732552989075574345086307688569426115349304975570914487908454748398194807515922974229064369620421241206707823307514094516740078920259343985029506921883949373929576820744653150030502301271411527881054900296527634513194037351094023572799882601501768613051043114276226950845293994313823397173035468843101265607853158355360249399153016197261136081102039229467995478795504506478003087831499797186041046941405739987560664286915531561221353628894001625607567550034781003659954518948547774731279236591936022365859820970079465348370623674615555429731549119442790486615298473479621532749175391064533910018734030337684479761788196487761980743947378442188104825493124485009015957704102854176544773651216706845409216825810412323794669808944049845405330704079722816831488181753732389815139499378340160438530297864935593745157413589932246829460886194710260982572525967081280445797382784214017976310597908361313924082205585835578592188531432941218918910525418150371671869762763633579435493117291735348889402628129081641075733868364005956329615211215437253182497643075500780930300997163421769326005568247088188607989853892264854184724462564951529544903048402888713081114901546201681741351169707760672901170888605524322016833340965785197901340319934920014620915536176883989474440934494808771360673417966885485360922286926788924378238996742289448198204678785017219489578975679196059494343548633881740026715952369062545241298625755691830505589903831384127909036108048443028852726665444033900086921352807378473565391071562622182603784270446067924141717578886881527118283630089173744903539151546233222904965719610450472362573740369330740843428798267545479961413938286984053383822275759487169918808791747036740102046902898195944521946205271397066685924904901613328982115166437504807129287367687281868952450851911232759212850383876111380514156214944331245808395983672937031835860810532854408504754289391969030754118397104498884302881276487023119549626501917554769829749032032388358437792879899701607752711232881177443560931460798176056571266964619902731856671338700187234566754434906697973630135539065504383846273064550497562428847019319157511499539632638650259736585422335815959680512365163788297995279952723341466575054953250607669949158420057211237868646477252603428712948772375889456385165946000659302599645937285991757597500960110173468797919023091016002374589002457177409059464490729919732649600408255579790915913219121160951739496255073447158489334918478723359706921164046928788573783806046278909568328150267700864242337983156531930577408437343400318305805340796590089657151352626684277785343332718743414713359261947376587026958177723399395339238559905589431387479670517080421623645243185421904679218671266689743886734805700786285293870165092774012135031311967006967511040476598277848115611977681401343984802196728764002964099641548951021411103934738387500600205348350396351278498643721991663063845485496306407980024526553879506402561891599321736792806514904132930771729540403128554420272130056289080048519694429164853051272333653719807465961536109244417832680928978603689233301499988635648039799146175333727875029857542182772529949094207903381795386178975458575960627905950002559561560886687803037151659237080462810008540073099985192654821234390762859194153251262863453274501202939059127444083302997854631252063283996454311599169181938221744840638500540853568406239172789727857560280625555606923091757800759048406629280479267123764107762461051084123823442555904319696085042549333565520368759345258091744058903451608643993339886903958014177175238508313888698696810178544511952823243269285179959071359133375104586714092029030964544166566306143846036819432932623893493768474493835545271619173541486329149078995458325130720655716739748353860880447134308452098389956216418831992160832766223438018445211626791489546288327584630131273989645913626629758938552560984956716129231743433926209273059815830406128974751920704796521106413708751135098419993048901807771210369164472655131269922701968405496486204555484373486088167739808136775194699791621864310960339200991779304333657114259493726557294194689773877324415754532509121168791612955795574052327634101080465746928227028128047475618531544113646389444876370271113468571092883557885371282663809759847511660167708311168795773582756097125282623564644856664535563924120433109438835528396028861460536126850450302013988400198674663806755015126918392568267543099535403479079551031821919098846947156078990848262180937190528640761829765387261132714527337724571269871093536419304827204255246388405763084976040371010888866980295256107173269490133011278278655162088637173607679729407614864151044826071480249129836319074017109023201491410294873971592452703837999457730814612213528469416245786524072358824739317698104340925525450018448903423640239547656347190714822122170057523520568199843945397078354418716345829697892127679199570114205983487113075313917133196551849400972682941414149476040128725167735318269504780464775404017824702847971881942156387125539550881546189778765780095286806123517750681892165535236010186428307738309482643227133124465986780270576943832194960532167296405491458771724274568788075305697611918470044385477217297203999208330438156983890903627822701636217441344475782097845802957164255835370135416568594682522517204855016914726637103882436321875534386661502695115826103802665165257934199277275975237594623135442263994781605931812706124946268907768641814786107508721116673417371752947690907312467612642281545003337604625158041302330728671888285100730411235674866720948850783312354330630832873914512510534014445086817270212685108111362315943834752406099797430392210074874193401741280762117751288185138146007017591029853826529871929143907366719618151701916659227438800773490441228735292010046874316703234319594847291623228850870302254752510425498117081203549581197608701631455036146060360840533024104485078929057212585682118118804082485896570130312187327710367072330177673487720333116101014995128105790963442682641194936328074065517363155854463459408583612878389661743666724712640714379748620162992836451720561712677779143358840808169719467753178823080967895039266865355149994913972267927460503458749437755128035960193089761073163332090127640558299720570802091733795275538735509932707922885964402815196340917974440874803192615331279419469684148684148430240274859349582361964975474104062454112607764427692798725237603733902674311625942394070661246274265315026522520738645207703173610905402183101574885365927412446488518049635996287578803278387785948549674063644390222508747934624552618838415831986523365882086240843326555440969542889586953740065491442271161474788634662869422940964656117829631745669508153047271563684407634738298974969898295993740213133387400670401212131520519098783466512900393901639294756234983913153868590526499683760883790862988207241988603671753739773794522631245867308322510037768302421114855017821953924844674212267099536896318552528121448478962551977893158438781947477362727287845650014876763865037954263541124820937834772737356562589836824747624762983527594805205480220265497849652225494703490095273611537276121484574246374407856707791414498449006531206332250920578696120735332605380063104120934670565826921516275332594038362811097035421752413802141358855930552492043365909913008958192117909428255230504249748397341310000641840829861627217141235961711462243853909744328778060070250168120308579694528681752111072847344302617427696747253201516992775370077095675751913304246351347726682977981116988553669432506972048392580577488780345799612931278786097148755603210872294751099852663971868019452923970288141467288291892868163779071055066051442094258296607664176407650432922932021209431656136861492037516995696264195755030628238815045509237624047463978630162762370605285190874833775190536981417580967625359240914725999779714971025907384834475111769699477253610770934753415635056284176607404389825904211684852962326027514472318455802700949304962822120077583694530001937627174666612423394938345872471356275627069839953554238047534668608324716926001521753727916628372402297527007553419324149538266637069220949668841052649737331508967576625800892184810547211566801118798081393943617316918203018107541945478604840467500848661130287456066936805627164339014752263457683501081644736935137917157217660731738943692602233051998792846466193438363667250637096076781655838619168051707630909907806721966980209717539828311043333975629800752594313619582206519012152266251596854453544131001481659952612929099660405833530509666860681895457901471456729922834116270813965765052355917161823662998798816755194247177456790530299880028155518581713629214720285146520524762846240797061236991689312223702802930844638986976174623911229624411575699294913162122584683940786824242194489127356232118473992208169136511181317537276878551879874108829823330854756635577997944703549500860680486822820826453440121045758738576668448330718267048233692939458901780629809035879577301387907906909971130178201197520555427914272009669193032694093993657399872664104536966448967573380577098721906996875665074185512376553085613345938289678873871623120204139244033101176222243086161169462321007330112889289654126978676681430701765998481858479639902877383413553490136522186144065307399682835471901265337440798825977800252391458777142126769615877510795080196359771533358020392181743158863571656276344270209335854637190300169307250622452793450111305127520641875251546264941017188584947602848684166438510407231119954556002288091102653170011598192928273713663035661434807559577882469161978763239001483159933489696127383945728225728240786332496414851115658729723026268899572669926055838245363656700359634050502192161985761646750678747583950448304063962248588606434846980485040272709839699844848758713464278148300007732888923117453532361945994816971666271633427182499891286699919817873429700835698440070749555564201477621255328101506681640493281172140118730802737730914293038668009401530993201946352204564535478059010607089365398700246342093980447639782305602159913684978391090219806564822133872423222776506051481527496383925901911980947929777964863680816830058558677875591802264482618661057069864380169716817852561322078540234973280277126677852185710373869965457778472434054946941073876204170090666759586214845726754209472822622477042144400298117578009030733234894952322438352241386957572812217180948099321606849989322075873977964502241045492256891861654550230270920267928202485266717269928059417162285861434916505440451696165640694215143213230082769607602107461481362332435039056175298601427398933624016548133100268715934686654952891595293262128378068288884980585986230287447705906302877641172332469302291377475344591444644458792910409714251337916650180675270260477353051191134538367563979407346537711956116275004815376436777643325688011501396989207447122409354752833020083537546858373065502880803461070856952488445846353909756682790092539575200096138891510232801475215158073234452888035275332896564332763548838114701625100636137464809810122566284065982216204528698730226692035552101087881188706975365099515977170606979994507948601970909955492293895251107922159512730417468128913418448883472785845371345380569963436178901001316463551406264136738052959599501357258487860886523592196375362431288622179163599448830088802042371873973332002914984703553823036466919484048251072683454751498296358397682149427871372043259170721042913268478908667148868438577443088132774144026128372569727922372287508887579979617331910694689588773478496603839509616886625173452145375514331010355396891737955952897604255845824692021918012943301290486936505935192385562759306740283140923559689876028438611005018371586855920512509356720706265436238052146838512366679453972938310786247016646225030328492934792561768122363285291555631801681834687484252920612004590639642585175734466724103703352234605546339718192662017569749654908880946561822513642021859942538402635069697822831267802467382404973770978860830656341940022185317845036984908304350165755771977803600852709645190255237323681269247173015133417363555048107504265022703032676395609673389931665774984383876558619471175093399836580987125762760818011167027663149740434181917550806009264234969375794569625916744508665161443553242401746190070806971787653819556971941195774957022182936675589916469971909107359142719180963414538166202228691072012820187567907783912504334718666429118095027072814325163707782994828268090743130463514605423252557812604300779776865957287851255941390166152965819296108515790244116435930588728499814343973465184003990790501999275217873126973289568180846954900415092021848744370631560208096549409809354353227680399182355433239913938311907039654009463003173623200989731804763256778021869809525198810651940492998105481855697087136443515890314020112165485616188943841527246922622623375274633697628896904998852640902149082636232995193650164834934984303568508483228018340821041374612262320604025721503107513777529294200745488016097359569885593568267222088289110330886352697361485368537579369413237611541866333032557614936187644382248309045328572430787930865304623084575225140699190154663578460759857354903794486911641778983450915540040624313083219512366584609518029174215865635128077338878311612932457163459570738144374342492269369910949564313925054260605000775580682998008105847650795206991013056155908955609314361612682845833494107900236204624984348467464512348453410991149105054484941832633082399003084314580132289016617742529670828152092858216606564493714706544132471350686376456335755444528761719090507611052968764238157838930996886470230533687504157425508958890943075431721648588133999662800740170997237357721594627597246014875396171085548492484849515243152338059472230572133324491773065383851820481845481819037837649926371219720058399258557484504877030014481795820988954966234924079681634088774946426064931053809003011187587910842250439439165685202782663841477353546413496844350324278975667009573470737270996786036472506577969225923431572040129376666186181730211331030774505271079386573223107176532570003465238786579075560934646977183767789819202412152532662026873127090222699336979315671348183390657093841300084385039924945720624497299360409605511355965437332656428932158977455586719849959792353332111915245297756916167856106141214126322385462762268554160028348320681473238917939320396353596257592912843794560705036620013355140589444017809072435764168914783716643974957631958749105741818270066625001057349321689950550784392029819532281429368994350674536568136126863183640869566203478789723571930116592764107949300218342256535798152525619053220403972871005469199558587145140732504362149905865847000343151571969378654523314477613755914941712542487497082719791431786743868116242252118388507648985909229656812517256484224076997580194988971468728602440156921728625840823119448937317420137689998435572918226068236923464314438214251266448259410128392860799658586534388027397309908928020397752686048239973817263105664985806396766619082721024545207554731331809401954782504423231365487634213866098800722371334635882730390840849548325108550143253558741936273764785215961552723414953567460468509283796023554763244759373329839092288478855789688311437085285899447439649797892712274179227956693855870768357402365049299731379925766992861311761345689571092905686565425823405367137435913814787475941075009790858945369890876715296616879275883193981863279281728271105365796826565436219671312200963694095237272842980857869545728998703124153514214514209063524737864641361945843117182420549370745428760350494440881783658234132334954738248607810392023555079480526557797733801859137608849677760664035429396282133721500779371579303979286811245095067679575059724599878959717290639580086815322164316966504051973226402508689857472737947796641930540325995642171434507198170404096644000031777130910434827560326308473927598086275260351624712311184166620087361182897661893863753343578421382990347462556620454722502592517039239482252062857171171059824979134424510179822085340671111332797809469519960638593220749545563379676334555082125561005593155892127274818038367787187256411483473928100436231383866382692753190939472416269084243918064137791047998721371660630594699565055146119521702418209405655986559923776395842267276221696902426106625475094003453179207453347627116822580113794645265613928398364415267435071309043037495577122483259346648154383134928640263501216663878745093100821594642242900096210782472372003995176781321861490081711772434424334032783230186290452497168741849590716976295840385939395682534928313702073567067818212601610821990096287927261234806040717585520394505624331659933117291349404308361880069485366812160366562250950931409110815259937290871379107489176103699435579732424763676922527713276775931085759934945874477843727808571468705585673639257557708489888353096886509812825663303020324148767820761812103001213019698228231849611143402561293687798583418444666359359157014580467919344073118528658100478151568742320415569249299631663813408145220626868185727123583637379875922575306586232136480058154947561809418043445329518780949889013276742382988147064214947499080803692571110308795918642747973611144973056981101483975832065099949170560939122486141803835633444588253400619585620252458123368891388007210445157399454244205184261510067724029615132937045982313604538103559821844859330815847370476485576608551338521591295463479228427027732270258211340078490219093038262491767490810068520204180028389143853768873688296615246207909216057240473044597967312569910623792591171399289616987066834356578260940025173730499393972273131653055403476510249158126272246848791955494169067197088163292280507112919294337141892100728671903396794311038360364002811904711084965964505278619547738890045954042533212964852010504854292368592012996258780027440376540175579078206937657482440085771059610911293055331024050036652145195285157601999435080034124145017131113567547037093499986090759184958372574134718314388937220946545514137332435211141898511186286913623348673539953196492762107845745068455078174492138535491411709436045612914213469716755096890734534578942733588321562591302032018934051257934621106548881580277263211594047017423184058176151414802826151104243620221105264961657358457697759435489059194543559239356894231480116173730074660610222764625547682271843141929177042502994723611080491403525462674775165895639393272728903788600421693743343118187095354358448693919946044145608765043039162917606861670566006555940303348715931481866691174209796010443165187268951057477471229513512786571452102164437025781223128034710293251724781085661278408360739662992231914791602143181957229603925712426076427390798717494387912747034661907581928703811429826262907259464456752655685141028786539300042717838994057104821465713362671521946716868423928979544955273654109563674749253674687743514313531524539770465267767332261370585083929842260424941580486317111430582905135752436966786272352090425107716218842933909349940966895633141542501305169887359209490801664664268696114086374860738508275039002085008229761471483866153500416649309702028365414205737184180929908243622173300005777201254966235875547099630265882456773326123452451855315501031337022262611282294734413135101377685301423299014731656142994987400872093490064597878513043525284263198354394886656702567553242140791241490469991613966637891598976921846481521771093053919699450137303658717286337673388566335647986374158953185122157822834305193836458447598376700267320150143137685802275480332997110733568471670822087789718970930789305741730617662760113492720846332759916764075219160533045882547755272081698523085387752116954495394140491915815160412030566498690377011855266835076391584730099038233173835319668468976768509361604077969744091262530930535773694132532096463047400647276857846645041263574299300674542299091346761974324110068051225129935554657567149395199167697822471751463313262572790033002486430163224320100299278393317813655648610736661764291627254090914729759982323090338162437247618140164647747582652710110121532837817510804702968806880431154704075694444898201209192718931198253363064727622987136547717919146068468077231751389223484657110070563471138547386932756436380598405278453671941929771195561093377324343848907653558372596748331222367516996571122596279478779078241204570974865079275779371895984524043931299804328349852955308620780163194070520405110976015320492316795378600406196224564431890144355210879120951135087856906101842520650338892864697568643198212063123294648517292105104889839068882358551771424532225954895560535937464758201095757162305986999755692783625863044662747492849592635998773293483852255870016926558512899679133174171371811505192885380859132564268494217934701231828514978449222790614941040615511708649359130933157435230603363133573180948483438216446864254664532664346128115617133997718838570115774768613197139403557849053503007495194906597591399224769256286563499053686627145761447877156001232814368308709627118534910619734232681774017360473528797565502243814477542900798356537982030869902168221136454813685709380653731827094271893996339155284653661343694973160728286158599937725411297335408646379483488606871200413293821007904562569623658850526711711327971749204824435116724121773233602029066029677349824953776599612813596357123121344351858938308713141188252988960710714525813666129703534611332813422732664401703544973881123503421219914283349781146692821183302865489979424532718782426519403416975266922435192990034167150681407448260768006160689156054002839934405655147333811813854945417693149034003285357604842820440742805886272093489228594334423500784920249256853089099281925657037323660601839272372984840675763945547784909392967769674968142150848901923751446251215579169084422447268963426619368551166680505677073120083832828397574404357725363645923306484329922780040893587455492995040850468521673766397015582616962473297436283403398663848045681942916884183658727106239923844628065220346383174102688243333594890822700213844186225917553392484628563375994792898039352546818662563975331998497871414063369592608001577741516394853961813280574540202233730968234742125786021984915385909306585199145874318521037391380050035151013280291725384075262047707745848308362289603922386211166489496089904272516283419681176238887031071546626060738662881784568536586090791259538124189024050431482453698806465530335366742406612398856973433016067236046036896686372425712353237788687739431261561519237027644828016336893213780604606557768083806104761460843737049094863063671670956284261465414557214374364589784418973532383724688552991259304826397603801871566782680344023864189979668387794647855612129601416067954197279391416839503657274188421248748968330129225998820821859746999002417654255488892084707445101714441747831532269222740981145874239770333328607255158588154601602156704189809689959859655947242686807159357193381023356935700847724296720330591639716253276335541599517783527007222840556708566046430011430351568561208314950459786299451470034966116637016566293261657205605256793852612200493756912695925317373324985673997425082746406430243208631127846811155671131462907288607603844129633015329703665667878034399349543037536368348060737557771649582345979902076032898125383196801668182316926868104649666655567640149833427558410804564438255747451837042416944961220779389552684307834180362700368385091060401943619671125602908051046915817170577609366933627520224103780788048358753988312078741975105828401982504261589667298777682843149401009469570954412222788946481541713026652234381762918687361282524943209105064155276228948396474223997646394959001074280937583317337466175268460659460410937098554201838879556902888192963394237662642901918247055893873199589410863672678979884252769739370695282909307938664257764617971122626168109001311605486371264042194797860398085074592948997145713838412936804071704767894875391375853239605226239484987745049208803433487522507217333468369192949260642841832309650920629757363419459804448035355043881021383434847447217650440213205513264165616336109099545919175422675729571347606332411226034065158668353383208993630001047555309684015859765344912253435334013022016185112348264452718432349399579517901361610432617980127935815271376227315839526875586509666494839185051880933865826776457190051224531522616564298020000494261855918471351127064074089122694280331670795504066145884622621424734316849536919967232224611319612087291453607966879709782976267593017302408314639232882348896721558321447096823010511237199030106932672507397982372470270281193297369975373288226875662161647007907654389064519023096471674629767577045233997261967401204730002241617840983418724516679378625840108302950875871717890400073489724040389277523000212025625560904105858249813256049810389450117841405609497033762409010264554625028682887313007360752122324850577929394540262361175530694029253254124901648024402554899902881619329315405001250337300294805420034974438971395601883149408012171063557920140732497258888867189231669454021136241492219587976095312698922246598621979334045603261994821969546657778298338131958815238432642606318400690529291801209550487777624726595399128211502086859896225326680809729298452307322995334984186354490868815116878300937173118064839148217449043752958961368806777097247901573080772066662069102582314308469677269717321896695202395137747438363111362525166489915725010556856647368927369032186132003140461781449707878998929637271252960189779297613342073450832793164365556874792658528951790316659002336144036678524002507274682702799020865684472066296207959197279474513022283944510622862716378378507351058087851406488500832380091189972366651142053429095007841759969746242197577303241288205951628510033402129383117238856403056005565343306076470324790676184599592639410654674601321427284852156267222434550689310992957915526631007308631291773118808481281341521539741492081329801403144810573323665943900284478068800137615489665787053759735804450201559504421256874438200303290828773146703098890411714503413520225116705773230708591862832587538483530402611966007449956682130833188009692814027036731517521063018934685910274378686748789425412195165173875034485043133984407400605343358456979040406526436119369641628102962772789467608397675262569753981243443608467876112985223224749870136876894356728518416078713884225465027526817378570468680282003592440334820129273374316517695752304415063156985486116636539564838230591697734374019845892329870371216509395726769502550150965375157768867615789970272395039748225188330943168885763738643201818963622841514256829203427556155690269722370819210901879383741196160892075305975491952048373357831653498882575140031457302730061322473639745241901786619887765442386544337153065268345732771661446680464658875589289600419909050158419871039210953903901227150279408322097921524086443713078068340221321590975113998274452548771662674693219977728932417949658939096613699715487047239237335332028725980869538055277697655070314188382396240865055876684831730013501913469921945279995136879987430795647282519914839020100567728096212403061449795444727840958828716069355914041594739531949749873431307102567980620059639969343930804436919976975589239667118714446987654240686070806630925021615346880099577024517875852446111102788094640932765076201018424306137719530403101775018732888928408859821773970380611217600178570592899789997954318544241783122887861815079400564155205444669278748418397667581512137173352416010413421296569206843320706667718729116942408661732142649397414451404959119094180819601228036012362895399891884940642973070982469201961873343224939382044636554631300960388501853393822587963012761544414164265498702251522005747840349622189469409513849421649495312500721680932383678710495337289675225675550157457459670525951729541278077713675594700596530561304499849126303672133773649598022711548310818721824776960440991330698795013183096500824512883923975065857243703778169131798891394347493598327110971253723586644543108176283163220743222871551824252463485267857651178701213941780171066824988198921981800757983010308503211023462331202676414583041171454445473835044404811904151688836333648747215662041406968506808593983404380164695517433957257756001475007236286907116311259611144068820552804547732925576290214263513123966466076603321033219974111196979119410139232410215497732343539381084972293065715086101552664427099071200201408312991624067670010915089257953406464619677353835879838439340524798172514947036879311158804241204821495584364770532597184461454402183335830231037740665409207009771622965709715069286262673862158115460315650667591340039921107215192598353524184585222283193238879193461266764274159849043014653418078022853883564714406380126827134878663608553183217736193243805884229965115446794919077813452111335967762913312002910888790754953705632615888661950026502571287299300390923489011530903938505417627069175165195780944857037591275683546780529036798376146127049641851163232980964603304698500145438392558197859298190677098893716849694679052212971307107244521674661009566594584426705131396570865398238662343918713427938161655192646356044087909194060538391769674974286383211317643347912501232425150696958868767589140934306934788650999815922474054701916833711934194618299366596285662245658771365143143413253970923585987450646744191186781778384424541138211810398914698526214623573961360708891345258015701848832320895439846426089133938429529951352907530541721827978575310304137471665011603404782361192578674998515698918391989079450018487526447891133331860646026886194463764254056197059736734391037016157127297432741333601130615969299828033391703335675070400214527240212799428004826951887672399934749460033644860678536178313432147469164908967167092910855374890082901304575201198129686570995169756882830562081756986136375125355102726897135868628447766798178069453569139351719225344844039479108131515072704534359043932393175141467132449311855369190065862934584911017248697532324502821660980906861110281625432112152174229827674128548023371409075260279103844850319464681566861958575518916347429031475482082549922404231938168139417507595338545079875395590652898161127710011915646238051105751367478794290722298685513164066062243226295058847835441149295788037372980839182016178948115788000040846018314703543293645312045400003281699112996230197987751985122532108893115340898104660648417069144596763240318120729340920117477049038841763948192939213518752112853612755892917656470992483062409976641999328603084099609720310879173031223021795381980428913214520581054942745698320013303290282118988962068808519829481359997430083318886929578106939759868939957982569474464790935843305416207047755255202220150962930394683851061396136811845467476776748683431247269516277584786252119522311998575024812498462544433973722730062520269761726595804894372964833933581520518719469558922937005764471092634108439838846433459153591532847276602231651039758929599724433000049489271436841397498522057120926433172919143511570139364295442858992157806702269326507504821365942625056942074887607606329210177236691191150193220769959971635943527503083930130422862880389752046017971254717033085914218953281428422760431681773514183150521221120390170856346366004884232074349970776918106314581380272831374780619453826912759086566018000114454385634523400630195817317935743359263462691038322640018033481176890453052806116687649393073789345572790093501327472485048224816216517063721019996812618503347961989956666099249881376122233022313995520713311453028960163901660440940876591143401039153840963675928198248678049380783600901093724042959229899232467271257425990166755382679177323861921380353646893325716952944751148248221352167726459765914330656437286081449948653727882946300529084597086408753273443706317448004501404284251277006172449338387786792529211944221093743384461131816115659629317068167267334795971507082549077450964601925062888576928830394308779449344860872527715520678221731281544810497874609219499333527631951296951651762520688811427095844859239258342827968606577528189858237298434022305162772105957003242635994679731628221590907466139283773617686242886925449487084975062440725315740155649561647811940141172973706526960764245133157861828770456258443379758213557599845401934354741638293628389955923319531550419547127411191742132209260428584577016099161931549984131923933547490375345542882303659644608326213667786830754759085207118391794291026321854953328947708588001909276823949645143104555637113029367876501493714593227387811067391857496551189070922656031375427220695295126940063253488844467925980525686005560706028348864262374731469524750339816452781688194303893072623706866137414632609635232057903407435980079894205408009558504621666009299902047110123460647273929878870362251877676884350321815379999823738423637681128607542855957105706791072398672976489268539821361670428230818542011063748986010482773490952089209370157104447591092166641855981240688845542559208248285129185329786537212327920460009001769420121932189394590843072119063438065392699568138975715628664232806774297087647000616253178350975876689451738906420731470583402893090641499001569008290305415210821100535570241945067932195348627720132360986673228353034589758040248418726278849358706539521401770498291569186391829299696918918127782599872204105585684367381602649382038347513635920662919926547305384424745135076678375899677765235306078706415383477920911832320790416335576451746513413366792406408495976347474284130771875828211442631878664452887350788092801166562122307555864462878769513191378631147264146174777950022277710084649702064036908219309316786850167629297588971865053358571533665682774827059873203910467910849766445083092519350488946928935970956705418283805023332215110373583411899878306797574132181032854821102548307747231251815430113468193735378876555657129001916633744298495549445062390516648215782068153360061974320621479711260436869595016339252180433117226954395219772652217566741427032860578254201777279425372723264348005586471396010717709048253427398564331810075968915134277302211106704416339998233435725240961907487434912407489161152671366803687118351852918565288945856591477439684242025458587312494896610439840447698736745724956017854044358939639653070209976274746291867451491589034327851617262469628626462308100437595931405388572191960461246677326504156515477901624298118868990666302548521778389016814122974586913285584942708159316591038302734112585181795476043942032801376741111542815171497962007170779757363156348872407387891040939508004128881187556852899618106748192019949420258338622335267056496458509088391257247003423973512455353017158140320962746195225123767688081360721991902277189316348979252370847565975697140803889464132861257549120569259157000422599432701249104539018169395598189342586737098689239091793194721396814167646823708241470893610790549189823315811339729585183969884146515597081713843058290407906377880528988478487697301359060666275565930428095301609597986380761733301322614524600346772990405966915291327168910447352889374319332989031701613731590728655735513554364684281713707694041594394078938170513095913349416835726955925007331581832539720508851428582235962433746599779568158052694616872205482258507980073849531840353494122108491460724591113546728145312621822916620183614463276105062493720205144649736912439198672247992387012147962206523311722919487888936271965073440651212710220456095774750001232151810316685346763966780555724991340471714689080673475343678167330391514197139042784350965974421910938346622876550179912057369939096890970747672157608126172051749585558482705563417565258728908714424778502297247289130737347688636154161793430172931184761499005227858921339297773689035375640760952127769350719394763443165317328214108338786749307995018984491261015557863284510863645265759927214489256570770429537740688878718668636049646364475523322195452485553094801481492770897655506813711010310003873549585392608485960916309904827728187977378918633703859148313868859649485595561907739313185929670135538883749635473060143188130126069287581680815503758948490370991609931330513774024683597522264472183023565925498622554863685528263938620049491113342975789724980708579287869987105451177807646151947060864005791944616613134700645686358872600217989863966913743622455485195436474736184180160579039735412310847040329216790432998395752316610934612270480990339761109845783210552408860911692816846479157237506806777457234019079028755965117396648614594804939008952472435993188560363710801259229785036677501985040273275421566675856820058242678333666608304027044518713361695781483455207807800155299329975392526672491317510136666154128931608229151267391996952038933863745160660709716582034685875935950098775665705633160324929393228567322565880928254583085342752339935206286235771392646172201421953226820573497802333716544583713985057341666672036771568833517105259674260161555869957210628606089847556971027811589075058668559426416449724058074726664916848669342773409024471538345947073443527309474513413426844233497913513388147851631624164461931419950917559740929275354736959600091002368356711976969782738322102623378126890822740249976449830602174083903829354064600510997518344838130125319860508060571665189445733767228265934853636551716060884133611238678647952351389618929915067727488897893811797235832015594309985866197501998082309683631186857064715186262823286779876261675040315752825207621185661287154228964950518562582645637998852628320599820437310117522503544790641885820192889299034681602691477712233021750935233929522992369708613944469399934511016020148650309720523826775480237170620993746780942097304281510102539035374566122773345805239676131400439081458150021610978232002457455155886479157111558132371212419977806794406244700611605842195815116510376811062125291487920918088092363197132624975352335164871713052449401498061883735059204611810008207721142395641549400777760735439006952795961809118900110622381216888455575839891581612689747283516173771825595331916774881536171600225624419241297352228255649282545764251530455823338193816983877594560856543488378753584780116934006425167926447735288679032466165195788785614726050036930486054492631510103083465370134314378662608842832929716211601270589363746730190322187101273509580393107071462433907684115546198558516096839878340446813005667971386470772640228145364800471815875199065406963909805004357184354860197037060784634010662954522293103208640823931156240057100727751767719105389685057485646587542418385018815887988656127039681911096748175388278598132152744748736573693455436307920489318961325720153273782896609147481800287590350008810313201301206150338612853893803113569262344483050818934775002120013679071615609589913388261879591897814277346699619785663136502100630993881990822814705339523206600096165836756146523615371587473077244105746400638827439952933149135603243806997228987862597985031868146059134189583801031992589731681230440309056352029138024592387963687903308413675651446609867987024342270494045278687682101318329713295400979460301094605851566329189288396549934080632996377264083890788857797935729114563393866847320954327034201526364197389828432748057035936673925792298116818386794068549079911005140727606808189252003516871563233152013242553637748843004058330540518657618370457904822464227709575623687425185730607717601326741370799567740491290591452109996883040857165222233746515703661327274570529698725810846489996815898619261192196729208872064108931466289297190091372987693755633785022378825494703898166051823209318850272353538765270602989399253414803331176478181043407096401755354275783216559463795156780512394003096707957464428847822272921989022263541579821791262676303173734435071792671428566575917866299101161997391508244655276551537037159914391261266422913884015898558386611355423435794523818005211114215287913161217055939823949409236102425818946741091387267187196544361360723410050305240316315751222244068803491374835920164027035559753922004999161563256310022221834888814434801134824702285604947385486019138283012774335233472304041120701114752122228639278639496135310612109836331764249154856014064314563937212792627242691167793072780816915462898573614628078403947411992056178119434665934994566870165886530521495485575520638183001682804273915834338482725543938784376965477350971904695812641020737563228972653355054966254353737708786980829852817082462198591006702819747630348392586872718282885526754468415295560564107063433785650952533087461366756973534415019271429451648139751214175578837855478584861942979435821215579782165106058872959893954452764337700174315141672484520044798651003494546893372553382662308264173171510737238819311560810394595765120681866261274932361995219288710488820871315560722279170728000930072078242353912234548794868440508875370733962646858999202708599331229962312970239972047366066407612527341168788634330649228069392902216890265428703080221595332900636987129160520331600766548131382606556633484307335008170749747094524604120463098117818144455036951133179529599452428483027408721253824177622643476850631631659063919662605469824774392181211685121539040765288317396487551756400304464905813741300210959869472883515685992853687230295814735584123712836583096590652849054287058913155543285461298652170436185562839161596726842139306743988409636310478260777648781820195479579636388998968751333416142163490437915242567453452771189732669547058415236750946940237601447596129518763926504773137128964838647416288855686390102621901680363085229597605336201639363774052773759849963324902152437405858366672496648453008388029884825576162450197376163791795961228474150175008681564248113470127173208001084581861609232783732197779327496788536108669401877361773946494648315601041137596071909065164589318573240726973435900820095307743516343795079637818275867957185302984853983024050579209247484887291942918542292550261204466873333162439253602710217894240929786734832824691002648768173275733142001837789544485545984273929206556065048900125524276397780121590618080448608900492703739328480493313867513424140719316797017155696139012857142376289401384056692967369429932664785068135525351601056104566879488261087642537389044616109450190362713302771018238447351617884648088960891852208378260093918077889712336272323289089572884564671281012730519140087310240304337961570220844713222175571918570207883186967904404565942183865614688853735748768545061233622471508770890090135564072697498618313310293533517571646415567762393588600358490509345859259192275486321282864739197144218816116013054299999613934804674962369785181783809855547710329391187863825462823025322022009322012384806583065626700766048282071273844800918380515565660732845740241050995478457301324832400915048085788074116267342092311072441187492761308411769752962114670161223819630137470454162271277505072335108401300949448388368925039494078991314392313464586924616322285943471802810503632765151986272041099230552525949270564804973939497414666398915170660569298645658278277350024839151247926047562964265406378995100920440892785837304721959983407536677002263064342705476683591545859729972171540019001783399853239284800799292698263755612110349642235295298770106135442815712695389736989627439862083974391499981120034260644375423272748416151715747989630696734739279065587154947354793468627204279379034107411261525203791937749951758482509932178778644182718368663502111260303827699160374171909009506886357490318553557602988177705587204173681439844722877723473152991735147103181151630670225597789272183593833689589107427766067071101217478419773744355583627397270928045258622007462751694495977076719190641300165335843303934536471089428681672162954850124575645225988018919484766199176739627322895070096287673258355725785770072913830944633952414580747669706296648563607784692042701437915128226352331399998655122626487858697808367781065139539562100563704281908499655531526061335174814362059096961519797250306752504476492257504937624438483365720473364705638134402395264924381189959254256075841052530068150975471264168295804277295469909509916011353857979694678423745741163027635744694538499759006005907175018829201237713344341431661735306208827065846501385462032195134151075968335873562809741556424916049550701568868018141510723807394896023002132931760934319213833265743283927150019509949442760895466323579473119654233539937967389793970937784389934156695888225189465685160574334316821458930075494279100014394724272124733745335476332963580858700860574952779464149363686942873552368407799828429457487330596295379374975476133909506695421709917846263633363840361652513824469118310464448843558600002179204335337895248484850452111306535893054236309337923184771336217675696215795717856350539496866134702402344542399638305428086007644764659910612107891066410396238392724064589515800316878684991720280936194318789312560416782092371308900919200886364988805738761488359953891651443964315641935141108638788703709210045678528026362785473462776601481742120241704669874837778726181834508671736383549544096538413515017371442867027804809420351993374009066040244887111615933465539145884440047104891690375442834608766945420993068925731713779015341421802585173616654756692969253617402573849630088365949858596551267114355913672313979070450193344812803078093482230633259912252651551752218244285676238716614260264167887948251532504448032282661876416899500099526877679198060699536694294547233777906894423888385722358351403554591978999517584688596492403257355945867062316833654221540848709938380743265924463340695531526222509496434805007936662180195656514384282726262130205208508575779537365403674976978475475709224493273249509762178233297111489459506565517376687837592601982532726930185981467076293192850364897810556641251845836402866747067647348510072295701049278612156531964524969780377963572539526403632020220859236923815252101209961996221877673401363385182601601713395407185647732763691945050430628032931459805928251241701243836383719576931976349352207579782111313282145053170806175349350009143655988232236955580120462123224582126617904486068298341286030615226668407647314599490017874277738078712740230242508613704281963432031506844042931871822809022765861314729508479071505662407352159932485484161379172711982223482644162423579108999687452379733976130010428360343842055503888515647706588362316562410958082469394937831738401571346662893212070636269220861508432428060033169738082598654479762135174709178097532889840182186670032007890358256362433950974842003782316057328220769514115734041251554084511722011808098218054844889620658751469284838448043636216996978520429047305798666431969364939470892203011810430309037896083790050755503825881257272616720439314589264949656928894466845807867055514851764181463590878400711613767728896847900811571025387528825122903981192659505779315920113839957138432100563055865563751377087829283757287277990030581583368281296840483566194187767647491904023069763966062648356908292189212036395605499122886151139936246297482095187100311485615885844569922081781238634259094598521070791726405845728932156362790167219950016106534023880190633985524784231421550956242236260585714899416139720127448316489682989523831838541453661382460105548997365515161538826055070474647366000332565369116716264724419296212258134799417151527153669672791142562053097134547746759086865158834513539512165094554280591689600715393591509217205002567684052270187315942216183194641031632999007058872752088713712788090530872475436777951167216305613199762033834347509934659890232333207573175740093752568898203815094041580801618377014970031463397781023893571353251238222556439660137811810722766142852974776562701210015975977204804598631360440004863418318336104650689927586616898632063871389700138555264834461275848464357030592832057212535467661816232000544997617527397005694501704975703229370473638824870421999426793671793131601780378319557537890944182245067647354333597999826875863950551841228563631286057243854385915438390397698761442870874337675438336913817204825240448075323164017066625928601341766184214709255028242266709894717005168580306963186346606807366853249596012620783927104567889574346486142670772042548042889162772899387914339294280386563702564533131025499897295716267649427951178061748101556964246016021499139065363518611207037031627118825442949705043419624383248710078243728809205356520059839370483584456548052631264736385919145190878013052594356969538251487061883051545393544517878649484898346938544166713867469057926781826005694722079801189379958144898537730118549763583898494438506432652667325876133869393984827119398602181770147927954174367818055658182912988144443913192474744975125141153372300520984573934358942909983765990553978099941854951484612375617955845988990408582378148933399847770754909310929154709175716864274606289554632006570686625281653666738373644655000503322160183487194569437237094340978035288872338098686779834682772591884345708009957823816984239492643331229290561726280084307826035035099426215425687265753651040344105849946764515137180046092047021729895301153666121017822145441911911928417243971632592215022368070314142229191875829796115367463911516419124707223275078093743433156345387463362120556290340902246545339087145584484421355368262221395245488121242533731719827519222049144095384719576084505468214152790876446921745542028818000191452973016802495851861795661464479563671741741298680820926310803110838132952752295845295389158619358918564375983500742695619610403835262063469477986981711831257759544187159340018190681443700094972055262407591578257574692025754034780656194903294532557771080340674572931711596938077704706687643600291199533724430527781264879030581336586807124092086476545208117996329552454546339243250726767148188618401956157975510077726758115476693480659736161378941053907984177012257386798854886281272432962893509319606153834782436117693918426218872836498429760919786960696020755073408907402850424651607442013486663903434935622857773151871511200391636921108293813493363138597737814450074306565725779691247534574756797302096320590312866076903585182919868470952056503194071704934900976744139660526244346217605281730884475272727056080634838612809467549858378202576498847647626543095451387459702294755853831180847980997657863782096744963541288511311877488414172262339513563184282886035084995905021020202937125342459255923682205740571091904093445298974315534347163039476654814060193449214196952188997485272263545476848173558890935814549606328654720140072048156072923205891102193053114234359170323970347237615671201449788656119058884534760234962949224574635004065600151924467915834815095803008889276815193683420226516636147422047674728007669949228337151049135030275132192689064695382802982161040243306156605779114053519414880366222549291036779345644961824303556972106805761224111004295938783787259563292427206649937252475825111707898848967308896136574261170799339942646365641738517396276071318158829756905000541596665922943265960248941268282023401630169969121720083927791582752417141459076822711994670516741423860054848154970622598301729238507016155823709178536516568569916721403027843188304929037816187896142740770537105249122771252123176798127369249013164433521158577934116750724523218187021212960191327471644300252802318513303866760166632024114631550654190134085761358478018135276647387950386984145460089030378147667864467293170085793871088740295993211604345092087600375959409072386523768443021096174952383878356209299913429885533183210062026796182896424886927142863222355867894204491659343664488652816323247171223508205627085524223466231414779112284918884142378714814525616454509487937583981720281217464817171909291432931352831818531170228020644025505385827960903165959777221994761701272703637601063360179113380790839387657067738013305901222312443342375507602607135556896900358490206791718003250729893195536138465650824448512710030410255492072598656608934991734302859711313019490856480880111321417488554848415079204219591891216182720951645230577551127401570893950146802225301166934507804099382448769808438073148695422207969398447115561116046103026084599745282615986399412515829194118165178451874994084736442723155417966746671425627175464360258132873563525506573196770742241183996618353656187345251576065476171438585436451645936773507133273203337745827165943826355102947082373016007741887986356779237826831087655328171760609857554962551823992304552656754866140572121132032960236147940339001415510563280667751384502158644371175814149763321817299117387361538547317458780582112006033130365522641857804855148762186634713629662054839352502741177586724791205651409976411839732617381340737791611480581483551093308319816132511554585738048679728316089941281633226456248138273594511346010473432075070084403805056388133909115006274812343677276176877192380747393416978028582442700224035650931758907394348099155186647052098653317404793473223073430960315014337131510896500491545468279265152207503240842890952578354939387715208291533186586631479391128434694796902186581534315570802559868376165027253856969220436046125703964498704951971240391109864968133789830345210975982009219721516400223683128802322758235303860064148162153539930539552371198126137603450129022294017464656635225388994777746999648113955678446353521496519336589435634689713849819205879587852355980608904134253932615906141223183696841701689668287044441190414406978513579502255977930574682481136233905714788479836177754199483867580972643689342061141702349979976138760775578562634540237434281463357678622023230433956898671986317705079662796072479699854236391282848324035321721924645135139028083604293326587824170010880353888048352715070176513877662679518788341274876872153847884094819650223663326933714644504386294892715756345072559180035004351436889462344115531404431437228834505697864454050900549188071552281071936133856954973637462487540527194789125907824297597388459716452702537354020900991417181880490606149653002839095013508768461095533026148450730745739648961544910326930651692706658575236946718397192637908481489524667983404281646198065829728906507927143251790983684448138645279784562249692498496660182559268602450418208538155583521284260473257218493314175788474745047363227157752441591119524368731059183343399055790818451780949299910299102078724399027913820537439936664442958276270837164014764012053800118874827690476079128344342610650068285362050419354596018090296524271781599588787324191421311880613977905125094524168778910921603196307578607709040000639884673702850634520692941215359223940418522253558111650286579697305080036280950074499961609716075062535053971430590230564666268968484548467380760621711215060661656567091414582642158287382948290266764184784827528091386527518594379402385566869635832391208780009894085578118092406983466481279956470321833733894885630421977385266269023831162349226547251180013741857226498397276431066302400751663412174177942560189776497925050438656110372437005912533671490166620522132668065414983336290721003712607290716158435486069521540778189519574447830759804414170790246336034027483508979146208193709990928199447064734928907981256438446777035436707824362941220500198996989890995564363438058214780458402273437938211460687686631397279636603811899116089168086412775696569051537636235691391391246548878531549613268955884661755924067820396975430787370546869500349456612050596384774753486490851204087114137557125498254084440645744181982962482826195315670008411999341720017144966604501638226939395622884866105092455360848621626327059357806682159643691638937467926792016141947342192322002122226738587326716631849702677876573235787976602359883930484673073710213819632824552344010755652353307655749702296429788521190138599269103057640338960018098926489004349090751225232657787724032673822806398314096562382639948162147454435097848779565466974298263845065990408602975194672136745344586234244181662712055911621603649687787514564793891612816522443486898766501808762318598651895211014513171254474275847377430567164428478471270476542096005634585898264005055928000483460369484883510469911535172575461678470604295710492352441782265351178333636818016063623907755455274252287104298643366660174589703414232708784686662752058407342654320354796745506483643380572957020787232831502464576478894600067089326667149445852120269119349870289396921627448304649850480076337270110116921983694856310274181340042218835047455925985236634155160768940998252516505964701407888251089581688660003084907100163167633271730938233756127539838676553565130869629350682050462172964215013739470201866662793034842797717734710987464944522343698040571175269387153688218727020377698883499998406724836395453226634398009378257208032673924189302877823048413606562682093109883521443826727257534464717943412650717023026967851350472447425742734420483452540356742151214350887794975535896976645848186718307890268173147712755800779592739184140418600263132998617590794910936727907607310286042570046529068209405788140485465113370332100523689533455845298337884296769219099891619524029994717836508433325822092798465266864225581051340286197652136585952855437193838309845588712818891985678471955446252941135334184633533217697968732758875040656661162479497939853131109007740175803926019890962227927820836078863184360421598964682305159544565426801339476852545629762689506906961157740589168516689683041124173134788959871813414107801765876304386362997477047695409782193309211647972352510845581352164383965586589278288434307408355926094663774770587559601937886846708088025163636321255858185308496879357480957854741554353216467317966513191344113750867736705031884521012807240146643374680213001561138223861446910475891990188915092409856537652686352083901010686262390340119623835377675149112990766052330498660733098658793582055043413396629063236953275507793776252012402670999035853984940873415407621090875158215714772102653755747672537720545264924392208318434823869215741698520628303991894099641095859064208251410617917793698008011379143970566599938359490356869106730524583570185294740039876462054567987586937340829950325607280286949945604379719750654882005713997153917833328090397662699401934736582711754414205499012633891571563289690298316419691890292521757443496616002490967481349410757984008809561511371844923534196982447764263103476783404659767832220433303430390238914449546841013454019379198120183873834927390062347244310415245966418933152243108477076438053431764050918104220387093449017013862776417290936665505741378887086534409955674524056599944503412251405672642943062754821790669319569319129519452269269275458826238665818298747466978940006646987732238437299384119690250747026108380709371615102764377341118866025999372640934561122846084228694738650368868490908078576774503192760886275320055532225159887553311947689093619965906434536096523525925386560389129372168416489275968849858072724856059647368367643988317975125039115967075706923559675209646438602677987355241656406877700796162032666703337545918250546726282102483342562886456452960103185683050146328036379017500768943245078727927628526054585440715300807013354140566150358930556615592976440325783191072716719710604367505685916406292643630099042043887583655021136604239397953793725521774759963134321328855179693724476786650850200718848171496145235812178595029565957175669263019926826328632239517253111352546977955130166068251837422329087862936783476540921811599058354054954881074261304481724956440302053316914903590392050195298269311322704842455962137877350067898496734880738580104956418138286257170198209078606070635172870656250500238761182725988975473520541644343205439841144573952637186799452428510183056510793037997851662114801133558857369963488750042749017164840008653563879898453928850637198409921346320080584406773143932295660212801490544425513457143274954931857928985669306027532934519692768866475015523840293954017890300241637952928144731236216387701394324784967320258249418136232147239717799354299721847630147338133826419234774872464741380799104685433878921863021083190225798231350705545890662357902706952348637798937582253885672554262403144625476955102471798913754844554304294687897552080447203786976999632753622731655222334779839675195162794172698070514982066548145862115537736848555733018946038850580481159046815545881781148722720385013826285282445439913879201905685769388512319987073794066890375948424803538854479601042770994178722429411188316148899235784234974695066282092144823074945222198836698032687162186172670865886983496871613805231936878734691635579871282252172083304588056967965229908796040492363448150771720754794644185247697403684480312725332960235827362265715418921326314788133974294344756778829979490336016544401085652014438293274067799048629841478914803183341022171480633995188134601408824920610198815031700660802740777856158411891814546976678140565401140594546336455959423014051022874611492279201901103134370743409656300016511364440497373077458563304921223287267286662926133079007255603831276896676737768758773673032825220845091939406627143370205597156206590369540689154746164111729529670876466421978686645061980033508313509360169091384265482467432130098042270316042927765953765138462116458429770293377490366493429960665851203590027742282931955979728766948398208430849650459550118956804077557696330391578391086703529448810271101955458718110418957511672105838106510794570878969460978712359299024394411876600853817426900054580569880272274978529138062245587935527828569337166664158793041031277424587431436001665885801848715586247909797674264376621850308776093924327465930459562757974041267549185307018371981346631737526340786328677353285752952703514328884791491843469631372464529647420445856132147934128347108963235078613811695894643046056503762994830773526974805413071029285013220646342828206936833849984717656539907637573703066857391456579700486791955429946672502661558727821718026788746307599232330842198754686681511467660472380700230124242869270777834745870722218602829516926397663187943717726558564131329225217889824348182132591715352357929532340404858368871074375958113292296287309813910751626084382832534247150802406924928505119542309601109096431112166001845547674116632465900669882616664897088233757659427921978423210590754546893636920259817787286103515549028793600431861521441743795777092778109072490578294422470800852229476257339515291132976197361501350229747132830252090777857256670038828821527759358721468586306521577618899286673713188935640401581486537419141204816806962646057866305405212206381928694486496031097578176470028473261049060091712426555390875021139062484753614817100716177428542781964269880585063751127904085206291701406494251696438444295348414909305575737215282010905183429377085184444230637623688886905783468287584183683660389392318997781824820626223562344727942753179331200050564501577907463487836787166641131332791197695968025316854790536774022198794686035339083763672862804055990676941939009585446609882897465640149003595379106736054169057638660435542583712593471485899556621910557920749248173057327368597896986718709228492350591647773938934917978540671262726561211055379832707046066517652647881850364784359182056389758651150990405916975115969917970427538056018114165018380256104953481230393166470519699182259476615755693854102203329344181529418267569657772640832618981931291982217466842403680990749995356908712328709745231655675146940300920653128341436975048867798424046280295164432739094818511724039995098338664774286458342860887544066914891635032336726831826009489133692975727729069758360937514018935324206271016565856841579908100729632700938657432852858543082929328701868444020410183134585561127460463892582088229655582665848428196239478447808119316055468039107567466054076013147388271208895653105479624981570175283292024878269469445132479523954648495667037808406065260467334866121867151557364535045328171310100672870754398788113232415908378903680451668839820639101755374528166779391564369182776848038589233960142770864897393752388933793921353347205620727143045356622884956048582248535815569575078104555964188216533700205215360158908732394736296450737492611536410356822662931712308665087829050900910927475788865988818109735367821750565377614940235256950139587774913827172012929048287995162599977657655394214746107265603731657641805047715988951139291932059672815000910970272676529918718881336669284462450589194394146085973488579003535603583943498977674804339623443855908687313833301771886968085074173221045891802841217507216131326317005439366418564319590391186603073981811274378937113141971898262951140265511237423940881970396206200526779161539033529242691866696521141683409901216401643462765717052162004296613891546993886397724438590014579058766862512006956192261816508019027019501796114191267216176760391259649407568862333714641578407568308941189209818671702139264086110543436920047040653198367765325993624431959161595723337078445718087734631220822322158243725476180537249651822774525046184878614070117650326197698876029750839243762620297335292370489347658535962102819919934251942417499811893861759849370614958447500106071871904610021785352377913753698858814908402319278974204104891925037669311457856265554083217508737431615095706441382921544219871978362784366434230613918449564347562976266372010845248774775028858287533703872702273174327903540575996120347179083990036015712504065451693830332107357868843971957666183703233267713230154038861236316797761785135796236242332859544870026802822272103638667897294068382740277297488643952523261889963665889055612907928278799843241847325795827142159550055428072061157554494931891043806306437010708683612938629655913876429918848099484966703426843790250280660694594256589675004712971078177647763115833429965387529513426285500029920424148601607976374753475292913465568948639165747365730848013759118002308364005265926352977768313656953785329742040781163437877494989846621160312136384133770318832544875741475042749840628208209132472921530408818942468027578377003633288934052773498385659161896891376937120139622811487700240267433857473038232141463401867937399196072740434377802745126749542995573501900576848050419757572905832490225222383202107943947599410972298215751553156510261193192109373879706276358040545256539892912497926298066231277412471059686330545890123853292584267897387431688340076500551807578046098722596740466695843853521319149636037567653132182410151888500943148514318715980459800178239624374489952333304123259564647981897306435287358718060036561405840938550827428329668619356028467269217633935137909098215974915832146755667369272873723232920978421747806739659723848941577035740129461701000283268892124017952081952591221267035532554588585907466353011751481227423715753463880731501405649345731951643982646720341970219290036654139043860681779772386539208272472067970131154141386248392307384877396601304576997724648904642029065065862901087927758934668655125060569816217158644865275022100467552510183176401885166411281015364116172822580042265922584976214822771683761221260079502596093981441036636115341881605775675729222825835877278482205065681380131136424597880636734917056975872847338773028141208769005018314123369231130116087869643893320771004878491569478331058070408282567981139582306509593054451904004505092059530055477018916734378562617937347784957244483180184982674728242761613852852916142719252029460392943417857997804928964200136394318726016308934901549907893157324592383467163989364150850541555368674778452789736204425738221518350087441836672049936595355200133012905990375272524770992349023591635944013763787806102851340039583714807528640343431711235494201457575082053867313063051626327243136416158876705793631515971157993747309875953525170399907327080542185532579998540043985094916623706520584005258655445143735583599534685958689291937619636532676918327462305564797007886350548994656559632007383798194733138887927581325703947847571538684808676019704388697362647634670667857549912033017628157840217652785786568347788549663931680644509012032451224170801782871816285419330860923903524801154343859964123880237503564217423134051262950587351765537480422898018854024393330341326855730805005859819308992899915933885368058416494646456298160507437635217843633790769763175972948647487526926879935426639672316464617611222785543668133186976205900376437389497975809051641233238317526873637518478984720639999210229508838526017436387265699616551022996856107715086528990119082869037646126499274955592424205178273792095823964421694285159216056853716967605563609082720901859500585485296160067470164972863057144512522900601219271037261312470853898191953762120917279284479240401843835726459998903639812479154232381432721135072489368744167640384054679915978440659698948662943599315498498641817079818083116643044158137249414035135362072987137558136521803760801882039699750893919139702469807333430892247328108544659066199555675414071906492521534499431655909446444565290564469174405775027559171571144436049491351698525774478170309510485415472794001725116363583989730787254897850466120790677399112329727094053020426664066782342298255115389370160874370366722825392679139511529242636361093257146018740821815797313113489841147243408941099918860495394268632929966490492137783770769457990843670829576225644132147707861636442196343063563406644305819710845755299711313142533045340510526643844436553480018468666704333264737411943355236121463933681203997767659878610332967305449677775843805085257577500071408266925331948405188707102528520780646993301922330335682313426102475673630303846946070274616382249246039585894585516717253658259489662726466435266227563580898528464642736219461159440674475795752917300876607735651746704313906955149907537095911869075598882612774507871145245729064826969947728984145197990532764303000258443335846439188616239778829266361205215395849015779765048294891056081401488298947859024400887367231760059393848626201688060901656779017444127900281690645604732316984013747418697707996378360786840284271299166620734128628059038744038448385498662047966043017157692208396565660186969200681555738478044020428934273218600958278629569684103089367221706549463301030539080367052974956092628528177300704055520923069630611329011125105587608881399545415803290527343835851312960426768197543756848409796980935511152654935321587072944597069351191026134900242570325152948496070194599861209335882438560953481798493907716857747427182075696375233521934117536807563665185191791407476986234811188891901944473719643377254774007434660621892550837477039063787692920262284246853900664740335370003668620770979899643247882007283723633433565995066377876130808578576392736651214024835414557107695347515940209085732721520975303472861352090911692199997347800029461905665155758556046361361067622572840122326123319179466117337412268164707799822983159563967690153241510007560125153401092303962993960462734934124299861915183230935275610852625223890727375161284665944578956403469900462681895530734161046684820810517891740072870685620805738845574087121256995934387981363765758637220514373861136867574694850920849699778659054101358484865138481079902246790110225449952339169755529280783774312179893044906407061801577098709094655594691977028975139726352289337561809238727650191857492104882998748390626786012041520398267360433780978816959034860985771054356140772957315499533176755762789109401228036500062683239332115278325417109903253939974138720661991065512345461514673510760437017803446317169559019125392016079231520155946131066560324907255521403763329404911594914181453760129691947238283317115220261858535586549897252486486518144345652251831697688373261702464281959992588637269991582248145979468024239979816739662339535631538537988777517774131499058923428293496370498152079820462682551027995774975131619755344640398874937380699492539635513688107477990313104825926800013035086153134031187638725494694743411517185429787502135764624777011972822558867136064572352122576792248127040119327428623047498797886710201203994285907582548109245107595386330373492847160402808407389690410637522782627903676230476374649239514711921256225599108353438131504261842099959891701749244015313746619165183999545008965717179724357436812463533652185660035323907617052761960856724758214143750643503304517558151109956444952080190669930313437384382129828300879511082250491865458386862036959350930000191481235305160716818299777969868294653001318416450170044952770079988768318465566736774149593190432974398042264471561186539160059362619541759484237857029754346520092714464217042247482423460727210076506094021511231829565759751646432644241081236884903499402154421058934053245920456413966185682829917218223956854665683143901179882359385763498791080792029680194824019140076282315226857387219630983074352565272463590895357236311772841576476354675198063646702417310487904485651773006094580862553739327514178157354508548646555252360032269092298137006977078278487788104337533136393315133819929442443284553443464919325270236413410729976318484664494326114891161383252120078185939204307298049027857470882078367625304442613551606882223703346288179965120028645796899815226134661993762680125133117440789504351308853335383174774701483107263974004655874431432591746797968233866447480938613447452717994115778741136993212288621980080806761085259060828546319563848946752633967690584021495504792542512133531755784421005971262440973355515458402872474387761022365176878244011728125187489905088890576203916631524826648725278956339913448430204409210482185849284347277526321094074655411162829636365531004303755708155251107021886012132524954512503588868042000192665028611756894607301327131263085493908017085935660915831524448685568276688207694905392171352415812028981423760175057403038381316719731485336364375000428294178080353444628976505492317605294312254417572607733760684651168294558139636255193964719085659534949512086176623652665282497044577692225375333068102119202492570289807830814292748432695079233655931041568125538898699440571317309494618576423433486613630282362919549501908965894211813959308032997948022377265212122549842287461871203567092360964424008431442914588284292634444735364386211867571239814666327072274491265979273009421011743684883742034150518860479007130366057482698111038915825996932938042669798032109169797930161526952377319794244594393274227975510408087049535215945609946781894165749685212978566696151406919989114184482591086562366257129737772265642191776579940578445955622216573208918978998931821163714226536232921454358815230716464501448113196359323108057807043703781542141628426902284497313010689297182167147224830417897957848347027659108787806123495325807284504568114524096603981591319467361584144942286363936624104290222380679416241293499627158685382161211162970907593396898100476026365189805363053551136870033148036485225865804460298294290134748208472189832759595701560245057012345342925592468389318049832138635348091145371296975848369549043533984890290804043343165211063627353576396571930835969896921806331443517243400394291474933590689858584321521961113416014490810587545243946687992492270898963634711942253216257169565960003466416843135922300841685079009544952808287783352844690794767596735591339488430537928217699379544733263268008660745356611435928046491259213196882804865023060595145493856019422675932691804317758561085934381801519173798336608401042076734204975367983268495015338529122614380748223534733746394260213953535694747248475687101102292090580934479026706134541456824160031501481520683421824382999520586427569919114332266130408706657146675973096914135893303060096169486031853265174465058654509425523849922436791774343778433191147416744051716286560082522354210284542887070125161531423849507587174326386250798032831994306304058116226928080363772700149718305497235356904022331297091957066794780978998934689132905349765153710253834346384608629906889777756165309560596037173671133991947959019710772815998192315493618283997949965795746100745398773439307361819010057382269265628527970589503630531836569766726616970416877539803777937171095743987504650103919642221534208650556111308506317726487021475935087953978853582814755779302055150872351697038642651617085100555136911717162963682438391911661182383193129036012267379399228547544731845286603899268433222352522724887853090998132761373096146024201010212545812591648640710817132355664563474973837292964613363477603961963902421640827074978820761995404150045554623813048286500191704280040450725094808531608735296323930649509238315637007648375647623392854419917958492432061912012506879676809481883564634296332096115690103904844906672654263143374185208672919810292492580368715587018181201342719692078278132971773544058937923516684155172319893992148792547957665969064176643543709721027415616055554245790201312744953513105122369106877819951641815991135644334826678371223854133474201730789202816971178241097786233054730302410197520279093005217451618110306143326609973379577456638481309434429826519903534581618165576324265566175105815495052601592667149795418854453734029136962761951627116602630345581384333591200671422897751539086488110998977745812562327364225605645487711191854967307210311319274444138728412915542460704816834922760457945003950782489206072367665371979053075729780948691649978644996512203223848601221128279823975233384097584088923402446390577557136719037740185382456844998297473460381846021296731259457396140565340753166919110118092606218838884649004599895283052849620743553104466122035890907358258740077167125109817708589537848073233599030462381252173536597450143301347153209454233323399712120413733086471671438024193025856860352906106457123243532745667125489249419880231020903429183042890107551999842717734195745160397481110621215251839885630158119585099809537189527962619614452938212822547349922194103497024317761357647176240370482062526991169280757648929329369103516192297896520388121511661512986091690927847243887895059726392297671919045774045521994323188689069417916060784873159364296308516147214476861614270084236458511418490375594760577552928451355816467177680470109637043718210377534486352576397222010872145417422455609273819178552215511145290420082857982313333491454360580047776996056925336735743123897852739941406172517468014054728656698575363081080676763432295364352969225291885596117879262816241038666461657142257010929538229692555037799437296800816155913053200546148398057054343694797571254091989006403456851662096447682781521142855965265346669918491023592990511887335540911045782708899439648932743036933369433252519963752432759187688790634132840297630032665359738632273196341796634652901683292193235249392159427083270170234425042031367381931274587518263023388146988846348013519233875338758265581140620823645242221380053658068423318279145827980465403373412442716054199899371036345161580851037395225661146828241014971912911583848479342060943512653874490308825108977544463140802679392435169657213693836550039531574079705035545405897872580123128433210035388043701254401012210791870659539095634782251819502979625195019324653475341772273313939544309540504976099114697935460531051103508228627063305850584498675518725169653062498436004008524596376055213956833627567768891879057160997961422323717525520622063823333054143903962132504988369571492671430911746802522337460757241244171296993247629833878459124210216994307581014490140736006760236589134920830023833746359125700243637112811796816904423763004058371668384060149165806727768684251163893874192189362163199655204390463521545416403479251371077724470751783527445263884909163171275213342015738481146251416250719393893577474621305192229165305647400120496302482145109222314877423516909337588176982950022675800022577831902182594480267663013807476227422770849161877846636565066512213994628062278729921307476260845499055774009164845777336688299417922846705937486195419962354499848734004041089682273673612849776359777195723994029486875271000263108848119593748156833271570298759037470468486780661498525115255582195764595262278570165700533670379622920090968741675091322986227088290979231834826240528801205234970907884612296994273898104557372663771265593791892972778682838761940263751910427989996763344136611273418182846052554683896624511193645272991643662002329687617986539277713585839686097834455738442718854558847927853641443537140369272621720914456953870035588330876339648825796796767201938249878844141125912989021978109747525448627470623379889044942314391281459233551641319543550387832428735687451261400086979676440119802039618036951742533992350739117462457099499209251853860697126840089322745708629754466055984361176904790956605725444807716409693094952044239295779583529459490253602586236027535460412868575736188197739919266158526519050240936422603854993226713372910380108871757794037685987265756068182969702827455125560648269104755765157934263647504805109283832753279855264166411239407393406184060914649232546885702806638876421881542838141759692724410134812343759945585460053750783423732618489563155316586571054321792901022962744389073866320879556988265090287031639806689957727332265881536807282037550582158093432865200225766533440537396295121126630685674970802327354249652270794329160926359638852424572656306012334327990550223587276435473153618144016074971894455480547976347556245649630820055784982168600041047669415963081680459893278157707250171002725842205084029839327482004987379085382885105993236448620715808437567384284520775845213556497663638262467634704569608893787796170572387314372146404783985147716879843690864230656995020638248042213367019054968934834507493017590701750448322371253717542846507770011657468754155501601388353050597398274464357717692015566109824193204684021485764415813539103471379958597497400546123220388754063353036756916316735497514114136457797811783725941159792254274203979486273483999325422320645106986779494208621769939754523885211778333960225236515518076581468881772553239201801950795283578193633277684975658947934553318482706706834603915355178871001014657071071401351147811360311411876306843937358408256335250591679993674427333121923934310513076302793891148343756495765568777981448885826946266011764899357699979039348378840755083268248894829037889420393220171970056545358633125549467498360808368994715405598657141479710443697512085693798070897471635592395695091431261631575941674282158066892608979905474580572163080184561943322985002815370070335565175693069025216154315178465761125674061128329322288189018375366818132746994201801879370112200960440680341581400160040932123399978523547789700219125199978029058286717668685232897788546734522654860979998217870542582811382476769355762255764867249621709814397913413806350929441424844797106617225621560842139349735896926531396842139690810780923685535485715636808432728454462014696527829513104854226602710596032492602729804307938962380428630395990405551897250748017001100400460269235572330860844287668595461848996706716351792486319345072426307028365273228867112142434178154526235948140854939350826295208814214939768247939811292294902925452389064748977231601763909804065542210459406161386583852963224826335387960426816762190336508775353973562639145823645277722860876681549465475368273728374007600571502651517229291129167637498159120030361512753832178040878223996081591681588101950552781402874826214997744791767406802470945032153578261294145798575038208049519576768394141553132851878270393309087840538141111757664094184964101395580058287026972284080914758798121962424007398950116824882727035452752651860627617918942875776653289717939621477231159973026539428822031671063772842348899593413822489557509958896857027381124449735838474420190385405107021744104968724184395446431441230378945977988355407871791376964167475979771552761071510038428933130340933104491538164673142493030217177874255762764636871991179850390483503969150651332177356127599780187013033434649802203393275780309912870302142195364125257865688297156013782099449747497645902380283204644316235614903153370363222891730827339906490441269385187227784646756316926240658186427001829853916534815333280641106802185127247162707901726199841446872480198428530480881642644051854348938570802367434730937969178155730139113670926453195194531308615048753468371535299210557441256052872182382088485139759105676781337977712775958433338741979870230470006886120431972021858972278562202711179312527640517909177440915913015576350742390667746853570631054833927430398048078815523570867020548203760848724429296698355681639930323264601822789855853148020517120330061661697050838961135001433079311617770405965165461606519733079090198031966136713892516913550338558894344636226068175630110349397135753964841341273250090109915569071024434555475366543614841930408540487579757766179686577622375867864136990932041706518330861845460844515706523773370350639780506524687502104877665858848886942813647938248303833705579539032837896674413987715884235685033617246516828165074872992018680583949271084686742259599224460142321740785208355895822271387532792445298047781934457491552416687363132897814763161378927079657894755406760023766628323475942589800703360215008307769068036428665812068931022953294304298262565245120712910664128857151268081384340268874256293618247198933532585174087501952451168050454509853149724556697831985780421392135512649080006078576998817860552995990586745682048705440977493690707647613458843947881915436408057267347231679305973628102745937195209961343133509724889749699122278506935667775352229639218289135955292497006577799667580408422429664484072577219259628126281228842925000054921001110686673505871470411554461589126113182294353925149633572782584445289597142712422464154840975879504319565899775298779910302707037831160737646933381851250870207140225387816205230673446327679658463517918414275833141135784204794123180092802569116669002560942568398404738093930934977257295740254402940352193428471110073169469847786338219114735709206451739031738009316854230606456232571612814624143550486621053483969543731849218664919750568149504553673354604215178130674876681567207670422489534613641466358209965483247801423917799690549699523674529764972003946961458993175948092975164708413867397158337216234594360526967397803172750656882978867072767106891926885001522686155088998643862859290817544780958557170857832696345482781184700613136044487145070255950104689412105397703958231882635138034846579276138860372136810125988896873589400564793320806179260557770684186837193458162301245719180924018317623950947115898970148655537817772762158950332678839117040567599485530185198235080436350279932535506088326893610709475061982323957190635634206760244342597027686864532716886071104429779471043484943865481122738096704084849874158805643898399409083523947405033583310338508906375235686744100928973412457359725820602885660328713800681094626895233617811017485439689313733922028985301979666551394367988635934453058541306236290709137203616300758862013694304457195446820945466371560809331377249740232584601572523927216366623107020265814993117186954231511361679651520248574303010547402179581221528507608975034632974618224069045399673927407425665901933773554487891885039634013622187668975857329437506876699434212513331858178379073418332734691670357159770560239793307715455816834052059875758387964993053701970409913705645544963716639445393056094607564245673077241097392151088978994968163985635699607226689701494025307042497002675403362644680994439316217332041374494745721482506946277427087611469332398621230215636560043690889963587080798898314461419012199878375821921141441799043266410202860696013687329217543283462466080951773231749034391051165727243302343266590663864238616692989470499816578854621627330444885560183818455525767307009883450716352466952822515803757027581218320885200733597780893444242376255675056721469321733788313350307966079770142301446423274214341625979324837089102639686546923265308435885061047513830427897352856341951176731086833401828105618346849511481854604266756826321142788995770056896451798744908964015632118208094172152341958571142737344967168811683074001413132114212675511485119885161070124943456661240812811563021171854971016819710836702619234061995227634530077950550759992258127513689499196724382152307907437826637020413264336276535461366589059467249466113910418043052935754137882670710909374765411829727526629807109022988725764474443906753958122060941838860423974302458018989127064790300067330452350358985132001801457609348455039900584298459445310587164191039481154830944975401782473418419634749508725957734326459018932250341846489924322350771769073944150086099340768100047253382487602957301130592721326933299151096120831787785404842180901685574765965230335770832700216807782229803087262729882370771804638519257269731349582972988612148860262408561907252265599490737821604760792994501280636590653888861737080223581390516903797971949027184367995696222075716110914936612462390906284358000387446224847297102585227636681348713396711626672427676038705513893353324715321019765452166313102777257249451249798119998627810497087287333477721053179239046078625185097463929629959367894651869466296587017880147692642121748874020592313046462115261700108762545442966701412606562306892635855646320233454565934443026898338216427876229636571995000617138795514095047806143463465344282895974252799778008943847939594107576253870925621369790588027009299921885100257985935407149397178862829052698246734678670314314072237123809202985828373934787213853547851750717270541452753101200155880445085749535715957192481068107948960326425809243373383963875946506431550671213648648130833242537842580002365185886781863337544974422926844579276886875689834381078469346166551171367968510378686701513646254233544984985346705037205547639280167841824474858145620315391774552431741140845718543357003318982694580835269183922726150672365191492479363063379907530299680446314033954709254706612052559493993372026174575926087549458338146800785968442882013121987405602035056906122142960213848691853553182448856648187415667885614537439838326361204146101962235161942680677504935607631536302057346430699279068692507016540928080734421250483715676833915424137628008017390588501406587571504118198149293716087351235392702939383891598290310746688075228777445129656449230200586301084607531805464291042303370358675837477968034467148085160847129862636611752418451959220297667915277211080011884653965829457077174543010256177677919776143601402239412433281960855839029587919332311534532544165613321847951440769764796289131011209471113247942357932599356593694722041941583716077854362275470401301225256118892152133335901649404754629553487772547936053868319518046374551887456796312108917347566055866652856128432274272453158234561939714052073631880346090135946293931107138173556572385377809114152418847696448939820210299228976902880780376637989425172043981910117759408485931123911978763861575744500309842774995064274486504742541794339176922803000097484434199179667074718401181069292086859492085326858492457562516248231196912620497279227893002403235685744019811066899182232105330013985565262665767231913092913049273082269873762590903799728340473114433094993641420660640419756466952257801701965506316024551095519406204665489593729181665213593894293564504843856346989140870143220210430961655710308698053879091804155202548912388592039685126097601006204158100860218391541117116059877757811172993250567177210216010597169086885658366133250953505052885326308496641155191088527940930129206137054169324268340451715450175558275477579532047749445144176251743037721768485032316077671394222189861527911719312994998627545625939410750921073095553650547930774043322256983752612909126031186254917777717168818805094627713226724783341060845499434206009774300692218881670212133330733564222427417999747879140615490117837811573117017778021247995037750179489467864351434088638809782233775531596232628530876384273402244966733613751847653998520976114891986480007092597731051243447867674437757433451345610379334380324057428872428177112973076466938118020194693245456887533054703508449334021339450346777226958567770900162835994720544133845795251487958932713488675628301756873489796404850756911115418591203761647965701092634290820965828168500110073028321485178396111958960638824352593357355080968620411422731291286190378517650991074224726435553142702370213915374457048858558281469413965671460552220948404574234242903774675899337283899014140022250482802797841590273029876620828007099271208356623347566218395408617035026546364417521575102821002035875951274175950735965792765752000721426471762399383878156718013965382167278525741897129457434602881724303331099188159138369128378941930822328491281587241255632410528377462020771387570579070614177375917757992553956633773272810372737983736477338648739560063093321375423138965411995462695799074909829855552411947375916449538237187890592833261586749807405950415442531052729854869822353264111303152003539718558915121493999312091788990879338037084670742899709904956437102574217596455708605927155403640617070217000520772319563621902925612983908151066414231834244627852894799356190685152352452514282672878531748400006016467046576282140394828898634968402475225384837829884382056991712535287960102219198839133780999522689421561278993718586678813422899730433053022981708622096094023254057312926389017622499457562941137190585254135081680377174806186670035843272925585066205162809876234387595699989239898843043730037891577423738490836292157541542998025779466794598165939146910524127653989706677126831663457713900238200715659629883104510908863355060528902175898290662678844707623511025401214433137930703885328396359263387444660803508072558085220831632087376412280421687923190613977100668299511407982891681886390294052548215649891469541617917711282113137432504518082384099110639588801802357726187804525394401306375028659030736472725271787519546529753539118955063237320860290759913683918896915663357915332342038667946230817041411705097258259495078909502212055353450831476356360741233643745047806215666766267917574250868401212396921225569297859337109028371430971309728544930361915557772881426745203491899350712999237917713192661710725040511719891538231550388471192938320022546835624234754391756212617824698924804795401515597024041992245372316509751372268184532439800313900513407511395278335624068940218015946787538836266964455947035937384903629295197361242625390128373411848283325444027259706984594672960534455057557175975008006957612300678202282175701332055618630565501720178669860618889417783912047911956695981152814402660794251944279133525090961040350464035068296737181399114894171976217183359470780102561842333573340949186042605641121682280532875598873785245751916178404743563200576136799825371599931621823152496027773810052730250577103443285308459216862935363624247210151827581985888011564833757833661563661206606635042107207378941144810721913575212565027789478536491612046313252444630578699313624235327692267094691062009219216820250258648312468482078034822174878997408853757441673846473182830754849725413982244998946127013631374884109592186761020019699981225015619923659759553534416902552153328745881383120455238828119922407170102393207136518977000052335808329789555750145259311472724349155006560103987703619735592506608279629641458571761449349885960004512225381354674889320668541988915898529609038149673058659678611243412929982122597762623585220134290231868006811979893122837039672167910700092104267337232829106208606483125383278247200643039127451625263816572534591765841990758792909265101376850445908584131360298898570963493935334751591806224582249190014992679331288265418003368158516464193496947802246220900090902470960216989801368139042747980606334427048519321640561071493138743414126694795622054380791840466841510389915791996928752813896717921726513206031148537109085758377576697112634075433142767075005586401807352500144469550233608888761847270603912473209614525249907893304436416519107290846115343692867758280695595394662049829269883351552588416390775047017588613255135210760486595861882619407850157668825648180942899338099247171443351433014416357518733681697574542377115942561363697150536557130937700364096264444252382231596722624431946547902127583082312772547976672163370626228393871881044511901784685727872034130029119769485880802501852392283181911165165272706496571733796523946268169027568195391427877575381087309480138869929992011193382904229757569837543133348910669040184082713683660551591195845622372249492503406255117029230254648448007284611752428336067681379492773109807785689975616374106483184845952484404537716784251793983135363626318985829166967338969306099024496828811611785180716147278782010306671201079685705890112243021361866321020236301805911915266962890072372718900479348785646865540954699874430820199995759820720297667768557850050881576385461495396390684192863969807006972768458833109983335163548234556699208169969514620011652648400140123503981982645022240450225999919042259570550418871790674986447206460394785244226880121672266848690092060575672725294650715496097495190481411446509928632360782418989789364636684216952663331897515008151205124276602064154642514482770413429042653524631586486858048668649679627716342325716630531553740595395824733354267277279674228406717324568263841548052295245500789640655197749347475497287682719754418874548832107470293053690958078830309110859023555666617999679556628236187747607751083968276570124213423770200230504598722049911882318503907075803792462273358250322271472576148739775732738380757893100063664997161460839505728487378604490008994821268521636784375865353146450931709389237596222398412274698600419380148933574396986366003508094198527107413684546521616123207823520900251439314288225238231399033577903435767644918518364411025458787215945176164051836864611931337026179330826393206933519510238910702386468708295965170942497890597589652284429810609149034838002859243787537640164861315256234324736123537279384990859275330419421698252596327509850321713149568173360335842416755030679330007208610824791445710242833689289625967014054483352771119355932425759285161157622309133836098233471333932841829931284131903845054427021678080196751040351314754719146312436664325312315524840157043063345204636286834091025287512346906661476148916816000491202392307757841022490171982710123478606258936321680255763863591828668836217017826288994459331605453095506675578761069600588427359681421651901073918103602831398475825175779529073330896917977936563813393870851800065974400458424274336288150975669016457261784289510577684343553104915513698428017311651282831648736498707638421459632519057572619898351260371244185542337067429425257496238272139786090368808261736241133857849296041579290932261653840063710039880408499724987702626924974016210423250980888660041807393249775421441263890040760461397813953135524277691816335271036649340031912965237164926045454744430255422621348596443170791811307358436417230371842108532268531450121931139138002552861538629743368973931815210804530398729862524782384167573503336535950386181907920132304348473743566874261037934374900135662761300665804200705685705136334902489362094966433191918139303775454216320844958343036765005204775183032235821271206847313172588535215421083583840382349999783675563228370285923804765335970878651627962440404857625194006467272306630929504835916311858510982753698544411572163368984161274488001525741636104685647747713689210705312821094245789921088870090168695409125991439461338375142730231444346723517954001556614320308276787952981017963086609483560598747309590906157373796553352500681013492018744317700893197656348434296307537681147425118584517399028823658950639095366126469973944359391644186557497715700007791386826013097571381537115390074875290895472057227856130337656847631284797655997459644844308339470012525403898844483779923129871782871174249865103804827576098870295774668076014046810945682042309108395313942099677701911097418651924401808336558333251735018990726414333013640424055793049617499762657964556875435166730669035305563118912513285742980196360839026438918024029549428362997171365617522912470140358009682182575198618959845905769446278337488205471007704312513059951957592613628493123786259361065913604771341685846429447847974717914375724164740059220629564300467439682533122265908511948924228025262862053260495566348513576130598784384711859830333790300060288985747603928407106276928385086885416090215062342053494240437079909729284415550238934264932745015366643725966217813491286641216538669794917498786935489206338892330904701091851728664032839051635028297510771913142959868645795042795060384353593070996211645771673203149293291211716465259250173811263032417835130110265975023074342442575704213283738712574947176173730201386074958253985899144056615996365034735027252711826772098513468486502776463617890909052954865976016510301794314068424070993267060451219056872866034861415919886463854639168042568194510093262824701135215843091392637360078087601188423023909033644680433850217647103682785377144807142593351695163888103516964601069934418086401688676127477235736928621195174180282874294931221968670545305921626485626021965182435842640095743407364556675663216795875772715183065134594571500702142023695195794688684657203891917277543191534401551775774450849316135956601340857782993602394688111279982480454963805136113867797465834038852687078175686432732642800951920474610011075683272683753035900463573971785753855941461087582784404447422715913801612855653475528565976722618784569377623996362547768510076930151366127384377308298084872369775347694341751589231654624763374704083745771925531077504659231302940433667429127322912498902474247005509981529159892286814687980447295401029234899368184389487234192355393656591241607670045404556881208049753383449151332213341976543074239753791498528500039543767609476486527528451467338059351013304203070296473280767748504759027255670533023105342177015058038162330585635908833719329696084215521279623060488088032864232838048826247991094866932779918786975370618961095087524854111349232557716423612950526114231213068711903988110983270588228609718490179751924365726789999908840370474170104361852650825780059484868114562242515127714533688125031577130241385006803837786273551585297505210964053118157970492081944486192348631069120353393612475078367791579693605643110998347199870331007178063261355507884682921771298402971871224590885544595955065810177349224340417369864798230260540724472977980373743612239141565337435129192566600012013470585435353532048995181922106706145733650051099427326988698001329299668525600450734673171069036067631788203678955417194547323614549641926271589808736328742762114743160212079568321021304279502919055380757563980605022860786485820661324446604152882460117961705508179094553081607022939712287092691658211368301210749293954469291085402572436518280257166567703261323039689310553818536420679459783376501497250816494018826528810576839085621722257038166942508316379693020505670766472742766583936428549365916700996585098530331281189053930520620926439751038079211830549192270853933453932177444384696747626755118813856332220759789002994264420140830020424571988056176245034833834920261249840249411448881307691150135722589797235356082474651225522266105326404621385376908488139349685905278317450379161231950604568541306290389667430025875938471668220441025760987053752711468235093981652412208633063820665573216282295076335999795910781405619115611590216216151602942042949097157092445285340477979673099145478746773343374550798626634030226093237727623989437663930003138194339289041320606360679075204662132215970444421575331028061257220011975235825441381719536503837389484904936567994317891247390162694103369464621704607514532328504249479377869196233184669206348838044907242513025598376332335524461453024258026778907547142118710757124931163405101933130941572992717360436399728411810221109571741983286285486620332178558443704769910387622204550699324714819429458370096301596305340424835277457892719902005419927270315907627686959085835293096728022051034072625346252896296593414782805372111300887783693571413547736984392120007326848161632264624258741426321426225280285286599357168490054933528688763002313722713294164756520457543685517559880066135309101939703915032746678050083912860900163520746514610754659345050066205763049419811716851577338574172232724365164501882177046232278639937696334294518725594240761949488203299811741596028023174892483791941035784889605605394938942372363028178171771430730907722477062132448650920361582600505359848104848043205347066990844947389082935926415892385071704988293956006486607410074624887824843349551621499735655919344800778937949910575945333166738127758668600878489138324760949349118967037592720488267519871168551306659474351556646090214297150159784832805366663510196890281735313763035333761336171350968895244014012526531031223236732542232311693902741751319560448661735752980382629710100730326714838579270764165343386246158444672081610679711412055584823100531731908540171692191451480976606567371195876154743520331333896973790129627277950290950606001742823123426296527211070795812459730957459314627231179385714162194463954620375943847119612941333242173722633043509644290860171263669524966628990777794667593210174359439066462083826076817547592621466349311126491844971869368490663113053034141016901290230816500579613166203778972710669176552396984655182611553409996791073195842105465950105525183705392786304924717177096748579214623962288647609112730598976013320896216551861636781803873835095528155750144365030546011368534097974366939227406743541415160122054499293922870445095181796578100262040468048980590913899365258131844765141011314787578008687956384874295207948144828232849405697716151007651210609028720466578739390312654707534525708170882675959349725822578290568568907282483911307605001329296586327299278275692119295747304791141946700663784237646339835952786551670083753483786663882976357318672257984089833861732232305592944967218491041465104707383430621619595417882076216332455983459628569574497186176460479273828807270357488483974706976475985072355540900448806577683785502383415274030906700565511128568740353886589606674604027979200703909708662335669867856251142823464863942909199919137055797696981552149605230275339419761332034423934827552225263672170335895682330015647296255570768051292318968554876548232305884010392130846600686665648865167665549782533935556787763650948067216281810797848819345973683617993378047306626532274120029836907639556793325923902205402139934425628688766535509273278953114542116363144685440429276856846802293910336303270343791308763714224704911517505819346645928796446950389289803899211321290484492957193147886771538357300455892671711895423376673638159988800626113964040044112484220782073487504345204350325038264158356545640430749814585489821221847440334638822730362861061584038026493763430171852402621916215634947882091439802242137589649361694670647113573101357038125385795700990640640368210814377518992926353759500449780781026168006012578416742197343909971358443133768430159198938133474778567014483884957313960663507333533646222906430404643810217058988687060420379010812612237605284514456500558130099417021035317594901691232742753864584162663811262101778932605345896761778071082977943068474230785375890718106054484342056279273406570136505817845506615712674256635517605274959292450264003526590984197523822054743682384209362293146645203884742702331948073123918789461042286988402496092560883282113960455613636007522364077057433230779942038976829260456929619688289343455645582938500240012969552332602039021573542019661096577920582547911044012804417929487372035463930365605189517774919306776265287916934165442139711342242904179517244323046298650800296906374004129581838444661737305106743520191203600471371059002987858582664369853857944362678450484100106239350643632985298500277133099790289701109758802375327750037027020867270549903109190280860735728157615782032907906931720130401223348223143032528022203221541881849409961982486084829750688813021177913254562727117524194953991061546440879379675349461544632322294821704145454157850015797734069112981234246582246788748895258097689845659017070399314323437301438997905566264222863865253821791064839262368693836985020620097445925720773199379883729008617536728799785111772179271166116734227851024750288904391814119835581133400043887981711677131552771141678471719636597680206580619058997865321722801244256423952551820752909295816602533996526098855642739822329986327061227355396941732220655344346046020521820290094637921191162357569748422086980993157492569188361556518840049056893766676767302670870890045384084212902438030835820249392697232771250725410300741606405576296716552955390926165137497863635737601488552006699665877904246890042884214743094881905398495921394875736915017061231802031651884219657107494529485134326275144653505195944980041881561755893436981093399452668182746750258192452816757656636557813080328728520998154824782039269995146495879244065366231280724167122874145379167377604753989474577317730769716087293943161569210524361416806899858762259029971890021721473534794983991690374572496855597912574989585698737153133079230665395755443306176887431529700834001488474834358385007895484678845260551245642261793166228253986094622831346094025541372237978933400520210548301376469058745644351744694010363624089761479207860469155071027918985242464266264053564986639751897299061044564741846385920791072443798010473745565172213577833025733425996787275729934564792407120183770659263231877296410227871141532617158936411959143595291205372287401981179980441476752213806837439430106869900792581477436921558767143405544276026249152170251571523349647492834897562839531774055483292015072741266281821040701364276467327860864403388671320426596864800056619388592938211102815773244486512874968778278129340611396172576912416562301647568396196934253930133507776175952842908077001735476723138381578601232870683437903698390901878487881535864411547283096935677798151628450840410913746761805482884930175786617521680234569671278861773723305192991206976245141914282169766958126745736019691787433414211965269228708263751069127899710639458092602801797043313447528734426634968177213100256439455526922913990638113990033627514781302245199377610280772886969652422491005222141833400368048237551658389358448109847139309742057090551681305927234531833244555237418612128144074004367356768443147449179128968467707622341325273702592543455123405330163398971753109153984177218004569954241501125136249287852488957182377854613024699635385885108488062702763050824831113642778377199343113792039904988247493368211054198015713771481293651625648005964092373384594083630807152887842304004588397758291336806071977441978343670431397585725524988964064257632215372712925811335707738790995346981499489322622258679679558983451583351791329195951417703194064839213414654369189725334710465440361938104008338914220550484435595757334109886547693949516502913610051249823922039088478099736213709410986234303813247925864392430742058708868154535516074378542386459311416181133535871660303367425453164682437373467934071791365682863137308719995441922168216302188561230924438991369918482938630794425307629344081627392643024205626578909465187476075855580729783057154950287548395854694059293213842743636515527204836293167083872405262261192468874581262403580666535667952240770360677176848365662444994323375581627368399717719326735703730109861054761994610370487044882419686795636758144359216807056483859304408263924309761190210789426789297495656064347832315453861092281030056859182809692038237257863512344069602302273581331546021848079303564373184859668309550834482619921747200171546673629558592717208778243253993224161548975471372273109122287483496228718413413307587471474856927992939788895917934817184208912743415622511509398253444258696228418773843827680368466070724668757774741068344038803258776765241115516142797752839241014428480727499790794493788363147305094443218207583377331160739685832474131062561734704824773005830587195728033789214210944437878770724736668475765985120808771653733267315871717442522517434116417957506713512908259702866976452069451953629035500829875787560116842971083634342287390410200755549442121308828121396225772336295582372930306853012477182410655653835372997034668720336909399703718200069975257128435089322395046015226629674529473328621329710235409695520730147462098185268982434734467005554199290033237954195485345984204732276392962723789381415074682949332289722242471665580832066473263707393426925995771864337108128550215382395170333352155502327745963548447434130766905923175514329222188603655643094573122548194927553834707174624524878663118018198643679838354212431518639617068782415215458183868137181093105493332917165317962936064663872588423766406526331155060496844261013008077465954031238358784366492621924705280757230378839339910269086899940590533952760628124537485847698897831504019109324188653749815177593330153443746334544222546422118549126887895265021615473487011320817702769288760878487553368924353835039973724504381742648384108712926655067956278838513898506868183664810952395481852678334262731991373526472255101579661370990414166066314974001106900390256431263421066029527781876693063600598660843846691685221168491648824846495262737600265218889663464630273302999231761223561966193266388934064826518829759780805695757724973765587304279928495733216327591449046841621644943090222290039664209033586515956034194446549943438701688575146937269183087457927275736531298492875616868210648242878759925390685510758799923297564862041265132399522474140523478329576135115074322337889069512075475676967385412598178311488379107278258443966777722679478953565714988252104815880938607959983317273823731645078672972478863531579935693917829301650497211239667193634956193609009896624672589445934440651361867370214230828727292671625157542647204810420294083718044494839286522906772379705669303641859801236033119266666315746282608276349460244793679119052503391888029080114798010246405767398560468424059246264828365301323783758223055498085795175244395475651650667188915237229789087469261213460115572460379042209182138775057813807865490863063008994296742425928248902322224491578815402402952223981393626615912974952539902444425058530874522903480669562186583770278352125268662315001161699032767457460478540317014585801882037336736058749429343661363297690545668276196480389735071222490181233265352934679318336885837633999515111440085058594475600722567498164197511946627474660597538307514621443229701547756592072095864312512063990497801135574354092578791613431024567027220547326440571177079955369104142152483410801984341619886939941909107017775495713137196039196497512733762168480212782770013102011538089129383186481824121844763374172497293487426310234982780315145084260048572414532163078212396458606000721612894778851056405183370636650532764018228781748405968225964185779936929507273604826292030250985944254543444669998645293951859629862291317590938509133682109962068874485476540395597694866889706711618077442384216189226130949568158039728974137436095476129758270429452980064088534882243636984908770525772380148051904832162636809924150365203350581602565394112751924918253456893111587514782505227399697616694661595288600048967770698416700231444318238190570990138274172713845107253110778558011163793592607668562600347475476199619641378292261786174495053453548823821869843277967407470227041643046374637579641348307828648953812728791441864417759635510529655441316760511359486504250112591907141170452664122430270283361492667431480451926388513128779702262613582625369030123698955539617267028091579252126399036297110519055320058922594401059931635513999294376228993482708137985851560778083947692493758870511817789003946420927013547061630437618219306245676037620162611331459247144821588948081876198453474801052705668255660849294467564824261418496628288161977364649522293706892908320207335121613198531721405974403108736124447426943776634619205006694547791595583789393035545227414299231083045950491913100521096604944894674037068212952984979095054151285373138615057415333225414119106286839351062127956820629123684811125095837959571718301179977329573198623433957279554480595307582881056951918540173935661055027471148011858704674624614792935637043261302527265266293421829007953209321718270599517383239553798376264633533694350938460243606652482568913747041835890541389678615951678704220929685202908110352865204907935720516592103679488624252492334026749976954034953734625267773186715613990241369572394606835108213524835351510094813569548279777998874120065558994065880317487451669670331806910907626108549954698377839078153677033542540229265175233427097036546488828375203695916532742702055087330285604894835549906204555253821431921493958837349487437229129435949339206877681260745467497458945259207737264872071438249645855558293825290257010586971099938106449006166323326789876904627467353716003174826631334476456676564452549943653640406596003083998674456012998700386858995901766041856994081302879487442836660142180231454869434448933782896620933053291191111521334570809864128393473928538736223197864576244246162525611473989536625946704436061897872370375402028899389023177953964916329751998427566290413788874774593274386403777265620687723370529761844913755214286925553986050717224196797299716510438469843694731423085397756333201032169924163706959619985800448061119571835560441863373007893553342368230032005696718922202408743864911512435445231568065322617271619183258466866742078679259360677608511361592850083220712950762495395361091286164911113201715994777651588239604287358019479609477766889318215566102192624408878629109594497565727097975125289687111247559765344270396679465521193884588457966549953469647278333283585090366449028940706477463085332735769573461153335679167199371928260863992864901725797877127681341785359171978402064548005126663851086864506146271485154480260771843442641431595169206326358103206140186063811828122620361948947841251965510118442382681582968962406339055125207216290807464820013411456090011986979008566340007819378362120162783357406943618998456947570212425104086114266022317590936167411770112661575324740992709863002477005852644858239375749959231458285823459108794101143273909511109072109278799321824998952690765672807949135663152243903615970253712829900365175474046812325338471871415002182310336192529635542611820941600471594971804845201748273518599265451496066212277460206617554173345884789455279767254422347171727171423935153499081245932640450113272176230935027757710661439020244884444497824384445979919783301661530317915535049435249760230082731609047082761260733023452139660759647262366288420359121081348644051055749100722279304657055945736639125349717048062403833415463672620771940866714892557250608333524175579255317678267769964715237814772628595434177028965469365895865331408298511491243590261414684967353017670828786025885670550822870759253489986274749029492390115393507017785179377588408205083498773039758912949015803893880193874968647343124696872413964393185781651367647014103191896857567178756831208676896146019300671299837963876635620615963942882555491629407303407040491624247027913151814396446718895688781842858081398060096574272480904748432212730034571868585475271091976077725570663967316383101352243765247191289966597677941818326468700946225707405165019605910792432110858417351918384951732338413480927295797204063749861517078608490465776131217310737828314443145657252283929002367079992688162428790437856390830820855648206172829497682369850653211735294549375939672448876037244655932806211271895930437436094161627745946403414977422244776780070815747260330384304691311012247301413141732957510285120489613816437933855948517828680855024110973221959037800722268663775680024623110217287322408615693419007733608539732631587980989419387791600413822530840562702081588472126524373748408086152293588221399368510976514408475658823834568796055929078019102636197184209543202271086624077882386179810754708328159007292292928473021255337432406323762709983847522240201231875304861748009669510279382364974421523085071733712414305773324236586399021048971351960081987627799702505600200909720215801232570614048897264115805830969968207145175800650227048266678733353640928462322849036792005959977268673234890944097262406410673857419861794514934181690335148952759342234142858136504824148994792842801459981986765871197413134639375928897227358219337106341147342056749402821643439619005507250424154669187275485441234618525686827300904014746866668405534828348628478555591775161276462108504809746992898839256836418088505582123749549963732827988249602900995896578684695400246743182920512879806493512483558434413751018620133692843234874190061844024621507288256313163689133731668922233254227101462446803827728492530408154806034184891823207917224468836767833193269435318513731100923451152888690548119057821818913431607979637719894124457216733507739118971623013414525649570802949855707187296724796544207841600613203184030740727534944158786469753043186874780773362178335543217183602153533081969180543359201496778866186626967110374974890612320055288150900213979668261732029152581652778695031508717070639073980452907234307888608348602258921351606520761404609182055006237243852806405264234995433057958497056899599406382843744165840722725351610032464461019931059656517228929005463178030209350146380093655190580726638923729330112028630255485983702194700831144794976283338692538302270758475442905535847183411753677015040744856522574405668199151563313071596948706307391403707671980675221844296687127331044194510318682215343235510361395544480526473962889606339768445101523650964605903275115662107644361880917872412923927697150550963047978275849130203030773490500571946251247154629697220150354328196515235578365724740737428161839743688446405711292303747773951036678360764138700155785887381920519425584147368412222969255364474028086324954104254353759585695249014970593285036851460730974000616886382270348406243358411390883954069512962564480618812269024708809081339120250368316300463818207847076858507681866465563753312637381806489237436684663424411830310152601555598037241402146387753858139188249470036321011390710409727511780189797369355117971836139271087124640822639829941089358560961973456317344162792741617534507111386715983129234119149037762896213608804582826983968795841061044825666907971014430833668982341356417405281935903599596905444304761849775494382257635291329112038951329455926837454406460951559433847973034755146886177778327578268601872650036516148042885780116899831144244917117260450783549266082193053601865146118444405026831416516522020832174659646843260347586218821656801488485538340559023912698919237117533603078164296501229492983205430964081579041426584910552224060507446329699562771871176766339188904226890693735946331471031164776640850996852578043635208393570404249762988494355272948038962601110841218715740023642570813341018333535259105591525805935868388638774575771660535256197050251258165905014139961130447951036755505368094803289829180110590517698213832732808808370575510568699811408214263836396575067786346024107877255590832712408940552947808091654568805429156643165444242344438259836139317500609267137145853033522723020343636351645915116832959166232943076403414284003827872337579938209852569528615768767510716804504360882094442133061064400399775082811845514753124367509149934558415362408006680777470189362609508990289416910357785126115288782147777363540348160446661645898404358278575184038643422234648417053910654747132645034471545587523913454899144695116162259039414883876210501183414939803739746272482852892781524904473664748979571121392509728161120110882065264448403722776496284076128128210299480424612862892757812892139627772246920719604744290942756965376968470803848049831396446521879978264313690551075018957603097825812635541324968540954331232974108641436771865192276084374049413021937740859584055751291132411182990348251062694054290047134913610401598181790798841414321012975996547253202122335879279270040209186319674222512661195695693046590247690864558431440739962355436837837235549859693453117467996315256866593027926253423162145167590152963520092380012384918308698207769557238880832045918416761984931556524641878317077039092479099603535146247561529175635117863544543759435601479138774172155826343571700121631756791620185612511890119039538751507889818447922206424377828638991097104618291130009044995836219820184796831111972706839595680428064412587812241264017597354098642216639796076899321581989899625602439339576701350269207983386353810559010535259186889928101439400812802276838118993194262760291784232737839435494297499631101281316878732052483701857466038339774752636764474836392343956299809236874599842403170899868958581525710744376374181034595326127046766296011372409997595285964916786434682871707017043070942904353074858808786017227654845011825823417112019879334615516563904908437868136510083366417089884480617784033514980823885880399885834452927255678273833806152889443455062714602435438151374153456087713634180168524910503576436040385583398061365975996227944383388179051938778837280338362492537140958119495815496704157536637034262733405230676764545505892070093242757882182620567404108018683400419682060215370761354246130295314733694543270847555430169209889329789066369296796135707476719766542713250503879134520669602893571091094871737814506014644240945206533895768093665397080719695075372148584806697802839371059788703348206606797202340106807118935260866276693305284716166613629077117847316435747660353035973861910057151804938285456568062699820985992182596708739425866783545806371255551110740713803436896835532464370377977743402787815147802296301301353463467596421042668554763838321101429829961666948117939898984288010958905905108730479541296436998420722330391995693777072652124295105085120318892384782873705045658388148886327003483747721969726895207320444227551897142297763811214194984242106560638362214159716366248518195844560301537425163119179360634626610348514521550750315237539696151015155469133475352597451304593079567372622759850359464102728915039475671770890179892230054995935606169876027058861699755534444070777997298420335017039586635696297143766892724829361382462636421804908893009353361316209782829803864271820569400551118473696051298847214951829361841054143066737830077947844941330139373423563541649987706873022971704074633553150614988764491092185535917465834186815567444857801615004647586019864249799366094422992619294553057531788330834848054175537202433349853646685246621972167658339950192270770201450336826625130726572427270735768502111291708981579547177986826419652731249630110416045388748065862426507345710206139710877258621774897136260325017722242739271607297295042560656613499343461870129005004512575205249631698228909688420536096798162772107250496113670035241654619439795704725503740436651423960957713897770889270054712389978233832954438415617858948905431254494823352218929649680923046630667392115088990287256695994426802735972773852858193557770212016182279846455171440687085421899623618100607004920711591214782175974138956342432757558357400914308172779002297952767285619078251438830676205728816704777370334373917646725852953837759778502245517244764672507987016386714887567933414459020769549540265056684992585565725824949931721075510104980742193887753297790520419606071736736717354413421388694922814234366352048394487592053045604604500748957063477871642780100757668268466219558264312459644678424628673390617599403020896928608143662349401695772334155465575945546617158672787109249689377350205942197863629614093046892625468367360151134333898574958234110053672433031076474961881537357380445754891396797941040768931478188166233508238466389541047819576487681237564427807186309534284357031586097786353649843455420744437632988015460656212387722308635850647237462168107397089870745779970674495898431219262260643125022708371117057135487942452954630807777113517074296380737470514701804700231497030383593127649847512125036485600847464844540428230900633266612444776784937126186373587982400947176507012092280528935020962136715142713012335008978284669586482788914804335714425106932616352756078183431672349685280097258001546643331665044491065748974330837411182352414459765129351263649187851216886464185392317432722247971213784407024268460553476028030235593040776476793990486194200846865836705735492793025862423311018316943267251591767677143460182501704450015202489547998751156134327625745701368596941460127118270968808356783397501181043128073122100507589469554217904890650824363635175313180303483524875439982930094059067578797180692154453288780737087815235907723866407368540285485464092982427012093037616385936015284696950463354432535922734378632908817562502643903858084154489770151854056388159627626759980363538488964559934996501120407960198777510336429776564171110419627635551087591106726010921903033402002475067002743164961747987205609996526932671136979956394419259839988214348467060524145381520070074475386115898483669918186602796597215229090088332274242538491632357899132248567561884677627285279165654284244553225924660956020781150970585695859915698260240798439810789562970194655130077531215673038064447172322798885151134587298588634909470734671691008121437138810566123808231472968796182553171441934454814998725792941342475364405786645366146249947336713792065472918546436344988134734752873593816962925728264022236368184377146866459652040033415496404385188175269755783701210136692228800330607260836597802538523693403626272561324042788262167791325584401580463594440623348863612545968059006098502895352036223070278770222800809773932725618600942316976150065656651867828830476003844524548906686807280093296795016475115257380006193151579348359591145868730438710790376579990932083095421996776814782395888799841628768579455693387891836875953879914307658296064790854831231684320428553304539001264721900064304215824591069613333668073868981650268092175649213062311266676807880681932379063676829351422196535354427124132569899511036034172403459650444776238007786470051503350848465681260007211417496905211656411582881878685866242409355417378171674983899567007850120274659795024194909545924477443208341886790746204986784068193804588687672047460448618627987641160215285057939622661918413613554728497454556011887778261073696455527770304400856561668348892144506707258945952677133511411238935224909757136162634278941679684164258151868592767465342131762641622070025661278006985166859011351869268132322848715061374010393170312951201054834175906396328559481453032841848734799727110643437698201094302010827217583231889384530154062740295134898788397553060249650298432544397732189359676165289296074756946096983541154851922998406851991153085634432066466499837362883986098845445611641638906884101121859360516989704587575789914221929351643985597788790016874875202894075493922476139688525953031512778811716617460979643051774741256201285896046347931978832329165140992265206675715904290894453317647714213865528058116168664371576912030512269650700435440867049437596888694000791504307698368573040384828140262287836898605673644584809327461602417032336693139473561521007095569691643771052564922790001138456792328902686608208390672025088931451492703232329374762407273742502234785421369607514748457198492711406981637456444633083904030662868811679465938371289708623574681966392587997480333740000973080884446162363830268148927366588202499658923584421956083899574862836710588253923844801486632111841491888081493249481393202166456150669598774341594959034737568044918150538135880063831219976757123719241014971383564195328381503619395252803738915049658605565033476642558675804753214896130110458994928148625777028104230957928126978292754215573555096503676101153213446853453906618482173719953635924692256019923466306182294237837052437254265936012723244558053203075541521785238308869304795275369632302463029738895949502787645196516602377072610851998512117664480997479849693816519151455613194790008720882058312726300252563617183524811902681594211682593783315703463363331565782714992777408965736403665043214045748793582472604799812445433883123274299312621971149346647281934987752597206331238921156014216660180081456984379196839652470815857352988459272387777078759421164199935530956110990953951771454004933157968703450055244428481346555110605181165854170029347900148305745759906099069692250182950475148167184824810149230404976014364951515450277352000908249079924039196724087201484148686194310405711668575759670436682568435157780448060528571604922328159583800322907091595323074954370393552803764718012492801831280984993760117321764919863010086581597622086571097900332491298230691640154378190885765526646046085464008582346123882387612868677371905110509321947845388656127452828467333099941912779219740626835536539122455362472891392641124588060822753217389727809761593996639890217401311906037253946172273727421217976425949148440787544479175533924022905975926436392125119885429094805173113984570694538022898219352468206681311292979345285114138916640554634991111012641173706424544344953231659163483671834216207207685376539302433103940755343291918915317426551444326537280576240190345547413677162584053449990203888115602503654211374974708231664264521183684679071284991018022366920769933458535227142143409706936126040854896713920860513271028696541946862443238360439743877116220746657852256545327300435132125045929935156458640764024791104664330564249830831540525607415443745536519313023254258153083742313638253847763342321900758561135725951608084822917908861637649949229372722561625781613414147710279394337729802900775790656843835296728072806570509559411069228514844613587120081054540784423984759123442550628094406959536407754583070732233474636613154250219725394937963334620425938210858639691770368779398634474791372415910209606414338014056652549577333463538473429107753292551625161392815857463836466609466888529913679044405080819502075085638156116952878750477742504282945951939851335871547571201240052919549828237710315437201683152511330378621289570299725579783491324036512640663244588820351705076774972725649785035069237417130913610427149395591292298501150195013160925098768746610831494357210102704453756740446094260751655804307819729560490002342114911077173496117003724612568934105997790758482951983736060099023282150311769633901979263105990779060845409751877547724275537773814671314426698853022519942027498629936619973796634402176055592538284179656761949426634091433036556528471678927872049717969106427258054979084834297590512224977664404733802311478911596848067778414495394260539475877936883217348481552142732933648311454266195903055342973569242784397587610312779259321836809924671171363980758877033490566321130718484282008914718862356250153707600662140193519806454963282373046753164650202670175849143339264708617881340619193569279153162446117855973624190974957527848820741443505717562872107853298976364982896103264646379339760270403919051365512158742145669581141853441355631667366851692770235711252885459088396747531327135138986277786143050092714601269011951072741821047621401439129075863831933980361393130158786392063771020534256669353186387789813962834221583247364606126429437719925518112153462832731637753343941063756389312641256616452965912893058217288983925943217980929286981900283965227685494302512230839180860622982999816377169840154032467882898016432473369351048663080171413597984549648807094271331639835580884001004077344132601048138293877024795916934265204163793081331817517657713669217804189577587954498503532504702747193152145640102358511396048561163289475935607993645909616865985152675574737264808459592696007538189377856429894637795747311618114061101945804713063328132419658877343183578493770472954868222785222012485654476521363499847722782273297969264683902013543878128388144327732968727328071960738113832674342350151663731063715392582429007776721444543591111761539395985150860464755000728309684661275202022685088179677713602529122945816524219561829962611506575435150309628666150304795055393086310895488879610851518907620946688955551598931349032817901845985616030889932668195440203748939229006653257519344347774576260293949470957455810110552534837978602935639567365620891087634098604077814460087883396195848279530854402582015572864876573976915029676671252151395310880220273591922240426941703039362167076674199620250592819943724386284722204334418955958540733564451756916561416661314940666367037752683419159605270904518268378079285373632085280823415184635340999091928715565194785306747661277471857801702930894645420132945368731592350189658885691240293885004048958020123163060498840096313066690592045786228219680214880545581060822447330659924671536303149364639769375883396532181550354991055975825743259173251335425783242919481224935301351552289421180681766366854416855073373561461575240512393017404178158773537723937010063713123977080900404098796116074117517690089406139298317683935603933478627821118186111474817728491252291724426311130734756694434027242115496991795827211702598225793409884056603417465588482000074903868049947563059577895345387302606143030470159086677744091045061888529410241044509072982840505694197736454505987263999299907947353881766225217092712923976433382179534595828628191513576240686699016891724490007881662299652495174572032962414622845141832158908844837405401236341254783842944702374909478718307324931656664777212444309763608779848658074951637516871945788240281107887579947214239643241691345668783992802226209650667229234082166788872880181452229458889876711619563090011457347594148767878692476546060997881297679821396911247098330631696168488024616427124596253011109714145199076858397310068891575402773641250055574698273177271483539508737509037709243194621533707983697687856387254468398108320258476718113937354950061229071564298384852158966379058718798411507910915037971491449297007424839068011084676201784936458796147245930725366813913874915838617409260247887289067212699442612180357665627135777608336901196816837011164976873752386614693813324200239293118081730870317989737436216754812364435822158186135150132122639905832679246416433415338596992117047464993609172875491882782472406783811381288580335045042988333745740778944284200225088314373757410651683877167513385018105039404006170278675010873466989195151656576018211142500545976785877447217081773401453134504488092424865971814220084148623912772182877078175850200632080311021460553584452222243243679428744220307594880500612143092996342213175011034738486228059550797458491800117574886400227382599154965796253811342075733790096685868976127170080150722507116971712215646753544154968904687533241052638636949760508525572005291711675055314088761725420562905737427669303300113834441756666398644048619610159359797542943887013640100515723113536819890630398626736342310581100348256653603120478770279784036913219891311588933009456365025692481055190053173790000805282437116412955769793582077863700183607648000614978976300045709800474805536190781965711299009481053092293348658590815567591978423975544385993336151964453063220009759828824708891818648891576958379515615755130167010089603441838966032175675151662209483758307001264636302179369253061845107832459097557777873617815397231303768106027880339186238537565310723188067501652698518204716689832893192319836041941963805067937418521829265605155707615368806618868386805892571933265549931435352151867456519038455078230766029651308551082524567506941399102901477008842940972882695656279068960725524816359691066032256725121784984010720564852540902376908066859219893411516648299763679930676002156371544934226420554043231305865496254821355588923484377751934635967556170305585911091679199498546513536810048354087964906885433626277397013361471501239898472882592578844220730928735739672720448474576118762436749863459479078999795960071740156656520242148876380149571699550333908304273878166366359300965520260181874254955303330252236703164343420248579308023411095882540263430290528569840555561565410146193346148603689088509265749261253127703746492946160200469665328503464331326487404763648945131422845008870103004017552935270728923304384767509715124958317070136656244412678949773172836921875819000628253601936122224695292979504729204086206492813508449916803559719391971310854380744553221729010507312186045957088117101444625699255513367590562556083625393068368491095331108664994335280993493179209853289897668301402524721957012469951007708776900037608746971785918197649732680160864516600782780804327931069164876403593423249172448985883026500032948647070588708811588342270647483226250670915054840787306208019935897332683342924003818884012585986369592541671331964386163193519550483516143355069954383301037143182328254555779241511981769267869676882226973239131156631867314649839553162913789383235426606525419948213828059866867639915433645098853081021981686654551228190473167681637218699320069011457280369076822966080394139668844747047721167226728180257160527596085053509580956028619074793749190287654294468675668711982217978677462391446089803072061432401283691727840606917130241067386645641221632918546122981640647786354147125901762465258400368139387646846572201318667629852644667752687165932254213795685095306424935144774294345349959494461830179929803296894290545829914107312873430707803987231634493317746812032309551057037532575292559654430077767114863614333573397712607520334895890962090425210774914722289504003128390676232520813701153909027297747319091671893648572355529518798229087706072878850572329139480019907408036146483884455466814685564253888275123524217499763936745966255662536744845582038276987061916648767952804679579329614047782791544657550357864254807910130930752979675421886680470274101151421309899768509068065292849042764247063161626372253258832696426047294530859242455130740083137401346181191213747190590240442120734598177874422956618189325664460259928732410877702430840093829012865225213719290841781077906111798388797452987839705288767392596712872150896537806362101542828908189090773867589184988399867785536942941202005864175446161292833903127223800993397010471225439269766427444471483505065212432690650128065303639952600932145542988125121480161147663880528847685048425146751724507237806859028484684791558545984117645583033905467604871123278023676024328759225649305385034813043599179772430970011599704624314252720591577616120353047628158532717035141578726091512063621138199422505432662234873487359626947490066711155780039477706946132197166442888719271044389782740431687912188651685102284596328770949546102477376592432870843696997595544384855465332013915855170149648199654866252570738384817940077598607889630387249458763307440773032269578030913809182027757176064208824107499784948971970921233004190343962200292667974603367763225026776404567012036133876146253041771136878681650100637165123043920190855491167630486100942427554347438899822862210930024290113103363771746669041327713830208983859688038550013540004454036788166033135657442016153981516505675807318264935875579956067914811823059928706114869208800638303034653797710756135548402746735593057150394696946303941482577019811919055525735679358477636050715607322756460734811039219532938358113867231771362087946055650058528384048705276780695981846840845375524182923790673937739326767559237575274186971735451773685556951010388393320367664075363146671054886860183431563804795607795836704077002939389719683814875601864049624178371001322432860101699612443762317819322972035931540042164779217267277392589094019653793043411959172292784892518399886959504547101826976764840271301953300659298989942179645483513486291296080741183708132929096391646791938894061015992707393521434194250064697401542924808820607010771363787641840305492084796597733778216115546215729350274685712787653760438642351253731265569804353359457019607122620005796133228880046609048049875038352441000327696702387046655827213568939896068103052307969505384007219372364679917131692327463521567751716287418059482815799173934582441586229880814048106132955130452752399348304903740241783295695169937962211496676698665417537430309163668321062258538500120852339591501085074931173405168417167999499112832372250903659349542404438297696470640727853090011599832573845075379010991371467899530200576456427650635193904212784573102530078486180533683696774748656801854304153202943126979185753366737553887921940514156046686831517202758771097656747867019747597257478972519923005435950575960186950724711708161723904649003617418169367561030578096743241133761860809732213325607247521685585228162178898534866275632125523092130654520152805580919553020404736001967621615879543169964373286238477036700149130664565659980215728908839758459031362575163242208922761495341079424706558984015641067981640521643275060043874490155991501319386636121538601305600896526541748680215260528118244760564814467144623644403836613693953975008416020898484649523428376340329801835983715606906038590968652351702062384998553882222554391772025857007092267807602366917087546374267050537037250593539391230222382119206954939699709200520405678143253222478251732691637763023355305530442657967496484612573504545801742427411330817889391218573334098723714162349517926949311696309304037765264232849120877781414540685850807454741306409340633597231411864690823892337402608498385614592437073903678336438289635052391942974935340071844301447878330274952221111615900499009399825010633371452451029677547867717034588568988195524818859077951218687964639373937502323799162901873836393831196342462292992565989482920943389704120351330609640995317135255110226427963535150266278781016895623451470823291650847796152636705490225201316490548878151597539926578684485350371244315163361366813960664843588654027484633344680160966367973358237065973484459210214824082319686282347786997788491812721755021462047260041780694974696143942528584247548470897039281745257762071229295041990046264363177462869153538378761465996344248581000126231667735369675676958298784034678836134630727010421214887471743299891427905755434067471773503303119334860159398382986185112323268849303457227507755621591647818704268151403117578059163590480807218591398135082696716687121197890983075752634069211839943985345826298262386016823358967427591771808455697402655435045425001533918987978530074625547521041243655283617198236803274194191958954176929326202448848484372662212987509614648903506001121662860139838773926062305646570381279021615658689006519655096871343581434429308655719202029993158206433706174550014034492735294415503962771552330159633123625052778010150692851019182418416261382301404766493293515187994227891684185603110298293932615672174818490232558835085059945949112997917785911551292777891517847615747163900386110936768269904933093409857243256013268076086388020828991503862030481342037791534355649876289458659797710984976741341058990280596885407003842635623389222432345171178312370067345880857205153567574353220549301794963531103154815681236478329165071477379805159790233917798100718810531038362530304554165345683802792886242938238995655386365362140330303668807238250071703784240964465268117617014716859444266189886365570822584839961561374250071178517311485488754580631750809556212987776298653285460473471633296136529012348495543496084662897572477790623668267889919302808219731149809891914958071647455114332749735865748102792073147608932663602724843052852579050779594501207506340320142929614213221232993899330845765358410447127675060310289705261272306897199471439255783363856517258786820204616470039097529146920132028652331339482668627649735427373078964495994067252889249895696337754958049119010171062663279056801796286968735711349756801310095347427924575319007254967241159491561030854975852921325145845002979904161402225548233394839959545948987412538360912405953888329711705780015310280746188351395795254549013010623297218473351875970312058162435955221552820504319881707872934875397259194438422489971763961529851651115537485683322154617674587774464742080636965295216825993212346277255950181889216126401853803531446224421963677227712750941629321546903820417062213949805263941651973767549031391425996865406153077041105261494390168765142420274426385324287291517895514448563494956435683386432420210525317392541858838289963689169656145720832647897284050825923118353515531792406418926604652199866730869412165003202822961926429367246773093675434832543294491001108336782525788601802909244147640433554253140757432977734183412192486844542017557498182924557199507953163354199254491700422288521257901936504078261397520622939880521650097651480266319248493913437421346335629798643980836277489859104899110176644666450288580866318732953861492819719862366373948237754258992536790440325533875446974376730145504140359987273591351722020157117539659516151770798705149305155792537121822392775372321088170467852819295066102765966761414243256904977888433665815784815634606211286645550910550973641558511927818275800406575489571274254079194637868178280379062817447852421159788270281418832187084662085108452990467218286936379742126695824143360828592353419410883803531931056356081354763605798551229037817438908754916022447966092760007762639278796635055714658734746246064545582882097169302376640272068522936106097762298273787284868449051871000497579062084437545228749687773408388738366719241109880677464102132706624643834356174330398353297965615268601255598939968575434936010834452224496244134130832937805130304398125339595575339728898734086381271820002502835499573649900787829200016202829805023637737900563442981542297400053631830661789708495568292146538236113237997309091762398722049985744627012376814365179335165858783986741203352798967980824057909243175090765983485724066732779972311726127616303245426178843064330949896920569820205934990469254490471461627102892875441177964690170902306806273979401737186004151603839269557573328091381193777708510682492309219203925931290549882494453322724617383933366947758992029489366058257799134036999527761416388029415904613166383129417310013681273483774264241803489833911029432826300058908185872541216526447735349269454527183413268869105048573883314798046950720517547721851510693487564146604400474502070873818346546368950373709353541954281779962601141721073965273665234136676455356895260113165999775064332993952693894394872515253553034915339627632238090782849311228823950811480830923450184903032542618340617392130834488619734791826704852878442018555035085927536881963746317161843210174474962734252051580775677463740026526885151561347666891641930638693699183348229847799664349480962409382426942405191725111456742418986172473065286676338028819547968485108118053563911806554730931738174911580543709932688342344269401750936877035101941101893009546665316335392753130345025893722226775818692302510118658305317352304875847469689938614258484178411083982745511639001567509602797125674213284842284206739013513682960905088393300607755597708112799845280175116072833239509997550119514625684537972340941901105890732582002330436111166802040377876145421987559046325591277705078327820558557087325888410411845150249463262615853210734271523869254015367305827553510990567398528239662366573865955268825612736095492019080193138969800589814723866369924645099838642766429466859007788550612602012741791106760179468510126625179682066657351549647986532041014227416407568192204794627913391631545543845649925229228847125868581830943939732187666560348679238798940182094756038427646943210809664156489532374469606297089516256399534533273939369922249055594716255271657642018676604068128807217541340090767194422803218870301363463300806932151144354320487891307372052430340963144583312583273610102156272047617736667657491348051109221129919697588624935140620067381059055692201108018741113768453739591778027969316441779465910102559649684506260275871282470808351867165623443265152819156322020685340214159020024241617680525664929979171332269295371618776296325238155628750707172470992227511998454864596860011236635587622158621561405804005186899892443344689383521459855255622335700156836527120717014594721196213784704276400621829971166473441247380121153211339646208537043927992562115892483834691541543697068893218475696863950200370441247531964302297584806982667778066916846761703083712503494235438084995015692274711682608338855716711500865322432912570535778680448710552590806236253995681704163175226736805017785243152953953941756033933103069713965619679319704768558863459492842532270449205530593630509532769507658403487023874342134382681383398098736114944836997110722057204047918067233514901828982220633893259759680710460547266005248430047778716301823758775401639889452085341528033299370141714252815020985464565522715954508538311557001751316212040910495504046236765137319060487959217011605347329321436574018277261622549127673755934261206444231233325083573787613564315298355680476630602359041136503378330304008656629311851221253086132459230735881822632130884299152606244369762208803521601236052593045127403221763348218270508378171444942452137129469868664915065456061469378688007067037669272495124880993268617198974119671582641340895136372155308739159081337732957915034347225280787840099728168510454723775983672317239579370581955820679900412291901910118237404902577895519315612954277328052767440560127802746054110000806042328271256126477423611636475180224777570571070916996666400438425593254525654552885865117768074958733263828598560080217581845058488021779868379508240784316739982447979210671647939651424433956542896904843201739903797660421498220454492536176979143790963311042723804073891529598343684563717693139855194556917197003482930111146865530349752898709303084431773796043240297051458975187048890354736937198553883854350149311716672463124250238556929368827965453816035005842642883729993177246682753491244106989139618798308589121947471801478433465245570222033239713084418513370540726299839493650374462036783908456089022804248082993301845375514443536588097614214298562810480781530241659133416408092550037505804617547482549118734621834466681932943428163735498922505556019397857173481216104330618436630680816569638710385966450665769670366678162179748999171995957687671634373707288253182239911734375730573288003831773363910620726263394338641144954679792343507623983533433224396307069334775252626850561882385930058705839783437384298166844606359083868983247679720786002281696529478836804909823219203009920146329462533386430030039189593706846646222392522200748819693477101922176209215371470189750964032725936889161751161625306008252103733315366135991091476501016183590089474399948846842133772744537616817453501053183906060448274310270312756567194538264748281051798127705143307422677966699015402681110437596240903040504568779828447327648402887589583653031499453604463010224637106780433226100416153006804277075600979066591796306901382600649762945717366535029500220024335712524403523183382361728403718999708615700885224682652725227600270131063688506188163296766260014753393043431553474782902113906777967084445420290482174307537999484015915683035931734281875092412877509968528490321037963805923522478975379762641339911139693587341614116961399410960964407540445060645018558887105717839275424577490806955885594620159966400190864577407878757679623111168152117068016785772064319931345057300067428334812277815080219889207464124949667078055205082602225422603225676052353026359722125338056178502971778637830183655063529564832091425642675840545178912572074516122418214989041439276502688913819356789651675204310478760522128502225859082148535094964208872583240036458222645606263210871127045390746600466946278307681279022318617032771308772335674128736866286548421653278809611915060448612955944227401546237888279110454452840926483344289390486346846628843226968920594361783872172878821314938341027904050654664778367814978858239595017340388123953096802976785612339420495704264890245367846468176857107870629564742762216030022496198348053539148833393248195077550823617219574404806337216455761635888838327170571699519830538421323651123183066117089484196066106576530552473676587712809459096493829564125236130678570246573924558800696494184779819695740726627185142110242740542516229192494021475760538961421189952943556318102395881013242541983836177133672453350550537639750408899132550478524155411157974528301661326750498508976895191412307438584041969191117646558561942334475301543582534114930141787150654178500551613004936157749037797862490670961138236495592193957599951016365696899232862202202621727927637861641713799525708213018108643868745392294450897222157097382406457890276878094442747931138678309729362993899485131940555390403620471316232296559345636777436140081431056587284888066668557025852446634005304041512923905346749629778045587118978037559242557984226033096867930652339303469171788481652371961364321152219970430096879577178177213857707789592387090867832074237307920145993392763669853692456997067595093821048552467398304379745279057357020758313748070599499979815509534743094801412655749755153098913577455888416236536573647686595030689320570604248999457672182466329794995836155348019649053612066047021059706015669918431839537294348118685413373726370268422290522390428212802091127482608690861079662417289557923016085350568940449628074487683226508284896348777885121907959104083116667207932532320912884356822241508490411340600252875548520110976150117301125415643607980162638703142347985829461665050642033206113400420910013107345952705974534771958454068542385336109898170735475261472546135170849254160521775142624726787840768771113617027567085960800402028639443493346520032795212996505240685830358163058985139519485736962246636861976228652737699062879668524475863261575399165128824796695827169929653372456881604595702450762563575662397797953808764161316254546653060810901370545086449504831966955661073576306860406312829849428727036075934837868392341632902889912038506017708756082777520218241460871244839729098872259648108447332701388893415701759905470267454762241852172519774177883015288449943486323573358580954385002973408167158426430285240600252581893512702990494871863400321475735292735568163028465080019191652118123008292132893449869638093795116297324166480056254422988582387780699624144652309424650354762079403763522627659361729037313762918846206603264161276751916190267290839681847329041077320522993991016102664056523596994455314449824300710607073694773687662962859857164200294641218514795350214772011274584318347445107866000644718661086900202882574160017827384214153296148251930553773976654557319766283153914829504873654546596363673803188120977154085814924214707985617555304985912267082850982099374671029372721450064858708893825251177589362795083578429208625291847209819960315736198864513028744290135436229613090675400829142425026443126129495423388648785599922561107683888950833293604496897314327521958093100682692368917403005279318175642336009172045040893218599700375169517942894199582018407530777860946094862544494500331286130448746384222244294745915447030696896156976714310517555583038362558411099067329552494926261745486771931476398778864600658632415815355871025503512865942248101088445653860973953562422787847314246525180320778498568831808063173535381762368159340185972584353038176966664656399962464145169204219992255369120385686891124119052330267935757932728968085071470281212063770835763748391212601974336438453169219149911105832644370725853213389076435738583263157389460034551408825256663057453831519351457045970264299496022419683336526262576202372204429054480537292010296347621533484212419150903194494906119782309467644109326837297415569623244350160236528661661030613071402688509548433597125787652117111010385126709377814760934294545035808528449682914647048198476737636545040672551027104063204100821257157280987258381231888802271002925062686922118383225540304247947911243874192474435933503569729363267559694100376526129690233476329129723852563958381520711977026710093173232169444641907927289782763359145654806837069303392120479242094127655506565874215024739224781787158366337033001216611295530611079399439814849929298970226341665530178618891165523796809295068417648661024367972057047361594817204550708502486423878066326808341671727969887819883758644561152681374136801188678755151596581579162674333558914251254785126425329673082842428561150380329614772560905504645075847685308581867405176511531262424034560489351524630277061300775006525423195563823097936543915468140802922027155895020512151503293849489063496744778385848736748413866371157320737305012113895585298176325638822901337541041728112466532896143523544131000106232063261162930392125960713766313261016509635556232293806746801998584113191614651791101527345835932523042694081259351214092577820873788096403608163652707123661470762353640140339081364778156294279258589561110214838409151150573097779386751451623036793136315619252977966661799365786376125891186416369452305222906039300975094602493779954724869855031352300396050529179673494412831384020592841018612360542331962557771371446085404872192458235486775656144305264868967030062143121340586841169144383736299801817755355157981859989061198566627334070001917999534877907850095431740746318487044049078631425447707854979476124744968766443257872660038689899721941572426035952905002991227744964025143582566822091101909197943234575416654838674973421974546406803924378727982449386285969002834024250053487751200421928296594743904328300140073254339915210069613395188823887048542982593927667432527656819673450911740237262408812520804582656429638618995099427698439283445234412183180920252292558761103096358589694577516101942739895751359967863763143292903436182522042613382789057467210941247574568427495124211615389910064435764774551689822828519326253027707027277298039316086902164776535059767582050759999007984585774501779234025970567811391887424028657126947514734554699332870779557301934192056635867754262181675997314301517412743719055948240108439034214183770084281496947130250569207862454477130302691832102503646369717729804878606552488584022755025282161504132831777232541265389594844046623843674292896370964846142531456392471632964436841699487148550726757938283920799805934945355255627589717880650617806214686765890601012859264114426651605936912620350252396925531217487572704568751236995190724391863978466514550913685815837819722843712563229716919170025181665340749445673885499470351256421459929736044097557364239549189990240305572762846220857639615950514422578132510548315865089718130355739001581514826206699693708481052488461267300904968596062113151694499419066836786817230002814819270960083564833955713565255293059546783800946713869314022182647287809353346924168386260509157589083921831051159016356875398906547914267530258272414076069289705329199919841862410876365459455988485435235935436446020647828180677755940152129133631777720443845435094634425297688482555644898468176479445839436965176901146967044563092603646888173102487518830996743408030475955265813476543666014416608153537852607212841578941416380631835653613436327213695323760378046750354802291935241337242382344932526980908816163992602619452953561301041316750789791043729004728925538098496678208833431495550732450282884059693724106686459257078402088007649571760111329754060902321986026768797935188752986125830697377819242498163561282576232344661900263151383515220034779768617059728759831042696752168481564853091966940198855216632673016529469507677700624755030352332311453625781026294440036397373583928326629979603175110814320497253487388641656075085751534226750324082870270834590744830805123067680631212357084349518714992534377495867320967265786360138870873881833005205521905380344744466126622905430745078369471413892065588043205515751201480564187689780227679932122404307240398623254347809362315919558353274906711943754993920541043404977889584523468890827757917777538338060468671471334255525263562933658072442707707566785925753630965051607751299800138450582157704922907255237606101498340354121181928073698154371033065759603791404130428173936914171044195571452360369689445257620717250807900464117205810901189868595868376030159458165417141064517836999267614483862207548212719498075833390535777454882294257671038866514062144280131112789231178927730515227538310373570038470814883158275485867844173046013241345317690662438122989150053489647262980235355558907444893875670735798430614125137376789364793236679936429596222768568500885620655166958549084851586797061376979737258288537969626873165557690996852307844124910634370964807177555747733983909010624645259994109915641360382891955166879291996797940574447799381385988240595722669632864777142732949519664184764248105610163838543327499211940876095906820062058199701218415762856728696462310992449445145514384534782098629155579700540446504497967265682251167615823373875871130671991696195826703282272175659380645612847971669374445983205947826614787798826092617476049974342927112804026203561251148426702515298460108205147202145213978216874189232684791246615850089715963614417964962400824205100442489116407758167376548516994994622444501132824027965476312097943645053055691203511422884823117072990381154691804849821351847681539079698355409129622967564028745598233757787945211637076579041662106284987183031288193696768837772171332070907938157294791634584509839007618156288049423905524406527036138207741601502910869287869677080856923373203052931196022981571732278402374077718143275822684525984776820379841446384509521424244751957518207343130881935774023253446571567676258495197345810180410502643906069589075751512009043720251827013079446139270557078666948342600164804074528316037475476214869869647122572454742530096501376064097849878174384321190000508613927967750192050561239130147952117428518766429268597362940868453053829115669994460380106759333845637043524336278724304935348726558498714972444680421880403751198257416787416890008408191266049131983853034651766523531705343096273177254301742262703766563119033437934431097286437478698662916550486074804215003751835317741473441428911495630356467946812112830379192169227070816852325447751949424063311739043461247625535878506535502127196883680315229328187816908518319770917606152633302517823879363042266747274286797471196828945440191334768970248036728532706539264942849753381492313534689771179505518310374429029142174546737412969997253444662855349609449903737555874655485654769497471085029113398185198074744512648844072762302408502158524759759782646322149873849911111465916108105952004735650675571686451365158087807618158267300674450694809187552730515970830321071764827472531120935970169552310084353183269304162794338516916304507934840117937944202127509094015189888292488706007472350302333650481253582385703354593221519858641521584625581165047815627213441676446310875411009376178261550194618279809259921480094367861351336213615317996043699821010043522130442400480637247305837419757151655480820425027416241936145346504944104089484886387077926117510725889101824272331198945838366161684109867181477570872738732978153954914469646600930731417631388049238079197285962156900233799009747731203108583635438330542044179286887129646903571383340324030311840731727132212944315134490750567343778089641925352088445246011159150574056583108978332038782585091190882444157568263473642711664227333224608711676736932492023788005442944859347463953650753898902193696912799020646540968780545800185802361777920871828963477230730488107190719305026379406553910376646097969843489986535027450095160256865529298648256143014285106237839510032209418607476289473948846866441188756844064858854216773629097980092251381727526097322400100249566996881061897125315303859537621067058686146736434344817967943402869372056484746244768558428438847067943225656766800682454063962985229119774153675082095226605957376458439332961026837894040834382614972750543445353978087552929526138134405382329740131651876139985273906697043093490431406296813719526750624081716873073611159015966871238284772151435305732604315396684830078822031177610711087799244903480975105454225533747623539243893298844165078711017081708603217403281015377438029994980012552884336592161352607080671499972174553232614453073562584713656130126836506107013277376930287909437694084901219903943900543426968643592573718606673677773828746060919793054947248267183152621016977014097079293954743996187683357926368655963500392984127695189653075739137316406881113727130420163063622017544595534061547642125547851345612661154897175299503907110582552920275458128049069876604910793585357572655811978242700072228001881062634848573660273046377578825443368039947418465587433874636891459933412611467007983168424553701593597349601805770773175540644834830119957690000316427009346401897424535481228686733891965927902561255341728334044693274475122841482594747159186972109123818181320878751052271077121452734498317725523594033050726534676984999906866127206145954936015589464666808481444764372485546026934578248538582239258241969872455342871616132129348711222092342416652381778104395747793211595394189639853919623990324856900551249148339811041297806573627024913322441982830222983494827396377014789217175914346100929792450809235971717919442663004307436277633215400417743613696591222073902035331677941304152782394881485316751778103704579251399672202234458876876337211984502508095148635281627447124388377681931828091497375816565850499939536702303147631916495219067670818209448220171020998509616453468725382139514668918174624094625595909213911925886603515936592319985659974974045321543722327435971636617420101666839057856050241462579095492294685298500685276930323436631688300273649176613740896120985402453864206157386848788879041274392415598042628138006002014062507478305610827635029229073522978997889647203788338600593586168197902896113082114206394380231908243772156793382797818197808614308154131595454046149164876744859136467443965833904833704010052137582837872122192709824431380986496665976293153089670350772523264825725521228631421658145314277056314868063562221322735994171783488919860093827935309117146041614994423277998314784740801293657912048412540199305065227215736990696784345407243039804791058364019466048916930676304668693986593512365633963372796875763544719643724733291788258023138710589657127651350441422216151578558637525048776975879193196334055353787244106991135383199832283079700404649587599226977512298421458032393613724741307797310139682787107825020591938962632560952000520161368288794890921399579514651490506577822517098557675674608929705251822092032484154565312210088038981381164725664773909499972369502902835618371651414910391441838867588218578715364560370455471258706383633575301371298874834898714559315902137786152847824858072590675605024719985259712220885081207360123832223434302806610185431976769699383138709692738781902210150843421654374005255167778360935014746022227567764213993767601890414120328956367251686012459504029302219511997316515897371514145866397858694230583888556319371979712199359817795243924706935534547115746691907757169303796783468917103794866807647682436705541033871159421500380710698796650734217225413422333942338223120759265313334722695489486989004388268927058910467105113176244090489689824465182642601588577078208202365913426788387330464610451209840015161048987541807164030224325743866282581167488536675782953546741871429343086342308003892256626192982059289365250485016161034130851461618495893053027727931853924121765875777512542802007780961382459288944768833946130225477794660373448591781936675590428261038144660975245297693067659749454449958754671258316982672882388240752256868716658459186692005344654369354503249347158107814630187814285751391327347579221371724115494667455499307690482513758281308899545345841074687895987106448744658205659676373335963629967039742830879927566515855998436472534541313976953309552665456445068796760807347709668305102106074343139934824076285189175354855456941149687855032037577568992256496967144597314851872715652317078498946585473450726413397521400164409164901250344172055528512120012246039445237648331446206103400538750202007078311011452396603619118249241563834854475088611780335368147501855108171163677160734537664313763102965576436940392282375407467891682308834523411089925964459993886434213752561651485612321530744817624580773476099127262263838054982272715490823561659624262732523415745887810363914627188334040623108548041804614911546737425831015373047820716066732736109939319047684584216348532659127329263865472558478401398342913727328765594595577046424342056324494420854037338762602916589931759127998860617502819331201874249891292356690478555215111072609386440191680832225554044727712311522854108391151720529354374730631940557677236198118561913865636929087022314348220142049769329402747474009158232162501689220602521239763225898027148693885737692770922275948000274915204444584079836395936313200030930214777993450628688989107628867433099168532875273138455990157968995458541048812069169938006366873818309328326875746050023364420972113578089807507700672280122816831105479080402102002703160197447011957693105200013523965086638208924055010537675750820632363387445792494945264252711357711629928401428138596195077320011408664984620627546005676718660498436364980855250534854982005783497772474066427208521237044126441053141470167006902545127988958967274216980655163513484586453735771222935628592689689235502532922929287090275979469173667107066260578199074219533836967114368346331972082126175457973379839918910706296682758126129600462092950667957472106707119751814944740318999458692437672264798597962767776111248245851358681732024518093462224740254192900064620670140571505276312731156401979669256476926365928664398107890583328249124347348433157481564175438688269066630439941623549921081778936917303565087025928887935969925270264016925869609809867336652931444311693681400365788731062848438911189147402286529183662847716893712675245028488451766527176174129587750408370749403531176962507021145455427110805889684067814720535349357199407301512304920026154297756876453201172820286212376384251289065287603135669238084757908889942148487816553714474849356312477201881493713838418090747594300362705188771548865486275618007091295106432733827188908164954483224220161353439896885384449851685261711524426238145041216672511640444096061925051986670024104488084534909208786182036543641066668589270901019517135475253463610138155301454525339984272743158523635569220998067099689175559738920512653444147725664005198744649239373344031568468111937705419774197345307196711849616355647848881375143352410547917610810899259590251598681190423786473825649006339367043940435455371979286238199531875749388707613979051773421857594137435211159348647604711615438073555900176598467253065398630991840467033293223635283915426341160841913361407083941607409563015135097066506073013835319610190265365485358566144448972996687844511187613899867032511138259403389198915985264270999773282111632132083274439197075363736420499105646663059586947489269607664573737629935921285500546789945644672173672479518274906672329131874707464811986143840794411347634677247638530289295394133484272976107560926870226629207341352230865397568621360979220197515603773725240116680432834930060816986787241233931974259990983561545824353415380159123781887094580743351824204707421355345192071224896832940330733858439929743073131937351201732570976299043967307029322781710668622271160926183315527085457679735549611408897536892309715550720535488875058913374901726083888607668372248024224829647286978068404804963192527474321568565400029414755660752676533638098873962414766153505815222224069188076173400938578442152233012462907418659830231160191028163987925914812067162039663133191329002181213942854056014784859187523462714773340797332229367979288850377681684461532371382217156894858301628062029591783209840156907714290885229239205982758040621450902022042796272381901000160646820577246940182661602078866138591708476100287020871226367032779243065763194611621354078572203199953874432530010726879799712612115158804669950616800920250581556684347236556588437320612911821264315007008773295857101804275413884377668000493017017391848036283982000907155132759652837565907368620755431789782730084888298514923463237046841528133271449318883065003028163730711113836846024577351848637319916029054636622544162242286316492709182400593946477690367332429467188987649193685125053756859496599985477484401269078225134356315972862237818672648472675872864295707319330084756374141430501875312224040057581816506020917822024837599110095717345138391477493651086419270636678856947552740057155752921721994453682000481047263568323108901183611298893177861076489069927030438659942408869280997003934629492604076801560712107759633314028800753140675044729416278957533509851196408692041982036329986208642151171192930991098342026491489780400868779225457407677273970740775368234267602505991004572209842610998716498250478314116196232190126241259156634340580924587645059109141219098230688552784310395308937655706348476141316833991893405347154850344266970923243116186753054209585884755747963491202759347802063210906510238261721580644523169267630384867389435848242584165176714379267588939120622868299481479064099474946917791295964376705347670691951643466573675856969756504205076726729446217425744478278971805408720480130635737301660716929845734916796515797116280412615122008159177077272915765162670694999937739700468779267457807648394120350582778760722581611248037740998173388290193343121223648781274706362447410569469810622249590145309578638112670669354469056443670506667288195297961813231216445487515751419921103061611292484245416652351207949782050697132084203693846424706572882916692769836181709578347513847464370978612005049304198802246458147295675895070724236590809685428744306791598545641302236364893378075070618977924426024815287852915462530889800480709616160519704690706964972619019640293140819577215895682223894790423199082650622624541289615389046839418971434012009009344851236680693120582963485261427727212377996751603759212971475495942555366142248886748970762959792550059753306525590128822043791413732811901572139924749642359605330296613309476605161362154509960532729029607599942931999221336215997013478811389683796457084077081247302510966914068850626625164280612352116533446581271660425331599017666850722842143207891075331059313711906572960204391094622403447278797320022259697195146520952780664644063624402050919837379986875254546967628798468149058303253043401546103727649302958980276182957220802435129598856598234181244590292577714747957183497722964974161531297149216961660263346759080278363207896705873189415412545074115652848235946589016603318342102026727541659863274621925639989815417049010435699322371282757745861817412380175168887610534389929729851749214089795843738093435845520511121010936426330355094898945173984759668865912980924751224644414710587472834640369438551444358614442398457071480814733410893757332656224904202662125157922092896411861462606895439843047312084058837082490380070356553116797827212538121522816927301911155302984488556989992435814806473875233653553851824759281829044142640311870741587540014061316488847143847089364920026327735367201175646574081047187384573494593851681391042792700338898827153402009031438055060173479326875177947614939609517856520234664169505367719174527111585679312327110084877167805116889257771553690607906516219281688647119098937841595925166468361898344838196810852764668836737552823238086308959200582674046429874389146962828204267208383113484953222120783815139135576828003061021607362192962986197004396680385686929410343161851641506509972118904090797626660971800591698873419154288812644188057700255386239629173791769510443319895232069697494361137061070022985998514785456077750036567204130234870134760890094928035520000345318047738301998201750033567782938881104158348198223331124770673553702357303834258627267070030448542376055790603750566217304163349583239761574786033302605043770333739393231161680701058638563717123645288445051336074396847032126991422136199879655781200669291160719868383500481832973064637640610498556580793084623389052216637096883706109364683801398175617085559469365708395950297510849435708707555016832913718159545326192107429438455991496600205096300817645119908858025614849736054381953947984678504308077114101333980199767617370577406381462200621393387375599083691905364673904856576380952903211954905351940320007573499702963583054233555679512956549545581232450314924464614292064114954030103259946679020680834823092544407610500102917253986456357454781436360056589556990344388941253372272965784180515021110140538907123688838633923575239969410358621013385191286114283938267781051090402999286890756418802019220457024501624285633405541919441484645385772718052887774352948118795027305645504594611010871679989115127958959217500843848802172681708183513282362156215501904931199349640500084382798954776898590996894326172636086613769410550891379005272161993444906325445886214048194555255925384549886940118128069913332456553160176440884561785831738172516096474227855593963407809307076070426287623146456434021875930783347702734824076885449996060400255519634920644764268193081551238698683397542872045236476316412337689102813580404263291458840689380862844382055152000715732634930128027941446709601021865020547660492072016582516951242789770822555036853007417684439890847418707897080375282293984790277096072854703606069713002954165296970606793187638194739602599980911595021882817033497200760753557991513375351087212509238853093485450483385574398313620967477413001406506887874791801088300782034328176260755516447600827603491187891355324097550365498121852633151869095681900339058194591336853116713788630559626336305263333482419029540086260715812942129143012566447045904315353168376255746059548677338303702350004581340009685355238006433230250756286939984018748416184348251954822981653416060471142687594071813089872808342179873323698955606930001226009537663617788543447345189352047889584860347259122135124127011697065983330803826624786279087044490169593636932514941884574954182010580891387562759238529935342175433372665083319287553540938496028491857673057204274467158096064665453324300331871446854470844995631987298424487492598301456269885992746788297494338479433400527396979545662159996734582513099272246179416108286188468961125264557926483535798169031307795712291262483263119824836342000912434253186811414680683470153905987611074076940026060182256037411224544625143110408641205327092074271690393857597979729976563392351039779512114417815750343778364248804749123594752376255587151537025212372915725259095409448364684893978918811965015917562941530094507796079848309267709712628510538446169286058787903893115464897704246933270349579970292225873045006086065962271797575040073173710648562028816213238909093360937789634175714217557806330032951519698906204100618062576909554780545137594905159379788199341588098465831102418376140664146049826881791787043800832130829723769783052683941839112178373676261105410101983779548540593751743051755203685818009732268929009273785343486334517202144970290171595380325097231017328441001309800138502318405236281763144996685461910022903976626465871053614963152618089159946999310935021671156171895681018732682439501578897543517203882464701134043219562760004680684579161155879622268647102876788387797685592866262524410793157775549531157603015885713992183052582063889498193961119837592902609796439846694666274770862984528629105741766693735938717950334525545802400006054795486165579800100974993796190147252876877094811843504829440259024114945163466543794402742212150891809753042717897078724876684039149284264409529261400577106317148219452971239340606039280273065927765504096387804561514371801922491655467729784347893807692828641832488747428158771814737033777145518297244777554106757583587709880440729961889845688036458735334119940375360909495941665895483884495434178375143724082831910643794991798807656102083356967263947907795992689929986672286147896576235969686587106897443256309145686254332181649521671403929873406574484330178085258144472851351399192062283356098851787749506769655313402678336160132190588993861970712012853724653167839479608236541186762697168954226958647611265793394025837199677988213529577556918510316560916752053046672859041761630518458207211441186018028365552508552189666948142750867182594497464328016667423387066987797382368529759034350049174516033382671203463246150788764224866620554594561960931823434300997886017501700898603497581156516951637213564008507636204096083008380198205926901511335836830870548234839129340294007967257627575550403148203918688485881888828979158306886727778965976553687683857688660514034292477272830506429058405997389762450986350136113172531337727371224157974867091317089118075908017343618472987029539169116238222888477137754555477704674984380685987057700813397897276929640200252408142169809090534336510668858779367163642729401041088221180982618686441051859208373474681431523372920741955643615554251323579105625015341970405520734027984761055310381463231872862678279832290545764738706850743011694452711928786977969155449753593170113031839659259900836539134552218346836323827327572317449848707594751473706436873634911589459236234075936697609319933438823839280241284627597123720381689788726637794419230517440753407585208266794277344431539040891218864428483294754150235172038416225274580164642179559969312980407964597136570123059831258667826631596579298401238374097642259319276901018812352307523431697342760701817370249686557443100945571815589605227898009103184195593497641249183810336626319653011694873878888168207725598641064426183836221377807411371825455547987185647490153809056640282996102546228172151293610666026334613939431563183169717663362910662658031128248460609327360025663441023305199326044243334370508827354334719358193375634892189081099116392068566591557148011866014400661680564407968005049988240387455944187036807814317925588491216226455967285271806251422333625199615815858947768134015216727204463622949463618644243240567166092961674534536481257446896826581311871225985424216647510258039428350143730259652745747596957662373374929127468856923534852198377293776262063227731236219833449722844376821729387812139202993678192944222743730225226001098642938058798523303860140896525200447261810153215449416604303707619776359198484950191888633433053217362891818423865922723653580611436224354691935907671855752713509420839694099119336168295975234405500519801486655505733689193199100163708564295499161979875152742069446974891664532984510852063375580473377987856222464580238222200054779198026798149909753785577659933716261469155016998008764036551658500488470831738998473206623786330436561382079014257561668305809515069453257094891020256497509057968114689661508214057663340307605672854778334510300127781292300671067287194385888307720743746746285710269578685999079543949154105740305391599651842967014973440150789878971062438918104521964764820150592401080350704013475076032332273689761392113914643442345188831227731727766149455588740771453578172516528569859963474347835172833982737172846976334097758830181599619935021147596463190896432233235845837580458861907980394732220723106117518438606198451717382020048283539243111300830449423214216207931441050953396121898917166509038778379239269461334778190301959211307257275647924442186106289126249460277179233287608839063322147301454676430205160704666138641986227478359443969417229081000185427066318230167765998512509748574464223444034854591487914221166482161175684057121970112833339712330476144394466302663492843498828419342962741628719171599412608207735828976805673141392717555071724187638674243635375368504726359282827641251780061110721179250478950653405482012136383981170197917262918424544140923758531491142242737099154597020591690567290253769991140550912362849033763082303647673027139602455319032556933249437014291207878496651234269941552356601396576105682936105648406531548160124025607774648387162673863163203692595292896916810218299303044943842709018321309212802762135285693704587359214922667438223004412649142033512892229917351699144109804743873240189900381341751439416207744790132900852421924808828271066691190187125709497068454717412366624125895223261572256291975186169878424374679910850359792769083947752431544638974557568582865443379252255779420003672329585172666900954165246610921584515201807322863384812770440340573834392241261357693255522589112358210155458019701609186710496461646392876944996467013317435484897607536457231208015359573129631343054907246540594155993806520184695833807276545620468118403032858757146109382466394269322398367619500446278370083687596052107714384213434308942569570988536331802700636870322204433958629388306582457249185178794618487756735461873589076361302689920375822650562346104705375901495133211785143977800855213325405792342228012122634885434256001885526203211703114636216343583780520820972131119824678569731159389731153777959094111505872018750881300479383103976694398152083731402995164587916103193031637745741503578468654905814462332986032251644164322389540077938414926779606040982986905656178562921862480740232292929005264110963427216402650567562062566542528838322740188879936927948724573006560367599142876897137383280301957282830330752638854722422297597837225208307856584881006621287836568561804860442032151108729324659406368632286184111389559941897119547041981369535228646422869137305808086442018075564931481490776721749935020073815832763562438563481793324411119078785260654750458999058205419554161524490242564279460281250713904118409830345603323952465806188646791899563696335715593533389964033721117248135263245047170002449815995032957163396135672623959568640804340130580592871629853969757531983625907324546519074419927227896439362140691851682012743072249512094319015760478353029391749061736213616948694277625395825706983645937502728508788011102636486343215299860568938225162804424265539505235800824217221859793776464099435771227952722412452481400857785614318567625672739419179581053614110518576269214708578924545682382956970286424243511052684306130324116584272806496999100290015543219157439946187464721275900712639854779236466777308336298665645804002716694854156750711833495152672339198271032138552161666373000171487740755274050794806142818946077731665739861535094041727445623702131311216619303110077397365373362133053530358449557709090975041202342126718444015437464890404536165128369908664623354139352109453662845289105808964480190403762009602684671978431924574785501289560506961831441710231461713871353966603029499998069984657674828010795317479409948870672128049238294743692398724743015840134816087527144596673091044407554653170792164874473264673391331530907146436256784856577656379875182706897126654177821451661237463368163375956084103996768406867158393442406387027076223612843264847396607729436201407241211298186847226787895573387878442020216763344819926471805115519656554391887416393576098936557353079922249829138230331618929936412591187336835389920243564579785670761565557144596725824562472938294561482622337875853468127657730572660791410437501777914626883879117338270865910345612902757326733735793390865063357886153438581851416567362634653508507408392336181840047972184971319531556962165585215577066460739671243450191968411516838556869196997674007672644199012709412253589366545157122580461538298707116032211005668246572010684798608553164208391594770220206934434585131020343933793989687365522573403910506089337367440245198251363761995352744313380993247828646830973281390005442454015790078056459125520206215127827300146310480677155322542830142722829906377543817974328288635388513755145192988099873333010573823621432089030337824316615661417661012673987319410032916652393016611419201814007826425097735494528754014178477733075079128819851665484528765621025687309897502996985416020317300480722761535452906358089086653262945915280471701413582118861485429673562045939392791779271779150873128994234506793296805655123691205263596857059415765234972950603963950951847044594357079944060682337963940841284493310912015772281819106008713636339804380104811263741569615026075071614149299781113294144653847379078296633073312912315229731492192865687562445245110851959382349425230166155698729096351960758291397356852444869797522534162106196868378734149158504118888907436665266336378709820822141174312614860063468722057929968175483044550304921616534184894400892187005935033926533643639991274653389600662605678754506780973039571737473604108928521321351196246436059247239701561875000528494148305434432946652966348480263851998872810140935609321575548931853924989371550443584394965335915792734853154880480227540902367212686272679863961711998073646961324753060561829665518730856557512919021169947457325656573837022588086702272645513077968809408799194114831080451566457838674570276960794594590034773149064164181038766792113623701392600620268722966997111592846158405204727917640600277772459412450186581862861699104117763779555246915456120947214193276500595388541813137577316388635293866093886686463096705102623147852161721892838581369636393033134327102713310249114211386185649427465498751568435427529289117101932245216876319952302909466207239646924109121277090970605032499289822520144653313557807974769971602746674263421516099156473277894164291321534746069057836982167807371759678071523119560377729441589758475157002090766379922392527067020875672275485297306080270968770710921882593936118275150769933697031559680726208190719617863468677611899718004366895595062187063253098992013918170232020608997510417323966209170505255329860468925017440816560819558986218416443928943721334204129677128270144340960558882760779095768431633960521782297470863468602679157066242132121412333358325188703556926772377310364782456166155285999630422660074487578763394662589234693511299919183700788900883899925846260448559254159205277638152779290430092163948478900771060389913841583990282132113041847556682557851273315940337434595263649780801077121870908189524625959580020375629003879002833347457790109367399089533815776255023836188977041470853468834034608831536185430554956365783610411645205197216573550775814074795503739134636421729548766668386921097649405545839995748604389705233688489097852730248410799601844025526908430742218703770961957808905413409234203971012992658688997825776391868203866828850177970837792546025129045335403285811335879245913870676971778671958597568260384161161603241020500194590787207937904732634005602043020970754491742859790429984264740809322689451741472231967709688444322542793585160120173617837785066711045471929189996358463960532733958375171567774626051037602707884104953002859429734169399470496435018142016188746720180423935951395452480391918525391180209062015862236156758823549460656121625198508280889325164901731529594408526488809807495811860830924857166268266870843049975949069779534208702330515428275972132629540560719444792824314639681815599437386091054495707148050225140356380033461193757973658994184764280418097762966894676420059557621943203874160240709665312808698849131104301757076273280235266724344262495809598756148188509448680277890791229113721029519543551326539689313430079004351139593584969459194726878647359606621391894720755463983666054889691422789867938129683463696131311902710227718048407512984570790599038956442666247455935113849074804124698378283044254900644701416992369324257202178987809428632208728990930520192123803179840745738382042859595890107565190284486836731051308463019129796565628304722957368260995924612582013563535168891779032609831272884070993344202164106574580222385916915349876474802482012744307867305842626437490933264287890746524605500687539373332849208873853311022245625434315262453267374024668744581676007569170909393281478018309982464981247644984441686120463198278973271301319817094180213491832150520830555655387568549377857564798988437997410304817797387929766376127344236080622806425411280743343386790178853787031197618056620473648643895947810249848265596121950561546662898483688327980436220418714815239081184793848151900994834864288526714576457384609930654103654547010942929619159026840181374026791185529240502906265840181840998922205318162758041821400092576622952153632299930327061907390041069423296991687506406123162858113168332166891721509156276668997531475869113458010724578520996833682738493205538855530484612969154250706634078593820208731202915593697213943872719916777510259666318192362866234154300266864801737247866725835914174602975620927766360112799449050016175716401881471311518677545844041655184978602206955168537031486009695333300055127429109727813521029735853863403893605292744271862594497330163991525545620074329456778988571790218772896678971651010846339669491096446709481811323818481608507048447478043245798094228774671792637040922088297663691908810562068717038184154088985780103841183642391012403009521296234759988496949748929526071262095757448686669020593666597595533253301495642356114804526339148980024186458116166686093246525641268467120323766153503337569127166517064167208222928959195441815903033102148983912308113595683141658325812016571833849098051248030695531135305524640205198897489916334198858058142644158378895673301968466541165435611663767835058101216920250683627097951655998717486708223170700295487274350427500839277746974486751461905742610698015880381104051851201140590696774263641828062983307783126509639290910039789572101876879719938216457193324628838411677576332347813570367732196492557535586612766430199729944992532764055872435045719566186821611885683155206209357603581336085488873107188948825688906131470336446414272983895731788798376091315369982731978594303830040186159731386289212136712382052302680040090843862381082134348412509159905617320413017090576376275526576866392187953462128752248831616292084258664729225832109161172992828575722266931537826529657206872754237160261726105952603109495637796086736779464253805705820713906732269583746328281841580496445814417295978841256896870905147789286466723980317394687265620139388834697586704901947833651644657612243933825310703171842044475991519575530552981850672649396202229929853445289586515857741223578538346966821506682189664713014874143875848233705779336422569746945281189641522566314570606603434060141916289963732357398304409047478981793795672868840488065715351161355258929774115476876177880388491384557779970663390067834813391121347066832702854810230686857907668047964484368852311214074050607251565868242673572061124443948148128622574201067405109352680482919341857131524577412472168334118800825413370176540553003259961843172188988453741616390102081596966061528457014170266727016324010978209227111607464952212512736340235678320278052281500992940626688096707679215658050819319118868527584465908132083004270261745225216487430583905831014880633082198091295534421942669771096168603563101042736798830686358041418452443298817465127041083282094835201698360981030813716365676869565763263211378933908397237331788317733663001245604203703850789681746741611932839475925880039995901312456243946922190122463711444471589297967541146777190221483744434746517995282481610473740299010087742739773912453298006677391809570472898207591294537503888834410119455074018429027318494018864923961394368889212028716326047924033957948325674773061629171166431173803041723983815305582695415327028905385504975415559117025754752828654902700527061404836766233364484208756025594633092839792353750458281059595073250949016007639029257340954662054755570965671298554111397812975736092404387859779408073686067410956205796569692840314372489732593769743338125255119950465086164828570096483459313614474049372491273092642711253023663662211391487536366133962648539781102279407526154402497701574482635800786769221338906624949455860040512212923753123973162283586277710511449438304617121530856751926192804788598419159559098950677081843406413115578171440331591335316871860328715030078407861417786940766849512643300438287212810716633414071251241067147978678303595755305951501358171027963629839398112056671558998469514772564859142205146451880437758823806930649656984286300892800705418155433241031398826661153836026989296374088158806717189557252228921410049472682894468438618427690883056217467512602578797000058865583493704682643833723173580740425552278820738524088898458433271785097099092283621733683765479346600855600510414732858431092446858967087925527279531038483507849609224716373122035451273301908393346225991585619944719314935044806325851734397608092594608027178195093615903758245793707473336772734127161263435586975558433256065162059278597035299876322614578040279499729292155379099961343214738433515168125356983717172376312139208514404620090258811496076377755593990742260200048943358550144237828787117511505916033411368448959248257314813754917413036346015558755679564444813142584049070612413723032787406715614118760331467912246794721951780022789435344675359312820584990874903344274714393126459085218926584092636635267524899910262829486871439178103509739540168081136758808671330737122809886907677567819845952934490159955975705351191052165913679110289815866462034161218534943050846874926158331390144465440702534329312965910067168542268817661117639319356552098558075731594742205878985334565018901143054139068800920186554021953388485988971280785894446013040009816050777764972062564029256568176045926289904407351900422196496874003974858018469087194027089727999078875077347084442768592653559896311966545761977108075828801826512625146293694663773324730017958630993499882222091633474486784193380837627429831199460803391367704141926386083226739586202437891338879165307071629684262554099046776924798064097309335403690293456696923478752955576660811374232726710084048438667827663890073576288999633489647232378429993913550475393631074894367107246734190538829176376016202651306848181196894966881556587367341492076936256518585778523317259727524020910030559550540763727363755141965038365076150713967356547764051785391228461875283448905912573915289303556788394429015025781308591177862466386899028552864366156000421292424206817437359870618418000132076566928120257153294358101401183518936991368678106820948552737636031163979726777870299081400783129200843641406457734822846717726925221249116846096485269192193192224649760293670148693760016252988205615561672085500217141098595690444169344902369390564950778873317952927010541823964396966885111453948981894398756839184822858457604291158122992847572815533863572860887977341042767344646019980467846879053990280563746442457375548923257231851759140942013870743137253156476149851315018417314064167432683155568111110853123367953843968608735810658421939697499854957670643680178421978894429645665212039474810355124953975912128871203072571711056137690500186653468993336645012188870592266375443896607967587301600889144319741263354127526017627238727946544062268098195737689419021310968685714138105734989424199845062130326871560122199909490514934196585743545093330533280571412689434357130600454205950132309521365683430962393956339984705502491664831439513326533381291431525694380442986798082647253145257179826037333336537267757365979630700212108818287698846168818138139291372642935446776714952584230704963786174021822323981617626219611689444105883207732433989979528590963273332081771001719222599032393393400503249543385284004286497452738284922305974192421468389024935384202639198689685923890156702654404778398105113332048857780317033351485068070816951990830977252614543059363434691708927180083438106802458047545392260154706363527161616096665492419535868500654484483892481305384680614654618628513184633708966880638835332543769978116272783699302814230199883413777774381303312886834908768713395138591899837498740364106281293956034774917959387105569984358707822732311613865776902840775845160083056106486394675162023336918590659722251880853032175695780107967072897098435382987425805240627587327899238065723338719473266980084234491031484898206027541998055121001523599969244043969533542639718877102848916828779269756361249736920038956813152760699115519080137240572812592089256550916809028850884992433955106257865488454962827149363800775330653389409947617361006974193338005934169171477725286321066840010495199065544028972068246599499755615675420987777095781766240006127208266130862894646278215895512642840707302559076577197663493603762950364243300809531674504272965728744332758567711044308285894231037681453041714984730810286347476133982927494896923484501840971945907048480121532533912602612382090878056775810841242450145431221593185378053615193616126732518898885822271305544453313378403387705343257264165905330378047062025943647352489320122216692789007214796440550656047604288406425133155661920375384267038406257970043884530264449958285170320709612207933657172050976443884880099646453597903895459842541058978699755331996949558440290769224736890698424681872277404311744768378502372005596071857298810417050254490782186224404239124971833045080168791741488368120528617476135955069724634941750898662329747762503050323415399315159338067286999905436298988056880295976919136803483962658943749783873185194019144656936681193657208696916813735040448807187219830688366549252456514112808646568883640434365886506098639987102410759996916313081410204574883973182956988406203837435373904836746247496467396984909253110866511213953513240515699601543671946824159645092889077839472143661244097429500576484860645673211789802868631173532661640935507727255902524816872198084160981246135718383241828222911424087617978156449274900061666078507388994662875858636459682885224170749880769618946964948653694902889537090022838078674170091437136062151681542253754490297845438003765867680847054255993008690352684733362712668244183306342730065732692724939685574004655996210609981785044268151090176614686233139338052940502244579340712409639340519367536439141428394122081820963462514084384666108174821318587928180894586085597015290017696023516683949321617736100966061408523569664050640094839404513858654370223831555006581570917740729031108800159752683542688073603240188684181644339263271003171868576365350667155703562989574805548914891627418506098941078139304771598406155165894555648552802087821692970167471076607271350730826529708158580254378208417418132947391767190010856054719196167583254717565290688934984915206258477888899031049173065903277731883355736256431142785381263813101467293555557955791743618936888313939674933634834601998730721246018506400354701350023245434474356828867090078888769001607007750686349050915292275055955875683246489615705870311784013519344822844839112306622336602204240906346071880386541482870332973175168341374632877687049399911750464656595394021091520360782855994846174659798756803233733278031437775277856240580182371079543008745208869929110705484298796740041992604857751603379173879374514363028114389330059563937287222603142922343531880058300344555945353243922980665394546373390814747357965990810616939758718739278530606696971615399475794027773307473834347212389517756934845600267648115839908820167675388786837772206796424903916054447292924913918551482788822918038122380695193742431407741037612815165134827280579693935790778818427901701101837180651462145890040001363509396609111460189720658830503084386905117363429644911772044024919698460010164767908832398949737336953334834829364017344802094852917230335328644840514495428932393307644974479079923318971403752274837803954101998588380702341930577197930206703291170274997525433616288925646607996753307793662691989253276778222010184318542101013929686771652226150836615575404175027128872984972499805601524166510280503323466301260454033224681180099409816171247054797319531620563941525554568113771981774767441086584547257854101343989252637839165070097100564594708543823781892233389412628777156681315728361235347438035377483838708453392521916135027917000875929130612701243545947930120705434566070872629192702490481630332028804544353936490627666412971907775800367445909141856373938856224934963964322365939652240519858925628788774413161852562403401746333068595480321162429140677745956219245336256693540897598854543220772505023603171887005821203428416542997855575752695981251393330166768922316277255600178670724598139757993860153752679236541969029247237608224187702070353695218583147896123006207186921048046179360714045287702722705058015534748644819112589103277735422997934315265175019985098222223231283051997867162376042540311472651348827622494899548608140062776488053157784023830419914736013663088971190976071079135634437921984896481838932312239218845114529886119448056661241677077690517989515430614931546870450489152030486085180493677966540406930935364592299994324779083337211266328249525185038942215974090635735568733954084256593157129443538709233588118960365647240303986888207075598533984969012710197400090423554853460440477522021634776489777445980815753244131453027274283313134126801396883193839143444063239376420701562563847981854040516746929178265324982735857578840410475440738972631986942360369965666177279108762925022699440071774678183341331634766421593460241113414174511560668685632913177106856901608911194990973226185062452215306310584910983393484607224433805725524759336830684543300741452345860638632131365270152809218199621987264094790463010521887181666399670546749179549838620894872268859427924021723060229486408427118581429711239824927179986188363692651335009440125676979651768016582003634979141447737169541411376899556553792731014200656942591902002801613973777261025316567382662727231302957277634762236711801616855234897322992897130265842071834538493964293389886676712640268295926315095850071964285614154151060639242589886535689474935290986795998112304986044317698716665393873156939873653285595763822045925514016874983729099738935781920385025030064178003835249181297568283145748440252493523306227300714836269073428526691644028330898475151654552210329659299019472045302163762227087686910981300404377147231863333082439467697958155132674866452384902057452910788880673221312489170804740650270479192921620938496531688765718993866860299109761002356026058725213860184270822621977507739579869045529589165740373246257384474567647380239157104671412384355310233568259138463678571162986453671286197241122547086252694304581300045132526970713128096958910646201616069798587507489841463830012972295124638721227798238130786548361492319007028998275356331003027003239218838695437045338242686569544794374729918059744916610806730661093934633773424250563366547107389314445542741990647779213147525954526575106871309875792181529941140036626518999407089296965660734733449262451494714616437431603714372656535697966742745527273595310065082989809559544545512217213489174658744276420639423886782458662131179580084424699177498433326533282175921885915141251884314390897514412697323860012615720215050707120686932336392505846323062443736291968007056473683922449355351312551076676786086969906003566027234550014749982281545778830200042966397359768096534213515135393256327939323351472216932078869939501418226194544956719342436376001422997465682593131409973208257241578304138420977087594524014756948010440593459396877466110673340867636066559950395898846438662177844653860734602856867679313829103060033776746309565850355398946112913890846922488393260001967319150801031329259172590648469023737423946914021457871427921480958401719210355535454024191448567162083465733070186959945679904830444063579796629976032209093254806738083103121481265283133497410366849816612213361111823755886019304743656105636880705115982943394393660397457209859567227163818238697807455427056512764982957932567095688988901680818788395261849005202879068182517399244382998310369556871017573365342267122608101037197180832912571501286710620920961593477385775878961404676812495709956444531275193680880621037458784830715062943365061882693960806782502318709260462599283806888291010684657035336202355604072862525995434037620164630033194381384694843388123870611921337939766175263395596030397782779868272470208331422663114963153700326160797673009828157199606406059232170687993866356662092149586100422928290621262289316886450554558503715241749478535106261135469326807003318522318654880452679658545104413014085638223722628275913473057650367870327537420163976093460564006557623417102758367660377924273817698869895864939901722211744526961966034401679305045674361569704376936537305251894430306206246178825086924540711879715514775039442682722286868555810794898140561176122548004293383162425665844975774190805763930000101823785474301942361664303769927486287448790424280452445145397748339357876189996434349419638411336082588928195608238620630351432570439554994318856621172670448346379736684948179402584059380263653887549275704303372003408577451025017749959629395181054868170534038183034173740520290000900968322775963358616080105224945769173552202482717325458963273147105545931689530161921740373381170705879237953532601873438874811018677034074834361100224650104279299366011078690124966341907755628071971869180733289531422006010681049120684857022205381927876554605003628347522216667993208749730494451320895330017000526487279611844153823009478388845647214487248697041563086405304547578047738421366426276348128237170033849952381690484844682068661979289900886800189278056386922780313095113800185909198009836724243616235646771987803016199863188920517700985794929470730874256397580308794048611183858193308576657038531177081719628482845981002356700550906429317135990335776245989547222955071607459755441753968148462836214760779032282549127453432878126814755412605604171537334741495897721333225825244067634535926889313518469418845318438509691539375953371943568253564249906104274432725430447901900411249116636260271278983369246892851556871605245147319732248212612022096837157878621994004107158351939155425343859807348843332010346765165131406730462235647531265398545718434301497895490738137816077328557756715213166763882048074366984345729888501644327369399273572161183627293874822673681606246334939368490988058395937919445708174804799660921917509505170751667751044805632201804445007917035750465163828373391298760249462963518470861674081730566706486503550916021007598368885388734437246960835448224944025017781713752670052145208225552712565908225669410451713413422194982501822008154566243102350628744661228384169363143846837787786375709921978843199496996104628398606693362302493755486070382842811676484740373245727999406889560040187365980931648700188289987795152353954577589201162837471501064398387762220600505719810208322013704800312168159579704066306034107017378977344735001380826564191030094214468160312037556293778740776867761486734363863982995386856488227839682561815061886997078491753758423559500704650437779490589562326094969486200948462509087624798349408046055465054726311758655506578644610689617058543019173939543985693813209028084363197587716211823543359463713617381615496331860282328890347496122514347577540329370962266735374350050618681306633612520131726135555027603402487762913238990072326256687008695481695260728196296421527183074463139196232842636269586179220588934589402900014686245727645437040778568061367628882921632509403158490768030096799230173176792170703104828054668278257310722741006398202041513643034863389512217992382013193032499639555366274532548456372627110264919780938714720165935498291135552747865896295898827200084718692387384228310397888282972633952652868022672593813179521394725799007530056819252094379507018579536464584041524060835270698947409804799562239106259314549747693103259779871872541722091857386373051784721409315488592706891897514067240692221532618946262579502747162479909812982614390740877297469497674947813275756520653910285602029996647196519101129806528353036675950175109918675272408640805454054241167389683476805753317666210132548472601418719080286374341692514947049664365411812543324210867545554797451684886890883195113359897647538781683680232612325928692223176624860709391537906238881825116984293673709259510501903919456080386656839803416142860548083604322216925428960752355560857168888487503150880745262862213503684623252159829262747069134305059583024495173218899547520376974960015574761668968989530459426356693707094636051903185043106256854947142124467230910796760180383670082658975876345008971713455494300952613351334352034191646185623765199347600182735899261953676745178038990963982780585871203755724265785934790223241229659675473534291952963891618784783712044942142610727513484094936096172323285655427304949234897546548564850645274731874621369816937802177334403192812562154337242357625178882822793136615386701498392147110460776141989362371933547890790303669996069124289231266632379653599210958102004868825603499117350414722793700542972095452577085619660578451829403089555146552260622627935971073596891692796816411640924659495263401613159734660132949555538084558295538264277803781066894795824478405597970974614471680854762348891627718293843936653453655853283499663775829193352577176018873430383575603400246408392510366846654199627251670894168947437477190756007693076353155316502310960503681350064572423995229306402246983184578059981856801700074239111624862773531840285779534304456995955070240099776908527672275223083355315116914880721486409127051251195869325909485083411051902428329630751507021325566018620227320125798460614804451839346780731330993738687196593320772842514779000032558206428451584641452305397527978491009321667541987156026149418247462449897325900660657899325587903882707882993258196688955521340303679939392787590094465266674256305010630893039201122159980397511222754475243583423690592885551957270569222375745316803824901221900143925464207462572642064879945034688061511644813062487196004700013312151777847424788341581805456221423788346203326772075423222184108429263900178542559983036911270149740876485005777455358307876796144316216555295739332321452013824144523209556790545743993873628063169699503234650513633566540628285926849903146356006847467908805506998019168578077674672988303589467976787487535747825505360635921230966547713978158409819377881882724816581993589092850863094917843543961088887330164393214480282543400330293406369898424710253803751597481623267152004660559372947704391362562388149942727430442925034137110842002258873334684867463979299435409338567678933776213633724385730125216154622178448891397525218591504405636968403582474043578337744318417414081847963467904835192487629938277478901589195957697677935427012485721318608339514082511333217518745332458933677279760930261567679900023788850965860443875090987489888424614212763082948809025737487905020461945512860106432142813238992095859160634690412082971311769031905588660389556623316029855596640957250285739145957784149687407236037490134752997379557113400922567281830320901389994837036477704351081776677376963600914085567261752911769648539104940464497435408906063758809199147711747699404177622381187315968965199823845754399542177847442714942383571305969086123812704020574289678264757341793739927184380868385442024620665523903385476664053323073313825925741046906618975889985090838006530087431792625079594883586001625974020789279410901084086351083764139889932970366987415119078948407912762931992837790657491719582232303907295854493415108305981924497744986791661885386491105202382152591097099167187344955401669132456201978063657388152316246236436740363737172930552016103384062845347717357424893675787055632315257004016394680589532817596322767823002962930089386208770924651861912168975721396613151323106314945807159220712880310867376167179337890164867351932080546950922471541490044557349001805661741490604317890211135129686950805377361242851083831582385661836725618611304418327685141348984532537392267631100681818308565089304784551978840960819508781493809279784705495523679702992978783982235353195469002658710305955315156699069994182923881043008645330173071260903136581279456289215357836851209082542896224807425920134489698768496269396100394545889906044725509937924796163992449896691406224660216764543330516806490757573954681606862903299800002202038664624284149473324014482374323276874616480949943308744979926352878905244539253593831452901595207533029889270298693396748673117234881629602824533598572383099008676138060398322150345926261789915494107171377250914223574944758085550544692103793731526591811899042638648692843122442767593590328457540080886608809692461671196761461970322942018662518580949227477075286431346967775641528881015514709725063256430359161871960981184232836672300801012978249885348821468167603655626268003525837537563857979315420350541082530682737101717890612151297636000352634009217237449789128993656860832298659154437656313001421127319582713865921373603104574690735291879023063563554397892577741648675758975317690685742871062738401432598164505150665922400891477207991458708566850766504683269184902616047453148380551559081741961033198679149279556185570471364949705813378225113747567121395131086911951989544347557579034663918083431900649704471805911787370194761537879520703409910484230576530361118722836755441899901722595027341161952842361789794562371213000657744528594506159646807896094009815810443078696869567954357953753876454899815167307133980430168371172077887034498455224570147892164110037970304708507371987729028631811867347204855718255888949605536174075245219894024913274569085383947451700510030330313199257973770631029926465295649812009550532497217122885812847239418897538183455891966341311184750642176369612475808001446142101965867526695176380813510192556010259277128745321356076914475054541462680976900480928960089423320314747330560151191123587499798778408860677564422127426585922716436610691985613697118137601786080596453353623551704296837663375283471021578815073269139042681878079698162609665647635657184637457265955546107832698438138952525972110803229902918179888776652247804169611314266101429291038917586530452229860921712357206274773986401663702884274170456014359489767052733741551062140832629220909538586870463083504636086898517690370821478546126667838701459732340627275456988630329503149185121275845219408821022363677013914438036296069084126966226798123378023034866597584067454456944557355926824160569216979867093566112261339091402748518491278733454849518530651942532740024441660814334866745044699556115119969079911192306681860785106638002042527357682939514174041591979865725412383650714284973029706133928015166008987977932674502510574559392317395230387135070546011636317115241195413695631611456365158820549050702475874485048290896440557701293834055134960086084378698558214198062855058363304076355143894401543014856764102488824354350945453338102751694234140651195323020052542169605363444947700661638152996701813211000511967370317622585802310382014510597253353244187788584089239697533592510543753734655536190403139323719191292556976004459674866955191843455384786985400492212190719944527112664750766207125143764781506396965002803956693763202008609069246722604785061589538499511573503927824453200163270307606370554781246666157398799507816654916632662814092104913355794998995409906886714138230956808443722462702514797108713368028324428970135966660070804845006564600053891083785460324216860830101199518131601367300740476973573616776089883705990620592185354287673887802752144143527634534728270916872121444295304687461822569807636387539544966965434210482961274458972519424519764153779880223932507242710556084272519505671619045826539414910601279976449823249016155256887266767683213351126158625661233654283260293910704421239379273221865180328533061636019262950348269756864256301447375398372537506770871393144915109794110618185511235994821263408918504543149899357025592987153491490499719412243000482053406912668779922984100657716155162881917015125224971125256234488830605604548351530964478616309358186570947566217753846089221361488239531608206215564005432211980107081321395590752391635381290899038994745692664424390016408500241266218723324351648341092520111305940780995991979028534426805879192318177221034314435934437377094907394937335032311842901406564559169953620520224727588032005168213358770657096190313799319365772120262727314996688832832300788434976802444526934068027617674172330507851756530244154350396799351267937812334252857702277650503157918817169414685963205719107884585559508878343918853192501855387826684556488425398232586153763989993440603507688719345482800267388299530875975329450054601611697970020912836277325044715024934027207192645138646686025856229785166526778184961715452796701962730602737513427996974647418171276653307122089635778439103217009921972172799316550311203909069095310559939826894629077858246220853095165228520590177651168734880138727425945966129966118456965782042089353775751315207474392301049806018295509427804930008658291066578788016881412969149351612095760870735292275289691165015987597419137311788690728276563181842993349035375226715681226064708949564398305713747489811330980685777487123648434072574498232088128515768616541161889379199901472578359387037184952982171667205726044335740031131086359987512715598725515037958948916038571973410871483501643810951934677586130563072229746719050727902753212433669335628410588657487491431915744562304821073803813341808102547355319105014537076830542996926281297784397597744944821789867763337459129027528857710094226717033084906529947906446717781900811424331770900510701821249217433443866861786344864169002264903410949443062170132156126637984353212197063173586930327888760746368852432466619082317826152808210913175996434374833801026179552094243986333366424143271338872986703387888959234340747847504031806634355343781094701184491186215087217734058242447338545049233017308784636960428371217593715083760805161947427970138803355074844735235199993319503694820320848515428684766994411326853986553874148826225855828218289443879426440097446335156638087244424512847384824076334216471603305821744392545983390220298123376553925666850318047869087046191296446343403990448901803805571586200966486076285688210993307249242731079640537900927589246841982550584648914314441754737295596560529584942077162140199447885641089569118498924137596626885701588244793677509199833012704495316166336086100150830099152763952380600832936455940110617210029399562575194325782522562577132201994913438800525800146982554365764900893316379742938083931046378251751864285743538235830629135963863429156331708176577152699093328872357404336593824768826417193413588165014681638430523099108395207694498769455472626826957460806406739121653553331984940504569083778480389986273344285719633856511385691076569522311419639767935039781276424084634604253128744168740307678138495131266454494275779472812541854289621026486351537378821545373572038997329645954917258549497350659718028232388536223099238139387433445750006058619272006758053377377903005511032591162698651433983888896058249159257947807878446314233793738382438088342637187961416102136017082844512103195907552414069958198156990579523776049556281467522168796895176295370470734557476048299474243587018655453454494908110682632666572944762864505626609380638112409010637261947967030770172151681410725378661847559326744639545346877501913382612005193633177708352747396539774305805302792436671834731437696642117547941578434960730276480129400979204706639921771127304622008693219023345705491130511726395753506524105268743193217248933444579007820904472871930277829938144631104788079349447798102619095051048831896627629328325621381560704798726941902765785267330975350278020416390420992299727715889952726283374474785037745895858610564355907210303519207358027555280406971172131539207031496636155870432613528549005473447535382499152992591950185986220287331545578705159800839052237305883503127351465791537412092841800062957824396224312140253136003252118146545770769234493921085182389671258308121434030068701401037574537961020732256392361830561943321852930517064014959809123576366645022150131961248817749576205156763074725086858700517269355079306866395644549795651544472720954753245087516639885972018497606084819853571634387859131538119205317907963572801793252336773130020330601845100499796364198063937507692915907042276967738388544089208158861323575622636686486575056502201626801090933514245496291798854976742377027504671849601616895417527761988217367527188220390543678767245597030973852435078861442202452645240864544506418870042507851525822088014635611840618773258897268310624371815882093355348259282606884343275526188333904051199125027788473143036458261119858674119285798950516053123496934893278639229054607250418677940757584345943776351413701162397453646533466707687942875867567180602831222685739105429028398783104628194228554851089980584962147035873512160841182523094319024819653890423486213556615746216511350086535459454725917214898223542223921119551886944573321712828365047327581028503798730658454289085245299472549437110591521296075128598951901010378204483897766103929823551878609102436533401782722190097948705932160888133246289501187304479802757203058161324926523278464240375278419491014075311826222856312301026971362480645136277956090386447263190606558955085250534015539373081256433417398401189330026632997701094140246964627472775952640388109852694617889411173263689926140675428484996120624391091497368611240688178896189809040765888012406713081636647452807050048284996716242896920690129235396908921997302823087755451675442607679862805414181193335786728018594470964956266708874370362361625247645619061295716875089373995623609070770714764439464972844803825532733642432097681449719855985839530966571405885200183951006597092855561520808864494521164370736603069655546232107231132174588135653059116005386771262026162277590553630164786729899650001323955352209142688823457148268530764567663281409314572985432098477510459557496273078649470091125599421390939563595534925647069234644590993630719282406830176397622152524089312434285490814438357827986163454621149425107246051400147362396212024171445630307950729439508647081275462219974976883399105330826387348256622618828715575210132442435575861984740745178361418883775133945898940119105020531443293890530288556517202269800180664257300760967993907338886401539274422844620264624135251446335259876958045921959614807187850502578829227439477651888860384662664898043625672369138017266848250406171776374750191177868015265024829678802800960829188292671020622005996026822923018276749163700237603170970840057047085870671135237964866933640767396670710464470366538772185898203230791106928732989863382591883004854282701583098343679408177256107153786357663088231029540349152598908195617273467220265117109219170657439135853322291059231467261131807159278641600554533297256925666485117695695692629156534099776101253754483161546569351057040586722004259400805409534583349776322812279148070089931735476084603725956555048698233016661208888734899354855244542635585452079105688114740329716620180806930000793561885248767940433917408782967428652227696393307995110690824639017999684402234539875160750998187746588594895967897351406698927872655869582479054737430975142219762280911720758750996310804761995342684601854458084973031932199628293147971409872332663773640691116629152688574904312718115122833276437754686742650946915630770387196136830889169898203727140032200657207929800010657045258358434650902756638668234454727317164265691637939691243944594443885925151274633016802792697026658272850456428074943866343715347811968474517920471466052764654428605820118389397859952202852517625544726753569153880431362370258052893357311653782206883524091964013117049257293083067382507487305767587839499866481218579596421575383438500917017051213600612073164117638046645233249218729073127883227839088628095819873084600664397911601086848496560045171628458224403560727393800956991545494510349344749336522531305721562814527861095123273397292969194424452452224216733872603186037833945242258773757462218909661522157792426366373670659111305832354650374914024284803268949690483346497587134764683594535048830631018745799777136286188475727041067614299805370370407071738031815528091323638457744940820229278156437986984126650307222355756647121379320178374842675512413966029475073225125648335549421080672265550441179189294701267622231169678403627582046775897400763717369530180209076344347720511864800912335235032186641006127882651044002081122299197099408138789767608172633560950069303864625018440346133373262842679005284728681133280279698528434877400414346930348559028898850194104724845469444326649899057725371978732796219398003179520531724086747940549131225715884096483349853828576002522889870947745252694957872918910258392613979497450786812387840900405032777753270052359612946806957677224665415157546346587961606947240410658168557115051898018383061869742041975916847460956351609337636741723692905536719932467797279211515329703790920982290863089799269336941235753121910517288090614860709380514927965981921852373772903468457520304153664780060264477487222222180514829017976721515156465716197707303991552002492997824973141596934295906617643857192454088735348056827911266487627343292293994053736171070006392116784932802832769636611255417680406313497227731335817390541993561476059076670599374585769942408582707138930707075492137691809332427889574852873065536960107799883705437760640304187943658840718591148874258341799167380306498219444028888152630686698021887072819728765912811066357779597162563567592902019493737315236094351307283214436078426186597927907670953013523341257565020643186968442949809277664705780156698094616108606413027638150040349647695814538374101696561386702910460489766890428010313402595684836391604845523693254846452564939068195783387413527320920376405827047654910544089313756601276339022279327812044076494708700102262961414088657185324689410351488453256721130536098144906077018568359940463890973679557616035204687540067294085907771339165441875852302619225277480165577965691884545841809747523072631521021439356846516894804880842310697597306089929456913603419856799459522108665337108894900322681188691587466056249839110609315336044097940096394230540786003306019132288997870782612822899077434413664270194641149099771683144521120171422751047815414126067729757523647101667738442246653335561230697971244353414273797284360951173439545853936146733293321339711295670556308946618442077661603082561560266174666312459484195718089018934376800875146633109084797205535198950072587758700466492799972849884052684344231099208123822725903844602442336307490265522268879762150993695021457510593814401654123290557749955947919318223069264498376648351613141938822564220250879395890444842068499653841331723625851449453546762767473256766393117982445560748217612206512295246455411323781444102644510077155723314271104041104926619663529480605514742712139961303306671630533039229616470387467171494316724231655153010054060013577385529395326901702247183118516990090135061897938020379584904960692645438803406231725910971795430659720237469222418254315295235040693998292653880986217855477875227402160109092732960861642443836033872789806301418619232166821390508628902177866768142076470796546535437921494902279015105134640639930328220560052121407197181439818929849034202002818739879085392008449770683353309860129574437829705842848179607763478427135501505681764981561808585157384876489859407228302578146751776086892808611553671890438803426356457339170193654150916433683754208460284904303604780077262621758181384808109878792669065301395218264562740688835880894013010753801464288642800323021642827714802916274070194621510655837643383904377027383246686880200547157472422735878176312424219130628776206819448519870813759516206113953378183578670551652630034800231896868541944897801746829426579972112396762858297543595945125589542886668800561566039575161847508744771949856790390028115407986465817612697929426888406757376550309497559400652112061572839057985520635026210258156389165548185149088395936395559471683027912250673363828188292882304081061087653803226949243293873214218383867988564615152818898771149386285817552094193944761605324029899500426793059525041944368013149181496074088614593420052411801658795102875363635261734056241774190914975247137523229137680556702004585487397962500847210262759410351046339429873178126903251365049431822216315749099404728086017884282505937800182571869209636084237331229419767137737256276370130179143489363201996154917900869634297415525386253250973334637877555841729888393618617304675945345886088058175154900744464220631527615600522089463893212319197129061310812351915200560206053821876808091500378224362909265004750778619040605751230279364502808814221499949192322395219724088361522579763465973834766853776171053597903909676220431255325350420131165671357532024712643625520509198657230948447203517598086622432982057857292452479799224912182217035912527342530742172089591569740632990933618976019247581847654697986110396497497791201021451062972111357229118801691319394173004961682279178502625679607209026334200491234642351010461252702912113464180285001977614291317730646171364965210233309102078527723026161160296250076050251046911102877397650650238557315526836996535977753070965719496022776597921171115431392506183122334228394080542814933992877083318119115084247950003329055536703147269838313439677052705160793680985298418176031243608746450518005695347882725953412634065174732707827592238625858685830997405622872626431072896257220292042007076088970664726523185872700190365425729918930893358853389221186409362716744978452454343697737604787774297235724168231687430229828031045140263779757244354263223997319910873771338397111356476172293624156395801757030501648309911544643508388957365336384971900693708498353838857090332172884900437282077042545576244863678422468204471666618736531870599683089149675967549538619520390574775592773202256937046485752519799476393829331035029485627345824296760208036959011350120964528162743642817100729042954164344709191199142853931567301369189163434114536278709190273668792618499582456077065718719231719974014302338728778576947418816942880808976087245930916628641796772794631505385879138662816711630239065249120552887643839022633398021665308403566525072776993361777488482844893857319668412481858529543693671575645037282339964502632432911497196684465521677560704935879385237834197832501438337890774776231502402642972205752185332519409637109746641129775701803041862413258740873862662325152671747722978093170698856705749927771030464383877639381532065200360127643265073158035891429869054441101275882209357803997666304311276704090161341842473772017759836920386236221874490101054602928632089699588092509015386946466341868735833673067636152381013512654400388140685910883337463027978872350483185575932273668507469306379176944758700910407166464929947275304138926724993818101219342480079422356144740831703801763598861204105925552560541913838747771483238353092593964979484241567125949226613941041063531117246841167841961402591125321878689459978603013213449323946194027540941236228145185658216179842577349227525082459478324517484434941876265637167308799554547547513061679048398448408920531270011729831707151577771450182250802873935969936286991855708380068969522762217248090477279900368706227288263258129728195056277942662376581606034671474774357865959504264931334982818640608352873825557296024804895130421264429885354451592724179738037169743406739327016108224359055701660799650826180281616603406926019101935140132815788607933216600246290309143760983273559806808331777538932999576183707480855188681764242205556123654519012336133170380819418460215260226700928961986009480089452464231421862782705798501847760854833106601690864797394043520138484668108308017606495625980071485966712892454278085979679649225385609064173165318983902403829870095371130841272393470792555342711951693791156985786389838304637700708917332529787753631126826931942936208525343854314528317977829821304379721555451839141732158923900527568423846505680495415931196381765633033228712852326848017408595196334790264092866685316650697200508836004950893929843412333370968102892029608502578761852786493718939651958467317059392822237228442965531735395573487686915267509669103109411128660516405371164095390018389739017495187596300989624732946508544536218227876324371043375886637304198531005734056630484623182259730968475611513982431082207619095430347057639099898678629131065656490934068784591527305563437532773825515742310693585080168253290419093464194478273193103649258630657982457198034647626682544531121117521150526497123718080079724121608780076851431347963814618570424551690849237023110006122159491705390860113616314441293008795615744720085732721216740253097819694202236703631250380606748388598404716780740731852270121263367727721044524942330786539623542341737342950243059856789631659805320951554588083919335947327814920561020458837866352976267495485202913640068741149032849902372346748348343706933763672805751724266929530570923837477600363182472291274128349861029700204376670504187578649402631422430863884713990726781897712801422365995592304305003953141999652114455153257391874787115233231296480951013885968699200765153594505017216377294033061594197169365724454459496619066677205550363916184928077256632014016979160120163835117737920569713703585889613019338926007329776076310016516083148256977818534281710704373408679312704130921925801751566887567448986252115430575106934184666538306756658849888268439541878494011353685220802151030509774692879367593516245077438058021771489437563854889477026019398078124997549992889976383758440126845300553786056290101459808022890003996241895704975946330322425113296732445220292897790515409371313766794250792329673408367654283329853350723811724206416374430839226389364873249343285597908881132425786193683053641783473161290147916600984939827239553634178451261546818827312392302532995827892411124662763412963687366066817859157508253104177749370141319005543645159160018997135427291453611259149087321099224030310270804838791633618470216875782130519168316836218331950762144296800530669502836110702647622413209816870231095907680561829932713145475259955711640454141138780424373152516524272593898619380205553682079847030617736232790749928390079033002352872805982328580344904556550288682128985150420560503141636523627728422875126923340728833459468474018230627894691432662625255795207098346293851701599025308817907765240566036111232854627914519800513299226707176787625146781672948054238835472174479584353236088833267926486299636092781981459056777933329636737622145858868974788566026162236805468627690773538017103013074536391350694713550550645521469055764370948204888839559783450119062403275785799934328535310173418980054901643867107018479891881345965070116793274972238448132899204526167662136992363487876440265543234491448859444379101146784199323314049774786066965131156868154785477780671245281640374002488438610591224030851847956502796363237305994848189011704322766899760958419734947731599914157775491923412062178935930034855398414195715787137072114921675745453030617594546839004847842225882101192339262165562678158085707226535621938049117447204722822652076760627876810908484397466503074134266341836405928811727629999138496133236319922230785585411343438160602323869475534593970237453000688639674757472617300087584075717247798772054361495735023914506459583508483455824850603411429855741561545065055586068374529996194669857995979848077939318440834921733497725155109393574945041060222960315318910824781237408950686202571827445339995362662010868991660739499614312907848854706253459132558773738168608146539723482123021766873409203389437600023092252892746652205568037092333981450238208813952629974542288749650971208692451258669466122732818455885443161754192681539559316868846327647289667057904181527029206668320520959503817829070154340429245526465693921828537139049440036485213199394876219605919599118084790763119898016832570253389949580998434785867971415537926485608598796025317426641023691357718648292526500823114070748325842520455979601083570631717980824617766022909164617815062684259552590951184434323847194591988948642820788359862942311961271889612021720739779499425847438468025488088607553294479069057745645204904664774479060549081280058292341329013141574313225408406771073264042786505425894702903168511113439671899229568355582610658519948461660147600976091333459600831233094346318353972118045074313235015141593212518104921928713184191656411530220851615889421427256499400568862470237162271015381990832031385916200864226131564443610930185106473119824265239354413053127295026593590233273239673222535270557088619845977427461437922836402311899001840938326915875481025409073970564007748453110008461417283201928471695410899717684741462902905172858267891148588598198854236663257053143039070136487275732587222402592759816466466586598728392565141771297648037099872207233606250755889333565389196697646130574675935341397386850024359537574791796496365694673047817332480515108700021452291689787482216908970005123983887874235383211766286656218668059337868185783860945073904965261280361198235847828121735079743025720174489114096008221576432714190664911045922102837924078515997467154170550293717571581348583432151794823739247858007868005820447812272436573729017537606501165286848732848111898287179449435126068455905207899051671029433446928203749806786370198630952706565611641750619766450228777512304941564161608970975196217532993621857995941910259146966208939662858752631798061902331713087539829737543168511467015984077457262447812379208033175604351953857257994499261862035417859508575056144450201020192125058803393394493483976734881566567369676449750133360641422749591356257816926089273895363811957169671291438816753935122276878938238001976263419245724623333235106798250298362842405819042869005149668566981385993746070439187493064674121113055033593513840953443166272780895488968332358831802641495297849183383376994654946215354066861204369730798194662943797507333260178354109020450768197929880039792049741984736194579609442584646651081068984290475293030805067677012953530369725312295327988433185116612248022525645511947141797268268328027255227124309922683649564301975860729805958443258635748885316787385268155659197142814806425527633248890298471486215081150365843140224774697095487419731002409752267968037653738592434176675601569335263035375793854145389232737956235347308397013174542617350976518344031905236757842304634539833990726650806720206444668663884770918169135936854400981236958430726902200271006405912162611273883207599647901793599114706384759470762245729198062944217927721569214865882670940815000962229057997582860650781936860496571026580189975560100895078184907848633860136750683580676159862034868857845298919959277642155041203544972960775898021505981134054644084301948112370156239725682374309513382147385156558260875286608649238223963971466582006021350274854760736912204773033361995923401381597895726554866047984017063239393068238522804131232421858851646797894065604224617605544014817462174659692741752018233666391223363134905714166279799535272601830823238035701435229204962856056409486786884722341987046341181480948714408728907734280280897715478969260939655751932311900591183806469623882183699956715521310029038733412482671838292379902044825900981967713946558767571641810170490878205276307828691615848370841190338847164271603256363306545570557192672757879445027107932350700611307154005996675192067389839066988589041725129953935386163506932492234473879381009861462465847708373321930161068149408840991325516654082120597077961350383178551704577144711452608994224865951967503404297981046733601655837214874317556007662511954457313486127402369035219610834912890441701985821159203335045561644066143403516239047441338037687966361447703260168880534169581947261712363133886773989810789430895356650915230350562286498621617679470889300514767483562975976534448498341106400703259756604356699644059113326269059282177621435191350186202844827413925366949277103181503378870575827548417800695232823898520654463185840402710011403130379678757244976956223476028213969124322806890805671223237227152017667216747439441702790539892797843427345944591921663080641003296636741729049057543503298935628017961980954078860960619378292150954469077479254677371136974178896403257807072151674180249537174207917199178006608130956417147280524838322159465784648400000498008386852816640367446022902577497219964565789462925732092676709629327481219489141623356531161387242666153210103273012955760197232802752373183629574721895632776092558949081570798071797068783303119331974059383344104628941942597491887673067755326767590060079068002692524592384304228758213522047796886801583930213028333752801123026451217104842124117744966568852699229428750939637774741109868746750388332177541949127434960367945995565683225765510450331895943168907072639150931379713665962344805151853132574477451512163649419366851810413411915890394420683364408759148071550985051130139871048412242752825134682645507416423305205287429774823146599308406689581697646647311635043631170766887294877489533911040373767533396176945982788212509238974357563439267393135549212018963027629846460542836383649218615791284218221356650652825204420653733546347026396630303497294928965486493641931319152108406990216914716273523690594569152601090479077170095882857219723541211746033676533982027260628565598501772304123865113677376655752000990460204200473139828748015732770384311093871395050011550054817810789280301469257685485638536382874549169987673201202839386607752222918395892492047691678296491206756416859570595039724936383527119722509802358275921099943401229278825893688503584379576699728362995891244639143995254641365614942188933786460581163339185550756877639885035724778633504946352740527736760958128569596357179033033075741405261978643535621501117355928922413835550523939671646429923551440243117838727659881526796155555826370949615752363546889179674547332430138235257396905534166378407235476332844749459289706149137446727204705018528498503279052485117017423405943990231133707900577370262068453997196802404984203765369792179973729157150449361328229165000440763787410629762121470610490587039255423771902189166475166356970687142025758470055174291100541000210331474763108627236510625416118519425391250694546429671534201074610946383442195443868156834389092068082758682439389563575859782346301600154196913241451293569619363810490166149199198263536223856315452230621859658586858492981637659896657504785041042113104729249753547614207525566822373142577412836232313013455185943853314346528381435803228210797849912837988255003557859580364325191894215720888944642284119930555906246877065709795755773630110985678639483987726124247114600424774440417254330668128913004980246876746544677849993484212012121439565851457714822251953707029586122043888486540853867218970620638474821408123576379100614479837689139642864238796853035146771942417119332721446803111416779204353552289973104085173422564287630918954308489756871984119055039768914193121783328261649288336400385096020253375198147522259716179901948506752822492325889659100263110095471185090520555625787589485889692245209351247771690703838367110187530580521050698541781945350505583721395518828365548812718743915231323421931896339884942779259048032709616486009878262685135871706464285868559236635609717526203607850248186722289902144847642511305904840814947258159200218599894172121463618119063010290338166252576260200182796297696424119727047880221868481515448554476143089572240321220271642187068482454757284010755657967356646216942305156868653072536517398503849060961209800128401679292925508069312770949752828093265076512467805675206928715582795523720150493668814117322953609632051145644076962162532864623625065909157339550699037583894832149298703809314649388998641536730695500379311591971426867192989429074690379124350532093838549366503556479007155181230563536118694773471080002169876592220497842816246975795604669587722990402605482393232895595157549674785243728211239539665136825966472444534705300423024373488288355284993346526918137015469331131818119784270005031274216664247444158426658823009003165201692304633279546445961764194684993704551164746572283917257581154613086746792037994407416689409619912646350769708542984953559504282912768528407129011578154657274472156586586935445091583714094031310030339124877772392130411925003918001258357449549317481641833376228431634876632348577803777677611641037654573934498059652272546958159531700274669689324336542677086979654291135593810566189241633164837373322532597029398570333555388819590634716404410917780715913762178148623708123679083215078175556547059787649364151616521371185890087104699819604788789634809064999809083905326945119165484993462807927614532430029803884014532744927512964986914811610500783722940432003536178859538805743159722204582434870011519797575280087770383342060618799300610361229094019227155107030021145220328662606835307312127011277205345745654120379049690495608855354915291419325257706379287058395405702905387452748078484981238093033354570881219350478226978030957563931219750969212774882919051251696488115897676549537344761711188396260566484574330529100335259107021114518214864113143192497814469204751118975317396558286889535589756109977606503219532844764301494894490686074162336126113284159447821823557293634488927461051047800837139695812818615600363434596115216791254569110736566630681511630138452090672813184492952119944502995236254819661834574352174212331790846463534859228700422023963094030981795245463880747804826477201395532794789942364207938165869061105326977035161905616950777041538855382253653589706137165083964841493753363740027007120467560451801228924245219803469275736091939328461999822176486403918953891572113712066674875281309413515233579088997109685068469936319397507626927907791448834900562420674703173455184372364973666979450400828803895390094564598471294064045069402817458475561237077528979906231877465968414414358371785207393085145058593617481677895330480904127279523069198759785757724434701809260658570332475383711291274539061480968383679986535727323574062385175478367712512334877497331122562615736789585687474158764046994017890555136023833117958083227967420396253217708061384674261614406641040482223797296304339234428121230289974061046898099454385590809974593868316682009341764798681840151340547886869126056432176358166511795981688549959594205802297130666025878778543244933004312032238566831596087669818273480467970983200699708880948545196586494782410365865767842667870106017237132753630407585128105616445798078303508607323192390111926930315724451740347528922670394823494215717131806490710528201556142947201033426830796130701532484783365863759174247526322574704279029475581346930753812019022622394404093562533249284466003529517349241585313670838265175067381496867761894127565567371749516523855830369902361173327486409419386578706301756560990914426368710618943434863854011499863360664383685325472068519513006320885964212233382602592439268354242499348685695827356143605726334608240532348063535188156246639686319676633177083272213378483660423589437704738962734503996090203654165468157442019144379003510663384345518649219092457833783801638820762710254334795282837383701173407761805548533838509593821208939303566065337361469014914831512713574463742243448776099288185972483309739301600076397020436049032734044220777671869568658826609819831757767194977284828658758185959104698635646478102470904637139148094267780226632033308016287439273235829884854918446537850407231019978579431459459413831304835305639423548847975303602981633856689620378395022354362580594344256815307708603274325786323630084618443425820696765186588190827709281762415467903569329587503238024838844288342724518217507415977105048060640671490447692187069747256004352310592392641884593175482806940615534476416855989471892427015903589103069074279798615054298921429588579345759647453428258076849027252144736240436829951096712026751044046614691929182609321077432214988143176567899537502681566550095168795506394982777006240096905156898946648498395443369595480537447879523925608314891676030421232706345387461845494765908885910804707171460886587246866070921484861287343574520838284015465985716397831803192449095503780422786038182591584040768179549951155376777821713792619744633869524829353476832882734777987645764587237123773220681958411852037014374461325109612039949018356672261152517935517072431258099385533650768160144569075419988028332935427441684775326423704854337167891543844591466769577283289795991811331865523362447024616053148232958131194638430671368749311060565640181232484869964506602312117679362556021731776703117650649704279821644385671908497151205109884180006992693653327099403502061509896799815878612215850768674158320312081222977864726293561937172056619412838359114232302420493468408498006552750315053296900329649277360996434684652415458113327113239729774235878304107975183381266509418802617218559924492958573224353550827415259272960995916660819652017616430721858582093887107569316619620887438553519278444128409529148972323887709220384630629065739504720427103250369512025497208038303106707145190045595944555609175554795692016272328849048701471352670434835186964849346487398144316192257961599229712638807078261476696199314136666699975424122762715757446652562173677192240887903739149305085167049374497554761777887241139428952179829972487935868497235972965314378050817934495455521762303286782552422924906991627567988158178876251596267651786760445041824686221941870544536567651372570649435961204957964944009316856243382482289422742532264829311207839033276174339009884108334721640630086293683041811259773797014410774532260727686371262559725002874391106494261817325721809958939734501641101920717472314052423112863705068678102901057826461701216157852857531353845177569759006014551392925027073899611663586381887056880913915718678395709975981974940987275575685787287583893375097704850543433937201972354567230133732510884975777133501669605100809660458370618325518466110873939449359542275808801408000194174522338630773824066998662851772810131037521661557078128952057724227990565794022088164262042779019548435689113753751540803292613863938079796504413692551514802291249080818648950841992049960683863358996088545320871283344970466842325923860093892957413526959576847412513825688365850745187839328563817864949703478479832832715461684287054764474013098049517047498618615247751751030240484726706883561080909210751132195776400106296833517939293065138098313202783915256017770989447654933958487028437706606200964675706805723840955719817664873785050918450989640568732771687335554436830250721796692905648824313800274235361625970668532553076456322396719717136869724633876115609062431133992175439608657118128231040005918603229374959352511789204885766832845290099980809482276287363300874595391597814070369925164163678648585091705094203357428632295477763215584949319797496244577997356500943244842395272583885492600157407983145124973542236995053971384462451182544512556134784526642143585263150911999335512989624519182852865705597128132371872586121820758984564762722177270907352268601582113503149706661730511250707187900420811657394419688497714701048148601546679164901286009828912650311258095022517861832369836586022930652823457412137353590583549820925440083726678301476334162371538222721084281051878388773369531075383639649004054525279630136048452154925243492071276842122427839210781119611719537744905814796243413624579848267211778387659499380679609339820762798967071450881705895106413359312796230579935139683523153477878234117162163335495529744571456280998118897496672237499968211285645443789735143032515681079715022597451803857949420299982153200911818050897642328993404826299612399001882982683301335075860755506154293028260997172072002214598641684257564251780615537255435473130469458286775473923504325479450879743235840442361019918438134946447149766556763529091186739893109494572936448647106690095064630677996994854122221358501775161195624174137396969633408441818087766306242638270760729510809419121030189960639017663464593445338542621192440808693809212157886398716889174378964976966086851748870387430745112187256257650531971563948346038602566598102344341364273633433678276144175506113032214077902919084991140084636557830255593789721866478341487098403044999264577021763624029653967992031188298361299366135577871359300785606174942301147505735456540543347504572219763363413482299121723592793966163797988834346787047231708604901619680056383427718208089760479200745838209534323137734356378573889203626872240348406372341900308273800382477505560164258540337490676159355389745668030073588719411350126140157823541481945229974938009860795342481584957231122115469321224443142167496136337313319790057142824104954148537898066710432308401902164784466555488338955059799679696311612429767582021580181853472096919756517813605730690912924755235269362602695639031627324002225496343204376183602316324305169873291128317456908228439759863788342609917040484416629571351395859873420933374644449398994018537790337129361675092200647255128251563248355806360350489565234886111137812477966454058036590701722730003479733377278256664197302104217898135044912310903493815386618551050326454971580781618909257275676439836279349581307669999409097155921137737480526258468815176672226969011757392071009108486112218719473511924738313293558705073259824965276389712582203564303212106043319182359204200932171226444668727086702359085144937089571408159693264343402823842679244539102593654393633098039663809319680872053907035254124952832976225999904680423088163859383661123457267298397661443456097412415410333471434832144314109340717798130206454434759696604963561237005989916995044008709216268974245440816905823707644546823090095256010714131202308814061967177993045253308659779978894604473790454609125441339257105731410711683784674745851330563127948548092189311094497222356740737339814284273151318823449386590330510697911295819060704220092719195055236244014318014987075692710744656782526002558773288021602664164645489142821325026018618632101206585207594788877835204982144632314077078551717796230034640914484163428783497512551237446902161159097963252539066436548923831422636484152771919744879939108184427902142124368127270620551017023545690470339596668529872133467072330333558012179094931961539304920250177009137564389740240652499112298225132987401721109741731651352892402847234879478731426240421952947834764107268948152587812294652735338312230195855575544062227769327841665941175167742058372051728733399952247428544611038883275799671162681296891648087300281052728698211179258054240635771935938613935571070802517476435266808015705730077750546824264312993410076681676429038130277495042971190588955215715257979160294654822640839804634316736794874363434007700774035647485027857152365520577407530625714769432905939400499338462359356145969104493972440826088187023398409383731685841669742213506089493360557066000981918849796923647201915720934206971261372308462516942503339836672908705326819375156720099321567773260008053814953245015802534989061033754007478305879425382397593213000482799605202488646928673313751411521275199187275116616365245761433289730073955723176356547167171658857109672740309007693100826303042013925123511577331998883011054777071383306933870160489232006578841887323142649089106042678343589122162076309124954467293358630289838479432045876473513062733032827534695028122815754942018746685027802641171771151417494163688510688546469008921029979657182775274648287602788269453627041378790412149788476315957596239057259165724924623201953427749541883380351750657217631892717934211290662449413457355103907489520015455795073792804065012140526777566459767447722946059753697283249225034042654622551237055622677904731882560326136910952811450847728378380951326178437276715248369814291736288705748983897877153704211064522941757446015238418097193759522819959963448679614131014480967781154899900607937156278561894232735197651010217653197160178479941827180230412803528382006325779984545084269032446238924351584553426389739074800718302112085279938956207509514092286409414866994286090944805817751651530599072681614715199038516786664688635236204525407207622766142617449794755682235313045842925393832289722565818804112648010780915217366033579306537517904020145752693152712336584810954854960974099683720198464349447603161681814879551338715083358652011199043735379462217739639111997319773835750262123716608517974812238394285801235017314707594068199085797649120620379346800486781840580229828482130855307843896021909552262109761424127875153138513730975709283186840419599958111630159369551957077365866104677989921314284080910478077793431278254727051267906047545468158124949873402789475651579479481252675607146549717615019735479947820518197118388944543855540428279635434411557769016307545894370170832978588525634447501107580178523063045690852191972446408335542952843525303128431337736106222921987638382207367206680488797309934038075484765475415599442423262182980347058788881635034861087878004549703352441191012676055425056074904947771051858836924338912321970312402882460238663989141764935580964069725493195616359500065231794412623164375642937030166967875254701309397728606473334283619612484179064532978754594332708807168364999593936886684843177349783154122850610723995967140484031171104012183540359394517005817325488023664820695797988888048373845215749899731890943934416013011893032070579828735754646635561441085906985650309433020513462010341087055195872049842908299342093935188551253110258466792094745209349732850629022062039926461989628711794778614904783833340989361233214152616753145034827921350654655136065114335676282165250612166237937108031538723026809743543735737024284078837251866094297863826814196784811262867290593196940034924541183391216806850047183460371528785188675938833139275462644211032516542959445873797773482338249462432088158905592910348658923714134650466622801072898398574901024145444898362141073696442498138601317486230577113583554337634362836262264186245174208662239133818710017001934832215675143435031813132454557610302411267190183889599461498100398489582732287294068343350637680899165425388966014020659145246087579800107176157414107175512954538379209703821117172099569951973926702026052602916630281830658697650508777011707075669182575154196215538329157595498482105083067872311224080409036412978009166883141100284272747604756979226700138249941451040732209273896023457082051473312027563154994175635791908397635988903159927670579830667931492077145384739769628949846765719334575134160449432133312730216591322777349961058707382497840566607522470994278129356297129879631985378653205313075608575287382952673186791539817236398599548925110357853150571958667685558674053500999904128048207714689648931720045131268000678267802288338717222832286936951398702012990718728927993158854170770141092501499232586523328222343676475686035094397139484629773345222422596345569294153611791450099416129564546316795690383820622818920713285860749724674771757347321866247653785856333867855874117039740918591199477501804238805539385468915466380394883769103229038174712925626256892638326987457507444031789423496043749723782710242794807911568143643923232557948973336333327057089441713883007521878073393988789748850459063758879304887669990797524406186985511066285248551366733675561438184052015437163054814632870934386775202421298908508263182294649057899097962775724375233681437124671465722722618762938218859662781999434961202877002416024629248508246997827511680304482956169052608491388852477057536305927381997167886705206361137270590329595951990107079195830250593367990766901247676531883918204837124038364872168029153532754663547774632906198706075772387243891199082575437882023352744584933744633189529669469744945270156001497956230199401190281481843416445322303234059674461409735262931374519333455003543545820861017788690983373612179462698111134879663355844308304845397450733469003702177564174191176351534707444621188254237929575879421188571747310229258625709361113041749911608507745352423549729493578212322605276340908262320582801493903829864902146700639536670458845861867751386277743561026692025319650236337160556953510488977271258022033852994059102710356220566459443169929965174513636841992174924889368043100998364955160020474633039985805849099695630564716919988137222776183712672099899750928752509230506248094575307438066245078866010139330765476974767960858675116961068854290736431265077032930788928438245864859304491717586895829804132859204892598470166088441779461379534945770073171103331989297111202593396257283346012345772274824872344804435626869770608126697567243845702516767153278990306443610264343482244827335838352168499822607526373766651875301979523115654553367298762837828795042348351085195485879700836726907240697831076947216731583616878685200739621178612454592816337874422467563083482344075603051507626773751932877596789273873915807846411489045855793267599947191357278442057121937403078887607619337222916262141983330174751776853032074774233067692196604644349976734951911665806204883633543808680063709120097134914740778343289262743944865397104378973025633077767095355461197310634440441590932909659474016415971166115207554026756471216098348122439641403801963527788003946883851569888958983270366445140929748941040301659728900696757811611247315905509088013257960176107912166006612213293609766869517561081015975893711510262229337828927154954291089698800571525274200187340036504776202798415867094368580212370479385696624624476161480455241702478682258908023721404216456497273512054258724512369315044830292466483775315087316868891192154477104936746811208201649430569612808901081106656655115826513612475034337974968097416839137568253838691166639475658023772564163259291641630802268707085350819305603309849271021492451744829633316615307081691388196099372771023643366494737621571375754753644175172427876381210199293545005158280759743078764025560261669193326987990357240595227112841809161267042142788112364317803459806565159899122136329003951283101843636080130078598174095406636514844648217174196526798500737321532953201064452275018963621342904272063061754295042793607081025406380753226294896700042259482597684916573221666016916856865610223120719223004886687639315722569122120456223769090308082712221348558783290096663191720938453904675265655872582229067305472878452495545271833185373258687191397824367100530307502507482295828865527327484261424805655448957264159477207374442645321442477923994742660738232151615322477389750502265561847103797584676963941901046571053793960024691291728983476331311008870510984927461491855321054143691723653089088990309691946145647252569571374313601690410602806014450599382134280226023891716484906510109884316779075073607686997591762788627224045366598626189033522983943666525959781602038294314438450165332271363844552070234077422251622069478315914188588935450453647500779824990323834702303376257325227594649278146972717800171815682124894829511030105936842589113261207655701522113247974364417658718779171049344909674466525799831679878118601804743213093437865203129983494196110467162363374906510492520194250057566031199463504470298909700306410845868289495997209449129637857729943197982853520168105166758965589874804595056914600677279685824913426201843065653095826563774032783848037611381896097193509424655358707016631756618338038821827271436758818301653012011720076672140058540705975531259294111696161288784421971778710870452207550966282606415789501258282972543470888906746740970279667149867943798114423087820944907344796180453806560217026400098019329953156384828001075464703204994354567020933074885186273335058146549088160193812953961258065169543010870697142837274229166271085374139038818709224937197445388331369553278835576968065364420251540509521655029234067036741335898939928731378813487861771175681104862751055247546765420071751561331467049162958948294058289187514948449103328627885921739118479335726073709946592098927528535257524348899775530837065192769294333180579844941476174854059074881750158301595343730809398580584908802233818938698302575762868210575028560260189383644013469715201215898280705214788081673223068197579589820512771917890876817917661822303544212053677398324610459263837274395697676660208315410727725027823953852423934858599708151130361468978338364612541989037339918908813285239601332462898457586503856896784618066365900299153587361568210081764801382177707574823481715204474975093104288293440207337980685784457201422100966967771365604325833229990601933339478112217848226238027923027405827340701641165256207869764560904501502454139967372786000449687233788181646510109137714164834416295581480753412245054191696613282809190861445178739320010589512324042132463218672308696781849801006118467547300866245086212842239832275720492127418913524569328233756914444123241172354059262994641070665953565377677938653771603678232153855804867215398053879870993534449110018033898668035799780848808825885765040442034297311284285802374598159608522568102240648796583778391219883514762717815165423875443674953055512058580349356917684020153414106036439736141116074043274371955079753384876124099293324874046783556193149048745270011311326353084883151449065341095823081873761442920837376065424364936383661493274577876362789904883668501595688894758740371601698337374125012049528866797905942105450150783089863158505878828177676753298493123214304326742471719680404799695570406036524988115571622298584376088833228268168537599503717965041408551192291861466601364851220095751494185228856821417744377902011719477646017988967113262479793063981432149741539605657319020941380303312100868254452808266836306075506769112058909480986735458371590845141067525723501527327373435443390298388940919688674359578601726925329586129036022191480399316182791010337256772448547762380266383159984365395418044509454435380789547201812704633713107888826093277496859882303753676031773781600119121407564226088756164648158948316384879293531053844443068140684308831557227417318188494786880453011845318630760974942082264092389452601681957799723786667534748243910928308337812625789391071281378104497445119822423982970878521517377768375376086748185076616522790408854668879790700933286637648081348731429450289422896666764881806151446665414637750702284942395734152898548201790692115643225200724723939366017570521953591165285162893966386976057232916429407326715969022930873573684565844397119378696873143764615033583368916460362575180836563291291547165685531339684068069162912395000803632267372191204853956714034533729492581675428947645165201883770196951392949463260570806209998093567651698073721217741793581582328888115340780259243900032030110182330588343528568314846319071813143254501295668570169625430204839920537806344010886606785397044878620390826080250240555886422252151746749885212120293975973881478478476125665127706908142053670659836496548003465554100469125476779865812191691337910145013272479440538570228569984177187633041774267430092175020791254194300335180470137465667858702413516246616421519057817037304653703489997403870150032508068281132077667733136989634756552713327137510011729571964715545170323733441242173080174988084010300482176264293210275015813940960283171189158722436249419736198706424612010182320057931451326762937303411616160824079896122507348758934342177578917831001935939225474608932491605143740606294833757431582676981517094622279823033707797152781736284411220417968389562231384847793485284887437475742953808368953045303839569029937461979606715868089830529326825062207625694593689535746005582538556975467081869978113454968366590156989654108500179416985852749866807929388945958438769791473765495481943625744614622922709910355845816162332004071612244395500214297985957332028580477946602923262253055995424726246370177120848323317881249979458190694259229823515761624382651115005906632201827555997669612101694593907040107739281606153280992307548576590134239674968768661536579143354416323733586454019324200998056527665420546182502127591200938805042783500809214040145005397600522881717222958034521884565031273379225734011196147289847525669615150560060289350216948269134103750880103856690277880654837035967657783120258992520969742861374396965005274954480647400986571878083378820154171506555632499712525087414011117374819227628424585537671521362098101571587200462311331730022887575711460846791321476995695353225542459959754025810489155075318901350674546247445623127837399524424794485575143300749242326024597666535090489652055472825352565963179221040867744640802109556093807328319049813278709932509074168826309628997185151623182826950871838792390620422403325574349116692187212490119549729653517260709829475945583872995488965974712944131733300653793692963821669221246110822418323761105292950678240152738141690936380166563920178051845333481501116995635553743939573939403103668646468968013720648444032201769366652237043558843637205158307167376760252731684752995819463177334571278707841567160234051591494269478425606080572442775398360055913813505247362830488085201634806369501217220570873713195929741098416959945709484167616963115092202730012214568858392342627414266703985146484503995650074523181595366567873999529294817571940850543448265877224475785486195820146492317551153410571771455064184178135650666517079407221129410567757557535220653199262740529666020288266998113492026543596315694573142882972115731136057186112562111655244978791433879999664581829711316221855576351930309716108294475902478819144843058140408832835340936239938838469970618485982601712555970743312259178193412368573354610012204793932440483848673156485570319431254807764767267891387800184838840489856609550941469123982095552761490796604781111531005031328621828818495056294893278209985461768276489159080225140984674003558302924262788949449837205433169103232915513822700564958508429294628481518826070783865581586849391229858444842731230294808816591047597182639069759526202077431585644971852916415902264256449121951299896808706076950490351346879797036032822846681809789147178517876001846382681320251569401698832122259733281880223808444941732527985683331978424750714930244599132067667002026455414890970314822364494259637244061482688755310767031940425034987117244924458402680935056721410940374012594193489907452905050358730908958208170914710370180192514099836445241930979117608506135101325914544592554299871051297566966823459876954279325326732331670532455927611592836306494307797417494486278784929103518990608074259742328119940989577494471699363666295608208983498448367891980803508327317032377669664429857782378041217031542031917718482686289053753047834874467724422944107419218451797535286276154778596719186041249291406144480839614696695436589656964887979161140104760479907617680733089925477728533558793047497466905458297010745604807848999050685937477548251081543209742839119554884305242329019556700992982082627549842248903113599639857913614693082928929966264841877614037624035371522707235832453115579655124863332845024520270906592219300171028728197645355145133872352680054591412781297105929559056620272955007805330986882273387419767235860118408190981241640802130835693216346739031553635586412273508854900504918863646998206507352378867775616465590612369708227924198372693396599160540115684408780249573526978017000696451178853608344359627731382898934092826906188511806217941821053737256407054358134046556292308837632190109810269993307279424252097783640170980006241684078640417113290553161186953561572741069219798737583221100187916362074744767376758484645817071495118392502495475883674783443353678069806253663582149591196817660458047453626188216830899976142585943448575163140246848153478226609403313417277786657324017257850832282017975438883600605215944118102178675566275458404935769899822945084042949294380470585530899232225073393254349402936825882740842850195664981075691516533606952502973229963510600517330615029640426013063566575754174020245490226391532578884014140120519948315047885339897531524594011404101353414287362334542083830609572298329342961265001242965884819286892529023605234495086429178103652013000019874736138359664395361393847245932621783098343487625021978982152941664789348615250338629473034378372893878413716014991697058629282839409086312169531841887596893879282450987527873009832849310942737791366479774533633915725633963255417227325916163862851264423679356769960467199902062507153970939410324589160811599872536758177702403189214719799093994518599414124880796291398586622518767450449569587272487902452526016055824089127650728876242469993178474432691460456623292945675426570456529721964579854680258718710288509282605231117313655876138926563260815046189978518460472217033023443622055885208463545952179825393741978215137550803635458756955009202740510292811667620538317033566678756472839155429221377915024893223339922512794488680219061461652919419460340566175727892446613293975717167143860583328670155561938878625641688582958685526057901792171465985390399384386719744839481367425417603688572927065605040767933921119375169279663003339955409552702050062020846522063677836652341069528285002056434289445344904756765722643309452522092511757217245441449338648459996741236624922397910912165159806627545552442009788526914001359831193882540630895285254532118115851977656139255399551184395885435455872183625094026585708018301897291243953326696166497034641149108525581963357096181986539614346010037654315015939410602771794412869452399636174045740191075212561209978639658080361143844243551678046873920672185157294850046918980050534564714205272603057665085169214917186991018409736488831693802798337321757970033858681962989211842963520619913252186095420350243461325980223420286973456817340900840810560650357991495684942389753106489495745975052779065519804591076516042825429215751767371129553635176588996817807263665572274247900742823544262365414815466594372476582638559932373203458783996216012165989709605466584135570229116150966271507774125809804155646431020204617989817492017970199758501035501518899403935228128356543391848740311283126451046016117580764670965652110272432633419175013733925827286273763812458352767212617311671122801995506243227536180382641852498696665009270170057605130748208325311620590015624160380150988202380471274753542077013932523770295018527955287514165794432795603203762409464043373359187073312551288478065656665762279389086811064840909919034092529796896276852498727797865990535593405492551246835295199079834565990703650467015217214147041544841152960466014002845839140380430368229973315561621776059747374284439706534640354166224585930115592203782269565620043068682547158275043622339282654239915860548082318006457272596419045372848000193654484291153854073771711203222230525812721564762544090724658838094744704767236740374277848279078940442118130960869461607828065110101740690059183716942983332442011772895729536635260340092111982313459207783322362980516183684068965608667508663017835289999318029798752965878484219449596655533751584273358825855633157495825320722785926592906128399137370782240400651148090183449111846164507648075096397616704589658272157875548860513451427116750835820391856888659690633948456347338622984484900455998169074525135834061916667679033753602445951944027599411532061615763408354393702929279224972283376516982123900924962225030502580707496764502494291947951507551062930651494382545120091609570142461897593470023321783203100835240922300671759663789287524107606578071790459015479624807264274617697580772174967279104842267886176701748576366391852537989743460052630461676944946911802600009209753534279451037712706762546516295269283896885530877703391577609458532572017882435865162562248513893024377497870947547564521076955826693210720228050205320491632483002833071787916800776767814195923227728460576164358728720125947370032682165939011947878156426261826040480731324284466233967804537181120813546493226411243475936971284136176541771727669693422621483188098838481630677692356752578663973126429625727254169678926586492143740422343558066036047523005000195930004097031580940551523335028317805488300570539921578222664262411954833059534104746053105137777334994644907530282088829140489360490545708252899159043285893439271507136155342048055087003406488303422927719467611093993661587268050489106727408864079767785151638626212089872259869327839226851750001175721959094645548284665664826483901409449387294108335578135339892973865672711688945099609697623107404855306797069583047159136558896497028753485544772299286029225163646222624268456973841963974422975116835474825706606958551643928007610620485282988034696637111375265758818210837781285445987465273248714975990406917164226953615058675742119221098867472005870842423894203525816648835476414938185567581184418757675972288377744181758039828278473335242285805074584589088271587061589350562391201005974401833749709321657582277335170367006920174810013157208629534935396368268196864165419147863554927561899332447228923011335901143975756973851853841653415629423405812333910618343647750311034367855152112402183821636201584311195357858883486684025558300597237628920276805765419645415282252199069171116004208641069735028144469743400048057202180826325955466074000670827014996265370096207682111092710671047125580180703768478644623100640473261844665448732748064882074269579890620768611038620289211342777210981602818942336929817807836211293797427160961112031015900178824579861012584868453731280687483939517051242057535231974473209481505266515587129085735238841335557876388194492542547323331189294546033505039405481936365717433032582404126364546585429696569609437461673412995857882168530316734721690351232671451296097423062866846552453849129623682721090094254899446830216466534214769827132984280798689982527632077265698156431102027180726622029207752493000605198985735787819678119107971997620760584919288315257751638299530105037683660882542383686819124037639143914543171636554930835896083379243110268833413800789408738084467254575582551210324608047936987819104344528223018970555576746743018717963589116541283057548834270961285087803688931624167191295037862933070420475794044500014888096793783141749940841520015865825632391180852606146365023297071977756441568693561055338356873024555526251666057459924758915482345684825754101031283141909976660472523845202649421037394884847479382924394819871255941306334814871824083861122107482472124672463272262430748081234734115860137412277033434036867855817874789896397423676035832760885806721772651016249076509696244941008347143295582361690821298757851872485698321320861910972339105998456535289391498143507530799328218183861829251597790791992967817963528134068364204767523511235405090386992322177246108503910310382196416949373227317191607559156034494563699413342300367877712169905374310263564184363801616156121675309983667966175291534091375045212578139936365044255234150669268599646227714732680892466058807938302192180853206757629132055040811553150511309020123328183887674377582232280010332535137284806282082080011440672657863709132863646704160372379465634678313030084792138528828804179783237171116500908988479835109704634281337546122896048759108878678010360231319690390338332497859007060073776215287185846471549102220895183876684886279129374374973406902177044295773075493033301134938834664332548650248550477537732789022573939900949072101033344739683446141342910528502399133917561770057536593676647861878045261298291995963361199143980481830712518211754614202092207026542414179628241655110480922074108786346706921294609306015964189367355128915007319897171237369946287022503227141267309210456455575582753510567822883976900782353566071154061299877448784380638357997617081042528303463268024998331189564036696429206359000801931026399057101783478679766660698111066657148309729165200970026510492539867540526417265495095441533135299921457540708696083746730829635878759735386020935880180691705865765579763929595798741852459286802833891202498005395501910966707694007521663593628298912643345381517879495863072780074559734981978866377693811443092901734604257947601885872319339994780526186454498045167087408601375081373252748791374771493842204532094070298088016326573909441013926431753832324891292578278661441476705589698101009019676164556657171689602341495593088705804088305374165333885993307301991715314822213185236426252858305690437367819249703593439369175177593475336365769374444921769538132343146598963875405261648110552588002943451033941453200110077262588857207573689405638924268648735314407997360301503982611058342906345177480720021705963174645130194711240101243936315125063961757328919821573852187726977185825630301785172608418271787181023880287292706387002694563475091160198103394441584942562969799193705968893971376926538642765653218099579378333992991968086492720258100874183037391986964930238756383105246394382217040243678915735602110935641734280082568743394880815123140469457649292247852628258356197855208063001049966275006133558710986283443050620547282990836221078823604403352027520592056748307161865794434895053927775890978804931869310674721191124074792847148385276667985674303956597166917410670841249375215243016652458254287329538229195590754875672434001338368884238579320643547411671052559514566392104951830343264306596545734195398914227056069377927406084820667773984817694903104909800128574774112941720448109405674647369483729530202827135379889886427782539995675697600776217628063964186452085707068672040039315360161693085882236489350130569133161761183421210052835773576455477068955208448201443441138553378124800780448305264327803268085549991489803420094722175495779768021676492695518462008187341349455434483057426439304192657918113452417657109531691180231438156117672117009997916725466826748655128155537949788394481785525390413302332314020464274071582900687283488497672439179689348384515718044499094427390934924563493393533954698656025759328380289483151328010365014315989599851636811485261450234624936064121625523801044076982341773949286747309878142602978593303061522598225643670089059276447731815653191428025700654211922304660362878384741714566079345721897425119124077691821462946457138676470202527602887248063535488403899560399677757908737328587986903451273345477311172968920364159044161253556383313607401350382800219421574766916013445075560775772815948871544452194796540033593620295947106798401335685275314946369362960014359878053400488738986773251049961366291494304062171611089558154326420070965145908071592272500217933595826470242110097686702158797153660821253901782850186170800383511358312234261210576946876871057704210206023294418248986063400096597340754726469036566769757168969546231462477992143030244215300199914542012043809299353797660376071448947949437055916454574592834539831643375528855045014204894420858979294513864946782617628461411146584573474817825571219215113088824917472066323971319274526693173040389130702055772661908127357921553655356897600106877150483945076005210195641203619281337833742156642975989477119006362109978780977670114806012347025636456458210119483205797615973520345011577067207956339471730733325795821574540270977331249274619690619523222330387192215582251360294790045656515477011194893436573927890258714771676016371289061687273894973572403815824912181514721333680568747683047497587154203337526940341827930677865335623974430283839240439037069803787144866548744700113442132118289645668661507032637274442481921292480945697939026534627680170042199091926282791686399006825643675728503550952943442529874663064540097145565360423425170310690513471577975983772657405189633424935075875860684833010251346444942120645329973965631882557513787550159338635447326546554593146689406601408775887524756083982189362691738111606654385150171649210306392668269833548115006603420570490894057369568428266968193880797508851247097755699670302753589136239998341022056438053169112999377969943963036249070307862159727652263584500376666695650182804811606860501570360026732731543411429142797537726512667091344266902830463181586369595550882139407217394599639860626203636343172675543901653892469840901758188723684519421031142252407707547675320611169314447183406738612742896707243755265964826587094957489027609245857682767128541127577696188740292398519655863367584388221815641048246151453020854901026244164891187524850623471416729140882649798905408636535599301489026637187933266371145913058050583623441715705168632229100498487657419476799250528123295012129430599787135621452679886018539257777353875961341854604031284409113494120546579132046960587172741958921143010991544024078165469035228230404048782109704799154395782133731627117541353792202543923357353022595330124412722357418518044008346077389431311163036366934147330094646216884605445645344955263527431199262518300350260019108518631039423020793292574872891916603001839400147710132833580394063737086314810838553094368306491794456410241485163103209673119373230541016976078221841578790793928096038217318053595124387736127778703029823357574300160565771478556424998557763934440884542815513780836179768060887072156340205440908148507879613099212567965714064435774618601255925060661102385735685168509476899013800622526327759270872699475140403950708040795662054167143129014117409583785431853537688046320723157030369193710225625188617744686649112818720604523038704369807355145534613895773659235822094202368327534550632720707153185707092886932992426508320642285442660954545857261126244650260266206267491325740053740331010822129670201934867493374783057112713231340480762745597710649614742257603720210049828702308124980243743307434430809115450758424759956665255840037204395114054904036055711730461191816841060113730428705514931363372467283878592874831966312128667446923496615301436340662571162780235757710134028060005491968058397246217141708916692628551278428782033362719789993425698162455290597916891935366261143331152098370634931736263548717112735890327731413917683594453460785935380472874619917964510978742945121826123463798774396158266479274194096523703644166898130945462365714812385159967733886154824216486083217869567887403103085871304104374087337698296925969414746902593074004512440680708148354003475027630789640495060543959453063615956851656533354186994333996457610037620174663246273376268935164915370559814905261962510145754934242722438567215014709883058041388417880295374446468236623758703596175523283980617065029684657286893586261402265873490207735205366415089899826816580159137429461299304463548924980545907991168765508159903003187864572074741552101326647725357080213773178616472601723508246778809685769525030644980861057358332940532129286576964444404767817342236340501408543295012532826701509070409260064624101533834865278493192802108331549701895790715653434388047203180516756844134543103494149945031523905138567239448649462571635715438034600230594590538400854931514526712635272591154727848477719922958126336605504162217606341546404336076241594418122280120618220692026519600242390702526861254400473949659604480457759007189311127894026118342633659376609131324017504696025872960472284432128338181451963213643348661193056141046351412150399402475914062218852028909533947910321594146054885929503067652557450744228376078413611273269853259598634688108339265763296568681692328659536466342112923405087236072863377157701024143074965518472021171974932109717447694221174537364012278841359031589703834657498942035267965323785854668941723271271794763846812874558011491425068041064374009771296050155120210648641754291281183458152657386910178801582200332150820970689010806218163387190536569644628824309632678242064111357443933208562105811498432112491652341254967592218413104658374845526385926841196799727951236638791713561558336785922880275710854927072101546187675352156626086600771894979679783124881688728947465446797222750654171399968125117606909786901457766455925137772520455056761414587138957066723391947632602853670539677517580467203309609609077859991261777548091866942183439082887315496416271470394144677668727210530458013177902976223098463275457916200148854792409799383912963247054989562299078994216683571857339159665622978862035398513041354367753603133360319932824509450311807774254268344510378947750197728610350386430366136498716868644983763873590392960338689652999560438331031158443936130964994904956941040076001490029680667996962606507781277598246855740463206607182620317209769966933036176009320571460092775412546444590029680074519309623499850975231214057373879979348854071880589497963377149561017168330670411212868557926038141983925217609381476762481543192024152995843665222311984537250949384987527123715699308465599403965323299937465556602961389340942085423890298956422145147993017014676840140325252897237356630653299488565260295676060636004411160584940190003659969338204435938093703270863736181955521183219871804003103690034168931150008076419551935532871214033624723618877203929704634939474674363212726067818795996598821999581208145240007531715537721956586918224719095600033680213806955965390919255216062332178689046103580492013256618748885619473496747050811039056109248990530518080212507995953571654521792492632281639796808190075182585623591475646299337178726769073940317430170855805921177456230296904893241247015285205800550792133340482509899952985445877410436227191841596490016998345348758285357706157789287532227544303299846400286731599012088818464319442773357214325164732535904820405834137463090136117172718353450097204063634862788355999773055722986320523933464743599729200841129574717321233974273542925403376249927996053394980079221785067356869925396513402484840529996370459246284519770202373054785082082461608995707381643261917130424784921999572209238087504649078067676346024962858653421960528727778114290897443832359075608405464347009353023569983720949465263458251904572239661685077671926393880025783894466217349462231234815164895027480239821118203107153326302533510131165121483013239650609845394467562089666941287972257491084817955558700594152910264123008725414278074032632611597499849471632507593309393186909140326328455725325469655156313605074871603311714909886321136514733851243193054290961087170777431684234301010759796431648787052300152695163196134531174208422387235574638374858538280271099670729978322819334168709321255697667328601782698641454666549624490622464118212104412731101788908960820018149294450120541276536206070934364908974213619752173530889659489043538434764247269757398891221332166770805094349812504898268469071863390480411208086242628550515134935206360995887530921326109580992971909790688944272861991696926345585048603460614653698985500600238317470953458015870961446934093182475128536395837929470680849232466028175153622668720353338589452214699649798071360351005571892890764181269922523826680105844383196326808821721131003549319527972976225071596789943084878295783116838973281148887080355515827217836678837299821808250524115425957377689493719452607277463095177082390014631937985879192010211576690717560309668116018197906341090873851695668729537596357259922268356508863398188457730199881966976484268577740853347085881261999728140131326169255612673897491288223422126144707393529220336197348971217748473380730420425776815362005595956035480559617497840150336201040781721570673395400782620353498405620216348244240940307822057885206282632590718054579277645279935076238141874809426474202704085864199203413779955148398906248883963725370660387587352674762175745406122532533586390466178133859944236536130642793265799764505007308037128675992934608856993325655548883315529339698123917510022669286763839489193357428409969541413836766157551230205846906580774891284145413943216130523420885891514374061770683836783201301562302722484260386162840074943829076882554659711339607534941337753886484620127389952343793683008273524767742833805901113196500457386092129429360562138126395349847956842477405883952055451024652173298416105969234835686166297206591706168681614617695592016521126200695081649958934432963169063106139583734684850555955152017491064396507294119063307546367828159306189217757665079150138392239753738800629658038641853787214500941791262512900322151325891312040446254809989810429393185611056317123272693774766625845523201322240581584985235932958651060246539675957242518076861226171957112995928969752974283403727355349806482297406920511548061878491934908405839398634251843857725176761069850932402497234111748464485568057728776345323040753289482052108662837971648112725679531453331519895814906117147355281434682037567646226280041664672455998904336493654522876881317937928751773141481926610848752109220099110983896448184929773373738088118253458670826625940115051468254035154431224470982869333992732245827034181219338938909670457317100291059813448939557938755921881658580971290218733661698205934402253517379858311879037583425630960440136694321692454282127505920985353179311375793545593968712165131911642954790236835921997418969660992727644955677036970738178235409959230109318709268575647786457360336030009092269950246314186458731896048591240880603103255758970300819560989970061186185536808325756004535378134959469431746203379343208951636406297947465762139961795560225598743630430604397152335934866705720616302152565652493673372226376549500512131484667545570679185433575550754519181999549589837892211540117365776853914417697938499920862078946682071049640458453480032545673972737133644829486705219701322897648672473679406737180594988847773356654639423701898077662170885506003828413488806769228062951458969929735324289029305608246111656496248658230134194409535689969182391589881995006251612337962706676345791518323549448665527287816136437495834598743745819658924895183625850884769892078051778533214884922843609283146213778948065537011221403372800618430782394382863937274893233612141756647141669870874797163779044652923591829236431982563337159801905316111040994473526138759939908468295934939732692462228379379109649320258381680387164477517579697334011493732389251035426131933803350721126874776310737660093401861093532829864834260590641064595702520315427751624844251451977996363495272553425084007124568116654948919245107102044207341357177058071486846336598445956591111800427696505798898040103928384393275066285269244139628964452016757422531176726883097169983780732573786109144295285424746391207505847952485060764408761512734995761007128900016280272308122831057104923722359169907069955315329909756933474794941039680030376705582389767347647147700053373004700168477972166450206630622391677017154708339245872538959850096382418718512752064534018796443629077411166572716126488363436162964854546026191910899584382458545179512721423992282019571915296580118971501286035646189374071322743960398868684078560652512856039075869286174538417211757182540194518924987297449152629830194384217697939448922445251411999990601748242606808975818247337538492578513671125158759635260122531571944421044784107079095528301029657727605872164040617445936755361292325324165633325720271323261668273198366486988132536074444681854253065470917607837506697129249304365449613067662279943972893714022412146297397981426116893226131827304527629857336183293076564056737580677095376158133835992143249317853831404226396747586762355241204353250419020662235124331419837418728414846308219460651390754741095876438963197195533596479961326945297461186464262808151440247587022719723674174973919686880562911051396025328380725147547555728572068007817222104455419395521911842982423926730941941927292651218721425813652672140430284311145212550140753657685657164262948332595157048420996045185943064806319584317610394668733388919812219375199535164269635075179056693811205310232165564511782835486636765102250330488996210683010395579801839674889175672887419846223436499197194962521667491355112134501948299970420607510143663875251993301706890540281140715495701308589533305255640510475534012963558110765402207054113300648909128282203325255099351717547176098426953171902980405116891031194727378261576697806455784472574701811711219624288636366082852128716092885019530927046817800810770205411372431642067933830247149320253436387011552975328979571262091549412124466506508942132502366463028452347697916415395428475209311255587213464644225121680960624336514085679832824765694591867885666563963738722009336092412755063965647979592790223697514642946498660788059491832379784777819109189350549314253650908671931421233823812619500777705759631350592417184818513974056055614223482495484437983360789912678706364045031643441510244954972047022770937125858958368294267191108376319313278191187459773327171706907354603350377448070489912672169324184031710680974952417359316547111436312804674201800446874958955395225518410941924379407012186693972953065459773271068080860605942218816727494600278626668335670935220831356627638167128731014850349567591336923852973945310725172631825793621203143832455848150019410609834582184432315732376601996704668597681025026010079406304048961488057326131023011375961514825431494972963091426120555589969164216874330705299062994484209287449927025118533861968350005652382426415586306895580026645607902618954928010483404456441339560023799694126072465367970807845401522809325164395171303697027087552087316777656132983384277547697020488740072140486119772087792902462838372755860102379776419604328838370470040577051977863716214496157161867687056041299551426585300995428180963707995581973005165598333259423943297763972521658767445144642495543888677629097507704154440012485799029797522446668022962022908465025890048039813879238923395215231985806032081032268263674389966394843182408125546756191427328060946687181108527640406694206712587311895778848919729488994440439411481704076390736272704355588805374737374535212184624826506299600949062345621069408068165603500223873421169705531678777126841570659762095274935507355093137235980962846583889445310795862980248664572399313740265256801522951017449751585986342525332641639468255793866083636588825625246136234141360470562624781233039963310954829006923189397820251769334468660322778403192046858912299237579321340739809833542455430884256569031050892223242081031624340002610872345247602704326003759319903500241966869147595261526253743794801593872961107602377683167158990465883934254782060037697063596370591961047703315197160520573664671188717746658184804722989610636284236668293341969889363325562207637279708408926978898801238372941316855965613978160565631735134109435262287160102435123472010642436830925897446329972610665626794913041169065153139869143691008738364519492602303339494505642777014509860954984506863426891879447633533837858875309511602505511653137254321321874666251208000873645953365420053790143441537290369759544591517477797043946774858622507266186304267235071776783252284746970843990542262737178399012396173182384521051482298398911506286443071803022048405808433998092127164233874895428504883778027995150647361737157991417708036206086401639932129458894844497434154615932926819404770975377644193942165993498035544470655457764433844483500197663067303723339032051824047960683679425855734861761567740991245770614441793636475284140955316883038450461868062786913076541433329254605303283436198002079886335361760875744797498471397488485579618640670363159644924372756122723612293137196266034856806693006866961038435540005481036126257937475265664745170245514773124322134782207421404951999279000606924004906310875837735415755866919851960141280029235068892662463027198927859107094470845100108909652795282844217079883289937130424209116458484411618162127103157000682269050828796114568119803371997350379173538160973247407931516005769849478376325073243741300316055459218815587504076486267918522554242589987209215213931010511910859917872975662395481804657010412808933913521798453581686798746379208087889121416135468715563194688942412528709457645708705810416603337148186453572428045382751868949299161891795117245221539911270105862037657625964592901528486171994125931056017315009136542025172856918412694523168673911921805629868982075390856872567598898643798504564244437890495728607523812062934322800175199955563506284644888882875254431257884334539372918712703265382075565040492244513729447466238406684611229079433670292390157508015141632219423724103683246239629071359048553779095620216459239052534558091550982864887917060759845388104286655271158261035445039457343504183855291088956337286808285869524145524056439089079721208158121714151097780549676394809621065779474366802835966279285463918505374685971948558826696612589567418849795096212267194520013259374208557403000645442540732765179685504579878768588738829911933563473677159936586942890776818102564327129295482858081895554382428485445482142143668205767292340450020261147826083049334851720339278198149865303445576183545136141299412329252360358318701778884972781818557244659910148439568256208862612754527666074669650185387391663278059406150491351478330309922672876716953137835123266463931424621868184100124853088654430655933159370394347486423896489221221290022035758392824200782901219774788023995544653413737008723041397340680525779616571557953942084046979275029022425398036551961521068626377301447204757423702748372176385949612021070733910406391048745676799158826772531018165621444047462681441273345483332940140504959938062501819139045116660916849755794555808994789460088899658327491556379603712239158098948209310003195296354522152482990598568478398034892601711558142607865040420091326900774660036358735621306344765855565852592393423254387494917786484915978367647138406642058100248328576474804347073939635993947707627426172498810380938532756943479631940937210827944464453240054779411363777886585580381567015612991526137391465104649743542074747939657787526656307946639396239859822489635756933433422793148106360698510514168010703768800745660194783966679422678292377134164824338070258033760117621723354463978783873949426988947547179141937275889617237212246870839921823111314785411020283519703759719524256850661278830325113202764287398900390856720758157670448717022503871048780498615914814255672244274781697214448153357909803635912165171071297763111879788744646529562086016978196317957735889283386496612378175954335162402993335995889760652577089089886452334915752247559036418755435148936367543555336949054380585943216864674889122893990989044864480520292915732688420439015445415328338619980910108935024724258324929746434682521265646453278679920291337903839549603165077626362011458183286020063280760551802506605933443117361388250806842323556000921978172398376610104955270760647673639607071067863944174005708922296985422351980204915539703451392140865003843203139803038122642411194884850537891262930123625048146502651526163651447209226309938090363365022030619479212423181343062373136205984109099397839585726867701319892102915154246432552396105401261230611917898815534008517956051740368041294721526224197490212208563392487681168684553396747046459412086075692260212633841964365536567458270733785070495480348321588885054191312683500941918686690962992783548602891893206627684645559984494483212949067574400362885474330559564808501279079282020820231361499094259161463094958218287566120221833214187985010156976137475783988323093032221858054680689121532962577663128418523017841204629376527648252511953124460616061618008166229835746576093735370143408549559476054684113017025308283047324524778741967554789988200074270564859759386087331986847760486338226850649076383765365556438447614477087116512215884621434004298629218036024495054037948736077009926985882243927429348159302142400635990807849512940983914814316775174730668296909966188098578297959897678117358932154867253970449551937415509740102249430639579943687599584440242321222118299255655321336000664940482330707273248503293860779824922536306853894802148264196975130120348325033086312149398641680166788838092244264268075128431624473677868279839149340915335445078872187162840218873374734614417800353955364876219394484162635507679999815101896047859907578265407443892298140882555658759241788414883035423382058580341043904672659140062872323933031228802876200161966296779425605800945502443955694590546479670392071881051674849993343471140259613532260353443674248791871668224103812196614918255100842285488423879103848106825827307558855808361965880004154754399881238363898202410674966694750664258910955374125377384542710344296594493740361040538361908681659413286762922996596415916660148171098633134083031786082329677758500354684624243753106554326127815149414969724929584690387564445917949409386266484836030683056246204633866511405821943137253106158469407914572538814848398880033267309320586754410268060766987827647075067908968661813685368105636371672141935051428512895985591442072284142802248741171401710301021203044752573583346029079038834987309489030990057559906718336328000359520993292021095649177902342484343895876751005403215164502419739536610349346110370058788602591171091227017687793081069113209222235153718878050842099952851623761312390124880672666947836644054994357308618455060636677378140554708664737854090362633194381466389918465535049454508735819177834052247251466491361666386147573573452553611695123195479478681109832029410162281991209764815576487052495044070774518698226564372395394626069268139171728957065278621291061644508390978897845701858641935625015914771679934216369288585172695911539683451669303875597274079618650154000345555591430333085233889539271032581554752525452724130924274139800215792738436014641721019007807887641436682393466502463394889194636724953914596208537601148570822268373956206406233487807876965933276641943463134418879476206692879340193803733013457423257604918922108863636839998466479485717217822152798541669295671054054840276538565097415479266484344369303250725388371870283697557197205809007397501878890128718752520347686161949495490692299663050858546412804212757486432699669045259498494948904668107696838713635852285369163123844807525259837060064900423803023685972129882832082002257262613575704650595087383970589872409835442648574213831591148815918083183583976386569147080110055703273246909079063009520388009936577207819750097080629150293215850990139696202487578070114976408821744143828709309106891171260679416209715701804935195769706807135732202861822134863471089700440610377840570207979144830267057393887229179890534325327417421885550133280373459948410105494566985817519658679716718312859677279626904786815838181658519133036640597639513213397428670187666033745310780229232204482728336184090992692767312231519224408436432861623036780430903837591808940340916530585042429394932312873506656644513286257851272354739628944719172912817792767372610217530698931860853426192532083616768416747532395057685526972825043722761378122801263214000819051787614438329349525346348125210602919335374841759024968008692613485128013038114797895784426507218422251496091684614057878623062499863748828291200519581036356942034319776287776493092239437409467795833011205360820682934496903497108541350565116204318716744285600141464158414953128153055432554269362380732546787749918001947929655170935491365442769637105669492518956281838050919217605320554952577106828228527773919520110019514175744807433031194949072625417577146066688338891721354017700505481109791652368056816981494535641024774450062628428973387386016669979502478055487354176242858942611533416250283981520739625696570095260510605718448947024658338047423216153772639980248828865703418394540850396449650138688066335571735090326740809619226742320615726539155514149487655925927605350036911294927344918482961683205280625503413330983191919355731084901353867962296827532458631047351258951088177592831447543366729973464010055346174985255711438264221550166344401396359936717835842209053023134008316883605590563766779704027288383240762061498265923880108311113581721251699020831391990602695280267066763909941251212408925933052834674032971605556427497966943044396463564334195634272506777159983723854962716588438815133500375659917185848900194392874930215968687315582275263649585639103908826308105123942965930330191922468114298976164858405924136232035989426996918839876283638579361007044305440172575398979222846063785543997983222667854946097096338620002460945924024246379579515756472025588563839624421208429929395893018784369928600595707630204701769127413485318374238169165798134539413306333563826773127033517270534648069113524081058407907616623884717634387328715717252943347471294964439061252113161436293225432137757237256838830062102268099334693021445534671338775020833552902847534019902856552819673129765679548383091041094746680282582315516778761504815895121911276317497916382154751493143748801444299296560613989287476820371262174749293399220128946323570311782435270168732211341099991376259350220794477739515847016725564640907342001892081132370785385985445924418467806009356336825474841605546831001960618423910022240033362737546412339802286955426998214439169817602274923849689391320536162106001189772135629847520722774955317407024238810793484040485470033050053562919413570887563282469205150228884455943191646432252642193890685297280043865292936268565353924402429351573378859651381392784060087372456644425500676738845813350610424680831916717038653046460287978314169850292141653466682066881163219004992863287056559369706213628184371649427102435169868451158033012820820837226667941351347939884692887733055677812838999757472115316809110800815575573590492116685890068743801987946321485332801043035701066444472307110302865992914715595765810073264985919658742473874288550491533711587126701532050297571282666660658405605229363425348091543629543213588810516838191304008326828068296606700871121387315779997673366622523502296216663550916876894426439103601739296404406470931940529520669685001254187766623689727771366402700539110199503632264508401949306727619099488611867785011591097130580712615318447690525740215414305379710386937250099225223559653637704061859335058135632517758093385079872334031519198302124974013891261549630006880368855917101251722052801057419589570219692809082520730730194082763208253413591825847836231545978400684854702452218450749143246797258200500825910580192771577361976095858729034675239150508506493376744916737814100409915000314684036578665092491540027972116131918207951799827438893247138209212010955789828800797607749885674617363591167579658586023560897036045756903779246047701088976485123781744507414877857105185928498535397564151647089753440898348774378854966854365075518395285902500490338215945626855680024587081090676883570361672478317645662469397331036649335689048958228282906861663771963820620272784015299871769973011114576791310150508279183983843276571840308692502850912511157481538491401789700784434932855989496922675133714655542073603404492712431276592472224330419561789167075544330522878361629170563913908550746992535150698803072080365280183607596698610809355529434328346205199313780975694551897268976201911752436753251266205233127467818503697616590166584673909534818964565836999094818629840644365013565456362491728230030950797319329904208995509718351756650646965094879771070861018870334810928082735268425880230380862104950626562396005747701592443025174267555299197362830946766201548208303535736212223226834222896974557997385003935389132022389589600034163698521444739057752901423998654646077143177318081042023139106301564643494788118198934202282956770422231420523799769957962749339424004961771087890508525266300450530763426511195359455385209056700484545452414477168420814978591046362764490111326943126827146548691968591913423724942069125667138787130979031110428592034282889649411655812810532851046565188717157983066351215131924943732662489772365618253208647911535130080028565174129746115610645931666375105622527148839696649955212172187307049790303213552891431081282330174140597261476401653650841674892279158843669930415013970799326229788245275518680589833802771697004411750266790870643912471405878130483985740833027055750828938731536974786416617417462346420487815415479900496824046155837558056814812696871514248277611217352603850751055305329484968907530713784716381134798660970061793104375257052187181100890371088115501317329014026916461101291688335484169452830084538648426271027137217360078770760605445585783222363845748255728533649144186791679309519597553654056670780062527301005027776799422142289464717338002973774349871161062416023772777498792491291113617694757860470261314282705214354801866839412909752066458087429874257311016191504470452926478711730537718081930102550005747396271590018885808557983022255164342988442071039656054069456598198536107562003472898785141185664876602690594054560201640827111238311750287109022726521848103081085857414681577295411641285851659873358981550489470864611371472088835525256617890047448220078250606587052724973001301256663297160024936942752109301215942699933853756132621519275274050512718329001934510289090303239644359972156570704424302546036869867756653994418891280640686125033220656799614884751292098049456874110880545526704842465991579332850205094069579676432208731522842335943182521364959357493620074700235951588925342566294093527199801403667559904666134962530525834055754527485801199254244932812712425255666957813262082100899927915820142132655948244947303567232775488017847610386911085490265008516775579851786653904884952752969440768536937377601925673561617408819680008937089154046488341763811139186651577404693873457074970004597131467082929642741696770200111454432645964914303612899820376481604124464437573772822840670791997811563353377760956449909936331122028829313291998615152722446527338671030472738776597827994485259681318032331595016657631709872097426315578911421167082880397128091131272103379393123927310540622130389005485975248539312534772212527576007502440261681686469844821463798878722301519375558182123791597272586947443444857506227069579858451497245452617623510602772092110086181615188845348677993947020177017674742810364501782411937395096461365899967674212107801679940075328939856182632357565804738244357904452545607738201796511732563644330288846536279551944565772890745428279592205545138160954124161671725358017177142234061196852870074375941819688476765337082448008319118454011188433716132382438313197632806315833192198591173529691564174718250376417121594360240168283537050100729326480319736139555257992336917518103013124482570897892432051135191785210782200820877366956091897344665503565030097195252304255576623928372470530139127350068723185649856897500375293638711140415421632076043149625802167073313039840560780970838161962578953580487343249983861203136885721810547287183638829430132234236717782368926759160421524338472365803786227104208196544548138848662510729899075436273697959242023513877146122781271151733203870228836543494043435413774777660831515144189183436339267648996520787176515587451277073165359732232941824691858427674900506551727406815718635073328689155333658510461384917508097835950254664816196245768802611321272935669493129824373845488524889991866323803350161174271732669317416319528032796950635969427240850216306373083479649172329166018504001844357721179549082842123423291082430192463122565419963620917425672889660059084129514923768622421768950324813418060791901749212962715802879855556833029345392740067146072035666930153458031338063615996224513187050513332800134685136332579930599000666631156275690813934927428864175782209920058897297729193756187779449749221244420903803093022862898602497363039505642498101616333414893479558435624515740169993267630996204870549820778764296417999045772317358172931136487021177665723162215187389290587954060746544335493767254137276329887586124439732202935870692646021505539427586979669999548168001643529559306885159715391511501130946217852443814314439300819590938022933799985780314431941646709524172962149823834015664713526995887025576805662377379106681756441073526068928866002431741698478362188193552755353665552515392033500158697413825572665245484031755428223000453948089457113884793286686115592375662974936712745005076478980352679554009939202663635559605768829485141688961847938086371928390335563957598379112054066599684472566353915465258858014469060889213510753659011757186577885944822809751083349498183915000699756432587367090066855875202820624607905832577684512159686604206310086789046381782091891037638434538020624875348143805740772810161183262634848218260133310063689326946002400994805206500132294912345172205485485665529568404748689448922839922182659345985991084193804550254214477591887206727056300628148338152953541555749108849221269994292881112642851346529831489904201831311662356756104662175230560109614306805238477406693575671376737840179799165794425295210234265959516004063355833551333528852469745820140145782877218186148844004543857510837823446044928947144645225120157266070233121282120805624057493605246991857621252027561843257243754955275483196923330570892186405480884889394673880508927205310961151259061124737678617912154594922568161555662344012389143008537289353328700907788958313451005971438247619618932664238749278073094742253358673322980019875199498385064158986858426769463482962279868515923678067572132145348252666401181878267991317378753899794817327881218710635106603873762671550554649053867629869969990179274747311028617921324473485401746769859978318192582668800226701634127704955357729333603609291310514597253941813283247593524202700427825482925229549540939444818637262967603999053378025259419052166419950438813115285884101332529432785063059177699928018452134929381719845492984350757330342432291176838254643832800068190706143225835573438279606982777075752999432183654763314802970793929095866536448761255257388745624475924588825531252799950706515817427042899800560867314813742276954525929413678533342210242482262189885843504810479761902365794601753769026375899001921763723662508646324492446096733045519675745856262644849442249032817454295238915387875033499145675740517637626016760556836586547932381281021833806197753380231644902130467860199210283882759309098214911976883679313244080361858877902071102314645079283462122182255115876667702236176259906430454186569685310490166368531261397993326273312418072292011517948162808630012383627491712782280410056203519662924763437191796999605730267037862400900201490536487704910505214985525798414642506164318245836245861050133411262913512649464438463573272654229892879649230837273935457962216167545774872635504496121578655030268727053971477212206045154569224141930326757556664102353697650965106947308994128777373638230353355696338617951541714761696295925983289973821049113489227359653281247449089993554742079027133016409418371989308762575178969573151784184937611659442173544137006432645141772345162298819178658298095065571323740670327834806946082122771075329517541903142873911003752973867856362551805944678221377309774672219539717875804028854501755085634356031262873139111471022934676858505080414201260761209031843899266125722277690898348681635837221706703351601278605595165219093836365861831762129225501652399462347587767274599772177553042698742001886252531183563347838162044097914238879966686761129166352280432475863136767735438241801414597288210465644293898641062872980372347001702864484633041974811819139806531163565764774022182741962208650984805599841496453003288582931590504563203757596439130212668465940959701773302363830098693022333727485345382329449504397697481733482446916463175857643701276334543728689747135947082081795045952471509726768355499265997957517931864773797421938495062740200744583288759752815065997386405651431147491460607496944546072725919513695432304112149976562561099576444000457871486425545301661174348560948682579977824361233194264120582340988868798179548158646469736603673533332497862941962881620409883515156268220644315041220728378779067677361366349847353202494304240771879611744320337865986480297536352088534845935772245439188893185165804066972025385415710903880288901295910973841357365711489707674123830416131033128839331925173437458892806982186527714048924437890190271525872735867004469799890814822224323677050607619582226519531532760656747612358128779591854993883293357303053259585204871021934401518191433211701140159273066663181537775919306319162609700865690284512450630576523771315984359347058801733328198026267334510097480995905134200782747813757111067442302673334029712083768238263259195579713921942940792341447817421629577826982698768475557136453694164186482300347285870934927304443352346287110422054349370178846992949174822345146447645233098399020157933564629500920338959977047452927247074437430982963353180969658172484038111509058805401462498571316576575410961514622824796429705071043311222564597413622893589243417382103753691128577714954789058838589438956401555015364542617119507434116792792696567880748097861376925995226202606045755366856984660543122347598004780827824009977002424641137532895565579769588553585236136868518263115055518352516252612180198582399114967011595363029748932592520723316487388608680816117189346286921666115824213535619625206266829826040264928209236681364332254241252188698015444633858248102958155693516065945199477948174136907395886242122684463381745715615252212275937247913571175137703460804851911575192961453669404642437662328284046522424819245949661543911671628553801058809934603321889074105253791715208781381921527404090263641808165483164540940440230029654551235444731848521446757491015189028188018240939732897734441844788569656853180480313264414586149893810193975267333817419359220786686544920669514249608422885751646000050970055896348990776175494326676610257215860416183521197055836358628622360506051993659925546885284756705229767992970469061054644304544073641856873800563500289087334224692503625753031382092087379010486885060317333182598295668405004573156437586271671245177704263877934885491009023864436481515371068297737844853276234674014342113081572244727434270039445890303142261724168326863235860048772049294441695992653274004251475725400942689489816051672625784137270336029648059959196590834216106104231510899881653775058259720265819092439236380787909112834112020873394265118123775176584894475719291254335713586617295810407725768805790479659270621397460808265143962085933152682942578871075693730745035004719218240270738094130086195677557444097137097843261958509159125165133921187490452922459285491210790382673308570331627248162325714665984273124771005700362122403394297481194234105603482178852453703079919769061242937266361755376442559059758158965307793135562611280681816572508380589077943893867816701835763814470959076379513141405912763757429091139068242794294731284243196086950283958921974010928900341091009830180400253389905844043181632550542532414520915304991778874379108634930462239684914653230229513284833787280154925349190746064877800473611842474539131542892406967248833621780050156909347719727315718663647243728107612009989661529099772330336787041624617265279483322202836801355060421356872306555368681585884209112750380445062939142155013942500001335269695255263662351334219278372476738317257372734787261388771184614528909412572453538746797576842270216133021497304268589767437673589590366882160036217516537481648419910723589160992894435568193467701451449188015607527684638652965689590773995043840285526858614870311781438543648076850552397036904833864081541160172120005106611527477463157236872222459670683988541699739380215960852505888203072389934013270921429766970884770833034120281292899810547742176235606378982325196553032608763036044350560410478477118600012781315185043701333658903783104077008889350649040912209382610498682582501024368183009406730347853633512086244476262608794686732871946207692320609889989395744842440579981541825091412172505322441256720502001265367347957772638376679779065722024086125536011831395078347646402714824437900247517405566632584390021135208720328767346125824627122290804646684981043002515128464285723361537341921018587255496647549675677325149199030208090674144502465709814922213553767350994653851633427500076319519879890700627896571899872155891184981192485817264612732331576151127110558996868630569998327241897595029035027041772151973965696327800898070126104312718128676465864096731320916130029001272779409522546824913678373073089532682865439205364138598456945193432677959518837679626785361188269572457541168553687345050553131350505541625126605237872466257779104601236557896903801365496334475805816460752434235809417681916021305620859942625303484876032120532580531123636412263547526123440173945372697188022248974448338581681744623044569155097635378876340267791726271491604258257234908674631224734804718229198301191844358878811046973475297963707842757603787066719305604577713235999557996657541047828902693310481413098642099772010081670838657820822372951144958502384007526794084603803041763985032779949164166921576155524578543815421104188034522110372997488695900146189050056988470527231146638822230011004050357715995158269295643260113982313773550941538064565994591881714146072548428353590976632846516987006966499894498878728132485402881377716961347950712946254701623506412567423827437461811507275585908038606970324673648950406984793897605473922534034046780453097644806863755626246317477112928232957450553186248119199815013467180749715554576571290960000931111359821841659278095382536975314492318653431155284624394111464270528391025100990398644236568129591604569212480235907716635053400261938838156370696776159464650483090804295227096681891929602052482714427999783217677266150469280269976903782952393086373544680435264878802523520033099560474107490703010517856939891339357246606680573978034904374930481461725052241473113376533815028715626845460801322703527842778528201130323004645695607481737789592365646096060457171139962187276569577625710719697074958183283888604585852670472223834528249266365963764365548432828222367807435293741816649133237006184921512894418040874563819056292776011775148404073461721835008078370336890721291695171350635500192171487456552612931095976241024606535333618175217555344155239636763415573017677772467882659142173128745556880341782910212418157511446183093118565829035071216560788518392714474381744258457294020891196206365230403792549047677149046139899314736692525357371442934341624582600137370472159034879609695692470434079116262047808717175388257375479386850869256011404222961340012900414035439971023190851220071532428005629544671686852975005765367703881026235081590848017002637876675861071603016044265087803099895740690900091518227474582220750718348383294076341161566457994571720718800339960256665080279592722300818063197162456766176735554880987036109906870926719073178492910349176407433411921864586873577591195166030151795635298347103212631554505028230340640850184029493775544069933173583861039271163340348762493101432319348517056066648985564987307012714315144372972706728872053799303439277702344854742764123221344556348246524293953954595257899516901486654118794137022330672452817712490588521184225909834156170365415894691911864628286626937040340635034080535718919084830256194136861697679351084021565676696118751783864482421937347551921455523850092544842972925741992088354247078077124358971677836468771532429619153866152631320895046243677857533653641476797847680930409432119593667089532929522061724916597313383393041526117242333371267623207921992412644042911856023350593149401323015901067314251181981733352729109219410264730719436041285617423343450847834649842844389229054708243538920747452867577963359367269121254082350292269842534618190637849671470420057872071509499779140157644809390958409215302980936127103768827225836351952812041367313732945120828445986796281277019757057381011071442277519170744308169140746786164713152008222409413792005116764902264088912968407810802565576981137359330510413661929146706017131326351148124146697893972428218949966706529533677796317324375347580386715333115035460957161440308373664524996579195564332195002796111249596296526427163205730405355128105747030185555641409284798837528580497336288961039978661883461501080337397171165156944610669189440900024445380375734231166497936652229483961497571594715920652889380025976257065336968904979693107552248983178638866940592901516654028934994787789625954426785016413081723238298788034641379990990028437924066769380527603104201097192732542399030784998057098065647603613406846620340097631309103245623201784108997424819418417155829889815887540797208563095655863148528454699122628865189772080892863994298823891023263323178346731938106654354781711552424716695580128062610124679316092068269741646274692197963923765651248953739333620051009477092080310673436011851970327210281559921088260097436726556354468211545160845479289042286003541651666115749043293914117339891607007580950715719236026832943747214884487801287404071820687025882731036137645732732967620546623713922676761711234202740965876571969354105328842241781712059571569710957608797675918445963741030305973006723768987925561754671009541485628646686102087067883861887890642548602712611305550132223649408713887086960399142955864686324252840104028725253562966513946256270857894687067828155083972046618795667485354387934863021205474837152843996529339989611531419610125466964921249010144505280623222596962595625795531625342559605910749077575446333604483575340856604638412364706075311596135801491017734556652874411202971837351238209167463808543854547334943642944957894452278336597115790177672067701799545182571401041192161667841760339263480526076116144938711964287226373923019588269776707835321184997480239378555529624649695316144398825402365043983435592577058113364825167400106500275118373818801949731492746970125858463519902577455011604921914502690983380958768696032054308586902768051745400479468680131403333413430351008624951105982230852269809787086582823829346535385262188885158067807688743364184515366503122188557402451423142113288481306134434589685744293802547253364044393975428523943844002413499711927847512600841462887863150300700027605336310652709341056657104874005684339355425139594465648754576656601502989378246764404467421253660604835963974060620427353216116865347339398495726338414035596771027304758965387812670962281483569186496481667061590701586114767869847687369988257163802881722794309528116839921594239604041157963029125313645254505976904725245028598085721057456932738484174137493465036265744754705044201706930163267740176233669842875629711410047944583303658127378038375475151380951004435639486574661819958979391655876230606366232557988488340313854235314130213615233252818566125476678119650671106286008697749695822394957170411358839324577339309911046761308434723302850311693670718746539429477528232018275870947469959308793922857742710071146651888292889939953549852556166531261148204192882596782573900653466022761658564780377445139860869936792912083693892734887378854257478342127283796700234280913639389423910198914841202434893942642113018936942354280313814620720369915360182024564007574739676897602884159154610812307793883310033399037579486086544438021847372136660894084308237242680059125091405879168748524000226657204388661670479515356708449479917010891894393929124650874000833183655162088218643518401761713288211383856635666749157081918496099678371221575024123132986220350338456413805789932607935745134567728508326788000434660454348543370549722913660780337883160031156961764570260528484823201429673381286419043109195885938917708147978943103282152803840306463257104280214573479860588541831979005621210317280508775164538911444203633572825735586035042338313350805522303328642839870133324979675533269972755286397553631186456066776017755351329313637500294467710805445311175094321515902194003639189045307438502366940861949544479832819519337330218181532710657090594366358310143233799499047378813816485260427248688251888867137159386518035579864479393507009207451949909506907309950036884434828643993429125778047918537928247962689486159336156121254537466859621103810327302369267238276890600675199920908379084917858429062470030836662761615217524269515381162761980761469550948494038435315520317746729220552142458389156930849601417626508844320037777321920647393878850228011622870810347356065668539666580442240439507798260664300369446832442220662594019843466740108295420765629084374887212921918303646338765670369596006524519159151063147812795868858131376327291242372158266078578872868650021325785237958036046107928859254956722398580041696057869005718237413284159930430828216361478567402602176483154261371950816857059164866300318188774609022766817243307655910512302658395071263339978920827152426037057087046908859904232222960656700829153712442709801014426345918997551680804061557304610530021353328758548693334766832793885884518879169547705788677706513164451970390795295751360420434874031143788282914419475213705758140869247992672615280155128246923239390855144189685405134546818096396948122103420486722175598937056016223940321329422988276708543069740019755735174702956555260290734247033091966341296084334428373053645920103007825426447836038012293825079579757772559014260547694712560401565812059659547765256152250029610809003756469952725748304140577896482231468608599527288871569718442954748783717723818618586275985070753256731170573762548252799804859330266162869920578365508515036563651566812760620553479038947810033542356057015237223575709970779746867062195719743611355874607034343289672634593248636834488698124658564767256013310367054849318233901996583253723405831552678986098878918547702493193271027825951437619281136003549472543578247720642825694025757994930465036323969753914140991400576709946155299223673020006430252448357815239820167007426478727611651343377099254676572027522737431943828767100032068773002465631640173819678259069901702989871127394895903779098710797906342281878005044396879347728191965088692682546659367245371809847881760559738308132149054469941531594035103218390755977482648021181825963461954301875050478924499996557308237011875455448510254039010737459752670741992383818495436505964087465792862490960485734409684255999246024540399168912122239050869198846600315947384036487846568721056196054756589129281032995026309541724801112443479370502056118555004122474261659169479846916905387073477753437507726155597438057560730686693652110797018943223847779276121700271811652644788318266424252097141148036667558527919956452562435695639976253900771363849720183548152766832145123283274768194520456517943249470346966057816453091955079811188884045689787743123227460597329148675825527387646740431534096483446247006485155843813607196961045642788327687516414404526771742497656584089512855129456082885564191343982276075587753640848742783440189107690674983357165431828468487041421334865434157135296837944813802086080138316867644359464334491381905066478100653238344637201397489646417926985702476260933729015837361635398457422773564875593373037152299112896477531505568131377284291969863762264913985920123814378682870405943500977153926751218120672773390268542054839165294515541260389491221628659146678303878770889594264198214435846466099158677782867467682804578115655624000809353018343111063845400114750575514514346385198889901915887986521900323831818575522361799924636911065823281109404899164780980783860956340588945342982609739501933089906683719768813210176955236521549207371780453137348224895731954888943517054944938647252193691187463293198211500742818713753724062431262898674048765572712946478927958165421736150606795265748772806583774021566985429165897360992659553543300542235576839393904644828020567729832222954548427892748042595804103193176975520497568268975683847329276521427878124679444607443094901393146394019752443614860713111301939938120425159992219966040753966162849807525926745176837450796233051092028823457075385678861299232297535011295012885745706468960603076221307309239255149116017780003023749235954550832859407052000642557805833255179092618440081450274825991041645509047765945605075419404459801294372133586245586685042563966110153564785045380089926281407595909701719604675553396680954113656759228356606864633750058691952020535503785660894541411444156622195276250208340773167797818660939920046537667927068999728730373180369294966503443491989893624656318323140664457307286414565458032167746045250436646632280462406490451834622734496447496150546558604080180092755786991296465319175116230419581986805910813625989203875315683280666494549395193705039671688585798451264149216576801045679270914070036554061406964498659681073671880212280554977732939558807527407598229706991583885334844230733740460331733091330125155079356782743537708389349390661374747435640685053987447283811311585567807377996285849451610384174181101002462946384683205246367299082613098309613113950929835982851064292725812947575721617886210459407167578310609435445992978431782269173200902475522252029328138737514615205623459162233116349182062876410752121901934393409824391817006366470407752165264281512346755982309497448848179424854935901135604425266703036943111633166285613379205011333233560615754081815293908335720978065995143610000350669029996247073315185667291072618117187037821933808625644289167188883062075062538076892478673134898482739044592472877382940339799155743942685485609847197202363924087763464222434123248509425558221837489007956557478821131620421218071236063151321646703560342242816388571554466982700579095125878060248572086525544704177242874609872492202852565039073253169651699481825343577798755635441041178035095396805297763009982028487738022233785929631776112669837217207925618908118447934645282637455287151700177486460982417195221148856679902360050583529932948777278980887162658684573136871252191860974737596825151624436759937283970366087432406492279219527083065673194832353421493550440582941215843369502246164890742386532703696393463653461680704135912240098132563428254020221627625532166914528682336964624502605009508880076304738023526321313867412083890914865193311836648841176252144597290371992991398145913880530053252879611614061972461267178411818768336476554097716950467048067569441238634379122608537184954492056987749307128096058213328535224721727993375634760945211380762605025942120634610020683041562541634733852953059026503145455097963351677791768854048397540129971246632799622436392576170551411146274319302477564110963105549100209996688136699029068912469350312511239438669901473075669319243395422461059651804121428741990611713132202448081970186423503958625211129513287456893066886711689123724496046817553254403934815912393044502899980413685036792677336429272208182593195971441730891245939697402268462226246937320655540240197986870562387478955964025628108977485875479105264036063855610525954162412937775644712635218619669989737094761376767923705276783593548980064482923998639146776767754704356262333225894344039165323403860807888051448819651515232946165771877642792916711731090306371270609213137757921049238787668715967414898461203585587088160065411363476626302990532181412742210541781505835928835657610668316555079363889667868150158867814945762330817296619249843647832921732342903430716984645255934824027013769085756459372307670019348995759915448851248105160732751608097211109325315833553588431391175093820801769730975866112395253861197723049440258198871101261330681716857476729821823713434618635062342170169830182914809897276720026946545083844359147881861662446345647277372867867368410748243156152332821562581484033119783230494089203562751816168234783231902651296413494245095752577607243756531334411707910436940148481580288746017227788271701972425168057962477123258345996319832228892576325365866583795522139918377445362339982781233661827859435732139194169616862687558029815731286313576778008517474939481976378060770489307230008769639482996037102406164537972979886406282559463435989180081741013293943933304355748192507936384831963181482594136267637252110129824280445064447045282736542923830924020492567893629319468677045618654822448565946368509129554840340973930825056645407175352498482908464524151971430073130250153494756616877026170219124039613627284754316399664778590791203183327057496544845263482368745993374300805654711029848975816266558697718117458659001918542702894059779209593922484471003937058208185264560543786374996442684234468653437143236794836282447074614032981995086243322640435788835521101018493686800680869148603354993253013324904368390378394929587595889844119898831194821204309888626915056282926606073093641875040666634968557457471613608679695396265493968764136161970783811401314374591380927511826638619666620632352581551401884694818640514169313247060479385275856536671668692798260457496075377428224239406682524411343574937841467216244434521368079760145277644367538231491820195370953161800912095068100898673113712657415486174044305089647015238457687887579213354479654127609560583013439299322546741218052129229246549623918582528446611019239286885245654344059937055108271343983738728268285998739374605272033314014104371873743620651317399565172463406871992883997766062540438690717773358006378910249498423807966373582010416189509140123163414472311806096620509615278932394316939845853723549206822360736203288008522730056728060329681768923645745894496246431214057830181778798958556816351565637969326008316886585171678447240051603056234899277305169448586784437106338405458881114015690759426459049980988961145755672926222864455222432941720464920109397147295137103398618602389840883966332932393221954235442375594970628745874251122161867137957210035227764982474522192075977485605006387486460078889480546434868473996881159783011811122975244795882662565050913840843804461133247277669233219853025578974654692899849746005302100988305002048105115866330209944502118967218625334171986953372522470987480843736680164513204722449228623658171705858464058659313754964709033673759683926847227534483913334026626185967209262762820410995655258780289131526447228568904127754239001399264368747984935092256645800281550398822008059933351622070374564968893184673193747120599192023307534098119764501429727549716868380386164693674590601281063622472719453145948160602962071131061230794505855865833230729860708382408799696541226621601220820306634574564704745779945859062596490648806944453731442506075327271883207832464329668067396319537639060803748402853948569236359896795811900347601296251413029978178171403775673262364651907011415155165043161673417451198351229110903123630340216759972858983258640782859225454077621760777524895960521147846291716711969754063953366395416526076089208903666728316273849292125980036490324623154334156739857792800657563361219954117136272516078622939729858957198484243804241258031568827699697449173848926123400815271701357884285373477068275413501036052233872987842107773117870823758666963980519706871874281157315389929506276195553740476879329156211490339125348765446929223102854099915994186377961278132876101447828796643092615699721750938519554713087103069418187047559344536149032580317816848352370640779274796493238464109856693360110047581628027978720775357870631284454131012238913542016818966150070553668506411513711917044819599538307525125153025525868249437526989242711728492739761776879710564098149994238181178837324418156683873558904977758548553674934431554992066595928384229320487083709118175005365260146392464907304254274064085813733870173237046352090514862299233678537134434806703130205474157386882851746838370619707812933022174729562439419100328458141887310740735699224288253291734951902934442761094646416337601364522346334592178631271707441881263311954206610593031738711985896031754336650078270299406117743301355084153973747564708743925593103631386263801508074540251452781486359312974120279623789175579782697233767066677910382540181875035392345098682641730179796858924093006654033918611580328221716069685260829340904777547985498184017604506198878527074378120049664911842504632525327029613170647169364889231942299055734567730942667251238939298325508815897425075234385364236517138421876420447490380693666846604369984658793434813474493757780931843777176095770264136544434537995142508153422282245860866997391924210558186876716676243246535335200536671093808443667030589964270773373283431412808799810110400050150872705372554787840508419943963520863596966294563469925794423969428235675180751384120600037926161796859881302374907628925746928389525807581001102823047228672425759201239524043589147474463444715319649473582472333911603222853786430630194345871586329051529100018533350617753287726391231831785549658819231615197491763757726574527901769003795140990044537418821166113426348748097026764670549817288012575893997901367251730443082629584619829123798401712290674431669245821773081350656072268120323706352318959929579720435250237075247872852271650609039976566600037352116580146390431099612875195764662137704203911945833412644832420172768620315728716727277404597644569258044400115911703634291430549830199497300166144061414723009552380101788498380213088687410247133847703808012634011544725510682526134263079120489997768451261158627506412529920809670479359686591951374925624506191949178741457285033532740688377956582819016803221799868821261417605103224694190944261015520801422512293259686253243507024519570368259429815956120302542691299919320043408139866075499530585992456591489549320366270602378875293956853424334854243056807856309484324688213807985034319972405930585184614628090229148733087968469057879559148458916193449040475266992850169496693057926616310886286752521598092450610162239939196181537511194589391852612313804348277468914164962574430807734726008258786792595194197438218437605855517475560204197095857742027675810635068125307418195468812622531978163459120048844994795436561590744709189645050683998746168396434872852281707433055188281965272552206252682777582453343898761782978084455952439470393315407668811207516063274052598934797673290504229194426000904387739285202190084511064217061114880401087798046550145389670149503744113313477063000744396043154702696691550168156685354271968224272186789091575913278345490130683156978381703131281046187394514977875640714853751105334199886256514343581580892146944880213802984881604628681440818961890798447313718268373617301450190335919068951166989020263516059428213031831649692892545749367659219385474513035557813430624733104607565794500800834648513408115981802246363764443492102124308285150510175437278529236452121830856520229954828575537100410489575835867638799779762728652283855320768558218223406927368222963385450814469777713948269556389863019815533851136238075589435222783638840974972547795841716042058689835211557187722893932125812699793485004963387312685895906109595979037252493449668083202849859250299086305216433376704586486842175178084741066968299213274156464631744305360511412727518095268746936966190387863373746079771986504311694414044278533532212702122717968906412566668193722037542159084128237499361541708260033709967131622605001626504018995096318235575012674573657089730205399907182346816355011654730219211470273993983661471676846454759282458374924292694289640538225018726744068317539180183082328590180528196607562960611468550404509195257489346626182241947334376761190709127461417273505298602314817750052767793121145933617973140237138601392779165652950232117244220288178464067993558451091277009492696094269407584105088010426688451914884397582256106586868071228152464831839893203674232236154932076437582189499660911068376011949441619066418989842611137129836058433599539644855914468159352583991598962579329478820175846369146712602900965597098204349176797127190581768420799377958672710347236000934281466557069837348155159943733526363380687756229121983271986966714386034474944044671227525036922976989658650934253852637723171756086402931623006702800157257235391639160864789092189493457192914000339998290415912972854396091573515925696209727725889118979791896130608746234055098749876664763634303278822195666170147214964299415041227526100890183903146499809322847361065203926466504295267873246751358493946522670287615207612337808384713285816439469883650384540631977513645557867516070323021548189296302875862992913311524377634546272909209268707490325976135540230401436968985179099607820923803448073872233235016543594005856935297219920272224833696094728406901479732826112039176953231654571778208057053977773384520386346829612836560495006365290815205478579841588157601615487535216975171115731289002374385408876915247568521691098576657765575384626641978849332227765650238029453236083750795002928065426246097138927803869919176063456510316375137841055227121446661699361208441908545661417988835080231795519654147678752274269984700419439255533104488223417761092126614309233244574475245421577545132615915585909077450491387716086179270015218451771364910022314917708135902319394377579239397065869413971795967019547243145652990666274850531115602088605257101509269783925744897617493500092828034223761077300725645396341841138168837942871786810948846257150410950124528601639156668891041168427366801289771009289573107896247370068894262198152006995733469658272013372499294106256345626201202163889042732985269122593491650555457868970613793764212465920637321244105890161872777411806710266689489250924111973646386652392752945373711228776723855550412854762257464902428043292637113992089541756480440013164718587328153973496186273241651841830505433408357296286717795497994157630756698531091064147155191223957645328183428706156194250350123663625776935645863562669263473310568259080688771848547480136562659170992390630654181484116070636903496880479945505125936443706126828177854861164866199449828341794018671384408172518415220139889585816646438233417976721848234955277410123875561746350241331472412981209514298865528792452067926659920564120225578433454831716554543316868170373576400903001352895542880419042540500561417019250838788213190523411204190779534182536367220061371362779353558173475811348718207210216475220438227440541479664921947230068718078170964226358472562157242242864111966346542383662790999914760950298028039660197612474460529769252267727784975630497648768510382712498376359739521678297470760854569904916032281608114761404691737355598402117892829873079860982391100569084420898627583534880734821157871358888177501890960883421809051110258744724346287416951578829360187255317588107574165198859182913596279202651183619716276266636266333074119900199030137395887087440017613695703429127065527801238269834813867706820350785637635599060154943959209557712924396644721512149286418323482532319314793738959708214500174066186014181789093254001182174625992136236280990479046305825176278813678430634455564842860384301496052519616419094650901028438326248011199307650717531517175970075158120578048100718642021095573429873073740873789008905289418249359319178017149750856787674731613105653224782704701329477269684495161405626828066804486930558430658949162284298172568797270455889109243716395771297088970104295824804034937684037740171372938848167172752619830825309090288336514082472754340226774197574450456784237163267626763158533326389722302419733705991109413607380060567220067236576906870951678294688145174194744258911086311409003971907213450791252295370208180781773208585351100205090838588011969795116913704841835749650373562203865731329473429638681433654963637394446712202602138702005730284684572935601350877158299795149976649224785383223779934048586463020646380749907434121652694164918304877807609306439963233529036633521102964927572039155013126930065743574214180952436712295228039878780492148616948546968765824406520727977181042880432882052252632830952613336951878456208104300231108183279345924777700087720635918685333224153127388969886504366348882552627704161719353659980289636374382541162731600569550240137535688913381812964307801838108080167446229652345312137509222340307405844055944674736403023891688669590926621890969435237562965785690153543717783935790380304186714298431488159809325481150681642779595416045034982443703387459992320267999344539996900586365517920007933951839546113379360287520128034383166289927906482909858512048993801340664579745346347405555653391487407306194204412789171550589056418946823286593299636942628448739147245500707408585455206349291158808595491518142466341671136565619432278667457524922253648265325812382950434238491140837072023122659395207217226223557527449001614084402170169939123160990223376859745468934112265734631395213422602282023264615504132681159969986989617074440271809484813920961524911033450876675077566388694256912993260799266922364603768280233960025385954250651881296235006043845700404538600804509210205907593924377307782944477154397842821812144797172735738964830274756925142051589114452836262739768281537494581641613974853754851532017172626132610167314898566820090774032229071378686439303013487634538614452032041201507986623613218449581244347428820837149812503143904336728820643536281261128330485064591988986607814753522252748387961026665897708417827598127089421172501381505557274292750323183507200103284522572229534156609558612031652461235482565494971062917795727316400185942726921718003736689332676179441371257728961108501042880318328301504399130842319679295534862631716985069402992615908619039745912448145375437944014700862258079939382353755723144883380484733000894970305933222116770000154115046270882191089690975411733397922989723815253972677758565768004253195516091437140281916281822990077288528724940800877034869784352773132082359108345827225851765767754040643085937364788264245319912314884778148293003881530529997302856008357719228969127249440344309867522851008626081594297324362132765737123743694915251140781392546769370231555804218235782722329194391988520726097129695874458599959555555383217935804437422301535387126223211254588949397405681847574511374939019069068881339342922440963800867339530453935968250915801459447316584569783387635467103399538602811083516680398545653953223314809821288953530117820360188592759573099676254572977131231317753100915191221981163472161324209468224821251770817979514345789750375680480636899970311804533818027668540277659189430682710109289086548723709951909071174430119909851406984710578583596120861756597663994758718240589256758132647287634692117033726641667085265845010563053225517251012288378745631136860609034175191047801104813561477237629807131482527166122834588743807267239167825623678776952892186517526155876273762036217000689477105169292699407388855827087531972829802776775074675748876882838453116513638758740570064076212315099466146925961701617711995312913657115632667909291347952467141967102279412474500129874028891721888447414456526623827005173727367225028247652422040861778717071581346896204767692055260730100396699082324453068035602213275032959212665303711410451725661061473860768948449496527142430632440948278003136365032847005295139947512889013277801780994795409178737143147415347670567566546284494303854898249036143677702493106992864701580561331687676079157941676054462279568803027411478341086097078175844261873225280458800971634290578990160752356665979815278591111083488892519510250167880775353379672635531891944807028812834259316713453444607173017970109689727246846128973317254718414471775549502936106248448529774169631987069290613784390591222074394282983481095257612509087822841975773400970034160433367724654679914243677487837147823540551066221474363284858362884596845467843547449738124688200443263156217522408422603157782566404756009833636270643516619340792253499998506212710893534422498801449585220979053733607196328769787330004103766145074496502418724255662260074298493371425107731656929477068886249955031315786433384557961645158684761165779374199627534166171719652251712034136138065738212086522562170771664040912052821311544912790293239550358466444061231740232466834575362004623919828429242142838122008224104970775632522858461251580004623116666330535060834606164627350705608312905374463560886627368691091334559759462316147592519825405680867054353580057484192607195711806631694205910437712840278884812449799901312093146600558144302226297932471887025977757185061380928011724715415828679808796834249440290169653317480160735600845788158688473980214379568840402066339016554966179982348459702254181362166356336731163500962745476422847244457761355817272676564525184925757061694913648718871673856537679692526922437404301964666841550900038830016100433800489498414848830520296528927133385141297796352597784559095472674519618167559384716547639606199517794675375262396041390175879974599394008235083848138655574490922980709596775684704035920386816446273835659438824051867524007249787075880066297740625424669838858338794958277607808664804408412017883043965595542500625096145868413179440628857739562072543496192452359423651558874444214149805130832679054615102126849437106238969414224541687032303832828189705220391008846672738599961334756476633493742039707799626705413079737630397094115192707999688725447887932289603135875609346061160100722638816906362981971222755324811827397108997669240996271206281037791067350624116155306510474663907655828475154356011764394374716889548660665070169868834632822326658365484218978997393543068851612950945434776058989887478641008525438078867298428187928514055582096827905598297844069146327209890632662133612337537451540717618550979255828062748021433083955093581944482940547133043532828653664343975310840285713581075284171014297037887895357437744437028610055950027135500389916665930971658947573418113456284140659192359244915601325384374067717312472721511748541122662517820478109925364903210551694729516143962100462479133687470688390728124765339235635082624848768741050813523920622263896621756132219686011073326014941014596232572167174106644297072427541470046432645726794472110088027543196239287144220222986034717082251335827848842766083450467462608234716525649059396589252909600976855115771026488587720414006202208507112512011384727330725456057182389299433874360024976644269927958349416347704078275972964998680359206572207925871311608594260792310276105669505663234972109791310686428350395393042657195828675922922708755855389912838745263781708675625188442329084052806248032969354162464176658113909769291287389527876184008912386238503068081647600181428314296924341608250288844448097470820880829260234016250666998307333276489958241710625116718677839956985616359859063404177328897159801631291752293618981705317401576794142818266302114701184377687248050805412357272787213158971